Six digits? What is this, the mid-1980's?
I have passwords for hundreds of services.
You must be joking about memorization. I have three memorized.
Way too high tech for remote areas.
Bringing clean water to remote areas in Africa means using parts that can be sourced from those remote areas using skills taught in those remote areas or else it's back to dirty water in a few years.
Think about aliens crashing a ship on Earth. Where would we get the parts to fix it? Alien technology is worse than useless when it fails.
Effectively, though perhaps not in the strict legal definition, the purpose of a corporation is to make a profit.
As we can plainly see from Microsoft's conduct over the years, they will break whatever laws they can get away with to make that profit. This lawsuit isn't about Hotmail users' e-mail messages, this is about illegal or otherwise objectionable behavior that they are trying to shield in other countries.
If you're worried about your e-mail and data stored on Microsoft's servers, then let's not mix that up with a corporation's ability to hide illegal, unethical, or immoral behavior within a more compliant state's physical borders.
There is a lot of political discussion on this thread. How about a bit of technical discussion?
I spent about 20-30 minutes code reviewing the first few files in ssl/*.c.
The codebase looks better than most C code I look at. The indentation is a pleasure to look at.
I did notice a few issues. Wrappers are apparently still being used around memory allocation functions. I don't know if this is for API compatibility or what. There is more casting than I would like to read. I hope it is all absolutely necessary. If you look at, for example, RSMBLY_BITMASK_MARK, that code is absolutely horrible. Never write code like that. To me that is how not to write C, C++, Perl, Java, or PHP (all would look very similar).
Lots of gotos. Not necessarily considered harmful. May not indicate bad coding practices, but something to think about. gotos inside of a case-switch. Yikes. Hope you really needed to do that.
Functions are very long. Linus Torvalds's rule of thumb for a function is that it should fit nicely on a screen. You should be able to look at it, conclude, that does x, and move on to the next function.
There you have it. I debug other people's code for a living, and sometimes write my own.
The article's summary seems to imply that US taxpayers are on the hook for $1 trillion. That's not quite right:
"But the armed services are not the only customers. Eight international partners have signed on to help build and buy the planes: the U.K., Italy, the Netherlands, Turkey, Canada, Australia, Denmark, and Norway. While not involved in the development of the plane, Israel and Japan are buying it through the foreign military sales process, and South Korea recently indicated that it would buy at least 40 of the aircraft."
The US is set to buy 2,443 planes, but international sales will offset at least some of the expense both directly and indirectly.
Around half of Americans are renters. You won't see any of these things in rental units for decades. Rental units use the cheapest available everything at the time of construction and they're not ever updated. They become the bad part of town over 50 or so years as they decay, and eventually either they are town down or become decrepit. At nearly every apartment I've ever lived in, virtually everything was original: 40-50 year old wiring, 1960's or 1970's mercury-style thermostat, nothing ever electronic. For a few years, I lived in an expensive apartment building that was only around 15 year old. Even everything there was the lowest tech possible.
Do I care that rich people living in multi-million-dollar homes have privacy-violating things? Not until decades from now when they start actually appearing in the places where most people live.
Pretty much the only difference in what I would call the core infrastructure in my apartment from 1970 would be the lightbulbs have been switched to CFL. I could re-wire the wall switches to be electronic, and do a few things here and there, but why bother? I don't own the place. I'm a technie, and I just don't care about any of these things.
Microsoft has been writing poor quality software for my entire life.
The best programmers do not go to work for Microsoft. Maybe that was the case in the early 90's but it hasn't been true for decades.
To make matters worse, Microsoft does a lot of its programming in India. We all know that Indian programming is of poor quality, and the reason is not because Indian programmers are much less competent. It has more to do with the fact that in programming if two parties can't communicate completely unambiguously in one language then they have no hope of writing good software. Programmers have to be more than fluent in the language they speak with each other, they have to be scientifically precise.
People go to work for Microsoft because it's safe. There's no risk of the company going under. Risk minimizers don't write good software, because they're not very creative. They tend to keep patching up the same old crap rather than writing something new that works better.
At mature software companies hundreds of non-programmers are telling the programmers what to do, and it only gums up the works. You wind up not working efficiently, because you need too much sign off to get anything done. And once you get signoff, the hundreds of non-programmers are dictating your schedule, not quality of the code or whether it is completed to your satisfaction.
There is no one to clean up Microsoft's mess but themselves. Probably the best solution would be for the company to split up. The people who make the Xbox are probably weighed down by the rest of the company's ineptitude. I'd like to see those guys go their own way.
If by hacking you mean programming, then nothing really inspired me. You had to be a programmer to get something useful out of a Commodore 64 besides playing games. So I guess you could say wanting to do something besides play games inspired me to be a programmer.
This item hit reddit earlier, so I'll repeat my advice.
It might be easier to begin with a kernel module that is useful to you, and either work with the developer or find a module where the developer has lost interest instead.
I worked on two kernel modules, one called oplbeep and the other was totem. Both very simple things that required porting when interfaces changed. Today I work on the vmware modules which are always requiring tweaking (at least unless you upgrade to the latest version of VMWare more regularly) but I do that just to get my work done.
The human brain has multiple neural nets and a voter.
I am face blind and completely non-visual, but I do recognize people. I can because the primary way that we recognize people is by encoding a schematic image of the face, but many other nets are in play. For example, I use hair style, clothing, and height. So does everybody, though. But for most people that just gives you extra confidence.
Conclusion: Neural nets in your brain having blind spots is no problem whatsoever. The entire system is highly redundant.
When people characterize HFT (high-frequency trading), they conveniently leave out the programmers and the human traders. HFT is done by programmers and human traders. The notion that computers are trading with themselves is absurd. Programmers write the code, and traders supply the algorithms, ideas, guidance, experience, etc. Sometimes the programmers are also traders, but you get the idea.
When people use a computer they don't think about the thousands of people who wrote the software they are using. They think of a computer as a monolithic thing, when in reality everything that a computer does is people doing work for other people. When people "use" computers, the programmers do the work, or rather they did the work. The computer itself does nothing by itself.
Robots are the same way. They execute instructions written by people. A robot is simply another interface that programmers present to other people. To think about robots separate from their programmers is silly. The programmers reap the rewards from and ought to bear the responsibilities of robotics.
In order to simplify matters, I'm leaving out the hardware designers, the electrical engineers. Without them, programming would be pointless. But the same argument holds true. The robot is an expression of the hardware and software people. Did the people at Craftsman do a good job making that wrench you used to replace the fan belt on your car? The wrench didn't make itself, people did. Craftsman wrenches are damned good products because of the people who make them. A wrench doesn't stand alone as a separate entity, and neither should robots.
Many, many generations in the future, robots may become viral and start making other robots. They might even consider themselves to be separate from their human makers, but that would be the height of arrogance on their part, assuming that people programmed them to be able to experience arrogance.
A bit condescending of an attitude for someone that is working at Microsoft, a company that is clearly on the wane. People don't go to Microsoft to create anything great. They go there for a stable income for their family and mortgage.
Programming is a set of thought processes that are being applied regardless of the language or environment being used. The other part is markup or translation, and that part of the work should be minimized.
I've been programming since I was a little kid and now I'm almost 40. In developing my craft over 30 years I've focused on learning how to write solid code that can be easily modified by the next person. The software that you write needs to read like Hemingway: short, simple, and declarative. When you think of programming in terms of languages, you're doing it wrong.
One day we will instruct computer AIs completely in a natural language like English or another language. The more cumbersome the markup and translation, the further you stray from that goal.
Thinking narrowly, there are features of languages that have proven to be useful over time, such as object orientation. The key here though is abstraction. However we do it, the programmers' job is to move electrons around. At every abstraction we should strive to simplify and in my mind I see a convergence such as the natural language interface. To facilitate it we need to think about what it really means to be a programmer, what it has always meant, and what it will always mean: To convey an accurate and modifiable sequence of instructions to some device in the most efficient way possible.