April 30, 2006

links for 2006-04-30

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 29, 2006

links for 2006-04-29

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 28, 2006

The Lost Realization of Portable Virtualization with Windows

Filed under: Virtualization, Reviews | Lindsay @ 9:05 am

A while back I wrote a post about how using VMs has made my life as a developer significantly easier. Two of the items on that list were things I hadn’t tried yet but just assumed were possible: loaning my VM with a co-worker if I was on vacation so they could continue work in my evironment and bringing my VM home on my portable harddrive instead of my laptop. But I wrote too soon (and I apologize for not testing that first!). When I finally decided to try out the VM at home, I ran into problems with Windows activation. And this issue would rule out the loaning to my co-worker scenario as well. Apparently VMs virtualize all of your “hardware” except for the processor in your host computer. Since the processor changed from my work computer to my home computer, it triggered the activation.

Now, for work, I have an MSDN license and could potentially get a volume license which would eliminate the re-activation, but I have several problems with that solution:

  • I spent a large amount of time setting up my base VMs and then configuring the development environments on copies of them. I don’t want to (nor do I have time) to start all over again building my chain.
  • I didn’t just want to use this for work. I wanted to install Windows XP with my personal retail license in a VM and be able to carry around some personal apps on it.
  • I just have a problem with the fact that I’m one person using one VM with a retail licensed copy of Windows and I can’t move the VM from machine to machine on a frequent basis (multiple activations would cause you to be locked out pretty quick with a retail license). I don’t think that kind of usage actually violates the intention of the Windows EULA and might fall under the wide umbrella of “fair use”, but it’s certainly not piracy, and shouldn’t be penalized as such!!

So I did some research and came up with an extremely cumbersome potential solution that was a variation on an activation file restoration procedure (which I won’t expand on since I was advised of legal repercussions) and asked in a VMWare forum if anyone had tried my solution or knew another workaround. Someone responded with a quote from the Windows EULA:

The term “COMPUTER” as used herein shall mean the HARDWARE, if
the HARDWARE is a single computer system, or shall mean the
computer system with which the HARDWARE operates, if the HARDWARE
is a computer system component.

you may install, use, access,
display and run only one (1) copy of the SOFTWARE on
the COMPUTER.

These statements above are contradictory as far as VMs are concerned. What is a COMPUTER really when you’re talking about a VM? It’s only because the processor is used by both the guest and the host that they might be considered a single COMPUTER. This leads me to think that VM use under normal circumstances is in violation of the EULA: if you’re running a VM with an installation of Windows on a Windows host, then you have two copies of the SOFTWARE running on the same COMPUTER. So is the VM a COMPUTER itself? I’ve seen many people ask “If I have a VM do I need a separate Windows license for the guest OS or can I use the host’s?”. And though I’ve seen different answers, they’re all basically either someone getting no official answer from Microsoft or someone saying that, yes, you do need a separate license, which indicates the VM is it’s own COMPUTER.

So you can’t have it both ways: that’s just not fair to consumers. It either is an independent COMPUTER or it’s not. If it is, then I should be able to use my licensed copy of Windows via a VM hosted wherever I want because the VM is a self-contained COMPUTER. If it’s not, then I only need one license to run a VM with Windows on a host of Windows since they’re both on the same COMPUTER and it still shouldn’t matter whether I used my VM on one or more COMPUTERs as long as each COMPUTER had a valid license for Windows.

To me, not being tied to your hardware is a major promise of Virtualization! Yeah, VMs are great for enterprise-level server resources allocation and for Q/A testing and for IT departments to deploy to workers as a replacement for PC images, but they have so much potential for consumer applications as well. Being able to wrap up things in a nice tidy package and have them accessible as long as there’s hardware close by that can run them is liberating and opens up so many possibilities.

  • If a VM is not an independant COMPUTER, then you could release things such as Virtual Appliances for Windows which are currently only possible under Linux and other free OSes.
  • Software vendors could release demo versions (or full for that matter) of their software on VMs which would mean no installation and uninstallation hassles for users and ensure that the environment was properly configured to best show off the software.
  • Companies could save hardware costs for their telecommuting employees by allowing them to just use a VM on their home computer for VPN access and the company’s licensed software.
  • And, of course, there’s still the idea of travelers not being required to carry a laptop through airport security.

But those possibilites and many more are currently eliminated by Windows activation.

