IBM is not Nerdwana

So when I get offered a $2000 visitor pass for a tech conference plus a flight ticket and accommodation in Las Vegas, then I say yes and start packing my bags. Even if IBM Interconnect does not particularly sound fun, and even if I could point out almost infinite number of better things to spend that money on.

Buy me $3500 worth of Red Bull, and I’ll rewrite for you Facebook in Brainfuck tonight.

In university times, IBM used to be the place where you send your resume only if you don’t consider technology being especially important. Their products are as uncool as Windows XP was for OS – but where Microsoft developers are crazy awesome hackers, IBM seems to exclusively hire sales people. Hackers don’t like that sort of thing very much.

And now, the Big Blue gives the world Watson. The one-stop shop for artificial intelligence. That is a solid, fun, innovative thing to do, and mind you: it’s not a startup building AI-as-a-service first, but people from the Dilbert strips.

I’m here with one of the first startups that can get their hands on Watson, so I’m very excited to visit all workshops and see what is there to learn.

There are many versions of the system for example, but I can break it down to two main ones.

There is the Watson that is on TV and in press releases and does all the cool stuff. And there is the one that you are being given access to, which is basically Elastic Search with a fancy, overpriced API. (That is, for now, of course, because the product is meant to evolve in the future.)

I’m not supposed to disclose any details, but the startup I’m supporting has seen marketing potential in partnering with IBM, therefore the Big Blue’s technology has to be interesting for us. It is actually, as far as it can get, but is it something to wow on in 2015, that they’ve discovered Cloud Foundry and a bunch of open source code, than went on to copy Heroku?

It isn’t of course, but it isn’t even relevant. Technology alone is not worth a thing. Even further, innovation alone is not worth a thing. Otherwise the Big Blue would have gone out of business a long time ago. And business is something they are very much in.

“I don’t get why we have to give away stuff for free, but if the world wants that, I’m fine with offering Bluemix for a month at no cost.” — says an IBM-mer in suits.

And as low of a respect I have for developers who are wearing ties and aren’t interested in working with the latest tech, I have to admit, there is something to learn from IBM here.

Business. Whatever you create, invent, play with and work on: don’t forget to find someone who sells it for you.

j j j

Kickstart any app idea: our recipe

It’s easy to be in the centre of attention if you have something cool to offer. Developers are a hot asset now: every now and then, someone wants our agency to do a mobile app for revenue share, a website for future buyout, or me, in person, to be the CTO of a new gig.

I love all these projects.

No, really, I do.

Not because they bring much cash or fame, as I don’t tend to earn much with most of them. But it’s always great to learn new teams and methods, and these projects provide a good field for experimentation.

Quite some guidance may be needed on the project setup and management though, especially if my co-founders lack experience with tech products. Here is the three points I like to send out to them, right at square one.

Our plan to kickstart any tech project (mobile apps, websites etc).

  1. Almost immediately start working on an initial prototype.
    Creating the prototype helps exploring the idea internally, and will also help explaining it once you can start attracting potential investors and new team members.

    By creating a demo product you will need to set up most of the tools and methods needed to – well, to create a product. So it can be nothing but super easy to demonstrate the team’s ability to bring an idea to the market – which can significantly help the negotiating positions with a VC.

  2. Set up the development workflows.
    Any rapid iteration process would do. The key is to answer this question: if anyone comes up with a new feature or idea today, how will that be incorporated in the product and reach the market tomorrow?

    There are a lot of free tools (like Trello or Asana) that will help teams keep track of these features. The bottomline with choosing one is: every new pair of eyes should be able to tell where the company is standing, just by taking a look at the dashboard.

  3. Start PR & marketing efforts from day one.
    Have you ever wished you had a handful of people to ping when you are ready to launch? Set up a ‘coming soon’ landing page and collect subscribers as soon as you start thinking about the product and that is taken care of.

    The rule of the thumb is to always start with the things that can be potential bottle necks, and a good marketing is one of these. First step here is usually to choose a good name, create a corporate identity with a nice logo and an initial mission statement. This will help strengthen the product as well as the team, especially with remote ones.

We tend to do the above in no particular order, and in strong collaboration with the business development. The idea is to get the product only far enough so that we can find out whether there is a market fit for it. If the answer is yes, the foundation to create the next version of the product is as good as it can get.

j j j

Bitcoin to save Prague (and tourism overall)

Thanks to the snow and a missed connection, I’ve had unexpected hours to kill in Prague. I’ve bought some cakes, wrote this article – and realised the true value of Bitcoin.

