skysight-inc/HackerNews huggingface dataset:
> Of course, if you're using C++ each days of your life, you become quite good at it. You know the downside, you learn to use external libraries, etc. However, it's when you actually switch to another language that you can look behind realize all the time and effort you lost.

I work on a real-time visualization application for microscopes. Main requirements:

1) Performance (DSP and image processing involved)

2) Decent GUI

3) Must be maintainable by students in engineering physics

What I am supposed to use that's easier, simpler, faster and safer than C++/Qt for this? Even dropping the "maintainable" thing, I don't see any language that would let me code faster. And my app doesn't have very unusual requirements...
Sorry, I can't point to any code, but in both cases the approach is the same: you have some shared data structures, like an array of regions containing points, or a red-black tree, or a priority queue, and several threads all read and write these data structures. Since transactional memory lets you run concurrently unless there are actual memory conflicts, this often gives better concurrency than locks.

Of course, for examples like these, the tricky part is designing data structures that don't have many inherent memory conflicts. Red-black trees, for example, are tricky because the rebalancing transformations tend to step on other threads' toes.
I presume you're referring to your EJSRB project:

http://github.com/aaronblohowiak/ejsrb/

I think that the usual way to share views between different languages is to use a language-agnostic templating engine, like Mustache, or Liquid.

How does EJSRB differ?
Why Deals and Sales are Like Deadliest Catch
If your one hand is already on the mouse, a quick way to switch between buffers in is to click Ctrl+<Left MB> on a window. A pop-up will appear that lets you select a buffers.

Other key + mouse tricks:

Shift+<Left MB> : quickly change font size or change font.

Ctrl+<Right MB> : access emacs menu
This right here is why CoffeeScript is so awesome. Jeremy is awesome, and continues to make it so.
Sorry, you are correct, they will be samples of Facebook pages made by the service. Sorry that it is unclear, I just felt it important to get feedback. Everything works though, the admin is functional and you can use the demo account provided on the sign up page.
Absolutely! By learning to deal with pointer manipulation and memory allocation, you can learn what it is, why it is necessary and how to recognize when it is broken. One of the problems with garbage collection is that it suffers from a memory management problem at a higher level of abstraction. There was an entry in an autonomous vehicle competition a few years ago that stalled. Physical objects in the environment were represented internally as objects in the code. When the vehicle passed them, they were moved to a collection of objects that had already been identified but were out of the field of view. That collection grew unbounded even with garbage collection because every one of those objects was still referenced.
Good post. Not sure C qualifies as "pure imperative" - it has expressions and functions after all. I'd think a true pure imperative language would have to be either assembly without macros or something like Forth (where IIRC each "word" is a self-contained command that performs an action on the stack etc.)
China's Extensive Nuclear Missile Deployment Area
If this really is your 93th attempt, I must commend you on your persistence, yet at the same time urge you to learn a little about lean startupping. It might save you another 100 failed attempts ;-)
Job Listings at Hacker Monthly
TV vs. Online Video - It's the Same Thing
I'll add to that. Billing and collecting from clients.
Does Steve Jobs really love his customers?
Cucumber - Making BDD fun
No, but it saves you having to emit machine code that does type checking and dispatch at run-time. You need type information if you want inner-loop performance that is competitive with languages (like C) that are designed for efficient compilation.

The generated code for something like "a = b + c" is very, very different if you know at compile-time whether b and c are strings or numbers or something else. Modern JavaScript VMs go to a lot of effort to guess or infer type information before JIT compilation.
There are already several software-as-a-service products that do psd -> HTML/CSS (for example http://www.basekit.com/). I imagine it would be hard to build from scratch a competitor to Photoshop that would have enough functionality to be competitive.
Haha, I would have thought 93 was an outrageously big enough number so as to be an obvious exaggeration.

What I mean is that I am an aspiring web developer that happened to come from a non-related previous background. I chose not to go to college and after deciding to be a web developer, I just taught myself by building and building and building and building. I learned how to program horribly in PHP, and then I found Kohana and jquery which helped me code decently, and about 2 months ago I committed to learning Rails, built 3 Rails apps (including this one) and now I'd like to believe I'm pretty good!

Don't feel bad for me, because I love it!
Thanks
True, but it generally takes quite a bit of time to get to the point where you're "money profitable" with C compared to higher-level languages that are in popular use.
Use versions like /v1/ .

If there's no version...
* If there request is plain html then deliver a human readable documentation page (that still has hyperlinks for discoverability.
* If the request is asking for whatever your application type is, redirect to the current stable version.

If there's an older version requested:
* If it's no big whup, keep the old version usable. Sometimes I do this by just keeping the old version of the resource code around, sometimes by updating it to translate between the old version and the latest stable version.
* If you want to kill an old version, think about what appropriate in terms of 300 Multiple Choices, 301 Moved Permanently, or 410 Gone relative to your users.
There is no wasted knowledge, C is a primitive language, but could teach you things that many other languages cannot.

Consider proper memory management, et al. There are other languages that implement similar features that C does, but ANSI C is a macro-assembler in the truest sense of the word.

Pick up a copy of "The C Programming Language, by Kernighan and Ritchie" and do the exercises.

Good luck.
I asked this question for two reasons:

1) I had already started learning C. It is low-level, and I was getting disinterested. I wanted to know if it'd really be worth the work to learn it. (The answer is absolutely.)

2) So that other people, when wondering if they should learn C, would have a great list of hacker recommendations. (That has happened.)
Once I notice a rather bad habit (such as using left shift for : - uncomfortable on a dvorak kinesis), I simply bound the combination to an exclamation mark so I'd notice every time I did it.

