HNHacker News
TopNewBestAskShowJobs

morganherlocker

708 karma · joined December 6, 2013

submissionscomments
morganherlocker··on Ron Paul Launches Snowden Clemency Petition
I don't know about that. IME Noam Chomsky is pretty much respected by anyone who knows who he is. Granted, that is a relatively small percentage of the public. The only people I have ever heard bash on Chomsky are philosophers who disagree with very specific philosophical views that he holds (innate grammatical knowledge comes to mind).
morganherlocker··on Ron Paul Launches Snowden Clemency Petition
Like I said, I have no bone in the fight, but your response pretty much illustrates my point.

Not to get too into the weeds, but it sounds like you would fall onto the side of the spectrum where Ron Paul is also seen as an "apologist" of sorts. I know several libertarians who also fall into this camp, and would view Ron Paul as "better-than-Rand-but-no-Rothbard" type.

For what it's worth I respect the libertarian point of view and find it fascinating, despite disagreeing with some of the basic premises (but that's where the fun debates are).

morganherlocker··on Startup sales negotiations 101 – how to respond to discount inquiries
"Sounds great! We want to invest in you too. How about a long term contract that specifies the price increase after the first year? If we do not have X and Y features before the price increase, we will gladly allow you to opt out of the contract."

Obviously, this only works in cases where enforcing a contract is actually worthwhile (think $100k/yr service, not $5/mo service).

morganherlocker··on Ron Paul Launches Snowden Clemency Petition
IME he is pretty much worshipped by the libertarian crowd, but not taken seriously in the mainstream. His son Rand Paul seems to be taken more seriously, but libertarians seem to have extremely mixed opinions of him, since he is more of a pragmatist than his father (which they interpret as compromising on core values). Note: I am not a libertarian, but I have many friends who are deeply involved with the movement, so this is my rough view from afar.
morganherlocker··on Elasticsearch 1.0.0 released
Thanks for the explanation. Sounds like ES has equal or slightly more support for spatial stuff than MongoDB then (about as much as most people need).
morganherlocker··on Elasticsearch 1.0.0 released
I could be totally wrong, but the docs you linked to do not actually conform to the geojson spec. It is geographic and it is json, but not valid geojson. The part where it says:

> Format in [lon, lat], note, the order of lon/lat here in order to conform with GeoJSON.

.. the data example below is not actually geojson. See the spec:

http://geojson.org/geojson-spec.html

morganherlocker··on Elasticsearch 1.0.0 released
Might not matter, but they do not follow the geojson spec for spatial storage.
morganherlocker··on The Erosion Of The Status Of Software Developers As Professionals
> If you are software engineer - you have the PE / FE exams. In some states its even illegal to call yourself a softare engineer...

Is this actually illegal in any state, and is it actually enforced in any state? I would bet that 99% of people who have the title "Software Engineer" have not taken those exams, and most have a CS degree.

morganherlocker··on Npm Raises $2.6M Seed Round
Examples (genuinely curious)? In my casual experience, it seems to be easier to use than gems or pip and has much larger ecosystem than anything else I have tried, which is the #1 selling point of a package manager IMHO. A good package manager (by my standards) should have:

1. super easy publishing 2. A package for practically everything you can think of and if not, see #1 3. Most of the market share for its particular language so that you can be reasonably sure a particular module maintainer has an up to date package

morganherlocker··on Npm Raises $2.6M Seed Round
Stats in general seem like a pretty horrible monetization strategy considering the other obvious routes that would not be met with service-killing scorn. I would be shocked if the first option was not the route they take, with the second possibly coming later.
morganherlocker··on Npm Raises $2.6M Seed Round
I just want to say that I would gladly pay for private npm hosting. Something along the lines of github's private vs public repos would be extremely valuable. Yes, we could set up our own private npm server, but this seems like an obvious thing to outsource to a service as long as the pricing is not crazy. Best of luck!
morganherlocker··on Curse Of The Gifted (2000)
> Another is your refusal to use systematic version-control

Pretty hilarious reading this now, considering his contributions to version control in the past several years. I am not too familiar with all of the backstory, but Linus' creation of git seems like one of the most extreme cases of "Not Invented Here Syndrome" since... well Linux itself (half-joking).

I certainly won't complain when someone gets so frustrated with the current tool-o-the-week that they go out an build something superior.

