Debunking 3 iOS Development Myths

Let’s debunk some myths about iOS development:

Myth #1 – You need to code Objective-C

False – since 2014 you have an alternative: Swift. This language is open source under the Apache License 2.0 (since Swift 2.2) and even runs on Linux

Myth #2 – You need to be enrolled in the Apple Developer Program

False – To develop your app and test it on your own device you just need to have an Apple ID which You likely already have if you’ve ever purchased something in the iTunes or app store.

Side note: If you are looking forward to integrate Siri or Wallet or iCloud into your own app you’ll have to pay. Bummer 🙁

Myth #3 – You need to own a Mac (iMac, Mac Book, Mac Pro)

In theory yes, because you have to run XCode which is only available on Mac OS X. But wait: What if I run Mac OS X elsewhere? You can use a VMWare or Virtual Box as well or even build your own hackintosh.

 

 

New Year’s Resolutions & Technology Learning Roadmap 2017 – Update

In New Year’s Resolutions & Technology Learning Roadmap 2017 I listed all my tech and non-tech objectives for 2017. Here is a quick update:

After I bought my new Mac Book I asked myself: “Why haven’t I tried to develop an iOS app before?”
Well, I think it had something to do with Objective-C which I considered awful back in the days. But since 2014 You have another option: Swift.

The language looks a lot better to me, somewhere between Java and Python.

So I gave it a try and started the first tutorial. And -tada- there are two new objectives on my list. “Write an iPhone app” and “Publish app in app store”.

To get on with the objective “Learn Angular 2” I bought the course: “Angular2 verstehen und anwenden” on Udemy for 10€

 

SE-Radio Episode 281: James Whittaker 

SE-Radio Episode 281: James Whittaker on Career Strategy

In Episode 281 of SE Radio James Whittaker shares his knowledge on career strategy.

James Whittaker was Engineering Director at Google before he left for a position at Microsoft. He also wrote the book “How Google tests Software”

In his blog article he tells us why he left google

Takeways:

  • Don’t seek a mentor in your boss
  • Don’t strive for salary or position but for impact

Future Mobility Days 2017

After I visited my first barcamp (#SWEC16) in 2016 I wanted to participate in my first hackathon in 2017. I stumpled upon the Future Mobility Days #FMDNUE in Nuremberg, which offerd a bar camp, a design thinking jam and a hackathon all at once at on place within 36 hours. All in all for 99€ quite a bargain. And a additional motivation to get a new laptop for the hackathon.

Don’t count your chickens before they are hatched.

Of course I missed the early bird priced tickets so I had to pay the full 199€. And then there is this little topic called health. Becoming older is no walk in the park. The days before the event I realised that the conecpt of hacking for 24 hours with little to no sleep was not going to apply to me. Dang!

Nevertheless I was excited to go to this event! Continue reading “Future Mobility Days 2017”

Short Rewiew t3n magazine Q2-2017

Being sick at home can become quite boring after a couple of days so I was happy today as I opened the mail box: (Yes, the physical one😜) the new t3n magazine! Yeah!

Nice cover!

First of all I remove all advertising garbage by shaking the magazine, but lo and behold, there are some nice stickers in it. Perhaps I share them with my daughter.

These are the topics I will definitely read:

Developer Toolbelt

Inspired by the Blog Post https://gingter.org/2016/12/15/my-developers-toolbelt-2016 I want to share what my tool set looks like in 2017:

  • PyCharm as main IDE for Python, JavaScript, CSS, HTML and Rust
  • Notepad++ for big files
  • Spotify for getting into “the Zone”
  • WinSCP and Putty for Secure FTP and SSH / Telnet access to our servers
  • Total Commander for browsing the harddrive
  • Beyond Compare 3 for diffing
  • Firefox with SQLite Manager
  • yED for diagrams
  • Luxafor for distraction management
  • Perforce P4 Visual Client
  • Outlook / Skype for Business
  • Wire
  • Github OSS
  • Bitbucket for private Repos
  • Atom for educational purposes
  • iMacros / Greasemonkey for browser automation / optimization

I really love PyCharm and it gets better with every update. To get the same user experience for full stack web development You would need to configure Eclipse-based PyDev with a whole bunch of Eclipse plugins

Are You ready? / jQuery struggle

$(function() {
    console.log( "ready!" );
});

is the short form for:

$( document ).ready(function() {
    console.log( "ready!" );
});

Very intuitive, this does not work:

$("input#myInput").bind("change", function(){
});

Instead of “change” You have to use “input”

$("input#myInput").bind("input", function(){
});

Inefficient jQuery Selectors

My PyCharm IDE warns me if I use inefficient jQuery selectors:

As I am a bit nosy I wanted to know “how” inefficient these selectors are. So I compared the inefficient

$("#items tbody");

with the optimized

$("#items").find("tbody");

Here is the test code:

window.onload = function () {
    test("unoptimized", function () {
        for(var i = 0; i < 100000; i++){
            $("#items tbody");
        }
        assert(true, "Test finished");
    });
    test("optimized", function () {
        for(var i = 0; i < 100000; i++){
            $("#items").find("tbody");
        }
        assert(true, "Test finished");
    });
};

I used the little test framework from the book Adventures of the JavaScript Ninja

The results vary from run to run but the optimized version just takes around 55% of the time which makes it almost twice as fast. Though the single execution is in the nanosecond range, if you heavily rely on using jQuery, it might be worthwhile to optimize your selector statements.

 

 

Bringing AJAX to Flask – Part 1

Flask is a micro web framework which is really fun to use. With the following snippet You have a complete web app working within seconds.

from flask import Flask # 1
 
app = Flask(__name__)   # 2

@app.route('/')         # 3
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()           #4

All this snippet does is

  1. Importing the Flask module,
  2. Creating the app,
  3. Defining an so called endpoint and finally
  4. Running the web app in a container.

Flask brings its own WSGI server called “werkzeug”. Please use it just for development purposes. It is not suitable for live applications. Continue reading “Bringing AJAX to Flask – Part 1”