skysight-inc/HackerNews huggingface dataset:
I've always planned and managed to take two to four months per year off: between jobs, or simply blocking my freelance-agenda for a few (slower) months. During these months, I take on a personal project with a certain focus.

I don't force myself to release anything: though shipping is nice. I don't set any hard goal.

Just two, three or even four months of playing around and learning. A new Database-concept. Geocoding. TDD. A new framework or language.

This is not enough to become expert or even good at anything. But it allows me to keep up with the field and ever evolving technologies; I'm a webdeveloper, so my field is rather fast-moving.

And, because I plan this ahead, I can afford the time off (by asking a little more during the rest of the year) and I can actually tell clients "nope, I don't have time the coming X weeks".
How The iPhone 6 May Be The Start Of Apple’s ‘Back To Music’ Strategy
That's insane. I made more than that as an intern in college writing code. We paid our current interns more than that the last time I checked. I don't know what your background is, but get your LinkedIn profile polished and you should be getting multiple recruiter emails a week inviting you to interview. That's where the market is right now.
Inequality and Web Search Trends
I like this submission a lot. It is consistent with the "expert performance" research literature pioneered by K. Anders Ericsson and his colleagues in that it points out that lots of competent, gainfully employed adults are not "experts" (as rigorously defined in the expert performance research literature)[1] but are capable journeymen. We may as well all resolve ourselves, and all advise young people, to find something that we enjoy doing anyhow in our free time, something that is useful in solving problems other people experience, and practicing how to do it well enough to trade with other people for resources we can use to solve the problems we can't solve on our own. Better that we be competent journeymen rather than unknowingly incompetent.[2]

I like too that he links to Paul Graham's essay "What You'll Wish You'd Known,"[3] which everyone should read before finishing high school.

[1] http://graphics8.nytimes.com/images/blogs/freakonomics/pdf/D...

[2] http://www.psychologytoday.com/blog/evolved-primate/201006/w...

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2702783/

[3] http://www.paulgraham.com/hs.html
Licenses are to my knowledge always part of copying, not of executing. That is: you may download a game to your computer, if you've got the permission. But Steam cannot tell you that you are only allowed to run the game on wednesdays.
This isn't the end of it either. In a month or two, 475 dollars will look nice.
Peter Thiel Debates David Graeber
I disagree. If you require an accessor to actual internal state, you should rethink your dependencies and reassign some behaviors. Accessors should be rare, mutators almost non-existent.
Real-Time Face Tracking and Projection Mapping
There isn't a whole lot of money in space. There is a ton of money in communications.
It is my opinion that it is generally fallacious to compare Market Cap with GDP.

Why?

Cuz GDP is a measure of economic output (throughput, generally per annum) whereas Market Cap is a measure of worth at a moment in time. The units don't match up but since they are frequently omitted we get unlike things being compared.

What do you reckon?
> We should be looking at ways to maximize the use of very small chunks of time.

I'm not sure it can be done. The best way to maximize the use of small chuncks of time is to join them into rarer big chuncks of time.
This is the fundamental robot-driver issue. If they are any better than human drivers, its because they have fast reactions and great skill. Traffic density can be increased, and trip time reduced.

But that leads directly into this issue. What happens when humans are on the road (children, legacy human drivers)? Does the whole system collapse to a minimum level to take them into account? Everything slows down; congestion and slow trips return.
I have the constant conversation with my kids of just finding an interest - any interest and trying it. It's great when your kids like sports, etc, but when you have one's that find it very hard to come up with any interest they want to explore, I'd be thrilled with even 2 hours worth.

For now, it's us getting them trying things and they're middle/high school age, so they should be coming up with stuff on their own. I only hope someday it clicks and they find things they want to explore on their own.
If it's an electronic product, the customer rightly expects it to last as long as other familiar electronic products.

If it's an expensive product then the customer rightly expects it to last much longer than comparable items of lesser cost.