TAD always tells me that I should write a letter to someone when I get upset about something, so this time I decided to take his advice. Here’s my request to Microsoft:

Dear Mr. Gates and Mr. Ballmer,

The time has arrived for Microsoft to come out with an official policy on licensing the Windows OS for use in VMs one way or the other. Either VMs are independent COMPUTERs or they are not and the licensing restrictions need to be fully defined for whichever situation is the case. Regardless of that decision, a way for the user to identify to the Windows installation that it is on a VM should be put in place. That being done:

  • If VMs are independent COMPUTERs, the activation scheme must be changed so that activation is not triggered by moving a VM to other HARDWARE.
  • If VMs are not independent COMPUTERs, then the license at whichever host COMPUTER the VM is running must be automatically picked up by the VM, or an easy method must be provided for the user to “register” the VM with the Windows host to avoid re-activation.

Don’t deny the benefits of Virtualization to your customers! Please realize that your customers, who have paid you for their licenses, are not pirates and shouldn’t be treated as such. Demonstrate the respect you have for your customers by sheilding them from the inconvenience of the torture of having to endure hours on the phone trying to get someone help them unlock their copy of Windows that has been activated too many times for lack of foresight of this reasonable VM usage.

Thank you for your focus and efforts in resolving this issue.
Love, Your pal,
Lindsay

» » » » » » » » » »
, , , , , , , , ,

April 27, 2006

links for 2006-04-27

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 26, 2006

links for 2006-04-26

Filed under: Bookmarks | Lindsay @ 12:17 pm

Using conditional special functionality with XSLT imports

Filed under: HowTo, XSLT | Lindsay @ 10:34 am

I solved this problem for someone recently and thought it might be useful to other people in the same situation.

The Problem: how to trigger special functions in a common XSLT file…

There are several XSLT files, one with common functionality shared between all of the others which will be imported into the others. Particular templates in Common.xslt had parts that only needed to be activated if the Common.xslt was imported in specific “host” XSLTs. The problem is that there’s no way to know from Common.xslt whether it should do the special functionality because its unaware of it’s host.

The Soultion: xsl:imports overriding

This can be fixed by exploiting the template overriding property of <xsl:import>. You can create a template in Common.xslt that contains a value you may test for and override it in any of the host XSLT files that need to use that special functionality.

Common.xslt

<xsl:stylesheet version=“1.0″ xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
<xsl:output method=“html” version=“4.0″ indent=“no” />

        <xsl:template name=“caller”>common</xsl:template>

        <xsl:template name=“commontemplate”>
                <xsl:variable name=“usespecial”><xsl:call-template name=“caller” /></xsl:variable>
                <xsl:variable name=“whichtype”>
                        <xsl:choose>
                        <xsl:when test=“$usespecial = ’specialfunction’”>special</xsl:when>
                        <xsl:otherwise>normal</xsl:otherwise></xsl:choose>
                </xsl:variable>
                The main XSLT uses <xsl:value-of select=“$whichtype” /> functionality.
        </xsl:template>
</xsl:stylesheet>

SpecialFunction.xslt

<xsl:stylesheet version=“1.0″ xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
<xsl:import href=“common.xsl” />
<xsl:output method=“html” version=“4.0″ indent=“no” />

        <xsl:template name=“caller”>specialfunction</xsl:template>
        <xsl:template match=“/”>
                <html><body><xsl:call-template name=“commontemplate” /></body></html>
        </xsl:template>

</xsl:stylesheet>

Results:

<html><body>
The main XSLT uses special functionality.
</body></html>

NormalFunction.xslt
“caller” template is missing…

<xsl:stylesheet version=“1.0″ xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
<xsl:import href=“common.xsl” />
<xsl:output method=“html” version=“4.0″ indent=“no” />

        <xsl:template match=“/”>
                <html><body><xsl:call-template name=“commontemplate” /></body></html>
        </xsl:template>

</xsl:stylesheet>

Results:

<html><body>
The main XSLT uses normal functionality.
</body></html>

You can modify this to make as many different types of special functionality as you need.

» » » » » »
, , , , ,

April 24, 2006

links for 2006-04-24

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 22, 2006

links for 2006-04-22

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 21, 2006

links for 2006-04-21

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 20, 2006

links for 2006-04-20

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 19, 2006

links for 2006-04-19

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 18, 2006

links for 2006-04-18

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 17, 2006

Google Physics

I find this quote from the Washington Post about the new Google Calendar pretty thought provoking:

