Installing Ubuntu 15.10 on HP PC with Nvidia GTX 750 Ti

I have been struggling to install Ubuntu on my HP desktop PC for a while. The specs of my system are: HP 500-314 PC with Nvidia GTX 750 Ti.

My intention was to install Ubuntu side-by-side with Windows, but without adding a bootloader to the Windows partition. So I wanted to install Ubuntu on a separate HDD and choose the second HDD from the BIOS boot options.

My attempts to install Ubuntu using version 14.04 or 15.04 were not successful because after installation the video driver was not loading correctly. I found out later that this was due to my Nvidia video card.

Ubuntu 15.10 has solved this problem to some extent, such that now at least the login screen is shown correctly and you can login and launch Ubuntu. There are still some corruptions of the screen, but it is workable.

To fix the screen corruption, the Nvidia driver needs to be installed. The following commands needs to be executed to install the Nvidia driver from the external repository. I have installed the version 352 driver as that works fine with my GTX 750 Ti.

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

sudo apt-get install nvidia-352 nvidia-settings

Fix for performance issue when upgrading Sony Vaio from Windows 8.1 to Windows 10

I recently upgraded my Sony Vaio E series laptop from Windows 8.1 to Windows 10. The upgrade went smooth, but Windows 10 was constantly causing disk activity, there by reducing the performance of the laptop.

On investigation it turned out that the Vaio utilities like Vaio Care etc.. were not working correctly on Windows 10 and were constantly accessing the disk. I uninstalled Vaio Care and then the performance issue was gone, the laptop started running smoothly again, the way it ran under Windows 8.1.

I eventually ended up resetting the laptop and restoring it to plain Windows 10. This gives the best performance on my Vaio.

Fix sound blaster z no sound on first boot issue

I bought a creative sound blaster z sound card some time ago. Since then I have had an issue where many times on a cold boot there would not be any sound coming from the sound card. It would get fixed on a subsequent reboot.

After reading on some forums people suggested that the issue was with the fast boot of the system where the time is not sufficient for initialization of the sound blaster z sound card. Also the fast startup option of Windows saves the state of drives to the hibernate file, and reads it when the system is booted is next time. It seems the sound blaster driver is not tested for this situation.

To fix this issue I disabled fast boot, set a 5 second POST delay in in bios and disable fast startup in Windows power settings. After that the card works fine on first boot.

Creative should either fix the issue, or else document it on their website.

With all the new advances in system boot up times we are now seeing these issues, like secure boot causing many video cards to not work, fast boot causing issues with sound cards etc…

LED display with twice more colors than currently available

Some days ago I was reading about the concept of dithering in Open GL, where a limited set of color values are mixed to produce higher range of colors.

In current displays each pixel is composed of three led’s each of red, blue and green colors. By varying the intensity of each color a ‘mixed’ color is produced, there by we see all the different colors on the screen. The number of colors are limited to the number of intensity levels of each led.

What if we place two layers of led’s over each other, that way we can enhance the range of colors while still maintaining the same level of intensity levels for each led.

Wall clock with integrated calender

How about making a wall clock or desk clock which has a way of synchronizing with your calender and reminding you of your events.

The clock can have a Bluetooth which can then be accessed by a custom mobile app. The app would synchronize with an existing calender on your phone. The clock can have a scrolling led display which can display the headline of your event. The clock can have a silent mode, in which case the screen will flash as a reminder. The clock can have a memory for 1000 events, this way once you program it, you don’t have to synchronize it often.

This way you don’t have to set alarm’s ever, the clock will be smart enough to wake you up for your first appointment of the day.

The circle of Ubuntu Flash Netflix Windows

I have been experimenting with Ubuntu (multiple flavors) for some time with my primary purpose being web browsing, watching netflix and online sports. The computer on which I have been experimenting this is a 6 year old Dell Precision M90 with Nvidia Quadro FX 1500M display card. The reason I mention the video card is that this card does not support full hardware based decoding of Flash and other video codecs.

Netflix depends on Silverlight DRM for playback in browsers (exception being IE 11 on Windows 8.1, where it uses HTML5). Silverlight DRM does not have a port on Linux (due to copyright issues) and hence Netflix can’t be run natively on Linux. The non-native ways of rendering Netflix on Linux are not very optimized and result in almost non-playable condition on my old laptop. If I run Netflix on Windows, the Silverlight plugin does not use hardware acceleration (due to lack of support from my video card and due to my usage of a version of Windows which is not optimized), and hence the playback is not smooth.

Flash videos currently depend on Adobe Flash player support. Adobe has stopped providing Flash player upgrades for Linux (the last version being 11.x on Linux, whereas on Windows the current version is 13.x). So on Linux we get very bad performance for Flash videos, unless you are using Chrome and Pepper Flash plugin.

I have tried Windows XP, Vista and 8.1 on my old laptop, and I get the best video performance (across Netflix and Flash) on Windows 8.1. On Windows 8.1 the CPU load is 3 times lesser when playing a full HD Flash video as compared to Windows Vista. The same with Netflix.

This basically tells us that companies are not providing us support for old operating system, and are forcing us to move to new OS. Adobe flash player 13.x is way more preformant on Windows 8.1 as compared to any of the old OS’s. HTML5 takes 50% less CPU as compared to Flash, and still Netflix only supports that in Windows 8.1 + IE 11.

So old computer + Ubuntu is really not a option for watching Netflix and Flash videos. Sad smile

OpenMP – A savior for C programs

Lately I have been busy working on optimizing the application I work on. The core of the application is written in C. When faced with performance problem there are two ways to go about tackling it, a) fix the algorithm such that it takes less time, b) make the algorithm multi-threaded.

In our case it was not possible to use option a as the algorithm was already very well optimized. Going with option b was the only choice. Making a code multi-threaded requires some prerequisites, i.e. the code should be such that it can be broken into pieces and executed without any dependency and the multi-threading overhead of creating and destroying threads should not undermine the performance.

For C programs due to the procedural nature having a control over threads using a thread pool is very difficult. This is where OpenMP saves the day. OpenMP has a brilliant thread pooling mechanism which has absolutely no overhead, there by providing superb performance even for very short lived multi-threaded pieces of code. For example if you have a loop which runs over a certain array elements in 100 ms in sequential manner. Using OpenMP you can reduce the time to 40 ms. In any other threading implementation the overhead of creating and destroying threads will itself take more than 100 ms.

Another great thing about OpenMP is that it provides functionality for the most commonly needed synchronization tools by using directives like reduction, firstprivate, lastprivate etc..

Not to forget, to use OpenMP you normally don’t need to modify your code at all, just adding a line of #pragma does the work. So you can comfortably switch between serial and parallel code by using a compiler switch.


Windows phone 7.8 finally!!

Today HTC finally released the 7.8 update for HTC radar windows phone. Compared to Nokia it is very late but better late than never.

The larger front screen makes the phone look big. The option of multi size tiles is very good, I instantly changed my home screen to be more optimized.

So in a short span I like the new update.