Twisted Pristine Avenue


It began several years back. The obsession started by suggestion.

I've forever had the idea of programming or engineering or something containing a technical skill set that would emerge from within spawn hours and days and months of similarly obsessive studying and blossom into a fruitful and concise and measured plan of action for the foreseeable future.

My experience has been anything but measured. For long periods I've wavered into apathy putting aside the entire idea. For long seasons I've wandered the internets seeking out the ONE PATH. The avenue to which all other paths and futures bow down. The journey which by undertaking will affirm success and by traversing will constantly renew my spirit and resolve.

I embarked upon the grand highway back in 2012. I wrote with fervor and possibility.

I'm now at another beginning though I've been here for a couple years already.

Python HTML CSS Javascript Java C C++ Ruby. These I've dabbled in and around through Codecademy through edX through Lynda through freeCodeCamp through community college courses.

But I've gone further to expand my interest to broaden the highway to enlarge the scope of my indecision.

Calculus I-IV Physics I-II Chemistry I-II Diff/Eq Linear Algebra Engineering Mechanics I-II. Having obtained a taste of the scope of possibility I broke down the door leading to a perpetual interstate of overlapping ideas frameworks and options.

I stuck myself on an eternal cloverleaf. I've been very busy but not very purposeful.

I'd insert a resolution here but it is as yet unformed and if previous precedent can be trusted it would only serve as bedrock to a tangled version of the original idea.

Fret not though. I do know the pang of regret birthed from a lack of goals. I'll say this. My latest investigations have brought me to the doorsteps of a C++ Developer series at Lynda. They've brought me to the gates of the EE and MSBA programs at UTK.

Full time schooling is hard to imagine on top of work and family (the order of importance of which is in complete reverse). Time being a finite devil I hope that more is revealed and that within the revealing comes the clarity and/or purpose that has eluded me.

Two truths war within me.

 

I strive to pick more purposefully to dwell more carefully and to live more fully.


swindling dwindling phrases

Eager to find completion, if only for its own sake, I've put the final touches on the final bits of part two of our novel this morning. 

What's that? Oh, yes, my best friend Brian and I have been scripting our first fantasy novel for the better part of either one or two years depending upon the proper perspective of when the real efforts began.  

Jon Swansong and the Pirata Isle will probably consist of three parts upon its completion, though the editing process has seen many additions and changes to the structure of the novel as a whole.  It's a young adult fantasy complete with magic, ships, mysterious islands and an ancient evil bad guy bent on taking over the world.

It's basically awesome.

We are working on achieving a publishing deal through Amazon and look forward to telling you more soon. 

What does this have to do with hacking and information security? It would take too long to draw the crafty comparisons and parallels between these two creative, yet also analytic processes. The site and podcast will continue to be an extension of my aforementioned mission to crucify complacency.

backslash backlash

Back in '07-'08 after I'd hashed out what exactly the fna show was to at least try and be, I found myself apologizing after periodic absences from the interwebs. I had become good at producing the content that I would extract from the tirades in my head, but I was consumed by a self-imposed guilt based off of a perceived expectation from a non-existent collection of listeners.

The whole point of fna was a self-professed crucifixion of complacency, and it rarely wavered from that noble end insofar as I sought it. My problem was not the failed regularity which I felt I owed others but believing my own lie that I might achieve fulfillment through their eventual amusement. 

"...the action is the juice." --Michael Cheritto

Heat

Heat

Falling from grace and again from regularity, I won't apologize for the diversion of purpose that iwanttohack has taken. Rather, I'd like to continue utilizing it is a platform for my continual crucifixion of complacency.

This being the case, please know three things currently:

  1. Idiotbooks has spurned me back into action, however un-directional it may currently be, and I'm thoroughly impressed with and grateful for my recent exposure to genius.
  2. The novel that my friend Brian and I have been crafting is nearing edited completion and has taken much, if not all, of my creative time over the past couple months. I hope to present a multi-media look at it soon.
  3. I Want to Hack is not going anywhere. Though its purpose may and likely is evolving, I will continue the work here that fuels the fire within.

