Author Where are my fellow programmers?  (Read 4655 times)

0 Members and 1 Guest are viewing this topic.

Where are my fellow programmers?
« Reply #30 on: September 27, 2015, 07:47:26 PM »
Since I started with coding sheets and punched cards, I always thought MAYBEBOL was a lifesaver.

http://www.cs.cmu.edu/~hgobioff/public/random_stuff/MAYBEOL

Where are my fellow programmers?
« Reply #31 on: September 27, 2015, 07:57:03 PM »
Since I started with coding sheets and punched cards, I always thought MAYBEBOL was a lifesaver.

http://www.cs.cmu.edu/~hgobioff/public/random_stuff/MAYBEOL

"5)  GENERATE X REPORTS:
          X is an integer from 1 to 32.  Users always demand reports.
They take these reports and place them carefully in multicolored binders.
These binders are then stacked on a shelf, giving the users a place to store
their dust collections.  Since no one ever looks at these reports, a great
deal of time and effort can be saved by generating them randomly."

I remember having rooms full of binders.

Where are my fellow programmers?
« Reply #32 on: September 27, 2015, 08:02:12 PM »
"5)  GENERATE X REPORTS:
          X is an integer from 1 to 32.  Users always demand reports.
They take these reports and place them carefully in multicolored binders.
These binders are then stacked on a shelf, giving the users a place to store
their dust collections.  Since no one ever looks at these reports, a great
deal of time and effort can be saved by generating them randomly."

I remember having rooms full of binders.
I don't know who type that up in 1992, but it actually appeared first in Computerworld in 1981, but I couldn't find my issue.

If I am not mistaken (which is normally the case) there is still more COBOL code in existence than any other language.

Once they came up with object-oriented COBOL, who would need anything else?

Where are my fellow programmers?
« Reply #33 on: October 02, 2015, 12:58:32 PM »
ChucK sounds interesting. I will have to check it out.

I'm interested in hearing your thoughts on the new wxdows OS. I've been working with VMWare quite a bit and EULAs have been a corporate battlefield for the last 5 years.


ChucK's landing page can be found here http://chuck.cs.princeton.edu/
If anyone here is a DJ or musician, It's worth checking out.
I like VMWare, but you are absolutely correct about the litigation mine field.
As far as the new M$ OS is concerned, I couldn't say one way or the other. I know the DRM baked into the kernel will delete software and data files off your computer if it thinks it's pirated - whether it is or not.They are in cahoots with the entertainment [movie/record] industry. I haven't used Win 10 yet and probably won't. Maybe in a VM. Too many other things on my plate just now.
Sorry I could be of more help.

Where are my fellow programmers?
« Reply #34 on: October 02, 2015, 01:00:33 PM »
Since I started with coding sheets and punched cards, I always thought MAYBEBOL was a lifesaver.

http://www.cs.cmu.edu/~hgobioff/public/random_stuff/MAYBEOL
Heh heh heh, sounds like Prolog fuzzy logic. :)

http://wiki.visual-prolog.com/index.php?title=Category:Tutorials

Where are my fellow programmers?
« Reply #35 on: October 02, 2015, 01:13:24 PM »
You guys want quadruple redundancy ?  Give ADA a whirl. Developed by The U.S. Air Force., and named after ADA Lovelace - Lord Byron's daughter.

*Reminds me of a ditty*
OOOooooooh Lord Byron please don't touch, me...
OOh Lord Byron please don't touch, me...
Oh Lord Byron please don't touch, me...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

Oh Lord Byron please don't touch...
Oh Lord Byron please don't touch...
Oh Lord Byron please don't touch...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

Oh Lord Byron please don't...
Oh Lord Byron please don't...
Oh Lord Byron please don't...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

Oh Lord Byron pleeeeeease...
Oh Lord Byron pleeeeeease...
Oh Lord Byron pleeeeeease...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

OH Lord BYron...
OH Lord BYron...
OH Lord BYron...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

OHHHH  LOOOOOOORD...
OHHHH  LOOOOOOORD...
OHHHH  LOOOOOOORD...


Well, you get the point   ;)

Where are my fellow programmers?
« Reply #36 on: October 02, 2015, 04:21:03 PM »
That reminds me for some reason of the old keyboard classic "Hatless Atlas" ...


