Fix Lubuntu 14.04 Chromium fullscreen mode

I bought an old Dell D430 laptop which is pretty old and small (12″) and I installed Lubuntu 14.04.02

The problem is that the fullscreen mode on Chromium and Chrome is not working as expected. It hides the application bar at the bottom but does not allow the browsers to go fullscreen – tabs and address bar are staying in their place when you press F11.

The problem is that the F11 key is taken from the system to make the current focused window fullscreen. You can see it here: https://help.ubuntu.com/community/Lubuntu/Keyboard
So just go to ~/.config/openbox , backup the lubuntu-rc.xml file and edit the original one replacing the F11 shortcut for toggle fullscreen with F10 for example.
Logout and login again and now when you press F11 in chrome or chromium it will go fullscreen, instead of using the default system shortcut.

Guake Terminal for Ubuntu not opening another terminal in the same folder

I use Guake for Ubuntu as a terminal. And there is this option in the Guake properties to set it to open the same directory you were in if you want another terminal. This is just now working with the latest version of Guake. To fix it just run the following:

gconftool-2 –set /apps/guake/general/open_tab_cwd –type=boolean true

And it will add a variable saying that you want the same folder opened when you open another terminal. 🙂

The bug can be found here: https://github.com/Guake/guake/issues/578

Android adb server version (32) doesn’t match this client (Genymotion)

Probably you have seen this type of error when using Genymotion as the Android emulator on which you test your device. This is how the error looks like:

adb server version (32) doesn’t match this client (35); killing…
error: could not install *smartsocket* listener: Address already in use
ADB server didn’t ACK
* failed to start daemon *

There is one simple thing that worked for me. I opened the Settings menu of Genymotion, then ADB tab and selected: Use custom android SDK tools and I set the path to the tools. By default Genymotion uses its built-in tools. After that killing all working emulators and starting them again makes everything  work.

Hope I have helped!

The difference between a spec and a test (Behaviour Driven Development)

What is a spec

There was a time where I saw some tests which my colleagues made where the file name in the test folder would be: “users.spec.coffee”. So “spec” is short of specification and it is a totally different way of how we think  about tests.

Continue reading “The difference between a spec and a test (Behaviour Driven Development)”

Card.io issue not supporting Samsung S5 and other devices

card.io 5.4.2

Card.io is a card recognition SDK used by PayPal which allows you to easily scan your own credit/debit cards and get information about them in the code.

Problem

Using card.io from the source and not from Maven requires you to have the latest Android NDK with which the project will be built. But compiling it with the latest NDK introduces a bug which prevents the library from supporting several phones like Samsung S5, Honor 7 and others.

Continue reading “Card.io issue not supporting Samsung S5 and other devices”

Mockito anyString() vs any() – null handling

Sometimes, when I mock a method in Mockito, I used anyString instead of any and I get into a mess and my test fails. Why?

given(mUserRepo.getUser(anyString(). any())).willReturn(new User());

And what will happen if

mUserRepo.getUser(null);

UserRepo is called with null? Well, the matcher doesn’t work and the test fails. anyString() does not work with null values. If you pass null to a mocked service then use any() as a matcher.

Context in Android Databinding XML files

It is so easy guys, just don’t forget that DataBinding creates a field called context which you can access by default in your XML file. So you can write something like this:

<data>
   <variable name="name" type="String"/>
</data>
<layout>
  <TextView
      app:text="@{StringUtils.format(context, name)}" />
</layout>

And it will be just fine. You have the context from the parent view. Check it HERE.

Feature toggles in NodeJS

I had to implement a feature toggle recently.

What is a feature toggle?

I will keep it short. You have to add a new feature to your product, but you want that feature to be available only for certain type of users. What you do? Well, you just make an if check to see the user can see this feature and then you toggle it for him. Here is a sample check:

if(ToggleRouter.isEnabled("comments")) {
  // Display the feature to the user
}
Continue reading “Feature toggles in NodeJS”