Categories
Mobile

My favourite Android apps: 2014 update

I thought I’d update my list of recommended applications. Let me know if there’s some missing!

Quick note: I use only Nexus devices (direct from Google) so it has some shortcomings that are fixed by HTC, Samsung etc. But I prefer to fix some of them myself instead of living with all the bloat and slow updates from the other vendors. 🙂

Highlights

  • Agent – Lets you silence your phone when sleeping or in meetings. Read messages out loud when driving and remember where you parked. Nice little utility.
  • Amazon Kindle – Yeah. Books. 🙂
  • Audible – Audio books for my commutes. 🙂
  • Authenticator – 2-factor authentication. If you don’t know what this is it’s time to read up on it after Heartbleed. Works for Evernote, Gmail, Dropbox, Amazon and lots more.
  • CamScanner – Scan documents with your cell camera. Awesome. 🙂
  • Circa – News summaries. Works really well for catching up fast, and lets you follow topics once you find them interesting.
  • DashClock Widget – Customize your lock screen in awesome ways.
  • Deliveries – Package tracking for ALL providers
  • Dropsync – Some folders in Dropbox I actually want offline and on the phone, so this handles that. And it’s two way, so when I delete something on my computer it gets wiped off the phone too.
  • Evernote – Everything that needs to be remembered. It’s extremely flexible so you need to find your way of using it, but it’s worth it.
  • KineMaster – Video editing for your mobile phone. Pretty slick.
  • LastPass – Remember passwords and use different ones for each sites. Heartbleed…
  • NRK Cast – Cast NRK programming to Chromecast. Norway only.
  • Plex – Your media available everywhere. And with Chromecast. 🙂
  • Pocket – Read it later, got way too much stuff stored here.
  • PriceSpy – Compare prices. Think it’s limited to Nordic countries.
  • Shush! Ringer Restorer – Automatically restore your ringer when the meeting is over.
  • SwiftKey – Must have keyboard replacement. Just try it.
  • Textra – Simple and easy SMS and MMS application. Because I run Nexus the only other app installed for SMS is Hangouts. But try it, even if you have a decent one already.
  • Waze – Awesome free and social GPS driving application. Real time updates and re-routing based on traffic from other drivers that use Waze.

