Detect Windows XP for Font Rendering - windows-xp

I've been playing with Typekit for a year now and I've only just noticed how bad fonts look in Windows XP, even when using Chrome. Fonts look ok (not great) on Vista onwards.
Is there a way to detect whether a user is on Windows XP?
I've read a few articles about the different rendering engines on Windows e.g. http://blog.typekit.com/2010/10/21/type-rendering-web-browsers/
http://blog.typekit.com/2010/10/15/type-rendering-operating-systems/#gdi-standard
The reality is that sites still look horrendous with XP and Typekit, even when I have enabled 'cleartype' via display properties.
In conclusion I simply would like to turn off Typekit fonts for XP users, they are un-readable. Normally I would go down the road of feature detection via Modernizr, but I can't detect the font rendering engine so I'm looking for other resorts. Is it possible to detect the operating system?

I've managed to find this font smoothing detection technique.
http://www.useragentman.com/blog/2009/11/29/how-to-detect-font-smoothing-using-javascript/
However, typically I've only found font smoothing to be a problem with XP users and various Typekit fonts, so would only advise using if you have a high number of XP users visiting your site (or a website stakeholder - in this case my manager!).

Related

Oculus Rift - Multi Desktop Application

I am currently thinking about building a Multi Desktop Application for Oculus Rift. The idea is, that the user can use multiple screens like in a regular computer, but can see three windows (left, center, right) when moving their head. (So far so good)
But this is where it gets tricky: On the three windows, I would like to use three different browser tabs or applications that the user can watch and use simultaneously with mouse and keyboard.
Can anybody please suggest how to start the whole thing or is there a framework that I can use? UE4 or Enity3d will be able to give me multiple screens, but bringing the content/apps/browsers to them is what I cant figure out...
Thanks for any help!
fj
You can install VNC Server in the machine and render 3 VNC Clients. This is doable using, VNC Java client and render its output into a texture.
Using Open Wonderland it is possible since it has Oculus support
Regards

PNG Alpha transparency in email

