Yes. The atmosphere gets thin out at the edges, but there is no hard line where the soft vaccum of space starts and atmosphere ends.
Even once you are outside any influence from a planet's atmosphere you have the stellar wind. Beyond that there is still interstellar gas. Beyond that there is the intergalactic medium. You can check out the desnities cited on wikipedia for each but none of them are zero.
There is simply no getting a good hard vaccuum in this universe and, hence, anything moving in the universe has to deal with the fact that it is going to smack into some amount of matter in its journeys. Being near to a big puffy ball of matter just exacerbates that.
So... yeah. Orbit involves atmosphere no matter how you slice it. Just a question of how much
IBM researchers are claiming a huge breakthrough in spintronics, a technology that could significantly boost capacity and lower power use of memory and storage devices
But that isn't really even the worst part. It might be true, it might come to pass. Fine, fine. Don't gush about it for half the article, or if they insist on gushing then at least lay out the chllenges and technical details needed to get there.
Sorry I seemed as though I don't appreciate their work. I do. I just want more than a friggin advertisment for an article.
Likely not, or not like they claim. Stories like this remind me of Maxwell's Demon. It seems to violate the rules, allows for unlimited energy! Except until you realize that the demon can't be run for free. They claim the breakthrough in stability of the spin states and neglect the cost in space and energy in everything else around it.
Stop this sensationalism! Give me some science on it and tell me some more details. How do they generate electrons with a single spin? How about a blurb about spintronics already being used in modern hard drive read heads? Cut the nonsense and tittilating lies about promises of the future and tell us the details.
To be fair the grand parent mis spoke. It *is* a block level cache in front of one or more other block devices. Many devices can share one cache and, I think, vice versa. I'm going to try and get it compiled and running.
What is faster but still includes strict ahead of time (dancing around the word compile time, since a JIT can eat source about as well as some intermediate format) type-saftey, GC, safe arrays (or, better, collections of some sort), and is object oriented? I've not done colmparative research but I'd immagine something like C# might fit the bill, but considering that I don't develop on Windows I suspect be subject to a less polished runtime environment. I don't expect python would be faster, but I'm open to suprises.
Last, if it helps, I wasn't taught Java in college. Heck, it is the first OO language I learned (self taught) and I went years thinking it was the scum of the Earth. Turns out that I found some good stuff there. Heck of a lot faster than perl and easier to code up solutions to Project Euler problems in. Missed some tricks from C, but once I learned how to properly program in an object oriented fassion things got a lot easier. Just don't want you to think I'm a Java zealot.
I use that every day at work and home. Really like it.
Others talk about Mint or Fedora and a few others. In the end it really comes down to the evil that you know. I know Debian, ergo I know a great deal about Ubuntu.
Naw man, not even that. You could use a trie and perform a single search across any number of strings in O(n) time relative to the length of the string with early bailout when the string you are attempting to match diverges from the set you are matching. You can even do some optimizations on your trie after it is built so that the leaves contain the unique "tails" of strings.
OR you could even use a hash table and do the lookup in amortized O(1) time
Very very fast indeed to match your gusses against a set of unsalted hashes
I've found XFCE to be a VERY sweet spot for me as well. I use the default WM, just heard of OpenBox via this thread.
My favourite thing is raw speed. Absoloute unquestioning speed. XFCE doesn't get it my way, it doesn't take time to play an animation whenever I do something. It snaps to attention and that is a BIG deal when I'm developing. Alt-Tabbing around, switching virtual desktops (with keyboard shortcuts, natch), raising and lowering windows, etc are all things that should happen fast. The next screen update if possible. The other desktop environments have forgotten that. I like animations and all the eye candy at first, but when I went to get something done they just got real annoying. Not to mention all the things that they want to change just... because? I don't know.
Unity wants me to change my workflow, lack(s|ed) basic configuration, has the "unified menu" (really hate those) and a whole slew of other problems that I never found because when I realized it wouldn't let me launch more than one instance of an application (a terminal, for example) without performing some ritual (I never found out how) I restored from backup as quickly as I could. Unity, in my experience, is slow braindead garbage designed with goals nearly orthogonal to my own needs.
Gnome I've not tried since it arrived stillborn in Ubuntu 11.10? (I think? It crashed for me hourly. Didn't take long for me to change when that started). The last time I looked at KDE it simply didn't give me controls to do certain things, forget what but it was keyboard shortcuts for window management. It might have been virtual desktops but I could be wrong. I like to be able to swtch desktops with *absoloute* keyboard shortcuts instead of relative ones. I don't give a half a rat's tail about the "geometry" of my work spaces. Hint: There isn't one! Its all just an abstraction! I don't want to have to give a moments reflection on "where I'm at" in my virtual desktop space to know how to get to my "destination"! I know that I want to get to virtual desktop 3 so I hit ctrl+alt+down and I'm there. I make habits of putting certain things in certain places so it is reflex to jump to the right place to find them, no thought required and no distraction from my train of thought.
Anyway, KDE seemed incomplete. Lack of controls that irked me (and I DID try. I like the look of it and I recall it being speedy enough. Just felt like I was typing one handed, for lack of a better analogy)
XFCE fit the bill for me in every single way. Right now everything else seems like a pain in the neck that is trying to get in my way, change my workflow to a painfully slow one, or is jsut plain broken / incomplete.
or.net or java or any common application like firefox or chrome. Modern development doesn't free memory, it restarts/launches a new process. Garbage collection has been a joke since before we started measuring ram in gb instead of mb
I'm going to go with ignorance over malice on this one. Even a modest (processing or I/O limited, as opposed to blocking) application will churn many megabytes of non-stack-alocateable memory per second for all but nearly trivial tasks. Much much more very often (hundreds of megabytes a second in bursts or some specific tasks). You'll run out of real memory before you can do most things.
Now that could be handled by explicit memory management, but that adds a lot of work and a whole new class of bugs. Lots of languages would have to the stripped to their core to replace the GC mechanism with explicit memory management. Ruining milenia of man years woth of code in the process. Also there are some incredible data structures built on top of CAS instructions which don't require locks to be thread safe, relying instead on so called atomic instructions for correctness. This can unchoke some of the toughest bottlenecks to crack in a large application, but it is nearly impossible to do correctly with explicit memory management especially once complex (read: useful) data structures start piling on top of each other. The scope of the problem spirals out of control.
Last, and best of all, GC can (CAN but isn't always) be cheaper than explicit memory management. It goes like this: Allocate a few new objects on the heap, making a mmap call for each. Mmap does some really intreseting things which I'll skip here and returns you a word aligned chunk of memory at least as large as the one you requested and ALSO does a bit of bookeeping so that later (or concurrent!) calls to mmap and free can, well, manage memory (in concert with the OS. More incredibly intreseting details and subtle elegant solutuions here. Really. Read up on virtual memory and browse the GNU C-lib's documentation on memory management)
You make use of these objects and free them (becaue otherwise you run out of memory, see above). Free costs cycles to call. It has to work with mmap and other free calls to do bookeeping and make sure your program's heap is more than just a byte array free-for-all.
In a GC system the allocation can be deadly simple, far simpler than malloc. Check out all the various GC schemes (G1GC in Hotspot 7 is a good one and I've found it easy to understand on a conceptual level) They know where the free bytes are and allocate against them without much regard for saving every byte of space and calling malloc very rarely, jsut stuffing things where they fit. They can do this because the generational assumption holds. Most objects die young. When the GC cycle comes around a block of memory, regardless of the number of objects it holds, can be freed with perhaps a single byte written into memory. The even better part is that most "precise" GC systems run in time relative to the live objects, not the dead ones. This means that even if free ran in a single instruction and didn't blow out a single line of L2 cache the GC system can take less time. It often takes more effort to trace the heap from the roots, but not always. Probalistinc instead of hard guarantees and incremental instead of continious, but it gets you a lot of freedom and a TON of opportunities to exploit parallelism (manual memory management in non GC languages on objects touched by multiple threads can be tantamount to writing your own GC. incredibly slow or worst: wrong (as in incorrect, not morally))
So GC. Yeah. Heck of a thing. Really, I'd say, makes computing and programing as we know it possible. Heck, even GCC uses a GC.
I cannot recall the last time that I noticed things being slower internet-wide (indicating a bottleneck relatively nearby as opposed to at a peering node), but I'm certain that it happens in areas that are more densely populated and/or more tech savvy.
So long as the ISPs are turning "record profits" (not that they said comcast is, but the cell companies are) then this problem is one they created for themselves. Don't maintinan a level of service to customers that they expect despite having ability to pay for the needed upgrades (or some, at least)? Expect to loose customers.
I'm not against paying for my bandwidth. I'm against being charged more than a fair price for my bandwidth. If that means they low balled themselves and want to charge more, then ok. So long as it is fair. I know that the dollar per gigabyte or more that they charge for overages is WELL past the raw cost of bandwidth.
I hope I make it clear that I don't want them to be screwed and I don't want to be screwed either. I think that if they make this move they will drive their own profits are our expense and to the detriment of the Internet. Perhaps not, but cell phone plans are a good indicator. Let them charge by the byte, but make them charge fairly. Too much to ask?
Last thought: most ISPs are monopolies or duopolies (sp?), so they have to be watched like hawks so we don't suffer.
I agree, here is why. First lets look at the part of the summary that really sums this up:
while wireless providers are reaping record profits by charging based on usage, similar to the way utilities charge for electricity
The argument there is that they want to make more profits. More money. More for the sake of... more? There was a comment above stating that cable companies need the money to innovate, and I respect that. I also respect the fact that profit for profits sake screws over people, stiffles anything that challenges it. The world abounds with examples, and the fact that some cable companies feel the need to take municipal fiber projects to court to stop them is evidence enough of that (even though that would free them from the burden of maintenence of the last mile and still allow them access to charge people money. They know they cannot compete or else they'd gladly hop on to the freely provided (to them) fiber line and continue on with business)
Another thing to point out is that electricity takes exactly a certain amount of effort to generate, and every joule used requires some fixed amount of fuel to be burned, uranium transmuted, etc etc (and even wind and solar have huge base costs and ongoing costs due to the fact that they are bursty in nature). It is much more complex than that with line losses and the like, but on the large scale average it is some fixed multiple number of Joules generated to every Joule used. No more, no less.
Now then, how much does it cost providers for their bandwidth? Well they do have to recoup the costs of installation, ongoing rate of technological advancement, and the ever growing price of labor (in theory / I wish). Once those costs have been covered there are still the settlement charges / peering agreements with other network providers. I don't know what those are.... but they aren't friggin $1/GB. Also with many of the largest services scaling out to dozens of sites across the nation / world so that they are closer to their customers (Akami, Amazon (and all their partners), etc) the number of hops that need be taken are small. 0, 1, or 2. Traceroutes to many popular sites indicate that (from comcast in MI at least) there is one last level hop to the other network very near to the destination and that is it.
So perhaps I did have this wrong, come to think of it. Perhaps there is a small variable cost to it all that varies with useage. Charge me some small fixed multiple of your settlement costs for the bandwidth on the exit nodes I use and some small fixed fee to aid in innovation and advancement of the network. Also, and lastly, if you want to compare yourselves to the utilities then you need to act like one. Not sure on all the laws, but I'm pretty sure that the laws regarding phone and electtricity are pretty inhibiting. Really don't think that they want that. They just want the profits. Careful with that bottle, I hear genies are hard to get back in.
I didn't forget about the mathematical crptoanalytic attacks, I just want it to be well understood that the length of the key isn't nearly as important as the math behind it.
Crap algorithms, or extremely good attacks against good algorithms are THE arms race, not computing power. That said I'm looking forward to having some algorithms within the next few generatiions that are well beyond our ability to crack. Also even, say, AES with increased rounds tends to break attacks. It is just that a balance between security and speed must be struck.
=D Yes, yes I was. I meant to do things like read over the comment and check it for grammar and make that point, but lunch was already over. Such is life!
Considering the (mostly) invincible state of good encryption, this seems unnecessary. Sure, it is a fun idea, but not a practical one.
No encryption is invincible. Especially 5 years from now... Computing power has advanced to the point where you can just brute force "invincible encryption" from a few years back...
That is a good little write up on the subject. Short, sweet, and easy to follow. It demonstrates that non quantum 256 bit keys are safe from brute force attacks for... ever.
Two wrenches (one esoteric, one practical): Reversable Computation and Quantum Computers.
First the "practical" one, Quantum Computers. The algorithm for searching an unsorted database for a key is Grover's Algorithm. This gives a speed up of O(N1/2) and a space complexity of O(log N). For a 256 bit key this gives a time complexity of 2**128 and a space complexity of 78. Now, that time complexity will kill you. Move to a 512 bit key and we are back to 2**256 time complexity (jsut like in the linked article). The space complexity goes to 155. It might not seem like a big deal, but adding another qbit to a quantum machine isn't trivial. In fact it is properly hard, and gets harder for every extra qbit. also that space complexity is a multiplier, not a count. you need log N * or something along that scale (Big O notation demonstrates the rate of growth as things go to infinity so small problems can be dominated by other factors till they "scale up"). Obviously even quantum computation isn't going to help crack a 256 bit key and a 512 bit key will restore the same level of security even IF they could be built large enough and numerous enough and fast enough for the 256 bit version (LOTS OF IFS and with an easy out. As pointed out increasing an encryption key's size is relatively trivial)
Now for the one that caused me some trouble, Reversable Computing. Fancy way of saying that the computation is reversable with no energy expended after being performed and reversed (actually arbitrarily little energy appraoching zero as closely as you care to come... kinda. Physical devices pose practical problems, but let us se that asside for a moment). This is a theory, and a good one. The problem is that you need to drive through all of the states. Let us assume that a computation takes one plank time on our perfect reversable computer (this is impossible, of course. It would be far higher even with a "perfect" device, but this is a lower bound given to us by nature). You need 1.4 * 10**16 time the current age of the universe (1.979 * 10**26 years) worth of computer time to go through all the states. Average is half that to find the correct key. Now you'll want to parallelize this computer to get to that (wholly impractical) time faster. How many can you build? How large are they? I'll leave it as an exerccise to the reader to determine how many you might be able to construct before they collapsed into a black hole. Also: 1 plank time is a few dozens of orders of magnitude smaller than any computation done with matter can achieve. It takes 4.48*10**20 plank times for a photon to pass an electron (if wolfram alpha is being nice to me, that is). Scale your time to be, say, the same as the time it takes a photon to cross your theoretical perfect reversable computer and then work out how many you need to complete the cracking of the key within a reasonable time. You'll get a black hole or incredible distances beyond the mortal ken.
Conclusion: Brute forcing any appreciably sized cryptographic key (512 bit or greater) will never, ever be possible no matter what happens with technology so long as computers are made of matter and compute in space. Period. 256 bit keys will remain equally unchallenged until we can create and power quantum computers the size of grains of sand trilions at a time.
I've not read the paper yet, but it makes sense from a certain standpoint.
A single high dose causes massive widespread damge. Cells die, immune system ramps up, and rapairs get underway. A cell that might have become cancer dies in a scab, or fall off, or is cleaned up in some way amoung the countless others. Low level raditon damages just a tiny bit. Not enough to cause a reaction or massive cell death. This gives each cell that could become cancerous a better chance to live and become a problem.
Not sure if that is the mechanism (or if they een identified a mechanism yet) but it smacks of truth.
As the summary surmises, a unified architecture could make it easier to build in a common backdoor for spying.
FTFA
...a ubiquitous, always-open backdoor that can be used by Chinese intelligence agencies. The Great Firewall of China is fairly easy to circumvent — but what if China built a DNS and IP address blacklist into the hardware itself?
This is utter and complete nonsense. There is hardly a shread of logic in making this argument.
It is an instruction set. You know, add register 1 to register 12 and store in register 1. Copy Register 1 to memory location 0xa3546f00. Things like that. In what world could an instruction set and basic outline for the architechure (which is the system built around the core instruction set. Memory interfaces, cache rules, chip to chip protocols, etc etc) be capable of a backdoor?
Built in blacklist of IP addresses? How does that work? Blacklist an entire subset of the 32 and 128 bit integers? Good luck running the system! I'll leave it as an exercise to the reader to try and predict the failure mode of there. Some others later inthe thread are talking about this making it easier for black hats by way of making their code portable. Portable code does make their job easier, but that doesn't make the system built on the ISA identical. It also doesn't make the chips themselves identical. A flaw in one chip or one system built on this ISA does not affect the others. Flaws that are within the spec itself are harder to fix but are no more a risk than any other ISA.
There isn't a logical way for an ISA to be exploited for the kinds of things people are talking about. Even if they did, say, hide some nonvolitile storage on certain chips and try to identify AES being performed (for example) and store the keys away it would be trivial to obfuscate the AES code so it wasn't recognized. There are a near infinite number of ways to perform an arbitrary transformation on data, some are just used because they are faster and resistant to things like timing attacks.
To cut this short: anyone making arguments against a standardized ISA by way of invoking security concerns needs to really lay out their argument. I can't concieve of one good path of attack but I think I'm biased against the idea. If someone can provide a good and thought out example I'd be glad to hear it but I suspect that the security angle isn't a valid concern.
Atheism is being against religion while Agnosticism is having no religion.
I'm sorry, but that isn't correct. Atheism is simply asserting that there is no god. Agnosticism is a harder one to define but it is (in VERY brief) the idea that though there could be something beyond the mortal ken the details of it aren't anything more than pure speculation.
There are many shades of Agnosticism but there is only one of Atheism and that is "There is nothing supernatural." There is nothing in that statement that attacks anyone. People just feel attacked by it. I don't claim to understand why.
The problem with PGP/signed-emails is that you're putting the burden on the user.
Okay, I'll bite. (not TOO hard, mind)
So lets use PGP and still put the burden on the ISP / email provider / Facebook / anyone but the user
Every email client in the world ships with PGP support
Every email provider issues a key to their users. This can be done by the email client getting the key from the server when it authenticates (say a specially crafted email that it then hides from the user. No need to make it complex like extending the protocol! Just use existing technologies like "Magic emails") And emails of this format could be filtered trivially from being recieved (so no emailing someone a new private key!)
Every email is signed and verified and those that aren't are flagged as "DANGER DANGER!" or ones signed but from somewhere not trusted, etc etc. PGP has a wonderful system of trust built in. It can be used in any way they want (google, MS, Yahoo, etc publish public keys and sign user keys with it, etc)
Lastly if someone savvy enough wants to use their own PGP key they can. Just get it signed by their email provider or some other such proof that they control that email address. PGP has this sort of thign already, very nice! https://keyserver.pgp.com/
Bonus points to PGP: since it already has the idea of a web of trust it can be used to GREAT effect. The email client could regognize that you seem to work with this person or email them a lot and ask, "Do you know this person in real life? Do you trust that this email is from them?" and sign keys that way. In this way one could have direct evidence that an email comes from someone that they can trust rather than just Google's big red rubber stamp. How novel!
We could really make this work with popular social media sites like facebook (I'm not a member, but lotsa people are) and show where this person is on your social graph (if they are at all)
So that is how we can use PGP, have it be as good AND BETTER than something new and not make the users do it. Sure there are more than a few flaws in the above but that is the basic outline.
the worst flooding in the country for more than half a century
Well there you go. They built a fab on a known flood plain. I wonder what the actuarial table for that looks like. That is assuming, of course, that WD even bothered with flood insurance...
I've seen a lot of bad JavaScript running around, but its problems stemmed from two or three places. None of these have to do with speed, not for as long as I've been using it professionally.
First is / was the lack of standards which has been remediated by the likes of jQuery (I cite jQuery first and foremost because of my familiarity). The libraries that were around before these comprehensive projects was spotty, broken, and difficult to understand.
That problem is fading fast as new work is being done with the proper tools.
The real ongoing problem is just bad programming. Many scripts are created by non-programmers, inexperienced programmers, or ones that do not understand some of the features of JavaScript such as closure, the ways objects can be used and first class functions. Misunderstanding these features in concert with being a poor programmer means that the results of using it are less than acceptable or take much more effort than they should have. I didn't instantly understand everything the language offered myself and I look back at some of my older code and cringe. These days I actually find it a joy to work on something in JavaScript, it is a very expressive language but like any powerful tool it also can maim, hinder, or explode when mishandled. Same with any language.
Certainly there are a number of languages that have a larger set of features than Javascript, and some of those features should find their way into JS. However the missing tools rarely are missing capabilities. Just because you'd like a foreach loop (for(in) isn't exactly what most people think of as foreach) doesn't mean that a for(i=0;i<arr.length;i++) is any less effective. Just because callbacks aren't intuitive compared to synchronous operations doesn't mean that they can't work almost as easily. Also they are in there for a reason, so that you don't have to worry about locking primitives and threading.
Those are just some examples of things I've seen people begging for in JS, or were caught off guard by (or just plain old didn't understand how to make effective use of it). So really, what complaints do you have for JS? Don't complain about bad code, that is everywhere. What things in the modern landscape of JS are lacking? How would you like them solved?
Yeah, I started making one point, then another... and then the thing got so long that I didn't want to erase it even though it no longer had much, if any, REAL semblance to a "reply"
I've gotten mod points while having mod points (re-filled before the expiration date). Not that I think this is rare or special but I'm curious as to your valuation of my opinion.
Where did I go wrong, in your eyes? I'm open to correction.
It may be, but there is a nagging question of that last moment or last moments. It should be painless, but who knows what the last few minutes of a mind mangled and slowly bleeding out are like... On the other hand some drugs have a nice clean predictable effect, at least on the conscience mind.
I'm not saying that my retirement plan doesn't have a caliber attached to it, nor that I believe the above has any bearing on truth... but it scares some people too much to cope with. Hell, OTHER PEOPLE committing suicide (with good reason, not a "tragic" suicide. I'll let that one be) to end their suffering scares people enough to erect massive sets of laws and beliefs around it.
Yes. The atmosphere gets thin out at the edges, but there is no hard line where the soft vaccum of space starts and atmosphere ends.
Even once you are outside any influence from a planet's atmosphere you have the stellar wind. Beyond that there is still interstellar gas. Beyond that there is the intergalactic medium. You can check out the desnities cited on wikipedia for each but none of them are zero.
There is simply no getting a good hard vaccuum in this universe and, hence, anything moving in the universe has to deal with the fact that it is going to smack into some amount of matter in its journeys. Being near to a big puffy ball of matter just exacerbates that.
So... yeah. Orbit involves atmosphere no matter how you slice it. Just a question of how much
There is an extravagant claim.
IBM researchers are claiming a huge breakthrough in spintronics, a technology that could significantly boost capacity and lower power use of memory and storage devices
But that isn't really even the worst part. It might be true, it might come to pass. Fine, fine. Don't gush about it for half the article, or if they insist on gushing then at least lay out the chllenges and technical details needed to get there.
Sorry I seemed as though I don't appreciate their work. I do. I just want more than a friggin advertisment for an article.
Likely not, or not like they claim. Stories like this remind me of Maxwell's Demon. It seems to violate the rules, allows for unlimited energy! Except until you realize that the demon can't be run for free. They claim the breakthrough in stability of the spin states and neglect the cost in space and energy in everything else around it.
Stop this sensationalism! Give me some science on it and tell me some more details. How do they generate electrons with a single spin? How about a blurb about spintronics already being used in modern hard drive read heads? Cut the nonsense and tittilating lies about promises of the future and tell us the details.
Geez
To be fair the grand parent mis spoke. It *is* a block level cache in front of one or more other block devices. Many devices can share one cache and, I think, vice versa. I'm going to try and get it compiled and running.
Okay, instead lettuce discus alternatives
What is faster but still includes strict ahead of time (dancing around the word compile time, since a JIT can eat source about as well as some intermediate format) type-saftey, GC, safe arrays (or, better, collections of some sort), and is object oriented? I've not done colmparative research but I'd immagine something like C# might fit the bill, but considering that I don't develop on Windows I suspect be subject to a less polished runtime environment. I don't expect python would be faster, but I'm open to suprises.
Last, if it helps, I wasn't taught Java in college. Heck, it is the first OO language I learned (self taught) and I went years thinking it was the scum of the Earth. Turns out that I found some good stuff there. Heck of a lot faster than perl and easier to code up solutions to Project Euler problems in. Missed some tricks from C, but once I learned how to properly program in an object oriented fassion things got a lot easier. Just don't want you to think I'm a Java zealot.
I use that every day at work and home. Really like it.
Others talk about Mint or Fedora and a few others. In the end it really comes down to the evil that you know. I know Debian, ergo I know a great deal about Ubuntu.
do two million string comparisons
Naw man, not even that. You could use a trie and perform a single search across any number of strings in O(n) time relative to the length of the string with early bailout when the string you are attempting to match diverges from the set you are matching. You can even do some optimizations on your trie after it is built so that the leaves contain the unique "tails" of strings.
OR you could even use a hash table and do the lookup in amortized O(1) time
Very very fast indeed to match your gusses against a set of unsalted hashes
I've found XFCE to be a VERY sweet spot for me as well. I use the default WM, just heard of OpenBox via this thread.
My favourite thing is raw speed. Absoloute unquestioning speed. XFCE doesn't get it my way, it doesn't take time to play an animation whenever I do something. It snaps to attention and that is a BIG deal when I'm developing. Alt-Tabbing around, switching virtual desktops (with keyboard shortcuts, natch), raising and lowering windows, etc are all things that should happen fast. The next screen update if possible. The other desktop environments have forgotten that. I like animations and all the eye candy at first, but when I went to get something done they just got real annoying. Not to mention all the things that they want to change just... because? I don't know.
Unity wants me to change my workflow, lack(s|ed) basic configuration, has the "unified menu" (really hate those) and a whole slew of other problems that I never found because when I realized it wouldn't let me launch more than one instance of an application (a terminal, for example) without performing some ritual (I never found out how) I restored from backup as quickly as I could. Unity, in my experience, is slow braindead garbage designed with goals nearly orthogonal to my own needs.
Gnome I've not tried since it arrived stillborn in Ubuntu 11.10? (I think? It crashed for me hourly. Didn't take long for me to change when that started). The last time I looked at KDE it simply didn't give me controls to do certain things, forget what but it was keyboard shortcuts for window management. It might have been virtual desktops but I could be wrong. I like to be able to swtch desktops with *absoloute* keyboard shortcuts instead of relative ones. I don't give a half a rat's tail about the "geometry" of my work spaces. Hint: There isn't one! Its all just an abstraction! I don't want to have to give a moments reflection on "where I'm at" in my virtual desktop space to know how to get to my "destination"! I know that I want to get to virtual desktop 3 so I hit ctrl+alt+down and I'm there. I make habits of putting certain things in certain places so it is reflex to jump to the right place to find them, no thought required and no distraction from my train of thought.
Anyway, KDE seemed incomplete. Lack of controls that irked me (and I DID try. I like the look of it and I recall it being speedy enough. Just felt like I was typing one handed, for lack of a better analogy)
XFCE fit the bill for me in every single way. Right now everything else seems like a pain in the neck that is trying to get in my way, change my workflow to a painfully slow one, or is jsut plain broken / incomplete.
or .net or java or any common application like firefox or chrome. Modern development doesn't free memory, it restarts/launches a new process. Garbage collection has been a joke since before we started measuring ram in gb instead of mb
I'm going to go with ignorance over malice on this one. Even a modest (processing or I/O limited, as opposed to blocking) application will churn many megabytes of non-stack-alocateable memory per second for all but nearly trivial tasks. Much much more very often (hundreds of megabytes a second in bursts or some specific tasks). You'll run out of real memory before you can do most things.
Now that could be handled by explicit memory management, but that adds a lot of work and a whole new class of bugs. Lots of languages would have to the stripped to their core to replace the GC mechanism with explicit memory management. Ruining milenia of man years woth of code in the process. Also there are some incredible data structures built on top of CAS instructions which don't require locks to be thread safe, relying instead on so called atomic instructions for correctness. This can unchoke some of the toughest bottlenecks to crack in a large application, but it is nearly impossible to do correctly with explicit memory management especially once complex (read: useful) data structures start piling on top of each other. The scope of the problem spirals out of control.
Last, and best of all, GC can (CAN but isn't always) be cheaper than explicit memory management. It goes like this:
Allocate a few new objects on the heap, making a mmap call for each. Mmap does some really intreseting things which I'll skip here and returns you a word aligned chunk of memory at least as large as the one you requested and ALSO does a bit of bookeeping so that later (or concurrent!) calls to mmap and free can, well, manage memory (in concert with the OS. More incredibly intreseting details and subtle elegant solutuions here. Really. Read up on virtual memory and browse the GNU C-lib's documentation on memory management)
You make use of these objects and free them (becaue otherwise you run out of memory, see above). Free costs cycles to call. It has to work with mmap and other free calls to do bookeeping and make sure your program's heap is more than just a byte array free-for-all.
In a GC system the allocation can be deadly simple, far simpler than malloc. Check out all the various GC schemes (G1GC in Hotspot 7 is a good one and I've found it easy to understand on a conceptual level) They know where the free bytes are and allocate against them without much regard for saving every byte of space and calling malloc very rarely, jsut stuffing things where they fit. They can do this because the generational assumption holds. Most objects die young. When the GC cycle comes around a block of memory, regardless of the number of objects it holds, can be freed with perhaps a single byte written into memory. The even better part is that most "precise" GC systems run in time relative to the live objects, not the dead ones. This means that even if free ran in a single instruction and didn't blow out a single line of L2 cache the GC system can take less time. It often takes more effort to trace the heap from the roots, but not always. Probalistinc instead of hard guarantees and incremental instead of continious, but it gets you a lot of freedom and a TON of opportunities to exploit parallelism (manual memory management in non GC languages on objects touched by multiple threads can be tantamount to writing your own GC. incredibly slow or worst: wrong (as in incorrect, not morally))
So GC. Yeah. Heck of a thing. Really, I'd say, makes computing and programing as we know it possible. Heck, even GCC uses a GC.
I cannot recall the last time that I noticed things being slower internet-wide (indicating a bottleneck relatively nearby as opposed to at a peering node), but I'm certain that it happens in areas that are more densely populated and/or more tech savvy.
So long as the ISPs are turning "record profits" (not that they said comcast is, but the cell companies are) then this problem is one they created for themselves. Don't maintinan a level of service to customers that they expect despite having ability to pay for the needed upgrades (or some, at least)? Expect to loose customers.
I'm not against paying for my bandwidth. I'm against being charged more than a fair price for my bandwidth. If that means they low balled themselves and want to charge more, then ok. So long as it is fair. I know that the dollar per gigabyte or more that they charge for overages is WELL past the raw cost of bandwidth.
I hope I make it clear that I don't want them to be screwed and I don't want to be screwed either. I think that if they make this move they will drive their own profits are our expense and to the detriment of the Internet. Perhaps not, but cell phone plans are a good indicator. Let them charge by the byte, but make them charge fairly. Too much to ask?
Last thought: most ISPs are monopolies or duopolies (sp?), so they have to be watched like hawks so we don't suffer.
I agree, here is why. First lets look at the part of the summary that really sums this up:
while wireless providers are reaping record profits by charging based on usage, similar to the way utilities charge for electricity
The argument there is that they want to make more profits. More money. More for the sake of... more? There was a comment above stating that cable companies need the money to innovate, and I respect that. I also respect the fact that profit for profits sake screws over people, stiffles anything that challenges it. The world abounds with examples, and the fact that some cable companies feel the need to take municipal fiber projects to court to stop them is evidence enough of that (even though that would free them from the burden of maintenence of the last mile and still allow them access to charge people money. They know they cannot compete or else they'd gladly hop on to the freely provided (to them) fiber line and continue on with business)
Another thing to point out is that electricity takes exactly a certain amount of effort to generate, and every joule used requires some fixed amount of fuel to be burned, uranium transmuted, etc etc (and even wind and solar have huge base costs and ongoing costs due to the fact that they are bursty in nature). It is much more complex than that with line losses and the like, but on the large scale average it is some fixed multiple number of Joules generated to every Joule used. No more, no less.
Now then, how much does it cost providers for their bandwidth? Well they do have to recoup the costs of installation, ongoing rate of technological advancement, and the ever growing price of labor (in theory / I wish). Once those costs have been covered there are still the settlement charges / peering agreements with other network providers. I don't know what those are.... but they aren't friggin $1/GB. Also with many of the largest services scaling out to dozens of sites across the nation / world so that they are closer to their customers (Akami, Amazon (and all their partners), etc) the number of hops that need be taken are small. 0, 1, or 2. Traceroutes to many popular sites indicate that (from comcast in MI at least) there is one last level hop to the other network very near to the destination and that is it.
So perhaps I did have this wrong, come to think of it. Perhaps there is a small variable cost to it all that varies with useage. Charge me some small fixed multiple of your settlement costs for the bandwidth on the exit nodes I use and some small fixed fee to aid in innovation and advancement of the network. Also, and lastly, if you want to compare yourselves to the utilities then you need to act like one. Not sure on all the laws, but I'm pretty sure that the laws regarding phone and electtricity are pretty inhibiting. Really don't think that they want that. They just want the profits. Careful with that bottle, I hear genies are hard to get back in.
That isn't a key, just the length of rotation.
I didn't forget about the mathematical crptoanalytic attacks, I just want it to be well understood that the length of the key isn't nearly as important as the math behind it.
Crap algorithms, or extremely good attacks against good algorithms are THE arms race, not computing power. That said I'm looking forward to having some algorithms within the next few generatiions that are well beyond our ability to crack. Also even, say, AES with increased rounds tends to break attacks. It is just that a balance between security and speed must be struck.
No, I'd not seen that. Very interesting. I eat that stuff up. Thanks.
=D Yes, yes I was. I meant to do things like read over the comment and check it for grammar and make that point, but lunch was already over. Such is life!
Considering the (mostly) invincible state of good encryption, this seems unnecessary. Sure, it is a fun idea, but not a practical one.
No encryption is invincible. Especially 5 years from now... Computing power has advanced to the point where you can just brute force "invincible encryption" from a few years back...
A few have pointed out that the keys are too large to brute force. I figure you out to know why that is: http://everything2.com/title/Thermodynamics+limits+on+cryptanalysis
That is a good little write up on the subject. Short, sweet, and easy to follow. It demonstrates that non quantum 256 bit keys are safe from brute force attacks for... ever.
Two wrenches (one esoteric, one practical): Reversable Computation and Quantum Computers.
First the "practical" one, Quantum Computers. The algorithm for searching an unsorted database for a key is Grover's Algorithm. This gives a speed up of O(N1/2) and a space complexity of O(log N). For a 256 bit key this gives a time complexity of 2**128 and a space complexity of 78. Now, that time complexity will kill you. Move to a 512 bit key and we are back to 2**256 time complexity (jsut like in the linked article). The space complexity goes to 155. It might not seem like a big deal, but adding another qbit to a quantum machine isn't trivial. In fact it is properly hard, and gets harder for every extra qbit. also that space complexity is a multiplier, not a count. you need log N * or something along that scale (Big O notation demonstrates the rate of growth as things go to infinity so small problems can be dominated by other factors till they "scale up"). Obviously even quantum computation isn't going to help crack a 256 bit key and a 512 bit key will restore the same level of security even IF they could be built large enough and numerous enough and fast enough for the 256 bit version (LOTS OF IFS and with an easy out. As pointed out increasing an encryption key's size is relatively trivial)
Now for the one that caused me some trouble, Reversable Computing. Fancy way of saying that the computation is reversable with no energy expended after being performed and reversed (actually arbitrarily little energy appraoching zero as closely as you care to come... kinda. Physical devices pose practical problems, but let us se that asside for a moment). This is a theory, and a good one. The problem is that you need to drive through all of the states. Let us assume that a computation takes one plank time on our perfect reversable computer (this is impossible, of course. It would be far higher even with a "perfect" device, but this is a lower bound given to us by nature). You need 1.4 * 10**16 time the current age of the universe (1.979 * 10**26 years) worth of computer time to go through all the states. Average is half that to find the correct key. Now you'll want to parallelize this computer to get to that (wholly impractical) time faster. How many can you build? How large are they? I'll leave it as an exerccise to the reader to determine how many you might be able to construct before they collapsed into a black hole. Also: 1 plank time is a few dozens of orders of magnitude smaller than any computation done with matter can achieve. It takes 4.48*10**20 plank times for a photon to pass an electron (if wolfram alpha is being nice to me, that is). Scale your time to be, say, the same as the time it takes a photon to cross your theoretical perfect reversable computer and then work out how many you need to complete the cracking of the key within a reasonable time. You'll get a black hole or incredible distances beyond the mortal ken.
Conclusion: Brute forcing any appreciably sized cryptographic key (512 bit or greater) will never, ever be possible no matter what happens with technology so long as computers are made of matter and compute in space. Period.
256 bit keys will remain equally unchallenged until we can create and power quantum computers the size of grains of sand trilions at a time.
Take that Moore's law
I've not read the paper yet, but it makes sense from a certain standpoint.
A single high dose causes massive widespread damge. Cells die, immune system ramps up, and rapairs get underway. A cell that might have become cancer dies in a scab, or fall off, or is cleaned up in some way amoung the countless others. Low level raditon damages just a tiny bit. Not enough to cause a reaction or massive cell death. This gives each cell that could become cancerous a better chance to live and become a problem.
Not sure if that is the mechanism (or if they een identified a mechanism yet) but it smacks of truth.
As the summary surmises, a unified architecture could make it easier to build in a common backdoor for spying.
FTFA
...a ubiquitous, always-open backdoor that can be used by Chinese intelligence agencies. The Great Firewall of China is fairly easy to circumvent — but what if China built a DNS and IP address blacklist into the hardware itself?
This is utter and complete nonsense. There is hardly a shread of logic in making this argument.
It is an instruction set. You know, add register 1 to register 12 and store in register 1. Copy Register 1 to memory location 0xa3546f00. Things like that. In what world could an instruction set and basic outline for the architechure (which is the system built around the core instruction set. Memory interfaces, cache rules, chip to chip protocols, etc etc) be capable of a backdoor?
Built in blacklist of IP addresses? How does that work? Blacklist an entire subset of the 32 and 128 bit integers? Good luck running the system! I'll leave it as an exercise to the reader to try and predict the failure mode of there. Some others later inthe thread are talking about this making it easier for black hats by way of making their code portable. Portable code does make their job easier, but that doesn't make the system built on the ISA identical. It also doesn't make the chips themselves identical. A flaw in one chip or one system built on this ISA does not affect the others. Flaws that are within the spec itself are harder to fix but are no more a risk than any other ISA.
There isn't a logical way for an ISA to be exploited for the kinds of things people are talking about. Even if they did, say, hide some nonvolitile storage on certain chips and try to identify AES being performed (for example) and store the keys away it would be trivial to obfuscate the AES code so it wasn't recognized. There are a near infinite number of ways to perform an arbitrary transformation on data, some are just used because they are faster and resistant to things like timing attacks.
To cut this short: anyone making arguments against a standardized ISA by way of invoking security concerns needs to really lay out their argument. I can't concieve of one good path of attack but I think I'm biased against the idea. If someone can provide a good and thought out example I'd be glad to hear it but I suspect that the security angle isn't a valid concern.
Atheism is being against religion while Agnosticism is having no religion.
I'm sorry, but that isn't correct. Atheism is simply asserting that there is no god. Agnosticism is a harder one to define but it is (in VERY brief) the idea that though there could be something beyond the mortal ken the details of it aren't anything more than pure speculation.
There are many shades of Agnosticism but there is only one of Atheism and that is "There is nothing supernatural." There is nothing in that statement that attacks anyone. People just feel attacked by it. I don't claim to understand why.
The problem with PGP/signed-emails is that you're putting the burden on the user.
Okay, I'll bite. (not TOO hard, mind)
So lets use PGP and still put the burden on the ISP / email provider / Facebook / anyone but the user
Lastly if someone savvy enough wants to use their own PGP key they can. Just get it signed by their email provider or some other such proof that they control that email address. PGP has this sort of thign already, very nice! https://keyserver.pgp.com/
Bonus points to PGP: since it already has the idea of a web of trust it can be used to GREAT effect. The email client could regognize that you seem to work with this person or email them a lot and ask, "Do you know this person in real life? Do you trust that this email is from them?" and sign keys that way. In this way one could have direct evidence that an email comes from someone that they can trust rather than just Google's big red rubber stamp. How novel!
We could really make this work with popular social media sites like facebook (I'm not a member, but lotsa people are) and show where this person is on your social graph (if they are at all)
So that is how we can use PGP, have it be as good AND BETTER than something new and not make the users do it. Sure there are more than a few flaws in the above but that is the basic outline.
the worst flooding in the country for more than half a century
Well there you go. They built a fab on a known flood plain. I wonder what the actuarial table for that looks like. That is assuming, of course, that WD even bothered with flood insurance...
I've seen a lot of bad JavaScript running around, but its problems stemmed from two or three places. None of these have to do with speed, not for as long as I've been using it professionally.
First is / was the lack of standards which has been remediated by the likes of jQuery (I cite jQuery first and foremost because of my familiarity). The libraries that were around before these comprehensive projects was spotty, broken, and difficult to understand.
That problem is fading fast as new work is being done with the proper tools.
The real ongoing problem is just bad programming. Many scripts are created by non-programmers, inexperienced programmers, or ones that do not understand some of the features of JavaScript such as closure, the ways objects can be used and first class functions. Misunderstanding these features in concert with being a poor programmer means that the results of using it are less than acceptable or take much more effort than they should have. I didn't instantly understand everything the language offered myself and I look back at some of my older code and cringe. These days I actually find it a joy to work on something in JavaScript, it is a very expressive language but like any powerful tool it also can maim, hinder, or explode when mishandled. Same with any language.
Certainly there are a number of languages that have a larger set of features than Javascript, and some of those features should find their way into JS. However the missing tools rarely are missing capabilities. Just because you'd like a foreach loop (for(in) isn't exactly what most people think of as foreach) doesn't mean that a for(i=0;i<arr.length;i++) is any less effective. Just because callbacks aren't intuitive compared to synchronous operations doesn't mean that they can't work almost as easily. Also they are in there for a reason, so that you don't have to worry about locking primitives and threading.
Those are just some examples of things I've seen people begging for in JS, or were caught off guard by (or just plain old didn't understand how to make effective use of it). So really, what complaints do you have for JS? Don't complain about bad code, that is everywhere. What things in the modern landscape of JS are lacking? How would you like them solved?
Yeah, I started making one point, then another... and then the thing got so long that I didn't want to erase it even though it no longer had much, if any, REAL semblance to a "reply"
o_O
I've gotten mod points while having mod points (re-filled before the expiration date). Not that I think this is rare or special but I'm curious as to your valuation of my opinion.
Where did I go wrong, in your eyes? I'm open to correction.
I've blacked out from helium inhalation before. It was 100% painless and actually so sudden than I did not recall my journey to the floor
This would be highly effective, humane, and dignified (as death can be). Less scary than drugs and guns, at least.
It may be, but there is a nagging question of that last moment or last moments. It should be painless, but who knows what the last few minutes of a mind mangled and slowly bleeding out are like... On the other hand some drugs have a nice clean predictable effect, at least on the conscience mind.
I'm not saying that my retirement plan doesn't have a caliber attached to it, nor that I believe the above has any bearing on truth... but it scares some people too much to cope with. Hell, OTHER PEOPLE committing suicide (with good reason, not a "tragic" suicide. I'll let that one be) to end their suffering scares people enough to erect massive sets of laws and beliefs around it.