This article is part of a series; glad to see they were aware of the two sports that use roadbooks today:
http://www.core77.com/blog/object_culture/roadbooks_part_3_r...
http://www.core77.com/blog/graphic_design/roadbooks_part_2_p...
HN user
This article is part of a series; glad to see they were aware of the two sports that use roadbooks today:
http://www.core77.com/blog/object_culture/roadbooks_part_3_r...
http://www.core77.com/blog/graphic_design/roadbooks_part_2_p...
The article might tout the idea of cyberweapons slightly too much, but I think Stuxnet indeed qualifies as one.
I'm somewhat worried about these things. The problem I see is that we are becoming even more and more leveraged/dependent on technology. And these technologies are increasingly interdependent. A successful attack on one technology can potentially bring down entire systems down in unanticipated ways.
The recent power outage in San Diego and nearby areas serves as a good reminder. You don't actively think about power, it is something you take for granted. Only when the power is lost, then you realize how dependent everything is on it; traffic lights stopped, ATMs didn't work, credit and debit cards didn't work, freezers and fridges stopped, and so forth. From modern times to the dark ages in an eye-blink, instant paralysis.
I don't think nuclear power plants as targets are that interesting. Just turning off traffic light system would be enough to bring down and entire US urban area down to its knees.
New networks of complex dependencies are being created all the time. The smartphone boom is going to create one, and people will start relying on the existence of it. If iPhone and Android keep dominating the market it will create more homogenous mass of devices, providing a more consistent attack surface and more potential for widespread damage. I don't see how smartphones could avoid the same problems PCs were/are experiencing. Waiting for the first smartphone "UNIX worm".
Wireless features are getting added to cars. Yet another potential complex network. War-driving could soon get completely new meanings.
150 years is still far from 969 years ;-)
It would be an interesting situation for Nokia. First they announce that the company will be bet on Windows Phone, Symbian gets axed, and MeeGo will be put to the background. Many MeeGo developers saw the writing on the wall and abandoned the ship. Hiring them back would be difficult...
Firstly, I didn't suggest Mexico was part of South America. Secondly, I'm not trying to shoehorn South America under a single mental schema. I'm actually trying to do the opposite, i.e. figure out what South America really is. Doesn't seem I can do that based on news, articles, whatever, and rather have to tour the place myself to come to a conclusion.
Thanks :-) Comparison to London makes me feel better about Buenos Aires. Puts thing into a context. I actually used to live in North London, in a semi-rough area. Even though London was an expensive mess and certain areas gave the feeling of insecurity, I still liked it...at least it was an interesting mess.
Could you describe your experiences a bit more? Buenos Aires seems to be one of the more interesting places in South America. Based on the typical news about South America (or Mexico), just landing on that continent will get you kidnapped, abused by the police, robbed, mugged, cheated, etc.
It can be done in SW and it removes the need to implement it in hardware. Most probably nothing is preserved over a stand-by in a CPU, and when a CPU comes back online, it needs to be set up from scratch.
Quite a bit of stuff is done in assembly:
- Low level processor set up: MMU, TLB, caching etc.
- Early stage boot code.
- Using instructions that are not normally accessible in C. For example, SIMD instructions, count leading zeroes, some bitwise operations.
- Interrupt handlers, interrupt masking.
- Entry and exit to low power modes.
- Entry and exit to hypervisor and other such virtualized modes.
- Sequences to turn on/off MMU.
- System calls.
- Locks for mutual exclusion, critical sections.
- Instruction level optimization in some algorithms.
- Anything that requires stack control or setup (packing arguments, green threads, etc).
- Machine code generation in compilers.
Some people prefer inline assembly and a lot can be achieved by C macros and inline assembly. Personally I prefer naked assembly functions in .s file, it is more readable and requires less tricks.
I rarely see assembly being used for performance. Most of the time the use of assembly is limited only to hardware level interaction that is normally not possible with C.
Even though writing assembly is not that common, the need to read is:
- Debugging on-target code with hardware debugger without having symbols and source available.
- Low level crash dumps (CPU context).
- Staring at disassembly in general.
That future might be happening already. Both AMD and Intel have products that pair CPU with GPU, ARM has Mali, NVidia's Tegra has on-chip GPU.
I think discrete GPUs will become niche products in the future. Once mainstream GPUs are on-chip, the variety of different GPU architectures will probably be reduced. The next step might be a standard ISA for GPU.
It is hard to say where GPUs will be in three years, but at least the industry is getting interesting again. It has been more of the same for so many years in discrete GPUs, but now the on-chip GPUs are potentially game changing.
It seems you are in a situation where I was a long time ago. I also was frustrated, because the CEO had the same attitude, the start-up never started making money, low pay, no savings.
I was thinking about quitting for a long time, but didn't do so. I felt loyalty, I was green, I was the developer guy, I didn't really know how businesses are created, yadda, yadda. At the same time I felt that things were not right, we were not going to the right direction.
After some years I decided to quit. Being broke was the last straw. I was also becoming toxic, a hostage, I had to quit to save myself and the start-up.
It was a bit hard to find a corporate job, because I didn't develop any good connections to the industry during my start-up time. Eventually I landed a job in a big company. It wasn't the best of jobs, but got me started in my current career. After two years I got a call from a manager that quit from that company. That's how I got my next corporate job. Then after three years, the same manager called me again and I got my current corporate job. And now I called that manager and some other ex-colleagues to offer job opportunities. You get the picture.
In hindsight quitting was the best decision I ever made. Two years after I left the start-up lost funding and went bust. Steady income improved my life significantly, I paid off debts, started saving, travelled, had real vacations. Almost all the stress and pain in my life was gone.
The only thing I regret is that I didn't quit earlier. I didn't believe in the start-up, but I kept hanging around, I was wasting my time. Since this experience I have made the decision to trust my gut feelings. If I feel something is wrong, I'll trust myself. So far this has served me well. I keep large savings. The idea is that if I ever need to make a jump to the void, then I'm able to do it.
My advice based on my own experiences:
- If you are finished, get out, because you are wasting your time and potentially other people's time.
- To maximize your chances to get a job in a big company look for a good match. When I quit I applied to all sorts of interesting jobs, but never got a reply. I did graphics programming, and unsurprisingly I was eventually hired by a company that desperately needed a graphics programmer.
I was just pointing out a trend. It seems that more and more companies are trying to appeal to the start-up types. I'm not too optimistic that these big-corp-in-start-up-mode ideas will work, most people are not up to the task. I view this kind of mode as an exception not the norm.
Personally I don't mind working hard. In my case the work has been interesting enough and I'm viewing the long hours as an investment to acquire certain technology experience. At the same time I do feel an increasing urge to go and start working for real start-ups again.
Notice the following "AMD says it maintains a start-up mentality even though it's a large company".
This is becoming a trend now, hardly the only company touting this. My current company is doing the same. My old company approached me recently and told me are going to start working in start-up mode in California, and this is an old and rigid company.
I'm holding Paul Graham, Joel Spolsky and others accountable for this. They have glamourized start-ups so much that these big and established companies have started feeling bad about themselves. Or maybe they have finally realized that big organizations and rigid processes don't work very well.
There are probably upsides to this. But the downsides are killing me. Obviously for large company working in start-up mode means that engineers work even harder, are more accountable and have to deliver to even more ridiculous schedules. And the result is even more chaos and avoidance of work and responsibility, more panic in QA, and so forth.
Personally I don't like this trend. If I want to work start-up hard, I will join a start-up and potentially become rich in the process. Working in start-up mode in a big company has so far meant that I work through weekends and don't get paid for that.