Sunday, November 30, 2014

Today I learned: Avoiding My Smartphone for One Months Seems Pretty Scary

I have decided, to set my smartphone aside for December.
This seemed pretty easy at first sight, but now it seems kinda frightening: I think, that some things will be more cumbersome.

I used to plan my day the night before on a smartphone. I wrote some articles for this blog on my smartphone. I used to make note on my smartphone. Almost all my appointments are made on my smartphone. Almost all of my ideas are captures on my smartphone. Much of my communication is run via WhatsApp, so almost exclusively on my smartphone. Much of distractions are also from smartphone: Reddit, messages, notifications. Sometime silly, but also fun games.

So, my smartphone is something I use everyday. More than I realized before.
And this step is now something frightening.

I will have to rely on my computer to plan my day (I need notifications for my tasks). I will have to take my notebook (not the computer, I mean the thing you write on) to make notes. I will have to rely on email (on my computer), and SMS for async communication. Feels a little bit like 2004.

Anyway, I'm glad not having to write anymore articles everyday. But somehow, I liked it. It forced me to reflect every day on what happened, what I have learned. It kinda rocked.

Saturday, November 29, 2014

Today I Learned: Psalm 22 ist a prophecy fulfilled

In John 19 it is written, that the soldiers cut Jesus clothes into four parts and gambled for his tunic. This scene is explained with these words:

"They said therefore among themselves, "Let us not tear it, but cast lots for it, whose it shall be," that the Scripture might be fulfilled which says: "They divided My garments among them, And for My clothing they cast lots." Therefore the soldiers did these things."

A wonderful example of explaining the scripture with the scripture. But where does this stand, what is fulfilled? You guess right: Psalm 22.

In my opinion (and luckily, not only mine alone) this Psalm explains how the Cruscofication of Jesus felt. From Jesus' point of view.
Just read some verses:

Verse 8: "He trusted in the Lord, let Him rescue Him; Let Him deliver Him, since He delights in Him!"
-- That's what some people shout at him when he is at the cross.

Verse 15: "My strength is dried up like a potsherd, And My tongue clings to My jaws; You have brought Me to the dust of death."
-- That's how you feel, hanging on a tree

"For dogs have surrounded Me; The congregation of the wicked has enclosed Me. They pierced My hands and My feet;"
-- Guess what happened to Jesus' feet and hands

"They divide My garments among them, And for My clothing they cast lots."
-- Guess why this is quoted in John.

Jesus himself quotes Psalm 22, when dying:
"My God, My God, why have You forsaken Me?"

And last, and maybe least, but nonetheless interesting fact: These verses were written by David, who was King of the Jews. Jesus has been hung because the Sanherin said, that Jesus was King of the Jews.
Thing like these explanations are one point why I love the bible.

Friday, November 28, 2014

Today I learned: It's more important how you do it than what you do.

Today, I was pissed off. I kinda saw no point in what I was doing. Every thing I moved, annoyed me. I groaned. I was in really bad temper.

Later that day my wife told me, that she was disappointed in me. It used to be fun doing that kind of work, but today my bad mood created bad mood in her. This sucks. I was an idiot, once again.

So, I experienced today first hand, that what you say or do does not matter as much as how you say or do it.

If I communicated my feelings and my expectations better, without all that annoyances, without groaning, but with seeking of understanding for the other person.

If I would handle that situation in this way, it would have been a way better to spend the afternoon.

So, instead of being annoyed, think about what it could mean. I bet in most cases you are angry, because your standards or your expectations are not met. If this is the case, either reflect whether your expectations are adequate and if not, correct them. If you think, they are adequate, communicate them as soon as possible, immediately at best.

I think, that could work wonders.

Thursday, November 27, 2014

Today I learned: JavaScript's continue is only allowed in loops

Reading through the basics of JavaScript, I wondered whether you could simulate a while statement with a switch statement. You might ask yourself: Wait, what?

Let me explain: I thought some crazy thoughts. If you could combine labels, a dynamic case statement, and the continue statement, you could fake the while loop. Let's look at an example:

Let's compute some Fibonacci numbers, the classical way.

var a = [0, 1],
    num = 10,
    i = a.length,