With Google Maps, they were starting to control space, and here they are starting to control time.

Welcome to the Googleverse.

links for 2006-04-17

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 16, 2006

Getting great Prints on the Canon i9900 with Photoshop

Filed under: HowTo, Photoshop | Lindsay @ 11:30 pm

I love taking pictures and creating graphics. I can spend hours editing photos and crafting kaleidoscopes and other interesting things in Photoshop. I have super quality, top of the line (when I purchased it) Canon i9900 wideformat photo printer that I couldn’t have been more excited to bring home and play with. But after several attempts, it wasn’t long until I rarely printed any of my images.

Printing has always been a frustrating process. Pictures have always turned out too dark, too low-contrast or with horrible color casts. Getting a good print always meant a lot of test copies or strips while I tweaked levels or curves and held my breath as the print came out. It never looked like it did on my screen. I wasted way too much ink, paper and time trying everything from installing new printer drivers, screen calibration techniques, and untold combinations of printer settings and profiles. And I was always disappointed. Until yesterday.

I think I have finally figured out a way to make my prints come out reasonably close to what I see on my monitor and it’s a method that seems to work consistantly across different types of pictures with different color combinations. I wanted to share what I found since I’m sure I am not the only Canon I-Series printer owner who’s had the same types of frustrations and Canon doesn’t seem to offer much documentation or help on how to optimize your prints. Having said that, you still may have to do some tweaking (using my exact numbers may just get you in the ballpark) but the core of the “secret” should be easy to apply to your own prints.

Prepping your image for print

  1. Calibrate your monitor. This is very important. There are many methods to do this. Photoshop comes with Adobe Gamma as one alternative, for instance. If you have access to one, I highly suggest using the Spyder 2, which is what I was able to do. If you can’t calibrate your monitor, there’s no point in continuing the steps. You’ve got to have a decent representation of colors on your screen.
  2. Open your image in Photoshop. Go to Edit->Assign Profile. If it’s not already selected as your Working RGB, choose sRGB ICE61966-2.1.
    sRGB Profile Assignment
    This step has many schools of thought, but again, this is what worked for me.
  3. Do whatever adjustments to the image to make it look how you would like it to look once printed such as color adjustments, levels, curves, cropping, etc.
  4. Click on the top layer in your layers list and create a new Levels adjustment layer on top of it: Layer->New Adjustment Layer->Levels
  5. With RGB selected in the Channel list, enter 1.35 in the middle box for Input Levels
    RGB Channel in Levels - Set mid Input Level to 1.35
  6. Here’s the secret! For each of the Channels (Red, Green, Blue but not RGB), if the histogram (black wave looking thing) doesn’t reach all the way to the right, slide the little white triangle towards the left until it meets the border of the histogram. See the next two images for details (my example picture only needed Green and Blue adjusted).
    Levels - Green Channel
    Levels - Blue Channel
    Update: After testing some more images where the histogram didn’t span all the way to the left (unlike my first tests), I have found that you should also move the black triangle on the left if it doesn’t border the histogram edges.
  7. This step may vary depending on the picture. I have found that adjusting the midtone Input Levels in the Green channel down (within the range from 0.90 to 0.75) and the Blue channel up (up to about 1.10) seems to correct some color casts. This seems to depend on which colors I want to tone down in the print and is the main thing you’ll have to tweak if it doesn’t come out right the first time.
    Update: I seem to have found a pattern here… if you don’t have to move the the triangles in the histogram, leave the value at 1.00, otherwise use the values specified above fpr the appropriate channel. The midtone value for Red can also be changed, in the same value range as Green.
  8. In the Options section on your Print->Print with Preview screen, make sure when you print that the Printer Profile chosen the same one that you chose for the image at the first step: sRGB ICE61966-2.1. Having the two profiles match seems to make a difference. Also, it is important that Let Photoshop Determine Colors is set for Color Handling.
    Print with Preview Options
  9. On the Canon printer properties dialog, make sure that Color Adjustment is Manual so that the printer will trust Photoshop to make the color choices.
    Color Adjustment - Canon print dialog
  10. Print it out!

Your image will probably look pretty washed out on your screen. This is to be expected.

Screen without adjustment level Screen with adjustment level
Without adjustment level With adjustment level

When you print and compare it to your monitor, make sure that you turn off (click the eye) the printing adjustment layer. Your print should look like the “original” without that layer. If it’s close but not quite, tweak the numbers for midtone Input Levels on the Blue and Green channels. After a few times you should get a feel for what those numbers need to be.

