elmarschraml.com

Occasionally updated personal site and blog

Tag Archives: Tools

“Shownotes” for my talk at MobileTechCon 2015

In the tradition of podcasts providing a list of links to things that were talked about, here’s a few pointers for further information about some of the topics I mentioned in my talk titled “Mobile, Microservices und Multichannel – warum Web-App-Architektur sich ändern muss” at the Mobile Tech Conference 2015.

Html5 browser support:
http://caniuse.com/

Mobile hybrid apps
https://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content

Single-page applications:

Twitter pedaling back on SPA
https://blog.twitter.com/2012/improving-performance-on-twittercom

 

Microservices

List of presentation slides from microxchg.io conference
https://gist.githubusercontent.com/sebeichholz/a107d81d4cc0bf0327de/raw/c8632c21b543c28319d84300810385f29257cd46/gistfile1.txt

Netflix on microservices:
http://techblog.netflix.com/2015/02/a-microscope-on-microservices.html

The twelfe-factor app:
http://12factor.net/

 

New approaches to architecture

Reactive manifesto:
http://www.reactivemanifesto.org/

 

airbnb on isomorphic apps:
http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product/

 

Eric Sink on Zumero:
http://ericsink.com/entries/announcing_zumero.html
http://erikej.blogspot.de/2014/04/shop-talk-with-eric-sink-zumero-for-sql.html

 

Dropbox APIs presentation from Nordicjs 2014

 

Middle end:

http://blog.getify.com/what-exactly-is-the-middle-end/

 

InnoQ on self-contained systems
https://www.innoq.com/de/links/self-contained-systems-infodeck/

 

Tools

Facebook BigPipe:
https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919

 

Compoxure:
https://www.npmjs.com/package/compoxure
View story at Medium.com
http://dejanglozic.com/tag/compoxure/

 

Introduction of React native:

 

Packaged apps:
Dropwizard http://dropwizard.io/
Spring boot http://projects.spring.io/spring-boot/
docker.com

 

Facebook on Apache Thrift:
https://code.facebook.com/posts/1468950976659943/under-the-hood-building-and-open-sourcing-fbthrift/

 

Log Aggregation:
http://brewhouse.io/blog/2014/11/04/big-data-with-elk-stack.html
http://www.sixtree.com.au/articles/2014/intro-to-elk-and-capturing-application-logs/
https://www.graylog.org/

 

Distributed tracing:
Twitter Zipkin https://blog.twitter.com/2012/distributed-systems-tracing-with-zipkin
Google dapper paper: http://research.google.com/pubs/pub36356.html

 

Hystrix circuit breaker:
Intro by Netflix: http://techblog.netflix.com/2012/11/hystrix.html
Tutorial by InnoQ: https://www.innoq.com/de/articles/2014/08/hystrix-artikel/

 

Twitter finagle:
https://blog.twitter.com/2011/finagle-a-protocol-agnostic-rpc-system
github: https://twitter.github.io/finagle/

 

Netflix Chaosmonkey etc:
http://techblog.netflix.com/2011/07/netflix-simian-army.html

 

Best blog on all things javascript and ES6:
http://www.2ality.com/

 

Web components:
tech site: http://webcomponents.org/
implementation: https://www.polymer-project.org/0.5/

 

Advertisements

What the ipad is good for – a real-life review after a year of owning one

This is not an ipad review – there’s little doubt the ipad  is the best tablet on the market.
Rather, I’m trying to answer the question “Do I need or want a tablet at all?”, a.k.a. “Is there really a gap between smartphone and laptop?”.

The answer:
It’s the two-seater convertible sportscar of computers: It cannot do everything my laptop does, and there is nothing it does that the laptop could not. But the things it does do are just more fun with it.

Disappointments:
Text entry is really annoying. Even if you split the keyboard, so you can actually reach all the keys with your thumbs while holding it at the edges. Forget answering emails; just entering a url when browsing the web is annoying enough that I use bookmarks heavily, something I don’t do on any other machine. I’m pretty sure I even type faster on my iphone. A note-taking machine the ipad is not, to the point of seriously considering getting a stylus and handwriting app.

