Trying is the First Step to Failure

For a very long time I believed honesty was a tacit admission of failure.

In other words, for a very long time, I was wrong.

In some other other words, I’m going to be writing about more than technology and learning to program. Because, if I’m being honest, I don’t care to write about only those things any longer.

It has taken me a very long time to write about this because I have felt as if saying ‘I don’t care about these things the way I once did’ would identify me as a flake, a person who declares an interest one week and has promptly forgot about said passion the following week.  I also thought admitting a desire to move on would prove I had failed in some way. In which way, exactly, I have no idea, but if there is one (just one, ha!) bogey in my life it is failure, and usually I can be found running from it as fast as my getaway sticks will take me.

So here we are. I won’t be tinkering with any of the old stuff. I still get a few for the Coursera and Codecademy reviews. I hope they’re helpful to people.

Traditionally, this is the part of the post where I outline what I plan to write about in the coming days. However, the promise of writing about things I care passionately about in the moment rarely develops interesting writing a week, a month, or six months in the future. Being an adept learner, I’m not going to let that particular ambition bite me in the ass again, no ma’am. As far as the future is concerned let me say instead: I will be writing about stuff. In a couple more weeks I’ll be writing about things, and eventually covering some topics, though I wouldn’t hold out for anything more than a subject or two.


Good Night, Sweet Prince

I first started using Google Reader as a way to keep myself from wasting time at work. My first desk job with (mostly) unfettered access to the Internet was a bit overwhelming. I had a couple dozen websites that I liked to check and I spent a good deal of time checking these sites throughout the day for updates, usually disappointed at the lack of new content or finding that I had missed something from earlier in the day. The Internet felt like a giant bag of rice that I was trying to carry up a hill, only the bag had a hole in it and the hill was muddy and when I stooped the pick up the rice I had spilled I would just slide further down the hill. Surfing the Internet, it seemed, was not a helpful diversion to keep me occupied during downtime at work but a task demanding more time than I wanted to commit.

Enter Google Reader.

Today the ‘check every website I have bookmarked for updates’ method seems woefully outdated (especially in the pre-Twitter era). So you can understand that when I first started using Google Reader it felt like a revelation. I no longer had to lug a giant bag of rice up a muddy hill! Instead I just slapped my sacks on a conveyor belt where they could sort themselves and be ready for my consumption.* Google Reader stopped making the Internet a chore and made it accessible. Google did the nigh-impossible and made the massive, unfathomably large rice sack that is the Internet and made it something I could wrap my hands around. They gave users a tool to make sense of the greatest repository of information that humanity has ever seen. I dislike being too ardent in my praise of Google but I find this remarkable.**

I have had some time to think about what Google Reader has meant to me since Google announced they would no longer be supporting their service.At the time I felt like I had a rug pulled out from under me and now I understand why : I felt like I would no longer have a way to make sense of the Internet. The topography of the Internet is very different now than it was six years ago when I first started using Reader but I had never found a suitable replacement. Many news outlets at the time suggested that Reader was no longer necessary with the widespread use of Twitter, but I disagree. Twitter is an excellent tool for keeping in the moment but it is a terrible archive. Twitter is a stream. Google Reader is a cliff whose various strata tell stories and the passage of time. And that’s OK – they can coexist. In fact, they probably work best when they inform one another.

I am thrilled that Feedly and Digg (among others) have stepped up to deliver on the promise of near-instant updating and accessibility made by Google Reader. Feedly has made incredible progress since Google announced the demise of Reader – I’m really impressed by how fast Feedly is in such a short amount of time.*** I would prefer to continue using Reader but the transition to Feedly has been painless and not without its own perks (so many colors! Formats!).  If anything, the demise of Reader has been a boon for RSS services. Hopefully all of these companies will fuel each other in a competitive spirit and make some headway where Google first started.

But Reader, you will always be my first love. You showed me the Internet could be tamed, managed, and archived as I saw fit – for which I am grateful.




* Why am I carrying this rice up a hill? I have no idea.
**That is not to say that there were no RSS feeds before Google Readers but Reader was certainly the first one that was easy to learn and impossibly-fast to update.
*** Impressed in the vague sense that no other reader that I have found has been quite as good in the last six years and that the technical hurdles to providing fast updates are purportedly tall and many. If that’s wrong, please correct me.


Catching Up

After several months of not being able to learn any more programming I finally found myself with some free time and couldn’t wait to get back into it. A funny thing happened though after pulling up Codecademy: I couldn’t remember anything. I remembered some basic commands but not enough to help me continue my exercises. I backtracked through the old exercises for a little while to try and catch up but became frustrated by the lack of indexing. I knew there were answers to my questions hidden away somewhere in the depths of the exercises I had already completed but bugger all if I was going to have an easy time finding them.

