skysight-inc/HackerNews huggingface dataset:
This is the crux of the problem. Physical (and network) access can always break any security because you have a million vectors of attack - physical hardware, software, etc.. . And how secure is your laptop when its in your possession? As laptops become smaller (i.e. netbooks) they'll be as easily stolen as one's wallet.

Frankly, most people's data is really not that important and the cinderblock attack is what truecrypt and similar crypto systems prevent. Every time you see a news item about "a million social security numbers have been compromised " - its always due to the cinderblock attack.

The "only" way to secure your data is to put your computer it in a vault (unplugged from AC outlet and no network access) with multiple physical security and surrounded by people with guns. If your data is that important and you can afford this sort of security...then the evil maid attack is irrelevant.
That is very true.

PHP, Python and perl are rarely seen at corporations that existed before the web came around. Their whole IT department is set up around a different kind of environment.

I think this is in part why the web is so disruptive, because it enables all these upstarts using very light and nimble stuff to challenge the big and established companies directly.

You can pretty much tell what is enterprise stuff and what is 'quick & dirty but does the job' by comparing hourly rates for programmers.

It also has everything to do with the length of time before someone can be productive in a new environment. If that length of time is very short then there is not a very high barrier, which tends to create a lot of 'wannabe' programmers in that language.

By raising the bar you only end up with people that are willing to invest a large amount of time in a platform, that tends to favour people that get paid for their work, which in turn is found mostly in enterprise locations.
>> "Sure, it's Flash"

.... and there goes half your potential users.
So what ever happened to these ideas and Forth?
I totally agree. C++ main strength lies in its "portable assembler" nature. However, C++ also is [quite a behemoth][1], while Lisp, Python and Haskell aren't so.

[1]: http://yosefk.com/c++fqa/

The answer then is obvious : we should change the hardware, so it is not C/C++ optimized, but Lisp/Python/Haskell optimized. Then, these languages are easier and more practical.
Procedural thought isn't procedural programming.

And even if it were, procedural programming doesn't have to be mathematical. (It has to be... procedural).
please, think of james bond! how could he drink a martini gracefully when a suitcase is chained to his hand?
Maybe half of open source linux developers but more like 0.000002% of normal users
> C accurately models how the computer actually works

i don't even know on what kind of hardware my java or python programs run. neither google (appengine) nor our IT apartment tell me.

so for most app developers "a computer" is not really something they work with. of course someone must write those abstractions (python, etc), and they do it in C/C++ :)
I remember 'cfront', when it first came out, and to this day I haven't really changed my mind on how I felt about it, it's a much too bloated language compared to the elegance of C.

If 'C' would have had a decent native string type I think C++ might not have happened ;)
Is operator overloading in C++ really more complex than it should be, or did you just pay the inevitable price for dabbling in the black art of multiple inheritance? Anytime you say "in combination with multiple inheritance" you can't expect to get much sympathy ;-)

C++ is definitely a language where you can get screwed by "clever" programmers who would rather be reading TC++PL than actually coding, but it's not so bad if the people you work with exercise good judgment. I've never had to deal with multiple inheritance in real production code, for instance.
Same here ... and here I thought it was a really specific niche!
Tina Fey covers Harper Bazaar November 2009
Tina Fey graces Harper Bazaar Magazine for the month edition of November 2009. She is the perfect face for Fashion magazine Harper magazine US. She has done a photo shoot with photographer Alexi Lubomirski
The idea here is that when reviewing someone's code, instead of writing up the problems that you found and handing the write-up to the author (which they may or may not understand, and may or may not act on), you actually just fix the code as you go, committing each little change you make with an explanatory comment as the commit message. The author can then look over the history to see not only what the comments were, but exactly what each one means in the code. You're guaranteed that the problems are fixed, and (assuming the original programmer actually does look over the history) the learning value is much higher.

I've done exactly this on a couple of occasions and it worked very well. Among other things, it's easier on the reviewer. (Who likes writing up a big document or email? Much better to actually fix code.) Personally, though, I find it more productive to work more collaboratively to begin with.
I like sousveillance and exocortex enhancement in general; and the attempt at capturing intelligently in specific. But this seems a little underambitious for the price--just 1GB of memory? No automatic, regular backups by wifi or EDGE?
I like this definition of passion, but I also like the comment about pg's definition of passion as curiosity.

