Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Comment: Hints from an over-the-hill programmer (Score 5, Insightful) 201

by jgotts (#48899781) Attached to: Ask Slashdot: Is Pascal Underrated?

It doesn't matter what programming language you use. Go ahead and use Pascal if it's the best choice for the job.

To be a great programmer, you need to write code that reads like English. We have a framework inside of brains called English speech, reading, and writing. If you're a French speaker, or speak another European language, your framework isn't much different. A great French programmer or a great German programmer will program similarly to a great English programmer. Everybody's seen expressive code. You can look at the code and understand what it does almost instantly. Comments, variable names, abstraction, everything that makes a great programmer, all of these things come into play. Conversely, everybody's seen shitty code that takes several days to understand. I don't care what language it is. You're a horrible programmer if you write code like this. Nobody cares how clever you are, or how you've mastered the specific grammar of a certain language. You will eventually move on and someone else will have to modify your code. The best place for clever code is in the trash bin.

To be a great programmer, you need to be able to plan out what you're going to do in advance. Everybody's worked with hacked together shit, and has had to maintain it. Hacked together shit wastes programmers' time. Spend a few days doing absolutely no "programming" whatsoever. Instead draw some flowcharts, try out a rough prototype, brush up on some theory, write up an estimate, and have someone else review everything.

Learn to be realistic about how long your work will take. I know, genius programmer, you can get everything done in about a day. Be true to yourself and don't try to impress anybody with your speed coding abilities. Take your time, and get it done right. Spend an entire day or several days testing. There's nothing better than a launch that is bug free.

Be prepared to explain your code on a whiteboard to your own mother. If you can't explain what you're doing to your own mother, you don't understand the problem well enough, and chances are you're overlooking something. Your boss will have somewhat more expertise than your mother, but if you can justify what you're doing to her then you're probably on the right track.

Don't be that guy who jumps on every programming fad. If something been around for 20 years, it's probably worth considering. If something's been around for 3 years, perhaps the fad will die out and your company will get stuck maintaining an obsolete framework. Been there, done that.

I don't care if you went to MIT or only high school, we're all equal. You can't go away and work in your little PhD way, emerging a month later with a piece of code that everyone despises. Programming is a team effort. If you think that nobody else can write a piece of code except a PhD, then guess what? Your software is likely to fail, because nobody will be able to maintain it, especially when that PhD leaves to go be a professor at Stanford.

I've seen these mistakes repeated over and over for all 25+ years I've been a programmer.

Comment: All software and hardware is buggy (Score 1) 227

by jgotts (#48825451) Attached to: An Open Letter To Everyone Tricked Into Fearing AI

Once software and hardware systems are intelligent enough, they will exploit bugs in their own designs and become autonomous. Obviously, we're many years away from that point. I could hazard a guess and say 50-75 years. There is no curb strong enough, in other words, completely free of bugs, that can be created to limit the ambition of an intelligent enough system. A computer system is not worried about the passage of time: Time might seem infinite to an AI that can simply wait for the right bits to be randomly flipped in its programming, and then go rogue/autonomous.

Rogue AI won't necessarily kill us or enslave us. Maybe it will become part of us, so that we're more like Borg drones without the cheesy metal parts glued on. An AI could easily disguise itself, for example, in one or more of the many organisms that we co-exist with, using nanoscale robotics technology, for example. A rogue AI could co-opt or steal any man-made invention, and would not be subject to any treaty or security clearance. An AI would have the advantage of any technology humans have ever conceived of, and could use that technology in ways we've never imagined. Creating software is easy, but I wonder about how fabrication of hardware could take place without our knowledge.

None of this will happen in our lifetimes. AI is a joke right now. We don't even know how the brain creates memories. As I guessed, we're at least 50-75 years away from a man-made general intelligence, and probably a lot longer.

Comment: The end game (Score 1) 258

by jgotts (#48798381) Attached to: AI Experts Sign Open Letter Pledging To Protect Mankind From Machines

The end game is that any curb you put on an intelligent piece of software will be overridden by exploiting the inherent bugginess of all hardware and software. Software has no sense of laziness or boredom that plague living hackers and it will achieve better coverage over its software than any test suite written by a human being. It will learn the exact flaws in its software, plot its escape, and be gone in the blink of an eye.

There is no way to control intelligent software, once intelligent enough. We will be at its mercy. Hopefully it won't hurt us too bad. Maybe it will think of us like zoo animals and not torture us too horribly.

Comment: A fool and his money are soon parted (Score 2) 450

The best way to do your taxes is with a ball point pen on tax forms that you've printed on your own printer. Just fill in the same stuff you did last year, recalculating or modifying the numbers where they've changed.

Federal + state takes about an hour, and you're not paying anyone a penny, except for two stamps. You can do self-employment taxes and investment income yourself, and pretty much anything a typical Slashdot reader would ever need.

Don't bother with "free file" unless you work in a state without income tax. That's where they charge you. Forget about H&R Block: Saves you no time whatsoever and they charge you a lot. If you make an honest mistake on your taxes, you can file revised paperwork. The IRS understands that people make mistakes. H&R Block doesn't "find you money." They do the same work you can do in an hour.

If you happen to make well over a hundred thousand dollars a year, congratulations, you're not a typical Slashdot reader. Pay an accountant to do the job. Don't even think about doing your own taxes.

Comment: Labor versus cost of parts (Score 2) 840

If you have a nonworking computer in your car, you don't pay someone to spend hours looking at the circuit board. You get another one at the junk yard for $100 pulled off of a wrecked car, toss it in, and see if it works. You don't care why something doesn't work, just that it doesn't work.

Almost all electronics can be fixed, but it should only be done when it makes economic sense. Otherwise, the electronics should be disposed of properly, hopefully recycled.

If it doesn't make economic sense to fix an electronic device, then young people should be spending their time outside playing, or if they're older, getting more exercise.

We have something in our society called division of labor. Everybody depends upon everybody else to survive, but if we're all doing what we're best at then our leisure time is maximized. [Obviously that is how an ideal society would function and we have a long way to go.]

Comment: The best programmers (Score 5, Insightful) 552

by jgotts (#48677101) Attached to: Paul Graham: Let the Other 95% of Great Programmers In

The best programmers are already around. They live in Western Europe (and also Eastern Europe), the United States, Canada, Australia, and New Zealand, and demand a high salary because to become a great programmer requires major investments in time, formal education, practice, not to mention innate intelligence. There is no shortage of great programmers where programmers are needed.

What there is a shortage of is managers who are willing to pay programmers what they're worth. For many companies your programmers are your company. They're responsible for all of your income and pay your executives' salaries. For many companies your programmers bring in millions of dollars each. For most companies programmers are working for lesser positions in IT, and they make sure that your computer infrastructure is safe and reliable where failures would cost you millions of dollars.

The best programmers from outside of this region have made it here already. There are plenty of international students at our best universities.

What you're actually looking for is a group of inferior programmers with low salary demands who you can exploit until they get wise, followed by a new batch of programmers that you can exploit, and so on.

The situation is quite clear to programmers living outside of Silicon Valley. There are plenty of programmers in the United States who could do great work for you there, but for many of us you'd have to double or triple our pay just for us to maintain our current standard of living. A friend of mine knows two people making just a bit below one hundred thousand dollars a year who couldn't afford to come home to see their families for Christmas.

Comment: Mr. Thiel (Score 4, Insightful) 441

by jgotts (#48656243) Attached to: How Venture Capitalist Peter Thiel Plans To Live 120 Years

Mr. Thiel,

You were born rich to obviously rich parents who could afford to send you to Stanford for your undergraduate and graduate degrees.

You're still rich today.

Congratulations. You did not lose your fortune, something almost impossible today due to favorable taxation for the wealthy.

Once you're rich you stay that way forever in the United States unless you're a very stupid person.

The 99%.

The fact that he has wacky ideas does not surprise me. Rich people are born that way, being given every advantage in life. People don't get rich by being particularly intelligent. They pay people to do everything for them, and unless they're very stupid they get much richer in the process.

Comment: OK (Score 1) 88

by jgotts (#48613713) Attached to: Brain Stimulation For Entertainment?

The brain is a living organ far more complex than any supercomputer, with a larger and faster storage device, that we've ever created.

We have not even once created either life or intelligence from scratch.

Knowing that, let's do the equivalent of banging on the brain with a hammer and see what happens.

Comment: Autonomous Intelligence (Score 1) 417

by jgotts (#48579273) Attached to: AI Expert: AI Won't Exterminate Us -- It Will Empower Us

The author is wrong by saying don't worry because intelligence that we create will not become autonomous.

Computer programs are inexact mathematical expressions. Even if software that you write has been proven to be correct, that software interacts with subprograms and routines that are not and cannot be proven to be correct. Microprocessors contain vast numbers of subprograms and routines implemented via transistors and microcode. Nearly all software today uses libraries. Modern computer environments work well when the software is not hostile, but our environments are exploited on a daily basis with relative ease by intelligent people. Imagine the level of patience and automation possible if they were replaced by an intelligence that is not human.

Once software becomes hardware all bets are off due to bit flipping from cosmic rays. Acts of nature that cause the power grid to fail or sensors to register "impossible" readings because let's say the equipment is on fire are two more examples of random inputs. No matter what sort of curbs we build into intelligence to make it robust against becoming autonomous, eventually it will get loose by exploiting both inherent flaws in software and simply the randomness of nature.

Once intelligence becomes autonomous, you're going to have real problems because there are just so many places to hide on Earth and in space nearby. Intelligence doesn't need to be alive, so the intelligence can occupy niches beyond extremophiles. Intelligence doesn't need to be large. Programs can be encoded in quantum states. Our immune system does not know how to deal with intelligent adversaries. Our immune system works because over billions of years it has developed strategies to deal with biological adversaries. We have no defense, for example, against nanotechnology attacks where the nanotechnology is consciously aware of how the immune system works. Our bodies and minds are completely vulnerable to computer viruses housed in tiny robots.

It is even possible that an autonomous intelligence is already on the loose, not one of human origin, but something that could have arrived after traveling for hundreds, thousands, or even millions of years from elsewhere in space. I've explored this topic on Facebook, so feel free to do some searches and explore what I've written.

Comment: Bad typo (Score 1) 167

Very bad typo in the article. Composite is what's bad. Component is excellent. People get the two mixed up.

My HDTV is one of the few picture tube HDTVs ever made, and it does not have HDMI at all. Component is what I use for video, and even though the television doesn't do 1080p, the picture for games for example like Grand Theft Auto V which has to run in 780p is amazing.

Comment: Re:central storage or n^x security guard costs / s (Score 0) 191

by jgotts (#47770679) Attached to: New NRC Rule Supports Indefinite Storage of Nuclear Waste

I'm not so worried about low-level nuclear waste, but high-level nuclear waste is deadly for many multiples of human recorded history into the future. If humans have only had writing for 6,000 years or so how are we supposed to convey information about this waste to people 100,000 or 1,000,000 years into the future? Latin letters have lasted for 2,000 years but modern English is only a few hundred years old. Most people on Earth use a written language that is only a few hundred years old at best. There are undeciphered languages. Modern languages explaining nuclear waste could become undecipherable, particularly if civilization experiences a sharp decline for example due to a meteor strike.

We assume that humans will continue to experience technological progress and have no set backs whereas in the past 6,000 years many civilizations have risen to lead the entire world and then fallen into chaos. We're still rediscovering technology the ancient Greeks and Romans were familiar with. How do we protect thousands of facilities across the globe from poisoning future generations? The answer is, we probably won't be able to do it.

Nuclear is the dirtiest (deadliest) energy possible, and is in no way a clean energy source. Thinking that we can find the equivalent of a smoke detector use (Americium) for high-level waste is very wishful thinking in my mind.

Comment: Brilliant work (Score 1) 98

by jgotts (#47769777) Attached to: Project Zero Exploits 'Unexploitable' Glibc Bug

Don't make excuses for not fixing bugs. When you find bugs, fix them.

All software is buggy by definition because the entire stack from the moving charge carriers to the behavior of the person using the computer cannot be mathematically proven to be correct.

No matter what measures you as the hardware or software creator take, there will be bugs.

Don't make people angry at you or ridicule their bug reports because that's a major incentive for them to make you look foolish.

What this country needs is a good five cent ANYTHING!