skysight-inc/HackerNews huggingface dataset:
I don't think the author compeletely gets it.

Here's a sample of a Microsoft EULA:

"""
LIMITATIONS ON REVERSE ENGINEERING, DECOMPILATION, AND DISASSEMBLY. You may not
reverse engineer, decompile, or disassemble the Software, except and only to the extent that such activity is expressly
permitted by applicable law notwithstanding this limitation.
"""

Have you actually looked up those laws to know if what you're doing is legal? Would you be willing to bet on your ability to interpret legal code? I sure haven't and sure wouldn't. I'm not interesting in putting myself in a position where I might have to fight Microsoft in a legal battle. I can already tell you who will win that one. Billions of dollars almost always wins.

Also, if there is a bug in Excel that you find problematic, there's nothing at all you can do about it except stop using Excel. If you're using open source, you can fix it and get on with your work.

The author also points to an issue that existed with Debian for about 2 years. In open source terms, that's an extremely long lived bug. If security is a huge issue for you (and it isn't for most computer use cases), use open bsd, where security bugs are fixed almost immediately. Even so, I have to ask, how long is the longest a security hole has remained open in Windows (that's assuming you don't consider Windows itself a security hole, and I'm not sure you can be so generous)? How would you even know? Do you think Microsoft is going to tell you, "Oh yeah, we had this huge security bug for about 10 years that we finally fixed up?"

Finally, the author is attacking a straw man anyway:

"""
I only resist the open-source fundamentalism, that defines every proprietary software as inherently insecure, and everything open source as ultimately secure.
"""

Who actually think that everything open source is automatically secure? No one. Here's some open source code for backing up your computer: "rm -rf /". Show of hands, who thinks this is secure system backup software?

(Just in case you don't know any better, DO NOT FOR ANY REASON RUN "rm -rf /" ON A UNIX-BASED MACHINE.)

The argument that people actually make is that open source software has a tendency to be more secure... that the culture is more inclined to produce secure software. If you attack that instead of a straw man, you'll have a much harder time.
The distinction matters, because the multiple inheritance in common lisp (and other linearizing languages) is a lot saner and easier to use than multiple inheritance where the programmer has to define the method lookup sequence, which in term implies that multiple inheritance in itself is not the sole cause of complexity in this context, but rather the implementation of multiple inheritance in the given language (C++).
Say a TV should last 10 years, does anyone think this service will still be supported in 10 years?

Integrating functional units saves space and cost, when one has a vastly different lifespan than the other can ultimately be wasteful. Consider how many iMacs are retired to basements and closets with perfectly fine displays, just obsolete or broken computers.

At least in this case, you can just quit using the Samsung service when it is abandoned or standards overtake it and plug a box in. So you can think of it as your first internet delivery box is integrated, the rest will be standalone.
[Startup School] Any couchsurfing hosts?
Any other couchsurfing hosts or seekers feel free to hijack this.

I'm trying to go to Startup School as cheaply as possible and looking for a place to stay. I'm flying into SFO on Friday 10/23 at 10pm and flying out Sunday morning at 7:30am. I'm clean, quiet, and take quick showers. I'll also give you free GeekStack cards for your troubles :)

peter at pchristensen.com

Thanks!
Only recent comment scores are inputs into the average
Maybe there should be a mechanism that punishes / fines users who post links to stolen content and marks / blocks such sites.
There's little doubt his loose monetary policy contributed. That said, those bubbles could never have been as severe without wall street's catastrophicly optimistic pricing models and reckless lending practices. Wired has a good description of how pricing models contributed at http://www.wired.com/techbiz/it/magazine/17-03/wp_quant?curr...
or jagger didn't care
FWIW: we've just started using Beanstream, which is a Canadian gateway that I think has what you're looking for.
A lot of modern graph theory is connected to Ramsey theory which is not particularly practical at this time nor do I anticipate it becoming so within, say, a decade. There's a lot of important stuff on the subject, but because most nontrivial algorithms on graphs are NP-complete it's all heuristics.
for about 99.99% of the startups this is really wishful thinking. Big Co does not care about you.
Just another example of how 24 hr news media is willing to suspend belief, and common sense, for a sensational news story.
Most of that is 'plain good sense' in any environment, here are a couple that target specific C++ pitfalls:

- Only very rarely is multiple implementation inheritance actually useful. We allow multiple inheritance only when at most one of the base classes has an implementation; all other base classes must be pure interface classes tagged with the Interface suffix.

- Do not overload operators except in rare, special circumstances.

- Make all data members private, and provide access to them through accessor functions as needed. Typically a variable would be called foo_ and the accessor function foo(). You may also want a mutator function set_foo().

- All parameters passed by reference must be labeled const.

- Do not use function overloading to simulate default function parameters.

- We do not allow variable-length arrays or alloca().

- Be very cautious with macros. Prefer inline functions, enums, and const variables to macros.

The only thing that struck me when reading this that I do different is the use of ++p, I would avoid that at all costs.

Pre-increment is a great way to confuse people. I can see why they would use it though, another similar source of confusion (stemming from C really) is the difference between

*p++

and

(*p)++;
The distinction between pointers and values (and the ability to treat pointers as values) is necessary for many applications of C++, so that complexity _should_ indeed be in the language. You may be right that the distinction between pointers and references is gratuitous. Ordinarily, one defines an overloaded operator using reference arguments (never pointers; only values if you're doing performance microoptimizations, i.e., only for a handful of carefully inspected types) and dereferences pointers before applying the operator, so it doesn't really matter unless code in some other module is overloading operators for your types. That's a bizarre circumstance that never happens in practice.
I don't know what 180 day rule you're talking of, but I'm very sure it did not apply. A US citizen is taxable in the US for world-wide income. (Though there is a nice tax break for money made as a foreign resident, and there are lots of double-taxation treaties with lots of countries.)

I was in the bizarre situation of being a US citizen living in the US, going to a US school, being paid a scholarship from the Canadian government that was not taxable in the US. To make things worse I was actually a dual citizen in a country that barely acknowledged the possibility of such. In short I was that bureaucratic nightmare called "an exception they don't have any forms for".
Except for CPU scalability, most of the new features require configuration to be turned on. Some of the features are just that they allow something to be configurable and nothing else.

For example in the top 10 article linked to, being able to change IO capacity and number of read/write threads is awesome! Another example is insert buffer control.
The article obviously references to some event, but I don't know which, can someone tell, please?
I think that basing it off C was a quick way to get widespread acceptance though. It succeeded in that respect.
"neither do we give a shit if we put our product up in a state that is pretty much unusable".
I'm going to kill this; if everyone did it we'd have 800 posts. You can probably find what you want at http://airbnb.com/groups/startupschool. With the discount code it's basically free.
Android 2.0 screenshot walkthrough
A-ha, yeah. I read that originally as Java and C# pulling in opposite directions in a fundamental way, not as a mind-/market-share sense
But I can safely say that it is a machine that the C language models fairly precisely and that python, lisp etc will use in ways that will make it harder to predict how their constructs will interact with the machine.

That's exactly the point, if your machine is anywhere near 'standard' (as in not a SIMD or something exotic) then C is as close as you can get to it without going to assembler.
But it lifted an entire day's worth of news.
Health care? Afghanistan? Oh look it's a balloon.
We are going to be using a code coverage tool in conjunction with our source code management tool to do code reviews. Every branch of every method changed for a particular Change Request will be instrumented with something subclassed from a breakpoint, and the developers will get a randomly assigned "review partner" and they will ensure all of the checked in code is covered by unit tests.

The "coverage map" of affected methods is generated automatically, and the insertion of the code probes is also done automatically.
I get it, only rich people should be allowed to save (since a non-interesting bearing account will actually lose real value over time, i.e. a tax on mere keeping of money).

Riiiight.
http://theinvisiblethings.blogspot.com/2009/01/closed-source... clicky
and they dont mention uva.onlinejudge.org, the acm problem contests and such?
Thus proving the author's point.
http://www.cnn.com/2009/US/10/16/colorado.balloon.boy/index....
So this could also be called a "Dark Cloud" effect.
Pulp Wave: Google Wave, Pulp Fiction mashup
There's nothing saying you can't send an email to each of them, saying basically, "just wanted you to know I appreciate all you did, even if it might not have seemed that way at the time." If you stay in touch, they'll see that you've put lots of effort into fixing weaknesses. After all, the person you least want to go into business with is one who can't recognize and correct their own mistakes.

I've stayed in touch with a co-founder from a previous failed venture, and while it hasn't come up to work together again, the contact has been very valuable both ways.

Lots of bridges can be rebuild, assuming you have the desire and humility. And don't think they don't regret some of the things they did. There's always plenty of blame to go all around.
>> We use a lot of Perl.

>That's interesting! That's the last thing I would expect from a bank actually, wonder how common that is.

I've seen a lot of Perl used in banking/finance. It really is the "Practical Extraction and Reporting Language" and certainly seemed to have almost completely replaced shell scripting in the last place I worked at. One interesting anecdote about Perl was that a group I worked in originally chose ADA as their language when they were just starting out but eventually gave up and went with Perl just because of it's relative power and simplicity. That company also has a major initiative to replace alot of what was written in Perl (and runs the company to this day) with a system written in Java. That system is still not doing any serious production work and is at least a couple years late. I don't think it has as much to do with the Java language as the "this will be the mother of all systems" approach they tried to take with it in the beginning though.
just got in, finally. apparently cant download bank transactions. without that, it's not possible for me to use it. look forward to using it when that's in!
In my experience with Java, the core language is small enough that every company pretty much uses the whole thing. Almost everyone has finally upgraded to using at least the Java 5.0 syntax by now. Occasionally you'll run across silly rules that prohibit things like the ternary operator or multiple returns, but those are minor differences.

The big differences come into play with frameworks. Depending on whether you're using Struts/JSF/Hibernate/Spring/etc your code may look completely different.
Wherever we like. . . Really?

How about a shanty town? Or a drug compound deep in the Colombian jungle? Or just a plain ordinary war zone? Come on Google. Where's your balls?
Thanks. Apparently I suck at the internet.
I'm starting to realize that calculus (or rather analysis) is pretty important for UI design. Programmers think in terms of discrete things but users think in terms of a continuous world (no sudden jumps between 'things'). However, user interfaces often consist of discrete elements. Yet since users think in terms of continuity they create a mental model that fills in the apparent gaps. So I'm beginning to appreciate that good UI's are the ones where arbitrarily small actions have similarly small effects (e.g. the scroll bar and certain animations) which allows for a smooth learning curve (I'm using the term 'smooth' in the same sense that we use it in calculus).

I think one of the reasons that OSX and other Apple products have a reputation of being so approachable is that they give the illusion of a continuous mapping between user actions and results.

(I just re-watched the video on seam-carving and even that seems like one of those obvious ideas once you have a good grasp of analysis.)
I like how some buttons are in a kind of "thumb sweep" layout: along a curve where you're most likely to be able to reach them.
I think operator overloading, which seemed like a 'great idea at the time' with some forethought should have never been part of the language in the way it works right now.

The times that I ran in to examples where it was used properly and elegantly I think it could have been done just as nice with a properly named function call.

I think the way it workd came from the DSL camp arguing that you should be able to make it look as though certain bits where native to the language, even if they weren't, and then the only uses we get are things that have nothing to do with DSLs but everything with children handling power tools (as in: bad idea).

Show me a single example of where operator overloading was necessity to make a function work, and I'll show you a more cleanly coded version using a function call.

The interesting thing is that after the compiler is done with it you'll be calling ::operatorX anyway.

Plenty of times there are naming issues as well, what does it mean to add two items of 'X' together, most times such a statement would be meaningless in the real world, but if you were forced to use a named function instead of an operator that function would have a name that matched what really happens.

Naming stuff is one of the great powers of computer languages, use of operators should be reserved to those situations where the outcome is predictable, and where operator precedence rules are the same as they would be when adding numbers.

So, it's fine to add an instance of a class called 'area' to another instance of that class, but you can't add one instance of 'boat' to another. That one should be done using:

cargospace = add_carcospace(boat1,boat2);

or something to that effect.
You are absolutely right. My point exactly.

Now you need "two hammers" to get a single job done. Your current programming language of choice and a data expression language.

For example:
In C, C++, Java, or related, you "first" have to build you structure to represent a Person with first_name and last_name and then you have to write it to JSON:

Java:

class Person { String firstName; String lastName; }

JSON with JavaScript evaluation:

var names = [{"firstName": "John", "lastName": "Smith"}, {"firstName": "Bob", "lastName": "Jones"}]

eval("(" + names + ")");

Lisp handles both naturally. You don't need intermediary human-readable data expression language. It comes natural to the language itself.

Lisp ver:

(defvar names '((:firstName "John" :lastName "Smith") (:firstName "Bob" :lastName "Jones")))

(eval names)
Huge Holes in the Earth as Seen From Space
A bit of digging (http://www.iorr.org/talk/read.php?1,1138009,1138221) suggests it was originally meant for "Through the past, darkly", which was a hits album (released in 1969).

Warhol never recieved the materials in time and ended up doing the Sticky Fingers cover instead.

I believe Warhol also designed the famous Rolling Stones lips logo.
Good point.

Yours and gcheong's comment just above makes me wonder if someone missed the boat in getting an enterprise level scripting language out the door. It looks like there never was a 'natural' successor to stuff like JCL.
I have a list of things to stay away from indeed, but it's due to my own sanity of being. For example, without GC exceptions are almost always going to cause leaks without the team being all C++ experts. If I was designing in Java exceptions are wonderful, in C++, asking for issues
I wonder how much these kinds of "mistakes" come from trying to create a paradigm where it looks like there is only one copy of something in a world where users are already used to the fact that computers are copying machines by nature (your friends can not technically view your photos unless you upload them to flickr (provides flickr a copy), and the user downloads them from flickr (makes a copy to the user)). Similarly, you don't necessarily delete something off your iPod, you remove it from your iTunes library. The various players you have for music interface with your iTunes library, they conceptually don't read individual files (even though they technically do, that's how disconnected operation currently has to work). The syncing helps make things appear to have transparent access. You have one address book, the syncing between discreet devices happens in the background to support the illusion of a single instance. Time Machine is similar, in that there is a conceptual presentation that you're looking at the same file at different points in time, not that there are multiple files each containing different versions of the same conceptual content (even though it actually needs to copy a file to make a backup, even if it does some tricks by using hardlinks and is COW (I don't know the internals of TM)).

Unfortunately, this goes against the majority of computer users' experience. While that's a good mapping to real-world physical devices, it doesn't work for things that are stored in distinct files. When I take a picture with my digital camera, it is stored on the camera. Now I copy it to my computer, and there are two instances. Now I upload it to flickr, and I still have the other two copies: I don't need to go to flickr to view the image. Vs address book entries, which are not usually stored in distinct files and have not traditionally been moved around and copied like files (UIs that do as an useful * extension* not withstanding), so the concept of keeping all data in sync is more natural to users.
Reminds me of a quote I read from Charlie Munger:

“I get flack for saying [when I visit a college and give a speech], “This is a nice college, but the really great educator is McDonald’s.” They hate me for saying this and think I’m a slimy creature. But McDonald’s hires people with bad work habits, trains them, and teaches them to come to work on time and have good work habits. I think a lot of what goes on there is better than at Harvard.”
I worked at McDonald's. It helped make me the man I am.

Mark, have you also considered advice to burn estates? It is analogous from the under up as your flipping burgers is from the over down.
Yes, I somehow doubt Jagger expected to personally foot the bill.
What about using the other investors to blackmail management and then selling out these investors when management paid him off? When someone is this smart, the responsibility to be good is even more pressing and the condemnation for being bad should be more loud. And yes, I am judging.
This is fantastic. EZ-Mode push using a very simple to deploy piece of software.
No you don't need to.
Check out PayPal Web Payments Pro Canada for a Canadian processor
The google style guide posted elsewhere in this thread links to this:

http://google-styleguide.googlecode.com/svn/trunk/cpplint/cp...
Laptop for every pupil in Uruguay
Stanford CS142 Web Applications (Ruby on Rails) Lecture Notes
This reminds me of a piece of advice from Brian Fox (http://en.wikipedia.org/wiki/Brian_Fox) which is that anyone who wants freedom should get enough jobs as waiters to be confident that you can do it at need.

The reason is very simple. If you are in a strange place in desperate circumstances, an experienced waiter finds it fairly easy to get a job. And very importantly, you get to eat on your first day in the job. This makes it a very valuable fallback to have.

If you're a waiter in a decent restaurant, the food will also be pretty good. Furthermore once your circumstances improve, it is a job that you can leave easily.

(Note that Brian Fox's circumstances have definitely improved. He had a successful startup back in the mid-90s.)
In TPIR, people have to try and guess the price of an item, and whoever comes closest without going over wins. So if I bid after another player, I can bid one dollar more than him, effectively stealing his bid (unless he happened to guess exactly right). People do this quite frequently; it's not uncommon to see the fourth and final bidder bid one dollar higher than the highest of the three other bids.
iphone? ipod? wii? ds? etc etc?
Takeoff Video Shows UFO Balloon Incident Almost Certainly a Hoax
As a meta-comment, I liked your points but please hold the "humourous" story opener - we shouldn't need tricks to be engaged or convinced by your argument.
I don't think Warhol did the Russian cover.

http://upload.wikimedia.org/wikipedia/en/f/fe/Sticky-Fingers...
Sun and MS are trying to bring scripting languages to their managed environments. .NET already supports Python reasonably well (I was surprised to see that SharpDevelop http://www.icsharpcode.net/OpenSource/SD/ can easily convert most of my C++ into Python).
> but it's due to my own sanity of being.

I think that is what such lists have in common :)

> For example, without GC exceptions are almost always going to cause leaks without the team being all C++ experts.

That is something I rarely have had trouble with, but I never worked much in teams. I did notice that the double-free and never-freed pointers are a good portion of the problems you encounter in live code though.

And every time firefox goes EWOL I'm fairly sure that somewhere deep down someones code just tried to reference a stale pointer or something like that.

Even in Java exceptions are not all that wonderful, I think they are just a way to say "I don't feel like coding the stuff required to handle this situation properly, let's thrown an exception".

You end up with more exception handling code sometimes than functional code and that isn't the right balance either.
Occasionally you'll run across silly rules that prohibit things like the ternary operator or multiple returns

In avionics software, the ternary operator and multiple returns are often avoided to help ensure better code coverage during verification.
It wasn't sensationalized, the authorities and parents genuinely believed the kid flew away.
Actually I've heard a quite compelling case that the emancipation of women is the single biggest factor in reduced fertility rates in the developed world. Obviously it is a corelate of democracy and development, but the former without the latter may be insufficient.
Not all rhetorical tools are tricks. Analogies can be informative when taken with a grain of salt. Presenting an analogy a joke is especially honest because invites the reader to not take the analogy too seriously. So I don't think the opener was a trick in a negative sense at all.