skysight-inc/HackerNews huggingface dataset:
> What is so bad about OO for compilers?

See my comment about the expression problem in another thread: https://news.ycombinator.com/item?id=6783075, as well as this response: https://news.ycombinator.com/item?id=6784057.

A compiler is a program that consists of lots of different algorithms (operations) that operates on a pretty well-defined set of data (an AST or an IR). Changes to the data representation are rare compared to changes to the operations on that data.

What OO does in a compiler is totally obscure the control flow of each algorithm by spreading the logic out over dozens of classes. You can look at an AST node and see at a glance how it participates in constant folding or code generation, but if you're trying to optimize the constant folding algorithm or the code generator, you've got to follow control flow across dozens of different classes.

Using visitor pattern mitigates this somewhat, because you can have ConstFolder::visitBinaryOperation, ConstFolder::visitFunctionCall, etc, all in one file, but note that visitor pattern is just a really verbose, roundabout way of writing a switch statement! If you add a new type of AST node, you have to add a visitNewAstNode call to the visitor interface, and then go update every class that implements the visitor interface. This is no easier, and a lot more verbose, than simply adding a new variant to an AST ADT then fixing up all the places where the compiler complains that your pattern match is no longer exhaustive.

For a good example, look at how LLVM does instruction simplification: http://llvm.org/docs/doxygen/html/InstructionSimplify_8cpp_s.... A good old switch statement, no "simplify" method in the "Instruction" class nor visitor pattern.
I've been waiting for this all my life!
I agree, mostly, with the conclusions. "Classes" as a method of code re-use is dead. However, his conclusion that ML would dominate C# and Java as a language, I highly contest.

The most important thing in my opinion is tools and platform support. Show me a fast, good looking IDE with good autocomplete/intellisense/integrated debugger and UI tools for ML. See?

Is there an abundance of libraries and api wrappers available (that doesn't require you to do straight C-interop)? See?

Also: the design of a language should be done with the tools in mind. While there is not much difference between norm(vec) and vec.norm() the latter is the form that supports autocomplete. So even for functional languages, being able to use member properties and member functions is an absolute reqirement to support the tooling that we expect.

You could say that F# dominates C#. It has almost the same tool and library support, while having the features you expect from an ML type language.
Apologies I don't think I did, as I don't recall the ending. In penance, I'll try and finish it before the new LD starts...
Fairly extensive docs can be found here: http://mdf-data-flow-programming-toolkit.readthedocs.org/en/...
Some of the top/creative Social Media Campaigns in 2013 to gain inspiration from
I thought about a plant needing less water for de-deserting areas. Language always is fun!
Lightweight distributed computing framework with python front end
I don't know if you read the article properly (or maybe I didn't) but the 'accident' was improved privacy. Then they took the better privacy feature out. So that could qualify for a fuck Google comment.
1. The Ocean at the End Of The Lane - Neil Gaiman

2. Ancillary Justice - Ann Leckie

3. The January Dancer/Up Jim River/In The Lion's Mouth/On The Razor's Edge - Michael Flynn

4. Ghost Spin - Chris Moriarity
https://snipcart.com

It is a shopping cart service developed for developers and web design agencies.

This is the a side project we have with the team @ spektrummedia.com.

We are up and running since last August, we won the site of the day on Awwwards.com back in August and then we have a lot of traffic and we are getting new customers everyday.
Why would someone run Oracle in this day and age? "We have 100k lines of established PL/SQL running our business" is a reason, of course, but you could make a similar argument that COBOL development is alive. PL/SQL pretty much always leads to an unmaintainable mess, and if you need BIG DATA, you can go much bigger without Oracle than you can with it, and cheaper to boot.
I find the theme the best part. What I really enjoy in LD's is the first 3/4 hours where the theme discusses the theme and the games gradually emerges.

I can make any game I what anytime, but the theme give you focus and forces you to think in something you otherwise wouldn't.
> What we really need is to demystify DB performance, which for the most part is fairly simple.

Without getting into the rest of your argument, I'd like to quickly address this.

No, it really isn't.

In your typical MySQL database, your performance for a simple "select * from x where y" is going to go through a lot of complicated machinery (most of which can be tuned for performance), a few points of which I will enumerate below.

1) Acquire a query cache lock & see if this query is there
2) Run the query through the optimizer
2a) Perform multiple shallow dives into a table to look at the cardinality of the filtered columns
2b) Identify the best indexes based on the shallow dives
2c) Create a query plan
3) Push the query plan down into InnoDB
4) Load the index into memory, if its not already there
5) Load the potential rows into memory, if they are not already there
5a) If there's not enough memory, load a few into memory, and be ready to push those rows out of memory in favor of more rows when needed
5b) Load rows that are still in the insert tree but not yet part of the regular buffer pool or pages on disk
6) Loop through the candidate rows for matches to the filter
7) Return the data to MySQL
8) Acquire the query cache lock & update it
9) Return the data to the client

