you seem to know what you're talking about. can you explain this idea of memory compression, and what the heck the new activity monitor means? the old one made sense. Pie chart, showing free, available, and active. Now it's apparently using up all my memory I have 8 GB but it shows a line chart with a small amount of "memory pressure".
Sure -- I'll try to explain it the best I can. I won't make any specific judgements as to whether the new controls are better than the old, except to point out that there is more useful information in the new that wasn't present in the old. You're still perfectly welcome to prefer the old pie chart:). I'll try not to stray too far into the esoteric; if you need more details on a specific subject here, feel free to ask.
First a bit on the theory of memory management in general. In most modern operating systems like Mac OS X, each application appears to get it's own memory space, starting at '0' and running up to 0xffffffffffffffff (a fancy way of saying the addresses go from 0 to somewhere in the neighbourhood of 1.84*10E19 bytes of memory). To make things easier to deal with, the operating system breaks these up into chunks 4096 bytes in size called a 'page'. Now 1.84*10E19 bytes is probably way more memory than you have available on your system, but that's okay -- while conceptually an application can use any of that memory space for pretty much anything it wants, the operating system keeps track only of which pages have actually been allocated to each application. This system is called 'virtual memory': each application has its own virtually memory space to play with that doesn't interact with he memory of any other application. This is the value that shows in the "virtual memory" box in the activity monitor.
Now of course, you have real, physical memory in your machine, and you don't have a separate set for each application (in a physical sense -- you don't have one set of chips for Safari, and another set of chips for iPhoto, for example). The real memory has to hold the virtual memory somehow, and be able to map from one to the other. The operating system keeps a structure known as the Translation Lookaside Buffer that keeps this mapping for pages stored in physical memory. So it might have a bunch of entires for Safari, saying that the page consisting of what the application sees as memory area starting at 0x0000 and going to to 0x0FFF are stored in memory location 0x40000000 (the 1GB mark), the page of what the application sees as memory area starting at 0x1000 and going to 0x1FFF are in location 0x40096000, etc. In fact, the pages can be all over the place, and not even in order -- the operating system keeps track of all the used memory pages for the application wherever they are stored in memory. The amount of physical memory you have shows in the "Physical Memory" box of the activity monitor.
If you don't get all that, don't worry -- the main takeaway is that these pages can be stored in memory, and the operating system tracks of them when they are. Because we work with all of these pages, however, the operating system can also store them someplace else. Prior to Mavericks, this was always written to disk in the "swap" file (also sometimes known as a "page file"). This happened when memory pressure gets higher than the operating system can handle in RAM alone; that is, programs are asking for more virtual pages than the operating system can fit into real memory. To try to make room for new requests without unloading applications, the operating system will periodically go through the list of pages if memory pressure is high, find the least-used pages (you might have some application running that you put into the background and haven't touched in hours, for example, or applications which have reserved pages for things such as documents you haven't looked at in hours, even if you've otherwise used the application itself), and write them to disk. This is known as "swap". The pages of c
Linux had the likes of zram, zcache, and zswap for years before Mavericks.
zram was only merged into the Linux kernel in 3.14, on March 30, 2014 -- well after Mavericks was released. And it's more about using a portion of compressed memory for swap -- it's a compressed RAM disk for swapping to, and isn't the same as Apple's transparent page compression system.
zswap is much more akin to what Apple's Memory Compression scheme achieves, and it was merged into the Linux kernel mainline in kernel version 3.11, which was released on September 2, 2013, just a few weeks before Mavericks was released.
So you have my apologies -- I wasn't aware of zswap until now. If the topic comes up again, I'll ensure I only compare that feature to Windows (which AFAIK still has nothing like this available).
Do you know C? Any desire to implement such a feature in Linux? Seems like a good idea, and your claim of dramatic performance improvement has got me thinking. Perhaps this would be a good way to dip my toes into kernel hacking, and perhaps I'm not the only one thinking that.
Yup -- I even wrote an experimental real-time kernel for the Atmel AT90 a few years back.
To be honest, I have considered it, as I'm also a Linux user (OS X makes a fantastic interface into a bunch of headless Linux servers that do the grunt work around here), and I'd love to have this support there as well. I currently have 285 processes running on my iMac, and while I'm not really putting a lot of memory pressure on the system (7.97GB used out of 8GB, with only 8.76GB of virtual memory active and no swap), however OS X has still managed to compress 395.6MB of memory, and I haven't noticed a thing. Indeed, it's probably saved me from having to page to disk at the moment to the tune of roughly 200MB. That's a lot of pages available for use pretty quickly without the need to load them from disk first.
What's stopping me? Time. I used to do a lot of Open Source software development, and have had a few projects of my own over the years that have seen some moderate success, and would like to contribute more to the community -- but that was before I had a wife, and before we had a child who has a lot of medical needs. After a long day of commercial application development, and driving my daughter from one appointment to another six days a week, my hobbies currently reflect my desire to get out from behind the keyboard and do things outdoors.
I lament that things have gone this way -- there's nothing more I'd love than to do some deeper research on the type of compression algorithms Apple is using in their memory compression scheme (WKdm, re-implement it as part of the Linux kernel, look at algorithms to quickly identify candidates for compression, and all that good stuff. I get giddy just thinking about it -- but the last thing I need on my plate right now is another project.
If someone decides to take this up, they have my moral support. Maybe in a few years I can start working on interesting stuff like this again, but right now it would probably burn me out to take on something of this size.
I like the idea of free regular releases too. But the reality is that they don't seem to be able to break much technical ground with these. Like moving to ZFS or integrating virtual reality (kinda serious).
While it is disappointing that their push towards ZFS fizzled and died, OS X 10.9 did make some serious technical improvements under the hood that go well beyond the competition.
Compressing and decompressing memory pages on the fly being one of them. It's a much (much!) faster operation than paging to disk, and can significantly reduce memory pressure. Many users felt like they had received a free hardware upgrade -- it can be pretty dramatic. AFAIK neither Windows or Linux have transparent page compression like this. Timer coalescing was another significant kernel-level improvement (although certainly one that had been done before on other platforms). App Nap makes some significant adjustments to how threads and processes are allotted compute cycles. The overall effect can be significantly lessened power requirements, particularly on Apple's laptops, leading to increased battery life -- something no other OS vendor that I'm aware of is focussing on in the PC space (mobile being a bit of a different story, of course).
Perhaps not whiz-bang flashy stuff that end users notice first, but some pretty solid under-the-hood technology none-the-less.
My personal stance on the legitimacy of the death penalty is a separate issue from how we'd implement it, if it is too be done.
While I support the death penalty, it would be an extremely rare event, confined to only applying to those so dangerous that allowing them to live will, statistically speaking, result in more death.
Keeping such offenders confined for long periods of time in a proper special handling unit serves the same purpose, but with one less death (the offenders).
Note that I don't have any sort of "soft spot" for dangerous offenders. What I'm more concerned about is a) what it does to those who have to complete the sentence ("the executioner"), and b) what message it sends to society at large. Capital Punishment is less about justice than it is vengeance; I often see a certain harshness in general with many people in the US population when it comes to the penal system that doesn't seem to exist as much elsewhere in the Westernized world, and it's easy to see lots of instances of mass murderers in the US who seem to feel it's their right to go out and take out anyone who has ever wronged them as "retribution" (the case of the recent Santa Barbara rampage would be a good case in point). That's certainly not to say that there aren't other things significant wrong with such people, but when your society glorifies death as a solution to problems, would it be all that surprising to find that maladjusted children who grow up in such a society take that message in the wrong direction?
Back to a) however. You can't execute someone without an executioner, and unless you find an otherwise law-abiding psychopath to do the job, it messes people up. As mentioned in my last post, the Arizona warden who officiated their last gas chamber execution threatened to quit if he ever had to do it again. I recall reading recently that Ronnie Lee Gardiners executioners all asked never to be asked to perform that duty again. Back when many countries still had professional executioners (many less than 100 years ago), many of them wound up being alcoholics with PTSD who had failed marriages and died relatively young (John Robert Radclive, state executioner of Canada between 1892 and 1899, started drinking after one particularly disturbing incident where a sheriff had him hang a man who had died on his way to the gallows; he died of alcohol related illness at the age of 55. On capital punishment, he later in life had this to say: "I had always thought capital punishment was right, but not now. I believe the Almighty will visit the Christian nations with dire calamity if they don't stop taking the lives of their fellows, no matter how heinous the crime. Murderers should be allowed to live as long as possible and work out their salvation on behalf of the State.").
I'm also not a fan of the idea of "the state" killing its own citizens -- for any reason. But I won't get into that at the moment.
That pretty much exhausts what I have to say about the subject, other than to thank-you for the polite and reasoned discourse. It's been interesting to see where our stands on the subject both intersect and diverge. I'm sure we could both agree that the ideal solution would simply be for our fellow citizens to no longer rape, torture, or kill others, mooting such debates in the future.
Thus the orally administered anti-anxiety medicine.
I would think that would be its own can of worms. Ever try to administer oral medication to someone who doesn't want it? Besides which, anti-anxiety medication doesn't prevent you from having free will -- you'd still probably try to hold your breath if you're still conscious, particularly if you didn't want to die. The fight to live is quite strong for a lot of people.
Can't make anything entirely foolproof, but it's a lot easier to flood a room with N2 than it is for inexperienced people to find veins correctly.
Gas can be tricky to handle -- chambers have to be adequately sealed, and then have to be properly vented before anyone can enter the room to retrieve the deceased. In the case of the traditional hydrogen cyanide previously used by the US in gas chambers, the chambers had to be scrubbed by personnel in safety gear and oxygen masks using anhydrous ammonia before it would be safe to enter. Obviously this isn't a concern with nitrogen, but you still can't just open the door and walk in. The room would still need to be vented into the wider atmosphere prior to entry, and replaced with normal air. But I agree -- with adequate engineering and routine maintenance, it's probably more foolproof than sticking a needle in a vein.
Then again, the whole concept of capital punishment seems barbaric to me. Then again, I live in a country that hasn't executed anyone in over 50 years. Americans spend so much time, effort, and money into trying to figure out the most humane way to kill people, the endless court cases and legal wrangling, the inequity in its application, the number of people later exonerated as having been innocent, and for what? It has no deterrent value. It doesn't bring lost loved ones back to life. It has a tendency to negatively mess with the heads of the people carrying out the sentence (Arizona, for example, changed their primary method to lethal injection after the warden of the prison that carried out the last gas chamber execution in that state threatened to quit if he ever had to officiate over another gas chamber execution). The best solution to the problem isn't try to to find yet another way to kill people -- its to stop killing people in the first place.
If it is illegal to kill, it should be for the state as well. Anything else is hypocritical. Period. It is not about justice, nor does having capital punishment provide a deterrent that significantly affects violent crime rates.
It's always amazed me that Americans, who are one of the absolutely most distrustful of their governments in the entire westernized world, are often more than happy to permit said governments the power to kill their fellow citizens.
I heard on the radio just this morning that due to the supply difficulties, Tennessee is passing/has passed a law to bring back the electric chair. Now that's humane!
I've never been able to understand how the electric chair was every able to surmount "cruel" and "unusual". Certainly the very first use of the electric chair would have to, by definition, constitute "unusual", and it only takes a few uses to see that it is substantially cruel.
- It's completely painless and humane; one's physiology doesn't notice the lack of oxygen so the person just goes to sleep and then dies. People who were revived from asphyxia like this reported they had no idea until they woke up
I'm pretty sure they would have had some idea had they been marched manacled into a steel-walled room with sealed windows and an airlock-style door, strapped into a chair, and told they were now about to die by nitrogen asphyxiation.
It's potentially painless and humane when it's completely unexpected, but you can't say that about someone undergoing the ritual that is capital punishment. There is no correlation between the two.
How many young women and girls were kidnapped, raped, tortured, and eventually killed by Ted Bundy after the state of Florida lit him up like a Christmas tree?
Coincidentally, it's the same number as were kidnapped, raped, tortured, and eventually killed after the state of Florida put Bundy in prison.
I'd also note that apparently none of the 66 people executed in Florida since Bundy were particularly deterred by Bundy's death.
Harder to calculate, of course, is how many murders have occurred in Florida since by people raised with the belief that murder == vengeance == justice via the example of state-sponsored killings like Bundy's.
Well at least Professor Knuth is still alive, and I don't [YET!] need to refer to the poor man as spinning in his grave.
AC posted an excellent response here.. In the event you're filtering AC's, take the time to read it, as it's completely on point.
I would add is this: if you've never completed a Masters thesis or Doctoral dissertation, just try submitting one to your committee without adequate citations. If you write somewhere "I used well-known algorithm ABC because of XYZ" and you don't have a citation for that algorithm, you'll be sent back for rewrites pretty quickly to add appropriate citations.
By way of example, in my Masters thesis several years ago, I mentioned Unix diff, without a citation. Why would this need a citation? It was mostly mentioned in passing, and every computer scientist under the sun knows what diff is, right?
Committee came back asking for further citations on a few things, including diff (which, for the record, is "Hunt, J. W., and McIlroy, M. D. An algorithm for differential file comparison. CSTR, 41 (1976).")
Using citations isn't an appeal to authority. It's akin to using an existing library call in programming. Just as you wouldn't roll-your-own quick sort algorithm when coding, someone writing a scientific paper doesn't re-invent every algorithm ever derived. You find someone who has already done that, and you cite them. The AOCP is useful in this regard due to the sheerly massive number of algorithms Knuth describes. It's hard to go through a Computer Science program and not use one of these algorithms. Knuth himself likewise cites all of the algorithms in the AOCP, so it's not an appeal to his authority, as he delegates that out to others appropriately. It's simply useful because instead of having to track down papers written in the 1960's on your own, you can cite Knuth who cites those papers for you. This is why the AOCP is useful for a graduate student.
FWIW, I cited Knuth. I needs an algorithm to calculate variance, and another on the Box-Meuller transformation. Art of Computer Programming had one for each, which I adapted for my needs, and cited appropriately.
They're kind of dated, because few people do sorts and list manipulation at that level any more. I have both an original edition and a current edition of vols. 1-3, but haven't looked at them in years.
Sure, for the average programmer these days who relies on existing libraries, these probably aren't all that useful.
As a grad student working on a thesis and other papers however, Knuth's books are invaluable for citations. Need to defend the use of a specific algorithm? Cite Knuth. His books were invaluable citation material for when I wrote and defended my thesis a few years back.
This is, of course, good science. You may not need to use Knuth to program your own B* tree, but you have a pretty much universally accepted reference for citation if you use one in your research.
I call BS, it would only take that long if it was a low priority job. If they were told in no uncertain terms to sort it out or be kicked out of the internet I'm sure they could deal with it much quicker than that.
Perhaps, but it's still potentially going to be a very large, costly job, which probably won't gain enough addresses to make it worth anyones while. It would still take them at least a few months.
The problem here is how many organizations with a large allocation (like a/8) have allocated these addresses within their organizations. Typically, they don't go around doling out the addresses in a completely contiguous manner -- they may have done something akin to setting up a/16 for each building (they would have received their address block before CIDR, and thus would have had to spit things along glassful lines), out of which different labs may have got a/24 to use however they wanted. Readdressing all of these and setting up new routes for all of these subnets is a big job for a large organization like MIT. You'd have to combine subnets together, which would change the routing topology, and compress everything down into a few/16's to make the returned address space contiguous.
You could return non-contiguous space, however this has a serious negative impact on world-wide routing tables. You can't just add a few million/28's to the global routing table (that is, you can't just say "hey, here's a few hundred thousand non-contiguous groups of 16 addresses we aren't using, let's give them back!").
And after putting all that effort into making their address space more contiguous (while still allowing room for future growth), they'd probably wind up with enough addresses to extend IPv4 for a month or two at best -- at which point, they might as well have put the effort into migrating to IPv6 instead.
Giving unused address space only slightly delays the inevitable. It does't postpone it indefinitely. If you're going to do the work, you might as well do it right the first time and get everything running on IPv6.
Once we finally move on to IPv6, can we all have our own static IP?
That's a good reason to push it.
Actually, you get a prefix -- either a/48 or a/64, from which you can assign your own addresses. A/64 is enough to give you more addresses than the entire public IPv4 Internet. How you use them internally is up to you.
if anyone back then had seen this coming that clearly, they'd have just used 64 bits to start with and we'd be fine for the next thousand years.
Exception that on a 8-bit computer running at only a handful of MHz, using a 64-bit address right off would have entailed a performance penalty. There would be more packet overhead, and more address processing required.
This may not seem like a bad compromise for clients, but you have to consider what would have happened to routers in the 70's and 80's had 64-bit addresses been the norm. Won't anybody think of the routers?
"Autism" as it is currently used was defined in 1938. The first vaccines were developed in the late 1700s, however, the first of the components of what are now the MMR vaccine were introduced in 1963 with the first measles vaccine (Timeline of Vaccines)
.
They tried that crap on my own kid who didnt behave well in school. Instead, I tried more discipline and a stricter policy and now he's a "Straight A" student.
Really, so how many times a day should I beat my autistic daughter who is completely unable to speak because of her condition? Do you recommend using paddles, straps, or electrocution? Maybe I should just lock her in a closet and feed her a bucket of fish heads once a week? Please Doctor Anonymous, share your wisdom!
Well, not necessarily. There is no scientific way I could think of that lets us tell what happens with our "soul" after death.
Of course not. You'd have to prove the existence of a soul scientifically before you could even start to answer such a question.
It would be no different than asking a zoologist about the mating patterns of the one eyed, one horned, flying purple people eater. All research is built upon the foundations of prior research; as there is no scientific evidence for a one eyed, one horned, flying purple people eater, there is no logical place to start in trying to deterring what it's mating patterns might be like.
You have to be careful with such statements, as they're the sorts of arguments people of faith like to try to use against science (i.e.: "But science can't prove/disprove X", where X is some construct for which there is no scientific basis in the first place, but which the speaker treats as a given). This is a fallacious line of argument, one which nobody can ever actually learn anything from.
I was using unblock-us for a while, and it worked flawlessly. I only stopped as there wasn't enough additional content on US netflix for me to justify paying for it.
IPv6 tunnels are fortunately free. And as I mentioned, if you have router support for it, then every Mac, PC, and Linux box in your house will automatically be provisioned for end-to-end IPv6 access to Netflix (and anything else IPv6 accessible on the Internet), along with any set-top boxes which may use IPv6 (Apple TV apparently does, but I don't own one to be able to confirm this).
Canadian Netflix is pretty crappy compared to the American version and we don't have much else. It's not like the content companies want to sell their products here, at least in an easy to purchase downloadable format
Pro tip:
Netflix is fully IPv6 enabled, which is actually great news for Canadian Netflix users. Just setup an IPv6 tunnel to the nearest Hurricane Electric tunnel server farm (if you have a router that supports this, you can enable IPv6 invisibly for your entire home quickly and easily. Apple's routers all support this out of the box, for example), and presto -- you'll have US Netflix.
Note that this only works on IPv6-enabled devices, of course, so your set-top box or smart TV may not benefit. And you have to ensure the browser you're using properly supports Happy Eyeballs so as to ensure it will prefer IPv6 over IPv4 (Safari on Mac OS X since Lion uses an algorithm to prefer whichever connection is fastest in responding, which can cause it to initially load Netflix via IPv6, showing all the US content you can't otherwise see in Canada, only to be blocked when you actually try to view it if OS X switches down to IPv4 for optimization purposes).
As I have IPv6 tunnelling enabled right at the router, there is no software to be installed or anything that needs to be configured anywhere once this is setup, unlike VPN/proxy solutions. It's also fast -- even though the IPv6 is tunnelled, I can't perceive any speed issues when watching content this way.
$5000 per infringer (not per infringement) is the maximum. The minimum is $100, and I've heard word that the court is more likely to impose the minimum. The plaintiff either has to prove actual damages, or can apply for statutory damages, between $100 - $5000 at the judges discretion. The copyright act stipulates that the judge needs to consider whether the infringement was for non-commercial purposes, whether it was for private purposes, and whether it would constitute hardship for the defendant to pay.
In addition, the court also found that Voltage Pictures has to pay TekSavvy for all costs associated with gathering the data, and that they'll be limited to $5k in damages per person found to infringe.
SAT is clearly NP complete, and clearly the existence of good SAT solvers is not a proof that P=NP. This means that there will be relatively small problems that SAT solvers won't be able to solve.
Enjoyed your post, but have to correct a small quibble.
From a mathematical standpoint at least, being NP complete doesn't imply that there are some problems that are unsolvable; merely that they won't be solvable in any reasonable amount of computing time. If you have a few hundred billion years of compute time available, a SAT solver might be able to solve even those small problems you mention. Of course, from a practical perspective, none of us are going to be here to get the result in those situations, making them unsolvable from a practical standpoint.
(On the other hand, once the billions of aeons roll by and the machine goes 'ding' and spits out an answer, we do know that we can verify it in poly time. Huzzah!)
While all of this may seem ultra-pedantic, there is enough confusion about NP out there that someone reading your post may get the idea that things that are NP-complete are unsolvable. They're not unsolvable -- we can typically fashion algorithms to solve them, simply that those algorithms run in nondeterministic polynomial time, and thus may have runtimes exceeding the expected lifetime of the solar system, even with every cycle of compute time ever invented pushed at it.
...unless, of course, someone comes up with a proof that P = NP, in which case all those NP-complete problems can be transformed into P problems. Sure, they might still take a few hundred billion years to get a solution, but at least we'd know how many hundreds of billions of years would be needed to get a solution!
It's really funny to think that Mac OS X, an OS for whom many Windows users think is primarily aimed at and is used by the least technically proficient users in the world, has had virtual desktops for seven years now.
So if Apple can figure out how to provide this feature, why can't Microsoft?
Yaz.
you seem to know what you're talking about. can you explain this idea of memory compression, and what the heck the new activity monitor means? the old one made sense. Pie chart, showing free, available, and active. Now it's apparently using up all my memory I have 8 GB but it shows a line chart with a small amount of "memory pressure".
Sure -- I'll try to explain it the best I can. I won't make any specific judgements as to whether the new controls are better than the old, except to point out that there is more useful information in the new that wasn't present in the old. You're still perfectly welcome to prefer the old pie chart :). I'll try not to stray too far into the esoteric; if you need more details on a specific subject here, feel free to ask.
First a bit on the theory of memory management in general. In most modern operating systems like Mac OS X, each application appears to get it's own memory space, starting at '0' and running up to 0xffffffffffffffff (a fancy way of saying the addresses go from 0 to somewhere in the neighbourhood of 1.84*10E19 bytes of memory). To make things easier to deal with, the operating system breaks these up into chunks 4096 bytes in size called a 'page'. Now 1.84*10E19 bytes is probably way more memory than you have available on your system, but that's okay -- while conceptually an application can use any of that memory space for pretty much anything it wants, the operating system keeps track only of which pages have actually been allocated to each application. This system is called 'virtual memory': each application has its own virtually memory space to play with that doesn't interact with he memory of any other application. This is the value that shows in the "virtual memory" box in the activity monitor.
Now of course, you have real, physical memory in your machine, and you don't have a separate set for each application (in a physical sense -- you don't have one set of chips for Safari, and another set of chips for iPhoto, for example). The real memory has to hold the virtual memory somehow, and be able to map from one to the other. The operating system keeps a structure known as the Translation Lookaside Buffer that keeps this mapping for pages stored in physical memory. So it might have a bunch of entires for Safari, saying that the page consisting of what the application sees as memory area starting at 0x0000 and going to to 0x0FFF are stored in memory location 0x40000000 (the 1GB mark), the page of what the application sees as memory area starting at 0x1000 and going to 0x1FFF are in location 0x40096000, etc. In fact, the pages can be all over the place, and not even in order -- the operating system keeps track of all the used memory pages for the application wherever they are stored in memory. The amount of physical memory you have shows in the "Physical Memory" box of the activity monitor.
If you don't get all that, don't worry -- the main takeaway is that these pages can be stored in memory, and the operating system tracks of them when they are. Because we work with all of these pages, however, the operating system can also store them someplace else. Prior to Mavericks, this was always written to disk in the "swap" file (also sometimes known as a "page file"). This happened when memory pressure gets higher than the operating system can handle in RAM alone; that is, programs are asking for more virtual pages than the operating system can fit into real memory. To try to make room for new requests without unloading applications, the operating system will periodically go through the list of pages if memory pressure is high, find the least-used pages (you might have some application running that you put into the background and haven't touched in hours, for example, or applications which have reserved pages for things such as documents you haven't looked at in hours, even if you've otherwise used the application itself), and write them to disk. This is known as "swap". The pages of c
Linux had the likes of zram, zcache, and zswap for years before Mavericks.
zram was only merged into the Linux kernel in 3.14, on March 30, 2014 -- well after Mavericks was released. And it's more about using a portion of compressed memory for swap -- it's a compressed RAM disk for swapping to, and isn't the same as Apple's transparent page compression system.
zswap is much more akin to what Apple's Memory Compression scheme achieves, and it was merged into the Linux kernel mainline in kernel version 3.11, which was released on September 2, 2013, just a few weeks before Mavericks was released.
So you have my apologies -- I wasn't aware of zswap until now. If the topic comes up again, I'll ensure I only compare that feature to Windows (which AFAIK still has nothing like this available).
Yaz
Do you know C? Any desire to implement such a feature in Linux? Seems like a good idea, and your claim of dramatic performance improvement has got me thinking. Perhaps this would be a good way to dip my toes into kernel hacking, and perhaps I'm not the only one thinking that.
Yup -- I even wrote an experimental real-time kernel for the Atmel AT90 a few years back.
To be honest, I have considered it, as I'm also a Linux user (OS X makes a fantastic interface into a bunch of headless Linux servers that do the grunt work around here), and I'd love to have this support there as well. I currently have 285 processes running on my iMac, and while I'm not really putting a lot of memory pressure on the system (7.97GB used out of 8GB, with only 8.76GB of virtual memory active and no swap), however OS X has still managed to compress 395.6MB of memory, and I haven't noticed a thing. Indeed, it's probably saved me from having to page to disk at the moment to the tune of roughly 200MB. That's a lot of pages available for use pretty quickly without the need to load them from disk first.
What's stopping me? Time. I used to do a lot of Open Source software development, and have had a few projects of my own over the years that have seen some moderate success, and would like to contribute more to the community -- but that was before I had a wife, and before we had a child who has a lot of medical needs. After a long day of commercial application development, and driving my daughter from one appointment to another six days a week, my hobbies currently reflect my desire to get out from behind the keyboard and do things outdoors.
I lament that things have gone this way -- there's nothing more I'd love than to do some deeper research on the type of compression algorithms Apple is using in their memory compression scheme (WKdm, re-implement it as part of the Linux kernel, look at algorithms to quickly identify candidates for compression, and all that good stuff. I get giddy just thinking about it -- but the last thing I need on my plate right now is another project.
If someone decides to take this up, they have my moral support. Maybe in a few years I can start working on interesting stuff like this again, but right now it would probably burn me out to take on something of this size.
Yaz
I like the idea of free regular releases too. But the reality is that they don't seem to be able to break much technical ground with these. Like moving to ZFS or integrating virtual reality (kinda serious) .
While it is disappointing that their push towards ZFS fizzled and died, OS X 10.9 did make some serious technical improvements under the hood that go well beyond the competition.
Compressing and decompressing memory pages on the fly being one of them. It's a much (much!) faster operation than paging to disk, and can significantly reduce memory pressure. Many users felt like they had received a free hardware upgrade -- it can be pretty dramatic. AFAIK neither Windows or Linux have transparent page compression like this. Timer coalescing was another significant kernel-level improvement (although certainly one that had been done before on other platforms). App Nap makes some significant adjustments to how threads and processes are allotted compute cycles. The overall effect can be significantly lessened power requirements, particularly on Apple's laptops, leading to increased battery life -- something no other OS vendor that I'm aware of is focussing on in the PC space (mobile being a bit of a different story, of course).
Perhaps not whiz-bang flashy stuff that end users notice first, but some pretty solid under-the-hood technology none-the-less.
Yaz
My personal stance on the legitimacy of the death penalty is a separate issue from how we'd implement it, if it is too be done.
While I support the death penalty, it would be an extremely rare event, confined to only applying to those so dangerous that allowing them to live will, statistically speaking, result in more death.
Keeping such offenders confined for long periods of time in a proper special handling unit serves the same purpose, but with one less death (the offenders).
Note that I don't have any sort of "soft spot" for dangerous offenders. What I'm more concerned about is a) what it does to those who have to complete the sentence ("the executioner"), and b) what message it sends to society at large. Capital Punishment is less about justice than it is vengeance; I often see a certain harshness in general with many people in the US population when it comes to the penal system that doesn't seem to exist as much elsewhere in the Westernized world, and it's easy to see lots of instances of mass murderers in the US who seem to feel it's their right to go out and take out anyone who has ever wronged them as "retribution" (the case of the recent Santa Barbara rampage would be a good case in point). That's certainly not to say that there aren't other things significant wrong with such people, but when your society glorifies death as a solution to problems, would it be all that surprising to find that maladjusted children who grow up in such a society take that message in the wrong direction?
Back to a) however. You can't execute someone without an executioner, and unless you find an otherwise law-abiding psychopath to do the job, it messes people up. As mentioned in my last post, the Arizona warden who officiated their last gas chamber execution threatened to quit if he ever had to do it again. I recall reading recently that Ronnie Lee Gardiners executioners all asked never to be asked to perform that duty again. Back when many countries still had professional executioners (many less than 100 years ago), many of them wound up being alcoholics with PTSD who had failed marriages and died relatively young (John Robert Radclive, state executioner of Canada between 1892 and 1899, started drinking after one particularly disturbing incident where a sheriff had him hang a man who had died on his way to the gallows; he died of alcohol related illness at the age of 55. On capital punishment, he later in life had this to say: "I had always thought capital punishment was right, but not now. I believe the Almighty will visit the Christian nations with dire calamity if they don't stop taking the lives of their fellows, no matter how heinous the crime. Murderers should be allowed to live as long as possible and work out their salvation on behalf of the State.").
I'm also not a fan of the idea of "the state" killing its own citizens -- for any reason. But I won't get into that at the moment.
That pretty much exhausts what I have to say about the subject, other than to thank-you for the polite and reasoned discourse. It's been interesting to see where our stands on the subject both intersect and diverge. I'm sure we could both agree that the ideal solution would simply be for our fellow citizens to no longer rape, torture, or kill others, mooting such debates in the future.
Yaz
Thus the orally administered anti-anxiety medicine.
I would think that would be its own can of worms. Ever try to administer oral medication to someone who doesn't want it? Besides which, anti-anxiety medication doesn't prevent you from having free will -- you'd still probably try to hold your breath if you're still conscious, particularly if you didn't want to die. The fight to live is quite strong for a lot of people.
Can't make anything entirely foolproof, but it's a lot easier to flood a room with N2 than it is for inexperienced people to find veins correctly.
Gas can be tricky to handle -- chambers have to be adequately sealed, and then have to be properly vented before anyone can enter the room to retrieve the deceased. In the case of the traditional hydrogen cyanide previously used by the US in gas chambers, the chambers had to be scrubbed by personnel in safety gear and oxygen masks using anhydrous ammonia before it would be safe to enter. Obviously this isn't a concern with nitrogen, but you still can't just open the door and walk in. The room would still need to be vented into the wider atmosphere prior to entry, and replaced with normal air. But I agree -- with adequate engineering and routine maintenance, it's probably more foolproof than sticking a needle in a vein.
Then again, the whole concept of capital punishment seems barbaric to me. Then again, I live in a country that hasn't executed anyone in over 50 years. Americans spend so much time, effort, and money into trying to figure out the most humane way to kill people, the endless court cases and legal wrangling, the inequity in its application, the number of people later exonerated as having been innocent, and for what? It has no deterrent value. It doesn't bring lost loved ones back to life. It has a tendency to negatively mess with the heads of the people carrying out the sentence (Arizona, for example, changed their primary method to lethal injection after the warden of the prison that carried out the last gas chamber execution in that state threatened to quit if he ever had to officiate over another gas chamber execution). The best solution to the problem isn't try to to find yet another way to kill people -- its to stop killing people in the first place.
Yaz
If it is illegal to kill, it should be for the state as well. Anything else is hypocritical. Period. It is not about justice, nor does having capital punishment provide a deterrent that significantly affects violent crime rates.
It's always amazed me that Americans, who are one of the absolutely most distrustful of their governments in the entire westernized world, are often more than happy to permit said governments the power to kill their fellow citizens.
I heard on the radio just this morning that due to the supply difficulties, Tennessee is passing/has passed a law to bring back the electric chair. Now that's humane!
I've never been able to understand how the electric chair was every able to surmount "cruel" and "unusual". Certainly the very first use of the electric chair would have to, by definition, constitute "unusual", and it only takes a few uses to see that it is substantially cruel.
Yaz
- It's completely painless and humane; one's physiology doesn't notice the lack of oxygen so the person just goes to sleep and then dies. People who were revived from asphyxia like this reported they had no idea until they woke up
I'm pretty sure they would have had some idea had they been marched manacled into a steel-walled room with sealed windows and an airlock-style door, strapped into a chair, and told they were now about to die by nitrogen asphyxiation.
It's potentially painless and humane when it's completely unexpected, but you can't say that about someone undergoing the ritual that is capital punishment. There is no correlation between the two.
Yaz
How many young women and girls were kidnapped, raped, tortured, and eventually killed by Ted Bundy after the state of Florida lit him up like a Christmas tree?
Coincidentally, it's the same number as were kidnapped, raped, tortured, and eventually killed after the state of Florida put Bundy in prison.
I'd also note that apparently none of the 66 people executed in Florida since Bundy were particularly deterred by Bundy's death.
Harder to calculate, of course, is how many murders have occurred in Florida since by people raised with the belief that murder == vengeance == justice via the example of state-sponsored killings like Bundy's.
Yaz
4. All evidence is that it's a fast, painless, and peaceful death.
Fast, painless, and peaceful if you're resigned to your death, sit or lie quietly, and inhale.
Slow, painful, and less peaceful if you try to fight it by holding your breath.
Of course either way the victim can experience convulsions prior to cardiac arrest, which is neither peaceful nor particularly pleasant to watch.
So in reality -- basically the opposite of what you posted.
Yaz
It's been done. They called the result "Canadians". Yaz
Cite Knuth... This is, of course, good science.
Well at least Professor Knuth is still alive, and I don't [YET!] need to refer to the poor man as spinning in his grave.
AC posted an excellent response here.. In the event you're filtering AC's, take the time to read it, as it's completely on point.
I would add is this: if you've never completed a Masters thesis or Doctoral dissertation, just try submitting one to your committee without adequate citations. If you write somewhere "I used well-known algorithm ABC because of XYZ" and you don't have a citation for that algorithm, you'll be sent back for rewrites pretty quickly to add appropriate citations.
By way of example, in my Masters thesis several years ago, I mentioned Unix diff , without a citation. Why would this need a citation? It was mostly mentioned in passing, and every computer scientist under the sun knows what diff is, right?
Committee came back asking for further citations on a few things, including diff (which, for the record, is "Hunt, J. W., and McIlroy, M. D. An algorithm for differential file comparison. CSTR, 41 (1976).")
Using citations isn't an appeal to authority. It's akin to using an existing library call in programming. Just as you wouldn't roll-your-own quick sort algorithm when coding, someone writing a scientific paper doesn't re-invent every algorithm ever derived. You find someone who has already done that, and you cite them. The AOCP is useful in this regard due to the sheerly massive number of algorithms Knuth describes. It's hard to go through a Computer Science program and not use one of these algorithms. Knuth himself likewise cites all of the algorithms in the AOCP, so it's not an appeal to his authority, as he delegates that out to others appropriately. It's simply useful because instead of having to track down papers written in the 1960's on your own, you can cite Knuth who cites those papers for you. This is why the AOCP is useful for a graduate student.
FWIW, I cited Knuth. I needs an algorithm to calculate variance, and another on the Box-Meuller transformation. Art of Computer Programming had one for each, which I adapted for my needs, and cited appropriately.
Yaz
Mod parent up. This is the correct response.
Yaz
They're kind of dated, because few people do sorts and list manipulation at that level any more. I have both an original edition and a current edition of vols. 1-3, but haven't looked at them in years.
Sure, for the average programmer these days who relies on existing libraries, these probably aren't all that useful.
As a grad student working on a thesis and other papers however, Knuth's books are invaluable for citations. Need to defend the use of a specific algorithm? Cite Knuth. His books were invaluable citation material for when I wrote and defended my thesis a few years back.
This is, of course, good science. You may not need to use Knuth to program your own B* tree, but you have a pretty much universally accepted reference for citation if you use one in your research.
Yaz
I call BS, it would only take that long if it was a low priority job. If they were told in no uncertain terms to sort it out or be kicked out of the internet I'm sure they could deal with it much quicker than that.
Perhaps, but it's still potentially going to be a very large, costly job, which probably won't gain enough addresses to make it worth anyones while. It would still take them at least a few months.
The problem here is how many organizations with a large allocation (like a /8) have allocated these addresses within their organizations. Typically, they don't go around doling out the addresses in a completely contiguous manner -- they may have done something akin to setting up a /16 for each building (they would have received their address block before CIDR, and thus would have had to spit things along glassful lines), out of which different labs may have got a /24 to use however they wanted. Readdressing all of these and setting up new routes for all of these subnets is a big job for a large organization like MIT. You'd have to combine subnets together, which would change the routing topology, and compress everything down into a few /16's to make the returned address space contiguous.
You could return non-contiguous space, however this has a serious negative impact on world-wide routing tables. You can't just add a few million /28's to the global routing table (that is, you can't just say "hey, here's a few hundred thousand non-contiguous groups of 16 addresses we aren't using, let's give them back!").
And after putting all that effort into making their address space more contiguous (while still allowing room for future growth), they'd probably wind up with enough addresses to extend IPv4 for a month or two at best -- at which point, they might as well have put the effort into migrating to IPv6 instead.
Giving unused address space only slightly delays the inevitable. It does't postpone it indefinitely. If you're going to do the work, you might as well do it right the first time and get everything running on IPv6.
Yaz
Once we finally move on to IPv6, can we all have our own static IP?
That's a good reason to push it.
Actually, you get a prefix -- either a /48 or a /64, from which you can assign your own addresses. A /64 is enough to give you more addresses than the entire public IPv4 Internet. How you use them internally is up to you.
Yaz
if anyone back then had seen this coming that clearly, they'd have just used 64 bits to start with and we'd be fine for the next thousand years.
Exception that on a 8-bit computer running at only a handful of MHz, using a 64-bit address right off would have entailed a performance penalty. There would be more packet overhead, and more address processing required.
This may not seem like a bad compromise for clients, but you have to consider what would have happened to routers in the 70's and 80's had 64-bit addresses been the norm. Won't anybody think of the routers?
Yaz
How long have we been vaccinating kids for? How long have we known about "autism"?
History of Autism
"Autism" as it is currently used was defined in 1938. The first vaccines were developed in the late 1700s, however, the first of the components of what are now the MMR vaccine were introduced in 1963 with the first measles vaccine (Timeline of Vaccines)
.
They tried that crap on my own kid who didnt behave well in school. Instead, I tried more discipline and a stricter policy and now he's a "Straight A" student.
Really, so how many times a day should I beat my autistic daughter who is completely unable to speak because of her condition? Do you recommend using paddles, straps, or electrocution? Maybe I should just lock her in a closet and feed her a bucket of fish heads once a week? Please Doctor Anonymous, share your wisdom!
Yaz
Well, not necessarily. There is no scientific way I could think of that lets us tell what happens with our "soul" after death.
Of course not. You'd have to prove the existence of a soul scientifically before you could even start to answer such a question.
It would be no different than asking a zoologist about the mating patterns of the one eyed, one horned, flying purple people eater. All research is built upon the foundations of prior research; as there is no scientific evidence for a one eyed, one horned, flying purple people eater, there is no logical place to start in trying to deterring what it's mating patterns might be like.
You have to be careful with such statements, as they're the sorts of arguments people of faith like to try to use against science (i.e.: "But science can't prove/disprove X", where X is some construct for which there is no scientific basis in the first place, but which the speaker treats as a given). This is a fallacious line of argument, one which nobody can ever actually learn anything from.
Yaz
I was using unblock-us for a while, and it worked flawlessly. I only stopped as there wasn't enough additional content on US netflix for me to justify paying for it.
IPv6 tunnels are fortunately free. And as I mentioned, if you have router support for it, then every Mac, PC, and Linux box in your house will automatically be provisioned for end-to-end IPv6 access to Netflix (and anything else IPv6 accessible on the Internet), along with any set-top boxes which may use IPv6 (Apple TV apparently does, but I don't own one to be able to confirm this).
Yaz
Canadian Netflix is pretty crappy compared to the American version and we don't have much else. It's not like the content companies want to sell their products here, at least in an easy to purchase downloadable format
Pro tip:
Netflix is fully IPv6 enabled, which is actually great news for Canadian Netflix users. Just setup an IPv6 tunnel to the nearest Hurricane Electric tunnel server farm (if you have a router that supports this, you can enable IPv6 invisibly for your entire home quickly and easily. Apple's routers all support this out of the box, for example), and presto -- you'll have US Netflix.
Note that this only works on IPv6-enabled devices, of course, so your set-top box or smart TV may not benefit. And you have to ensure the browser you're using properly supports Happy Eyeballs so as to ensure it will prefer IPv6 over IPv4 (Safari on Mac OS X since Lion uses an algorithm to prefer whichever connection is fastest in responding, which can cause it to initially load Netflix via IPv6, showing all the US content you can't otherwise see in Canada, only to be blocked when you actually try to view it if OS X switches down to IPv4 for optimization purposes).
As I have IPv6 tunnelling enabled right at the router, there is no software to be installed or anything that needs to be configured anywhere once this is setup, unlike VPN/proxy solutions. It's also fast -- even though the IPv6 is tunnelled, I can't perceive any speed issues when watching content this way.
Enjoy!
Yaz
$5000 per infringer (not per infringement) is the maximum. The minimum is $100, and I've heard word that the court is more likely to impose the minimum. The plaintiff either has to prove actual damages, or can apply for statutory damages, between $100 - $5000 at the judges discretion. The copyright act stipulates that the judge needs to consider whether the infringement was for non-commercial purposes, whether it was for private purposes, and whether it would constitute hardship for the defendant to pay.
Yaz
In addition, the court also found that Voltage Pictures has to pay TekSavvy for all costs associated with gathering the data, and that they'll be limited to $5k in damages per person found to infringe.
May sanity reign!
Yaz
SAT is clearly NP complete, and clearly the existence of good SAT solvers is not a proof that P=NP. This means that there will be relatively small problems that SAT solvers won't be able to solve.
Enjoyed your post, but have to correct a small quibble.
From a mathematical standpoint at least, being NP complete doesn't imply that there are some problems that are unsolvable; merely that they won't be solvable in any reasonable amount of computing time. If you have a few hundred billion years of compute time available, a SAT solver might be able to solve even those small problems you mention. Of course, from a practical perspective, none of us are going to be here to get the result in those situations, making them unsolvable from a practical standpoint.
(On the other hand, once the billions of aeons roll by and the machine goes 'ding' and spits out an answer, we do know that we can verify it in poly time. Huzzah!)
While all of this may seem ultra-pedantic, there is enough confusion about NP out there that someone reading your post may get the idea that things that are NP-complete are unsolvable. They're not unsolvable -- we can typically fashion algorithms to solve them, simply that those algorithms run in nondeterministic polynomial time, and thus may have runtimes exceeding the expected lifetime of the solar system, even with every cycle of compute time ever invented pushed at it.
...unless, of course, someone comes up with a proof that P = NP, in which case all those NP-complete problems can be transformed into P problems. Sure, they might still take a few hundred billion years to get a solution, but at least we'd know how many hundreds of billions of years would be needed to get a solution!
Yaz
It's really funny to think that Mac OS X, an OS for whom many Windows users think is primarily aimed at and is used by the least technically proficient users in the world, has had virtual desktops for seven years now. So if Apple can figure out how to provide this feature, why can't Microsoft? Yaz.