It’s heavy (note: speaking of my ipad 3 here – the new air is much better in this regard), and has sharp edges, both of which makes it uncomfortable to hold for longer reading sessions. The screen size is nice for letter-sized pdfs, but it’s not a kindle replacement.

It’s unusable in direct sunlight. Well, not entirely unusable, but definitely unpleasant. Even on the highest brightness setting, the screen looks washed out in bright sunlight. Combined with the glare of the glass cover, forget about websurfing on the balcony.

It’s large, heavy, fragile and expensive. Not really a mobile device, in the sense of using it on the go. More like a mobile device in the sense of a computer that’s easy to take along to use somewhere else.

I expected to use it as a second display for my laptop, using the AirDisplay/DisplayPad app. Unfortunately, it’s a really cool idea, but it doesnt really work. The ipad display looks weird next to my Macbook pro, with different brightness and color temperature; the screen looks fuzzy at non-retina 1024×768 resolution, and it’s just small enough that I have to resize most windows before moving them over. And it’s relly laggy – I never expected to play video, but just dragging or scrolling a window is juttery and laggy to the point of being usable, but no fun.

File transfer sucks. I don’t want to open itunes and sync the ipad just to transfer a file from my laptop to an ipad app. It needs a usb port for transferring files from a usb stick yesterday. Unfortunately, apple’s philosophy of “never let the end user see the evil filesystem” guarantees that will never happen. App developers deal in two ways: either access the user’s dropbox account, or add an FTP-via-Wifi server mode to the app. Both works, but it feels hacky to jump through that kind of hoops just to transfer files from my laptop to the ipad lying next to it.

Pleasing:
The display looks great. Really, really great. Photos look awesome, coming much closer to showing full details than a regular computer screen, and text looks perfectly sharp.

Battery life is long enough not to worry about it.

It retains the feeling of the iphone, of not being a computer, but an appliance that just works. No crashes, no spinning beach ball, no drivers, no installers, no nagging update messages.

Surprising:
It’s not a big iphone. The set of apps I use on the iphone and on the ipad barely overlaps. On the iphone it’s mostly real mobile apps – things you need quickly, use for a short moment, and that depend on your location – like finding the nearest ATM, looking up a subway timetable, or whiling away the train ride with a few quick levels of a puzzle game like cut the rope. On the ipad, it’s much more of a sit down and take your time mode, I’m more likely to edit the pictures from the latest trip in iphoto, or play monkey island for an hour.

It’s one of those products that computer-illiterate people somehow manage to use. To an IT professional, it’s a little more pleasant to use than Windows or Android. To a non-geek, it’s the difference between being able to use it instantly, and maybe being able to use it, with lots of learning and worrying. I couldn’t even say why, but some tech products just have that effect. Take facebook, for example – to me, it’s just another mediocre website, but to any airhead teenager it’s somehow possible to use facebook, while being lost on any other website. All I know is that if some random guest needs to access the internet at my place, they’ll be stumped by my mac, but be able to use the ipad. And even my father, who’s as far from a tech enthusiast as you can get, took naturally to swiping through an album of pictures, without even realizing that he was holding a computer.

Usage:
So what is it actually good for?

A really mobile computer.
My MBP is more like a desktop – powerful, full-featured, but heavy, and cumbersome to pack or unpack, needing a power supply, mouse, etc. The ipad is something you just grab and go, and it’s small and light enough to just throw it into any bag you’re carrying, rather than needing a dedicated laptop bag. It’s great for taking along on trips, surfing at the local coffeeshop, keeping yourself entertained on train rides and the like.