This is not a perfect method, but so far it has taken about 90% of the guesswork and frustration out of printing for me. Again, I don’t know that it will work for other people, so please let me know if it does or doesn’t! And please, print out some SMALL tests before you waste a lot of paper and ink! Good luck!

» » » » » » » » »
, , , , , , , ,

April 14, 2006

1337 Eyechart

I love this eyechart! LMAO!

April 13, 2006

Google Calendar has arrived!

Filed under: Reviews | Lindsay @ 1:31 pm

Yay for Google! They’ve got another winner. I’ve been playing with GCal all morning and I’m pretty impressed. There’s still some room for improvement, of course, but Google has fixed one of my main peeves with 30Boxes: setting up repeating events and altering a single instance or the entire series is easy!

What I like:

  • Creating calendars for different aspects of your life is easy
  • Setting permissions on those calendars (and events) at different levels is fairly easy
  • Typing in some keywords in the title when creating an event automatically populates some fields (similar to 30Boxes) such as when I type in “Weekend trip with friends in Sedona”, Sedona gets placed in the Location field for me. That’s nice.
  • You have an Agenda view of your dates which is like a list of all most recent upcoming events on your calendars. This alternate view is nice and very useful for forecasting availability over more than one month or viewing annual events (like on your Birthdays calendar).
  • Showing and hiding the different calendars is just a matter of a click, and this comes in handy especially for the Agenda view.
  • Being able to share calendars with select people and give them rights to manage the calendar entries as well is a wonderful feature
  • Duplicating events between calendars is just two clicks
  • There is a URL based API you can use on your blog/website to create events with one click, so that you can publish an event that other people can instantly add to their own calendars.
  • You can set up reminders to be sent in advance of events, selecting time periods from 10 minutes to 1 week, and the reminders can be sent as email, SMS to your mobile phone or as a popup window (assuming you have GCal open on your desktop).

What needs improvement:

  • There’s no html view of your public calendars (to non Google users).
  • Finding other people’s public calendars is not easy or intuitive… I still haven’t figured out how to do it without having the url for the calendar’s RSS feed
  • There’s no integration with GMail even though the help says there is… this may be a timing issue as they roll updates out to the various Google servers
  • There’s no integration with the Contacts in GMail… most of my events revolve around people I know so I would like to see those connections between my contacts and events
  • There needs to be a way to add TODO list type functionality to this. So the tasks can show up on your Agenda, but not necessarily be bound to a hard completion date
  • There needs to be a way to “share” an event between two calendars instead of just “duplicating” it, so that if you change the event it gets updated on all the calendars that reference it
  • There should be a programmatic API for adding calendar entries to public calendars or calendars that are shared with you. For instance, to allow people to come to your blog and propose a date for a meeting or other event and have it posted to your public calendar for your site. Basically the opposite of the way the published event button works now.
  • There should be a way to set up more than one reminder for an event, such as for a birthday, to get a reminder at 2 weeks from the day and another at a week, just to make sure that you actually get a present in time!
  • You should also be able to set up the delivery type for each reminder. Currently you set that at a global level, but I’d rather set it so that each reminder might be delivered differently (mainly split by the period of time…).

What’s ripe for 3rd parties:

(put on your developer hat!)

  • An HTML view of your public calendars. Someone out there will build this soon, I’m sure.
  • Wordpress/TypePad/Blogger widgets to incorporate your calendar
  • A manager to sync your events to and from GCal other services like Eventful, Trumba, and even 30Boxes.
  • An Outlook add-in that automatically (or easily) publishes your events to GCal

Overall, it’s a great start and it’s going to be a lot of competition for some of the other options out there. Even with the issues I mentioned, I’m still pretty excited about what I’ve seen so far. I can’t wait to see what they do with it next.

» » » » » » »
, , , , , ,

links for 2006-04-13

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 12, 2006

links for 2006-04-12

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 11, 2006

links for 2006-04-11

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 10, 2006

links for 2006-04-10

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 9, 2006

Jumpcut: Now I can do something with those video clips.

Filed under: Videos, Reviews | Lindsay @ 2:15 pm

