Linking Sencha Touch builds to API Server projects in Linux

Often while developing web applications, you want to deploy not only your application, but an API or Server to support it. This inherently leaves you with two codelines to maintain and worse, to deploy. The mere thought of dragging and copying files around drove me crazy, so I did this very simple trick, which makes your API-project the master in control of the final software but allows both projects to exist independently. Here in the given example, it links the production build from Sencha Touch to a Jetty/Maven API Server setup, but should work in any setup if the folders are linked correctly.


First locate the root folder where your application should be deployed in the API project. For this example let’s take ~/workspace/api-project/src/main/webapp

Then locate and go to your Sencha production build folder, which should be something like:

cd ~/workspace/sencha-project/build/production

 If you already built your project once, you should see a folder with your App’s name. Make sure to make a copy somewhere for safety, but remove it.

rm -rf your-app-name

 Then simply call for the magic words:

ln -s ~/workspace/api-project/src/main/webapp your-app-name

 Now the folder your-app-name should be a link to your webapp content, which means that whenever you call for:

sencha app build

 Sencha Cmd will nicely set up all the structure and required files directly in the destination for the API Server project. Making the trouble of integrating them null. Please make sure the folder your-app-name is correct, otherwise it will be simply recreated.

Important Advice: If you intend to commit static deployments to your API Server project (instead of ignoring the files, using them for deployment only) I would advise you to configure all the files in your bootstrap.json to ["update":"full"] otherwise you will end up on a source-code committing nightmare, due to many delta files. This of course depends on personal preferences for source-code handling.


Iteratively improving how you finish personal goals

Couple years back a friend of mine pointed me how goal oriented I was, and until then I had never really noticed. Afterwards, I started to create and improve a process I used to help organizing myself better, to ensure I was finishing what I wanted to do. That process has changed (or dare I say, improved) a lot since then but its inception was a simple To-Do list. It has been a while since I wanted to write, not about the process itself or its pros and cons, but about the iterative development which I have been using to improve it. I will explain some of the steps along the path, clarifying what drove my changes and the results observed, but there are some important considerations to do before starting.

Pen and paper are important

 There are a ton of task or goal managers, either online as web services or as installable applications. I even personally developed one. They are good for managing bigger pictures, at top or epic level, but when it comes to the actual bleeding edge of getting things done at home, the old pen and paper were most efficient to me. They are technology independent, extremely fast and practical compared to any application, and with an incomparable freedom. This creativity freedom is probably its most important aspect. When iteratively developing a process for yourself, the personalization should have absolutely no limit.

Whenever you choose a tool, you will mostly have to change yourself to it, often not the other way around.

For companies or teams, it is not uncommon to use iterative development to define their processes as well, but there will always be compromise because people will always be different. There it is important to have well defined rules, because you will join or define a culture. Whenever working alone, where there are no stakeholders but yourself, there are so many natural impediments and side-tracking possibilities, that any extra decrease of motivation or learning curve shall be avoided at all costs. The only setback on using pen and paper is the lack of fancy statistics or some easily computed performance data. I love them, but so far I never really felt it was a big deal not having those. Having those metrics at big picture level have been sufficient with some additional helper electronic tools.

Discipline is important

There is no mystery or magic mantra that will help you without discipline. Fear not, it is important to note that discipline is a skill that can be developed and not a natural or inherent trait. Some personality types might have an easier way than others while developing it, but that is true with any skill. Another important point is that discipline requires training and gradual development, but it can very easily go havoc. Just like going to the gym, if you do not work hard on maintaining your habits and dedication, you will gradually degrade your ability, and you can easily pull a psychological muscle if pushing yourself too hard.

 Your state of mind has direct impact on your discipline.

Knowing yourself is important to understand how some aspects of your personality impacts your discipline. There are people who, whenever frustrated or willing to escape some aspect of their lives, can focus on tasks and achievements strongly while others cannot perform anything while it is not sorted out. How to choose an appropriate discipline training strategy is a big topic on its own, but it is possible and important that you do it. My advice: try and error. Once you know how to use your state of mind into training disciplined habits, you will be able to find a balance and synergy while developing an even stronger discipline.

Starting point

Everyone needs to start at some point. The first written records I have on my process date late 2009. It was a simple written enumeration of my goals, with a big circle that I gradually filled when the target was moving forward. Removed goals were simply strikeout and no relation to time was given.


