Wednesday, August 1, 2018

TRON II

Yesterday would have been my mother's birthday. Gets me thinking about my father, and how grateful I am to still have him around.

He is a tremendous father. He taught me discipline and how to practice.

He explained over, and over, and over again,

"Most people will tell you that practice makes perfect. The truth is, practice makes permanent. Only perfect practice makes perfect."

Which brings me to TerryRON = TRON (Ron is my father's name). He bought me my first computers and gaming systems and always made sure I had the latest gadgets, books and educational opportunities.

Glad to make it through Wednesday. Only two more days to the weekend.

But for tonight, I'm going to kick back and enjoy..,.


Tuesday, July 31, 2018

My foobar experience withgoogle!



void(0) = nolybab

dedicated to my mother whose birthday would be today. been missing her all day.

Work In Progress...just trying to get this out there to help others, but also editing as I go along and eventually within a day or so this will be pretty cleaned up.

first, if you have no idea about foobar.withgoogle.com just google it

or, try going to www.google.com/foobar

at work, google search on programming topic, window opens in google results screen (refer to other blogs for images of search results screen). investigate, whois withgoogle.com, search foobar and withgoogle on internet etc, then finally click on link to follow...

first challenge (pretty easy, timer, approach, comments, etc)
second challenge: also pretty easy. did take some thinking, but once it occurred to me it was very easy to implement. at this stage, i was thinking, why these unit tests, why these specific algorithms and examples?
third challenge: solved it using someone elses code, wsn't really interested in getting a job, just in seeing what was at the end. when i solved it, i got a key!

screenshot taken after the fact (to show invite)

took me a while to decide what to do with the key. at first, i wanted to give it to a colleague or friend, but who? but i just couldn't stop thinking about those IDs, the patterns from the example, what it all means...etc...

but I had a key. For me, this was like a free life. At the time, I just started the fourth challenge. and there was the challenge about the maze, and the thoughts of the IDs,why those examples? particularly on the maze, as i'll explain, the challenge was to find shortest path through maze...the trick was that any wall can be removed and to return the number of steps...and i just kinda translated the circumstance/narrative into the wall i wanted to remove, was the wall keeping me in this maze in the first place, or maybe the wall that keeps people out? walls, cubes, mazes...

so first thing I did was solve the challenge, but I did not submit. I think I had like 2 days or something. And since I had a key (free life), i decided to go deeper and tinker a bit and take my time. see what was under the hood of this baby.

once i was of this mindset, I remember the first command I entered was [] (basically, thinking of passing in an empty array)...sure, why not? instead of the usual, command not found, error message, I got "Scram! Gravy ain't wavey" (notice the ey not just wavy). At first, I thought Ah Oh. Scram? obviously get out...but gravy ain't wavey? that must mean that nonsense input was 'gravy' and it ain't wavey (cool)...but hmmm...got me thinking...so i tried more and more...here are some screenshots of what I found.


and some more


So I did a google search to see if anyone else had any info on foobar withgoogle and then just the keywords i had found so far, etc., and found a couple links on some hacker forums where someone thought it was worth mentioning, and tons of info on the web about all of it.

One thing stuck out in my mind. Where there's foo there's fire! I decided to keep digging. My question was, how many messages are there like that for bad commands? How would I know if i had discovered them all?

then it hit me, the maze puzzle (which i was on) and the wall to be removed...and where there's foo, there's fire, this was designed by google...there must be more to this...

START THINKING OUTSIDE THE BOX IMMEDIATELY was my thought

Now i don't care about a job, but i know that if i were at google and designed this tool i would want to find people that can think outside the box...enough said...

so how would I know if I had found all the messages? I decided to go look the only place I could hope to find them...and I found this:

NOT_FOUND_QUOTE:["He who foos last foos best!","Many smoke but foo men chew!","Notary Sojac!","Where there's foo, there's fire!","1506 nix nix!","Scram gravy ain't wavey!"]

now, i'm sure any 'real' hackers out there aren't really too impressed at this point. fact is, it's just a few quotes to spurt out randomly to malformed input...no biggie...but still...where there's foo, there's fire...I decided to dig deeper...(before i go on, just beware the sentinel...trust me, if you can get through problem one on your own and you know even the basics about web development, you can easily find everything i am about to show you. question is, why it takes till now to find it? did others find it and not reveal anything? anyway...to continue...

so i searched for things I knew I could do. pulling up 'help' i can see the following:


so I searched for 'feedback' and hit paydirt!



I found the following undocumented (in help) commands:

define("commands/home"
define("commands/login"
define("commands/mount"
define("commands/pwd"
define("commands/recruitme"
define("commands/whoami"
//note, i think part of the goal is to know what to mount and the pwd

or even better:

define("commands/commands",["commands/cd","commands/cat","commands/deleteme","commands/edit","commands/feedback","commands/help","commands/home","commands/less","commands/login","commands/ls","commands/mount","commands/pwd","commands/recruitme","commands/request","commands/save","commands/submit","commands/verify","commands/status","commands/whoami","commands/common"]

screenshot of editor with alt-e

screenshot of alt-e  key combination in editor

remember, where there's foo, there's fire (be careful how you use key combinations in editor and parameters you pass to pwd and mount as you may mess up your ability to perform certain functions if you fall into a trap--they want you not just thinking out side the box, but THINKING, outside the box--at least as far as I can tell).



I ain't sayin' i cracked it...i'm saying they left out the welcome mat!




Forgot to add that Gödel, Escher, Bach: An Eternal Golden Braid (Douglas R. Hofstadter) is my bible, and my favorite shape would either be the dodecahedron (or it's hyper-equivalent), or the Hofstadter Butterfly (last edit: possibly scutoids would also qualify to be on the list).

Friday, March 29, 2013

TRace ON

Well it's been more than 2 years now since I last posted. It's funny to look back now and realize that Google Wave was such a brief flash in the pan. In any case, I have been far too busy lately to even bother with blogging. However, I've started a new project so I decided to start documenting my progress, as others might find it useful in reference.

I was working on my profile for my Kick-Starter Project (Fractal Walls), and was somewhat dissapointed that the 'about me' section only accepted 300 characters (I should have read the small-print before drafting such a detailed explanation). In any event, I did manage to summarize myself in the recommended 300 characters, but I didn't want to lose this interesting write-up. Also, those researching the project or myself might find the additional information insightful. Also, I just recently updated my Profile On LinkedIn

TRace ON - paradigm lock

I was about 13 when Disney released the classic Tron. I remember at the time I had a TRS-80, my first computer.  I had not really learned to program, per-se, though I did know how to load, edit and save programs, peek and poke memory, create image sprites that displayed and moved on the screen, make some sounds, simple logic loops, control input and even basic logic flow such as if/then/else and goto.

The TRS-80 programs were saved on regular cassette tapes and executed in an interpreter environment (Basic 8, as I recall). Suffice it to say that I had learned the fundamentals of programming, though I was very much a novice, and learned largely by trial and error.

So I had just finished watching Tron and absolutely loved the movie. Naturally, when I get home, the first thing I do is start up my computer. The computer warms up and the monitor flickers to life and the command prompt appears. I type 'TRON' and press enter.

Little did I know that TRON meant 'TRace ON'. This was the first time that I had seen the 'registers' and memory, which dumped to the screen. I was literally blown back in my chair and the blood went rushing to my head. For a minute I just sat transfixed, wondering if I had found some secret backdoor into the computer world, like Flynn had.

Anxiously, I insert my favorite game cassette and load the program, unsure of what else to do, I typed in 'run'. To my frenzied (at this point) delight and surprise, I was able to single-step through the program, see the registers and even see memory at run-time, something I had never even conceived possible (the 'users-manuals' that came with the computers mentioned NOTHING about this voodoo!).

Needless to say, at that point there was no going back and I was hopelessly obsessed with programming computers to this day. BTW: It eventually occurred to me that TROFF would help me turn tracing off.

Here I am, 28 years later, having worked the past 23+ years professionally at various levels of development, architecture and executive roles within both Enterprise and start-up organizations. I specialize in web 2.0, mobile and social technologies, analytics, virtual currencies, collaborative monetization and production, data warehousing (ETL, CUBES, Hadoop, Big Data, etc), biometrics security and user privacy. I love to architect and program, especially on modern cloud platforms. Although I have a long history in the Enterprise, I also have a long history as a serial entrepreneur, having been involved in several start-ups.

My favorite blend of technologies includes GAE, AWS, Azure, NoSQL, Graph Databases, ElasticSearch, HTML5/CSS, AJAX, JSON, WebGL, JavaScript, Python, C#, Node.js, OAuth and Open Source.