java.that.hut()

The long overdue 2013 debut of the podcast has arrived. I've been coding away on codecademy.com for the past 49 days. Regrettably, I failed to code yesterday, resulting in the loss of my streak. This mars nothing but my ego as it will take me nearly a full two months to surpass my current record.

My streak is reset

Enjoy our seventh I Want to Hack podcast episode below or in iTunes. We discuss putting some of my new coding knowledge to use behind the scenes in GoogleDocs.

Subscribe for free!

Subscribe for free!

snap.excel

So you're all familiar with the run of the mill functions in Excel, yes? You know the type: SUM(A2:C4) where it will total up the sum of all the numbers in the area from A2 to C4. Well these are good and useful, however, I built a pretty large spreadsheet on GoogleDocs for work. It's used for inventory, inter-store ordering and to make my life generally easier in keeping track of the profitability of each location.

Well, a problem arose as I implemented them--I couldn't just make several forms ahead of time for each month for each store. Regrettably, the items and prices will change over time and so the easiest thing to do is to copy the prior month's form at the start of a new month and clear all the entries.

Drop Down Menu!

Confused yet? None of that really matters. The point is, I needed a quick way to clear a million varying ranges on several tabs of each spreadsheet. Enter: GoogleScripts. That's right, you can write Java behind the scenes and have it execute. Well, I've been learning Python, but it only took a little research to figure out the proper way to make the clear functions. As an added bonus, I figured out how to create an additional Drop Down Menu to access the functions.

My first real-life application of programming. :)

/e

A bit of the code. The rest is just more of the same clear function with different ranges for the different sheets.

data.code.security

