skysight-inc/HackerNews huggingface dataset:
One of the limitations of Objective-C, the inability to create a function with a variable length argument list ...

Erm, not true. For example, NSString's

+ (id)stringWithFormat:(NSString *)format, ...
First, even the "manual" version of garbage collection (the retain/release) pattern is pretty trivial with Objective-C (more so with the new property syntax). Once you know the rules it was pretty automatic and really didn't cause that many problems. It was more a problem with the "checklist" language comparisons.

The "property duplication syntax" (I assume you mean the declare versus synthesis) is there for flexibility and so you can do some pretty good customization to make your classes work better.

For OS X, Objective-C now has garbage collection that works pretty well.
It takes more cpu cycles to run a java program than a C program given they are both well written and optimized.

However, writing it in C will probably take more time. The question to ask yourself, does it matter if my program is taking few more cycles to finish or not?

Most of the times it IS faster in C but the difference is insignificant(e.g. C takes 0.0001, Java/Python takes 0.0002. Who cares at this point? Very few).
This is intriguing but how would you handle a power outage, or an Internet outage, or WiFI just randomly flaking out?

How does the ADT system work? Some kind of dedicated line?
Didn't see a single explanation of why the language deserves my love. Let's see.

* The language is verbose.

* Practically speaking, it's only used to developer for two platforms (OSX and iOS).

* The frameworks for those platforms are MEGA verbose.

* The memory management model for the iOS platform is not GC, and it's not manual management. Frankly I found manual management of memory simpler than retain/release. And the autorelease pool? That's just wrong.

* Typically speaking back to two files per class.

* Doesn't have any functional elements to it whatsoever. Any manipulation of collections = instant development velocity kill.

* Typically have to deal with two different kind of strings (NS versus C).

So for now, yep, I still hate ObjectiveC.
Compared to other C-supersets, it's not the worst thing ever, but yeah I totally agree with you that Obj-C is painful compared to many newer languages. So glad that MacRuby is pretty much usable now.

I just wish I could use it for iPhone development. :)
SoCal Edison Gets Smart, Installs One Millionth Smart Meter
Tried it with junk e-mail then realized you send an e-mail validation. Why? So annoying.

If a website asks for an email address and then doesn't validate it, people could be using anyone else's email address.
You're probably right that this isn't localized to S.F. I have to imagine a capitol of the publishing world like NYC has more literary heft but even there I've heard that life tends toward the superficial.

S.F. is a great city to just hang out in. Amazing food, great weather, and a generally laid back attitude make it very pleasant in many ways. I think the .com boom did a lot of damage to the city's culture by driving out everybody that couldn't afford to keep up with the rent increases. I spent a summer here in '92 and it seemed a lot more alive.
> Can you even legally hire a 15? (no matter if he is still in school, we all know how valuable hs is).

It's possible to hire child actors, so why is hiring child programmers unreasonable?

Yes, there are restrictions on the number of hours that they can work and so on, but ....
>Using a language like obj-c where you have to do memory management manually just seems so archaic after using modern languages.

That's not an Objective C thing, the language has garbage collection, just it isn't enabled for the mobile platform, for the reason it eats power and memory.
Out of C, C++ and Objective-C, I'll take objective C any day.
The Copyleft movement recognizes that some people want to release their works for free, and created multiple channels to do so, all based on a solid legal framework. And these channels provide a spectrum of how much you want to allow.

I think deep down the ASCAP just cannot stomach why anyone would release their work for free.
Though the terms do fall short of what most people expect of "dual-licensed" software, I don't think they're that bad. Essentially, instead of offering GPL-only, you now have the option of a license that is similar in terms to the LGPL. Your application code can remain proprietary while using x264.
I don't understood why people think automatic deallocation = garbage collection = slow language. You can have reference counting without garbage collection. It's pretty obvious to a compiler when a variable has gone out of scope and can be dereferenced (and deallocated immediately at 0).

`[object performSelector:sel];` // where `sel` may be - retain