For a naturally expensive item like a CNC mill, where many customers will purchase their first one to replace a manual mill which has worn out after a decade or two, they often expect the modern CNC unit to fully replace the older piece with no further consideration (or cost) until the same familiar mode of mechanical wear occurs in another decade or two.

If your software or operating system does not live up to this expectation by design, then you are not giving the customer what they need to begin with.

If an industrial solution truly solves a problem, it stays solved well enough for the operator to move on to concentrate on their core competence (or different unsolved problems) from then on, and only incur insignificant
costs or distractions from the previously unsolved problem.

A payroll or other office system is not that much different, but applies to many more businesses.
Computerizing a formerly manual system, high up-front cost is expected to pay for itself in future efficiency.
If no further features are desired, then the business should be able to rely on electro-mechanical integrity as the weakest point over the following decades. Replacing individual worn-out office machines as needed in the traditional way. Only "modernizing" company-wide on their own initiative and schedule.
If you can not buy brand new machines as needed to continue your present office systems unchanged indefinitely if you want to, this does not mean there is a defect in your
approach just because you need a solved problem to stay solved.

You may just be a victim of a consumer-centric (predatory) IT vendor structure even though you are paying top dollar
for business solutions which are supposed to last.
I don't know, I think that part needs some work. Of the 10 questions on bitmask, I had 2 questions show up twice, with the same values too.
I don't think the average person really understands IT and what's involved. If I'm at a dinner party and I'm asked what I do, and mention what I do, peoples' eyes immediately glass over. They don't want to understand.

The average non-IT end user is a sheep. Full stop. They don't want to wrap their head around how something works -- they want it all the be transparent unicorns and glitter.

I really dislike fellowship with non-IT people anymore because it seems like I cannot have a decent conversation that requires more than a few brain cells. Honestly, and I'm not being mean, but the average person out there that is not in a STEM-related field really does not grok much beyond basic life. Sad really.

I have to explain what I do, unfortunately, to the higher ups far too often. These people, collectively, seem like they don't have the cerebral chemical processes to power a lightning bug's ass.
The bitcoin market is worthwhile $6.3B at the current time so its value is not that negligible and might have an economical impact.

NB: I'm saying that "it may have" not that "it has".
How to Release to Maven Central, in One Click
I think generalized induction about "contept X" is the wrong tactic here, even though the formalization is for the sake of clarity. The specifics of this case matter. The thing is that "context X", in this case, refers to "rape culture", which at its core is a name for institutionalized systems which support and allow rape to occur. Allowing trivializations of such a term is completely out of line for a community that claims to support inclusivity and diverrsity. I understand that in this way many trivializations of many different "concepts x" could be argued to be not ok. When "concept x" refers to oppressed groups speaking abut the issues that affect them, especially if the issues are ones so violent and brutal as rape, I think this is good. Such things should not be trivialized.

Organizations setting limits on what type of discussion is allowed is a good thing, and again, specifics matter. The statement, at its heart, stifles the speech of these groups by trivializing the concerns of those people who are affected by the systems termed "rape culture"( systems supporting violence against certain groups ). The fact that the transition to a more inclusive community involves prohibiting this type of speech is a given IMO, since that speech is precisely what makes for a hostile climate to non-white-guy contributors. Such statements are problematic if the community in question claims to be based on freedom and inclusivity.

[Edit]: In general, I think "freedom of speech"( and the implied "freedom to be offended" ), are less important than maintaining a community climate that feels safe for its members.
Then don't use getters and setters... A lot of complaints people have about Java seem to be about the way in which they choose to write Java.

My somewhat unorthodox rules for writing Java:

1. Don't use private. No reason to restrict yourself or others, and do extra typing. Friendly is a perfectly good default.

2. Don't use reflection. Reflection is only useful for making frameworks. Frameworks don't reduce the complexity of the problem you're trying to solve. Don't use them.

