Tuesday, March 6, 2012

Codecademy, reading, every day I'm shuffling

So a while back I signed up for Codecademy. I really enjoy doing tutorials, and it promises to teach you how to code in a year. I already know how to do some basic coding, and I thought this would be great as a refresher and perhaps to shore up some of my spotty understanding of how programming works. I'm talking about filling in those BLANK SPOTS, man!

This week I've been going through the first lesson in my spare time (mostly due to a continuous stream of harassing emails from Codecademy) and it's mostly Javascript so far.

So far it's enjoyable. My only real issue is that it's mostly Javascript, when my real love is Ruby, but I don't think understanding Javascript better is a bad idea. And I'll be working on a lot of basic programming ideas, such as arrays, loops, variables, etc, etc, and that kind of practical work has always been the best way to learn for me.

Also here's my profile. Check out those cheevos dude!

In other news, I spent much of last week working with haml and sass. I've got more user experience and web design books to read. Joel lent me Bulletproof Web Design and Designing the Obvious, and I'm excited to dig into both of them. Read all of the things? SURE WHY NOT

Sunday, February 26, 2012

haml, sass, North Carolina and Book Reports

Hey remember how I was going to do some new code related thing every day in February, and blog about it every day? And then I didn't update this blog for three weeks? WHOOPS! CODETOBER is dead in the water, but I'm still coding. I promise!

So here's what's been going on. My new schedule has proven to be too busy to blog or work on other things as much.

Last week most of Expected Behavior (minus Michael) headed to North Carolina on a business trip. My buddy Joel (what's up Joel) loaned me several design related books:

Don't Make Me Think by Steve Krug

Don't Make Me Think was probably the most useful of the books I read last week. Tons of great advice about UI design, and common mistakes to avoid. It's a few years old (and the age definitely shows in a few places) but it's still a great resource.

Handcrafted CSS: More Bulletproof Web Design by Dan Cedarholm

Handcrafted CSS is definitely my favorite book I read. I've always loved web design, and I've always wished I knew more about it. Last week was a great chance to work on my design chops, and this book explored graceful degradation, css frameworks and other easily applicable ideas.

Fluid Web Typography by Jason Cranford Teague

Fluid Web Typography is mostly about typography (WEIRD) and while I still haven't finished this book, I've been interested in fonts and typography for a few years now. I'm sorry I can't provide a more in-depth book report on this one.

I read through Don't Make Me Think on the way to North Carolina, and Handcrafted CSS on the way home. I also started Fluid Web Typography, but that was enough reading for one car trip.

I spent a lot of time working with haml and sass last week, so I don't want to give the impression that I'm not coding these days. I don't typically enjoy reading through less practical books, but I picked up a lot of great ideas from reading through these books. And I've always loved web design, and getting to work on redesigning our product StatRaptor was pretty awesome. I'm not as far along as I'd like to be with the redesign, but I've made a lot of progress.

And I'm still using Emacs, since it's not as intimidating now that I know how to do some basic things like open and save files, switch buffers, kill buffers, and so on. I still feel I'd be a bit more productive using TextMate or Sublime Text, but I don't think Emacs is tripping me up as much as I thought it would a few weeks ago.

So that's where I am with coding now. It's awesome to work on interesting problems. But that's what coding SHOULD be about, right?

Lastly, I am absolutely STARVED for more book recommendations. I'm planning to finish up Fluid Web Typography, then dive back into the Pragmatic Programmer. What other books should I be reading? I'm especially interested in web and user interface design books, but anything, anything, ANYTHING you've found valuable is highly appreciated.

Sunday, February 5, 2012

Still working on taming Emacs

I find that I often get tripped up by little things when it comes to programming. For example, I was going through that haml tutorial I posted about a couple of days ago, and I wondered exactly how Rails would know to use the haml file instead of the old erb file. After all, I'd already installed the gem and listed it in the Gemfile.

It turns out I didn't have to do anything else. I could have just renamed the .erb file to use a .haml extension. Luckily this didn't take long to figure out, but I've got a history of overlooking things like this that should be fairly obvious.

haml itself is easy enough to understand. Take those dirty div tags for example!

<div class="content">AWESOME CONTENT</div>

Is magically transformed into


EDIT: Corrected this information, thanks to Joel. In haml, a . signifies a class, whereas a # signifies an id.

There's more to haml than this, but it's an abstraction of XHTML which makes writing code easier and less tedious. I was thinking of taking the time to do a more in-depth tutorial for haml, but instead I'm going to incorporate it into this Twitter Bootstrap for Rails 3.1 tutorial series my buddy Joel sent my way.

I hope you guys like reading about Twitter Bootstrap, because that's absolutely what I'll be blogging about this week.

I've also made some progress with Emacs, and no longer feel lost when trying to do basic things like open recent files. I've definitely got some work to do before I feel really comfortable coding with Emacs, but I don't think it'll take long to get the basics down. I went through the notes I made at Fort Behavior last week and threw them into a .txt file, so I'll just have that open when using Emacs until I don't need it.

Friday, February 3, 2012

How do I Buffer? Also doing a haml tutorial

So tonight I've been working through this tutorial on haml, working on converting Chorenivore from .erb to .haml view files. Everything's going pretty well so far, but I'm having more trouble than I thought since I'm still learning Emacs.

I've been pretty sorely tempted to just install Textmate or Sublime Text, in order to reduce the number of things that are giving me difficulty, but I did promise Gordon and the other Expected Behavior guys that I'd give Emacs a shot. Four days does not qualify as giving Emacs a shot, you lazy programmer!

I'm going to do some more work with haml tomorrow (kind of funny to think that learning how to use it won't be nearly as difficult as learning how to effectively use the buffer in Emacs is proving to be) and I'd like to take a look at the new version of Twitter Bootstrap that came out this week.

