skysight-inc/HackerNews huggingface dataset:
Tracing through layers of indirection whose only purpose is seemingly to call other layers is tedious, and the flow of data --- something which is important to see --- becomes more obfuscated.

This right here is probably the one of the only two arguments I would've accepted about why OOP is bad--the other being that certain problems just don't map cleanly onto OOP.

EDIT:

Acton had a great presentation on why OOP is maybe not a good fit in graphics code:

http://macton.smugmug.com/gallery/8936708_T6zQX#!i=593426709...
Try that with something that isn't one byte in UTF-8. It won't work. We aren't saying the same thing.
There was this:

http://highspeedinternet.com/blog/technology/states-with-fas...

Really interesting, even if "smarter" and "higher ACT" scores are not necessarily the same thing.
Couldn't you say this for any language? As soon as you start applying it to larger projects things start to get more complicated. It's not the same problem per language, but each has their own issues.
I can review your code. I haven't offered that as a service before, but I am a consultant, and I'm quite experienced.

However before sending me any code, be sure you're not violating a nondisclosure agreement.

mdcrawford@gmail.com
http://www.warplife.com/mdc/
I learnt these techniques from the IAM [0] in the UK. Their manual is Roadcraft - the Police Driver's Handbook [1] which introduces techniques which I've found incredibly valuable.

[0]: http://www.iam.org.uk/
[1]: http://www.amazon.com/Roadcraft-Police-Drivers-Handbook-Foun...
As far as I know functional languages would be declarative and OO langs would be procedural and imperative.

Though, people refer to languages like lisp and scala as functional even though these langs are only functional if you use them a certain way, and I think it dilutes the term and creates confusion.
I am not an American, but I have one specific positive point to say about that: generally the only way to get a country to acknowledge the horror it did is to invade it and trial the leaders (Germany WWII: trial, Iraq against kurds: trial, France Vichy: nothing substantial, France colonial wars: amnesty, USSR: nothing, Yugoslavia: trial, without real invasion). In this instance, nobody is in court (if we ignore Poland), but at least there is some admission.
Free-riding would be an issue, but not necessarily a fatal one. As long as the national benefit equals the national expenditure, it'll work.
From what I remember, the equivalent code in something like Toolbox or Xt wasn't better or easier -- just different.
I'd rather deal with a procedural program modifying global variables than an object-oriented one. Strewing an algorithm across a bunch of methods makes control flow incomprehensible.
I'm currently living in Paris right now. Before that I lived in London, Germany and the US. So this is kind of a view from the outside.

As every city there are good and bad things. Administration is horrible and the worst experience from anywhere that I have lived. Getting an apartment will be hell. It just will. Paper is still the norm in this country. Your mailbox will never be empty. This part sucks.

The work atmosphere in this country is horrible in comparison to other countries like the UK and US. Remember, this is the country that (legally) has a 35 hour work week. In startups this looks different although they have the reputation of being lazy in comparison to American startups. While I haven't seen it, this is likely the case for some. There's no smoke without fire. And just judging by the way this country works...don't be surprised if they seem lazy.

English. Right, this is probably one of the biggest problems non-French will have. Across the board French people's English have the worst English ever, out of every country in Central Europe. That said Paris is in some way an exception. Parisians' English is still horrible for the kind of city it is trying to become but not as bad as you'll hear it in other cities.

Food - Don't understand why people are saying it's bad. It's really good! Especially compared to a city like London, where it's expensive and quality isn't amazing. There is less of a junk food culture in Paris than in other cities though.

There’s more good and bad things to go into but I’ll leave the bad stuff at this for now.

There are good things going on in Paris. The city is amazing to live in. It’s much cheaper than London. Transport costs are a lot less. Leisure activities are cheaper. A lot of stuff will be cheaper, including apartments. The city is beautful to live in too.

There is a good startup ecosystem in Paris. There are a couple good exits coming out of France. But it all seems like a big circle jerk, which (IMO) a guide like this shows. This may also come from the extreme forms of patriotism the French show(sometimes) and/or from the fact that they don’t speak English and are repulsed by anything English.

A lot of startups start here but quickly try to get the hell out and move to the US or even London. There have been a couple good exits though but not as many as London nor any as big as the ones in Berlin.

I don’t know what the fundraising process goes like in Paris so I’m not going to comment on that. Obviously it will be harder than in the US as there are less VCs here. Judging by the amounts being raised and the amount of “big” VCs in London it’s also weaker than across the channel.
150 Years Since George Boole (Boolean Logic) Died
An incredibly thoughtful and non provoking introduction to the document from Dianne Feinstein. This is a good thing and anything that can help America step back from her actions in future and take pause rather than extreme and counter productive measures is a good thing.