The new classes have begun. I am awaiting the final verdict from my Python course. I'm confident that I passed, but always hesitant to rejoice till the final word comes out. I've gathered together all my wits and put together the following plan/goal per day:

  1. Code some on Codecademy
  2. 30 min of work on Database class
  3. 30 min of work on Information Security class
  4. 500 words written in book (not related to tech, but it's on the master goal list nonetheless)

I'm pretty sure that databases are excellent

I'm pretty pumped about these two new courses. Of course, the Information Security class address precisely the genre that is my end game with all this tech stuff, and then databases are extraordinarily intriguing to me. I believe I may learn some stuff that I can put to use in my current job during that course.

Above all else, I'm striving to make little steps...baby steps, as Bill Murray would say...each day. That's where I hurt myself with Python--I didn't do it every day. 

Regarding the accompanying podcast, more shall be revealed. Angela and I are discussing doing a very brief, five minute or so update weekly. The trial run this fall was good, but it took too long to produce. I wish there were 30 hours in a day.

/e

post.year.update

Hello humble reader. I see you're still here, and I'd like to affirm that yes, indeed, we are as well. 

Christmas and New Year's have come and gone and with them a slew of postponements and mis-communications on EDX. One of the engineers was deathly ill and unable to update any of the problem sets for a few weeks. As such, that deadline which drives me to complete the videos and assignments was absent and carried away with it my perseverance. Well, I'll chalk it all up to a nice holiday break.

Angela was kind enough to get me a new microphone stand for our studio at the house and I look forward to using it for some more podcasts in 2013.

The current schedule of events is as follows:

  • The last two weeks of videos since the fun statisitcal stuff has been pretty dry and heavy on both math and theory with very little actual coding. This has depressed and confused me. There was some optimization coding, but week 10 was dedicated to Curve Fitting, which I stopped watching after not understanding what was going on. I know, I'm a horrible person.
  • The final exam will be released Thursday, January 10th and will be due on Monday
  • The final two weeks worth of videos include on graphing, dynamic programming and statistical fallacies. This is followed by a wrap up summary.

I'm honestly not sure where I stand here at the end of the course. I was really fired up about programming for the first half, but it started going way over my head during the second half of the course.

In my undertakings for 2013, I resolve that for all the MOOC's that I take, I will stay on top of all the suggested readings in addition to just the required videos. I believe this was the weakest link for Python. I just didn't read the included online textbook at all and only used it on occasion for referential purposes. This was fine in the beginning, but as concepts started adding up upon themselves, I got sucked under by the programming undertow.

And speaking of undertakings, I've got several interesting courses that I'm itching to dive into.

  • CS50x--Harvard's Computer Science I course. I'm already enrolled in this and it will remain online and available until April 15th.  
  • Introduction to Databases--by Sanford Online--I'm pretty pumped about this and it will probably take number one priority upon the conclusion of Python just for a change of pace rather than diving back into Harvard's course. It's available as a self study course on Coursera and another full-fledged offering is going live from Standford next week.
  • Game Theory--by Stanford Online--this looks quite interesting, indeed. "...mathematical modeling of strategic interaction among rational (and irrational) agents..." This course began today.
  • Information Security and Risk Management in Context--by The University of Washington--Seeing as how my goal is to actually infiltrate the IT securities field, it will probably be prudent to take a course along those lines. I signed up for this one back in the fall, but underestimated what I had time to do. As you can tell by this list of courses, I'm doing the same thing again, but that's okay. I'm learning stuff and that's what counts.
  • Introduction to Computer Networks--by The University of Washington--I'm actually more interested in taking this course and learning some of the intricacies of computer networks than I am about the securities course above. I have heard reports that it would behoove me to learn about networks first as the infosec stuff builds upon network knowledge.

Now, if there were only enough time to learn it all! Where was this zeal to learn tech stuff when I was choosing majors in college?

More shall be revealed.

def random.poltergeist()

Well we've received from important feedback from our listeners: we're way over their heads.

Being a beginner's podcast to all things IT (or, at least some Python at this point) this is not a good thing. As such, we're dumbing the episode down a bit and trying to focus on a few poignant points rather than trying to cover a bunch of material in one fell swoop.

Subscribe to the audio podcast via iTunes for free!

Subscribe to the audio podcast via iTunes for free!

In the sixth episode of iw2h, we discurss Python's random module as it pertains to a couple coin flipping functions.

Coin flipping code discussed.

Don't forget to subscribe to the show for free on iTunes!

Testing one; testing two time

It's time for 'midterm' exam two in my Python course. Doesn't make a lot of sense why they'd call both their exams midterms, but whatever. I'm coming to understand that computer think is quite different from regular think at times. I'm reviewing everything in the course it seems before attempting the test.

Topics include guess and check, exhaustive enumeration, divide and conquer, binary search, and merge sort algorithms. I'm pretty comfortable with these. I think.

Just when I start studying, I realize I haven't updated the site on what I'm studying.

There will be an annoying section of linguistic problems dealing with definitions. Likely these first two sections will include my arch enemy, the true/false query. We will be asked to program a simulation I bet. Something along the lines of the robot cleaning deal we did a couple weeks ago and the most recent Monte Carlo methods we've been looking at in dealing with probability and coin tossing where we do a million different trials of something to see the statistics behind large samples of the same test.

Not so comfortable with this stuff.

Lastly, there are two categories on the study sheet entitled Understanding data (dealing with probability, standard deviation and linear regression (drawing a blank on that one right now) and Software engineering (debugging, data abstraction and inheritance,  and specifications).

I'm anxious to see how much hair I pull out tomorrow. I plan on tackling the test then as Angela will be doing some weekend work for several hours and I should have sufficient time to zone out into the world of ones and zeros.

More shall soon be revealed.

Class Behemoth

Be sure to listen on iTunes!

So we've been in a discussion sequence centered around object-oriented programming during the last few sections of Python. Among a wealth of items that orbit over my head, we have learned about creating user-defined classes.

Here's what wikipedia has to say about classes.

This has been excellent, albeit slow, work. Join Angela and I as we (mostly I as she is exhausted today) rant a bit about the problem set I did defining various classes in order to implement a program that has a robot clean the surface of a rectangular room.

The graphical display of the program plus some of the Rectangular Room functions and class definition.

I cannot take credit for the programming of the graphical representation of the cleaning robot program that was written. The Python shell that we're using comes with PyLab, a built in program that allows you to generate line graphs and other types of graphical representations while using Python. The instructors for the course actually programmed all the PyLab code for the rectangular room and robot seen above.

Here's a link to the entire code that was written for your viewing reference.

Subscribe to the podcast for free in iTunes!

Subscribe to the podcast for free in iTunes!

I am Disappoint

I've not been a good blogger. I've not kept my imaginary audience informed. I've not told you how the recent two weeks of trials and tribulations in my coding ventures have led me to the brink of despair. I've not allowed you to relish in my emotional turmoil and constant dis-ease. I've not elaborated as to how I am failing to grasp what seem to be the most rudimentary elements of Object Oriented Programming.

I've not brought you along to share in my constant annoyances regarding how elementary Python seems to the thousands of other folks on the class forums responding to the minority of simpletons like myself who seem to all have the same trivial mishaps at the onset of each new problem set. I've not recorded these happenings for a new podcast in two weeks now.

For this, and my other shortcomings, I apologize.

Know, though, that despite the ongoing hardships that are my first seasoned attempt toward learning Python, I have persevered.

Yes, oh yes, in the face of danger and all the evil temptations to turn my back on the world of ones and zeros, the elusive and mystic matrix of all things awesome and beyond my former un-codeable comprehension, I have kept at it.

I have just completed week seven's work, though it took me multiple hours on each problem in the set.

The primary aspect that we've been focusing on both in week six and seven has been the creation of user defined classes. This has been very excellent and has paralleled some of the initial things that I learned about recursion...that being that you can initiate a recursive call on something and have it do that over and over without having to write out an iterative loop of coding.

In the case of classes, I've learned how to set up how a particular class of an object is initiated and then use that over and over with other classes using what is called inheritance. As the name implies, the sub-class inherits the traits of the primary class and  uses them automatically instead of having to define them again.


It's pretty excellent, but was hell trying to wrap my mind around initially. The code we wrote for the problem set had to do with initiating a randomly sized grid and having a 'robot' clean the tiles on the grid. We had to set up classes for the room itself, and the different types of robots which varied in their behavior on the grid (namely, how often they switched directions). I am finding more and more that the bulk of the work in programming at the stage of learning where I am is simply figuring out conceptually what exactly it is that needs to happen.

I've got a lot of the basics down and there will be no more new tools introduced in the course at this point, but it's the implementation and application of what we've been introduced to that is quite the challenge at each step of the way. I believe to encourage my sanity along, I'll have to amend and adopt (or in this case, append and implement) the old adage to read: One Line at a Time.

Angela and I will be back in the studio to record episode 5 of the podcast after the Thanksgiving break. Look for it next week!

Subscribe to the audio podcast in iTunes!!

Subscribe to the audio podcast in iTunes!!

Decrypting the Matrix

Here is Podcast number 4 which covers a program for which I scripted several of its items in order for it to encrypt a string of words using a Caesar Cipher and similarly to decode a string that was encrypted with a Caesar Cipher. 

Part of the program to encrypt and decode Caesar Cipher messages on the right and the same program in action on the left.

Subscribe to the podcast for free in iTunes!

Subscribe to the podcast for free in iTunes!

Caesar Ciphering

This week's assignment has me writing a code to encrypt a message using a Caesar Cipher! Sounds pretty fun, though if Pythonic history holds, I've a wealth of gritted teeth and pulled hair ahead of me before the weekend's over. I'll be playing beat the clock as well: the midterm exam has gone live and is due tomorrow night at midnight EST. Last week's vacation to Vancouver is catching up to my studies; I didn't accomplish quite as much as I'd planned.

This is what I imagine my expression looks like at the onset of a new problem set.

Subscribe to the weekly audio podcast for free in iTunes.

Subscribe to the weekly audio podcast for free in iTunes.

wordman

Here's the third podcast episode featuring yours truly and my wonderful wife, Angela. We discuss the meager scraps of my first coding efforts and touch on the topics covered in the previous two blogs, hang_me and bouts of binary. Here are the links to the codes in the order they are referenced:

Credit Card program

Towers of Hanoi wiki and code

And a picture of the hangman code is in the previous blog posting

Click to download in iTunes for free.

Click to download in iTunes for free.

Hang_me

Well, I've just got done submitting Problem Set 3 for the MIT 6.00x (this is the actual course number for the Python programming class). It was another long trial with a ton of errors before I finally got my codes working. In essence, we were tasked with creating a 'simple' (hah) hangman game where you have eight guesses to guess the word.

There were four functions in all that we had to create and the fourth one called upon the other three to run the game. Here's a pic of the final part of the code on the right and the output on the left...'

I've actually got to watch two lecture videos in the third section to finish it up: one on objects as functions and one on dictionaries. I had skipped ahead a bit to start working on the problem set since it was due this evening.

The two sections for week four are Debugging and Efficiency and Orders of Growth. Sounds interesting enough...more shall be revealed.  Gotta dive into the security + book some more also. Reading on my phone makes it seem like a behemoth of a book--really need to get one of the new Paperwhites...

May the force be with you,

/e

Bouts of Binary

I've completed my first set of actual problems in the Python Programming course on edx.org. It was quite the pain at times. There were three parts to the problem and they all had you solving a mathematical problem regarding paying off a credit card. I wrote a code that computed a few different ways to pay off the debt in one year. Here's one example: they wanted to know the lowest possible monthly payment to make in order to pay off a balance in one year. Seems simple enough, eh? Well here's a link to the working code: http://codepad.org/cp7gIFKu 

This ended up being an excruciating trial and error process to get everything to work correctly. My brain is still resisting thinking like a computer.

We also started learning about recursion methods. They differ from iteration methods in that they allow the same looping mechanisms to be executed in a more simplified manner via a shorter, cleaner code. Here's a cool example of this type of code solving the puzzle, The Tower of Hanoi (make sure to listen to the podcast for more in-depth explanations):

Code: http://codepad.org/IwdsxXey

The Puzzle: http://en.wikipedia.org/wiki/Tower_of_Hanoi

I also purchased a Security + Study book on Kindle (which I'm currently reading on the Kindle app on my phone)...it says to set goal to take exam in 45 days...also I'm supposed to have 2 years of experience working on network and Network + cert lol. Thus far  I'm getting an overview of basic security principles. It hasn't delved into anything too bad yet, just concepts such as:

  1. Identification: usernames
  2. Authentication: passwords
  3. Authorization: granted by proof of identity
  4. Non-repudiation: proves a person's identity and prevents them from denying they took specific actions
  5. Defense in depth: necessary multiple layers of security
  6. Implicit deny: indicates that unless something is explicitly allowed, it is denied
  7. Availability: data is readily available when needed...disk/server/site redundancy; backups; alternate power; cooling systems
  8. Integrity: provides assurances that data hasn't been modified, tampered with, or corrupted...hashing techniques ensure integrity
  9. Confidentiality: helps prevent unauthorized disclosure of data...uses multiple methods, such as authentication, access controls and cryptography

Week three in Python course is covering some more complex items such as tuples, lists, dictionaries and objects. More shall be revealed.

May the force be with you,

/e

Intro to Python in Eamonn's Terms

Over the course of the past nine days, I've begun the trek toward Python comprehension.

Utilizing EDX's marvelous Intro to Computer Science and Programming course online, I've been introduced to the various types of programming languages, the basic architecture of computers and programs, some branching programs, iterations, guess and check algorithms, floating point accuracy and loop mechanisms. 

I'm a bit overwhelmed, but the problem sets after each lecture really drive home what's going on. I learn best in a trial scenario where I can actually do what has just been explained.

I'm hopeful that given a few more weeks of class coupled with the beginning of a Computer Science course this Monday (surely there will be positive overlap) I'll be an aspiring Python pro. The I Want to Hack podcast will be available on iTunes very soon also; I submitted the feed today (Oct 14th) and they'll have to validate it and everything before it is live on their store.

Also on the agenda this coming week will be the purchase of a Security + training book to delve into that certification. This will represent the first actual money that I'll sink into this endeavor. 

May the force be with you,

/e

Copyright © 2016, Eamonn Cottrell. All Rights Reserved