That's a really good idea! I might bind some bad-habit key combos to system beep because I hate the system beep.
It is used a lot for embedded systems programming.
It's not high enough, change it to 930th and it would be an obvious exaggeration.
<conspiracy theory>

Just wondering - what if this new facebook movie is really just a marketing ploy by facebook, designed to LOOK like it's attacking Zuckerberg, yet not REALLY attacking him ??

It would make perfect Machiavellian sense to do this, since it's now being advertised as an attack on Zuckerberg pre-release ... this could be just a distraction tactic from his real crimes such as, oh I don't know... that of selling every piece of you that he possibly can to advertising and slowly chipping away at your privacy bit by bit...

</conspiracy theory>

that, by the way, is a conspiracy theory, not necessarily something I believe, just something I believe is possible ...
My principle of organization: Only see the objects you need to complete a task. Keep it simple. If a tool is irritating or slows you down, don't use it.

Workflow: There are only two things you need to know. First, know the 'critical section' of your work process, and learn to NEVER TOUCH THE MOUSE. It's OK for web browsing, but you want to minimize context switches in your inner loops. Second, learn the GNU toolset, like find, grep, cut, od, and the rest. You'll find them arcane, but when someone asks you to change the group on all of the files you own on the remote server, you'll spend 3 minutes instead of 3 days :)

Workspace: Maximize Emacs, split the screen into quarters. I prefer gnome-terminal or Cygwin to Emacs' built-in shell support, since alt+tab is easier than `C-x b buffer-name`. When in Visual Studio on Windows, I keep open the project view and the error console while programming.

Physical desk: The space in front of my monitors is work-related (or edible). As items become unused, they get pushed out to the sides. Once a week, I throw stuff out or shove it in a drawer for long-term storage

Computer desktop: Bare essentials. Files get downloaded to the desktop and moved accordingly. There's never more than a few things in my face. On Linux, I use Gnome + multiple desktops to sharpen my focus to just the windows I need. Browser on Desktop 1. Emacs + terminals in Desktop 2. Chat programs in Desktop 4.
How would using floating point avoid the conversion from linear to exponential range? You will still have to convert between brightness and voltage. And you would like to do gamma conversion in floating point anyway.

For the second point, programmers are familiar with base-2. For decimal values, both end-users and programmers confuse 127/128 vs. 255/256 for being half the latter. Besides, end-users often see [0.0, 1.0] floating point range for color values already in graphics user interfaces, and would expect 0.5 to give half the intensity that does 1.0.
ClearCloud, an anti-malware DNS
Not exactly the same service, but worth a look : http://tigerlilyapps.com/
I'm not sure about aiming for "pure" languages. Lisp is functional enough that one can learn pure functional programming using it, if he tries. And Ruby is OO enough that one isn't missing much, isn't it?

Nothing wrong with the pure languages as options, just I think impure languages can fit the categories too.
You know, I think there is a lot of value in what you are saying. I mean literally what you are saying... "93 is believable". And you know what, you are right! I think that's a great startup lesson... 93 is believable!

I like that! I will take your advice.
IntelliJ IDEA rocks! I have used all three IDEs being discussed here and I would vouch for IDEA any day.

As already mentioned, besides other things, IDEA's refactoring is super solid. The ease with which one can perform such functions using IDEA actually supports their tagline - "... develop with pleasure!"

It's SVN integration is also good.
I'd say it's time to switch. ;-)
It's just a disconnect in cultures - when an old school businessperson uses the term "human resources", they don't actually mean it in a negative, malicious, or callous way. The term partially started out that way during war planning - "our natural resources and our human resources to fight the war" - but it evolved to get a positive meaning to it in the 50's and 60's. Positive psychologists would talk about how "natural resources are wasted by using them up, but human resources are wasted by not using them", and it became a pleasant term.