Putting things into writing and actually having a place of reference, helped me to decide what to do. A list like this, for the moments where you have some idle time are ideal for answering the following question: “what should I be doing?” It is not often you find yourself that idle, but when you do, it is good to have a point where you can answer “I don’t know, but there should be something interesting yet-to-be-done in here.”


The most important lesson with this prototype was the difference between the goals. Some of them where binary and some of them I was gradually filling the circle over time. That made clear the distinction between a simple task and larger goals. Goals were more complex and took longer to achieve, while tasks were practical and could be closed easier. That raised my interest in optimizing my process to focus on granularity, allowing a more practical sense of completion and moving forward.

Granular task list

The next step on my development was only trying to be more granular. I was not yet thinking on creating epics or goals which were composed of several tasks, but simply wanted to write my To-Dos in a binary form. Done or Open. A nice code was starting to grow: minuses were open tasks and pluses were closed. New things to do were simply appended.


Not having to think how complete was a particular item on the list in an abstract manner was the first and biggest improvement. Either it has been done in a satisfiable manner or not. The granularity also helped to cross items of the list more often, which was a big improvement on the motivation and flow.


A static list became a problem very fast. First, when growing, a lot of crossed tasks created a nice environment for overlooking one single open task in the middle. Second and most annoying, because of the lack of time relation, there was no difference when you looked the list today and after two months, if there was no dedication to finish work. That could very well cause total forgetfulness on things to do.

Defining time frames

After my experience with agile methodologies such as Scrum began to increase, I could easily see that commitment and time were important variables to integrate to my personal process. In that sense, I decided to close my lists into monthly sprints, which were reviewed and rewritten every month. The coding was extended to have circles, which represented things that were postponed to the next month.


A lot was improved with this. The lists became really clearer, as each month had its own page, and only the open tasks were copied from the previous month. It is important to note at this point, the list was not planned ahead, only into the current month. Another clear and important improvement was the exercise of rewriting. It might appear simple, but the act of writing a postponed task again and again, became an incentive to finish it and get it out. Also, specially with simple chores, the effort on rewriting it into the next month was (or felt) actually higher than doing the thing itself. This improved a lot the completion of simpler smaller tasks from the list.


Procrastination had become exceedingly visible. As the list was reworked the first Sunday of every month. It was clear that the efforts and dedication towards the end of the month became much higher and things were mostly finished in the last week of every month. Besides that, a problem started to grow, as things piled up and the list became bigger and bigger every month. Was specially annoying since some of those tasks were actually not high priority or worse, required only in later months.

Training discipline further

Up to this point, the process was mostly dependent on organization rather than on discipline. The coding and writing organized and kept things clear, but did not help on actually completing them that much. Observing the procrastination effect towards the end of the month and different urgencies on the tasks, there were two paths to proceed: Planning ahead and reducing the time of the sprints. I incorporated them both in the respective order. Today is clear to me not only from my work experience but also from my own personal projects, that the best strategy was reducing the sprint time, but at the time, it was more important to me having clearer lists.


The changes for planning ahead were subtle. Important to note that I was not creating deadlines for myself, simply distributing things more evenly. The main benefit was removing the desperation effect on observing huge growing lists of tasks to do. The greatest improvement though, came on the weekly sprints. The procrastination remained the same: things were finished always towards the end of the sprint. The difference now was that, in the same period, there were four of such events, which meant that those smaller tasks got cleaned out earlier.


I used these simple things (three codings, one page per month, planning couple months ahead) for a long time, without observing anything strange. My discipline was gradually improving, which allowed me to do more things and more structured things. Parallel to this, I started organizing myself in bigger themed epics, which started to generate the tasks instead of random ideas. When my commitment started to surpass my time and discipline, that is when a new bottleneck appeared. Larger tasks started piling up, which meant larger and larger lists over the weeks. Postponing and distributing them into the future was still helping, but started to create a lot of split focuses, with several different topics being worked on the same week, which decreased productivity. This is currently where I am in.


Nowadays mine are luxury problems. What I try to accomplish and improve now with it is huge when compared to what it was when I started it. I probably crossed the line at some point over enterprising myself, but this is another discussion entirely. Trying to achieve more requires a designed process to help optimizing and supporting it. For those interested on knowing details on how I work there are some here but I wanted to close the text first. The important is to point out that this was designed and works well for me, that does not mean there are no better frameworks around.

