HNHacker News
TopNewBestAskShowJobs

nathan-muir

21 karma · joined September 4, 2014

submissionscomments
nathan-muir··on Docker Acquires Mutagen
I've been using it with vagrant. It's an amazing file sync between host and guest. Avoids so many of the annoyances of nfs et al
nathan-muir··on 22-Year-Old Lidar Whiz Claims Breakthrough
I think the author is slightly exaggerating here; not that the larger range wouldn't be useful.

Assuming that there's a stationary obstruction that you must come to a complete stop.

According to [1] the stopping distance of a car travelling at 70mph is 245ft (75m).

A car travelling at 70mph is doing approx 31m/s.

With a 0.5s reaction time, the car would travel only 90m, or; With a 200m range, the car would have 4s to initiate an emergency breaking manoeuvre.

[1] http://www.government-fleet.com/content/driver-care-know-you...

nathan-muir··on GitHub has 11,995,200 open issues
> Still wish more people knew about this dashboard view into Issues

I only discovered the dashboard recently after using github for years!

Having the overview was actually the missing piece in getting control of my workload & priorities. -- So Thank you!

nathan-muir··on Javascript, locking and sound
If playing the sound isn't latency sensitive, you could just have each tab pick a random delay [1].

When the tabs receive the event, they each wait X milliseconds. The first timer to expire marks the event as "played". Other tabs receive this event, and abort their timers.

If a "leader" disappears, it will simply fall to a tab with a larger delay.

[1] Something like, rounded to 50ms increments, in a range, 100 - 1000ms. Avoiding collisions / ensuring uniqueness is left as an exercise for the reader.