^<@<.@*
}"_# |
-@$&/_%
!(      @|=>
;`+$?^?
,#"~|)^G


hat less at less point at star
backbrace double base pound space bar
dash at cash and slash base rate
wow open tab at bar is great
semi backquote plus cash huh DEL
comma pound double tilde bar close BEL

Where are my fellow programmers?
« Reply #37 on: October 02, 2015, 04:24:42 PM »
You guys want quadruple redundancy ?  Give ADA a whirl. Developed by The U.S. Air Force., and named after ADA Lovelace - Lord Byron's daughter.

*Reminds me of a ditty*
OOOooooooh Lord Byron please don't touch, me...
OOh Lord Byron please don't touch, me...
Oh Lord Byron please don't touch, me...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

Oh Lord Byron please don't touch...
Oh Lord Byron please don't touch...
Oh Lord Byron please don't touch...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

Oh Lord Byron please don't...
Oh Lord Byron please don't...
Oh Lord Byron please don't...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

Oh Lord Byron pleeeeeease...
Oh Lord Byron pleeeeeease...
Oh Lord Byron pleeeeeease...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

OH Lord BYron...
OH Lord BYron...
OH Lord BYron...

As she's slipping through the lilies, she's got nothing on at all.
As she's slipping through the lilies, she's got nothing on at all.

OHHHH  LOOOOOOORD...
OHHHH  LOOOOOOORD...
OHHHH  LOOOOOOORD...


Well, you get the point   ;)

How does it end?

Where are my fellow programmers?
« Reply #38 on: October 04, 2015, 12:03:50 AM »
^<@<.@*
}"_# |
-@$&/_%
!(      @|=>
;`+$?^?
,#"~|)^G



I'm pretty sure that's PERL code to search for all files edited in the last 10 hours.

Where are my fellow programmers?
« Reply #39 on: October 04, 2015, 12:36:07 AM »
I'm pretty sure that's PERL code to search for all files edited in the last 10 hours.

I remember a joke about PERL standing for Pathologically Eccentric Rubbish Lister.

Where are my fellow programmers?
« Reply #40 on: October 06, 2015, 07:52:15 AM »
Any VP/MS modellers in here?

Where are my fellow programmers?
« Reply #41 on: October 07, 2015, 02:29:42 PM »
Any VP/MS modellers in here?

Sorry whoozit, I don't even know what that is.  So many acronyms I can't keep track anymore.  Seems like every day there's a new language, library, version, platform, paradigm, plugin, middleware, framework, design pattern, tool, .... etc.  Yes I'm old.

Where are my fellow programmers?
« Reply #42 on: October 07, 2015, 02:31:21 PM »
Anyone use Objective-C/XCode?  If so how hard is to move from java/python/perl to this alternate universe?

Where are my fellow programmers?
« Reply #43 on: October 07, 2015, 02:38:55 PM »
I worked in a trucking company office setting where they had a print program that printed hundreds of pages for a single number. I suggested they do that on the computer and it wasn't how they wanted that number presented to them. That trucking company went out of business not long after I told them to run the numbers in the computer.

I did a bunch of vb6 software programs. Does that qualify me as a programmer. One a those software programs was a browser I was going to market to business to lock them in to their network and not allow the internet.

For being to independent I lost my job. That's the notoriety I get for shinning to brightly amongst fools.

I vaguely recall in 83 with a timex sinclair membrane computer writing a goto command. I guess I was a basic programmer way back then

Where are my fellow programmers?
« Reply #44 on: October 08, 2015, 07:29:10 PM »
Sorry whoozit, I don't even know what that is.  So many acronyms I can't keep track anymore.  Seems like every day there's a new language, library, version, platform, paradigm, plugin, middleware, framework, design pattern, tool, .... etc.  Yes I'm old.
It's a proprietary rules/calc engine mainly used for life insurance.  It's not surprising you haven't heard of it.  I doubt there are 100 people were that code it in the US.  It beats the COBOL I use to work with.

Where are my fellow programmers?
« Reply #45 on: October 08, 2015, 07:44:28 PM »
It's a proprietary rules/calc engine mainly used for life insurance.  It's not surprising you haven't heard of it.  I doubt there are 100 people were that code it in the US.  It beats the COBOL I use to work with.

That's interesting. Did they build it to use special data types for the insurance industry or is it just better at solving matrices on a specific hardware set? Most of the stuff I've seen like that is some kind of enterprise front-end and then SAS or Matlab in the back (or MS/Oracle data tools these days).


Anyone use Objective-C/XCode?  If so how hard is to move from java/python/perl to this alternate universe?
Pretty close to C in my opinion.

Where are my fellow programmers?
« Reply #46 on: October 08, 2015, 07:55:51 PM »
I did a bunch of vb6 software programs. Does that qualify me as a programmer.

Yes. VB is a good language for working with databases and MS products-which is the majority of the work out there.

Where are my fellow programmers?
« Reply #47 on: October 08, 2015, 08:18:50 PM »
That's interesting. Did they build it to use special data types for the insurance industry or is it just better at solving matrices on a specific hardware set? Most of the stuff I've seen like that is some kind of enterprise front-end and then SAS or Matlab in the back (or MS/Oracle data tools these days).

Pretty close to C in my opinion.
It's main advantage is that it creates executables that can be called from a variety of platforms.  Most companies have the same calculations coded in multiple systems.  With VP/MS you can create the calc in one place and call it from multiple systems.  The other advantages are speed of development and ease of testing.  I created one calc in 40 hours while the estimate to
do the same in COBOL based admin system was 3-6 months.  The testing is simpler to the calf in question and the call to the executable. 

Basically VP/MS is a set of base functions and you create new functions with those.  The underlying code is written in C++.  It's really good at handling vectors and matrices which are necessary for valuing more complex life insurance products like Indexed Universal Life.

Where are my fellow programmers?
« Reply #48 on: October 08, 2015, 09:06:47 PM »
It's main advantage is that it creates executables that can be called from a variety of platforms.  Most companies have the same calculations coded in multiple systems.  With VP/MS you can create the calc in one place and call it from multiple systems.  The other advantages are speed of development and ease of testing.  I created one calc in 40 hours while the estimate to...
Thank you for the info.

Where are my fellow programmers?
« Reply #49 on: January 16, 2016, 04:22:18 PM »
This made me laugh


Where are my fellow programmers?
« Reply #50 on: January 17, 2016, 12:20:21 AM »
I just started experimenting with objective-c for iOS programming.  It somehow manages to be both cryptic and verbose.  Kind of like the worst of Perl and Java smashed together.   ::) :D

