Skip to content

The Expert

September 03, 2015

https://www.youtube.com/watch?v=BKorP55Aqvg

How I revived my iPod classic 4th genation with Flash Memory!!

August 10, 2015

Since a very long time, I had my old 4th Generation iPod laying around. With iPhone, SoundCloud & Co, I hadn’t had any use for it - until now: my Camping Van came ‘only’ with a CD Radio and an Aux-In - which is perfect for my Ipod. If it would only work. Battery was down, and even worse - the Harddisk crashed. But a quick google made me hope: there’s indeed a chance to replace the HD with Flash memory. Faster, cheeper and less power consumption. I had to try it.
So I followed those super easy steps Eddie posted on instructables:

http://www.instructables.com/id/Convert-your-4th-Gen-iPod-to-use-Flash-Memory

Main trick is to get a ‘IDE 50 Pin Male zu CF Compact Flash Female Adapter’ - on ebay or similar for just 5 EURs. Compact Flash memory you get for abt. 1EUR per GB, which int total, made the 40GB replacement quite cheap. It just took me minutes to replace the harddrive, including a new Battery. Now my more than 10 years(!!) old iPod works better like never before! Amazing.

Happy Hacking!

UPDATE: make sure you check DIAG-Mode and HW-Reset too:

First what I would do is wait for it to reboot itself and as soon as the screen turns off begin holding the Center + Play/Pause buttons until Your iPod Enters Disk Mode and THEN plug it into your iMac and select “Restore”. =) Also when you get the chance, Hold Menu + Center and as soon as the screen goes out, Hold Center + Previous/Rewind. You will get a White Screen, select “Manual Test” and then go to “IO” then “Hard Drive” and then select Hard Drive Smart Data and type every character on that screen up here, I will be able to tell you if your iPod’s internal hard disk is going bad

https://discussions.apple.com/thread/2609298?tstart=0

Satzuma Missile Launcher finally works with USB Missile Launcher NZ v1.8.2 on Mac

May 23, 2015

img8077_14925

Good news: I finally got the Satzuma Missile Launcher working on my Mac Yosemite. Solution it the latest (unfortunately unreleased) version of USB Missile Launcher NZ. You can download USB Missile Launcher NZ v1.8.2 from here, a source I found after digging through the comments of version 1.8.1 announcement:

https://dgwilson.wordpress.com/2012/01/11/usb-missile-launcher-nz-v1-8-1-release/#comment-10069

To get started with Satzuma, install v1.8.2, restart you Mac (bummer), open USB Missile Launcher NZ.app, go to Preferences -> Launcher and
enter 1046 for VendorId, 3777 for ProductId and change Controls to Satzuma (see screenshot) - Boom! You’re all set - happy shooting!

Screen Shot 2015-05-20 at 11.41.11

Next, I want to check https://code.google.com/p/pymissile - having a working CLI version would be so much better!

Things 'NOT TO DO' to a Pinball Machine

May 03, 2015

For the record: a great post by Tim Arnold - things ‘NOT TO DO’ to a Pinball Machine:

http://www.zaccaria-pinball.com/misc/arnold.html

Mysql For Beginners

April 01, 2015

MySQL for beginners

Install

  • Homebrew -> http://brew.sh
  • brew install mysql
  • or: http://dev.mysql.com/downloads/mysql/5.5.html#macosx-dmg
  • SequelPro -> http://www.sequelpro.com

Start

  • Connect to root@localhost
  • Graphical vs. CLI vs. progamitacal

Basic Structure

  1. What is Database?
  2. What is Table?
    • columns + datatype (INT, VARCHAR, TEXT)
    • good practice: first column id as primary key & auto increment
  3. Setup:
    • add table users, columns: id (INT), name VARCHAR(255), lastname VARCHAR(255)
    • add table tracks, columns: id (INT), user_id (INT), name VARCHAR(255)
CREATE TABLE `users` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255),
  `lastname` VARCHAR(255),
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

CREATE TABLE `tracks` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `user_id` INT(11),
  `name` VARCHAR(255),
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

Commands

INSERT

 INSERT INTO `users` SET `name` = "Marie";

or multiple line style:

 INSERT INTO `users` (`id`, `name`, `lastname`) VALUES (NULL, 'Marie', 'Parker'), (NULL, 'Peter', 'Parker');

SELECT

All users:

SELECT * FROM `users` 

WHERE

WHERE allows to filter output e.g. All users with name ‘peter’:

