Posts tagged 'node.js'
Today's project was to create a web chat client using
socket.io. Surprisingly, to me, I had a lot of fun doing this work—this sort of systems~ish programming is right up my alley. Massaging packets and managing client-server data processing is fun, once I figured out a couple questions about namespacing and the like.
In terms of "people won't remember what you said, only how you made them feel", I know that I had fun today… but between 5:30 and 8 pm, I made some changes that completely broke how the server handles command requests. I can change my user
nick, and then immediately the socket closes, and a new socket is created, losing all the previous state. I managed, in just under two hours, to track down the call that's causing the error—something about calling
socket.emitinside a particular logic branch—but I couldn't manage to kill the bug, and it's kind of driving me insane.
That said, this is one of the first projects in a long while that I want to keep working on even at the end of the day (as can be seen by my still being at the office after 8 pm). It was a ton of fun, which I can't seem to overemphasize despite my best efforts, but I have to throw in the towel. Maybe this will be something that I can keep working on after the final project.
Speaking of, today was the day that we had to present our initial wireframes to the instructors. Tommy sat down with me and my admittedly crappy, half-baked wireframes, and we walked through the app I'm going to spend the next two weeks creating. This is the really fun, really hard part, one because I keep having to rein myself in, and two because … actually, that's it.
When it comes to large projects, I struggle to keep the scope of my work to a reasonable level, instead letting my ambitions smash up against the realities of implementation. This will either be an unmitigated disaster or a really excellent personal learning experience. I'm good at debugging and problem solving, but when it comes time to interview after this cycle is over, I don't want to have to say that my greatest weakness is that I don't know how to bite off only what I can chew.
The assessment went well; again, the class as a whole were missing quite a few points, but the median score was perfect, which means that a few people had a lot of failed tests. Hopefully they'll overcome; I'd hate to see any of the people I've been working with the past eight weeks get washed out now… although I can understand if it has to be that way. We're not General Assembly; we have to maintain some standards ;)
Today's partner: Max
Today was another example of re-creating Ruby code with JS, but emphasizing the features specific to JS—mostly callbacks and (more) closures. The paradigms are different, and JS is much more verbose (less of a profusion of one-line methods and more C-style 20 line blocks of
elses and explicit loops). Which means that we're a lot more "productive" in the "productivity = lines of code" sense, and it was easier to make each individual line work, but I get the sense that finding an error will be harder in the future.
I don't think I like node, but we can make it do what we need to. What's most frustrating is that when you do have a real problem (debugging or experimenting), building up workable state to the point that you can try to find the problem is much more difficult. I really hope we get exposure to a testing framework or something for JS so that we can automate a lot of the process of iterative development.
Other than that, the module packaging in JS is ugly, but given the power and portability of JS overall, I think I'll be able to survive.
All in all, I'm enjoying JS, but what I'm really looking forward to is the power of JQuery and .css. Is it odd that selectors are so interesting to me?
Me, a typography nerd… liking text styling… who would have thought.