Logitech MK345 Wireless Keyboard and mouse combo review.

The MK345 is a well designed wireless keyboard and mouse combo. The first thing that catches our attention is the beautiful design, though not anything over the top, its pretty good. The keyboard is not one of those clumsy, congested wireless keyboards which tries to mimic the key placement of laptops, which ends up being even more unusable than the laptop keyboard. The keyboard and mouse has a pretty, tiny USB receiver, which is one of those unobtrusive, fit it and forget kind. It goes without saying that this receiver stands a good chance of getting lost, if kept somewhere carelessly.

The keys of the keyboard are fairly well spaced, and there is as well positioned sloping arm pad extension, resulting in an amazing ease of typing. I could even type comfortably, placing the keyboard on my lap. The keyboard also has an small green indicator for Capslock, located just adjacent to the On/Off key.

The mouse is contoured with a ridge to place in the thumb finger, which feels really good. And the mouse wheel is slightly wider and rolls well, adding to the ease of use. This optical mouse uses an invisible light(not visible to us), rather than the regularly seen red light.

So, in summary the ergonomics of this combo is pretty good. It worked very well with my LG Smart TV. Both the keyboard and the mouse has separate On/Off buttons. The keyboard is powered by 2 AAA batteries, whereas the mouse is powered by an AA battery. All the batteries were positioned in their proper positions, within the packing itself, and a plastic splinter was put in it to prevent it from discharging, we simply have to pull out the splinters gently and remove it to get the batteries and thereby the Keyboard and mouse working. The build quality also seems to be pretty decent, and feels to be capable of withstanding quite many key-cycles.

The only con that I felt that some people might feel is that the keyboard is not fully soft-touch, and has a distinct chub-chub sound when you type. It may have to do with my slightly forceful typing style. But nevertheless, am happy with the keys and its touch sensitivity and its typing sound as well, it perfectly suits my typing style. And another rather weird key that I found is the ‘Fn’ key combination with the F12 button, which seems to be triggering the Printscreen functionality when there is a distinct and separate Printscreen button located just adjacent to the F12 key.

Kudos to the Logitech team for their attention to the detail. I bought this from Snapdeal, they had done an excellent deal with packing this, putting the box, sandwiched between two thermocol pieces, which was then wrapped in a thick packing of bubble wrapping. Brownie points to Snapdeal for making the delivery available at my home location, albeit with a minor adjustment in the pincode, which I did after discussing with their customer care personnel, who did a pretty good job handling my questions. There was a slight delay in the initial estimated delivery, but well that had to be expected at this location. Anyhow Fedex delivered it at my home, so all in all this was a pretty satisfactory online purchase to say the least.

This is my first try at reviewing a product that I bought online, as and when I started using it. Actually this is one of the first things I am typing with this new keyboard and mouse combo that was delivered to me today. I started typing this, as a way of testing the keyboard and mouse extensively, but as I typed, it seemed to shape pretty decently, that I decided to share it online. Do let me know your thoughts on it.

Comparison of PostgreSQL and MySQL