A video player
The girlfriend and me like to watch tvshows at night, which we miss when, say, we’re on vacation in a foreign city, and looking to relax after a day of sightseeing. I’m not gonna pack a heavy, expensive laptop just for that, but an ipad is just fine. Note that if what you’re looking to watch is not on itunes, you’ll have to go against the grain of apple’s world. AvPlayer is really good at playing anything without having to re-encode it for ipad, and comes with it’s own ftp server, so you can upload any file directly without having to got the add to itunes library/add to files/sync/delete from library route.

A photo album
Want to show pictures to someone, without him having to be at his computer? The iphone screen is too small, a laptop to cumbersome, printing the pictures too annoying – the ipad is perfect as a photo screen.

A web appliance
Want to quickly look up the weather? It’s available the instant you open the cover, no booting necessary, or even sitting down. And wasting some time on hacker news is much more pleasant with an ipad on the couch, than a laptop at a table.

A games console
I didnt really want to get an ipad to play games – I really don’t need a new and better way to waste time. But it’s really great at playing games that are not just quick 5-minute-games as on the iphone. Genres that requires a joystick or d-pad still don’t work well (I really wonder why nobody has produced a gamepad accessory for the ipod connector?), but for adventures, RPGs or board games it’s pretty perfect. For someone like me, who does not like to play games sitting at the desk (feels too much like work), and doesnt own or want a dedicated console, it’s great to play the occasional game. Playing, e.g. a traditional RPG like Avadon using your fingers while sitting on the couch is pretty great.

An ereader for tech books
It’s too large, heavy and expensive to use it the way I use the kindle, i.e. the always-with-me library. But it’s great for reading letter-sized PDF files of tech books. O’reilly sells some cheap ebooks, but reading them on the screen is not so comfortable. On the ipad, I can now read them on the couch.

Paper replacement
Anything that is basically a stack of paper can be replicated by the ipad. Think sheet music, real/fakebook for musicians, recipes, etc. So if you have the ipad with you, you’ll never again think “If only I had that with me”. It does not seem useful at first, but the advantage is that “paper” on the ipad takes up no space or weight, so if you have your ipad with you, you have all paper-pased resources with you. I remember a trip to Amsterdam to see friends, where we were sitting round a campfire, had a guitar, and felt like singing some songs, but nobody knew any by heart, and nobody had lyrics or chords with him. Now I have. It’s also great for board games. My girlfriend and me like to play boardgames, but since we don’t live together yet, it seems like the game we want to play is always at the other’s flat. If I take the ipad, I have Settlers, Chess and Carcassonne always with me. It’s not that it’s better to play there, it’s more like I’m gonna have the ipad with me anyway, so I’ll have Carcassonne with me too, without having to carry anything extra.

Bite-size information
As mentioned, it’s too uncomfortable for reading novels, but it’s pretty much the perfect client for Instapaper. Or looking through that presentation from last week’s conference. Or even reviewing your own slides while on the subway to the venue where you’re about to give a talk.

Technology radar, fall 2011 edition

Rising stars:

iOS Development
The iphone is still hot, the iPad is hot and established by now, plus now the mac app store gets Joe Sixpack buying applications on the mac. What’s news is that due to the success of the iphone, even large conservative companies are really starting to realize they need to “do something with mobile”.

Android development
The phones still suck, but it gets used on tablets, ebookreaders,and all kinds of other devices. Two years ago it was “cool, we have an iphone app”, last year it was “of course we have an iphone app”, now it’s increasingly “of course we also have an android app”.

HTML5
Most people talking about HTML5 actually mean ajax web apps. Or “by now we can actually replace desktop apps with web apps”. The most important factor are probably not the new javascript and media APIs, but simply the fact that with IE9, MS finally mostly gets their shit together.

Amazon Web Services
Spot instances, cheaper S3, beanstalk, aws for government – it’s hard to even keep track of all the innovations coming out of amazon. Most enterprises are still extremely suspicious of cloud hosting, but for a start-up it seems almost more unusual not to run on EC2.