These unforeseen opportunities to discover a city are usually loads of fun. This time however – having seen the Czech capital a few times already and being held back by the sub-perfect weather conditions -, I just decided to jump in a warm cafe and spend the time with work. I assumed that eating out some place in the former Eastern European Bloc is the cheapest option anyway. And I learned that it isn’t.

Do you know how much a coffee costs in Prague?

£5,40. That’s almost twice as much as it is in London.

Well, let’s be fair: the price the cafe asks for is very reasonable. The problem is that this is not the price you will eventually pay. Czech has its own currency, which means you look at significant banking- or exchange costs.

The cafe I chose didn’t seem to accept AMEX cards. Coming from direction Germany and talking about a small amount of cash, my best option was to exchange Euros (which I previously withdrew from my sterling account, to make it more financially rewarding).

So I went to the cafe, checked the price of one cappuccino and the most expensive looking cake, went to the exchange, queued for cash, and went back for the warm beverage.

Now, I understand that governments need their own currency to make corruption easier and to be able to confiscate the economy around the election campaign time, for all sorts of populist reasons. It’s just that it makes the world a little worse.

Wouldn’t it be awesome to be able to pay with a currency you are already familiar with, without the need to deal with fake-looking Monopoly money, dodgy exchange booths and shady folks?

Cryptocurrencies are not only for the Internet.

Hey foreign merchants, just so you know: if I ever see a Bitcoin badge on your cafe’s window, I will go in. Even if you play minimal techno in Balkan punk style. Even if your seats are made of stones.

This is happening right here and right now, people – and it’s moving really fast. There will be more currency options, the markets will lose their volatility, and I’m waiting for the day to be finally get paid in BTCs.

I’m definitely in for Bitcoin (and Litecoin, Namecoin, Quarkcoin etc.) – but trying to stay on the safe side. For the start, I’ve set up a server to collect market infos and created an app to display price charts. So far the server is slow, so only the 24-hs BTC view is free as an Android app: BTC Charts for Android (coming soon for iOS and the web).

(Please debate on Twitter.)

j j j

Hong Kong Electronics Fair – tech insights for 2014

Being in the mobile software business in US or Europe, you might think that visiting an all-electronics fair in China is simply irrelevant. But it’s not.

This is a sneak peek into your future

Hong Kong Electronics Fair: tech insights for 2014 by Richard Dancsi
View of the Hong Kong Expo building from the Kowloon pier.

Not exactly the future of high-end technology though. At least the products showcased on the Hong Kong Electronics Fair would definitely not receive a standing ovation on an Apple keynote.

Most of the products and services here are of a significantly lower quality than what you see on the upper shelves in those electronics supermarkets in the US or Europe. Apart from the really big brands, the few exceptions won’t be amazing either – more like, well, decent.

I still think this is a great opportunity to look into the future:

  • The Asian region already accounts for 45% of all internet users globally. The next boom is coming soon as the penetration rate slowly reaches the US levels.

    These people tend to use low-end smartphones to access the internet, and the devices on the fair will meet a need on – among others – the humongous Indian or Russian market.

    Still think it’s irrelevant? It isn’t: it’s a safe bet that Google went back to support 512MB devices with Android KitKat just to fulfil the need of these markets.

  • Asian companies are not only manufacturers anymore, but also creative drivers with a huge market. As more and more products emerge, they will have an ever bigger impact on what services and devices we’ll see in the next years.

Insights from the fair for 2014

To start with the easy-to-guess ones, it’s no wonder that compact cameras and camcorders are nowhere to be found: most of these functionalities are already replaced by the features of the smartphones. Action cameras are still fine, but dedicated GPS and personal navigation tools are also gone.

Phones and tablets are blooming. I did hold five perfect iPad mini replicas in my hand, and tried dozens of other phones and tablets. Android seems to run on almost everything, even on portable wifi routers or mini USB computers.

The wearable accessories wave shows no signs of calming either. There are smart watches, fitness bands and some sort of smart glass-looking things. This still feels being an early stage here, with most of the showcased products lacking a strong use case just yet.

Smart homes, offices and class rooms are hip. Home sound systems even more: wireless speakers and headphones are everywhere – some with Bluetooth, some with AirPlay and some also with added NFC support. There seems to be a hipster-driven turntable comeback as well. (Hell yeah!)

My favourite tool, a 2-in-1 shower radio with built-in torch, shows that Asian inventors are unstoppable.

