HNHacker News
TopNewBestAskShowJobs

mattrepl

973 karma · joined March 24, 2008

Website: http://dynamictyping.org Email: mrevelle@gmail.com
submissionscomments
mattrepl··on The growing data-driven component to computer science
Out of curiosity, what is your definition of computer science?
mattrepl··on Building a world-class team: six mistakes I made early in my career
Excerpt from binary search article on Wikipedia:

"Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky…" — Professor Donald Knuth

When Jon Bentley assigned it as a problem in a course for professional programmers, he found that an astounding ninety percent failed to code a binary search correctly after several hours of working on it, and another study shows that accurate code for it is only found in five out of twenty textbooks (Kruse, 1999). Furthermore, Bentley's own implementation of binary search, published in his 1986 book Programming Pearls, contains an error that remained undetected for over twenty years.

http://en.wikipedia.org/wiki/Binary_search_algorithm#The_alg...

mattrepl··on John Koza Has Built an Invention Machine
Problems for which you have solid models and tools (statistics) to solve them are the exact sort you wouldn't use GP or any sort of evolutionary computing (EC). EC is best used when the only other option is picking random solutions from the entire solution space.

At least that's what I've gathered.

mattrepl··on 0MQ: A new approach to messaging
Actually Redis is a bit more than a k/v store these days. It provides implementations of a variety of basic data structures, including lists that support queue operations. There's BLPOP[1] and BRPOP for blocking job/message requests and LPUSH and RPUSH for placing a job/message on the queue.

That said, I'd still like to see benchmarks showing Redis beating Beanstalkd. Of the two, I've only used Beanstalkd, but it's a great example of keeping things simple while still providing advanced functionality.

_

1 http://code.google.com/p/redis/wiki/BlpopCommand

mattrepl··on Learning from Wakemate - Smart announcements
The slipped schedule and monthly charge for additional features were not the main source of the uproar. The announcement implied that the online reporting advertised as included with the purchase price was now only available at additional cost.

The letter was interpreted as, "Hey, we're running late, sorry. Oh yeah, we're also charging for the sleep report separately now; so, we'll make up for the delay by throwing in some free months that you already were planning on getting and then charging you for the latter months you also thought would be free. You're welcome!"

People felt duped, it's not about the dollar amount it's about trust. WakeMate have since clarified that basic reporting will remain free.

mattrepl··on Singular Value Decomposition Tutorial
For anyone that finds the posted site painful on the eyes, here's another introduction to SVD that is all on one page by default and isn't crowded by advertisements.

http://www.igvita.com/2007/01/15/svd-recommendation-system-i...

mattrepl··on HyperGraphDB - a new open-source graph db
They're probably using the BDB Java Edition which uses a GPL-compatible license and does require all source code be released with program distribution. Looks like you're right, HyperGraphDB can't be LGPL.

More info: http://www.oracle.com/technology/software/products/berkeley-...