I take lots of short video clips with the handy video feature of the camera I carry around in my purse, but never feel comfortable uploading the “raw” clips to YouTube, Vimeo, or the other service out there. I don’t have any video editing software on my PC mainly because I can’t justify the cost of the decent editors so if I want to polish anything I have to jump on my son’s iMac and use his iMovie app which, though very powerful, I don’t like using for two reasons: 1) in the most recent version, they have changed the output options so it’s extremely confusing to get the quality/filesize combination that I want and 2) any use of the Mac is a frustrating experience for me because I’m so completely PC indoctrinated that the supposed “intuitive GUI” of the Mac is not intuitive at all.

Enter Jumpcut. Mike Arrington and Pete Cashmore had reviews of this site last week and I thought I’d give it a try with a clip I shot yesterday at a RC Airshow that I attended with my family.


Overall, using Jumpcut to upload and edit the clip was a good experience, though I encountered a few usability issues, I was still able to add a couple of effects and some titles to my short clip of some RC aerobatics. Here are the pros and cons:

Pros:

  • Accepts most major raw video formats, like AVI (what my camera uses) unlike some other services. Though they said that they’ve seen problems with AVIs, mine worked fine.
  • Uploading can be done by email attachment so you can email yourself video from your cameraphone
  • There is direct import from Flickr for pictures (to create slideshows or mix with your clips)
  • I didn’t see any limitations on how much stuff you can upload. I would be pleasantly suprised if things remain that way, but for now that’s a nice feature!
  • Adding titles and effects was relatively easy once I’d figured out the steps
  • Titles, effects, transitions, audio, etc, can be placed on a clip and controlled by sizing a slider bar, a nice intuitive way to do things once you realize that’s what the bar is for.
  • The preview feature is very handy for testing out the entire effect of your additions to clips
  • There are lots of ways to share your clips with the world and with your friends/family, including integrating it as an object in your blog (as above).
  • Remixing other people’s clips into something your own looks like it might have some interesting potential

Cons:

  • There’s no way to review the FAQ’s or Quick Guide once you’re in the editor: the footer links on the rest of the site don’t appear on the editor page. This makes it difficult when you’re learning and not sure what everything does from the tooltips.
  • Uploading a clip while in the editor didn’t give me enough feedback to know that my clip was in the process of being uploaded and I ended up aborting the upload. I had to go back to My Home to upload my clip and see the progress.
  • Sometimes the effects simply did not get applied. Even when I added them and they appeared in the effects list. I had to remove the effect and re-add it before things corrected themselves.
  • There needs to be persistance of entered data even though the user has encountered an error. When publishing my finished clip, I carefully and thoughtfully filled out the title, tags, description and several other fields on the publish page. When I tried to save my information, I got an error saying that one of my tags was shorter than 3 characters and was not allowed, but it also got rid of all the information that I had entered. This was more than a little annoying since I hate duplicated effort and I’m sure that my second set of entries wasn’t as nice as the first.
  • There is no way to download your edited video that I can tell, and even if you could, it would be in Flash format.
  • Where is the RSS?? I want to be able to subscribe to “directors” and tags for topics that I’m interested in so that I can be updated when new content appears.
  • There doesn’t seem to be a way to resize the blog widget for your video. That’s unfortunate since it kind of wrecks my layout being about 100px too wide. It would be nice if it was adustable (considering that the clip doesn’t even fill the whole width of the widget anyway!)

Despite the cons, I was able to register on the site, upload a clip, add a title and two effects and publish it in about an hour. I think now that I have the learning curve down, I should be able to do the same thing in about 15 minutes or so. That’s about the right amount of effort that I’m confortable with for publishing clips to the web. Jumpcut certainly isn’t a tool to produce professional quality video, but for the purpose of polishing and remixing some less-than-professional clips from my small camera or phone with the intention of quickly and easily sharing them with friends, family and blog visitors, the service fits my needs pretty well. I think I see more video in my future!

Bonus: Here are a couple of other videos on Jumpcut I thought were creative:
Save the Peeps!
Box-Car Racers

» » » » » » » » » » » » »
, , , , , , , , , , , ,

April 7, 2006

links for 2006-04-07

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 6, 2006

links for 2006-04-06

Filed under: Bookmarks | Lindsay @ 12:18 pm

April 5, 2006

links for 2006-04-05

Filed under: Bookmarks | Lindsay @ 12:19 pm

April 4, 2006

links for 2006-04-04

Filed under: Bookmarks | Lindsay @ 12:17 pm

April 3, 2006

links for 2006-04-03

Filed under: Bookmarks | Lindsay @ 12:17 pm