My intuitive feeling is that both are correct, and how one subjectively experiences passion is probably related to how close to self-actualized they are. (Or perhaps a more neutral way to phrase it would be that the subjective experience differs depending on whether the person's drive to learn gets channeled into learning new hobbies, or whether it has been channeled into learning about how the world works as a whole.)
Obviously everybody's different, but for me taking a look at the things that excite me moment-to-moment is only part of the answer. Once I've found something I like to tinker with, it usually takes some serious effort before I become passionate about it. Usually this means hitting some tough problems and working my way through them.

The challenge for me is that sometimes a big problem can suck the momentary excitement out of a project. Passion really starts to set in when I push myself and am able to come up with solutions.
"Yet C++ is also frequently reviled both by those who never use and by those who use it all the time."

I was once listening to RMS speak at a conference. One guy got up and said that this was one of the n great talks he had been to.He mentioned that Stroustrup as another speaker who had impressed him upon which RMS said "You need to get your head checked".

Sometimes a great hacker community can help overcome the shortcomings of a language. Trevor Blackwell makes that point here: http://www.tlb.org/faq.html.

"Besides their intrinsic characteristics, languages define commmunities of programmers. You want to choose one that lets you communicate with good programmers, because you'll learn from them. They tend to prefer powerful languages like Python, Lisp, and C++. So for example, although Visual Basic is actually a powerful and complete language, few good programmers use it. C++, on the other hand, is a rather poorly designed language, but for historical reasons a lot of smart people use it so at least you'll be in good company."
LLVM IR [1] is portable assembler. C is "portable" in the sense that:

a.) you get direct access to your linear address space

b.) gcc targets so many instruction sets that you don't have to worry about your backend unless you have a custom platform.

C++ is the thing that screams "__gxx_personality_v0" at me because I always start off using gcc instead of g++.

[1]: http://llvm.org/docs/LangRef.html
This is exactly right. It's an old marketing trick, plays into your initial reaction with the price tag. And often times people will round it down instead of up, so $99.99 will be $99 dollars, saying "Man, I got this awesome painting for my wall, it was only $99" sounds more appealing than "Man, I got this awesome painting for my wall, it was only a hundred bucks".
Mick Jagger to Andy Warhol
There was a time when I made most of my income debugging other peoples programs, call it 'troubleshooter' or something like that.

It gives you an excellent overview of the various ways in which things can go wrong, and C++ figured quite prominently in the 'gotcha' department.

C has it's share of issues, double frees, failure to initialize (but most compilers catch that one nowadays), and stale pointers. With a good discipline you can work around those.

C++ can obscure the bugs in such a way that it takes you a long long time before you can 'nail' them. The biggest problem I have with the language is that the code tends to obscure what is going on at the machine level.

I guess that's a 'feature' too, but I prefer to have a more direct correspondence between program code and what goes on below the surface. That's a problem with OO in general by the way, and I think that this is part of what makes software so terribly inefficient these days.

Gigabytes of ram are barely enough to accomodate a single user os, it's really pretty weird.
Ask HN: Do you have an Amazon account with a credit card?
I'm deciding which way to go for payments for my web application, and I noticed that Amazon does payment processing. I'm wondering how many people actually have an Amazon account with a credit card. Do you?
So you ask the people who are most likely to give you the answer you want to hear.
Full drive encryption is meant to protect against theft or loss, not against trojan horses (be that hardware or software).

