A step back, CS106A, an introductory course in CS

While doing the homework of the iOS course I started last week, I noticed that I lacked most of the essential background in computer science. Of course, I knew this already, but I needed to experience it for myself, by not being able to do exercise zero of the CS193P course on iOS programming.

So I did a step back and started the CS106A course on iTunesU, Programming Methodology. It uses Java and Eclipse, which I had to install on Mac OS 10.8. It is going pretty well so far, since I’m already at lecture 6 in only five days! The pace is slowing down, naturally, because the subject matter becomes more complicated and involved as the course goes on. The suggested pace is 2 lectures per week, with 10 weeks as suggested time to reserve for the course as a whole.

I’ve picked up a few useful hints, for example, that it is important to give credit to the creator of code, in the sense that if you didn’t write it that you state where you got it from (who wrote it). You simply can’t take credit for other people’s work if you want to become any good at this software development stuff. The ability to solve problems on your own (and not merely combining code others have written, using some kind of script) is key, as is developing a writing style for your code that makes it easy to understand for outsiders (which might include you, after having not looked at the code for a long time). For that reason I will not share any of my CS106A code on this blog. I don’t want to tempt others not writing their own code, and thusly missing out on an essential educational experience.

Having a working program is not as important as having a program with source code that is easy to read, since 80 to 90 percent of the energy of writing code is spent on maintaining code, and the rest on writing new code. If your source code is easy to read, bugs can be removed easily. And if changing conditions require the code to be revised (read: partially rewritten), well written code in a consistent style is a good investment of time, even if it takes longer to write as you write it.

Another realization I had with CS106A is that coding is only part of what software developers do. What is a computer program anyway? It is an artifact that solves a particular problem or set of problems. Problem solving is what it’s all about. A computer program is merely the medium in which the solution to a problem is expressed.

Computer science, therefore, can be seen as the science of solving problems in a predictable manner.

It is perfectly feasible to write software that solves problems in a convoluted way, not using any of the established patterns of computer science. If you don’t take a step back now and then, merely concentrating on having a working piece of code, you will never become a good programmer. You will stay at the level of a script kiddy, making use of the work done by others, without really understanding how to create such work yourself. You need to be able to fully understand what you are doing, what you are trying to accomplish as a whole, as well pay attention to details that matter for a correct execution of code. The former is the creative part of software development; the latter is more like the artisan part.

The course makes me feel humble, realizing how little I know about writing good code, nor how to solve problems in a consistent and predictable manner, nor even how to spot problems to be solved.

Understanding something is a problem that could be solved I suppose is an important trait to have as a software engineer. Most people (grudgingly) accept difficult situations as they are, without realizing some of them could be turned into something that is easy to deal with, if they just had the proper tools and some training. Good software solves a problem people didn’t even realize they had. It takes a curious mind to discern something is making people’s lives less than optimal, and a determined mind to find a solution to this perceived problem.

Thanks for reading and I will keep you posted on my progress of CS106A and, after that, CS106B.

Posted in computers, programming | Tagged , , , , , | Comments Off on A step back, CS106A, an introductory course in CS

Started iOS programming

After trying to get into programming with Ruby and Ruby-on-Rails in vain, I started the Stanford University course on iTunes-U, called “CS193P Winter 2013: Coding Together: Developing Apps for iPhone and iPad (Winter 2013).” It’s already challenging me, while I haven’t written a line of code.

The prerequisites are C language and programming experience at the level of 106B (Programming Abstractions). Recommended: UNIX, object-oriented programming, graphical toolkits. This is not a beginners course…

I have subscribed to CS106B as well, but as a backup, in case I get stuck on CS193P (which would be sadly slowing me down, but necessary in that case). The suggested duration for the foundational 106B is 10 weeks. Ouch! Naturally, I will go back to this foundational stuff later on to broaden my knowledge on object-oriented programming.

Maybe I should mention that I’m not really a beginner. I didn’t finish any courses or tutorials, but I did many of them partially, so I have partial knowledge of software development. Maybe it is enough for the aforementioned iOS programming course. I also listen to software development and software design podcasts, which I hope will somehow give me knowledge through assimilation, or at least will give me insight into the mindset of software developers.

