Bitcoin to save Prague (and tourism overall)

by Richard Dancsi on

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.)

Tagged with: , ,
Posted in Blog, bumped into, personal whatever

Hong Kong Electronics Fair – tech insights for 2014

by Richard Dancsi on

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?

Tagged with: , , , , ,
Posted in Blog, personal whatever

Bintan, Indonesia: free wallpaper downloads

by Richard Dancsi on

On my latest trip in Asia I had the time to meet up with friends and go for a weekend getaway to Bintan, Indonesia. This is a truly beautiful island with gorgeous blue skies and a turquoise sea, so it’s no wonder that we took some pictures before jumping in the water.

Bintan, Indonesia - free wallpaper from Wimagguc

These photos then ended up being my wallpaper, bringing the summer to the cold Northern Europe. Please find the screens available for download below:

Bintan, Indonesia - free wallpaper from Wimagguc

Bintan, Indonesia - free wallpaper from Wimagguc

To take the photos I was using my good old Nexus 4′s sub-awesome camera, hence the huge amount of noise. I tried to remove that with some lightweight Photoshop editing, and then doctored a somewhat more natural, diapositive-like colour too. I’m quite happy with the Cereal Magazine style, but feel free to argue on Twitter.

The wallpapers are free for personal use. (Please contact me if you want to use them elsewhere.)

Posted in awesome resources, Blog, personal whatever

Custom iOS7 UIAlertView

by Richard Dancsi on

It was a common pattern for iOS developers to create customised dialogs by attaching a subview to a standard UIAlertView. With 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 iOS7-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

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 CustomIOS7AlertView 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 CustomIOS7AlertView 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 CustomIOS7AlertView 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.)

Tagged with: , , ,
Posted in awesome resources

Why the software industry needs more short-time jobs

by Richard Dancsi on

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.

Tagged with: , ,
Posted in awesome resources

Remote setup for Android and iOS made easy

by Richard Dancsi on

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):

android:id="@+id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="login"
android:visibility="gone"/>

Then we download the settings from the server via the AppWoodoo service. Here I’m using the WoodooDelegate, which gets called as soon as the settings arrive from the server.

…and that’s it!

After a while you will see the usage data in Google Analytics. If the LOGIN_BUTTON event the DISPLAYED per CLICKED ratio is too high (meaning that most of the users don’t click on the button) and the user retention rate jumps to the skies whenever the button is visible, you can just switch this feature off from the AppWoodoo service.

Without resubmitting your app to Google Play or App Store.

Tagged with: , ,
Posted in awesome resources

Indie webcomics to follow

by Richard Dancsi on

A well written joke or a sharp illustration can make my day. I love Dilbert and other popular comics, but there are some more out there who very well deserve the spotlight.
(Furthermore, if you are an aspiring cartoonist pop star like myself, following these guys can be great to learn new tricks and techniques.)

Please welcome some of my favourite webcomics.

The best indie webcomics
Poorly Drawn Lines by Reza Farazmand

The best indie webcomics
Invisible Bread by Justin Boyd

The best indie webcomics
Saturday Morning Breakfast Cereal by Zach Weiner

The best indie webcomics
Little Gamers by Christian Fundin & Pontus Madsen

The best indie webcomics
Noise to Signal by Rob Cottingham

For this list, I considered indie everyone who looks indie. It’s not a real measurement I know – but if I made a mistake, it’s alright. The point here is to find awesome webcomic authors.

Tagged with:
Posted in Blog, personal whatever

To play Ingress, go to Berlin

by Richard Dancsi on

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.)

Tagged with: ,
Posted in personal whatever

Reducing the meat problem

by Richard Dancsi on

Living healthy starts with eating right. Unfortunately if you are not a fitness-, cooking- or calories neard, it’s not easy to decide what to put on the table every day. As for me, most of the time I end up buying some meat, rosting it and, serving with bread, call it a dish. Now this came to an end.

I would not want to go cold turkey (ha!) and become vegan, especially for all the excellent salamis and great wild meat out there. The only thing I want to stop is the mindless defaults: why would anyone eat chicken wraps and Frankfurters anyway? 

Somewhere I have read that an average grown up person in Europe would eat something like 50 kilograms of meat a year – my consumption seems to be fairly close to this, although I’m trying to be on the healthy end.

Ready-made products and those with unidentifiable origin seem to be easy to avoid, but then again: the recent horse scandal shows that even if the label looks very accurate, it’s rarely the case. Döner kebab is not something you would have high expectations about, but even Nestle and other, seemingly reliable companies sold horse meat as beef products.

Not that I’m picky with animals, I would eat whatever – my biggest complain here is that if we don’t even know the type of the animal, how would we know such very important facts like whether the unlucky pig was raised in a cage with hundreds of others, or: if it has ever seen the sun.

There I can get very picky actually. How much more awesome is to know that the animal I eat was in good health, free of weird antibiotics and full of energy! (Before it got slaughtered.)

If you just search for some minutes, you will see that some chickens are living a total of 32 days before you find them as ‘chicken wings’ in McDonalds. I can’t see how this is not bad for the public health and the environment – in the race for low-price meat, the food industry is leaving us with antibiotic resistant germs. (And even worse: food snobs, who only eat stuff coming from Bio Company shops.)

So here is my plan: I quit being a part of the problem and will reduce my food consumption to a more eco-friendly level, with the following:

  • Emerge new defaults: breakfast with cereals, choosing hummus and falafel when eating out (kill all the chickpeas!)
  • When buying non-vegan products, going for organic: looking for meat directly from farmers
  • Not buying minced meat or similar all-in kind of products
  • Keeping track of my food: keeping meat products below 500g a week

Please be aware of the fact that I’m in no way more clever than you with this. I’m not a doctor, have no idea of biology, fitness, health – so you better don’t follow anything you read here.
This post might be a good food for thought though. And please, feel free to send me further readings, hummus recipes, or just get in touch and encourage me / tell me I’m a fool on Twitter.

I might return to this topic later, if anything significant happens – although, I would be surpised if that was quite soon.

Tagged with: , , , ,
Posted in personal whatever

Node.js static http server with GZIP support (for Heroku)

by Richard Dancsi on

One of my favourite solutions to serve static files is on Heroku, with Node.js: lightweight, easy to setup, easy to configure and highly scalable – awesome features, these.

However, when you serve static files, the users’ internet provider sometimes changes those. An example is when the carrier compresses the javascript documents or resizes the images to provide faster downloads. This will result a mismatch in file hashes, which, with some javascript frameworks like the Sencha touch SDK, leads to fatal app breakdowns.

An easy method to avoid this is to gzip all data ahead. Fortunately, Node.js has a built-in zlib module after v0.6.13, so writing a static http server with gzip support is a breeze. You can get my code from github: it comes as a Heroku project, so if you don’t want to configure anything, just replace the files in the ./app folder and you are all set to go.

To check that your setup works, use the following commands:

$ curl http://nodejs-static-http-with-gzip.herokuapp.com/ --silent --write-out "%{size_download}\n" --output /dev/null

$ curl http://nodejs-static-http-with-gzip.herokuapp.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null

…where the resulting number is the size of the downloaded file – if you get a smaller number running the second command, it means that the server is sending gzipped files for a browser that supports them.

(Remember that ngix, perhaps the most popular fronting server for Node.js already supports gzip – therefore you only need this trick on Heroku and similar environments.)

Tagged with: ,
Posted in awesome resources
NEWS! LETTER!
Email Marketing Powered by MailChimp
Infrequent e-mails about code updates, new free resources and every few months, a recap of the latest blog posts.