skysight-inc/HackerNews huggingface dataset:
I've found the rise and fall OOP to line-up well with various trends in ontologies and semantic-like KM tools (after all OOP is basically designing an ontological model you code inside of). Outside of various performance issues, the idea that you can have one master model of your problem to solve everything is an idea that hopefully seems to be running out of steam.

In the area I've worked in, I've seen numerous semantic systems come and go, all built around essentially one giant model of the slice of the world it's supposed to represent, and the projects all end up dead after a couple years because:

a) the model does a poor job representing the world

b) nobody seems to have a use-case that lines up perfectly with the model (everybody needs some slightly different version of the model to work with)

c) attempts to rectify b by just adding in more and more to the model just leaves you with an unusable messy model.

More recent systems seems to be working at a meta-model level, with fewer abstract concepts and links, rather than getting down into the weeds with such specificity, and letting people muck around in the details as they see fit. But lots of the aggregate knowledge that large-scale semantic systems are supposed to offer gets lost in this kind of approach.

I think OOP at its heart is just another case of this -- it's managed to turn a programming problem into an ontology problem. You can define great models for your software that mostly make sense, but then the promise of code-reuse means your suddenly trying to shoehorn in a model meant for a different purpose into this new project. The result is code that either tries to ignore "good" OOP practices to just get the damn job done, or over specified models that end up so complicated nobody can really work with them and introduce unbelievable organizational and software overhead.

It's not to say that OOP and other semantic modeling approach don't have merit. They're very useful tools. I think the answer might be separate models on the same problem/data, each representing a facet on the problem. But I haven't quite gotten the impression that anybody else has arrived at this in industry and are instead just going for higher levels of abstraction or dumping the models all together.

Again, OOP manages to turn programming problems into ontology problems -- which is hardly a field that's well understood, while the goal is and always has been to turn programming problems into engineering problems -- which are much more readily understood.
To be fair, going to the moon was once a pipe dream too. As was flying around the world.

I dont think following this pipedream was the wrong move to make. While it could have had better execution and resulted in aerospace setbacks overall I think the idea was a good one, perhaps just far too far ahead of its time.