mattrepl··on Ask HN: Which is a good Column Store database?
BigTable clones like Cassandra (http://incubator.apache.org/cassandra/) and Hypertable (http://www.hypertable.org/) can be used in a column-oriented fashion. Both use column families to group related columns.
mattrepl··on The danger of releasing too early
Directed Edge's landing page (http://directededge.com) is a good example of communicating product capabilities to non-technical folks.
mattrepl··on Ask HN: how do you avoid burnout and getting taken advantage of?
Get in touch if you're interested in search and thinking about starting something. One never knows...

matt@dynamictyping.org

mattrepl··on Dropbox (YC S07) looking for Android Developer
There is probably a correlation between top-tier CS pedigree and performance, but using it as a filter for joining a startup is detrimental. The chance you're missing a "diamond in the rough" is high, and those are exactly the folks you want.

If you're Google and have tons of résumés to sort, then fine; but in this case it seems a good way to miss a great hire.

mattrepl··on "Design Patterns are the disease, Clojure is the cure..."
As design patterns became popular in the world of statically typed, class-based OO languages that lacked first-class functions (C++, then Java and C#) there always seemed to be an emphasis on the implementation details, namely counterfeit function objects.

The higher level abstraction aspects of a design pattern are usually better expressed without introducing codewords. E.g., the Observer pattern is just, "let's call a function on objects that want notification." It's the baggage that comes along with implementing these abstractions in blub that justifies a name as a pointer.

Related to the above, design patterns connote boilerplate; all that generic code that's needed to setup the pattern in blub.

mattrepl··on Ask HN: What's the coolest computer simulation you can think of?
There actually was a recent paper describing a model of zombie infections, it was mentioned on HN previously.

http://www.mathstat.uottawa.ca/~rsmith/Zombies.pdf

mattrepl··on A Rails like framework for Clojure.
Aside from having access to all the Java web frameworks, Clojure has Compojure and Conjure on the higher level and Ring (equivalent to Python's WSGI and Ruby's Rack) for lower level.

I wouldn't discount Clojure as not ready for complicated web applications based on it's young age; Java servlets can be written in Clojure. Not that Java servlets are great, but they are widely used for non-trivial web sites.

Clojure is great at removing the ugliness of some Java APIs, I recall that Compojure is built atop servlets.

mattrepl··on Ask HN: Startups in DC?
I'll second Social Matchbox as a good place to learn about startups in the DC area.

I've recently started a software company with a friend from Mason, but unfortunately we can't afford to hire.

Hit me up if you want to grab coffee/beer (contact info in profile). Good luck and welcome to DC!

mattrepl··on Scala – The Next 5 Years
I've tried Scala out for several shorter projects and have left unimpressed by its overall design. It has a great list of features, the type system and actors are my favorite, but it lacks coherence. Scala is usable and people build real software with it, I'm certain that what I dislike about the language is irrelevant to some.

I hoped for Scala to be Haskell on the JVM but it felt more like C++. It's clumsy, which may be the result of feature creep and lack of a single, strong design philosophy.

mattrepl··on Learn Emacs in Ten Years
I'm surprised your comment has been voted up, it hinges on the assumption that learning the intricacies of a programming tool, in this case an editor, prevents accomplishing anything else with you life.

There may be other people out there that use an editor, or an OS, to impress others; but from personal experience and those of friends, there are plenty of people that learn vi and Emacs because they needed to get things done.

The right tool for any job depends on the person. Someone familiar with the details of HTML and CSS would likely be better off not using a WYSIWYG editor, but for someone unaware of and uninterested in DOMs and stylesheets that editor would be great.

mattrepl··on How to Write a Spelling Corrector
Would you consider making it available to others?

Perhaps the UCI Machine Learning Repository would accept it. If not, I'm sure I could find a way to have it hosted at my university.

mattrepl··on From C# on Mono, to Clojure on the JVM
Is there a significant reason, other than preference, that Python is a "better fit for real-world team based development" than Clojure or any Lisp dialect?

Python supports functions as objects that can be passed around, but that does not make it a FP language. Functional programming is about constraining mutability and declaring what you want, now how. Python does not lend itself to that style of programming.

Guido has spoken out against map/reduce/filter, lambda, and TCO in Python so many people interpret that as him disliking FP. I think it has more to do with Guido's aesthetic and Python's design principles than anything else.

mattrepl··on S-Corp’s vs. LLC’s
I don't know anything about corporate investors, but the frequently cited problem with LLCs is their ad-hoc structure. For example, there is no requirement to have shares, but such a construct can be defined in the operating agreement and would be needed to have investors.
mattrepl··on Hello Haskell, Goodbye Lisp
I've noticed the same thing with Clojure. I only dig into macros to remove boilerplate, like when using APIs provided in other JVM languages.
mattrepl··on On Hacking - Richard Stallman
This topic shouldn't be taken seriously, so I'm hesitant to post; however, there's a precedent in opposition to your first point that external judgement is not required. From the New Hacker's Dictionary entry for hacker:

"It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you'll quickly be labeled bogus). See also wannabee."

mattrepl··on Don't hire a programmer if they don't code for fun
Defining the specifications of a form could be considered programming, as is defining formulas in a spreadsheet application. In this thread, I don't believe the definition of programming includes Excel users.

Creating an application for building forms (e.g., Wufoo) is programming, building a form with Wufoo is not.

Note, I like the idea of getting non-programmers involved in programming activities. However, just because you work as a programmer and get stuck with things a non-programmer can do doesn't mean programmig is boring, it means you have a boring job.

mattrepl··on Don't hire a programmer if they don't code for fun
You missed the point. A skilled, creative programmer will write their own utility or framework to generate the boring stuff. Assuming they've done that well, feeding the form specification to your form compiler is all there is to it.
mattrepl··on Cappuccino’s FlickrDemo in 45 lines of jQuery
If HTML and CSS were supported correctly across all platforms, then they would indeed be great DSLs. But until inconsistencies in their interpretation are corrected, they're a pain in the web developer's neck.
mattrepl··on Do you know any programmers who exhibit these personality traits?
Headphones work in two ways: as a signal to others that you don't want to be disturbed and the audio signal should drown out environmental noise and prevent you from becoming distracted.

And practicing meditation can't hurt, it'll help with focusing.

mattrepl··on 23 Essential Tools For Web Development on a Mac
This sort of setup is great for working out server configuration kinks during development. To do it right, you need an editor with remote file support and a way to interact with a remote process.

Lisp development in Emacs supports this setup.

http://bc.tech.coop/blog/051227.html

mattrepl··on The Choice of Work
I like it, the key is the correct contrast and yours looks fine.
mattrepl··on Why Objective-J, Cappuccino and SproutCore are completely changing the web app industry
You said: "[b]ecause Apple's dev tools have always had such a huge impact on the software development industry".

I simply provided a single example that refuted your conjecture that Apple had no influence in the development world. It's irrelevant what either one of us thinks of Java or its future; Java was a significant, mainstream development tool and it was impacted by Apple development technologies.

mattrepl··on Why Objective-J, Cappuccino and SproutCore are completely changing the web app industry
Your comment is spot on, except the first paragraph. Apple's dev tools may not be used by the majority of developers, but they have influenced the industry.

One such example is Obj-C and NeXTStep's influence on Java (http://cs.gmu.edu/~sean/stuff/java-objc.html). Of course it was really NeXT's influence, but it was still Steve Jobs and company behind the scenes.

← PreviousPage 3 of 4Next →