Perl's 'regexes' are, as Larry himself put it, already well outside the realm of what was originally considered a 'regular expression'. I still remember "pure" regexps from CS101: no capturing, no character classes, not even a '+' (1 or more) operator, since it can be emulated with something like 'xx*'. However, Perl 6's new pattern-matching rules look very interesting; it's really a full-blown parsing toolkit, complete with statful match objects, named (potentially recursive) rules, full closures within matches, etc.
The only thing that concerns me, really, is the scale of what the Apocalypes have proposed. Yes, the Parrot VM is moving nicely along, but the actual implementation of all of Larry's new design decisions seems to be lagging well behind their creation. I have a lot of faith in the core Perl hackers' abilities, but the climb from here to Perl 6 is not going to be an easy one.
Personally, I've started looking a lot more closely at Parrot and the Apocalypses (Apocrapha?) since I saw the regex article, and am hoping to be able to get up to speed to get involved in the project over the next few months. I recommend that anyone else who shares my interest (and has any background in parsing and compilation, test case management, VM tuning, etc.) do the same.
(Note: I'm already a fairly dedicated Python user, but as a language geek, have grown pretty seriously tired of some of the limitation of the language, like one-expression lambdas, weird "special" variable names like '__init__' and '__name__', etc. Plus, if you're trying to do code generation, the whitespace-delimited syntax is a bitch.)
Your comment echoes a number of standard arguments against the Aqua, and while I don't agree with all of them, there's no point in covering that territory again.
However, I think you missed a number of positive elements to the full OS X user experience that are missing from most other desktop environments, which might help to balance the evaluation somewhat.
First, we have the Dock, borrowed (though not without modification) from NeXTStep. Some people love it, some people tend to just ignore it, but personally, I find one feature it has to be *extremely* useful: dynamic icons for applications. The most commonly-seen example is the Mail app, which overlays a small red circle with the number of unread messages any time new mail arrives.
Second is my favorite "window dressing" feature of Aqua: the drop shadow applied to each window. It's a subtle thing, which I didn't realize the value of until I installed a hack that removed it -- suddenly, I lost what I had gradually come to rely on as a stable visual clue as to which window had focus.
Third is the standard design for toolbars in (Cocoa apps, anyway) that allows drag-and-drop addition or removal of commands, and a browser-like selection of displaying just the icons, just the text labels, or both. That means that since I like preserving screen real-estate, but still use a toolbar in some apps, I can switch things to only a text label, while my girlfriend, who uses OS X but isn't a hardcore techie, can leave all the icons in.
It's exactly these kinds of details that take real usability testing, good design, and *time* to do well. When you come right down to it, the biggest advantage that Windows and the MacOS have over open source desktop environments is years of little tweaks and polishing.
Personally, I think that the KDE crew is on the right path: start with a simple desktop environment similar to what people already expect, and just pound away on the little stuff until the whole interface looks good, works consistently, and offers users in widely different experience levels a worthwhile experience.
It *is* effectively just a "very light java applet...that just makes all calls across xmlrpc". However, the UI itself is built from JavaScript, a custom XML format, and PNG graphics, rather than Java code.
That's both a good and bad thing; it's good it you write your interfaces by hand, or want to generate them on the fly from some external data source, but it's bad if you like to use a RAD tool to prototype your UI by dragging and moving UI elements on the screen graphically.
Or, use a browser that lets you selectively accept or block cookies from each domain...it's also an interesting way to find out exactly who's trying to track you, and keep random ad banner exchanges, etc., from being able to assign a global id to you.
To bring this back on topic, let me ask you this: will there be a market in the future for consumer electronics devices (cell phones, PDAs, etc.) that give you the same level of control over how much information you're willing to share?
Your pocket actually isn't much of a problem, unless you're wearing pants made out of metal or concrete...it's the heavy (microwave-blocking) building materials in the city that really cause problems, along with (to a lesser extent) the water in your body.
Traditional radio stations pay the rates and fees that they do, at least in part, because they are given slices of the "public" radio bandwidth by the FCC for their broadcasts.
The biggest problem with the new rate structure is that completely non-commercial, amateur Internet broadcasts, which are entirely *legal* (unlike their radio equivalents) will be *effectively* prohibited by the fees, tracking requirements, and back royalties enforced by the FCC.
Today we see another fine example of the federal government becoming the enforcement arm for major corporate interests. This new fee system was not made to benefit consumers, or to protect the innovative world of Internet audio broadcast, but to answer the fears of the RIAA.
Big conglomerates already own something like 80% of the radio stations in this country, and this new set of regulations will give them all the bargaining chips in snapping up any popular Internet stations. So much for finding new, interesting music on the 'net...it'll be Top 40 for everyone, from here on out.
I read a great Macworld article about the second generation of NeXT boxes, which compared their performance, functionality, and quality to the high-end Macs of the same era (Quadras, for those who remember the 68040).
The general outcome was that the NeXT boxes were faster, prettier, had better bundled software, and generally kicked the asses of equivalent Mac systems at the time. Of course, there were only a few dozen NeXT-compatible applications at the time, but that was just a matter of time, right?
IMHO, what really killed the NeXT systems was lack of software, which was in turn driven by their use of Objective-C. Obj-C was a great language, but it wasn't what anyone else used: Mac and Windows folks were committed to C and C++ by that time, and the UNIX world was (as always) all about C, Tcl, Perl, and the like.
Apple has two diehard, core groups of users: education/home types, who don't know the difference between RAM and a hard drive, and creative professionals, who just want the damn computer to get out of the way while they run Photoshop, Final Cut Pro, or whatever.
Neither group cares about, or wants to deal with, some amazing new advance in HCI technology. Voice recognition, gesture-based control, and 3D UIs are all great academic concepts, but they have yet to be adopted and understood by the general public. People who don't care about computers as objects of techno-lust, and only want to get real work done, tend to ignore "amazing" technologies that don't already plug in to the latest version of Office, IE, and Photoshop.
Granted, it's a sad state of affairs, but more or less unavoidable given the fact that absolutely computer-illiterate people drive the strong majority of the technology market. For every avid/. reader, there are 500 people who just want the box to run their web browser, email software, and games, and don't care how cool the underlying tech is.
Actually, Dvorak did mostly the opposite; he singled out the Mac, and Apple, for failing to bring about some mythical "new thing" (i.e., a 'talking computer') that brought about a revolution in computing. His descriptions of OS X were pretty positive, despite the overall tone of the article being highly critical of Apple's technology.
Personally, I find this kind of whining, psuedo-advocacy bullshit extremely annoying. It's far too easy for media pundits with no programming or interface design experience to complain endlessly about how operating systems and applications haven't advanced since the late 80's, without offering any concrete evidence to the contrary.
Even the hallow Amiga, BeOS, and other ill-fated "visionary" platforms have failed to move beyond slightly improved versions of the WIMP model for user interfaces, and yet people seem content to deal with their mediocre systems.
I wonder: is it possible that the general public (random columnists included, of course) are not able to conjure up some immensely more effective model for human/computer interaction? I suppose not; Dvorak obviously has much greater plans for the personal computer, and is simply biding his time until he can unveil the great revolution in computing technology locked inside his massively effective cranuim.
Give me a break. This isn't news; it's a random thrust for publicity by a mediocre, middle-aged technology columnist whose popularity has waned since he left the safety of the Mac fanatic world.
My only question is, why didn't he target Microsoft, or IBM, or any of the other massive corporations that seem perfectly content to release year after year of forgettable upgrades and minor enhancements to software and hardware that adheres strictly to the status quo? Apple, of all companies, hardly deserves to be singled out for failing to take heroic measures to innovate in the arena of personal computing...why not put the pressure on the real market leaders (i.e., the folks pulling in the most money)?
So first, you need to pay teachers as much as programmers, and then maybe you'll be able to get a more geniuses (such as the many "instant experts" here on/.) into the field. Then, the kids can all use PDAs running Linux to do their math homework, learn programming, and become open source advocates in one fell swoop!
Seriously, though, I don't think that having calculators or PDAs in the classroom is going to be the deciding factor in the quality of a kid's education. A teacher who doesn't know the subject matter is going to compensate any way they can, technology or no, while a good teacher is going to use whatever tools they have to improve the learning experience for their students.
Unfortunately, any StrongArm-based PDA (such as the iPaq) has no math coprocessor, IIRC, so it would make a pretty lousy host for any non-trivial math software. Basic graphing or spreadsheet-level calculations would be fine, but anything requiring a lot of floating-point math is going to get ugly.
Personally, I'd much rather have a rack of XServe 1U boxes than Transmeta chips -- G4 processors may not be quite as power-efficent as Transmetas, but they also run at higher clock speeds, have two processors per mobo, give you fast 128-bit vector processing unit (very nice for scientific calculation), and still beat the pants off of PIII/IV and Athlon chips in the power/heat/size arena.
The only trick would be getting the things to work properly in a headless configuration -- Apple won't ship them without a graphics card, but I'm relatively certain that you could get a LinuxPPC installation to work even without the card installed.
I have to admit that I was a bit shocked, when I first read this post, as every K12 district I've seen (and before you ask, it's quite a few, as I have several teachers and an educational IT consultant in my family and close friends) already has a policy limiting use of the Internet on their network to approved educational tasks. This almost universally includes the teachers, as well. These policies are usually worded so as to restrict everything by default, and explicitly allow only certain ports/hosts to carry important services (web browsing, email, etc.)...kind of like a good set of firewall rules.
Really, this shouldn't be an issue. Your district should have policies in place to protect the network from user stupidity, and if it doesn't, you're just going to be up shit creek. Cutting off ports, throttling bandwidth, etc., are only going to be successful as long as your users are complacent, effectively computer (or at least networking) illiterate, and willing to believe the BS you hand them by way of explanation. One competent user in the bunch could cause serious problems for you, once you've established a pattern of simply lying through your teeth about what's going on.
Have you used XDarwin much? Framebuffer-based X makes Quartz look like it's written in ten thousand tight lines of assembler, and the "wonderful variety" of user interface styles (GNOME/GTK+, QT, Motif, raw Xlib, etc.) make for a very inconsistent experience.
Don't get me wrong: for industrial-level stability, quality of development tools, heavy-duty programming and debugging, etc., the Linux/XFree route is great. In fact, I spend about 80% of my time at work developing on Linux. When I get home, though, and just want to do some web browsing and email, or maybe some light scripting, the consistency and quality of Carbon and Cocoa apps' interfaces is definitely a Good Thing.
First, while it's entirely within your rights to refuse to disclose your SSN, it's also entirely within the rights of most businesses, credit providers, etc., to simply refuse to offer you services without the information. People "sell" their privacy on a daily basis, and will probably continue to do so as long as credit and convenience are the top priorities of our society.
Second, Social Security Numbers are not, I repeat, not, a reasonable form of identification. They are a very low-order numeric designator, which is completely useless as proof of identity. Hell, the number is shorter than a phone number with area code, and phone numbers are designed to be easy to remember by the dozens.
This was really driven home for me recently, when my girlfriend and I were submitted a rental application, and found out that some woman in LA had used my girlfriend's SSN in a bankruptcy hearing two years ago, resulting in a nice, fat warning siren going up every time someone did a credit check on her.
We really, really need good PKI and trust metric systems, not more "secret" identifiers that can easily be stolen and mis-used. The technology exists, and it certainly can't be any worse than the current state of affairs, which is basically a case of security being totally based on random chance and a poorly-educated public.
Ugh...flourescent lights...truly the bane of the working class. I find that I'm at least twice as productive when I'm working in good, natural lighting, or at least under decent full-spectrum bulbs.
Strangely enough, I'm also usually much happier working on a full-size laptop (often actually in my lap, no less!) than a desktop machine; something about the ability to shift posture regularly, and have the computer move with me, does me more good than any number of ergonomic keyboards and back-supporting-chairs.
Really, formal methods are just another way of tapping into a developer's existing knowledge of the problem, and re-stating it in a way the computer can understand. The difference between "formal" and "informal" styles of programming is mostly that formal methods offer languages, tools, and techniques for modeling a program as a mathematical system, and then analyzing that model to look for obvious problems.
Every time you use a compiler, you're already half way to the side of formal methods -- letting the computer analyze and make assumptions about your code, in exchange for not having to write assembly routines yourself every time. Similarly, if you work in a strongly-typed language like C, C++, or Java, you're relying on a very "formal" means of error-correction: type checking.
That doesn't change the fact that programming is a creative process, simply because the concepts being thrown around by a "formal methods" user are more functional. Personally, I think that good math is every bit as aesthetically pleasing and creative as a great novel, and have personally met a number of quite talented mathematicians who were among the most creative, individualistic people I know.
One thing that was especially interesting about this article to me was the use of a machine with such a small screen; 800x480 isn't much space, and those pretty 64px tiles in WindowMaker are going to chew up precious space like nobody's business.
Personally, I'd probably either go with a stripped-down GNOME distro as in the article (though probably straight from the GNOME mirrors, not Ximian) or all the way down to Fluxbox, which has the ever-so-nice feature of tabbed windows, letting you pull tricks like cramming all of your GIMP palettes into one window's size.
Try one of the "compile-from-scratch" distros like Gentoo; if you're willing to spend a couple of extra (largely unattended) hours doing the initial download/compile/install process, you can get a nice, lean, highly-optimized setup that's customized for your machine.
Let's see...Office uses "filesystems within files" named "OLE"...Microsoft is re-vamping the filesystem for Windows...the new Windows FS standard is named "OFS"...see a connection? Hint: if all your major apps are already effectively implementing their own filesystem in userspace (read: slowly), why not move those capabilities into the kernelspace drivers?
Personally, I think this is the right direction to go; just like Reiser's papers on "next-generation" versions of ReiserFS (with keyword and metadata searching built-in), along with the extensive work being done of VFS abstractions for almost every OS. Hell, you could go back to Be's attribute indexing on BeFS, or even the old MacOS resource fork.
Basic UNIX filesystem trees are far from the last word in this area; if they were, no one would need MySQL to support all their webapps. (Actually, it would be interesting to get the MySQL guys involved in some filesystem design work; I'm sure they would have an interesting perspective to offer.)
A few arguments in favor of proper hierarchical naming (i.e., 'nt-dell2.red-block.data-center.internal.company.c om' or 'slot2.rack4.bldg1.ny.company.com', or similar):
Like the central HOSTS.TXT file in the early days of the 'net, flattened DNS entries are practical only up to a reasonable (i.e., 10-100) number of machines; after that, it essentially becomes a brittle, uninformative random string
Sub-domaining will let you divide the load for internal DNS amoung a number of boxes, which could be important if you have a a significant amount of traffic passing between servers, not just in and out.
The host name can not only be determined from basic information about the machine: it can carry useful information about the box to which it is assigned. Of course, this could be misleading if done incorrectly, but it's a useful trick.
The eight-character hostname limit should be somewhat less painful if not every hostname has to be unique; with a subdomain to distinguish potential duplicates, you can use your choice of easy-to-remember, readable names for each machine.
In short, don't re-invent the wheel; subdomains exists specifically to adress this problem, and there's little sense in trying to cram all that information into a single, eight-character-or-less string.
Java3D is actually based on OpenGL. Yes, that means that there is C code running at a low level (i.e., the OpenGL implementation provided by each graphics card provider), but that is no different that *any* language other than C that uses the OpenGL standard, including C++.
I agree that Java may have missed the mark, as far as performance-intensive applications like games are concerned, but given that people are seriously interested in Python-based game development (as evidenced by pygame, PyOpenGL, etc.), I think it's hardly reasonable to attack it on the basis of performance.
Personally, I'd rather hear the opinion of someone who had actually worked on commercial-scale gaming projects. For those of you who have actually worked in the field, what features were present (or missing) from your choice of implementation languages and platforms that would have improved your productivity, or the quality or performance of the finished game?
"Aggregate" can also include "per user" -- which requires determining the number of users. If you're behind a NAT box, or are using a multi-user machine, there's no way to reliably map number-of-IPs to number-of-users. In fact, if you're using a dialup connection (as most non-slashdotters still do), you almost certainly won't have any sort of continuity in IP assignment between sessions, regardless of whether it's the same machine or not.
The date of installation is less clear; it may be a version-check tool, or just a means of informing users when an updated version is available. Of course, all of this could be handled through stock HTTP features (cookies, user-agent strings, etc.), if crack-smoking web developers hadn't come up browser detection schemes that used every fragile hack in the book the make sure that the headers couldn't look any different between client browsers and still get reasonable output from the server.
Re:I overreact as much as the next guy...
on
Netscape 6 is Spyware?
·
· Score: 3, Informative
It's been mentioned in other parts of this discussion, but I'd just like to re-iterate a simple, important concept: every HTTP request includes the client IP address as a component. In fact, most web servers automatically log the address of the client making each and every request.
That's right, kids and kid-ettes: every time you load a web page, your IP address is probably getting logged along with the request. Does that mean that Google could (if they cared, that is) associate every single pr0n search you've done with the IP address of your computer, find out that it was part of your employer's class-C block, and notify them? Damn straight, they could.
Do they? That's up to them (or a court-ordered search) to say; this information is certainly there, if they want it.
Personally, I think that it would make more sense for a coalition of Native American tribes to put the federal government on trial for war crimes, and then kick our sorry asses out. It would make a hell of a lot more sense than any continued bickering by would-be invaders over who "discovered" the continent, considering that it had been quite obviously occupied for some time.
Perl's 'regexes' are, as Larry himself put it, already well outside the realm of what was originally considered a 'regular expression'. I still remember "pure" regexps from CS101: no capturing, no character classes, not even a '+' (1 or more) operator, since it can be emulated with something like 'xx*'. However, Perl 6's new pattern-matching rules look very interesting; it's really a full-blown parsing toolkit, complete with statful match objects, named (potentially recursive) rules, full closures within matches, etc.
The only thing that concerns me, really, is the scale of what the Apocalypes have proposed. Yes, the Parrot VM is moving nicely along, but the actual implementation of all of Larry's new design decisions seems to be lagging well behind their creation. I have a lot of faith in the core Perl hackers' abilities, but the climb from here to Perl 6 is not going to be an easy one.
Personally, I've started looking a lot more closely at Parrot and the Apocalypses (Apocrapha?) since I saw the regex article, and am hoping to be able to get up to speed to get involved in the project over the next few months. I recommend that anyone else who shares my interest (and has any background in parsing and compilation, test case management, VM tuning, etc.) do the same.
(Note: I'm already a fairly dedicated Python user, but as a language geek, have grown pretty seriously tired of some of the limitation of the language, like one-expression lambdas, weird "special" variable names like '__init__' and '__name__', etc. Plus, if you're trying to do code generation, the whitespace-delimited syntax is a bitch.)
Your comment echoes a number of standard arguments against the Aqua, and while I don't agree with all of them, there's no point in covering that territory again.
However, I think you missed a number of positive elements to the full OS X user experience that are missing from most other desktop environments, which might help to balance the evaluation somewhat.
First, we have the Dock, borrowed (though not without modification) from NeXTStep. Some people love it, some people tend to just ignore it, but personally, I find one feature it has to be *extremely* useful: dynamic icons for applications. The most commonly-seen example is the Mail app, which overlays a small red circle with the number of unread messages any time new mail arrives.
Second is my favorite "window dressing" feature of Aqua: the drop shadow applied to each window. It's a subtle thing, which I didn't realize the value of until I installed a hack that removed it -- suddenly, I lost what I had gradually come to rely on as a stable visual clue as to which window had focus.
Third is the standard design for toolbars in (Cocoa apps, anyway) that allows drag-and-drop addition or removal of commands, and a browser-like selection of displaying just the icons, just the text labels, or both. That means that since I like preserving screen real-estate, but still use a toolbar in some apps, I can switch things to only a text label, while my girlfriend, who uses OS X but isn't a hardcore techie, can leave all the icons in.
It's exactly these kinds of details that take real usability testing, good design, and *time* to do well. When you come right down to it, the biggest advantage that Windows and the MacOS have over open source desktop environments is years of little tweaks and polishing.
Personally, I think that the KDE crew is on the right path: start with a simple desktop environment similar to what people already expect, and just pound away on the little stuff until the whole interface looks good, works consistently, and offers users in widely different experience levels a worthwhile experience.
It *is* effectively just a "very light java applet...that just makes all calls across xmlrpc". However, the UI itself is built from JavaScript, a custom XML format, and PNG graphics, rather than Java code.
That's both a good and bad thing; it's good it you write your interfaces by hand, or want to generate them on the fly from some external data source, but it's bad if you like to use a RAD tool to prototype your UI by dragging and moving UI elements on the screen graphically.
Or, use a browser that lets you selectively accept or block cookies from each domain...it's also an interesting way to find out exactly who's trying to track you, and keep random ad banner exchanges, etc., from being able to assign a global id to you.
To bring this back on topic, let me ask you this: will there be a market in the future for consumer electronics devices (cell phones, PDAs, etc.) that give you the same level of control over how much information you're willing to share?
Your pocket actually isn't much of a problem, unless you're wearing pants made out of metal or concrete...it's the heavy (microwave-blocking) building materials in the city that really cause problems, along with (to a lesser extent) the water in your body.
Traditional radio stations pay the rates and fees that they do, at least in part, because they are given slices of the "public" radio bandwidth by the FCC for their broadcasts.
The biggest problem with the new rate structure is that completely non-commercial, amateur Internet broadcasts, which are entirely *legal* (unlike their radio equivalents) will be *effectively* prohibited by the fees, tracking requirements, and back royalties enforced by the FCC.
Today we see another fine example of the federal government becoming the enforcement arm for major corporate interests. This new fee system was not made to benefit consumers, or to protect the innovative world of Internet audio broadcast, but to answer the fears of the RIAA.
Big conglomerates already own something like 80% of the radio stations in this country, and this new set of regulations will give them all the bargaining chips in snapping up any popular Internet stations. So much for finding new, interesting music on the 'net...it'll be Top 40 for everyone, from here on out.
I read a great Macworld article about the second generation of NeXT boxes, which compared their performance, functionality, and quality to the high-end Macs of the same era (Quadras, for those who remember the 68040).
The general outcome was that the NeXT boxes were faster, prettier, had better bundled software, and generally kicked the asses of equivalent Mac systems at the time. Of course, there were only a few dozen NeXT-compatible applications at the time, but that was just a matter of time, right?
IMHO, what really killed the NeXT systems was lack of software, which was in turn driven by their use of Objective-C. Obj-C was a great language, but it wasn't what anyone else used: Mac and Windows folks were committed to C and C++ by that time, and the UNIX world was (as always) all about C, Tcl, Perl, and the like.
Apple has two diehard, core groups of users: education/home types, who don't know the difference between RAM and a hard drive, and creative professionals, who just want the damn computer to get out of the way while they run Photoshop, Final Cut Pro, or whatever.
/. reader, there are 500 people who just want the box to run their web browser, email software, and games, and don't care how cool the underlying tech is.
Neither group cares about, or wants to deal with, some amazing new advance in HCI technology. Voice recognition, gesture-based control, and 3D UIs are all great academic concepts, but they have yet to be adopted and understood by the general public. People who don't care about computers as objects of techno-lust, and only want to get real work done, tend to ignore "amazing" technologies that don't already plug in to the latest version of Office, IE, and Photoshop.
Granted, it's a sad state of affairs, but more or less unavoidable given the fact that absolutely computer-illiterate people drive the strong majority of the technology market. For every avid
Actually, Dvorak did mostly the opposite; he singled out the Mac, and Apple, for failing to bring about some mythical "new thing" (i.e., a 'talking computer') that brought about a revolution in computing. His descriptions of OS X were pretty positive, despite the overall tone of the article being highly critical of Apple's technology.
Personally, I find this kind of whining, psuedo-advocacy bullshit extremely annoying. It's far too easy for media pundits with no programming or interface design experience to complain endlessly about how operating systems and applications haven't advanced since the late 80's, without offering any concrete evidence to the contrary.
Even the hallow Amiga, BeOS, and other ill-fated "visionary" platforms have failed to move beyond slightly improved versions of the WIMP model for user interfaces, and yet people seem content to deal with their mediocre systems.
I wonder: is it possible that the general public (random columnists included, of course) are not able to conjure up some immensely more effective model for human/computer interaction? I suppose not; Dvorak obviously has much greater plans for the personal computer, and is simply biding his time until he can unveil the great revolution in computing technology locked inside his massively effective cranuim.
Give me a break. This isn't news; it's a random thrust for publicity by a mediocre, middle-aged technology columnist whose popularity has waned since he left the safety of the Mac fanatic world.
My only question is, why didn't he target Microsoft, or IBM, or any of the other massive corporations that seem perfectly content to release year after year of forgettable upgrades and minor enhancements to software and hardware that adheres strictly to the status quo? Apple, of all companies, hardly deserves to be singled out for failing to take heroic measures to innovate in the arena of personal computing...why not put the pressure on the real market leaders (i.e., the folks pulling in the most money)?
So first, you need to pay teachers as much as programmers, and then maybe you'll be able to get a more geniuses (such as the many "instant experts" here on /.) into the field. Then, the kids can all use PDAs running Linux to do their math homework, learn programming, and become open source advocates in one fell swoop!
Seriously, though, I don't think that having calculators or PDAs in the classroom is going to be the deciding factor in the quality of a kid's education. A teacher who doesn't know the subject matter is going to compensate any way they can, technology or no, while a good teacher is going to use whatever tools they have to improve the learning experience for their students.
Unfortunately, any StrongArm-based PDA (such as the iPaq) has no math coprocessor, IIRC, so it would make a pretty lousy host for any non-trivial math software. Basic graphing or spreadsheet-level calculations would be fine, but anything requiring a lot of floating-point math is going to get ugly.
The only trick would be getting the things to work properly in a headless configuration -- Apple won't ship them without a graphics card, but I'm relatively certain that you could get a LinuxPPC installation to work even without the card installed.
I have to admit that I was a bit shocked, when I first read this post, as every K12 district I've seen (and before you ask, it's quite a few, as I have several teachers and an educational IT consultant in my family and close friends) already has a policy limiting use of the Internet on their network to approved educational tasks. This almost universally includes the teachers, as well. These policies are usually worded so as to restrict everything by default, and explicitly allow only certain ports/hosts to carry important services (web browsing, email, etc.)...kind of like a good set of firewall rules.
Really, this shouldn't be an issue. Your district should have policies in place to protect the network from user stupidity, and if it doesn't, you're just going to be up shit creek. Cutting off ports, throttling bandwidth, etc., are only going to be successful as long as your users are complacent, effectively computer (or at least networking) illiterate, and willing to believe the BS you hand them by way of explanation. One competent user in the bunch could cause serious problems for you, once you've established a pattern of simply lying through your teeth about what's going on.
Have you used XDarwin much? Framebuffer-based X makes Quartz look like it's written in ten thousand tight lines of assembler, and the "wonderful variety" of user interface styles (GNOME/GTK+, QT, Motif, raw Xlib, etc.) make for a very inconsistent experience.
Don't get me wrong: for industrial-level stability, quality of development tools, heavy-duty programming and debugging, etc., the Linux/XFree route is great. In fact, I spend about 80% of my time at work developing on Linux. When I get home, though, and just want to do some web browsing and email, or maybe some light scripting, the consistency and quality of Carbon and Cocoa apps' interfaces is definitely a Good Thing.
First, while it's entirely within your rights to refuse to disclose your SSN, it's also entirely within the rights of most businesses, credit providers, etc., to simply refuse to offer you services without the information. People "sell" their privacy on a daily basis, and will probably continue to do so as long as credit and convenience are the top priorities of our society.
Second, Social Security Numbers are not, I repeat, not, a reasonable form of identification. They are a very low-order numeric designator, which is completely useless as proof of identity. Hell, the number is shorter than a phone number with area code, and phone numbers are designed to be easy to remember by the dozens.
This was really driven home for me recently, when my girlfriend and I were submitted a rental application, and found out that some woman in LA had used my girlfriend's SSN in a bankruptcy hearing two years ago, resulting in a nice, fat warning siren going up every time someone did a credit check on her.
We really, really need good PKI and trust metric systems, not more "secret" identifiers that can easily be stolen and mis-used. The technology exists, and it certainly can't be any worse than the current state of affairs, which is basically a case of security being totally based on random chance and a poorly-educated public.
Ugh...flourescent lights...truly the bane of the working class. I find that I'm at least twice as productive when I'm working in good, natural lighting, or at least under decent full-spectrum bulbs.
Strangely enough, I'm also usually much happier working on a full-size laptop (often actually in my lap, no less!) than a desktop machine; something about the ability to shift posture regularly, and have the computer move with me, does me more good than any number of ergonomic keyboards and back-supporting-chairs.
Really, formal methods are just another way of tapping into a developer's existing knowledge of the problem, and re-stating it in a way the computer can understand. The difference between "formal" and "informal" styles of programming is mostly that formal methods offer languages, tools, and techniques for modeling a program as a mathematical system, and then analyzing that model to look for obvious problems.
Every time you use a compiler, you're already half way to the side of formal methods -- letting the computer analyze and make assumptions about your code, in exchange for not having to write assembly routines yourself every time. Similarly, if you work in a strongly-typed language like C, C++, or Java, you're relying on a very "formal" means of error-correction: type checking.
That doesn't change the fact that programming is a creative process, simply because the concepts being thrown around by a "formal methods" user are more functional. Personally, I think that good math is every bit as aesthetically pleasing and creative as a great novel, and have personally met a number of quite talented mathematicians who were among the most creative, individualistic people I know.
Personally, I'd probably either go with a stripped-down GNOME distro as in the article (though probably straight from the GNOME mirrors, not Ximian) or all the way down to Fluxbox, which has the ever-so-nice feature of tabbed windows, letting you pull tricks like cramming all of your GIMP palettes into one window's size.
Let's see...Office uses "filesystems within files" named "OLE"...Microsoft is re-vamping the filesystem for Windows...the new Windows FS standard is named "OFS"...see a connection? Hint: if all your major apps are already effectively implementing their own filesystem in userspace (read: slowly), why not move those capabilities into the kernelspace drivers?
Personally, I think this is the right direction to go; just like Reiser's papers on "next-generation" versions of ReiserFS (with keyword and metadata searching built-in), along with the extensive work being done of VFS abstractions for almost every OS. Hell, you could go back to Be's attribute indexing on BeFS, or even the old MacOS resource fork.
Basic UNIX filesystem trees are far from the last word in this area; if they were, no one would need MySQL to support all their webapps. (Actually, it would be interesting to get the MySQL guys involved in some filesystem design work; I'm sure they would have an interesting perspective to offer.)
In short, don't re-invent the wheel; subdomains exists specifically to adress this problem, and there's little sense in trying to cram all that information into a single, eight-character-or-less string.
Java3D is actually based on OpenGL. Yes, that means that there is C code running at a low level (i.e., the OpenGL implementation provided by each graphics card provider), but that is no different that *any* language other than C that uses the OpenGL standard, including C++.
I agree that Java may have missed the mark, as far as performance-intensive applications like games are concerned, but given that people are seriously interested in Python-based game development (as evidenced by pygame, PyOpenGL, etc.), I think it's hardly reasonable to attack it on the basis of performance.
Personally, I'd rather hear the opinion of someone who had actually worked on commercial-scale gaming projects. For those of you who have actually worked in the field, what features were present (or missing) from your choice of implementation languages and platforms that would have improved your productivity, or the quality or performance of the finished game?
"Aggregate" can also include "per user" -- which requires determining the number of users. If you're behind a NAT box, or are using a multi-user machine, there's no way to reliably map number-of-IPs to number-of-users. In fact, if you're using a dialup connection (as most non-slashdotters still do), you almost certainly won't have any sort of continuity in IP assignment between sessions, regardless of whether it's the same machine or not.
The date of installation is less clear; it may be a version-check tool, or just a means of informing users when an updated version is available. Of course, all of this could be handled through stock HTTP features (cookies, user-agent strings, etc.), if crack-smoking web developers hadn't come up browser detection schemes that used every fragile hack in the book the make sure that the headers couldn't look any different between client browsers and still get reasonable output from the server.
It's been mentioned in other parts of this discussion, but I'd just like to re-iterate a simple, important concept: every HTTP request includes the client IP address as a component. In fact, most web servers automatically log the address of the client making each and every request.
That's right, kids and kid-ettes: every time you load a web page, your IP address is probably getting logged along with the request. Does that mean that Google could (if they cared, that is) associate every single pr0n search you've done with the IP address of your computer, find out that it was part of your employer's class-C block, and notify them? Damn straight, they could.
Do they? That's up to them (or a court-ordered search) to say; this information is certainly there, if they want it.
Personally, I think that it would make more sense for a coalition of Native American tribes to put the federal government on trial for war crimes, and then kick our sorry asses out. It would make a hell of a lot more sense than any continued bickering by would-be invaders over who "discovered" the continent, considering that it had been quite obviously occupied for some time.