One day, I hope we will have a reliable reusable thingy with wings. It just has to beat the cost of non reusable tube with giant flames.
What Happens in the 'Family Guy' Writing Process
I think water + electronics is a well-known bad combination. Apple never claims their products to be submersible, so of course a dip in the pool = death to the device (though I've had a Galaxy S3 survive a dip in the pool -- recovered completely after spending 3 days in a bag of rice). The point here is that an iPhone (or similar) is a device carried along with the person. That implies being stuffed in pockets, being dropped now and then, left in the car from time to time, and being sat on. A consumer device of quality would withstand such stresses. I guess if Apple were to make a car it would be okay if it was 'totaled' after running into a curb? I
Ok, a comparison to other phones is not that reassuring, because many phones on the market are flimsy. Compare it to the iPhone 5. That thing was built like a tank compared to the competition.
> raid 0 is a performance option

Once I won a bet that RAID 1 was actually faster than RAID 0 on a given scenario.
BT testing 800Mbps broadband over fiber to the curb, copper to the home
Open sourcing would be great, but I'd be interested in hearing what techniques you used.
hm… i'm trying to make sense of this. from what i gather (based on http://www.zerohedge.com/news/2014-05-30/us-gasoline-consump...), "Total Gasoline Retail Sales by Refiners" is a measure of production and is not necessarily consumption, due to storage capacity. still rather remarkable - i didn't realize we've topped out our storage/reserves.
Previously, I shared the free, online book I wrote about Meteor — http://meteortips.com/book/ — and this course is based on that book. Same scope, but it's much easier to demonstrate certain ideas through video.
Because in the absence of a single-payer system, the private portion of this system risk arbitrates all the higher-risk patients to the state-supported insurance and/or medical care, thus bankrupting the government and/or non-profit systems. We see this happen again and again.

What countries with well-functioning healthcare systems don't have a base-layer single risk pool under a government system? Of course, almost all of these systems allow supplemental and/or optional private care, but they are still single-payer insurance systems.
Front pocket man. Always.
Show HN: A video training course for the Meteor JavaScript framework
I was considering asking about the point of using Docker with Go binaries on Twitter last night, my thinking similar to yours. Hours later an article on HN shows how to do it.

The only thing I could come up with is maybe you have additional dependencies outside your binary required to make the environment run?

I've been looking for a good reason to use Docker, but I'm not seeing the benefit given my Go based environments. If I need fine grain container-like control FreeBSD Jails have been working just fine for me.
It is also easy to build from source. Their build system gets all the dependencies for you. It takes a little while to build but it is simple.
Previously, I shared the free, online book I wrote about Meteor — http://meteortips.com/book/ — and this course is based on that book. Same scope, but it's much easier to demonstrate certain ideas through video.

Further video previews of the course are available on Udemy: http://udemy.com/meteorjs

(Obviously though, I'm not a designer — nor do I have experience in writing sales copy — so the page itself needs a lot of work.)
CERN gets new Guinness World Records title
When I stop midway between sections the header has two styles at once, how did you work that out?
This is essentially a pivot by Secret after the original app failed due to the removal of submitting your own photos and meaningless polls. The app ratings have cratered: http://i.imgur.com/qjLLlFb.png

Case point: there is zero mention on the website that this app is made by Secret.

EDIT: I downloaded the app. This is literally the entirety of the app: http://i.imgur.com/6SETNaT.png

I wish I could retract my upvote now.
I don't mean to agree with people who resist this type of change, just to explain how it looks from their point of view. A CVS user sees branching and merging as a difficult, painful, time-consuming things to be avoided, so they're horrified if you tell them they're going to be branching and merging on a daily basis. They aren't right — generalizing from their CVS experience has given them a mistaken idea of what using git (or fossil) is like — but it's easy to understand why they're afraid. Also, ironically and unfortunately, the fact that a git (or fossil) advocate is enthusiastic about the ease of branching and merging is likely to make the CVS user think they are crazy, since you'd have to be crazy to love branching and merging in CVS.
>There are number of ways medicaid can be made completely redundant. Destroy the monopoly of AMC on the number of doctors. Let Indian doctors apply for a cap-free H1B and flock to US to give Americans a better health-care.

This is an excellent potential solution. If you've been to Thailand, India, and Mexico, they all have pretty good healthcare available for a cost that poor, working class families in the U.S. could afford out-of-pocket.

But whereas having cheap software programmers is clearly a god-given right in the U.S., having affordable healthcare is not.
So... a landing page that tells me nothing, with nothing but links to the app store. Going against my usual behavior, I click the link to the app store and I get two useless screenshots and a description of "You’re going to like me."

I think I'm getting old, because I just don't get it.
Thanks! We changed to that from https://rawgit.com/yogthos/yogthos.github.com/master/Clojure....
Specwise it looks like a top-end phone from last year. RAM, screen, etc.

I'm glad to see it's doing well in the javascript benchmarks at least. Speaks highly of Apple's nitro engine.
Thank you. Very well stated. Sorry for the "right-on" comment but an upvote to you and the parent post felt insufficient.
Great execution! I wonder if this is what Paul Graham was envisioning when he wrote about a "web-based excel/database hybrid" in his post "Startup Ideas We'd Like to Fund"[1] in 2008.

> 22. A web-based Excel/database hybrid. People often use Excel as a lightweight database. I suspect there's an opportunity to create the program such users wish existed, and that there are new things you could do if it were web-based. Like make it easier to get data into it, through forms or scraping.

> Don't make it feel like a database. That frightens people. The question to ask is: how much can I let people do without defining structure? You want the database equivalent of a language that makes its easy to keep data in linked lists. (Which means you probably want to write it in one.)

[1] http://old.ycombinator.com/ideas.html
> That implies being stuffed in pockets, being dropped now and then, left in the car from time to time, and being sat on.

I think it implies being stuffed in pockets and left in the car (barring perhaps the most extreme climates), and perhaps certain types of drops, but not being sat on.
The problem was, insurance was happy to pay $500/a day for nursing home care, but balked at paying anything near that much for home nursing, which he needed to stay at home (since his daughter was a full-time teacher and also probably couldn't lift him, etc).
The following is all you need to know about HTTPS "security", or really lack thereof. And it's buried deep in the middle of the text:

Weakest link. A crucial technical property of the HTTPS
authentication model is that any CA can sign certificates
for any domain name. In other words, literally anyone can
request a certificate for a Google domain at any CA
anywhere in the world, even when Google itself has
contracted one particular CA to sign its certificate.

It's the elephant in the room that everyone tries to ignore. Google's Chrome browser tries to mitigate the problem, but only for select sites.

Firefox has made countless GUI tweaks and other useless changes over the years but has ignored this problem until very recently.

Plus, as the article makes clear, everyone and his brother can be a Certificate Authority. The first CA I see when I view certificates in Firefox is:

TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı

The authorities in Turkey are delighted to have that entity there. But WTF? Why should my security be dependent on their non-malevolence? I sure don't trust them. Not after this: http://nakedsecurity.sophos.com/2013/01/08/the-turktrust-ssl...
The i3s support ECC. The i5s and i7s don't because that's where intel branches their consumer from their server models.
No, the results show that there's as much as a 50% difference in the results between top and bottom. That's a huge difference in structural terms.
It is my personal mantra that if a startup has a particularly unintuitive UI/UX behavior, it’s a form of “growth hacking” that my feeble brain cannot comprehend.
Seeing this makes me realize the beauty of CWEB. It lets you break up a piece of the code this way, but when it presents the code that is in "DoStuff" it explicitly tells you where else it is used.

That is, the concern with having a DoStuff method is that if it gains a new caller, it may have just gained new requirements. This will eventually pose a problem, especially when it is believed that one can edit functions in isolation to all of the expectations of existing call sites.

Explicitly listing the call sites, though, goes a long way to understanding why "DoStuff" does what it does.
Obviously those tests were rigged.
Yep, now it works
Anyone have suggestions for better servers? I wonder if Rockstore would work well with the backblaze case. Maybe some of the OCP cases would work. Anyone played with those?
Spotify Mash-up: Where Is the Drama?
And the whole point of the article is cheapness.

As in, some people buy old clunker cars and fix them up as a hobby and also sometimes for cheapness.

Sure, they pollute more, get less MPG, etc. etc.

But they can be dirt cheap, and fun to restore if you like that kind of thing.
Speaking of screens: http://www.displaymate.com/iPhone6_ShootOut.htm
Can't upvote this enough. Expertise is very difficult to replicate, yet it's the first solution everybody reaches for when things don't quite work the way they want. Just pile onto the number of domains a developer is expected to fully understand.
We are using this server sporadically, essentially wake-on-lan.

Especially with the BMC console, we can remotely power it on, off, reset, etc.
This only works if you let the distros handle all the work for you. But say you need an Apache version RHEL 6 doesn't have, so now you have to build from source. And now you have to build PHP from source, because now RHEL's PHP package won't run with your new Apache. On Windows, this requires that you run two MSI files and hit okay a few times. On Linux, this means you're compiling everything from source. Linux apps are less portable between distributions than Windows apps are among Windows versions (hell, thanks to WINE a randomly picked Windows app is more likely to run on both Fedora and Ubuntu without modification than an actual Linux app is, the distribution just hides that work from you most of the time).
>Blasphemous as it may seem, a switch statement does the equivalent of simple polymorphism and can be kept inline.

In the statically compiled languages that most people think of when they hear "OO" (C++ and Java), yeah, switch statements vs. virtual methods (performance differences aside) is basically a matter of code style (do you want to organize by function/method, or by type/object?)

However, the original proponents of OO intended it to be used in dynamically compiled languages where it could be used as a way to implement open/extensible systems. For instance, if a game entity has true update, animate, etc. methods, then anyone can implement new entities at run time; level designers can create one-off entities for certain levels, modders can pervasively modify behaviors without needing the full source code, programmers trying to debug some code can easily update methods while the game is still running, etc. You can get a similar effect in C or C++ with dynamic linking (Quake 2 did this for some large subsystems), but it's a pain and kinda breaks down at fine (entity-level) granularity.

The other, "dual" (I think I'm using that word correctly?) approach famously used by emacs is to create hooks that users can register their own functions with, and extend the program that way. Like switch statements, it basically amounts to storing functions at the call site instead of inside the object, except with an extensible data structure rather than burning everything directly into the machine code.

Obviously you can't really take advantage of any of this if you're writing some state of the art hyper-optimized rendering code or whatever like Carmack, I'm just saying that OO's defining characteristics make a lot more sense when you drift away from C++ back to its early days at Xerox PARC.
That makes sense.

Unless you need, like me, 24-32 GB++ of RAM. Dual HDDs, and a whole lot of cores to run 3-4 VMs at a time.

Then the laptop is so resource-poor that it is rendered useless for the workloads I described in the article.

This article wasn't about how to make a "cheap home server"---it was about replicating real data-center-class hardware in the home and how to do that cheaply.
Microjson 1.1
They also didn't respond to the suspected weak spot near the mute and volume buttons at all. I could imagine that this spot was not under a lot of stress the way they bent it.
Dare to dive into the world's deepest pool?
> If it was nontrivial to fix they would have.

There is no basis for that assertion. It is trivial to fix, again, see BSDs. Just because nobody bothers (or people bother and their effort is rejected due to politics) doesn't mean it is nontrivial.
Seems like everyone misreading the intent of the post. He is NOT advocating inlining code in this post. He is suggesting that FP is better at solving the same problems in a more sensible way.

The email was written in 2007. In there, he advocates the inlining of single-use functions into god functions as it reduces the risk of these functions being opted into other routines, especially when they all deal with shared mutable data.

Single-use functions are explicitly singled out in his email; he mentions that he does not encourage duplicating code to avoid functions.

| "In almost all cases, code duplication is a greater evil than whatever second order problems arise from functions being called in different circumstances, so I would rarely advocate duplicating code to avoid a function"

The blurb at the front indicates the intent of his post. Since then he has favoured a functional-programming approach - don't inline your functions, but avoid making your functions rely on mutable/larger scope states. Pass in everything that is needed by the function through parameters. Avoid functions with side-effects, encourage idempotence. That way, reusing the function does not lead to unintentional side-effects.

He also mentions that should you still decide to inline, " you should be made constantly aware of the full horror of what you are doing.".

A lot of things change within a decade. =)
I totally agree about micros. They are wonderfully nice and tidy for small, well defined problems. I've had extremely satisfying success using them for communications glue, motor controllers and thermoelectric cooler controllers.

I'm in a chatty mood tonight, so I hope you'll excuse my indulgence of another few 'graphs on modern memory bus stuff I think is cool that I had to learn under product ship-date duress: Dynamic Termination.

Remember the high-school physics demonstration of the "reflected wave" where you grab one end of a rope that's tied off at the other end, give it a flick, watch the wave travel from your hand to the knot, then reflect back? Well kind of the same thing happens with voltage level on high speed data signals.

If your high school was fortunate enough in these (or those) fiscally troubled times to afford the equipment, the next demonstration tied off the same rope to some sort of damping spring that absorbed your wave's energy and didn't reflect it back at you. Those springs translate to "termination impedance" in electrical circuits.

So in order to avoid reflections, the address/control/clock lines of the memory bus "fly by" each and every DRAM IC until they reach the end of their path, where they "terminate" via resistors that prevent reflection to a voltage potential (half-way between 1- or 0- value potentials so that it's no more work to drive a 1 that 0 or vice-versa).

The data lines are wired directly from the memory controller to the DRAM chips so the DRAM chips have termination built-in to absorb the energy at the end of the line and prevent reflections.

Except that maybe there's more than one DIMM. DDR3 chips let you command them to connect or disconnect their termination resistors. So when you are accessing the closer-to-the-controller DIMM, the next one that's further out can apply termination. And when addressing the one that's furthest out, you disable on-die termination and rely on the actual resistor on the motherboard at the end of the bus.

My hard-learned lesson: the signals don't so so well when you get confused about which rank of chips are closer and which are further away.
Yeah, some of the phones in the test are quite hard to bend, and some are extremely hard to bend. In that sense there's a difference.
I don't think he's complaining nor saying it's unreasonable, just stating.

For him, it's uncomfortable to put his iPhone 6 in his pockets, and he wonders how much discomfort people are putting up with that is causing their phone to bend in their pockets.

Or at least thats how I understood it.
All code is extensible if you have the source code and can recompile the whole thing then restart the program. I think pjmlp meant extensible in the "extensible at runtime" sense.
You are always going to have complexity, but we often forget to simplify before adding on more layers and tools on to our processes. I singled out Docker in particular because it is so awesome and powerful, I feel like a lot of people are just using it to cover up crappy processes. Eventually that is going to come back to haunt you in terms of slower development.
No, actually what the parent poster wrote was correct. You say no, but then don't make any point. It does indeed show that the iPhone 6 performs similarly to other similar sized phones.
It's not great but it is slowly getting better as the big studios open-source their inhouse formats - Disney, Sony Imageworks and ILM are all doing so and Alembic, OpenVDB, OpenSubdiv, OpenEXR, and Ptex are all widely supported now. The process of opening up things people are already using seems to be working out much better than previous committee- or vendor- driven efforts like FBX, X3D or AAF...

That said, I spent yesterday trying to figure out how to get Leica laser scan data into Houdini, and the only way is to convert to ASCII CSV, so we've got a way to go. Text files are great for debugging, but when you've got 300 million points you pine for the I/O speed of a binary format :/
Apologies if you already knew this, but you may be interested in pleaserun[1] which attempts to manage the differences in init formats from a common interface.

It's still quite new but I've been reasonably happy with it so far. I did have to extend it a little to allow commands like bootstrapping for clustered software.

[1] https://github.com/jordansissel/pleaserun
"Companies vying to turn asteroids into filling stations"

No they aren't. This is complete nonsense. Companies are not vying for this at all. The title is total rubbish.
Blu-ray to Audio Ripper – Rip Blu-ray to Audio
Sigh. Even that link causes Safari on OS X to display an image saying:

WE'RE SORRY
You need to update your Flash Player

So, by default, the Consumer Reports website is non-functional with those customers who are most likely to have an iPhone. I then visited consumerreports.org using my non-bent iPhone6 and wonder of wonders, the video played.

Morons.
yeah, when people try to stuff a quad-core 2.7 GHz computer in their pocket they complain it might bend, duh!!! Treat these things with some respect or get a case.
That's the point the dance recital is an indicator of the problem. It's not about earning parent points for achieving "milestones"

If you cannot attend functions that happen at 7, or come in to work an hour early to see your kid at the bus stop, you're not leaving at two to look at dinosaurs either.
what language do you think systemd should have been written in?
Shouldn't you put the course's price somewhere on that page? Otherwise people might be hesitant to actually click "buy the course".
Ask HN: What should future world-wide vulnerabilities be called?
While I can't discount the possibility that the iPhone 6 may be more susceptible to bending damage, I'm sure that the high profile release and media coverage are pushing this out of proportion.

Reminds me of https://en.wikipedia.org/wiki/Seattle_Windshield_Pitting_Epi...
StackWhack
Uber driver accused of hammer attack on S.F. rider