SELECT * FROM `users` 
WHERE `name` = 'Peter'

All users whos name contains ‘e’ (‘%’ means don’t care):

SELECT * FROM `users` 
WHERE `name` LIKE '%e%'

Combine conditions:

SELECT `name`, `id` FROM `users` 
WHERE `name` = 'Peter' OR `lastname` = 'Parker')

Select only specific columns:

SELECT `name`, `id` FROM `users` 
WHERE `name` = 'Peter'

UPDATE

Combination of INSERT & WHERE syntax:

UPDATE `users` SET `lastname` = 'muller' 
WHERE `name` = 'Peter';

Best practice, use primary key:

UPDATE `users` SET `lastname` = 'muller' 
WHERE `id` = 1;

SELECT .. JOIN

select & filter data across multiple tables.

Quick and dirty:

SELECT * FROM `users`, `tracks`	
WHERE `user`.`name` = 'Peter' AND `tracks`.`user_id` = `user`.`id`

Better: (see JOIN as dot product of users x tracks)

SELECT * FROM `users`
JOIN `tracks` ON `tracks`.`user_id` = `user`.`id`
WHERE `user`.`name` = 'Peter'

Even include empty rows:

SELECT * FROM `users`
LEFT JOIN `tracks` ON `tracks`.`user_id` = `user`.`id`

==== next session ===

More on SELECT

  • Functions
  • order by
  • limit
  • group
  • indexes, constraints
  • insert select

More

  • csv import
  • mysql CLI
  • variables
  • master/slave
  • access rights
  • transaction
  • rollback

HackedTheHouse - and won 2nd Price!

March 03, 2015

Last weekend I attended HackTheHouse, a 24hrs Hackathon in Berlin, organized by Relayr and BSH - all in the Name of IoT. I teamed up with Chris(ccb23), Clemens and Roby from Italy. We had a blast!

We were given a couple of BSH Home appliances, Relayr WunderBars, Arduino, RaspberryPi, Seeedstudio Grove, Nest etc. - so all the Toys a hardware hacker only could think of.

Our idea was to bring FUN the to dull, boring household tasks.  We solve this problem by gamify cleaning duties - regular household tasks are turned into a big game, you score every-time you fulfill a task, as sooner and thoroughly, as more points you get.

After 24hrs we presented a first prototype - including a dishwasher, a smart trashcan and a smart broom. The jury was amazed and we scored the 2nd price!

https://twitter.com/relayr_cloud/status/572043608691499008

See our Hacklog, Repository, Pictures and more here:

http://www.hackster.io/hackthehouse/wgheld

Maslow's pyramid of code review

February 26, 2015

Must Read:  http://blog.d3in.org/post/111338685456/maslows-pyramid-of-code-review

Great sources for great Software Development

February 02, 2015

There was recently a call on the Softwerkskammer Emailgroup for good sources to improve ones software development skills. Here a summary of all recommendations:

* Buch: Headfirst Design Patterns

* OOSE, Vielleicht hilft Dir das hier weiter: http://www.oose.de/training/objektorientiertes-design-mit-entwurfsmustern/

  - OOSE für die Schulung ‘iSAQB’

* http://www.sigs-datacom.de/seminare/akademien/clean-code-developer.html .

* Videoreihe von Robert C. Martin: http://cleancoders.com

* Robert C. Martin - Agile Software Development, Principles, Patterns, Practices. In this book the notion of SOLID Principles is very well documented. 

* Gang of Four - Design Patterns: Elements of Reusable Object-Oriented Software

* Apprenticeship Patterns http://shop.oreilly.com/product/9780596518387.do 

* Skillsmatters  Von ndc  Oredev

* State: Tennis Kata http://garajeando.blogspot.de/2012/11/refactoring-kata-tennis-to-state-pattern.html

  - Bsp zur Tennis Kata: http://blog.ploeh.dk/2011/05/16/TennisKatawithimmutabletypesandacyclomaticcomplexityof1/

*  “refactoring to patterns” von joshua kerievsky

* Video-seite wurde ich alles von Kevlin Henney

*  “Domain Driven Design” von Eric Evans für Einsteiger ist “implementing Domain driven Design”

* “Being the Worst” podcast 

* m.feathers mit “working effectivly with legacy Code”

* “Refactoring - Improving the Design of Existing Code”. Fowler ist ein Meister des OO-Design und das Buch ist voller Beispiele. http://martinfowler.com/books/refactoring.html