To protect against trojan horses you need an external validation mechanism or a physical protection (be that a safebox or TPM, by the way the Truecrypt team is wrong about TPM, it's much more difficult to temper than bytes on a hard disk).
"... and please write back saying how much money you would like."
Again, I give lot of credits to Apple, but having the Device/OS provider exclusively owning what can get distributed or not on this OS is a big step backwards. True, consoles and closed devices have this model, but Mobile was opening up.

If you step back and look at the consequence of having iStore model (exclusive control on application distribution) in the software industry, you cannot conclude that this is a good step forward.

The fact that Apple made the iStore the only way to distribute application is not about maintaining quality, experience, ..., it is about controlling the distribution. And this control does not exist in the PC world, and was going to disappear in the mobile world.

But point taken, I will be more diplomatic in my answers.
Its really fascinating to me. We had Lisp and then the road for many lead to C/C++, Java, and related and then we needed a way to express data in more human-readable form so some genius came up with XML. XML was to cumbersome (close tags, how attributes are expressed, etc.) and then JSON came into the picture. So all that to just come back to where we were in the first place.

Now I clearly understand what some of the veterans in "Coders at Work" really meant by "Very little progress, if any, has been made in the Programming space".
config.sys
I'd be interested to hear what patio has to say about this. He sells his Bingo Card creator software for 29.99 and split tests everything. Have you ever tried split testing prices?
I was wondering if #37 would make it.
Hacker Dojo in Mountain View sparks ideas and tinkering
Whole life? If I had one it would involve quite a lot of things that this camera wouldn't capture.
Why Google Doesn't Get it With Wave
Haha. This is by no means a serious list, it's just fun to look at really.
Is Your Business Too Noisy?
Yes, Stedicams are standard equipment in the film industry.
http://en.wikipedia.org/wiki/Steadicam
I completely agree. While C++ certainly isn't perfect, those of us that write real code that is used and maintained day to day can be very productive.

While I know who most of the people in the article are and respect their contributions to the world of software engineering, day to day real world pressures of delivery aren't the same as an example in a book.

A hammer isn't an elegant tool, but it gets the nail into the wood.
What album was this?
Boolean algebra is conspicously missing from the Basic List, probably because the parts of Boolean algebra that are most useful are the first thing any programmer learns (although there are plenty of people making a living programming who can't even do basic bit twiddling). Babbage conceptually invented a universal computer a couple of decades before Boole published his major opus.
If you don't have a GWT account, you're missing out on a lot of information that you would either (a) not ever see or (b) have to generate yourself.
There is the 180 day rule, I'm not sure if it applies to you.
I love these task-specific EC2 images. Is anyone familiar with any others?
You can set a cookie to see it: http://lifehacker.com/5377098/make-the-minimalist-fading-goo...
PHP, Python and perl are rarely seen at corporations that existed before the web came around. Their whole IT department is set up around a different kind of environment.

Not sure if this is true in general. I work at a bank. We use a lot of Perl. Banks existed long before "the web", and our Perl stuff is not a web application either. All the internal web apps are Java.

It is kind of weird, actually -- Java for stuff like the HR apps, and Perl for the stuff that makes us money. (If it were my decision, I would use Perl for the web apps and Haskell for the algorithmic stuff... but it's not.)
A C++ Challenge - The Conclusion
The comment was probably referring to things like "copying stuff is expensive" or "function calls are expensive", not more specific details of the machine you run on. In C++ you use pointers/references to solve the first problem, and define header-only classes for the latter. Even if you weren't aware, basic use of the the standard library will clue you in.
Free Landscape Photos, Beautiful Landscape Wallpaper, Awesome Pictures
On this site, you will find free desktop wallpaper for the background of your computer screen and Free fantasy landscape photos, beautiful landscape wallpapers, nature 3d wallpaper & digital world pictures for your mobile.
Here is the beautiful landscape wallpapers and photos from the world which you never seen before, Download for free high resolution nature wallpaper and pictures, amazing landscape photography, awesome landscape pictures, free landscape desktop wallpapers, widescreen landscape wallpapers, 3d landscape wallpapers. Changes your wallpaper by downloading best photos from the Landscape Pictures.
I don't have itunes on my work machine or I would list the link. I remember it being the only course specifically on game theory at the time.
Ah, yes! that's the course, thank you!
Fully agreed. Even better, a job at an independent diner or suchlike - at a franchise, many of the supply/purchasing/pricing decisions are made for you, whereas at a locally-owned business you'll probably glean more information about the economics of things from the owners. I also spent about a year in construction when I was younger, experience that I've drawn on many times over and which was worth far more than the pittance I was actually paid.
If you code in a 'safe' way and you stay away from nifty tricks then you are in good shape. I'm sure you have a little list of stuff that you should stay away from or that you would at least discourage.

The problems usually come when people start to use all those nifty features in combinations, especially 'newbie' programmers going wild on all that high level sugar.

C/C++ is performance wise also as good as unbeatable, if you know what you're doing, which is another reason why it has such staying power.
"Sticky Fingers", I think. The famous 'zipper cover'.
Or maybe "Love You Live".
Using SQL Full Text with LINQ
> 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.

But then again, is there even an 'enterprise scripting language' ?

> All the internal web apps are Java.

That's what I would expect. Sun really did some good marketing in that sphere.
That seems to be correct:

http://en.wikipedia.org/wiki/Sticky_Fingers#Cover
yes, that was entirely my point.
Thanks. Good idea. We'll add that feature.
Lisp, Python and Haskell should never ever be separated by a mere slash; they're totally different beasts.
Please, use a precise term if you talk about multiple inheritance, even though in this case it is clear that C++-MI is the multiple inheritance is meant.

In general, there is at least the linearizing (Common lisp) multiple inheritance with a well defined method lookup semantics (even though there are good ways to shoot one into the foot there), and the C++-local-hackity-multiple inheritance (where the programmer has to resolve lookup ambiguities, resulting in unpredictable semantics). And this even avoids the discussions of traits, mixins and such.
Calling C portable assembler is not to be taken literally, but in context of its usage, which was for the most part systems level stuff that previously would have been written in assembler, requiring expensive ports between platforms.

C changed that dramatically and helped to cut down on porting effort tremendously.
That's tame. Here's a scary example [1] (redefining a (built in) function in the middle of a running coroutine):

def foo(x):
yield len(x)
yield len(x)
>>> g = foo(range(5))
>>> g.next()
5
>>> len = lambda y: 8
>>> g.next()
8

This causes problems when trying to implement an efficient python. You have to re-lookup your function bindings every time.

[1]: Example taken from Colin's Unladen Swallow presentation http://llvm.org/devmtg/2009-10/Winter_UnladenSwallowLLVM.pdf
How Being An Engineer Improves Your Daily Routine
the lesson: hire talent and get the hell out of the way.

also, get this record. it is a masterpiece.
Three men went off on a sailboat together, a physicist, a chemist, and an economist. Unfortunately they ran into a storm and the boat was wrecked on an uninhabited island. The only food they were able to rescue from the wreckage was a case of baked beans. As they got hungry, they began to wrestle with the problem of how to open the bean cans. The physicist said "I'll climb a tree and throw a can onto a rock and it'll split open." The others didn't much like this idea because they thought the beans would just splatter everywhere. The chemist said "We can soak the cans in salt water and they'll rust through." The others didn't much like this idea because it would take too long. Then the economist said "Hay--no problem, we'll just assume a can opener."

Economics should always be applied to real life with many caveats. It's been a while since I took my semesters of game theory but here's some brief problems with real life applications.

One dangerous assumption in the hoteling model is that there are no costs to changing your position. That is, the two parties will keep relocating until they're at the Nash equilibrium (neither party can benefit from relocating). This is just plain wrong in real life. Political candidates lose a lot of credibility when they reverse stances on something. It is true that after primaries, candidates then to become more moderate but most other applications of hoteling are dangerous. (Edit: same goes for changing marketing stances, product positioning, pricing... etc.)

Removing relocation/repositioning costs illuminates another unrealistic assumption: there are only two players. If you have huge costs to relocating then you don't want to allow a competitor to come in and take your half of the market because he positioned himself right next to you (i.e. M, N, O). If you add in these two assumptions, players might actually want to have an agreement to separate such that any new entrant would not be able to gain as much profit as they are currently making (while still each controlling 1/2, (i.e. at .33 and .66 on the spectrum or something).

A third assumption is that it is a one dimensional world or that consumers judge choices only along one spectrum. If you add in that another competitors could compete not just on the "beach"... Or if a competitor could differentiate itself on a topic that consumers care about more (not all spectrums made equal)... Or spectrums change, the median consumer could shift from one year to another.

I could go on but the point is to not assume the can opener. In entrepreneurial terms, maybe all the competitors out there are "hoteling," could that be justification to be different? Purple Cow? Or maybe it is better to make a few consumers love you than many to just like you.
This may not be all that useful for hackers who aren't doing anything particularly weird. Wget should return the same thing. The times that this is interesting is when wget doesn't return the same thing. This could indicate a bug in your ip targetting, A-B testing, or browser-specific delivery. It might also help reveal problems like mentioned here http://news.stepforth.com/blog/2006/09/has-your-site-been-ha... where a hacker shows regular users the original page and shows googlebot a page filled with links to porn.
thank you, finally someone who says stuff that makes sense.
I've wanted something like this for a while, but with audio as well.

Thing thing I've come to realize is that it must be an integrated system that is automatically indexed and searchable, tagged by date, time, location as well as having speech recognition and face detection in order to be truly as useful as it should be.

I think the ideal device would also have a 'bookmark' button that indexes sections you want to be able to find later on - very handy for remembering names, faces, etc.

I also think there should be a 30 second rolling frame buffer so that you can hit 'record' and capture five minutes of full-motion video starting 30 second earlier so that you can fully capture important conversations and the like.

All of the tech exists, it's just not been integrated in an intelligent way as of yet which is a real shame.
No, C is a portable assembler. C++ was created to add "high level" OO features to C. But the success of the effort is highly controversial, because there are differences between C and the OO model that are too difficult to overcome.

I think the strategy of objective-C is much cleaner, since they better separate the concerns of "writing fast code" and "writing high level OO abstractions".
I strongly disagree (as a post-grad working on Graph Theory). Mathematics has never abandoned Graph Theory and no Graph Theoretician I've met would ever consider Graph Theory to be a part of Computer Science.

I take issue with the "actually useful" part. Had we been early 20th century citizens, you might have said that about number theory, but where would modern cryptography be without it?
This looks like a direct no-attribution repost from Letters of Note (sept. 28 post, recently re-popularized):

http://www.lettersofnote.com/2009/09/i-leave-it-in-your-capa...

Letters of Note is a fantastic site, and there are several other amusing/interesting ones on there despite the site's youth.
IE Only, Cool Features, That Should Exist On Other Browsers Too
Shouldn't we be comparing the PC as game machine to video game consoles, then? I think console gaming is a MUCH larger industry.
"we should change the hardware, so it is not C/C++ optimized, but Lisp/Python/Haskell optimized."

http://en.wikipedia.org/wiki/Lisp_machine
It's cute how the industry thinks that law is relevant to file-sharing.