The rest

  • AirAudio – Sends your audio to AirPlay compatible devices. I have several Airport Express throughout my house that are wired to speakers. Spotify in sync over the entire house. 🙂
  • AllCast – Lets you cast videos and pictures to your Chromecast. Big screen baby!
  • ASTRO File Manager – Good file manager with support for advanced operations.
  • Avia – Media player with Chromecast support.
  • Banjo – Social media aggregator that focuses on friends near by, or just a map of everything that happens around you.
  • Battery Left – Predicts how many hours you have left of battery time based on you normal usage pattern.
  • BitTorrent Sync – Sync between your mobiles and computers. No central storage like Dropbox, but free and it might be a good thing the files doesn’t pass through the US. 🙂
  • Chromecast – Well not really much functionality here except for managing your Chromecast. It really means you should buy an Chromecast. 😉
  • ClockSync – Synchronizes your clock with the big internet. Requires ROOT.
  • Cloud Print – Print documents from your phone if you have set up cloud print on your computer.
  • DashClock Fitbit Extension – Well, used in DashClock to show Fitbit info.
  • DashClock Sunrise Extension – Shows sunset and sunrise on Dashclock.
  • Dashclock Yr Extension – Shows you the local weather in Dashclock
  • Device Manager – Locate your lost tablet or second phone. 🙂
  • Dropbox – Well, Dropbox. Let’s me access things on Dropbox without using space on the phone.
  • Endomondo PRO – Exercises. Great Fitbit integration too.
  • Facebook – Well, Facebook 🙂
  • Fitbit – Because I use a Fitbit Flex. 🙂
  • Flipboard – Good news aggregator for social media. Slick experience.
  • Foursquare – Best check-in network I guess. Not the most active user, but I’m intrigued by the recommendation possibilities.
  • Instagram – Yeah. 🙂
  • LinkedIn – Yeah
  • Markers – Simple graphics.
  • Meetup – Find Meetups and events close by. Great resource in Oslo as there’s a lot going on.
  • Messenger – Facebook Messenger. Despite all the noise recently about forcing everyone to use this, I really like this app.
  • Muzei – Dynamic wallpapers with multiple sources
  • Muzei 500px Editors Choice – A source for wallpapers
  • Netflix – Well, Netflix…
  • Nirvana ✓ – My TODO app. I like it’s adherence to the basics with some flexibility.
  • NRK Super – Entertain your kids in a pinch. Norway only.
  • NRKRadio – Live and recirded radio. Norway only.
  • NSB – Trains and tickets in Norway.
  • OpenVPN Connect – Call home… 🙂
  • PhotoCast – Cast photos to Chromecast. Does it in a fancy way. Still too slow though.
  • Pushbullet – Custom notifications from everything. Supported at IFTTT too.
  • QuizUp – When you have too much time on your hands… 😉
  • Quora – Awesome Q&A site. Get really insightful information on whatever you are wondering about.
  • Remote Desktop – Access your computers.
  • RuterReise – Oslo bus, tram and subway info.
  • Server Auditor – SSH client.
  • Shazam – Identify that song playing right now.
  • Skype – Yeah…
  • Snapchat – Well…
  • Speedtest – Check your network speeds wherever you are.
  • Spotify – Music…
  • Sun Surveyor – Check how the sun moves around a certain spot. Awesome when buying a new house.
  • Sync.ME – Sync information from LinkedIn and Facebook to your Google contacts.
  • Tasker – Make your phone do just about anything automatically.
  • Timely – Simple clock, alarm, timer, countdown app.
  • Titanium Backup – Backup and restore applications with settings. Requires ROOT.
  • Trello – Simple boards for todo, project, kanban etc.
  • TripAdvisor – Find and write reviews of everything. They also have specific offline guides for large cities, so make sure to search the market for them before travelling.
  • TripIt – Manage your itinerary and booking information.
  • TuneIn Radio Pro – Radio. Lots of radio.
  • Untappd – Social network for beer drinkers. 🙂
  • Vivino – Social network for wine drinkers. 🙂
  • Wakelock Detector – Since I am running a lot of applications I need to find the bad boy sometimes. This helps me find the ones using up battery. 🙂
  • Wifi Analyzer – Helps me diagnose bad connectivity and crowded channels.

Alright, as you see this is a quick alphabetical dump of many of my apps. Let me know if something can be done differently.

Categories
Development Operations OS tricks

Speeding up development cycles with Docker

When I started doing Puppet development I was looking for a nice way to do testing. Vagrant was the best option at the time. But when Docker surfaced, and I figured it could speed things up considerably. And it does. 🙂

If you would like to move on to the code you can find my setup on Github. It should’nt take much work to transfer to your project or something else that is similar without Puppet. Go to Github for the code: https://github.com/anderssv/puppet-docker .

Let me know what you think. The README should help you getting started, but let me know if anything can be changed. 🙂

Docker is some kick ass technology. It can be used for a wide variety of many tasks. It gives complete isolation between containers when it comes to processes and software, while NOT reserving large amounts of disk, memory or CPU. And it is lightning fast (really, starting a new container takes less than a second)! Look into it if you haven’t.

Doing Puppet means that you need a VM, but you also you need to reset it every once in a while to simulate building a machine from the bottom up. Combining the mechanisms in Docker I was able to minimise what happens when you reset, except for the things Puppet does of course. So I have:

  • Created a Docker image (not uploaded to repo, created on the fly by the scripts) that can be used for launching Puppet scripts. Having everything like puppet rpms etc. installed, updated and available saves a lot of time when running.
  • Launch a SSH Daemon. This serves two purposes: Keeping the container running and allowing for a interface to run the puppet command.
  • Kill the container to reset, so you will get a “fresh” container to run on.

