Archive for the ‘software’ Category

How to get Dragon NaturallySpeaking to dictate into OS x applications

Friday, January 11th, 2008

iListen is bullshit. There, I said it. The accuracy rate isn’t nearly as good as Dragon NaturallySpeaking. So, I was determined to get Dragon working under OSx, and not just in virtualization. I wanted Dragon to dictate into Camino, Pages, Adium, etc. This how-to explains how I did it. Please bear with me, this is my first how-to.

Warnings

1. If you are a newbie, you may need help for this. A lot of things can go wrong, and this is not the most detailed how-to.
2. I have tested this on exactly 1 hardware setup: mine. I have an Intel-based Macbook connected via ethernet cable to a router. I am using a USB Logitech headset.
3. I admit, the resulting set up is a little buggy.

What you will need

1. OSx Leopard (this may work in other versions, but I have not tried it)
2. VMware Fusion (I use the full version, not the demo)
3. Windows XP installation disk
4. Dragon NaturallySpeaking 9 (Again, may work with other versions)
5. Win2VNC
6. At least one gig of RAM

Part one: installing Dragon

0. Turn off Time Machine (under system preferences –> Time Machine)
1. Install VMware Fusion (this should be pretty simple)
2. Create a Windows XP virtual machine inside VMware fusion, and install Windows XP in it. This should be pretty straightforward
3. When the installation is over, shut down the Windows XP OS, but don’t close VMware
4. go to Virtual Machine-> settings-> memory and set the memory allocated to the virtual machine to at least 512 MB. If you only have one gig of RAM, don’t go any higher.
5. Restart the Windows XP virtual machine
6. Plug in your headset. If it is a USB headset, it will show up at the bottom of the VMware window as a little USB connection symbol. Click on the symbol to assign the headset to the VMware window. When the symbol turns blue, the headset is connected.
7. Put the Dragon CD in the drive. (If you have the CD as an ISO, you can mount it in OS X and then access it from within the virtual machine, as long as it’s shared.)
8. double-click ISScript1050.MSI. you need to install this before you install Dragon. When it’s done,
9. double-click Dragon NaturallySpeaking 9.MSI (it took me a couple tries to install Dragon, as the installation crashed; however, it picked up where it left off and installed without issue the second time.)
10. go through the Dragon set up. If you have audio quality problems, and you have a USB microphone, make sure it’s plugged directly into the computer. Plugging a USB microphone into a USB hub can increase distortion. If you still have audio quality problems, look around the web for pointers. You’re not the first person, and you won’t be the last.
11. You’ll have to read at least one train story (I think) to get started.
12. Once Dragon is configured, open up WordPad and give it a whirl — if it doesn’t work within the virtual machine, it won’t work outside, so make sure you can dictate within VMware before going on.

Part two: dictating into OSx applications

1. In OSx, go to system preferences –> sharing, and turn on screen sharing
2. Click computer settings, and make sure both boxes are checked - don’t forget to enter a VNC password. Leave the screen sharing panel open
3. In VMware, click on the network icon on the bottom right-hand server, and select the bridge option. This connects your virtual machine directly to your home network, and is necessary to get into Win2VNC working.
4. Install Win2VNC.
5. Start Win2VNC, and copy the server info from the OSx Sharing Panel. Only enter the numbers. E.g., mine read vnc://192.168.0.52/, so I entered 192.168.0.52 into Win2VNC. Press enter
6. It should ask for a password. Enter the password you used in the os x sharing panel.
7. If it connects, a little symbol will appear in the task bar. You can change the settings of Win2VNC by right-clicking this symbol.
8. Start Dragon and turn the mic on (the virtual taskbar mic that is)
9. Move your mouse slowly to the right edge of the screen. When the mouse gets to the edge, it will jump to somewhere on the OS X screen (don’t run VMWare in fullscreen mode)
10. Open your favorite OSX editor and start talking.
11. Turn Time Machine back on, if you must.

Known Bugs

1. While using this setup, I find that the Apple VNC Server is very processor intensive, which I suspect indicates some kind of infinite loop going on.
2. Once you’ve started Win2VNC and moved your mouse back to OSx, you’ll have to disconnect the VNC client (by clicking the icon in the OSx menu bar) to get back to the VMWare window.

Conclusion