I hope some day that just like the well tested evidence that torture doesn't work it'll be shown that mass surveillance also gives next to nothing that targeted data gathering wouldn't.
I moved to Point early this year after a power outage took my non-redundant and self-hosted DNS down - it was the first time it'd happened for several years but I wanted to avoid a repeat.

In May, Point received a DDoS that took all (or many?) of their nameservers down and they didn't communicate what was happening very well.

I moved back to self-hosting although, like others in this thread, I'd prefer to settle on using a few major players (Route53, Google, Cloudflare) to reduce the reliance on any one of them.
Same same, but different.
Brings back memories. I recall learning to write from memory the 40+ line win32 hello world from the Petzold bible. That's the way it was back then ... but you got super speed from it. Event loop was blazing fast. I discovered MFC a bit later and worked as a professional dev at an ISV that made use of it. I have fond memories of reading the v1 MFC manual - it was small enough at that time so that a person could understand the whole thing with relative ease.

Some interesting notes on what happened in a few years .. when I first saw .net Compact Framework, it blew my mind how easy it was to write .net code/WinForms stuff. Even though I was relatively poor, I bought an MSDN subscription on the spot and started to write mobile apps. This was early 2000s. If MSFT had paid proper attention to mobile devices, they could have rocked it.

I faced weird challenges. Companies would ask me for 20K to certify my free apps on their phones. It was disgusting. I sold a few apps on the hangango app store, and then got out of mobile dev (missed the whole iPhone revolution). Talk about bad timing.
Some other coverage of the same report:

http://www.amnestyusa.org/news/press-releases/release-of-tor...

https://firstlook.org/theintercept/2014/12/09/live-coverage-...
Things Indians believe should be banned to stop rape
> Moreover, CIA officers told U.S. ambassadors not to discuss the CIA program with State Department officials, preventing the ambassadors from seeking guidance on the policy implications of establishing CIA detention facilities in the countries in which they served. (#8)

I was not aware the CIA could order an ambassador from seeking the guidance of its superiors...
usage taxes (gas tax and what have you) emphatically do not even begin to cover the cost of maintenance alone, let alone the land cost, the initial construction cost (billions), etc.
"You can't be afraid of words that speak the truth. I don't like words that hide the truth. I don't like words that conceal reality. I don't like euphemisms or euphemistic language. And American english is loaded with euphemisms. Because Americans have a lot of trouble dealing with reality. Americans have trouble facing the truth, so they invent a kind of a soft language to protect themselves from it. And it gets worse with every generation. For some reason it just keeps getting worse."
- George Carlin

Here's an amusing and insightful video of Carlin dissecting the language behind Post-Traumatic Stress Disorder
https://www.youtube.com/watch?v=vuEQixrBKCc

The U.S. military seems particularly prone to this habit of using euphemisms to mask reality.
Is that because we're teaching the wrong kind of math? That society in general has a flawed perception of what math is? Is programming not a form of mathematics? What do you think of Lockhart's "A Mathematicians Lament"?

http://mysite.science.uottawa.ca/mnewman/LockhartsLament.pdf
For a similar idea in an open-source application, see https://www.tomahawk-player.org. It works on Windows, OS X, and Linux already and is in beta for Android.
Falsehood right in the forward: "the largest attack against the American homeland in our history". War of 1812?
Standard libraries are part of the language. I would go so far as to say anybody who designs a language that isn't meant to make their standard libraries powerful, consistent, and elegant isn't doing any favors for the discipline.
Does anyone know if I can customize the IntelliJ with plugins to be exactly equal to Android Studio? Is this possible?
Read almost half of it today and nothing really surprising. Still waiting for the Taliban, Al Qaida, and IS interrogation program reports though.
Maybe the government could provide the funding as a Tax Credit for donations to platforms like snowdrift.coop, just like donating to other non-profits works. Companies / Individuals would make their own decisions about what to support, and the government would foot the bill through them.

Obviously the government would create a class of acceptable organizations to donate too, rather than designating a single platform / portal. In this way it would be just like the new crowd equity system.
BazaarBay.org – a OpenBazaar search engine
Nano Drone – One tiny ass quadcopter
Package managers have nothing to do with modularity. You're confusing modules, a thing, with modularity, a property. How you write and design your systems is how you get (and don't get) modularity, not by having a service you upload and download packaged code to.

Again, modularity has nothing to do with the quality of your package manager.
I just came across this project yesterday which packages up this technique in a library:

https://github.com/KnisterPeter/jreact
One reason to do it is to just set aside the language debate and get on with talking about the actions taken.

So "These things you did are wrong, I don't care what you want to call them or who said they were legal." The legal debate has important implications for lots of people, but the fine details of it aren't very interesting to the moral debate.
The whole point of this paper is that these 'illusions' look like noise to humans and make no sense in relation to real-life objects, and you're hand-waving it away as if it was some insignificant, tangential technicality.

-

