.NET is a more complicated framework than the JVM and the Java platform libraries put together. It needs and extremely efficient virtual machine (which, on Windows, comes from the group that developed Microsoft's very quick Java runtime) and just-in-time compilers in addition to massive support from system libraries on Win32. The VM, especially, is an incredibly tough piece of software to build well. Sun has spent five years optimizing their Solaris JVM, and they did so with the help of their whole research arm (including the guys who developed Self, the most advanced OO runtime to precede Java), their traditional OS and compilers groups, and several acquisitions. But people still complain about that JVM's performance and stability.
Does Corel have any experience in developing compilers, VMs, or systems libraries? This is a far more complex problem than making slight additions to the WINE project that had already been in progress for years before Corel came along. If Corel takes a lead role in the production of Linux.NET (which, luckily, I think is already trademarked by someone else), the results will be a farce, especially since so many of their best developers jumped ship during their incredibly-prolonged financial troubles.
I'd much rather see people like Borland, Tower Technologies, Appeal Virtual Machines, and SGI, who have the necessary skills and resources, take the initiative. But I guess there's not a lot of reason to make sure Linux has a GOOD implementation of.NET if you're in Microsoft's shoes, is there?
--JRZ
This is a VERY similar deal to the one MS cut with Borland/Inprise about a year and a half ago. Borland's legal claims were actually pretty strong (especially for unfair hiring practices: MS crippled whole teams by throwing multimillion-dollar offers at dozens of key developers), but Microsoft also took a fairly large (10%) stake in Inprise. This was the huge boost in that company's bankroll that enabled them to get back on their feet and become the competitive company that they are today. The deal included all the same "Borland agrees to support MS's API of the hour" stuff as well.
Note that Borland started the Kylix project (Linux port of Delphi and C++Builder) only AFTER receiving this Microsoft infusion, so I think the conspiracy theorists should just relax.
There are, however, much more compelling antitrust reasons for this deal. If WordPerfect Office completely disappeared (which was pretty unlikely, but not 100% impossible), there would be a whole new line of antitrust inquiries against future versions of Office. Their move to a subscription model could be seen as classic monopolistic behavior (now that they're locked in, we won't even have to come up with upgrades anymore).
The real threat to Corel's Linux strategy is the fact that they're not making a lot of money from it (Corel Draw for Linux, anyone?).
--JRZ
Wheel? Sounds like a good idea, let's invent it!
on
KBasic
·
· Score: 2
Arrgh! There are already a bunch of great form/UI designers for Qt/KDE, like QtDesigner from TrollTech (GPL). Why recreate one of these? QtDesigner is all XML-output-based, so you could certainly use that. There's already QtDesigner-python module (http://www.thekompany.com/projects/pykde/?dhtml_o k=1) that could be a basis. Plus, QtEz and the KDevelop dialog designer have good starts as well.
Anyways, of course they have a right to do whatever they want with their free time, but I hope that all the designers are aware of the great choices out there.
Really, the key to Visual Basic is that you can easily add a new widget (component, VBX, whatever) and have it integrate smoothly into the designer. Without that feature, these GUI designers are really just going to be toys, sadly.
--JRZ
Microsoft played up the fact that their approach to boxing/unboxing would be fairly innovative in C#, and this got me pretty psyched. Basically, boxing is a way to convert primitive objects (ints, etc.) to instances of the generic C# 'object' class. That way, you can treat primitives like objects, but without the performance loss in cases where you just want them to be plain old primitives (I imagine something similar happens with structs?).
Sadly, I took a skim through the "Introducing C#" book, and noticed that boxed primitives are completely distinct objects from their unboxed versions. So, if I do "int x = 10; Object xobj = x;", the new xobj is completely unrelated to x from now on. I can later do "(int)xobj += 100; print(x)", and x will still be 10.
In other words, this is (as far as I can tell, please correct me otherwise!) exactly identical to doing "xobj = new Integer(x);" in Java, just 'syntactic sugar' as they say. You could add this pretty trivially to Java with few little tweaks to the front-end (and maybe somebody should).
Really elegant boxing would allow you to treat primitives as full, first class objects. Then you could, for instance, have a synchronized block use an integer as its lock object. Or you could store an integer in a collection (say, a hashtable) and have the hashtable entry properly updated as the original int is changed (as if it were any other mutable object). These aren't huge deals in the grand world of language design, but their efficient implementation would actually be kind of interesting.
--JRZ
People have been screaming at MS to get rid of the remnants of DOS for YEARS. So, they finally did it, in preparation for merging the Win2k/Win98 lines, and now you're saying this is some kind of conspiracy against BeOS? Come on, if Microsoft really wanted to kill Be, they could buy and sell the company several thousand times over. But, to be honest, they couldn't care less.
Profiling is an incredibly important tool to promote good customer service! We shouldn't do away with it because it COULD constitute a violation of privacy. That's like saying that we should do away with telephones just because they allow telemarketers to invade our privacy (try caller id).
Amazon, for instance, tracks all of my purchases, and, in return, gives me the only useful product recommendations I've seen on any commercial web site. Other sites could track my reading patterns (within their own site, not across others!) to figure out what types of articles actually interest me so that they can provide better content in the future. They need to plant a cookie on my browser to do that tracking, and they may even benefit from demographic information from me (to see what 20 year-old white males like to read), but they never need to know my real name, address, or phone number.
For me, the biggest privacy concern is spam and telemarketing. I WANT people to get enough data about me to serve banner targetted ads, because those are more likely to be interesting to me (I might buy a boxed copy of Enhydra, but I probably won't buy a copy of Cosmopolitan), as long as they don't invade my Inbox with those ads.
--JRZ
There's a huge list of various operating system projects here: http://www.cs.arizona.edu/peo ple/bridges/os/full.html. I find all the "pure" distributed OS stuff (systems build from the ground up to do distributed processing and not much else)relatively uninteresting on its own, but a lot of good ideas from those projects can filter into general purpose operating systems, especially when you start talking about clustering or even NUMA. You might want to see MOSIX for a cool, distributed/clusterd Linux version. --JRZ
Zero-copy TCP has been discussed extensively on the Linux-kernel mailing list. You might want to check out this post by Linux, who disagrees with zero-copy in most cases. Another post, from someone at CMU, has a fairly good argument in favor of zero-copy, but Ingo Molnar (to get back on topic), responds to him (taking a moderate position) in this post.
Personally, I tend to fall into the camp which believes that sendfile() and other, specialized interfaces should use a copy-free approach, but there's no need to add this special case code into every single frickin' corner of the IO system.
I have a few questions about TUX's caching system. Before I go any further, I want to say that I'm incredibly impressed by the results. I've been following specWeb99 for a while and have been wondering when someone would manage to build a great dynamic cache like this one. I hope it'll get the wide acceptance it seems to deserve. First, it seems that basically the entire test file set was loaded into memory ahead of time for use by TUX. How adaptable is TUX to more dynamic, limited-memory environments in terms of setting cache size limitations, selectivity (e.g. "cache all.GIFs, but not.html files"), and expiration/reloading algorithms? Second, can a tux module programmer modify the basic tux commands, or do they always do the same thing? For instance, if I were adapting TUX to work with a web proxy cache, I'd want TUX_ACTION_GET_OBJECT to actually go out over the network and do a GET request if it couldn't find a requested object in the cache. You can imagine lots of other circumstances where this would come up as well. Third, is it possible to execute more than one user-space TUX module at one time? Fourth, when can we play with the code? Thanks a lot! --JRZ
As far as I know, no details of "Tux" have been posted yet. The software availability is listed as "August 2000." However, it is definitely NOT stripped down for static pages. About 35% of the requests in SpecWeb99 are dynamic, including custom responses based on cookies, parsing and storing user registration results from POST requests, and doing real CGIs (must spawn a new process!). --JRZ
We've heard a lot that Corel has been running WP2k under wine, rather than recompiling with libwine. Does anyone know why they wouldn't recompile with libwine? Sure, it might be more of a hassle, but I've always heard that this was the preferred way of porting with Wine. It's LGPL too, so there's no problem with linking to it dynamically. Anybody have an insight? --JRZ
Anyone have experience with DellHost.com? I'm seriously thinking of going with them. Huge brand name, which doesn't mean THAT much, but at least they won't go out of business and the accountants will be happy. Plus, there prices are great: $300 for a 650 mHz PIII with 2 9 GB SCSI drives and 256 MB of RAM, plus 21 GB/month of metered bandwidth to start. Bandwidth upgrades seem quite reasonable too. It almost sounds too good to be true though, as even very small ISPs haven't been able to beat those prices. Is this going to turn out to be a horror story? Thanks! --JRZ
No, there are definitely limitations in the bytecode. I wrote a compiler to take another language (Tiger, it's a toy language, kind of like Pascal, I guess) to Java bytecode. It was definitely like fitting a square peg into. . . well, you know what I mean. Java bytecode is completely centered around the Java class system. So it has low-level primitives to handle virtual methods, Java interfaces, exceptions, and all of that. But, as a result, it's really painful to use something that can't be shoehorned into Java's class system (though it can be done with lots of "static" junk). JPython does a REALLY beautiful job, though. I highly recommend it to anybody interested in a high level language for the JVM (www.jpython.org). --JRZ
Well, like most folks here, I started my "real" programming with Applesoft BASIC. But, before then, I used LOGO, and I think it really helped me get started.
Python (which is a great, great language) is making a big "Computer Programming For Everybody" (CP4E) push, and you can check out their education special interest group right here. I think it would probably be more appropriate for 7th-12th graders, though.
You can actually find a decent amount of material on Python for education here as well. One great thing about Python is the ease with which you can develop GUIs without using GUI builders. Not that there's anything wrong with GUI builders, I just question whether they're helpful for beginning programmers, who end up spending more time learning the interface of the particular IDE, rather than learning to program. --JRZ
Ok, so I do a lot of C/Perl programming in Linux, but I also do plenty of C++ and Java work too. For non-OOP languages, all I really need is a good way to jump to the definition or implementation of a particular function or structure. With some hassles, ctags/etags + vi or emacs can pull this off, and they're quite passable. But with Java and C++, the advantages of an IDE become huge. Class browsers and Intellisense (also called autocompletion) actually make it intuitive to work with hundreds or thousands of different classes at one time. So sue me if I can't remember the order of the parameters that go into some obscure method on a class I hardly ever use. Intellisense makes that a total non-issue. Also, many people who tried IDEs years ago, but haven't looked at the newest crop, should really take another shot. I mean, GUI-builders have become vastly more sophisticated in the past years, and wizards have grown from relatively-useless little aids to incredibly poerful tools. Think about how many programming tasks are really "boilerplate". Getting rid of repetitive tasks is NOT dumbing-down of programming. Really, it's just the opposite. Programmers should only have to spend their time THINKING. Not writing stupid makefiles. Not re-typing simple code that hundreds of other people have already written. And we certainly shouldn't have to spend our time switching back and forth between DDD, emacs, and cscope.
Gateway licensed the design for the Cobalt Qube a few months ago. You can find all the specs at Cobalt's site. Basically, it's powered by a MIPS chip and Linux with Samba and a custom web-based interface.
 All I can say is that Cobalt must be raking it in hand-over-fist. Their "newest" design is the Raq III, which ran on a 300 mHz AMD processor last time I checked. Of course, they're targetting non-processor-intensive jobs, so it can swing, but, without the cute boxes and web interface, these would be $400 machines.
Oh well, I hear they're quite cute and functional, so enjoy the toy!
Hey/. guys: Is there a filter I can set up on my account to filter out any posts containing the world "Beowulf" in them? I mean, sure, we'll miss some relevant posts (like those concerning medieval warriors who go around killing monsters), but I think the price would be well worth it. Or maybe we can just have a new classification for moderators: "-1, Beowulf"? --JRZ
Hmm... sorry, you need to double-check a few of those facts.
1) "OS X" is practically designed for MP.. Well, it's true that OS X is designed "to support MP", but that support is largely untested and untuned. SMP is a relatively low priority for Apple when they have things to worry about, like, say, making sure the OS is ready to ship by its new deadline. SMP takes many, many years to develop, both in terms of hardware and software support. Applications need to be written to take advantage of multithreading, and new chipsets need to mature.
2) "How optimised is windows for MP anyways?" Well, 95/95 has no support for SMP at all. But Win NT/2000's support is very strong, much stronger, in fact, than Linux's support (much as I love Linux, we do have to admit this). With 8-way systems, they do extremely well on real, intense benchmarks like TPC. Windows 2000 Datacenter will theoretically support 32-processor systems, although its performance beyond 8-processors remains to be seen.
Basically, though, out of all the major OS families you can think of (Mac, Windows, Linux, commercial Unix), the Mac platform has the LEAST support for multiple processors (out of the *BSD family, you'll have to go to FreeBSD or BSDi if you want SMP). Anyone can throw together an artificial demo with dual-proc-tuned applications that will get a performance boost. The question is how well the system performs in the real world.
BX-Pro from ICS sounds like exactly what you're looking for. It spits out C or C++ for Motif, or Java. They're the company supporting MotifZone.net, which hosts the new "Open" Motif release. --JRZ
Well, with Interbase, it COULD have ended up as "abandonware," as it had been pushed pretty far down on the priorities list at Inprise. Now, however, it's anything but. Inprise has formed a spin-off company (along with some VC money) to support and develop it further. Now Interbase is getting the publicity, development support, and openness that it needed all along. Version 6 should be a huge improvement, especially on Linux (which is now a primary development platform, rather than an afterthought).
Well, I don't want to see Slashdot legally dismantled any more than anyone else does. The posting of the specification on slash, really is copyright infringement, and any court in this country would find against Andovet. Think if they posted the complete text to a new novel online, or if someone posted top-secret documents that they had obtained from their employer under an NDA. While some readers may applaud these moves, trying to defend them in court is a futile battle (and one of questionable value, IMHO, even if Andover did win). On the other hand, the "linking" issue, which mirrors the current 2600 case, is an open question. I sincerely doubt that the supreme court would uphold it, considering its first ammendment implications. In essence, a link to copyright-infringing material is an instruction on how to commit a crime, implicitly saying: "Hey d00d, if you want illegal documents, just !" This is a protected first-ammendment right, as long as it doesn't cross the line into real incitement. Slashdot should remove any posts containing the illegal text, but not bend on the linking issues. --JRZ
Right, I am aware of mod_mmap_static, but I think that it's highly overrated at this point. Most significantly, it's at version 0.04 and placed in the "experimental" modules section for a reason: it's not well tested. I think one of the reasons it's not well tested is that this is a pretty incovenient module to use. It makes you list every file to be mmapped, one-by-one, in the Apache config file. That's fine if you need it for, say, the slashbox icons, but it's going to be annoying to edit the server config files every time you want to add or remove a new banner ad. I also just figured that they wouldn't be using 1 GB of RAM and 10k RPM SCSI drives if they had no performance concerns. Or maybe/. just likes showing off. . .;) --JRZ
Oh no, looks like the two image servers are running Apache too. Sigh. I love Apache as much as the next guy, but its speed for static files is pretty bleak. I'd guess that these guys are serving a very limited set of files: the section images (say, 2 kb each * 60 or so images) + whatever handful of ads happen to be rotating at any given time (let's say 10 kb each * 25 active ads) + 100 kb for a few random images I forgot = 470 kb. Even if that's a wild under-estimate, it's still clear that all the active image content at any given time could fit in a tiny fraction of the server's RAM. Apache, however, doesn't cache static files without an add-on module. So, assuming/. isn't using such an add-on (since it reports no modules in its HEAD response), we're lead to assume that the server is actually going to the filesystem, loading the image into RAM, and then sending it out over the wire for every single request. Wow. Please, correct me if I'm wrong, becuase I hope slash isn't burning that many cycles. . . You might want to try SGI's QSC (quick shortcut cache), which is an Apache patch (not really a module) designed for SPECweb96, or phhttpd, which is quite similar, but a bit more general-purpose. You could certainly experiment with other web servers too, but I'm assuming it's simpler to administer apache across the board. Oh well, maybe I'm just missing some neat trick that/. is using in their new servers that doesn't show up on the radar. Anyone know for sure? --JRZ
The solution to the branch-prediction problem is actually in IA-64: predication, the ability to "skip over" a given instruction without branching around it. It's like a real, general pupose, instruction-level verion of the C-language "if" construct that doesn't use branches (and thus doesn't create a separate execution path to screw up multi-op fetches). But, I agree, this is all off-topic. My big worry for Macs is that these things will be RIDICULOUSLY expensive. A nice G4-450 (not the fastest G4 out there) will run you noticeably over $2500. Remember how expensive multi-processor PCs were a few years ago before they started cranking 'em out in bulk? Plus, even OS-X won't be particularly well optimized for multiple processors, considering this is the first release and the developers had a lot of more important issues than SMP to consider (like getting it to run). I'd expect the price/performance for these machines to be pretty unimpressive, especially when compared with other, more mature SMP-solutions. Now, I wish they could just boot some next-generation, 64-bit MacOS on RS6000 PPC hardware. I mean, come on, if you REALLY want to run photoshop fast, and price isn't an object, why not shell out for a $100,000 IBM workstation? Mmmm... 8 GB of RAM... 32 MB of L2 cache. . . --JRZ
Actually, though, ALL modern processors can execute multiple operations per cycle. Pentiums can hit 3-6 ops/cycle and IA-64 will support 6-12. Most often, though, you only get a number closer to 2 ops/cycle (or slightly less) due to the state of today's compilers and the the difficulty of the scheduling problem. The real difficulty in benchmarking two different architectures, IMHO, is that the processor is just one of dozens of crucial variables. Ok, so Photoshop or Netscape run slower on a Mac with a processor a than on a PC with processor b. So what? Maybe Adobe and Netscape don't work as hard on the Mac versions of their products to optimize them (true, esp for Netscape). Maybe the MacOS is just slow and outdated (true, esp for OS 8). Maybe the PC compilers are better (certainly possible, though hard to tell). See what I mean? That said, I think the best way to compare is to look at price/performance and other benchmarks on EXACTLY the applications you use. So, the Photoshop test is meaningless to me, because I don't particularly do graphics. But it's not meaningless to a graphic artist, who could care less what specific components cause the machine to run PS well. --JRZ
Does Corel have any experience in developing compilers, VMs, or systems libraries? This is a far more complex problem than making slight additions to the WINE project that had already been in progress for years before Corel came along. If Corel takes a lead role in the production of Linux.NET (which, luckily, I think is already trademarked by someone else), the results will be a farce, especially since so many of their best developers jumped ship during their incredibly-prolonged financial troubles.
I'd much rather see people like Borland, Tower Technologies, Appeal Virtual Machines, and SGI, who have the necessary skills and resources, take the initiative. But I guess there's not a lot of reason to make sure Linux has a GOOD implementation of
--JRZ
This is a VERY similar deal to the one MS cut with Borland/Inprise about a year and a half ago. Borland's legal claims were actually pretty strong (especially for unfair hiring practices: MS crippled whole teams by throwing multimillion-dollar offers at dozens of key developers), but Microsoft also took a fairly large (10%) stake in Inprise. This was the huge boost in that company's bankroll that enabled them to get back on their feet and become the competitive company that they are today. The deal included all the same "Borland agrees to support MS's API of the hour" stuff as well. Note that Borland started the Kylix project (Linux port of Delphi and C++Builder) only AFTER receiving this Microsoft infusion, so I think the conspiracy theorists should just relax. There are, however, much more compelling antitrust reasons for this deal. If WordPerfect Office completely disappeared (which was pretty unlikely, but not 100% impossible), there would be a whole new line of antitrust inquiries against future versions of Office. Their move to a subscription model could be seen as classic monopolistic behavior (now that they're locked in, we won't even have to come up with upgrades anymore). The real threat to Corel's Linux strategy is the fact that they're not making a lot of money from it (Corel Draw for Linux, anyone?). --JRZ
Arrgh! There are already a bunch of great form/UI designers for Qt/KDE, like QtDesigner from TrollTech (GPL). Why recreate one of these? QtDesigner is all XML-output-based, so you could certainly use that. There's already QtDesigner-python module (http://www.thekompany.com/projects/pykde/?dhtml_o k=1) that could be a basis. Plus, QtEz and the KDevelop dialog designer have good starts as well.
Anyways, of course they have a right to do whatever they want with their free time, but I hope that all the designers are aware of the great choices out there.
Really, the key to Visual Basic is that you can easily add a new widget (component, VBX, whatever) and have it integrate smoothly into the designer. Without that feature, these GUI designers are really just going to be toys, sadly.
--JRZ
Microsoft played up the fact that their approach to boxing/unboxing would be fairly innovative in C#, and this got me pretty psyched. Basically, boxing is a way to convert primitive objects (ints, etc.) to instances of the generic C# 'object' class. That way, you can treat primitives like objects, but without the performance loss in cases where you just want them to be plain old primitives (I imagine something similar happens with structs?).
Sadly, I took a skim through the "Introducing C#" book, and noticed that boxed primitives are completely distinct objects from their unboxed versions. So, if I do "int x = 10; Object xobj = x;", the new xobj is completely unrelated to x from now on. I can later do "(int)xobj += 100; print(x)", and x will still be 10.
In other words, this is (as far as I can tell, please correct me otherwise!) exactly identical to doing "xobj = new Integer(x);" in Java, just 'syntactic sugar' as they say. You could add this pretty trivially to Java with few little tweaks to the front-end (and maybe somebody should).
Really elegant boxing would allow you to treat primitives as full, first class objects. Then you could, for instance, have a synchronized block use an integer as its lock object. Or you could store an integer in a collection (say, a hashtable) and have the hashtable entry properly updated as the original int is changed (as if it were any other mutable object). These aren't huge deals in the grand world of language design, but their efficient implementation would actually be kind of interesting.
--JRZ
People have been screaming at MS to get rid of the remnants of DOS for YEARS. So, they finally did it, in preparation for merging the Win2k/Win98 lines, and now you're saying this is some kind of conspiracy against BeOS? Come on, if Microsoft really wanted to kill Be, they could buy and sell the company several thousand times over. But, to be honest, they couldn't care less.
Profiling is an incredibly important tool to promote good customer service! We shouldn't do away with it because it COULD constitute a violation of privacy. That's like saying that we should do away with telephones just because they allow telemarketers to invade our privacy (try caller id).
Amazon, for instance, tracks all of my purchases, and, in return, gives me the only useful product recommendations I've seen on any commercial web site. Other sites could track my reading patterns (within their own site, not across others!) to figure out what types of articles actually interest me so that they can provide better content in the future. They need to plant a cookie on my browser to do that tracking, and they may even benefit from demographic information from me (to see what 20 year-old white males like to read), but they never need to know my real name, address, or phone number.
For me, the biggest privacy concern is spam and telemarketing. I WANT people to get enough data about me to serve banner targetted ads, because those are more likely to be interesting to me (I might buy a boxed copy of Enhydra, but I probably won't buy a copy of Cosmopolitan), as long as they don't invade my Inbox with those ads.
--JRZ
There's a huge list of various operating system projects here: http://www.cs.arizona.edu/peo ple/bridges/os/full.html.
I find all the "pure" distributed OS stuff (systems build from the ground up to do distributed processing and not much else)relatively uninteresting on its own, but a lot of good ideas from those projects can filter into general purpose operating systems, especially when you start talking about clustering or even NUMA. You might want to see MOSIX for a cool, distributed/clusterd Linux version.
--JRZ
Zero-copy TCP has been discussed extensively on the Linux-kernel mailing list. You might want to check out this post by Linux, who disagrees with zero-copy in most cases. Another post, from someone at CMU, has a fairly good argument in favor of zero-copy, but Ingo Molnar (to get back on topic), responds to him (taking a moderate position) in this post.
Personally, I tend to fall into the camp which believes that sendfile() and other, specialized interfaces should use a copy-free approach, but there's no need to add this special case code into every single frickin' corner of the IO system.
--JRZ
I have a few questions about TUX's caching system. Before I go any further, I want to say that I'm incredibly impressed by the results. I've been following specWeb99 for a while and have been wondering when someone would manage to build a great dynamic cache like this one. I hope it'll get the wide acceptance it seems to deserve. .GIFs, but not .html files"), and expiration/reloading algorithms?
First, it seems that basically the entire test file set was loaded into memory ahead of time for use by TUX. How adaptable is TUX to more dynamic, limited-memory environments in terms of setting cache size limitations, selectivity (e.g. "cache all
Second, can a tux module programmer modify the basic tux commands, or do they always do the same thing? For instance, if I were adapting TUX to work with a web proxy cache, I'd want TUX_ACTION_GET_OBJECT to actually go out over the network and do a GET request if it couldn't find a requested object in the cache. You can imagine lots of other circumstances where this would come up as well.
Third, is it possible to execute more than one user-space TUX module at one time?
Fourth, when can we play with the code?
Thanks a lot!
--JRZ
As far as I know, no details of "Tux" have been posted yet. The software availability is listed as "August 2000." However, it is definitely NOT stripped down for static pages. About 35% of the requests in SpecWeb99 are dynamic, including custom responses based on cookies, parsing and storing user registration results from POST requests, and doing real CGIs (must spawn a new process!).
--JRZ
We've heard a lot that Corel has been running WP2k under wine, rather than recompiling with libwine. Does anyone know why they wouldn't recompile with libwine? Sure, it might be more of a hassle, but I've always heard that this was the preferred way of porting with Wine. It's LGPL too, so there's no problem with linking to it dynamically. Anybody have an insight?
--JRZ
Anyone have experience with DellHost.com? I'm seriously thinking of going with them. Huge brand name, which doesn't mean THAT much, but at least they won't go out of business and the accountants will be happy. Plus, there prices are great: $300 for a 650 mHz PIII with 2 9 GB SCSI drives and 256 MB of RAM, plus 21 GB/month of metered bandwidth to start. Bandwidth upgrades seem quite reasonable too.
It almost sounds too good to be true though, as even very small ISPs haven't been able to beat those prices. Is this going to turn out to be a horror story?
Thanks!
--JRZ
No, there are definitely limitations in the bytecode. I wrote a compiler to take another language (Tiger, it's a toy language, kind of like Pascal, I guess) to Java bytecode. It was definitely like fitting a square peg into. . . well, you know what I mean.
Java bytecode is completely centered around the Java class system. So it has low-level primitives to handle virtual methods, Java interfaces, exceptions, and all of that. But, as a result, it's really painful to use something that can't be shoehorned into Java's class system (though it can be done with lots of "static" junk).
JPython does a REALLY beautiful job, though. I highly recommend it to anybody interested in a high level language for the JVM (www.jpython.org).
--JRZ
Python (which is a great, great language) is making a big "Computer Programming For Everybody" (CP4E) push, and you can check out their education special interest group right here. I think it would probably be more appropriate for 7th-12th graders, though.
You can actually find a decent amount of material on Python for education here as well. One great thing about Python is the ease with which you can develop GUIs without using GUI builders. Not that there's anything wrong with GUI builders, I just question whether they're helpful for beginning programmers, who end up spending more time learning the interface of the particular IDE, rather than learning to program.
--JRZ
Ok, so I do a lot of C/Perl programming in Linux, but I also do plenty of C++ and Java work too. For non-OOP languages, all I really need is a good way to jump to the definition or implementation of a particular function or structure. With some hassles, ctags/etags + vi or emacs can pull this off, and they're quite passable.
But with Java and C++, the advantages of an IDE become huge. Class browsers and Intellisense (also called autocompletion) actually make it intuitive to work with hundreds or thousands of different classes at one time. So sue me if I can't remember the order of the parameters that go into some obscure method on a class I hardly ever use. Intellisense makes that a total non-issue.
Also, many people who tried IDEs years ago, but haven't looked at the newest crop, should really take another shot. I mean, GUI-builders have become vastly more sophisticated in the past years, and wizards have grown from relatively-useless little aids to incredibly poerful tools. Think about how many programming tasks are really "boilerplate". Getting rid of repetitive tasks is NOT dumbing-down of programming. Really, it's just the opposite. Programmers should only have to spend their time THINKING. Not writing stupid makefiles. Not re-typing simple code that hundreds of other people have already written. And we certainly shouldn't have to spend our time switching back and forth between DDD, emacs, and cscope.
 All I can say is that Cobalt must be raking it in hand-over-fist. Their "newest" design is the Raq III, which ran on a 300 mHz AMD processor last time I checked. Of course, they're targetting non-processor-intensive jobs, so it can swing, but, without the cute boxes and web interface, these would be $400 machines.
Oh well, I hear they're quite cute and functional, so enjoy the toy!
--JRZ
Hey /. guys:
Is there a filter I can set up on my account to filter out any posts containing the world "Beowulf" in them? I mean, sure, we'll miss some relevant posts (like those concerning medieval warriors who go around killing monsters), but I think the price would be well worth it.
Or maybe we can just have a new classification for moderators: "-1, Beowulf"?
--JRZ
Hmm... sorry, you need to double-check a few of those facts.
1) "OS X" is practically designed for MP..
Well, it's true that OS X is designed "to support MP", but that support is largely untested and untuned. SMP is a relatively low priority for Apple when they have things to worry about, like, say, making sure the OS is ready to ship by its new deadline. SMP takes many, many years to develop, both in terms of hardware and software support. Applications need to be written to take advantage of multithreading, and new chipsets need to mature.
2) "How optimised is windows for MP anyways?"
Well, 95/95 has no support for SMP at all. But Win NT/2000's support is very strong, much stronger, in fact, than Linux's support (much as I love Linux, we do have to admit this). With 8-way systems, they do extremely well on real, intense benchmarks like TPC. Windows 2000 Datacenter will theoretically support 32-processor systems, although its performance beyond 8-processors remains to be seen.
Basically, though, out of all the major OS families you can think of (Mac, Windows, Linux, commercial Unix), the Mac platform has the LEAST support for multiple processors (out of the *BSD family, you'll have to go to FreeBSD or BSDi if you want SMP). Anyone can throw together an artificial demo with dual-proc-tuned applications that will get a performance boost. The question is how well the system performs in the real world.
BX-Pro from ICS sounds like exactly what you're looking for. It spits out C or C++ for Motif, or Java. They're the company supporting MotifZone.net, which hosts the new "Open" Motif release. --JRZ
Well, with Interbase, it COULD have ended up as "abandonware," as it had been pushed pretty far down on the priorities list at Inprise. Now, however, it's anything but. Inprise has formed a spin-off company (along with some VC money) to support and develop it further. Now Interbase is getting the publicity, development support, and openness that it needed all along. Version 6 should be a huge improvement, especially on Linux (which is now a primary development platform, rather than an afterthought).
--JRZ
Well, I don't want to see Slashdot legally dismantled any more than anyone else does. The posting of the specification on slash, really is copyright infringement, and any court in this country would find against Andovet. Think if they posted the complete text to a new novel online, or if someone posted top-secret documents that they had obtained from their employer under an NDA.
While some readers may applaud these moves, trying to defend them in court is a futile battle (and one of questionable value, IMHO, even if Andover did win).
On the other hand, the "linking" issue, which mirrors the current 2600 case, is an open question. I sincerely doubt that the supreme court would uphold it, considering its first ammendment implications. In essence, a link to copyright-infringing material is an instruction on how to commit a crime, implicitly saying: "Hey d00d, if you want illegal documents, just !" This is a protected first-ammendment right, as long as it doesn't cross the line into real incitement.
Slashdot should remove any posts containing the illegal text, but not bend on the linking issues.
--JRZ
Right, I am aware of mod_mmap_static, but I think that it's highly overrated at this point. Most significantly, it's at version 0.04 and placed in the "experimental" modules section for a reason: it's not well tested. /. just likes showing off. . . ;)
I think one of the reasons it's not well tested is that this is a pretty incovenient module to use. It makes you list every file to be mmapped, one-by-one, in the Apache config file. That's fine if you need it for, say, the slashbox icons, but it's going to be annoying to edit the server config files every time you want to add or remove a new banner ad.
I also just figured that they wouldn't be using 1 GB of RAM and 10k RPM SCSI drives if they had no performance concerns. Or maybe
--JRZ
Oh no, looks like the two image servers are running Apache too. Sigh. I love Apache as much as the next guy, but its speed for static files is pretty bleak. /. isn't using such an add-on (since it reports no modules in its HEAD response), we're lead to assume that the server is actually going to the filesystem, loading the image into RAM, and then sending it out over the wire for every single request. Wow. Please, correct me if I'm wrong, becuase I hope slash isn't burning that many cycles. . . /. is using in their new servers that doesn't show up on the radar. Anyone know for sure?
I'd guess that these guys are serving a very limited set of files: the section images (say, 2 kb each * 60 or so images) + whatever handful of ads happen to be rotating at any given time (let's say 10 kb each * 25 active ads) + 100 kb for a few random images I forgot = 470 kb.
Even if that's a wild under-estimate, it's still clear that all the active image content at any given time could fit in a tiny fraction of the server's RAM. Apache, however, doesn't cache static files without an add-on module. So, assuming
You might want to try SGI's QSC (quick shortcut cache), which is an Apache patch (not really a module) designed for SPECweb96, or phhttpd, which is quite similar, but a bit more general-purpose. You could certainly experiment with other web servers too, but I'm assuming it's simpler to administer apache across the board.
Oh well, maybe I'm just missing some neat trick that
--JRZ
The solution to the branch-prediction problem is actually in IA-64: predication, the ability to "skip over" a given instruction without branching around it. It's like a real, general pupose, instruction-level verion of the C-language "if" construct that doesn't use branches (and thus doesn't create a separate execution path to screw up multi-op fetches). But, I agree, this is all off-topic.
My big worry for Macs is that these things will be RIDICULOUSLY expensive. A nice G4-450 (not the fastest G4 out there) will run you noticeably over $2500. Remember how expensive multi-processor PCs were a few years ago before they started cranking 'em out in bulk? Plus, even OS-X won't be particularly well optimized for multiple processors, considering this is the first release and the developers had a lot of more important issues than SMP to consider (like getting it to run). I'd expect the price/performance for these machines to be pretty unimpressive, especially when compared with other, more mature SMP-solutions.
Now, I wish they could just boot some next-generation, 64-bit MacOS on RS6000 PPC hardware. I mean, come on, if you REALLY want to run photoshop fast, and price isn't an object, why not shell out for a $100,000 IBM workstation? Mmmm... 8 GB of RAM... 32 MB of L2 cache. . .
--JRZ
Actually, though, ALL modern processors can execute multiple operations per cycle. Pentiums can hit 3-6 ops/cycle and IA-64 will support 6-12. Most often, though, you only get a number closer to 2 ops/cycle (or slightly less) due to the state of today's compilers and the the difficulty of the scheduling problem.
The real difficulty in benchmarking two different architectures, IMHO, is that the processor is just one of dozens of crucial variables. Ok, so Photoshop or Netscape run slower on a Mac with a processor a than on a PC with processor b. So what? Maybe Adobe and Netscape don't work as hard on the Mac versions of their products to optimize them (true, esp for Netscape). Maybe the MacOS is just slow and outdated (true, esp for OS 8). Maybe the PC compilers are better (certainly possible, though hard to tell). See what I mean?
That said, I think the best way to compare is to look at price/performance and other benchmarks on EXACTLY the applications you use. So, the Photoshop test is meaningless to me, because I don't particularly do graphics. But it's not meaningless to a graphic artist, who could care less what specific components cause the machine to run PS well.
--JRZ