Slashdot Mirror


User: adrianmonk

adrianmonk's activity in the archive.

Stories
0
Comments
651
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 651

  1. Re:and now, to celebrate... on Java Regular Expressions · · Score: 1
    You mean like Matcher.replace(String s)?

    Actually I meant like correcting the punctuation error with the newfound power of regular expressions. The fact that I used a sed-like (or perl-like) expression was just incidental and was only because that's the syntax I knew off the top of my head.

  2. Re:Just spreading FUD on The Keyboard That Could Phone Home · · Score: 1
    I don't see how you can get around the other delays though, OS, memory, buffer, and CPU delays should all be neglible, but the TCP delays are going to blow your packet delaying away unless you have a really fast connection, honestly I don't see this working over the internet.

    --- elided.example.com ping statistics ---
    100 packets transmitted, 100 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 59.322/62.689/79.781/3.203 ms

    These are ping times between me and a host that's about 1750 miles (2800 km) away. Note the minimum and maximum ping times here. Round-trip times for these 100 packets varied between about 59 ms and 80 ms. (I don't have data for single-direction packet travel times, but round-trip times will do for analysis. They aren't conceptually different -- it's all just network hops.) Anyway, if I add a 25 ms delay to those packets, then the delayed packets will be in the range roughly from 84 to 105 ms. The two ranges (59-80ms and 84-105ms) don't overlap, so if other packets behave like the 100 packets I measured, I should be able to get data through just fine. Of course, there are no guarantees on how long packets will be delayed, so there will be overlap between the ranges, but if it is infrequent, I can correct for it.

    You're right, though, that if the network pipe is saturated, the delay is going to get all unpredictable. But TCP/IP doesn't work well at all with network pipes that are completely saturated, so people don't build networks like that, usually.

  3. Re:What about user -induced lag? on The Keyboard That Could Phone Home · · Score: 3, Insightful
    I RTFA'd and I don't see how this would work with regular, semi-random typing -ie. I may 'sit on a character' while I space out or think about what to type next -or try to find the next key....

    There may be several schemes that would work, but here's the simplest one I can think of off the top of my head. Basically, you figure out what the maximum delay that can go unnoticed is, and you buffer keystrokes for that length of time. For example, if you determine that nobody ever notices when a keystroke is delayed 100 ms, you buffer keystrokes for that long.

    Now, if during that period of time you get multiple keystrokes, then you spit the keystrokes out of your queue with a predefined timing. If you want to send a 0, you might send the first keystroke out, then wait 50 ms, then send the second. If you want to send out a 1, then you might wait 75 ms between the keystrokes. So basically, you get opportunistic about it. Only if you have two keystrokes in a short period of time do you try to encode data in the timing.

    But of course there will be times when the user is typing slowly, and you don't get 2 or more keystrokes in a short interval, but you still have to send them out. The solution to that problem is easy: if you aren't trying to send a 0 or 1, just make sure you never send out any keystroke sooner than 100 ms after you sent the last one. Now you have a system where (at the remote end), if you see two packets arrive about 50 ms apart, that's a 0, and if you have two arrive about 75 ms apart, that's a 1, and if you have two arrive about 100 ms or more apart, that's no data (a no-op).

    And of course you want all kinds of redundancy built in because the network and the TCP/IP stack and the operating system will add lots of noise and corruption to your covert data stream, so you'll have to piece it back together. But that's an easy enough problem provided you don't mind reducing the bandwidth even further than what it is already is.

    Oh, speaking of bandwidth, you can probably encode more than one bit per keystroke pretty easily. Coincidentally enough, today I was observing network latency between two sites about 1000 miles apart, and I noticed that even though the latency was usually around 70 ms, the standard deviation seemed to be much lower, down around 2 or 3 ms. So in this case, depending on how much you want to delay things (you can't delay things so much that an average typist can outpace you!), you could use one of a set of several different delays between keystrokes. You might encode 3 bits by doing intervals spaced 5 ms apart. So, 50 ms for 000, 55 ms for 001, 60 ms for 010, 65 ms for 011, ..., 85 ms for 111, and 110 ms for no-op. (Things get complicated, but I'm assuming you'd want a bigger gap between no-op and the others since no-op will occur very frequently.)

  4. and now, to celebrate... on Java Regular Expressions · · Score: 1

    And now to celebrate this new-found ability to manipulate strings easily:

    s/trench,/trench/;

    Ah, I knew that would make me feel better.

  5. Re:Catastrophic Failure of Flash Memory on The Benefits of Hybrid Drives · · Score: 3, Informative
    The technical specifications of the flash memory in my USB drive says that it is guaranteed to work for, at most, 100000 (i.e., one followed by 5 zeros) writes.

    I thought I'd seen specs an order of magnitude larger than that in many cases, but the problem still may not be as bad as you think in many cases even if it is as bad as 100000 writes. The reason? Flash devices have systems built in to their controllers specifically to deal with these problems. The mechanisms may vary, but the ones I know about are wear leveling and excess capacity (beyond the capacity that the device reports to the operating system) that can be pressed into service when a block fails.

    Briefly, wear leveling means that if you write to the same logical address over and over, the controller will map that write to different physical addresses each time. That means that you can't wear out the device by rewriting the same file over and over again; instead, you only add a little bit of wear to each physical block on the flash device. The concept is a little bit like rotating the tires on your car except that it's a more dramatic win since write patterns can be much more uneven than wear on tires on a car.

    The other mechanism for mitigating the effects of limited flash life is putting excess capacity aside (so that it's not reported to the OS) to be used when a physical block does fail. Since it's a matter of probability just which write will cause a given block to fail (meaning that some will fail after less than 100,000 writes and some will probably last much longer), even with wear leveling it's unlikely that all blocks will fail at once. It should be easy to tell when the pool of spare blocks is nearing exhaustion and give you advanced warning that your flash device is wearing out. So in that sense, it is actually safer than hard drives, which tend to fail without warning.

    Finally, this whole thing reminds me of the reaction some people (mostly audiophiles) had to compact discs, and digital audio in general, when it first began to replace analog systems. There was some resistance to the technology because it was sure to sound artificial: after all, you were taking the music apart into discrete steps and putting it back together again. Obviously, a system which broke a waveform down into a discrete step can't ever really reproduce exactly the same waveform as the original. And that's true, but what they missed was the fact that analog systems can't ever reproduce exactly the same waveform as the original either. Both systems have limitations, in this case distortion of the signal, and the true question should be not whether the proposed new system has limitations, but whether the limitations of the new system are worse or better. (The answer to that may depend on the intended use.)

    I think the same thing applies to flash devices. Yes, you may have a hard drive that has been humming along for 5 years without a problem, and that's fairly common, but hard drives do fail. When I was a system admin, I saw my fair share of them. (I've seen a few since then too.) The key in the case of flash is probably to get in place a nice warning system that can take advantage of the ability to notice that spare blocks are being depleted and warn the user when failure of the device is nearing. I haven't researched it carefully, but perhaps SMART would be useful for this in some applications, such as where flash is replacing hard disks.

  6. the best use of this technology on Knock Some Commands Into Your Laptop · · Score: 1

    Seems to me the best use of this technology is to do something that nobody has ever been able to do with a computer before: make a realistic pinball game, one where you can actually nudge the machine to control the ball (and risk getting a tilt).

  7. Re:Forget the small details... on AMD Launches Counterstrike Against Core 2 Duo · · Score: 1
    Now Intel's comeback means we're seeing the start of a new growth of CPU power, this time into multi-core land, a nice solid metric on which to compete. You can fudge the Ghz but you can't really fudge the number of cores.

    Sure you can. And as a matter of fact, the trail to do it has already been blazed.

    Namely, Sun's Niagara processor (i.e. UltraSPARC T1) has 8 cores on a die and 4-way hyperthreading (to use Intel's terminology) per core. The goal is maximum throughput, and I'm a fan of the processor. But make no mistake: the 8-core chip isn't 8 times as fast as other SPARC single-core chips. Instead, the cores are stripped down. The idea is to make a core that's fast, but not state of the art and super sophisticated, on the theory that the smaller you make each core, the more cores you can fit on a die and that more cores == better for certain workloads.

    So each core on a Niagara chip is fairly unsophisticated. I don't know the exact technical details, but we can start with one thing that most cores have that a Niagara core doesn't have: an FPU. Instead, there is an FPU that is shared among all 8 cores. This makes perfect sense considering the goal was to build a chip that can do stuff like web servers and databases with the best throughput possible, and both of those rarely if ever use floating point.

    But, I'm sure there are other ways they have economized in the cores as well: modern superscalar processors have all kinds of clever tricks like dispatching operations to more than one ALU at once, branch prediction, deep pipelines, speculative execution, SIMD operations (MMX, SSE, AltiVec), and when making a multi-core system, you could easily leave out some of the more expensive (in terms of die real estate) items and make a simpler core. Maybe you put 2 ALUs instead of 3, or maybe you just reduce the amount of L1 cache a little bit.

    Whether any of this would actually happen in competition between AMD and Intel is another question. Somebody will do benchmarks, and the truth will out if they skimp on features per core. But if the competition reaches a point where there is pressure to get 8 or even 16 cores on a chip, I guess it could happen that they might start cutting corners on individual cores to reach the overriding goal of more cores. On the other hand, designing a whole new core is quite an undertaking, so the pressure to do this would have to exist for a while before they'd bother, probably.

  8. Re:Disappointed..... on Shuttle Launch Success · · Score: 1
    So I would incur obligations because someone else has entered into this contract? This is a horrible abuse of the word contract. I few problems with the constitutional democracy you describe. But I do have big problems with it being labeled a 'contract'.

    I looked up "contract" in the Wikipedia (that you linked to) and also in a traditional dictionary. Both seemed to agree the essential characteristics of a contract is that it's an agreement and it's enforceable by law.

    Since constitutional government fits this definition easily, I will have to assume the problem you have is with the idea that a group of people could enter into a contract rather than a contract being between individuals. That's a bit of a philosophical question, so I suppose I can't ever answer it fully, but I will say this: there are times when decisions must be made as a group if there is to be any hope of having a good outcome.

    For example, suppose you and 3 of your friends have decided to take a trip across the desert. You hire a driver and all hop in his car. You've driven for 4 hours through desert and have another 6 to drive until you reach civilization again. You're hoping for some kind of fun outcome if you manage to cross the desert, but a sign has just informed you of the distance to the next gas station and it's far enough that the driver believes you have a good chance of running out of gas before you get there. So, you have a choice: you can either drive on and take the risk, or you can turn around. If you drive onwards, you might end up stranded in the middle of the desert, but you also might end up reaching your destination just fine. If you turn back, you should be able to reach another gas station on your way home (early) without significant risk, but you will definitely not have time to make it to your intended destination and your trip will be ruined. The driver wishes to be paid an extra $100 to press onwards because of the extra risk, but he will return home early for $50 less than the prices you agreed upon when you hired him originally (because of the shorter trip).

    In this example, the 4 of you must decide the issue together. The car can either go forward or turn back; it cannot do both. It could probably do some other third thing, like sit on the side of the road and wait forever until you all starve while trying to make up your minds, but that wouldn't benefit anyone. When you do make up your mind, you will have to, as a group, make an agreement with the driver about what you are going to do. So, to me, the idea of a group entering into a contract makes sense. It's something that happens every day in the real world.

    Still, the point here is not whether every individual has given their consent. Instead, the point is the terms under which the rulers have been given their power. In some forms of government, the rulers' power is not limited; it is absolute. The point of saying government by contract is not whether any one individual has the right to veto the whole thing. Instead, the point is that the government's powers are limited to what is spelled out in the contract. The government is there, in theory, to do only what the contract says; nothing more, and nothing less. Their powers are not arbitrary. They are explicit and only exist because they have been granted through contract, not because the rulers have some kind of right due to their social class, their family line, or anything else.

  9. Re:Disappointed..... on Shuttle Launch Success · · Score: 1
    When do Americans sign this contract? What happens to people who decide not to sign this contract? What room do individual Americans have to negotiate the precise terms of this contract? What happens to Americans who renege on this contract?

    It is collective bargaining (just like what labor unions engage in). The decision isn't an individual one. The contract is between the people, collectively, and the government. Nevertheless, the individuals do get a vote in what the decision is.

    In some cases, the vote is explicit. When the original 13 colonies united, they voted on whether to ratify the Articles of Confederation and then the US Constitution. Changes were made as a result of the vote; indeed, the Bill of Rights had to be added to the Constitution in order for it to be approved.

    The observant person will probably notice that there are now 50 states. The other 37 states each voted on whether to join the Union. That is when individuals got the most direct input into whether they wanted to agree to the contract. I certainly don't remember all the details, but I believe in many cases the vote on whether to join the Union was a popular vote (not a vote of a representative body).

    The power to vote on changes to the Constitution remains, in some sense, still to this day. If a constitutional amendment is proposed, it must be approved not (just) by the US Congress (both houses) but also by the states. As I understand it, the states are free to determine internally how they conclude whether or not to approve the amendment. A state could, I believe, put it to a popular vote if they chose to do so. That decision is up to the individual state, which of course depends on how the state's constitution has been written. Generally speaking, I believe state constitutions follow a similar pattern: the constitution can be amended if the people or the legislature feels it needs to be changed, whatever the system may be.

    So basically, individuals have a say in how the government is working for them, and if there is a movement to have the way the government works changed, individuals get a vote in that. They don't each individually get to decide on their own set of rules, but they do each get a vote on what the set of rules (that applies to everybody) will be. So of course there is some tyranny of the majority, but no system is perfect...

  10. Re:Damn Right! on Enron's Kenneth Lay Dies · · Score: 1
    And anybody who talks about "stress factors" like being pilloried in front of millions of people or facing spending the rest of his life in prison, is just spreading misinformation.

    Wow, it's not often that one gets the opportunity to work a vocabulary word like "pilloried" into a sentence. I've been waiting for a natural opportunity to use that word for years and haven't gotten one. I guess all I can really say is, Kenneth Lay may have found a way to avoid going to prison, but it was definitely a Pyrrhic victory.

  11. Re:When is it my turn? on Shuttle Launch Success · · Score: 1

    Drag, the need to bring fuel with you, weight of engines, etc. -- all very good points. I was thinking, however, of something more like a big underground (or above ground, whatever) tube with electromagnets bringing the craft up to escape velocity near the surface. Then it just coasts the rest of the way.

    I can't think of any clever way around air friction, though. And doing the math, if I want to reach 11200 m/s without accelerating faster than 5*g at any time, then I need at least a distance of 1280 km to do my accelerating over. I'm now talking about either building a phenomenally tall tower or digging hundreds of km into the earth to build my tube that has the electromagnets slinging the thing into orbit. So the cost would be fairly high. I'm not even sure we have the technology to dig that far down and build a stable structure. (That's a significant percentage of the diameter of the Earth, actually...)

  12. Re:Disappointed..... on Shuttle Launch Success · · Score: 3, Insightful
    As a non-american, I'm just curious. What independence are you celebrating? What is it that you gained independence from? Are you still independent of it today?

    I'm just going to give this a straightforward answer. I think there may be some anti-US subtext going on in your comment, but it's so short I'm not going to read that into it, or tease it out, as the case may be.

    So, the answer is, the thing we are celebrating our independence from, most specifically, is British rule. As someone else has already pointed out, July 4, 1776 is the date of the public announcement of the signing of the Declaration of Independence. (It was signed a few days before July 4th.)

    A little less specifically, we are celebrating our independence from colonial rule. This is something about a zillion other countries do, on account of so many countries being former colonies. You can count India, Australia, 90+% of the countries in Africa, 90+% of the countries in South America, and several other countries as members of the club of former colonies.

    More philsophically, the US is celebrating its independence from monarchy, and not just monarchy specifically, but all forms of arbitrary, non-representative government in general. The government of the US is explicitly a contract between the people and the state. The state's power is justified because the people have given it the power, rather than (say) divine right or tradition. There are term limits on most offices, regular elections, and just about any regular person can stand for office: there is no need to be royalty or to be a member of a ruling class. Indeed, the US Constitution explicity forbids the granting of any "title of nobility".

    Whether all this idealistic stuff really represents the way things work in reality is another question. A decent argument can be made that the US declared independence because it didn't want to pay taxes to Britain back home and it thought it could get away with it. That a constitutional government was set up afterwards might not have been the main point, although it was a good thing. In fact, it wasn't until after the Revolution was sucessful and we were independent that it was even determined what independence would mean and what we had fought for. The US Constitution wasn't even ratified until after the Articles of Confederation failed. In a sense, we are United States 2.0, because United States 1.0 was a failure after about a decade. And even after the Constitution was put in place, it took a few decades before we really had decided how the country was going to operate. One could argue that our national identity wasn't really defined until Jefferson's presidency, which started a full 25 years after the Declaration of Independence.

    So basically, we are celebrating independence from Britain, independence from colonialism, and independence from arbitrary, non-respresentative rule. We are still independent of all three of these things, mostly. In fact, most of the rest of the world is free of them now, too. There are still some monarchies in the world, but most of them (such as Britain) are in name only. Liberalism and democracy are virtually the norm in governments these days.

  13. Re:When is it my turn? on Shuttle Launch Success · · Score: 1
    Rutan makes many points to ponder - which highlight questions I myself have wondered. For instance, why can't I fly to space yet? Why is it so hard?

    You know, I was going to say it's because it takes an absolute shitload of energy. You've got to overcome the Earth's gravity. The energy required is the integral of the force over the distance, and there is a lot of force (gravity) and a WHOLE lot of distance. So it seems like if you do the math, it's just really, really terribly difficult to imagine it ever becoming affordable.

    Doing some quick calculations, the escape velocity of the Earth seems to be 11.2 km/s. Let's assume you have a very light craft which only takes one person into space and has a mass of only 100 kg including the passenger, requires no energy for life support, has no air friction, etc., etc. Then, 11.2 km/s and 100 kg should determine the energy required to escape the Earth's gravitation pretty accurately.

    To reach that speed, you'd require 0.5 * 11200^2 (m/s)^2 * 100 kg of energy, which is about 6.27 billion joules. Seems like a huge amount. Got to cost a LOT.

    But let's assume you can somehow convert electrical energy from the grid into the energy required to hit that speed. Maybe you build yourself a big old linear accelerator with electromagnets or something. Kind of a vertical bullet train thing. And let's assume you pay $0.10 per kilowatt-hour, which is about what I pay. It turns out 6.27 billion joules is about 1750 kilowatt-hours. At $0.10 per, that's only $175.00. One hundred and seventy-five dollars. That's coincidentally what I paid for electricity this last month!

    And, if I remember correctly from my college physical class, the amount of energy to reach orbit is exactly half the energy required to escape the gravitational pull. That means you actually only need $87.50, or about $90 in energy (if you can get it as electricity) to reach orbit! (Of course, you need some energy to get back out of orbit, but there are ways of handling that...)

    So... holy cow... can it really be that cheap? $90 worth of energy as an absolute minimum to go to space!? That's less money than I'd spend for gas on some road trips! Can anyone spot a flaw in my calculations, or is it really that small an amount of energy that's absolutely required?

  14. Re:I would still be using Google on Microsoft Workers Prefer Google · · Score: 3, Interesting
    ... even if I had the chance to work in Microsoft.

    So would I. I would still use google even if given a chance to work at Microsoft. Of course, that probably has something to do with the fact that, if they offered me a job, I wouldn't take it.

    You can call me dogmatic, but I have a very practical reason for not wanting to work at Microsoft: I've spent the last week or so reading up on SMB and NetBIOS. Egads this stuff is messed up. I had almost come to believe that the stuff about Microsoft software being crap was just bias from open source advocates, but the more I learn about it, the more I realize how truly aweful and stupid it is. And how does this relate to my practical reason for not wanting to work at Microsoft? The reason is, if I worked at Microsoft, there's a reasonable chance I'd end up having to maintain some of this crap. No thank you. They made the bed, and I think I'll leave them to lie in it.

  15. Re:Lucky Him on Flying Faster Without ID · · Score: 1
    The purpose is not to stop terrorists. It's abundantly clear that the measures that have been taken are ineffective at doing so. The purpose of airline security is assure middle America that Something Is Being Done.

    I'll go you one further: the government to some extent probably feels like it is doing the right thing by taking decisive action (as opposed to carefully evaluating what is the best approach), but perhaps the main reason the government wants people to feel like something is being done is that the government is trying to help out the air travel industry (airlines, airports, etc.), which suffered extremely difficult times financially after 9/11.

    Or to put it another way, it's a public relations campaign conducted for free by the US government on behalf of the airlines.

  16. Re:Here's a scenario to show that you're wrong. on Flying Faster Without ID · · Score: 3, Funny
    And I'm not middle eastern, I'm of pasty Irish ancestry. I could pass as a danish. /rimshot

    Wouldn't that be pastry Irish ancestry then?

    Part of me wants to offer my own /rimshot after that, but then my joke was bad enough on its own that I'm sure I have the will to go through with it.

  17. Re:Privacy Implications of IPv6 on 6Bone IPv6 Network Shutting Down Tomorrow · · Score: 1
    Never, EVER, use 192.168.1.x for an internal network. Roll some dice, pick numbers out of a hat, or anything to pick something different for that 3rd octet. You have nobody to blame for that configuration problem except yourself.

    Sure, that's mostly effective. If people pick the third octet at random, that will avoid a lot of collisions. Not all of them (think of the birthday paradox, and there are only 256 possible third octets, compared to 365 possible days in a year), but it will reduce the odds a lot.

    However, in my opinion, this is one of those areas where you can think of ways around problems, but the fundamental truth of the situation is that the design of IPv4 isn't really working well for the current needs, and all these little tricks (like thinking to choose the third octet randomly) are just coping mechanisms. If IPv6 were in wide use, you would just have unique numbers and there would be no need to play games with choosing random octets to avoid collisions.

    Now, having said that, in my particular case at the site where I am the admin, I didn't choose 192.168.1.0/24, but some previous admin did back when the company was really small, and now I'd have to renumber the entire network to get us off of that. Did I mention that some of the hosts on the network are in an office over 1000 miles away? Yes, it's possible to fix this, but most likely we will just live with it instead, because the benefits of fixing it don't outweigh the cost.

    Of course, if it were me, I never would've picked any block out of 192.168.0.0/16. I would've picked something out of 10.0.0.0/8, and if I had been smart, I would've picked the middle two octets at random.

  18. Re:lb? on Notebook with Huge 20 Inch Screen Reviewed · · Score: 1
    I just wondered, why are pounds written as "lbs"? I found the answer here

    I already looked into that. My dad and my uncle, when they were fairly young kids (maybe 6 or 8?) got a job selling some kind of fruit or something door to door, and they did their darndest trying to sign people up to buy this or that many "lubs" of fruit. Much to many of the neighbors' amusement.

    I myself heard that story when I was a kid, so I got curious about it and, I think, asked my teacher at school why it was written "lbs." anyway, and ended up finding out the Libra answer.

  19. Re:slugs on Notebook with Huge 20 Inch Screen Reviewed · · Score: 1
    4.64371564×10^27 atomic mass units, for the physicists

    Or a little over 0.15 zentner for Germans who don't like these newfangled metric units.

    (Or for people who are bored enough to go digging through the output of strings /usr/bin/units and use that as a launching point for some creative google-based time wasting.)

  20. Re:Privacy Implications of IPv6 on 6Bone IPv6 Network Shutting Down Tomorrow · · Score: 3, Informative
    I honestly don't understand the hard-on a lot of people seem to have for IPv6. I LIKE NAT. I thinks it's neat. I like the idea that my systems can have un-real IP addresses. IP addresses that can actually change!

    IP addresses that can conflict with the range of addresses that some Internet cafe chose when you try to VPN into your network from outside! Conflicts that cause routing nightmares! Hey, my home network and Starbucks are both using 192.168.1.0/24 so it's impossible to tell the difference between my 192.168.1.99 and the 192.168.1.99 that another Starbuck's customer is using! Yay! ;-)

    Seriously though, the public side of the NAT has to have a routable address. With IPv6, you could have a routable address for the hosts on your private network, but you don't have to have that address visible in any packets that leave your private network. You can still do NAT, and your routable addresses won't be visible to the outside world, just like your 192.168.1.0/24 addresses aren't visible to the outside world right now.

  21. Re:Investigators liability? on The Pirate Bay Is Back Online · · Score: 1
    Remember that this is Sweden, not USA we talking about, in here the police doesn't have any more leeway when it comes to laws than normal citicens.

    So in Sweden, if the speed limit is 100 km/h and if a policeman behind you sees you going 110 km/h, he can't exceed the speed limit in order to catch up with you and give you a ticket?

  22. Re:Rethink your approach, perhaps on Making an Argument Against Using Visual-Basic? · · Score: 3, Informative
    Have you dug a bit to find out why he's so pro-VB6? Maybe he's biased against .net because it's an interpreted language (like Java)?

    Aiiighghghghhhhh!!!! Why, why, why do people keep saying this?!

    Java is a compiled language. The Java source you write gets turned into native machine code. It's just that the compilation happens at runtime, unlike with many other languages where it happens earlier. Same process, different time.

    It's not like this is a new concept. For one thing, the documentation describing it has been up on the Java web site for years. For another thing, people on Slashdot have been saying it for years. And for another thing, LISP environments that do incremental compilation to machine code at runtime have been around for at least, what, 15 years? Some quick googling indicates that language environments that compile stuff to native machine code at runtime have been around since 1968.

    And heck, it's not as if it's even all that high tech or complicated in certain ways. You don't need something as esoteric as the internals of a JVM to see machine code being generated at runtime. If you want to see it happen on something simple, go to your nearest Unix or Linux machine and type "tcpdump -d not port 53". Notice that it spits out machine code? Now try some different filter expressions like "not host 127.0.0.1" or "host 127.0.0.1 and tcp and port 25" and watch how the assembly code changes. Yes, that's right -- even tcpdump compiles code at runtime, at least it does so with the packet-matching code, which is where the speed is really needed.

    So hopefully it's not too hard to comprehend now that modern JVMs do the same thing, and as far as I know, so does the .NET virtual machine.

  23. Re:Er. Wait. on Voyager 2 Detects Peculiar Solar System Edge · · Score: 1
    That's two data points, and "bulging" implies a highly irregular shape, or at least an even shape that couldn't be accurately modeled by two data points.

    Wouldn't it be equally as logical to say that it's just expanding/contracting? How can they know with only two points?

    I would like to point out that with two data points, there is sufficient information to conclude that the heliopause has an irregular shape. However, having only two data points means we don't have sufficient information to determine which dimension the irregularity is in: space or time.

  24. let them choose on Should Students Be Taught With or Without an IDE? · · Score: 1

    Let them use any tool that allows them to compile the code properly. Choose one or two tool sets (perhaps one IDE tool set and one non-IDE one) to recommend, and provide instructions for those two. Make it clear that although they can use anything they want, you can't guarantee that you can help them with questions unless they are using one of the recommended ones. Explain the advantages and disadvantages of both so students can make an informed decision.

    Being flexible has the advantage that students will learn to make choices that affect their ability to get things done. They can judge based on their experiences and their classmates' experiences whether they've made the best choice or not. If they've never used anything but an IDE and they want to learn about the command line, they can. If they don't want to or aren't at the level where they're ready, they don't have to. But those who are ready and who are interested can learn more of the guts of the compilation process. Also, even if most students don't choose the command line, the fact that some students do choose it (hopefully) might create awareness that it's an option. The act of thinking about the choices educates them no matter which they pick.

    Basically, unless I understand the purpose of the course wrong, learning about the compilation process isn't one of the core goals. Some people won't be ready for that and it will only frustrate them for little gain if any (it might be a net loss if the frustration prevents them from learning everything else), so making it optional relieves that problem but allows those who want to learn something extra to learn it.

    (For what it's worth, I originally learned on an IDE: it was Turbo Pascal 3.0. Worked well. I learned to use vi and cc (no, not gcc, yet) soon enough.)

  25. Re:Network computing? on McNealy Created Millions of Jobs? · · Score: 1
    There was a company that used to sell greyscale X displays (Wyse? I'm not sure) long before 1992.

    Wyse did sell X terminals, but I believe NCD did it first. And they were 1-bit (black and white, not greyscale), at least the early ones were.

    But, what do you think people hooked them up to lots of the time? Suns. What do you think served the bootp and tftp protocols so that the NCD could boot? Pretty often, it was Sun machines.