675 reputation
49
bio website codethink.no-ip.org
location
age 31
visits member for 3 years, 7 months
seen Nov 13 at 7:04

I am a software architect by trade and a coder/hacker by compulsion. I've worked on projects large and small, and have experience in more languages than I care to count (Java, ActionScript, Objective-C, JavaScript, C, C++, HTML, CSS, Velocity, SQL, Php, Bash, Perl, and probably others) and a number of different functional domains (concurrency/multiprogramming, build and test automation, server administration, team and project management, high-level design and architecture, etc.).

Notable open-source contributions include matchbook, a platform-agnostic matchmaking service, API, and SDK for mobile applications (think multi-platform real-time gaming), a thread-safe wrapper for Apple's Core Data framework, and a screen-capture utility for iOS.

I've also self-published a book about self-publishing books, and a comic reader app for the iPhone. I maintain and occasionally update a blog about various topics that I happen to find interesting or noteworthy.


Aug
13
comment Is there anything groundbreaking about NoSQL?
"my understanding is that NoSQL is rather arbitrary" - My understanding is that for all the hype it's basically a persistent HashMap. Which is useful in many cases, but not generally sufficient in and of itself. Think of it as sideband storage for things that don't benefit from being stored in a relational way.
Jul
4
comment How does the “Fourth Dimension” work with arrays?
I think your first sentence is actually backwards. Programs are limited by the physical constraints of the hardware they run on. And memory is flat. Programming languages may allow arrays to be specified in terms of arbitrarily many dimensions, but really all that happens is the provided numbers are multiplied together and you get a flat list of however many things you actually asked for. Some math is used to handle addressing into the flat list based upon multi-dimensional indices, but it's still a flat list. The dimensions are entirely illusory.
Mar
7
comment JavaScript - Why do frameworks bind to $()
@ErikReppen - Sure, why not? It's no more stupid than some of the other things holy wars have been declared over, at least.
Jan
8
comment Loop fusion example using aspect-oriented framework
From what I can gather, it kind of seems like implementing loop fusion using aspects is a horrendous misuse of aspects.
Jan
8
comment Do coding puzzles make good interview questions
@MartijnVerburg - But if all you need is a web UI for Payroll then why hire a new employee for that in the first place? If that's the only development/coding that needs to be done you might as well just farm it out to a consultant. But if that's not the only engineering work that needs doing, it seems presumptuous to assume that the candidate will never encounter a challenging problem that requires them to think outside of the web arch. and TDD box. Anyone can be a code monkey; good developers are problem solvers.
Jan
8
comment What is the best way to discern an excellent programmer in a job interview?
I'll disagree with the "puzzles suck" viewpoint. Puzzle questions are useful because they can answer questions like 1) how does this person react to a challenging problem (do they get frustrated/give up easily, do they take a reasonable approach to working things out, etc.), 2) can this person think quickly and creatively and back up their ideas, and 3) approximately how intelligent is this person. Of course, an interview that is only puzzles is a bad idea. But one or two such questions can be useful. Remember that you want programmers who are problem solvers, not monkeys on typewriters.
Feb
28
comment Convince a lone developer to use a separate build tool instead of the IDE one-click build
I disagree 1000 times over. If you structure your build scripts correctly, then you really only have to pay the cost of writing them once, and can then reuse them almost verbatim across any number of projects. There's a lot to be said in favor of having a one-line build command that builds, configures, deploys, and runs the system automatically. And once you have that, it will save a ton of time compared to manual deployment/configuration management, which can then be spent on those new features you mention.
Aug
2
comment Designing a Technical Interview
1) It doesn't ask for the "closest" double. Any reasonable value is fine. The focus is on whether the candidate can break a complex problem down into manageable chunks and come up with a reasonable algorithm. If they understand the precision issues then they can have bonus points. 2) To see if the candidate recognizes the difference between "static synchronized", "synchronized" and a synchronized block, and the pitfalls particularly of the first option. 3) Yes, the terrible naming convention is part of the question.
Aug
2
comment Designing a Technical Interview
Yes, my thinking with the language questions was that since Android follows patterns common in other Java API's identifying people with solid Java skills should be enough, except perhaps for senior-level/team-lead roles. And for Objective-C I don't think it's terribly common for people to work in that language unless they are coding for Mac/iPhone. Would you agree with that assessment? And we'll probably include some conceptual questions like the ones in your link, but primarily for the leadership roles. For the other roles we want strong coders, but not necessarily architects or leads.
Aug
2
comment Designing a Technical Interview
Thanks, I agree, there should be some additional questions specific to the leadership-level roles. Giving an offline assignment is an interesting idea, but how could it be structured so as to be fair and repeatable? Is the idea that we would say what the project should do? Or if not then how should we effectively guard against the candidate finding some project online and trying to pass it off as their own?
Aug
2
comment Designing a Technical Interview
@Thomas - Peer review, primarily. Confirmation that my questions are reasonable and adequately challenging to help find qualified developers and/or suggestions on how to improve them, add new questions, and so on. And also opinions (with justifications) about whether I should include more domain-specific questions would be welcome, if anyone has any to share.
Aug
2
comment JavaScript - Why do frameworks bind to $()
@VirtuosiMedia - Why is that? Are you saying that it is not ever possible for one framework to do something that another framework does not, or that there is no case where having a combined feature-set is desirable? For instance, on webcomix I used MooTools (with some custom z-indexing modifications) to implement draggable divs. But the social toolbar plugin uses jQuery, which caused integration conflicts. Is your assertion that I should reimplement the draggable divs in jQuery just because I want to use a social toolbar plugin that uses jQuery?