Javascript
Seriously. There’s a lot more to it than window.open, and libraries like jquery or extjs make it non-painful to use. It’s not like you have a choice when it comes to client-side scripting (except, more or less, for coffeescript). And the browser is only the most widely deployed platform in the world. Also: quasi-native mobile web apps. Also: node.js for js on the server. Also: Rhino, and, in Java7, invokedynamic, to run js on the JVM. Also: couchdb for js within databases.

Write-offs:

Silverlight
Even Microsoft says Html5 is the future.

Symbian
Duh. Kind of kept alive with government funds, but Nokia finally realized it’s dead.

Google Wave
Already pretty much killed by google by now. Too bad, I kinda liked it.
Flash
In the short run, not going anywhere. But what does the fact that Adobe published an animation tool for Html5 tell you about the long-term future chances of Flash?
Soap/Schema/WS-*
A very long way from dead, since it’s used everywhere in the enterprise. But very few people would willingly use it over REST, and new deployments or standardizations on SOAP are rare. Strange for me to say, since I do a lot of work with Soap, but good riddance.

Question marks:

Erlang
It looked like the next Rails for a moment in 2008 or so, then was not really heard from again. Rule of thumb: languages with weird-looking syntax rarely go mainstream (see also: Lisp). Also: really sucky string handling. But the concurrency stuff is still super neat.

Closure
Finally a Lisp that will spread beyond Lisp fans? I wouldn’t bet on it. Still too many parenthesis for my taste. But seems to gain a lot of traction lately.

Go
Finally a new systems language. Too bad there’s not a whole lot of new OSs being written right now. But seems to spread into non-system applications, like AppEngine web apps.

NoSQL
Is there any web startup that does not use it? But it’s not clear yet if a single one, and which one, and which kind, will dominate.

Git
By far the most prominent DVCS, and the most pure implementation of the DVCS concepts. There’s a lot of submarine projects, like single developers using it locally as a subverson proxy. But will a tool designed by and for kernel hackers go mainstream? I like Git, but it’s using up too much complexity-handling brainpower that I’d rather spend on the code itself.

Don’t like Google’s redesign? Greasemonkey to the rescue

So Google redesigned their search homepage, to include a black highlight bar for their other service offerings on top of the page.

I think it looks pretty good, but my girlfriend, who is a more visual person than I am, and has better aesthetic sense too, absolutely hated the fact that she was greeted by an imposing, dark bar on top of every new browser window.

What’s a good boyfriend to do? Never one to turn down an opportunity for geekery, I installed Greasemonkey on Firefox, and whippe up a little script to set a different color.

Here’s the script, if you want it:

// ==UserScript==
// @name           google in farbe statt schwarz
// @namespace      https://elmar.wordpress.com
// @include        google*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
// ==/UserScript==

var lovelyPink = '#A167E4';
$("div #gbx4").css('background-color',lovelyPink);
$("div #gbx3").css('background-color',lovelyPink);

Eh, voila, here’s Google search in a lovely (?) pink:

Google search page with pink top bar

On a less playful note, this kind of thing is also useful to change color of admin interfaces depending on the server’s url. For example, when developing hybris-based online shops, I use a similar script to color the management console green on test servers, and red on production systems.

How to record internet radio using VLC on the Mac

This is mostly to remind myself, so I don’t have to mess with the settings again next time:

  1. Download the Playlist (.pls file), open in text editor, extract the station url (something like http://ice.somafm.com/suburbsofgoa)
  2. Open VLC, go to File/Open Network, enter the url extracted from the playlist
  3. Click on Settings…, choose any filenmane.mp3.
  4. Use the following settings: do NOT check “dump raw input” if you want to listen while recording , check “display the stream locally” to have it play while recording, use “Encapsulation method: Raw”, under “Transcoding options”, check audio,  pick mp3 from the dropdown list, pick a reasonable bitrate (eg. 128).
  5. Hit OK and listen and record as long as you like

VLC settings to record internet radio as mp3

Of course, this will just treat it as a continuous stream, completely ignoring tracks or titles. But it works just fine to record in chunks of about 30 minutes, import those into an iTunes playlist, and use that as “offline radio” on the ipod.