text:
Sarah's Wanderlust: An Introduction
Hi all! My name is Sarah Skrobala, and I'm thrilled to be blogging for CIEE about my adventures while teaching in, living in, and exploring Spain. A little bit about myself before getting into the heart of the post -- I'm a New Jersey native (north Jersey, to be exact), and I graduated from Fordham University at Rose Hill in 2015 (go Rams!) with Bachelor's Degrees in Political Science and Spanish Language & Literature. I studied abroad in Seville, Spain during the spring of 2014 and absolutely fell in love with the city and Spanish culture (and by that I mean the four hour siestas, which I took advantage of daily). After graduating college (something I'm still pretty heartbroken over), I packed my bags and moved down to Nashville, Tennessee to begin a career in education. I eventually realized that education was not the field for me (ironic that I'm teaching again this year, huh?) and decided to look for an opportunity which allowed me to return to Spain. So, here I am!
Like the perfectionist I am, I struggled for some time to come up with an angle/topic/theme for my first blog post because, well, I wanted it to be perfect and captivating (and have people other than my family and friends want to read what I write). And then this morning it hit me: what I want to accomplish when living abroad. This idea came from my good friend Sam (shout out!) recently asking if I had any "goals" for Spain. So, here they are (in no particular order):
- Improve my Spanish: I feel like this is what a lot of people move to a new country to do, right? Despite studying abroad in Spain, majoring in Spanish, and teaching many Spanish-speaking students last year, I would deem my Spanish sub-par. In particular, I struggle the most with actually speaking Spanish (which I blame, in part, on having a Jersey accent, making it difficult to pronounce most words, but really, that's just an excuse). This is the primary reason I chose to move to Spain and probably the most important thing on this list.
- Take a solo trip: Independence is quite important to me, and I've read that travelling alone (especially as a woman) is quite empowering. (My mom will probably worry the entire time.)
- Learn how to cook classic Spanish dishes: I've only recently realized I can cook (or at least follow recipes) so why not increase my repertoire of dishes (which currently consists of, like, four or five).
- Actually immerse myself into Spanish life: I don't want to be that tourist living aboard like I did when I studied abroad. I want to actually be a part of Spanish life.
- Read a book in Spanish: This will probably take me the entire 10 months I'm abroad (P.S. suggestions appreciated!).
- Travel: I don't think anyone moves to Europe to not travel.
Alright, that was a lot for one post. I'm trying to not write the way I talk (a lot and with too much unnecessary detail) so hopefully each post will be an improvement. Once I get it started, I'll also include a link to my personal blog. Thanks for joining in as I begin my adventure abroad (in just three short weeks)!
Hasta luego,


text:
Big Names Battle For First Shootout on Santa Rosa Auto Body NightRick Faeth
By Devin Mayo
Petaluma, CA – March 29th
After a couple of cold and rainy weeks, a warm breeze brought competitors and fans out to Petaluma's Season opener Saturday Night and it's first Pit Stop USA Sprint Shootout of the year sponsored by Santa Rosa Auto Body. 20 cars signed in for the Pit Stop USA Winged 360's with big names such as Rico Abreu & Willie Croft in attendance. It was to no surprise that Andy Forsberg would set quick time of the night with a time of 12.955 with Abreu qualifying second and Klint Simpson in third on a dry, slick track. A three heat race format saw Willie Croft, Brett Rollag, and Billy Aton picking up heat race victories. During the A Main event, Croft, Abreu, Forsberg, Bradley Terrell, and Ryan Robinson sliced and diced through heavy traffic. From 2nd-5th, all of the top 5 would change for position but Willie Croft would hold at bay. The only caution on lap 19 would set up a 6 lap race to finish but it would be Willie Croft holding off the field for his first win of the year at Petaluma and making the weekend sweep after his win at Chico the night before, followed by Abreu, Forsberg, Terrell, and Robinson were the top 5.
The Pit Stop USA spec sprints also made their season debut at Petaluma Speedway. An opening night field of 13 would set up some nice wingless action for the evening. Terry Shank Jr. would claim quicktime for the night. With the heat races set up, Shank would claim the 1st one, continuing his sweep for the evening and a quick Jim Christian would claim the 2nd and final heat race. A Main action begins and Shank would pass 3 cars in with a slide job going into turn 3 to move into the lead on the first lap with Jim Christian following chase. Schank would soon find himself in traffic with Christian following suit. On lap 17, Christian would run over the right rear of a lapped competitor, flipping into turn 3 and ending up over the turn 3 wall. Christian would be able to walk off with no injuries and that crash would end the race early, giving the win to Shank and claiming the weekend sweep as he won the wingless event in Chico the night before. Barry Pries Jr., Brett Barney, Klint Simpson, and Shayna Silvia rounded out the top 5.
The Lumberjack Restaurant Super Stocks were set to do battle on the 3/8th's Adobe Saturday night with a very competitive field. Long time Petaluma runner in the Super Stocks, Shawn McCoy would pick up the 1st heat race and Mitch Machado would pick up the 2nd heat race. Roger Miller would lead the field to green but soon Matt While and Machado would begin to come to the front. In heavy traffic, Machado takes the lead and as soon as he takes it, While makes a 3 wide pass for the lead and would hold Machado off the final 10 laps of the event, with Machado, Woody Woodward, Steve Studabeker, and McCoy rounded out the top 5.
Santa Rosa Auto Bodies 600's fielded a nice 14 car field which saw Jared Morrison and Rick Gutzke winning their heat races. Nick Robfogel would lead the field to the green flag. A couple of cautions would stack up the field but Robfogel had the car to beat and led every lap of the A Main to go on and win the first 600 main event of the year at Petaluma. Last years champion Jim Beck would end up in the runner up spot, Gutzke in 3rd, Rick Alonso in 4th, and Jenna Perkins all earned their first top 5 of the season.
The Petaluma 3/8th's returns this Saturday with the Pit Stop USA Winged 360's, Lumberjack Restaurant Super Stocks, McLea's Tire IMCA Modifieds, General Hydroponics Dwarfs, Jake's Performance Hobbies Mini Stocks. This will be the the first round of racing for the Modifieds, Dwarf cars, and Mini Stocks. For more information, please visitwww.petaluma-speedway.com.

subset: commoncrawl


text:
We usually think of world's fairs as collections of large grandiose events, but talking with colleagues recently, I found myself reminiscing about some of the smaller, impromptu interactions I've had at various pavilions.
I've discovered, when visiting world's fairs in countries where the primary language isn't English, that English speakers get noticed, particularly since many pavilion hosts are perhaps more familiar with English than they are with the local language.
I suspect this was the case when we visited the Philippines Pavilion at Expo 98 in Lisbon, Portugal. Waiting to enter, a staff member approached us asking where we were from. I replied "San Francisco," knowing that I usually get a very positive response. Everyone loves San Francisco, after all.
Her eyes lit up and she responded that she'd "always wanted to visit... Daly City!" This was the first time I've ever gotten this particular reaction, but understandable since Daly City is known for it's large Filipino population.
Daly City is one of the few communities in the United States with a population mostly of Asian descent, but most San Franciscans think of it as an inner suburb with lots of free parking and chain stores.
In many ways, it was a wonderful reminder that living in multi-cultural city like San Francisco can be like living in a world's fair itself.
02 November 2007
Small Moments - Expo 98 Philippines Pavilion
Posted by Urso Chappell at 10:52 AM
Labels: 1982 World's Fair, Daly City, Expo 98, International Exposition, Lisbon, Philippines, Portugal, San Francisco
2 comments:
Urso, Thanks for continue.
My "small moment" would have to be when I left an expensive 35mm camera sitting on the table of the passport stamp station at the West German pavilion at Expo 70. It wasn't until an hour later that I realized it was missing and another hour or so until I retraced my steps back to the West German pavilion. To my relief, there it was, sitting untouched exactly where I had left it. I wonder if that would happen today?
Subscribe to: Post Comments (Atom)


text:
4YourHome Replacement Drive Belt Jockey Tension Pulley Wheel amp; Bracket for Hotpoint Indesit Tumble Dryers
No description (Barcode EAN = 5055516221567).
No description (Barcode EAN = 5055516221567).
The CompareStorePrices.co.uk device is a registered trademark of Advanced System Technologies Limited.
All other trademarks and devices are the property of their respective owners.


text:
Tatooine costume
Two-part outfit for 12" doll (designed for "belly-button" Barbie).
is A-shaped, sleeveless.
Royal blue
is T-shaped and lined. All patterns are hand embroidered with a 1 thread of Anchor mouliné.
Pink, lilac and yellow
hang from the edge of the embroidered crescent. On each tassel is stringed one bronze glass bead.
Both pieces of the costume pull over head.
Used materials
For undergown I used a hand-dyed ponge, which I wanted to crinkle using
Fortuny's pleating method
" - and I ended up with bleached stains...
I completely bleached whole dress, dyed again, wet it, swirled, wrapped up to the kitchen aluminium foil, insert it to the oven (heated up to 100 C) and baked 15 min. After drying there were not any ugly stains...
For the tunic I used a wool/polyester blend, I believe. The lining is from a pale blue habotai.
The tassels I made from a viscose floss.
©molendrix 2004


text:
- Family and Friends
- Games
- Media
- Work
Archive for category hack-the-planet
Converting ひらがな to "hiragana" and カタカナ to "katakana" – Romaji command line tool
Posted by bietiekay in hack-the-planet, N3RD, Software on November 22, 2018
I had this strange problem that my car was not able to display japanese characters when confronted with them. Oh the marvels of inserting a USB stick into a car from 2009.
Now there's no real option I know of without risking to brick the car / entertainment system of the car to get it to display the characters right.
Needless so say that my wifes car does the trick easily – of course it's an asian car!
Anyway. I wrote a command line tool using some awesome pre-made libraries to convert Hiragana-Katakana characters to their romaji counterpart.
You can find it on github: https://github.com/bietiekay/romaji
Join me implementing a neural network to improve accuracy of an OpenSource indoor location tracking system
Posted by bietiekay in Development, hack-the-planet, hacs, home automation, Linux, MQTT, N3RD on December 17, 2017
To all techies reading this:
GIST: I am looking for interested hackers who want to help me implement a neural network that improves the accuracy of bluetooth low energy based indoor location tracking.
Longer version:
I am currently applying the last finishing touched to a house wide bluetooth low energy based location tracking system. (All of which will be opensourced)
The system consists of 10+ ESP-32 Arduino compatible WiFi/Bluetooth system-on-a-chip. At least one per room of a house.
These modules are very low powered and have one task: They scan for BLE advertisements and send the mac and manufacturer data + the RSSI (signal strength) over WiFi into specific MQTT topics.
There is currently a server component that takes this data and calculates a probable location of a seen bluetooth low energy device (like the apple watch I am wearing…). It currently is using a calibration phase to level in on a minimum accuracy. And then simple calculation matrices to identify the most probable location.
This all is very nice but since I got interested in neural networks and KI development – and I think many others might as well – I am asking here for also interested parties to join the effort.
I do have an existing set-up as well as gigabytes of log data.
I know about previous works like "Indoor location tracking system using neural network based on bluetooth"
Now I am totally new to the overal concepts and tooling and I start playing with TensorFlow right now.
If you want to join, let me know by commenting!
making your home smarter use case #14 – prevent fires while charging LiPo batteries
Posted by bietiekay in hack-the-planet, hacs, home automation, N3RD, quadcopter on August 29, 2017
Did you know how dangerous Lithium-Polymer batteries can be? Well, if not treated well they literally burst in flames spontaneously.
So it's quite important to follow a couple of guidelines to not burn down the house.
Since I am just about to start getting into the hobby of FPV quadcopter racing I've tried follow those guidelines and found that the smart house can help me tracking things.
Unfortunately there are not a lot of LiPo chargers available at reasonable price with computer interfaces to be monitored while charging/discharging the batteries. But there are a couple of workarounds I've found useful.
- a proper case. I've got myself one of those "Bat-Safe" boxes that fit a couple of battery packs and help me store them safely. Even if one or many burst into flames the case is going to contain any heat and fire as good as possible and with the air / pressure filter it'll hopefully get rid of most of the very nasty smoke (I hear). Cables go into it, so the actual charging process takes place with everything closed and latched.
- the obvious smoke detector which is on it's own connected to the overall fire alarm is mounted on top, like literally on top. It'll send out the alert to all other smoke alarms in the house making them go beep as well as sending out high priority push notifications to everyone.
- an actual camera is monitoring the box all the time calling on alerts if something is fishy (like making sound, smoke, movement of any sort). When charging is done the charger will beep – this is being caught by the cameras microphones and alerts are sent out.
- the temperature inside the case is monitored all the time. The surrounding temperatures are usually pretty stable as this case is stored in my basement and as the charging goes on the temperatures inside the case will climb up and eventually level out and fall when charging / discharging is done. Now the system basically will look at the temperatures, decide wether it's rising of falling and alerting appropriately.
There's a couple more things to it, like keeping track of charging processes in a calendar as you can see in the flowchart behind all the above.
making your home smarter use case #13 – correlations happen
Posted by bietiekay in hack-the-planet, hacs, Hardware, home automation, N3RD on August 21, 2017
There are a lot of things that happen in the smart house that are connected somehow.
And the smart house knows about those events happening and might suggest, or even act upon the knowledge of them.
A simple example:
In our living room we've got a nice big aquarium which, depending on the time of the day and season, it is simulating it's very own little dusk-till-dawn lightshow for the pleasure of the inhabitants.
Additionally the waterquality is improved by an air-pump generating nice bubbles and enriching the water with oxygen. But that comes a cost: When you are in the room those bubbles and the hissing sound of the inverter for the "sun" produces sounds that are distracting and disturbing to the otherwise quiet room.
Now the smart home comes to the rescue:
It detects that whenever someone is entering the room and staying for longer, or powering up the TV or listening to music. Also it will log that regularly when these things happen also the aquarium air and maybe lights are turned off. Moreso they are turned back on again when the person leaves.
These correlations are what the smart house is using to identify groups of switches, events and actions that are somehow tied together. It'll prepare a report and will recommend actions which at the push of a button can become a routine task always being executed when certain characteristics are lining up.
And since the smart house is a machine, it can look for correlations in a lot more dimensions a human could: Date, Time, Location, Duration, Sensor and Actor values (power up TV, Temperature in room < 22, Calendar = November, Windows closed => turn on the heating).
"making your home smarter" – use case #12 – How much time do I have until…?
Posted by bietiekay in Development, hack-the-planet, hacs, Hardware, N3RD, networking, Software, Work on August 11, 2017
Did you notice that most calendars and timers are missing an important feature. Some information that I personally find most interesting to have readily available.
It's the information about how much time is left until the next appointment is coming up. Even smartwatches, which should should be jack-of-all-trades in regards of time and schedule, do not display the "time until the next event".
Now I came across this shortcoming when I started to look for this information. No digital assistant can tell me right away how much time until a certain event is left.
But the connected house also is based upon open technologies, so one can add these kind of features easily ourselves. My major use cases for this are (a) focussed work, plan quick work-out breaks and of course making sure there's enough time left to actually get enough sleep.
As you can see in the picture attached my watch will always show me the hours (or minutes) left until the next event. I use separate calendars for separate displays – so there's actually one for when I plan to get up and do work-outs.
Having the hours left until something is supposed to happen at a glance – and of course being able to verbally ask through chat or voice in any room of the house how long until the next appointment gives peace of mind :-).
"making your home smarter", use case #11 – money money money
Posted by bietiekay in hack-the-planet, hacs, home automation, Internet, Media, MQTT, N3RD, networking, rocket-science on August 11, 2017
The Internet of Things might as well become your Internet of Money. Some feel the future to be with blockchain related things like BitCoin or Ethereum and they might be right. So long there's also this huge field of personal finances that impacts our lives allday everyday.
And if you get to think about it money has a lot of touch points throughout all situations of our lifes and so it also impacts the smart home.
Lots of sources of information can be accessed today and can help to stay on top of the things going on as well as make concious decisions and plans for the future. To a large extend the information is even available in realtime.
– cost tracking and reporting
– alerting and goal setting
– consumption and resource management
– like fuel oil (get alerted on price changes, …)
– stock monitoring alerting
– and more advanced even automated trading
– bank account monitoring, in- and outbound transactions
– expectations and planning
– budgetting
After all this is about getting away from lock-in applications and freeing your personal financial data and have a all-over dashboard of transactions, plans and status.
"making your home smarter", use case #10 – Fire and Water alarm system
Posted by bietiekay in hack-the-planet, hacs, Hardware, home automation, MQTT, N3RD on August 11, 2017
Water! Fire! Whenever one of those are released uncontrolled inside the house it might mean danger to life and health.
Having a couple of fish and turtle tanks spread out in the house and in addition a server rack in the basement it's important to know when there's a leak of water at moments notice.
As the server-room also is housing some water pumps for a well you got all sorts of dangers mixed in one location: Water and Fire hazard.
To detect water leaks all tanks and the pumps for the well are equipped with water sensors which send out an alerting signal as soon as water is detected. This signal is picked up and pushed to MQTT topics and from there centrally consumed and reacted upon.
Of course the server rack is above the water level so at least there is time to send out alerts while even power is out for the rest of the house (all necessary network and uplink equipment on it's own batteries).
For alerting when there is smoke or a fire, the same logic applies. But for this some loud-as-hell smoke detectors are used. The smoke detectors interconnect with each other and make up a mesh for alerting. If one goes off. All go off. One of them I've connected to it's very own ESP8266 which sends a detected signal to another MQTT topic effectively alerting for the event of a fire.
In one of the pictures you can see what happened when the basement water detector did detect water while the pump was replaced.
"making your home smarter", use case #9 – weights about to drop
Posted by bietiekay in hack-the-planet, hacs, Hardware, home automation, MQTT, N3RD on August 11, 2017
A lot of things in a household have weight, and knowing it's weight might be crucial to health and safety.
Some of those weight applications might tie into this:
– your own body weight over a longer timespan
– the weight of your pets, weighed automatically (like on a kitty litter box)
– the weight of food and ingredients for recipes as well as their caloric and nutrition values
– keeping track of fill-levels on the base of weights
All those things are easily done with connected devices measuring weights. Like the kitty-litter box at our house weighing our cat every time. Or the connected kitchen-scale sending it's gram measurements into an internal MQTT topic which is then displayed and added more smarts through an App on the kitchen-ipad consuming that MQTT messages as well as allowing recipe-weigh-in functions.
It's not only surveillance but pro-active use. There are beekeepers who monitor the weight of their bee hives to see what's what. You can monitor all sorts of things in the garden to get more information about it's wellbeing (any plants, really).
"making your home smarter", use case #8 – it's all about the power consumption
Posted by bietiekay in hack-the-planet, hacs, Hardware, home automation, Software on August 11, 2017
Weekend is laundry time! The smart house knows and sends out notifications when the washing machine or the laundry dryer are done with their job and can be cleared.
Of course this can all be extended with more sensory data, like power consumption measurements at the actual sockets to filter out specific devices much more accurate. But for simple notification-alerting it's apparently sufficient to monitor just at the houses central power distribution rack.
On the sides this kind of monitoring and pattern-matching is also useful to identify devices going bad. Think of monitoring the power consumption of a fridge. When it's compressor goes bad it's going to consume an increasing amount of power over time. You would figure out the malfunction before it happens.
Same for all sorts of pumps (water, oil, aquarium,…).
All this monitoring and pattern matching the smart house does so it's inhabitants don't have to.
"make your home smarter", use case #7 – hear that doorbell ringing!
Posted by bietiekay in hack-the-planet, hacs, Hardware, home automation, MQTT, N3RD, networking, rocket-science on August 11, 2017
We love music. We love it playing loud across the house. And when we did that in the past we missed some things happening around.
Like that delivery guy ringing the front doorbell and us missing an important delivery.
This happened a lot. UNTIL we retrofitted a little PCB to our doorbell circuit to make the house aware of ringing doorbells.
Now everytime the doorbell rings a couple of things can take place.
– push notifications to all devices, screens, watches – that wakes you up even while doing workouts
– pause all audio and video playback in the house
– take a camera shot of who is in front of the door pushing the doorbell
And: It's easy to wire up things whatever those may be in the future.
"make your home smarter", use case #6 – calendars and scheduls
Posted by bietiekay in hack-the-planet, hacs, home automation, N3RD on August 11, 2017
So how do you manage all these sensors and switches, and lights, and displays and speakers…
One way has proven to be very useful and that is by using a standard calendar.
Yes, the one you got right on your smartphone or desktop.
A calendar is a simple manifestation of events in time and thus it can be used to either protocol or schedule events.
So the smart house uses calendars to:
- schedule on/off times for switches, alarms, whatever can be switched
- notes down locations and can react upon locations on schedule or when members of the household arrive/leave those locations based on calendar events
- reminds members in the house on upcoming events
- protocols media playback (what song,…) for later search
- lets members of the house set events through different means like voice, smartphone, …
So what am I using this calendar(s) for? Simple. It's there to track travelling since I know when I was where by simply searching the calendar (screenshot). It's easy to make out patterns and times of things happening since a calendar/timeline view feels natural. Setting on/off times and such is just a bliss if you can make it from your phone in an actual calendar rather than a tedious additional app or interface.
And of course: the house can only be smart about things when it has a way to gather and access that data. Reacting to it's inhabitants upcoming and previous events adds several levels of smartness.
"make your home smarter", use case #5 – the submarine light (it's red!)
Posted by bietiekay in hack-the-planet, hacs, Hardware, High Dynamic Range, home automation, MQTT, N3RD on August 11, 2017
We all know it: After a long day of work you chilled out on your bean bag and fell asleep early. You gotta get up and into your bed upstairs. So usually light goes on, you go upstairs, into bed. And there you have it: You're not sleepy anymore.
Partially this is caused by the light you turned on. If that light is bright enough and has the right color it will wake you up no matter what.
To fight this companies like Apple introduced things like "NightShift" into iPhones, iPads and Macs.
"Night Shift uses your computer's clock and geolocation to determine when it's sunset in your location. It then automatically shifts the colors in your display to the warmer end of the spectrum."
Simple, eh?. Now why does your house not do that to prevent you being ripped out of sleepy state while tiptoeing upstairs?
Right! This is where the smart house will be smart.
Nowadays we've got all those funky LED bulbs that can be dimmed and even their colours set. Why none of those market offerings come with that simple feature is beyond me:
After sunset, when turned on, default dim to something warmer and not so bright in general.
I did implement and it's called appropriately the "U-Boot light". Whenever we roam around the upper floor at night time, the light that follows our steps (it's smart enough to do that) will not go full-blast but light up dim with redish color to prevent wake-up-calls.
The smart part being that it will take into account:
– movement in the house
– sunset and dawn depending on the current geographic location of the house (more on that later, no it does not fly! (yet))
– it'll turn on and off the light according to the path you're walking using the various sensors around anyways
smart home use case #4 – being location aware is important
Posted by bietiekay in hack-the-planet, Hardware, home automation, miataru, Mobile, MQTT, N3RD on August 11, 2017
Now that you got your home entertainment reacting to you making a phone call (use case #1) as well as your current position in the played audiobook (use case #3) you might want to add some more location awareness to your house.
If your house is smart enough to know where you are, outside, inside, in what room, etc. – it might as well react on the spot.
So when you leave/enter the house:
– turn off music playing – pause it and resume when you come back
– shutdown unnecessary equipment to limit power consumption when not used and start-back up to the previous state (tvs, media centers, lights, heating) when back
– arm the cameras and motion sensors
– start to run bandwidth intense tasks when no people using resources inside the house (like backing up machines, running updates)
– let the roomba do it's thing
– switch communication coming from the house into different states since it's different for notifications, managing lists and spoken commands and so on.
There's a lot of things that that benefit from location awareness.
Bonus points for outside house awareness and representing that like a "Weasly clock"…"xxx is currently at work".
Bonus points combo breaker for using an open-source service like Miataru (http://miataru.com/#tabr3) for location tracking outside the house.
use case #3 – sonos auto bookmarker for audiobooks and podcasts
Posted by bietiekay in books, hack-the-planet, home automation, Linux, Media, MQTT, Music, N3RD, SONOS on August 11, 2017
So you're listening to this audio book for a while now, it's quite long but really thrilling. In fact it's too long for you to go through in one sitting. So you pause it and eventually listen to it on multiple devices.
We've got SONOS in our house and we're using it extensively. Nice thing, all that connected goodness. It's just short of some smart features. Like remembering where you paused and resuming a long audio book at the exact position you stopped the last time. Everytime you would play a different title it would reset the play-position and not remember where you where.
With some simple steps the house will know the state of all players it has. Not only SONOS but maybe also your VCR or Mediacenter (later use-case coming up!).
Putting together the strings and you get this:
Whenever there's a title being played longer than 10 minutes and it's paused or stopped the smart house will remember who, where and what has been played and the position you've been at.
Whenever that person then is resuming playback the house will know where to seek to. It'll resume playback, on any system that is supported at that exact position.
Makes listening to these things just so much easier.
Bonus points for a mobile app that does the same thing but just on your phone. Park the car, go into the house, audiobook will continue playback, just now in the house instead of the car. The data is there, why not make use of it?
p.s.: big part of that I've opensourced years ago: https://github.com/bietiekay/sonos-auto-bookmarker
"making your home smarter", use case #2 – measure how much oil is burned
"making your home smarter", use case #2
know how much oil your house burns with just measuring the light of the furnace going on/off and calculating oil throughput of the valves with burn-time.
Over the period of 1 year it's as accurate as +/- 20 liters of oil.
"making your home smarter", use case #1
Stop all audio/video currently playing in the house automatically when there's a phone call made and turn it back on afterwards.
Bonus points for just turning on/off in the room the call is being made.
How to weigh your cat! – the IoT version
Posted by bietiekay in Development, hack-the-planet, hacs, Hardware, Internet, Linux, Modding, MQTT, N3RD, RaspberryPi, Reallife, Software, Uncategorized on September 13, 2016
This is Leela. She is a 7 year old lilac white British short hair cat that lives with us. Leela had a sister who used to live with us as well but she developed a heart condition and passed away last year. Witnessing how quickly such conditions develop and evaluate we thought that we can do something to monitor Leelas health a bit to just have some sort of pre-alert if something is changing.
Kid in a Candystore
As this Internet of Things is becoming a real thing these days I found myself in a candy store when I've encountered that there are a couple of really really cheap options to get a small PCB with input/output connectors into my house WiFi network.
One of the main actors of this story is the so called ESP8266. A very small and affordable system-on-a-chip that allows you to run small code portions and connect itself to a wireless network. Even better it comes with several inputs that can be used to do all sorts of wonderful things.
And so it happened that we needed to know the weight of our cat. She seemed to get a bit chubby over time and having a point of reference weight would help to get her back in shape. If you every tried to weigh a cat you know that it's much easier said than done.
The alternative was quickly brought up: Build a WiFi-connected scale to weigh her litter box every time she is using it. And since I've recently bought an evaluation ESP8266 I just had to figure out how to build a scale. Looking around the house I've found a broken human scale (electronics fried). Maybe it could be salvaged as a part donor?
A day later I've done all the reading on that there is a thing called "load-cell". Those load cells can be bought in different shapes and sizes and – when connected to a small ADC they deliver – well – a weight value.
I cracked the human scale open and tried to see what was broken. It luckily turned out to have completely fried electronics but the load-cells where good to go.
Look at this load cell:
That brought down the part list of this project to:
- an ESP8266 – an Adafruit Huzzah in my case
- a HX711 ADC board to amplify and prepare the signal from the load-cells
- a human scale with just enough space in the original case to fit the new electronics into and connect everything.
The HX711 board was the only thing I had to order hardware wise – delivered the next day and it was a matter of soldering things together and throwing in a small Arduino IDE sketch.
My soldering and wiring skills are really sub-par. But it worked from the get-go. I was able to set-up a small Arduino sketch and get measurements from the load-cells that seemed reasonable.
Now the hardware was all done – almost too easy. The software would be the important part now. In order to create something flexible I needed to make an important decision: How would the scale tell the world about it's findings?
Two basic options: PULL or PUSH?
Pull would mean that the ESP8266 would offer a webservice or at least web-server that exposes the measurements in one way or the other. It would mean that a client needs to poll for a new number in regular intervals.
Push would mean that the ESP8266 would connect to a server somewhere and whenever there's a meaningful measurement done it would send that out to the server. With this option there would be another decision of which technology to use to push the data out.
Now a bit of history: At that time I was just about to re-implement the whole house home automation system I was using for the last 6 years with some more modern/interoperable technologies. For that project I've made the decision to have all events (actors and sensors) as well as some additional information being channeled into MQTT topics.
Let's refer to Wikipedia on this:
"MQTT1 (formerly MQ Telemetry Transport) is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based "lightweight" messaging protocol for use on top of the TCP/IP protocol. It is designed for connections with remote locations where a "small code footprint" is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker. Thebroker is responsible for distributing messages to interested clients based on the topic of a message. Andy Stanford-Clark and Arlen Nipper of Cirrus Link Solutions authored the first version of the protocol in 1999."
Something build for oil-pipelines can't be wrong for your house – can it?
So MQTT uses the notation of a "topic" to sub-address different entities within it's network. Think of a topic as just a simple address like "house/litterbox/weight". And with that topic MQTT allows you to set a value as well.
The alternative to MQTT would have been things like WebSockets to push events out to clients. The decision for the home-automation was done towards MQTT and so far it seems to have been the right call. More and more products and projects available are also focussing on using MQTT as their main message transport.
For the home automation I had already set-up a demo MQTT broker in the house – and so naturally the first call for the litterbox project was to utilize that.
The folks of Adafruit provide the MQTT library with their hardware and within minutes the scale started to send it's measurements into the "house/litterbox/weight" topic of the house MQTT broker.
Some tweaking and hacking later the litterbox was put together and the actual litterbox set on-top.
Since Adafruit offers platform to also send MQTT messages towards and create neat little dashboards I have set-up a little demo dashboard that shows a selection of data being pushed from the house MQTT broker to the Adafruit.io MQTT broker.
These are the raw values which are sent into the weight topic:
You can access it here: https://io.adafruit.com/bietiekay/stappenbach
So the implementation done and used now is very simple. On start-up the ESP8622 initialises and resets the weight to 0. It'll then do frequent weight measurements at the rate it's configured in the source code. Those weight measurements are being monitored for certain criteria: If there's a sudden increase it is assumed that "the cat entered the litterbox". The weight is then monitored and averaged over time. When there's a sudden drop of weight below a threshold that last "high" measurement is taken as the actual cat weight and sent out to a /weight topic on MQTT. The regular measurements are sent separately to also a configurable MQTT topic.
You can grab the very ugly source code of the Arduino sketch here: litterbox_sourcecode
And off course with a bit of logic this would be the calculated weight topic:
Of course it is not enough to just send data into MQTT topics and be done with it. Of course you want things like logging and data storage. Eventually we also wanted to get some sort of notification when states change or a measurement was taken.
MQTT, the cloud and self-hosted
Since MQTT is enabling a lot of scenarios to implement such actions I am going to touch just the two we are using for our house.
- We wanted to get a push notification to our phones whenever a weight measurement was taken – essentially whenever the cat has done something in the litterbox. The easiest solution: Set-Up a recipe on If This Than That (IFTTT) and use PushOver to send out push notifications to whatever device we want.
- To log and monitor in some sort of a dashboard the easiest solution seemed to be Adafruits offer. Of course hosted inside our house a combination of InfluxDB to store, Telegraf to gather and insert into InfluxDB and Chronograf to render nice graphs was the best choice.
Since most of the above can be done in the cloud (as of: outside the house with MQTT being the channel out) or inside the house with everything self-hosted. Some additional articles will cover these topics on this blog later.
There's lots of opportunity to add more logic but as far as our experiments and requirements go we are happy with the results so far – we now regularly get a weight and the added information of how often the cat is using her litterbox. Especially for some medical conditions this is quite interesting and important information to have.
the xenim streaming network SONOS integration now plays recent shows!
Since I am frequently using the xenim streaming network service but I was missing out on the functionality to replay recent shows. With the wonderful functionality of Re-Live made available through ReliveBot I have now added this replay feature and I am using it a lot since.
Within the SONOS controller app it looks like this:
To set-up this service with your SONOS set-up just follow the instructions shown here: a new Music Service for SONOS
Source 1: xenim streaming network
Source 2: ReliveBot
Source 3: Download the Custom Service
Source 4: a new Music Service for SONOS
I wish there was: cheap network microphones with open source speech recognition
Posted by bietiekay in artificial intelligence, hack-the-planet, Hardware, Internet, Media, N3RD, Software on February 25, 2015
I was on a business trip the other day and the office space of that company was very very nice. So nice that they had all sorts of automation going on to help the people.
For example when you would run into a room where there's no light the system would light up the room for you when it senses your presence. Very nice!
There was some lag between me entering the room, being detected and the light powering up. So while running into a dark room, knowing I would be detected and soon there would be light, I shouted "Computer! Light!" while running in.
That StarTrek reference brought an old idea back that it would be so nice to be able to control things through omnipresent speech recognition.
I am aware that there's Siri, Cortana, Google Now. But those things are creepy because they involve external companies. If there are things listening to me all day every day, I want them to be within the premise of the house. I want to know exactly down to the data flow what is going on and sent where. I do not want to have this stuff leave the house at any times. Apart from that those services are working okayish but well…
Let alone the hardware. Usually the existing assistants are carried around in smart phones and such. Very nice if you want to touch things prior to talking to them. I don't want to. And no, "Hey Siri!" or "OK Google" is not really what I mean. Those things are not sophisticated enough yet. I was using "Hey Siri!" for less than 24 hours. Because in the first night it seemed to have picked up something going on while I was sleeping which made it go full volume "How can I help!" on me. Yes, there's no "don't listen when I am sleeping" thing. Oh it does not know when I am sleeping. Well, you see: Why not?
Anyway. What I wish there was:
- cheap hardware – a microphone(-array) possibly to put into every room. It either needs to have WiFi or LAN. Something that connects it to the network. A device that is carried around is not enough.
- open source speech recognition – everything that is collected by the microphone is processed through an open source speech recognition tool. Full text dictation is a bonus, more importantly heavy-duty command recognition and simple interactions.
- open source text to speech – to answer back, if wanted
And all that should be working on a basic level without internet access. Just like that.
So? Any volunteers?
31st Chaos Communication Congress
Posted by bietiekay in hack-the-planet, hackerspace, Internet, Media, Meetings, N3RD on January 2, 2015
Like every year the Chaos Communication Congress gathered thousands of people in one place between the Christmas-Holidays and NewYears.
Since I was out-of-order this year to attend I've opted for the Attending-by-Stream option. All Lectures are live-streamed by the awesome CCC Video Operations Center (C3VOC) and made available as recordings afterwards.
Since the choice of topics is enormous here are some I can recommend:
- Inside Field Station Berlin Teufelsberg
- Beyond PNR: Exploring airline systems
- Fnord News Show
- 10 Jahre OpenStreetMap
- "Wir beteiligen uns aktiv an den Diskussionen"
- Uncaging Microchips
- Fernvale: An Open Hardware and Software Platform, Based on the (nominally) Closed-Source MT6260 SoC
- Hard Drive Punch
- Traue keinem Scan, den du nicht selbst gefälscht hast
- Ich sehe, also bin ich … Du
- Forging the USB memory
- Rocket science – how hard can it be?
Source 1: http://events.ccc.de/congress/2014/wiki/Static:Main_Page
Source 2: http://en.wikipedia.org/wiki/Chaos_Communication_Congress
Source 3: http://c3voc.de/
Source 4: http://media.ccc.de/browse/congress/2014/
Unlock PDF files
Posted by bietiekay in books, hack-the-planet, Media, N3RD on September 27, 2014
The next time you stumble across a PDF file with security and not allowing you to print or copy/paste.
Do this:
qpdf –decrypt
"QPDF is a command-line program that does structural, content-preserving transformations on PDF files. It could have been called something like pdf-to-pdf. It also provides many useful capabilities to developers of PDF-producing software or for people who just want to look at the innards of a PDF file to learn more about how they work.
QPDF is capable of creating linearized (also known as web-optimized) files and encrypted files. It is also capable of converting PDF files with object streams (also known as compressed objects) to files with no compressed objects or to generate object streams from files that don't have them (or even those that already do). QPDF also supports a special mode designed to allow you to edit the content of PDF files in a text editor. For more details, please see the documentation links below.
QPDF includes support for merging and splitting PDFs through the ability to copy objects from one PDF file into another and to manipulate the list of pages in a PDF file. The QPDF library also makes it possible for you to create PDF files from scratch. In this mode, you are responsible for supplying all the contents of the file, while the QPDF library takes care off all the syntactical representation of the objects, creation of cross references tables and, if you use them, object streams, encryption, linearization, and other syntactic details.
QPDF is not a PDF content creation library, a PDF viewer, or a program capable of converting PDF into other formats. In particular, QPDF knows nothing about the semantics of PDF content streams. If you are looking for something that can do that, you should look elsewhere. However, once you have a valid PDF file, QPDF can be used to transform that file in ways perhaps your original PDF creation can't handle. For example, programs generate simple PDF files but can't password-protect them, web-optimize them, or perform other transformations of that type."
Source 1: http://qpdf.sourceforge.net/
Source 2: https://github.com/qpdf/qpdf
a new Music Service for SONOS: xenim streaming network
Posted by bietiekay in hack-the-planet, home automation, Internet, Media, Radio, RaspberryPi, Software, SONOS on August 19, 2014
I am a frequent podcast live-stream listener. And being that I am enjoying the awesome service called xenim streaming network.
Any Podcast producer can join the xsn and with that can live-stream his own Podcast while recording. It's CDN is based on voluntarily provided resources and pretty rock-solid as far as my experience with it goes.
Since I am a frequent user of this – and I've got that gorgeous SONOS hardware scattered around my house – I thought I need to have that service integrated into my SONOS set.
The SONOS system knows the concept of "Music Services". There are quite a lot of them but xsn is missing. But SONOS is awesome and they got an API!
Unfortunately the API documentation is hidden behind a NDA wall so that would be a no-go. What's not hidden is what the SONOS controllers have to discuss with all the existing services. Most of the time these do not use HTTPS so we're free to listen to the chatters. I did just that and was able, for the sake of interoperability, to reverse engineer the SONOS SMAPI as far as it is necessary to make my little xsn Music Service work.
As usual you can get the source-code distributed freely through Github. If you're not into that sort of compiling and programming things, you are invited to use my free-of-charge provided service. To set it up on your home SONOS just follow these simple steps:
Step 1: Start your SONOS Controller Application and find out the IP address of your SONOS.
Click on "About My Sonos System" and check the IP address written next to the "Associated ZP".
Step 2: Add the xsn Music Service.
By opening a browser window and browsing to: http://<your-associated-zp-ip>:1400/customsd.htm
When you're there – fill out the fields as below. The SID is either 255, or if you used that previously, something between 240-253. The service name is "xenim streaming network". The Endpoint URL and Secure Endpoint URL both are http://xsn.schrankmonster.de/xsn
Set the Polling interval to 30 seconds. Click on the Anonymous Authentication SOAP header policy and you're good to go. Click on "send" to finish.
Step 3: Add the new Music Service to your SONOS Controller.
Click on "Add Music Services" and click through until you see "xenim streaming network". Add the service and you're set!
p.s.: It's normal that the service icon is a question mark.
Step 4: Enjoy Live Podcasts!
Source 1: https://github.com/bietiekay/sonos-xsn-service
Source 2: http://streams.xenim.org/
Nitrous – full IDE in your browser – with Collaboration!
Posted by bietiekay in Development, hack-the-planet, Hardware, Linux, miataru, N3RD, networking, Software, Work on July 6, 2014
"Nitrous is a backend development platform which helps software developers save time by cutting out the repetitive parts of creating development environments and automating them.
Once you create your first development environment, there are many features which will make development easier."
So what you're getting is:
- a virtual machine operated for you and set-up with a single click
- A full-featured IDE in your browser
- Code-Collaboration by inviting others to edit your project
- a debugging environment in which you can test-run and work with your code
Here are some screenshots to get you a feel for it:
Source: https://www.nitrous.io/
How to get a list of all recent Podcasts on SONOS
Posted by bietiekay in hack-the-planet, Internet, Linux, Media, N3RD, RaspberryPi, SONOS on July 2, 2014
I am using an external podcast download tool to stay updated on all podcasts I subscribed to. For this purpose SubSonic is a good choice – actually for a lot more also.
One of the quirks of the SONOS products is that Podcasts are not really well supported. In fact there is no support at all.
So I wrote a tool that extends the SONOS players with the functionality to "remember" play positions within audiobooks and podcasts. Now what's left to properly have podcasts supported is a view of the most recently updated podcasts. Wouldn't it be nice to have a "Folder View" in the SONOS controller of what's new across all the different podcasts you are subscribed to?
Now here's the trick:
Use a small script on any RaspberryPi in the house to dynamically create hardlinks to the podcasts files in a "Recently Updated Podcasts" folder.
The script is something like this:
find /where-your-podcasts-are/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort | tail -n 25 | cut -c 32- | sed -e "s/^/ln \"/" -e "s/$/\"/" -e "s/$/ \"\/recentPodcasts\/\"/" | sh
This short line will go through all folders and subfolders in /where-your-podcasts-are/ and then create Hardlinks in /recentPodcasts to the most recent 25 files.
That way, and when /recentPodcasts/ is made accessible to your SONOS controllers, you'll have something like this:
Source 1: http://www.subsonic.org
Source 2: play position bookmarker
Boblight Alternative: Hyperion
Posted by bietiekay in hack-the-planet, Hardware, Linux, N3RD, RaspberryPi, Software on June 28, 2014
After setting up Boblight on two TVs in the house – one with 50 and one with 100 LEDs – I've used it for the last 5 months on a daily basis almost.
First of all now every screen that does not come with "added color-context" on the wall seems off. It feels like something is missing. Second of all it has made watching movies in a dark room much more enjoyable.
The only concerning factor of the past months was that the RaspberryPi does not come with a lot of computational horse-power and thus it has been operating at it's limits all the time. With 95-99% CPU usage there's not a lot of headroom for unexpected bitrate spikes and what-have-you.
So from time to time the Pis where struggling. With 10% CPU usage for the 50 LEDs and 19% CPU usage for the 100 LEDs set-up there was just not enough CPU power for some movies or TV streams in Full-HD.
So since even overclocking only slightly improved the problem of Boblight using up the precious CPU cycles for a fancy light-show I started looking around for alternatives.
"Hyperion is an opensource 'AmbiLight' implementation controlled using the RaspBerry Pi running Raspbmc. The main features of Hyperion are:
- Low CPU load. For a led string of 50 leds the CPU usage will typically be below 1.5% on a non-overclocked Pi.
- Json interface which allows easy integration into scripts.
- A command line utility allows easy testing and configuration of the color transforms (Transformation settings are not preserved over a restart at the moment…).
- Priority channels are not coupled to a specific led data provider which means that a provider can post led data and leave without the need to maintain a connection to Hyperion. This is ideal for a remote application (like our Android app).
- HyperCon. A tool which helps generate a Hyperion configuration file.
- XBMC-checker which checks the playing status of XBMC and decides whether or not to capture the screen.
- Black border detector.
- A scriptable effect engine.
- Generic software architecture to support new devices and new algorithms easily.
More information can be found on the wiki or the Hyperion topic on the Raspbmc forum."
Especially the Low CPU load did raise interest in my side.
Setting Hyperion up is easy if you just follow the very straight-forward Installation Guide. On Raspbmc the set-up took me 2 minutes at most.
If you got everything set-up on the Pi you need to generate a configuration file. It's a nice JSON formatted config file that you do not need to create on your own – Hyperion has a nice configuration tool. Hypercon:
So after 2 more minutes the whole thing was set-up and running. Another 15 minutes of tweaking here and there and Hyperion replaced Boblight entirely.
What have I found so far?
- Hyperions network interfaces are much more controllable than those from Boblight. You can use remote clients like on iPhone / Android to set colors and/or patterns.
- It's got effects for screen-saving / mood-lighting!
- It really just uses a lot less CPU resources. Instead of 19% CPU usage for 100 LEDs it's down to 3-4%. That's what I call a major improvement
- The processing filters that you can add really add value. Smoothing everything so that you do not get bright flashed when content flashes on-screen is easy to do and really helps with the experience.
All in all Hyperion is a recommended replacement for boblight. I would not want to switch back.
Source 1: Setting up Boblight
Source 2: https://github.com/tvdzwan/hyperion/wiki/Installation
using the RaspberryPi to make all SONOS speakers support Apple Airplay
Posted by bietiekay in Apple, hack-the-planet, home automation, Media, Music, music-of-the-day, N3RD, networking, RaspberryPi, Software, SONOS on June 25, 2014
Airplay allows you to conveniently play music and videos over the air from your iOS or Mac OS X devices on remote speakers.
Since we just recently "migrated" almost all audio equipment in the house to SONOS multi-room audio we were missing a bit the convenience of just pushing a button on the iPad or iPhones to stream audio from those devices inside the household.
To retrofit the Airplay functionality there are two options I know of:
1: Get Airplay compatible hardware and connect it to a SONOS Input.
You have to get Airplay hardware (like the Airport Express/Extreme,…) and attach it physically to one of the inputs of your SONOS Set-Up. Typically you will need a SONOS Play:5 which has an analog input jack.
2: Set-Up a RaspberryPi with NodeJS + AirSonos as a software-only solution
You will need a stock RaspberryPi online in your home network. Of course this can run on virtually any other device or hardware that can run NodeJS. For the Pi setting it up is a fairly straight-forward process:
You start with a vanilla Raspbian Image. Update everything with:
sudo apt-get update
sudo apt-get upgrade
Then install NodeJS according to this short tutorial. To set-up the AirSonos software you will need to install additional avahi software. Especially this was needed for my install:
sudo apt-get install git-all libavahi-compat-libdnssd-dev
You then need to get the AirSonos software:
sudo npm install airsonos -g
After some minutes of wait time and hard work by the Pi you will be able to start AirSonos.
sudo airsonos
And it'll come up with an enumeration of all active rooms.
And on all your devices it'll show up like this:
Brackets: a multi-platform editor written in javascript – including NodeJS
Posted by bietiekay in hack-the-planet, N3RD, Software on March 31, 2014
"Brackets is an open source code editor for web designers and front-end developers."
On the first tries it's an awesome thing to have all that JavaScript debugging, Live HTML editing and what-not in one place. Give it a spin.
Source 1: http://brackets.io/
weave your net of things that have internet…ehm – internet of things
Posted by bietiekay in hack-the-planet, hacs, home automation, N3RD, networking, RaspberryPi on March 30, 2014
"The internet of things" is a buzzword used more and more. It means that things around you are connected to the (inter)network and therefore can talk to each other and, when combined, offer fantastic new opportunities.
Yeah right.
So NodeRed is a NodeJS based toolset that allows you to create so called "flows" (see picture above). Those flows determine what reacts and happens when things happen. Fantastic, told you!
Source 1: http://nodered.org/
Source 2: http://en.wikipedia.org/wiki/Internet_of_ThingsSource 3: http://nodejs.org/
I give you: the SONOS Audiobook / Podcast Auto Bookmarker – never lose your Listening Progress again…
Posted by bietiekay in hack-the-planet, Music, N3RD, SONOS on March 23, 2014
Since the SONOS system I've bought turned out to be highly hackable I've spent some quality-time this weekend fixing the worst downside I've found so far that the SONOS system had for me
I am listening to a lot of Podcasts and Audiobooks. And it turns out that those two Genre are not particularly good supported by SONOS. When you're listening to a 4 hour podcast and you stop it to play a song in between (since you stretch the listening of that podcast to several days) the next time you start that 4 hour podcast the SONOS system did not remember the position that you stopped at the last time and restarts the podcast from the beginning.
If you did not remember where you left of the last time, you're lost. The same goes for Audiobooks.
Now this is the first feature I am teaching my SONOS system. And I am opensourcing it so you can do it as well.
Everything you need can be run on a RaspberryPi:
- You need NodeJS and node-sonos-http-api installed and running.
- You need MONO and sonos-auto-bookmarker (change the configuration.json file in bin/Debug after you xbuilded the .sln file)
Now the Auto Bookmarker Tool will, with the help of the sonos-http-api, monitor your household and whenever something longer than 10 minutes is played and stopped it bookmarks the last played position. Whenever you restart that track it will then seek to the last known position automatically.
Source 1: https://github.com/bietiekay/sonos-auto-bookmarker
Let the SONOS hacking begin!
I always wanted a networked multi-room audio solution as you can easily see here and here and here and here. Now it seems I've finally found something that integrates very well into our music listening habits and our infrastructure. And on top of that it turned out to be highly hackable.
I've went with SONOS for that multi-room solution. After trying two speakers for two rooms I've invested the budget into the full-house solution (not all speakers on below picture). And finally everything is as I always wanted.
Be warned: If you buy one speaker, you will definitly buy more.
So what's in those boxes? Besides beautiful and high-quality speakers there's a 250 Mhz linux powered computer inside each speaker. It got 64Mbytes of memory and wireless adapters to span it's own wireless mesh network (hidden by default).
Each speaker on it's own can be controlled and accessed through the SONOS controller applications (Windows/Mac/iOS/Android) or through several tools that open up new possibilities.
There will be more articles coming on the topic of hacking SONOS, adding functionality and using it for things not officially planned for by the manufacturer. Joy!
- SONOS Autobookmarker Tool: Remembers the position in audiobooks and podcasts for you – extending SONOS
- AirPlay for SONOS
- Recently updated Podcasts overview in your SONOS
Source 1: http://splok.org/sonos_interface
setting up boblight with a Raspberry Pi and RaspBMC
Some might know AmbiLight – a great invention by Philips that projects colored light around a TV screen based upon the contents shown. It's a great addition to a TV but naturally only available with Philips TV sets.
Not anymore. There are several open-source projects that allow you to build your very own AmbiLight clone. I've built one using a 50-LEDs WS2801 stripe, a 5V/10A power supply, a RaspberryPi, and the BobLight integration in RaspBMC (this is a nice XBMC distribution for the Pi).
"Boblight is a collection of tools for driving lights connected to an external controller.
Its main purpose is to create light effects from an external input, such as a video stream (desktop capture, video player, tv card), an audio stream (jack, alsa), or user input (lirc, http). Boblight uses a client/server model, where clients are responsible for translating an external input to light data, and boblightd is responsible for translating the light data into commands for external light controllers."
The hardware to start with looks like this:
I've fitted some heat-sinks to the Pi since the additional load of controlling 50 LEDs will add a little bit of additional CPU usage which is desperately needed when playing Full HD High-Bitrate content.
The puzzle pieces need to be put together as described by the very good AdaFruit diagram:
As you can see the Pi is powered directly through the GPIO pins. You're not going to use the MicroUSB or the USB ports to power the Pi. It's important that you keep the cables between the Pi and the LEDs as short as possible. When I added longer / unshielded cables everything went flickering. You do not want that – so short cables it is 🙂
When you look at aboves picture closely you will find a CO and DO on the PCB of the LED. on the other side of the PCB there's a CI and DI. Guess what: That means Clock IN and Clock OUT and Data IN and Data OUT. Don't be mistaken by the adapter cables the LED stripes comes with. My Output socket looked damn close to something I thought was an Input socket. If nothing seems to work on the first trials – you're holding it wrong! Don't let the adapters fitted by the manufacturer mislead you.
Depending on the manufacturer of your particular LED stripe there are layouts different from the above image possible. Since RaspBMC is bundled with Boblight already you want to use something that is compatible with Boblight. Something that allows Boblight to control each LED in color and brightness separately.
I opted for WS2801 equipped LEDs. This pretty much means that each LED sits on it's own WS2801 chip and that chip takes commands for color and brightness. There are other options as well – I hear that LDP8806 chips also work with Boblight.
My power supply got a little big to beefy – 10 Amps is plenty. I originally planned to have 100 LEDs on that single TV. Each LED at full white brightness would consume 60mA – which brings us to 6Amps for a 100 – add to that the 2 Amps for the PI and you're at 8A. So 10A was the choice.
To connect to the Pi GPIO Pins I used simple jumper wires. After a little bit of boblightd compilation on a vanilla Raspbian SD card (how-to here). Please note that with current RaspBMC versions you do not need to compile Boblight yourself – I've just taken for debugging purposes as clean Raspbian Image and compiled it myself to do some boblight-constant tests. Boblight-constant is a tool that comes with Boblight which allows you to set all LEDs to one color.
If everything is right, it should look like this:
Now everything depends on how your LED stripes look like and how your TVs backside looks like. I wanted to fit my setup to a 42″ Samsung TV. This one already is fitted with a Ultra-Slim Wall mount which makes it pretty much sitting flat on the wall like a picture. I wanted the LEDs to sit right on the TVs back and I figured that cable channels when cut would do the job pretty nicely.
To get RaspBMC working with your setup the only things you need to do are:
- Enable Boblight support in the Applications / RaspBMC tool
- Login to your RaspBMC Pi through SSH with the user pi password raspberry and copy your boblight.conf file to /etc/boblight.conf.
The configuration file can be obtained from the various tutorials that deal with the boblight configuration. You can choose the hard way to create a configuration or a rather easy one by using the boblight configuration tool.
I've used the tool 🙂
Now if everything went right you don't have flickering, the TV is on the wall and you can watch movies and what-not with beautiful light effects around your TV screen. If you need to test your set-up to tweak it a bit more, go with this or this.
Source 1: http://en.wikipedia.org/wiki/Ambilight
Source 2: http://www.raspberrypi.org/
Source 3: https://code.google.com/p/boblight/
Source 4: http://www.raspbmc.com/
Source 5: http://learn.adafruit.com/light-painting-with-raspberry-pi/hardware
Source 6: How-To-Compile-Boblight
Source 7: Boblight Config Generator
Source 8: Boblight Windows Config Creation Tool
Source 9: Test-Video 1
Source 10: Test-Video 2
Instruction-less computing: Doing stuff with a CPU without actually executing instructions
Posted by bietiekay in hack-the-planet, Hardware on November 4, 2013
Having fun with hardware is a good way to learn about the machines which soon will become our new overlords. With this pretty interesting presentation you can dive deep into what a CPU does and how it can be exploited to run code by not running it.
"Trust Analysis, i.e. determining that a system will not execute some class of computations, typically assumes that all computation is captured by an instruction trace. We show that powerful computation on x86 processors is possible without executing any CPU instructions. We demonstrate a Turing-complete execution environment driven solely by the IA32 architecture's interrupt handling and memory translation tables, in which the processor is trapped in a series of page faults and double faults, without ever successfully dispatching any instructions. The "hard-wired" logic of handling these faults is used to perform arithmetic and logic primitives, as well as memory reads and writes. This mechanism can also perform branches and loops if the memory is set up and mapped just right. We discuss the lessons of this execution model for future trustworthy architectures."
Source 1: https://www.usenix.org/conference/woot13/page-fault-weird-machine-lessons-instruction-less-computation
when DVB-T is not interesting, use the hardware for fun and SDR!
Posted by bietiekay in hack-the-planet, Hardware, Linux on November 2, 2013
SDR – or Software Defined Radio is relatively cheap and fun way to dive deeper into radio communication.
"Software-defined radio (SDR) is a radio communication system where components that have been typically implemented in hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors, etc.) are instead implemented by means of software on a personal computer or embedded system. While the concept of SDR is not new, the rapidly evolving capabilities of digital electronics render practical many processes which used to be only theoretically possible." (Wikipedia)
So with cheap hardware it's possible to receive radio transmissions on all sorts of frequencies and modulations. Since everything after the actual "receiving stuff"-phase happens in software the things you can do are sort of limitless.
Now what about the relatively cheap factor? – The hardware you're going to need to start with this is a DVB-T USB stick widely available for about 25 Euro. The important feature you're going to look for is that it comes with a Realtek RTL2832U chip.
"The RTL2832U is a high-performance DVB-T COFDM demodulator that supports a USB 2.0 interface. The RTL2832U complies with NorDig Unified 1.0.3, D-Book 5.0, and EN300 744 (ETSI Specification). It supports 2K or 8K mode with 6, 7, and 8MHz bandwidth. Modulation parameters, e.g., code rate, and guard interval, are automatically detected.
The RTL2832U supports tuners at IF (Intermediate Frequency, 36.125MHz), low-IF (4.57MHz), or Zero-IF output using a 28.8MHz crystal, and includes FM/DAB/DAB+ Radio Support. Embedded with an advanced ADC (Analog-to-Digital Converter), the RTL2832U features high stability in portable reception." (RealTek)
You'll find this chip in all sorts of cheap DVB-T USB sticks like this one:
To use the hardware directly you can use open source software which comes pre-packaged with several important/widely used demodulator moduls like AM/FM. Gqrx SDR is available for all sorts of operating systems and comes with a nice user interface to control your SDR hardware.
The neat idea about SDR is that you, depending on the capabilities of your SDR hardware, are not only tuned into one specific frequency but a whole spectrum several Mhz wide. With my device I get roughly a full 2 Mhz wide spectrum out of the device allowing me to see several FM stations on one spectrum diagram and tune into them individually using the demodulators:
The above screenshot shows the OS X version of Gqrx tuned into an FM station. You can clearly see the 3 stations that I can receive in that Mhz range. One very strong signal, one very weak and one sort of in the middle. By just clicking there the SDR tool decodes this portion of the data stream / spectrum and you can listen to a FM radio station.
Of course – since those DVB-T sticks come with a wide spectrum useable – mine comes with an Elonics E4000 tuner which allows me to receive – more or less useable – 53 Mhz to 2188 Mhz (with a gap from 1095 to 1248 Mhz).
Whatever your hardware can do can be tested by using the rtl_test tool:
root@berry:~# rtl_test -t
Found 1 device(s):
0: Terratec T Stick PLUS
Using device 0: Terratec T Stick PLUS
Found Elonics E4000 tuner
Supported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0
Benchmarking E4000 PLL…
[E4K] PLL not locked for 52000000 Hz!
[E4K] PLL not locked for 2189000000 Hz!
[E4K] PLL not locked for 1095000000 Hz!
[E4K] PLL not locked for 1248000000 Hz!
E4K range: 53 to 2188 MHz
E4K L-band gap: 1095 to 1248 MHz
Interestingly when you plug the USB stick into an Raspberry Pi and you follow some instructions you can use the Raspberry Pi as an SDR server allowing you to place it on the attic while still sitting comfortably at your computer downstairs to have better reception.
If you want to upgrade your experience with more professional hardware – and in fact if you got a sender license – you can take a look at the HackRF project which currently is creating a highly sophisticated SDR hardware+software solution:
Source 1: http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=35&Level=4&Conn=3&ProdID=257
Source 2: http://gqrx.dk/
Source 3: www.hamradioscience.com/raspberry-pi-as-remote-server-for-rtl2832u-sdr/
Source 4: http://ossmann.blogspot.de/2012/06/introducing-hackrf.html
Source 5: https://github.com/mossmann/hackrf
Miataru for iOS is available in the iOS AppStore
Posted by bietiekay in Apple, hack-the-planet, miataru, N3RD on October 12, 2013
After roughly 1,5 months of learning Javascript and Objective-C the iOS application and the publicly available Miataru service launched this week.
If you want to interface with the publicly available instance of the miataru server you can use the URL: http://service.miataru.com. This URL also is pre-configured with the iOS client that got recently available in the AppStore.
Source 1: Miataru for iOS
Source 2: iOS AppStore
SMS Alarming for h.a.c.s.
Posted by bietiekay in hack-the-planet, hacs, Mobile, N3RD on July 11, 2013
I've added Alarming to hacs a while ago and I've now extended the built-in SMS gateway providers with the german telekom services called "Global SMS API".
This API is offered through the Telekom own portal called developer garden and is as easy to use as it can possibly be. You only need to set-up the account with developergarden and after less than 5 minutes you can send and receive SMS and do a lot more. They got APIs for nearly everything you possible want to do … fancy some "talk to your house"-action? Would be easy to integrate into h.a.c.s. using their Speech2Text APIs.
They have a short video showing how to set it all up:
So I've added the SMS-send capabilities to the hacs internal alarming system with it's own JSON configuration file looking like this:
And this simple piece of configuration leads to SMS getting sent out as soon as – in this example – a window opens:
Before the Telekom Global SMS API I've used a different provider (SMS77) but since the delivery times of this provider varied like crazy (everything from 30 seconds to 5 minutes) and the provider had a lot of downtimes my thought was to give the market leader a try.
So now here it is – integrated. Get the source here.
Source 1: https://github.com/bietiekay/hacs
Source 2: https://www.developergarden.com/de/apis/apis-sdks/global-sms-api/
Hyperlapse – a streetview experiment
Posted by bietiekay in hack-the-planet, Software on May 13, 2013
More and more javascript experiments bubble up on the internets and a particularly interesting one is called "Hyperlapse":
"Hyper-lapse photography – a technique combining time-lapse and sweeping camera movements typically focused on a point-of-interest – has been a growing trend on video sites. It's not hard to find stunning examples on Vimeo. Creating them requires precision and many hours stitching together photos taken from carefully mapped locations. We aimed at making the process simpler by using Google Street View as an aid, but quickly discovered that it could be used as the source material. It worked so well, we decided to design a very usable UI around our engine and release Google Street View Hyperlapse."
Source 1: http://hyperlapse.tllabs.io/
Source 2: http://labs.teehanlax.com/project/hyperlapse
Adobe Photoshop version 1 source code
Posted by bietiekay in Development, hack-the-planet, Software on February 22, 2013
It's becoming a fashion lately to release the source code of older but legendary commercial products to the public. Now Adobe decided to gift the source code of their flagship product Photoshop in it's first version from 1990 to the Computer History Museum.
"That first version of Photoshop was written primarily in Pascal for the Apple Macintosh, with some machine language for the underlying Motorola 68000 microprocessor where execution efficiency was important. It wasn't the effort of a huge team. Thomas said, "For version 1, I was the only engineer, and for version 2, we had two engineers." While Thomas worked on the base application program, John wrote many of the image-processing plug-ins."
Source: http://www.computerhistory.org/atchm/adobe-photoshop-source-code/
Automated Picture Tank and Gallery for a photographer
Posted by bietiekay in Development, graphics, hack-the-planet, home automation, Software on February 17, 2013
Since my wife started working as a photographer on a daily basis the daily routine of getting all the pictures off the camera after a long day filled with photo shootings got her bored quickly.
Since we got some RaspberryPis to spare I gave it a try and created a small script which when the Pi gets powered on automatically copies all contents of the attached SD card to the houses storage server. Easy as Pi(e) – so to speak.
So this is now an automated process for a couple of weeks – she comes home, get's all batteries to their chargers, drops the sd cards into the reader and poweres on the Pi. After it copied everything successfully the Pi sends an eMail with a summary report of what has been done. So far so good – everything is on our backuped storage server then.
Now the problem was that she often does not immediately starts working on the pictures. But she wants to take a closer look without the need to sit in front of a big monitor – like taking a look at her iPad in the kitchen while drinking coffee.
So what we need was a tool that does this:
- take a folder (the automated import folder) and get all images in there, order them by day
- display an overview per day of all pictures taken
- allow to see the fullsized picture if necessary
- work on any mobile or stationary device in the household – preferably html5 responsive design gallery
- it should be fast because commonly over 200 pictures are done per day
- it should be opensource because – well opensource is great – and probably we would need to tweak things a bit
Since I did not find anything near what we had in mind I sat down this afternoon and wrote a tool myself. It's opensourced and available for you to play with it. Here's a short description what it does:
It's called GalleryServer and basically is an embedded http server which takes all .jpg files from a folder (configurable) and offers you some handy tool urls which respons with JSON data for you to work with. I've written a very small html user interface with a bit of javascript (using the great html5 kickstart) that allows you to see all available days and get a nice thumbnail overview of each day – when you click on it it opens the full-size image in a new window.
It's pretty fast because it's not actively resizing the images – instead it's taking the thumbnail picture from the original jpg file which the camera placed there during storing the picture. It's got some caching and can be run on any operating system where mono / .net is available – which is probably anything – even the RaspberryPi.
Source 1: my wifes page
Source 2: 99lime html5 kickstart boilerplate
Source 3: https://github.com/bietiekay/GalleryServer
DevOps reactions
Posted by bietiekay in Blog-o-Sphere, hack-the-planet, Linux, networking, Software on February 2, 2013
"Say it with pictures. Describe your feelings about your everyday sysadmin interactions."
the ZIP file that never ends…
Posted by bietiekay in hack-the-planet, Software on January 26, 2013
Everybody knows ZIP files. It's what comes out when you compress something on windows and on OS X. It's the commonly used format to store and exchange compressed data.
Now there's a lot of things you can do when you know file formats, especially those with many algorithms involved, inside out. There is a lot of text explaining the ZIP file format, like this one.
With that knowledge it is possible to create a valid ZIP file that never ends. You might already know ZIP bombs bit this one is a different animal. You computer won't stop decompressing…
Source 1: http://research.swtch.com/zip
Source 2: http://steike.com/code/useless/zip-file-quine/
Source 3: http://en.wikipedia.org/wiki/Zip_bomb
new actors to switch power on/off and measure power usage by AVM
Posted by bietiekay in hack-the-planet, hacs, home automation, networking on January 21, 2013
Usually the actors that allow you to switch power on/off and who measure power usage use the 434Mhz or 868Mhz wireless bands to communicate with their base station. Now the german manufacturer AVM came up with a solution that allows you to switch on/off (with an actual button on the device itself and wireless!) and to measure the power consumption of the devices connected to it.
The unspectacular it looks the spectacular are the features:
- switch up to 2300 watts / 10 ampere
- use different predefined settings to switch on/off or even use Google Calendar to tell it when to switch
- measure the energy consumption of connected devices
- it uses the european DECT standard to communicate with a Fritz!Box base station (which is a requirement)
For around 50 Euro it's quite an investment but maybe I'll give it a shot – especially the measurement functionality sounds great. Since I do not have one yet I don't know anything about how to access it through third party software (h.a.c.s.?)
Source 1: www.avm.de/de/News/artikel/2013/start_fritz_dect_200.html
Source 2: www.avm.de/de/Produkte/Smart_Home/FRITZDECT_200/index.php
Source 3: en.wikipedia.org/wiki/Digital_Enhanced_Cordless_Telecommunications
h.a.c.s. html5 user interface re-implemented
Posted by bietiekay in Development, hacs, Hardware, home automation on January 6, 2013
Slow is the right word to describe my html and javascript learning-by-doing progress right now. I have chosen the h.a.c.s. user interface as a valid project to learn html and javascript up to a point where I can start to write useable websites with it. The h.a.c.s. ui seemed to be a good choice because it's at the moment only used by my family and they are a bunch of battle-proven beta testers.
So first a small video to get an idea what I am implementing right now:
So all you can see is SVG and HTML rendered stuff – made with the help of awesome javascript libraries, as there are:
- jQuery
- for the basic javascript coverage
- Raphaël
- to draw svg in a human-controllable
- JustGage
- to draw those nice gauges
- OdoMeter
- an animated HTML5 canvas odometer
I plan to add a lot more – like for swiping gestures. So this will be – just like h.a.c.s – a continuous project. Since I switched to OS X entirely at home I use the great Coda2 to write and debug the code. It helps a lot to have two browser set-up because for some reason I still not feel that well with the WebKit Web Inspector.
Another great feature of Coda2 is the AirPreview – which means it will preview your current page in the editor on an iOS device running DietCoda – oh how I love those automations.
So I reached the first goal set for myself for the user interface: It's doing the things the old UI did and it's maintainable in addition. I am still struggling with javascript here and there – mainly because the debugging and tracing is oh-so-difficult (or I am to slow understanding).
If you got any recommendation for a javascript editor that can handle multiple includes and debugging (step-by-step, …) and good tracing for events please comment!
Source 1: jQuery
Source 2: Raphaël
Source 3: JustGage
Source 4: OdoMeter
Posted by bietiekay in FeM, hack-the-planet, Meetings on December 25, 2012
Every year between Christmas and New Years the hackers of the (mostly european) world gather for the Chaos Communication Congress. This year for the 29th time. The 29c3 takes place where it all started – in Hamburg. This years subtitle is:
Since the reports are already in that the fairydust has landed successfully in Hamburg there's even a proof picture for it:
Since FeM is already preparing it will be great to 'attend' the congress via live streams of all lectures.
Source 1: https://events.ccc.de/congress/2012/wiki/Main_Page
Source 2: http://blog.fem.tu-ilmenau.de/archives/836-Reisetagebuch-Mal-kurz-Hamburg.html
there's a hackerspace in Bamberg
Posted by bietiekay in hack-the-planet, hackerspace on December 25, 2012
The other day I found out that there is an actual hackerspace in Bamberg – the city where I work and live nearby. For some strange reason it never occurred to me to search for an hackerspace nearby. But now since the 29c3 is at the gates I found them on the "Congress everywhere" pages (beware, it's having a hard time right now).
Since I just found it and christmas duties take their toll I wasn't able to go by and talk to the people there in person – i've just contacted them over their IRC channel (#backspace on freenode). Eventually I will have time to visit them and I'll have a report up here then.
For the time being enjoy their website and the projects they already did. Apparently there are some very interesting LED lighting experiments.
ELV MAX! Cube C# Library – control your cube!
Posted by bietiekay in aheil.de, Family and Friends, hack-the-planet, hacs, home automation, Software on December 10, 2012
I was asked if it would be possible to get the ELV MAX! Cube interfacing functionality outside of h.a.c.s. – maybe as a library. Sure! That is possible. And to speed up things I give you the ELV MAX! Cube C# Library called: MAXSharp
It's a plain and simple library without much dependencies – in fact there's only some threading and the FastSerializer. Since I am using this library with h.a.c.s. as well I did not remove the serializer implementation.
There's a small demo program included which is called MAXSharpExample. The library itself contains the abstractions necessary to get information from the ELV MAX! Cube. It does not contain functionality to control the cube – if you want to add, feel free it's all open sourced and I would love to see pull requests!
The architecture is based upon polling – I know events would make a cleaner view but for various reasons I am using queues in h.a.c.s. and therefore MAXSharp does as well. The example application spins up the ELV MAX interfacing / handling thread and as soon as you're connected you can access all house related information and get diff-events from the cube.
Any comment is appreciated!
Source 1: State of Reverse Engineering
Source 2: https://github.com/bietiekay/MAXSharp
Blogroll: Nerdcore NC-Sources OPML
Posted by bietiekay in Blog-o-Sphere, hack-the-planet, Linux on December 7, 2012
A couple of days ago the well known and much read Nerdcore weblog author created a page he calls NC-Sources which lists all the sources he has in his RSS reader to get new information from. As you can imagine, this is pure gold for those who want to get interesting links to all-nerd pages.
Unfortunately NC-Sources is just available as a web-page which lists the name and the RSS feed URL. You cannot import that into your RSS Reader to use it for your own informational needs.
Here I am to the rescue. I've taken all the URLs from that NC Source page. That resulted in a file that lists the page url and the rss-feed url in alternating lines. A short trip to the command line and the use of awk helped to filter just the rss-feed urls to a new file and that was filled into an opml generator.
So now you can download the OPML file to import it into your own RSS reader. Get it here.
Source 1: NC-Sources
Source 2: NC-Sources OPML File
Source 3: OPMLBuilder
Raspberry Pi gets a camera
The first signs of the upcoming camera board for the raspberry pi are showing. During the Electronica 2012 fair RS showed the board to the public for the first time.
Since it's going to be a 25 Euro add-on for the Pi the specification is quite impressive. The OmniVision OV5647 is used as the Image Sensor – it's bigger brother is used in iPhone 4. OmniVision says:
"The OV5647 is OmniVision's first 5-megapixel CMOS image sensor built on proprietary 1.4-micron OmniBSI™ backside illumination pixel architecture. OmniBSI enables the OV5647 to deliver 5-megapixel photography and high frame rate 720p/60 high-definition (HD) video capture in an industry standard camera module size of 8.5 x 8.5 x ≤5 mm, making it an ideal solution for the main stream mobile phone market.
The superior pixel performance of the OV5647 enables 720p and 1080p HD video at 30 fps with complete user control over formatting and output data transfer. Additionally, the 720p/60 HD video is captured in full field of view (FOV) with 2 x 2 binning to double the sensitivity and improve SNR. The post binning re-sampling filter helps minimize spatial and aliasing artifacts to provide superior image quality.
OmniBSI technology offers significant performance benefits over front-side illumination technology, such as increased sensitivity per unit area, improved quantum efficiency, reduced crosstalk and photo response non-uniformity, which all contribute to significant improvements in image quality and color reproduction. Additionally, OmniVision CMOS image sensors use proprietary sensor technology to improve image quality by reducing or eliminating common lighting/electrical sources of image contamination, such as fixed pattern noise and smearing to produce a clean, fully stable color image.
The low power OV5647 supports a digital video parallel port or high-speed two-lane MIPI interface, and provides full frame, windowed or binned 10-bit images in RAW RGB format. It offers all required automatic image control functions, including automatic exposure control, automatic white balance, automatic band filter, automatic 50/60 Hz luminance detection, and automatic black level calibration."
That sensor delivers RAW RGB Imagery to the RaspberryPi through the onboard camera connector interface:
And the part that impressed me the most is that that 5 Megapixel sensor delivers it's raw data stream and it gets h264 compressed directly within the GPU of the Raspberry Pi. 30 frames per second 1080p without noticeable CPU load – how does that sound? – Not bad for a 50 Euro setup!
Source 1: First Demo
Source 2: OmniVision OV5647 Color CMOS QSXGA Image Sensor
Realtime Video Effects: Time Remap
Posted by bietiekay in graphics, hack-the-planet on December 2, 2012
With todays processing power and the faults of current generation digital video cameras you can have a lot of fun – if you know how:
The above demonstrated effect is called Time Remapping. The description of the video tells us more about the effect itself:
The effect was discovered accidentally by a photographer called Jacques Henri Lartigues at the beginning of the 20th century (in 1912 to be precise). He took a picture of a race car with eliptical deformed tires – an effect caused by the characteristics of the camera he was using.
Source 1: http://vimeo.com/7878518
Source 2: http://en.wikipedia.org/wiki/Jacques_Henri_Lartigue
Source 3: http://bokeh.fr/blog/photographes/la-voiture-deformee-de-jacques-henri-lartigue/
practical filesystem design
Posted by bietiekay in books, Development, hack-the-planet, Research on November 28, 2012
In November 1998 there was a book released about file system design taking the Be File System as the central example.
"This is the new guide to the design and implementation of file systems in general, and the Be File System (BFS) in particular. This book covers all topics related to file systems, going into considerable depth where traditional operating systems books often stop. Advanced topics are covered in detail such as journaling, attributes, indexing and query processing. Built from scratch as a modern 64 bit, journaled file system, BFS is the primary file system for the Be Operating System (BeOS), which was designed for high performance multimedia applications.
You do not have to be a kernel architect or file system engineer to use Practical File System Design. Neither do you have to be a BeOS developer or user. Only basic knowledge of C is required. If you have ever wondered about how file systems work, how to implement one, or want to learn more about the Be File System, this book is all you will need."
If you're interested in the matter I definitely recommend reading it – it's available for free in PDF format and will help to understand what those file system patterns are all about – even in terms of things we still haven't gotten from our 'modern filesystems' today.
Source 1: http://www.nobius.org/~dbg/
ELV MAX! Cube and the Solar-log 500 – state of the reverse engineering and h.a.c.s.
Posted by bietiekay in hack-the-planet, hacs, home automation on November 9, 2012
It's been some weeks since I wrote a status update on the ELV MAX! cube protocol reverse engineering and integration into my own home automation project called h.a.c.s..
So first of all I want to give a short overview over what has been achieved so far:
- I wrote a C# library, highly influenced by a PHP implementation from the domotica forum, which allows you to continuesly get status information from the ELV MAX! cube with current (1.3.6) firmware. It is tested so far with a fairly big set-up for the ELV MAX! cube (see below)
- I was able to integrate that library into my own home automation project called h.a.c.s. – There the ELV MAX! cube is just another device, alongside a EzControl XS1 and a SolarLog 500. The cube is monitored using my library and diff-sets as well as status information are stored automatically with the h.a.c.s. built-in mechanisms. In fact you can access for example the window shutter contact information just like you would with any other door contact in the EzControl XS1.
- You can use events coming from the ELV MAX! cube to create new events – how about switching off/on devices when opening/closing windows?
- Every bit of information from all integrated sensor monitoring and actor handling devices come together in h.a.c.s.
I started the reverse engineering with just one shutter contact and one thermostat. After all my test were successful I went for the big package and ordered some more sensors. This is how the setup is currently configured:
I've learned a lot of interesting things about the ELV MAX! cube hardware and software. One is that you need to be ready for surprised. The documentation of the cube tells you the following:
Did you spot the funny fact? 50 devices – we're well below that limit. 10 rooms – holy big mansion batman! We're well over that. How is that possible? Well take it as a fact – you can create more than 10 rooms. And that is very handy. I've created 13 rooms and there are probably more to come because those shutter contacts are quite cheap and can be used for various other home automation sensory games. The tool to set-up and pair those sensors just came up with a notice that said "Oh well, you want to create more than 10 rooms? If you're sure that you want that we allow you to, but hey, don't blame us!". Cool move ELV! – As of now I haven't found any downside of having more than 10 rooms.
All my efforts started with firmware version 1.3.5. This firmware seemed to have some severe memory leaks – because just by retrieving the current configuration information every 10 seconds the device would stop communicating after more then 48 hours. Only a reboot could revive it – sometimes amnesia set in which led to a house roundtrip for me.
With some changes in the library (like keeping the connection open as long as possible) and a new firmware version 1.3.6. the cube was way more cooperative and hasn't crashed for about 1 month now (with 10 seconds update times).
So what does my library do? It is designed to run in it's own thread. When it's started it opens a connection to the cube and retrieves the current status and configuration information. Those informations are stored in an object called "House". This house consists of multiple rooms – and those rooms are filled with window shutter contacts and thermostats. All information related to those different intances are stored along with them. The integration into h.a.c.s. allows the library to generate sensor and actor events (like when a temperature changes, a window opens/closes) which are passed back to h.a.c.s. and handled in the big event loop there.
With all that ELV MAX! cube data I wanted to plug a quite nice tool that I am using in the iPhone and the iPad. It's called "Moni4home" and it allows you to control the EzControl XS1 directly. Because it's only accessing the EzControl XS1 I used h.a.c.s. to "inject" additional sensor data into the standard EzControl XS1 data. So basically data flow is like this: iPad app accesses h.a.c.s. which acts as a proxy. h.a.c.s. retrieves the EzControl XS1 sensor and actor data and injects additional virtual sensors like those from the ELV MAX! cube. h.a.c.s. then sends that beefed up data to the iPad app. Voilá!
After the successful integration of the ELV MAX! cube I've started to work on the next bit of networking home automation equipment in my house – a solar panel data logger called "Solar-Log 500". This device monitors two solar power inverters and stores the sensory data.
"Funny" story first: this device has the same problem like the ELV MAX! cube. When you start to poll it every 10 seconds (or less) it just stops operating after about 20 hours. Bear in mind: In case of the Solar-Log I just http-get a page that looks like this in the browser:
And by doing so every 10 seconds the device stops working. I am using the current firmware – so one workaround for that issue is to planable reboot the Solar-Log at a time when there is no sun and therefore nothing to log or monitor.
Beside that it's a fairly easy process: Get that information, log it. Done.
So there you have it – h.a.c.s. interfacing with three different devices and roughly 100 sensors and actors over 434mhz/868mhz, wireless and wired network. There's still more to come!
A lot of people seem to dive into home automation these days. Apparently Andreas is also at the point of starting his own home automation project. Good to know that he also is using the EzControl XS1 and in the future maybe even the ELV MAX! cube. Party on Andreas!
Source 1: ELV MAX! cube progress
Source 2: Reverse Engineering the ELV MAX! cube protocol
Source 3: ELV MAX! cube – home automation for the heating
Source 4: http://www.solar-log.com/de/produkte-loesungen/solar-log-500/uebersicht.html
Source 5: h.a.c.s. sourcecode
Source 6: http://monitor4home.com/Beschreibung.html
Source 7: http://www.aheil.de/2012/11/06/hack-the-planet-architectural-draft/