Saturday 5 June 2010

How to install old hardware in Windows 7 when no drivers are available?

Suppose you have just bought a new computer with Windows 7 installed but have old hardware that worked in Windows 2000, Windows XP or Windows Vista but doesn't work on Windows 7 (no new driver made available by the hardware company or driver complicated to install) do not throw it away and buy new hardware. Here is a trick to get it to work on your new system for free.

In my case I had two items of hardware that worked on Windows XP but caused a problem on Windows 7: A Lexmark All-in-one X74 (X75) printer-scanner and a Konika Minolta QMS Magicolor 2300 DL (W) color laser printer. Note: The Minolta does have a driver but the installation involves the complicated step of installing a new firmware directly on the printer. Something I decided to avoid if possible.

TBH I was a bit annoyed with the hardware companies Lexmark and Konika Minolta for not supplying a decent driver for Windows 7. IMO that is very lousy support. I was also initially angry with Microsoft for releasing a new operating system without making sure that old harware could be reused on it. I then realised that Microsoft have issued an XP emulator named XP Mode:
http://www.microsoft.com/windows/virtual-pc/download.aspx


This can theoretically help to run old XP software and XP drivers. The big problem with XP Mode is that it is not available to users running Windows 7 Home Premium, only Windows 7 Professional, Windows 7 Enterprise or Windows 7 Ultimate. As I have Home Premium and it would cost more than 100 CHF (more than 100 dollars) to upgrade I decided that that was not an option. I am sure that 90% of the people wanting to use XP Mode will have Home Premium installed as companies can afford to replace their hardware regularly anyway. Thanks Microsoft!

The solution I found is to install another emulator (virtual machine) called VMware Player 3.1 and available free of charge from the VMWare website:
http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0

The only condition for it to work is to still have the old Windows XP installation CD available somewhere. Though you might still be able to get it to work by installing a Linux version if the hardware has a Linux driver.

The installation is very easy. Simply install VMWare Player then click on "Create a New Virtual Machine" you will then be asked for the Windows XP installation CD you then just need to enter the activation code. The full installation will then take about 40 minutes like a normal XP installation would.

The Player simply runs as a window inside Windows 7 like any other software would. You then simply need to open a browser in Windows XP and install the necessary drivers for your old hardware. Plug your old hardware into your computer then click on the small icon that appears at the bottom of the VMWare window and choose to connect so that VMWare knows that you want the hardware connected to your Windows XP emulator. You can then transfer files from Windows 7 to Windows XP by either Copy-pasting or creating a shared folder in Windows 7 (like you would do on a shared network). Very easy.

If this article was of any use to you please add a comment specifying the type of hardware (e.g. printer, modem, etc...), the make and the model for which you couldn't find the necessary Windows 7 driver so that other people with the same problem can find the information faster. Thanks

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share

Sunday 24 May 2009

What is Java CAPS?

CAPS stands for "Composite Application Platform Suite" and is a Sun Microsystems toolkit that facilitates Enterprise Application Integration (EAI) using a Service Oriented Architecture (SOA) approach.

© Copyright Sun Microsystems

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share

Thursday 7 May 2009

Internet Explorer (IE) accelerator for Google Calendar

Accelerators are a nice new feature in Internet Explorer 8 (IE8). You can highlight text, click on the accelerator icon and the text gets sent as a parameter (GET or POST) to an Internet-based application. It can be used for example to send the contents of a webpage to Windows Live Mail, Gmail or Yahoo! Mail, look up a word in Encarta, Wikipedia or Dictionary.com, add a bookmark to Facebook, del.icio.us, Digg or Reddit, look-up a street address on Windows Live Map, Google Maps, Yahoo! Maps or MapQuest, translate a word on Windows Live Translation, AltaVista’s Babel Fish or Google Translation etc.

I was looking for an accelerator for Google Calendar but couldn't seem to find one so I created my own.

It is surprinsingly easy to create an accelerator. All you need is to host an XML file on a publicly accessible website:

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
<os:homepageUrl>http://www.happyads.ch</os:homepageUrl>
<os:display>
<os:name>Google Calendar</os:name>
<os:icon>http://www.google.com/accounts/calendar/favicon.ico</os:icon>
<os:description>Add to Google Calendar</os:description>
</os:display>
<os:activity category="Add">
<os:activityAction context="selection">
<os:execute action="http://www.happyads.ch/googleCalendar" method="get">
<os:parameter name="action" value="TEMPLATE" type="text" />
<os:parameter name="text" value="{documentTitle}" type="text" />
<os:parameter name="dates" value="{selection}/{selection}" type="text" />
</os:execute>
</os:activityAction>
</os:activity>
</os:openServiceDescription>


and create a button linking to the XML file:

<button id="myButton" onclick="window.external.AddService('http://www.happyads.ch/googleCalendar/accelerator.xml')">Add Google Calendar Accelerator</button>

As dates can come in several formats I have used a website I own to do the date parsing: http://www.happyads.ch/ (the parsing is done using the PHP language). Once the date has been parsed and transformed into a Google Calendar compatible date (yyyymmdd e.g. 20091231) it is then automatically forwarded to Google Calendar.

Why not try it out and tell me what you think of it:



Of course you need a Google Calendar account for it to work.

