1) Why are languages like Java used for web applications when they are used for not many local applications?
a) mindshare.
b) libraries. Java GUI libraries are bad. not just not nice; bad, really bad (compare with nice ones like Qt, PowerPlant, wx, etc). the first implementations were also buggy and dog-slow, that's solved now (i think); but the bad taste remains, and today it's not first choice for almost anybody that need a GUI.
2) Why is every web app, after loading fully, very sluggish in my experience? Is the Java(script) inherently slow or do people just implement it poorly?
first, let me repeat that Java and JavaScript doesn't have anything in common, except the first four letters of their name.
now, JavaScript is usually slow because it's poorly implemented (only recently we're getting the first bytecode VMs and JITs); but also because some language definitions are not easily optimizable.
i'm not talking about type strictness, or dynamic (very) late binding. (take a look at Lua to see a beautiful language with similar ideas but far faster than most scripting languages. (Lua vs. Python, LuaJIT vs. Python+Psyco)). There are some nasty details about hash table references, and lack of proper lexical scoping that make an optimizer's work a lot harder.
also, using HTML+DOM for a GUI is a huge performance drag.
Here's another one for you: The HTML DOM is the view, the Browser is the Controller, the Model is implemented in Javascript, and the server would be a source of data.
a big problem with that is security. the server can't trust the client, therefore the data it presents should be at a higher level than simply raw data.
ideally, both the server and client would speak exactly the same model, with traffic between them to keep consistency. of course, the client should have only a subset of the whole dataset, probably only what's relevant at the moment, probably just a cache to make it almost transparent... but those are details.
well designed FUSE ports are really fast (NTFS-3g, GlusterFS, and a few others). the fact that you can write your filesystem on Python or Bash doesn't mean the foundation is inefficient.
SMF. Being able to start services in a dependency tree is excellent if you have a multi-processor machine. And having services self-heal, including restarting any dependencies, is good for things like mail servers that use a lot of flakey milters.
sounds nice, and seems doable with scripts. i'll look around if there's something like that.
Zones. Because sometimes full-blown virtualisation is too much like hard work.
OpenVZ should be comparable, but i find KVM better suited to my needs.
BTW, can Solaris Zones migrate from one box to another? i don't think OpenVZ can, but might be wrong.
There's probably a Linux equivalent of rcapd, to limit the physical memory use of particular groups of processes, but I've never found one.
don't know of any either, but i really think it should be some way to do it.
There's probably a Linux equivalent of processor sets, CPU shares and the Fair Shares Scheduler, but again I've never found one.
in short, it's a set of free running oscillators, where the exact frequency of each is affected by thermal noise. the instabilities generate an easy to detect "beating", turned into bits and accumulated in hardware registers.
there's very little 'source code for the chip' to read and validate; but there are several tools to statistically verify random distributions.
the goal is the opposite of what you want. virtualization technology (VMWare, Xen, Kvm, HyperV, etc) let's you take a single high-power machine and make it behave like several (slightly) less powerfull machines.
But some of the claims are specific and possibly novel. Claim 6: "the non-file system objects include printer objects representing printers." Mac OS from the time of the patent did not have drag-and-drop for printer configuration; instead, it used a desk accessory called the Chooser.
Mac System 7 had 'desktop printers' a printer icon in the desktop where you could drag a document to print, and double-clicking it opened the queue (where you could manage it by drag&drop the items, not only by 'right-clicking' or menu items, like windows until today)
It's just a matter of what language you're used to in the first place; then you try to make other languages look like that one.
that's a terrible advice!
as they say, "you can write FORTRAN in any language" and that means you'll always be limited by what FORTRAN can do.
when you learn a new language/library/framework/etc (and that should be every few weeks at least), use what is considered good style by experienced users. remember that you're a noob again! (and again, and again...)
I only have a "naked" brace when at the start of a function or for a bare block (occasionally useful).
i used to do like that: naked braces only at start of functions; but after learning several other more dynamic languages, now i prefer to put the brace in the same line as the signature:
int funct(int a,int b) {... whatever... }
i guess this shift in taste comes from learning a few more dynamic languages, where functional programming is the norm, rather than the exception.
It's a romantic notion that companies that are busted can simply switch to Linux or GIMP, but the BSA already knows (from experience) that many companies pay up and move to licensed copies of commercial software.
I thought that when you're busted for using illegal software, you no longer have the option of replacing it with free software, at that point you have to pay. Only after that you can choose to use the (forcibly) acquired packages, or switch to something else.
This isn't "security through obscurity". it's reasonable disclosure, mainly to give some time to create, distribute and apply a fix
the methods are open to discussion, and might not be the best advice (or may be, i don't know). but just picking a catchphrase and running around is just bad journalism.
that's how it works in isolation; the magic comes when you entangle qubits together in deterministic ways.
i'm not clear on the details, but suppose that you have some indeterminated qubits, then you entangle them making impossible some combinations. for example, you might make a NOT operation by making it far more energy expensive to be the same than to be different. encode your algorithm as a series of entanglements analougous to other operations/restrictions. in the end, when all qubits collapse, they'll 'magically' comply with your requirement.
i think positronium is far more 'real atom' than this thing. this is a bit like an exciton in a semiconductor (an extra electron (not 'free', just extra) and a missing one (a 'hole') interacting and weakly bounded).
also, quantum dots are routinely compared to 'artificial atoms', and sometimes a bose-einstein condensate is considered a 'single-atom-like state'
The time from big bang to big crunch might be a "day" for them. Our entire civilization would be like a lightning flash. Are you suggesting some sort of hyper-slow motion state (metabolism, perception etc)? If so, that would be an extreme natural disadvantage. They wouldn't even be able to keep up with the geological events on their home planet, let alone adapt to predators. if the big-bang - big-crunch cycle is just a 'day', it would have to live outside our universe. no sense arguing about a home planet.
BTW, the big-crunch hypothesis seems extremely unlikely in an accelerating-expansion universe.
One feature that I would LOVE to see is to have isolation between tabs so that if one page in one tab causes a crash, the other tabs would be unaffected and the browser could continue. A multi-process model with better isolation could do this, and would also make more efficient use of multi-core systems
in most systems, a multithreaded process means several threads sharing the same memory mappings of the process. that does allows multi-core systems to do more work per time; but doesn't have any (or very little) isolation, so a crash in a thread takes down the whole process.
what you ask would need spawning a whole new process per tab, but since a window can't be owned by more than one process, you'd still need one 'parent' process to manage the GUI. it's not a trivial task to make all GUI go though interprocess communications, even harder to make it efficiently. and still, a crash in the GUI process would take down the whole window.
I've just invented the chance of those conditions to present, but they are not unreasonable. The universe is actually not so big when each of the very many conditions we need remove a chunk of it.
s/universe/galaxy/ and i'll agree with you.
of course your probabilities are a bit extreme, but the principle stands.
An extra bonus is that the more you absorb the sun's energy as electricity, the less of it is converted to heat which dissipates around the planet, and that in and of itself reduces the effect global warming.
wrong.
all energy converted to electricity is ultimately turned into waste heat after use (except the _very_ small fraction that gets irradiated to space, mostly a little light and radio).
in terms of energy balance, solar farms mean replacing groud (which might be somewhat reflective) with dark panels, making the earth a little darker in color.
it would be interesting to put this darkening in context of the greenhouse emissions; i'm sure it's just a few percent of a disadvantage.
Once you learn perl you don't need a big set of reference books to explain every obscure library. Just the manpages or a quick reference will do. I hate language bloat.
if so, check Lua. the whole language fits in your CPU cache, and thanks to it's squeaky-clean language design, the reference is really small too. Also, according to all shootouts, it has the fastest non-JIT VM (there's also a pretty good LuaJIT too, but it's (still) not as fast as Java's)
i'm serious, not even Scheme comes close to Lua's cristalline simplicity and efficiency
Every piece of software you add brings with it a potential problem, so the secret of intelligent network management is to install as few pieces of software as possible... and Windows truly does let you do more with less.
what a sad world here there's people that actually beleive that
1) Why are languages like Java used for web applications when they are used for not many local applications?
a) mindshare.
b) libraries. Java GUI libraries are bad. not just not nice; bad, really bad (compare with nice ones like Qt, PowerPlant, wx, etc). the first implementations were also buggy and dog-slow, that's solved now (i think); but the bad taste remains, and today it's not first choice for almost anybody that need a GUI.
2) Why is every web app, after loading fully, very sluggish in my experience? Is the Java(script) inherently slow or do people just implement it poorly?
first, let me repeat that Java and JavaScript doesn't have anything in common, except the first four letters of their name.
now, JavaScript is usually slow because it's poorly implemented (only recently we're getting the first bytecode VMs and JITs); but also because some language definitions are not easily optimizable.
i'm not talking about type strictness, or dynamic (very) late binding. (take a look at Lua to see a beautiful language with similar ideas but far faster than most scripting languages. (Lua vs. Python, LuaJIT vs. Python+Psyco)). There are some nasty details about hash table references, and lack of proper lexical scoping that make an optimizer's work a lot harder.
also, using HTML+DOM for a GUI is a huge performance drag.
Here's another one for you: The HTML DOM is the view, the Browser is the Controller, the Model is implemented in Javascript, and the server would be a source of data.
a big problem with that is security. the server can't trust the client, therefore the data it presents should be at a higher level than simply raw data. ideally, both the server and client would speak exactly the same model, with traffic between them to keep consistency. of course, the client should have only a subset of the whole dataset, probably only what's relevant at the moment, probably just a cache to make it almost transparent... but those are details.
well designed FUSE ports are really fast (NTFS-3g, GlusterFS, and a few others). the fact that you can write your filesystem on Python or Bash doesn't mean the foundation is inefficient.
sounds nice, and seems doable with scripts. i'll look around if there's something like that.
OpenVZ should be comparable, but i find KVM better suited to my needs. BTW, can Solaris Zones migrate from one box to another? i don't think OpenVZ can, but might be wrong.
don't know of any either, but i really think it should be some way to do it.
taskset works very nice with nice and ionice to manage KVM guests.
Hydrogen cannot explode by itself, it needs oxygen and an ignition source.
I've heard that you can get oxygen very easily (and cheap too!), some would say it's growing on trees!
not only VMs, real MACs are easily changeable by software. (ifconfig eth1 hw ether DE:AD:BE:EF:00:00)
According to them, it's quantum-effect based:
http://www.via.com.tw/en/initiatives/padlock/hardware.jsp
in short, it's a set of free running oscillators, where the exact frequency of each is affected by thermal noise. the instabilities generate an easy to detect "beating", turned into bits and accumulated in hardware registers.
there's very little 'source code for the chip' to read and validate; but there are several tools to statistically verify random distributions.
(this one looks nice: http://csrc.nist.gov/groups/ST/toolkit/rng/index.html. i'll try to get some time to test it on my via mainboards...)
the goal is the opposite of what you want. virtualization technology (VMWare, Xen, Kvm, HyperV, etc) let's you take a single high-power machine and make it behave like several (slightly) less powerfull machines.
But some of the claims are specific and possibly novel. Claim 6: "the non-file system objects include printer objects representing printers." Mac OS from the time of the patent did not have drag-and-drop for printer configuration; instead, it used a desk accessory called the Chooser.
Mac System 7 had 'desktop printers' a printer icon in the desktop where you could drag a document to print, and double-clicking it opened the queue (where you could manage it by drag&drop the items, not only by 'right-clicking' or menu items, like windows until today)
It's just a matter of what language you're used to in the first place; then you try to make other languages look like that one.
that's a terrible advice!
as they say, "you can write FORTRAN in any language" and that means you'll always be limited by what FORTRAN can do.
when you learn a new language/library/framework/etc (and that should be every few weeks at least), use what is considered good style by experienced users. remember that you're a noob again! (and again, and again...)
I only have a "naked" brace when at the start of a function or for a bare block (occasionally useful).
i used to do like that: naked braces only at start of functions; but after learning several other more dynamic languages, now i prefer to put the brace in the same line as the signature:
int funct(int a,int b) { ... whatever...
}
i guess this shift in taste comes from learning a few more dynamic languages, where functional programming is the norm, rather than the exception.
Lines are cheap.
lines are the single most expensive resource in computing, and it's getting worse.
in the last few years, how has your HD space multiplied? CPU power? bandwidth? and how much more lines in your display now than 5 years ago?
display space is the only thing in computing that's not in an exponential curve.
(yes, programming ability also rises exponentially, for the good programmers, at least)
It's a romantic notion that companies that are busted can simply switch to Linux or GIMP, but the BSA already knows (from experience) that many companies pay up and move to licensed copies of commercial software.
I thought that when you're busted for using illegal software, you no longer have the option of replacing it with free software, at that point you have to pay. Only after that you can choose to use the (forcibly) acquired packages, or switch to something else.
This isn't "security through obscurity". it's reasonable disclosure, mainly to give some time to create, distribute and apply a fix
the methods are open to discussion, and might not be the best advice (or may be, i don't know). but just picking a catchphrase and running around is just bad journalism.
Then how come the vowel in the first syllable is pronounced different from the vowel in the second one, yet they're spelled with the same letter?
in spanish (which i guess is closer to the latin original) they're pronounced the same. so the problem isn't spelling but english pronunciation.
that's how it works in isolation; the magic comes when you entangle qubits together in deterministic ways.
i'm not clear on the details, but suppose that you have some indeterminated qubits, then you entangle them making impossible some combinations. for example, you might make a NOT operation by making it far more energy expensive to be the same than to be different. encode your algorithm as a series of entanglements analougous to other operations/restrictions. in the end, when all qubits collapse, they'll 'magically' comply with your requirement.
My brain has its share of garbage. Compost help ideas grow.
this might be the best phrase i've ever seen in slashdot.
i think positronium is far more 'real atom' than this thing. this is a bit like an exciton in a semiconductor (an extra electron (not 'free', just extra) and a missing one (a 'hole') interacting and weakly bounded).
also, quantum dots are routinely compared to 'artificial atoms', and sometimes a bose-einstein condensate is considered a 'single-atom-like state'
all your points are much better applied to C++
BTW, the big-crunch hypothesis seems extremely unlikely in an accelerating-expansion universe.
in most systems, a multithreaded process means several threads sharing the same memory mappings of the process. that does allows multi-core systems to do more work per time; but doesn't have any (or very little) isolation, so a crash in a thread takes down the whole process.
what you ask would need spawning a whole new process per tab, but since a window can't be owned by more than one process, you'd still need one 'parent' process to manage the GUI. it's not a trivial task to make all GUI go though interprocess communications, even harder to make it efficiently. and still, a crash in the GUI process would take down the whole window.
s/universe/galaxy/ and i'll agree with you.
of course your probabilities are a bit extreme, but the principle stands.
wrong.
all energy converted to electricity is ultimately turned into waste heat after use (except the _very_ small fraction that gets irradiated to space, mostly a little light and radio).
in terms of energy balance, solar farms mean replacing groud (which might be somewhat reflective) with dark panels, making the earth a little darker in color.
it would be interesting to put this darkening in context of the greenhouse emissions; i'm sure it's just a few percent of a disadvantage.
if so, check Lua. the whole language fits in your CPU cache, and thanks to it's squeaky-clean language design, the reference is really small too. Also, according to all shootouts, it has the fastest non-JIT VM (there's also a pretty good LuaJIT too, but it's (still) not as fast as Java's)
i'm serious, not even Scheme comes close to Lua's cristalline simplicity and efficiency
what a sad world here there's people that actually beleive that