Think about it - almost all personnel departments are called HR for a reason; it used to have very positive connotations. The term kind of devolved as the modern corporate culture grew, and it's kind of an anachronism that a young businessman is more careful of using. I'd guess the term will completely leave usage in the next 20-40 years.

Its usage when it grew in popularity was generally understood to be a positive thing - something similar to what happened to the word "welfare", which used to have overwhelmingly positive connotations as "the welfare of the people." Now welfare is out, social safety net is in. Likewise, human resources is gradually being replaced; actually, the main reason it's hanging around is probably because there isn't a really clear alternative term for "all organizationally-yet-not-operationally-focused personnel decisions."
I think in the end cheap hardware will still win for a long time. Today's embedded CPUs aren't much more powerful than what was used in the 80's. Floating-point would be a lot of extra logic.
I think you should learn C only if you will be able to learn enough of it to be very comfortable with it when you get to college. If you learn that much, you can place out of the courses where you learn C. However, if you learn only part of C and still have to take the course, you will have to suffer through many lessons teaching you what you already know. I say this from experience – I learned Java in high school and was taught C++ in college (just finished my freshman year), and about half the lessons were about stuff I already know, like the difference between a value and a reference/pointer to that value, and what an object is, and how while loops work, and other exceedingly boring stuff like that. So if you can’t learn C quickly enough to place out, save yourself the trouble and just learn it in the university courses, so that the courses will be interesting, because they are teaching you something new.
it was on the cover of today's travel section, i initially posted it with airbnb in the title.

there's an interesting paragraph towards the end about the legal issues

When I contacted AirBnB about its stance on the questionable legality of listings in some cities, a spokesman declined to comment.

i'm also curious if they've had any safety issues (thefts, stalkers, etc).
That is an amazing story. It should remind us all of how ridiculous society can be, especially when it comes to denying advancement to a truly talented person simply because of their race. Thank you for submitting this to HN.
Two things cost a lot. Salary and rent.

Work from home. If you work with a team use Talker and Teambox.

Don't pay yourself as much as you normally would until you reach profitability. If you work from home this shouldn't be a problem. You may end up saving lots of money this way.
If you ever make it to the Chicago area, I've heard very good things about the pizza at

http://www.rosesbakery.com/

I haven't had it, but the recommendations come from people I trust. It's quite expensive, though. And, as far as I know, they won't share their recipes.

I have had some of Rose's bread, and while also absurdly expensive, it's come the closest of the things I've tried to tasting like "real" bread. (Their cookies are pretty good, too.)

