Text replacement, ASCII emoji and Slack

Humans are creatures of habits and programmers… well, even more! Working remotely, I spent lots of hours interacting with people using a keyboard:


Not like that! I mean typing! Nowadays, typing emotions is a common thing: we use emojis. They are everywhere: Slack and Facebook have them. Not Twitter (Yeah, I know! I just can’t get over it!”).

You simply write 🙂 and you get a nice smiling face (Rocket science, eh, Twitter?)

Slack pushed it even more. They have a ton of icons and you can even add yours, but… BUT the keywords to trigger the icon replacement must start and end with “ : “, like :+1:, :-1:, :sweat:. It gets worse if you prefer other skin colors: :+1::skin-tone-5:.

I continuously type +1 or -_-’ and I want them to be translated in emoji, Lucky me, OSX has a text replacement feature:

System Preferences -> Language & Region -> Keyboard preferences -> Text

Keyboard preferences -> Text

Once you have your favorite ASCII emoticons ready to be replaced, you go to Slack and enable the Text Replacement:

Enable text replacement


With the same approach, you can even easily censor yourself, replacing words like f*ck, sh*t and so on 🙂

And now, go to setup some office prank for your colleagues >:)


Fellas at https://medium.com/developers, we could use some emoji replacement here, too 😉

ADB over WiFi

A few days ago, I built a device holder to place as many devices as possible on my desk without losing my sanity (https://medium.com/@hamen/first-hardware-project-of-2016-device-holder-4ef25670c507).

One more step in that direction is solving the charging issue:

N devices, with turned on screen, wifi and gsm data vs Powered USB Hub

Poor USB Hub cannot win against a Nexus 10: that thing sucks more energy than a black hole.

My solution is a plethora of USB chargers and WiFi ADB connection. We just need Android SDK and its ADB. First thing: list the devices

adb devices -l

List of devices attached

With the device list, we can now operate on any particular device. We need to setup the connection port first:

adb -s DEVICE_ID tcpip 5555

Setting up the port

Once the port is properly configured, we can connect to the device. We need to know the device current IP address and we can find it in:

Settings -> Wi-Fi -> Advanced (in toolbar menu)

We can now connect to the device like this:

adb -s DEVICE_ID connect DEVICE_IP


Ready to go! Fire up Android Studio and run your app.

WiFi connected device


If you want to go back to USB ADB, you can reboot your device or use:

adb usb

2015: my quantum leap

First week of 2016, lots to do, but what about 2015?

I’m still working remotely and this helped a lot from a logistic point of view: I relocated in France with my fiancee.


I started this blog and I’m putting a fair amount of energy into it, but the most important event is definitely the publication of my first book: RxJava Essentials (https://www.packtpub.com/application-development/rxjava-essentials). It was a big achievement for me. I’m very fond of the reactive approach and I have spent 2013 and 2014 talking to people, trying to help them overcoming their “fear” of this paradigm. But it was just “talking”. When Packt Publishing gave me the opportunity to “write” about Rx in a very similar way I was “talking” about Rx, I jumped on it.


I was very focused on the book and I completely missed the deadline for Droidcon Turin in April. I didn’t want to lose the chance to challenge myself and I arranged a quick barcamp session when I was there. First time talking to an unknown crowd: my “lizard-people-person” instinct kicked in and they almost had to put me down after one hour talking and showing code.

In June, I had my first Droidcon talk in Berlin:

I was super nervous, there were tons of people and when the staff started to add even more chairs for the audience… I almost freaked out! The talk went well, people enjoyed it and I had lots of feedback. I can proudly say that’s the most popular DroidconDE video, so far.

In November, I had my first Devoxx talk in Antwerp. Great experience! I wrote a post about it and you can check it out here: https://medium.com/@hamen/my-first-devoxx-fd82ee7d476c#.1iv2ynrzy

In December, I was in Krakow for my talk at the Droidcon, back in Poland after ten years. You can read my report here: https://medium.com/@hamen/back-in-krakow-for-the-droidcon-25f5b868a981#.v5oyznyg7

Conference after conference, I thought I would be less nervous. Not really. You are surely more confident, but you are still nervous, because you want to share knowledge, because you don’t want to disappoint people, because you care!


Well, the journey continues: more code, more books, more talks, more friends. See you there 😉