Any and all of these can (and often should) be tuned. There are 600+ page books and very old (and oft updated) blogs dedicated to this topic... it's not something you can teach a developer in a couple of days.

As an example, I attended an introductory course to being a MySQL DBA; it lasted 5 days of 8-5 teaching & running examples. And it only scratched the surface of what I do on a daily basis.
Check out the first 20 minutes or so of this SICP lecture. In it, Abelson specifically mentions special relativity as a way for us humans to "model" the real world as immutable values over the continuum of time (in contrast to a mutable world that fits with OO).

http://ocw.mit.edu/courses/electrical-engineering-and-comput...
Haha. The Jon Snow meme got me in splits.
This is a very interesting appointment, and brings about an interesting question on government appointments. Without knowing anything about Michelle Lee, my first thought was, "Great, this is someone who actually knows something about the topic, rather than some political hack!" But then I switched to, "Didn't I think the same way when banking execs went to jobs in the Treasury?"

At what point is this industry capturing the regulators that should be watching them? This was a big enough problem in Japan that they forbid execs from regulating the industries that they used to work in.

My sense is in this case it's still probably a net positive. Looking only at her LinkedIn profile, it seems like she was a technologist first, then a lawyer, then a Google GC. Seems like the right intellectual background. We will see if she has the political savvy to negotiate a large bureaucracy. For all of our sake I hope she's able to pull it off!
Oh yes. Right. I had forgotten about those. I may have just thought it was simpler to just get an internal modem. Who knows?
This week's Top 5 trending GitHub projects: BBC's imager & a Minecraft clone
From the spec: "The user agent must dispatch a pointercancel (and subsequently a pointerout event) whenever all of the following are true, in order to end the stream of events for the pointer:

The user agent has determined (via methods out of scope for this specification) that touch input is to be consumed for a touch behavior,"

Touch behaviours are things like scrolling, double-tap to zoom, pinch zoom.

The browser's double-tap to zoom gesture is at a lower level than the click event in the browser. As in, a double-tab will be consumed by the browser and never hit the page.
Rails in January 2013 was mentioned specifically because a series of security bugs allowed attackers to achieve remote code execution with specially crafted URL parameters.

Thus someone could get a remote shell on your box running as the rails account, not just access to an internal application.
For what it's worth, this delay was already removed for sites that had user-scalable=no set. Most mobile "apps" used this.

The change here is that if the computed viewport is smaller or equal to the device width, fast clicks will be enabled without having to disable scaling. Double clicking won't work, but pinch-to-zoom will.

Overall it's a fairly minor change for those thinking about making HTML5 apps, but it is a big positive change for users visiting existing web sites that have mobile/responsive versions that haven't disallowed scaling.
Apparently you didn't make it to the conclusion.

So perhaps the role of the DBA isn’t necessarily dead, it’s just moved
to its new home at the datastore-as-a-service provider. The successful
DBA will understand that this new world means handling petabytes of
data and billions of operations on thousands of logical databases.
They will cope with less mature database technologies in increasingly
difficult workload environments. They will automate or die.

Long live the DBA.

The whole post was making the exact same point as you in the end, the author actually runs a datastore-as-a-service business.
I expected them to make this move once I found out they were beginning to dabble into same day shipping. No need for commodity stores like costco and sam's when I can get the same through amazon (potentially even cheaper) with same day shipping to my door.
Contradiction in terms, given that blue-sky, basic research has gone away in industry and academia and it's capitalism's fault. Capitalism is great at technology and incremental innovation, but bad at science. This sort of thing is why a functional society needs some aspects of both (socialism and communism) in it.

That's also why I dislike the term "data scientist". I'm not a scientist, because I'm not impartially searching for truth. I'll ignore avenues of inquiry that aren't profitable. It's my job to do so. I'm more of a data technologist, in truth.
Persistence ignorance introduced by mainstream ORMs about 5-7 years ago have turned the new generation of programmers blind to the fact database IS part of your application. Records you save don't get sucked into a magic black box that just responds to your queries as your app needs grow.

DBAs are not going to go anywhere. Sure, you can scale the DB in the cloud quite a bit in and perform well but it's not free :) In the cloud, you would be literally paying for your bad design decisions in terms of hard dollars rather than performance issues.