Of course, this course is based on iOS 6, while iOS 7 is just around the corner when I write this. Even so, learning Xcode 4 and iOS 6 now will enable me to learn Xcode 5 and iOS 7 so much faster than waiting for the new stuff to be available for people with a free Apple Developer account.

I have a free account, because I approach things as a hobby right now, not as an opportunity to supplement my income, nor to make it my full-time occupation. Once I feel I could do one of the latter things, I might pony up the 99 dollars yearly for an iOS developer account.

For now I’m just curious what all the fuss is about.

Posted in programming | Tagged , , | Comments Off on Started iOS programming

What? Has it been that long ago?

Hi there, dear reader!

I’ve been so absorbed into getting my body back into shape (and blogging about it almost daily on my Dutch language blog) that I simply couldn’t find the time and energy to blog on here. I’m so sorry if you happen to read my posts and wanted more regular content.

The Ruby experiment, trying to get into programming, failed miserably, frankly because of priorities. You simply can’t do everything, and since Ruby and Ruby-on-Rails have somewhat of a learning curve, I never got over the hump. I’m sure I’m not the only one in the world (if I am, yay!).

So, in case you didn’t know, I left deviantART, for reasons I don’t want to go into at this moment (let’s say I don’t feel at ease there). After dabbling somewhat on tumblr (Supercalifragilisticexpialidocious), which I will keep doing, I found another specific artists’ community, called Pixiv (my profile on Pixiv). For now, I will be lurking there, mostly.

In my personal opinion DrawSomething on the iPad was thoroughly messed up by Zynga after they bought it. And since I stopped using the app, I was looking for a replacement to help me to get out of my comfort zone, by doing the daily art challenges of the app DrawQuest. It made me draw more, which is a good thing, I hope. It’s not as interactive as for instance the MLP Drawing School on Reddit (which was a boon, while I was still enjoying My Little Pony: Friendship is Magic), it nevertheless helps me to focus on assignments. This is a good thing, after the Art-Request-Me-Anything débâcle on my tumblr page (I still have to finish two requests, after months of delay).

So, my fitness is slowly getting to where I want it (I’m still somewhat overweight by a few kilograms), my art skills are being challenged and I’m still blogging, though highly irregular.

These are good things. They make me feel good about myself.

Yours truly,
Me.

Posted in I, me & myself, iOS web apps, programming, running | Tagged , , , , , | Comments Off on What? Has it been that long ago?

Back again

Oh wow, has it been that long before I posted anything on my blog? Draw Something has been thoroughly spoiled by Zynga, and I believe hardly anyone plays it anymore. In the meanwhile, I’ve been infatuated with “diminutive cartoon horses” (aka My Little Pony), but only for a brief period.

It was a fun time on the My Little Pony Drawing School at reddit, and I didn’t regret being on there and meeting some fine artists. However, I don’t like it when politics drive people out. Hence I left myself, so I didn’t have to participate in any “witch hunt”. Even so, I learned a lot about making art.

I also followed the tv series My Little Pony: Friendship is Magic (MLP:FiM) on YouTube. The producers of the show graciously allowed fans to post episodes, without sending takedown notices. It built the fan base to epic proportions, and fueled a community of fans, called “bronies” (it still does), and fan artists. However, something broke the magic spell for me, a season finale filled to the brim with song. Song brings me out of the story, especially if the singing is part of the storytelling. It told me: “This isn’t for you.”

So I stopped cold turkey.

It left me with a lot of free time that I used to spend on (re)watching the show, and participating in long live stream events of fan artists of the MLP:FiM show. Instead of looking for a new show, I decided to pick up programming in Ruby.

I’ve tried several programming languages in the past, but I never could get past a certain level. At some point, the handholding by the author of a tutorial stopped, and you were supposed to go on your own, do your own projects. After all, weren’t you interested in programming because you wanted to do a specific project?

Um, no.

So, to understand programmers, and how they pick projects, I started to listen to podcasts about programming. I decided to start with Build and Analyze, but before I got to the end (listening from episode 1), the host Marco Arment decided to pull the plug. Luckily, he gave some alternatives to listen to, so I did that after I listened to the final episode.

Since the other host, Dan Benjamin seems to prefer Ruby and Ruby-on-Rails as programming language and web framework, respectively, I decided to try that.