IrDude - A simple android app to control my stereo via IR

December 17, 2014

I recently wrote a simple Android App which allows me to control my HarmonKardon Avr-35 stereo remotely via IR. Presenting: IrDude.

It uses the an undocumented Samsung IR API, so its unfortunately very much tight to Samsung galaxy note 10.1 tablet. Nevertheless, it does the Job for my, and is hopefully a good starting point for other to do similar. Check http://www.remotecentral.com to find hex codes to support other devices.

https://github.com/rngtng/IrDude

[image from IR PUCK]

Hacking the Pinball machine (Take Two)

November 30, 2014

30.Nov 2014

Wow, wow, wow - I finally got my hand dirty hacking. Together with ccb23, I (once again) opened up our Teenage Mutant Ninja Turtles Pinball machine to ‘pirate’ the current game score to throw into teh internetz!

To be honest, it’s take two. We already did so nearly 18 month ago, but failed to document and write about our experience in full. In short, we reverse-engineered the graphic card protocol of the pinball machine, connected an Arduino to listen on the bus and ‘pirate’ the game score. But due to its lack of internet connection we forwarded the data via RFID injection to a Nabaztag Rabbit, which send the message to an API endpoint of a rails application. So what’s left are a couple of prototype projects:

  • A Arduino sketch to listen to the graphic-bus.
  • The NabaztagInjector to send the data via RFID to a WIFI connected Nabaztag rabbit.
  • A rails app & API PinPirate to receive the data, display the score and send out tweets.

Yes, this worked! Proof of concept - done! Unfortunately it turned out that all was very shaky and not very reliable, so we left it for a while until now, back to tackle the challenge again, but this time with a different approach: enter RaspberryPi.

Advantage:

  • on board Internet

Disadvantage:

  • we have a full OS - access to interrupts way more complicated

ccb23 managed to write a kernel module to direct access to Interrupts: http://elinux.org/RPi_Low-level_peripherals

With this module loaded and the pinball machine connected, listening to the graphic bus is as simple as:
cat /dev/????

GPIOs

The Dude is coming...

November 29, 2014

Oh yeah, I can’t believe Dutch Pinball did it. They are building a Big Lebowski pinball machine!!! I features all the legendary Movie characters, and of course, a bowling alley below the playfield. Can’t wait to get my hands on that.

http://www.thebiglebowskipinball.com

Projects worth to donate to

November 29, 2014

It’s soon the end of the year and time to say ‘thank-you’ to projects and people I profit from on a regular basis. This year it its:
* iTerm - http://iterm2.com
* SequelPro - http://www.sequelpro.com
* DaviCal - http://www.davical.org
* Serial Podcast - http://serialpodcast.org
* Logbuch: Netzpolitik - http://logbuch-netzpolitik.de
* Alternativlos - http://alternativlos.org
* MacTechnews - get the App to support the project - http://www.mactechnews.de
* Outbank - http://www.outbank.de
* Time Pritlove - https://flattr.com/profile/timpritlove
* Jack Conte - http://www.patreon.com/JackConte
* more to come…

More on my Flattr Page:
https://flattr.com/profile/rngtng

Related: open call with @Flattr @GetCentUp @Patreon @GitTip on Sustainable Crowdfunding:
https://www.youtube.com/watch?v=l1-3AYgZRFQ

Pro Pinball: Timeshock! - The ULTRA Edition

April 22, 2014

https://www.youtube.com/watch?v=Xz17Kw9eGwg

OMG! its happening - The 90s are back!

https://www.pro-pinball.com/forum/index.php

Update: And even better, Silver Castle Pinball is building a real(!!!) Timeshock! Machine:

http://www.pinballnews.com/games/timeshock

WunderBar

January 20, 2014

WunderBar - a great Internet of Things Starter Kit for App Developers:

dXobuyIopk4-YQHTgdb5bNuIec_dMGv5Vd8LTwHT1LE

http://www.dragoninnovation.com/projects/35-wunderbar-by-relayr

[via Moritz, thx]

DIY: custom y-connector ribbon cable

January 04, 2014

For my upcoming Hacks i needed a y-connector ribbon cable. I wanted something quick, easy and cheap to build, still reliable and preferable without wiring. So i came up with this:

IMG_1229

IMG_1226

IMG_1231

Mainly two blanks with connectors at each side. Stack them and your Y-connector is done. Happy hacking!