Most start-ups or in house apps are fine while the salary(dba) => cost of cloud. However, that magic condition starts returning false pretty quickly if you are doing any non-trivial data management.
I was thinking similar. The best (and deepest thinking) programmers that I know are also the fastest. They don't always work the most hours or seem the most harried (which doesn't bode well for places like Advertising which like to seem "Busy and Creative") but they can produce in 20 lines in a day what others produce in 500 lines in a week. They may not look as fast though. ("What? All day? Just 20 lines?")
Or you could actually use something designed for indexing data and searches, like Elasticsearch or Solr.

Either solution would have no problem indexing all their data, rather than having to limit it to a subset to fit in a in-memory table.
Exactly. You could extrapolate this into any "The [whatever] is dead" statement that we see so often. And it's not getting any easier - e.g. are we capturing and processing less data these days? Is the data we store less valuable?

> You can't get a DBA from a college, from a technical school, or from any other form of formal education. Most DBAs these days are grown internally from developers or system administrators who decide to (or are forced to) specialize while on the job.

I can't say how much truth is in this statement. This stuff if learned organically by doing it on real world projects. It's scary at times to think that you just can't teach this stuff.
Growth Without Profits Isn’t A Sustainable Business
The cloud is killing all the low-level admins. Mail administrators? Backup operators?

Moving to BYOD will continue to reduce the numbers of administrators as well. Eventually you'll have two groups of IT staff, a very small group of high-level engineers who build and implement everything, and then a very large group of low-skill helpdesk type people who reset your accounts and fill in your login information on your device.

Amazon's Mayday support service shows this already. Soon, a form of this will be on every product you can think of. Office, Windows, every tablet and computer in your office.
Nice, but the video is unfair: in the slower video he moves his hand off camera and back every time, in the faster video he keeps it hovering above the phone.

p.s. I think this is the Firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=922896
Extension of Atwood's Law Past JavaScript
Being professional on side projects
So, a thought experiment.

Pick any data storage system you like - MongoDb, Redis, Riak, whatever.