At the moment the following date formats are supported:
  • yyyymmdd (e.g. 20091231)
  • dd.mm.yyyy (e.g. 31.12.2009)
  • dd.mm.yy (e.g. 31.12.09)
  • dd/mm/yyyy (e.g. 31/12/2009)
  • dd/mm/yy (e.g. 31/12/09)
  • dd-mm-yyyy (e.g. 31-12-2009)
  • dd-mm-yy (e.g. 31-12-09)
  • (d)d month yyyy (e.g. 31 december 2009)
If you want me to add a new date format (or if you have a problem) simply add a comment and I will see what I can do.

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share

Sunday 3 May 2009

JavaFX: "Nice features but still needs improvement"

There is a lot of hype around JavaFX, clearly Sun Microsystems are very proud of their new product. For the people who haven't yet heard about it, JavaFX is a new Software Platform that enables Java developers to create Rich Internet Applications (RIA), similar to what Adobe's Flash does. It's capacity to create pretty applications on mobile devices makes it an interesting tool for the future.
I asked a Software Engineer who has already used JavaFX quite extensively what he thought of it. His answer was that it is already possible to do some nice things with JavaFX (mostly on JavaSE) but that there are still a lot of problems.
JavaFX Problems and Weaknesses:
  • Lack of features (widgets, layout managers, codecs)
  • Too many bugs
  • No hardware available yet for JavaFX Mobile (despite Sun signing deals with Sony Ericsson and LG)
  • Performance problems
JavaFX 1.2 should soon be made available to developers and should already contain some new widgets, fixes for bugs and improvements in performance...seems like things are getting better, rapidly...

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share

Monday 27 April 2009

Optical discs to offer up to 500GB of storage

General Electric (GE) have just unveiled a new disc, the size of a regular DVD, which can store up to 500GB of data (equivalent to 100 DVDs).

That is quite impressive if compared to Blu-ray discs which can "only" store between 25GB and 50GB.

The reason these optical discs offer so much more capacity is that they store the information in three dimensions, unlike traditional DVDs where the data is stored as pits on the surface of the disc.

In fact these micro-holographic discs could theoretically store more than 500GB as the amount of data depends on the amount of light that can be reflected by the holograms. The General Electric team working on these discs is quite optimistic and believes improvements can still be made, thanks to new materials.

Now I have 2 questions:

  • Do consumers really need that amount of storage space?
  • At how many GB will the îndustry say: Ok that's enough we have reached the ideal storage size?

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share

Wednesday 15 April 2009

Solving: "Must issue a STARTTLS command first" for PHP's mail function (using Google's SMTP Server)

My ISP previously provided their own SMTP Server. The PHP configuration for sending e-mails was then relatively simple (php.ini file):

[mail function]
; For Win32 only.
SMTP = smtp.freesurf.ch
smtp_port = 25

; For Win32 only.
sendmail_from = <e-mail username>@freesurf.ch

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

Unfortunately my ISP switched their e-mail accounts to Google's Gmail. I tried to use a similar configuration:

[mail function]
; For Win32 only.
SMTP = smtp.gmail.com
smtp_port = 25

; For Win32 only.
sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

The problem was that I kept getting the following message from Google's SMTP Server:
"530 5.7.0 Must issue a STARTTLS command first."

The reason for this is that gmail uses secure (TLS) servers to prevent spam.

There are several ways to resolve this problem (one way is by installing a SMTP server on your localhost) but here is the easiest way I found:

As I was using XAMPP I had already installed the "fake sendmail for windows". If you are not using XAMPP you can download it here:
http://glob.com.au/sendmail/sendmail.zip

I then modified the php.ini file to use it (commented out the other lines):

[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25

; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

Ignore the "For Unix only" comment, as this version of sendmail works for Windows.

You then have to configure the "sendmail.ini" file in the directory where sendmail was installed:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com


The configuration is nearly over but not completely, you will still get the message: "Must issue a STARTTLS command first".

To solve this problem you need to download the following zip file:
http://glob.com.au/sendmail/sendmail-SSL.zip
and install its contents in the sendmail directory. That will make sendmail.exe TLS compatible.

That's it. I hope this will be useful to some people.

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share

Tuesday 14 April 2009

Ant script for renaming Java files to Groovy

At the moment I am starting to study Groovy, which is an alternative language (to Java itself) that can be used on the Java Platform.

It's main advantage (over Java) is its "expressiveness", meaning that the same program can be written using less instructions, hence theoretically increasing productivity. In that regard it is quite similar to Smalltalk.

Groovy is a superset of the Java language. This means that any Java program is by default also a Groovy program (the opposite not being necessarily true). I created a very simple Ant file that enables me to convert all my .java files to .groovy (and back again):

<project name="Groovy" basedir="." default="javaToGroovy">

<target description="Changes Java file names to Groovy" name="javaToGroovy">
<move todir="" file="src">
<mapper type="glob" to="*.groovy" from="*.java">
</move>
</target>

<target description="Changes Groovy file names to Java" name="groovyToJava">
<move todir="" file="src">
<mapper type="glob" to="*.java" from="*.groovy">
</move>
</target>

</project>

Please bookmark, your votes are noticed and appreciated:
Bookmark and Share