The Expert
How I revived my iPod classic 4th genation with Flash Memory!!
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
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!
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
For the record: a great post by Tim Arnold - things ‘NOT TO DO’ to a Pinball Machine:
Mysql For Beginners
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
- What is Database?
- What is Table?
- columns + datatype (INT, VARCHAR, TEXT)
- good practice: first column
id
as primary key & auto increment
- 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)
- add table
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!
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:
Maslow's pyramid of code review
Must Read: http://blog.d3in.org/post/111338685456/maslows-pyramid-of-code-review
Great sources for great Software Development
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
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)
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/????
The Dude is coming...
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.
Projects worth to donate to
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
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:
WunderBar
WunderBar - a great Internet of Things Starter Kit for App Developers:
http://www.dragoninnovation.com/projects/35-wunderbar-by-relayr
[via Moritz, thx]