Re:Anything else out there?
on
The State of X.Org
·
· Score: 5, Insightful
My personal bet is that X is overly complicated.
E.g. it takes 20-30 minutes to start doing something with Linux kernel. Entry bar is set low - many people like to participate. Needless to mention that to compile (properly configured) Linux kernel (with subset of drivers and features you really need) only few minutes. There are piles and piles of documentation and forums where you can find anything.
E.g. KDE + Qt. To compile KDE - you might need days. Or just grab precompiled binary packages. But after that you can in 5 minutes create something useful and interesting. Documentation is near perfect and complete. Also reading source code is quite easy, since most of the code is human readable.
But X is different beast. Even compiling it is challenge on itself. There is literally no documentation on its innards. There is no "Hello World" for X. There are bunch of example modules which you need to spend hours after hours to only understand where they plug into the all X mess.
I'd say main X problem is its strive to be cool and sit on all chairs. I'd say they need to scale down the project and split it into smaller independent pieces. Forget large releases (installing apt-get would help! kidding). The smaller sub-projects would have more chances attracting people, since (at least theoretically) then entry barrier would be lower.
Do not get me wrong - I'm all for Linux. But I guess the mini-notebook producers have put Linux there because they didn't need anybody's permission to do it. First. Second. I think they also tried to provoke M$ to get some bargaining chip in negotiations.
Now that new market have opened, rest assured, M$ will do anything to grab it.
There is an open file format.ODG. So I do not see people jump and reverse engineer Visio right away. First.
Second. That might be only me, but I find both Kivio and OO Draw (esp in recent version) much much better than Visio. And at least several other people whom I have "migrated" to OO Draw by simply showing diagrams I have made in it. Add here two invaluable features - (1) OpenOffice.org Portable and (2) PDF export - and Visio suddenly becomes non-starter.
I'd love to be on side with the Apple, but fact remains that PCs got all cheaper now. You can buy half-decent notebook for $800 - and many would call it "high-end."
Business isn't buying Windows/Vista anyway - they normally sign licensing contract. That minimizes paperwork considerably. Businesses generally have some internally standardized OS/version.
So to me the 45% of computers sold to business claim sounds really strange anyhow you look at it.
Didn't try that for a long time, but in past searching for (and downloading) torrents off the Gnutella worked miracles.
It was in the times when there were no such sites like PirateBay or TorrentSpy or SuprNova. Private trackers were majority and were pain to use and were often down.
Now it seems to be essentially same principle: search for torrent on one P2P network but download the content off another P2P network.
The high marks of Solaris and WRK in preprocessing could also be attributed to programming discipline. The problems from the use of the preprocessor are well-known, but its allure is seductive. It is often tempting to use the preprocessor in order to create elaborate domain-specific programming constructs. It is also often easy to fix a portability problem by means of conditional compilation directives. However, both approaches can be problematic in the long run, and we can hypothesize that in an organization like Sun or Microsoft programmers are discouraged from relying on the preprocessor.
That subjective conclusion is precise effect reading too much into the metrics.
Sun or Microsoft programmers need to support 2 and 2 platforms respectively. (Sun: SPARC and AMD64; M$: IA32 and AMD64). All portability are of boolean complexity.
But FreeBSD and Linux run on dozen of platforms. I do not know how it is in BSD land, but in Linux first and foremost requirement for platform support, is that it has no negative side-effects on other platforms. Consequently, for example, under Linux most (all? - all!!) locking is still implemented as macros: on uni-processor system with preemptive kernel feature disabled all in-kernel synchronization would miraculously (thanks to preprocessor) disappear from the whole code base. To make sure that on such platform, kernel would run as efficiently as possible - without any locking overhead, because all the locking is not needed anymore.
And that's single example. There are many macros for special CPU features: depending on platform it would be nop or asm statement or function call. No way around using macros.
I think one of the points the author needed to factor in, is portability of OS. Without that, most metrics are skewed too much.
P.S. Actually, Linux affinity to macros is often (at least from words of kernel developers) stems from poor optimization of inlined functions in GCC. Many macros can be converted to functions - but that would damage overall level of performance. In many places significantly.
I wonder since when content of stack became "random" as to serve a seed.
In all my years of system and application developer, I'd say picking something random from stack as good as picking some constant - because all code paths thru program would leave 1-2 unique stack states. No entropy there for you.
Even address of stack contains more entropy that its content - since most OSs now randomize stack base address.
Once in a while, I have to call the OpenSSL guy an incompetent and give kudos to Debian guys removing another piece of cruft from code.
Please do not forget that most Msofties are not fanbois - they just do not know any better.
And most/. population hopefully knows alternatives - compared to usual M$ zealots. It's pointless to ask questions here. As long as inert mass of users will be - unknowingly, unwillingly - using M$ OSs they are just locked-in. Not because of M$ actions - but because they do not care.
But in past, video cards were used to render previews and some special effects (e.g. particles). It wasn't pure hardware rendering - something was rendered in software, then blended together with with image rendered by/in hardware.
The main difference in the times was that cheap cards didn't supported all the fancy color spaces/modes nor did they had bandwidth to transfer huge textures (smaller parts of scenes pre-rendered in software) to cards.
Actual architecture introduced by nVidia (generic GPU responsible for everything) makes all that soft-modding possible. Besides some bus bandwidth issues (Quadros have wider internal buses) I do not see any problem with the hack.
I easily believe that drivers for cheaper GeForces might intentionally skip some advanced functionality, which isn't relevant to games, but is important to 3D modeling software.
To me Doom3 remains best FPS released in many years.
Most charming is the fact that it is a pure FPS: run and shoot, non-stop. No driving, no flying, no swimming - just pure action without artificial delays.
A perfection hard to match.
P.S. I though that Wii would get some decent FPSs. But it seems that WiiMote now can be surely renames to WaggleMote (for it is used now solely for waggle). Wii as other consoles are cemented in their console past - they simply can't allow enjoyable games which don't screw you every minute.
Which has always struck me as a rather mob-handed way to do business.
As to out-sider, US business in general looks like mob. It is just side effect of the low entry level - making possible for anybody to start his own business in US. For comparison, just look like well organized and polished business in Germany - I mean the bits of it which are left after introduction of Euro and increased taxes.
P.S.
"Buy our product or we'll sue you!".
That's actually quote from Oracle sales. Seriously.
The modern economies would always need large companies like M$. e.g. IBM is sticking around for a reason. (Long redundant speech on actions taken by governments to intentionally enlarge businesses is omitted.)
The problem is that computing world changed faster than M$ anticipated. And computing world changed so fast in part because M$ itself provoked the changes, trying to monopolize many computing areas to themselves.
Biggest problem for them is that the role M$ should have been playing now is taken by several other strong companies: Google, IBM, Sun, etc. Google now provides more services to its non-paying customers than M$ tools do provide for money. M$ policy to remain middleman - and not going into hardware business - resulted that PC industry never had a chance to consolidate and standardize around single leader company.
M$ tried hard to keep apart services from hardware, but in the end it had lost. Instead of being universal middleman, now they are just road bump everybody has to get around somehow.
If M$ wants to survive, they have to stop pretending being middleman and go just like Apple vertical. I think Xbox and Zune projects might serve good starting ground for them: provide end-to-end solution w/o usual to PC deals crowds of 3rd parties. They need to do the same with mobiles, notebooks and servers: Microsoft is well recognized brand which would be accepted by markets quickly.
But I guess, if M$ would go personally into new markets, then they would have to be more open and friendlier than they are right now. MP3 player market as well as game console markets are different, since you can be completely proprietary. But the proprietary lock-in will not work in most other markets, where heterogeneous environments and interoperability are norm of life.
I do not know what GP meant precisely, but I had similar experience.
Some game (very old RPG) was available on Overlord and on BitTorrent. Not sold anymore. Problem was that BitTorrent had only single seed which minuscule upload speed - in several day I have downloaded only few megs. I tried then Overlord and in few days I got the game almost complete - but another snag had hit me: whether by mistake or intentionally, file was poisoned and three parts couldn't be downloaded. I was ready to throw everything away - antique games interest me little (but friend was recommending it as milestone RPG I had to play). Then suddenly I was enlightened: I fed the incomplete ISO of game to BitTorrent. BT client happily announced something like 98% of file complete and in less than one night downloaded rest of the file.
As was pointed in sibling comment - No. There are all kinds of problem like e.g. sudden system power off. Many people (me included) would be surprised if file sent to disk an hour ago disappears after crash.
This is general problem of flashes: as they try internally improve write performance, block size grew very large.
Only solution: complete redesign of file systems to accommodate such block-sizes. And even that will not solve problem, since most writes from most desktop applications to disks are small. File download/upload, movie encoding/decoding and other batch-like workloads would be fine even with current file systems since they write huge amounts of data thus suffer less from large block size.
Or probably they can come up with flashes which have smaller block-sizes. That would be much much easier. And from usual inertness of industry I guess they'd rather invent new flash memory than stop using FAT...
The problem with SSD is that flash based storage has much much higher block size.
While conventional HDDs have block size 512 bytes, actual SSDs have block size of 64 kilobytes.
Not only Flashes write relatively slow, but if file system has e.g. cluster size of 8K, every write to it in worst case would also (re)write redundantly 64K-8K=56K.
Test is realistic - if you want to see how bad most applications can be with SSDs. But that's going to change with SSD becoming more and more common place.
If they really wanted to test SSD performance they would have taken Linux with jffs2 or newer logfs. Though this two have their own problems.
Side note. In the beginning I was quite surprised by Flock doesn't support Google services/supports only few of them. (N.B. Flock's support os Google services greatly improved recently.)
After some time getting used to it - and you know appetite comes during lunch - I tried to do more (thinking that unobtrusive interface just hides some advanced functionality and all I need is just to read the advanced documentation) just to find out that most of Google services are WYSIAYG. There is literally ZERO, ZILCH, NADA of advanced functionality.
I use blogger in part because it where I have started blogging/etc. At moment I do not need more, but time after time some rough edges (like tables) are really annoy me. Most of what annoys me is that Google devels are completely absent from groups. Many services are really looking like abandoned (Reader, Bookmarks). The only service I found to be better than others is personalized home page (google.com/ig) and its simple nice integration with Google Mail. Rest is better implemented even by Yahoo. Sad but true.
So coming back to Flock. My friend asked me how to blog/publish photos/etc. He already had Google account but couldn't find some functionality - so he decided to ask me. For most of his problems I knew workarounds, but still to avoid future questions I simply had showed him Flock and what it allows to do. Week later met him and his was pretty happy: creating bunch of new accounts on different services took time, but it all works and works nice together with help of Flock. Google is just missing the party...
Add Google Reader (RSS feed agregator) to the list of neglected applications.
I use it solely because it works with some high-volume feeds - and other clients even with tight refresh timeouts missing messages (especially when my PC is not connected). But then with the high volume feeds you get literally no service: search and tagging in Google Reader is probably poorest search and tagging in whole set of Google applications.
Forums are filled with simple requests - yet for the past two years none of them were heard/ fixed/implemented in Reader.
I once spend an hour trying to explain IIS/MS SQL Server admin what PHP/MySQL addslashes()/mysql_escape_string() do - all to no avail. He was absolutely sure it is sufficient to like in VB surround any string with single quotes and it all will be fine.
Now seeing that it's real fun for guys, I can only laugh.
What I love about such studies is that they can confirm any theory you want.
Truth remains that every particular market has requirements which dictate selection of languages.
I doubt that telecom industry (as it is right now) would ever get over C or C++. Just like kernel or system libraries in anything else but C.
If you look at rise of Web - and pleiades of supporting it languages - then both C/C++ are out of question of course. Though again I can hardly imaging Apache or MySQL or PHP being written in anything else but C or C++.
Market for system and telecom programming is definitely shrinking - and consequently their languages. Other markets are now blooming - and their languages are becoming more popular.
My point is that the languages are complementing - they are not competing. After all you have to write hardware, firmware and OS first. Only then your beloved automated garbage collection has possibility to kicks in.
My personal bet is that X is overly complicated.
E.g. it takes 20-30 minutes to start doing something with Linux kernel. Entry bar is set low - many people like to participate. Needless to mention that to compile (properly configured) Linux kernel (with subset of drivers and features you really need) only few minutes. There are piles and piles of documentation and forums where you can find anything.
E.g. KDE + Qt. To compile KDE - you might need days. Or just grab precompiled binary packages. But after that you can in 5 minutes create something useful and interesting. Documentation is near perfect and complete. Also reading source code is quite easy, since most of the code is human readable.
But X is different beast. Even compiling it is challenge on itself. There is literally no documentation on its innards. There is no "Hello World" for X. There are bunch of example modules which you need to spend hours after hours to only understand where they plug into the all X mess.
I'd say main X problem is its strive to be cool and sit on all chairs. I'd say they need to scale down the project and split it into smaller independent pieces. Forget large releases (installing apt-get would help! kidding). The smaller sub-projects would have more chances attracting people, since (at least theoretically) then entry barrier would be lower.
Do not get me wrong - I'm all for Linux. But I guess the mini-notebook producers have put Linux there because they didn't need anybody's permission to do it. First. Second. I think they also tried to provoke M$ to get some bargaining chip in negotiations.
Now that new market have opened, rest assured, M$ will do anything to grab it.
After all they already brought XP from dead...
I still want my "Find..." dialog back. :(
Let me guess...
That would be "there is no customer demand" again??
There is an open file format .ODG. So I do not see people jump and reverse engineer Visio right away. First.
Second. That might be only me, but I find both Kivio and OO Draw (esp in recent version) much much better than Visio. And at least several other people whom I have "migrated" to OO Draw by simply showing diagrams I have made in it. Add here two invaluable features - (1) OpenOffice.org Portable and (2) PDF export - and Visio suddenly becomes non-starter.
I'd love to be on side with the Apple, but fact remains that PCs got all cheaper now. You can buy half-decent notebook for $800 - and many would call it "high-end."
Business isn't buying Windows/Vista anyway - they normally sign licensing contract. That minimizes paperwork considerably. Businesses generally have some internally standardized OS/version.
So to me the 45% of computers sold to business claim sounds really strange anyhow you look at it.
Didn't try that for a long time, but in past searching for (and downloading) torrents off the Gnutella worked miracles.
It was in the times when there were no such sites like PirateBay or TorrentSpy or SuprNova. Private trackers were majority and were pain to use and were often down.
Now it seems to be essentially same principle: search for torrent on one P2P network but download the content off another P2P network.
That subjective conclusion is precise effect reading too much into the metrics.
Sun or Microsoft programmers need to support 2 and 2 platforms respectively. (Sun: SPARC and AMD64; M$: IA32 and AMD64). All portability are of boolean complexity.
But FreeBSD and Linux run on dozen of platforms. I do not know how it is in BSD land, but in Linux first and foremost requirement for platform support, is that it has no negative side-effects on other platforms. Consequently, for example, under Linux most (all? - all!!) locking is still implemented as macros: on uni-processor system with preemptive kernel feature disabled all in-kernel synchronization would miraculously (thanks to preprocessor) disappear from the whole code base. To make sure that on such platform, kernel would run as efficiently as possible - without any locking overhead, because all the locking is not needed anymore.
And that's single example. There are many macros for special CPU features: depending on platform it would be nop or asm statement or function call. No way around using macros.
I think one of the points the author needed to factor in, is portability of OS. Without that, most metrics are skewed too much.
P.S. Actually, Linux affinity to macros is often (at least from words of kernel developers) stems from poor optimization of inlined functions in GCC. Many macros can be converted to functions - but that would damage overall level of performance. In many places significantly.
I wonder since when content of stack became "random" as to serve a seed.
In all my years of system and application developer, I'd say picking something random from stack as good as picking some constant - because all code paths thru program would leave 1-2 unique stack states. No entropy there for you.
Even address of stack contains more entropy that its content - since most OSs now randomize stack base address.
Once in a while, I have to call the OpenSSL guy an incompetent and give kudos to Debian guys removing another piece of cruft from code.
Please do not forget that most Msofties are not fanbois - they just do not know any better.
And most /. population hopefully knows alternatives - compared to usual M$ zealots. It's pointless to ask questions here. As long as inert mass of users will be - unknowingly, unwillingly - using M$ OSs they are just locked-in. Not because of M$ actions - but because they do not care.
If you actually RTFA, then you know that TechARP is innocent by-stander.
On other side, nVidia has a long story with RivaTuner which among others enables that hack too.
Driver encryption, option name mangling, registry tricks employed by nVidia drivers are precisely there to deter RivaTuner folks.
+10
I do not have up-to-date info.
But in past, video cards were used to render previews and some special effects (e.g. particles). It wasn't pure hardware rendering - something was rendered in software, then blended together with with image rendered by/in hardware.
The main difference in the times was that cheap cards didn't supported all the fancy color spaces/modes nor did they had bandwidth to transfer huge textures (smaller parts of scenes pre-rendered in software) to cards.
Actual architecture introduced by nVidia (generic GPU responsible for everything) makes all that soft-modding possible. Besides some bus bandwidth issues (Quadros have wider internal buses) I do not see any problem with the hack.
I easily believe that drivers for cheaper GeForces might intentionally skip some advanced functionality, which isn't relevant to games, but is important to 3D modeling software.
+1.
To me Doom3 remains best FPS released in many years.
Most charming is the fact that it is a pure FPS: run and shoot, non-stop. No driving, no flying, no swimming - just pure action without artificial delays.
A perfection hard to match.
P.S. I though that Wii would get some decent FPSs. But it seems that WiiMote now can be surely renames to WaggleMote (for it is used now solely for waggle). Wii as other consoles are cemented in their console past - they simply can't allow enjoyable games which don't screw you every minute.
As to out-sider, US business in general looks like mob. It is just side effect of the low entry level - making possible for anybody to start his own business in US. For comparison, just look like well organized and polished business in Germany - I mean the bits of it which are left after introduction of Euro and increased taxes.
P.S.
That's actually quote from Oracle sales. Seriously.
Good question.
I actually seeded the ISO until several other seeds appeared. ;)
IIRC, there were in total 5 people interested in the game world-wide.
My simple rule of home seeding is: seed only on open public limitless trackers and when there is a need for seeders.
The modern economies would always need large companies like M$. e.g. IBM is sticking around for a reason. (Long redundant speech on actions taken by governments to intentionally enlarge businesses is omitted.)
The problem is that computing world changed faster than M$ anticipated. And computing world changed so fast in part because M$ itself provoked the changes, trying to monopolize many computing areas to themselves.
Biggest problem for them is that the role M$ should have been playing now is taken by several other strong companies: Google, IBM, Sun, etc. Google now provides more services to its non-paying customers than M$ tools do provide for money. M$ policy to remain middleman - and not going into hardware business - resulted that PC industry never had a chance to consolidate and standardize around single leader company.
M$ tried hard to keep apart services from hardware, but in the end it had lost. Instead of being universal middleman, now they are just road bump everybody has to get around somehow.
If M$ wants to survive, they have to stop pretending being middleman and go just like Apple vertical. I think Xbox and Zune projects might serve good starting ground for them: provide end-to-end solution w/o usual to PC deals crowds of 3rd parties. They need to do the same with mobiles, notebooks and servers: Microsoft is well recognized brand which would be accepted by markets quickly.
But I guess, if M$ would go personally into new markets, then they would have to be more open and friendlier than they are right now. MP3 player market as well as game console markets are different, since you can be completely proprietary. But the proprietary lock-in will not work in most other markets, where heterogeneous environments and interoperability are norm of life.
I do not know what GP meant precisely, but I had similar experience.
Some game (very old RPG) was available on Overlord and on BitTorrent. Not sold anymore. Problem was that BitTorrent had only single seed which minuscule upload speed - in several day I have downloaded only few megs. I tried then Overlord and in few days I got the game almost complete - but another snag had hit me: whether by mistake or intentionally, file was poisoned and three parts couldn't be downloaded. I was ready to throw everything away - antique games interest me little (but friend was recommending it as milestone RPG I had to play). Then suddenly I was enlightened: I fed the incomplete ISO of game to BitTorrent. BT client happily announced something like 98% of file complete and in less than one night downloaded rest of the file.
As was pointed in sibling comment - No. There are all kinds of problem like e.g. sudden system power off. Many people (me included) would be surprised if file sent to disk an hour ago disappears after crash.
This is general problem of flashes: as they try internally improve write performance, block size grew very large.
Only solution: complete redesign of file systems to accommodate such block-sizes. And even that will not solve problem, since most writes from most desktop applications to disks are small. File download/upload, movie encoding/decoding and other batch-like workloads would be fine even with current file systems since they write huge amounts of data thus suffer less from large block size.
Or probably they can come up with flashes which have smaller block-sizes. That would be much much easier. And from usual inertness of industry I guess they'd rather invent new flash memory than stop using FAT...
XP IO subsystem is pretty OK.
The problem with SSD is that flash based storage has much much higher block size.
While conventional HDDs have block size 512 bytes, actual SSDs have block size of 64 kilobytes.
Not only Flashes write relatively slow, but if file system has e.g. cluster size of 8K, every write to it in worst case would also (re)write redundantly 64K-8K=56K.
Test is realistic - if you want to see how bad most applications can be with SSDs. But that's going to change with SSD becoming more and more common place.
If they really wanted to test SSD performance they would have taken Linux with jffs2 or newer logfs. Though this two have their own problems.
Same experience here.
Side note. In the beginning I was quite surprised by Flock doesn't support Google services/supports only few of them. (N.B. Flock's support os Google services greatly improved recently.)
After some time getting used to it - and you know appetite comes during lunch - I tried to do more (thinking that unobtrusive interface just hides some advanced functionality and all I need is just to read the advanced documentation) just to find out that most of Google services are WYSIAYG. There is literally ZERO, ZILCH, NADA of advanced functionality.
I use blogger in part because it where I have started blogging/etc. At moment I do not need more, but time after time some rough edges (like tables) are really annoy me. Most of what annoys me is that Google devels are completely absent from groups. Many services are really looking like abandoned (Reader, Bookmarks). The only service I found to be better than others is personalized home page (google.com/ig) and its simple nice integration with Google Mail. Rest is better implemented even by Yahoo. Sad but true.
So coming back to Flock. My friend asked me how to blog/publish photos/etc. He already had Google account but couldn't find some functionality - so he decided to ask me. For most of his problems I knew workarounds, but still to avoid future questions I simply had showed him Flock and what it allows to do. Week later met him and his was pretty happy: creating bunch of new accounts on different services took time, but it all works and works nice together with help of Flock. Google is just missing the party...
Add Google Reader (RSS feed agregator) to the list of neglected applications.
I use it solely because it works with some high-volume feeds - and other clients even with tight refresh timeouts missing messages (especially when my PC is not connected). But then with the high volume feeds you get literally no service: search and tagging in Google Reader is probably poorest search and tagging in whole set of Google applications.
Forums are filled with simple requests - yet for the past two years none of them were heard/ fixed/implemented in Reader.
Lolicious.
I once spend an hour trying to explain IIS/MS SQL Server admin what PHP/MySQL addslashes()/mysql_escape_string() do - all to no avail. He was absolutely sure it is sufficient to like in VB surround any string with single quotes and it all will be fine.
Now seeing that it's real fun for guys, I can only laugh.
What I love about such studies is that they can confirm any theory you want.
Truth remains that every particular market has requirements which dictate selection of languages.
I doubt that telecom industry (as it is right now) would ever get over C or C++. Just like kernel or system libraries in anything else but C.
If you look at rise of Web - and pleiades of supporting it languages - then both C/C++ are out of question of course. Though again I can hardly imaging Apache or MySQL or PHP being written in anything else but C or C++.
Market for system and telecom programming is definitely shrinking - and consequently their languages. Other markets are now blooming - and their languages are becoming more popular.
My point is that the languages are complementing - they are not competing. After all you have to write hardware, firmware and OS first. Only then your beloved automated garbage collection has possibility to kicks in.
Well, if you put it this way.