My impression is that if you want good pizza or bread, your best bet is to make if from scratch, following recipes such as those in "The Gluten Free Gourmet", "The Gluten Free Gourmet Bakes" (or a similar title; my copy's currently loaned out), and the like. And the gluten free doughs tend to be best when freshly baked; they may not hold up as well over time.

As for me, that's all too much effort, right now. So while I have the books, I've just ended up eating rice and other things that are more convenient for me. (So, I hear things, but my first hand experience is limited.)
Is the Difference Between MySpace and Facebook Black and White?
Doesn't that happen anyway, no matter which way we're doing it?

Currently, if 180 out of 256 is half then we have considerably fewer values representing the highest intensities than the darkest intensities. So, in effect we currently "waste" values by allocating lots of them for darker values that mostly seem all the same on the screen. If we could program on the linear scale, it would depend on the hardware that how accurately the linear scale would be mapped to the voltages that would give linear intensity levels in reality.

You can add bits per channel if you want more precision, that's what we do already.
Maybe they did. It's not like you'd know.
The competitive environment for online news, part II
The fact that you are forced to use C++ for all the reasons you said doesn't make it a better language. Again, to continue my comparison with legs:

If you lose one of your shoes and need to walk in the street, you might be better to jump with only one leg.. it doesn't make it better than 2 legs.

In the same way, if you needed raw performance, need to control your memory, etc. C++ might be the only way to go.

However, for your particular problem, I don't know if it's possible, but a mix of Python for GUI and C for the raw algorithm could have been easier.

And, for students in engineering physics, Python is way simpler than C++. From my experience, I helped students in other concentration than computer at university, and they had all kind of: #include <iostream.h>, lots of global variable named with only one letter, etc.. in their code.

But don't get me wrong, C++ has its use and I keep using it again and again for various project. I know however that when I can use other language such as python, I'm way more effective and the final code is really prettier and simpler.

Sadly, as in everything in life, nothing is black or white.. if C++ fits you well for a project, uses it. It's nobody's business anyway. I think it's important however to know that if you only use and know C++, you miss something.
Thanks, that is helpful as I didn't find that one during my research.

I know of http://northsocial.com/ which is nicely done.

Also this writeup on http://pagemodo.com @ http://techcrunch.com/2010/07/04/facebook-tab-creator-pagemo... lists some services in the comments.

The services I've seen focus on freemium and "ease of use" relative to non-developers/designers. Specifically pagemodo is a template generator.

I'm positioning aplanofattack as a service for designers/developers to use on behalf of their clients as a means to add to their product offering.

Pretty much exactly what http://campaignmonitor.com is for email newsletters. It gives freelancers and extra product to offer, without the infrastructure headache.

Thanks for your help.
Use thepiratebay. But you probably already do. Set deadlines! People don't work well without deadlines.
I wonder if this means that safari does not use core image for this.
While I agree that salary is a huge expense, rent is usually a small fraction of the salaries being paid.

In my experience, teams who work from home for an extended period of time can start to lose focus and productivity. This means it takes longer to build your product, and you end up paying a lot more in salary.

By having an office (usually only a few hundred, to a few thousand dollars a month in expense), you are able to save a lot in salary (tens or hundreds of thousands of dollars a month), because your team will be more focused and productive.
Obviously you take integer gamma-compressed values, convert to floats, and then un-gamma-compress those, doing intermediate math on the linearized floats, and then gamma compressing and converting back to integers when you need to save out a file of some sort.

For showing the amount in each component to users, it's possible to use either linear or gamma-compressed values, depending on the goal, but either way showing a decimal makes it a lot easier to understand than showing a fraction of 255.
A good book that goes over both C and assembly is "Hacking: The Art of Exploitation". The first 100 pages alone will give you a solid understanding of what is happening behind the code.
If you want to save money just...don't spend it. Adding some things that are not already here.

* You do not need to go to a Starbucks for every meeting.

* Until you reach profitability your time is not worth much. Apps that save you time are not worth paying for unless you spend that time pursuing profit.

* You do not need an office. Work from home. Work from a co-working space if you must.

* You probably do not need new technology. I still do everything from a 2 year old Dell (big mistake) that is falling apart. Likewise, unless you develop iPhone apps you do not need an iphone 4.

* If you are working from home you don't even need a smartphone. Prepaid is way cheaper. Way cheaper.
Yes, it definitely. A good way to build your fundamental knowledge of computer science.
True. There is a point where offices become useful. Early early stage offices ARE a huge expense and should perhaps be avoided.
What's easier than rsync?
Maybe the 1st panel should be the last.
rsync is a command line tool and you need to enter the username and password everytime.
As far as just HTML/CSS/PHP/JQuery goes, I would love a tool/setup that automatically creates a staging area on my server (literally duplicates code) so that I can test things live in my production environment before live to the public. Then, when I'm happy, I'd like it to be one-command simple to make my new setup go live. I'd also like to edit live on the server.

I know there's some tools to do this already but I'm talking about all in one package and easy. It may not be for every programming language, but when I've got simple HTML/CSS or Wordpress (a good deal of small business work), I want it easy.
I created a bookmarking service you can love.
const does not so much catch bugs as it prevents them. It is a way to specify a contract. If your code is const-correct, the next programmer using or maintaining your code can read a function or method signature and know immediately which parameters will not change, or whether the object will be modified. Effective C++ explains this very well, and I fell in love with const after reading its second edition almost 10 years ago.
Core Data and Enterprise iPhone Applications – Protecting Your Data
Google thinks your mouse pointer position might affect search relevance
Thank goodness we live in the now. Imagine all you want to do is study mathematics, and people are constantly pushing you here and there because of the color of your skin.

Equality really is a great thing.
That would be const type pointer. (HN apparently won't let me type more than one asterisk in the message without turning everything between them to italics.) const type pointer const is a const pointer to a const object, i.e. the pointer itself can't be mutated to point to a different object.

I've never found a need for it. I usually don't care if the pointer itself is modified, particularly since such modifications are usually local and obvious.
I've read this on HN before, but while we're on the topic
(hopefully there'll be a few smart graphics people here), I noticed that the thumbnails my app generates via PIL have subtly different colors than the original. I'm not doing anything other than resampling. Anyone know why this occurs?
I love the spirit . What you become while reaching a goal is more important than where you reach in the end.
Ah, that's it. I was with a group of ten HN participants on the inside.
At my university we have a course that goes over all the levels of abstraction between the hardware and systems-level UNIX programming. I never took the class, but I followed the course book on my own and it proved to be one of the most enlightening self-learning experiences I've had with programming. The book is Computer Systems: A Programmer's Perspective, and I highly recommend it.

I've found that even though I now spend most of my time programming in higher level languages, my understanding of C and assembly, compilers and debuggers, the virtual memory model and system memory hierarchy, and CPU architecture are still very valuable in helping me reason about my code and how it interacts with the rest of the system. I also still have developers at work on the C development team occasionally come ask me code questions, and often the answers to their questions come down to understanding one of the above better. If you can master multiple levels of abstraction you will be a much more effective developer.