"The job of QA is to verify that there are no bugs."
ROFL. How? Use a nice big rubber stamp that says "Certified Bug Free?", and hope for the best?
The job of QA is to find bugs that 90+% of people would find 90+% of the time, over 90+% of the product's lifespan. Pick the curves suitable for your company and product.
The job of IT security auditors is to find bugs/issues that only the savvy 1% to 5% of the people would find etc etc.
Just restrict your UI to using fewer inputs with a layer of abstraction - e.g. a numeric keypad (or even just arrow keys and two other keys). Keys can be remapped. There are even reasonable analogues to mouse input available - there's stuff which detects the position of the eyes etc, you can cater for those without buying or building those.
You just have to clear on what your objective is- if you want a computer you can wear, just strap on your cellphone or nokia ngage.
If you want something really different and innovative, then the software is where you do it, and you can do most of it way before you get the hardware. The hardware will get there and become cheap[1], they don't really need your help and I doubt you can make much of a difference in that field.
But if you want "the appearance" more than the function, sure go ahead and work hard at sticking a camera viewfinder to your head just so you can check email and run emacs while walking around.
[1] By the time he's out of college the hardware will be more affordable and ready, probably made in China or Taiwan. See the Espresso PC from Saint Song for instance, just a few more steps and you'd have a wearable.
However, they might rip off his software too by that time;).
"For all of its enemies, not one has tried to directly challenge the GPL in court. After all this time, that should tell you something - they know the GPL is unassailable, "
I disagree. There are many other reasons why they wouldn't want to challenge it in court.
Example reason: They may not like the verdict if they win. Many potential challengers have EULAs and Licenses on their software too. It is conceivable to me that a clear verdict that says the GPL is invalid, may have implications on EULAs and other licenses as well - with the result that Licenses that require people to do XYZ and not to do ABC, and so on may not be enforceable in the court of law. Thus challenging the GPL may not be a good move for them.
I suggest you design the thing first, and build the software for such a computer as the first step. e.g. superPDA, wearable webapp server, instant messaging, etc. Don't worry about the hardware yet.
I'm willing to bet that once wearable computers become affordable and decent looking enough to wear, at a few would be using a linux x86 platform - the folks in Taiwan will take care of that. So you can target linux on an x86 platform with 128MB RAM, 640x480, 400MHz CPU,2 to 4GB HDD, 10-20 concurrent users.
Basically the specs of an old PC now, will be the spec of a wearable computer of today/tomorrow.
The software is where you can make a difference to many people. I also suggest you consider the "wearable server" concept as well - that way your wearable computer can serve wearable computers.
Building an actual custom wearable computer from scraps isn't going to be that great on a long term basis - it'll be like the Apple I days. A few ppl will think it's cool, but that's about it- and evolutionary dead end, and very "been there done that".
The difference is software. I suggest including support for browsers, because webservers are almost everywhere. Then you'll be able to use your wearable to do things like turn lights on/off, set airconditioner temps etc, all wirelessly. And you'd be able to IM your friends wirelessly too.
Virtual telepathy and telekinesis.
You probably should leave the video/image/audio recognition stuff to others. But that'll be useful too.
There've been a few amendments (e.g. 1997) but I believe the "copy for private and domestic use" = not infringing clause still remains.
The lack of linux in M'sia? AFAIK buying a CD with Linux software on it costs more than buying a CD with MS software on it from the local unauthorized distributors.
I heard that an MS Malaysia boss once scolded his underlings for coming down hard (e.g. legal action etc) on companies using illegal copies of MS software. The boss basically said that the infringers were already happy users of MS software, they've done all work of installing and configuring it, so all the MS underlings have to do is make them buy licenses.
Which should be pretty easy. I mean, how good a sales person do you need to be to convince a company to pay the normal price for a license vs paying RM20K per infringing copy plus risk _jail_time_ for the bosses of the infringing org?
The jail time thingy can be pretty convincing... RM20K is may be nothing if you're a multi-millionaire or billionaire. Assuming the typical lifespans, jail-time hurts more. Plus with finesm the company pays. With jail time, the bosses personally[1] pay.
[1] Assuming you're an established enough company that you can't hide behind Decoy Bosses, which I heard that some companies have.
So the seller is breaking the law, but the buyer often isn't:).
Anyway the authorities should have higher priority stuff to clamp down on than copyright infringements. Sure they do take action from time to time. But bigger problems would be: murder, violent crimes, theft etc.
Such a system looks like a _huge_ SMP box. So you can run stuff like Postgresql which as of 7.4.x doesn't cluster easily because it requires shared memory between processes.
Sharing memory between processes running on different machines that are indeed separate machines is not that easy. Often requires fancy hardware and software.
while the SGI solution also involves fancy hardware and software, I believe a single process gets to have terabytes of memory, which is rather different from the common cluster architecture where a process can't easily have a memory space larger than that of the largest cluster member.
It's ok for embedded and other areas (slower CPUs) but with desktop/server CPUs being much faster than memory speeds and remaining so for the forseeable future, having common and popular instructions being shorter than other instructions is actually an advantage despite the complexity that involves.
It's like having on-the-fly instruction decompression. e.g. CISC programs tend to be smaller in main memory+cache, and they travel in CISC/"compressed" form taking up less memory bandwidth over the memory/cache buses to the CPU instruction decoder where they are "decompressed" to RISC micro-ops to be executed.
Look at the mainstream desktop/workstation/server CPUs. Only the SPARC is RISC. IBM POWER/PowerPC is barely RISC[1], some people think it's more CISC than RISC. Itanium isn't RISC. x86 isn't. The rest (Alpha, MIPS, PA-RISC) are either out of the market or on their way out.
As long as CPUs are fast and much faster than RAM (and cache remaining expensive), it's often worth doing the compression/decompression thing.
[1] I believe IBM's POWER chips actually decode their "RISC" instructions to simpler instructions, some of their "RISC" instructions are pretty complex- kinda oxymoronic... But as I mentioned, that may not be such a bad thing.
"Yeah, its true that SUN's hardware is expensive... but when shit hits the fan and your server is down... and you're losing money 1000 transactions BY THE MINUTE, you really need someone to come down and save you!!"
If that's the case you may have picked the wrong solution or wrong architecture..
Sun is by no means high end or "exotic stuff" or even "overengineered". If your application is easily HA clustered then Dell etc will do just as well.
If it isn't and it's that critical maybe you should be using something like Tandem (now owned by HP), or OpenVMS (now owned by HP), both of which are targeted to run on HP's Itanium offerings (along with Windows and Linux). Or perhaps a mainframe from IBM (seems mainframes have more _scheduled_ downtime than the other two though). Then even if your server is down, the users hardly notice.
Sun's hardware is caught between the Dells and the Big Blue + HP. Sun's hardware is not mainframe class. Even Fujitsu says Fujitsu's SPARC offerings aren't mainframe class (note Fujitsu does mainframe's too, so they may be biased), just getting closer ( Fujitsu's recent SPARC CPUs have hardware instruction retry and Sun's don't).
Sun hardware used to perform decently- good bang for buck, but they are now way behind. They are now resorting to Fujitsu for SPARC CPUs (who makes arguably superior high-end SPARC CPUs and servers than Sun, but rather more expensive too...).
There are places for Sun servers, but the ecosystem is shrinking and changing.
I'm not sure what Sun should do. Maybe the Opteron thing will work. But I don't see Dell etc just standing by if Sun makes good money from it. Wonder if Dell have an "escape clause" from their contract with Intel for such situations. I bet they do.
They're not dying yet, but there are a few grim battles ahead.
Even if you get paid more in the US, you have to factor in how long you get to keep your job and how long between jobs.
Even if you get paid 66% more, but you only have a job one year out of every 2 years, you're getting paid less overall. That is worse for "quality of life". (but it's a lot colder:P)
The problem is when you _think_ your custom reprentation is perl+, but actually it's NOT, it's closer to php++ than perl+.
Translating the program to Java may[1] better indicate there's a problem, but who knows what perl+ is? Maybe even you don't.
Also translating php++ to Java may generate source that has 10x the number of lines and is harder to understand compared to something that's natively written in Java that does the same thing.
For the scenario you cite to be practical, too many things would have to be perfect or near perfect, or even possible.
In such a world we'd all be speaking languages that could be losslessly translated to esperanto or parrot-bytecode and vice versa, with zero misunderstanding.
So much of the Java lib stuff seems to have been written by people who were told by The Boss/Chief Architect to add it in, and they just put it in to meet the spec, and not to fulfil the need behind the spec.
Example: in Java how do you get the number of rows returned from an SQL query? You can easily get the number of _columns_ returned by a query.
But when I last checked, finding the num of rows involved moving the cursor to the last row and finding out what row number it is on, or other stupid stuff like that. Some Java people say that's to allow support for huge queries that don't totally fit in buffers or whatever. Well these people should RTFA then.
That and other similar stuff discouraged me from using Java. So many of the standard libs/methods seem to be written by people who weren't actually _using_ them.
In contrast much of the standard Perl libs/modules (though rather byzantine) seem to be written by people who actually use it daily to do stuff. So you can usually do popular and common stuff with it. Even if it's unreadable to many, the many can just _use_ the stuff. After all common usage = use, not read:)
Make easy things easy, and hard things possible. If you make everything easy, the stupid and ignorant people will be doing the wrong thing and make life harder for the rest of us (and possibly themselves).
Well if the two CPUs share the same path to memory then I don't see how two 1.5GHz CPUs would _often_ be faster than one 3GHz CPU. Since with the exception of the Opteron, most current common SMP systems have the CPU's sharing the same path to memory.
AFAIK Dual-core CPUs would share the same memory paths. Worse if they share the same cache - they'd be messing each other's cached entries.
Sorry but my BS meter wiggled a bit when you said Sun claimed _its_ 2 CPUs = 1.8x 1CPU and then added some handwaving to try to stretch that to say that 2 CPUs would be faster than 1CPU with double the clock rate (all else remaining same).
Maybe when I have time I'll go see if a 2GHz CPU is slower than 1.8 x a 1GHz CPU of the same or similar architecture. Doubt if I can do that given my CPU multipliers, but I could probably do something close.
Anyway it's not that simple - lot of stuff isn't memory bandwidth starved. And the "often faster" is quite subjective;).
"What it does is to treat treat a HT CPU machine as if it were a dual-CPU SMP machine. The official adjective to use in this situation is "naive"."
"Naive" isn't so bad in that situation.
"Naive" is bad when you have a dual HT CPU machine being treated as a real quad-CPU SMP machine.
It's ugly when you have two CPU intensive processes being migrated to two HTs on ONE real CPU, instead of being migrated to TWO real CPUs.
This HT thing is really overrated. It probably works well for _some_ programs that don't make efficient usage of a processor's execution units - so running two instances would maximize CPU usage.
For some reason turning on HT seems to make things slower for most server stuff - apache, DB, at least in the benchmarks I've seen.
" and never get particularly bogged down by any single process like a UP machine. "
Doh. That's coz most people haven't figured out a general/common way to make single process use both CPUs, so when you have a single process, extra CPUs are wasted.
One person's bogged down system is another person's CPU-usage efficient system.
The reason why SMP systems are more responsive for most people is because there's lots of "wasted" CPU - you can't easily use all CPUs. I'd like to see how responsive your system is when you have the same number of CPU intensive programs running as the number of processors you have.
People who want responsiveness above everything would probably like an O/S task scheduler that always reserved CPU and time slice for UI processes, or refused to give more than X% of CPU to any process - never 100%, even if it means having unused resources. Voila, nearly the same fluidity you'd get with two CPUs of half the GHz.
It seems to be a scheduler issue. If the priorities of a scheduler was responsiveness and not efficient usage of a CPU you might get better responsiveness. It does not seem easy to make a scheduler that provides both super responsiveness and super efficient CPU usage.
For the price of most dual CPU systems I'd rather spend a bit more and get two PCs.
What you're pointing out is more a bug in the end description, not a bug in the describing.
Bug in describing: you make a mistake so that your chosen custom representation is not quite "perl" but "almost perl. End up with a representation/syntax that's not quite what you think it is. Worse if there are bugs in the description compiler/generator and it's not what the "computer" should think it is either.
Who is going to help you debug that? Everyone else says THEIR representation is fine (da best), and maybe you should switch to theirs instead... Back to square one.
Well on my PC the My Computer zone is pretty much locked down - there's really very little reason for HTML in the My Computer zone to run active scripting, active-x and other similar crap (e.g. store cookies- doh!). Esp since I prefer the windows explorer classic mode anyway (the stupid stuff like big icons on the left takes up space and is rather useless). Most of my zones are locked down in high security settings. Except for the Internet zone, and my own custom zone which I added.
To configure the My Computer zone security settings, change Flags to 1 in HKEY_CURRENT_USER\Software\Microsoft\Windows\C urre ntVersion\Internet Settings\Zones\0
Alternatively as admin, use the group policy (or similar Active Directory stuff) to change the settings and import them to all users. You can also force them to use "machine settings".
Another thing: if you already have a "veryrestricteduser" IE running, clicking on an HTML page actually opens a _veryrestricteduser_ IE window. That's even tho I have launch as separate process on. I just confirmed it again.
Dunno why but the KDE people are also making Konqueror like IE in their system.
Uh, I've been doing it for IE and MSN Messenger for the past few weeks - since I was forced to switch from W2K to Windows XP at work.
Create a user called veryrestricteduser and put it in a new morerestricted group and remove it from the Users group. I made the filesystem permissions more restrictive for members of that morerestricted group - so they can't even list files in c:\ only traverse it.
My shortcut for IE is: C:\WINDOWS\system32\runas.exe/savecred/env/user:veryrestricteduser "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
Because of the/env (use current user's environment) what you need to do is allow the restricted user write access to your IE required directories- e.g. Favorites, Cookies, Local Settings.
Alternatively you could remove the/env and run IE in the veryrestricteduser's environment and allow your normal user read access (and probably write access) to the veryrestricteduser's environment/profile. Then you don't have to allow the veryrestricteduser access to your normal user's directories. The more finely grained ACLs on Windows NTFS could make certain things more convenient.
The latter method is probably safer, but doesn't allow you to share Favorites and Cookies when you do want to browse as your normal user for whatever reason.
You'll probably want to change the icon back to one of the IE icons.
The runas thing is klunkier than setuid and you can't do/savecred on Win2K, so you need to enter the password everytime you launch the shortcut for Win2K or WinXP Home. Savecred works on WinXP Pro.
If you don't trust other applications I think you can do a similar things with them. For stuff that you really cannot trust, you should run them on a VMware VM or a separate machine.
if you're worried about your money, then securing your money is the main thing. Securing the computer is useful, but there are numerous other things involved. The people holding your money are usually the banks and other financial institutions. Their online banking apps and _processes_ may not be that secure (cross site scripting attacks etc)- since most are quite new to it and haven't been burnt enough yet. Plus depending on your setup you may be reliant on your ISP to provide you the right IP address for your online banking site (and the dns traffic has to be untampered with). If you somehow get the wrong IP address you could be screwed too- unless you connect directly to the site using https and check the certs (that's assuming you ALWAYS make sure the fingerprints are the same and don't transact if fingerprints change, OR you trust the CA to NEVER incorrectly issue certs to the wrong parties - verisign has screwed up before with an MS cert).
Because of that and so many other issues, if you are really worried about your money, try to get your bank to not allow online transfers, or only to selected accounts - e.g. to the bank account you use for credit card payment. If the bank doesn't allow that, then do you feel your money is safe in that bank? If no, then change banks- or keep the bulk of your money in a safer bank and transfer money from the unsafe one to the safer one. You can often also get the bank to limit the amount transferred per day.
For online payment (and offline where reasonable) pay everyone else using your credit card. That way if anything goes wrong, at least it's not _your_money_ that's gone - it's the card issuer's money that's gone or the Merchant's (or some other party, just not you!) - in which case while you're going through all the legal processes to fix things, you still have money to live on, and the pressure is on the OTHER parties involved to get things fixed, you can actually be a bit more passive. In contrast, if it's your money that's gone, often the rest could be sitting around whilst you'd be the one burning up the phone lines trying to fix things.
In conclusion, allowing money to be transferred online from your account to random parties is quite insecure even if it's with your permission, and even if it's your own hardware and software, coz unlike ATM transfers, you and the bank are _unlikely_ to control everything else involved in the transaction. Plus the devices involved often do other things as well.
I have checked out a bank's online app before (with their permission as part of a job) and I found I could cancel other people's cheques without their permission, fortunately money transfers somehow didn't work - some other control was probably stopping it. I also found SQL injection in another bank's online app.
There are bound to be flaws in banking apps. Previously this wasn't such a problem because the only people using the banking apps were the bank's staff who had to be trusted significantly anyway.
"The job of QA is to verify that there are no bugs."
ROFL. How? Use a nice big rubber stamp that says "Certified Bug Free?", and hope for the best?
The job of QA is to find bugs that 90+% of people would find 90+% of the time, over 90+% of the product's lifespan. Pick the curves suitable for your company and product.
The job of IT security auditors is to find bugs/issues that only the savvy 1% to 5% of the people would find etc etc.
Heh, scratch and sniff newspaper...
:)...
Wonder if people will be using the paper to roll their ciggies
Don't get your logic.
;).
;).
Just restrict your UI to using fewer inputs with a layer of abstraction - e.g. a numeric keypad (or even just arrow keys and two other keys). Keys can be remapped. There are even reasonable analogues to mouse input available - there's stuff which detects the position of the eyes etc, you can cater for those without buying or building those.
You just have to clear on what your objective is- if you want a computer you can wear, just strap on your cellphone or nokia ngage.
If you want something really different and innovative, then the software is where you do it, and you can do most of it way before you get the hardware. The hardware will get there and become cheap[1], they don't really need your help and I doubt you can make much of a difference in that field.
But if you want "the appearance" more than the function, sure go ahead and work hard at sticking a camera viewfinder to your head just so you can check email and run emacs while walking around.
[1] By the time he's out of college the hardware will be more affordable and ready, probably made in China or Taiwan. See the Espresso PC from Saint Song for instance, just a few more steps and you'd have a wearable.
However, they might rip off his software too by that time
Or maybe they'll give him a job.. Yeah right
"For all of its enemies, not one has tried to directly challenge the GPL in court. After all this time, that should tell you something - they know the GPL is unassailable, "
I disagree. There are many other reasons why they wouldn't want to challenge it in court.
Example reason: They may not like the verdict if they win. Many potential challengers have EULAs and Licenses on their software too. It is conceivable to me that a clear verdict that says the GPL is invalid, may have implications on EULAs and other licenses as well - with the result that Licenses that require people to do XYZ and not to do ABC, and so on may not be enforceable in the court of law. Thus challenging the GPL may not be a good move for them.
I suggest you design the thing first, and build the software for such a computer as the first step. e.g. superPDA, wearable webapp server, instant messaging, etc. Don't worry about the hardware yet.
I'm willing to bet that once wearable computers become affordable and decent looking enough to wear, at a few would be using a linux x86 platform - the folks in Taiwan will take care of that. So you can target linux on an x86 platform with 128MB RAM, 640x480, 400MHz CPU,2 to 4GB HDD, 10-20 concurrent users.
Basically the specs of an old PC now, will be the spec of a wearable computer of today/tomorrow.
The software is where you can make a difference to many people. I also suggest you consider the "wearable server" concept as well - that way your wearable computer can serve wearable computers.
Building an actual custom wearable computer from scraps isn't going to be that great on a long term basis - it'll be like the Apple I days. A few ppl will think it's cool, but that's about it- and evolutionary dead end, and very "been there done that".
The difference is software. I suggest including support for browsers, because webservers are almost everywhere. Then you'll be able to use your wearable to do things like turn lights on/off, set airconditioner temps etc, all wirelessly. And you'd be able to IM your friends wirelessly too.
Virtual telepathy and telekinesis.
You probably should leave the video/image/audio recognition stuff to others. But that'll be useful too.
Read the law before they change it.
There've been a few amendments (e.g. 1997) but I believe the "copy for private and domestic use" = not infringing clause still remains.
The lack of linux in M'sia? AFAIK buying a CD with Linux software on it costs more than buying a CD with MS software on it from the local unauthorized distributors.
I heard that an MS Malaysia boss once scolded his underlings for coming down hard (e.g. legal action etc) on companies using illegal copies of MS software. The boss basically said that the infringers were already happy users of MS software, they've done all work of installing and configuring it, so all the MS underlings have to do is make them buy licenses.
Which should be pretty easy. I mean, how good a sales person do you need to be to convince a company to pay the normal price for a license vs paying RM20K per infringing copy plus risk _jail_time_ for the bosses of the infringing org?
The jail time thingy can be pretty convincing... RM20K is may be nothing if you're a multi-millionaire or billionaire. Assuming the typical lifespans, jail-time hurts more. Plus with finesm the company pays. With jail time, the bosses personally[1] pay.
[1] Assuming you're an established enough company that you can't hide behind Decoy Bosses, which I heard that some companies have.
IANAL but the stuff appears to be legit if you have it for _private_and_domestic_ use.
:).
So the seller is breaking the law, but the buyer often isn't
Anyway the authorities should have higher priority stuff to clamp down on than copyright infringements. Sure they do take action from time to time. But bigger problems would be: murder, violent crimes, theft etc.
Such a system looks like a _huge_ SMP box. So you can run stuff like Postgresql which as of 7.4.x doesn't cluster easily because it requires shared memory between processes.
Sharing memory between processes running on different machines that are indeed separate machines is not that easy. Often requires fancy hardware and software.
while the SGI solution also involves fancy hardware and software, I believe a single process gets to have terabytes of memory, which is rather different from the common cluster architecture where a process can't easily have a memory space larger than that of the largest cluster member.
It's ok for embedded and other areas (slower CPUs) but with desktop/server CPUs being much faster than memory speeds and remaining so for the forseeable future, having common and popular instructions being shorter than other instructions is actually an advantage despite the complexity that involves.
It's like having on-the-fly instruction decompression. e.g. CISC programs tend to be smaller in main memory+cache, and they travel in CISC/"compressed" form taking up less memory bandwidth over the memory/cache buses to the CPU instruction decoder where they are "decompressed" to RISC micro-ops to be executed.
Look at the mainstream desktop/workstation/server CPUs. Only the SPARC is RISC. IBM POWER/PowerPC is barely RISC[1], some people think it's more CISC than RISC. Itanium isn't RISC. x86 isn't. The rest (Alpha, MIPS, PA-RISC) are either out of the market or on their way out.
As long as CPUs are fast and much faster than RAM (and cache remaining expensive), it's often worth doing the compression/decompression thing.
[1] I believe IBM's POWER chips actually decode their "RISC" instructions to simpler instructions, some of their "RISC" instructions are pretty complex- kinda oxymoronic... But as I mentioned, that may not be such a bad thing.
"Yeah, its true that SUN's hardware is expensive... but when shit hits the fan and your server is down... and you're losing money 1000 transactions BY THE MINUTE, you really need someone to come down and save you!!"
If that's the case you may have picked the wrong solution or wrong architecture..
Sun is by no means high end or "exotic stuff" or even "overengineered". If your application is easily HA clustered then Dell etc will do just as well.
If it isn't and it's that critical maybe you should be using something like Tandem (now owned by HP), or OpenVMS (now owned by HP), both of which are targeted to run on HP's Itanium offerings (along with Windows and Linux). Or perhaps a mainframe from IBM (seems mainframes have more _scheduled_ downtime than the other two though). Then even if your server is down, the users hardly notice.
Sun's hardware is caught between the Dells and the Big Blue + HP. Sun's hardware is not mainframe class. Even Fujitsu says Fujitsu's SPARC offerings aren't mainframe class (note Fujitsu does mainframe's too, so they may be biased), just getting closer ( Fujitsu's recent SPARC CPUs have hardware instruction retry and Sun's don't).
Sun hardware used to perform decently- good bang for buck, but they are now way behind. They are now resorting to Fujitsu for SPARC CPUs (who makes arguably superior high-end SPARC CPUs and servers than Sun, but rather more expensive too...).
There are places for Sun servers, but the ecosystem is shrinking and changing.
I'm not sure what Sun should do. Maybe the Opteron thing will work. But I don't see Dell etc just standing by if Sun makes good money from it. Wonder if Dell have an "escape clause" from their contract with Intel for such situations. I bet they do.
They're not dying yet, but there are a few grim battles ahead.
Even if you get paid more in the US, you have to factor in how long you get to keep your job and how long between jobs.
:P)
Even if you get paid 66% more, but you only have a job one year out of every 2 years, you're getting paid less overall. That is worse for "quality of life". (but it's a lot colder
I don't live in Canada or the US.
The problem is when you _think_ your custom reprentation is perl+, but actually it's NOT, it's closer to php++ than perl+.
Translating the program to Java may[1] better indicate there's a problem, but who knows what perl+ is? Maybe even you don't.
Also translating php++ to Java may generate source that has 10x the number of lines and is harder to understand compared to something that's natively written in Java that does the same thing.
For the scenario you cite to be practical, too many things would have to be perfect or near perfect, or even possible.
In such a world we'd all be speaking languages that could be losslessly translated to esperanto or parrot-bytecode and vice versa, with zero misunderstanding.
It's called a spit.
I think you got it right first time - it's CNN after all.
So much of the Java lib stuff seems to have been written by people who were told by The Boss/Chief Architect to add it in, and they just put it in to meet the spec, and not to fulfil the need behind the spec.
:)
Example: in Java how do you get the number of rows returned from an SQL query? You can easily get the number of _columns_ returned by a query.
But when I last checked, finding the num of rows involved moving the cursor to the last row and finding out what row number it is on, or other stupid stuff like that. Some Java people say that's to allow support for huge queries that don't totally fit in buffers or whatever. Well these people should RTFA then.
That and other similar stuff discouraged me from using Java. So many of the standard libs/methods seem to be written by people who weren't actually _using_ them.
In contrast much of the standard Perl libs/modules (though rather byzantine) seem to be written by people who actually use it daily to do stuff. So you can usually do popular and common stuff with it. Even if it's unreadable to many, the many can just _use_ the stuff. After all common usage = use, not read
Make easy things easy, and hard things possible. If you make everything easy, the stupid and ignorant people will be doing the wrong thing and make life harder for the rest of us (and possibly themselves).
"of the bottleneck that is main memory latency."
;).
Well if the two CPUs share the same path to memory then I don't see how two 1.5GHz CPUs would _often_ be faster than one 3GHz CPU. Since with the exception of the Opteron, most current common SMP systems have the CPU's sharing the same path to memory.
AFAIK Dual-core CPUs would share the same memory paths. Worse if they share the same cache - they'd be messing each other's cached entries.
Sorry but my BS meter wiggled a bit when you said Sun claimed _its_ 2 CPUs = 1.8x 1CPU and then added some handwaving to try to stretch that to say that 2 CPUs would be faster than 1CPU with double the clock rate (all else remaining same).
Maybe when I have time I'll go see if a 2GHz CPU is slower than 1.8 x a 1GHz CPU of the same or similar architecture. Doubt if I can do that given my CPU multipliers, but I could probably do something close.
Anyway it's not that simple - lot of stuff isn't memory bandwidth starved. And the "often faster" is quite subjective
"What it does is to treat treat a HT CPU machine as if it were a dual-CPU SMP machine. The official adjective to use in this situation is "naive"."
"Naive" isn't so bad in that situation.
"Naive" is bad when you have a dual HT CPU machine being treated as a real quad-CPU SMP machine.
It's ugly when you have two CPU intensive processes being migrated to two HTs on ONE real CPU, instead of being migrated to TWO real CPUs.
This HT thing is really overrated. It probably works well for _some_ programs that don't make efficient usage of a processor's execution units - so running two instances would maximize CPU usage.
For some reason turning on HT seems to make things slower for most server stuff - apache, DB, at least in the benchmarks I've seen.
" and never get particularly bogged down by any single process like a UP machine. "
Doh. That's coz most people haven't figured out a general/common way to make single process use both CPUs, so when you have a single process, extra CPUs are wasted.
One person's bogged down system is another person's CPU-usage efficient system.
The reason why SMP systems are more responsive for most people is because there's lots of "wasted" CPU - you can't easily use all CPUs. I'd like to see how responsive your system is when you have the same number of CPU intensive programs running as the number of processors you have.
People who want responsiveness above everything would probably like an O/S task scheduler that always reserved CPU and time slice for UI processes, or refused to give more than X% of CPU to any process - never 100%, even if it means having unused resources. Voila, nearly the same fluidity you'd get with two CPUs of half the GHz.
It seems to be a scheduler issue. If the priorities of a scheduler was responsiveness and not efficient usage of a CPU you might get better responsiveness. It does not seem easy to make a scheduler that provides both super responsiveness and super efficient CPU usage.
For the price of most dual CPU systems I'd rather spend a bit more and get two PCs.
AMD's "drop-in" dual core thing _may_ change that. We'll see.
What you're pointing out is more a bug in the end description, not a bug in the describing.
Bug in describing: you make a mistake so that your chosen custom representation is not quite "perl" but "almost perl. End up with a representation/syntax that's not quite what you think it is. Worse if there are bugs in the description compiler/generator and it's not what the "computer" should think it is either.
Who is going to help you debug that? Everyone else says THEIR representation is fine (da best), and maybe you should switch to theirs instead... Back to square one.
"except that in the company I used to own, we had two *separate* T1 lines from two *separate* ISP's"
:)
Hah! You call that redundancy? Real redundancy is when you own TWO companies doing the same thing.
Well on my PC the My Computer zone is pretty much locked down - there's really very little reason for HTML in the My Computer zone to run active scripting, active-x and other similar crap (e.g. store cookies- doh!). Esp since I prefer the windows explorer classic mode anyway (the stupid stuff like big icons on the left takes up space and is rather useless). Most of my zones are locked down in high security settings. Except for the Internet zone, and my own custom zone which I added.
C urre ntVersion\Internet Settings\Zones\0
To configure the My Computer zone security settings, change Flags to 1 in
HKEY_CURRENT_USER\Software\Microsoft\Windows\
Alternatively as admin, use the group policy (or similar Active Directory stuff) to change the settings and import them to all users. You can also force them to use "machine settings".
Another thing: if you already have a "veryrestricteduser" IE running, clicking on an HTML page actually opens a _veryrestricteduser_ IE window. That's even tho I have launch as separate process on. I just confirmed it again.
Dunno why but the KDE people are also making Konqueror like IE in their system.
Uh, I've been doing it for IE and MSN Messenger for the past few weeks - since I was forced to switch from W2K to Windows XP at work.
/savecred /env /user:veryrestricteduser "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
/env (use current user's environment) what you need to do is allow the restricted user write access to your IE required directories- e.g. Favorites, Cookies, Local Settings.
/env and run IE in the veryrestricteduser's environment and allow your normal user read access (and probably write access) to the veryrestricteduser's environment/profile. Then you don't have to allow the veryrestricteduser access to your normal user's directories. The more finely grained ACLs on Windows NTFS could make certain things more convenient.
/savecred on Win2K, so you need to enter the password everytime you launch the shortcut for Win2K or WinXP Home. Savecred works on WinXP Pro.
Create a user called veryrestricteduser and put it in a new morerestricted group and remove it from the Users group. I made the filesystem permissions more restrictive for members of that morerestricted group - so they can't even list files in c:\ only traverse it.
My shortcut for IE is:
C:\WINDOWS\system32\runas.exe
Because of the
Alternatively you could remove the
The latter method is probably safer, but doesn't allow you to share Favorites and Cookies when you do want to browse as your normal user for whatever reason.
You'll probably want to change the icon back to one of the IE icons.
The runas thing is klunkier than setuid and you can't do
If you don't trust other applications I think you can do a similar things with them. For stuff that you really cannot trust, you should run them on a VMware VM or a separate machine.
Try it. Put the page on the local disk, and put it on an intranet webserver, and put it on an internet webserver.
Go figure.
Compare with Mozilla which just ran the stuff (until the bug was fixed).
if you're worried about your money, then securing your money is the main thing. Securing the computer is useful, but there are numerous other things involved. The people holding your money are usually the banks and other financial institutions. Their online banking apps and _processes_ may not be that secure (cross site scripting attacks etc)- since most are quite new to it and haven't been burnt enough yet. Plus depending on your setup you may be reliant on your ISP to provide you the right IP address for your online banking site (and the dns traffic has to be untampered with). If you somehow get the wrong IP address you could be screwed too- unless you connect directly to the site using https and check the certs (that's assuming you ALWAYS make sure the fingerprints are the same and don't transact if fingerprints change, OR you trust the CA to NEVER incorrectly issue certs to the wrong parties - verisign has screwed up before with an MS cert).
Because of that and so many other issues, if you are really worried about your money, try to get your bank to not allow online transfers, or only to selected accounts - e.g. to the bank account you use for credit card payment. If the bank doesn't allow that, then do you feel your money is safe in that bank? If no, then change banks- or keep the bulk of your money in a safer bank and transfer money from the unsafe one to the safer one. You can often also get the bank to limit the amount transferred per day.
For online payment (and offline where reasonable) pay everyone else using your credit card. That way if anything goes wrong, at least it's not _your_money_ that's gone - it's the card issuer's money that's gone or the Merchant's (or some other party, just not you!) - in which case while you're going through all the legal processes to fix things, you still have money to live on, and the pressure is on the OTHER parties involved to get things fixed, you can actually be a bit more passive. In contrast, if it's your money that's gone, often the rest could be sitting around whilst you'd be the one burning up the phone lines trying to fix things.
In conclusion, allowing money to be transferred online from your account to random parties is quite insecure even if it's with your permission, and even if it's your own hardware and software, coz unlike ATM transfers, you and the bank are _unlikely_ to control everything else involved in the transaction. Plus the devices involved often do other things as well.
I have checked out a bank's online app before (with their permission as part of a job) and I found I could cancel other people's cheques without their permission, fortunately money transfers somehow didn't work - some other control was probably stopping it. I also found SQL injection in another bank's online app.
There are bound to be flaws in banking apps. Previously this wasn't such a problem because the only people using the banking apps were the bank's staff who had to be trusted significantly anyway.