The following are the points that I could gather about PostgreSQL vs MySQL(It has been collected from multiple sources, and based on personal experience, please point out any errors or incompleteness that might have inadvertently crept in):

  • WITH queries, also know as Common table expression(CTE) is not available in MySQL, is available in PostgreSQL.
    (It has been requested from 2006 onwards: http://bugs.mysql.com/bug.php?id=16244)
    More Details: http://stackoverflow.com/a/325243
  • PostgreSQL offers more enterprise DB features, provides PL/SQL support.
  • PostgreSQL offers a more detailed and low-level query EXPLAIN result, along with the execution plan, if required. In comparison MySQL EXPLAIN/DESCRIBE results are more limited.
  • PostgreSQL has only one DB engine, whereas MySQL has many like INNODB, MyISAM, etc..
  • MySQL is natively supported in cPanel(widely used server admin panel), for PostgreSQL it has to be installed manually, and support is partial,
    so its easy to find a hosting provider with MySQL support, when compared to PostgreSQL.
  • PostgreSQL follows proper SQL standards compliance, but MySQL doesn’t, so integration with other RDBMSs might cause problems.
  • PostgreSQL supports multiple schemas per database, in MySQL, a datbase and schema can be considered the same, for all intents and purposes.
  • PostgreSQL supports INTERSECT, EXCEPT ( set operations), MySQL does not.
  • PostgrSQL supports merge joins( also calles Sort merge joins), MySQL does not
  • PostgreSQL supports more types of index, like Inverted index, GiST(used in postGIS), bitmap index, reverse index, partial index.


For more details, check out:

MongoDB installation in Ubuntu 14.04

We’ll be seeing how to install MongoDB and get it working with PHP.

If you had followed the step of installing mongo PECL extension you can undo it by doing the following, as this will be provided by the php5-mongo package, including the required changes in the php configuration, which we’ll be installing shortly afterwards.

  • Removing any entry in the php.ini file that you made for mongo extension.
  • Remove the PECL extension by:
sudo pecl uninstall mongo

Now do the following steps to complete the installation:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update

sudo apt-get install -y mongodb-org
sudo apt-get install php5-mongo

After this restart your computer, only after that the MongoClient class will be available for use.


A train journey of self reflection

Met with a guy in the train today. He is just out from his college, now doing an internship in PHP, at IPSR, hoping that it’ll help him nail his first job, as companies out there was asking him for ‘experience'(The classical chicken/egg problem). He reminded me a lot about myself, more than three years ago.
Just out of the college  I was also looking onto get a straw to hold on(get my first job). It was during that time that the three of us Reshil, Mohazin and I, joined Keltron Bigleap Finishing School(KBFS) for the LAMP internship program  they were conducting. We were also told that the 6 months of internship there, will be counted on as experience, and help us get the first job.
The internship at KBFS taught me, and the others a lot of industrially useful things about LAMP, and helped us get our first jobs, mainly owing to George sir, who was our instructor there, and had a lot of years of experience working in the industry(He was a knowledge bank, I used to pester him with doubts, and he used to answer all those with utmost patience). But, no company considered our time(6 months) as experience. We got our first jobs because we were able to make our respective employers understand that we have learnt and knew how to use a thing or two.
Down the line, more than three years later, now in my second job, I have learnt a lot about LAMP and more. What guided then, and keeps guiding me now, is my all-time friends: curiosity and the want to learn more. I explained the usefulness of both these, to that guy. In our brief conversation, I explained to him how PHP actually executes, why PHP is not exactly an interpreted language, the importance of coding standards(indentation, naming, etc. ) in programming languages, PHP’s standard(PSR)(I feel like I’ll want to put up an article about each of these individually, let’s see where it goes). It always feels good to share what I know with others, especially when the person(s) on the other side is actually interested. I also suggested him go looking deeper, and deeper to understand how things work, it’ll help us appreciate and understand those things better, and make us better equipped to handle those.
He also made me understand how things that I talk about so easily these days, were totally alien to me, when I was at the same stage. I believe that I have been able to spur an interest in him to look deeper, and understand PHP better.(This makes me feel so happy)
So, to programmers out there(at all stages) I would like to say, keep that fire to learn, understand things, that curious person in you, burning brightly. It’ll give you that satisfaction, and help you move ahead. Also, make it a habit to share what you know with anyone who is interested, it’ll only make yourself a more intelligent/knowledgeable person.
I know that I have reached nowhere in my career, but still I see nothing wrong in sharing things that I feel important and true. 😀

1. I haven’t attended the internship program of IPSR, so I don’t know if they’re providing actual projects to ‘interns’, and so, if it’ll actually be considered as experience.
2. This is my first blog post in a long time, and the first one typed from my mobile phone. It was prepared quickly, and is basically a rundown of my thought-train at the moment. So, bear with any mistakes that I might have inadvertently made.

How to clear the MySQL Server Command-Line

Have you ever felt that your MySQL command-line prompt is getting too untidy and you want to clear it.
Here is how you do it-
To clear the terminal when using MySQL, from within the MySQL server prompt.

mysql>\! clear

Note: \! operator is to run any terminal command from within the mysql server prompt.
e.g. mysql>\! ls
Executes ls command and shows it output, i.e, the contents of the current working directory.

How to post syntax highlighted code or program snippet on your wordpress.com blog

I had been on the lookout for a solution to post highlighted program code on my blog. Finally I found a good solution, which might have been there for a long time, but since I found it only, I have decided to share it with you all. 🙂
To post highlighted code in a wordpress.com blog, use the

Your code goes here.

The TYPE specifies which language your code is in, the languages now supported by wordpress.com blogs are(just replace the TYPE with the name of the language as shown in the list below)-

  • actionscript3
  • bash
  • coldfusion
  • cpp
  • csharp
  • css
  • delphi
  • erlang
  • fsharp
  • diff
  • groovy
  • javascript
  • java
  • javafx
  • matlab (keywords only)
  • objc
  • perl
  • php
  • text
  • powershell
  • python
  • ruby
  • scala
  • sql
  • vb
  • xml

For displaying a PHP page, which contains both html and PHP entities, we have to set to the PHP language with “htmlscript” configuration parameter set to “true”.
An Example

What we have to type –

Your code goes here.

The Output:
I have put some code in the “Your code goes here” section and tada, you get a cool syntax-highlighted code section.

<title>PHP Test</title>
 This is an HTML line
echo “This is a PHP line”;

Many other configuration parameters are also available, please visit the following post to read more about it-
Courtesy: The above link ^

How to make Windows the default/first entry in your GRUB2 menu

I hadn’t tried to understand the working of the GRUB2. One, day when my friend asked me how to make Windows the default entry in his GRUB menu, I didn’t have an answer. I went to the Ubuntu wiki page on GRUB2. Its very comprehensive. Most of the general aspects of the working of GRUB2 is explained in it, including the changes, how to configure the grub.cfg file, etc..
Though not explicitly stated in it, the method to make Windows the default entry was pretty clear from it. Here is how you do it-

1.cd /etc/grub.d

2.sudo mv 30_os-prober 10_0s-prober

3.sudo mv 10_linux 20_linux

4.sudo mv 20_memtest86+ 30_memtest86+

5.sudo update-grub