Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×

Comment Great (Score 1) 69

I'm a fan of both libressl and this project. Now we will have two dedicated groups working on improving the security of SSL. There will no doubt be sharing of findings, and both products will improve as a result.

SSLeay and OpenSSL have been neglected for too long. It's boring to work on this software, but that doesn't mean the work is not important.

Comment Try to meet in person (Score 4, Insightful) 164

There is no substitute for meeting in person. We've evolved over millions of years to meet with each other in person. Every distributed meeting I've ever attended has had yelling, mumbling, and misheard things caused by technological failures.

If you're sketching out your next year's worth of work, spend the money and get together for it.

If you're just talking about a couple of minor issues, then by all means use a distributed whiteboard.

Comment Estimates (Score 1) 347

I've been programming for about 30 years and it took me at least 20 years to learn how to make good estimates. If you can't estimate how long something is going to take, then you probably haven't been doing it long enough. I don't care what your field is, or even if it's engineering or not.

Programming is just like any engineering endeavor. Be a professional and admit that not every job is a weekend hack. If you work somewhere where you have to lie about work taking less time than it takes, then quit that job and go work somewhere else.

One difference between a so-so programmer and a great programmer is someone who finishes his or her work when he or she says he or she will. There are other differences, such as communication skills or lack thereof, but having people be able to trust you is pretty key.

Another way of looking at is this. Programming cannot be rushed. That doesn't mean tell people it will be done when it's done! What it does mean is learn to estimate the worst case scenario. You will not be punished for writing a great piece of software and finishing it a few weeks early. You will be punished for saying it will be finished by a date assuming that nothing will go wrong at all and that you are some kind of programming genius, better than every other programmer out there.

Consider this example. I think I might be able to finish something in a week. The estimate I give is two weeks. Another programmer typically says a job of roughly the same magnitude will be done "in a few days." I have given myself plenty of time to do the job right, and extra time to fix bugs and possibly deliver the project early. The other programmer screwed up and it does take him a week. After a week, his work has tons of bugs. It goes out to production and every one of those bugs is embarassing and takes man days to resolve, rather than a few man hours. I've seen this scenario happen many times. Programmers fall into this trap of their own making. Maybe it has something to do with machismo. Stop pretending to be more manly or smarter than you are and be a professional.

Comment Driving wages down (Score 2) 176

I looked at my state and H1Bs have below-average salaries, somewhere around 10-25% below average, depending upon the exact position. Clearly, the purpose of H1Bs is to drive down the wages of people already here; otherwise, H1Bs would be getting paid about the same as everyone else, within let's say 5-10%.

I also looked at the numbers, and by far the H1Bs are going to California. Only 2,000 made their way to my state. Companies in California want you to live there, paying $3,000 or more per month in rent plus high taxes and everything else but aren't willing to pay you enough to be able to afford it. Since they've run out of people to con into moving to California, they've turned to H1Bs.

I have nothing against the best and brightest coming to the United States. We have tons and tons of international students studying engineering in our universities, and these people are more than welcome to stay here and become citizens, joining our labor pool.

Comment Virtually undetectable (Score 1) 576

Owing to the vast distances between planets likely to have intelligent life, machines are likely the only alien things you'll ever see. Owing to the energy expense of traveling vast distances, they will likely be very tiny machines, like nanobots from science fiction. Due to the speed of light and hence radio communications, the machines won't be able to be in contact with their makers, at least without significant transmission delays; therefore, the machines will likely possess advanced intelligence on their own.