Where are my fellow programmers?
« Reply #51 on: January 19, 2016, 11:12:36 AM »
Fortran is still out there and still doing quite well. It's one of the two main supercomputer languages.
Yep, I code often with the Intel Fortran compiler.  There's nothing faster than an optimized Fortran program for number crunching.

Where are my fellow programmers?
« Reply #52 on: January 19, 2016, 10:14:38 PM »
Here'a forum-post obfuscator.  Just vanilla javascript, so it's cross-platform and can run in another tab while you're on Bellgab. The code is self explanatory, procedural, easy to follow and easy to modify.

You can get an idea of how it works by hovering over the elements (buttons, windows, etc.), but the main idea is to write a snarky comment, obfuscate it, and copy/paste it to the forum.

To get the comment back to a readable state, click UNDO as many times as the comment was encoded (there's a window that tracks the undos).

You can save the obfuscation to a file, load an obfuscation from your drive and email an obfuscation directly *IF* you have a local email client (most use webmail or equiv. these days).

I haven't done anything about the differences in how IE handles scrollbar placement (outside) verses FF and Chrome (inside), so you may want to work-over the css a bit to fix that, post back if you do.

In any case, thought it would be fun to post.

Code: [Select]

<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
     body{
            background:#000;
}
input[type='button']{
            font-family:arial;
            font-size:  12px;
            font-weight:600;
  }
         .edit{
            position:relative;
            width:      647px;
            margin-left: auto;
            margin-right:auto;
            padding:10px 5px 10px 10px;
            background:#bcbcbc;
            border-radius:8px;
         }
         .ta{
            resize:   none;
            border:1px solid #555;
            padding:0px 0px 0px 5px;
            font-family:courier, fixed;
            font-size:14px;
            font-weight:500;
         }
         .ta[id='pw']{
            width:      173px;
            background:rgba(190,190,190,0.5);
            text-align:center;
         }
         .ta[id='out']{
    width:495px;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAAB2AgMAAACogDJ9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACVBMVEX///8AAAD///9+749PAAAAA3RSTlMATU23zMi7AAAEQElEQVRo3u2aQY50tw2Eu4H0rJ3FGHBOYwN21ln8RZhvbRKWzmMJJvePsOqUWUx8g4CzGV7gQxWrRT2qH4+v+qqv+qqv+qqv+qqv+r/WP3767ufvPgv+TwBQ/Pw59Oc7PpP/BIAN4HP4vwAwAAv4sZ/+AgQQNwW+9eMBgWABMMN/PgEPAQyKz5D/wkfuHQsKfAp+qwACoN19/F1qin73oTDoxv6f/B+71S8sIHTEsnb3P5IngIiFWrf7LwCw5XpH6sKn4GFY7h4p3fiPaXdZ+DzlsM/Au0XOGidukW/tP3tDJnMyq/vYfcLUZHiRHJHZjH8BkJE8ZPJs0X68FYsk3ete7XjPSfIcktOBP3qDb5YZnGRO3xH4rVt9FLMOmafce81/h/gcRbLqZC1046E7DzPJPDHOasa7j8OsKkYyFL82H3qecxR5eMpd7VsvXiOSrGIlz26OHhQ+yw/H4YltazWr37qSc5Jk0Uezetge5eQ56We7dqvHyMkMkpxl4d3myyg/5DyMkdJuvrtzcpLJXNWNV/dyTuapWoXe3gtEYzLpnOdQw35rNz/yFItzVnX3XgRxiiySp2x1H7oWkVbBUT5ytEcPPotzFkfAN7rVu9j0PPQlotrc+3eDzzo1/bjY2j5a571BBRGZZ2KPQPtla1WOOyqWu26T6L7rAVu3UgCYtKtXLMAuLrMQW72fGS+IQU1E7WPPcDd/ZBliwQZFFtZS7f7GM6jgihUG6LpbR85zwwcA5eBhoFn982OZGNOVRKp4Mz6AJfOiGNyrebX0Bhg0zji3AIph3dFTROicczngu7f376JwiMxahQDWbsV/D4jZQnGOsx3tqyWHK3yOujate+JhYQMqpK+T5PLmkWMGkUXaHZUV7bcdA0ZmhDEnTVtvOz+oiFzUwyJ445bu5CPu2HSXA8FsNt8R5Lqr6tAMzQv1fwGX4Lo5NEks9G62XqqATcXCVXW6n5LegIErlxjiHE6s3p1uAJJnQ+B5cq/ekfMmiruuEHPh9HH3brSfAmSeBdWqal8rPu+lZl4le56T3euFJywn56jiYYY3bzWfDqxLOckZJ8Oa3/FMNCo3ZxQzXHuj97hE071mcY47rfkl6/E9sH0wJyvnHt6s/gW3KCNHnpuC3tvO482wdzIzT06c5seUxzNgVpMk6SmwP3rxS9Q9klnzrGr/68q/za9ppZYRU2P9/mjOHtatWGHuESa9vX88JcOgGqJ2eXf0Hk/YhmamQS4T/NmLf8BNvE6xzCPQ3PvHS5edQbrLMHRH7/GDlF4j0n2kLu/Gv6+KNImooBr+ajf/dsSCDPcN6Vb/xLUW4LrjRL/6h49lUCBWhEo7Hnpjw5ad2PB2vGiqZEy9Ana149/F7kFGlcXqN/8NOdKdUUPQr/6XtU8VnSPdZjv+ZXFd00+UrcV2/FP8VJ2cvlX61T9edulQVlgI//ovu3oGtEwd5J4AAAAASUVORK5CYII=");
background-repeat:  no-repeat;
background-color:   rgba(255,255,255,0.5);:
  z-index:50;
         }
.ta[id='log']{
    width:128px;
}
.ab{
            position:absolute;
      top:26px;
left:571px;
z-index:-1;
}
         .imptxt{
            font-family:arial, sans-serif;
            font-size:12px;
            font-weight:600;
            font-style:italic;
         }
     .exp{
            margin-top:2px;
            font-family:arial, sans-serif;
            font-size:12px;
            font-weight:600;
            font-style:italic;
     }
        .imp{
            width:238px;
            margin-top:2px;
            border:1px solid #555;
padding:0px 0px 0px 0px;
            font-family:courier, sans-serif;
            font-size:12px;
            font-weight:500;
     } 
       .mxr{
            margin:6px 5px 0px 0px;
            font-family:arial;
            font-size:12px;
            font-weight:600;
            float:right;
     }
         .mxr[id='obfu']{

            margin-top:0px;
            font-size:8px;
         }
         .mxr[id='bgab']{

            margin-top:0px;
            font-size:12px;
         }
         .obdiv{
            position:absolute;
            bottom:6px;
            right: 4px;

         }
         .bgab{
            position:absolute;
            bottom:11px;
            left: 490px;

         }
 
    </style>

    <script type="text/javascript">

    //////////////// Core functionality ///////////////

    //// global data object
    GDO={};
 
    //////////////// Coders/Decoders //////////////////

    //// Origin->Base64
    function toB64()
    {
         log('tob64');
         var ps=GDO.out.value;
         var r= btoa(ps);
         GDO.out.value=r;
    }

    //// Base64->Origin
    function fromB64()
    {
         log('fromb64');
         var ps=GDO.out.value;
         var r= atob(ps);
         GDO.out.value=r;
    }

    //// ASCII->CharCode
    function toCharcode()
    {
         log('tocharcode');
         var a=[],o='',i,z;
         var ps=GDO.out.value;
         for(i=0; i<ps.length; i++){
               z=(('000'+(ps.charCodeAt(i))).slice(-3))+' ';
               a.push(z);
         }
         for(i=0; i<a.length; i++){
               o+=a[i];
         }
         GDO.out.value=o;
    }

    //// CharCode->ASCII
    function fromCharcode()
    {
         log('fromcharcode');
         var a=[],i,z='';
         var ps=GDO.out.value;
         a=ps.split(' ');
         for(i=0; i<a.length-1; i++){
               z+=String.fromCharCode(a[i]);
         }
         GDO.out.value=z;
    }

    //// HEX Encode
    function toHex()
    {
         log('tohex');
         var a=[],i,z='';
         var ps=GDO.out.value;
         for(i=0; i<ps.length; i++){
               z=(('00'+(ps.charCodeAt(i).toString(16))).slice(-2))+' ';
               a.push(z);
         }
for(i=0,z=''; i<a.length; i++){
               z+=a[i];
         }
         GDO.out.value=z;
    }

    //// HEX Decode
  function fromHex()
  {
         log('fromhex');
         var a=[],b=[],i,z='';
         var ps=GDO.out.value;
         a=ps.split(' ');
         for(i=0; i<a.length-1; i++){
               b[i]=parseInt(a[i],16);
               z+=String.fromCharCode(b[i]);
         }
         GDO.out.value=z;
  }

    //// XOR -  restricted to printable text chars, no pwd hash, not secure
  function toXor()
  {
         log('xor');
         var p,h=[],i,j,v,sc,pc,o='';
         var s =GDO.out.value;
         var pw=GDO.pw.value;
         p=pw.length>4?pw:'@#BeL$%lGa^&B*(';
               
         for(j=0;j<p.length;j++)
              h[j]=p.charCodeAt(j)+10;
               
         for(i=0,j=0; i<s.length; i++,j++){
              j =(j>=h.length)?0:j;
              sc=s.charCodeAt(i);
              pc=h[j]; 
              v =sc^pc;
              if(v>31&&v<127)
                 o+=String.fromCharCode(v);
              else
                 o+=String.fromCharCode(sc);
         }
         GDO.out.value=o;
    }


    //////////////// File I/O //////////////////

    //// Save text and undo log
  function exportENCv2(){ 
     
      if(!(getexpName())) return;
      var TTW = '<CODE>\n'+GDO.out.value+'\n</CODE>\n\n<UNDO>\n'+GDO.log.value+'</UNDO>';
  var FSA = GDO.expname;

      var TFB = new Blob([TTW], {
          type: 'text/plain'
      });

      if (GDO.ieVer>-1){
          window.navigator.msSaveBlob(TFB, FSA);
      }else{
        var dlLink           = document.createElement("a");
        dlLink.download      = FSA;
        dlLink.href          = window.URL.createObjectURL(TFB);
        dlLink.onclick       = function(e) { document.body.removeChild(e.target); };
        dlLink.style.display = "none";
        document.body.appendChild(dlLink);
        dlLink.click();
      }
   }


    //// load encoding and undo log
    function importENC()
    {
  var req = false;
  if(window.XMLHttpRequest){
              try {
                    req = new XMLHttpRequest();
                  } catch (e) {
                    req = false;
                    alert('import error');
      }
  }
  if(req){
    req.open('GET', getImpName(), false);
    req.send(null);
    GDO.buf=req.responseText;
  }
    }


    //////////////////// Utility /////////////////////

    //// Determine where user parked this html
    function getLocalPath()
    {
var s=window.location.href;
               s=s.replace('file:///','');
               s=s.replace('%20',' ');
               s=s.replace('%20',' ');
           var n=s.lastIndexOf('/');
           var l=s.slice(0,n);
               GDO.m18 = atob('QkVMTEdBQi5DT00=');
               GDO.m19 = atob('TUlYUiB2MDE=');
               GDO.m20 = atob('T0JGVVNDQVRPUg==');
               return l;
     
    }

     
    //// Get export filename from user
    function getexpName()
    {
           var r=prompt('Enter a Filename for this Encoding : ', '');
               if(r==null||r.length<2) return 0;
           var n=r.lastIndexOf('.');
               if(n>(-1)) r=r.slice(0,n);
               GDO.expname='ENC.'+r+'.ENC';
               return GDO.expname;
                           
    }
 
   
//// Load a saved ENC file from disk
    function getimpFile()
    {
           var file=document.getElementById('imp').files[0];
           var name=file.name;
           if(!(verify(name))){
                alert(name+' isn\'t a supported file. *.ENC files only.');
clearfile();
                return;
           } 
           var buf='', reader;
           reader = new FileReader();
           reader.onload = function(e) {
                  buf=reader.result;
                  loadfile(buf);
           }
           reader.readAsText(file); 

    }


////clear bad file entry
function clearfile()
{
       document.getElementById('imp').value='';
}


//// loader back-end
    function loadfile(buf)
    {
        var a=[],i,c='',u='';
            a=buf.split('\n');

          for(i=0; i<a.length; i++)
          {
                if(a[i]=='<CODE>')    continue;
                if(a[i]=='</CODE>')      break;
                c+=a[i];
          }
      for(++i; i<a.length; i++)
          {
                if(a[i]=='<UNDO>')    continue;
                if(a[i]=='</UNDO>')      break;
                a[i]=a[i].replace('\r','');
                a[i]=a[i].replace('\n','');
                if(a[i]=='')          continue;
                u+=a[i]+'\n';
          }

        GDO.out.value=c;
        GDO.log.value=u;
        validate();
        validateud();         
    }


    //// verify selected file is one of ours
    function verify(fname)
    {
       var p1=0,p2=0;
     
       if((fname.search('ENC.'))!=(-1)) p1=1;
           if((fname.search('.ENC'))!=(-1)) p2=1;
       if(p1&&p2) return 1;
           else return 0;
    }


//// determine if is a supported browser
function isSupported()
{
  var nAgt= navigator.userAgent, supported=0;
  if((nAgt.indexOf('MSIE'))     != -1) supported=1;
  if((nAgt.indexOf('Trident/')) != -1) supported=1;
  if((nAgt.indexOf('Chrome'))   != -1) supported=1;
  if((nAgt.indexOf('Firefox'))  != -1) supported=1;
 

  var ie    = nAgt.match(/MSIE\s([\d.]+)/),
      ie11      = nAgt.match(/Trident\/7.0/) && navigator.userAgent.match(/rv:11/);
      ieEDGE    = nAgt.match(/Edge/g),
      GDO.ieVer =(ie ? ie[1] : (ie11 ? 11 : (ieEDGE ? 12 : -1)));
 
      if (ie && GDO.ieVer<10) supported=0;
   
  return supported;
}


//remove div and all nodes under a div
///////////////////////////////////////////////////
function removediv(id)
{
   var d=document.getElementById(id);
 
   while(d.firstChild) {
     d.removeChild(d.firstChild);
   }
   d.parentNode.removeChild(d);

   return;
}


    //// email your msg if mailto: is upported
    function sendmail()
    {
       var addr, link, msg, a, b;
   
   if(GDO.out.value.length<1){
      alert('No text to send!');
  return;
   }
 
       addr=prompt('Email Address to send to : ','');
       if(addr==null||addr.length<6) {
            alert('Invalid email address');
            return 0;
       }
       a=addr.indexOf('@');
       b=addr.indexOf('.');
   
       if((a<0)||(b<0)){
            alert('Invalid email address');
            return 0;
       }
       msg='<CODE>\n'+GDO.out.value+'\n</CODE>\n\n'+'<UNDO>\n'+GDO.log.value+'</UNDO>\n'
       link        = "mailto:"+addr+"?subject="+"Latest MIXR file"+"&body="+escape(msg);

       window.location.href = link;
    }


    //////////////////// UI stuff /////////////////////

    //// LOG actions
    function log(str)
    {
        var l=document.getElementById('log').value;
        l+=str+'\n';
        GDO.log.value=l;
        GDO.ud.disabled=false;
    }


    //// Clear text, disable buttons
    function tclear()
    {
        GDO.out.value=            '';
        GDO.log.value=            '';
        GDO.tob64.disabled=     true;
        GDO.tocharcode.disabled=true;
        GDO.tohex.disabled=     true;
        GDO.xor.disabled=       true;
        GDO.pw.disabled=        true;
        GDO.cl.disabled=        true;
        GDO.sel.disabled=       true;
        GDO.ud.disabled=        true;
        GDO.eml.disabled=       true;
        GDO.exp.disabled=       true;               

    }

   
//// Enable buttons on text input
    function validate()
    {
        var l=GDO.out.value.length;
      if(l>0){
     GDO.tob64.disabled=     false;
     GDO.tocharcode.disabled=false;
     GDO.tohex.disabled=     false;
     GDO.xor.disabled=       false;
     GDO.cl.disabled=        false;
     GDO.sel.disabled=       false;
     GDO.pw.disabled=        false;
                 GDO.exp.disabled=       false;               
     GDO.pw.value=              '';
                 GDO.eml.disabled=       false;
                 GDO.exp.disabled=       false;

        }
        else{
   
                 GDO.tob64.disabled=     true;
     GDO.tocharcode.disabled= true;
     GDO.tohex.disabled=      true;
     GDO.xor.disabled=        true;
     GDO.cl.disabled=         true;
     GDO.sel.disabled=        true;
     GDO.pw.disabled=         true;
                 GDO.exp.disabled=        true;               
     GDO.pw.value=              '';
                 GDO.eml.disabled=        true;
          }
    }


    //// Enable undo button, special case
    function validateud()
    {
         if(GDO.ud.value.length>2)
              GDO.ud.disabled=false;
         else
              GDO.ud.disabled=true;
    }

   
//// Disable undo button if log is empty
    function udl(l)
    {
         GDO.ud.disabled=(l>1)?false:true;
    }
           
   
//// Highlight all text
     function selectAll()
     {
         GDO.out.focus();
         GDO.out.select();
     }


//// Undo
     function undo()
     {
           var a=[],l,i,s;
   
           l=GDO.log.value;
           if(l==''){GDO.ud.disabled=true; return;}
               a=l.split('\n');

           for(i=a.length; i>-1; i--){
               if(a[i]==undefined||a[i]=='') continue;
             switch(a[i]){
     case 'tob64':
                       a.splice(i,1);
                       fromB64();
                       s=a.join('\n');
                       GDO.log.value=s;
                       udl(a.length);
                       return;
                 break; 
                 case 'tocharcode':
                        a.splice(i,1);
                        fromCharcode();
                        s=a.join('\n');
                        GDO.log.value=s;
                        udl(a.length);
                        return;
                 break;
                 case 'tohex':
                        a.splice(i,1);
                        fromHex();
                        s=a.join('\n');
                        GDO.log.value=s;
                        udl(a.length);
                        return;
                 break;
                 case 'xor':
                        a.splice(i,1);
                        toXor();
                        s=a.join('\n');
                        GDO.log.value=s;
                        udl(a.length);
                        return;
     break;
                 default:
                 break;
              }

          }

     }

   


    //////////////////// Startup /////////////////////

    //// Intitialize
    onload=function()
    {
                //elements
                GDO.out       =document.getElementById('out');
                GDO.pw        =document.getElementById('pw');
                GDO.log       =document.getElementById('log');
                GDO.ud        =document.getElementById('ud');
                GDO.tob64     =document.getElementById('tob64');
                GDO.tocharcode=document.getElementById('tocharcode');
                GDO.tohex     =document.getElementById('tohex');
                GDO.imptxt    =document.getElementById('imptxt');
            GDO.xor       =document.getElementById('xor');
                GDO.cl        =document.getElementById('cl');
                GDO.sel       =document.getElementById('sel');
                GDO.imp       =document.getElementById('imp');
                GDO.exp       =document.getElementById('exp');
                GDO.eml       =document.getElementById('eml');
                GDO.bgb       =document.getElementById('bgab');
                GDO.obf       =document.getElementById('obfu');
                GDO.mxr       =document.getElementById('mixr');
                GDO.ab        =document.getElementById('ab');

                //data buffers
                GDO.m18 = '';
                GDO.m19 = '';
                GDO.m20 = '';
                GDO.path=getLocalPath();
                GDO.buf ='';
                GDO.impname='';
                GDO.expname='';

                // strings
                GDO.m1    ='Don\'t speed-click buttons or you\'ll lock-up your browser.\n';
                GDO.m2    ='XOR: has a default pwd or you can roll your own';
                GDO.m3    ='Undo backs you up one action per click';
                GDO.m4    ='Select, then copy/paste to the forum';
                GDO.m5    ='Log: remembers your actions for Undo';
                GDO.m6    ='Type or paste your stuff here, encode, copy and paste to forum\n';
                GDO.m7    ='  RECREATIONAL USE ONLY! Not cryptographically secure!\n ';
                GDO.m8    ='Like it says, clears everything';
                GDO.m9    ='Nothing happens until you type or paste something in here.\n';
                GDO.m10   ='\nXOR is normally a binary function, this version is restricted to printable\n';
                GDO.m11   ='ASCII chars to be compatible with the other encoders for mix-n-match use,\n';
                GDO.m12   ='needless to say this greatly diminishes any security in itself, not to mention\n';
                GDO.m13   ='the password isn\'t hashed. So just be advised, RECREATIONAL use only!\n\n'; 
                GDO.m14   ='\nAs you continue to encode, your output grows larger, taking more\n';
                GDO.m15   ='time to process in the browser, so even if your machine is fast,\n';
                GDO.m16   ='the javascript engine and your browser may lag behind your clicks.\n\n';
                GDO.m17   ='Don\'t speed-click the buttons, you know the drill.\n';
                GDO.m21   ='XOR password';
GDO.m22   ='Import >>';
GDO.m24   ='<a href="http://bellgab.com">BELLGAB.COM</a>';
                GDO.impt1 ='\nIf you saved an ENC file of your own or recieved one from another,you\n';
                GDO.impt2 ='can load it here and decode it, just press Undo until it decodes.\n\n';
                GDO.expt1 ='\nYou can save an encoding to a file. Don\'t type a file extension, it won\'t be used.\n';
                GDO.expt2 ='All files are \'bookended\' with ENC to assure we don\'t try to decode something we\n';
                GDO.expt3 ='can\'t handle. You can pass the file you make to another and they\'ll be able to decode\n';
                GDO.expt4 ='it if they have this HTML web-app, everything is just ASCII text in the file you save.\n\n';
                GDO.emt1  ='This ONLY works if you have a desktop email client (you don\'t error-out when you click\n';
                GDO.emt2  ='on mailto: links). If you use webmail exclusively, this won\'t work for you, pity...\n';
                GDO.hext1 ='\nNo, this won\'t convert between Decimal and Hex numeric values, what it -Will- do is\n';
                GDO.hext2 ='convert the ASCII value of a character to a Hexified representaion of that character code.\n\n';
                GDO.hext3 ='So if you expect 255 to evaluate to FF, it won\'t happen. Instead you\'ll get the char codes\n';
                GDO.hext4 ='for 2 and 5 and 5, which in Hex are: 32 35 35, so there you go.\n';

               
                //initialize values
                GDO.out.value=                     '';
                GDO.out.title=          GDO.m6+GDO.m7;
                GDO.out.placeholder=    GDO.m7+GDO.m9;
                GDO.out.disabled=               false;
                GDO.log.value=                     '';
                GDO.log.disabled=                true;
                GDO.log.title=                 GDO.m5;
                GDO.tob64.disabled=              true;
                GDO.tob64.title=   GDO.m1+GDO.m14+GDO.m15+GDO.m16;
                GDO.tocharcode.disabled=         true;
                GDO.tocharcode.title=         GDO.m17;
                GDO.tohex.disabled=              true;
                GDO.tohex.title= GDO.m17+GDO.hext1+GDO.hext2+GDO.hext3+GDO.hext4;
                GDO.xor.disabled=            true;
                GDO.xor.title=GDO.m17+GDO.m10+GDO.m11+GDO.m12+GDO.m13;
                GDO.pw.disabled=              true;
                GDO.pw.title=                  GDO.m2;
                GDO.pw.placeholder=           GDO.m21;
                GDO.ud.disabled=            true;
                GDO.ud.title=                  GDO.m3;
                GDO.sel.disabled=                true;
                GDO.sel.title=                 GDO.m4;
                GDO.cl.disabled=                 true;
                GDO.cl.title=                 GDO.m8;
                GDO.imp.value=                     '';
                GDO.imp.title=    GDO.impt1+GDO.impt2;
                GDO.exp.disabled=                true;
                GDO.exp.title=GDO.expt1+GDO.expt2+GDO.expt3+GDO.expt4;
GDO.exp.disabled=                true;
                GDO.eml.title=      GDO.emt1+GDO.emt2;
GDO.eml.disabled=                true;
                GDO.bgb.innerHTML=            GDO.m18;
                GDO.mxr.innerHTML=            GDO.m19;
                GDO.obf.innerHTML=            GDO.m20;
GDO.imptxt.innerHTML=         GDO.m22;
                GDO.nsup=                           0;
                GDO.ieVer=                          0;


                //supported browser?
if(!isSupported()){
   alert('This app only supports Firefox, Chrome and Internet Explorer 10+.');
                   GDO.nsup=1;
}

}

 
</script>
</head>

<body>

<div class='edit' id='edit'>
<!-- <div class='ab' id='ab'></div> -->
    <textarea id='log' class='ta' rows='6' cols='14'                     ></textarea>
    <textarea id='out' class='ta' rows='6' cols='60' oninput='validate()'></textarea><br>

    <input type='button' id='tob64'           value='to B64'      onclick='toB64()'      ></input>
    <input type='button' id='tocharcode'      value='to CharCode' onclick='toCharcode()' ></input>
    <input type='button' id='tohex'           value='to Hex'      onclick='toHex()'      ></input>
    <input type='button' id='xor'             value='XOR'         onclick='toXor()'      ></input>

    <input type='text'   id='pw'  class='ta'                                             ></input>
     
    <input type='button' id='ud'  class=''    value='Undo'        onclick='undo()'       ></input>
    <input type='button' id='cl'  class=''    value='Clear'       onclick='tclear()'     ></input>
    <input type='button' id='sel' class=''    value='Select All'  onclick='selectAll()'  ></input><br>
    <input type='button' id='exp' class='exp' value='Export'      onclick='exportENCv2()'></input>
    <span  class='imptxt'id='imptxt'></span>
    <input type='file'   id='imp' class='imp' onchange='getimpFile(this.files)'></input>
    <input type='button' id='eml' class='eml' value='Email Code'  onclick='sendmail(); return false'></input>
    <span  class='mxr'   id='mixr'></span><br>
    <div   class='obdiv'>
<span  class='mxr'   id='obfu'></span>
    </div>
    <div   class='bgab'>
<span  class='mxr'   id='bgab'></span>
    </div>

</div>
<script type='text/javascript'>
    if(GDO.nsup)
       removediv('edit');
</script>

<!-- 2015 Tony Triola  for Bellgab -->

</body>
</html>


Where are my fellow programmers?
« Reply #53 on: January 30, 2016, 08:10:49 PM »
I've spent the last year working with Apache Spark in some form. If you are looking for something to add to your coding skills, I highly recommend Spark.
http://spark.apache.org/

Where are my fellow programmers?
« Reply #54 on: February 03, 2016, 05:07:27 PM »
Was forwarded this and it gave me a good laugh:

I fucked up Git so bad it turned into Guitar Hero


Where are my fellow programmers?
« Reply #55 on: February 03, 2016, 06:55:55 PM »
I fucked up Git so bad it turned into Guitar Hero

That looks like version "Freebird".

Where are my fellow programmers?
« Reply #56 on: February 25, 2016, 11:03:51 PM »
Was forwarded this and it gave me a good laugh:

I fucked up Git so bad it turned into Guitar Hero


Now that's fuckin' funny :)