I'm willing to bet that in late 70s many people also thought that rule-based systems could lead to real AI if they were "more complex" and had more computing power available.
No, the article does not use language very accurately. There's an extremely long paragraph suggesting that instance variables are essentially global variables because they aren't lexically scoped (without ever using the term "lexical scope"). And it uses 'imperative' where it should use 'procedural'.
Flagging comments reports a user. We review all the comments that are heavily flagged along with the accounts that posted them. If you want to give us additional information about abuse, please email hn@ycombinator.com and we'll look into it. Heaven help us if we ever need a button for this.
> So a person with clearance can't read a leaked classified document?

http://www.theguardian.com/world/2013/jul/01/us-military-blo...

> “Additionally, classified information is not automatically declassified simply because of unauthorized disclosure,” Wollman continued.

> “Classified information is prohibited from specific unclassified networks, even if the information has already been published in unclassified media that are available to the general public, such as online news organizations.”
Objects are far from the only way to limit access to state. Modules, lexical scope and closures, even C's static storage class all predate the current crop of OO languages.
My dad has used https://www.71lbs.com/ and it's worked out great. Literally free money for his wholesale shipping business.
and "is pete back from the hospital?"
I found Patreon when artists I liked announced their participation. The marketing can simply be "hey <big OSS project>, make a profile and put a banner on your site!"

Of course, that's.... marketing.
There's a limited degree to which it's useful in resolving scope and type ambiguities in C or C++, but excessive use could definitely render things much less readable. It doesn't help that some of those letters survived long past their shelf life (ie. 'lp' for long pointer, where in non-segmented architectures there is no far (aka long) and near pointer distinction).

These days in C++ I'd only ever consider using s or g, and never the type specifiers. I also largely consider signalling member variable vs. local variable to be pointless in all its forms (including _ suffix or prefix) now.
To the OP,please to stop trying to make general points about OOP,because I wonder what language you are talking about.

> The technical term for a programming paradigm which uses neither inheritance nor instance variables is imperative (or functional) programming.

what ?!?
In order to legally view a classified document you must possess two things: 1) the appropriate classification level (or above) and 2) a need to know
I think you're mixing two absolutely different types of Hungarian Notation.

No offense, but what you describe seems more or less like the reviled version (stuffing ~redundant~ information in the name, where you end up with strName and iCounter).

The more-or-less accepted version described in the GP is trying to fix a shortcoming of the language's type system. If you cannot tell your compiler that this is a (default example) pixel value and this is a color, because both are plain ints to it, you're trying to make accidents less likely by requiring the programmer to double-check the prefixes (which encode a subtype, a special type. Not int, but int-representing-color or int-as-a-bool-here).
First, you'll do your filtering on a different box. If someone has root, it's really easy to change the firewall on the box. Also trivial to delete your logs before they are scanned. You also don't want to be doing IDS work on your end clients.

>"Normal" web page of today makes unbelievable number of connections to different CDN destinations. As soon as you browse the internet "normally" on the same machine, you'd spend maybe an order of magnitude more to analyze the traffic than to consume the content.

This is not really true. I'm not advocating Deep Packet Inspection here. I'm talking about taking a look at per flow stats and setting a baseline for your network. In this case, you wouldn't be processing each packet in real time, just looking at the metadata. To be honest I don't really want to know what's in each packet that comes out of my networks. I do want to have a baseline and look for anomalies.
Is it just me, or is Microsoft almost cool again?
It's because they stick to their narrative. PR speak.
I have no strong opinion about hungarian notation, but I have noticed that hungarian notation haters were often english native speakers.
That's really misunderstanding what this is. They're not removing apt & debs from Ubuntu. This is a snapshotted version of Ubuntu that uses images for upgrades.
The documents were likely classified in such a manner that the ambassador would have need-to-know clearance to read it but not the folks they wished to consult with.
Fellow parents, how do you teach or plan to teach your kids about this? I was discussing this with my son last night, but I really couldn't explain to him the prejudice and fear that people use to justify these types of acts, or the "otherness" that the perpetrators try to construct around the victims in the media. It's just not something he's experienced yet. There's no way to put it into context.
Wow. Interpreting this under the "hello world is often a demonstration of a particular point" rubric ( http://www.win-vector.com/blog/2008/02/hello-world-an-instan... ) it looks like Petzoid was trying to demonstrate that a mere finite amount of code could launch a Window API client. Large was, of course, undesirable- but he was trying to see if the API costs were even bounded.
Interestingly Erlang creators saw the problem and solved in a practical way a while back. It was funny in that they didn't go read academic literature, they hadn't even heard about the "actor model". They just realized that they needed to minimize large mutable states in concurrent programs. Variables are single assignment, data is immutable. One object (actor) crashing doesn't impact others. Then eventually later someone said "hey that's the actor model you are using".

They also didn't set out to create a functional language explicitly. They didn't know about monads, applicative, functors etc.

Another funny anectode, Joe Armstrong is quite fond of calling Erlang the only true OO language in its original sense. The idea of methods being messages sent between isolated and opaque objects. This isolation is really enforced at the heap level and methods are really messages being send to an actor's mailbox.

If you listen to Alan Kay, he mostly agrees:

http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay...

---

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.

Cheers,
Alan

---
3 Ways Video Games Use Neuroscience for Growth and Marketing
Now this is a vicious one! I love how you can group the blocks one after the other and be all WTF is going on heeeere? Is it me or loops are becoming quite a trend? Yes, Silent Hills teaser, I'm talking about you.
Ask HN: Single founder startups: real data and experiences?
... or HN single founder debate take one million. :)