3. Don't use getters/setters. Sometimes they make sense for updating a cached value, or using a different underlying representation, but in general it's unnecessary clutter. If you still want them (e.g., for code style reasons), just generate them.

4. Don't use other people's code (tongue-in-cheek). If you use third-party libraries, consider wrapping them in your own interfaces as needed. This makes it easy to change the implementation and perform tests. It's not much effort, since you'll rarely use more than a limited subset of the functionality offered by the library. If you need a large subset, then just use the library directly.

5. Use final. Immutability makes programs simpler, more efficient, and inherently thread-safe.

6. Consider writing bean classes as follows. It's simple, efficient, thread-safe, and has a clean syntax (item.name):

public class Item {
public final int id;
public final String name;

public Item(int id, String name) {
this.id = id;
this.name = name;
}
}

7. Use an IDE, refactor, find references, generate code. It's easy to changes names and styles later, so just focus on important things like performance and reliabiltiy.

8. Keep improving the way you write your code, don't listen to the crowd.
Elon is building a satellite launching company. Nowhere in that endeavor is the technology to permanently move a sufficient number of people to some other planet.

The differences between what SpaceX does today and a self sufficient permanent colony on Mars are far far greater than the difference between what SpaceX does today and and the fireworks I shot off last weekend.
> In a month or two, 475 dollars will look nice.

Based on what? Serious question. When people say this about stocks they are either:

1) pulling it out of their ass..

2) They have done some quantitative analysis, based on some sort of CFA teachings.

I'm assuming you are in camp 1 here. Not that there is anything wrong with a "gut feeling", I"m just not going to invest based on it:)

As a question to anyone, what sort of analysis can one do on bitcoin to derive a proper price for it? I'd be open to any quantitative analysis techniques here!

My wheel house is market microstructure, but I'd love to work on a model to value bitcoin with someone if they had any ideas.
Show HN: Secure messaging with in browser encryption built on curve25519
The DNS servers now seem to be up intermittently. The GoDaddy site still lets you modify the name servers, so I pointed a few domains at Route 53 and because the NS records have a very long TTL that fixes it for most of the customers once their DNS gets a single query through.
Well New York Times blog worthy at the very least.
That sounds like an argument for learning how hoisting works, not just avoiding it because it's "weird".
The Seasteading Institute (2012)
I'm asking because I'm interested in return on experience for this kind of upgrades. We heard mostly of migrations for non-techies employees, not for developers.
Cider Project: Run iOS apps on Android
I love how this is news when BTC value used to change by 40-60% a day lol...
..."Born to be proud" [...] doesn't sound natural to a native English speaker...

Have to agree. It's not idiomatic English, so it really fails when given such prominence on the site.

It also has echoes of classic 1970s rock, which doesn't help (born to be wild, born to run).
That's a Java EE API. I've been working with the Java SE and Java EE folks to make sure that a new version of that will sit on top of the core JDK 9 one.
Yeah... I really like this too!
It's very rare that an app inspires as much rage in me as this one has. I'm not sure if it is the over the top self praising tone of the FAQ, or the fact that this will be such an amazing tool for abusive parents, or the fact that this is a great way to condition children to obey unconditionally, but seriously, this app makes me irrationally angry.

Some parents are assholes. Some kids have other things going on and don't need a helicopter constantly hovering over top of them. And some media outlets need to learn to be critical of the crap that they flog.

Even if the FAQ included some child abuse/help lines, I'd be significantly less angry. But seriously, this app looks like a red flag for extraordinarily controlling parents. And, there is a bunch of research that indicates extremely controlling behaviour is a sign of abuse. What if, as an entire industry, we decide to always err on the side of protecting kids??

Sorry for the rant. I've edited this several times to tone things down, but this app makes me intensely angry. If there is any justice, the app store will remove this garbage.
Thanks iamshs! I'm not sure how long it took me, haha. Been working on it here and there for a few weeks, then just got it all finished this past weekend.
Do you have an idea how much of bandwidth a MIPS cpu like that can push?

