It's very misleading to talk about an "EVE 45k single server population". It's obvious that EVE uses multiple machines to manage the single universe, transitioning you between machines during gate jumps. This only works out as a single universe as long as everyone doesn't pile into a single system (which is hosted on a single machine).
Popular systems in EVE, such as the infamous JITA, can be just as laggy as an overpopulated AQ opening. Also, if EVE had 1/2 of WoW's total online playerbase, the chance of busy systems causing lag would be much higher.
These games all operate in a world with the same laws of physics.
Your computer is only so fast. It can only draw so many other players on-screen at once. You're network is only so fast. It can only handle network updates for so many nearby players at once. A single server machine is only so fast. It can only handle simulation and network for a limited number of players at once.
All these games have designs to try to limit situations so the above factors are not a problem. Their designs may be different, but the issues are the same.
It might be practical for the system to self-regulate by connecting maximum lifetime patent royalties to reported technology R&D costs. Any R&D costs incurred by a company would be fair game to attribute to individual patents, but they would need to be attributed at the time of filing. Once an R&D dollar was attributed to a patent, it couldn't be reattributed to another patent. Falsifying R&D costs would be both easy to audit and a crime.
For drug companies, 30x R&D costs (including all the failed attempts) would be a healthy payout. For software companies, 30x the cost of a couple programmers over a couple months to 'invent' their patent might be what, $900k?
Of course there are challenges, such as potential games in pumping-up R&D costs. However, if a system like this were viable, it might eliminate ease the pressure on the patent approval process as companies would have an incentive to decide which patent was truly the most valuable and attribute all relevant R&D costs to it.
The author is quick to dismiss using "Obama" and "Hilary" as the indicator terms for fear that Obama's huge online campaign popularity is not representative of the true popularity of the two candiates.
However, he makes no mention of the fact that "Obama" and "Hillary" are the most popularly used terms to refer to the candidates. Almost all candidates are refferred to primarily by their last names. Hilary is a special case where we use her first name because her husband was so recently president.
His use of "Barack" and "Hilary" is about as statistically accurate as using "Barack" and "Rodham". Fortunatly, this inaccuracy is obviously visible in his numbers, because using his first-name method it quickly looks like Edwards might be a write-in candidate to rival them both.
How about "Friendly" just meaning that it understands and makes efficient use of network topology, instead of typical p2p which abuses the network in really terrible ways.
Patent fees have simply not kept pace with the value of IP and innovation. If they put them on a pricing schedule that goes up over time, and start them at $300k today, we'll see a dramatic reduction in frivilous patents.
Even more radical would be to place limits on the collectible licensing fees based on the original filing fee. This would encourage some companies to pay more for their patents, in order to create a greater enforcement cap, but would cause them to do so only because they believed the patents to be defensible.
I think investigating space is great. However, since when does clean-room style investigation take a priority to colonization. I want to see us drop a variety of bacteria on every planet in our solar system. I'd like to see deep space probes designed to try and safetly land biological building blocks on a planet outside our star system. THAT is a worthwhile goal. Life must continue beyond this little rock.
When people quote penetration of Mac vs Windows (estimated at about 8%), they often don't realize how limiting this number is. Until Mac OS X runs on standard wintel hardware, this 8% is the amount of hardware available capable of running Mac OS. Even if every Mac on the planet instantly sold through to a disgruntled Vista user, it wouldn't make a dent in Windows marketshare. The only way for Apple to make a dent is to start the long road of releasing Mac OS for standard wintel hardware. The driver support and QA required for this is a huge task, and one which Steve has tried in the past and backed away from with NeXTStep for Intel.
What in the world are they doing putting GPS on a mock-lunar lander?
"But the touchdown did have a big enough effect to jostle the onboard GPS unit that Texel relied on to track its motion. The disturbance caused faulty readings from the unit, confusing the vehicle."
As one of the many who learned to program when I was very young (8?) on an Apple II, in line-oriented BASIC, I'm sympathetic with the author's cause. However, his dillema is easily solved by downloading one of the dozens of Apple II emulators available.
The reason Linux distributions tend towards being large amasses of software is that Linux itself is more of an embedded system development kit than a platform. The best (only?) way to have everything working today is to deliver it all the user as a pre-built kit.
A good platform (Playstation, Windows, MacOS, N64, OS/2, etc.) is designed to make everything interoperate. In almost all cases, the software end-users download comes directly from the authors of the software. In Linux, this is seldom the case, because it does not work very well. To do this, a user usually has to download the source and build it themselves. Sometimes they even have to know which version of the source to use.
In fact, "Redhat 7.2", "Redhat 8.0", "Debian", and "Gentoo" are all platforms. When you download software, usually the software vendor needs to provide a specific package based on which one of these distributions you're using.
There are many reasons for this, but I argue the start of it all can be traced back to the UNIX philosophy of compiled-in and hardcoded paths. It is seldom that a piece of software on Linux can be used properly without lots of hardcoded paths. When different distributions make subtle changes to the way software is to be installed, it requires different binaries to be built. There are also fundamental problems with fitting software that has hardcoded paths into more complex installations. For example, installing software on fileservers, or installing multiple versions of software requires compiling from source. Worse yet, to date these Linux distributions are _all_ more centralized than distributed, and that's a shame.
I could go on, but the major point has been made. We have lots of different distributions because Linux itself is not itself a platform.
Linux isn't really a desktop, it's more of an embedded system development kit. If you consider it this way, you're expectations will be set better.
I have a mythtv 2-tuner setup, and you can read about my mythtv setup experience. Most of the problem setting this up had to do with odd driver-kernel version problems which don't exist in the same ways on Windows.
Obviously having vendor supplied drivers would be great, but that's not going to happen until Linux kernel drivers are not a moving target. However, Linux kernel developers seem to intentionally avoid making binary driver standards as some kind of 'pro open source' politics. It's a shame.
Even though they both can use FreeType as a rendering engine, these two APIs do not have the same rendering capabilities.
Below I've listed several reasons that STSF is technically superior to Xft/Xft2. In addition, STSF is compatible with Xft, meaning that existing Xft applications to not have to be changed unless they want to use advanced STSF features which Xft does not provide.
STSF supports non-rectilinear text, including
text along shaped paths. Xft/Xft2/Pango, even with
XRender, does not.
When you consider that drawing through Xlib or
XRender must use rectangular blocks, you will
realize how hard it will be for client-side
font rendering to ever efficiently support
non-rectilinear text.
STSF has higher performance rendering than Xft/Xft2.
Graphics systems typically accelerate font rendering by caching unique rendered glyphs in video memory. With client-side rendering of glyphs, several applications cannot share the same rendered glyphs. The more applications you run on the machine, the more copies of the Arial 10pt letter "L" you will have.
Another benefit of server-side rendering is better networked graphics performance. I constantly hear Linux/X developers defending
X's network model over Windows' direct rendering
model. Xft does not work well over a
network, and Xft2/XRender have limitations
over a network which are not present in STSF. As display dot-pitch increases this will only get worse for Xft.
STSF can be made to render fonts for older applications using core X protocols. Xft/Xft2 is a client-side technology and cannot improve old applications.
Xft/Xft2, because they are client-side
technologies, require updating applications
to get anti-aliased fonts. With STSF a
server-side setting can enable
antialiased fonts for old applications.
Xft was great work. It has put a spotlight on XFree font rendering and provided a solution which works today. Now our goal is to have a world-class font solution which rivals MacOS and Windows. STSF has many important features and we would not be smart to dismiss it due to a political skermish about "letting go of existing work".
DISCLAIMER: I have no connection with either XFree, Xft, Sun, STSF, or any font rendering gihad. The above statements are drawn from my own experience in the PC graphics hardware industry and time spent digging through information on Xft and STSF technologies. If you don't like what I have to say, my post comes with a money back guarantee.
lets get our apples and oranges straight
on
.NET or CORBA?
·
· Score: 1
.NET and CORBA/GTK are not really the same fruit. Of course the.NET moniker means everything and nothing, so that's part of the problem. However, you really need to consider what you want to do with the code underneath the RPC layer just as much as the RPC layer.
My estimation is that the most popular Object-RPC layers (in order of popularity) are:
Very quickly I expect.NET Remoting to move to the head of the pack with Java-RMI. However, in the meantime,.NET software interoperates with DCOM easily as well.
One of the biggest changes in component development and remoting in the last several years was the shift from tack-on remoting solutions like COM/DCOM and CORBA to "language supported" remoting such as Java-RMI and.NET Remoting.
If you have existing legacy code (in C/C++ for example) then you will want a system which makes this code easy to leverage. That means COM/DCOM, CORBA, or.NET Remoting (while.NET isn't exactly an add-on, importing legacy code into.NET is easier than building component wrappers in COM or CORBA IMO).
If you have no legacy code, then you should choose between Java-RMI and.NET Remoting, and build your application in either Java or C#. Java has the popularity edge right now. In the near future, C#.NET is likely to win where connecting to legacy code is important, while Java will win where cross-platform support is important.
Microsoft has been really good about one thing from the outset of Windows, and that is third party support. Applications and drivers can be released independently by third parties and stay compatible for a reasonable period of time.
Linux, on the other hand, seems designed to prevent third party developers. It's not possible for third parties to ship applications which will run on all the different distributions available for a given version of Linux, let alone different versions. Newer kernels constantly break the kernel driver interface layers. The philosophy is that it just dosn't matter, because as long as the source is there in the kernel, someone will update the interface.
The trouble is that the world is not open source. Linux has terrible third party application support in part because it's impossible to be a third party for Linux. If Microsoft based their next operating system on "Linux" it would be in name only. They would tear the innards appart to mature the driver interface, stabilize the binary format, and stop letting people make incompatible changes to the MS fork of the OS. They wouldn't do these things to "own" Linux, they would do them because this is the only way you can have a hugely popular operating system installed on 96% of desktops, performing millions of different types of operations for different people.
However, the biggest reason they won't do this is that they just don't need to. The balkanazation of UNIX has merely been replaced with the balkanazation of Linux.
Disclaimer: This is of course only my interpretation of the information I've read about Palladium. I did not write the BIOS, and neither did you.:)
The palladium BIOS in question is not claimed to only boot signed operating systems. It merely claims to provide the "trusted system/user verification" only to signed trusted operating systems.
For example, if a company was providing Rights Managed content to your machine, it would first verify if your machine was trusted. If you had booted Linux on your Palladium enabled machine, then Linux (potentially) wouldn't have access to the "trusted system verification" and the company/website would not provide the rights managed content for fear that the rights management would be compromised.
Of course, it's not a long jump from here to there, so watch out.
Spammers are frustrating because they disturb you, there is no way to track them down, and you can't get them to stop.
Spews is exactly the same.
They disturb legitimate users: I run a business hosting an email customer support application (Neotonic.com). It is very important for us to get email support replies thorough to customers. Numerous times our IP addresses have ended up on the Spews blocklist because of some unsolicited mail sender in the same 256 address subnet. At most colocation facilities, ten or more companies share the same subnet, and it is not easy to change your IP addresses.
There is no way to track them down: Organizations like MAPS are judicious about how they block IP addresses. They do NOT block entire subnets unless there is cause, and they have an organized appeals process to take care of their oversights. Spews has no such facilities. In fact, the only centralized item in spews is the spews.org website.
You can't get them to stop: They block entire ISPs, and their FAQ says that I'm a victim of "rare inadvertant blocking". The trouble is, we followed their advice, we moved to a new colocation, with an entirely new bandwidth provider, and our new IPs are also spews blocked. There is no organization to appeal to, there is no way to get this fixed.
Legitimate users like us can't keep changing IP addresses because SPEWS is too aggressive and has no organized process. If you want to use a spam advisory system, use MAPS RBL.
Spews is worse than the spammers, because at least I can ignore the spammers.
The sad truth is that the standards the W3C makes are a fairy tale.
For a standard to be coherent, it needs a reference implementation. Only by having a reference implementation can you figure out "who owns the bug".
Additionally, for that reference implementation to have any power in the market, it needs to be the most popular implementation. Examples include: postscript, X11, and Win32.
In the Win32 world, application developers worry about making their applications run on one reference platform, Win32. If that application does not work on SoftWindows or Wine, the bug gets reported to developer of the emulator. Only in rare cases would the application write make changes to support running under an emulator.
The web works the same way. Today the reference for writing HTML is IE. It has the largest marketshare; It has the easiest to use documentation (on MSDN); And it is the most stable.
If you want the web to work on more browsers, you should put pressure on the browser writers to become compatible with the implementation that defines the standard... IE. You should also put pressure on the W3C to stop pulling new HTML standards out of their ass, and start basing them on existing implementations... They've been making this mistake since the early days of Netscape/Mosaic.
I feel the same way. Once I'm in the zone the details of the environment do not matter. Before that happens, however, there are definetly things you can do to help people create their zone. Here are three of them:
1) Build conventions for avoiding interruption. 2) Provide easy access to an energetic, yet practical programmer/system architect. 3) Provide detailed short term deliverable lists.
Here is some justification for each:
1) Build conventions for avoiding interruption
Questions and phone calls are a serious distraction and must be kept away forcefully. Voicemail to email gateways and phones that don't ring are a godsend. Another poster lamented the lack of a door in his cubeland. I've seen people use yellow police-line style warning tape to create the convention of a barrier in the office.
Noise is also a problem. I generally just turn up the techno music, although I know some people who need to have real quiet to get work done. There really are few things you can do which will help more than creating a quiet work environment.
If you don't stop interruptions and noise, then your great people will create that environment for themselves using techniques mentioned in other posts (i.e. headphones, odd work hours, work from home, etc), and your not-so-great people will be unproductive.
2) Provide easy access to an energetic, yet practical programmer/system architect.
The best thing to help me get in the zone is excitement about how the next mini-milestones will turn out, and a clear concept of how to get there. When I'm having trouble finding the zone on new code, it's usually because I have a foggy idea of what it's going to do today, or how I'm going to make it to that. To relieve this, I need to talk out these issues with an energetic coworker. This is not time for a visionary! It's time for someone who is positive and encouraging, but who is immenensly practical. The goal here is to simplify and figure things out, not to expand the vision.
This is the strongest part of eXtreme Programming's pair programming techniques, as you always have someone to do this with. Although not everyone can successfully play that encouraging yet practical architect role.
If you are not pair-programming, there should be someone who pro-actively runs around to see who needs to be jump started and then does it without being asked. When I'm managing others, this is what I spend a good deal of my time doing. When I'm programming, I routinely need someone to do this for me.
3) Provide detailed short term deliverable lists.
When I'm having trouble working on bugs or misfeatures, it's normally because I don't know where to start. Most small bugs don't take very long to fix, and most large bugs become interesting in the search for truth. However, when the list is really big and un-prioritized working on any one of them feels very arbitrary.
Eliminate this confusion by delivering a SHORT list of which of these bugs are the most important, and assign them to SPECIFIC people. Bug tools which make all bugs accessable to everyone are great resources, but they are not necessarily good task lists. Give me a list of 5 bugs you want fixed this week before I do anything else and I can probably fix them today. Give me a list of 40 open bugs to look at myself, and I'll just work on my other projects unless one of these bugs gets in my way.
Again, when I'm managing, I spend lots of my time doing just this. Keeping the list of stuff each person "needs to do this week" really small. This also makes it much easier for them to see whether they are making any headway.
They support MacOS X style app wrappers!
on
ROX Desktop Update
·
· Score: 5, Interesting
Wow, I just took a look and the ROX Filer is truly revolutionary. This is the first simple example of the powerful Nextstep and MacOS X concept of "app wrappers" brought to Linux.
App-wrappers are a system which solves many of the application installation problems associated with the Windows Registry and systems like RPM. By locating all of an applications files under a single relocatable directory, installing an application is as simple as dropping the "app wrapper directory" on your filesystem.
Lets all hope this concept finally takes off on Linux, so it can pave the way for simple 3rd party application distribution.
The author is using bandwidth calculations intended for physical network topologies and applying them to virtual networks. This is flawed and renders his analysis invalid.
In layman's terms. If you are a node in one of his example networks, and you're sitting on a DSL connection, does the available bandwidth you contribute to the net change whether you have 20 outbound TCP connections or 2? No. It is constant. The author incorrectly computes the "bandwidth" of these different network topologies like you are stringing a separate DSL to each person you open a TCP connection to.
Available network bandwidth in a peer network like Gnutella is related only to the physical interconnect of the nodes. (i.e. whether they are on an SBC DSL line or sitting a North American OC-3)
The only useful analysis is that which determines the amount of data-transfer required between each node (and all nodes) for common operations when using different topologies. When performing this study, you are looking for the topology which will transfer the smallest amount of data over the smallest number of nodes when performing searches. For a great analysis, see the Gnutella Performance Paper by Ritter, referenced by the above paper.
Careful analysis will tell you the same thing that common sense does -- that the best architecture involves centralized dedicated servers (supernodes), located on machines with the largest physical bandwidth available. (i.e. eactly what Napster did. )
In order to create an efficient peer network which scales, Gnutella 'merely' needs to 1) order the network by physical topology, 2) identify the nodes with the best combination of physical bandwidth, longevity, and CPU/disk resources, and 3) fully utilize those machines as supernodes.
Good luck.:)
EROS is an entire operating system based on it
on
UNIX Process Cryogenics?
·
· Score: 2, Informative
EROS is a research operating system built around the idea of making all processes persistant at all times.
EROS' predecessor, KeyKOS, made waves at USENIX when they did a demo of a UNIX system + Xwindows which would instantly restore the running state of all software when rebooted. It was basically a UNIX port to KeyKOS, and since everything in KeyKOS was persistant, so was everything in the UNIX.
One interesting caviat with this type of OS is that you really need to use ECC memory, because bit errors can get saved to disk and propagated forever!
PDFlib is great. It's a somewhat-free library for rendering PDF on the fly. Plus Ghostscript can render PDF to PNG or a printer. PDF already has all the printer specific handling built in, such as page breaks, etc.
Granted, you'll have to write a renderer. However, HTML does not have enough expressiveness to deal with page break situations, and other complications of paged printing anyhow.
Python/Ruby/Lua performance comparisons
on
Programming Ruby
·
· Score: 1
I have some simple performance comparisons
of Python, Ruby, and Lua on my ScriptPerf page at:
Azul Zing and their Pauseless and C4 collector algorithms are leading the pack of pause-free JVM GC options at the moment..
http://paperhub.s3.amazonaws.com/d14661878f7811e5ee9c43de88414e86.pdf
http://www.azulsystems.com/
It's very misleading to talk about an "EVE 45k single server population". It's obvious that EVE uses multiple machines to manage the single universe, transitioning you between machines during gate jumps. This only works out as a single universe as long as everyone doesn't pile into a single system (which is hosted on a single machine).
Popular systems in EVE, such as the infamous JITA, can be just as laggy as an overpopulated AQ opening. Also, if EVE had 1/2 of WoW's total online playerbase, the chance of busy systems causing lag would be much higher.
These games all operate in a world with the same laws of physics.
Your computer is only so fast. It can only draw so many other players on-screen at once.
You're network is only so fast. It can only handle network updates for so many nearby players at once.
A single server machine is only so fast. It can only handle simulation and network for a limited number of players at once.
All these games have designs to try to limit situations so the above factors are not a problem. Their designs may be different, but the issues are the same.
It might be practical for the system to self-regulate by connecting maximum lifetime patent royalties to reported technology R&D costs. Any R&D costs incurred by a company would be fair game to attribute to individual patents, but they would need to be attributed at the time of filing. Once an R&D dollar was attributed to a patent, it couldn't be reattributed to another patent. Falsifying R&D costs would be both easy to audit and a crime.
For drug companies, 30x R&D costs (including all the failed attempts) would be a healthy payout. For software companies, 30x the cost of a couple programmers over a couple months to 'invent' their patent might be what, $900k?
Of course there are challenges, such as potential games in pumping-up R&D costs. However, if a system like this were viable, it might eliminate ease the pressure on the patent approval process as companies would have an incentive to decide which patent was truly the most valuable and attribute all relevant R&D costs to it.
The author is quick to dismiss using "Obama" and "Hilary" as the indicator terms for fear that Obama's huge online campaign popularity is not representative of the true popularity of the two candiates.
However, he makes no mention of the fact that "Obama" and "Hillary" are the most popularly used terms to refer to the candidates. Almost all candidates are refferred to primarily by their last names. Hilary is a special case where we use her first name because her husband was so recently president.
His use of "Barack" and "Hilary" is about as statistically accurate as using "Barack" and "Rodham". Fortunatly, this inaccuracy is obviously visible in his numbers, because using his first-name method it quickly looks like Edwards might be a write-in candidate to rival them both.
Please slashdot, stop posting braindead stories.
How about "Friendly" just meaning that it understands and makes efficient use of network topology, instead of typical p2p which abuses the network in really terrible ways.
Patent fees have simply not kept pace with the value of IP and innovation. If they put them on a pricing schedule that goes up over time, and start them at $300k today, we'll see a dramatic reduction in frivilous patents.
Even more radical would be to place limits on the collectible licensing fees based on the original filing fee. This would encourage some companies to pay more for their patents, in order to create a greater enforcement cap, but would cause them to do so only because they believed the patents to be defensible.
I think investigating space is great. However, since when does clean-room style investigation take a priority to colonization. I want to see us drop a variety of bacteria on every planet in our solar system. I'd like to see deep space probes designed to try and safetly land biological building blocks on a planet outside our star system. THAT is a worthwhile goal. Life must continue beyond this little rock.
When people quote penetration of Mac vs Windows (estimated at about 8%), they often don't realize how limiting this number is. Until Mac OS X runs on standard wintel hardware, this 8% is the amount of hardware available capable of running Mac OS. Even if every Mac on the planet instantly sold through to a disgruntled Vista user, it wouldn't make a dent in Windows marketshare. The only way for Apple to make a dent is to start the long road of releasing Mac OS for standard wintel hardware. The driver support and QA required for this is a huge task, and one which Steve has tried in the past and backed away from with NeXTStep for Intel.
What in the world are they doing putting GPS on a mock-lunar lander?
s h-destroys-rocket-ahead-of-x-prize-contest.html
"But the touchdown did have a big enough effect to jostle the onboard GPS unit that Texel relied on to track its motion. The disturbance caused faulty readings from the unit, confusing the vehicle."
http://space.newscientist.com/article/dn12522-cra
As one of the many who learned to program when I was very young (8?) on an Apple II, in line-oriented BASIC, I'm sympathetic with the author's cause. However, his dillema is easily solved by downloading one of the dozens of Apple II emulators available.
http://www.zophar.net/apple2.html
The reason Linux distributions tend towards being large amasses of software is that Linux itself is more of an embedded system development kit than a platform. The best (only?) way to have everything working today is to deliver it all the user as a pre-built kit.
A good platform (Playstation, Windows, MacOS, N64, OS/2, etc.) is designed to make everything interoperate. In almost all cases, the software end-users download comes directly from the authors of the software. In Linux, this is seldom the case, because it does not work very well. To do this, a user usually has to download the source and build it themselves. Sometimes they even have to know which version of the source to use.
In fact, "Redhat 7.2", "Redhat 8.0", "Debian", and "Gentoo" are all platforms. When you download software, usually the software vendor needs to provide a specific package based on which one of these distributions you're using.
There are many reasons for this, but I argue the start of it all can be traced back to the UNIX philosophy of compiled-in and hardcoded paths. It is seldom that a piece of software on Linux can be used properly without lots of hardcoded paths. When different distributions make subtle changes to the way software is to be installed, it requires different binaries to be built. There are also fundamental problems with fitting software that has hardcoded paths into more complex installations. For example, installing software on fileservers, or installing multiple versions of software requires compiling from source. Worse yet, to date these Linux distributions are _all_ more centralized than distributed, and that's a shame.
I could go on, but the major point has been made. We have lots of different distributions because Linux itself is not itself a platform.
- David
Linux isn't really a desktop, it's more of an embedded system development kit. If you consider it this way, you're expectations will be set better.
I have a mythtv 2-tuner setup, and you can read about my mythtv setup experience. Most of the problem setting this up had to do with odd driver-kernel version problems which don't exist in the same ways on Windows.
Obviously having vendor supplied drivers would be great, but that's not going to happen until Linux kernel drivers are not a moving target. However, Linux kernel developers seem to intentionally avoid making binary driver standards as some kind of 'pro open source' politics. It's a shame.
Below I've listed several reasons that STSF is technically superior to Xft/Xft2. In addition, STSF is compatible with Xft, meaning that existing Xft applications to not have to be changed unless they want to use advanced STSF features which Xft does not provide.
When you consider that drawing through Xlib or XRender must use rectangular blocks, you will realize how hard it will be for client-side font rendering to ever efficiently support non-rectilinear text.
Graphics systems typically accelerate font rendering by caching unique rendered glyphs in video memory. With client-side rendering of glyphs, several applications cannot share the same rendered glyphs. The more applications you run on the machine, the more copies of the Arial 10pt letter "L" you will have.
Another benefit of server-side rendering is better networked graphics performance. I constantly hear Linux/X developers defending X's network model over Windows' direct rendering model. Xft does not work well over a network, and Xft2/XRender have limitations over a network which are not present in STSF. As display dot-pitch increases this will only get worse for Xft.
Xft/Xft2, because they are client-side technologies, require updating applications to get anti-aliased fonts. With STSF a server-side setting can enable antialiased fonts for old applications.
Xft was great work. It has put a spotlight on XFree font rendering and provided a solution which works today. Now our goal is to have a world-class font solution which rivals MacOS and Windows. STSF has many important features and we would not be smart to dismiss it due to a political skermish about "letting go of existing work".
DISCLAIMER: I have no connection with either XFree, Xft, Sun, STSF, or any font rendering gihad. The above statements are drawn from my own experience in the PC graphics hardware industry and time spent digging through information on Xft and STSF technologies. If you don't like what I have to say, my post comes with a money back guarantee.
.NET and CORBA/GTK are not really the same fruit. Of course the .NET moniker means everything and nothing, so that's part of the problem. However, you really need to consider what you want to do with the code underneath the RPC layer just as much as the RPC layer.
.NET Remoting, Next/Apple Portable Distibuted Objects, GnomeOrbit
.NET Remoting to move to the head of the pack with Java-RMI. However, in the meantime, .NET software interoperates with DCOM easily as well.
.NET Remoting.
.NET Remoting (while .NET isn't exactly an add-on, importing legacy code into .NET is easier than building component wrappers in COM or CORBA IMO).
.NET Remoting, and build your application in either Java or C#. Java has the popularity edge right now. In the near future, C#.NET is likely to win where connecting to legacy code is important, while Java will win where cross-platform support is important.
My estimation is that the most popular Object-RPC layers (in order of popularity) are:
COM/DCOM, Java-RMI, CORBA,
Very quickly I expect
One of the biggest changes in component development and remoting in the last several years was the shift from tack-on remoting solutions like COM/DCOM and CORBA to "language supported" remoting such as Java-RMI and
If you have existing legacy code (in C/C++ for example) then you will want a system which makes this code easy to leverage. That means COM/DCOM, CORBA, or
If you have no legacy code, then you should choose between Java-RMI and
- David
Microsoft has been really good about one thing from the outset of Windows, and that is third party support. Applications and drivers can be released independently by third parties and stay compatible for a reasonable period of time.
Linux, on the other hand, seems designed to prevent third party developers. It's not possible for third parties to ship applications which will run on all the different distributions available for a given version of Linux, let alone different versions. Newer kernels constantly break the kernel driver interface layers. The philosophy is that it just dosn't matter, because as long as the source is there in the kernel, someone will update the interface.
The trouble is that the world is not open source. Linux has terrible third party application support in part because it's impossible to be a third party for Linux. If Microsoft based their next operating system on "Linux" it would be in name only. They would tear the innards appart to mature the driver interface, stabilize the binary format, and stop letting people make incompatible changes to the MS fork of the OS. They wouldn't do these things to "own" Linux, they would do them because this is the only way you can have a hugely popular operating system installed on 96% of desktops, performing millions of different types of operations for different people.
However, the biggest reason they won't do this is that they just don't need to. The balkanazation of UNIX has merely been replaced with the balkanazation of Linux.
Disclaimer: This is of course only my interpretation of the information I've read about Palladium. I did not write the BIOS, and neither did you. :)
The palladium BIOS in question is not claimed to only boot signed operating systems. It merely claims to provide the "trusted system/user verification" only to signed trusted operating systems.
For example, if a company was providing Rights Managed content to your machine, it would first verify if your machine was trusted. If you had booted Linux on your Palladium enabled machine, then Linux (potentially) wouldn't have access to the "trusted system verification" and the company/website would not provide the rights managed content for fear that the rights management would be compromised.
Of course, it's not a long jump from here to there, so watch out.
Spews is exactly the same.
- They disturb legitimate users: I run a business hosting an email customer support application (Neotonic.com). It is very important for us to get email support replies thorough to customers. Numerous times our IP addresses have ended up on the Spews blocklist because of some unsolicited mail sender in the same 256 address subnet. At most colocation facilities, ten or more companies share the same subnet, and it is not easy to change your IP addresses.
- There is no way to track them down: Organizations like MAPS are judicious about how they block IP addresses. They do NOT block entire subnets unless there is cause, and they have an organized appeals process to take care of their oversights. Spews has no such facilities. In fact, the only centralized item in spews is the spews.org website.
- You can't get them to stop: They block entire ISPs, and their FAQ says that I'm a victim of "rare inadvertant blocking". The trouble is, we followed their advice, we moved to a new colocation, with an entirely new bandwidth provider, and our new IPs are also spews blocked. There is no organization to appeal to, there is no way to get this fixed.
Legitimate users like us can't keep changing IP addresses because SPEWS is too aggressive and has no organized process. If you want to use a spam advisory system, use MAPS RBL.Spews is worse than the spammers, because at least I can ignore the spammers.
The sad truth is that the standards the W3C makes are a fairy tale.
For a standard to be coherent, it needs a reference implementation. Only by having a reference implementation can you figure out "who owns the bug".
Additionally, for that reference implementation to have any power in the market, it needs to be the most popular implementation. Examples include: postscript, X11, and Win32.
In the Win32 world, application developers worry about making their applications run on one reference platform, Win32. If that application does not work on SoftWindows or Wine, the bug gets reported to developer of the emulator. Only in rare cases would the application write make changes to support running under an emulator.
The web works the same way. Today the reference for writing HTML is IE. It has the largest marketshare; It has the easiest to use documentation (on MSDN); And it is the most stable.
If you want the web to work on more browsers, you should put pressure on the browser writers to become compatible with the implementation that defines the standard... IE. You should also put pressure on the W3C to stop pulling new HTML standards out of their ass, and start basing them on existing implementations... They've been making this mistake since the early days of Netscape/Mosaic.
I feel the same way. Once I'm in the zone the details of the environment do not matter. Before that happens, however, there are definetly things you can do to help people create their zone. Here are three of them:
1) Build conventions for avoiding interruption.
2) Provide easy access to an energetic, yet practical programmer/system architect.
3) Provide detailed short term deliverable lists.
Here is some justification for each:
1) Build conventions for avoiding interruption
Questions and phone calls are a serious distraction and must be kept away forcefully. Voicemail to email gateways and phones that don't ring are a godsend. Another poster lamented the lack of a door in his cubeland. I've seen people use yellow police-line style warning tape to create the convention of a barrier in the office.
Noise is also a problem. I generally just turn up the techno music, although I know some people who need to have real quiet to get work done. There really are few things you can do which will help more than creating a quiet work environment.
If you don't stop interruptions and noise, then your great people will create that environment for themselves using techniques mentioned in other posts (i.e. headphones, odd work hours, work from home, etc), and your not-so-great people will be unproductive.
2) Provide easy access to an energetic, yet practical programmer/system architect.
The best thing to help me get in the zone is excitement about how the next mini-milestones will turn out, and a clear concept of how to get there. When I'm having trouble finding the zone on new code, it's usually because I have a foggy idea of what it's going to do today, or how I'm going to make it to that. To relieve this, I need to talk out these issues with an energetic coworker. This is not time for a visionary! It's time for someone who is positive and encouraging, but who is immenensly practical. The goal here is to simplify and figure things out, not to expand the vision.
This is the strongest part of eXtreme Programming's pair programming techniques, as you always have someone to do this with. Although not everyone can successfully play that encouraging yet practical architect role.
If you are not pair-programming, there should be someone who pro-actively runs around to see who needs to be jump started and then does it without being asked. When I'm managing others, this is what I spend a good deal of my time doing. When I'm programming, I routinely need someone to do this for me.
3) Provide detailed short term deliverable lists.
When I'm having trouble working on bugs or misfeatures, it's normally because I don't know where to start. Most small bugs don't take very long to fix, and most large bugs become interesting in the search for truth. However, when the list is really big and un-prioritized working on any one of them feels very arbitrary.
Eliminate this confusion by delivering a SHORT list of which of these bugs are the most important, and assign them to SPECIFIC people. Bug tools which make all bugs accessable to everyone are great resources, but they are not necessarily good task lists. Give me a list of 5 bugs you want fixed this week before I do anything else and I can probably fix them today. Give me a list of 40 open bugs to look at myself, and I'll just work on my other projects unless one of these bugs gets in my way.
Again, when I'm managing, I spend lots of my time doing just this. Keeping the list of stuff each person "needs to do this week" really small. This also makes it much easier for them to see whether they are making any headway.
Wow, I just took a look and the ROX Filer is truly revolutionary. This is the first simple example of the powerful Nextstep and MacOS X concept of "app wrappers" brought to Linux.
App-wrappers are a system which solves many of the application installation problems associated with the Windows Registry and systems like RPM. By locating all of an applications files under a single relocatable directory, installing an application is as simple as dropping the "app wrapper directory" on your filesystem.
Lets all hope this concept finally takes off on Linux, so it can pave the way for simple 3rd party application distribution.
In layman's terms. If you are a node in one of his example networks, and you're sitting on a DSL connection, does the available bandwidth you contribute to the net change whether you have 20 outbound TCP connections or 2? No. It is constant. The author incorrectly computes the "bandwidth" of these different network topologies like you are stringing a separate DSL to each person you open a TCP connection to.
Available network bandwidth in a peer network like Gnutella is related only to the physical interconnect of the nodes. (i.e. whether they are on an SBC DSL line or sitting a North American OC-3)
The only useful analysis is that which determines the amount of data-transfer required between each node (and all nodes) for common operations when using different topologies. When performing this study, you are looking for the topology which will transfer the smallest amount of data over the smallest number of nodes when performing searches. For a great analysis, see the Gnutella Performance Paper by Ritter, referenced by the above paper.
Careful analysis will tell you the same thing that common sense does -- that the best architecture involves centralized dedicated servers (supernodes), located on machines with the largest physical bandwidth available. (i.e. eactly what Napster did. )
In order to create an efficient peer network which scales, Gnutella 'merely' needs to 1) order the network by physical topology, 2) identify the nodes with the best combination of physical bandwidth, longevity, and CPU/disk resources, and 3) fully utilize those machines as supernodes.
Good luck. :)
EROS' predecessor, KeyKOS, made waves at USENIX when they did a demo of a UNIX system + Xwindows which would instantly restore the running state of all software when rebooted. It was basically a UNIX port to KeyKOS, and since everything in KeyKOS was persistant, so was everything in the UNIX.
One interesting caviat with this type of OS is that you really need to use ECC memory, because bit errors can get saved to disk and propagated forever!
Third party software is too hard to install on Linux.
It needs to be:
1) download setup.exe (or equivilant)
2) launch
3) click Next 2-5 times to install
And remember:
- One setup package needs to work on 2 years worth of Linux, regardless what what version or company made your distribution.
- third party software means "3rd party", not something included on the RedHat CD. Nothing which is fully centralized will scale.
Today, even if I wanted to support this for my 3rd party software product, I can't. the tools and standards are not available.
Granted, you'll have to write a renderer. However, HTML does not have enough expressiveness to deal with page break situations, and other complications of paged printing anyhow.
http://www.chat.net/~jeske/Projects/ScriptPerf/