Hong Kong Electronics Fair: tech insights for 2014 by Richard Dancsi
Radio and flaslight. (Photo from Shenzhen XinHuaMei Electronics Ltd).

Can I get in? Can I get in for free?

Yes. Most probably, yes.

I was lucky enough to be invited by one of my clients, but everyone with a trading company can simply register online. As far as I know, if you do it quite in advance you can get tickets for free. The standard price is not high either though: 100 HDK – about £9 – will buy you access for the two visitor’s days.

Scams & pitfalls in China and lessons from Apple’s supply chain

For those of us who are unexperienced with the Chinese market just yet, the free seminars are an excellent opportunity to catch up. On these one hour long lessons you can learn quite a lot, from avoiding scams to negotiation techniques with Chinese partners.

Choosing the right supplier can make or break your business. It’s well known that Apple has over 150 suppliers – the biggest being Foxconn, employing over 250,000 in China alone and running the operations like clockwork. Foxconn then also has about 500 suppliers on behalf of Apple. Imagine the negotiation and management power they need to run a manufacturing monster this size. So these talks are indeed pretty useful.

Are you a government? Copy this event!

The Hong Kong Electronics Fair is the world’s biggest expo of the kind. It’s also something more: a 5-story example of how governments can support local businesses.

The event is organised by the Hong Kong Trade Development Council (HKTDC), the international marketing arm for Hong Kong-based traders, manufacturers and service providers. The fact that they have 40 offices operating worldwide shows that they are serious about their mission, to create opportunities for the region’s small and medium-sized enterprises.

With the fair, electronics manufacturers and their distributors have a controlled and comfortable environment to find each other. More than 4,000 exhibitors from 30 countries are showcasing their wares, and have the opportunity to close the sale right on the spot.

How awesome would it be to have something similar for your business, right?

j j j

Custom UIAlertView for iOS

It was a common pattern for iOS developers to create customised dialogs by attaching a subview to a standard UIAlertView. Since iOS7 however, Apple removed this feature and developers are left without a dialog pattern that matches the iPhone UI.

As a solution, I wrote an open source class to create an iOS8-style dialog which can be extended with any UIViews or buttons. The animations and the looks are copied too, and no images or other resources are needed.

You can just grab the open source code from Github now. In this article I will write about the implementation best practices and some background info.

Extend your current AlertView code to support iOS7 and iOS8

To create an AlertView with a custom subview, you probably wrote something similar to this:

And you did probably reset the frame in the delegate method willPresentAlertView too.

This was working on all previous iOS versions. On iOS7 however it will result in an empty dialog. What you have to do therefore is to fork the code here: display a standard UIAlertView on the old devices, and a CustomIOSAlertView on the new ones.

Forking the code is as simple as this:

For the new dialog, you would add something like the following:

Putting these two together, a full solution would look like this:

And that’s it! For the CustomIOSAlertView is a hack-free UIView, you don’t have to add anything to the willPresentAlertView delegate, just keep it as it is. For handling the iOS7 button clicks, you can use code blocks or delegates – please refer to the project’s readme.

How did we end up here?

Apple never officially supported the addSubview method of the UIAlertView. Their approach is to use this dialog only for a small subset of functions, like a plain text input. This is as easy to do as setting the style of the UIView to UIAlertViewStylePlainTextInput.

However, UI/UX designers like to use the dialog pattern for other use cases as well. An example is to show a simple image to the user, or display a progress bar while the user is waiting for a background download to be finished.

Until the previous iOS version the addSubView method worked fine, and developers used it as a best practice for these dialogs patterns. That’s why Apple’s move left app publishers in a bad position: before rolling out the updated version of our apps, in some cases we have to find a completely new user journey.

This is where the CustomIOSAlertView comes handy: we can roll out the iOS7-support quickly (and start up the user experience think thank in the background).

(Free code and source from Github. Opinions, debate: @wimagguc on Twitter.)

j j j

Why the software industry needs more short-time jobs

How taking short-time projects will make you a better developer, and how managers should hire those brains to give a long lasting boost to the software team.

Being a good developer doesn’t end with having a deep understanding in the technologies and languages you use. It goes even further than knowing the ins-and-outs of the tools, patterns and algorithms you utilise on a daily basis. To be a great developer you have to constantly research, and adapt the new solutions and technologies others invented.

