Oracle Hasn't Killed Java -- But There's Still Time
You're welcome -- glad to help.
I should note that I am assuming that with 16GB of RAM you're running a 64-bit OS. If you're running a 32-bit OS (with PAE to access all the extra memory), you're going to be more constrained. While an OS with PAE can access quite a lot of RAM, 32-bit processes are still limited to a 32-bit virtual memory space (with a maximum addressable memory of 4GB, but functionally less on some OS's depending on whether or not they do things like mapping kernel memory into process memory space (Windows, I'm looking at you...)). On some OS's, Java also expects that the heap memory space will be completely contiguous (virtually, not physically), which may not seem like a problem until you run into a virus scanner or some such that loads some library resident into every single process ("DLL Injection") at the 2GB mark or some other fixed virtual memory location below the maximum (yeah, I'm looking at Windows again. Had this one bite a customer pretty badly a few years back who for some odd reason still insisted on running 32-bit Windows servers). 64-bit OS's can still support DLL Injection, but typically the injected memory location is so insanely high within VM (quite a large amount higher than you can physically install in your typical system), that it doesn't cause any problems.
The point being (before I go off into too long of a rant), on the off chance you're still running a 32-bit OS and 32-bit Java (I'm reasonably sure you can run 64-bit Java on OS X 1.6, even when booting with the 32-bit kernel), tuning may only take you so far for Java applications that are really memory hungry -- you'll still hit a wall well before even 1/4 of your installed RAM is used. In that case, upgrading to a 64-bit OS and 64-bit Java is highly recommended, if possible.
(As an aside, this is actually one reason why Android handset developers were quick to jump into using quad-core processors. When programming Android using Java, all of these memory and garbage collection issues arise, in a package with less RAM and less processing power than a standard PC. The best way to handle being able to create responsive applications under GC in such a model is to do as much of the GC as you can in the background on one or more independent cores to minimize whole-application pauses. Contract this to iOS which uses retain/release cycles (or better yet, Automatic Retain Counting, aka ARC) where memory management is either hand-coded by the developer, or resolved at compile time (in the case of ARC), requiring no GC at all).
Oracle Hasn't Killed Java -- But There's Still Time
I use a few Java programs on my desktop, which has 16GB of RAM. One program I use is a little editor / mini-IDE for microcontrollers which have 4k of memory. While writing these 4K programs, Java will largely lock up the machine for 30 seconds, probably while it's doing GC.
Check your settings. For better or worse, Java doesn't run like other native programs (on most platforms at least) -- the maximum heap space it will allow programs to use is fixed at runtime (i.e.: it won't grow dynamically as memory allocations are requested). On the system I'm sitting at right now, the default is set to just under 2GB (Win7, JDK 1.7.0_45 (both 64-bit), 8GB RAM). No matter how much actual memory my application wants (or needs), this is the maximum that can be allocated for objects on the heap. Attempting to allocate any new objects once this 2GB of heap space won't use any free RAM available on the system; it will instead trigger garbage collection.
Additionally, with Java 7 at least, there are seven different garbage collection algorithms. The default is the Parallel Scavenger Collector, which is a "stop the world" collector. You might find on your system you have fewer pauses if you enable the Concurrent Mark/Sweep collector, in conjunction with the Parallel Copy Collector. Concurrent Mark/Sweep runs in the background, and only stops all application threads if it can't keep up with demand.
Tuning those should help with your specific performance issues. I completely recognise that none of this should be necessary in a well-written application; unfortunately for all too many Java developers, "I don't need to worry about garbage collection" also seems to mean "I don't need to care about the lifecycle of my objects", which of course isn't true. There are a lot of badly written Java applications out there, and in some ways understanding how Java handles memory is actually harder than understanding memory allocation in a lower-level language like C (Garbage Collection makes things pretty complex), and all too often I run into Java developers who simply have no idea how the JVM manages these things. IDEs for embedded systems always seem to be particularly bad for this. That's not entirely Java's fault -- you can write memory-efficient Java applications, it's just that too many Java developers (and frequently their managers) seem to think you can ignore memory issues with Java because it has Garbage Collection, as if it's some magical solution to memory allocation/deallocation.
A 24-Year-Old Scammed Apple 42 Times In 16 Different States
But.. but...but didn't mac's come with some magic magnetic connectors to safeguard them against cable strain ??
No. The MagSafe connector was never designed to eliminate cable strain. It was designed to break away from the laptop should you trip over the cable, preventing the laptop from being damaged.
Cable strain can come from many sources. The cable can simply be bent in a funny angle repeatedly over a long period of time. A MagSafe style connector isn't going to protect against that. Yanking out the cable by gripping the cable and pulling (as opposed to holding the connector directly) also causes cable strain, and again -- MagSafe won't help you here (other than by ensuring you can't also accidentally yank the laptop with the cable).
Even the very ad you linked emphasizes this -- the whole point is that the "PC" is damaged -- not the PC's power cord. Apple has never claimed you can't damage the cable by straining it inappropriately, and MagSafe was never designed nor marketed to prevent such damage.
A 24-Year-Old Scammed Apple 42 Times In 16 Different States
When you pay for gas with a credit card and the pump asks you to punch in your zip code, it's not collecting marketing information. It's using the zip code as a (rather flimsy) security measure to protect against someone buying gas with a lost/stolen credit card.
I had never seen this done prior to a trip through the US earlier this year. Of course, it wouldn't accept my Canadian postal code (which is a six character mix of alternating letters and numbers). I had to cancel the transaction and go in and have the cashier run everything manually, and then go in after filling up to complete the transaction.
Not the end of the world, I suppose. I suspect we don't bother with doing that here in Canada due to a) stronger privacy laws and b) near global use of chip-and-pin for credit cards. At the time, my natural first thoughts were "why on EARTH would you need to even ask me that???". Now I know why, and will know better the next time I'm down that way.
Man Booted From Southwest Flight and Threatened With Arrest After Critical Tweet
What are you smoking? Have you never been late for a connecting flight?
The plane actually WILL take of without you.
In which case, having parents with children board first is the least of your problems.
Man Booted From Southwest Flight and Threatened With Arrest After Critical Tweet
That's all good reason for boarding them last - so they don't slow down those who can board quickly.
I promise the plane won't take off without you. What, are you in a hurry to cram yourself into an airline seat instead of enjoying the comfort of the airport lounge for another 10 minutes or so? Entitled much?
Australia Repeals Carbon Tax
But because such penalties impact all businesses in whatever country is collecting them, it won't really change things - because all of those businesses will simply pass along the new government-mandated increase in their overhead along in the form of higher prices.
However, if you believe in capitalism this creates a space for an aggressive innovator to come in with new reduced-energy practices/processes, and pass those savings onto consumers, causing the existing players to either likewise update their practices/processes to compete, or have them diminish/die. Such changes don't happen overnight however -- it could take many years for the selective pressure to bear.
Obama Administration Says the World's Servers Are Ours
You apparently never heard of United States vs. Conrad Black
In this case, Black (born Canadian, but renounced his citizenship after becoming British in order to sit in the House of Lords), who was CEO of Hollinger International. As part of a series of criminal charges against him, he was ordered by a US court not to move or tamper with documents relating to the case. However, he and an accomplice were filmed removing boxes of paperwork from an office in Toronto, Ontario, Canada. He was charged and ultimately found guilty of obstruction of justice in the US for this, and served 48 months in prison.
Microsoft Runs Out of US Address Space For Azure, Taps Its Global IPv4 Stock
From an iPhone on AT&T IPv6 does not work. Neither does it work on my Uverse connection.
That's the fault of the connection, however, and not the iPhone. iOS if fully IPv6 compatible; I take advantage of it all the time. I even wrote an IPv6 test utility for iOS a few years ago. You just need a WiFi router with autoconf advertising IPv6 routes, an you're all set.
The fact that all too many North American ISPs still haven't got their IPv6 implementations in play is the real story here. Computers and most smart phones are ready to connect -- they just need the ISP support to do it.
Apple WWDC 2014: Tim Cook Unveils Yosemite
I doubt it's high on Microsoft's priority list. Your earlier example shows a saving of a few hundred megabytes out of 8 GB, and RAM is really cheap.
I should point out that in my example, the memory pressure at the time was quite low. Had I pushed the memory pressure higher, the amount of compressed memory would also have been quite a bit higher.
RAM may be cheap, but there are still physical limits that can be hit on any given board or system before you reach the theoretical limits. I'm posting this on a 2009 iMac right now, and it has a maximum RAM configuration of 8GB (which is also how much RAM is installed). No matter how cheap RAM gets, this system can't accommodate any more.
Considering Mavericks was a free upgrade, installing it was like going up to 12GB of RAM or more -- for free. I don't have any metrics in front of me of the useful theoretical maximum compressed memory storage, I can only assume that it's somewhere in the neighbourhood of about (Installed RAM - 1GB)*2 at best (or in my case, 14GB. The 1GB is to ensure space is reserved for wired memory, which can't be swapped or compressed). I suspect it will be a bit less, depending on how compressible your data is (the algorithm used is optimized for a 2:1 compression ratio, however not all pages will be compressible to this degree; my understanding is that if a pair of pages can't be compressed into a single page, the compression routine stops for that pair of pages).
Note that as memory compression sits between the point where the OS identifies that it may need to evict old pages and the point where the pages are physically swapped to disk, the pages written to disk are also compressed (unless they were incompressible in the first place). This will roughly halve the amount of data that needs to be written to swap, meaning that the slowest operations of the paging to disk procedure is roughly halved in time as well.
As Windows machines swap as well, being able to halve the time required to read data from and write data to disk would be a huge boost. Being able to get a few million extra pages without the need to swap is an even bigger performance boost. I'll point out this ArsTechnica article on Apple's Compressed Memory subsystem -- note in particular the second graphic which shows a system under much heavier memory pressure, where a machine with 16GB of RAM has over 8GB compressed, and only 26.5MB (not a typo!) of data swapped to disk. That's a lot of data that didn't need to be written to a page file.
Apple WWDC 2014: Tim Cook Unveils Yosemite
Although studying it again now, it seemed much more interesting! Maybe my teacher wasn't very good...
Hope I wasn't your teacher the first time around!
Apple WWDC 2014: Tim Cook Unveils Yosemite
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 course are still there -- if memory pressure decreases, the operating system can load them again. Alternately, if you need to use the memory, the operating system will load it again, writing some other old, unused page to disk. The size on disk of all of these old pages sent out for long-term storage like this is displayed in the "Swap Used" box in the activity monitor.
When memory pressure is really high, this can get really ugly really fast. Everyone has hard drives that are massive compared to the physically available RAM, so the system can use this system until the hard drive is full. For many people, however, the system will become nearly unusable long before this point; if that "least used" page is one that hasn't been used in just a few milliseconds, and will be needed again in a few milliseconds (that is, all the pages have been used very recently and are expected to be used again), you can wind up in a situation where you're trying to write out some not-very-old pages in order to load some also not-very-old pages, and you're going back and forth doing this again and again and again, the the speed at which you can do so is slower than the need for the pages, slowing your system to a crawl. You've probably seen this before -- you load too many tabs in Safari and have a bunch of other stuff running, and all of a sudden the hard drive is running all the time and the system is unresponsive until you unload some tabs or programs and wait for the system to catch up to you (in effect, reducing the memory pressure). This phenomenon is known as "thrashing".
As an aside, modern operating systems take a shortcut when allocating memory to applications that request it. The memory page is typically only actually created when you put something into it. Empty pages are recorded by the system, but aren't given any real physical existence until you put something into them. This means you could (conceptually) ask for more pages than the system could ever handle -- an applications entire memory space in fact -- and no real memory pages will be used until you put something into them. This is the reason why you can sometimes see the "Virtual Memory" value exceeding the amount of RAM, and still have no swapping happening.
That brings me to "memory pressure" which you asked about. This is basically a measure of how responsive the system can be to give out new pages of memory when an application needs them. When it's a low, green line you effectively have no pressure -- the operating system can give pages immediately with little or no work to an application that asks for some new pages. When it's tall and red, the pressure is very high, with very little real RAM available to give out, lots of reliance on reading and writing pages to the hard drive swap file, and general slowness. You can think of this as the state where the programs you're running (including the operating system) has asked for way more RAM than you have, and the system is having a hard time rearranging the pages in order to make room for new requests. As the memory pressure gets higher, the probability of thrashing also increases.
Now, in Mavericks Apple introduced a new system they call "Compressed Memory". This subsystem basically sits in-between the point where the system looks for old pages to write to the swap file, and the actual writing of those pages to disk. Instead of writing those pages straight out to disk, the operating system finds pairs of pages and runs them through a compression algorithm, and then stores them as a single page in memory. In effect, you take two pages and jam them into one page, giving you an empty page to work with. Mavericks tries to do this with as many pages as possible instead of writing them out to disk, because it can do this operating a whole lot faster than writing all that data to disk, which is comparatively slow. The amount of memory the system is using to hold compressed data is listed in the bottom-right "Compressed" box in the activity monitor. Looking at mine right now, it says I have 392.3MB compressed. This is equal to over 102 million pages of data that the system has brought back available for application use by compressing those pages I haven't used in a long time. If memory pressure were to increase, more memory would be compressed. If pressure continues to increase, those least-used compressed pages will be swapped to disk (in compressed state).
The key to performance, of course, is not to write anything to swap if it can be avoided. Swap slows things down. Conceptually memory compression also slows things down, but it's so slight and imperceptible at the level it typically occurs at you'll never notice it as a user.
"App Memory" is the amount of memory actually in use by applications and the operating system itself. Memory pressure will be green so long as this value is less than your Physical Memory. "Wired Memory" is a special subset of memory that cannot be compressed, swapped, or written to disk -- typically because it's too core to the operating system (imaging if the operating system paged out to disk the code used to read pages from the disk! You'd be stuck in a paradox and the system would stop working. Much of the OS kernel is always flagged as "Wired").
Which leads me to the last value in the application monitor -- File Cache. It's well known in virtual memory circles that unused memory is wasted memory. Memory is very, very fast, and if you're not using it for anything at all, you're not gaining the benefit of its speed. For this reason, the operating system keeps a File Cache in memory where it stores bits and pieces of files it thinks you may need in the near future. It acts as a sort of predictive read-ahead of your hard drive: if you need a file in the cache, it will load in the blink of an eye without spending much time hitting the hard drive, making the system seem really, really fast. Modern OS designers use a file cache system that will use as much available memory as possible in order to benefit from this speed increase as many times as possible -- the larger the disk cache, the greater the probability you'll need something from that cache, and the faster the system will perform. As such, the File Cache claims nearly as many pages as are available in order to increase this probability, and give you a faster experience loading files (note that some number of pages is usually left free in order to have somewhere to swap to and from as the need arises, but it doesn't have to be particularly large: maybe just a few MB of space)
The magic of the File Cache is that, since it's typically a read-only copy of what's actually on your hard drive, if an application needs more memory than is available, the operating system can simply drop the pages int he cache with very little effort. They are never compressed or swapped (which would defeat the purpose -- why would you write data to the hard drive that already exists on the hard drive?) -- they just get dropped if an application needs more memory (perhaps by loading a new application). In this way, the File Cache will basically grow and shrink to fit into whatever free physical memory your system has at the time. This is why you may see your "Memory Used" value getting very close to the "Physical Memory" value, but with the Memory Pressure still down in the green and with no swap used: if you get into this situation and something asks for more memory pages, the OS will simply drop some of the disk cache pages and reassign them to the application.
For this reason, it's actually expected that Mavericks will always appear to be using all of your memory. Trying to fight this will actually hurt your performance. The truly important things to keep an eye on is the "Memory Pressure", as this is a much more exact guide to what you should expect performance wise as you use more memory. The old chart was great for people who know the ins and outs of virtual memory (like me), but it often led to users trying to do weird things to try to "clear out" RAM in order to see more free space. You have to trust that the operating system can do this faster and better than you can, but just seeing a pie chart showing all of your memory in use doesn't help. The "Memory Pressure" on the other hand is a much better measure, as only when it gets into the higher values should you start to look into doing something (such as unloading unused applications, browser tabs, documents, etc.).
I hope you didn't find this TL;DR -- I know it's long -- the system is unfortunately very complicated, and you could spend an entire university semester dealing with the subject in depth. When I taught 3rd year Operating Systems at a University I'd usually spend at least a week on this subject, and even then you'd just crack the surface and give as much background as you find here (albeit with some more algorithmic details). If you did find this TL;DR, here are the quick takeaways:
- Swapping to disk should be avoided as it slows your system down. Its main benefit is to allow you to use more memory that you physical have. Try to keep this value low.
- Mavericks tries to help you keep the swap size low by compressing pages before it has to write them to swap (with the hope the saved space means it never has to write to swap). And if it does eventually have to write to disk, it writes out the compressed pages, making swapping roughly twice as fast as it was prior to Mavericks.
- Try not to manually manage your memory. It's both okay and expected that the OS will try to use all of it. It does so to try to speed up your computer. If a program needs some of this used space, the OS will give it back immediately.
- The old memory pie chart is great for the uber-techies who understand virtual memory, but doesn't paint a useful picture if you don't. Memory Pressure is much, much more useful to laypeople, as it gives you an indication of when you should actually start to worry about reduced performance. When the memory pressure is low/green, the OS has lots of memory it can dole out at a moments notice (even if the Memory Used value is close to the Physical Memory value). When it's yellow, you'll start to see some performance degradation if you don't unload some stuff. When it's red, performance is already suffering and you should unload some stuff right away.
- Virtually Memory is your friend! Try not to second guess what the OS does with it -- it's smarter and faster than you are. You only need to take action if the Memory Pressure creeps into the red (or if it's yellow and you know you're going to need a bunch in short order). If you find you're frequently in the yellow or red, a RAM upgrade would be of tremendous help (and conversely, if it's always green a memory upgrade probably won't help you much.
Congrats if you made it to the end. That's my "short" version of a very complex topic. I hope it made sense and is useful to you.
Apple WWDC 2014: Tim Cook Unveils Yosemite
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).
Apple WWDC 2014: Tim Cook Unveils Yosemite
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.
Apple WWDC 2014: Tim Cook Unveils Yosemite
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.
Botched Executions Put Lethal Injections Under New Scrutiny
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.
Botched Executions Put Lethal Injections Under New Scrutiny
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.
Botched Executions Put Lethal Injections Under New Scrutiny
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.
Botched Executions Put Lethal Injections Under New Scrutiny
- 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.
Botched Executions Put Lethal Injections Under New Scrutiny
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.
Today, I am an inventor in two countries!
Rewind back to 2000. While everyone was taking a breather after Y2K turned out to be a relative non-event (thanks to hard work from the technical community everywhere), I was coming up with ideas. Ideas for things. Things that would do stuff.
Some of these things caught the attention of my then-employer (a company often associated with the words "big" and "blue"), and the slow wheels started grinding them towards some patents. Two of them in particular made their way through the internal grinder, and became actual applications: "Executing Native Code in Place of Non-Native Code", and "Dynamic Generation of Program Execution Trace Files in a Standard Markup Language".
Then that company gave me the boot.
Over the years since, I've kept an eye on my ideas through online databases. Both were filed in both Canada and the US, with the US applications appearing to be "links" to the Canadian patents. I'd look in on the CIPO database here in Canada every few months, generally to see the only "progress" being that my former employer had paid some yearly renewal fee.
This changed briefly back in 2006, when ""Dynamic Generation of Program Execution Trace Files..." was listed in CIPO's database as "dead". You win some, you lose some.
Ever since, nothing has changed...until I decided on a lark to take a peek today, to find:
I AM AN INVENTOR!
So I decided to do a quick search of Google's Patent Database to see if it shows up there too, only to find an unexpected entry instead:
...so I have been an inventor on a patent since 2007, and didn't know it. The one that was marked as dead in Canada turned out to have been issued in the US. So not only was I surprised today to find out that one of my inventions was just issued a Canadian patent, but that another one was granted a US patent nearly two years ago.
Regardless of what I might think about software patents, this is still a pretty happy day. Both of the ideas patented in these two patents are in use in the wild (and presumably without a license from IBM), and I personally hope it stays that way. I have no say over how my old employer uses these patents (I technically didn't have any say in them applying for these patents either), but it feels pretty good to have these two added feathers in my cap today. It's been a very long wait, and I had long ago given up on anything ever being granted, so this has been a rather pleasant surprise for me.
Good 1000Base-TX card for Debian Lenny-AMD 64?
Last month, I finally decided to upgrade my old Celeron 550-based home server to a modern system, and found a pretty sweet Core 2 Duo-based system from Compaq available for just under $300 CDN as a factory refurbished unit. I quickly unpacked it, put Debian Lenny on it (Sarge was a bit too old to recognise some of the hardware, particularly the built-in network adaptor), and copied all the data from the old file server. It's most compute-intensive task is to run pyTivo, and moving from a 550Mhz system with 256MB RAM up to a C2D at 2.xGhz with 2GB RAM was a huge improvement -- we went from about 4fps up to about 60fps (at which point it would pretty much saturate the 100Mbps network connection). It was beautiful to behold.
Last week, after three weeks of flawless operation, I started getting a huge pile of network timeouts, and ultra-slow transfers from the new server. Slower than the old Celeron 550Mhz box it replaced. An order of magnitude slower. So I decided to do some simple diagnostics. In the end, it turned out there were two independent failures in two different pieces of hardware: firstly, the hard drive in the new server was crapping out already. More insidious however, and the actual cause of the slowdown I was trying to diagnose, is that my old 100Mbps switch appears to be having significant problems.
This switch was what most of our wired network devices are plugged into. We have a Tivo, and Playstation 2, the file server, and two Vonage phone adaptors wired into the network, and usually try to have one spare cable for times when the wireless network in our building goes crazy, and we need to plug one of the laptops in. This, of course, is more plugs than the 5-port switch could handle, so we also have an old LinkSys BEFSR41 router, set to switch mode plugged into the switch to offer yet more ports.
The new server is in getting its drive replaced (I wanted an empty drive, but they absolutely insist on putting Vista on it, even though the first thing I'm going to do is reformat/repartition it). As for the networking problem, I decided to leapfrog the issue altogether. The whole reason for having the 5-port switch was because our main routing device is an 802.11g version of the Apple Airport Extreme, which only has one ethernet LAN port on it. So, in an attempt to be a bit more forward-thinking (not to mention allowing me to use 802.11a or 802.11n to hopefully bypass the problem we have with too many wireless devices in other units in our part of the building -- I can usually see at least 12 other SSIDs from our unit), I bought a new Apple Airport Extreme, 802.11n edition, which comes with four built-in gigabit ethernet ports.
Now unfortunately, between our old 802.11g-based Airport Express and my wifes 802.11g-based PowerBook, I probably won't get to take advantage of the 11n speeds all that often. I'm willing to live with that for now. However, the possibility of some really fast transfers on the wired portion of the network by adding a gigabit ethernet adaptor to the server once it's back from being repaired would be fantastic.
My current plan is to continue to use the BEFSR41 as a switch/hub for those devices which are only ever going to be 100Base-TX, such as the PS2 the Tivo, and the Vonage boxes (which will fill it up right there), and other than the BEFSR41 itself, use the Airport Extreme's ports for Gigabit enabled devices (the fileserver, once so equipped, and the spare cable for my MacBook and work MacBook Pro when I bring it home). All of which hinges on finding a good Gigabit adaptor for the fileserver.
Any recommendations on a good Gigabit card for running with Debian Lenny? The board has some free PCI Express x1 slots, and thus a card supporting this would be preferable. Any ideas?
Well...this is it. After three years of work, I'm defending my Masters thesis in Computer Science tomorrow. Entitled "Optimizing Synchronization Cost for Mobile Devices: The Expedient Trickle Sync Algorithm", my research revolved around coming up with a set of heuristic algorithms which could intelligently manage the synchronization of mobile devices in order to reduce the overall cost (where cost involves two opposing factors: the cost of data transfer across the network, and the more conceptual cost of potentially basing decisions based on out-of-date information; thus the trick is to synchronize at times and frequencies to try to guarantee that the users data is up-to-date when they need it, while minimizing the frequency of synchronization, the amount of data transferred, and the use of expensive networks).
The research turned out to be significantly bigger than it should be, and I'm very proud of it, however some of my committee members have been a bit of a PITA. Regardless, I'm going to survive tomorrow, come out the other side, and kick some ass and take some names along the way ;).
Running on Empty
This weekend I spent both days riding around the city on my new e-Bike. The sun was out, the weather was fine, and it felt god to be out and one the road and bike trails here in Victoria. Saturday I happened upon a Ska festival down at the inner harbour. Today I was one of the few to join in on an electric bike brigade ride along the coast.
Both days, unfortunately, I wound up having to do some serious pedalling as my batteries started running dry. Today was worse, in part because I had a passenger with me during the brigade ride (the young son of the woman who started the brigade ride really wanted to ride with me, so I let him jump on the back) -- by the time I got home, the battery was pretty much dry, and I had to pedal up a moderate grade on the way home, as the motor didn't have sufficient power to move the bike uphill on its own (and it wasn't giving me much help, either).
Fortunately, this bike has an optional second battery which goes under the seat, however I haven't spent the $90 for this option -- yet. But this weekends rides have got me thinking about power issues to extend the range of my bike.
Purchasing the secondary battery seems like a no-brainer, but like virtually all rechargeable batteries, it has a maximum lifetime, and it's probable that my usual home-to-University (and son home-to-work) trips won't really need it. Charging it as part of the system without ever discharging it will reduce its lifespan (the secondary battery doesn't run in a parallel circuit with the primary battery -- you actually have to switch the key to a different position to use it). I suppose I can simply switch which battery I use on a day-to-day basis, to "level" them equally...
Other thoughts go toward perhaps exploring some sort of portable solar charging system -- in the summer when it's hot and sunny at least, when the bike is sitting parked somewhere for several hours, I should be able to take free advantage of the sun's rays to give the battery some sort of boost. The trick here is that I'd want something ultra-portable (Canadian Tire has some neat foldable panels, but they don't generate much in the way of watts, don't output the correct voltage, and don't have the correct sort of interface) that can simply be plugged into the existing charging socket. Something that can go into the box at the back (or perhaps under the seat, which currently has lots of room as I don't have the secondary battery, although if I do get the secondary battery this space will probably disappear) would be ideal.
Or, perhaps I should just be a bit more sinister and take advantage of "public" power outlets. Today I spent several hours at a BBQ at a city park, near the outdoor stage. The stage has power outlets for use in staging public music shows, and I could have taken my bike up there after the show this afternoon, plugged it in in a corner, and locked it up (setting the alarm) and just leech my 15 worth of power from the City. I didn't do this, naturally, but the thought did cross my mind (especially as the thought of having to pedal home wandered through my brain. While you can pedal it, in reality the pedals aren't positioned to emphasize optimal body mechanics, and the bike is heavy, and it only has one gear, so pedalling it without the electric motor over long distances isn't particularly enjoyable. Some of the people I met at the e-Bike brigade today have actually removed their pedals altogether, as they simply never use them, but I guess they aren't doing 3 - 4 hour tours like I have been this weekend :P).
I need to take the bike in this week for some minor warrantee maintenance (they told me to come back to get the brake cables tightened, and there seems to be a minor switch malfunction where the emergency off switch won't actually disengage the power when switched off every so often...), so I think I'll pick up the secondary battery then. Anyone have any ideas on the use of solar panels to charge a 48V battery?
The new YazMobile
Gas prices here on the island have finally surpassed $1.50/L, thanks in part to the new BC Carbon Tax coming into effect on July 1st (which, FYI, I fully support). As I'm driving a '97 Chevy Lumina V6 Sedan with a 60L gas tank, if I were to drive everywhere our gas budget would be huge. Never mind the fact that parking is pretty expensive at the University. As such, for the past 6 months or so, Gigi and I have been taking the bus whenever we don't need to transport a sufficient quantity of goods (such as doing a big grocery trip). This works for us right now as we're still registered as grad students at the University, and have a bus pass included in our tuition that is significantly cheaper than the usual pass.
The bus, however, isn't exactly a speedy way to get around from our place. You waste a lot of time walking to the nearest bus stop, then waiting for the bus, riding on the bus (as it stops at nearly every stop to let people on or off), transferring to one or more other buses if we're trying to get anywhere more interesting than the University...etc.
I'm finishing up my thesis this month (defending in late August is everything goes well), and have accepted a full-time development job here on the island starting August 5th at a location only about 6km from our place, and so I decided to take a look at alternate forms of transportation. I settled upon and purchased a GWEV Super 8 electric scooter. And let me tell you -- this thing is just so much fun to drive around the city I keep looking for excuses to get out on it. I've been using it between home and the University for the past week, and its significantly faster than the bus, with less expense (or hassles) that driving the car (and nearly as quick so long as I don't have to get on a highway). As the Province of BC classifies it as a Motor Assisted Cycle, it can be driven anywhere you can ride a bicycle, and can be parked anywhere you can park a bicycle. It only costs about 15 to fully charge the battery from empty, and in our case we're not even paying that -- our building management has given us a special underground, secure parking spot next to a concrete support pillar with an electrical outlet for free -- so they're paying for the electricity.
Some people do look at me a bit oddly now and then -- mostly people who mistake it for a gas powered scooter and think I can't park it on sidewalks and such. It's also less than whisper-quiet -- even under power, about all you can hear is the sound of the rubber meeting the pavement.
When I bought it, as the dealership is downtown, Gigi and I went in the Lumina, but as the bike is too big to put into the car, I had to ride it home. The dealership had it fully charged and ready for me, so Gigi and I left at the same time (me on the bike, her in our car). We had a ~6km trip home each -- she taking the roads, and I taking an old railbed which has been converted into a cycling trail through the city. We got home at exactly the same time.
I can't recommend this gem of a vehicle highly enough. Obviously, it's mostly useful in an urban area with good cycling infrastructure (and legislation which permits you to ride it anywhere a bicycle can). I keep looking for excuses to get out and go for a ride, and now that I don't have to worry about paying for parking or the cost of use, I find myself wanting to go downtown more frequently.
Our only issue now is getting one for Gigi so she can join me  :).
 - Technically, the vehicle does have room on the seat and the necessary foot rests for a second passenger, but apparently only children under 12 can ride as a passenger in this configuration. Still, we have tested it and it will physically work, but we're just not up to testing law enforcement on this one. Besides which, we don't have a second helmet for her at this time.
This summer, I'm expecting to finish up my Masters thesis, and wind up my role as a student in a formal educational environment for many years. Gigi is also finishing off her Masters project, and should be finished with her studies at the same time.
Education has been expensive. I've been fortunate that I've been able to teach some undergraduate courses (I'm teaching a 4th year software engineering course starting May 5th) for income, but with rising food and fuel costs, we barely scrape by. As such, I'm interested in moving straight from school back to the work environment with minimal delay; putting food on the table pretty much requires such. So I've been applying for jobs.
Flashback nine years ago when I finished my undergraduate degree. My initial desire was to do my Masters degree right away. I had just finished releasing the very first feature complete version of the jSyncManager (which is celebrating it's tenth year of development this year, FWIW). However, I also had no less then seven job offers from companies in both Canada and the United States (and took the one offered by IBM Canada, where I worked for nearly 3 years) six months before graduating.
Fast-forward back to today and I've got nothing. I have significantly more experience under my belt (my work at IBM, my time in the Canadian Forces, a consulting gig with the Faculty of Medicine at UBC, three courses worth of University level teaching experience, conferences, publications, four patent applications (with IBM), not to mention nearly a dozen Open Source projects (some obscure, some successful)), but getting my foot in the door anywhere just doesn't seem to be happening.
As such, I'm trying to re-brand myself. My first step is to re-design my personal homepage to be more of an interactive Curriculum Vitae -- a one-stop shop listing my research, publications, patents, teaching experience, work experience, and OSS projects. I'm going to hit my university's Career Services office to see what they can provide.
Has anyone else here gone through the process of self-rebranding? If anyone has and useful insights, please share them below.
Married, at last.
Gigi and I have been in Istanbul for the past two weeks, and last night, in her parents living room we got married. Huzzah! Honestly, after more than 13 years of first dates (also known as "last dates") ending with "You're nice, but...", I didn't think such a day was ever going to come. But here it is -- now, along with all my other titles and accomplishments, I can now add "Husband".
Mind you, oddly enough our marriage isn't really "official", so we're being quiet about advertising it in some quarters. Our wedding last night was a simple traditional Muslim religious wedding which, while recognized by Gigi's friends, family and surrounding community, isn't legally recognized here in Turkey (and thus, from what I understand, isn't really recognized by Canada either). For the sake of her Canadian Permanent Residency application, we're calling it a "commitment ceremony", and we'll pursue an official wedding in 2009, once her PR is approved (as she can't leave the country while it's in progress).
Still, I feel married. Our series of weddings and receptions and such may not be traditional (in either of our two countries of origin), but it's uniquely ours, and we're pursuing it together, so I couldn't be happier, and am proud to introduce Gigi as my wife and partner for life.
An Athiests Guide to Ramadan: Day 9
Well, I've survived through eight full days of my first Ramadan, and so far I've maintained the fast. So this is a quick status report.
First off: I'm freaking hungry! Please, oh please, someone send me some food!
Okay -- that's not exactly fair or accurate. Indeed, our home is chock-full of food right now. The problem right now is that we spend 14 hours not eating or drinking any of it, so most food items are lasting longer than they would otherwise. We have two meals a day -- dinner (which is now at about 1920), and "breakfast" (at around 0430, and really should be renamed from "breakfast" to "gobble-up-all-you-can-cause-the-fast-starts-...now!"). We snack almost constantly in the evening, but because of the fast (no energy during the day or evening (until the first food is mostly digested), and the need to get up early the next day), Gigi likes to go to bed early. So this snacking doesn't last all that long.
Most days I either feel like I'm seriously hungry, or like I'm going to be sick. One morning I felt I was close enough to tossing all my cookies that I stayed in the bathroom for at least half an hour until the urge subsided. And on the days that I don't feel sick, I feel like I'm unable to work on anything requiring any significant concentration (which has been a problem, as I'm supposed to have been working on two papers these past 10 days, one of which is only now 95% complete (and it was at least 85% complete before Ramadan even started), and the other of which I haven't even started. The teaching is working out fine (fortunately) -- in fact it's usually the two times during the daylight hours in the week that I feel my best (as my mind is sufficiently occupied I forget about how hungry or crappy I'm feeling).
Fortunately, my difficulties with Ramadan and the fast haven't affected Gigi and my relationship at all -- even though she's always telling me I should stop the fast, and that I don't have to do it, I know that she's glad we can do it together. Which is really the whole reason why I'm doing this in the first place.
Fortunately (and unfortunately) Gigi is going away to the mainland on a training source all next week. It's unfortunate because I'm going to miss her every moment she's away (and I know she will too), but it's fortunate because I can eat again. There really isn't a whole lot of reason for me to continue while she isn't here.
However, at this point I haven't quite decided wheter I should give up or not. I'm not the type of person to give up on hard things just because it's convenient to do so, and while Gigi tells me she knows I'm not that sort of person, I want her to see it for herself. Still, I need to get some serious work done toward finishing this Masters degree, and being able to take the quiet time when she's not here to concentrate at my fullest to finish off my survey paper (which is written, but I want to improve the conclusion and my use of references in the text), and writing up a new proposal paper (more on this in a future Journal entry) -- and being well fed is integral to thinking clearly and being able to concentrate on the task at hand. So at this point it boils down to whether my practical side or my stubborn side wins out.
Fortunately, for five of the days of the week nobody cares if I sleep in past noon. If Gigi didn't already know better, I'd have to invent some sort of fake Canadian festival/holiday where you're supposed to pull down your pants and slide on a frozen lake in the middle of winter, as a form of revenge ;).
An Atheists guide to Ramadan: Day 1
As those of you who have followed my Journal probably already know, I'm an atheist, and Gigi is Muslim. Beyond the whole God issue, however, Gigi and I perceive the world in much the same way -- she isn't so much religious as she is spiritual. She doesn't pray five times a day (or even once a day) or anything -- she just feels that there is a Supreme Being, it initialized the Universe a long time ago, sent a prophet, sends bad people to hell after they die (and good people to heaven), but otherwise stays out of the affairs of humanity. Some sort of cosmic voyeur I suppose. We've agreed to disagree on the subject, and get along fantastic.
Yesterday was the beginning of Ramadan, the holiest month in the Islamic lunar calendar. Gigi's family back in Turkey has always observed Ramadan (just as my parents have always observed Christmas in a secular way), so she has a cultural attachment to it that I can honour and appreciate.
Now for those of you who don't know, one of the central practises of Ramadan is the fast. From dawn through to the end of dusk, you're not allowed to eat anything (unless you're too young, too old, or your health simply doesn't permit it), you're not allowed to have sexual contact, and you're not allowed to swear or have bad thoughts (at least in the manner in which Gigi and her family practise the holiday). As Gigi practises things, she can't even hug, kiss, or brush her teeth during these times. Of course, once the sun is down the feast begins, and we can stuff ourselves until the sun rises again.
"She" isn't exactly the right word -- what I really mean is "we". I didn't think it was particularly decent of me to be doing any of the things she can't (read: won't) do during the daylight hours: it wouldn't be particularly understanding of me to be eating in front of her 80% of the way through a long day of fasting. So I'm observing Ramadan as well.
We're just finished day one, and here's the basic schedule:
- Wake up at 0400: Last chance to eat before the sun comes up. I was up earliest, so I made us a big breakfast. We had to be finished by 0448, and once we were (and after a quick tidy), it was time to...
- Go back to bed at ~0500: we were tired. I pretty much didn't sleep at all the night leading up to breakfast, so it was my chance to get some sleep.
- Avoid eating, drinking (even water), swearing (something I never do anyway), having sexual contact (difficult when our workplaces are ~10km apart anyhow :P), or having evil thoughts for about 14 hours, until:
- Dinner at 1939: Let me tell you, after 14 hours of nothing to eat or drink (with at least a dozen instances of me walking to the 'fridge to pour a cool drink, only to remember I can't do that and head back to my laptop thirsty and dejected), I was ready to pig out. We had a pretty good sized meal (although just prior to working on this post I had to have a bowl of late night cereal because I'm hungry again), but if I'm going to fast all day every day for the next month, I'm going to need dessert of some sort. We didn't have the time (or too many ingredients) to make anything tonight. We are however trying a number of Turkish dishes I've never had before (Gigi found this brilliant website of traditional Turkish dishes, written by a fellow Canadian (and Turk) here, so we're giving them a go. Tonight was "Kadinbudu Kofte", but as we didn't have egg noodles, we did the very, very Canadian thing and substituted Kraft Dinner instead).
Wash, rinse, repeat.
Now the good bit of news: fortunately, as it is September, the days are getting shorter. In fact, every day we start breakfast two minutes later, and dinner two minutes earlier. By the end, we'll be fasting for approximately two hours less than we had to on day one. Whew!
I know I'm a really lucky guy to have Gigi in my life -- she's the sweetest, gentlest, silliest, and most loving entity I've ever encountered, and I'm more than happy to support her during this special time. I know that participating with her means to world to her, so I'm going to keep it up, and refuse to let her down. Still, if I did believe in $SUPREME_DEITY, and if we were also doing the traditional prayers, I can imagine that by the third round of prayers, I'd be praying for $SUPREME_DEITY to send down a truckload of tacos, or maybe some cedar planked salmon or some-such.
So day one is finished. It's just after 0100 local time, Gigi is sleeping soundly, and I'm going to have yet another bite to eat before I join her. The next 28 days are basically going to be repeats of today, but I'll post up any interesting tidbits as we continue.
(And I haven't forgotten about my promised review of the Weird Al Yankovic concert we attended on Tuesday -- I'm still amazed and happy that we got to meet him, shake his hand, and thank him for the amazing show).
Going to see Al.
Gigi and I are going to see Weird Al tonight. I've been following Al's music and career pretty much since he started issuing albums in the early 80's, but I've never actually been to one of his concerts. Gigi found out about it earlier this summer, we bought tickets right away, but were still only about to get 9 rows from the front, right against one side. Oh well -- I'm still excited, and I still expect it to be a really good show. I was tempted to try to e-mail Al to offer him $5 and a bag of doughnuts if he'd only play Nature Trail to Hell, but figure the guy gets bugged by enough strange people as it is. But here's hoping...;).
We're getting married!
Just a quick note to let everyone know -- Gigi and I are getting married!
We were both surprised that, after two months of grumbling, her father gave us permission to wed two weekend ago. So we're starting to make plans. First up has been shopping for an engagement ring -- she's picked out a nice one, and we're just waiting for the diamond we're looking at to arrive (it's in a white gold version of the ring she likes, but if she wants it we'll have them set it in the same model, but in 18K yellow gold/platinum instead).
All of which means I need to get a move on and finish up my research work so I can graduate. We're flying to Istanbul this December for the official engagement ceremony (and I've already bought the airline tickets), and hope to be married July 2008.
So little time, so much to do. I really should be wasting less time here and spending more time writing the papers I've started, but between the engagement, teaching, and trying to get over a nasty summer head cold, and other projects I've been rather busy. But I can't complain -- I've had a lot more money than I do now, but I've never been happier. Isn't the adventure of it all grand sometimes?
Gigi and I decided to get out and see a movie tonight, and caught "Transformers" on its opening night here in Victoria.
I can't say that I've had a really good time at the movies for a while. It has just taken me 10 minutes to remember the last movie we saw (Pirates of the Caribbean 3), and I have no recollection of what we saw previous to that. Movies have just been so forgettable as of late.
But Transformers was fun. The special effects were top-notch. My main complaints (which don't really detract from the fun factor) are:
- It was sometimes hard to follow combat sequences due to the fast motion and really short camera sequences.
- Due to the fast motion, there seems to be motion blur involved with some of the Transformers. I'm not sure if this was intentional, or a side-affect of the cold I'm suffering affecting my visual acuity somehow, and
- The signals analysis/"hacking" scenes. Yeah, they Hollywooded-up the computer displays and the overall process in a manner only a really hard-core systems nerd would notice is just plain wrong
Something to watch for: the use of Macintosh computers and displays everywhere, and not hiding the fact (I'll note here that other series use a lot of Apple hardware -- the new Doctor Who series being a good example, but in many such cases the Apple logo, especially on laptops, is covered over with a circular sticker). I wonder what Apple paid for that product placement.
Overall, however, we had a lot of fun. It's probably the first movie in a long time that I'd actually be tempted to go and see again, if seeing a movie didn't cost a significant portion of my income (and as it is, Gigi has to see the new Harry Potter movie next week -- we've already bought our tickets for it). I don't buy a lot of movies, but I might be tempted to pick this one up on DVD when it is released.
For the past few days, Gigi and I have been completely unable to send e-mail from our Mac laptops at home. Mail.app will try to send messages, but by and large they don't go anywhere. I have been having a certain amount of luck using Gmail's SMTP server, but it's a minor pain to try to send a message from one of my University accounts (which I use for the third year OS course I'm teaching this term), or from my .Mac account (my mail personal account), only to get an error dialog a minute or two later asking me to select a different server. Gigi hasn't been so fortunate -- she can't send anything at all.
Tonight I decided to look into this, and as it turns out, without announcement or fanfare two or three days ago my ISP decided to block all access to external port 25 requests. Thus, I had to try and find alternate ports for my .Mac and University servers. .Mac supports SSL, so that wasn't too hard to find, but the University only lists port 25. After some experimentation trying some SSL and SSL alternate ports, I discovered by chance that they also accept SMTP connections on port 26 (which might be new to allow people around the local cable monopoly's port 25 blocking, in which case they ma not be advertising the new port yet).
In the end, everything is working again. The cable company claims it's being done to try to fight spam, but really it seems to me that if more providers do this, there will be organizations that instead of implementing SSL and authentication for SMTP simply do what the University has done and make the service available on port 26, simply shifting the problem to a different port. And even with SSL and authentication for SMTP, does anyone think its going to be difficult for botnet creators to simply query the necessary connection credentials from Windows users Outlook settings and just use them?
Thanks a smegging bunch-a-roonie, Shaw Cable. You've just caused problems for millions of customers for absolutely nothing.
My box is fixed. Gigi's box will have to wait until tomorrow so I can get her to authenticate so I can change her SMTP settings.
Do you still use optical media regularly?
I just finished up a rather large project implementing a robotic blimp. We based the system on at Atmel AT90USB Key device, which is a really flexible little development board with a ton of connectivity. We wired in motors, sonars, a digital compass, and a 2.4Ghz radio. We started off with absolutely no software, so we wrote a Real-time Operating System, device drivers for all the hardware, a protocol stack for the wireless radios, an RS-232 driver, and even an ANSI/VT-100 driver. We built the blimp ourselves (a company donated a massive roll of mylar), and even made our own tool for sealing mylar sheets together.
As you might be able to imagine, this resulted in a lot of output. We wrote tons of documentation, tons of code, had reams of experimental output, and even had a set of digital videos showing various parts of the system in action throughout development (you can see web-friendly versions of them here).
So today, with my team and myself finishing up the last of the documentation, I decided to put it all on a DVD. I grabbed what's left of the spindle of single-sided DVDs, and took them to my G5 in my lab.
I recall my first CD burner -- a 4x4x16 Yamaha SCSI CD-RW drive (I still have it, installed and running in an old machine). Back when I got it in the mid-late 90's, it was just barely on the cusp of becoming a semi-common peripheral. A year or two after I got it, suddenly every computer manufacturer was tripping over themselves to include a CD writer.
These days, the vast majority of systems sold come with CD/DVD burners. They are everywhere. The media has good capacity, and is easily and cheaply available.
And yet today, as I burned the first DVD, I really couldn't remember the last time I had burned a disc. That spindle of DVDs I brought to the lab with me has been in my possession for at least a year and a half, and I'm still not all the way through them.
Thinking about it, I don't have much need for optical media anymore. There are only two cases where they come in useful: burning video DVDs (such as I did today, and burning the occasional MP3 CD for my car MP3 CD player. Both are very infrequent events. For everything else, I use either my laptop, a USB flash key, iPod, or network storage. For files that I need easy access to anywhere, I can put them onto my iDisk. For large capacity, I have a file server with 300GB of storage. Ten years ago I was so excited at being able to store 650MB on a single disc, but now I rarely even use optical media for much of anything (even though I have a dual layer DVD burner at my disposal, and hence can store 8.5GB of data on one disc).
So how about you? Do you burn as many optical discs as you once did, or are removable disc media a rarity in your life as well, supplanted by network storage, USB keys, and iPods?
Implementing an energy efficient apartment: lighting.
I've been making a very conscious effort since I moved to BC back in 2005 to make my home more energy efficient. To start, I should note that I have things comparatively easy -- Gigi and I are living in a one bedroom apartment. However, as we're on the ground floor, with no balcony, and with a balcony directly above the living room window, with a ~3m cliff wall only about 4m away from and parallel to the windows, we get virtually no direct sunlight, thus artificial lighting is pretty much a must for rooms we're using for tasks that require light (which is pretty much anything short of watching the TV or sleeping).
Shortly after I moved in back in the late summer of 2005, I started my mission to replace every light in here with energy efficient lighting. The first to be replaced were the three frosted glass ceiling lamps -- one in the bedroom, and two in the hall, each taking two bulbs, for a total of 6 bulbs. They had primarily 60W bulbs in them, which I replaced with 13W CF bulbs. I also replaced the light in the range hood with the same 13W CF bulb. Two of these Noma branded bulbs also made their way into a desk lamp that also had a 60W bulb in it, and a table lamp of mine that was designed for a 150W tri-light bulb.
The bathroom required decorator globe lamps, so I bought 4 of these, replacing four 40W incandescents with four 9W vanity bulbs made by Globe.
The dining room has a single-bulb suspended ceiling lamp, which had a 100W globe bulb in it. It's on a dimmer, so I replaced it with a 26W CF bulb from GE. This bulb has since died (well within its 4 year guarantee), and I've replaced it with a really old-style fully enclosed CF bulb I've had for 15 years or so, which I don't know the wattage or manufacturer of (post-preview check: it's an 18W SL-18 lamp from Phillips).
The latest replacement was a 300W halogen torchiere floor lamp. Gigi and I got a great deal on a brand new 55W CF torchiere which, after sale pricing and an instant rebate from the electric utility, cost us $35 (CAN). As there is no built-in lighting in the living room, which is our main lamp -- if someone is home, it's probably on. Switching to CF is probably going to save us roughly $60 a year based on my rough usage calculations, so we're going to hopefully see a net savings from this acquisition pretty fast (and if we can sell the old one for $15, we'll have paid off the lamp in savings in about three months time).
The kitchens main lighting has always been via CF tube lighting. I'm guessing it has two 30W bulbs in it, however as I haven't taken apart the fixture to find out (and probably won't), I don't know for certain.
So, from a rough back-of-the-envelope calculation, we've decreased our energy usage in these lighting fixtures from 1190W down to 234W.
We're not quite finished, however. There are still 5 incandescent bulbs in our apartment:
- A small 40W desk lamp, that takes a type S bulb,
- A second halogen floor lamp. This one is smaller, with a flexible head, and is rated for a 20W G4 connector bulb (I can't tell if this is the wattage of the bulb in there, mind you),
- The lights in the refridgerator and oven, which are standard 40W appliance bulbs, and
- The current heavyweight, a 250W infrared heat lamp in the bathroom. As the bathroom has no heater of any sort, this built-in ceiling lamp is the heating system. We virtually never use it.
I'd love to replace the 40W desk lamp bulb with an LED bulb, but I have yet to find anywhere where I can buy one with a type S connector. I'd also love to replace the 'fridge bulb, as it is a heat source, so not only does it use more energy than necessary, the bulk of that energy then needs to be used again by the refrigeration system to remove that heat again. But I haven't found a CF or LED appliance bulb anywhere either.
The over light is probably the hardest to replace, as I'd think the temperatures reached in there would be too excessive for most CF ballasts to handle, and would melt the plastic in LED lamps. Besides which, any heat lost is typically useful in this scenario (as rarely is the light ever turned on when the oven isn't in use anyhow).
The heat lamp is probably impossible to replace. The only way I can see any energy savings from it while still allowing it to do it's job would be to find something that emitted more IR light -- even though the bulb is marked "Infrared", it still emits a lot of visible white light (enough that you can use it as the only light in the room if you wanted to). We virtually never use it, so replacing it with something more efficient would mostly be "because we can", rather than for any actual energy savings.
It's been difficult to measure the savings, due to both the staggered deployment over the course of two years, and what with Gigi moving in back in January (someone is now typically home much more often than before, so the lighting is used more often, and the electricity usage has changed). I'm billed 6 times a year, and the last bill would have only included about two weeks of usage of the new torchiere lamp (our single biggest energy saving replacement to date), so the next bill should hopefully be more en-"lightening".
Next in the series: replacing the old mechanical thermostat with a digital setback thermostat (the apartment uses all electric heating). I'm hoping the next bill will show whether or not this has also made an appreciable difference or not to our energy footprint here in Chateau Yaz.
Best Valentines Ever.
Gather around everyone, for I have a story to tell.
As regular visitors to my irregular /. journal probably recall, I spent last summer working very closely with a woman visiting from Germany (whom in the past I've identified as Rose (not her real name)), together with whom I spent all my social time with outside the office as well, and for whom I was very emotionally attached. You'll also remember the pain I was going through in September after she left.
Let's rewind a bit for a moment, and talk about when she first arrived. She came to Canada knowing nobody here early last March, and I was assigned to show her around. Around the same time, I started dating a woman I had met online, whom we'll call Gigi (not her real name, of course). Gigi and I went out three times, and things were really going well when, without warning, she told me she didn't want to see me anymore. I felt really down, in large part because I had gone through 13 years of first dates which were also last dates. Rose and I were becoming good friends, and she was there for me when I felt really low, with Gigi (apparently) losing interest with no explanation.
Fast forward to the beginning of last October. Feeling depressed having lost Rose, I suddenly get a message from Gigi, to tell me that I was the nicest man she'd ever known, and that she was interested in being friends. Hungry for some companionship (and always having had really liked her), I invited her over for a movie one night in early October.
I expected nothing, but by Thanksgiving weekend a week later (Canadian Thanksgiving, celebrated at the correct time in October :) ), we were officially an item.
Kismet is now making up for lost time. The last 4+ months have been the absolute best in my life. Gigi is an international student (studing for her Masters in a different faculty, so we never bumped into each other at the University at all), with a significantly different cultural background than my own (I'm Canadian, she's Turkish), and when we first got together late last March and hit it off so well, she got somewhat scared, and backed away. However, she had spent the entire summer daydreaming of our short time together. She had never been in a long-term relationship before, and was somewhat scared by the concept, but apparently it grew on her, and I was the guy who was on her mind.
She moved in at the beginning of January, after coming home to Toronto with me for the holidays. Every day since has been domestic bliss. My home is now so full of love and joy that it has completely transformed me. We are hoping to get married for the summer of 2008 (although there are a number of issues for us to deal with to make that happen -- she's not a Canadian citizen (but wants to become one), and she wants to get married in Turkey (so her parents can attend -- they don't have the resources to come to Canada, and don't speak any English)).
Every morning, I wake up, and see her beautiful, peaceful face, and wonder how I went from 13 years of rejection and loneliness to absolute bliss. She does so much for me (as I do for her). I made sure this Valentines Day I gave her all those things I had dreamed of being able to do for all those years (a lot of the cliché things, as she has never had anyone do anything for her for Valentines Day). Every day, I'm so excited to be able to go home.
Including today. I'm at a pretty dull conference right now (I'm here because some people in my research group at speaking here later today, and I'm speaking here tomorrow afternoon. Maybe then I can shake things up ;)), and can't wait to get home and cook her dinner (we don't subscribe to archaic gender roles when it comes to household chores -- I do the vast majority of the cooking, for example).
Every day, I wake up the luckiest man in the world.
Tonight I needed to get a new pair of pyjamas out, so I dug into the drawer to get a pair of bottoms and an old t-shirt out. Tonights selection is a very old t-shirt I have that was given to me in the early 90's with an image of a painting by Robt. Williams called "The Mystic Rabbitmaster".
I've owned this shirt for a long time, and due to its age it's relegated to pyjama-shirt status. Parts of the image and text are a bit faded, but otherwise it's clean, and the stitching is fine, and there are no holes of any sort, so it suffices for the task.
However, in the 15+ years I've owned it, I never really knew anything about the painting or the artist. It was given to me as an impromptu gift (someone gave it to the general manager of the company I was working for at the time, and he gave it to me). So tonight, putting it on, I decided to see if I could learn anything about the painting and the artist in question.
So I typed in "Mystic Rabbitmaster" into Google, and it spat out one result. There are no pictures online unfortunately (at least not anywhere I can find), and no other information about the painting other than the fact that it was included in a card collection called "Crimes Against the Eye". The artists name, painting title, Colloquial title, and Museum Catalog Title are all printed on the back of the shirt (as apparently they were printed on the backs of the cards).
I always find it interesting in this day and age when I type something into Google and find one (or no) results at all. It's rare, but it's always interesting to find those corners of the realm of data that aren't online.
Vista Experiment, Stage 1: Vista Upgrade Advisor
Okay, so it took me a bit longer than I had expected, but I got home a bit early today, my SO isn't home (SO? WTF? Yeah -- I'm saving that for another journal entry one of these days. Sorry gang!), so I decided to sit down and get the Vista install rolling.
I popped in the DVD, and the first thing it prompted me to do is to check and see if my system is Vista compatible. So I started it up, only to discover than instead of starting the upgrade advisor as I had expected, it started Firefox instead so I could download the advisor. There are nearly 2GB of free space on the Vista Business Edition DVD -- why couldn't they put the program on the disc itself?
Anyhow, a minor PITA, but not worth complaining about too much. I'm more interested in the results. So after running for 10 minutes or so (WTF was it doing???), the results have popped up. I haven't read them yet (I figured I'd get this journal entry started), so I'm interested to see what it has to say.
- System Requirements
- Before you upgrade to Windows Vista, there are some system issues you need to address on this computer (2).
- Some system issues might prevent you from using all of the features in this edition of Windows Vista (1).
- We recommend you review your device issues (1).
- We recommend you review your program issues
Hmmm. Sounds a bit ominous. Let's see what the issues are:
- CPU: The upgrade advisor recommends a minimum 800Mhz CPU.
- RAM: The upgrade advisor recommends a minimum 512MB of RAM
- Free hard disk space: I can't upgrade from XP, because the boot drive is only 9.1GB, with only 3.8GB free, and Vista requires 15GB (15GB!!!). It does say I can install to drive G:, mind you, which has 40GB of free space.
- Video Card: It won't run Aero. I wasn't expecting it would.
So, Vista Upgrade Advisor basically recommends I need a whole new system. Let's see what else it says:
- ATI 3D Rage Pro AGP 2x: Not supported.
- Jungo WinDriver: Not supported. I'm not sure what this is, but I think it was installed as part of the Iomega parallel Zip-100 drivers I installed, which...
- Iomega Legacy Parallel Port Drive ...is also not supported!
- Macronix-based Ethernet Adapter: Not supported.
- Sound Blaster 16: Not supported.
What on this system is supported?
- Intel Master IDE Controller
- Intel PCI to USB Universal Host Controller
- LSI Logic Device (my UW-SCSI adapter)
So, looking at all of this, my CPU, RAM, video card, ethernet adapter, audio card, and old Zip drive aren't supported. I don't care about the Zip drive (I hooked it up to see if it still works), but it's hard to run a system with no video card or ethernet card. On the bright side, if all I wanted to do was run SCSI and USB devices apparently I'm golden (with the problem of CPU and RAM being insufficient, mind you).
Okay, so this looks like a bust, and perhaps an end to the experiment. But let's look at the rest anyhow:
- J2SE Runtime v1.5 may have minor compatibility problems after the upgrade,
- Windows Messenger may have minor compatibility problems after the upgrade (huh?)
So, there it is. The experiment might just die right here. I might try to see if I can image the XP drive somehow and try the installation anyways, but the advice from the Vista Upgrade Advisor certainly isn't all that rosy. Not that I was expecting great things to start with, but as this system does run XXP, I figured it should also run Vista with all of the extra video eye-candy turned off. This system runs XP and Ubuntu just fine (well, it installs and runs Ubuntu fine if I give up one of my drives -- the installer doesn't like the fact that I have both SCSI and IDE drives in it).
Fortunately, my computing life doesn't depend on Windows, and doesn't depend on this machine. So for now it will stay an XP machine for those times when I need to do Atmel microcontroller development, and I'll be happy doing the rest of my work on the shineyness Mac OS X Tiger (which has had those fancy video effects and GPU-offload features for more than 3 years now).
Experiment: Vista on an old PC.
Well, my University's MSDN Academic Alliance finally put Vista available for download the other day, so I grabbed a license, downloaded the Business Edition DVD, and will be installing it later tonight. The catch? I'm a Mac guy, but do still have a few PC's laying around, one of which has been running Windows XP SP2 for the last few months. And that system is a P3-450 box from the late 90's.
Here's the hardware:
- Pentium-3, 450Mhz
- 384MB RAM
- 8MB ATI Rage Pro (AGP)
- Symbios-based UW-SCSI adapter
- 9.1GB UW-SCSI HDD
- 40GB IDE drive
- Sound Blaster 16 with WaveBlaster (ISA!)
- 2.88MB floppy, 1.44MB floppy, DVD-ROM, CD-RW, and parallel Zip-100 drives
Now back in the day, this was one rather impressive machine. Lots of drives, and a very fast primary hard drive. Today, however, it doesn't really have much going for it. My laptop is three years old, and has a 1.33Ghz processor and 1.25GB of RAM, and an 80GB hard drive.
A bit about the current software installation (as I'm intending to do an "upgrade" installation first): XP was installed for one reason only: to run some Atmel microprocessor development tools for their AT90USB device. As such, the system has the following installed on it (and nothing else):
- XP SP2 with all the latest updates
- Microsoft Windows Defender
- Windows Media Player 11
- Firefox 2.0
- Open Office 2.0
- Atmel Studio and FLiP
- Grisoft AVG Free anti-virus
That's it. Most of this software has never been used, and almost every other piece of junk XP installed has been removed (like Outlook). I've never run OpenOffice on the machine, nor have I ever run Windows Media Player. IE7 has only been used for Windows Update. I don't use the system to surf the web -- Firefox is just used to read some HTML-based documentation for the hardware I've been coding against.
As such, this is a pretty pristine Windows XP install. It was installed from a clean drive (previously the system was a Debian box, but Debian and Ubuntu both started to have serious issues with the UW-SCSI drive when I installed the 40GB IDE drive). This XP system is probably going to be a whole lot cleaner than 99% of the XP systems Vista would be installed over.
I'm not expecting Aero to run (of course), but I'm curious to see how it performs otherwise. I don't know if the Atmel tools will work on Vista, and I'm interested to see how other items react. Will the system thrash due to only 384MB of RAM? Will other, non-Aero effects run slowly due to the 450Mhz processor? Will this near pristine XP system upgrade cleanly?
I don't care to run Vista -- I think Microsoft's software design is terrible. I don't like anything they've produced since "Decathalon" for the original IBM PC. But I am curious to find out if things are going to be as bad for old PC owners as some people seem to think. I'm not going to complain if my old system won't support some of the more fancy aspects of Vista -- but will it continue to work as a workstation for my microcontroller programming projects, and some basic web browsing?
Stay tuned. I'm burning the DVD tonight, and will be installing it within the next few days (as time permits).
Did you notice what was missing in today's keynote?
While everyone is excited and talking about the products Steve Jobs announced today (the iPhone -- and I'm excited about it myself), nobody seems to be talking much about what wasn't announced: a new iLife Suite for 2007. iLife has been announced at MacWorld each of the last 3 years, and most people felt this was a slam-dunk prediction.
Maybe they want to integrate new features into the 2007 edition that work specifically with Leopard, and that we'll hear about it when Leopard is launched in the new few months.