Having said all that, we could very easily have been invaded many times over by intelligent nanobots from space. They would have been completely undetectable until maybe a few decades ago and perhaps are clever enough to continue to escape detection. Our planet is highly unexplored. We've only cataloged a tiny percentage of life. We've barely glimpsed into the deep oceans. We're also quite ignorant about the underground, as we're drilling for oil right now and have no clue what might even cause an earthquake (so we're ignorant about not just tiny things, but features gigantic enough (possibly miles in diameter) to produce earthquakes).

In fact, the very cells in our bodies could be invaded by aliens disguised inside bacteria or viruses. How many of these bacteria and viruses have we even looked at under a microscope? We have trillions of these organisms. Imagine the power of one million compute nodes that could hide in less than 1% of our cells. And right under our noses is just one possibility among many.

Maybe the world is like the Matrix, except the robots are tiny instead of massive with a little bit of Scientology thrown in, where our bodies have an alien presence inside of them (but not the part about stealing people's money).

Comment Wi-Fi calling sucks (Score 1) 73

T-Mobile offers Wi-Fi calling, but it sucks.

Let's say that I want to download something for a few minutes. My call turns to garbage.

I could theoretically configure my AT&T hardware to prioritize Wi-Fi calling traffic, but there is no insight given by T-Mobile or AT&T into doing that. I'm not wasting my time to save gigantic multinational corporations a few pennies.

Comment Not a great idea (Score 2) 69

So the idea here is to take our most sensitive and least understood organ, a device with processing power greater than any hardware/software system we've been able to even conceive of, and do the equivalent of smashing it with a hammer?

Would you go to a data center and start zapping random computers with electric pulses, hoping that your buffoon-like behavior would randomly flip the rights bits somewhere to make the machines to work better? No, you would work to understand the software being used and improve it. Or, you would replace the hardware with something that works better.

Likewise, there are no shortcuts with the brain. Until we can program neurons and neural networks directly, anything we do to the brain expecting to make it work much better is bound to do more harm than good.

Comment Game reviews (Score 1) 135

Game reviews are good at generally identifying the best games, but I wouldn't rely on them for more than a very rough metric. You simply have to play a game to know if you like it.

The best game review I've ever experienced was a live stream of a well-known GTA V speed runner playing the game on next generation hardware. Speed runners know games almost as intimately as the programmers do. The conclusions of the speed runner were dead on. The game has beautiful graphics, but playability had declined in many areas. He immediately noticed very long load times. And what do you know, after a few months people are complaining on Youtube about load times for GTA V on next generation hardware. One thing that I notice on Youtube is that pop in seems to be worse on next generation than previous generation. That's sad.

This 8 hour or so run (I wasn't tuning in continuously) convinced me to not buy a PS 4, a new television, or the next generation version of GTA V. I may take the plunge when the Windows version is released, but I'm going to see how the speed runners like the game. They notice everything right off the bat.

I'm perfectly happy with the PS 3 version of GTA V. It's the only game I play when I'm in the mood for video games.

Comment Embracing or eschewing recursion (Score 1) 252

Most programming is mainaining somebody else's, usually poor, code.

Do not use recursion if it makes you feel clever, or if you're showing off your mastery of some programming language's syntax. Don't use recursion for efficiency. Writing efficient code rarely matters. By rarely I'm not saying never!

Use recursion if it results in the most understandable and easy to grasp code for someone, probably currently in junior high, 10-15 years from now.

In 15 years processors, IO, and storage will be many times faster and the bottleneck costing your former employer millions in lost profits will be your tightly-coded routines buried deep within the infrastructure.

Comment Competition is good (Score 4, Interesting) 280

I'd like to see Cyanogen succeed because the more competition there is in the smartphone market, the more companies will be pressured to develop new, useful features.

I bought my first smartphone two years ago last month. It's a Samsung Galaxy S III. It still works great, despite some quirks. I felt like with the Galaxy S III, the smartphone was beginning to take a quantum leap forward in features. Especially for the last year, though, it seems like there isn't much to crow about except for some fingerprint functionality nobody uses. Phones are getting a bit more memory, somewhat faster CPUs, a bit better screens, and improved cameras but you would expect all of these things. In terms of new and interesting features, it seems like we're in a mature market where we've all decided upon what it means for a device to be a smartphone.

Perhaps Cyanogen will bring some excitement back. At worst, they'll come up with some new ideas that Samsung can license or copy. I'm using Samsung as an example, but I could be talking about HTC or one of the Chinese startups. I don't see a whole lot to distinguish current smartphones (except that Samsung does not permanently glue batteries inside of its products).

Comment Most programming isn't new code (Score 3, Insightful) 220

Most programming isn't writing new code. Most programming is working on someone else's crap you inherited. Invariably, you're going to be using that person's style or else the result will look like garbage.

There is also the problem that most non-trivial code is worked on by multiple people at the same time.

Writing some code from scratch as an assignment is a very artificial exercise nowadays, unless you're in a classroom setting. Therefore, you're going to get a signature from a programmer doing atypical work.

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

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

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.

Slashdot Top Deals

A morsel of genuine history is a thing so rare as to be always valuable. -- Thomas Jefferson

Working...