4,183 reputation
11025
bio website code.google.com/p/…
location San Diego, CA
age 30
visits member for 4 years, 2 months
seen Aug 4 at 20:18

I'm passionate about coding and researching the history of technology as well as exploring where technology is leading.

I used to work in flight simulation doing both hardware implementation (electrical design, wiring), web development (design, development, webmaster), as well as software development (desktop development in C#).

I'm a big fan of both using and contributing to Open source projects.

I am the creator of the pypreprocessor library that can be found on PYPI as well as Google code.


Feb
22
revised Difference between an architecture and a framework
added 36 characters in body
Feb
22
revised Difference between an architecture and a framework
added 36 characters in body
Feb
21
answered Django REST + Backbone/Ember/Angular Implementation Method
Feb
21
revised Difference between an architecture and a framework
added 2 characters in body
Feb
19
comment “Everything is a Map”, am I doing this right?
@MasonWheeler Correct me if I'm wrong but map/dict lookups happen in O(N) time. Where is this mysterious performance hit that you speak of?
Feb
19
comment What is a real-world use case of using a Chomsky Type-I (context-sensitive) grammar
Interesting. I knew about XML. I suspect the drive behind the XHTML 1.0 spec was to lead away from 'quirks mode' HTML interpreters which support context-sensitive exceptions to a cleaner context-free XML.
Feb
19
accepted What is a real-world use case of using a Chomsky Type-I (context-sensitive) grammar
Feb
19
comment Why such popularity with Python?
@DanielLittle So does Python (pylinq), JavaScript (linq.js). LINQ is just syntactic sugar for running lazy-loaded queries on data collections.
Feb
19
comment On developing deep programming knowledge
You'd be surprised at how simple jQuery seems once you understand how to apply monads in JavaScript.
Feb
19
comment Why are data structures so important in interviews?
@ClosureCowboy Check out Coursera's 'Algorithms I' course offered by Princeton. I'm a self-taught programmer too and it's doing a lot to help fill in my gaps in CS theory knowledge.
Feb
19
comment Does open source licensing my code limit me later?
MIT, aka the 'do whatever the hell you want' license.
Feb
19
comment Where does this concept of “favor composition over inheritance” come from?
@MasonWheeler The problem with inheritance is that it bleeds implementation-specific details across class boundaries. Most people are mistakenly taught in school to use inheritance for polymorphism. Interfaces work just as well and support multiple inheritance. Composition here simply means, design a consistent API and enforce it via interface contracts. Inherit only where it makes sense.
Feb
19
comment Where does this concept of “favor composition over inheritance” come from?
-1 Why does Java's Stack implementation inherit from Vector? Because somebody used inheritance when an interface would have been more appropriate. Now that people depend on Stack and its expected functionality including the parts inherited from Vector. The problem with inheritance is that it bleeds implementation details across functional boundaries when it isn't applied correctly. Worse yet, a lot of eager comp sci grads came out of school with a shiny inheritance hammer looking for nails to pound.
Feb
19
comment Where does this concept of “favor composition over inheritance” come from?
@Bevan That's why the statement mentions 'composition'. By relying on interfaces, objects can be polymorphic but without the complex parent/child dependency hierarchy. The greatest flaw of inheritance is that it creates dependencies across internal implementations. Fragile/brittle code is code that can't be changed without breaking other code.
Feb
19
comment Should I return from a function early or use an if statement?
Wow. I have engaged in a lot of holy wars over this topic in support of 'exit early exit often'. Where are all the people who usually argue in favor of 'single exit' go?
Feb
19
comment Why do people fork repositories on GitHub?
It's a simple one-step process to setup a remote tracking branch. Anybody who has tried to contribute to a git repository outside of GitHub knows how tedious it can be. Plus, if the original author goes AFK, you can follow the development graph to find forks that are still actively developed. Hopefully, it'll keep GitHub from degenerating into a wasteland of dead projects the same way SourceForge did.
Feb
18
comment Why did Alan Kay say, “The Internet was so well done, but the web was by amateurs”?
(cont) How about checksums. Let's add one to the IP layer, and another one to the TCP layer but require that it includes a pseudo-header from the IP layer because creating protocol interdependencies is a great idea /s. Don't even get me started on the RFC system. Instead of creating a sane version control mechanism for documentation, anybody who wants to parse the lower protocols has to search through dozens of documents and attempt to discover the intent of the original protocol designers. I gleaned a lot of knowledge about how not to design an API from the TCP/IP specs.
Feb
18
comment Why did Alan Kay say, “The Internet was so well done, but the web was by amateurs”?
I have a lot of respect for Alan Kay's work but he's talking out of his backside if he truly believes this. As a person who has spent a significant amount of time actually implementing low level network parsers I can confidently say the APIs for TCP/IP were equally amateurish and naive. Sure, implement a variable length of options extensions (that nobody ever used) but make the address space fixed and limit it to a 2 byte length, because that wasn't idiotic.
Feb
18
comment Why did Alan Kay say, “The Internet was so well done, but the web was by amateurs”?
In an ideal world that would work and frameworks like Java applets and Flash attempted to make it a reality. When you take into consideration the security aspects, cross system compatibility, ability to scale, and work it takes to maintain state between requests. It's no wonder why it has taken so long to advance. Some very smart/talented people have spent years working out the fundamental flaws/weaknesses of a naive specification.
Feb
18
comment Studies on how well can a programmer understand code in unfamiliar languages?
Good API design and naming conventions help but even language-based naming conventions are often 'opinionated' in a way that only applies to that language. Beside C#/Java (which are nearly identical) most languages operate on different principles that have unique workflows and implementations specific to that language. For instance, in languages that don't follow the mega-monolithic core framework model you'll usually find a huge ecosystem of packages that tie together using a common package manager.