Now, you get to place a bet. In the future (let's say 25 years) what will still exist: your choice of NoSQL, or the standard database with schema, SQL, access, and so on? If you choose wrong, you die.

Now you get to see the future and see if you die. Which are you betting on?
Just a heads up:
http://dev.mysql.com/doc/refman/5.1/en/memory-storage-engine...

The MEMORY storage engine (formerly known as HEAP) creates special-purpose tables with contents that are stored in memory. Because the data is vulnerable to crashes, hardware issues, or power outages, only use these tables as temporary work areas or read-only caches for data pulled from other tables.
Well it looks ok, but lots of detail is lost, especially if the source is grainy. I usually don't bother and go for 720p, but when you need great quality, you need 8-12GB for 1080p.
The Top Best Linux Videos of 2013
If you edited this abstract to replace Capitalist with some other philosophy and it's concepts (say "Buddhist" or "Environmentalist"), it would have roughly the same level of validity, which is to say, not much.
I disagree. dedicated DBAs are on their way out.

Databases are becoming pretty good at managing themselves and the marginal performance gains from tuning usually are easily offset by throwing bigger kit at the problem or throwing more cash at the plan you are on.
Does Elasticsearch or Solr work with tabular data, can you search across multiple columns?
Understanding that this is conjecture, I'm wondering if the list of games that have steam controller configurations are indicators of games that they are planning on running directly on the steam box itself. i.e. running native on linux
No they will most likely use .deb that's what they use now for everything. Games will be downloaded and installed the way they currently are in Steam, a giant pile of files with random game data stuff.
I think benefit of iOS privacy controls is that you can still install the app, then simply deny it access to data. Android asks you for _all_ permissions up front: allow access or you don't get the app. See: recent flashlight app fiasco.
The Jargon File - a comprehensive compendium of hacker slang
This is a modern updating of Decartes's Demon concept from 1641.

http://en.wikipedia.org/wiki/Evil_demon
> Varchars take up the space for all the chars defined.

This only applies to memory tables. For non-memory tables, the size of varchar columns depends on the actual string size.

(edited. Thanks for correcting!)
> if your app uses a database, you are incompetent not to employ an expert to help with the database, whether advising on the query plan of those non-performant queries, or what is the best setup for the current stage of the business and app, they are very useful

Given modern databases and modern hardware, I think the vast majority of applications never reach the point where query performance is an issue. For many small software companies hiring an expert in databases makes no more sense than hiring an expert in operating systems or networking - unless your needs are very specialized, these things work well enough out of the box.
Most DBAs these days are grown internally from developers or system administrators who decide to (or are forced to) specialize while on the job.

I agree with you on above statement. Though my conclusion is different from yours. I think in the future the line among DBA/SysAdmin/Developers will become even more blurred , developers will be trained/required to take over more and more work from DBA and sysadmin (DevOps anyone?); consequently, the demand for dedicated roles such as DBA and sysadmins will diminish. Hope I am wrong though.
Could you provide any tips/advice/reading recommendations to a programmer who is interested in learning more dba stuff? It would be appreciated!
The True Sons of the Fallen
For multiplatform games you are still better off with Unity imo. Sure, from a developer standpoint, building on open tech is cool, but gamers don't care at all and when Unity gives you the best possible performance and development workflow i would stick with it.
They will also probably soon have a HTML5 export (they already have PNaCL)
Looks like he's got 2 new additions at the top of his blog. http://natethayer.wordpress.com/

I know nothing about the specifics of this case, but I have seen many cases of corporations saying, "We're big, they're small. If they sue us, they'll run out of money first."
Same here. The ones we've managed to snag have been great, but it has made it difficult to scale out in a few situations when they haven't had the capacity.
>The thing about [OOP] is that it allows you to model a problem domain in real-world terms.

>> That's only true on a superficial level.

Exactly. I had forgot that I learned OOP by modelling a CD collection. When thinking about it now, "mapping" a program into real-world models and terms seems totally backwards.

What's the point of thinking in real-world models unless you program actually manipulates real-world objects? Of course there are properties that are useful to carry over, but why limit your program to real-world models?
Replacing your daily e-mail reports with a realtime board
Do not expect Google to implement it anytime soon, due to the massive app breakage potential.

I run AppOps 4.3/4.4 rooted (so I use the "App Ops X" version internally), and I must say, I've restricted most of my non-system apps and I've never seen a single broken app.

I think this potential is vastly overblown.

EDIT: for example, in the official twitter app, I turn off these:

* Location

* Read contacts

* Receieve SMS/MMS

* Post notification

* Wake lock

Never had a single problem with the app.
Notch will participate and stream. Other people might as well, but I don't know for sure.

http://www.ludumdare.com/compo/2013/12/12/im-in-and-ill-be-b...
> MEMORY tables use a fixed-length row-storage format. Variable-length types such as VARCHAR are stored using a fixed length.
Torservers awarded $250,000 by Digital Defenders
"MEMORY tables use a fixed-length row-storage format. Variable-length types such as VARCHAR are stored using a fixed length."

From - http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine...

I had no idea about this either....
How far was Argo from the facts?
Since it uses Unreal engine and we see what happens with asm.js... maybe it's not all that scary.
Or I can use X11 forwarding over SSH to access GNUcash from my desktop which seems a lot safer than hoping that whatever VPS I have on the Internet is magically secure.
Because at a certain size of business, paying developers to make patches against your favorite OSS database doesn't scale. It's cheaper to pay for a, let's be honest, damned fine piece of software.

Oracle, despite being the very definition of evil, has one hell of a software product. It is performant, has built-in features that makes Postgres look like BerkelyDB, HA solutions, and perhaps most importantly, the backing and support of a multi-billion dollar company.
I had a bank that frequently double-charged me for services and threw my balance below zero. I wouldn't trust their records of what I spent for anything.
Berlin Startups Continue Consolidation, As Moped Crashes Into 6Wunderkinder
I'm not sure why you need to wait for potential double taps on clickable elements anyway, couldn't you just have clickable elements not be double tappable?
OMG you made my day, split window and window navigation, tabbing is all there!!!

Just need we need now is syntax highlighting and color torte :P

Fantastic work!
This is funny AND insightful. Reminds me of folding proteins. So, I guess it is a good moment to point to http://folding.stanford.edu/
I did, except that:

> The successful DBA will understand that this new world means handling petabytes of data and billions of operations on thousands of logical databases.

is untrue. Most of our customers have DBs that are in the GB size. A few have TB size DBs, and none are on that scale.

datastore-as-a-service doesn't replace DBAs - we make good money being remote DBAs for people who are using datastore-as-a-service providers, because they still run into the same problems as everyone else.
What sets high achievers apart?
Why not add a "Zoom on double-tap" tickbox in Chrome's Settings? Leave it ticked as default so users aren't adversely affected.

Even better, add another Setting to let users change the amount of time the browser waits for the second tap. Windows has had this since at least Windows XP (Start → Settings → Control Panel → Mouse → Double-Click) and I think since Windows 95. Set it to 300ms as default so existing users aren't adversely affected. People like me can set it to 180ms (which is what the iOS stopwatch indicates my maximum double-click delay is).

If you want to put the icing on the cake, add a little applet in Settings to measure your double-tap speed.
Nice work! I made one for Cryptocurrency fans!
http://www.cryptocurrencylive.com/
So what you're saying is the universe is mapped COW, and everytime there's a new observer, UniverseOS runs it with fork().
The new release from Fire Axis seems kinda limited and stripped down compared to the original XCOM. Especially in terms of equipment/soldiers loadout, research, etc...