while (i < num) {
   a.push(a[i - 1] + a[i - 2]);
   i += 1;

And so I thought to myself, maybe you could do something like that instead of the while loop.

switch (i) {
  case i < num:
    a.push(a[i - 1] + a[i - 2]);
    i += 1;
    continue loopMe;

I was an idiot, and JavaScript told me so:

 Uncaught SyntaxError: Undefined label 'loopMe'

When I removed the label after continue, I still was an idiot, and JavaScript told me so:

Uncaught SyntaxError: Illegal continue statement.

So there was no way to get this to work. continue statements are only allowed in loops, as I remembered.
The only funny thing was, that JavaScript bitched about unfound labels at first. And then about the misplaced continue statement.

Glad, I used two hours of my life on that one. But at least, I have learned something.
And that is what it's all about, isn't it?

Wednesday, November 26, 2014

Today I learned: Gratitude is the antidote to fear

This saying is something I heard today.

If I think about the things I fear, then there are many things that may come to my mind: Being expelled from the company I work for, losing my job, not finishing the the love projects I have, not being accepted. But there may be even more drastic things, like losing my health, losing my family, being ignored by the ones I love, etc. The longer I think about this, the more frightening it becomes. Finally, my mind would come up with some super weird, super sick fantasy about something, that will never happen.

So why is gratitude the antidote to this? Because it helps you to focus on the good parts.
If I focus on what I am thankful for, not much comes to mind. One trick for me, that works is to focus on what I might be thankful for. Then events, that were fascinating, where I participated, come to my mind. My wonderful sons, as well as my beautiful wife. But also the little things, like that coffee this morning or being able to come home in a relaxed way (train riding rocks). Being able to breathe and being able to pray.

Out of this focus, it's impossible to focus on the possible negative outcomes in life.
What if I would really lose my job? Don't know. I would be sad probably. But I would find another one. Maybe that new one would be even better.

What if I would lose my family? Don't know. I would horribly sad, for sure. But after a time, I would get over it and go on with life. And who knows, probably I would value life even more than I do today.

Don't get me wrong: I do not wish any of those bad things to happen to anybody. But bad things will happen, inevitably, to everybody. The question I want to ask myself then: "What good can I get out of this? What can I be thankful for because of this?". I know, that's no a single magic button, that you press and everything will be fine, but a shift in thinking.

The bible says, that "We know, that all things work together for good to those who love God". This is an incredibly powerful statement. If you can believe this, there is nothing not to be thankful for and hence nothing to fear.

Tuesday, November 25, 2014

Today, I learned: Progress make you happy

Today, after some days of being sick, slacking, being lazy (hey, but sometimes, I enjoyed being lazy), I got a little bit back on track.

One hack, which works pretty well for me: Plan your day the night before.
When I wake up and think about what I should do today, it feels arbitrary. It feels not like a must an hence, not compelling at all. But when I take some minutes the night before to schedule my activities (not focusing on results but on work itself), it feels mandatory. I have to work on these items for that specific amount of time. And when I get to finish some of the items on my to-do list, it feels great.

And this feeling of accomplishment is incredibly motivating. I believe, that you should improve not only in one area of your life, but in every area of your life. This is challenging, but necessary.

If you focus on your relationship with your spouse, and do nothing else, everything else with go to the dogs. If your work life sucks and you focus on improving it, and you do not improve in your relationships as well, after a not too long time, your rest of your life will suck, too.

To keep it short, as Tony Robbins stated:

If you aren’t growing, you are dying.

Monday, November 24, 2014

Today I learned: There are still people in this world, who do not take JavaScript seriously.

I'm not sure on this one:
On one hand, it's sad. On the other hand, it's funny.

I watched a professional tutorial called "Advanced JavaScript". It's actually a couple of hours long course about advanced JavaScript techniques.

The first thing I noticed was, that the speaker compared JavaScript's lack of namespaces to "professional programming languages". Yeah, sure.

C#, Java are professional programming languages. JavaScript, the most used programming language in the world is not professional. Sure.

And further down the line, the speaker explains JavaScript's prototype mechanism to "real OOP". This is also great. In my opinion, JavaScripts OOP is superior to the classical OOP we all grew up with. Just because it's familiar, does not mean, it's actually better.

So, I ask myself why, even in 2014 there are some people, who teach other people JavaScript and apparently never saw Doug's "JavaScript - The Good Parts", which he semi-ironically calls the "most important discovery in the early 21st century".

On the other hand, I have to realize, that I, being as nit-picky as I can sometimes be, have to admit, that I can still learn a lot from this speaker.

So a small rant might be OK, sometimes, perhaps. Being a pedantic jerk is never OK.

Sunday, November 23, 2014

Today I learned: I gain so much on lazy sundays.

So, today, I went to church.
That's nearly all I did accomplish up to 17:00. After that made some photos for my ebay sellings.

Neither my wife nor I did cook today. We just bought some french fries and some gyros and were enjoying our laziness.
At noon, my wife and me were laying on the sofa, sleeping, while two of my sons (the youngest one was sleeping) were taking cushions from the sofa, took blankets from upstairs and moved some of the chairs to build a "robbers' den".

After shooting some photos and taking some notes for ebay sellings, I read Winnie-the-Pooh to them and played with them. It was awesome. In all honesty, this was one of the best sundays for a quite long time. No phone calls. No visits. No appointments. No events. No obligations.

Just me and my family. A great wife and great kids.


Okay, I did some ebay today. And, as usual, it took way more time than expected. This is the main reason I do not like ebay. But it's a great place to sink time and not gain much money from it. But it still feels a little bit better than just putting all the junk you want to sell into the trash bin.

So, I learned: Lazy days are not useless at all.

Saturday, November 22, 2014

Today I learned: Give Up Your Goal For Something Better

Today, I originally planned to write something extremely boring about some stuff almost nobody cares about.

During a conversation, a friend said to me, that it's shortly before midnight. I should have written my article by now, but I haven't. My first thought, in the middle of something, that just got pretty interesting, was to rush to my notebook and scribble something down, just to get my article finished.

But then, I realized that this would be stupid. So I participated in this wonderful conversation. We discussed about thankfulness, how it affects your mind, why it helps you through the day, why it helps you in your communication with others. We discussed about thinking, how seeking the positive in everything, even in the negative.

It was a great discussion with wonderful people.

Something, I would have missed if stayed straight on my not-so-important self-chosen challenges.

So, in doubt, I would like to choose the action with people talking about important things involved.

Friday, November 21, 2014

Today I learned: My unsatisfaction feelings are because of unfulfilled expectations

When you asked me about how I feel in the last weeks, I would say: I am discontent. I often was angry about myself, about the world, about crappy programming languages, about computer equipment, just about everything, no matter whether it makes sense or not.

Today, I thought a little bit about myself and how my sadness, angriness comes. I think, a major source of my no-good feelings are: a way too high, way too many expectations.
So I have to change my strategy in approaching my tasks.

Instead of dealing with failures, that some things take longer than expected, hence not being able to check off each and every item on my personal to-do list each day, I will simply choose to for an amount of a fixed time on a specific issue.

Instead of "making that super new feature work", I note: "Work for one hour on super new feature"

Tomorrow, I will report how it worked out for me.

Thursday, November 20, 2014

First Steps With Foundation

Today, I played a little bit with ZURB Foundation.
Although it's way too early to have a qualified opinion, I already recognized that I've made a major mistake: I've not used Sass.

My small hobby project is nowhere near completion (in fact, it's closer to not having started than to having something that's comparable to an mockup), so I think I'll start over.

What I like about Foundation so far:

  • The Off-Canvas flyout menu. In my opinion, the bootstrap responsive menu is ugly as hell. Whenever I can avoid using it, I avoid it. Foundation's Off-Canvas Navigation is sexy. Heck, it even provides multiple levels of indentation. That's a great reason to love it.
  • Another item I like is the integration of Joyride. You need something like that for your app, if your app is somewhat more complex than "Yo!". And I love if a framework makes something easy.
  • And I like the fact, that it makes customizing easier than Bootstrap does. I look forward where I can deliver my wonderfully styled app to the world with foundation.

What I don't like so far:

  • I have to learn it. ;)
  • And I missed some classes like pull-left, pull-right or text-center.

Maybe I just oversaw them.

Nevertheless, Foundation is the way to go for the next projects.
And having to learn Sass.

Wednesday, November 19, 2014

Today I learned: Sometimes it's better to focus on work, not outcome

So today I tried out how it would work out for me, if I  would not focus on outcomes but one the work I do.

So I set up my calendar to the time I wanted to worked on those specific items.
And although I did not accomplish everything I wanted to, I feel way better than yesterday.

Why is that?
I simply did decide, that I don't want to focus on a specific outcome. I often entered some stuff like "Finish xyz" or "Get xyz to work".

And this resulted often in an emotional mess. Most days, I failed. Even on days, where I did accomplish much, I did not fully succeed, because there was still somewhere a item list, which has not been checked.

And today, I just decided: I don't care how far I go come with xyz, whether I finish it or not. I just don't care. I will work for one hour on that item. If I finish it: great! If not, no problem. There is still something left for tomorrow.

Realizing, that my to-do list will not be empty when I die, I can see my to-do list now in a more relaxed way. And the more relaxed I am viewing at my to-do list, the happier I can go to work. And the happier I go to work, the better the results I produce.

So, this small hack seems to work for me.

Tuesday, November 18, 2014

Today I learned: I expect too much.

When you asked me about how I feel in the last weeks, I would say: I am discontent. I often was angry about myself, about the world, about crappy programming languages, about computer equipment, just about everything, no matter whether it makes sense or not.

Today, I thought a little bit about myself and how my sadness, and anger comes. I think, a major source of my no-good feelings are: a way too high, way too many expectations.

So I have to change my strategy in approaching my tasks.

Instead of dealing with failures, that some things take longer than expected, hence not being able to check off each and every item on my personal to-do list each day, I will simply choose to for an amount of a fixed time on a specific issue.

Instead of "making that super new feature work", I note: "Work for one hour on super new feature"

Tomorrow, I will report how it worked out for me.

Monday, November 17, 2014

Today I learned: Code Quality depends on Reviews.

My Code will be better if I know, it will be reviewed. Here I said it.

If you compared my code I wrote today, for basically myself only, to the code I wrote some months ago for someone else, you will find great differences.

I don't think that I'm either much smarter or dumber than this summer, but if you saw my code, it would be a huge quality difference.

In one code nearly comments every line, what it does and why it does this and how the result of each statement will be used in future, what's the meaning of each variable and so forth, the other code was just hacked to get it to work. It has wonderful statements like

var parentElement = jQuery(this).parent().parent().parent().parent();

Code like this makes me cringe. It shows me, that I write horrible code, at times.

On the other hand, the code I wrote for someone else some months ago, I knew he would be dependent on understanding every detail of my code. And I knew, that he is no profound coder himself. So I made the code as simple and documenting as possible. No little, dirty hacks that are kinda clever, run 2% faster than normal implementations, but are a mess to debug. Everything was well explained and well documented. That was maybe the best code I have ever written, yet.

So, from now on, knowing that someone might read my code will help me to write better code.

One more reason for me, to write more open source code.

Sunday, November 16, 2014

Today, I learned to live without Internet

Waking up this morning was weird. I grabbed my phone, wanted to check for some news on Twitter, WhatsApp, you name it. Full Wi-Fi. No internet connection.

Several retries later, still same result. After I went downstairs to check the Internet router. No Internet. Checking the splitter resulted in: No Internet.

Do I called my provider. Deutsche Telekom actually has a good reputation in customer service. At least they 're not as bad as the other internet providers. After spending some minutes in the waiting line and some more minutes, the first free available slot for a technician to come by is: next Friday. One week without internet. Hooray.

Okay, not really. It sucks. But on the other hand: I am kinda happy about the possibility to explore life without internet. I am forced to do so, yes. I did not choose it, yes. But I'm still a little bit thrilled about this possibility.

Instead of mindless surfing shopping websites, you would to do something else. Instead of watching YouTube, you would have to do something else. Instead of being absent minded with fluff, you would have to find a way to be absent minded with fluff you can touch, like books.

Frankly, this is just a mere fantasy. Instead of lonely surfing the Internet, I fantasize about being Super Dad, having the deepest relationship with my wife ever possible, my understanding of my career material exploding, learning to play the guitar and become fluent in Russian and Japanese within this week, just because of the lack of the internet. Reality will be different. But reality will be great, nevertheless. I just have to take it as it is.

So, now, after having spent my first internet-free afternoon for weeks, I'll create myself an awesome, super delicious Cappuccino and will continue reading a book of my choice.

You need less than you think to be happy. And you need less than you think to be thankful.

Saturday, November 15, 2014

Today I learned: I should choose my challenges wisely

I enjoyed this year. My monthly challenges helped me to get insights about myself. Challenges like not drinking alcohol or working out helped me to get to know myself. Challenges like spending time with kids showed me how hard it can be to set time for important things in life, when it's filled with clutter.

I think I enjoyed none of these challenges. And neither I enjoy writing this article. I would prefer watching that movie next to my wife than watching that movie next to my wife writing this article on my smartphone.

I know some of my friends think my self-chosen challenges are stupid. Day, I think so, too. Tomorrow, I'll maybe think differently.

So, I know that my challenges were not enjoyable. But I enjoyed the outcome. And next year, I will find new challenges. Probably I won't enjoy them. But I will enjoy the outcomes.

TIL: Plowing through the basics of JS actually helps

Today, I read through some pages of "JavaScript, the definitive Guide". I knew most of the stuff. And once again, like in almost every language, I read trough the seemingly boring bitwise operators. You know, stuff like |, &, ~, ^ and bit shift operators >>, << and >>>.

So I asked myself, why should I use them? Being and not-too-young developer and not having used them in any real-world-application yet, this shows me: Either those bit operators are a little bit outdated or I am a little bit ignorant, that means that I could miss out simpler solutions than I usually provide.

So I decided that I have to learn some bit operation magic.

So beside bit shift operations as an alternative to multiplying or dividing by powers of 2, I learned, that | 0 converts nearly everything to an integer.

Longer description can be found here:

So, if you have some handy trickt with bitwise operators in JavaScript, let me know.

The other thing I heave learned: labels in Javascript. You can label stuff. Most likely, you will label loops, so that you can break free from them with with the break label; statement.

I have to say, that Mozilla discourages you from using labels.

Friday, November 14, 2014

Today I learned: Choose your battles wisely.

Currently, I read the neat book "Don't sweat the small stuff ...and it's all small stuff"

One chapter is called "Choose your battles wisely". In this chapter the author argues that winning each and every argument is a bad bad strategy for every relationship.
Not only I would burn out if you want to correct each and every misbehavior of your kids, but I would be a really, annoying wisenheimer if I got into battle for every mistake my wife makes.
Frankly, sometimes I am a wisenheimer. I loose myself in arguments about small stuff nobody gives a dump about. I sometimes still search for arguments when others say to me: "You're right and I have my peace" -- meaning they still think they're right, just leaving me with my arguments alone.

So, instead of trying to be right all the time, I found it's better to be kind most times. And to debate in important stuff only.

My son notoriously mixes his right and left shoe up. So he put his right shoe on his left foot and vice-versa. Do I want my son to get his shoes in his right feet? Surely, I do. Do I correct him every time I see he makes an mistake? No. Why not? Because it's not important. Usually he walks only some meters with his shoe setup before he has to take them off again. It's just not worth it. Someday he'll be old enough to recognize it by himself.

My wife sometimes tells stories a little bit differently than I have them in my memory. Do I corrected her every time? Sadly: yes. Way too often. This is something I have to work on.

My colleagues do want to implement something differently than I wanted it to be. I think my solution is the better one. Shall I fight for my solution? In my (current) opinion: Only if it's worth it for me.
I might piss people, even close and loved ones, off with my statements. I might hurt someone.

So it's better worth fighting for. Being right for the sake of being right is not worth it.

Thursday, November 13, 2014

Today I learned: There is a use for void

Today, I learned two use cases for the Operator void
For the sake of Repetition: void is an operator which evaluates the given expression and returns undefined.

So, I asked myself, what could be modern day use cases for this operator?

I think there is no reason to be paranoid about undefined hijacking (i.e. setting the property undefined to something else than the value undefined.) Since ES 5, this is not allowed. And modern browser won't throw an Error in your face, when you do something like undefined = 5; but silently ignore your crappy code.

The other use, using it in the href attribute of a tags, is heavily discouraged today. In my questions on Google Plus and reddit, where I asked what sense people made out of the void operator, giving and old example of setting it into the href attribute, there were comments, begging not to do this.

So, finally, here the solution: first of all, you could use bookmarklets. What is a bookmarklet? Type javascript:3+7; in your browser's URL bar. Make sure, you use Firefox or IE (have it tested only in FF) to see the result. Congrats! You have executed your first bookmarklet. You can save this ingenious script to your bookmarks. What did it do? It evaluated 3+4 and changed your current page to that value. That's why you saw 7 in your browser. Webkit browsers don't do that, by the way. Never.

So void to the rescue: just type javascript:void(3+4) and nothing will be redirected. So you can implement a word counter bookmarklet.

Another use are minifiers.
Just like Yury Trabanko replied to me on Google+:

Minifiers use void operator. For example
function() {
    if(isA()) {
        return doB();

will become
    return isA()?doB():void doC();

Happy coding to you all!

Wednesday, November 12, 2014

Today I learned: void in JavaScript

Reading stuff about the JavaScript Module Pattern, about self-invoking anonymous functions (Tweet by Paul Irish , by the way, this tweet made me sign up to Twitter once again), I stumbled about undefined.

I knew that undefined was different. I knew that it was not a keyword. So what is it?
It's an variable. And a value.

It's a global variable, a property of the the global object, in the browser window.undefined.

I stumbled upon the the Mozilla documentation about undefined. As an alternative to
if (typeof lorenz === 'undefined')
they presented
if (lorenz === void 0)

I wondered. What's this void operator?
As the documentation succinctly explains:

The void operator evaluates the given expression and then returns undefined.
That's all. And then I remembered where I saw this weird little friend last time. It was about 1999 and it was about here:

<a href="javascript:void(0)" onclick="mouseOver()"><img src="earth_rotating.gif" /></a>

We've come a long way, baby. I'm glad we don't have to code this way any longer.

Anyway, now I think about a proper use case for this operator.

Tuesday, November 11, 2014

Today I learned: I'm fine with not having learning anything today.

Today, still feeling sick, after short day at work, I stepped outside in my garden.
Not that I wanted to, I kinda had to. My youngest son wanted to get outside. My wife and the other two kids were away.

So I did some garden work and thought what I have learned today. And nothing came to my mind.
I did watch a tech talk. But my focus was somewhere else.
I did accomplish something at work today, but there was nothing new to me. Just applying known stuff.

So I was outside, thinking about the passing day, having an eye on my son and raking up the leaves in the garden. And fumbling with the leaves between the stones. There was nothing to be written about.

I heard the sound of a bunch of migrant birds up in the and invested some time of my short life to glaze at them while they were flying southwards. I guess, those were some geese. I love that sound. I love that formation flight. And yet, for the first time, their flight seemed not only elegant and wonderful, but also incredibly laborious. Laborious, yet elegant.

I returned to my work, making sure, my son is still playing in the sandbox.

Then it became clear to me:
Sometimes, it's just OK to be.

Monday, November 10, 2014

Today I learned: It's OK to tell your kids to fight for themselves.

My son didn't want to go to kindergarten today. Why, I asked. He replied, that there was a boy, who hits him.
I looked him deep in the eyes and said to him: "If that boy hits you again, go tell the teacher. After that, if he hits you again, hit him back as hard as you can."

Then he was willing to put on his clothes and go to the kindergarten. I gave him a tool how to handle his situation.

As I wrote yesterday, we had a series of talks about relationships. The referee, a pastor, told a story about being harassed in a shower and being told, that he may not defense himself, because he is an pastor and that he must turn the other cheek. He replied, that Jesus said that to people, who were really far in their spiritual life. And that he is not sure, whether he is that far in his spiritual life. But that he is sure, that it will be not his blood, that will run the shower drain.

I believe, that having told my son to turn the other cheek would have caused big harm.
On one hand, the self-value, something I believe God himself has put in everybody, so also in my son, would have been damaged. This would be very sad.
On the other hand, the other boy, God knows which hurts his little soul has experienced, that he treats others this awful way, would not learn, that it's not good to beat other kids. And that would be very sad as well.

Sunday, November 9, 2014

Today I learned: You can have joy with kids even when you're sick.

We had a series of talks at our church. It was about relationships. It was about the fundamentals of relationships, about the relationship between a man and a woman and between children and parents.

Todays talk was about enjoying family life.

Many people talk negatively about their family. I am guilty of this one, too. On friday, I said to a schoolfellow, whom I haven't seen in years, (Larissa and I were without kids that day) that doing the shopping without kids is great. What an idiot I was. It's not great. Maybe it's faster. Maybe it's a less nerve-racking experience some of the time. But it's not great.

Family life is great. Or I should say: Can be great.
Today, being still a little bit sick, I would have preferred to lay in bed the whole day.
I did sleep a little bit today, but not much. Quite a lot of the time I spend reading two stories from "Lustige Taschenb├╝ber". And although I was sleepy, I loved cuddling with my kids while reading silly stories about Donald Duck trying to steal an old locomotive for Scrooge McDuck because of some super-secret-and-super-advanced-metal in that old locomotive.

Then I started to fight with my kids. Or better, to wrestle with them. I hold them and they had to figure out how to get free by themselves. I wanted to show them, that they can do something by themselves to change things. We played bulls, pushing each others head with one owns head as strong as possible. We played tortoises. One is an old tortoise (lying facedown on ones knees) and the other tortoises have to turn that old tortoise around without using hands.

They loved it.
And I did, too.

Besides learning "cool" new stuff about programming, about server, clients, frontend, frameworks, and much much much much more, I have to become an expert about my family. And the latter one is much more important. And make more fun, in general. :)

Saturday, November 8, 2014

Today I learned: My kids want to spend time with me.

I feel sick today. Not that much sick, that I would stay at home all day, but although I've got plenty of time today, I did not accomplish much.

But, given that hint by a good old friend, I asked my 5yo son, whether he thinks that I worked too much. He replied: "Yes, you work much. But there is something I considered: I want to help you with your work." I asked, how he thinks he could help me, he answered: "I would help you. I would help you changing the tires on our car."

Yesterday, I changed the tires on my car. The younger one helped me, tightening the screws. It was great.

Today, after that short conversation with my oldest son, he said to me, knowing that I feel sick, that I should lay down a little bit and that he will lay next to me an cuddle a little bit.

Right now, after about one hour of lying next to me, listening to some book I read to him, he stood up and went away to playing with some toys.

Kids, the older the less, do not need your attention full 24/7. They want to spend time with you. They want to feel loved, to be taken serious, to connect with the most important people up to now. And this is great. This means, that I can, even if I work much, even if I do not spend as much time with my kids as I liked to, I kinda can make up for this by having time dedicated only to them.

I did not accomplish much. But today, I accomplished some important things. And this is great.

Friday, November 7, 2014

You can become a victim of social engineering, too.

Today something extraordinary happened to my friend. But "extraordinary" in the negative sense of this meaning. He would be glad if he could undo it.

He got a call from Microsoft. At least, the guy on the other side of the line said, he came from Microsoft. That guy babbled something about that my friend's computer got hacked and is sending malicious requests all over the internet. It sounded dramatic. Like being a criminal. So that guy asked my friend to type in some commandos into Window's command prompt, which my friend kindly did. I don't know which command that was, but it listed all sorts of warnings and errors. I presume, it was some command line clone of windows event viewer. So that guy asked, if my friend was able to see all those errors and warnings. My friend confirmed. Then he asked to type "inf hidden trojan" into the command prompt, explaining, that this command would list all hidden Trojans, which were present on the system. So my friend got a list of .pnf  files listed in that small black box. Then that guy asked my friend, if he could open them. He could not. Next, that so-called Microsoft employee said: "This is a sure sign, that those are viruses."

This is where the real evil begins:
He tricked my friend to install a remote control on his computer, allowing him to fully control his friends computer, explaining that he just wanted to get rid of those viruses on my friends computer. Her explained, that Microsoft was absolutely interested in having clean computers, so that they would offer him a brand new feature: For just 15 EUR per year, my friend would become virus free, supported by Microsoft. My friend thought: Hey, that bad of a deal. And accepted.

So that guy wanted the informations of my friends bank account, (yes, even the password), the credit card number, and he did some things, my friends could not even see, because that guy blacked out the entire screen (for security reasons, because he's now operating on the microsoft server, he said).

So that guy got everything. Full bank account information. Full credit card informations. Full access to my friends computer.

Now, my friends computer will be offline. Until we save the data and either remove that rootkit, that was installed or even set up a completely new operating system.

My friend is not dumb. He know some stuff about computers. He told me: "If you ever told me before, that this would happen to me, I would not believe you."

Working with surprise, shocks, a very polite tone, even some compliments, and - most of all - rushing my friends with call to actions, that guy was successful.

And I think, most of us would be. Perhaps not specific to this special kind of attack (any more), but maybe to something slightly different. Somewhere, where you fear something, you don't understand. Somewhere, where this stranger is friendly and show you how deep in misery you truly are. And somewhere, where this unknown caller convinces you, that all he wants is to help.

You are not as smart as you think. Neither am I.

Thursday, November 6, 2014

Today I learned: My most painfully learned, hard to write blog post is the one, that help most people.

I did not write much so far in this. About one article per month or so. Mostly boring stuff, stuff, that does not even interest me any longer. (Who cares about my web projects some two years ago? I do. But only me does.)

But there are some articles, which took long work. Which meant a great amount of work and learning. And one of the most painful and hard-to-grasp article, which took me even quite a long to write (oh boy, I remember hating formatting that article so much...), leaving me with a feeling of "sooo... Nobody has this problem, but me. Nobody is interested in my stuff. So why did I even spend time for writing this?".

I still remember how it happened, that I wrote this article: I struggled massively building a facebook-timeline-like visualization of the history of an order in the web-based license-creation app for my employer. I just could not get the positioning of the elements to work correctly. Not by CSS (hey, that was 2012, so flexbox was unheard of), not by some javascript magic i could figure it out. Then it clicked. It had something to do this the browsers layouting engine. So if I just postponed the position calculation after the layouting has been done by the browser, I could calcalute all that stuff correctly and would not have to deal with some strange zero-pixel heights of divs.

So I wrote that article.

So have a comparison, how much this article stands out relative to other articles I wrote: In an all-time count, this article has over 7000 views. The second place, also an article about web development, has only 370 views.

But what surprised me today, that that AngularJS-related article is still being actively linked an clicked.
It seems, that I was absolutely wrong about with my thought about the uselessness of that article. I was horribly wring. This small article, although it was hard to learn, is now a help to others.

And that is just wonderful.

Wednesday, November 5, 2014

So, what did I learn?

Today, perhaps the part, the only thing, that comes to my mind about stuff which I learned today about programming, is that Select2 does support a timeout, which first waits for a user to stop typing and fires the ajax call after that timeout. This is a really neat feature, since it prevents flooding the backend with a bunch of highly unspecific queries.

But there is a feeling of not really having anything new. Why? Yesterday I bragged about the little stuff, that adds up over time. And I still believe this. The problem with such very small increments, is that it's not hard to learn such small stuff. It's not really rare and hence, not really too valuable.

The really valuable and rare stuff is always outside one's comfort zone. And that makes it so rare, because only a few are willing to step out their comfort zone to learn new stuff.

For me, next to the problem of willingness, my problem is time management. When shall I learn all this great new stuff? How should I handle all those commitments in personal life, church, in your career, in your self development? I guess, only by refusing new commitments and slowly stepping out of existing ones.

So again, (I know, I repeat myself), time is the only real currency in your life. Choose wisely.

Tuesday, November 4, 2014

Today I learned the meaning of preserve-3d

Today, I played around with some CSS animations and 3D transformations.

Something like that was my result (but a little bit cooler, with SVG background images, to resemble the corporate logo). (works in current Chrome, others browsers: I don't know.)

There was a thing, that irritated me: I could not get my 3D-cube to look like a cube, and not like a silly piece of art by an 8-grader. The magic lies in this small statement, I did not really understand before:

transform-style: preserve-3d;

I did not understand this.
But then I learned, that there is nothing complicated on this. There are basically only two values (besides stuff like "inherit") you should remember: preserve-3d and flat.
flat is the default setting, making the elements being positioned on the 2D plane, preserve-3d allows the elements to be positioned in 3D space. Wow.

So what do I do with this ground-breaking insight? I don't know. But I think that such small portions of understanding of minor details do sum up, resulting in a huge difference over time. So I will play some more with CSS 3D transformations, to learn even more stuff about CSS.

So long, keep on learning.

Monday, November 3, 2014

Today I learned: There are some people in this world, actually making money with clicking links.

I begin to hate this month's challenge. I am tired and have absolutely no interest in writing this article. But I have to.

So, let's talk about someone, who approached me with an idea for a web site. Something, that allows you to make money with ad selling, but is not a scam (like many current websites, that promise to make money by selling or even viewing ads.)

It works like this: You buy (with real money) some ads, by a company, which guarantees you, that real people will watch your ad (sometimes even for a guaranteed time). They want premium prices for that. And they pay those people. Sometimes even $0.0005 per view.

Realizing that, it's clear, that there must be a some sort of multiplier. Getting paid one bloody cent for filling at least 20 captchas, clicking through some odd landing pages (yes, seriously, the person approaching me with this idea exactly this), just to view twenty extremely boring ads, wasting at least 10 minutes of your life (that's how it would approximately take to view twenty ads), making 6 cents a hour is not really a luxury income. The person approaching me, uses automation tools for filling in forms. She said: "Filling all those captchas out manually, I don't do that. That's something for people for those who really have NOTHING to do.". Did I mention, that she is unemployed?

And there is a multiplier: multi-level marketing like downline, in which you get paid for the viewing actions of those "under" you, can make it a little bit more attractive, sometime even earning 100s of dollars a month.

So, what did I reply? I was not really interested in implementing something like that. By implementing this, I surely would learn a ton. Especially about money transfer APIs of banks. It may be a cool opportunity to acquire valuable new skills.
But I wondered: When should I do this? I am already stressed out chasing all those ideas in my head.

This world is full of great opportunies. Tempus fugit.  Choose wisely.

Sunday, November 2, 2014

Today I learned: People hate scrolling long websites on their smartphones.

Being the geek I am, I talked to my sister-in-law's husband about mobile design of websites. And while I was happily scrolling a mobile website on his smartphone (Yeah, I know, I like taking others' smartphones and scroll on them a little bit. For science, you know. Gloating over jank-free animations on websites and such stuff.), scrolling through a site (yeah, the scrolling was cool), he just told me:
"I hate scrolling long websites".

First, I though: Well, okay, nothing special. I also was already a little bit bored by scrolling around, so I kinda agreed. But then I thought: "Hold a moment. This might be a golden hint for a better user experience on mobile websites.".

Why does he thinks so, I wondered? Being already annoyed by still scrolling on that site, I started hating this site, also. So what was wrong?

I think I've got it. There are several reasons, why scrolling long page can suck so hard on mobile devices:

  1. It depends on what you're scrolling. I'm pretty sure, that Pintrest users love the never ending scrolling, filled with more and more and even more wonderful photos about the stuff that interest them. Walls of text, on the contrary are massively boring to scroll over.
  2. Do you really have to scroll all that boring content just to get to the content you are really interested in? That stinks.
So, if you design a new mobile website, avoid scrolling. Or make it awesome, at least.

Saturday, November 1, 2014

Plenty of Internet and Writing Every Day

Last month, I tried to reduced my internet time. To keep it short: It's didn't care. After some days I just saw no point in downloading YouTube videos to watch them offline. I saw no point in deactivating my wifi to read that specific article just from the browsers window without being able to click on a link. I hated it first, Then I didn't give a ..
What I've learned anyway: I am dependend on the internet in a very strong way. More than I realized before. So there's more than one reason for me to speak up for a free (free as in free speech) internet.

So... what will I do this month?
I will work. I will procrastinate. (Heck, I procrastined even writing this article. I played kingdom rush, I talked to my friend, helping him finding some verses from the bible about door-knocking, I showed a comedy video about the struggled of being a woman in our society to my wife, I played some more kingdom rush.) But I will also learn and create.

So here are my rules for this month.

I write everyday at least 200 words.
I write everyday about something you have learned today.
Everthing I write, must be written between 0:00 and 24:00 on that day. Pre-writing does not count.

To help me accomplish this, I will rewrite my BIBEL-lesen Web App to a mobile web app, using *drum rolls please*, AngularJS, Ionic and Cordova. I will have to implement some simple backend service, for user accounting and "cloud" syncronization. I will get bonus points, If I manage to make it work with some more motivation stuff like achievements. I will also get bonus points if I manage to set up a welcome page.

I will get in charted waters with those. But why I do this. It will be horrible. And awesome. Both. But horrible first.

So long,