Fix: /usr/bin/env: node: No such file or directory

Fix: /usr/bin/env: node: No such file or directory

When I was trying to install a module using npm today, it returned an error stating that my nodejs version is old and it needs to be updated. Then I checked the node version and it was really old, and noticed I installed it using the Ubuntu repos (which doesn't get latest updates.)

So I installed the latest LTS version of node using the Node Version Manager (NVM) and noticed that I had two versions of node running after this upgrade. ie:

$ node -v

$ nodejs -v

This caused problems when using the NPM because it was referring to old nodejs version. So I removed it with the command

sudo apt-get remove nodejs
Now whenever I ran the npm install command, it failed stating:

/usr/bin/env: node: No such file or directory
So to confirm if I'm using the right node binary, I ran the command which node and it showed the right node binary path inside the nvm directory inside my home directory.

Although it showed the correct path for node, npm failed because its referring to node inside my /usr/bin path.

Then I ran the following command to see what I have in my /usr/bin/ directory for node and found that it was linked to /usr/bin/nodejs (which I uninstalled earlier).

So to fix the issue, I removed the /usr/bin/node symlink and added a new symlink to point to the right node binary path.

sudo rm /usr/bin/node
sudo ln -s /home/nimeshka/.nvm/versions/node/v8.9.3/bin/node /usr/bin/node

Instead of creating the symlink with this full path, you can enter

sudo ln -s "$(which node)" /usr/bin/node
$(which node) will be excecuted when you run the command and will be replaced with your path to node :)

I hope this post will help someone to fix this error. Please don't forget to leave a comment if this helped you, or if I have missed anything.

Fix - No Bootable Device Error in Acer laptop

Hello folks. I'm going to write about a strange and a scary problem I faced yesterday with my new laptop (hope this will help someone).

I recently got an Acer Aspire E 15 laptop and I have been enjoying working on it until last night (I still do). It's one of those laptops which you can buy for a reasonable price with some good performance. However, last night, my laptop suddenly turned off while I was working. I thought it was because my battery was empty. I switched it on again, and saw this scary message saying "No Bootable Device" with an icon of a magnifying glass. (need not to say, I was doing some important work and I had not commit my work. I thought my hard disk was gone.)

Luckily, I found some easy solutions to fix it. Here's what you have to do if you get this error.

  1.  Restart your laptop.
  2.  As soon as you see the "acer" logo coming on the screen, press F2 key. 
  3.  It will take you to the bios screen. Now, from the bios settings, change your boot method from UEFI to Legacy. (If you are lucky, you will have this option).
  4.  Press F10 to save and exit bios. Now your laptop will boot normally.

That's it guys. This is the method which worked for me. This might not work for some people because this could happen for any reason, like a hard disk failure. If your had disk is damaged, this method won't obviously fix it :) But you can always try.

I also found that disconnecting and reconnecting the hard disk cable also worked for some people. Please let us know if this helped you. Don't forget to mention any other methods you know in the comments below.

DBeaver 4.0.8 Cannot insert new record in an empty table.

Note: This issue has been fixed in DBeaver 4.1 :)

I've been using DBeaver for a while to work on some Postgres databases (because PgAdmin 4 sucks!) and I found this tool to be really awesome so far. However, as we know, not everything is perfect, and I found a little bug in DBeaver which is, that you cannot add a new record by clicking on the small plus (+) sign on the grid view. This is not working only on new / empty tables. If the table has at least one record, this works.

However, you are not left alone helpless in this case. There's a small workaround to overcome the issue. This is how to insert data into a new empty table without writing a sql query.

All you have to do it press and hold the "Shift" key while cliking on that green plus sign. Then DBeaver will add a new row as usual :) That's simple, isn't it?

I hope this will be useful to someone. Please don't forget to leave a comment if you know any other work around to this :)

Solve Ubuntu Error mounting windows partition status 14: The disk contains an unclean file system

Hello guys, here is another issue I faced today with Ubuntu 16.04. I have a laptop which runs Windows 10 and Ubuntu 16.04 on dual boot. Sometimes I have to switch between the two systems depending on the project I work. So it's very usual that I switch between them a few times in some days.

If you do the same, you may have already got this error, or at some point you will get this error when you try to mount a partition that you use with Windows and Ubuntu both. I'll show you how to fix this easily.

Error Details:

Error mounting /dev/sda2 at /media/nimeshka/6E86FACC86FA93B5: Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000" "/dev/sda2" "/media/nimeshka/6E86FACC86FA93B5"' exited with non-zero exit status 14: The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda2': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

You get this error and you are unable to mount the partition. However, Ubuntu lets you mount the partition in a read-only mode which may be enough sometimes, but it's not a real solution to this. Before diving into fixing the problem, let's look closely at the error message once again. If you read it carefully, you will see that Ubuntu reports the error in a clear and a concise way. Towards the end of the error message, you can see it states "Please resume and shutdown Windows fully (no hibernation or fast restarting)". That basically gives you a hint on the solution. It says that Windows has not been fully shutdown, hence Ubuntu is unable to mount it. So the problem is really in Windows, not in Ubuntu.

You may wonder that you didn't hibernate Windows, then how could this happen? Yeah, it happens because with recent versions of Windows, they have introduced some new features to speed up the booting process, known as "Fast Startup" in Windows 10 and "Fast Boot" in Windows 8. It's something very similar to (or almost same as) hibernate option you had with previous Windows versions.