So if you are programming Java websites since university, the least you should do is writing some Android apps on the side. It might be the same language and tools, but you will surely end up looking into some UI/UX stuff that will broaden your mind and skill set.

Corporates have a good reason to keep programmers dumb

Experimenting with new technologies is not what usually happens within corporates though. Engineers are paid to provide a solution that works, within the shortest time frame and with the most certainty that the software will not break. Not exactly the best place to be creative and invent new stuff.

This is one of the key factors for most of the workplaces not using the latest software or technologies: implementing those takes time, and sure: why would they bother updating something that worked just as fine before? It may be totally understandable, but that’s how you end up with software running on Java 1.5 and office documents written with Office 2007.

Reading Hacker News? Come on. Xkcd, maybe, if it was fun.

Start small, start quick

It’s very usual to get comfortable after having the same job for years. Showing up at work just a bit late, having a long coffee break in the kitchen, starting the morning with Facebook and Twitter – and at the same time, feeling more and more tired of work

This industry has a crazy pace though and having an up-to-date knowledge doesn’t come easy. It’s already hard enough to predict which technologies will stick in the long term. Who could tell if it’s better to start with iOS or Ruby now? How many months before Nokia was going down did Symbian developers start looking into Windows Mobile code? (I actually know this last one: two.)

Cash in for what you learned

Committing for something completely new would be too much of an investment, and perhaps not very wise either. First, it’s hard to find the time in the evenings and weekends to learn. Second, with those few projects you can launch, or the 1-2 years of experience you may gain, you will probably look at a lower salary level than at your current workplace with 2+.

There is a way to learn some new tricks quickly though. They say that the only way you can get better in chess is to play with someone who is better than you – and the same rule applies very well in the field of programming too.

Good enough reason to be in the market for short-time projects. If you change your jobs every 6-12 months, you will be introduced to many more projects and even more people, exposed to new technologies on a daily basis. All of this you can learn from, and the new stuff will look great in your CV.

And a great CV eventually leads to a fat pay check.

Managers, this is what you do

If you are leading a software department, now you think you shouldn’t keep the employees for too long with the company. This is hardly the case. All you need to do is to hire some developers for a few months, every now and then.

They don’t even need to be the best fit for a project. The more experience a programmer has with other technologies the better, but the main thing to make sure about is that during the project, the outsiders should be well integrated within the team.

Everything else is magic.

j j j

Remote setup for Android and iOS made easy

Developing a new mobile application takes a lot of iterations: with every new version we are adding new features, polish the old ones, measure user acceptance – and react as fast as possible.

However, with the long App Store submission process and the even longer period until Android users update their apps, it usually takes a while to experiment with new features.

To find the features people will love is the key to win a whole lot of hearts: hearts, that belong to the new users. The faster you can find out what product the users really want, the better – that’s why marketers keep using A/B tests for almost everything.

On mobile though, the free and paid split test solutions usually aim too much: they come with statistics, robust close-source SDKs (that crash all the time), and these services want you to commit for life and beyond.

That’s why we created AppWoodoo. A minimalistic, open-source SDK and a lightweight backend service that does exactly what you expect: receives a new list of settings every time you want it.

So, say, you can switch off Facebook login as soon as it turns out people leave your app for that. Or just add a “my mood” section which you can update daily.

If you are already eager to try it out, please do so. The SDKs are on Github (iOS, Android), and the service is live on appwoodoo.com

And now, some coding magic, with Android (you can do pretty much the same on iOS as well though).

In this example, we will create a simple screen to remotely display or hide a Login button, and measure the clicks via Google Analytics.

1. Add the settings on AppWoodoo

In this example I added the ENABLE_LOGIN_BUTTON setting and set it to false. (Go to appwoodoo.com, and create an app to get started.)

2. Integrate the SDKs

You will need the Google Analytics SDK and the AppWoodoo SDK; both are available for free.

3. Start to code

First, we add a loginButton in the xml (notice that the button is not visible):

j j j

Google Maps Latitude and Longitude Picker

A jQuery Latitude and Longitude plugin to pick a location using Google Maps.

Supports multiple maps. Works on touchscreen. Easy to customize markup and CSS.

This is a demo page; the newest live demo will always be here.
For the code, install instructions and to see how amazingly free it is, go to Github.

Basic functions

  • Move the marker on the map to receive the updated latitude, longitude and zoom values in the hidden fields
  • “location_changed” event will be fired, with the gllLatlonPicker Node JS object as attribute for easy access

Move the marker, or double click on the map.

Google Maps