So far I'm enjoying CODETOBER. If nothing else, the guilt of not coding and blogging is prompting me to code and blog more. It's also not as structured as I'd imagined it at first. It hasn't been DAY 1: HAML, DAY 2: CUCUMBER by any means, but as long as I'm doing new things, learning how things work and blogging about it, I think I'm on the right track. And it's definitely a good idea to work on things I use for Expected Behavior work, such as Emacs, haml, sass and Twitter Bootstrap.

Thursday, February 2, 2012

More Work with Emacs, Plus HAML and Sass

Today I began to get more comfortable using Emacs, and while it still feels foreign, it no longer feels completely foreign. I also appreciate that a lot of Emacs shortcuts are used in many other programs, so something like C-E is applicable outside of Emacs.

We do a lot of pair programming at Expected Behavior, and my buddy today was Joel. We did some design work, which introduced me to haml and sass. These are both things I've been wanting to look into for a while, and I think today was pretty productive.

Honestly, haml and sass aren't that difficult for me to grasp. haml's way pickier about how things are indented than most other languages I've used, but it's easy enough to pick up. Sass is very similar, and messing around with any kind of design always makes me want to do more design.

It feels a bit overwhelming to be learning so many new things at once (Emacs, mostly, but also haml, sass and using Git for source control) but it's also really gratifying and a ton of fun. It's not about being the best programmer in the world. It's about being the best programmer you can be, and getting better every day.

Wednesday, February 1, 2012

A Beginner's View on Emacs

So first off, I was hired by Expected Behavior this week. I'd been doing some SEO and marketing consulting work with these guys for a while, and this is a fantastic opportunity. I'm excited about working with such a talented group of guys.

A great deal of my first week has been getting this computer set up and doing right. It's already been named Pazuzu, continuing my trend of naming my computers after famous demons, and also a delicious reference to the Exorcist.

That said, Expected Behavior is an Emacs shop. So I thought a great first post for CODETOBER would be about how I got my feet wet with Emacs.

For a long time, I really didn't understand why programmers preferred one text editor over another. But now I'm getting it. My understanding of Emacs so far is it's a text editor (as well as virtual machine, compiler, debugger, and so on and so forth) with a fanatical insistence on efficiency. If you ever leave home row, you're doing it wrong.

My initial impression? I was intimidated by Emacs, not only by the learning curve (which I understand is steep) but also by its reputation. But I don't want to be put off just because Emacs is 40 years old and doesn't work the way text editors I'm more familiar with do. If I can get past this steep ass learning curve, think of how POWERFUL I will become!

I haven't done much with Emacs so far, but my goal for this week is to get a few basic commands memorized: opening files, saving files, going to a certain line, etc. I estimate there are probably around 10 to 15 command I'll definitely use a lot of the time. Then I plan to expand the commands I've memorized, and we'll take it from there.

I also understand my friend Miles is using Emacs this month, even though he's a Vim guy. Let's all use Emacs, all the time!

Thursday, January 26, 2012

Using Twitter Bootstrap to Render Partials with Tabs

It's been a good week for coding. I've done some pair programming, interviewed at iGoDigital, and dug into Twitter Bootstrap.

Which is actually the topic of this post! WEIRD!

Anyone ever tried using those sexy little tabs to render partials? Basically I'm working on Chorenivore again, and I want a tabbed view of the days of the week, with each tab containing items that are supposed to be done that day. I'm currently thinking of a separate partial for each day, though this could probably be reduced to one partial that simply renders each chore that's been tagged with the day of the week, but I thought I'd make it stupid before I made it clean.

Here's the specific code I'm talking about:

Twitter Bootstrap Tabs

I understand how to switch through actual links just fine using these tabs, but how would you do the same thing with partials? I found this question on StackOverflow that seems to address this, but I couldn't get his example to work.

Here's a link to Chorenivore on Git:

Chorenivore on GitHub

A couple other things. First off, I haven't really used Rails in the last four or five months and it feels so BULKY compared to Sinatra. I'm all "WTF, how do I link to a new view and actually make it do right?"

And does anyone know where I'd find Why's Poignant Guide to Ruby? I feel a book report coming on.