morganherlocker··on Node Summary – Naive summarization algorithm for Node.js
I would point out that there are cases where sync callbacks do make sense (granted, this does not look like one of them).

1. You want to add optional results. See underscore's each function that returns an object for the current iteration, then an optional iterator value in addition, which you sometimes need.

2. There are many functional patterns that utilize callbacks where you want to pass functions in as parameters (which could do anything, including accessing the file system or waiting on an external call). Underscore also has loads of examples where this is the case, despite being a sync library.

3. This is probably the least valid reason, but sometimes you do not know going in whether or not a function you are writing will be async. If you create a sync interface, it will need to be changed if the function needs to be async in the future, or if it needs to pass additional results. In my experience the latter is not terribly uncommon. The former is pretty unlikely in library code, but I could see it happening in application code regularly. Breaking apis is not fun for anyone.

morganherlocker··on Diffable, more customizable maps
The style spec is a feature I have been waiting on for a long time. Does anyone know if there is a leaflet plugin out there for rendering styles based on the spec when adding a geojson layer?
morganherlocker··on Algorithm Development is Broken
1) Will there be limits on the size of data sets/ what size data are you optimizing for? Some algos focus on hundreds of records, some on billions, and the ideal system for either are quite different (small data works great by transferring data back and forth over http, data with hundreds of thousands of records and up... not so much).

2) Same question as above, but for processing times. Some algos are aimed at operating on the fly and might take ~1 second or less. Others (many that I deal with quite often), might run for days, or even weeks. What sort of processes are you optimizing for, and are long running procs on the radar?

It is an interesting idea, but there is a high bar when competing against my language's package manager, and the 10s of thousands of "algorithms" already out there. Best of luck!

morganherlocker··on Yet Another Framework Syndrome (YAFS)
And yet, if I were to meet someone who was a few months into a new js web app, I could probably guess which framework they were using with 5 guesses or less 95% of the time. Also, I would bet that all 5 of the top frameworks will be reasonably supported for the next 5 years. As for the many frameworks that make up the last 5% of usage and have shakier futures, I doubt many new devs are actually using them.

It is always a red flag for me when someone starts arguing for less choice, more monolithic frameworks, and the inevitable lock in that comes along with having only one or two options.

morganherlocker··on It’s Time to Make OpenStreetMap Your Only Street Map
Not intuitive, but zoom in and hit the edit button. You should now see all the data as vectors. Click on anything and you will see all of the metadata.
morganherlocker··on Is Math a Young Man's Game? (2003)
(co)homology and homotopy are specific to algebraic topology. There are several other types. Regardless, these sorts of discussions have convinced me that the semantics regarding these subjects are extremely muddy. I am by no means an expert, and tend to try to stick to the meanings conveyed by colleagues with more experience and/or wikipedia :)

My library is definitely not a topology library. I tend to describe it as a geospatial processing engine. My first comment was really only meant to speak to some overlap I noticed with the topology described in the article, and to convey my deep respect for the people who have a more full understanding of the low level mathematics involved (which it sounds like you might possess).

morganherlocker··on Is Math a Young Man's Game? (2003)
Your link is referring to algebraic topology. It is one of several subfields of general topology. See the opening paragraph that lists a few others:

http://en.wikipedia.org/wiki/Topology

morganherlocker··on Is Math a Young Man's Game? (2003)
Actually it deals with both. Primarily it deals with topology and statistics in the context of topography and geography. The concepts addressed by topology are essential to any GIS engine. There are actually several definitions of topology, and turf actually touches on most of them:

- basic topology like detecting whether or not a point lies within a complex polygon

- topological morphology, such as smoothing a line or polygon while maintaining boundaries (this is probably the most common definition in the GIS world)

- topological interpolation, such as estimating z values over a 3d mesh[1][2] (there are a number of methodologies here, and this represents probably the most interesting intersection of topology and statistics)

Also note that turf is geared towards GIS, but most of the underlying operations are not GIS specific and apply to geometry more generally. You will find many of the same algorithms in applications like game engines, for example.

[1] http://en.wikipedia.org/wiki/Kriging [2] http://en.wikipedia.org/wiki/Contour_line

