Monthly Archives: January 2016

Lovely feedback on my My Picture Books app

It has been a while since I did any work on My Picture Books. It’s always a nice to get some feedback in my inbox. Carlos gave me an ok to share it here:

It’s a great app, very easy to use. My little students (5&6 years old) are able to create their own albums.

I’d like to suggest you only one thing. If you can to make an option to share the albums it will be the perfect app.

If you don’t know the app, here is a quick introduction:

Really great to learn that children of that age are able to use the app. Being able to share, or even export your books requires quite some work, and I’m not even sure how to best go about it. But it got me thinking about the app again.

Like with Idea Growr, the app doesn’t have an online back-end, so I’m first looking into what can be done in the device. I’ll try to create a little prototype that at least will be able to export an HTML file with images and figure out if that works.

Letting user set the language in an Android app is harder than you would expect.

I’m working on an update to Idea Growr that gives users the option to set the language of the app. At first just the option to either ‘use device language’ or ‘English’.

How language works in Android

If you develop an Android app you use folders like values-fr for all your French texts, and values-pt for Portuguese, etc. When a user opens the app, Android looks at the language that is set at the device level and it will pick that same language for your app.

You might think it would be easy to give users control over the language in the app, since the folder structure is already there. But it’s harder than you would expect:

  • You can change something that is called ‘locale’. But that sort of tricks Android into thinking that there is a different device language. This makes it rather hard to later on enable the radio button for ‘use the device language’. In the comments of this Stack Overflow question you see a whole range of options. Taking fully different approaches.
  • But these and other solutions you find online might be from 2012, and since then new Android versions make that those solutions no longer (fully) work.
  • Then when you think you get it to work, strange things happen, like action bar titles that won’t change immediately but sometimes later on. Again a Stack Overflow question shows I’m not the only one with this problem.

Ranting on..

So now I’m at the point that I try all sort of different things people are saying in the comments of Stack Overflow questions. I have the feeling that many developers would say that this is part of the process of software development, but what I find troubling about this is that I’m not learning anything.

I want to become a better developer, but at the moment I think that I actually could not have known how to do this with a better process or general software development skills. It’s just that Android assumes that users want apps to have the same language as their device. While I’m not holding my breath, I added a request for the Android team for an easy way to let users select the language of their apps.

Sim Karakter update: Now in Slack, but how to change the font?

Another update on the Sim Karakter game.

I have it working in Slack, but there are two problems:

  1. The font of Slack makes the numbers not align with the items in the level
  2. Typing ‘/sim’ all the time is a hassle

Sim Karakter on Slack

The font of Slack makes the numbers not align with the items in the level

As you can see the some elements are not aligning properly. I’ve not yet figured out how to use Slack Slash Commands to display test in monospace font or do some other trick that helps.

Typing ‘/sim’ all the time is a hassle

It’s a good prototype in that I can get a feeling for how fun it is. And while I knew the game itself didn’t have enough gameplay fun, at least in the web verstion it was easy and quick to play. In the Slack version everything you do takes a little bit too much effort because you have to type /sim before every command.

But I’m happy I got it working as planned :)

Progress on learning to build slack app for Karakter game

Since I have the ambition to create a sim game as a slack app, I wanted to first create something simpler.


The concept: the most simple tamagotchi ever; if you say ‘happy’ he’ll be happy, if you say ‘unhappy’ he’ll be unhappy. I got it working:

Simple gotchi

Things I learned:

  • The core of how Slack commands work.
  • Heroku is not the tool for this job. When there is very little trafic, a call to the server can take over 5 seconds to return something.
  • I learned to make use of Python Anywhere. Enabling a free way to run this code.
  • Made use of a WSGI file in order to get Python Anywhere working. I’m still not absolutely sure what the essence is of WSGI, other then that it tells the server how to run the code and act as a ‘middle man’ in some ways. But at least now I know that there is something I should probably know more about.
  • Creating a simple JSON file is super simple in python.

It was tempting to add new features to the ‘gotchi’ app and try to figure out more about how Slack apps works. But I now know enough to start working on porting my sim game to become a slack app.

