From Karel to Java

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.

Posted in Code, Java

Cheating With Karel The Robot

Today is tax day, not a good doy to talk about cheating. I don’t cheat on my taxes, I might look for shortcuts with 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.

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 :-)

Posted in Uncategorized

Creating Worlds for Karel the Robot in Java

2001 Space Odyssey

2001 Space OdysseyOne 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
BeeperBag: INFINITE
Speed: 0.00

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.

Posted in Code, Java

Steve Jobs PBS Video Interview

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.

Posted in SEO News

Eclipse With Karel The Robot

Bethany Hamilton, survived a shark attack and returned to professional surfing.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.

Posted in Code, Java

Computer Science Hacking

2001 Space Odyssey

2001 Space OdysseyIt’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.

The trouble is, compiled source code is something I only dabbled in before making too much money to care in SEO. I don’t regret a thing but the SEO career made me lazy about sharpening up my code skills. It’s time I changed all that. Even with Sidecar 1.0, the approach uses Javascript in a near pure form and I want to take Sidecar 2.0 much further. The basic hack is in.

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.

Posted in Code

Responsive WordPress Themes

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.

Posted in SEO News

Initializer Responsive HTML5 SEO

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.

Posted in SEO News

Sometimes on a Saturday

Sometimes on a Saturday I seem to be able to get things done with code that I can’t do during any time during the work week. When I used to work at big agencies, my weekends were pretty sacred which allowed me to recharge the batteries for managing my department. If I imagine myself still doing agency work, outside my own Search Return agency of course, then I think the advances made in mobile computing alongside social media has given anyone the ability to work 24/7. And that includes Saturday.

Thinking back on some Saturdays I think some of my best innovative ideas came out of Saturday dabbling in code. Rather than feeling boxed in by the cubicle in my corner office I get the freedom that the iPad can bring, or the mental space to dig deeper than when being intruded upon by employees. Saturdays now provide me that same freedom of space even when I’m not working at an agency. That is because if I have client work to do, I can’t be expected to accomplish it on my weekend unless it’s an emergency issue.

The last few weeks there have been some moderate emergency issues to deal with. Cleaning up after when people make a technical wreck of things can be lucrative work when the sham industry tap doesn’t stop flowing. This is the year I plan to get back to industriousness after taking somewhat of a break. I am writing more frequently and that takes time. I am coding and tinkering with Mobile Sidecar applications, preparing for our SEO future. Everyone knows the future of content and a few know the future of tech.

I love my Saturdays. The work-week pressure is on hold and I can get my creative thinking going again. I’ve spent the last few years thinking about my transition physically, now my thoughts have returned to thinking about my transition from SEO tech to social optimization tech. There are new plugins, platforms and protocols which all affect our rankings. Personalization in search prepared with its DNA the era of social search, where Google and Bing are bringing it. You’ll see Facebook matches in Bing and +Plus matches in Google.

One thing that intrigues me which goes beyond social search is what’s possible around the corner. While we optimize our social graph and content with posts and Tweets, Twitter Discover and Yahoo!’s Marissa Mayer are giving us an indication of a future with push content again. Twitter Discover and Marissa Mayer’s Interest Graph description from World Economic Forum reminds me of the Pointcast service. That was such a long time ago, yet prophetic of the future. Much like LinkedIn, which started around the same time, long before Facebook. Sometimes on a Saturday I think wider in scope to peer around the corner.

Posted in SEO News

Good Things That Fail

2001 Space Odyssey
There are many launches that deserve to take off without incident but suffer from epic fail. The phenomenon seems to be worse in our digital world, as consolidation and patent suits limit or squander innovative ideas. The notion of the ‘four horsemen’ in tech as cited by Eric Schmidt are Apple, Amazon, Facebook and Google. In the case of what happened today, Felix the space man from Austria was planning to jump from the edge of space and reach super-sonic speeds in a specially designed suit to break records, capture attention and important data for the physical sciences. Too bad gusty winds cancelled the jump. Better safe than sorry. Postscript: He eventually made the leap!

While this failure to launch won’t console you or me when we start something that we think will take off for the pure genius of it, that doesn’t mean you can’t withdraw and survive to fight another day. Even when you are on the brink of going flat broke, there are ways to claw your way back in. Remember to create something great and try and try again until it goes. Being persistent is a trait of successful personalities. Sometimes you have to turn back to the things you love to find your solace in order to see what is right in front of you.

These thoughts are going through my mind a lot these days as I am writing some of my best material, and working with a developer to create an innovative crawler that most people, when they hear about it, have no idea what makes it so outstanding. I think sometimes I am viewed as a total madcap. It’s my vision and a passion for seeing things that are as yet intangible that scare people. The way I’m going to tackle the problem this time is through demonstration (again and again). The original prototype that is Mobile Sidecar is a toy compared with Mobile Sidecar 2.0 that is due for release soon. It’s operational on my laptop in developer mode. It’s very different, and very exciting. At least it is to me.

Posted in SEO News