What I described here is not much different than what several companies go through while optimizing and changing their own process. The idea behind this was to show how it is possible to map such experiences into your own personal organization, hopefully shedding some light into how to improve your personal accomplishments. The most important thing to keep in mind is to try things out and iteratively change your way of doing things until you get it right and remember… baby steps. For those looking for a magic framework that will force them to finish personal goals… Job 38:11. Only companies have this kind of leverage over you.

How my way looks like

Having tailored clothes is always better than trying to wear someone else’s. May my way of organizing things serve as inspiration for you to build your own process. I doubt you could use it as is.

1.1I acquired this nice notebook in late 2012, when I realized my system was stable enough to be worth some sort of investment, today I would buy something even nicer. The important for me was to get something that looked nice and I liked, because one things I learned about your backlog-task-list is: you will soon start hating it. That thing will become (and fast) a reminder of all those perky little procrastinating habits. Therefore choosing something I would naturally be attracted to helped balance things out.

1.1Organization is everything. Chaos only hinders discipline unfortunately. Here you can see that my time ahead planning are in a six months base. That has been quite ok. I also keep one week per page, and because I love ink pens, the back is not so good for writing. This also helps keeping some sort of limit on what can fit in one week. On the left there is a legend for my code.

  • To Do: Open tasks.
  • Done: Free of guilt.
  • Procrastinated: this task can be found somewhere in the following weeks.
  • Done too late: dangerous one, represents that I executed the task, but not updated the notebook accordingly. Happens when I do not work on the notebook for a while.
  • Cancelled: Deprecated or ignored tasks.
  • Procrastinated and merged/refactored: this is an interesting one. Every now and then a task becomes something else entirely than the originally planned, requiring it to be reviewed. This means either the scope is reduced or it is broken down in several.

1.1Here is how an normal week’s planning look like. My latest addition was to include a count of how many weeks I have been postponing something from the originally planned. You can see those can be very high. In this case (this is the current week I am in) most of the items will be postponed again (as today is Sunday, last day) and this high count is because I have not yet fully recovered from a setback months ago.

1.1Another latest addition I have, trying to recover from my split focus, is to define particular “Epics” I should be working on. I have a personal backlog with top level projects I want to complete this year, and those three were the ones I wanted to have done before the mid year. This helps to decide what tasks to take in and gives a check point I need to reach. In this sense I have two process I use, this notebook for the bleeding edge execution and another one to handle long-term achievements. Lot of planning is required to align both, but basically the second is the executioner to achieve the first.

Not everything is perfect

One thing that always helps, is to show how things can go wrong and that even though I have a pretty process defined up there, it is not fail proof. Having a process and all is nice, but you should never be afraid of failing, or when you do, let it consume you.

A process should empower you, not enslave you.

The important is to understand why bad things happen and change what is needed to avoid it. Another thing to say is that improve does not necessarily mean do more, or do better, but also feel better while at it. Have fun with my failures…


Classic optimism failure. I was on holidays and my mother was visiting me, I naively expected to have the same normal throughput as any normal week. Little did I know… Concrete actions for this are not so simple, simply “Abandon all hope, those who enter here” or in other words, do not kid yourself.


This is a troublesome “why bother making plans if I will do something else”. Sidetracking can be terrible, specially if you are affected by external factors such as work or an unexpected personal project. Here is a clear sign of degradation of discipline, in this particular case happened after I spent quite some time without practising my habits. It has even been a couple months since, and I am not yet fully recovered, slipping into slackness often. This goes back to one of my initial topics.


This is the root of all evil. A blank page means that, not only I was not doing anything, I was not even taking care of my organization. Basically means total lack of discipline. This was not the first time it happened, and I dare say will not be the last. As already mentioned, discipline is an exercise, so it requires patience and training to develop it.

Leave feedback! Hope this might have been useful to you.

How do you wish to be remembered? “As someone who did the best she could with the talent she had.”
– J.K. Rowling

Transferring a foreign driver’s license to Germany

