My Book in Design Museum

My book, Getting Started with Sensors, is on display in Design Museum.

Visit Design Museum (fi: Designmuseo) in Korkeavuorenkatu 23, Helsinki.

Thanks for taking & sending me the photos. I have co-authored the book with Kimmo Karvinen.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , | Leave a comment

“IoT Rapid Prototyping Laboratory Setup” published in the International Journal of Engineering Education

Your first Internet of Things prototype in four days? Yes, even beginners successfully built IoT systems from their own ideas.

International Journal of Engineering Education published an article I co-authored with Kimmo Karvinen.

The article explains BotBook method in the context of IoT. Two workshops (n=27, n=19) and 22 student projects are described. The article has link to reference implementations of the software we have used as backend.

Karvinen & Karvinen 2018: IoT Rapid Prototyping Laboratory Setup (Download full text PDF final draft)

Posted in Uncategorized | Tagged , , , , , , , , , , , , , | Leave a comment

Translate Titles on Wikipedia – Firefox Addon

Add links to English and Finnish translations on Wikipedia. Add-on for Firefox.

Download from official Firefox Add-ons site.

The rest of this article is “making of”, interesting if you want to learn to write your own Firefox extensions.

I wrote this addon earlier in 2015 using the previous XUL extensions API. This one is using the latest WebExtensions API, the one extentions API for both Firefox and Chromium/Chrome.

The latest 2.2.0 is also written in vanilla JavaScript (EcmaScript 6) instead of jQuery.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , | Leave a comment

Suricata IDS on Ubuntu – Easily with apt-get, oinkmaster and systemctl

Suricata is a modern intrusion detection system (IDS). It sniffs your network traffic and logs suspicious packets. Suricata uses Snort rules, so you can have a lot of them for free. Rules are installed automatically with OinkMaster.

This article shows the easy way to install Suricata. We install the package with apt-get, start it as a service and download new rules with OinkMaster.

To follow this tutorial, you must know what you are legally allowed to log and where. Also, you should be familiar with command line, daemons, logs and sudo.

Continue reading

Posted in Uncategorized | Leave a comment