<fieldset class=”gllpLatlonPicker”>
<div class=”gllpMap”>Google Maps</div>
<input type=”hidden” class=”gllpLatitude”/>
<input type=”hidden” class=”gllpLongitude”/>
<input type=”hidden” class=”gllpZoom”/>
</fieldset>

Simple form with a Google Maps search field and default values

  • If the search has results, the first element will appear on the map (with the default zoom value 11)
  • You can set default latitude, longitude and zoom values in the hidden fields
  • If you don’t give an ID to the map, the script generates one; feel free to use custom ID’s though

Move the marker, or double click on the map. Search for cities, countries or landmark names.

Google Maps

<fieldset class=”gllpLatlonPicker” id=”custom_id”>
<input type=”text” class=”gllpSearchField”>
<input type=”button” class=”gllpSearchButton” value=”search”>
<div class=”gllpMap”>Google Maps</div>
<input type=”hidden” class=”gllpLatitude” value=”52″/>
<input type=”hidden” class=”gllpLongitude” value=”1″/>
<input type=”hidden” class=”gllpZoom” value=”12″/>
</fieldset>

Reverse lookup: retrieves the location name once it’s picked

  • After the position change you’ll have the location name in the gllpLocationName field.
  • If there is no value, the field will be emptied.
  • The “location_changed” event will also be fired with the gllLatlonPicker Node JQuery object as attribute.

Move the marker, or double click on the map.

Google Maps

Found:

<fieldset class=”gllpLatlonPicker”>
<div class=”gllpMap”>Google Maps</div>
<br/>
<input type=”hidden” class=”gllpLatitude”/>
<input type=”hidden” class=”gllpLongitude”/>
<input type=”hidden” class=”gllpZoom”/>
<input type=”text” class=”gllpLocationName” size=42/>
</fieldset>

Editable and selectable Latitude/Longitude values

  • You can set your own latitude, longitude and zoom values. The map shows your data after pressing the update button.
  • You can still hide the Zoom field (or any other fields)

Move the marker, double click on the map, search, or set new values to interact.

Google Maps

lat/lon: / , zoom:

<fieldset class=”gllpLatlonPicker”>
<input type=”text” class=”gllpSearchField”>
<input type=”button” class=”gllpSearchButton” value=”search”>
<br/>
<div class=”gllpMap”>Google Maps</div>
lat/lon: <input type=”text” class=”gllpLatitude” value=”20″/> / <input type=”text” class=”gllpLongitude” value=”20″/>, zoom: <input type=”text” class=”gllpZoom” value=”3″/> <input type=”button” class=”gllpUpdateButton” value=”update map”>
</fieldset>

Released under free (do whatever you want) license.


j j j

To play Ingress, go to Berlin

I’m sure that playing Ingress is great fun everywhere, and also, this whole topic is very subjective – but I’m certain that this place adds a lot to the experience. I have at least three reasons why.

1. Awesome scenery

The ugliness of Berlin is a significant plus to the game experience: every building here looks like a scene from your favourite first person shooter. And now that I pay more attention to statues, I know that most of them are pretty weird too.

playing Ingress in Berlin - from Wimagguc, a geek blog

2. Perfect language

Everything sounds more serious in German. My communication field is full of texts like ‘Der grosse Stern – Gefangen I’m netz der Schlumpfe‘. I don’t even know what that means, but it does look scary.

3. You are not weird

The whole place is full of geeks and other weirdos, so no one gives you the look when you are running back and forth between portals. (Not unless you are holding your phone out to watch those commands about establishing control fields and destroying links – in the circle of an elementary school group. Yeah, maybe try to avoid that.)

j j j

Which cities does the music from?

Here in Berlin we like to think that this city is: the European capital of music. This is where artists can flourish, where all cool stuff comes from, where early adopters get what they want the most. Only that the European capital of music is not Berlin. It’s Oslo.

The alternative point of view: Wimagguc
From the paper: The geographic flow of music

Last.fm has a great pile of data about what people in the world are listening. This is a detailed snapshot of user’s taste in space and time. One can see what kind of music people are listening to and also how the taste of music changes: a flow across genres and place.

Based on this data, a research shows that music preferences are closely related to nationality, language and geographic location. Also (with a similar method I used in my masters thesis!) they figured that some cities are consistently early adopters of new music – the interesting part is that these hubs are not that easy to guess.

In Europe for example, would you have guessed that the capital is Oslo? Or that all North-America is following Montreal?

j j j