Really, I can assure you that the seat would in fact be wasted. It is important to understand that politics is about more than a single issue of interest. Personally, the Pirate Party agenda is sadly lacking, but that is not to say that it doesn't have a certain merit.
The Pirate Party (keep wanting to write bay), has made it to a public election. This is important to realize. In Sweden, you can form an "I like Cookies" party and bring it to election, however it would receive 0 votes unless all the remaining parties were so disgusting that the "I like Cookies" party seemed the most harmless. The Pirate Party on the other hand, whether they received the needed number of votes or not is irrelevant. What is important is that they did in fact receive votes.
This means that they in fact won votes away from (I use this term in the not to piss everyone here off terminology of it) legitimate parties with agendas that focus on improvement of roads, education, social welfare, health related and other key focal points. So it isn't important how many votes they won, it's important to notice that they did in fact win votes away from parties with issues that genuinely impact the survival of the Swedish people.
So why does that matter? Well, it means that other parties will have to look at the issue seriously enough and recognize that this single issue which has no impact on a persons ability to feed themselves or take care of their children was important enough to some people that they need to at the very least evaluate whether this is a stance their party should back.
Now, the alternate possibility is that the Pirate Party rebuilds itself as for example, "The Human Civil Liberties Party". They can build a proper agenda, adopting the focus points from other parties they agree with and win office to forward all these values they hold to ensure civil liberties that are regularly being revoked by corporations with strong political control. It could in fact be a party that focusses on issue like :
- Reform of the police departments, have the police focus on real crimes like drug trafficing, rapes, murders, thefts, and less on protecting corporated IP rights
- Reform schools to educate students instead of babysit them, require teachers to do a full year of schooling themselves for every 10 years they teach. This will make the students smarter and more capable of understanding their rights.
- Reform medicine so that licensed doctors are required to further their education formally every few years to maintain their licenses. This will hopefully make it so that doctors spend less time on the golf course and more time actually excersizing their brains. This is important since they are major campaign funders.
- Reform universities to require students to take general education as well as their specialized training. This in itself will make people more aware of civil liberties when they leave school..... we hope.
- Reform business schools to require a certain amount of general science education so that the business people will form a greater understanding, and hopefully appreciation for what is actually involved in producing intellectual property.
- Promote solutions from universities over solutions from corporations within government computers. For example, accounting schools should have software development classes where actual business systems are designed and developed for free use within the country. Make Linux a viable option for the government by funding research and development in the universities of genuine solutions that can be deployed for free.
I can go on for ages, but the fact is, in a country such as Sweden (I live next door in Norway and am American so I've seen a lot of both extremes), there is no room for a party like the Pirate Party because they don't address issues which directly impact a persons survival, they don't even address issues that impact a persons quality of living. But, they have an idea that could actually mean something, and if they are in fact serious about it, then they need to take the politics more seriously and find more to stand for that does in fact address real problems in the country they live in.
Well, I do not know if it will help or not. I am an american, though I no longer live there. I remember getting slammed all the time, but I left the US before the "Do Not Call" list came about. Norway has had a similar list for about the same amount of time. This is the kicker of it. No instead of directly marketing, they obtain lists with addesses as well as telephone numbers. Then they call up, ask you a few questions, and when you hang up with them, they've collected enough data to postal spam you. I mean FULL MAILBOX. In fact, I understand from a friend that companies are in fact cross referencing their dialing list with the do not call list. If the name appears on the do not call list, then a "Survey" call is made. If the name is not on the list, then a sales call is made.
Here's the thing about the good business sense side of things.
The lists the marketers use to make the calls are purchased from other companies. I would often ask to speak with the sales manager to request information regarding who they purchased my name from so I may call them and request financial retribution. In many cases, they would provide it, and I would inform them that I'll be calling them as well if I find out they have sold my name to another firm.
Now, the value of these lists increase with their accuracy. Telemarketers should in fact be removing names from the list anyway if the call receiver is abusive or highly annoyed by receiving a call. By removing the name, it makes the list more accurate. It allows the next person to use the list to skip over the "why bother calling this one" members and allows them to move on to the "This sucker bought a robotic toaster for $89 in 4 easy payments from us" kind of people. Often these lists sell of $0.05-$0.10 per name. For a well filtered list, a company would easily pay five times as much. I mean a list consisting of people that have actually purchased something from a telemarketter in the past 12 months.
But, sadly, the telemarketing business is completely full of people that fell for the "Make up to $5000 a week!" advertisements themselves. When I was a teenager, I worked for a firm like this. We targetted businesses and I still felt dirty. The people I worked for had worked their way up from "Hi, can I talk to you about you photocopy paper needs?" to then "You need to make a minimum of 100 calls per day and you need to use the script!" management thing. It's an awful business, but on the brighter side, if they weren't making calls like this, they'd be selling Kirby instead.
Umm... sure, I've got a minute to waste. Quit busting on other people like this now... here's why....
1) Many of us were using the later betas of Windows 2000 64-bit for the XP platform (MSDN subscribers had access) until Compaq cancelled their agreement with MS 2) Many of us have run Windows XP or Windows servers editions on Itanium... and it was 64-bit 3) Many of us have played XP 360 running a 64-bit Windows 2000 derivative for PowerPC 4) Many of us have been in the Solaris world running 64-bit for a REALLY long time 5) Many of us have used IRIX workstations running in 64-bit for a long time
I will toss you a bone and let you feel a little better for getting the encryption bit correct... but wait a second... in a multitasking environment, the simple cost of task switching AMD64 is more expensive... BECAUSE of the additional registers. You may not realized, but for the most part, almost noone actually uses the standard task state change mechanism of Intel processors favoring manual backup and restore with a far jump instead since TSS related calls are painfully expensive. Now task switching has become far more expensive. Now instead of pushing and popping (not including index and pointer regs) general purpose registers requires pushing and popping 256 bytes compared to the earlier 32 bytes. Of course the faster memory performance will compensate for a bit of it, but let's face it, it still hurts a little.
Now let's get to media encoding... ummm what the hell are you talking about?
You seem to like talking about matrix calculations as if any CODEC actually implements the matrix operations in general purpose registers using the standard ALU.... well some do... strictly for reference implementations, but in reality there are units particularly built for this type of calculation. This is the entire purpose of SIMD, SSE, 64Now!, SSE2, SSE3, SSE4 (and altivec for example elsewhere). The fact is, why in the name of all that is good on this planet would anyone implement a matrix calculation in a execution path locked to 64-bit ALU based instructions when in reality, SSE first of all gives you a minimum of 8 packed registers executing on four 32 bit sets in parallel? As I see from your website, mathematical precision is of importance to you, but in the world of CODECs, there is limited need for anything more precise.
Mathematica, Maple, Mathlab etc... obviously benefit from the new architecture, but come on... are you actually making use of 64-bit integer instructions? If it speeds up anything, it's the UI when running simulations. In reality you're comparing apples to oranges. And not that you've noticed apparently, Mathematica has run on 64-bit for a LONG LONG time.
Ok... you talk about larger virtual address space... that's an excellent topic to discuss... Windows Server has supported PAE for a while, or Physical Address Extension allowing virtual memory to be addressed as 64-bit... this is in fact a documented CPU extension from Intel. Oh.. I'm sorry were you talking about PHYSICAL ADDRESS SPACE? Yes, the Xeon faced certain addressing limitations, but they were circumvented using chipset trickery that allowed PAE to be remapped to larger address spacing externally. This is how companies like Dell, IBM, etc... were able to ship Xeon systems that could address 8Gbytes or more. I don't know the full technical details, but I'd imagine that it is closely related to using fancy paging methods through a more advanced MMU.
Windows Vista will be released in two flavors, one in 32-bit and one in 64-bit. I'm guessing from watching the transition from 16 to 32 bit computing that one thing will be clear, since Microsoft isn't releasing a dual-mode binary (Apple didn't either, their package format just pointed to two executables), that intelligent vendors will rely on either:
a) Release an installer that will detect the architecture and install the suitable executable 32 or 64 bit
b) Ignore 64-bit since for the most part,
ummm.... a proper IDE such as Visual C++ 6.0 Development Studio or Visual Studio.NET is nothing more than a text editor and an alternative to makefiles. In reality, the only thing that gets coded ugly in a system like this would be the makefiles themselves.
I'd like to point out that an IDE that encourages a developer to program one way or another (with the exception of smalltalk) should be avoided at all costs. A proper IDE is simply a single application that provides the following :
- Text Editor
- Project/Makefile system with hotkey triggered build
- A means to select a compiler/linker error and automatically open the file and point to the line number
- A means to debug a project by setting breakpoints to be honored in the debugger via the IDE as well as providing hotkeys for stepping and continuing.
A nice IDE may include features such as the following :
- Code completion
- Integrated help files for functions (such as openning the right man page for fprintf)
- Automatic compilation of JavaDoc/Doxygen in code documentation
- Browser data for quickly looking up function definitions (this means, right click a variable or function name, selection find definition or find declaration and it takes you to it)
- Makefile generation (I've written my own for Visual Studio to create autoconf/automake files on *NIX)
As far as I know, Emacs has all these features (well not the makefile system I think) and more. Problem is, that it's a major pain in the ass for people to learn. It also doesn't integrate mouse control very well (even in the Xemacs flavor).
KDevelop tries to do a good job, but really this one does force you into their style of development KDEStudio Gold was a rip off of development studio and if they ever got the project system right would have been awesome Visual SlickEdit is expensive and works quite well, but does not have support for external help files and can't handle preprocessors very well. CodeWarrior for Linux worked pretty well, but also struggled with preprocessors others are too new to talk about.
Now you have a really fun option but it costs WAY too much
MainSoft Visual MainWin for Unix and Linux
This product actually lets you use a Windows machine for development, develop a windows application, then compile for Linux from within Visual Studio by preprocessing on the Windows machine and compiling on a Linux system. The product even includes a commercial product similar to Wine but actually uses Microsoft's code from Windows 2000. Although I wouldn't actually recommend this solution for anyone writing new projects, it sure is a fun solution to the problem;)
Unfortunately, they lack good support for preprocessors such as moc from Qt. They also lack support for build systems other than their own. Admitidly, I've purchased this software, but only used it a brief time. Their project tools actually seemed limiting after not too long.
I work in a video organization. The average project we work on for DVD production is between 100 and 150 gigs of data. We have approximately 500 projects per year of that size. We are the extreme situation, but it has taught me a lot of thing regarding backing up.
For my home server, I have a small, 5 terabyte system that is actually configured as single drives. I used to run a stripe, but that is the worst idea ever and I decided that given my storage needs, the cost of a backup solution that was reliable was less expensive that a RAID controller able to handle 5 terabytes across 14 drives.
At first, the solution was DVDs. As my storage grew, I moved to removable hard drives. This was a bad idea. Hard drives are good online storage but only substandard offline storage. Hard drive error correction only seems to work correctly when the drive is powered. Besides, noone can predict how long a powered down drive can hold its data for.
So here's what I did. I have a partition which contains files I create. The rest of the storage is for files I copied. The files I create is a mere 150gigabyes. These files I can't lose and because of that, they require a reliable long term storage system. The files which I copied, such as my TV recordings and DVD backups (I store all my purchased DVDs on a central system), are either backed up to hard drive or considered to be losable.
The long term backup system I use is a cheap DLT drive from EBay. After checking prices, I've seen them being won for $10. The tapes are of course expensive, but they're worth it. See DLT offers a solution that is different than hard drive and DVD. Recordable DVD has terrible longevity. Hard drives typically do not state how long they will retain data in a powered off state. I assume it will be a while, but in reality a while can be a 10 years or 3 months.
Using DLT tape is a huge benefit since DLT is designed from the ground up for data retension, not necessarily for speed. If you have files you want to keep for 15 years, DLT tapes are a far more reliable form than alternate media.
P.S. For a fun note, my most reliable backup system yet has been printouts. I wrote a program when I was a teenager that simply made use of a 300dpi laser printer to spew out binary data encoded as dots. Every kilobyte was checksummed. I stored about 1.2 megabytes per page. This means on 500 sheets of american letter paper, with a half inch margin, I could store 600 megabytes of data. As little as a year ago, I scanned the first 15 pages using a 1200 dpi scanner and wrote a program to decode the data, well, over 99.95% of the data was entirely intact. I had a total of two checksum failures. The pages were 11 years old. Viewing the pages, I was able to decipher with a magnifying glass the failed bits and manually correct them. I'll write again in 8 more years to tell you how it worked out over a period of 20 years. I'm guessing I'll be asked how the pages were stored. I stored them in a plastic laminated cardboard box.
Obviously Trek-1 exists in the animal physiology for a reason. Although it can take what seems like eons to genetically evolve, the system would have removed this substance from the body at least to some degree if it weren't necessary. A previous post had mentioned that it's used in relation to epilepsy, or more to the point, it is part of the system that avoids epilepsy. This sounds pretty important to me.
Now, I don't think it's a bad idea to experiement with this kind of genetic science, in fact, I'm glad someone is doing it. Whether we actually directly benefit from this research regarding Trek-1 or if we benefit from the methods that were created or learned regarding genetic manipulation in general, it's a good thing. The problem is, could they have spent their time and the tax payers money more wisely by altering another gene instead? After all, if we already knew that high risk of epilepsy (if I understood the post I refered to correctly) is the side effect of this type of genetic manipulation, then in reality, it can be seen as producing and organism susceptible to epilepsy instead of having produced a less depressed organism.
Also, I don't know if anyone else has had the experience that I've had in the past with people that are typically never depressed. I mean, really... it's incredibly annoying. I even know one person that is naturally incapable of being depressed (it seems) and also has insomnia. This combination made him the worst roommate I ever had. Although I love him like a brother, I can't spend a weekend at a cabin with him. It's just not possible.
I'd also like to point out, that in my experience, a persons ability to understand the difference between right and wrong is often based on their ability to place themselves in another persons' shoes. For example, it must be wrong to do this, because if someone did it to me, I would be sad and depressed. After all, if you were to take someones puppy and put it in a meat grinder to make sausages, if they were incapable of feeling depression, then they probably wouldn't even care.
Whether there are people with severe depression disorders or not, it's part of what makes us human. I sadly am a realist and believe that unless normal people had depressed people to compare themselves to, then they would be the depressed people themselves.
Well, yeh, I wasted far more time on this than I should have already, everyone enjoy your Wednesday, sleep well and dream of large women.
Well, I don't really know how many of you remember the big Windows 2000 API source code leak that occurred not that long ago, but it was eventually concluded that a company called Mainsoft had leaked it in the first place.
Well what does that have to do with this? Well Mainsoft possessed the Windows source code since for years they have been providing a full implementation of the Win32 API for UNIX systems. That's right, Wine isn't the only product out there that implements the Win32 API for UNIX systems, just like Samba isn't the only SMB/CIFS implementation for UNIX.
See Mainsoft has a really neat product that was used by Microsoft in the past. By porting the actual source code of Windows to the UNIX platforms, they had a very easy to use version of the Win32 SDK. In fact, Microsoft Internet Explorer for UNIX was built on this technology. It's a bit of a shame Microsoft stopped making Visual C++ for Mac since it also did the same thing.
Well, here's the deal about the Mainsoft product these days. They've actually integrated into Visual Studio.NET and have make it so that using technologies such as rexec and sexec, you can press compile in Visual Studio.net and it will in fact compile your Windows applications remotely on a target OS such as Linux or Solaris. You don't even need to write much new code since they have a preprocessor that converts type related problems. In the build pane, you see build errors and can fix them locally on your Windows system. Using X Windows, you can execute the target and debug it from within Visual Studio as well.
So where does this get us... obviously it must be hard to port a project like Microsoft Office to another platform... right? Well, not really, there's enough of Windows implemented, including.NET that it should be possible to build a port of Office in a relatively short period of time. Then using some additional time, it should be possible to integrate the KDE and Gnome skin managers into the product. In reality what you get is a program that is actually built natively for Linux.
Well, here's the drawback, it's still a Windows program. It still looks and feels like one. But hey, who really cares? I would be able to run a natively compiled version of Microsoft Office on Linux. Oh.. there would be some issues with things like files that are called.dll instead of.so. Also there would need to be a new installer or package model implemented. But really, if you're not happy with OpenOffice like many of us, then a Microsoft Word and Excel port done in house by Microsoft would be a great thing.
Now on the other hand, it's a real shame that IBM has not open sourced the Lotus Office Suite since it appears they won't support it for that much longer. 1-2-3 and Amipro (think it was called) are still some of the best products I've ever seen. Much better than Open Office. If the code went open, I don't think it would take that long before someone at least had a Wine port of it running on Linux.
Ok, I can tell you weren't actually baiting, but this whole topic is in fact bait, so the simple fact that either you or I are contributing anything must be interpretted as fuel.
Let me begin by saying that I love Windows, Mac OS X, and Linux. Let me also add that I hate/deplore Windows, Mac OS X, and Linux. See the problem is that all three main players have made such incredibly large systems that you have to love at least some features and you have to hate some features as well. For example, I love the stability of Windows and Linux. I even think OS X is extremely stable, but the applications for OS X are typically incredibly unreliable and unlike on Windows or Linux where you can use another application for the same thing, Mac probably doesn't have an alternative application.
Linux release schedules have to be ignored since there's really no such thing as a release in Linux, it's more of a compilition of a bunch of stuff that's been released inbetween the previous disc and the new disc.
Let's look at what consititutes and OS X release....
- Applications (that are typically also downloadable separately for previous version such as iTunes, iMovie, etc...) are upgraded and designed to work a little better together
- Unix subsystem features that Apple should have held back the OS before releasing have now been included (so in otherwords, they held them back for the next release or whatever)
- Compiler tools have been upgraded.
- They fixed some performance issues with the Windowing system by implementing hardware hooks to offload processing the the GPU instead of CPU
- They charge you $129 to upgrade to the latest version of address book since the older version is now no longer developed or supported
- They charge you $129 for iSync support for your new telephone instead of releasing a module to support it on the previous version (this is why I upgrdaded to Tiger)
Microsoft released Windows XP, which included APIs for all the third parties to write pretty much anything they wanted to write. The rest of the OS is running strong to this day and I don't see any reason to upgrade to Vista before they make it impossible not to.
So far as I can tell, Microsoft has put a great deal of focus into moving the entire graphical architecture to run on the 3d GPU subsystem on Windows. This is cool, yes Apple did it first, but it's not an issue of copying, people have talked about this for years, it was just logical progression. So, yeh, it was time for Microsoft to do it now that pretty much every machine shipping has at least a half way decent GPU.
Here's a big reason why Apple does it first... they want to brag that they have released a new OS every year for 6 years. As far as I can tell, Microsoft just waited 5 years to include all the features in a $129 upgrade where Apple charges $129 every year for the same feature set.
Does Apple or Microsoft do it better? Who knows, I use both operating systems every single day since I'm in the video business and frankly, the PCs are typically more reliable and require far less reboots than the Macs. The biggest reason for this is Final Cut Pro which is an obscene memory hog, it's the first application running on a UNIX that I've seen that leaves memory all falling to pieces even after being exited.
The keynote picked on Microsoft over the Windows registry. Probably the most useful OS feature ever... in fact it netinfo on Mac would be just as useful if Apple did in fact get developers to use it instead of bashing Windows registry. Instead, I have piles of crap all over my Mac in hundreds of different places and uninstalling applications is damn near impossible, reinstall is the real way to fix a Mac.
So, does Microsoft have a reasonable schedule? I can't say, I tend to find that by the time Microsoft releases a new operating system:
- Their compiler tools are all up to date and easy to use
- They have do
The instruction set of the CPU is no longer even relevant. As far as I can tell, there is no logical reason to even suggest that stack based vs. register based is an issue when discussing CPU architecture any longer.
If you read the Core 2 Duo architecture details and all the well written articles across the web describing the design of them, you'll quickly come to the two conclusions that I came to early on :
- Branch prediction/Out of Order execution handlers completely render assembler irrelevant to anyone except the compiler developer
- The instruction set decoder no longer supports x86 but a wider architecture more similar (in many ways) to RISC computing than to x86. x86 appears to be intepretted into simpler RISC style instructions for faster decoding and execution when feeding the arithmetic/logical/etc... units.
The one place where this is less obvious is in the case of the SSE/SIMD/Vector processing units since they appear to be designed for two spefic groups of people
- Hand coding assember for faster operations
- Parallel Processing compilers that seem to ignore the existance of an FPU and use vectors instead when calculating massive equations. (such as Intel/former Kai compilers).
As for stack based computing. As a hobby, I've developed a great deal of code for both Open Firmware and for EFI using stack based computing. It's a great thing, but frankly, although it works well enough, when it comes to any other type of development, I don't really care what style of instruction set is used, that's the compilers problem.
My most important issue here is that it doesn't matter what advantages the CPU architecture has over another type, the pure simple fact is that there are thousands of compilers already in existance for register based computing and for the most part, compiler engineers/scientists across the world have the register based architecture more or less worked out. The drawbacks they have are no involved with performance regarding registers anymore, most optimizations made to compilers these days are focussed on memory allocation and usage.
If you want to write a paper which truly revolutionizes computing, focus instead on memory allocation technologies. Products such as SmartHeap and Doug Lea's Malloc and other technologies are only a minor fraction of the issue, though they themselves are amazing products.
The real problem in design is that there is no real method of dealing with object oriented developers that have little or no understanding of memory allocation architectures and therefore cause programs to use far too much heap and the cpu uses WAY too many cycles dealing simply with allocation and deallocation of memory. Fragmentation is an issue and no matter how advance the MMU in a system becomes, there's a certain limit to what can be done in hardware. Almost every single application I've ever seen the code of regularly expands its' own heap by calls to functions such as sbrk(), but almost none of the systems actually every give heap back to the system. In an environment such as Windows/Linux desktop/Mac it doesn't matter that much, but on systems with limited space, it's a killer.
So why waste time with ridiculos issues such as register vs. stack architectures when in reality it would make little real difference?
Let's face it, for a company like CompUSA or BestBuy that tend to have PC support staff in store at all times, PC games are fine, but the fact is that there are a huge number of people out there that can't handle games that have to be installed "properly". For example, what if they need a new sound driver or graphics driver... how about that they thought their Intel Integrated Graphics was a high end graphics card, after all if you read the Intel website it is. Or if you go to BestBuy to purchase a computer, the sales person is happy to tell Ms or Mr Mid-30's banker type that it has a 3d graphics accelerator... "Excuse me what does that mean?", "Well Ma'am/Sir it means that if you want to play video games on the machine it's capable of it with this card".
Now we come to Walmart, the grocery store, the local TV shop that now sells PCs (circuit city for example). They don't have the people on staff to help install a game. They don't have the people on staff to upgrade your video card. They can't even explain why the game wouldn't work on the PC, they don't know.
Now, look at Playstation, GameCube, and XBox. Put the disc in the machine, power on the machine, press start, play. That's right, that's all. If you were Walmart, what would you prefer, to have to employ 10,000 PC "Experts" in 5,000 stores nationwide. Pay for training for them and the new guys each time someone quits? Or would you prefer to keep with employing people that would actually make more money on welfare and food stamps?
The fact is, the console market is killing the PC market in retail, nothing else, that's all. Since Walmart can sell probably 3 times as many copies of a video game as all the rest of the retailers in America combined, oh, BestBuy probably coming in #2. It's what Walmart and BestBuy wants that matters and selling a copy of "Star Wars 659383 The Jedi Use Hemeroid Cream" for PC or for Playstation, they get better profit for the Playstation game and best of all, if the user comes back and says "It doesn't work on my playstation", they stick it in their Playstation console, if it doesn't work, then they send it to the game publisher for a replacement or a refund, if it does work, then they tell the user "Bring your Playstation in for repair" which they also make money from.
If a consumer comes back with a PC game "It doesn't work on my PC", they are stuck with the game and have to stick it in the junk bin hoping someone will actually buy it for whatever they paid for it. Maybe BestBuy can convince the user to bring their PC and then sell them repair or upgrade services on it. But not Walmart or the grocery store.
Slashdot has grown to a fairly large community and no longer can be described by mentioning a handful for stereotypes. There is a group of people that do however fit into a stereotype that I often see here trolling. They are people that spend a considerable amount of time reading the articles and commenting on stupid points that are entirely irrelevant to the topic. Sadly, most of them actual have careers in computers typically as bench techs or some other entry level position. I've known a lot of these people in my life and sadly my wife works with a bunch of them, being a help desk technician herself.
I'd like to point out what makes this entirely irrelevant so that whoever was offended by the previous comment will hopefully have a better understanding as to why it is nonsense.
1) Windows and Linux typically die for the same reasons in modern times, from a stability perspective, Windows and Linux are in fact comparible. Sadly, a shitty driver will still take down either system, but it's a disadvantage of running drivers in protected mode (ring 0).
2) Machine control through either system is equal. Writing drivers for either system is approximately of the same level of complexity. The only real difference would be in the circumstance where a USB driver would need to be written since Linux user mode USB, although somewhat contradictory to the rest of the Linux driver model is quite simple and although not elegant, is powerful. Besides, it should be clearly noted that for systems like this, typically good old fashioned RS-232/422 or the more bus oriented CAN communications methods are likely to be used. In this case there's no benefit of one system over the other since for the most part, DOS would be good enough.
3) Performance isn't an issue, I run many systems on both Linux and Windows XP Embedded and for nearly every reason imaginable, I have no preference between the systems. I do prefer Windows XP Embedded to act as a file server because of the amazing product called MacServerIP from Cyan which seems to be the only maintained implementation of AppleTalk that isn't part of Mac OS itself. But in reality, this is a non-issue in this circumstance. Performance of Linux and Windows XP Embedded is almost identical for most every circumstance. The major performance issues that people see on Windows are more often all the services and the windowing system that's enabled on XP by default. XP embedded doesn't have this issue.
Here's where it could be relevant. I'll point something out from personal experience having developed retail software for the past 10 years and machine control for a few years before that. Having written code for Linux, Windows, Mac, Symbian, QNX, etc... Windows takes less time to develop for. It's true. Because of the development tools on Windows, specifically the Microsoft suite, the team that used Windows XP Embedded had a real edge since engineering code on Windows and the Windows embedded systems is a charm. They were most likely able to spend less than a quarter of the time the other teams used configuring the system and tracking down API documentation. They probably had their imaging systems up and running in minutes and using well documented interfaces were able to integrate it into their software almost immediately.
The other thing I'd like to point out that makes Windows XP embedded a clear choice when time is an issue is that remote debugging on Linux is useless for debugging threads. GDB has always had this issue and might always have it. To debug Linux applications remotely, you need to be able to install all debugging symbols and a full copy of GDB on the target machine and either SSH or telnet in. Visual Studio on the other hand is actually a charm regarding remote debugging. You don't even need to configure it, you just choose the target, compile and run, it does the rest.
To make a small confession, I've purchased a licensed copy of Qt 4 for Windows out of my own pocket cash since I find that developing Unix applications is most easily accom
Well, I know this will start a flame, but here's the simple fact. For everything I've tried doing when making web pages, no matter how complex, IE did just fine and so did FireFox and Opera. With the exception of one ecmascript function that I had to write to compensate for XML HTTP in IE 6, there is no special circumstance code.
The entire application is written using EcmaScript and DOM, no HTML/XML/whatever. It's based on a framework similar to Qt in design but written for the EcmaScript. Therefore class constructors had to be 2-stage instead of 1-stage since EcmaScript is a prototype langauge and I wanted Object Oriented.
The application is very fast and is written in the style of a desktop application. This means that instead of using a poorly written AJAX style that depends heavily on server communication and intervention, the browser handles the majority of the work load. When tested on a mini-itx 700mhz Via CPU, results were admirable for all browsers tested, not just Opera.
Whenever server communication occured, the user was informed of it using a progress bar and status display to ensure the user wasn't lost wondering why the page was loading and loading when everything else was so snappy.
So what kind of stuff was on the page? There were popup dialogs, there were tabbed controls, there were multiple field input panes, there was file upload support for adding images to databases, etc.. There was even in one case code that dynamically generated Base64 encoded image data to simulate drawing (sadly this is one feature missing in IE 6)
Now the item that made this all possible... IE is the standard, I couldn't find a single circumstance where I needed to write any special code for any browser (except XML HTTP request) because both FireFox and Opera implemented more than enough of the IE standard that, so long as I used the MSDN library as a DOM reference, everything went well.
The only real drawback and I tested this with and without my framework, using simple HTML and CSS is that IE, FireFox, and Opera all interpret the absolute positioning coordinate systems just slightly differently regarding div borders, margins, and padding. Also, IE's lack of full support for float properties was mildly frustrating, but since neither Opera or FireFox could interpret the standard the same way anyway, I had to write an absolute position layout engine anyway.
So what I'm really trying to say is that if you can't work around the problems, then you shouldn't be doing it in the first place, hire a real programmer to handle programming tasks, if not, then just author for IE and ignore the rest.
And if you're one of those people that are bound to be offended by what I said, then you really have no business in computers anyway. Written standards are typically worth little more than the toilet paper they're printed on. Defacto standards are what make the world go round. As long as Microsoft Internet Explorer is the defacto standard, that's what you have to work with and if you don't like it, then leave.
Oh... btw, after only 5 more minutes development, my system worked just fine on WebKit/Konquerer. Writing this stuff is easy, but like any other form of development you have to at least try to apply some intelligent reasoning to your code.
One last note, to most people security is a non-issue. And as "proof" of this, when asked, more than 90% of all the security paranoid people I know have either:
- Provided their credit card to an operator at a call center in ('fill in your favorite call center outsourcing country here') over the phone
- Handed their credit card to a disgruntled minimum wage employee at a gas station while stepping out to fill their gas tank
- Used an ATM/Minibank/Cash Machine in a random location that either didn't specify the bank name or had a bank name they have never heard of printed on the side
- Ordered something online from a vendor even if the page wasn't marked secure
As an American Ex-pat that through osmosis is finally beginning to find British comedy almost less than repulsive (with the rare exceptions such as Cleese), I'd like to point out that both Americans and Brits have refined the arts of sarcasm and comedy. The primary difference is the application. British irony and sarcasm is applied almost strictly in the sense of satire where American comedy does not specifically require the irony or sarcasm to be directed harmfully at an individual.
This is where John Cleese and the Python crew differ a great deal from the typical British form of comedy. Somehow they manage to remain true to their British heritage, though they adopt the less harmful approach to sarcasm than the typical British satire.
I've watched far too many BBC productions in the 8 years since I've left the states and what has always disappointed me regarding British humor is that it was painfully obvious and predictable. In American comedy, it's good enough in a black and white film for a man to fall off a ladder while painting his house. As a bonus, the paint can may land covering his head. British comedy insists on dragging the skit out by first, delaying the laugh track (a cornerstone of british comedy) and waiting for an older couple to walk by and then make a satirical remark regarding the fact that the man has paint on his shirt. At which point, the laugh track is played meaning that the joke was in fact the older couple pointing out the obvious in a predictable manor as opposed to the man falling from the ladder, sitting relatively stunned, then looking up to see the paint can land on his head in slow motion.
The Cleese approach to this scenario would have been to simple cross his arms and make a sarcastic facial expression in the style of Oliver Hardy (see Imdb if you have to ask) towards to painter as if to say "What a bone head" for example.
Personally I've always prefered a mild combination of the two styles of irony and sarcasm. This is what Cleese presents.
I find it somewhat ironic that we have consumed as much time as we have on a topic as mundane as this. I of course mean this sarcasticly. Sadly I lack the ability to apply satire since I find it mundane as well.
I've written an article that I'm in the process of getting published. Included is a user space key stroke logger that :
a) Installs itself "hidden" to the user for execution on login
b) Installs itself as root and hidden from the user if there is no root password (which is the case on approximately 80% of all the systems I've tested... about 50 of them)
c) E-mails key stroke logs to a list of addresses
d) Avoids detection by Sophos and Symantec Antivirus as well as the ClamAV installed on OS X server mail
e) Once a week presents itself to the user as a OS X update and requests the administrator password from the user to install itself
f) Replaces the Finder.app executable with itself so when Finder is being started, it starts and then spawns the real Finder.
This application was easy to write and extremely easy to get users to install.
Now to make a certain point clear, OS X is damn near impossible to fool without user intervention. The user has to agree to install the program in the first place, so I packaged it as an OS X VNC implementation. So when you install this version of OS X VNC (which has a backdoor password as well), this program is installed too. The benefit of using OS X VNC as the method of shipping is that users and adminstrators alike would be willing to install it without reading the license which specifically says :
"This program installs malicious software on your system. If you don't mind us getting all your key stroke and having a backdoor into your system, click agree."
Of course this was written at the end of the license to make sure that it was "legal" hehe. After this program running for 1 week, it deactives all malicious code, it was designed strictly as proof of concept for a security firm I was consulting for. They use it for the purpose of convincing their customers to take training of system administrators with regards to Mac more seriously.
I visited the Apple Store in Tampa Florida as well as the Office Line Apple Store in Oslo Norway. I asked in both places if I would need to worry about malicious programs on the Mac and if anti-virus programs were really necessary on the Mac I was considering purchasing. They told me they didn't see the need for anti-virus applications but if I felt that I needed one, they would gladly sell me one.
So, I'm not sure how confident I would be in the report in the first place. I personally hope that Apple doesn't market the security of OS X too much since it might lead to malicious hackers writing real virus and trojans for the system. After all, how many Mac users really verify the source of the Soduko programs they download from Version Tracker?
Well, first of all, I'd like to point out that I've run on virtualized systems for the entire extent of my career. Not specifically in the sense which we run now, but in the sense that back in the old days, we ran IBM mainfraim operating systems on IBM systems that actually were virtual machines. They included features such as segmentation and all the good stuff which is just coming around now.
Thanks to other technologies I've run similar systems for ages. It is entirely common for me to develop a file system driver while keeping Mac OS X, Windows, Linux, and DOS running on the same system. I've done this for a long time as well. The difference is that the operating systems would be virtualized by running system emulators instead of using CPU technologies for system segmentation. I did this in the old days under DOS using Quartdeck Desqview and a CPU emulator.
First thing that people really need to understand at this point that virtualization as we're using it today is little more than finding a method to lauch operating systems as "processes" under another operating system. This is not magic, for the most part it's something that any operating system developer should be capable of. The issue is more of grinding. It takes the right kind of people to sit and grind through each of the problems that come up with running like this. It's the same idea as writing a Windows compatible API stack. You start off with simple programs you have the source for and work your way up through more complex applications that require direct hardware access. It's a matter of intercepting the calls and handling them as if you were the real thing.
So here's the deal. As a system level developer, I am more interested in what these guys are actually doing in order to make it happen. Let's face it, although Intel and AMD are adding virtualization technologies to their processors, the actual task of switching between CPU contexts is hardly an issue. The real issue is how are they handling hardware emulation.
See, to me, I focus on high performance workstation related tasks. Servers are cool and great, but in reality, it's how it performs on the desktop that is truly important to me. What I want to see is that a vendor grinds a little more on this issue.
VMWare has classically written device drivers to handle hardware interfacing with better performance than others. So instead of simply emulating the VESA BIOS extensions and providing access to an SDL style frame buffer, instead they have written drivers to allow graphics acceleration. So what I really want to see is that they take it a step further....
I want more than just accelerated BitBlt functions. Of course in the 2D desktop world, high performance frame buffer moves are not optional but required since the bus bandwidth required to copy large frame buffers all around is outrageous. But in the days where OS X uses OpenGL and Windows Vista uses DirectX, I want drivers that interpret 3D contexts as well.
So here's what I'm thinking... write a 3D driver for Windows, Mac OS X, X. The driver should of course offer frame buffer handling, but this shouldn't be the focus since it isn't used for much more than boot and text mode processing. When an OpenGL context is created, instead of creating the context native to the virtual machine, the context should occur on the host operating system and should be managed there. The only interprettation should occur when the graphics driver informs the guest operating system of the top level context.
For direct X, well, I've seen at least one virtual driver in the past which implemented Direct X on Open GL. For professional graphics, Direct X is typically seen as a toy although in reality in many ways it's more powerful than OpenGL (don't argue, it has to do with what's more important to hardware vendors so their drivers are optimized for game based testing). So, since most professional graphics packages are OpenGL based, then the virtualization software vendor should simply implement a translation layer ov
I'll say it like this. There are many developers than can start programming projects that have amazing benefit to the users, but after the project reaches a certain point, although the idea is still valid, the initial developer is incapable of understanding the topics and writing the code to make the package evolve any further. Therefore, you hire developers that are able to specialize and use more dynamic implementation strategies to evolve the project further. The initial star coder is still respected for his/her achievements and can even in many circumstances be praised for them, but in most cases, their knowledge of the underlying product would be better used to help steer the team of developers actually implementing the finished product.
Stallman's messages are often very good and right on. What he started was an amazing project that has massive international implications. The UN itself has spent time dealing with issues regarding GPL and FSF interpretations of how things really should be. At this point in time, the GPL/FSF/EFF way is extremely important to how we live our lives and the liberties we hope to secure for ourselves and future generations.
The problem is Stallman himself. He is simply out of his league. He lacks the diplomats tounge and speaks down to people. He stands on soap boxes and shouts his feelings and demands that people listen no matter who they are. FSF/EFF/GPL is no longer a matter of industrial politics, it is an issue of international politics and he's not a good enough man for the job. He is a thinker and his ideas by some would be considered revolutionary and by others simple logic. If this man were to step down and simply hold his tounge in public and let professional lobbiests and diplomats representing FSF/GNU/EFF do the job instead under his guidance, he could accomplish far more.
A simple rule about people and in my experience, especially politicians is that they will respond either indifferently or even hostile to a person that speaks down to them and calls or makes them feel stupid. This is why organizations such as NASA and the NSA are often run by bumbling idiots that have the gift for politics instead of skills in engineering. Yes, we all agree (and many politicians as well, I have friends in some state senates, not national) that politicians are a bunch of self serving idiots. In fact, I can name at least fourty I that I've at least wondered if they can tie their own shoelaces. It is true that the politicians that have true merit as leaders are rare. The politicians that genuinely try to represent the people are rarely given respect within their own tier of government by their peers.
The politicians that have to be sold on ideas are in fact the self serving bastards we hate passionately, they are the power hungry and the ones with real power. They have to be nursed and educated in a way that serves their own interests before changes are really going to happen. After all, the corporations that get their way in the government use lobbiests and influence such as promises of jobs in the future. If FSF/GNU/EFF genuinely want to be taken serious by the self serving pigs that can in fact make changes happen, it would require playing the game and doing it right.
Stallman although he may be right, and in his case, he's scoring better than 50/50 on most peoples radars, he's loud, obnoxious, and he radiates a "I'm smarter than you" aura whereever he goes. This itself is what makes him an idiot. So long as he thinks he should be given special priviliges such as short notice audiences with leaders of states, especially when high level diplomats are often denied this same privilige, then instead of fostering and helping the movement, he in fact damages it.
Stallman is a bull in a china shop. He rampages through and smashes everything in his path until he reaches a special item that he'd like to receive a discount on. When he asks the clerk for the discount, the clerk, knowing he is important simply asks him to leave instead of calling the police to h
Sometimes I wish the Internet had become popular a little sooner than it had. I remember reading reason after reason why DVD would fail. Some of the primary reasons were that
- it wasn't a recordable format
- people's TVs weren't good enough to show the picture,
- noone would pay that much money for gold plated S-Video cables
- The format was too easy to destroy by scratching it
- Who would pay $20 for something that was $14 on VHS There were lots more reasons, but the important thing is that these reasons are all stated about the new formats as well. And guess what, DVD did take off. In fact it's huge. I can't even find VHS here in Oslo Norway anymore. Ok, there's sometimes a VHS tape in the bargain bin at the toy store. But let's face it, DVD took off and took over.
Now here's the thing about why HD-DVD and BluRay will take over and it's the same damn reason that VHS is finally going the way of the Dodo.
In 5-10 years, a consumer will go to the store because their DVD player is broken and they wil be presented with the option of buying a DVD player for $50 or an HD-DVD/BluRay player for $45 since the store bought 100,000 of them at a good price. So since the HD-DVD/BluRay player will be able to support all their existing library, they will save the $5 and buy the cooler technology, not because it's cooler, but because they saved $5 by doing so.
Now, with regards to that arguement, I've learned from posting in the past on Slashdot that some jackass will say my argument is invalid since the DVD player doesn't play VHS. And my response is simple, yes it does, combo players that handle both formats are all over the place and cost less than a stand-alone VHS player in most circumstances since the store chains by substantially more of them and often can make a better profit margin by selling the combo for less than the lower-demand VHS standalone unit. Yeh, the manufacturers are a little screwed on it, but really, they sold 100,000 combo units at $2 profit vs. 1000 units at $10 profit. Still a better deal for them.
So, now mom and dad bought their new VHS/DVD/HD-DVD/BluRay player made by a Chinese manufacturer for $45 and are shopping for a film at BestBuy. Guess what, the new releases are next to one another and the HD-DVD or BlueRay disc costs exactly the same amount as the DVD release. In fact, it might even save them 50 cents to buy the higher quality format. So, they buy it, hell they may not even know they're buying high defintion or even know what it means, but they're getting the film they wanted at a good price.
So you're asking how will HD-DVD/BluRay discs cost less than DVD. Well that's simple and I'm in that business actually, so I know the answer for sure. The machines that make the glass masters and actually press the discs consume materials. They can make either DVD or HD-DVD right now (BluRay addons coming soon) and although the material to make the HD-DVD costs more, the shipping weight is less. So when you purchase a million blank masters to be stamped, the cost savings in shipping weight will offset the cost of the material itself. So when shipping a million of these babies from China comes to pass, the manufacturer will in fact pay less to press a plate and this will not be profit the the manufacturer, I know this since we're nickled and dimed by the studios all the time. The studio will pay less for the disc and then Walmart will press them to pay less. The studio will say, "We can't budge on DVD, they're as cheap as they're going to get, but we can cut a little on the HD-DVD and BluRay."
So, the above article is bull**** if you know what I mean. We're already getting orders for HD-DVD and it's going out into the open.
As for a storage format. HD-DVD and BluRay burners are the promise land for the video industry since it's finally a disc format that can be used to store an entire HDV or DV tape as raw data. Now we can stop having to send tapes everywhere to make the films. We can simply send the DV/HDV material on a BluRay disc and this will shave a minimum of an hour off of each project.
Well really, come on, we're talking about RMS here. Where will his stupidity end. There is noone that can take away from him his accomplishments in software development. Noone can even take away the fact that he was the beginning of GNU. The principles he stands for have been around for ages before and will exist for ever after. They're not new, they're not revolutionary. It's just the first time in history there is a medium where a person voicing his ideas can be publicly heard without being a member of royalty or head of a country.
So, here's the deal. Why doesn't FSF, EFF, etc... ditch this loud mouthed radical idiot and use the massive amount of money they manage to collect to hire a legitimate CEO or spokesperson to represent them. I mean, get one of the "suits" that used to run 50% of IBM or saved Xerox at some point. Or even a former SGI or Cray guy. Hell... this is a stretch, but I would imagine that Carly is looking for a job these days.
It takes a person that can actually get their foot in the door by speaking the same political language as the politicians to make the changes that RMS is talking about. If it takes a person like Bill Gates, Larry Ellison, etc... to open doors and have their voices heard... well that's what FSF and EFF need. They need someone with a suit, a tie, and money.
Here is my best recommendation, Mark Andreeson. Although most would agree he's become a blabbering idiot as of late, he has a certain credibility from his past at Netscape that lets him get through doors to politicians. If he can learn to tone it down, learn to speak to others as peers or superiors (even if they are 10 notches down the intellectual food chain) and learn to present his ideas in a way what make sense to the politicians instead of slapping them around and calling them stupid and saying "You listen to me, I'm smarter than you". Then he would be a prime candidate, young, bright, and most importantly wealthy enough to mingle with the rich and powerful.
You just have to realize that politicians are not engineers, they typically lack the ability to understand things that are complex. They can understand basic action and reaction reasoning, but when there are too many variables, it has to be simplified for them. But keep in mind, these are powerful people that understand they are powerful, they need to be made to feel as if they're intelligent and information needs to be laid out for them in a way that makes them feel as if they made the connection. If you want them to hear you, then instead of presenting them a "solution", instead present them a problem defined in such a way that they can solve it exactly as you'd like it, leave no other ways. Instead of presenting the solution straight out, explain the problem, if they ask your opinion for a solution, offer them a slightly flawed version of your own solution, explain the weakness in the reasoning and let them figure out the missing part on their own.
Although I'm not a fan of the overall structure of Plato's Republic, you should read it to learn the oldest known method of political persuasion. If you don't see my point from that, then find someone who does since this is how politics has worked for thousands of years and will work for thousands to come. But, RMS is a bull in a glass store, you need a "Socrates".
When writing an OS kernel for multiple devices... often #ifdef is nearly impossible to get around. Sometimes it is in fact the cleanest method of dealing with issues. A good example is in Qt from TrollTech, possibly the most object oriented windowing toolkit I've ever seen, in the case Wid which is a native window system window handle, at least up to the 3 series of the toolkit, it was normal to have an #ifdef that would direct the type to WINDOW, HANDLE, etc... depending on the platform...
But while still using them as an example, they often use a QObjectNameHerePrivate class to hold platform specific code to abstract the platform oddities into their own files. I don't always like this method, but since I'm not a huge fan of multiple inheritance (not because the technology is bad, but because programmers using it typically go overboard with it) I have to say, it might be the nicest method. Personally... I prefer the factory approach. Call QObjectNameHere::createObjectNameHere() static method. But that's just personal preference. Sadly that method regularly ends up in hell as well when coded improperly.
For the purpose of hte instance which I singled out in the initial posting, the use of #ifdef was chosen poorly since in this case, the programmer who did it (and I actually believe I know him) covered up a problem using an #ifdef for a single circumstance. The code the programmer wrote himself did not need to be #ifdefed since if the macros he used were on a non-OOM implementation, the macros themselves would have no effect. #ifdefing in this case simply made it so that he said "If OOM code isn't present, than instead of ignoring the code using the non-OOM macro implementations, we'll additionally ignore it here too". It was redundant code that actually obfuscated the code just enough that they themselves left the same bug present, but just in a different case.
As for Symbian application development... it's hard to narrow the group that is responsible for this poor coding behaviour, it's just poor coding in general, but never anywhere other than the Symbian platform have I ever seen anything such as this :
no joke, some Symbian developers spend so much time making sure that all their functions during a port "properly leave" that they in fact simply duplicate code for the sake of duplicating it. For the most part, since Symbian moved from GCC 2.8 LEAVE is just a define to throw, but they refuse to acknowledge it.
I don't blame you for this type of behaviour... even though I may have seen your code, I can't point it out... I'm hoping it some of the better coding examples I've seen in the kernel tree.
Well, I'm going through the code base and some of the things which I recognize as being class Symbian things can be interesting to rag on....
If you look at KWQString.h and KWQString.cpp, code just gets duplicated for who knows what reasons.... for example, just search on __OOM__
You'll find lots of places where OOM (Out Of Memory) handling is handled for two separate cases. Now, from what I can tell, at least in the circumstance of KWQStringData::initialize(), memory is allocated for the buffer within the string class. The original code does not check _unicode to see if it has been allocated, it just copies the source to the _unicode variable using memcpy. In a virtual memory system such as Linux or OS X, this is not an issue since the OS will always find a way to return memory... or the whole system will be crashing soon anyway.
On the OOM instance, there is one circumstance where if _maxUnicode > 0x1000 memory checking is performed... but in the alternative circumstance, it is not performed and is left without memory checking again.
This of course isn't the real issue... the real issue is that by making a special case for __OOM__ it obfuscated the code enough that it no longer was logical. The correct solution to take would have been to define the same macros for non-OOM systems and had a single instance of the code.
Symbian... especially Series 60 development classically has been known as an #ifdef hell. Symbian developers add #ifdefs everywhere even if they're not necessary. In this case, Nokia had the opportunity to actually fix out of memory or constrained memory handling for all platforms but instead chose to write code that was specific to themselves and simply label it something else.
Mind you, I'm only criticizing the very first file I looked at... I'm sure I can find far more interesting examples throughout the code base... but what interests me most about this initialize() example is that it depends on the Symbian throw mechanism... it doesn't actually fix out of memory situations or even attempt to deal with them... it only recognizes them.
First of all, a top level domain for phones? Huh? Let me see something, if you want a top level domain for phones, why didn't the mobile phone providers jsut collaborate and setup their own top level domain accessible only from phones? They just need to add a record to their DNS servers to support it. Did they need an ICANN supported domain so that desktop users can see the mobile content also?
Next....mobi is intended to host pages that are formatted for telephones. So in reality, sites are now forced to setup another domain to host their pages that are formated for phones... huh? If they're going to actually host a.mobi domain, why not just send a different CSS to the phone to format the existing page? I mean, there's no reason that they can't just support the same stuff on their.com/.org/.etc
Opera and Netfront (not so well on Netfront) support small screen rendering of normal pages. It's not as nice as seeing a page designed for a mobile phone, but really, it's more than sufficient. Why make a new page format when SSR works relatively well.
Oh we were talking about Nokia... right the guys porting Konquerer/Safari to mobile phones. Well, they've done a decent job so far, but in time they will also have a form of SSR. For the moment, they have a rather unique approach to handling it.
What, not all phones have SSR? Get Opera Mini, runs on any phone with Java. Then a big stinking server run by Opera scales the page content before hand, prerenders it and delivers it to the phone. Works on pretty much every phone and costs the user MUCH less if they're paying for bandwidth.
So really, if you think about it,.mobi is a waste... maybe this is a good alternative to.XXX after all, most of what I've read says that the porn by phone industry is BOOMING... maybe.mobi should be dedicated to.XXX content instead.
My theory, although computer literacy can be a few different things... or a lot of different things, it's impossible really to measure.
In one definition, my ather is computer literate, he can log on, check his mail, and he knows a few buzzwords. But he doesn't seem to be able to figure anything out for himself.
Another definition is that my mother-in-law is computer literate since she calls me from the church as asks "The floppy drive stopped working in the church's accounting computer, can I just put the floppy drive into it from my computer?", I responded "Yes", so she went home got the floppy drive from her computer (internal one) and installed it in the church's computer, she called me "Well, the light is stuck on and it doesn't seem to work", so I informed her to turn the ribbon cable over and that it was not really a standard on floppy drives which way the cable pointed. Later she called, "I'm at the computer store, can I just buy any floppy drive to replace the old one?", I told her "Yes". This woman is 73 years old next week and this happened 2 years ago.
We could say that my nephew is computer literate, he is able to build his own computers and can write simple C programs. He's an expert World of Warcraft player and has memorized every library function in the WoW macro scripting system. We could call him computer literate.
The guy writing the bug tracking system at my old job is also responsible for configuring the Cisco layer-3 switches. He has a relatively thorough understanding of simple routing technologies and the main TCP/IP packet format. He can code PHP/Perl and some C. He doesn't quite understand stored proceedures at this time, but it will come I'm sure. I guess this guy is computer literate, but I guess some people wouldn't say so.
We can talk about people that can program applications all day long, design their own PCI cards for embeddding a bank of DSPs, develop single board computers for implementing iGMPv3 management features, debug a BGP session, fix nearly every problem in a users Windows PC, secure a Linux system, etc... This guy is probably computer literate.
Literacy is a matter of perspective. I know guys that develop hardware based DCT engines for HD video compression, they understand math, programming, bus architecture, and can do just about anything with an in-circuit-emulator that can be done. But at the same time, I wouldn't hire them to manage a corporate network since they are not literate in this area.
So, the way I like to define computer literacy is based on ones problem solving ability. Of course you can hand them a rubik's cube and ask them to solve it, but that's a stupid human resources trick. If you want to really find out if they're literate, ask them a question relating to what it is that you want from them and watch how they go about solving the issue. For example, if you need a network engineer, ask them how they would solve the problem as follows :
-- We have two office buildings, up until now, we've been connected by a 4 channel SHDSL solution that gives us 8-bits between the offices. Sadly, the only solution available to us is SHDSL 8 mbit lines, what would you recommend for increasing our bandwidth between offices.
Add more lines is always the solution, but ask the how they would solve the issue of using them simultaniously. I helped a friend solve this problem 2 years ago. It was an interesting problem, but what was interesting is that there are many ways of doing it, but we settled on routing through a multilink-ppp configuration. Worked really well and was solved using no more than a single Cisco router on each end. Even now, I would consider doing the same, but I'm itching to see IP over ATM over IP over PPP over ATM. The cell structure should cut overhead considerably and possibly eliminate the need for every 10th line due to bandwidth savings.
How in God's name would you switch a from MySQL to PostgreSQL to Oracle to MS SQL or to anything. Have you ever actually written a real database application?
Seriously, the amount of time spent switching between any of these system is drastic. For a typical, small database application, there is probably 20k-50k lines of stored procedures. All the different vendors have their own SQL proceedures.
How about securing the databases. I'd love to see how anyone could possibly say that the administration of a transition could possibly be an option. If your problem was MySQL security to begin with, how can you possibly suggest that switching to another database could be easy. The simple administration cost of securing a new server, especially with an existing dataset that was previously developed to be secured on another SQL server would be tremendous.
Switching between PHP and Perl, hehe come on now... I won't even bother wasting my time on this one.
Linux and Solaris.... if you have a security issue on one, you have a security issue on both. The fact is that the majority of security bugs that would be related to these is due to servers that are either not kept up to date or due to zero-day exploits. Both server systems are actively hacked and are high level targets for crackers. It doesn't matter which you use, you have to update both pretty much the same way, switching is a waste of time and money.
So, if you were to reason that the original posters comment was regarding the monoculture of PHP/MySQL/Linux, well I'll make it simple....
The open source community forces this crap down our throughts all the time, they love this solution, it works more or less. There are books on it. There are sections on Orielly's website dedicated to it. It's advertised regularly everywhere. This solution is chosen not specifically on its merits for simplicity/stability/security, but it chosen because it is relatively simple, relatively stable, and relatively secure, AND most importantly, it's Open Pop Culture.
I know a bunch of sales people that love to sell the hell out of the solution because it's fun to say LAMP. They don't know what it means, but they make up all kinds of neat new industry sales terms regularly to make them sounds like they have a clue... they don't. Oh, they also think P stands for PHP or Perl, not both. They don't understand how a letter can be variable.
So, before you put your 2 cents in, think first. Your rinky dink 50 line PHP scripts for changing passwords is not representative of a full mature system. In a real development work, we use features like stored procedures, complex views, server specific indexes. Also, just because your blog hasn't been hacked, don't think that just installing a new SQL server is actually going to secure anything, some of us have actually spent hundreds, if not thousands of hours just setting securities and permissions to different data sets.
The LAMP monoculture is real, it is there. Once you use it, you're locked into it. There is no transitioning from one to another.
Now if I misunderstood you and you really meant that Linux/MySQL/PHP itself wasn't a monoculture because you can choose different options when you're first starting... well ok, that may be true, but the majority doesn't. Perl rarely appears on the web anymore, the web is typically PHP, ASP, or JSP. I don't have exact numbers, but if you want to make me look like an idiot, post real numbers with reference that contradicts me. LAMPHP is a monoculture because it's used so often that lack of talent on the other solutions keeps it that way.
No go and try to sound like you know something somewhere else
Really, I can assure you that the seat would in fact be wasted. It is important to understand that politics is about more than a single issue of interest. Personally, the Pirate Party agenda is sadly lacking, but that is not to say that it doesn't have a certain merit.
The Pirate Party (keep wanting to write bay), has made it to a public election. This is important to realize. In Sweden, you can form an "I like Cookies" party and bring it to election, however it would receive 0 votes unless all the remaining parties were so disgusting that the "I like Cookies" party seemed the most harmless. The Pirate Party on the other hand, whether they received the needed number of votes or not is irrelevant. What is important is that they did in fact receive votes.
This means that they in fact won votes away from (I use this term in the not to piss everyone here off terminology of it) legitimate parties with agendas that focus on improvement of roads, education, social welfare, health related and other key focal points. So it isn't important how many votes they won, it's important to notice that they did in fact win votes away from parties with issues that genuinely impact the survival of the Swedish people.
So why does that matter? Well, it means that other parties will have to look at the issue seriously enough and recognize that this single issue which has no impact on a persons ability to feed themselves or take care of their children was important enough to some people that they need to at the very least evaluate whether this is a stance their party should back.
Now, the alternate possibility is that the Pirate Party rebuilds itself as for example, "The Human Civil Liberties Party". They can build a proper agenda, adopting the focus points from other parties they agree with and win office to forward all these values they hold to ensure civil liberties that are regularly being revoked by corporations with strong political control. It could in fact be a party that focusses on issue like :
- Reform of the police departments, have the police focus on real crimes like drug trafficing, rapes, murders, thefts, and less on protecting corporated IP rights
- Reform schools to educate students instead of babysit them, require teachers to do a full year of schooling themselves for every 10 years they teach. This will make the students smarter and more capable of understanding their rights.
- Reform medicine so that licensed doctors are required to further their education formally every few years to maintain their licenses. This will hopefully make it so that doctors spend less time on the golf course and more time actually excersizing their brains. This is important since they are major campaign funders.
- Reform universities to require students to take general education as well as their specialized training. This in itself will make people more aware of civil liberties when they leave school..... we hope.
- Reform business schools to require a certain amount of general science education so that the business people will form a greater understanding, and hopefully appreciation for what is actually involved in producing intellectual property.
- Promote solutions from universities over solutions from corporations within government computers. For example, accounting schools should have software development classes where actual business systems are designed and developed for free use within the country. Make Linux a viable option for the government by funding research and development in the universities of genuine solutions that can be deployed for free.
I can go on for ages, but the fact is, in a country such as Sweden (I live next door in Norway and am American so I've seen a lot of both extremes), there is no room for a party like the Pirate Party because they don't address issues which directly impact a persons survival, they don't even address issues that impact a persons quality of living. But, they have an idea that could actually mean something, and if they are in fact serious about it, then they need to take the politics more seriously and find more to stand for that does in fact address real problems in the country they live in.
Well, I do not know if it will help or not. I am an american, though I no longer live there. I remember getting slammed all the time, but I left the US before the "Do Not Call" list came about. Norway has had a similar list for about the same amount of time. This is the kicker of it. No instead of directly marketing, they obtain lists with addesses as well as telephone numbers. Then they call up, ask you a few questions, and when you hang up with them, they've collected enough data to postal spam you. I mean FULL MAILBOX. In fact, I understand from a friend that companies are in fact cross referencing their dialing list with the do not call list. If the name appears on the do not call list, then a "Survey" call is made. If the name is not on the list, then a sales call is made.
Here's the thing about the good business sense side of things.
The lists the marketers use to make the calls are purchased from other companies. I would often ask to speak with the sales manager to request information regarding who they purchased my name from so I may call them and request financial retribution. In many cases, they would provide it, and I would inform them that I'll be calling them as well if I find out they have sold my name to another firm.
Now, the value of these lists increase with their accuracy. Telemarketers should in fact be removing names from the list anyway if the call receiver is abusive or highly annoyed by receiving a call. By removing the name, it makes the list more accurate. It allows the next person to use the list to skip over the "why bother calling this one" members and allows them to move on to the "This sucker bought a robotic toaster for $89 in 4 easy payments from us" kind of people. Often these lists sell of $0.05-$0.10 per name. For a well filtered list, a company would easily pay five times as much. I mean a list consisting of people that have actually purchased something from a telemarketter in the past 12 months.
But, sadly, the telemarketing business is completely full of people that fell for the "Make up to $5000 a week!" advertisements themselves. When I was a teenager, I worked for a firm like this. We targetted businesses and I still felt dirty. The people I worked for had worked their way up from "Hi, can I talk to you about you photocopy paper needs?" to then "You need to make a minimum of 100 calls per day and you need to use the script!" management thing. It's an awful business, but on the brighter side, if they weren't making calls like this, they'd be selling Kirby instead.
Umm... sure, I've got a minute to waste. Quit busting on other people like this now... here's why....
... and it was 64-bit
:
1) Many of us were using the later betas of Windows 2000 64-bit for the XP platform (MSDN subscribers had access) until Compaq cancelled their agreement with MS
2) Many of us have run Windows XP or Windows servers editions on Itanium
3) Many of us have played XP 360 running a 64-bit Windows 2000 derivative for PowerPC
4) Many of us have been in the Solaris world running 64-bit for a REALLY long time
5) Many of us have used IRIX workstations running in 64-bit for a long time
I will toss you a bone and let you feel a little better for getting the encryption bit correct... but wait a second... in a multitasking environment, the simple cost of task switching AMD64 is more expensive... BECAUSE of the additional registers. You may not realized, but for the most part, almost noone actually uses the standard task state change mechanism of Intel processors favoring manual backup and restore with a far jump instead since TSS related calls are painfully expensive. Now task switching has become far more expensive. Now instead of pushing and popping (not including index and pointer regs) general purpose registers requires pushing and popping 256 bytes compared to the earlier 32 bytes. Of course the faster memory performance will compensate for a bit of it, but let's face it, it still hurts a little.
Now let's get to media encoding... ummm what the hell are you talking about?
You seem to like talking about matrix calculations as if any CODEC actually implements the matrix operations in general purpose registers using the standard ALU.... well some do... strictly for reference implementations, but in reality there are units particularly built for this type of calculation. This is the entire purpose of SIMD, SSE, 64Now!, SSE2, SSE3, SSE4 (and altivec for example elsewhere). The fact is, why in the name of all that is good on this planet would anyone implement a matrix calculation in a execution path locked to 64-bit ALU based instructions when in reality, SSE first of all gives you a minimum of 8 packed registers executing on four 32 bit sets in parallel? As I see from your website, mathematical precision is of importance to you, but in the world of CODECs, there is limited need for anything more precise.
Mathematica, Maple, Mathlab etc... obviously benefit from the new architecture, but come on... are you actually making use of 64-bit integer instructions? If it speeds up anything, it's the UI when running simulations. In reality you're comparing apples to oranges. And not that you've noticed apparently, Mathematica has run on 64-bit for a LONG LONG time.
Ok... you talk about larger virtual address space... that's an excellent topic to discuss... Windows Server has supported PAE for a while, or Physical Address Extension allowing virtual memory to be addressed as 64-bit... this is in fact a documented CPU extension from Intel. Oh.. I'm sorry were you talking about PHYSICAL ADDRESS SPACE? Yes, the Xeon faced certain addressing limitations, but they were circumvented using chipset trickery that allowed PAE to be remapped to larger address spacing externally. This is how companies like Dell, IBM, etc... were able to ship Xeon systems that could address 8Gbytes or more. I don't know the full technical details, but I'd imagine that it is closely related to using fancy paging methods through a more advanced MMU.
Windows Vista will be released in two flavors, one in 32-bit and one in 64-bit. I'm guessing from watching the transition from 16 to 32 bit computing that one thing will be clear, since Microsoft isn't releasing a dual-mode binary (Apple didn't either, their package format just pointed to two executables), that intelligent vendors will rely on either
a) Release an installer that will detect the architecture and install the suitable executable 32 or 64 bit
b) Ignore 64-bit since for the most part,
ummm.... a proper IDE such as Visual C++ 6.0 Development Studio or Visual Studio.NET is nothing more than a text editor and an alternative to makefiles. In reality, the only thing that gets coded ugly in a system like this would be the makefiles themselves.
;)
I'd like to point out that an IDE that encourages a developer to program one way or another (with the exception of smalltalk) should be avoided at all costs. A proper IDE is simply a single application that provides the following :
- Text Editor
- Project/Makefile system with hotkey triggered build
- A means to select a compiler/linker error and automatically open the file and point to the line number
- A means to debug a project by setting breakpoints to be honored in the debugger via the IDE as well as providing hotkeys for stepping and continuing.
A nice IDE may include features such as the following :
- Code completion
- Integrated help files for functions (such as openning the right man page for fprintf)
- Automatic compilation of JavaDoc/Doxygen in code documentation
- Browser data for quickly looking up function definitions (this means, right click a variable or function name, selection find definition or find declaration and it takes you to it)
- Makefile generation (I've written my own for Visual Studio to create autoconf/automake files on *NIX)
As far as I know, Emacs has all these features (well not the makefile system I think) and more. Problem is, that it's a major pain in the ass for people to learn. It also doesn't integrate mouse control very well (even in the Xemacs flavor).
KDevelop tries to do a good job, but really this one does force you into their style of development
KDEStudio Gold was a rip off of development studio and if they ever got the project system right would have been awesome
Visual SlickEdit is expensive and works quite well, but does not have support for external help files and can't handle preprocessors very well.
CodeWarrior for Linux worked pretty well, but also struggled with preprocessors
others are too new to talk about.
Now you have a really fun option but it costs WAY too much
MainSoft Visual MainWin for Unix and Linux
This product actually lets you use a Windows machine for development, develop a windows application, then compile for Linux from within Visual Studio by preprocessing on the Windows machine and compiling on a Linux system. The product even includes a commercial product similar to Wine but actually uses Microsoft's code from Windows 2000. Although I wouldn't actually recommend this solution for anyone writing new projects, it sure is a fun solution to the problem
Unfortunately, they lack good support for preprocessors such as moc from Qt. They also lack support for build systems other than their own. Admitidly, I've purchased this software, but only used it a brief time. Their project tools actually seemed limiting after not too long.
I work in a video organization. The average project we work on for DVD production is between 100 and 150 gigs of data. We have approximately 500 projects per year of that size. We are the extreme situation, but it has taught me a lot of thing regarding backing up.
For my home server, I have a small, 5 terabyte system that is actually configured as single drives. I used to run a stripe, but that is the worst idea ever and I decided that given my storage needs, the cost of a backup solution that was reliable was less expensive that a RAID controller able to handle 5 terabytes across 14 drives.
At first, the solution was DVDs. As my storage grew, I moved to removable hard drives. This was a bad idea. Hard drives are good online storage but only substandard offline storage. Hard drive error correction only seems to work correctly when the drive is powered. Besides, noone can predict how long a powered down drive can hold its data for.
So here's what I did. I have a partition which contains files I create. The rest of the storage is for files I copied. The files I create is a mere 150gigabyes. These files I can't lose and because of that, they require a reliable long term storage system. The files which I copied, such as my TV recordings and DVD backups (I store all my purchased DVDs on a central system), are either backed up to hard drive or considered to be losable.
The long term backup system I use is a cheap DLT drive from EBay. After checking prices, I've seen them being won for $10. The tapes are of course expensive, but they're worth it. See DLT offers a solution that is different than hard drive and DVD. Recordable DVD has terrible longevity. Hard drives typically do not state how long they will retain data in a powered off state. I assume it will be a while, but in reality a while can be a 10 years or 3 months.
Using DLT tape is a huge benefit since DLT is designed from the ground up for data retension, not necessarily for speed. If you have files you want to keep for 15 years, DLT tapes are a far more reliable form than alternate media.
P.S. For a fun note, my most reliable backup system yet has been printouts. I wrote a program when I was a teenager that simply made use of a 300dpi laser printer to spew out binary data encoded as dots. Every kilobyte was checksummed. I stored about 1.2 megabytes per page. This means on 500 sheets of american letter paper, with a half inch margin, I could store 600 megabytes of data. As little as a year ago, I scanned the first 15 pages using a 1200 dpi scanner and wrote a program to decode the data, well, over 99.95% of the data was entirely intact. I had a total of two checksum failures. The pages were 11 years old. Viewing the pages, I was able to decipher with a magnifying glass the failed bits and manually correct them. I'll write again in 8 more years to tell you how it worked out over a period of 20 years. I'm guessing I'll be asked how the pages were stored. I stored them in a plastic laminated cardboard box.
Obviously Trek-1 exists in the animal physiology for a reason. Although it can take what seems like eons to genetically evolve, the system would have removed this substance from the body at least to some degree if it weren't necessary. A previous post had mentioned that it's used in relation to epilepsy, or more to the point, it is part of the system that avoids epilepsy. This sounds pretty important to me.
Now, I don't think it's a bad idea to experiement with this kind of genetic science, in fact, I'm glad someone is doing it. Whether we actually directly benefit from this research regarding Trek-1 or if we benefit from the methods that were created or learned regarding genetic manipulation in general, it's a good thing. The problem is, could they have spent their time and the tax payers money more wisely by altering another gene instead? After all, if we already knew that high risk of epilepsy (if I understood the post I refered to correctly) is the side effect of this type of genetic manipulation, then in reality, it can be seen as producing and organism susceptible to epilepsy instead of having produced a less depressed organism.
Also, I don't know if anyone else has had the experience that I've had in the past with people that are typically never depressed. I mean, really... it's incredibly annoying. I even know one person that is naturally incapable of being depressed (it seems) and also has insomnia. This combination made him the worst roommate I ever had. Although I love him like a brother, I can't spend a weekend at a cabin with him. It's just not possible.
I'd also like to point out, that in my experience, a persons ability to understand the difference between right and wrong is often based on their ability to place themselves in another persons' shoes. For example, it must be wrong to do this, because if someone did it to me, I would be sad and depressed. After all, if you were to take someones puppy and put it in a meat grinder to make sausages, if they were incapable of feeling depression, then they probably wouldn't even care.
Whether there are people with severe depression disorders or not, it's part of what makes us human. I sadly am a realist and believe that unless normal people had depressed people to compare themselves to, then they would be the depressed people themselves.
Well, yeh, I wasted far more time on this than I should have already, everyone enjoy your Wednesday, sleep well and dream of large women.
Well, I don't really know how many of you remember the big Windows 2000 API source code leak that occurred not that long ago, but it was eventually concluded that a company called Mainsoft had leaked it in the first place.
.NET that it should be possible to build a port of Office in a relatively short period of time. Then using some additional time, it should be possible to integrate the KDE and Gnome skin managers into the product. In reality what you get is a program that is actually built natively for Linux.
.dll instead of .so. Also there would need to be a new installer or package model implemented. But really, if you're not happy with OpenOffice like many of us, then a Microsoft Word and Excel port done in house by Microsoft would be a great thing.
Well what does that have to do with this? Well Mainsoft possessed the Windows source code since for years they have been providing a full implementation of the Win32 API for UNIX systems. That's right, Wine isn't the only product out there that implements the Win32 API for UNIX systems, just like Samba isn't the only SMB/CIFS implementation for UNIX.
See Mainsoft has a really neat product that was used by Microsoft in the past. By porting the actual source code of Windows to the UNIX platforms, they had a very easy to use version of the Win32 SDK. In fact, Microsoft Internet Explorer for UNIX was built on this technology. It's a bit of a shame Microsoft stopped making Visual C++ for Mac since it also did the same thing.
Well, here's the deal about the Mainsoft product these days. They've actually integrated into Visual Studio.NET and have make it so that using technologies such as rexec and sexec, you can press compile in Visual Studio.net and it will in fact compile your Windows applications remotely on a target OS such as Linux or Solaris. You don't even need to write much new code since they have a preprocessor that converts type related problems. In the build pane, you see build errors and can fix them locally on your Windows system. Using X Windows, you can execute the target and debug it from within Visual Studio as well.
So where does this get us... obviously it must be hard to port a project like Microsoft Office to another platform... right? Well, not really, there's enough of Windows implemented, including
Well, here's the drawback, it's still a Windows program. It still looks and feels like one. But hey, who really cares? I would be able to run a natively compiled version of Microsoft Office on Linux. Oh.. there would be some issues with things like files that are called
Now on the other hand, it's a real shame that IBM has not open sourced the Lotus Office Suite since it appears they won't support it for that much longer. 1-2-3 and Amipro (think it was called) are still some of the best products I've ever seen. Much better than Open Office. If the code went open, I don't think it would take that long before someone at least had a Wine port of it running on Linux.
Ok, I can tell you weren't actually baiting, but this whole topic is in fact bait, so the simple fact that either you or I are contributing anything must be interpretted as fuel.
:
Let me begin by saying that I love Windows, Mac OS X, and Linux. Let me also add that I hate/deplore Windows, Mac OS X, and Linux. See the problem is that all three main players have made such incredibly large systems that you have to love at least some features and you have to hate some features as well. For example, I love the stability of Windows and Linux. I even think OS X is extremely stable, but the applications for OS X are typically incredibly unreliable and unlike on Windows or Linux where you can use another application for the same thing, Mac probably doesn't have an alternative application.
Linux release schedules have to be ignored since there's really no such thing as a release in Linux, it's more of a compilition of a bunch of stuff that's been released inbetween the previous disc and the new disc.
Let's look at what consititutes and OS X release....
- Applications (that are typically also downloadable separately for previous version such as iTunes, iMovie, etc...) are upgraded and designed to work a little better together
- Unix subsystem features that Apple should have held back the OS before releasing have now been included (so in otherwords, they held them back for the next release or whatever)
- Compiler tools have been upgraded.
- They fixed some performance issues with the Windowing system by implementing hardware hooks to offload processing the the GPU instead of CPU
- They charge you $129 to upgrade to the latest version of address book since the older version is now no longer developed or supported
- They charge you $129 for iSync support for your new telephone instead of releasing a module to support it on the previous version (this is why I upgrdaded to Tiger)
Microsoft released Windows XP, which included APIs for all the third parties to write pretty much anything they wanted to write. The rest of the OS is running strong to this day and I don't see any reason to upgrade to Vista before they make it impossible not to.
So far as I can tell, Microsoft has put a great deal of focus into moving the entire graphical architecture to run on the 3d GPU subsystem on Windows. This is cool, yes Apple did it first, but it's not an issue of copying, people have talked about this for years, it was just logical progression. So, yeh, it was time for Microsoft to do it now that pretty much every machine shipping has at least a half way decent GPU.
Here's a big reason why Apple does it first... they want to brag that they have released a new OS every year for 6 years. As far as I can tell, Microsoft just waited 5 years to include all the features in a $129 upgrade where Apple charges $129 every year for the same feature set.
Does Apple or Microsoft do it better? Who knows, I use both operating systems every single day since I'm in the video business and frankly, the PCs are typically more reliable and require far less reboots than the Macs. The biggest reason for this is Final Cut Pro which is an obscene memory hog, it's the first application running on a UNIX that I've seen that leaves memory all falling to pieces even after being exited.
The keynote picked on Microsoft over the Windows registry. Probably the most useful OS feature ever... in fact it netinfo on Mac would be just as useful if Apple did in fact get developers to use it instead of bashing Windows registry. Instead, I have piles of crap all over my Mac in hundreds of different places and uninstalling applications is damn near impossible, reinstall is the real way to fix a Mac.
So, does Microsoft have a reasonable schedule? I can't say, I tend to find that by the time Microsoft releases a new operating system
- Their compiler tools are all up to date and easy to use
- They have do
The instruction set of the CPU is no longer even relevant. As far as I can tell, there is no logical reason to even suggest that stack based vs. register based is an issue when discussing CPU architecture any longer.
If you read the Core 2 Duo architecture details and all the well written articles across the web describing the design of them, you'll quickly come to the two conclusions that I came to early on :
- Branch prediction/Out of Order execution handlers completely render assembler irrelevant to anyone except the compiler developer
- The instruction set decoder no longer supports x86 but a wider architecture more similar (in many ways) to RISC computing than to x86. x86 appears to be intepretted into simpler RISC style instructions for faster decoding and execution when feeding the arithmetic/logical/etc... units.
The one place where this is less obvious is in the case of the SSE/SIMD/Vector processing units since they appear to be designed for two spefic groups of people
- Hand coding assember for faster operations
- Parallel Processing compilers that seem to ignore the existance of an FPU and use vectors instead when calculating massive equations. (such as Intel/former Kai compilers).
As for stack based computing. As a hobby, I've developed a great deal of code for both Open Firmware and for EFI using stack based computing. It's a great thing, but frankly, although it works well enough, when it comes to any other type of development, I don't really care what style of instruction set is used, that's the compilers problem.
My most important issue here is that it doesn't matter what advantages the CPU architecture has over another type, the pure simple fact is that there are thousands of compilers already in existance for register based computing and for the most part, compiler engineers/scientists across the world have the register based architecture more or less worked out. The drawbacks they have are no involved with performance regarding registers anymore, most optimizations made to compilers these days are focussed on memory allocation and usage.
If you want to write a paper which truly revolutionizes computing, focus instead on memory allocation technologies. Products such as SmartHeap and Doug Lea's Malloc and other technologies are only a minor fraction of the issue, though they themselves are amazing products.
The real problem in design is that there is no real method of dealing with object oriented developers that have little or no understanding of memory allocation architectures and therefore cause programs to use far too much heap and the cpu uses WAY too many cycles dealing simply with allocation and deallocation of memory. Fragmentation is an issue and no matter how advance the MMU in a system becomes, there's a certain limit to what can be done in hardware. Almost every single application I've ever seen the code of regularly expands its' own heap by calls to functions such as sbrk(), but almost none of the systems actually every give heap back to the system. In an environment such as Windows/Linux desktop/Mac it doesn't matter that much, but on systems with limited space, it's a killer.
So why waste time with ridiculos issues such as register vs. stack architectures when in reality it would make little real difference?
Let's face it, for a company like CompUSA or BestBuy that tend to have PC support staff in store at all times, PC games are fine, but the fact is that there are a huge number of people out there that can't handle games that have to be installed "properly". For example, what if they need a new sound driver or graphics driver... how about that they thought their Intel Integrated Graphics was a high end graphics card, after all if you read the Intel website it is. Or if you go to BestBuy to purchase a computer, the sales person is happy to tell Ms or Mr Mid-30's banker type that it has a 3d graphics accelerator... "Excuse me what does that mean?", "Well Ma'am/Sir it means that if you want to play video games on the machine it's capable of it with this card".
Now we come to Walmart, the grocery store, the local TV shop that now sells PCs (circuit city for example). They don't have the people on staff to help install a game. They don't have the people on staff to upgrade your video card. They can't even explain why the game wouldn't work on the PC, they don't know.
Now, look at Playstation, GameCube, and XBox. Put the disc in the machine, power on the machine, press start, play. That's right, that's all. If you were Walmart, what would you prefer, to have to employ 10,000 PC "Experts" in 5,000 stores nationwide. Pay for training for them and the new guys each time someone quits? Or would you prefer to keep with employing people that would actually make more money on welfare and food stamps?
The fact is, the console market is killing the PC market in retail, nothing else, that's all. Since Walmart can sell probably 3 times as many copies of a video game as all the rest of the retailers in America combined, oh, BestBuy probably coming in #2. It's what Walmart and BestBuy wants that matters and selling a copy of "Star Wars 659383 The Jedi Use Hemeroid Cream" for PC or for Playstation, they get better profit for the Playstation game and best of all, if the user comes back and says "It doesn't work on my playstation", they stick it in their Playstation console, if it doesn't work, then they send it to the game publisher for a replacement or a refund, if it does work, then they tell the user "Bring your Playstation in for repair" which they also make money from.
If a consumer comes back with a PC game "It doesn't work on my PC", they are stuck with the game and have to stick it in the junk bin hoping someone will actually buy it for whatever they paid for it. Maybe BestBuy can convince the user to bring their PC and then sell them repair or upgrade services on it. But not Walmart or the grocery store.
Slashdot has grown to a fairly large community and no longer can be described by mentioning a handful for stereotypes. There is a group of people that do however fit into a stereotype that I often see here trolling. They are people that spend a considerable amount of time reading the articles and commenting on stupid points that are entirely irrelevant to the topic. Sadly, most of them actual have careers in computers typically as bench techs or some other entry level position. I've known a lot of these people in my life and sadly my wife works with a bunch of them, being a help desk technician herself.
I'd like to point out what makes this entirely irrelevant so that whoever was offended by the previous comment will hopefully have a better understanding as to why it is nonsense.
1) Windows and Linux typically die for the same reasons in modern times, from a stability perspective, Windows and Linux are in fact comparible. Sadly, a shitty driver will still take down either system, but it's a disadvantage of running drivers in protected mode (ring 0).
2) Machine control through either system is equal. Writing drivers for either system is approximately of the same level of complexity. The only real difference would be in the circumstance where a USB driver would need to be written since Linux user mode USB, although somewhat contradictory to the rest of the Linux driver model is quite simple and although not elegant, is powerful. Besides, it should be clearly noted that for systems like this, typically good old fashioned RS-232/422 or the more bus oriented CAN communications methods are likely to be used. In this case there's no benefit of one system over the other since for the most part, DOS would be good enough.
3) Performance isn't an issue, I run many systems on both Linux and Windows XP Embedded and for nearly every reason imaginable, I have no preference between the systems. I do prefer Windows XP Embedded to act as a file server because of the amazing product called MacServerIP from Cyan which seems to be the only maintained implementation of AppleTalk that isn't part of Mac OS itself. But in reality, this is a non-issue in this circumstance. Performance of Linux and Windows XP Embedded is almost identical for most every circumstance. The major performance issues that people see on Windows are more often all the services and the windowing system that's enabled on XP by default. XP embedded doesn't have this issue.
Here's where it could be relevant. I'll point something out from personal experience having developed retail software for the past 10 years and machine control for a few years before that. Having written code for Linux, Windows, Mac, Symbian, QNX, etc... Windows takes less time to develop for. It's true. Because of the development tools on Windows, specifically the Microsoft suite, the team that used Windows XP Embedded had a real edge since engineering code on Windows and the Windows embedded systems is a charm. They were most likely able to spend less than a quarter of the time the other teams used configuring the system and tracking down API documentation. They probably had their imaging systems up and running in minutes and using well documented interfaces were able to integrate it into their software almost immediately.
The other thing I'd like to point out that makes Windows XP embedded a clear choice when time is an issue is that remote debugging on Linux is useless for debugging threads. GDB has always had this issue and might always have it. To debug Linux applications remotely, you need to be able to install all debugging symbols and a full copy of GDB on the target machine and either SSH or telnet in. Visual Studio on the other hand is actually a charm regarding remote debugging. You don't even need to configure it, you just choose the target, compile and run, it does the rest.
To make a small confession, I've purchased a licensed copy of Qt 4 for Windows out of my own pocket cash since I find that developing Unix applications is most easily accom
Well, I know this will start a flame, but here's the simple fact. For everything I've tried doing when making web pages, no matter how complex, IE did just fine and so did FireFox and Opera. With the exception of one ecmascript function that I had to write to compensate for XML HTTP in IE 6, there is no special circumstance code.
:
The entire application is written using EcmaScript and DOM, no HTML/XML/whatever. It's based on a framework similar to Qt in design but written for the EcmaScript. Therefore class constructors had to be 2-stage instead of 1-stage since EcmaScript is a prototype langauge and I wanted Object Oriented.
The application is very fast and is written in the style of a desktop application. This means that instead of using a poorly written AJAX style that depends heavily on server communication and intervention, the browser handles the majority of the work load. When tested on a mini-itx 700mhz Via CPU, results were admirable for all browsers tested, not just Opera.
Whenever server communication occured, the user was informed of it using a progress bar and status display to ensure the user wasn't lost wondering why the page was loading and loading when everything else was so snappy.
So what kind of stuff was on the page? There were popup dialogs, there were tabbed controls, there were multiple field input panes, there was file upload support for adding images to databases, etc.. There was even in one case code that dynamically generated Base64 encoded image data to simulate drawing (sadly this is one feature missing in IE 6)
Now the item that made this all possible... IE is the standard, I couldn't find a single circumstance where I needed to write any special code for any browser (except XML HTTP request) because both FireFox and Opera implemented more than enough of the IE standard that, so long as I used the MSDN library as a DOM reference, everything went well.
The only real drawback and I tested this with and without my framework, using simple HTML and CSS is that IE, FireFox, and Opera all interpret the absolute positioning coordinate systems just slightly differently regarding div borders, margins, and padding. Also, IE's lack of full support for float properties was mildly frustrating, but since neither Opera or FireFox could interpret the standard the same way anyway, I had to write an absolute position layout engine anyway.
So what I'm really trying to say is that if you can't work around the problems, then you shouldn't be doing it in the first place, hire a real programmer to handle programming tasks, if not, then just author for IE and ignore the rest.
And if you're one of those people that are bound to be offended by what I said, then you really have no business in computers anyway. Written standards are typically worth little more than the toilet paper they're printed on. Defacto standards are what make the world go round. As long as Microsoft Internet Explorer is the defacto standard, that's what you have to work with and if you don't like it, then leave.
Oh... btw, after only 5 more minutes development, my system worked just fine on WebKit/Konquerer. Writing this stuff is easy, but like any other form of development you have to at least try to apply some intelligent reasoning to your code.
One last note, to most people security is a non-issue. And as "proof" of this, when asked, more than 90% of all the security paranoid people I know have either
- Provided their credit card to an operator at a call center in ('fill in your favorite call center outsourcing country here') over the phone
- Handed their credit card to a disgruntled minimum wage employee at a gas station while stepping out to fill their gas tank
- Used an ATM/Minibank/Cash Machine in a random location that either didn't specify the bank name or had a bank name they have never heard of printed on the side
- Ordered something online from a vendor even if the page wasn't marked secure
As an American Ex-pat that through osmosis is finally beginning to find British comedy almost less than repulsive (with the rare exceptions such as Cleese), I'd like to point out that both Americans and Brits have refined the arts of sarcasm and comedy. The primary difference is the application. British irony and sarcasm is applied almost strictly in the sense of satire where American comedy does not specifically require the irony or sarcasm to be directed harmfully at an individual.
This is where John Cleese and the Python crew differ a great deal from the typical British form of comedy. Somehow they manage to remain true to their British heritage, though they adopt the less harmful approach to sarcasm than the typical British satire.
I've watched far too many BBC productions in the 8 years since I've left the states and what has always disappointed me regarding British humor is that it was painfully obvious and predictable. In American comedy, it's good enough in a black and white film for a man to fall off a ladder while painting his house. As a bonus, the paint can may land covering his head. British comedy insists on dragging the skit out by first, delaying the laugh track (a cornerstone of british comedy) and waiting for an older couple to walk by and then make a satirical remark regarding the fact that the man has paint on his shirt. At which point, the laugh track is played meaning that the joke was in fact the older couple pointing out the obvious in a predictable manor as opposed to the man falling from the ladder, sitting relatively stunned, then looking up to see the paint can land on his head in slow motion.
The Cleese approach to this scenario would have been to simple cross his arms and make a sarcastic facial expression in the style of Oliver Hardy (see Imdb if you have to ask) towards to painter as if to say "What a bone head" for example.
Personally I've always prefered a mild combination of the two styles of irony and sarcasm. This is what Cleese presents.
I find it somewhat ironic that we have consumed as much time as we have on a topic as mundane as this. I of course mean this sarcasticly. Sadly I lack the ability to apply satire since I find it mundane as well.
I've written an article that I'm in the process of getting published. Included is a user space key stroke logger that :
a) Installs itself "hidden" to the user for execution on login
b) Installs itself as root and hidden from the user if there is no root password (which is the case on approximately 80% of all the systems I've tested... about 50 of them)
c) E-mails key stroke logs to a list of addresses
d) Avoids detection by Sophos and Symantec Antivirus as well as the ClamAV installed on OS X server mail
e) Once a week presents itself to the user as a OS X update and requests the administrator password from the user to install itself
f) Replaces the Finder.app executable with itself so when Finder is being started, it starts and then spawns the real Finder.
This application was easy to write and extremely easy to get users to install.
Now to make a certain point clear, OS X is damn near impossible to fool without user intervention. The user has to agree to install the program in the first place, so I packaged it as an OS X VNC implementation. So when you install this version of OS X VNC (which has a backdoor password as well), this program is installed too. The benefit of using OS X VNC as the method of shipping is that users and adminstrators alike would be willing to install it without reading the license which specifically says :
"This program installs malicious software on your system. If you don't mind us getting all your key stroke and having a backdoor into your system, click agree."
Of course this was written at the end of the license to make sure that it was "legal" hehe. After this program running for 1 week, it deactives all malicious code, it was designed strictly as proof of concept for a security firm I was consulting for. They use it for the purpose of convincing their customers to take training of system administrators with regards to Mac more seriously.
I visited the Apple Store in Tampa Florida as well as the Office Line Apple Store in Oslo Norway. I asked in both places if I would need to worry about malicious programs on the Mac and if anti-virus programs were really necessary on the Mac I was considering purchasing. They told me they didn't see the need for anti-virus applications but if I felt that I needed one, they would gladly sell me one.
So, I'm not sure how confident I would be in the report in the first place. I personally hope that Apple doesn't market the security of OS X too much since it might lead to malicious hackers writing real virus and trojans for the system. After all, how many Mac users really verify the source of the Soduko programs they download from Version Tracker?
Well, first of all, I'd like to point out that I've run on virtualized systems for the entire extent of my career. Not specifically in the sense which we run now, but in the sense that back in the old days, we ran IBM mainfraim operating systems on IBM systems that actually were virtual machines. They included features such as segmentation and all the good stuff which is just coming around now.
Thanks to other technologies I've run similar systems for ages. It is entirely common for me to develop a file system driver while keeping Mac OS X, Windows, Linux, and DOS running on the same system. I've done this for a long time as well. The difference is that the operating systems would be virtualized by running system emulators instead of using CPU technologies for system segmentation. I did this in the old days under DOS using Quartdeck Desqview and a CPU emulator.
First thing that people really need to understand at this point that virtualization as we're using it today is little more than finding a method to lauch operating systems as "processes" under another operating system. This is not magic, for the most part it's something that any operating system developer should be capable of. The issue is more of grinding. It takes the right kind of people to sit and grind through each of the problems that come up with running like this. It's the same idea as writing a Windows compatible API stack. You start off with simple programs you have the source for and work your way up through more complex applications that require direct hardware access. It's a matter of intercepting the calls and handling them as if you were the real thing.
So here's the deal. As a system level developer, I am more interested in what these guys are actually doing in order to make it happen. Let's face it, although Intel and AMD are adding virtualization technologies to their processors, the actual task of switching between CPU contexts is hardly an issue. The real issue is how are they handling hardware emulation.
See, to me, I focus on high performance workstation related tasks. Servers are cool and great, but in reality, it's how it performs on the desktop that is truly important to me. What I want to see is that a vendor grinds a little more on this issue.
VMWare has classically written device drivers to handle hardware interfacing with better performance than others. So instead of simply emulating the VESA BIOS extensions and providing access to an SDL style frame buffer, instead they have written drivers to allow graphics acceleration. So what I really want to see is that they take it a step further....
I want more than just accelerated BitBlt functions. Of course in the 2D desktop world, high performance frame buffer moves are not optional but required since the bus bandwidth required to copy large frame buffers all around is outrageous. But in the days where OS X uses OpenGL and Windows Vista uses DirectX, I want drivers that interpret 3D contexts as well.
So here's what I'm thinking... write a 3D driver for Windows, Mac OS X, X. The driver should of course offer frame buffer handling, but this shouldn't be the focus since it isn't used for much more than boot and text mode processing. When an OpenGL context is created, instead of creating the context native to the virtual machine, the context should occur on the host operating system and should be managed there. The only interprettation should occur when the graphics driver informs the guest operating system of the top level context.
For direct X, well, I've seen at least one virtual driver in the past which implemented Direct X on Open GL. For professional graphics, Direct X is typically seen as a toy although in reality in many ways it's more powerful than OpenGL (don't argue, it has to do with what's more important to hardware vendors so their drivers are optimized for game based testing). So, since most professional graphics packages are OpenGL based, then the virtualization software vendor should simply implement a translation layer ov
I'll say it like this. There are many developers than can start programming projects that have amazing benefit to the users, but after the project reaches a certain point, although the idea is still valid, the initial developer is incapable of understanding the topics and writing the code to make the package evolve any further. Therefore, you hire developers that are able to specialize and use more dynamic implementation strategies to evolve the project further. The initial star coder is still respected for his/her achievements and can even in many circumstances be praised for them, but in most cases, their knowledge of the underlying product would be better used to help steer the team of developers actually implementing the finished product.
Stallman's messages are often very good and right on. What he started was an amazing project that has massive international implications. The UN itself has spent time dealing with issues regarding GPL and FSF interpretations of how things really should be. At this point in time, the GPL/FSF/EFF way is extremely important to how we live our lives and the liberties we hope to secure for ourselves and future generations.
The problem is Stallman himself. He is simply out of his league. He lacks the diplomats tounge and speaks down to people. He stands on soap boxes and shouts his feelings and demands that people listen no matter who they are. FSF/EFF/GPL is no longer a matter of industrial politics, it is an issue of international politics and he's not a good enough man for the job. He is a thinker and his ideas by some would be considered revolutionary and by others simple logic. If this man were to step down and simply hold his tounge in public and let professional lobbiests and diplomats representing FSF/GNU/EFF do the job instead under his guidance, he could accomplish far more.
A simple rule about people and in my experience, especially politicians is that they will respond either indifferently or even hostile to a person that speaks down to them and calls or makes them feel stupid. This is why organizations such as NASA and the NSA are often run by bumbling idiots that have the gift for politics instead of skills in engineering. Yes, we all agree (and many politicians as well, I have friends in some state senates, not national) that politicians are a bunch of self serving idiots. In fact, I can name at least fourty I that I've at least wondered if they can tie their own shoelaces. It is true that the politicians that have true merit as leaders are rare. The politicians that genuinely try to represent the people are rarely given respect within their own tier of government by their peers.
The politicians that have to be sold on ideas are in fact the self serving bastards we hate passionately, they are the power hungry and the ones with real power. They have to be nursed and educated in a way that serves their own interests before changes are really going to happen. After all, the corporations that get their way in the government use lobbiests and influence such as promises of jobs in the future. If FSF/GNU/EFF genuinely want to be taken serious by the self serving pigs that can in fact make changes happen, it would require playing the game and doing it right.
Stallman although he may be right, and in his case, he's scoring better than 50/50 on most peoples radars, he's loud, obnoxious, and he radiates a "I'm smarter than you" aura whereever he goes. This itself is what makes him an idiot. So long as he thinks he should be given special priviliges such as short notice audiences with leaders of states, especially when high level diplomats are often denied this same privilige, then instead of fostering and helping the movement, he in fact damages it.
Stallman is a bull in a china shop. He rampages through and smashes everything in his path until he reaches a special item that he'd like to receive a discount on. When he asks the clerk for the discount, the clerk, knowing he is important simply asks him to leave instead of calling the police to h
Sometimes I wish the Internet had become popular a little sooner than it had. I remember reading reason after reason why DVD would fail. Some of the primary reasons were that
- it wasn't a recordable format
- people's TVs weren't good enough to show the picture,
- noone would pay that much money for gold plated S-Video cables
- The format was too easy to destroy by scratching it
- Who would pay $20 for something that was $14 on VHS
There were lots more reasons, but the important thing is that these reasons are all stated about the new formats as well. And guess what, DVD did take off. In fact it's huge. I can't even find VHS here in Oslo Norway anymore. Ok, there's sometimes a VHS tape in the bargain bin at the toy store. But let's face it, DVD took off and took over.
Now here's the thing about why HD-DVD and BluRay will take over and it's the same damn reason that VHS is finally going the way of the Dodo.
In 5-10 years, a consumer will go to the store because their DVD player is broken and they wil be presented with the option of buying a DVD player for $50 or an HD-DVD/BluRay player for $45 since the store bought 100,000 of them at a good price. So since the HD-DVD/BluRay player will be able to support all their existing library, they will save the $5 and buy the cooler technology, not because it's cooler, but because they saved $5 by doing so.
Now, with regards to that arguement, I've learned from posting in the past on Slashdot that some jackass will say my argument is invalid since the DVD player doesn't play VHS. And my response is simple, yes it does, combo players that handle both formats are all over the place and cost less than a stand-alone VHS player in most circumstances since the store chains by substantially more of them and often can make a better profit margin by selling the combo for less than the lower-demand VHS standalone unit. Yeh, the manufacturers are a little screwed on it, but really, they sold 100,000 combo units at $2 profit vs. 1000 units at $10 profit. Still a better deal for them.
So, now mom and dad bought their new VHS/DVD/HD-DVD/BluRay player made by a Chinese manufacturer for $45 and are shopping for a film at BestBuy. Guess what, the new releases are next to one another and the HD-DVD or BlueRay disc costs exactly the same amount as the DVD release. In fact, it might even save them 50 cents to buy the higher quality format. So, they buy it, hell they may not even know they're buying high defintion or even know what it means, but they're getting the film they wanted at a good price.
So you're asking how will HD-DVD/BluRay discs cost less than DVD. Well that's simple and I'm in that business actually, so I know the answer for sure. The machines that make the glass masters and actually press the discs consume materials. They can make either DVD or HD-DVD right now (BluRay addons coming soon) and although the material to make the HD-DVD costs more, the shipping weight is less. So when you purchase a million blank masters to be stamped, the cost savings in shipping weight will offset the cost of the material itself. So when shipping a million of these babies from China comes to pass, the manufacturer will in fact pay less to press a plate and this will not be profit the the manufacturer, I know this since we're nickled and dimed by the studios all the time. The studio will pay less for the disc and then Walmart will press them to pay less. The studio will say, "We can't budge on DVD, they're as cheap as they're going to get, but we can cut a little on the HD-DVD and BluRay."
So, the above article is bull**** if you know what I mean. We're already getting orders for HD-DVD and it's going out into the open.
As for a storage format. HD-DVD and BluRay burners are the promise land for the video industry since it's finally a disc format that can be used to store an entire HDV or DV tape as raw data. Now we can stop having to send tapes everywhere to make the films. We can simply send the DV/HDV material on a BluRay disc and this will shave a minimum of an hour off of each project.
Well really, come on, we're talking about RMS here. Where will his stupidity end. There is noone that can take away from him his accomplishments in software development. Noone can even take away the fact that he was the beginning of GNU. The principles he stands for have been around for ages before and will exist for ever after. They're not new, they're not revolutionary. It's just the first time in history there is a medium where a person voicing his ideas can be publicly heard without being a member of royalty or head of a country.
So, here's the deal. Why doesn't FSF, EFF, etc... ditch this loud mouthed radical idiot and use the massive amount of money they manage to collect to hire a legitimate CEO or spokesperson to represent them. I mean, get one of the "suits" that used to run 50% of IBM or saved Xerox at some point. Or even a former SGI or Cray guy. Hell... this is a stretch, but I would imagine that Carly is looking for a job these days.
It takes a person that can actually get their foot in the door by speaking the same political language as the politicians to make the changes that RMS is talking about. If it takes a person like Bill Gates, Larry Ellison, etc... to open doors and have their voices heard... well that's what FSF and EFF need. They need someone with a suit, a tie, and money.
Here is my best recommendation, Mark Andreeson. Although most would agree he's become a blabbering idiot as of late, he has a certain credibility from his past at Netscape that lets him get through doors to politicians. If he can learn to tone it down, learn to speak to others as peers or superiors (even if they are 10 notches down the intellectual food chain) and learn to present his ideas in a way what make sense to the politicians instead of slapping them around and calling them stupid and saying "You listen to me, I'm smarter than you". Then he would be a prime candidate, young, bright, and most importantly wealthy enough to mingle with the rich and powerful.
You just have to realize that politicians are not engineers, they typically lack the ability to understand things that are complex. They can understand basic action and reaction reasoning, but when there are too many variables, it has to be simplified for them. But keep in mind, these are powerful people that understand they are powerful, they need to be made to feel as if they're intelligent and information needs to be laid out for them in a way that makes them feel as if they made the connection. If you want them to hear you, then instead of presenting them a "solution", instead present them a problem defined in such a way that they can solve it exactly as you'd like it, leave no other ways. Instead of presenting the solution straight out, explain the problem, if they ask your opinion for a solution, offer them a slightly flawed version of your own solution, explain the weakness in the reasoning and let them figure out the missing part on their own.
Although I'm not a fan of the overall structure of Plato's Republic, you should read it to learn the oldest known method of political persuasion. If you don't see my point from that, then find someone who does since this is how politics has worked for thousands of years and will work for thousands to come. But, RMS is a bull in a glass store, you need a "Socrates".
Oh God yes... I've read the Daily Mail... why would we want to take credit for it...
Oh... BTW... what's on the front page of the Daily Mail about the Beckam's today... did they have a new child named "Back seat of the Jag"?
When writing an OS kernel for multiple devices... often #ifdef is nearly impossible to get around. Sometimes it is in fact the cleanest method of dealing with issues. A good example is in Qt from TrollTech, possibly the most object oriented windowing toolkit I've ever seen, in the case Wid which is a native window system window handle, at least up to the 3 series of the toolkit, it was normal to have an #ifdef that would direct the type to WINDOW, HANDLE, etc... depending on the platform...
But while still using them as an example, they often use a QObjectNameHerePrivate class to hold platform specific code to abstract the platform oddities into their own files. I don't always like this method, but since I'm not a huge fan of multiple inheritance (not because the technology is bad, but because programmers using it typically go overboard with it) I have to say, it might be the nicest method. Personally... I prefer the factory approach. Call QObjectNameHere::createObjectNameHere() static method. But that's just personal preference. Sadly that method regularly ends up in hell as well when coded improperly.
For the purpose of hte instance which I singled out in the initial posting, the use of #ifdef was chosen poorly since in this case, the programmer who did it (and I actually believe I know him) covered up a problem using an #ifdef for a single circumstance. The code the programmer wrote himself did not need to be #ifdefed since if the macros he used were on a non-OOM implementation, the macros themselves would have no effect. #ifdefing in this case simply made it so that he said "If OOM code isn't present, than instead of ignoring the code using the non-OOM macro implementations, we'll additionally ignore it here too". It was redundant code that actually obfuscated the code just enough that they themselves left the same bug present, but just in a different case.
As for Symbian application development... it's hard to narrow the group that is responsible for this poor coding behaviour, it's just poor coding in general, but never anywhere other than the Symbian platform have I ever seen anything such as this :
#if defined(SYMBIAN)
public:
void MyFunctionL() { try { myOldFunction() } catch { LEAVE(); } }
private:
void myOldFunction();
#else
void MyFunction();
#endif
no joke, some Symbian developers spend so much time making sure that all their functions during a port "properly leave" that they in fact simply duplicate code for the sake of duplicating it. For the most part, since Symbian moved from GCC 2.8 LEAVE is just a define to throw, but they refuse to acknowledge it.
I don't blame you for this type of behaviour... even though I may have seen your code, I can't point it out... I'm hoping it some of the better coding examples I've seen in the kernel tree.
Well, I'm going through the code base and some of the things which I recognize as being class Symbian things can be interesting to rag on ....
If you look at KWQString.h and KWQString.cpp, code just gets duplicated for who knows what reasons.... for example, just search on __OOM__
You'll find lots of places where OOM (Out Of Memory) handling is handled for two separate cases. Now, from what I can tell, at least in the circumstance of KWQStringData::initialize(), memory is allocated for the buffer within the string class. The original code does not check _unicode to see if it has been allocated, it just copies the source to the _unicode variable using memcpy. In a virtual memory system such as Linux or OS X, this is not an issue since the OS will always find a way to return memory... or the whole system will be crashing soon anyway.
On the OOM instance, there is one circumstance where if _maxUnicode > 0x1000 memory checking is performed... but in the alternative circumstance, it is not performed and is left without memory checking again.
This of course isn't the real issue... the real issue is that by making a special case for __OOM__ it obfuscated the code enough that it no longer was logical. The correct solution to take would have been to define the same macros for non-OOM systems and had a single instance of the code.
Symbian... especially Series 60 development classically has been known as an #ifdef hell. Symbian developers add #ifdefs everywhere even if they're not necessary. In this case, Nokia had the opportunity to actually fix out of memory or constrained memory handling for all platforms but instead chose to write code that was specific to themselves and simply label it something else.
Mind you, I'm only criticizing the very first file I looked at... I'm sure I can find far more interesting examples throughout the code base... but what interests me most about this initialize() example is that it depends on the Symbian throw mechanism... it doesn't actually fix out of memory situations or even attempt to deal with them... it only recognizes them.
First of all, a top level domain for phones? Huh? Let me see something, if you want a top level domain for phones, why didn't the mobile phone providers jsut collaborate and setup their own top level domain accessible only from phones? They just need to add a record to their DNS servers to support it. Did they need an ICANN supported domain so that desktop users can see the mobile content also?
.mobi is intended to host pages that are formatted for telephones. So in reality, sites are now forced to setup another domain to host their pages that are formated for phones... huh? If they're going to actually host a .mobi domain, why not just send a different CSS to the phone to format the existing page? I mean, there's no reason that they can't just support the same stuff on their .com/.org/.etc
.mobi is a waste... maybe this is a good alternative to .XXX after all, most of what I've read says that the porn by phone industry is BOOMING... maybe .mobi should be dedicated to .XXX content instead.
Next...
Opera and Netfront (not so well on Netfront) support small screen rendering of normal pages. It's not as nice as seeing a page designed for a mobile phone, but really, it's more than sufficient. Why make a new page format when SSR works relatively well.
Oh we were talking about Nokia... right the guys porting Konquerer/Safari to mobile phones. Well, they've done a decent job so far, but in time they will also have a form of SSR. For the moment, they have a rather unique approach to handling it.
What, not all phones have SSR? Get Opera Mini, runs on any phone with Java. Then a big stinking server run by Opera scales the page content before hand, prerenders it and delivers it to the phone. Works on pretty much every phone and costs the user MUCH less if they're paying for bandwidth.
So really, if you think about it,
My theory, although computer literacy can be a few different things... or a lot of different things, it's impossible really to measure.
In one definition, my ather is computer literate, he can log on, check his mail, and he knows a few buzzwords. But he doesn't seem to be able to figure anything out for himself.
Another definition is that my mother-in-law is computer literate since she calls me from the church as asks "The floppy drive stopped working in the church's accounting computer, can I just put the floppy drive into it from my computer?", I responded "Yes", so she went home got the floppy drive from her computer (internal one) and installed it in the church's computer, she called me "Well, the light is stuck on and it doesn't seem to work", so I informed her to turn the ribbon cable over and that it was not really a standard on floppy drives which way the cable pointed. Later she called, "I'm at the computer store, can I just buy any floppy drive to replace the old one?", I told her "Yes". This woman is 73 years old next week and this happened 2 years ago.
We could say that my nephew is computer literate, he is able to build his own computers and can write simple C programs. He's an expert World of Warcraft player and has memorized every library function in the WoW macro scripting system. We could call him computer literate.
The guy writing the bug tracking system at my old job is also responsible for configuring the Cisco layer-3 switches. He has a relatively thorough understanding of simple routing technologies and the main TCP/IP packet format. He can code PHP/Perl and some C. He doesn't quite understand stored proceedures at this time, but it will come I'm sure. I guess this guy is computer literate, but I guess some people wouldn't say so.
We can talk about people that can program applications all day long, design their own PCI cards for embeddding a bank of DSPs, develop single board computers for implementing iGMPv3 management features, debug a BGP session, fix nearly every problem in a users Windows PC, secure a Linux system, etc... This guy is probably computer literate.
Literacy is a matter of perspective. I know guys that develop hardware based DCT engines for HD video compression, they understand math, programming, bus architecture, and can do just about anything with an in-circuit-emulator that can be done. But at the same time, I wouldn't hire them to manage a corporate network since they are not literate in this area.
So, the way I like to define computer literacy is based on ones problem solving ability. Of course you can hand them a rubik's cube and ask them to solve it, but that's a stupid human resources trick. If you want to really find out if they're literate, ask them a question relating to what it is that you want from them and watch how they go about solving the issue. For example, if you need a network engineer, ask them how they would solve the problem as follows :
-- We have two office buildings, up until now, we've been connected by a 4 channel SHDSL solution that gives us 8-bits between the offices. Sadly, the only solution available to us is SHDSL 8 mbit lines, what would you recommend for increasing our bandwidth between offices.
Add more lines is always the solution, but ask the how they would solve the issue of using them simultaniously. I helped a friend solve this problem 2 years ago. It was an interesting problem, but what was interesting is that there are many ways of doing it, but we settled on routing through a multilink-ppp configuration. Worked really well and was solved using no more than a single Cisco router on each end. Even now, I would consider doing the same, but I'm itching to see IP over ATM over IP over PPP over ATM. The cell structure should cut overhead considerably and possibly eliminate the need for every 10th line due to bandwidth savings.
How in God's name would you switch a from MySQL to PostgreSQL to Oracle to MS SQL or to anything. Have you ever actually written a real database application?
Seriously, the amount of time spent switching between any of these system is drastic. For a typical, small database application, there is probably 20k-50k lines of stored procedures. All the different vendors have their own SQL proceedures.
How about securing the databases. I'd love to see how anyone could possibly say that the administration of a transition could possibly be an option. If your problem was MySQL security to begin with, how can you possibly suggest that switching to another database could be easy. The simple administration cost of securing a new server, especially with an existing dataset that was previously developed to be secured on another SQL server would be tremendous.
Switching between PHP and Perl, hehe come on now... I won't even bother wasting my time on this one.
Linux and Solaris.... if you have a security issue on one, you have a security issue on both. The fact is that the majority of security bugs that would be related to these is due to servers that are either not kept up to date or due to zero-day exploits. Both server systems are actively hacked and are high level targets for crackers. It doesn't matter which you use, you have to update both pretty much the same way, switching is a waste of time and money.
So, if you were to reason that the original posters comment was regarding the monoculture of PHP/MySQL/Linux, well I'll make it simple....
The open source community forces this crap down our throughts all the time, they love this solution, it works more or less. There are books on it. There are sections on Orielly's website dedicated to it. It's advertised regularly everywhere. This solution is chosen not specifically on its merits for simplicity/stability/security, but it chosen because it is relatively simple, relatively stable, and relatively secure, AND most importantly, it's Open Pop Culture.
I know a bunch of sales people that love to sell the hell out of the solution because it's fun to say LAMP. They don't know what it means, but they make up all kinds of neat new industry sales terms regularly to make them sounds like they have a clue... they don't. Oh, they also think P stands for PHP or Perl, not both. They don't understand how a letter can be variable.
So, before you put your 2 cents in, think first. Your rinky dink 50 line PHP scripts for changing passwords is not representative of a full mature system. In a real development work, we use features like stored procedures, complex views, server specific indexes. Also, just because your blog hasn't been hacked, don't think that just installing a new SQL server is actually going to secure anything, some of us have actually spent hundreds, if not thousands of hours just setting securities and permissions to different data sets.
The LAMP monoculture is real, it is there. Once you use it, you're locked into it. There is no transitioning from one to another.
Now if I misunderstood you and you really meant that Linux/MySQL/PHP itself wasn't a monoculture because you can choose different options when you're first starting... well ok, that may be true, but the majority doesn't. Perl rarely appears on the web anymore, the web is typically PHP, ASP, or JSP. I don't have exact numbers, but if you want to make me look like an idiot, post real numbers with reference that contradicts me. LAMPHP is a monoculture because it's used so often that lack of talent on the other solutions keeps it that way.
No go and try to sound like you know something somewhere else