Message of the Day on Ubuntu – sudoedit /etc/motd; chmod ugo-x /etc/update-motd.d/*

Message of the Day (motd) is displayed when you log in with ssh.

You can use plain text message of the day in /etc/motd also in Ubuntu. Disable scripts in /etc/update-motd.d/ to get rid of extra stuff.

When automatically configuring customer systems, it’s a good idea to leave some tangible proof that the systems are configured. Just like a janitor emptying a trash can with just one piece of paper in it.

Continue reading

Posted in Uncategorized | Tagged , , , , , | Leave a comment

Creating Legacy Boot Xubuntu USB – UnetBootin and bootable FAT32 partition

Xubuntu Linux can boot from USB disks, even without installing to hard drive. It supports both BIOS and UEFI boot.

For most USB sticks, you can just use UnetBootin after taking the USB from the package.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , | Leave a comment

Faster ‘vagrant up’ with apt/deb Package Proxy

Create virtual machines faster by caching deb packages.

Use squid-deb-proxy on host OS, then add an apt.conf.d/ config file to make guest OS apt-get use your proxy.

Following these notes requires fluency with command line, sudo, daemons and vagrant.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , | Leave a comment

200 Lines of Code Saves 20 000 EUR

My student Joram Puumala wrote a program to automatically configure routers.

The CEO of NDC Networks, Markus Ahonen: “NDC is expecting to deliver over 5000 routers during 2018, so the calculable savings in direct effort are significant. Especially as handling this amount of routers would require a new part time hire, leading to additional costs upward of 20 000 EUR/year.”

The news is also on Haaga-Helia front page (in Finnish). Thesis available in Theseus and GitHub.

Would you like to read the 201 lines of code?

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , | Leave a comment

Naughty Questions and Easy Way to Forest – Apps for Android

Hurt your leg, baby in the cart and you still want to go walking in the woods? Moving with a wheelchair? Old? If you are based in Helsinki, check out HelpostiLuontoon.fi.

My students Jenni Saarinen, Elina Rajuvaaara and Kristina Lindfors have created a map and an app that shows curated routes for those who move slowly. Check out Helposti Luontoon app in Google Play.

Have a drink if you have sent naughty pictures. And download Boing Drinking Game App if you want to play a drinking game.

These two apps were the first ones to get paying customers on DigiStartUp course. I’m teaching it with Taru Parikka and Teemu Ruohonen.

Posted in Uncategorized | Leave a comment

Configuration Management Course Awards 2017: Most slaves: Tommi, most OSes: Matias

Tommi Timonen had the most slaves, a total of 1478 computers. He had 20 physical computers running many virtual computers each. Congratulations Tommi!

Tommi also took second place with his previous setup of 639 computers. Third place was Tatu Erkinjuntti with 200+ slaves, or 1500+ slaves on the same master on different times.

Matias Räisänen controlled the largest number of different operating systems: SunOS Solaris i86pc 11, Ubuntu Linux 16.04.2 LTS armv71, Windows 7 amd64, Windows 8 x86 (32 bit), Windows Vista x86 (32 bit), Windows 10 x86 (32 bit). He is also running multiple processor architectures. Congratulations Matias!

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , | Leave a comment

Automaticaly Build Penetration Testing Environment – Kali, Metasploitable, Vagrant

My student Toni Jääskeläinen developed a PenTest environment that can be set up automatically. Based on my idea, it’s distributed as a single Vagrantfile.

Using pentest tools requires special care and skill, as even mistakes with some of these tools could be crimes in some places. Check local laws before downloading. Often, it’s best to disconnect from the Internet when testing.

Vagrantfile for PenTest environment and thesis in Finnish.

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Automation of Router Configuration with Python & SSH

My student Joram is automating router configuration for NDC Networks.

Joram configures Advantech B+B routers for NDC’s clients. The configuration is done using custom built Python Paramiko SSH script.

The routers are configured for clients of NDC, an 8 person company with 3 million EUR revenue. An estimate of 3000 to 4000 routers per year need to be configured. Based on Joram’s test, automation is 80% faster than fully manual operation, saving over a month of working time per year.

See the results & read the source code: Puumala 2017: Automation of router configuration

Posted in Uncategorized | Tagged , , , , , , , , , , , | Leave a comment

Tommi’s 639 Puppet Slaves

My student Tommi tested Puppet with 639 slaves. Tommi is running some 20 physical computers with about 30 virtual computers each.

Tatu has 263 slaves – on a single physical machine with a huge swap file.

Who will get 640 slaves?

Posted in Uncategorized | Tagged , , , , , , , , , , , , | Leave a comment

Top Configuration Management Systems – Puppet vs Salt vs Ansible vs Chef

The leading configuration management systems compared: Puppet, Chef, Ansible, Salt. My students Joona, Jori, Eero and Jarkko gave a presentation and demonstrated each system.

ArcticCM provisioned and configured a couple of Linux desktops and servers, and also configured some Windows desktops. They published a Free (MIT licensed) configuration for that network with each of the four tools.

Download code for Puppet, Salt, Ansible and Chef.

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Provision Multiple Virtual Puppet Slaves with Vagrant

For testing, it’s convenient to provision many virtual slave computers to your master.

This Vagrant file installs two virtual computers and automatically configures them as slaves to a puppetmaster in a predefined IP address.

Advanced stuff warning: Using this sample configuration requires fluency in command line, Puppet master-slave architecture and knowing the basics of vagrant and virtualbox.

Continue reading

Posted in Uncategorized | Tagged , , , , , | Leave a comment

Multiple Virtual Computers in Minutes – Vagrant Multimachine

You can install multiple virtual computers in minutes.

This example shows how to install two Ubuntu 16.04 virtual machines and configure SSH – in a couple minutes.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , | Leave a comment

Aikataulu – Monialaprojekti Infra pro4tn001-5 – kevät 2018 – 10 op

English: Complete a project with a company as a client. Work with students from different tracks and backgrounds. Course in Finnish.

Tee projekti yritysasiakkaalle ryhmässä, jossa on opiskelijoita eri aloilta.

Continue reading

Posted in Uncategorized | 3 Comments

Aikataulu DigiStartUp digt4tn024-3 – keväällä 2018 – molemmat 1p ja 2p – 10 op

English: Create your own digital product and find paying customers. Real customers, actual money. Course is in Finnish.

Luo digitaalinen tuote ja hanki sille maksavia asiakkaita. Siis oikeita asiakkaita, joilta saa oikeaa rahaa.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Aikataulu – Linux palvelimet ict4tn021 8-ma, 7-ti ja 6-to – alkukevät 2018 – 5 op

English: Learn to manage your own Linux server – in 8 weeks. Beginners welcome. Student feedback excellent 4.7 out of 5. Course is in Finnish.

Aloita nollasta. Opiskele 8 viikkoa ja hallitset omaa Linux-palvelinta.

Opintojakson suoritettuaan opiskelija:

  • Osaa hallita Linuxia palvelimena
  • Osaa tehdä tärkeimmät asetukset tärkeimmille palvelimille (Apache, OpenSSH)
  • Osaa asentaa www-ohjelmointiin sopivan alustan
  • Osaa tehdä itselleen uusia asetuksia palvelinohjelmistoihin ohjeiden avulla
  • Tietää esimerkkejä palvelintilan tarjoajista ja hinnoista sekä fyysisten palvelinten vastaavista ominaisuuksista

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , | 108 Comments

Aikataulu – Linuxin keskitetty hallinta – 3 op, vanha OPS – loppusyksy 2017 p5 – Puppet

Control 10 computers. Or 100. Or 1000. Use Puppet, the tool used by US Gov (security baseline), Mozilla, Google (laptops and desktops) and Wikipedia.

Just write what you want (idempotency). Control almost everything with one system (single source of truth). In plain text (infrastructure as code, versionable).

The course in Finnish.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , | 44 Comments

Starting with JavaScript – Arrays, for..of, F12 console

JavaScript gets you to results easily. It’s the native language of web pages.

You can create and sell Android Apps easily by packaging your HTML and JavaScript with PhoneGap/Cordova. All popular (1000+ installs) cell phone apps in my courses have been created this way, including Lauri’s Times Grid Table with over 50 000 installs.

But how do you learn JavaScript? Read MDN JavaScript, try it out in Firefox F12 console, and learn some more in FreeCodingCamp.org.

This article shows you a simple example with a lion, a horse and a duck.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Initial Testing and Tries on MySQL Socket Authentication

MySQL has some initial support for passwordless socket authentication, but based on by very brief and initial testing, it does not seem to be ready for prime time yet. If you want socket authentication, PostgreSQL does socket authentication out of the box.

This article describes some tests on MySQL socket authentication and a configuration that does not work.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , | Leave a comment

Simpler Puppet Manifests – Resource Defaults and Manifest Ordering

Tips to make your Puppet manifests shorter and easier to read.

Resource defaults: If I say ‘package’, of course I want it installed. Services are usually running and enabled at boot.

Manifest ordering: Top-down, so I don’t have to ‘require’ the package in every other resource.

Puppet is the configuration management system used by Google (desktops and laptops), Wikipedia (servers) and US Gov (security baseline).

Continue reading

Posted in Uncategorized | Tagged , , , , , | 1 Comment

Apply Puppet Resources Top Down – ordering=manifest – Order without Require

By default Puppet manifest ordering is arbitrary. You either have to use require a lot or apply your modules twice. But there is an easy fix:

$ sudoedit /etc/puppet.conf
[main]
ordering = manifest
# ...
Posted in Uncategorized | Tagged , , , , , , , , | Leave a comment

Aikataulu – Palvelinten hallinta ict4tn022-3 – 5 op, uusi OPS – loppusyksy 2017 p5

Control 10 computers. Or 100. Or 1000. Use Puppet, the tool used by US Gov (security baseline), Mozilla, Google (laptops and desktops) and Wikipedia.

Just write what you want (idempotency). Control almost everything with one system (single source of truth). In plain text (infrastructure as code, versionable).

My current research area is configuration management systems: I gave an invited speech in IEEE ICIM, I’ve recently published a conference paper and gave some tailored teaching on this.

The course in Finnish.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , | 119 Comments
  • Picks

  • Boxing Clock for AndroidOcton8 Diving T-ShirtsShaking Tower Panda Android GameLearn Chinese with Android
  • Student projects