Many people say the process of transferring your driver’s license to Germany is painful and I must really disagree. The words I would use are actually long, as unfortunately it can take a good amount of time, and expensive. The good news is that most of the time is spent waiting. Here I will go over the step-by-step for a Umschreibung von ausländischen Fahrerlaubnissen. The links I will refer are all to Berlin, but it should not be much different in other places in Germany.  Another important point, is that I had only experience with a regular driver’s license. For other fancier more powerful classes, I would advise you to use this only as guide and research further for the differences.


Preparations  for the request

This is a universal step anyone (no matter which country of origin) has to go through. In Berlin you can find the latest requirements in the following link:  [German]

There are not many mysteries to which documents you will need. The classic biometric photo, address registration, passport and the original driver’s license you should already have. Make sure they are all still valid. If you have the international license, then there should be a translation to German already. This should suffice but it will, as usual, depend on the mood of the Beamter you are dealing with.

Sworn Translation of the License [About 40€]

If you are not so lucky to have a proper translation, there are no worries. The Bundesverband der Dolmetscher und Übersetzer e.V. (BDÜ) offers a way for you to find a good translator near you. For people in Berlin, just go on the following link and search for translators from your language to German. The important you need to make sure is that they can offer beeidigt translations. [German]

For other cities or regions in Germany, Bundesverband also have alternative sites (e.g. so just do a bit of search and you will find the appropriate site for you.

First Aid Course [About 20€]

The Lebensrettende Sofortmaßnahmen is probably the most annoying document you need to get before you can apply for the transfer. Basically it is a course to teach you the basics of handling accident victims and takes about two thirds of a day. This is also required no matter where your driver’s license comes from, and it is also the first thing which goes in the direction of extending the process in waiting time. You need to find a place where they offer the course, see when they will have an opening, and schedule.

If you are lucky, you can find one with vacancies without much wait, but be prepared that some places only offer the course every couple months. Another thing is the language, I heard there are some places which offer it in English, but if you add this restriction, your waiting time might extend considerably. You do not really need a super advanced German to understand the course, just be sure to make nice with the instructors, because if they get angry with you, they can fail you without mercy.

You can find the one I used bellow, I actually booked it about one week before the course. It was far from where I lived, but the course also happened on a Sunday, so it was no big deal. The important was to get this document soon as possible. [German]

Optic Test [About 10€]

Luckily, this is not a doctor test. You can get this at almost any Optiker. They will just confirm whether you need glasses to drive or if you are colour blind and so on. The test takes about 10 minutes and is very cheap (when compared to everything else).

Submitting the Application [About 40€]

Once you have all the documents, you need to go to the responsible office for paying and submitting your application. There you will fill and sign all required forms. Another important point to make is what will be required from you further ahead. Basically, if your driver’s license country of origin (not your nationality) is on the list bellow, you can see whether you need the next steps or not. [German]

If you are not lucky (like I wasn’t) to be on the list, you fall back to the aus allen anderen Staaten (Drittstaaten) clause, which means you will need to do both theoretical and practical tests. If there are no tests required, they will simply schedule you to pick the new license.

You also need to choose where you will be making the tests. I do not know if there is a big difference in prices, but I would advise you to pick, from the available choices in your city, the one most practical and close. It is important to note that this is not really a driving school, you will only need one further ahead, if you need the practical test. This is simply an authorized institution to conduct the test. In Berlin, TÜV-SÜD was the closest to me, you can find the prices bellow. [German]

Once all is done and signed, you will go back home and wait anxiously at your post box for the letter confirming you are eligible for the tests you need. If there are any irregularities in your documents, they will also inform you by post, so make sure to have everything perfectly impeccable to avoid going back to the pile. This can take a couple months. Once everything is confirmed, they will send you all required payment documents for the tests at the institution you chose.

Annoyance: they will request the original to be kept captive. Have fun fighting them not to do that. I know people who managed not to give up the original. I did not bother going through the trouble, as I can just request a replacement in my country.

Theoretical Test

Most of the countries need at least the theoretical test. TÜV-SÜD offers the theoretical test in several languages here in Berlin, but I am not sure if it is the same all around or just Berlin because it is multi-kulti. I opted to do the test in German, and I would advise people who need to do the practical exam to do the same. The reason behind this is to get used with the terms and things that later on the person performing your test might refer to.

Do not underestimate this test as I did (and failed in the first run). Make sure you are well prepared, and I would say try not to be too much theoretical, but rather memorize the answers, because some pictures are very tricky. You can find several sites online for training, but I used them on my first trial and failed because the test changes things slightly enough for you to make mistakes. On my second round I used the Lern-o-Mat software, and I can really recommend it. Here is a link for the 2014 version:

The secret to pass is just to train until you memorized the answers and concepts. Easy right? Once you are approved, if this was the only test you needed, everything is done and you just need to wait the confirmation you can pick up your new license. Important thing I learned the hard way is that if you fail, you need to wait two weeks before you can do the test again.

The cost here is about 20€ per trial.

Practical Test

The unfortunate who need also to do the practical test, will need to find a good driving school. This is necessary because they need to rent you the car used for the test, and of course, they will charge you for it. So basically the practical test payment is divided by the institution part [About 90€] and the driving school part [About 100€].

This is also the most expensive part of the process, but luckily the one that only depends on you. In theory, you do not need any classes for doing the test, but I would seriously advise you to take at least a couple. The instructor I had was really nice, and they really give you good hints on how to do well in the test. Specially if you are an experienced driver, you can have several bad habits which can cause you to fail. Remember that it is almost 200€ per trial. Beyond that, they will take you around the track where the test happens, which helps to avoid unpleasant surprises.

You can choose whatever driving school you want, they will schedule with the institution to do the test once you say you are ready. This means you can choose an English speaking school, or even one in your own language, but be aware that the test itself will be in German. I used a German speaking school. They were really good and patient (which for the bad driver I am, was important). You can use it to have an idea on the costs for the classes.


It is very important to note that after you do the theoretical test, you have exactly one year to make the practical test, otherwise you will need to do the theoretical test again. On the day you are approved, you will receive a paper which can be used for driving while you wait for the license to be ready.

I hope this helped clarify a bit how to get your driver’s license transferred to Germany!

Parceria com o Bruno

O Bruno me deu a resenha mais positiva até agora! Outras pessoas também gostaram do livro, mas não sei se realmente entenderam a “idéia” que tentei passar com o livro. Já o Bruno, pelo que conversei com ele, conseguiu pegar exatamente a experiência que eu queria e que ainda espero que outras pessoas venham a ter.


Bruno Cardoso

[…]Como eu nunca tinha entrado em contato com essa forma de narrativa antes, tive que me acostumar. E o que era costume virou admiração. E por fim, ao meu ver, o estilo de narrativa escolhida é mais um ponto a favor do livro, pois torna tudo mais dinâmico e dá um resultado final perfeito![…] – Resenha completa.

M: De zero a cinco, qual a nota que você daria para o livro?
B: Cinco, sem dúvidas!

M: Se você tivesse que definir o livro em um tweet (140 caracteres) qual seria?
 Diferente e inovador, misterioso na medida certa, um livro acima das expectativas.

M: Qual dos personagens você mais se identificou e por quê?
B: As características das personagens são bastante fortes e diversas. Não tem muito meio termo. Daí fica um pouco complicado de se identificar. Mas pensando um pouquinho, eu fico com a Serena. Entre todos os personagens, creio que se eu estivesse no lugar dela, eu tomaria as mesmas decisões, teria as mesmas dúvidas e tudo mais. No lugar de outros personagens eu teria tomado algumas decisões diferentes. Então fico com a Serena.

M: Qual das personagens você mais gostou e por quê?
B: Com certeza a Aline, pois, ela tem toda uma personalidade que muito admiro nas pessoas. Ela demonstra não se importar com o que as pessoas pensam dela. Costumo admirar e me identificar com pessoas e personagens que são verdadeiros mesmo perante criticas aquilo que eles são.

M: Qual dos personagens é o mais dispensável, que você tiraria do livro e por quê?
B: Difícil… Todos os personagens tiveram sua importância, o que é algo a se admirar em um livro. Porém, acho que tem um, apenas um, que não faria diferença se não estivesse na história. Confesso que tive que procurar o nome dele no livro, e acho que isso é um ponto a contar para a pouca importância dele. O papel dele foi meio que “juntar” outros dois personagens, o que poderia ocorrer de outra forma. Me refiro ao Thiago. Ao meu ver, ele seria o personagem mais dispensável. O motivo eu já expliquei: Ele teve importância em algo que poderia ocorrer mesmo sem ele, de outra forma é claro.

M: Houve alguma parte do livro tediosa, em que você precisou se forçar a ler? Qual e por quê?
B: Acho que pode parecer coisa de puxa-saco, mas a resposta é não. Nas duas primeiras páginas do livro eu já me senti preso a ele. E continuou assim até o final. Sei que além da história em si, a forma da narrativa ajudou pra que não tivesse nenhum momento tedioso. Mesmo nos momentos “frios” da história, a narrativa continuava ótima e fazia essas partes que seriam mais chatinhas deslizarem entre os dedos sem que eu nem percebesse.

M: Houve alguma parte do livro que te você não conseguia parar de ler? Qual e por quê?
B: Citando páginas, desde a 7 até a 366. Sendo mais específico, o livro todo. Se ainda assim, tiver de escolher partes e não toda a obra, a parte em que o Herdeiro desperta e a que o Renato segue em busca dos pesadelos do Herdeiro cairiam perfeitamente bem. O porquê é bem simples: Ação.

M: Se você pudesse mudar algo não livro, o que mudaria e por quê?
B: Eu daria um nome a Ele. Mesmo sabendo que tal personagem não apareceu muitas vezes e tudo mais, meio que as coisas giram em torno de atos feitos pelo mesmo. E assim como Lord Voldemort só permitia ser chamado de tal forma, ele teve um nome comum que nós sabíamos qual era. Gostaria de saber o verdadeiro nome por trás Dele.
M: Se um dia eu vier a publicar os meus outros livros, você vai entender (e concordar) o porque de Ele não ter nome.

M: Quais os pontos que o autor precisa melhorar no futuro, na sua opinião?
B: Tornar os personagens um pouco mais sensitivos. Mais “humanos” no geral. Certo de que “Herdeiro dos Sonhos” não se trata de um romance a lá “Romeu e Julieta”, mas personagens com um pouco mais de sentimentos seria interessante.

B: Bem, tive curiosidade de saber no decorrer do livro, o porquê que aquele personagem,[SPOILER] tem pelagem branca ao se transformar.[SPOILER] Não é comum, e talvez seja apenas uma escolha que fez durante a descrição dele, mas, eu gostaria de saber se existe algum motivo específico, alguma história ou algo assim?
M: A resposta infelizmente é repleta de spoilers, portanto estou protegendo o leitor desavisado, selecione para ler. [SPOILER] Então, sim, a cor da pelagem do Lucas na forma de lobo foi escolhida a dedo, por diversas razões. Eu precisava que ele tivesse um defeito, algo estranho na forma humana, que fosse em comum com a forma de lobo, mas que fosse discreto ao leitor. Nada melhor que umas mechas para passar desapercebido, certo? Adolescentes são sempre cheios de coisas estranhas para “se identificar”. Segundo, foi a cena em que ele perde o controle e assassina a namorada. Eu tinha bem fixa na minha cabeça aquela imagem dele sujo de sangue, com manchas vermelhas em algo felpudo, “fofo”, puro e branco, o contraste era essencial. Isso leva ao terceiro ponto: o Lucas é puro, não apenas de sangue (filho de dois lobos) mas de espírito. Eu quis passar que, apesar de feral e instintivo, ele é um dos poucos personagens do meu livro realmente “puros” no sentido livre de qualquer mal (outro, por exemplo, é a Fernanda). Ele fica amargo mais para o fim, mas ele não consegue se livrar da “bonzinhocidade” dele. Quarto e último, gosto mais do contraste olhos verde-esmeralda com o branco do que com alguma cor mista ou preto.[SPOILER]

Gostaria de aproveitar o espaço e te agradecer Matheus, pela parceria que fechou com meu blog. Pode parecer pouca coisa pra alguns, mas pra quem está do outro lado, escrevendo as resenhas e tentando fazer o blog crescer é bastante coisa quando conseguimos fechar uma parceria. E não é pelo livro que recebemos e nem nada parecido que agradeço. Mas sim, pela confiança depositada no nosso trabalho. Isso sim vale muito. Queria me desculpar também por eu ser tão enrolado, e ter te feito esperar tanto pela resenha. E dizer aqui em público, e não através do bate-papo no Facebook: Eu sou teu fã!


M: Muito obrigado pela parceria Bruno e fico imensamente lisongeado pelo apoio!