Text based sim game ambition update

Back in april 2015 I wrote about the ambition to build a 1D asci sim game.

A new ambition

If you read my earlier post, you might not say it was lacking ambition. But in a way it was, because it didn’t say anything on how it was ever going to be played by people and have a real impact.

Smart text input gaining traction?

Developers in general, but perhaps more those who use tools like Vim [1] have known this for a very long time, but you can use the keyboard to do more then write something. These texts can be commands to empower you to do stuff quickly and precisely. I believe that the success of Slack has much to do with that quality.

[1] the site Vim site looks fake, but lets just say their target audience is not your typical designer..

Recently the app Peach has gotten a lot of attention, it’s a social app where you can share text, photos, etc. The unique feature is that it handles ‘magic’ keywords. So you can easily write ‘here’ and it will send your location.

The added goal: make it a Slack app

My new goal is to turn this game into a slack app. I don’t really know anything about building Slack apps, so that’s something that I’ll have to learn.

In order to be able to do that, I first need to learn more ‘back-end stuff’. The kind of things I also want to learn to eventually get my Idea Growr app online. Concretely this means improving my Python skills and learn to work to work with a back-end framework. I have chosen Flask, because it seems to be the most simple. Another part of the equation is that a (web/slack) app needs to be deployed somewhere.  So I’m also trying to figure out what platforms like Heroku have to offer.

Step 1: Turn the game from a terminal game, to a web based game

The initial game I had made only worked on the terminal, so my goal was to transfer the game to the web. I had to rewrite quite some code, including a nice recursive one to handle the user input, but now have it working online.

Since it’s not ready for user testing, I will not post that link, but here are some animations that show a little bit of how the game works.

Sim Karakter 1And here some more..

Sim Karakter 2

Let’s get some things out of the way..

Yes it’s ugly. Since the goal is to eventually have this run on Slack (a chat client), selecting nice colors and a font don’t have a high priority.

The game is not that fun yet. I believe that there is enough of the game working that if someone tests it, they can imagine ‘what would be cool’ and gather great feedback.

The game is very far from done, but I’m learning a lot of new stuff, like how to set up unit tests with pytest (not 100% code covered yet..) and just getting more experience with coding things that have a little complexity to them.

Concluding; the extra criteria makes it easier

By defining it has a Slack app, I have made the project much more of a MVP that I can see working. This gives me extra motivation to dive into this project even more and see where it takes me.

Like always, let me know what you think. And if you think it sounds like a fun project, I’m always open for collaborations on projects like these :)

How to export and import ideas in Idea Growr app

With Idea Growr you can quickly write down your ideas. The app stores all your ideas on your phone, not online. If you buy a new phone it would be nice if you can take your ideas with you. You can do this by the export and import feature. Here a quick guide on how to do that.

Exporting and importing audio files is not yet possible.

Exporting your ideas and notes

In the phone that holds all your ideas, on the start screen in the top bar there is an arrow up icon.

Idea Growr export

If you tap that icon it says ‘Send all ideas and notes’ and you can select an app on your phone where those (it’s text) will go to.

SendI deas Popup

For instance you can select your e-mail app and send an e-mail to yourself.


Don’t change the text of the e-mail. This is the text you are later going to import. The import feature relies on that the text is structured in a certain way.

Import ideas (on your new phone)

The text you used sent yourself you can use to import all ideas and notes to a different device, for instance your new phone.

On your (new) phone or tablet first go to your mail and select all the text of the e-mail and copy it.

Then you open the Idea Growr app and tap the gear icon in the top bar. In earlier versions the app had a different settings icon.

Idea Growr settings

On the setting screen tap ‘import from text’. I plan to clean up this settings screen, so in the future this screen may look different.

IdeaGrowr settings import

You then see this screen where you can do the real importing.

Idea Growr import

In this screen you paste the text that you copied earlier from your e-mail (or other app). You then press ‘Save ideas and notes’ and the following will happen:

  • Every idea will be created
  • Every note will be added to this idea
  • Every answer to every question will be converted to a note. While not ideal, no information is lost.

If you run into any problems, let me now in the comments or send me an e-mail.