How should the compiler optimize that?

Plus there is strange property duplication syntax

You don't have to bother with that anymore. The only reason you ever did with iPhone dev is because the iPhone Simulator didn't support the modern runtime. If you only tested on the device, you never had to bother with it.

As of LLVM 1.5 (in Xcode 3.2.3) or 2.0 (in 4.0) on 10.6, the compiler can fake enough for runtime support (and only requires @property declarations - no more ivar or @synthesizers): http://www.mcubedsw.com/blog/index.php/site/comments/new_obj...

named parameters

Objective-C doesn't have named parameters. It intertwines the method names with the arguments that it takes.

Instead of `void doStuff(foo, bar, baz);`, its `- (void) doStuffFoo:(id) foo bar:(id) bar baz:(id) baz;` (which can also be written (and compiled) as: `- (void) :foo:bar:baz;` if you wanted).
I think this comment oversimplifies the situation at both a tactical and a strategic level.

Tactically, even code that simply glues libraries together is still maintaining state, and there's clearly a benefit to being able to efficiently manage bit-level control over how that state is laid out and looked up. Lack of bookkeeping and overhead, cache-cognizant data structures, and simple compactness of representation all add up. Not to mention the fact that the top of the profile for lots of programs is malloc(), and C programs can swap out allocators --- I've gotten 500% (five hundred percent) speedups from retrofitting arena allocators into other people's code.

Strategically, well, there's a term for the strategy you're advocating, and it's called "Sufficiently Smart Compiler", and it's a punchline for a reason.
talent is always a competitive advantage.
Thanks for the explanation - very cool!
There's an important thing to realize about FU money: it does not make telling people to fuck off cost-free. Telling someone to fuck off is an indulgence, and it is not free of cost no matter how much money you have. Having FU money simply means you can afford this indulgence. But one of the many problems that comes from having this kind of money is that now you have to make this choice. When you can't afford something, it's a no-brainer. When you can afford it, you actually have to think about it and take responsibility for the result of your decision.
These terms are ranked by # of results, not search frequency! Nothing can be gleamed except the total popularity of the individual words and phrases as they are published on the web.

http://www.google.com/search?q=how+can+i+be+on+made
About 25,280,000,000 results

http://www.google.com/search?q=how+can+i+make+a+site
About 2,210,000,000 results

Both match up with the suggest data.

The words at the top of the list are generic: (will, free, help, made, etc.)

As you go down the list, the words become less generic: (dream, market, people, speed, password, etc.)

