ESP32 – Arduino Compatible 6 EUR DevBoard with WiFi and Sensors

ESP32 and a pen. Photo by Heikki Hietala.

My colleague Heikki Hietala experimented with ESP32. He could connect it to Eduroam, the world wide free WiFi network for students.

Heikki used it for building a network controlled version of his morse moai, but you could use ESP32 to build robots and Internet of Things.

ESP32 is Arduino compatible microcontroller, making it very easy to program. It could work nicely with IoT Rapid Prototyping Laboratory Setup I co-developed with Kimmo Karvinen.

Continue reading

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

Two Books by My Students – Odoo ERP in Finland, Wi-Fi Penetration Testing


My students published two books: Wi-fi Penetration Testing for Beginners and Avoimen lähdekoodin ERP – Odoo Suomessa.

Continue reading

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

Configuration Management Course is Finished

Jussi controls 2071 slaves with Salt.

My students have created many interesting projects on configuration management course.

The feedback was excellent, 4.6 out of 5. The most common feedback (mode) was 5 out of 5. Thank you!

Jussi Isosompppi controlled 2071 slave computers with Salt.

Continue reading

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

Cracking WPA2 Wireless Networks with WPS

My students Kermorvant, Jääskeläinen, Kurenmaa and Eulenberger broke WPA2 protected wireless LAN using WPS attack.

They’ve also broken WEP and brute forced bad WPA and WPA2 passwords. And they show how to buy and configure network cards for this.

Moral of the story: don’t use WEP, use WPA2. Don’t use WPS. And also encrypt end to end with SSH, PGP or other strong encryption. For more security content, read project intrusion blog and come to Penetration Testing course.

Obviously, it’s illegal to break into other peoples networks. Using the tools mentioned requires separated lab environment and other precautions.

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

Clickable Table of Contents for Markdown – Ctags with Gedit

MarkDown is a very fast way to write text. You just mark headings with hash “#”. Empty line creates paragraph.

This tutorial shows how you can create a clickable table of contents of your MarkDown document – right inside your text editor. This makes it easier to edit long documents.

Continue reading

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

Versionable, Plain Text Reference Management – Git, PanDoc and BibTex

When you’re writing peer-reviewed articles, you must have references. Good news: you can have everything in plain text files, even the citation and reference management.

I have only used this exact BibTex setup for a while. However, having written five books in plain text (e.g. MarkDown) and with version control software, I could not imagine using old-fashioned word processor.

Continue reading

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

Control Windows with Salt

This long article explores Windows management with Salt.

First, it shows you how to automatically install software to Windows, control Windows boxes behind NAT and firewall and remotely run arbitrary PowerShell commands on Windows.

$ sudo salt '*' pkg.install gedit,firefox,steam,vlc

$ sudo salt winslave cmd.run 'Get-ChildItem C:' shell='powershell'

Later, more complicated features are looked at.

Continue reading

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

Money Moving with Odoo, the Open Source ERP

I bought some candy from Odoo ERP based web shop.

Update: they now have PayPal integration, too.

My students Emre Olgun, Roni Selander and Konsta Vaarala are running Odoo, the open source ERP. Enterprise Resource Planning (ERP) is a single system to control everything on the business side of a company, from sales to HR.

If you know Finnish, read more on OpenSourceERP2018.wordpress.com blog. They have both technical and business related articles.

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

Simple Secrets in Salt Pillars

This is a simple example for storing secrets in Salt Pillars. If you have a hundred slaves machines, you don’t need to trust them all.

Following this tutorial requires working salt master-slave installation and salt states.

Continue reading

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

Configure a Live USB in Two (2) Commands – terokarvinen/sirotin

You boot a computer form your USB stick and give two commands. It’s configured.

Install your programs, your settings, your configuration – automatically. Start from Sirotin, fork it, make it your own.

wget https://raw.githubusercontent.com/terokarvinen/sirotin/master/run.sh
bash run.sh
 

Fork me on GitHub: terokarvinen/sirotin.

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

Secrets in Salt Pillars – SSH Port Change

Salt helps you configure 1, 10, 100 or more computers. Secrets, such as encryption keys, must be given to authorized slaves only. In Salt, secrets are kept in pillars.

If you are just starting with pillars, do pillars tutorial first. This short listing of configuration files and commands is meant for people who already know salt. If you’re just getting started, see salt master-slave installation and salt states.



Continue reading

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

Aikataulu – Linux palvelimet ict4tn021-3003 – alkusyksy 2018 – 5 op

Tero’s Linux Course is ict4tn021-3003. I will only give one beginner course on Linux in the Autumn, because penetration testing, configuration management and other advanced courses take most of my time.

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