I decided to move on to Learn Python the Hard Way and found that I was able to start where I had left off barring a few questions here and there. When I had questions I was able to find them quickly; the indexing for the site is pretty straightforward and easy to navigate. All of this is to say that, while I have not given up on JavaScript, I have given up on Codecademy.

Let me say again, however, Codecademy is a great place to get your feet wet and get a general understanding of how coding works. But the utility stops there. If I had the time I’m sure I could sit down and blow through all the exercises in a week or two but I’m not sure how much I would retain after that.

I will continue with LPtHW now that I have free time. I willalso investigate some other JavaScript tutorials when time allows. I There may also be more links and ideas about learning how to code in relation to my own research in learning and language acquisition. I still get a lot of hits for the couple reviews I have done and I would like this to be a good resource for people wanting to learn to code (even if I can’t offer any teaching directly!).


Dear EA

If you want your users to always be connected, please make sure the multiplayer component of your game is also the most compelling. Some of the lone wolves will still pirate your game but people who like to play together will use your servers to find people to play with and, more importantly, get new players to join in the fun.

Good luck.


Codecademy JavaScript Track: Status Report

When learning a new language I like to stuff my brain with vocabulary and grammar until I’m about to burst with new words and concepts. I don’t retain all of the new information, of course. However, the point is not retention but acclimation. Approaching language this way allows me to wrap my arms around the bigger concepts of a language while I start to learn the basics. When I have the big picture I know what I’m working toward.

I say this because, with Codecademy, I only feel like I’m getting a trickle of vocabulary and not seeing the big picture. I’m halfway through the track and I’ve learned about variables, functions, arrays, and for loops but I still have no idea how any of these tools fit work together to make an interactive website. It would be like learning vocabulary but not learning how to write a sentence or a paragraph. Or what the language sounds like.

I’m not one to complain without offering solutions so I will make a suggestion: keep everything about the introduction the same except with a link at the end to webpage that uses JavaScript. Then link back to a page that shows how the HTML/CSS/JS work together. Then – and this is important – use it as a reference point throughout the track . So many of the exercises feel like simple “vocabulary” because they have no context. If I knew how a particular tool would be helpful in the future it would provide the context that is sorely lacking.

On a side note: I have been thinking about this for a few days. Today, I read the first chapter of JavaScript: The Definitive Guide. The first chapter ends, as you might have guessed, with an illustration like I suggested above – and it was very helpful.

Although the narrow focus is disappointing, I still can’t discount Codecademy as an excellent entry point into programming. I never expected it to be the end-all of my learning and I have already begun to look for resources to continue learning about JavaScript once I finish the Codecademy track. I found a promising lead here – I’ll try to not get too distracted until I finished what I started. I’ll get back to Codecademy … right after I finish the second chapter of JavaScript: The Definitive Guide.

Coming up: reference resources and Learn Python the Hard Way progress report.



Codecademy Review: Web Fundamentals

I don’t pretend to know what the people want. Thankfully I don’t have to: my stats tell me the people want reviews of coding tutorials. My review for Coursera’s Learn to Program has been a constant source of traffic since it went up last year. Never one to withhold from the great and weary masses, I will starting doing more regular reviews of programming courses.

I liked the Learn to Program class very much and wanted to do more through Coursera for my next project/review. However, I wanted to do more with Python and there were no more introductory/intermediate programming classes offered. After snooping around I discovered Learn Python the Hard Way by Zed Shaw. I’m working through this course now (and loving it). A full review on LPtHW will come when I’m finish.

Python is well and good but I realized that a scripting language mainly used on the Web would be rather lonely without the company of HTML and CSS. Shaw, unfortunately, does not have any materials for either CSS or HTML. I knew that Codecademy had an HTML module so I decide to have a look.

My did my first dabbling programming on Codecademy when it was still in beta. At the time I thought the introductory JavaScript track was a fun and interesting diversion but I promptly forgot all about the site when I finished.

What is it?

Web Fundamentals is more robust than the JavaScript introduction from back when. The goal of the course is, as the name suggest, to teach students “the building blocks of web development with HTML and CSS.”

How does it work?

The Web Fundamentals track is divided into six sections (e.g., Introduction to HTML)  and each section has two courses (e.g. Project: Build Your Own Website is the second course in the Introduction to HTML section). Each course has anywhere from six to twenty-six exercises. The track starts with HTML and ends with students using their knowledge of HTML and CSS to build a web page.

