Android emulator fails to start after an update

The problem:

A week ago, after some update(not really sure which one), I faced a very frustrating issue: I could not start my android emulator(AVD) anymore. It failed with a not very informative error:

I say that it is not very  informative because it talks about glx and dri, while the actual problem is with libstdc++.so.6 which provided with the Android SDK. So in order to make the Android Emulator work again, we will have tor replace it with the system default libstdc++.so.6

The solution( fixing android emulator)

This fix android emulator assumes that you have android sdk installed at ~/Android/Sdk . This is the default path when installing Android Studio on Linux. If you have it under different directory please replace ~/Android/Sdk with the path to your sdk in the first line.

And that is all, folks. Android Emulator should start properly.

Disclaimer: based on tobias.preuss  answer.

How to install your own parse-server on OpenShift

UPDATE October 2017: As of today, OpenShift 2 is officially reached its end of life and is shut down rendering this guide irrelevant. I will keep it here for historical purposes.

Please note that this guide was for version 2 of OpenShift cloud platform. parse-server-example supports OpenShift 3 platform out of the box, so there is no need for any external guide.

TL;DR just take me to the instructions

parse-openshiftFew months ago I was consulting a start-up called AbiliSense on their cloud solution. They build this amazing mobile app for people with hearing disabilities. After understanding their service needs we decided to go with Parse BaaS solution, and it was all good until the dramatic Parse Announcement  about the retirement of their services. So there was a bit of frustration … But then we realized that parse-server gone open-sourced, so I said: You know what, this is even better! We will still use it as before, but now we will also own it!
Most of the functionality work out of the box, including cloud code. And also push notifications are implemented now as well.
There are guides on how to run it on many different cloud platforms. But not for OpenShift. Installing parse-server on OpenShift is a bit tricky, because of an outdated stock node.js and MongoDB cartridges. Luckily, this guy: icflorescu already created custom  node.js and MongoDB cartridges, that are up to date. So we are going to use these custom cartridges with more recent versions. Some people also have reported running into issues because of an old GCC version, but it seems that now parse-server does not rely on any native modules that require recent GCC version, so there should be no problem here. I tested it personally and it worked like a charm.

So let’s dive in, and see how you can run your self-hosted parse-server on OpenShift:

With Deploy to OpenShift button:

Deploy parse-server to OpenShift

IMPORTANT: after that follow the instructions in step #4 of web console steps to configure you APP_ID and MASTER_KEY

With OpenShift Client Tools(RHC):

First Installing the Client Tools (RHC), if you don’t have it already.

Using a web console

  1. Go to Choose a type of application in your OpenShift Online account, paste this URL
    http://cartreflect-claytondev.rhcloud.com/github/icflorescu/openshift-cartridge-nodejs
    into “Code Anything” textbox at the bottom of the page and click “Next”.
  2. Set your public URL, paste a modified for OpenShift parse-server git repo URL: https://github.com/antt001/parse-server-example into “Source Code” textbox and click “Create Application”.
  3. Add custom MongoDB cartridge to your new OpenShift application, go to “See the list of cartridges you can add”, paste this URL http://cartreflect-claytondev.rhcloud.com/github/icflorescu/openshift-cartridge-mongodb into “Install your own cartridge” textbox at the bottom of the page and click “Next”.
    1. If you use rhc, run the following command to set up you Parse APP_ID and MASTER_KEY

      replace myAppId and myMasterKey with your actual app id and master key
    2. If you don’t – then clone your OpenShift application repository with git using “Source Code” link from the application details in web console, and modify “appId” and “masterKey” values in index.js file

      replace myAppId and myMasterKey with your actual app id and master key, commit and push you changes to remote.

Live long and prosper, and enjoy you own parse-server on OpenShift.

Update 1:

This is an all-in-one solution, where you have your node.js server and MongoDB running on the same machine. This is good for development, testing or small-scale production(one small gear can handle around 60 requests per second, which is twice as much as Parse.com free tier). This is not a scalable solution. If you want a solution for a large scale production you will need to run a MongoDB cluster(don’t do it, unless you are an expert in MongoDB clusters) or use external services like mLab to do it for you. I will write a detailed guide for a scalable solution with mLab.

 

Debian jessie failing update with insserv rejected the script header

Few days ago my Debian jessie package update(e.g. apt-get upgrade) start failing with following message:

I was able to fix the problem by using solution described at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589238 and https://wiki.debian.org/LSBInitScripts

Long story short:
When I tried

I saw that dependency information is missing in smfpd init script. The solution was to add following:

to

after

and that was it. keep in mind that you might have to run also :

if update still fails.

How to install upstream kernel on debian testing

Sometimes you need to install the latest and greatest kernel image on you Debian testing installation. In most cases that is to support some newer hardware piece, or to get latest features. You have two choices here: You can either compile it from sources, or you can just take it from the Debian experimental repository. There are plenty guides online on how to build you kernel from sources, so we won’t go into it. Instead i will explain how you can grab a ready build from Debian and save all this time configuring and compiling kernel source code.

This is how you can add experimental repository preferences to you Debian testing  installation, install upstream kernel and keep it up to date with apt:

  1. First let’s add preferences for experimental repository, so it would be used only when specified manually
  2. Then lets add an experimental repo to sources list
  3. update packages db
  4. search for kernel of you choice. In my case i wanted linux-image-4.4.0-trunk-arm64

    i also needed firmware-realtek, firmware-linux-nonfree and intel-microcode for hardware compatibility since i use intel core
  5. than just install every thing from experemental repo
  6. Live long and prosper

 

How to install Android ADT Bundle with Eclipse on Debian x86_64

This is a very old post and you probably should not bee reading this, because it is deprecated. But if you insist, suit yourself.
Due to missing 32 bit libraries installation eclipse adt bundle fails to run on x64 Debian installation. This is how you can fix this:

How to install Android ADT Bundle dependencies:
  1. Download ADT Bundle from d.android.com
  2. Open terminal and run as root:
  3. open ‘Main Menu’ application and create menu item for ~/adt-bundle-linux-x86_64-20130219/eclipse/eclipse
P.S.

If you cannot find ‘Main Menu’ in your applications – install alacarte package:

 

 

How to disable Google Play Magazines on Note II(no root)

If you, like me, live in country that is unsupported by Google Play Magazines, than you don’t need this app on your phone.
But here is the tricky part:
I have updated my phone firmware with kies to 4.1.2
(I’m talking about Galaxy Note II GT-N7100 BTW, but you can apply this to any phone/firmware with similar problem)
Every thing was great until I noticed a battery drain. So I looked in battery usage statistics, and so there  Google Play Magazines eating my battery for 9 hours(active time). ‘I will just disable this app in application manager’, i thought to my self. But the app wasn’t there. WTF?! I checked the APK in  system/app: it was there. Application manager: no Magazines.

Had I rooted my phone, I would just delete the apk, but I didn’t.

So here is the solution if you find your self in this situation and don’t know what to do:

1. download Magazines.apk
2. enable ‘Settings->Security->Unknown sources’ on your phone
3. install the apk using file manager
4. go to ‘Settings->Application manager->All’ find Magazines and tap it
5. uninstall updates
6. disable

thats it. No root needed.