The chip is actually made for routers: it has 802.11n "MAC/BBP", 5-port 10/100 switch, etc. http://www.anz.ru/files/mediatek/MT7620_Datasheet.pdf I wonder how "Hardware NAT with IPv6 and 2 Gbps wired speed" works if the switch is only 100 Mbits...

I guess if what you want out of this is really a router, you are supposed to either build the rest of the hardware yourself or wait for yourself, or wait for the "motherboard" module for this.
That's more like 300 people.
But that's the real game. Instead of programming a computer to prioritize lives, it makes more sense to program it to find a balance to optimize reaction times.

On a winding road, where you have little visibility it makes sense to go slower. On a freeway, you can go faster.
The Mbit thing is quite common in the embedded world. When I saw this my first thought was "oh wow, twice the specs of my current favorite OpenWRT hack platform (the TL-703N) at about the same price and with gpio exposed. Awesome.)"
In defense of the Gang of Four's[1] intellectual lineage, AbstractAdapterFactory might sound opaque if you're not familiar with the jargon, but this one's not all that complex when you unpack it.

An Adapter[2] is a fairly useful abstraction for when you've got a module that speaks one interface and you need to get it speaking the interface that's expected by some other module. It's a relatively tame kind of glue code.

An Abstract Factory[3] lets you describe a way to new up instances of an abstraction. This differs from a regular factory, where you're getting instances of a concrete implementation. It's a trick that facilitates inversion of control and loose coupling. It lets you tell a module, "Here's where you get your Frobbers from" without it having to care whether the Frobbers it's going to get will be Whosit Frobers or Whatsit Frobbers or Widget Frobbers.

Combined, you've got an abstraction for coupling some heterogeneous set of interfaces down to a common interface for the sake of being able to reuse devices without too much fiddling around. It's the software engineering equivalent of this page on Best Buy's website: http://www.bestbuy.com/site/travel-accessories/travel-conver...

[1]: http://en.wikipedia.org/wiki/Design_Patterns
[2]: http://en.wikipedia.org/wiki/Adapter_pattern
[3]: http://en.wikipedia.org/wiki/Abstract_factory_pattern
Yes. As much as I love C++, I sometimes get very scared by the implicit behavior. This is why I don't understand the hate on exception-free, more C-like C++. You can still reap huge benefits from std::algorithm, iterators, classes, templates, while stepping back to a more manual approach for allocation and lifetime management.
That doesn't avoid hoisting though ;)
Is there a way to download them all?
Yes, many projects lack a style guide for UI and/or coding.

And often big projects have, similar to closed source software, rather ugly workflows where you have to discuss stuff before you're assigned to a bug and then have to send it patches and what not.

A good review process is important or else everything ends in chaos.
Not a big fan of the curation going on with this list. Especially disheartened by the lack of mention of Yii, and the author closing the Pull Request only by saying "I'm happy with the current selection."

Could be a much better resource, but is not.
Based on the same principles that lead us to think it's ok to pay 2000 for rent when it used to be 200.

There is always a new normal.

Edit: Why the downvote?
Project Jigsaw (modularising Java itself and introducing a module system) will be a serious attempt at solving a part of this problem but may not land in its entirety for Java 9 (modularising the source code landed today on trunk). OSGi claims to solve the application layer part, but many developers I speak to have mixed results, primarily due tooling support etc.
> "Original Price: $499"