morganherlocker··on Is Math a Young Man's Game? (2003)
About 6 months ago I began writing a library[1] that focuses on topology (much of what was discussed in the article) and geospatial stats. I am by no means a math genius, and my library does nothing too novel from a mathematical perspective. Still, it has been nearly all consuming to grok the immense amount of math that goes into this sort of thing. I can only imagine the creative energy it must have taken to actually design these algorithms from scratch.

[1] https://github.com/morganherlocker/turf

morganherlocker··on Is Math a Young Man's Game? (2003)
On the other hand, it would seem that many of the top experts today are masters at mashing up the frontiers of multiple fields. Just think of all of the applications of Neuroscience + X (CS, Philosophy, Psychology, Chemistry, etc.). Sure, there are few (no?) people today that can claim mastery of 10 or 20 fields, but most of the cutting edge research does seem to require expert knowledge of 2 or 3.
morganherlocker··on Machine Learning in JavaScript
Fair enough, it is not a language, but I would not call it a library either. Perhaps a platform?[1] It contains many libraries, but also has a cli tool, packages a runtime, a debugger, and even includes a package manager. It contains the sorts of things that would be packaged when you install languages like Python or Ruby.

[1] http://nodejs.org/

morganherlocker··on Game Developers Are Trolling the Makers of Candy Crush With Other "Candy" Games
They also license the name "iPhone" from Cisco. They reference it in the first few lines of the legal section in the settings panel.
morganherlocker··on Machine Learning in JavaScript
> Nodejs is for i/o

Node is a general purpose language that can be used for all kinds of things. I switched from Python to node.js about a year ago for exactly the sort of tasks you are describing and could not be happier. Right off the bat I had huge speed improvements.

Also, io is one of the biggest issues with web based data analysis, so it really should not be underestimated. I can do more with less with node than I could with Python. This is especially true with long running tasks where a 1 minute processing time vs a 20 minute processing time might mean you need 1/20th the number of servers in a cluster ($$$).

Of course, this could be a pretty good argument for something even faster/lower level, but for me, node.js struck a good balance between performance and ease of development/ecosystem. As usual, YMMV.

One last point. The language you choose cannot always be the best language for every task you need. Typically you choose a stack based on the most common/important tasks in your infrastructure, then for less common tasks you just make it work with what the chosen language provides. In this case node.js does not need to be the best solution for ML, it just needs to check the box for being possible, so that devs who needed node.js for other reasons now have the ability to add ML to their toolbox.

morganherlocker··on Machine Learning in JavaScript
To those wondering why someone would want ML in JS, there are loads of reasons.

For starters, node.js, which makes most of the arguments regarding server/client moot.

Secondly, there are many client side applications for these types of algorithms as well. K-means clustering, for example, is already used by many mapping libraries to group together large numbers of points[1].

I personally use neural networks and affinity propagation in many of my applications for predictive analysis. This does not have to only be educational, or of a 'toy' nature.

[1] http://danzel.github.io/Leaflet.markercluster/example/marker...

morganherlocker··on Startups that have bootstrapped their way to profitability
"Google Docs for code" is something that most people would understand.
morganherlocker··on Why do dynamic languages make it more difficult to maintain large codebases?
Often times I find large static code bases to be lacking tests. When you have type safety, the tendency is to test less, and in many organizations, forgo testing entirely. A dynamic language will force you to write tests a lot sooner, before the whole codebase turns into a bad game of jenga. In my experience, testing seems to be a lot easier in a dynamic language as well.

I would say that the most stable codebase would be a static one with lots of tests, but I would also guess that this would be the slowest to develop, and would be the most difficult to implement in a real world team of developers.

I know most of us would balk at a huge codebase with zero tests, but it happens all the time. I would definitely prefer a dynamic code base in which I could get my team to write decent tests, but give up type safety, than to have type safety at the cost of decent tests.

morganherlocker··on Twitter, Box, and Dropbox attracting hordes of employees away from tech giants
This is logical, but I doubt risk averse people often think this way.
morganherlocker··on Reasons to use a paper-based task manager
> For instance, I use Trello as a scratchpad about various things I have going on. I've got about 11 or so person boards. Writing things down and applying a method to limit work in progress is really the corner stone of getting things done in my opinion.

I use trello extensively. I always have an "In Progress" list and an "On Bat" list. "On Bat" maxes at 5 items, "In Progress" always has two items per person on the board (and it should usually only be one item).

← PreviousPage 6 of 9Next →