nathan-muir··on Recognising a Bad User Interface at First Glance
Fair enough. I've reworded that part.
nathan-muir··on Recognising a Bad User Interface at First Glance
The Design of everyday things [1] (Found on Coding Horror's recommended reading [2]) was crucial in understanding how people intuitively interact with the world around them - including your web application - based on the visual cue's you provide.

While this article provides some metaphorical fish - I found the Design of everyday things helps you become a fisherman.

EDIT: Swapped the order of references.

[1] http://www.amazon.com/Design-Everyday-Things-Revised-Expande...

[2] http://blog.codinghorror.com/recommended-reading-for-develop...

nathan-muir··on Optimistic UI with Meteor
This post makes some great strides in explaining the core power of the meteor framework;

Until now, I think Meteor wasn't on message for the experienced developer market.

It's a mistake to sell a technical product with the pitch "Look at what you can do with just a few lines of code!!!". And/ Or over simplified demos.

We want to see more articles like this- So now we know how it works - what are the limitations? What are the problems scaling? etc.

nathan-muir··on Getting started with Meteor.js
Thanks for your reply.

I was asking to see if there was any crucial evaluation I had missed putting MongoDB into production.

Below are a few replies to the points you raised:

---------

Data Loss:

Agreed this is a big cloud over the head of MongoDB -

Is it still notorious for this in recent times? Hopefully DBA's for Mongo now have more experience, and the software has matured enough that this isn't a common problem. - or more than it would be for any database.

Even then, you can only fall so far if you take regular backups, and have a fail-over & data recovery plan.

--------

"SQL is hard":

I get your point - a lot of people don't like or understand SQL. However, you seem to lump them with everyone who would appreciate an alternative interface.

Personally, I quite like SQL - some would call me an SQL-ninja. However, I don't think we should be limited to SQL as the one-true-way for accessing data.

Sometimes these new "NoSQL" interface allows new technologies to emerge. For example, the reason MongoDB is being used with Meteor is two-fold:

1. Minimongo - A wholly javascript based mongo query engine. It would be a much harder engineering problem to build a similar tool for SQL / PostgreSQL. 2. Logical Replication - A Meteor instance is effectively a logical replica of the Mongo Database - only for "live" queries, which it interprets using (1)

(1) Means that queries/ their surrounding code can be isomorphic (same on client and server). To replicate this for SQL would be a huge engineering challenge. How would you even replicate complex joins etc?

(2) Logical replication was only made available in PostgreSQL 9.4 - but without a pluggable query interpreter [even for join-less queries], it still wouldn't work.

----------

Relational Data:

Agreed, that data itself is best decomposed into fully-normalised form (Even up to 6th Normal form if you like temporal data). This allows for single-location, conflict-free and consistent updates/inserts/deletes.

But data usage is inherently document based - and the generation of those documents from fully normalised data, on huge data sets with complex relations, is a massive problem!

Until we have better tools for managing documents made of relational data - eg. PostgreSQL materialised views, but update only invalidated rows, - there will still be a drive to store data (& maintain) in the format that it is read.

nathan-muir··on Email Encryption Software Relies on One Guy, Who Is Going Broke
This feels like "WorldVision" for programmers. The wealthy pouring support on the forgotten, decrying the unjust conditions, only to forget about them and return to their normal lives.

Unlike the poor children of the world - Koch's decisions are wholly responsible for his current predicament.

The "market" doesn't care about individuals like Koch, and he chose to continue despite his efforts not being reciprocated/acknowledged.

I'd like to say that Koch should have abandoned the project, and if the market saw that maintenance/development of GPG was important, it would have happened.

However, it's not a perfect world - and there are probably plenty of pieces of critical software installed on our systems that are no longer maintained.

Would GPG have become one of these unmaintained codebases had Koch acted in his own self interest?

Or, would have another organisation/individual funded someone else to maintain and develop it?

nathan-muir··on Getting started with Meteor.js
What would be your hesitations taking mongoDB into production?

Personally, the lack of transactions & ACID compliance bother me - but Mongo 3.0 (Coming in March) should alleviate those concerns. [1]

[1] http://www.mongodb.com/blog/post/announcing-mongodb-30

nathan-muir··on Getting started with Meteor.js
SQL Support:

You can query data from SQL; just include necessary NPM driver and you're away. It wont be "Realtime" though.

Other NoSQL Support: The realtime driver is the problem here.

Meteor creates "live queries" by tailing the MongoDB oplog. This works in part because "Minimongo" a javascript based mongo query engine can examine the oplog and determine what does & doesn't match a live query.

To support another NoSQL solution, this huge engineering effort would need to be reproduced.

To support "Realtime" SQL, they'd need to hook in to something like PostgreSQL 9.4's logical replication, and have a javascript based query-compiler & interpreter. (Or provide a mongo-like interface to SQL.) Not impossible, but not easy by all means.

I somewhat agree with the Grandparent (re: Firebase/Parse) - However, I'd like to see the Meteor team have their own realtime database; as the realtime paradigm changes how a lot of it would be built.

nathan-muir··on How my life was changed when I began caring about the people I did not hire
Totally agree. They should have received a wage, as the learning program wouldn't result in a qualification, and was mostly a part of a hiring process.

If there were a wage involved, potentially more of the original applicants could afford to go through the hiring process.

At least the modern standard is to pay the potential hire as a contractor / consultant to do a few small projects, and then decide if you'd like to hire them on as an employee.

nathan-muir··on PostgreSQL vs. MS SQL
Can't say much about 1 & 3. But, pgAdmin[1] has a great visual "explain" tool.

[1] http://www.pgadmin.org/

nathan-muir··on Show HN: Meet me for lunch
I like the general concept;

It would be great as a web app too. I'd like to post on my linkedIn / personal sites / profiles:

"Want to meet me for lunch? join me via colunchers.com/########"

They could see what public lunches I was hosting / attending . Or create a lunch and invite me.

nathan-muir··on Show HN: Meet me for lunch
The app is the easy bit. It needs a community.
nathan-muir··on Show HN: Meet me for lunch
It would also be handy if it worked without location services... just let me enter a suburb/ city.
nathan-muir··on Meteor hits 1.0
You want a list of industries, that involve communication with team members, and customers?

I think you need to take your curiosity to google (or the real world), and do your own research.

nathan-muir··on Meteor hits 1.0
How is this different to consuming a REST API and rendering client side?

You can only view & modify data on the client that has already been published.

Data that you don't publish / is server only, will remain so.

nathan-muir··on Meteor hits 1.0
Sky is the limit here.

Low latency (real-time) can be an important part of effective and engaging communication.

Sure, it's not for everything; I wouldn't want my email communicating word by word to my recipients as I typed.

However, enterprises usually involve a lot of communication - with team members, stakeholders, and clients. - there are many opportunities to spice things up and make them more engaging & effective.

There's also the opportunity to instantly communicate non-prose - manipulating datasets, images, graphs and charts in real time.

nathan-muir··on How bad is the California drought?
85 Gallons per day - Interestingly. In Australia [In my particular urban region] - that same usage would cost AUD$38 per month (Roughly $3.90 per 1000L)
nathan-muir··on Meteor hits 1.0
Congrats to the Meteor team!

We've built an enterprise/b2b app on meteor, and even through all of the hard yards, it's been a success & the right choice for us.

When I first heard about meteor, back at v0.5 or v0.6 - I watched the video from their home page, and thought it was full of buzzword bullshit. I didn't have a clue what it did.

I then ended up reading about how their latency-compensation API system worked [Meteor Methods]; And instantly knew that it was for me.

Having an API that simulates itself on the client, while simultaneously performing the same work on the server, is freaking awesome. (And then rolls back automatically if they don't agree).

If you are building a real-time, collaborative tool. Meteor is the framework.

That being said, there are a few questions about integration & scalability.

Opportunities to use Meteor:

* If you can make something small, eg. an internal tool [Free mobile app with cordova!]

* If it matches a certain feature of your app - and you can segment it based on URL (eg, it's a separate app)

* You're a sadist, and you're going to port your whole app to meteor...

* You're writing an MVP and you're going to scrap it later

* You're product has realtime/ collaborative elements that are a SELLING feature [not just for your personal enjoyment].

Scalability:

* Client are always connected via websocket. Great for realtime data (no polling), crap for a website.

* As meteor instances are single threads, you can run multiple instances on the one server. Design you code for this (eg, don't store state in regular JS variables on the server - all has to be in the database). Load balance between them.

* Once the "client" has booted up. You can then connect to as many other DDP servers [backed by their own mongo instance, or the same mongo instance] as you like. This gives you the ability to segment your application based on your core feature. EG; if you're a monitoring app, shard your data by client, if you're a document app, shard by project. Have a central listing which tells them which server to connect to.

* Perform heavy lifting somewhere else. Plenty of "web workers" out there, or roll your own using Celery & Meteor-Celery package [shameless plug].

All in all. Meteor is great at what it does; and what it does, is going to be the next generation of web apps.

nathan-muir··on Law Lets I.R.S. Seize Accounts on Suspicion, No Crime Required
Awesome! thank you.
nathan-muir··on Law Lets I.R.S. Seize Accounts on Suspicion, No Crime Required
Sounds like a great read. Which edition / print would you recommend? (There's about 5 on amazon)
nathan-muir··on What will we do if the system can no longer create jobs?
Not a great article on this topic. But still interesting.

The main points I see in the article, are that weak labour = weak market, and not every country can be an exporter.

It seems that pressure to increase profitability, ends up exerting itself by reducing labour utilisation (via efficiencies or other means). Which (can eventually) in turn, exert further pressure to increase profitability (due to a weaker market).

What I find disheartening is, the current tools governments have to improve the situation are hamstrung in a global environment.

* Corporate Taxation wont work without global reform

* Minimum wages, employment conditions, and other regulations don't work if the job can be outsourced / performed overseas

* Import tariff's on the former, usually result in your own exports being penalised (in retaliation)

* Existing players wish to maintain the status quo

The other issue, is "free time". There could be a considerable portion of the labour market are willing to take a part time-job "for the love of it" with their free time. Effectively volunteering or taking a "token" wage.

Industries accessible to hobbyists / free timers, will suffer a further devaluation of labour, if they haven't already. Anecdotally, it appears this has already started for some roles like teaching / professorships.

The odds seem firmly stacked against a good percentage of the global population. Hopefully those capable of making lasting change do so, before it's too late.

nathan-muir··on Founder Stories: Tracy Young of PlanGrid (YC W12)
> Who better to sell the product than the founding team?

and

> You can't rely on others to sell the product you built.

Agree 100%, we had the same epiphany a 6 months ago; actually _selling your product_ is one of the most important jobs as a founder.

Also, I don't think you can [reasonably] pay someone a salary, and expect the same level of understanding & drive that the founders posses. And, it also seems that understanding & drive are much more important than clever marketing plans when selling B2B software.

Funnily enough, we're selling to the same market, although we help with the estimating & quantifying side of dealing with Blueprints - https://groundplan.com/