If you try this, please let me know (in the comments) how it goes. If you figure out what’s causing the above bugs, or how to fix it, by all means share it with the rest of us.

I dictated this entire tutorial into Camino using Dragon NaturallySpeaking configured as described. Good luck.

Top Skills Wanted by Agile Employers

Wednesday, September 26th, 2007

I’ve often read lists like this one, that suggest the skills IT employers want. Well, today at the Agile Vancouver conference, a room full of agile development employers was asked what they look for. I was expecting “machine learning,” “security,” “mobile applications,” and maybe “artificial intelligence.” Nope.

Here is the list they gave:

  • Understanding principles of object oriented development
  • Conceptual understanding of relational databases
  • Knowledge of [design] patterns
  • Ability to think abstractly
  • Basic accounting
  • Understanding of the Software Development Life Cycle
  • Ability to prototype to the correct level
  • I’m not making any claims about the generalizability of this list. I’m just throwing it out there to let you know that maybe some of those popular lists floating about the web are not consistent with what one room full of presidents, CEOs and team leaders spent an hour and a half discussing.

    Top 5 Reasons Software License Agreements are Unlawful

    Wednesday, September 5th, 2007

    A Software License Agreement is a contract between a software producer and a software user that grants the user a license; an End-User License Agreement (EULA) is a Software License Agreement that indicates terms of use. EULAs are fine in principle, but the way many EULAs are written makes them legally meaningless, unenforceable nonsense. This article explores five reasons why EULAs are bogus: the first three are based on legal and commonsense principles, the last two are specific to US laws.

    1. One Way Contract

    In common law systems, for a contract to be legally binding, both sides must provide “consideration.” When you buy an apple, you give money and you get an apple. The money and the apple are consideration. Many EULAs have a clause to the effect that the Software Provider can change the terms of the contract at any time, without notice. In other words, after you have agreed to the contract, the Provider can remove all of its obligations from the contract, and change your obligations to whatever it wants. I call this a one way contract because you are bound by the contract, but the Provider is not, because the Provider can just change it. This means the Provider has not given consideration, and the contract is invalid.

    2. False Advertising

    Often times, the advertising for a software packages makes promises that the software does not keep. Voice recognition software is a prime example. If you buy software that doesn’t work as promised, any contract you may have entered into is null and void. It’s like ordering a car off Ebay and finding out when you get it that it won’t start. If the ad said the car was in working order, the sale is invalid.

    3. Agreement Unavailability

    When you buy software at a store, you don’t see the agreement. Usually, you don’t see the agreement until you’ve opened the box and tried to install it. Some EULA’s say, if you don’t agree to this contract, return the software to the vendor for a full refund. Except, the vendor won’t take it back because it’s open. Does this make sense to anyone?

    4. Adhesion Contracts

    In some countries, such as the USA, a Contract of Adhesion or Standard Form Contract is a take-it-or-leave-it contract with no negotiation and unequal bargaining power between parties. If a term in an Adhesion Contract is outside the normal expectations of the weaker party, it is not enforceable. For instance, terms that say ‘the Provider is never liable for anything, ever,’ or ‘the Povider can change the terms of the contract whenever we damn-well please and to whatever our lawyers can dream up’ would be considered unreasonable and not enforceable.

    5. Unconscionability

    In same countries, a contract is unconscionable if the consideration from one side is so dismal as to make the contract unfair to one party. For instance, if you buy software that crashes every five minutes or produces the wrong outputs, it’s not worth the money you spent on it, and therefore the contract is unconscionable. Unconscionable contracts are not enforceable as-is and courts have a fair bit of leeway in dealing with them.

    On Liability

    In closing, not everyone can exempt themselves for the damage done by their crappy software. An open source programmer who makes no claims and takes no money for his or her work is perfectly safe in declaiming responsibility. Microsoft, Oracle, Cisco, IBM, etc. are not. The difference is in their advertising. Lying to customers about one’s products is generally illegal. If GE makes a hot water boiler that explodes and ruins someone’s basement, GE is responsible. Similarly, if Oracle claimed that its database software safeguards information, but an actual Oracle database spontaneously emptied itself, Oracle would be responsible: not because it broke the contract but because it lied in the advertising.

    Now if everybody would please stop accepting these bullshit EULAs, we might foster some responsibility in the software community.