I find it much more enjoyable than Python so far. Python seems to be preferred by educational institutions, because it’s so well structured (only one best solution for any problem), but that’s exactly why I don’t like it. Ruby seems to be much more expressive, though it is somewhat harder to learn. The expressiveness of Ruby appeals to the artist in me. So that’s basically why I prefer it.

I tried the free Try Ruby, which is supposed to take only 15 minutes of your life. I don’t know why, but for me it was more like 90 minutes, though I didn’t time it. I suppose the longer time can be explained if you look at what audience they target. I’m not a native English speaker, nor a teenager. Even so, it was a nice intro, and I encourage you to try it as well if you have any interest in computer programming, but never got around doing it.

As I saw the MLP:FiM slowly degrade in season 3, I already picked up another passion of mine, animation. Talk about a broad subject and a steep learning curve! Basically, I use the book by Preston Blair, Cartoon Animation as my guide, and use other books for the technical details, like how to draw animals, etc.

My focus is on drawing in an animation style, as a 2D animator would do. Like I wrote, it’s a broad subject, and it’s a bit on my back burner. Don’t expect any animation done by me anytime soon.

The funny thing is that MLP:FiM fan artists all seemed to pick up animation simultaneously, and one in particular, Fundz64, inspired me to revisit the old passion of making animations.

I think it’s important to have things in your life you’re passionate about. Especially if you can combine them. Maybe it will lead to something in the future.

Way of the Future!

One of the podcasts about programming I listen to, NS Brief, had an interesting interview with Mike Lee. If you look passed the promotion of his app, Lemurs Chemistry: Water, he had an interesting observation about the difference in culture between the US and Europe.

Basically, in the US there’s still a warring fighting spirit, to endure pain to get passed the finish line of a project, while in Europe this is generally frowned upon as a methodology of getting things done. Why would you do something “to death” if you can simply walk away from it, and not feel pain, and simply deliver something on time, even if it’s sub-optimal? There is no warrior mentality among European software developers. He was generalizing, of course.

Anyway, this was very enlightening to me. Since I’m a European citizen, drenched in European culture, I never realized this other look on life. I too, walk away from stressful situations, if I can get away with it, and without losing too much face.

Something to work on, I guess. It’s never too late to change your look on life.

I realize this was a mishmash of subjects. This is what happens if you don’t write a blog post in almost a year. My sincerest apologies to anyone who happens to follow this blog. And if this is your first time reading, welcome!

I should promise to write more often, and I will, but only if I have something interesting to share (or what I think is interesting for others to read).

Kumbaya!

Posted in I, me & myself, programming | Tagged , | Comments Off on Back again

Draw Something

The iPad app Draw Something, created by OMGPOP got an update which allowed you to save your doodle to the photo library. This app has very limited drawing tools, which means you must have a clear idea how to draw something. I see it as an exercise in visual communication.

Here are some recent examples of what I made with this app.

I hope you can guess what they represent. Click on a thumbnail to see the large version.

Posted in drawing | Tagged , , | Comments Off on Draw Something

Back to basics

I’ve found myself painted in a creative corner and didn’t really know how to get out of it. I suppose the best way to do that is to reinvent yourself, or do whatever it takes to get out of that corner.

You see, I tried Brenda Hoddinott’s Drawspace service of drawing lessons and classrooms and found out that, apparently, I know nothing about drawing. Yes, I can draw, but do I really know anything, in the sense that I could teach my craft to others? I guess not.

It’s a sobering thought to realize you know so little of what you thought you were getting somewhat descent at. I mean, I know I’m not a professional artist, earning my keep with my craft, but I thought I would know at least some of the principles of drawing and be able to convey those principles to others.

So back to basics it is. “Drawing for Dummies”, by Brenda Hoddinott, and “The Joy of Drawing” by Bill Martin. I’m such a dummy for not enjoying myself while drawing.

Sigh.

And oh, what are those basics? Well, I can’t really tell, but one of those basics is that everything in drawing goes in rigid step-by-step instructions. None of that intuitive approach I was attempting to adopt to drawing. Drawing is discipline, daily cold showers and doing the right amount of steps to accomplish anything.

Just read the books and visit the site I mentioned and it will become clear to you. Drawing is like being in school or in the army. Strict rules, never deviating, always being accountable for your thoughts and actions.

I hate it with a passion doing it that way. No wonder I was in a corner. I’m a bad, bad artist.

