skysight-inc/HackerNews huggingface dataset:
I think the lecture is broader here. Frustration is really at the core of programming. And whenever you're frustrated, thats a wonderful lession ahead of you in understanding what makes the systems tick that you take for granted.

I've recently had the pleasure to drill down (from C) to single machine instructions in my quest to understand why a conditional branch was seemingly having no effect, on an architecture that I couldn't debug on. As it turns out, the compiler would sometimes use a memory addressing scheme that wasn't supported on this particular architecture. I had to work around this bug by writing assembly that correctly accesses the memory.

It's incredibly frustrating when you end up at a point where the only abstraction (and seemingly faulty) layer below you is nanometer-sized transistors. And all the more rewarding when you reveal the actual problem and get to extend your knowledge.

(Of course, this doesn't really apply to all the ridiculous pain points that annoy us by design. Things like browser compatibility come to mind.)
>Also don't forget Apple's Maps retrieve a lot less data than Google Maps, since they don't actually have that data. Google Maps offers a lot more information.

Well this is just stupidity at its finest.

A few extra POIs/streets would pale in comparison to the difference between vector and raster images.
Ask HN: I'm about to hire the 1st employee for my startup. What should I know?
I'm very close to hiring a first employee for my tech startup. This potential first employee has a legal background (as an attorney) and is a friend. I want to bring this person on as an important assistant and CFO (an executive position). How should I determine salary and stock options? What dangers or common pitfalls should I be aware of? What should a job offer look like exactly (written letter, email, etc)?
How would you infer that from the title? Bandwidth used by apps can and is frequently constant across platforms.

Won't adding a "on iOS" at the end help clarify things?
44.1KHz is not the output frequency; it's the sampling frequency from which an unambiguous 20KHz signal (of sufficient amplitude) can be reconstructed. So your calculation needs to take into account that the maximum peak resolution is 20Khz (and that 16 bits may not have sufficient amplitude sampling resolution to accurately interpolate the waveform peaks even if their frequency -- their spacing rather than their position in time -- can be reconstructed unambiguously).
There's an "out there" way to skirt all of that.

Google (or whoever else) could simply create their own suburbs/towns/cities from scratch, streamlined construction and all, on cheap land bought in bulk in the desert out west. Not everyone would move, but many people would, especially if it was all managed by what they perceive as a trustable tech-savvy company like google. The might even cost them nothing if they would simply ask for pre-sale deposits.

It's a crazy idea but there's nothing difficult technically or financially to make it happen. There's probably at least 1 million customers who would sign up day 1.
Spammy @mentions is what blocking is for. Also, you don't get @mention notifications if you don't follow them (see settings. may or may not be enabled by default).

You can only DM people where you both follow each other.
To be fair to the C++ programmers, there are several legitimate reasons to avoid std::map<> - for instance, if your project doesn't use exceptions.
Snappli and Claims of iOS Maps App Usage Plummeting
Apple Q4 Financial Results And Conference Call Coming October 25
don't matter dude. all that matters is if the people using it are happy to pay for it. it's that simple.
third myth in the article compares B-trees to hash tables:

"Trees are better
In general, trees aren’t faster for searching for exact matches. They’re slower, and here’s peer-reviewed evidence that compares B-trees, splay trees, and hashing for a variety of string types. So, why use a tree at all? Trees are good for inexact matches — say finding all names that begin with “B” — and that’s a task that hash tables can’t do."
I find it ironic that Apple is using RPC-encoded Google protocol buffers for communication in their Maps product.
Repo solutions are not simply commodity. Code is valuable. If a project is worth multiple developers time and energy, it's worth paying a nominal monthly fee.

Price argument is not a very strong motivator in this sense.
SEEKING WORK - Remote

I’m an Australian developer (currently abroad) seeking remote freelance work.

I’m an engineer who gets stuff done. I work at all levels of the technology stack from Web Apps to Embedded Systems and Electronics.

Some of the technologies I’ve been working with lately:

- Ruby on Rails, Heroku, Bootstrap, Jekyll

- iOS app development

- Embedded systems, C, Raspberry Pi (currently working on a series of articles on internet enabled sensors - ‘internet of things’ if you like)

Website: http://www.atomyard.com

Contact: andy@atomyard.com
Embrace, extend and extinguish?[1]

[1]: http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish
The reason parts of the tech celebrity circle (like Gruber, Siracusa, and Arment) supported App.net was because of Twitter's new hostility to third-party developers, not because of spam.
Id be interested in hearing how this compares to mediaelementjs
Equal rights means equal ability to free association.

"Female only gyms protect women from being leered at and feeling objectively and justifiably unsafe."

So, the basic premise is all men are leering and will act on their animal instincts. That isn't true as some men aren't interested in women, yet they too are not allowed. Others, were taught by their parents to be gentlemen. They too are not allowed. Never mind the women interested in other women.

"Male only anything is bullshit"

There is so much wrong with this statement, I don't know what to make of it. I could go with the basic support groups as one basic example.

If you expect female-only to be allowed then male-only needs equal protection.
Bloc (http://bloc.io)

* Looking for Employee #0 and Employee #1 (hackers and designers)

* Located in SF

* VC funded and profitable

* First-employee level equity + market salary

We're making a run at solving the massive education crisis out there and are just hitting the elbow in our growth. We value our team above everything else, so hit me up if you're interested in joining the Bloc mafia: roshan AT bloc.io
ECMAScript 4 looked a lot like ActionScript 3 up until the whole thing was suddenly killed. I don't care too much what a language is supposed to look like years from now if everything goes right. This goes double for languages with a tortured history of failure when it comes to big changes.
SEEKING FREELANCERS - Australia (local) & Bay Area / NYC (local)

Dragonfly is a startup that connects talented local freelancers with creative, digital and ad agencies. Primarily designers and developers. (http://dragonflylist.com)

We're live in Australia, but we will be launching in SF & NY within 2 months, so if you're looking for work in those areas get involved now.

We are NOT recruiters: Its a platform, its transparent, freelancers & agencies work directly and we have fixed fees. (recruiters hate it haha).

The focus is on local, in-house freelancing. Some agencies are happy to work remote with the right people, it's case by case.
I think you mean, when only looking at those things. Outside of hoisting, you just listed all of the issues. Even hoisting is only an issue when you start polluting the global namespace.
Everybody knows what's going on. All you need to do to see the most relevant and accurate browser stats is to open up your own analytics panel.

global browser stats are virtually useless. the only stats that matter are the stats that correspond to your audience. depending on location, interest, age, market, or any myriad other factors, your chrome usage could vary by a lot more than 19-35%.
Best advice I ever got: Can do attitude, focus, make it personal
It's funny to call it "PC loses to Web" when MS doesn't actually make the PC but the software that runs on the PC. Whether you use Google or Microsoft, you are using a "PC" in the terms of the article. One might say that it is more about a three way contest where MS is losing mainly to Apple, depressing their price down lower than Google, and Google is going up for other reasons.

To the extent it is about Google, this is really about commoditization of software : Google is commodotizing the whole OS into the (free) browser. They are commodotizing office software into free Google Apps. They are showing that if you do it at scale and over the web you can operate at such efficiency that you basically give people all this stuff Microsoft charges for and still make huge amounts of money from the advertising revenue, or you can have pay model where the costs are an order of magnitude less than what MS needs to survive in its current form.
It's not just a "good" hash algorithm, it has to be one that cannot be made to behave in a way predictable to an attacker.

Picking a new secure random seed value at startup time and prepending it to every hashed value is generally what you need to do.
I guess, it's a lot easier to be data efficient... When you have next to no map data to retrieve in the first place. I am tired of hearing about Apple's Maps, whether it's good or bad, everyone can agree (even Apple themselves agree) that the maps application is sub-par and finding nice things to say about it doesn't change the fact that if you want to get somewhere the new Apple Maps can only promise to get you within 80km of the location you want to be in (if you're lucky), not to mention the missing landmarks, weird black and white colouring of some areas and missing roads.

Let's not detract away from the real problem here. Lets see if Apple Maps are as data efficient in 5 years when they catch up to half the level that Google Maps are currently at provided they work day and night to get to that stage.
FlipH is not a legal operator.
"Starlet" is also a Perl web server library. Might want to reconsider that name.

http://search.cpan.org/~kazuho/Starlet/lib/Starlet.pm
Yeah, not sure the audience that refuses to pay $50 but will happily pay $36 is all that big.
#1 makes no sense. If you already have email-based accounts, switching to Persona is trivial - you just switch to Persona auth and everything works as-is with email as the account key. You will of course want to give users a little warning, but the process is far simpler than almost any other change you can make to your authentication system (eg, deconfliciting usernames). The only real change when switching to Persona is that you drop your stored password. It's still "sign in with your email address".

#2 has not been a problem, as far as we can tell. If users forget their passwords, the reset-password process on the Persona login dialog works great - better than almost every other password-based website I've used. In the long run, passwords are only maintained by primary IdPs like Gmail, so this is even less of an issue.

#3 is totally dependent upon your audience. We definitely get pushback on Facebook auth - you can't run a FB-only login system without alienating a significant chunk of most audiences. Initially we tried to encourage FB auth by making BrowserID less obvious, but that just produced a lot of angry emails from people who didn't realize they had an alternative. Now that Persona and FB auth are on equal footings, we have yet to have anyone complain about the signup process. YMMV.
using a rational version is also easier when using a slide rule
This is what SipHash was made for: it's a cryptographic MAC that's competitive in speed with other hash functions meant for hash table use. The paper describes its design, and the weaknesses with competitors like Python's randomized hashing:

https://www.131002.net/siphash/siphash.pdf

Some code for it here:

https://www.131002.net/siphash/
If we're on embedded hardware, or can't use floats for some reason, we use 22/7. It's called fixed point arithmetic. Most CPUs have an integer instruction that multiplies into a double-precision integer result, and an instruction that takes a double-precision integer dividend.

So to scale by pi, we multiply by 355, then divide by 113.
That's great! Will be handy for lot of devs. Out of curiosity, what is the video that they play on their home page (fish, sharks and birds); it's fascinating.
very cool and very efficient
Yeah, I'd rather wait 5 minutes for correct information instead of waiting 2 minutes for incorrect information.
Calm down. Everyone is just calling it Google Maps out of simplicity.

And yes it is vector on Android which was rumored to be one of the reasons Apple even started on this whole maps adventure. Because Google wasn't willing to license the vector data to give Android a competitive advantage.
It's really not that complicated. The example on github works and you can try it out pretty easily to see for yourself. And if you need any help or have any questions, you can get some real-time help in our public chat: http://get.iron.io/chat
Also, compared to Android's app, it's also important to emphasize the ability to download map areas [1]. That way, you can download to your phone's cache the areas you will visit later, using a WiFi connection, so you can use the app without using your data plan or in areas without signal.

iOS's version of Maps was very incomplete compared to Android's version. Most probably, Apple was not very happy with Google about that.

[1] http://googleblog.blogspot.com.ar/2011/07/download-map-area-...
But don't use it as an excuse to look down on people in different fields.

Oh, I don't look down on "pure" developers (as opposed to XWP) at all. I just think that it's hard to establish a reliable stream of good work on engineering cred alone, because the people who make decisions in most businesses can't tell the real deal from the charlatans in software engineering. The X is the "hook" that gets you enough clout to ensure you get interesting work and continue to get better as an engineer.
http://i.imgur.com/QfX5I.jpg
Thanks for posting this. It was very helpful to me.
The title is still misleading, should read "old iOS Maps".
I like locomotive because it stays out my way and allows me to work the way I want to. It's basically just Express 3 with an MVC layout, nicer routing, some nice helpers and a very clean and logical directory layout. It's how I would organise a new Express application if I was coding it from scratch!

I really like the idea of locomotive's 'initializers' directory - Any files you put in here are loaded at boot, in order. I use files in here to set up things like configuration, databases, logging, etc. With railwayjs these all ended up in the environment files which was hard to maintain.

The one thing I really didn't like in RailwayJS was the convention of putting all your database models inside one file (schema.js), I had to over-ride the built in ORM (JugglingDB) at the time because it was lacking features and define a customSchema() function to use mongoose, and this file ended up being really large and a bit of a mess. I tried separating things in to individual model files but I couldn't get it working without messing with RailwayJS code.

Probably a lot of the problems I had are now resolved as this was a few months ago, but I'm sticking with Locomotive from now on :)
Perhaps this was an example where the total number of elements was well bounded. After all, CPUs aren't growing more general-purpose registers very often, or the size of the scope considered in the scheduling may be limited by other constraints.
Ask HN: How do you ask a similarly-named company to change theirs?
Hi HN,

I run a company that makes a product called e.g FooBar. We launched two years ago.

A company called BarFoo launched several months ago, selling services to the same market.

We're not competitors, but this has understandably caused some confusion - we got an email from one of our customers wondering about BarFoo, saying that "it seems like [BarFoo] is diluting or infringing on your outstanding Product".

I'd like to ask these guys to consider changing their name since we're older, more established, and as I understand it have dibs on the trademark (IANAL).

Anybody encounter asking another company to essentially change their name? How did you handle it?
Live Weather Display Using CSS, jQuery and PHP
The former - fsyncs are more expensive because they involve copy on write updates all the way up the tree to the root. Some of the fsyncs are there because of ext4 quirks. That all said, every kernel release brings big improvements in btrfs especially metadata handling. IOW it is currently the worst it will be.
Ask HN: Gravatar to go
I have this itch to start a side project to start selling t-shirts with your gravatar icon.

I need feedback on what you all think about it.
Idea is a user can come to the site, enter the string such as email, name, etc. to get the gravatar icon, then choose size and color of the t-shirt and finally place an order.

What do you think?
And here's where I flash pocket aces: I sat in a room with no windows and no computers, across from men with strong chins and short haircuts, reviewing Windows NT source code line by line. On friggin' paper.

Never heard of this guy. Never heard this story. It makes no sense, and I cannot even imagine what "automatically open the processor up to accept commands on start-up" means.

Mr. Curry eventually met with senior NSA/DoD officials, aired what he had -- while a major government lawsuit against Microsoft played out -- and nothing.

Also, Windows NT 4.0 very much did get C2 certification and had E3 (equivalent but not transferable) at the time. Which again doesn't help the story in hindsight.

I mean, seriously... read this nonsense (gcn.com). This stuff doesn't even qualify him for a Wikipedia entry. It's just the story of someone who cracked under the pressure of releasing a version of NT every year for four years straight. He certainly wasn't the only one.

-----

Curry also gave Schaeffer an updated document pulled from Microsoft’s Web site. Under a section of frequently asked questions on security, the site answered the question: “Is Windows NT a secure enough platform for enterprise applications?” by stating that the company recently enhanced the security of NT Server 4.0 through a service pack.

“Windows NT Server was designed from the ground up with a sound, integrated and extensible security model,” the Microsoft Web site said as late as last week. “It has been certified at the C2 level by the U.S. government and the E3 level by the U.K. government.”

Hodson said the passage claiming C2 certification cited by Curry refers to NT 3.5 with Service Pack 3, which is the only version of NT to meet the NSA’s C2 level requirements to date. But because the passage earlier mentions NT 4.0, Hodson said, the meaning could be misconstrued.
You jest, and we have the benefit of hindsight, but you can't use the "just a single dot" defense when Apple themselves tout their attention to detail with every product release (wasn't there something about their product design team now working on a nano/micrometer scale?)
I've seen some huge (10-20x) performance gains simply by switching some of my sets and maps to unordered.

Why did they wait so ridiculously long to add this to the standard?!
Lady Gaga is taking her clothes off to start a body revolution
Nice tool, I made something similar for dropbox a while back that symlinks/copies files into your DB folder.

https://github.com/BRMatt/dotfiles/blob/master/bin/dropup
How does that play out vs. gnus? I have messed around with gnus a bit but don't feel 100% happy with it.
It's not paranoid when you include the caveats, as you do here. But to simply say that "Privacy could cease to exist while you're wearing Google Glass" is fear mongering, or paranoia. That statement is both staggerly broad in nature and at the same time, unqualified.

At least Google Glass is an _opt-in_ form of monitoring and observation. If you don't want to wear it, you don't have to. If you want to take it off, you can. Those aspects alone mean it's a lot less worrisome than existing, and much more involuntary, invasions of our privacy.
I can certainly enjoy figuring out what's wrong sometimes (and unravel the whole string of events: "oh now that makes sense: this was happening which made this and that behave that way") and I the satisfaction you're referring to; but other times, it's just so far removed from the real task at hand that it's not even funny.

A recent example would be when I was trying to set up my local environment with virtualenv, whose whole purpose is to make that easy. Everything seems fine but pip (Python package manager) was throwing errors. The culprit was that virtualenv creates Python scripts in the local directory with a hashbang for a local version of Python. The thing, it turned out, is that hashbangs don't work when there's a space in the path. And there was a space in my path because I wanted to use Box's sync folder which (stupidly I must say) is called "Box Documents". Now I know.

Long story short, the point is that I wasn't trying to debug virtualenv but had to dig deeper than I wanted into it just to get started on the problems I created. :)

Though you're right: just recalling this, I have a feeling of victory over the problem.
K, I'm going to throw my hat in the ring here and say this is a good idea, and outline (mostly through referencing other people's work as it's 00.38) how I've spent the last few years building applications.

I'm going to intentionally simplify so that the less experienced here can keep up (hopefully). For those with more code-fu, feel free to poke me for more information.

Right, imagine we have a blog engine for something that needs to be able to handle huge data requests. Our code base logic at its simplest looks something like this:

Down:

Request ->

Router (turns URL structure into a set of useful data inputs) ->

Pre-processor (uses those inputs to fire up the classes we'll need, namely to get data first) ->

Primary validation (makes sure everything that was put in is sensible and safe) ->

Model pre-processor (calculates which data store we need to query, a key-value store of all data, a cache of various pieces of data, or our single monolithic store) ->

Data store (cache/database/whatver)

Up:

Model post-processor (where our data was anything other than our computer store of values, generate whatever needs to be there and store it for next time) ->

Secondary validation (ensure our output is sanitized) ->

Business logic post-processor (to apply any data transformation required) ->

Output

It's specifically the pre-processor that we're talking about here. There's millions of ways to implement it, but something like what's outlined in the original post is currently my favourite way, for both the logging/debugging options it gives, as well as the data manipulation tools that it de facto provides.

Whilst some of it isn't very sensible for modern web practice (XML/XSLT for example), this by Tony Marston is well worth studying until you really grok it, as a fuller representation of what we're talking about here: http://tonymarston.net/php-mysql/infrastructure.html

This is essentially taking elements 3, 4, 5 & 6 and abstracting them out so that rather than just being for talking to databases as data stores, they're able to talk to a variety of other model data sources - cache levels, the database and a globally pre-computered store of all possible values (for the fastest level of access).

I'm also going to re-state the shout-out made in the original post to Nathan Marz' work here: http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html. Excellent reading for anyone interested in large-scale application design. I'll also through in this excellent post on event sourcing by Martin Fowler: http://www.martinfowler.com/eaaDev/EventSourcing.html

Questions?