Indi, you have to look at your goals. Do you want an understanding about the basics of computers, first? Or do you want to go out and do impressive things from the start? Do you have specific programming goals, like designing websites or designing animated movies or radio-controlled model planes etc.
If you want to understand how computers work, Forth is the best I've seen. Learning Forth won't tell you about your video drivers unless you head that direction into advanced topics, but it will give you the underlying facts and habits of thought that it's all built on. You can start with
http://www.schneider-busch.de/dirk/forth/download/w32f61005.exe
Download the executable to your desktop. Click on it and it will install a couple of things. Discard the installer. (I'd put it in the trash where I could drag it out again if I want it before I empty the trash. Or you could save it instead of downloading it again if you need it again.) You'll get an interpreter/compiler and a text editor. You don't have to use the text editor that comes with it, but there are some advantages from using it.
Now, find the best beginner's manual I've ever seen.
http://home.iae.nl/users/mhx/sf.html
Read the beginners' intro. Skip the professionals' intro unless you want to read it. Start the first chapter with the Forth interpreter/compiler also open. When you see examples starting with the spaces and asterisks example, try them out at the keyboard. If you're the kind of person who likes this sort of thing, it will go reasonably smoothly. Some of the homework is very hard. Here's the biggest and most important hint -- if you find yourself bogged down doing something complicated, look for a way to break it up into simple pieces and do them one at a time, and test each of them before you try to use it for something else.
I want to second Lisa's suggestion of javascript. It's a powerful language and nicely interactive, meaning you can quickly try things out and find out whether they work. And you can get impressive results fairly quickly. You can find lots of code online that works, and learn to modify it enough to do something similar that you happen to want.
Javascript is not at all good at exposing what's going on. But if you're comfortable just doing things and getting results without understanding them, it's a good choice. And once you know any one of the main cluster of languages you can learn the others pretty easily.
Adamsj, it's possible one could learn a usable subset of perl quickly. To learn enough to read 5% of the scripts that are circulating you have to learn a whole lot of abstruse perl syntax that includes in its essence a lot of abstruse concepts.
This looks like a small thing to people who have those things already internalised, but it's a giant step for newbies.
I can't say personally whether Ruby is better but it has a good reputation.
Different people learn different ways. One way to split it is primarily visual, auditory, or kinesthetic. I'm thinking that primary-auditory people don't learn programming.
Some people do best by learning how to do things and then gradually figuring out more detail about how to do more. Analytic thinking.
Some people do best by understanding the basics of what's going on and building up from there. Synthetic thinking.
I'm convinced that synthetic thinkers do best by learning Forth first. You get a simple language with simple rules, run on a simple virtual machine. It's no big deal to get a Forth compiler whose source code is 1000 lines or so of code, that compiles into 8K or so of machine code. Start with the basics and build your way up, in a few months you can understand the whole thing. There's something powerful about understanding every detail of your compiler. Then you can deal with the "primitives", the parts written in assembly or C or whatever. It's no big deal to get an assembler written with 200 lines or so of source code, and the examples in the compiler will give a fair idea how to use it. It makes sense to write only small time-critical routines in assembly or C anyway.
Learning a good simple virtual machine lets you concentrate on the interesting programming problems without having to deal with boring complex details. But you can dip into those details whenever you want. Forth is not a good language for professional programmers for several reasons -- one being there aren't enough professional Forth programmers to make production Forth code very maintainable. But it's a great way to figure out what's going on if you have the sort of mind that cares about understanding it.
Forth is an excellent language for learning object-oriented programming etc. When you write well, everything goes smooth. When you make a conceptual error it all falls apart and you get bogged down in endless complexity. After a little while you learn to see the danger signals and back off; figure out what you're doing wrong and repeat the work simpler. That instinct is vital. The sooner you see the wrong turn that traps you in unneeded complexity, the better. I've found that some whole languages scream at me, "Don't use me! I make things complicated and difficult!". Objects tend to go that way. Object-oriented approaches are great. Object-oriented tools tend to be overcomplex and counterproductive. Languages that attempt to enforce objects are utterly worthless.
For synthetic minds TCL is far better than Perl. The rules are simple and clear. Not many exceptions. Perl is a better language for computer professionals because except for a few brilliant amateurs only professionals can hope to use it. But for people who just want to get something working, or people who want to take somebody else's code and modify it for new purposes without understanding it, TCL is not very good. Minor changes in punctuation can have a big effect, and unless you understand the dozen rules you won't know what to expect.
C is a portable assembler. Not good for learning programming.
C++ is a portable assembler with OO enforcement bolted on. Not particularly good for anything.
Java is a good language for projects that have 100+ programmers. Unless you are a professional you should stay away from projects that have 100+ programmers.
Python and Ruby both have good reputations. Also Lua. I don't know how good they'd be for beginners, I ought to learn more about them.
The strengths of old Basic were that it was simple, and highly interactive, and with PEEK and POKE it gave you a limited access to everything. Forth is better for all those things. Maybe best to start with programming a little microcontroller. A bunch of inputs and outputs, A>D, D>A, this and that. Write code and connect up hardware to do things.
Like, a timer that will make a connection after a set time, or a quarter second after a pressure sensor senses a particular threshold, or when any of a number of prominent wires are cut -- and you have an IED controller!
Connect it to a keypad and a solenoid and you can have an electronic lock. Think about how to make it failsafe. If the power goes off should it open, or stay locked, or is there an adequate third choice?
Etc.
But different kinds of thinkers require different development environments. What's best for one is not good for another.
DSL doesn't begin to provide that. It's easy to make a bootable image, you just follow instructions for putting together whatever you want, and then one instruction makes the image. But it tells you nothing about the requirements of what you put in.
Rhandir, a rough equivalent for linux is knoppix. Linux booting from a regular CDRom. Customise it as you like, leave out what you want.
Here's a more minimal linux, DSL:
http://www.damnsmalllinux.com
50 megabytes. They leave out lots of stuff but include enough to be functional. I use it. I can boot off a 50 meg CDRom, credit-card size. It's stripped down debian, and it doesn't include apt but you can add apt back in. It doesn't include GTK2. There are a variety of applications you can download, but lots you can't -- new applications have to be compiled for DSL. You can add GTK2. You can add lots of stuff but it quickly gets bigger than 50 megs. I'm at 90 megs plus I have applications I can add from a hard disk. They claim it will boot from a USB flash card. I haven't tried it. I like the idea that I can run the whole system from a CDRom with the hard disk disconnected or frozen by software. It is its own recovery disk.
They run off an older linux kernel since the newest one is kind of bloated. They have a parallel project that involves using the newest kernel and not trying to hold to a set size, but still trying to keep it minimal and simple. THe last time I checked that one was working but it was short on applications; they thought a lot of the DSL apps would run but they hadn't tested many.
Anyway, this is a workable alternative. Instead of looking for things to remove from linux, you can start with DSL or DSL-N and first look for things to remove, and then consider what you want to add.
Rhandir, my PC motherboard claims to be able to boot off a USB item. I thought about booting it off a flash card but I haven't gotten around to trying.
Greg London's suggestion would be a good one for PCs.You'd install it as a secondary internal drive. That almost always works -- at least if there's anything you can do yourself. Get your data off of it, and then you can think about how much effort you want to put into a piece of hardware that you can replace for under $50 today and that might not be available at all next year.
IBook. I don't know anything about those. I don't know what kind of machine you can install it into. Another iBook? If you were going to get another iBook anyway you might void the warranty and switch hard disks and see if it works. Even if the disk fails it probably won't damage anything else.
A professional might do that easier, or do something better, but you have to pick the right professional. I can't tell you how to pick the right one the first time.
I can't imagine you'd pay a professional less than $100, maybe significantly more if you live in a high-rent state. If the external enclosure is something you're likely to use regardless then it's a good investment.
Consider how many hours this is going to take. Driving to computer parts stores. Assembling hardware. Choosing a professional. Driving there at least twice. (The one time I tried that they kept it for 2 days and told me it was fixed. When I drove there they demonstrated it and it wasn't fixed. They'd assumed what they did would fix it. So I went home and they kept it a few days more. Three round trips and a week's wait but they did get almost all my data.) Time and money. How much is that data worth to you? What you did since your last working backup....
There was some guy who wrote popular books about business management -- Peter Townsend? He recommended that an executive should never have more than two file drawers of old documents. Ruthlessly weed out what you aren't sure you'll need. He said if you keep old routine stuff because you think you might possibly need it someday, you won't find it if you need it. And if you ever get investigated for price-fixing or IRS or something else, somewhere in those old files will be something that looks bad whether you're guilty or not. So trim it down and keep trimming it down. Time spent throwing out files that might not be needed is not wasted time.
Given the way my hard disks run, it's easy to follow his advice. I don't back up anything unless I'm pretty sure I'll need it. OS and important software runs off CDRom regardless, and it's easy to keep a backup of that. Data -- if it's important it's under version control and I back up the archive. If it isn'timportant enough to archive, I don't need it.
If Armitage was the one who outed Plame by accident, why didn't he announce it 2 years ago and save so much trouble?
When the only tool you have is an army, every problem looks like a war.
The goal for invading afghanistan wasn't to get the people behind the 9/11 attacks. It was to satisfy the american public. The public was solidly behind invading somebody immediately, and afghanistan was the only country that appeared to have something to do with it that we could attack on short notice.
It was just a few years ago but it seems like forever. I remember it. My own father is usually pretty sensible but he said we had to have a war with somebody. I was saying for 9/11 we needed to improve our police methods and get a lot of international cooperation for that, and we needed to ask muslim religious authorities when the religion says it's OK to kill civilians in sneak attacks, and we didn't need a war. He told me I was crazy. They hit us and we had to hit them back.
Every day that went by without a war the public got more impatient. The bushies haven't been very good at much else, but they've been real good at influencing public opinion, and they've been real good at placating public opinion when there was opinion that needed placating.
They gave us just enough afghan war to get the public off their backs and then they went back to doing what they wanted.
Ailsa, I used to store water in plastic milk bottles. It worked then. I'd rinse the bottle carefully the first time, and number it. Every month or so I'd empty all the bottles and refill them. Each time the organisms would eat more of whatever waste products the last set left behind. After about 3 months they were fine. I kept them out of direct sunlight, of course, I kept about 30 or so over a tall cabinet in a dim kitchen. Over ten years one of them leaked, slowly, once.
I quit doing it for a combination of reasons. I got a girlfriend who thought it was disgusting. I started buying cheap milk with tops that didn't retighten. I got married and needed to put kitchen gadgets above the kitchen cabinets.
But it does work.The main thing is give it time for the ecosystem to adapt and keep it away from strong light.
Not to interrupt the discussion but it is an open thread....
We need mandatory drug testing for national government officials. Anybody who's work is as important as an airline pilot.
Mandatory alcohol tests for national legislators immediately before each vote.
It can't hurt.
I don't see any way to discuss ancient domestication without a whole lot of speculation, so I don't mind speculating myself.
One way to begin domestication of a herd animal is to hunt it. Show yourself, the animals herd together for protection, you find a way to cut one animal out of the herd and kill it. The animals that are easiest to cut out of the herd get killed the most. Over generations they herd tighter and more reliably, and to some extent you can, well, herd them. And take it from there.
People point out how much harder bison are to keep than bos, but bos have gotten easier to keep in historical time. And traditionally when there were problems people just dealt with the problems.
Like, in The Hound of Ulster, at one point the adolescent Cuchulain is having a tantrum, he's real real upset about something and he's raging around ready to kill somebody, and the king makes all the ladies of the court undress and go out to parade in front of Cuchulain. The boy is so embarrassed he quits being angry, because he's being treated like a raging bull.
The central part of the story revolves around a couple of bulls who do pretty much whatever they want across 2/3 of ireland. But they're special bulls who perhaps are possessed by or reincarnations of or somehow related to a couple of dueling wizards, so they might not fully reflect the relationship between the irish of that time with prize bulls.
It's been awhile since I read that story, if somebody wants to correct me I won't be offended.
Buffalo are hopeless candidates for domestication. The bulls hit 4 years old and will go through your fence or die trying.
Graydon, if you want to live with buffalo, and you don't want to move with them, then you'll look for the ones that least want to go through your fences.
Like, make a fence out of rawhide with feathers stuck in it, and put it up occasionally, and kill the first one that breaks it. Pick it up and tie it together for next time.
Maybe part of what worked for domesticating aurochs was killing the largest for trophies. Easier to take later steps when they'd trimmed down some. But they were kind of domesticated while they were still pretty big.
To measure how easy animals are to domesticate, you need a population of the undomesticated animal to compare. Where are you going to find a population of wild horses that isn't contaminated with domestic genes?
There's no particular reason to think that domestication started out intentional. If you herd wild animals and preferentially kill the ones that are hardest to herd, that will get you visible results in ten or twenty of the animals' generations, depending on how many animals get killed being herded versus never getting herded, and how much crossbreeding they do.
If people domesticate one animal by accident they might start trying for others, and they'll tend to succeed with the easiest ones first. But we don't know how hard it was to domesticate the first animals because we mostly don't have any of those animals left, we only have their domesticated descendents -- who look particularly easy to domesticate because they've already been bred for it.
I haven't read 1492 yet. About Diamond, it looks obvious from his writing that he started with a catchy idea and then looked for data to support it. This is not exactly a criticism. If you're going to look at all of anthropology and all of archeology and all of economic geography and all of human ecology, you aren't going to get many of the details straight. Better to concentrate on the parts that make some kind of sense to you.
My point is more that while he writes as if there is overwhelming data supporting his conclusions, it's good to remember that what's going on is he has appealing ideas which are compatible with some of the data.
When did subways and trains become incisible to terrorists? I see no fixation on airplanes here, except in the minds (such as they may be) of government officials.
The last two publicised attacks inside the USA by foreign terrorists was done with airliners. A third extremely minor attack was done in an airport.
If there are foreign terrorists prepared to do further attacks in the USA, they're holding off for now. Maybe they're following Napoleon's dictum: Never interrupt your enemy while he's making a mistake.
As often happens, I'm way late getting here.
Ben H, I sympathise with your desire to give the Bush administration the benefit of the doubt. But you're doing it all wrong. You're still assuming they're real stupid.
Here's how you give them the benefit of the doubt.
First off, they realise that the threat isn't primarily al qaeda or arabs, it's everybody with a grudge against the USA who's willing to die making attacks. (Though it might work almost as well to make the attack and get caught and get even more publicity later.) If people get the idea that terrorist attacks *work*, then pretty soon we'll be getting terrorist attacks from cuban nationalists, and venezuelan nationalists, and quebec separatists who feel the USA has given too much recognition to antiseparatist canadian forces, and you name it. So they're secretly working hard to prevent terrorist attacks from any source including sources they've never heard of -- yet.
To stop terrorist attacks by sources they don't know about and so can't infiltrate, they need to keep the defenses *secret*. So for each discovered attack they reveal, they make it look like the attackers were following a very stupid plan, and they had an even stupider defense, but by sheer luck they infiltrated the group early and stopped the attackers cold. And then they appear to do stupid things in reaction, afterward. Like, they knew about this last group pretty early. You suggested that they ban liquids on airflights until they make sure they got all the group. But there could be a hundred other groups planning similar attacks, why would it matter for that if they catch the last dregs of this one group? And if they were going to ban all liquids from planes because of this one group, when should they do it? After the group is mostly caught but a few members might have escaped, or back when the whole group was running free? That argument doesn't make sense. Here's an argument that works better -- they did it so they'd look stupid. They want all the undiscovered terrorist groups to underestimate them.
Every terrorist group will try to follow reasonable security etc. But it's so hard to do it all right, easier to do just enough to get by. And from what they hear about the failures of the groups thast got caught, it looks like they can be pretty sloppy and still get by. So if they make their attack while solidly underestimating us, there's a strong chance that the routine secret defenses will catch them. The world might never hear about the attack, or if it does they'll be portrayed as more bunglers who got caught through eheer luck -- so that the *next* group will make the same mistake.
See, when I give them the benefit of the doubt, I suppose that maybe they're giving up political capital to protect the nation. They let a lot of voters see them falsely look stupid, because it's more important to fool the enemy than to look good to the public.
They're intentionally looking like idiots because that's what their duty demands of them.
See, you can't argue that the published reports of their activities reflect competence, without falling into stupid claims yourself. It just doesn't work, their published actions are too obviously idiotic. But my way, it does work. No matter how stupid they look, it's part of the plan. And my version is not falsifiable. Even if we get another attack on a much larger scale than 9/11, or if we get a lot of small attacks that add up, still it was the right thing to do to use their control of the media to make us look like much easier targets than we really are. Even if some attacks do get through, more would have gotten through if the real defenses hadn't been so well hidden.
They aren't really incompetent stumblebums. They're tryinog to look like that on purpose. It's part of the plan.
HTH.
I'm not happy about the slow rate of progress in Iraq
I'm very concerned that events in iraq are progressing far too fast. We need a way to slow them down long enough to get out.
| Year | Number of comments posted |
|---|---|
| 2006 | 82 |
| 2005 | 45 |
| 2004 | 1 |
Total: 128 comments. View all these comments on a single page.
The most recent 20 comments posted to Making Light by J Thomas:
Show all comments by J Thomas.