Doing this enables you to “boot” a fresh new image in no time, and get running Puppet scripts as fast as possible. It is my new favorite toy for automating and virtualising tests. 🙂 Let me know if there’s anything I can make clearer.

Categories
Development

Creating system docs in source control

Wiki’s are a great technology. Well for some things. For documenting systems I am not convinced. Some problems:

  • All the old stuff that piles up. Nobody ever deletes anything.
  • Versions. If you have maintenance versions as well as active development etc. how do you update, merge and maintain several versions?
  • Historical snapshots. What was the state of the entire documentation at the time of release?

Is is possible to solve with a Wiki? Yes. Does Atlassian do it? Yes. Does it work for us? Nope. Maybe we lack discipline but it’s not working. Our tries at fixing this has only seemed like band aids or placebos to the real problem. I want my documentation released, versioned, branched and merged with my code!

I want to put it in my source control (ah, I dream for Git, but I have SVN). When I discovered Flatdoc I was quite excited. It is a JavaScript based rendering of Markdown. So you don’t have to have a server serving it up, or some extra compile steps before viewing. Just write your Markdown and commit. That’s it. Jekyll is nice and all that, but it involves a bit more tooling and different ways of doing stuff than I would like to introduce.

I was already writing some stuff in my README files as Markdown, so I decided to give it a spin. And it works quite nicely. 🙂

Hoping I will be able to replace system doc in the wiki with it, but that will take more testing. Just some short notes on making it work in Subversion.

Making it local

Flatdoc doesn’t really need installing, especially if you run it with a project on Github. But because we have network zones, and I wanted to host it directly off our SVN-server (over HTTP) I downloaded everything:

wget https://github.com/rstacruz/flatdoc/raw/gh-pages/templates/template.html
mv template README.html
mkdir flatdoc && cd flatdoc
wget http://rstacruz.github.io/flatdoc/v/0.8.0/legacy.js
wget http://rstacruz.github.io/flatdoc/v/0.8.0/flatdoc.js
wget http://rstacruz.github.io/flatdoc/v/0.8.0/theme-white/style.css
wget http://rstacruz.github.io/flatdoc/v/0.8.0/theme-white/script.js
cd ..

So now you have a README.html with a subdirectory called flatdoc/ with all the scripts and styles.

Enabling SubVersion hosting

To enable the SubVersion server to serve the files you need to set the mime types. But first, if you have not; add them to SubVersion:

svn add README.html flatdoc
svn commit -m "Installed Flatdoc"

Then set the mime types:

svn propset svn:mime-type text/html README.html
svn propset svn:mime-type text/javascript flatdoc/*.js
svn propset svn:mime-type text/css flatdoc/*.css

Hooking in your Markdown file

Edit the template file you downloaded into README.html.

Change the links to JavaScript and CSS to be:

<!-- Flatdoc -->
<script src="./flatdoc/jquery.min.js" type="text/javascript"></script>
<script src='./flatdoc/legacy.js' type="text/javascript"></script>
<script src='./flatdoc/flatdoc.js' type="text/javascript"></script>

<!-- Flatdoc theme -->
<link href='./flatdoc/style.css' rel='stylesheet' type="text/css"/>
<script src='./flatdoc/script.js' type="text/javascript"></script>

Change the Flatdoc javascript (inside README.html) to point to the Markdown file you want to display. It should look something likes this:

<script>
    Flatdoc.run({
        fetcher: Flatdoc.file('README.md')
    });
</script>

That should be it. 🙂 Commit to SubVersion and access through HTTP.

Note about testing and local rendering

Because of security restrictions in your Browser, local testing will not work. You will get an origin-error when trying to read the Markdown file. You can either disable that security check in your browser, or use some kind of Markdown preview locally. The Markdown preview for Sublime Text works pretty well. 🙂