To fix this problem, you need to login back to your Windows OS and shutdown it properly. To do that, please follow these steps.
  1. open a command prompt with administration privileges. (To open command prompt with admin privileges, right click command prompt in the start menu and choose "Run as administrator" option).
  2.  Run the following command:
 shutdown /s 
  1. Now login back to Ubuntu to see that you can mount your drives back :)

That's it guys. I hope this wll help you. Please share this with your friends in G+, Facebook and Twitter if you think this will be helpful to them as well! Also leave a comment to give any feedback.

GIT: Display modified files in the last 'n' commits.

It's a very common thing that a developer usually commits his / her work multiple times in a day. You make changes in your branch, commit them locally, and sometimes at the end of the day, you push them to the remote repository. If you want to see the changes in your last commit, you simply run the command:

git show
But what if you only want to see the names of the files which were changed? Okay, you run the same command with the --name-only parameter. i.e.

git show --name-only
Then what if you want to see all the files which were changed today? If you have made 3 commits today, then you can run the following command to view all the files which got affected across all your commits. To do this, you have to pass the -n parameter with the number of commits you want to view.

git show -n 3 --name-only
Okay, here's another useful tip. What if you want to see the files changed in a particular commit? For that, you only have to pass the commit id.

 git show --name-only 4adf9baa857c885g5a40518ccec68961ae08cc69 And, what if you want to see the files changed in another commit along with these? To do that, again you have to pass the other commit id, as shown below.

git show --name-only 4adf9baa857c885g5a40518ccec68961ae08cc69 7bdf8bac852c865f4a40518cbec689613e07c269

That's it. I hope this will be helpful to someone :) Please don't forget to leave a comment if you know a better way or if this really helped you. You can also share this with your friends in Google+, Facebook and Twitter!

Fix HTTP Error 500 php-cgi.exe - The FastCGI process exited unexpectedly

Today I had to install IIS in my dev laptop to do some bug fixes in an old web application written with PHP 5.5. I enabled the FastCGI module in IIS and loaded the web page in the browser. But it didn't work and it kept giving me this error. It didn't explicitly mention what caused the error. So it was a bit difficult for me to find a solution to this. However finally I found a fix to this and thought I should share it in my blog so it will help someone in the future (of course, only if you had to setup IIS to work with PHP). I used PHP 5.5.3.

This is the error I received:

HTTP Error 500.0 - Internal Server Error

php-cgi.exe - The FastCGI process exited unexpectedly

Detailed Error Information
Module FastCgiModule
Notification ExecuteRequestHandler
Handler PHP
Error Code 0xc0000135 

If you get this error, the first thing you need to check is whether you have the right Visual C++ runtime package installed in your PC. If not, download and install it right away. It will surely fix your issue :)

As a help I will link to the Visual C++ package that helped me (This worked with PHP 5.5.3). If it doesn't help you, I guess you need to find the right version to download. I'll add some more links here so you can find and download it from the Microsoft website.

If you have PHP 5.5.x, Microsoft Visual C++ Redistributable 2012 package is what you need to install. Here is the link to that ->

Here is a list of other Visual C++ packages with download links from Microsoft. Make sure to download the file that suits your system architecture (32 bit / 64 bit). With 5.5, you have to download the x86 version anyway because PHP is running on 32 bit, not 64. :)

Microsoft Visual C++ Redistributable 2015

Microsoft Visual C++ Redistributable 2013

Microsoft Visual C++ Redistributable 2012

Microsoft Visual C++ Redistributable 2010

Microsoft Visual C++ Redistributable 2008

Microsoft Visual C++ Redistributable 2005

Please do not forget to share this post with your friends in Facebook, Google+ or Twitter if you think this will be helpful to someone :) You can also leave a comment if you have any problems.

How to connect LAN in VirtualBox Ubuntu

It's 2017 and I haven't written anything in my blog this year. That's amazing. The main reason why I was away from the blog was because I was trying YouTube videos instead of blog posts and it seems they are working really well. You can find my YouTube channel here. Please feel free to subscribe and keep in touch with my new updates.

Anyway I feel I should update the blog constantly, so today I share something I learnt recently. How to connect to LAN in Virtualbox in Ubuntu? Yesterday I was trying to access a shared drive in my Local area network and I found that it's really difficult to access them using my Ubuntu PC even with Samba. I wasn't sure why I couldn't access the shared drive, it was probably due to some password issues. So I tried an alternative way to do that. I have a Windows installation running inside my Ubuntu PC using Virtualbox and I thought it would be great if I can access the network through my Virtual PC.

But I learnt that by default, when you open your VirtualBox guest OS, you are not connected to your Local area network. Instead, it only shows your host PC, and a common drive between the Host and the virtual machine. To access the LAN, you have to change a few settings and this is how to do it in a step by step way.

  1.  First off, you have to shut down your virtual pc in Virtualbox. 
  2.  Then right click on the Virtual machine you want to connect, and select "Settings".
  3.  In the settings window, go to Network section and click on the "Adaptar 1" tab.
  4.  Now you should see that "Enable Network Adapter" option is checked. If not, check that box as shown in the image. 
  5.  Then from the "Attached to" dropdown list, select "Bridged Adapter".
  6.  From the "Name" dropdown menu, select "eth0" or the network adapter you want to connect.
  7. Click the OK button and start your VM.
  8. Now you should be able to see your LAN computers :)

Image related to Step 03.

How to connect LAN in VirtualBox in Ubuntu

That's it friends. I have made a video explaining how to do this. If these steps aren't clear to you, please check this video.

How to connect LAN in VirtualBox Ubuntu

Be kind to share this with your friends in Facebook, Twitter or Google+ if you think this will be useful to them :) Also please feel free to leave a comment and let me know what you think.