You would be better off looking at Google AdWords data or http://google.com/trends
I think they filter results that aren't themselves hate speech but that have hate speech pointing at them or contained within the SERP. I could see anti-gay sites that are considered hate speech having content about "Is my son gay" and that contaminating the suggestion results.
I wonder if there are any startups out there who hire folks with "kernel developer" mentality/experience. I love dynamism and excitement of startup life but unfortunately it often comes with Ruby/JavaScript, which is fine but I prefer lower-level hacking: hardware interrupts, malloc-free environment, etc. I do believe startups who need such skills exist, they just seem to be quieter for some reason. :-(
Let's settle this: the rumors spread by one fame-seeking blogger are just rumors. That's it.

Fermilab Twitter: http://twitter.com/FermilabToday/status/18396561721
That's because ruby and objective-C are both inspired by smalltalk.
Why does it deserve our (my) love again? I am missing the pro-love arguments in that article.
Apple drops Consumer Reports/iPhone 4 discussion threads
Nuclear fuel isn't just uranium. With enough neutrons you can fission just about anything on down to lead.

However, the most promising fuel is thorium. When Thorium-232 gets 1 more neutron it decays in 30 days to Uranium-233, the perfect nuclear fuel which almost burns completely and leaves minimal waste. A molten salt reactor with thorium as fuel was proven 50 years ago. For more info see this wired article: http://www.wired.com/magazine/2009/12/ff_new_nukes/ and this site: http://energyfromthorium.com/

Oh btw, there are literal beaches of Thorium in India. And it's a byproduct of most mining processes. The U.S. has about 3000 tons stockpiled doing nothing. 1 ton of thorium roughly equals 1 GW of power for a year.
Not sure you're following: C programs can be optimized to take advantage of caching (or to use a low-overhead allocator, or to use more or less compact representations) in ways high-level languages either retard or disallow altogether. And all software benefits from caching.

I think your real observation is that C level performance just isn't that relevant in scale-horizontal network-bound programs, and I agree with you.
Actually PHP arrays are ordered dictionaries. Python got standard implementation of this kind of collection type just recently.

This 'Frankensteinian mix' is the most versatile collection type I have seen so far and I attribute large part of PHP success to having this as first choice when in need to keep collection of elements.

You can build vector, list, stack, tree, map without even knowing what those are just confronting what abilities you require with what PHP arrays can do.
This is a stupid thread. It's addressing a problem that most HN readers would love to have, but don't, so it's simply a bunch of pleasant daydreaming, not a useful discussion of how to solve a real problem.

I understand that people on HN want to be rich; I'd rather see an HN filled with articles that help materially in getting there, not one talking about how great (or not?) it is to be rich.
Global cooling underway
Very true. Also, nuclear power is the only industry that contains all of its waste as a matter of procedure. Other western civilization waste products tend to get thrown into the environment as business as usual.
Actually even with gc enabled languages, you can create memory leaks. Hence you still need to know a little bit on how it works.

However, I fail to see why I should have to worry about it and do it manually.
I doubt that many successful bloggers would go back and add links to advertisers in their text as an after thought. They would probably lose most of their readership if they did. Perhaps your company can suggest links to other blogs instead? I'm not sure how you'd make money by doing this, but perhaps there is a way.

You're obviously terrific at what you do, and you have an open mind and good attention for detail. I think that you'll ultimately be very successful. Good luck!
Hey Matt! Good to see you. I'll be heading to Omaha as soon as I get a good reason to. No family there anymore :(
Tech Wildcatters Pitch Day - Get Your Tickets to Attend
[Infographic] Internet Engagement Report: We Have Work To Do
According to a recent study by BearHug and 80Legs, most consumer questions in online ‘feedback communities’ go unresolved. How is your company doing? Are you keeping the tide of public opinion in your favor? Check the numbers to see how you are doing against the competition.
I work at a hedge fund, and have interviewed at a number of others. Most of the places I've spoken to are run by a "grind", though they often have a "prince" to talk to the outside world. Depending on which fund managers the author spoke to, I can easily see him getting the impression that hedge funds are run by grinds.

Or, probably more precisely, that the world of hedge funds has a place for grinds, whereas the world of big banks does not.

(Admittedly, my experience is skewed since I generally targeted small quant funds, ideally without customers.)
Found poetry....
As someone who has been, on and off, writing Objective-C for the past decade, I will unequivocally state that as application programming languages go, it's a terrible 1980s jalopy of bad language decisions cobbled on top of more bad language design under which Smalltalk-descendent ideas peek through now and then.

Language research has progressed. Microsoft has invested heavily in C# and related technologies. Even Smalltalk research moved on -- strongtalk, newspeak. We have alternative, real-world usable languages running on the JVM, from Scala to Clojure.

Yet Objective-C moves forward one slow, stuttering step at a time. There are no namespaces. There are no self types (your init methods all have to return id so that they don't conflict with other init methods that have the same name). There are no private methods. Writing an initializer takes 3 lines of boilerplate, every time, plus the header declaration:

if ((self = [super init]) == nil)
return nil;

return self;

The language is obtuse, ridiculously verbose, frustrating to use, and downright paleolithic compared to modern deployed languages. It's a joke compared to everyone else's modern language research. I suffer through it full time because that's what the platform demands, but I would shoot it in the head in a second if I could.

Nuke it from orbit. It's the only way to be sure.

Anyone who thinks ObjC is a good language either hasn't actually spent significant time outside of C/C++/ObjC, or is still new to the wide, wonderful world of Mac/iPhone development.
I don't think that's fair at all. Google docs, gmail, gchat - these are all inherently about interaction and they're great.

What Google doesn't do successfully, is frame those interactions to make their own network "sticky". It's those second-order interactions ("likes", "reblogging", "fans", "mayor", etc) that Google doesn't seem to get traction with.

But that's a very different thing than enabling interaction.
As someone who is also learning Obj-C, it would be awesome if someone can provide some resources relating to

Ruby --> Obj-C
or
PHP --> Obj-C

Just for references sake. Or some "gotchas".
I'd say he more aiming to comfort than impress. The good part is that because of the homogenous paradigm there are three rules to learn about when to retain/release. You find them, read them, think about it for 10 minutes, and then get on with programming.

You could contrast it with malloc/free in the unix/C ecosystem. Get a pointer back from function X in library Y. What do you do when you are done? free? call X_Z? constraints on the order of freeing dependent objects? That is a trip to the man pages every time.
Pandora founder pursues bigger piece of radio pie
Yea, Strings in Java take up much more memory than one would expect.

Minimum String memory usage (bytes) = 8 * (int) ((((no chars) * 2) + 45) / 8)

http://www.javamex.com/tutorials/memory/string_memory_usage....

Objects in general also have significant overhead.
The Next Web uses cheap JavaScript hack to fool you into installing an extension
I like the look. The colors are rich and warm. I instantly signed up, and will do so with many of my blogs.

However, that said, it doesn't seem like something a quality longform content blog would use. It's more for an auxiliary lower ranking blog. This is not necessarily a bad thing, since there are many more of the latter than of the former.
Come to Austin Texas! When I lived there I met quite a few folks who were hacking on some cool hardware in their garages: embedded video analytics, signal processing, etc. Maybe its the "extreme proximity" to giant campuses of IBM/Motorola/Dell that favors a certain flavor of startup ecosystem, not sure...

But thing may have changed since then.
Just because it's good to be aware of how memory management works doesn't mean you should be dragged through tedious manual tasks every time you code.

Assembler was probably part of many peoples basic training as well. Do you want to spend your days juggling everything in 4 general purpose registers because it makes you feel like a better programmer? Is that the best use of your time?
Direct .deb link here:
http://ftp.us.debian.org/debian/pool/main/g/gconf/gconf2_2.2...

Once downloaded, you need to install it with the following command:

sudo dpkg -i ./gconf2_2.28.1-3_i386.deb

Then re-run:

sudo apt-get install spotify-client-qt spotify-client-gnome-support

EDIT: Only tried on Ubuntu 10.4. Works flawlessly then. Enjoy ;)
This one always tickles me

NSObject Class Reference

– performSelector:

– performSelector:withObject:

– performSelector:withObject:withObject:

why stop there, lets tack on more withObject arguments
I might be the minority, but I just don't care what Google has to say on Twitter and the whole "visit us on Facebook" thing is just lame. It used to be "visit us on MySpace" and I think it'll be something else in the near future. "Friending" my bank just isn't going to happen.

Social networking sites come and go as their popularity waxes and wanes. Your domain name will (or should) outlive them.
This is great and all, but I'm not sure how they managed to get a cell phone with GPS, a digital camera and an iPad all for under $200.
Obviously I haven't figured out all the kinks, since I only gave it 5 minutes thought, but you're right, whoever does this will have to plan for all of those occurrences. My parents have an ADT system, and it just uses the regular phone line to dial in to the monitoring center. The rub was that my parents didn't have a regular phone line, they had Time Warner Digital Phone service. So everytime there was a hiccup in the digital connection, the alarm assumed someone had cut the hardline, and it dialed in when service came back up. That resulted in a phone call to confirm everything was all right. They ended up switching back to regular phone service just for the alarm.

I think for the younger generation, alarms with phone line connections won't work anyway. Over half of my friends/coworkers don't have a landline phone. But they all have smartphones and broadband. Companies will have to find a way to have a reliable system that works with broadband.
You should have 1 task with many instances, and dynamically assign the specific task only after you have a specific user who has accepted it. This way you can use the user ID in your task-assigning logic.
Quite true that Carter put the breaks on it. However, in the early 80's this ban was actually repealed. Now the whole situation is just mired in political/regulation muck. IMHO, (I just left my job in the nuke industry) the NRC should be dissolved and replaced by an entirely new commission. They do more harm then good. INPO (the Institute of Nuclear Power Operations) does a much better job of regulating the U.S. industry.
$149 is still well below the phone call level. As a rule of thumb if it can be put on a corporate credit card without pre-approval it doesn't need a human contact to sell it.
Http://tinyurl.com/38j3bbb
Maybe not start-ups but I hear and I've seen postings at many hedge funds and their ilk for those that can do low latency algorithms. They're specifically looking for kernel level developers.
Reading the article, he discusses some places where language choice doesn't matter and some where it would (the unpredictable latency you get with Garbage collector even if average speed is the same). So it's not refreshingly undogmatic.

One thing the article doesn't mention is that Java once had a slow interpreter and now it has a potentially faster interpreter. When Java had a slow interpreter, then it would be inherently slow for a larger spectrum of problem - but still not all of them.
Is clojure planning to integrate with eclipse? That strikes me as a good way to get new users.
Very true. There's a calculation somewhere that if you actually fissioned all the fissile material within coal ash, you'd produce more energy then the burning of coal did in the first place.

Also, as you point out, nuclear waste is very easily stored and contained which is what has always been done.
Hackernews is no place for jokes!
My point was that it is possible to have deterministic deallocation without garbage collection. This can be done at compile time. So I don't buy the "eats power" excuse for needing manual memory management.
I pretty much totally agree. I released two apps in the app store (one was a rather elaborate game). I feel I experienced enough to get a feel for what the language is like, and I came away unimpressed. At the most basic level, how verbose the language is is what bugged me the most. You gotta type like crazy to get anything done in Obj-C.
" I’d even argue that the main reason kernel code tends to be efficient is not because it’s written in C but because it’s written with parallelism and reentrancy in mind, by people who understand those issues. A lot of code is faster not because it’s written in C but for the same reasons that it’s written in C. "

Brilliant.

I'd say that C programs are generally faster because C world has near-zero amount of mediocre and copy/paste programmers, so coders just know what they're doing.
My experience says that he's exactly right.

I've had to sort out a lot of performance problems. Almost always they were algorithm problems, architecture problems, or some simple bottleneck. Only once have I encountered a performance problem which was best solved by writing in a lower level language. More than that, my experience says that people who brag about how they've designed for scalability have generally made stupid design mistakes that cost them huge amounts of performance.

In fact here is a performance tip. If you want performance, make sure you have verbose logging options written in. Because when you hit performance problems, it is incredibly valuable to flip logging on, take the logs, study them, and identify your performance problems that way. Try it. For most applications that will matter a lot more than what language you write it in.
Ask HN: What Card/Board Games Are You Playing?
Dominion (with expansions) and contract bridge seem to be my mainstays lately (with some Catan thrown in). Wondering what non-computerized board & card games others are enjoying these days.
Hacking the Electric Grid? You and What Army?
One trick is to return an (object)array('a' => 1, 'b' => 2) and then you can do $func($x)->a.
How do you create such a function though? stringWithFormat is built in.
There are a few EE's lurking around here, myself included. Can you elaborate on what you are trying to build?
One very real reason is that it has a horrible name. If someone brought this up in a project planning meeting, most of the initial questions would revolve around how to spell it and what it meant, rather than what it does.

Project and product naming is very important, and one reason why something called "The GIMP" will never replace something called "Photoshop" in corporate environments even if they were the exact same program.

The reason no one talks about Qooxdoo is because no one knows how to pronounce it.