Posted in drawing, learning | Tagged | Comments Off on Back to basics

Portrait drawing

After a long hiatus, I’ve started drawing portraits again. I used to attend a portrait class at my local community college, but it became just too expensive after only one year. For some reason I keep putting it off, but I really shouldn’t, because faces are the easiest subject to come by. All people have one and the Internet is filled with them.

I used photos from the Internet, purely for study. I display them on my iPad and try to sketch the face with pencil on paper next to the iPad.

I’m also reading my anatomy books, which I also haven’t done in a long time. They start to make sense now, which they didn’t do before. They just frustrated me, because I couldn’t draw what the book suggested I should try to draw. I lacked the basic drawing skill. Getting the proportions right is still hard. I have to spend at least 30 minutes of measuring and marking off on my paper. Transferring the angles from the photo onto paper still eludes me. As I wrote, it just takes a long time. There’s nothing intuitive about it.

Here are some samples of my drawings.

As you might have noticed, the quality gradually gets better with each drawing. It is practice on the one side (each drawing takes several hours to do), and better knowledge on the other side. Having a good grasp of anatomy really helps to identify seemingly trivial features, which actually are tiny indicators of the structure underneath (bones, muscles and tendons). But, I suppose, taking the subject serious, putting in the hours is the most important here. Books don’t make you a better artist, but concentrated practice with the intent to do your best does.

Still, these drawings are somewhat naive, because they are basically copies from photos and not artist’s interpretations (well they are, but only to a small extent). My hope is that I can start drawing from life, so I’m forced to interpret what I’m seeing and render that interpretation as accurately and quickly as possible. Models don’t keep the same pose for very long, after all, even if you would pay them to pose.

Thanks for reading.

Posted in drawing | Tagged , | Comments Off on Portrait drawing

Chipmunk

With a cold and a gravely voice I drew a rough version of a chipmunk using Easy Paint Tool SAI.

The video is sped up 5 times and it took me originally 22 minutes to create it. Here is the JPG image.

Posted in drawing, video | Tagged , , , , | Comments Off on Chipmunk

Cute puppie?

Since the Frogman is having so much fun with an actual (Corgi) puppy, I decided to see if I could draw a cute puppy for him and journal the process of drawing a puppy for the Frog-family.

I started with a photo on Flickr of a grown-up dog as my reference, made two consecutive versions of him that were more like cartoons, when I realized I was making this too hard. So I simplified the dog. This was better, but how did it compare to other animals and humans?

sketch # 1sketch # 2sketch # 3sketch # 4sketch # 5

I was at a loss and decided to study how to draw animals a bit more with Ken Hultgren’s book The Art of Animal Drawing. I also tried some sketching of my own. Sloppy drawing, to say the least.

sketch # 6sketch # 7sketch # 8sketch # 9sketch # 10sketch # 11sketch # 12

You can’t expect years of rigorous training to be replaced by a few hours of sketching, but a simple cartoon drawing should be feasible in that short amount of time. Now it was a matter of clearing the mind and pretend I’m the best Corgi draftsman on the planet, woof!

Well, before I was able to claim that title, I had to study the Corgi Flickr group photo stream for some good reference shots of the Welsh Corgi.

Here are two sketches I made from those photos, plus two sketches I made from imagination. Notice that there’s still a marked difference between the two. This meant I had to do more study and practice!

sketch # 13sketch # 14

Then the time crunch set in. I have other things to do, other things to enjoy. So I sat down and drew the best puppy I could from a reference photo. The pose was almost like in the reference, but the look was aged down. It was supposed to be a puppy, after all.

sketch # 15

It was an ink and crayon sketch, and although I would have like an original pose, it just wasn’t possible on such short notice.

The “official” sketch was posted on my tumblr site.

I hope you like it as much as I do.

Thanks for reading!

Posted in drawing | Tagged , , | Comments Off on Cute puppie?

Sketch Daily for week 2

Here are the sketches I made for the Facebook group Sketch Daily in the second week of 2012.

Jan-08-2012Jan-08-2012Jan-09-2012Jan-10-2012Jan-10-2012Jan-10-2012Jan-11-2012Jan-12-2012Jan-13-2012Jan-13-2012Jan-14-2012

Posted in drawing | Tagged , , | Comments Off on Sketch Daily for week 2