The exercises are  the centerpiece of the Codecamy experience.  Each exercise has careful instructions for students to follow and an input area for testing. Another column displays the output of what students are typing and updates as you type. The layout is mostly very good and makes experimentation painless. My only complaint regarding layout is HTML code tends to get rather long and side-scrolling to see what is happening in the far margins becomes quite a chore. I ended up using JS Bin for the longer exercises, copying and pasting when I was ready to move on.

Students are expected to produce the results of the instructions to advance in the exercises. There criteria to advance are clearly stated in each exercise but the system was forgiving enough to allow variety of student input. I admit to being frustrated more than once because I thought the computer was not recognizing my perfect code. More often than not I had not read the instructions carefully and had missed a crucial detail. There is an option to skip an exercise if you do not get the correct answer but I never needed to do so.

I found the explanation of some exercises to be needlessly confusing. I appreciate that each exercise attempts to break down the element being taught to its smallest, logical part but I wish that some more in-depth explanations had been offered on some exercises. These frustrations were infrequent, but present.

Did it work?

I think so. There were more than a few ‘ah-ha!’ moments as the exercises had me re-creating elements of web pages I had interacted with many times.In fact, the constant re-creation and doing is what makes Codecademy shine. I could have learned everything in this track from a book, of course, but following the instructions and seeing the results immediately is empowering. I wasn’t afraid to experiment  beyond what was called for in the exercises and ended up reading quite a lot about HTML/CSS standards outside Codecademy. Although the track doesn’t (and probably can’t) teach good design principles I feel like I could build a website from scratch that looks ‘acceptable’ to most laypersons. Nothing worthy of a Webby, of course, but certainly better than nothing!

Should you try it?

If you know nothing about HTML or CSS and want to learn, I give Web Fundamentals my full recommendation. Knowing where to start is a major hurdle for learning any new skill. Web Fundamentals is a perfect entry point. The track will not make you a master of web design but it will give you all the tools you need to get started.

Codecademy is also free, and signup is painless.

What’s next?

I’m plugging away at LPtHW and starting in on the JavaScript track at Codecademy. I’ll have a review of both when I’m finished. My long-term plan is to take all of the Codecademy tracks, finish LPtHW and then move on to Learn Ruby the Hard Way.

Was this review helpful? Not so much? Let me know in the comments!

Is there another programming method/class/book I should try? Tell me! 

News, Video Games

Xi3/Valve Piston: What It is and Isn’t

PC maker Xi3 unveiled a development-stage device tailor-made to for gaming with support from Valve and its Big Picture Mode.

The discussion in the last couple hours has mostly been concerned about whether or not this is the fabled Steam Box: the near-mythical console rumored to be in development by Valve.  I’m not sure what the Piston is exactly, but I do know that Valve are going after the next generation of console gamers in a big way.

Between the Lines

There are a couple things going on here. First, Valve is just an investor. Their branding doesn’t appear on the device and it doesn’t seem so far like they have had any say in the development of the Piston. Of course, ‘Piston’ falls in line with the locomotive-naming of Valve but that could be coincidental. Xi3 has made this device to work with Steam and its Big Picture More, not the other way around (although the device is being showcased in Valve’s booth at CES). I think this is an important distinction that I’ll clarify in a minute.

Another thing worth pointing out is how expandable this device seems to be. Lot’s of ports, three different mother boards all point to plenty of room for expansion and customization. Hardly in line with tinkering-averse consoles.

What Is the Piston?

The Piston, I think is meant to be a hybrid PC gaming and console device. I’m guessing Xi3 wants you to use this guy to play games on your TV but keep it at home on your desk, running wires from your Piston to your PC monitor and your TV. I do not think it’s meant to be a standalone console or a more traditional-use PC. This is a theory, of course, and a big problem with this theory is that the Piston is currently a Linux device – not an OS I would choose for a hybrid device to steal consumers away from easy-to-use consoles.

What Isn’t the Piston?

More abstractly, the Piston seems to be a beachhead for Valve into gamer’s living rooms. I don’t think this is THE Steam Box (as conceptualized by the rumor mill to be a device specifically by Valve as a console replacement). The Piston isn’t going to be Vavle’s only entry into living rooms – it’s going to be one of many. Like I said above, Valve is investing in Xi3 with this project but Xi3 are making this device specifically to work with Steam. This is all theorizing, again, but I see the Piston as one entry point among many more to come. Steam will be the platform on which other gaming PCs come storming onto your television.


From Polygon -

“Valve will be at CES to meet with hardware and content developers in our booth space,” Lombardi said. “We are bringing multiple custom (hardware) prototypes as well as some off-the-shelf PCs to our CES meetings.”

Lombardi described the prototypes as “low-cost, high-performance designs for the living room that are great candidates for Steam and Big Picture.