Hacker Newsnew | past | comments | ask | show | jobs | submit | b-johansson's commentslogin

Sounds really interesting. Do you have any links to the resources you found?


I highly recommend the book Competitive Programming 3 by Steven and Felix Halim (https://sites.google.com/site/stevenhalim/). I prefer the larger print version as it's much easier to read and have laying on your desk. It has tonnes of references to problems on the UVa Online Judge (another popular judge site) at the end of each chapter so you can work on problems relating to the covered theory.

My first serious introduction to algorithms was through Tim Roughgarden's 'Algorithms: Design and Analysis' course on Coursera. It's a nice formal introduction and really focuses on and builds an intuition for how to think about problem solving like a computer scientist. I'd also recommend Steven Skienna's Algorithm Design Manual as it's written in a similar style.

As mentioned earlier, the TopCoder Online Judge is a great tool to practice problems as well. I could never find a tutorial which covered how to effectively use TopCoder as a practice tool so I wrote one for my programming club: http://acx0.com/cpc/topcoder.html (note: the rest of my site is a complete mess right now)

Of course, there's tonnes of other resources out there but these would be my top recommendations so far.


Function try blocks are also extra tricky because at the end of the catch block the exception is automatically rethrown. http://www.drdobbs.com/sutters-mill-constructor-failures-or-... has a lot of details on function try blocks.


If you are actually manipulating strings rather than just storing and pushing them around I would suggest looking at ICU. Handling Unicode is difficult and it's easy to confuse encodings, code points and glyphs or make assumptions based on your own culture and language.

ICU has support for a lot of the basic operations you would want to perform on strings as well as conversion to whatever format is suitable for your platform and environment.


At the time many were wondering why the Amiga just didn't seem to catch on. The most common speculation was that it was marketed and perceived as a gaming machine. For some reason this was mutually exclusive with being a serious business machine.

It's really fascinating how far hardware acceleration was able to take that machine. It took a long time before I felt that a PC was even close in responsiveness to my Amiga. Though to be honest at the end it was equipped with a MC68060 which was no slouch. Using a metal cutter and some force it was also possible to squeeze a 3.5" hard drive in an A1200. But eventually the controller hardware broke down and would fry any hard drive connected to it. This was in 1998 so by that time it was pretty difficult to get spare parts if I remember correctly and to be honest the Pentium II I had at the time was a lot faster. So the Amiga went back into its box where it still lives today.

Some of my best programming memories are from assembly coding on that machine. It taught me so much and I doubt I would be here on Hacker News today if not for its creation.


A couple of years ago, I was doing the nostalgia thing with a friend. I used to have an Amiga 500, and I recounted about another friend who had the Acorn Archimedes, and who was constantly espousing how awesome the machine was (and it had a great 3D tank game I can't recall...). Amiga died an unhappy death, but "Whatever happened to Acorn?" I mused, wondering if they'd gone the same way.

"What do you know about ARM... ?"


Not sure if it's a serious question, but the Acorn people went on to found ARM...


Damn, didn't see the last line -- news:yc badly needs an update...


The Amiga did catch on everywhere but the US, pretty much. 5 million or so sold was an amazing feat at the time.

But in the US, Commodore had badly burned their dealer network in the C64 days, and they always did better outside the US and so focused their supply to Europe when they had problems meeting demand.

Unfortunately, staying in that market when it was relegated to high end niche (TV studios etc.) in the US, and largely low end in much of Europe, was a long shot. And then Commodore pursued a massively destructive campaign of hiring and firing managers in the US (which, to be fair, they had a tradition of since early in the Tramiel era) to try to find someone who could build up the US market.

But they ruined their chances further by drastically under-investing in R&D, and continuously second-guessing their engineering teams, who were likely to an extent hurt by their proximity to the toxic US part of the company.

Commodore was an odd beast in that the international subsidiaries were always mostly independent - they ordered the stock they wanted from the parent company, but decided what they wanted to sell and how. Germany also got to design some products (and there were manufacturing there). Yet most of the product development were managed strictly out of the US where their product wasn't selling well.

The A4000 was a pretty good demonstration of the consequence of the US management feuds coupled with putting engineering on the chopping block regularly: It was late; it was slow; it was expensive; it was ugly; it had IDE (the Amiga world was pretty much entirely SCSI, as IDE was CPU intensive in comparison, which was not what you wanted in a system that was already lagging in terms of raw CPU performance; this is what you got by putting managers used to PCs in charge of making decisions about Amiga projects - they saw SCSI and saw "expense" rather than one of the things that was vital to making an Amiga perform well at the time)

Before that, Dave Haynie had his "A3000+" pretty much done: Sam CPUs as the A4000; better memory bus; SCSI; space for an on-board DSP; AGA like the A4000. And fit in an A3000 case, which was actually pretty.

This was par for the course for Commodore, unfortunately. I'd like to say it was a great company, but frankly, while Tramiel did a few strokes of genius in his day, most of Commodore's history is a history of being given fantastic opportunities - often through brilliant acquisitions - and scuppering them with a gusto that would make some think it was intentional (there was/is a long lived rumour that towards the end Irving Gould and Mehdi Ali were intentionally causing share price volatility to profit of it, rather than actually trying to grow the company).


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: