With all the International intrigue about the new film ‘The Interview’ that was meant to be released tomorrow, the picture was nearly canceled altogether. Sony got hacked, probably by North Korea, threats were made and contents of Sony email was released. The ironic thing is, the film might otherwise have gone largely unnoticed in the grand scheme of things and now it could become a future cult favorite in the West. Something that can probably be tracked in Google Trends.
It was a busy year. It began after accepting contract work that called for developing a Rails application that I wrote while finishing up Dev Bootcamp. I was working other contract work already throughout my time at DBC, which is something I regret but it couldn’t be helped. All the contract work led to more that really culminated in my job at Tribune Publishing this past April. Although I haven’t been able to contribute much code while at Tribune, I have finally managed to collect my career together the way I want: Involvement in digital marketing and developing great websites and apps as Director.
While there is conceivably gads to learn just in programming Karel to do assignments, or invent problems to solve with the simply robot, the goal is to learn Java itself. At Stanford the class leaves Karel behind after the first week, and the class moves pretty fast. Last week I got interested in extending Karel, almost cheating by using more advanced solutions than called for and exploring things in Karel that aren’t covered in class, like her paint methods.
At the same time, I want to continue learning at the speed of the class or if possible, faster. I’ve done Java before, so much of this I’ve seen before. I would say thus far I have gained in some experience solving more problems in the assignments than I did when I originally set out to learn Java almost twenty years ago more than learn anything. At lecture 7, I’ve still not seen anything truly new for me. Going through the lectures certainly helps clarify and clear memory cobwebs from the first go around.
While going through lecture 7, I know that very soon I’m going to bump into things that I may have seen before which perplexed me and was never used. That is the true value for me taking new stuff that hearkens old stuff I learned a long time ago. I am wiser, if not smarter today than I’ve ever been. My life experience lets me review materials that I’ve gone over before given new light from learning outside the discipline of programming. This is easily explained by something from somewhere else.
There is a great analogy about filling a big jar with pebbles, one at a time. This instance of the analogy might not be perfect, it’s simply how I think of it. When you want to go fast, you want to avoid grains of sand and start with bigger pebbles the size of the biggest rocks that fit. You’ll filling as much space as possible. You’re also not filling as much space as you could with sand. When you can only go one pebble at a time, start with the big stuff and eventually you will only have enough room for small pebbles and sand.
If what I know about programming is silo’d into a metaphorical jar, twenty years ago I got the big rocks in and largely filled programming Java. I knew generally how Java worked to do things, what some of its limitations were and where it would be extremely useful. The learning long ago informed my thinking around the Search Return Sidecar. The big concept is write once, run anywhere, including applet implementations that live client-side on the browser. It’s a truly platform independent software programming language. Now it’s time for me to work on filling the rest of my jar. There’s a terrible pun there, if you see it.
Looking for shortcuts in the programming assignments for Karel the Robot taking Stanford’s CS106A online. The instructor knows Karel doesn’t have full functionality of the Java language but a good portion of them. They also intentionally offer two versions of the class: Karel and SuperKarel. I’ll jump ahead.
The class and instructor move as quickly as possible through the material, so sometimes there are things which should be forgiven. In my case, I came to the class having some experience almost twenty years ago programming Java and I can’t help but remember what I learned. In the instructor’s case, there is one small error I noticed that flies by and no one seems to catch it.
It doesn’t matter either way, as long as I get the value from the class material I’m going through in order to better prepare my capability to take Sidecar 2.0 to the next level. Karel the Robot doesn’t turn around, or turn right in order to teach us to program those methods. In the case of the instructor teaching us to program a method for turning left three times for turn right, he said 6 lefts turns would do the same thing.
That’s not true. It would take seven left turns for Karel to have rotated to the effect of ultimately turning right. No big deal right? Well when I was going through to complete the code assignments for class, I realized after looking at the solutions that I was cheating with Karel the Robot. After a class where I was reminded how to use the ‘for’ loop for counting, I used it for assignments that involved counting.
When the class solutions were revealed, often I realized that I missed the concept of the instruction by way of my cheating using counting. For example, I was to drop a ‘beeper’ in the middle of a street. I simply counted steps to the end of the street using a ‘for’ loop for the move() method, divided by two, turned around and used the count variable to walk halfway back, dropping the beeper. If only I could do that with my taxes 🙂
One of the things you’ll find taking CS106A at Stanford online, is that the version of Eclipse Stanford uses for teaching the course comes with Karel the Robot. You can probably figure out how to get it to work in any version of Eclipse, or run Karel the Robot in any Java IDE but I learned a valuable lesson trying to do this that to save time, I should just stick to the program as set out by the school.
I’m such a rebel. So I want to create my own worlds for Karel just so I know how. The interface is clunky but works fine. You can click and drop construction items like walls and beepers and you can define dimensions. What I liked about looking at world files is that I can do a lot of this in text and skip the interface altogether. The advantages are I don’t have to fight with the clunky click-drag actions on my touchpad.
The things to be aware of is that you still load worlds but can use the file browser to go find worlds you’ve built somewhere in your filesystem. Keeping everything relative to the path where your program resides can save you time navigating. Just remember to name new files the the dot ‘w’ extension, as in filename.w, and Karel the Robot can load your worlds. Be aware of your max 50×50 size limit.
Karel the Robot’s world definitions for Standford CS106A lecture one:
Dimension: (6, 3)
Wall: (4, 1) west
Wall: (4, 1) north
Wall: (5, 1) north
Wall: (6, 1) north
Beeper: (2, 1) 1
Karel: (1, 1) east
You can use the built-in Textedit program on your Mac (or notepad.exe in Windows) to edit this definition file. The best reason I can think of for writing worlds for Karel the Robot is that, not having physically attended the class, the world from the first lecture is not there by default. A blank Karel the Robot starts with a world that has no objects (except the robot in the starting position) and a 10×10 grid. Knowing how to create worlds should help you follow along the way I did.
Check out what Steve Jobs is saying here, and consider it in context with the time it was filmed. He describes the spark of a computing revolution coming from a spreadsheet program. It was that program he cites as being responsible for Apple’s success. Computers do great at math, as the name “computer” implies. It follows what came next, brought print to its knees.
Now if you’re interested in my additional observations, note his prediction at the start of the 1990s he alludes to ‘interpersonal computing’ and the Internet from DARPA. His idea of the future held true for the following two decades, not just one, as the first was marked by strides in networking on the Internet itself which led to a second wave resulting in the social media of today.
The infectious fun we had in the ‘beehive’ days of I-Search starting in 1997 through to the ocean of distraction that is social media today, you can see where Steve Jobs is caught in that time thinking about the future of possibilities. The age of interpersonal computing as described by Steve Jobs is here. I am struck by other thoughts from his NeXt software initiative and platform thinking.
The notion of platform thinking intrigues me greatly. Apple has taken this to a great height by way of confining the Mac operating system to a mobile extension with touch features built into iOS. The revolution we are seeing now is his vision played out in the third decade, one that hearkens back to the terminal days of the mid-seventies. The tablet is the terminal we use to log into the cloud.
He also speaks of wanting to be able to operate his computer separate from the cloud. The iOS platform delivers this. He also wants third-party developers to extend on the platform designing software to make the whole machine more valuable. The Apple store delivers this. The difference in thinking between Apple and Google is that the closed architecture ensures quality that Google is missing.
The approach I want to take with Sidecar, after the original Sidecar prototype, is in pursuit of what can be done with the concept of platform thinking in a microcosm of distributed Web crawling software that is Sidecar. The goal is to realize with software code what I-Search was like for me more than ten years ago. You can hear Steve’s enthusiasm for something he lived to see in his lifetime with email lists such as I-Search and later ultimately with what Twitter is now. The power of our connected world can bring us together to conferences, or allow us to benefit without being there.
On a personal note, I was lucky enough to work with Kevin Mitnick to put together the more difficult cryptograms for the paperback version of his Ghost in the Wires. When Steve Jobs remembers building ‘blue boxes’ with Woz, I know Kevin was doing the same thing. Kevin and Woz are now friends. I was on the phone with Kevin when news about the death of Steve Jobs came across Twitter. We both took note and he wanted to immediately break away and call Woz about it. Regardless how the media characterizes relationships, Steve and Woz were close by way of their shared history, which is special to them.
Last week I decided I would apply myself to revisit being a software engineer more than focus on a career in SEO. I already had a career in SEO and the experience left me with the knowledge as part of my DNA. I am keenly aware how important developers who know about SEO are, and how mixed their skills are. At least with me, I can be confident the SEO instruction set is as simple for me as playing with Legos.
For building more complex systems, I’ve dabbled in SSI and created my own CMS systems, relying only on WordPress for learning how to code custom plugins and themes for SEO clients. I am much more interested in new frameworks like Twitter Bootstrap with Ruby on Rails for my own sites moving forward, and as the backbone of how Sidecar 2.0 works. Search Return is going to be a house that is built with Gems.
In anticipation that I jump in on a summer of code, I’ve needed to install Eclipse.
It’s hard not to think of hacking computer science classes while essentially taking the courses as a matter of hackademic hacking an computer science education. Having written cryptograms for Kevin Mitnick to use for the paperback version of his Ghost in the Wires, his story that I followed since I was a teenager, all I can think to do is hack my way to accomplish higher goals.
To build the full-blown application around Sidecar 2.0, I’m going to need mad skills and polish my rusty old tools. I recall writing Java applets in my twenties starting around 1995. For about two years I worked for a firm that produced multimedia for the Web. In those days, compared to today, I was rolling stones around like they were wheels living in the stone age.
Sometime around when I was scoring top positions for frames-based sites for terms like “disney Collectibles” and “rare coins” I was hired by Multimedia Marketing Group that launched my SEO career. There is no real Java in SEO. Multimedia itself was a bit wrong-headed at the time too. Of course taking a pile of money and looking the other way while you craft SEO for big brands was a great consolation.
Nows the time. SEO is changing so fast it’s actually important that I revisit my old skills and get back in practice. One of the outcomes will be a better backend for Sidecar 2.0 for powering Search Return as a platform concept versus a simpleton robot. I can only really make that clear by demonstration. Still, if you happen upon this post looking for SEO, you’re in the wrong place.
Over the last few years, hacking computer science by way of auditing classes online has dramatically improved. It’s to the point where the venerable Standford University has published CS106A in full form. You can watch the lectures on YouTube, and follow along with all the class material in hand. It’s all completely free. The way to hack is to take these courses as California ramps up.
The governor in the state of California is pushing its universities, offering financial resources for them to more aggressively move towards more online education. The Stanford CS106A cite above is completely free.
There are a number of fast-paced private programs that can cost much less than a University which can leave you in debt. San Francisco’s Dev Bootcamp recently opened in Chicago too. A certificate of completion in one of the better known organizations can be worth a good fraction of a complete degree from University by way of specialization. It is a true foothold in the market if you want to be a developer.
Update: WordPress default themes are now responsive too.
A number of nice Responsive WordPress Themes are coming out. Running several experimental sites I get to test across some of the better looking ones. Not all free ones are ready for primetime and they also might come with link payloads, so lookout. I have only tried a handful of paid ones and there aren’t that many paid ones out now anyway. That will change.
A nice paid one launched today called Appetizer. Appetizer is mainly targeted at restaurants but you can tune to anything you like if you’re handy with hacking on WordPress. If you would prefer to start from scratch, try the free bootstrap theme. I’m checking out Bootstrap version 2.3 and it’s good, if you don’t mind commercial messages in the admin area.
I don’t like this so much and will torch it for my own framework. One of the problems of historical WordPress blogs are the plugins and themes from the past that may contain bits your client is tied to commercially or emotionally. That means finding a viable alternative or replacement that can retrofit content for a purpose in the upgrade. One particularly nasty thing can be a haphazard multi-site installation for a client who was sold on it for no good reason. Look for something I might write up on that.
It has never been a greater time to be in SEO with developer skills. WordPress has dominated the last several years as the world’s publishing tool of choice. This has led to the prevalence of blogs, with Google-owned Blogger contributing to this, alongside bona-fide CMS software such as Drupal, Joomla and more that have blog widgets. The last year has ushered in a quiet revolution in Adaptive and now Responsive Web design, which is what is so encouraging to me.
There are templates, themes and mobile plugins that are going to help transform a website into something that is mobile friendly. Alternatively, few SEOs that I read are talking about how exciting frameworks are, and how they have entered the fray and given us cause to rethink such reliance on WordPress alone. Certainly, WordPress when used for blogging is the way to go, especially if you create a child of a responsive theme, then you are golden. That is what this blog is. But wait, there’s more.
Literally starting odd with a HTML5 index document, Initializr allows you to choose responsive with Twitter Bootstrap for real mobile adherence to standard and the benefits of SEO built straight in by its basic nature. Other content generation tools, such as Adobe, utilize the framework in their software for building websites. It’s smart. Basically what you get is jQuery, CSS3 with media queries for Responsive design, mobile-ready Twitter design layout by default with HTML5 SEO. Check it out.