Continue reading

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

ViolentMonkey for User Scripts – Your Own JavaScript or CSS on Any Website

ViolentMonkey Firefox Addon allows you to run your own JavaScript and use your own styles on any website. It’s Free software (MIT license) and source code is available.

My fix for Moodle sorrow borders works with ViolentMonkey. It seems that my old GreaseMonkey scripts don’t work on GreaseMonkey, but they do work on ViolentMonkey.

Continue reading

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

NoReload Heroes on Nintendo Switch – New Distribution Agreement for StupidStupidGames

My former students got a Nintendo Switch distribution agreement (press release in Polish). Congratulations Suvi, Jussi, Eelis and the whole StupidStupidGames!

I can still remember when you published your first beta on my innovation course in 2013 and your first Steam release in 2016.

Read the story of NoReload Heroes.

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

Plenary Speaker and Program Chair in ICIM2018, Oxford

My invited speech in ICIM 2017, Chengdu, China.

If you are coming to ICIM2018 conference in Oxford, come to say hi. They kindly invited me as a plenary speaker and program chair.

4th International Conference on Information Management (ICIM2018) will be in Oxford, UK, from May 25th to 28th.

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

Make a Million of Those – Jinja Templating Salt States

Do you need a 50 users and Apache name based virtual hosts for each? If you use salt, you can use loops and variables with Jinja templates on your states. This short example configuration creates three text files with different contents, using a loop and variable.

Templates write states in a concise way. Abstracting away repetition also reduces typing errors. DRY – don’t repeat yourself.

Prerequisites: master-slave salt and salt states.

Continue reading

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

Name Based Virtual Hosts on Apache – Multiple Websites to Single IP Address

Usually, you have a single IP adress and many websites to hosts. With Apache, you can have many domain names (terokarvinen.com, botbook.com…) on a single IP address (109.74.201.133).

Here is a brief list of commands and configuration files for name based virtual hosting. Prerequisites: command line interface, Apache basics.

Continue reading

Posted in Uncategorized | Tagged , , | Leave a comment

Windows Installer Cheatsheet – Install Hundreds of Programs Automatically – Silent Installer Flags

Windows lacks package management. But you can install Windows applications silently, with a single command. And this cheatsheet tells you the command.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , | Comments Off

Save Checkbox State to LocalStorage – JavaScript and JQuery Example

You can save your JavaScript variables to browser localStorage. They are saved in the client’s web browser until user decides to “Clear recent history”.

Live demo allows you to see how the checkbox state is saved – even if you reload the page or close your browser.

Continue reading

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

MySQL Automatic Install with Salt – Preseed Database Root Password

MySQL is probably the most popular multi-user database in the world*. It’s part of the most popular web development stack, LAMP (Linux Apache MySQL PHP).

This article shows a Salt state to automatically install MySQL on Ubuntu.

As the package installation strangely asks for database root password interactively, we must answer the question before installing mysql-server. We use preseed to answer the questions beforehand.

Following this article requires Salt installation and understanding states.

Continue reading

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

Send a Message to Logged in Users – wall, xwrited

You can send a message to logged in Linux users with ‘wall’ (write all). In the unlikely event you want to send a popup message to desktop user, it’s possible with xwrited and some setup.

Users actually want to work with their computers, so you shouldn’t send them useless messages.

$ echo "Backup batteries will run out in 10 minutes"|wall

Continue reading

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

Remotely Unlock Screensaver on Xubuntu Linux – sudo loginctl unlock-sessions

To unlock a locked Xubuntu Linux workstation, you can use ‘sudo loginctl unlock-sessions’ and alt-ctrl-F7. This command works over SSH and over Salt, but obviously it requires root access to target computer.

Continue reading

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

Shorter Salt Ouput with –state-output terse

To get shorter output when configuring slaves with salt, use

$ sudo salt '*' state.highstate --state-output terse

If you’re just getting started, you should install salt first. To get even cleaner output, you can get rid of useless warning.

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

Apache User Homepages Automatically – Salt Package-File-Service Example

These are example daemon configuration files for salt. Package-file-service is the most common way to configure daemons.

If you’re new, start with salt master-slave installation and a commented example of SSH Server install.

Continue reading

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

Pkg-File-Service – Control Daemons with Salt – Change SSH Server Port

You can control a huge number of daemons with a configuration management system. Package-file-service is the common pattern for this: install the software, replace a configuration file and finally restart the daemon to use the new configuration.

This article shows a simple Salt state to change SSH server port.

Continue reading

Posted in Uncategorized | Tagged , , , , , , , , , , , , , | Leave a comment
  • Recent Posts

  • Picks

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