Primer:

https://news.ycombinator.com/item?id=77246

https://news.ycombinator.com/item?id=77525

In the first read PG's response and the ensuing debate. The second thread is someone's attempt at statistics. Either PG or the second are wrong.

So are there any good statistics on this, and what do people think now? The startup world has a rapidly evolving base of experiential knowledge.

Why I'm asking:

I'm a single founder of something transitioning from side project to startup: https://www.zerotier.com/

1.4% daily compounding growth on $0 marketing spend (all word of mouth), 1% freemium conversion rate (without much effort to optimize that), lots of happy users, etc.

Most people I talk to say I must have a co-founder. I will fail, nobody will fund it, etc. It's definitely conventional wisdom.

I don't for two reasons. One is circumstantial. I did most of the work to build this in a small town w/no tech scene, then moved to SoCal. I don't know many people here yet. Secondly I am not a bachelor right out of college and am not surrounded by bachelor/ettes right out of college.

Based on a lot of past experience in startups (Boston area), I've observed that a good co-founder is much better than none but a bad one is much worse. Founder conflicts are death. My personal inclination is to put it in my "risks/disadvantages" column and move on and try to compensate in other ways. I'm skeptical about the value of just grabbing someone off the street and entrusting them with something like that.

Yet I hear the constant refrain: "you must have a co-founder."

Thoughts?
If you have a clearance you're expected to follow proper protocols in accessing classified information. Reading something via a leak is not the proper protocol.

Think of it as analogous to being given a "gift" that you know is stolen. Even though you didn't steal it, you know it actually belongs to someone else, so you shouldn't accept it.
JSON is just banging strings together on the server side.

Rendering HTML on the server side is just banging (somewhat bigger) strings together.

JSON has lighter-weight transfer than HTML, but after compression the real-world impact is probably pretty marginal.

Say the JSON request was 50% fewer bytes though. It's probably only 20% faster to generate server-side (WAG). If TTFB is 50ms for HTML, maybe it's 40ms for JSON then. But then you render the HTML with a very fast renderer, while you must first parse the JSON into a JavaScript object. Then you create HTML elements paying most of the same rendering costs.

If your requests are fairly small and update only a small portion of the page, maybe the JSON is faster. I think you could consider this the "traditional" use-case for AJAX. The JSON isn't really the important part there.

If your requests are large, then it's probably much quicker to deliver HTML, and outright skip the interim parsing/programatic-markup-construction penalty. IME. Which seems to be the strategy of sites like Twitter.

I think that's a much simpler to reason about and execute solution as well.

My theory is that the only way that formula really swings in favor of JS, SPA, etc is if your application is a platform for multiple clients, wether that's businesses or end-points (JS/SPA, iOS, Android, etc), so you get a lot of mileage out of your API. But there's no scenario in which that's the _simpler_ overall solution I think. Though you might get benefits from teams dedicated to each platform, allowing them to ignore the complexities of the API, simplifying their individual domains overall. Which seems like a balancing act I suppose.

But circling back around to your comment, for the majority of platforms, rendering on the server allows you to write less code, and burn fewer total CPU cycles to render a request. If, like me, your typical applications are business oriented content-management or reporting based.

I think XML makes more sense than JSON for data transport in most cases. Richer types (you can actually represent Dates for example), faster transformations, you get to avoid programmatic generation and slow client-side templating. OTOH if your responses are messages instead of data, and you're going to be handling them programmatically anyway, it's hard to beat the convenience of JSON.

/end-rambling
Slightly off topic, but I installed Ubuntu desktop last night and was pleased by how easy it has become. Though there's a weird bug that I have a hard time even explaining. Visually, everything is 'in' the workspace, but the workspace thumbnail contains my actual screen on the top right, and a smaller screen that I don't have is on the bottom left. I installed Chrome to get Netflix, but Chrome always opens in that section of the workspace that I can't access (I only see it in the thumbnail of the workspace switcher). But with Pipelight I'm able to get both Flash and Silverlight.

Anyway, kudos to the Ubuntu team. I even like the customization of the Search bar.