Is there support for PNG alpha transparency for popular email clients?
Here are the list of major e-mail clients i'm planning to support:
Web based*
Gmail
Hotmail
Yahoo
Software based
Outlook 2007/2010
Windows Mail
Mac OSX Mail
Thunderbird
Mobile based
iOS Device Mail
Android Device Mail
*This is browser-based, so no need to worry about this
From the research i've done, it seems all (mobile-based isn't listed, but i checked my phones) support PNG (http://en.wikipedia.org/wiki/Comparison_of_email_clients#Messages_features). But, I'm unsure as to whether or not they support transparency. Anyone have any good insight into this?
I've figured it out. I think that most will support PNG. I think that outlook 2003 used to have that problem because it was using the IE rendering engine. Nowadays, PNG is fairly acceptable. BUT, be a little careful with alpha transparencies.
But anyway, litmus has been the best thing i've used thus far. So, I suggest to use that if you are very serious about testing on all available platforms

Multitouch : Selecting hardware and software for multi-touch application

I am trying to build an internet connected touch based device using which users can do minor editing and upload photographs to web. The device will capture photographs using a USB based camera.
The question i have is where to find hardware for this custom requirement, i am looking for a touch screen around 24 inches in size.
Can any one recommend a reliable hardware vendor who supplies LCD/Capacitive based touchscreen.
I also thought to wait till launch of Windows 8, because it is built to support multi touch. I believe during launch of Win8 lot of hardware vendors will sell multi touch lcd monitors, which i can use.
If anyone can provide directions on this it will be a great help.
P.S > I am open to develop on any platform.
Look at 3M monitors and infrared frames which support 4+ touches. The old ones which come with Dell monitors suck so much. Your OS of choice is Windows 7. Also consider Flash/AIR for fast development.

Is it possible to create an OS that can run all application?

Just a thought, if we have to make our application cross-platform, then is it possible to create a cross-application OS?
No.
Lets say you do go and invest - a monumental amount of - effort in building you're Uber-OS (that will run Mac apps, Linux apps, Unix apps, Android apps, i-phone apps, Nokia apps, Symbian apps, SAP apps, Windows Apps etc).
Then there's nothing stopping someone writing a new OS that you don't support.
P.S. And there are hundreds (if not thousands) of different hand held devices out there for scanning products, weights and mesures etc many of which have their own flavour of OS.
Technically yes as long as you limit the scope of all to all applications that run on major OSes.
It is theoretically possible to create an OS that could handle applications run on the 4-5 most common OSes but the amount of work involved would be monumental.
Every time a new feature was added to any of the OSes, you'd need to add it to your OS too - So as well as being almost impossible to build, you'd need a large enough dev team to stay ahead of 4-5 of the largest dev teams/groups in the world.
No but with virtualization you could have a single computer that can run any application.
First there is the practical impossibility of successfully following the evolution of an indefinite number of operating systems. Do we take embedded OS into account? How about one-shot OS for specific applications? How about proprietary OS with no access to documentation?
Then there is also the - very difficult, if not impossible - problem of merging the various paradigms used in the wild. Ideally you would want OS services like the clipboard, or networking or ... or ... to work in a uniform way and allow applications to cooperate as if targeted to the same OS.
(Let's not even think about the various hardware-dependent applications.)
After all this, you should also consider what the application development for your own OS would be like...
I wonder if this is a good case for Gödel's incompleteness theorems :-)
PS: That said, there are quite a few projects attempting to bridge the various OS gaps:
http://en.wikipedia.org/wiki/List_of_computer_system_emulators
http://en.wikipedia.org/wiki/List_of_emulators#Operating_System_emulators
What you can do is use virtual machines, such as VMWare's software, and emulate several operating systems on the same physical machine.
What do you define by an operating system that can run all applications?
Applications are mostly written in a higher level language and then translated into binary code that differs between machine architectures (like Intel and PowerPC) and operating systems (like Windows or Unix-based systems).
Java for example is only cross-platform because not the language itself is cross-platform (any high level language is), but because there exist Java virtual machines for different architectures and operating systems that abstract the heterogeneity of the underlying system.
It is definitely not theoretically impossible (nothing is except for some mathematical problems), but can you imagine what one would have to do in order to make such a thing work? You can basically run Linux programs in Windows with CygWin, you can also run Windows programs in Linux with Wine. All of those try to create a small operating system (e.g. the Windows core) into your other OS (e.g. Linux). This is probably not what you want.
To summarize, I can't imagine anyone really trying to do that. With all the money in the world, seriously. Better invest in writing native apps for the operating systems you want to support.

WIA can not find my internal camera in windows 7

I am currently working on a project where I need to access a build in camera (software will run on a tablet), stream what the camera is showing, and allow the user to take a picture from the stream. I have a version of what I am trying to accomplish on my laptop with its built in camera working. The major difference is the Laptop is using windows XP the tablet is using windows 7.
Running the software on the tablet I get an exception (with some research it appears that exception is cause by no WIA device found). Is it possible that the built in Camera is not WIA compatible? The device does show in the Device Manager as an USB Camera Device, but unlike the camera on my laptop I can't access it directly. I have to use 3rd party software put in by the tablet maker to get the camera to work.
Has anyone experience similar problems? I have to believe if the tablet maker can do what I need I should be able to do something similar.
There also is the Windows Portable Device API that can access cameras, but that appears to be written in c++, without a .NET wrapper. Does anyone know of a simple tutorial of how I could get .NET to place nice with it? EDIT: Just tried WPD didn't list any devices either. I am beginning to thing this camera doesn't exist.
Any knowledge/ pointers to resources would be appreciated. (So far google has turned up the same few articles, no matter which way I approach the problem)
Turns out my Camera was not WIA compatible. I was able to get the tablet to do what I needed it to do using directshow (actually directshow.net)
Good links if others are trying to do something similar and having similar problems
http://msdn.microsoft.com/en-us/library/dd375454%28VS.85%29.aspx
http://directshownet.sourceforge.net/faq.html