A good way to highlight the value/quality of the course; rather than just delivering the course for free, which can give the an appearance of cheaper quality.
I don't know about softball, but I played baseball from the time I was 4 until I was 19 and the biggest change in youth baseball has been monitoring pitch counts for youth pitchers. If I remember correctly, Softball pitchers usually have trouble with their knees while baseball pitchers have arm trouble. I still have arm trouble and I had parents who put my safety first and did the best they could to take care of my arm. Please do some research on the topic to make sure your daughter doesn't hurt herself. I only speak up because I saw it happen over and over again growing up. Youth sports are awesome, I got to travel all over the country playing, but I still have issues almost 10 years after quitting.
Right - just trying to help keep things in perspective. Congratulations, by the way! :)
At least he was doing the smart thing and not trying to directly sell to reddit users. Not that reddit users don't buy stuff, but they're no on reddit looking to do so. It takes much less effort (and no going to find your wallet) to sign up for an email list. I always find it amazing that people are shocked and annoyed at the advertising platform when they didn't direct sell 1,000 copies of their software on their twitter advertising campaign.

With sites like this and twitter, etc, don't direct sell - sign them up for lists and do the occasional sales pitch in your emails.
> Unfortunately it is probably safer to bet against Python 3

Why is that?
Any time you add humans, you can't go faster. They can change lanes unpredictably, or hit the brakes for no reason, or fall asleep. You have to go slowly (for a robot) all the time with people present.
Totally understand!
Evernote app upgrades are unencrypted over HTTP
The project to watch here is project Valhalla - valhalla-dev AT openjdk DOT java DOT net. Indeed the full solution of value types will not land until Java 10, but Java 9 will hopefully contain the very useful Collection of primitives enhancement (you can currently only have Collections of Objects, primitives are auto boxed into their Object equivalents at much greater overhead).
> http://www.pgbovine.net/oldpages/fourth.jpg

Wow...
You're on a way to $14 billion exit in a matter of weeks. When you do get vc's interested in this app don't forget about the first person that predicted this :)
"corporate indecent" - Freudian slip?
what's the difference between a style checker like jscs and a linter like jshint/jslint?
How does it compare to some of the other Ruby CLI frameworks?

I've been using escort[0] for my CLI utilities, and it seems like a decent compromise between providing a useful number of features and not bloating your app into a huge framework with a complex DSL to figure out. It is a little short on interactivity once the command is running, though.

[0] https://github.com/skorks/escort
Two-way iBeacon communication with Swift
Being an expert means being noticeably better than non-experts.

This will depend on how much you practice, how well you practice, and whatever relevant innate abilities you have (appropriate personality, IQ, extra-sensitive hearing, tetrachromacy or color-blindness, etc). And also, on how well/much other people practice.

Apparently if you fudge things just right, you get most people either not practicing well or losing interest shortly before 10k hours.
"Designers" trying to show off and that dont understand anything about basic usability.

To the "designers" :

Next time do a simple web page without stupid scrolling hacks,for god sake.I'm sick of it ,really. Dont mess up with basic usability just because it looks good on your Macintosh.I guess you didnt even bother testing on mobile.

Sorry for that rant,but we are in 2014,and I cant take more of that stuff.
You definitely have to pick and choose from C++ based on environment, your staff's experience, what kind of problem you're solving. Allocation in particular is problematic in every language (even GC languages) especially when latency is an issue, so that's probably what I manage 'manually' most often.
It's worth noting that in Ruby the difference between attr_reader and attr_writer is not the same as read only and write only. You can write to something set with attr_reader. All attr_writer does is allow complete reassignment of that particular instance variable.

This is pretty trivial so bear with me... If you have something that looks like this...

class Person
attr_reader :children

def initialize
@children = []
end
end

You can then do this...

x = Person.new
x << "Bobby"

You will have then altered the value of @children without completely reassigning it.
It is debt though, because as I understand technical debt, it is something that needs to be fixed on a fairly short timeline (6-18 mos) without breaking some major process.

As such, so long as you are making more progress due to the debt than you would in paying it back, it is probably wise to keep it.

I think this makes sense too, because you can fix hacked code as you go to "pay down" technical debt.
I sure have found a lot more discarded PC's than I have toasters.

If you can't produce a system (hardware, software, and "support" if absolutely necessary) which can outlast a toaster by design (decade or two at least), without a need to "upgrade" these elements, then many a consumer would naturally compare your engineering unfavorably to that of the toaster.