tag:blogger.com,1999:blog-81827761803249578002023-11-16T14:49:49.359+01:00andrethemac's blogEen blog over dingen die je met computers kan doen, lopen, fietsen, natuur, foto's, ....
Ramblings about things to do with computers, bikes, nature, pics, ...andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.comBlogger59125tag:blogger.com,1999:blog-8182776180324957800.post-81034374057191901422017-10-31T20:28:00.002+01:002017-10-31T20:28:31.505+01:00Learning (micro)python by creating a class to read an max17043 lipo fuelgaugeI'm learning python (again) to use it on my Pycom micropython WIPY2 and LOPY modules. It is a fun language to learn.<br />
<br />
The pycom micropython modules (<a href="https://www.pycom.io/">https://www.pycom.io</a>) are little IOT modules with lots of IO-pins, LiPo battery connecter/charger, wifi, bluetooth (and lora on selected models). They are comparable with the Arduino Mkr1000 family, except you program them with (micro)python. They are great for battery operated little things.<br />
<br />
To get back up to speed with python, I've created this little library to read out a maxim max17043 lipo fuelgauge, so you can see how much energy there is left in the LiPo battery. This is chip is used on this little board from Sparkfun ( <a href="https://www.sparkfun.com/products/10617">https://www.sparkfun.com/products/10617</a> ).<br />
<br />
The library is based upon this library from Luca Dentella ( <a href="https://github.com/lucadentella/ArduinoLib_MAX17043">https://github.com/lucadentella/ArduinoLib_MAX17043</a> )<br />
<br />
My library: <a href="https://github.com/andrethemac/max17043.py">https://github.com/andrethemac/max17043.py</a><br />
<br /><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-43441988878880730542016-12-15T20:38:00.000+01:002016-12-15T20:38:12.623+01:00nextcloud 10, centos 7 and rh-php56nextcloud is a great alternative for dropbox.<br />
It 's easy to run, manage and use.<br />
It got great apps on android and linux.<br />
<br />
I'v been running owncloud on debian but recently decided to change to centos 7.<br />
Moving nextcloud was easy, but centos 7 comes with PHP54.<br />
So Ive tried to upgrade PHP to 56, but that was not as easy as I tought.<br />
<br />
In the end I got it running with these.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">sudo yum install rh-php56-php-mbstring rh-php56-php-gd rh-php56-php-pdo rh-php56-php-xml rh-php56-php-pear wget bzip2 curl rh-php56-php rh-php56-php-mysqlnd</span><br />
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">cd /etc/httpd/conf.d</span></div>
<span style="font-family: Courier New, Courier, monospace;">sudo mv 10-php54-php.conf 10-php54-php.old</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">cd /etc/httpd/conf.modules.d</span><br />
<span style="font-family: Courier New, Courier, monospace;">sudo mv 10-php54-php.conf 10-php54-php.old </span><br />
<span style="font-family: Courier New, Courier, monospace;">sudo mv 10-php.conf 10-php.old</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">cd /etc/httpd/modules</span><br />
<span style="font-family: Courier New, Courier, monospace;">sudo ln -s /opt/rh/httpd24/root/usr/lib64/httpd/modules/librh-php56-php5.so .</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">sudo apacheclt restart</span><br />
<br />
I got the site running, then I got these errors<br />
Can't write into config directory!<br />This can usually be fixed by giving the webserver write access to the config directory.<br />
<br />
but these too saved my day.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">semanage fcontext -a -t httpd_sys_rw_content_t
'/var/www/html/nextcloud(/.*)?'; restorecon -RF
/var/www/html/nextcloud/</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">semanage fcontext -a -t httpd_sys_rw_content_t
'/data(/.*)?'; restorecon -RF
/data/</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<br /><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-42372245183642882162016-11-27T19:54:00.000+01:002016-11-27T20:01:20.609+01:00weekender project: build a clock out of a plastic jar.<h2>
</h2>
Make a clock with a white plastic jar, 2 adafruits neopixel rings and an arduino.<br />
<br />
you need<br />
1 arduino uno<br />
1 adafruit neopixel ring 24 color leds (<a href="https://www.adafruit.com/products/1586" target="_blank">link</a>)<br />
1 adafruit neopixel ring 12 color leds (<a href="https://www.adafruit.com/products/1643" target="_blank">link</a>)<br />
1 plastic jar with lid, big enough to hold the 24 leds ring.<br />
1 rtc module (real time clock) like this one (<a href="https://www.sparkfun.com/search/results?term=3234" target="_blank">link</a>)<br />
<br />
<br />
The small ring is the small hand of a clock. 12 led's for 12 hours.<br />
the bigger ring show's the seconds an minutes. well 2.5 minutes (seconds). Because 60 minutes diveded by 24 leds is 2.5 minutes interval. This makes the clock less accurate to read. Adafruit sels 60 led ring but it's huge, too huge.<br />
The seconds go round in smooth way. They start to fade in and fade back out, one after another to create a fluid motion.<br />
The minute and hour "hand" don't have this motion (yet).<br />
The color of the hour and minute leds change during the day. At midnight till about 4 they are blue, then they start to fade to red at dusk continue to yellow at noon, in the late afternoon they fade back to orange, red, purple and blue to emulate the dawn.<br />
<h3>
The code.</h3>
You can find the code on github (<a href="https://github.com/andrethemac/neoPixelClock_DeadOnDS3234/blob/master/neoPixelClock_DeadOnDS3234_v4.ino" target="_blank">link</a>). <br />
<br />
<h3>
puzzling the pieces together</h3>
The neopixel rings are easy to put together. The rings need only 3 wires: 5v, ground and a data line. Run a wire from pin 6 on the arduino to the data in of the 24 led pin and a wire from de data out of the 24 led ring to the data in of the 12 led ring. Connect the 5 volt and ground.<br />
<br />
The rtc module needs 5 wires: 5 volt, ground, mosi, miso and ss. They are connect to pins 10-13.<br />
<br />
<h3>
The jar.</h3>
you need a white plastic jar. The neopixels are bright. A white jar kind of smooth out the bright light.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN40AY5I3bafI97Exh3Bdakx9zeKkPK6XlDt1SneMCtnLqByh9M-3PCO7HbQEbJPyWfCmu8zDZSepQRyFp_2ncq3fJcxAmEVxQPJZ9KpFDz9sMcaJjleCHoHU50-xpn7aEr5RmtofnXxZX/s1600/IMG_20161126_164342.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN40AY5I3bafI97Exh3Bdakx9zeKkPK6XlDt1SneMCtnLqByh9M-3PCO7HbQEbJPyWfCmu8zDZSepQRyFp_2ncq3fJcxAmEVxQPJZ9KpFDz9sMcaJjleCHoHU50-xpn7aEr5RmtofnXxZX/s200/IMG_20161126_164342.jpg" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">the neo pixel ring front</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZDn2HXjtzUsG034tfamoLvQLNRXvOOuuYl9jRAqLh3GJ3d4T9kIdk4-5izTp4o5N9jgWVZHLY78uVoN0n3ZsYekRuZcmBxtWCVPHO28UsmG6zFufscaZnphfANpz6h17BtDbaAaqLKuy1/s1600/IMG_20161126_164347.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZDn2HXjtzUsG034tfamoLvQLNRXvOOuuYl9jRAqLh3GJ3d4T9kIdk4-5izTp4o5N9jgWVZHLY78uVoN0n3ZsYekRuZcmBxtWCVPHO28UsmG6zFufscaZnphfANpz6h17BtDbaAaqLKuy1/s200/IMG_20161126_164347.jpg" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">neopixel rings atached to a small piece of wood</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBtG2gVkjzjgtIWm9de4jL1aReyS4iGPlvppBRNXDOnyXBIUL4wFhh8XoAXlhGD15N5OpzvgAUwihyphenhyphenEQWpXDZtwNnneeZNoLwv-R4yCl0DPjyDAEUrM7-WO62zjJbmAHs57ig7k1qzo_o/s1600/IMG_20161126_174511.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBtG2gVkjzjgtIWm9de4jL1aReyS4iGPlvppBRNXDOnyXBIUL4wFhh8XoAXlhGD15N5OpzvgAUwihyphenhyphenEQWpXDZtwNnneeZNoLwv-R4yCl0DPjyDAEUrM7-WO62zjJbmAHs57ig7k1qzo_o/s200/IMG_20161126_174511.jpg" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">in the jar</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUrRWWHjTjJqgJsBW_BiBkjL6WpBND_VcxICGPPNFsPwINawx8EgrhJQFOqXmhit3B9LdBWePXdvL1aiEMLjjDNGmq4kedlIgDB8dFDjqtVf67JNc_Ys__MqVlP_ErXy2GbRK9K-0PX8DL/s1600/IMG_20161126_173713.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUrRWWHjTjJqgJsBW_BiBkjL6WpBND_VcxICGPPNFsPwINawx8EgrhJQFOqXmhit3B9LdBWePXdvL1aiEMLjjDNGmq4kedlIgDB8dFDjqtVf67JNc_Ys__MqVlP_ErXy2GbRK9K-0PX8DL/s200/IMG_20161126_173713.jpg" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">the arduino and the rtc mounted in the lid of the jar</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/n1hlxnScN_M/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/n1hlxnScN_M?feature=player_embedded" width="320"></iframe></div>
<h3>
</h3>
<h3>
what's still missing</h3>
Button's to adjust the time. I had no right size switches of button's left, so adjusting the time can't be done without connecting the arduino to the computer and recompile the code.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-37656291714762084032016-03-12T23:38:00.003+01:002016-03-12T23:39:27.145+01:00using Wipy, Sim800 GRPS GMS modem, DHT11 temp sensor and micropythonUsing an wipy (<a href="http://www.wipy.io/">http://www.wipy.io</a>), micropython to read temperature with DHT11 and sending the data to a (local) blynk server<br />
using a SIM800 GSM board to send a warning when temperature drops below zero degreesor when a button gets pushed on the blynk<br />
blynk by blynk (<a href="http://www.blynk.cc/">http://www.blynk.cc</a>)<br />
blynklib by danicampora ( <a href="https://github.com/wipy/wipy/blob/master/lib/blynk/BlynkLib.py">https://github.com/wipy/wipy/blob/master/lib/blynk/BlynkLib.py</a> )<br />
untplib by andrewmk ( <a href="https://github.com/andrewmk/untplib">https://github.com/andrewmk/untplib</a> )<br />
DHT decoder by RinusW (<a href="http://forum.micropython.org/viewtopic.php?t=1392">http://forum.micropython.org/viewtopic.php?t=1392</a>)<br />
(inexpensive) SIM800L GPRS GSM Module SIM Board QUAD BAND Antenna for MCU Arduino (and wipy, ...)<br />
mashup by me andre@andrehtemac.be<br />
todo sim800 communication needs more work<br />
2016/03/12 : version 0.1<br />
<br />
see the code on:<br />
<a href="https://github.com/andrethemac/wipyDHTSIM800.git">https://github.com/andrethemac/wipyDHTSIM800.git</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6zWQArIru2SYDL2wPPVj_gXUz-nYHb_7ih9NK0PMI0ROKDZkceHVSqBymDOJVn_hJBDWz0DC8NSGbRKR_NOYgQMoekOC0G-37YslfNm7JjS3prSMJT5HbLy3SPtTy6-kzmY6zgid57Iy0/s1600/Screenshot_2016-03-12-23-33-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6zWQArIru2SYDL2wPPVj_gXUz-nYHb_7ih9NK0PMI0ROKDZkceHVSqBymDOJVn_hJBDWz0DC8NSGbRKR_NOYgQMoekOC0G-37YslfNm7JjS3prSMJT5HbLy3SPtTy6-kzmY6zgid57Iy0/s320/Screenshot_2016-03-12-23-33-03.png" width="180" /></a></div>
<br /><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-73820557639318368772013-11-03T16:45:00.001+01:002013-11-03T16:47:51.517+01:00Deluxe thermometer with ethnernet and logging and adafruit neopixel displaythe code is on github
https://github.com/andrethemac/thermometer_adafruit_ethernet.git<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjACpyl-7TFE1dhwsE_6b8Cr9awh_eGe_BbR5NomZ0Eihxsw8C_nOrRQkztDXlInn4fesCcDkp8lQTabCduZzzV5MzDtlWKsLLr9zFXFqKYZPK26UdhIzf7BTWs0BiNxdypoRnPv_XcCMwt/s1600/IMAG0201.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjACpyl-7TFE1dhwsE_6b8Cr9awh_eGe_BbR5NomZ0Eihxsw8C_nOrRQkztDXlInn4fesCcDkp8lQTabCduZzzV5MzDtlWKsLLr9zFXFqKYZPK26UdhIzf7BTWs0BiNxdypoRnPv_XcCMwt/s1600/IMAG0201.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilNmeWMK9EFkNt7Zb3OlgG6_psYwSaAFBDkPCjUpFyleefIk5uBzsh8QF7SwYbLcD674o6J31lRbXLpfiZf5rEGk3bfwYtSowZ2dIIQGL9uxIzjPo9UDaY5uduQqIz7xSh-58LHfIzSAts/s1600/IMAG0200.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilNmeWMK9EFkNt7Zb3OlgG6_psYwSaAFBDkPCjUpFyleefIk5uBzsh8QF7SwYbLcD674o6J31lRbXLpfiZf5rEGk3bfwYtSowZ2dIIQGL9uxIzjPo9UDaY5uduQqIz7xSh-58LHfIzSAts/s1600/IMAG0200.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3DOmWy26Y5-hHvjQy6sF7D0KIcxbLVJEa8lfEfd9Px9fNHNEKmd1O-F9RcIW9wyL-fHyaK8em3iBnAdy4Z8YiTnx5f_cEXPeOILlqNGatunbXJFQ9s1m75yvaQB8KFYMMscJHpaxqYPXV/s1600/IMAG0202.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3DOmWy26Y5-hHvjQy6sF7D0KIcxbLVJEa8lfEfd9Px9fNHNEKmd1O-F9RcIW9wyL-fHyaK8em3iBnAdy4Z8YiTnx5f_cEXPeOILlqNGatunbXJFQ9s1m75yvaQB8KFYMMscJHpaxqYPXV/s1600/IMAG0202.jpg" width="320" /></a></div>
<div style="text-align: center;">
</div>
<br />
A weekend project.<br />
1 arduino ethernet<br />
1 adafruit neopixel shield 8x5.<br />
1 sht15 temperature senson<br />
1 pressure sensor<br />
some wire<br />
How to wire up is explained in the ino file in github.<br />
<br />
There are good wikis on the setup of the lighttp server, Python examples and mysql info too.<br />
<br />
The neopixel can put a huge load on the power supply. You have to take care about that. By keeping the brightness rather low, the shield draws no more than 60 mA (a shield on full blast goes easy over 1A).<br />
Putting a piece of paper before the neopixels makes the display more readable and clearer. (or a piece of plexiglass would do the same, just don't use a crystal clear one).<br />
The bar graph takes 8 hours to fill up, so be patient.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-88003087252369776832013-05-11T15:36:00.000+02:002013-05-11T16:24:41.990+02:00arduino based thermometer with lcd display and loggingHow to make a Deluxe thermometer with an LCD display (who know's when someone is close) and logging to a webserver.<br />
some images <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyUC55s-O1X8hKlAyCpDEk8KiF9O8SDXc1v3dHm90Ll1fk6HswGVR35LOVECo8WmLlD-fUWuHfoBthLZSVn3nPdnS2dj9-j8aN0smpz17J-MqFiqHmxmtqIXms5q94xBYnVeWzo0MtzFgd/s1600/IMG_20130510_230722.jpg" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyUC55s-O1X8hKlAyCpDEk8KiF9O8SDXc1v3dHm90Ll1fk6HswGVR35LOVECo8WmLlD-fUWuHfoBthLZSVn3nPdnS2dj9-j8aN0smpz17J-MqFiqHmxmtqIXms5q94xBYnVeWzo0MtzFgd/s320/IMG_20130510_230722.jpg" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpQB5C61qdchHhNvc8XhlFNMu2ZclU_L9YEcR7zO2YdYm57m_XfBsjHKeWq3EJicUa1Zt31whLRQdSbl3ddys4TH6Z5pwKBGnDGSKD9KJeLgKgc6gkl8NpdL3ec_HmiYCXCw25ys9j0gua/s1600/IMG_20130510_230654.jpg" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpQB5C61qdchHhNvc8XhlFNMu2ZclU_L9YEcR7zO2YdYm57m_XfBsjHKeWq3EJicUa1Zt31whLRQdSbl3ddys4TH6Z5pwKBGnDGSKD9KJeLgKgc6gkl8NpdL3ec_HmiYCXCw25ys9j0gua/s320/IMG_20130510_230654.jpg" /></a>
<h3>
Things it should do </h3>
measures the temperature (obvious)<br />sends data to a webserver (and a database)<br />
show the temperature on a display<br />tell's if the temperature is rising of dropping over the last <br />10 minutes.<br />Display should only work if there's somebody close to the display. This is done by using de arduino's pins to power the LCD backlight. <br />
The backlight controlling pin goes high (backlight on) when another pin goes hight. This other pin is connect to a digital motion sensor. <br />
<br />
<h3>
materials used:</h3>
1 arduino with built in ethernet<br /><a href="http://arduino.cc/en/Main/ArduinoBoardEthernet">http://arduino.cc/en/Main/ArduinoBoardEthernet</a>
<br />library<br />
<a href="http://arduino.cc/en/Reference/Ethernet">http://arduino.cc/en/Reference/Ethernet</a>
<br /><br />
1 digital motion sensor<br />
<a href="http://www.ladyada.net/learn/sensors/pir.html">http://www.ladyada.net/learn/sensors/pir.html</a>
<br />
<a href="http://iprototype.be/search?search_string=pir">http://iprototype.be/search?search_string=pir</a>
<br /><br />1 lcd 2 x 16 characters based on a Hitachi HD44780 chipset
<br /><a href="http://iprototype.be/products/components/led-lcd/lcd16x2-BL">http://iprototype.be/products/components/led-lcd/lcd16x2-BL</a>
<br />library:<br /><a href="http://arduino.cc/en/Reference/LiquidCrystal">http://arduino.cc/en/Reference/LiquidCrystal</a>
<br /><br />1 NTC (temperature sensitive resistor)<br />
<a href="http://iprototype.be/products/components/sensors/ntc">http://iprototype.be/products/components/sensors/ntc</a><br />
<br />
little extra: measuring light<br />1 ldr (light sensitive resistor)<br /><br />1 breadboard and a lot of wire<br />
<br />
<h4>
steps</h4>
connect the display to the arduino<br />
VSS connects to ground<br />
VDD connects to +5 v<br />
v0 connect to the slider of a 10K potentiometer (one side on the 5V, the other on the ground) RS connects to arduino D7 <br />
R/W connects to ground<br />
E connects to arduino D6 <br />
D4-D8 connects to arduino D2-D5 (data)<br />
K of backlight connects to ground<br />
A of backlight connects to arduino D9<br />
<br />
Digital Motion Sensor (pir)<br />
connect the Red and black wires to the 5v and ground, connect the data wire to the arduino D8.<br />
<br />
NTC<br />
NTC is a negative temperature controller, a resistor whose value changes with the temperature. A 10K resitor is used as a pullup resistor. The analoge input (A0) is connected between the NTC and the 10 K resistor<br />
5V --[10K]-- A0 --[NTC]-- ground.<br />
<br />
<h3>
logging the webserver.</h3>
<br />
On the webserver a cgi <a href="https://docs.google.com/file/d/0B09qmQTMYDoSQzVvRU1hTmVQYnc/edit?usp=sharing">script</a> for the arduino.<br />
The script is written in python. This script passed the values on to a database.<br />
<br />
<h3>
how the breadboard was setup</h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/dHRBFJ-9NXQbIlfmB48vcZivMfZsW0H_gUSkGyYB0HscTOV5bFg2Kr6U8ApQPxCyZw=s1600" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/dHRBFJ-9NXQbIlfmB48vcZivMfZsW0H_gUSkGyYB0HscTOV5bFg2Kr6U8ApQPxCyZw=s1600" height="225" width="320" /></a></div>
<br /><br />
Fritzing schema : <span id="goog_176402920"></span><span id="goog_176402921"></span> <a href="https://docs.google.com/file/d/0B09qmQTMYDoSUHJ3YTFZbXpzaXc/edit?usp=sharing">Fritzing</a><br />
<h3>
the code</h3>
you can download the code here: <a href="https://docs.google.com/file/d/0B09qmQTMYDoSd1gtcUFjVDdFUW8/edit?usp=sharing">temp4.ino</a><br />
<br />
<br />
<code>
/*<br />Andre Peeters<br />2013-05-11<br />Deluxe thermometer v0.2<br />measures the temperature<br />sends this to a webserver (and a database)<br />also shows the temperature on a display<br />tell's if the temperature is rising of dropping over the last <br />10 minutes.<br />Only shows its value if there's somebody close to the display.<br />(digital motion sensor)<br /><br />materials used:<br />1 arduino with built in ethernet<br />http://arduino.cc/en/Main/ArduinoBoardEthernet<br />library<br />http://arduino.cc/en/Reference/Ethernet<br /><br />1 digital motion sensor<br />http://www.ladyada.net/learn/sensors/pir.html<br /><br />1 lcd 2 x 16 characters based on a Hitachi HD44780 chipset<br />http://iprototype.be/products/components/led-lcd/lcd16x2-BL<br />library:<br />http://arduino.cc/en/Reference/LiquidCrystal<br /><br />1 NTC (temperature sensitive resistor)<br />http://iprototype.be/products/components/sensors/ntc<br /><br />1 ldr (light sensitive resistor)<br /><br />1 breadboard and a lot of wire<br /><br />*/<br /><br /><br /><br />/*<br />ethernet setup<br />*/<br />#include <spi .h=""><br />#include <ethernetserver .h=""><br />#include <ethernet .h=""> <br /><br />// my mac address<br />byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x8E, 0x23 };<br /><br />//medion = my server's dns name<br />//byte medion[] = { 192, 168, 128, 17 };<br />char medion[] = "medion";<br />EthernetClient client; //(medion, 80);<br />// msg to send to server<br />String msg;<br /><br />/*<br />display setup<br />*/<br />// include the library code:<br />#include <liquidcrystal .h=""><br /><br />// celsius character<br />byte celcius[8] = {<br /> B00110,<br /> B01001,<br /> B01001,<br /> B00110,<br /> B00000,<br /> B00000,<br /> B00000,<br />};<br /><br />// arrow up character<br />byte up[8] = {<br /> B00000,<br /> B00100,<br /> B01110,<br /> B10101,<br /> B00100,<br /> B00100,<br /> B00000,<br />};<br /><br />// arrow down character<br />byte down[8] = {<br /> B00000,<br /> B00100,<br /> B00100,<br /> B10101,<br /> B01110,<br /> B00100,<br /> B00000,<br />};<br /><br />// line character<br />byte equal[8] = {<br /> B00000,<br /> B00000,<br /> B00000,<br /> B11111,<br /> B00000,<br /> B00000,<br /> B00000,<br />};<br /><br />// initialize the library with the numbers of the interface pins<br />LiquidCrystal lcd(7, 6, 5, 4, 3, 2);<br /><br />//pir (digital movement sensor)<br />#define pirIn 8<br />// lcd backlight control<br />#define backLight 9<br /><br />// temperature<br />float temp;<br />int light;<br />int tempArray[] = {0,0,0,0,0,0,0,0,0,0};<br />int tempAverage;<br />int t;<br /><br />//Temp and light sensor<br />#define InputTemp 0<br />#define InputLight 1<br /><br />/*<br />convert the value messured on the NTR resistor<br />to celsius degree temperature<br />*/<br />// resistance at 25 degrees C<br />#define THERMISTORNOMINAL 10000<br />// temp. for nominal resistance (almost always 25 C)<br />#define TEMPERATURENOMINAL 25<br />// The beta coefficient of the thermistor (usually 3000-4000)<br />#define BCOEFFICIENT 4100<br />// the value of the 'other' resistor<br />#define SERIESRESISTOR 10000<br /><br />double Thermister(int RawADC) {<br /> float average;<br /> average = 1023.0 / RawADC - 1;<br /> average = SERIESRESISTOR / average;<br /> float steinhart;<br /> steinhart = average / THERMISTORNOMINAL; // (R/Ro)<br /> steinhart = log(steinhart); // ln(R/Ro)<br /> steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)<br /> steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)<br /> steinhart = 1.0 / steinhart; // Invert<br /> steinhart -= 273.15; // convert to C<br /> return steinhart;<br />}<br /><br /><br />void setup() {<br /> // set up the LCD's number of columns and rows: <br /> lcd.begin(16, 2);<br /> // Print a message to the LCD.<br /> lcd.print("initial setup");<br /> lcd.setCursor(0,1);<br /> lcd.print("please wait");<br /> // create the special chars<br /> lcd.createChar(0,celcius);<br /> lcd.createChar(1,up);<br /> lcd.createChar(2,down);<br /> lcd.createChar(3,equal);<br /><br /> // set the digital pins<br /> pinMode(pirIn,INPUT);<br /> pinMode(backLight,OUTPUT);<br /> digitalWrite(backLight,HIGH);<br /><br /> Serial.begin(9600);<br /> // init temp<br /> temp = 0.0;<br /> light = 0;<br /><br /> // ethernet setup<br /> // configure dhcp<br /> if ( Ethernet.begin(mac) == 0 ) {<br /> Serial.println("failed to configure dhcp");<br /> for ( ;; )<br /> ;<br /> } <br /> else {<br /> // this is my IP address<br /> Serial.println( Ethernet.localIP() );<br /> }<br /> // clear the lcd when setup is done<br /> lcd.clear();<br />}<br /><br />void loop() {<br /> // get the temperature<br /> temp = Thermister(analogRead(InputTemp));<br /> <br /> // keep the last 10 mesure values as an int<br /> int tt = temp * 100;<br /> // shift the values in the array to the front and add the actual<br /> // temperatur at the back<br /> for(int x = 1; x < 10; x++) {<br /> // replace a zero value in the array with the actual temperatur<br /> if(tempArray[x] == 0) {<br /> tempArray[x] = tt;<br /> }<br /> tempArray[x-1] = tempArray[x];<br /> }<br /> tempArray[9] = tt;<br /> <br /> // calculate the average temperature over the last 10 mesurements<br /> tempAverage = 0;<br /> for(int x = 0; x < 10; x++) {<br /> tempAverage = tempAverage + tempArray[x] ;<br /> }<br /> tempAverage = tempAverage / 10;<br /><br /> // create a string with the temperature with 2 numbers after the <br /> // decimal point<br /> t = temp * 100;<br /> int t1 = t / 100;<br /> int t2 = t % 100;<br /> String ts = "";<br /> if(t2 < 10) {<br /> ts = "0";<br /> }<br /> String t0 = "";<br /> t0 = t0 + t1 + "." + ts + t2;<br /><br /> // convert the light to a number<br /> light = constrain(map(analogRead(InputLight),0,250,0,100),0,100);<br /> int l = light;<br /><br /> // get things on the display<br /> lcd.setCursor(5,0);<br /> lcd.print(t0);<br /> lcd.write(byte(0));<br /> lcd.setCursor(15,0);<br /> if ( tempAverage == tt) {<br /> lcd.write(byte(3));<br /> lcd.setCursor(0,1);<br /> lcd.print(" gelijk ");<br /> //lcd.print(" equal ");<br /> }<br /> if ( tempAverage < tt) {<br /> lcd.write(byte(1));<br /> lcd.setCursor(0,1);<br /> lcd.print(" stijgend ");<br /> //lcd.print(" rising ");<br /> }<br /> if ( tempAverage > tt) {<br /> lcd.write(byte(2));<br /> lcd.setCursor(0,1);<br /> lcd.print(" dalend ");<br /> //lcd.print(" dropping ");<br /> }<br /><br />/* <br /> lcd.setCursor(0,1);<br /> lcd.print("light = ");<br /> lcd.print(l,DEC);<br />*/<br /> <br /> //send the temperature messured to the webserver and database<br /> String msg = "GET /cgi-bin/t2.py?t=";<br /> String msg2 = "&l=";<br /> String msg3 = " HTTP/1.0";<br /> msg = msg + t0 + msg2 + l + msg3;<br /> client.connect(medion,80);<br /> if (client.connected()){<br /> Serial.println("connected");<br /> client.println(msg);<br /> client.println();<br /> client.stop();<br /> } else {<br /> Serial.println("error");<br /> }<br /> client.stop();<br /><br /> /*<br /> wait a second an check the motion sensor<br /> if there is motion, turn on the display and the backlight<br /> repeat this for a minute, then measure the temperature again.<br /> */<br /> for(int x = 0; x < 60; x++) {<br /> //read pir and turn on the backlight if oké<br /> if(digitalRead(pirIn)) {<br /> lcd.display();<br /> digitalWrite(backLight,HIGH);<br /> } else {<br /> lcd.noDisplay();<br /> digitalWrite(backLight,LOW);<br /> }<br /> <br /> // blink a dot<br /> lcd.setCursor(15,1);<br /> if(x % 2) {<br /> lcd.print(".");<br /> } else {<br /> lcd.print(" ");<br /> }<br /> // wait a second<br /> delay(1000);<br /> }<br />}</liquidcrystal></ethernet></ethernetserver></spi><br />
<br />
</code><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-39060066311303329642013-03-24T15:07:00.001+01:002013-03-24T15:07:52.431+01:00Raspberry Pi, xmbc en een android tabletEen digitale muziek bibliotheek die je van op afstand kan bedienen is dezer dagen eenvoudig te realiseren.<br />
Je hebt alleen een <a href="http://www.raspberrypi.org/" rel="nofollow" target="_blank">Raspberry Pi</a>, <a href="http://xbmc.org/" rel="nofollow" target="_blank">xbmc</a>, een app voor je android tablet of android phone en je muziekbestanden op een makkelijk te bereiken medium nodig.<br />
<br />
<h4>
Ingrediënten.</h4>
Raspberry pi<br />
<a href="http://www.raspbmc.com/" rel="nofollow" target="_blank">raspbmc</a><br />
<a href="http://yatse.leetzone.org/redmine" target="_blank">yatse </a>of <a href="https://play.google.com/store/apps/details?id=ch.berard.xbmcremotebeta" target="_blank">music pump xbmc remote</a><br />
Een hoop mp3 bestanden op een USB stick, een usb-schijf, een smb of nfs server of een dlna of upnp device.<br />
<br />
<h4>
Een kleine "how to".</h4>
Je begint met raspbmc te <a href="http://www.raspbmc.com/download/" target="_blank">downloaden</a> en op een sd kaartje te zetten. Dit is op de site van raspbmc goed uitgelegd.<br />
Sluit de Raspberry Pi aan op een scherm en een klavier, steek de sd kaart in en sluit het netwerk aan, en sluit de stroom aan.<br />
Als je de audio via de hoofdtelefoon plug aansluit kan je best even wachten tot de software geïnstalleerd is. <br />
De Raspberry Pi gaat nu de laatste versie raspbmc software downloaden en installeren. Dit duurt wel even en de Raspberry Pi gaat een paar maal herstarten.<br />
<br />
<h4>
Android software.</h4>
ondertussen kan je op je telefoon of tablet yatse of music pump xbmc remote installeren.<br />
<h4>
Media biblotheek.</h4>
Als de XBMC software op de Raspberry Pi staat, moet je nog wel zeggen waar je muziek staat.<br />
Hoe je dat doet staat goed uitgelegd op de site van <a href="http://wiki.xbmc.org/index.php?title=Media_sources" target="_blank">xbmc</a> <br />
Alles op USB-stick of USB-schijf, steek de USB-Stick of schijf in de Raspberry Pi.<br />
Als je een USB-schijf gebruikt, neem dan wel een type met een eigen voeding want de Raspberry Pi levert niet genoeg stroom.<br />
<br />
<h4>
dlna of upnp</h4>
dlna en upnp zijn protocols die het delen van media bestanden vergemakkelijken.<br />
Als je een eigen Linux server hebt kan je bv <a href="http://ushare.geexbox.org/" target="_blank">ushare</a> installeren om je media bestanden via dlna of upnp te delen.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-84531477269239734042012-09-05T14:15:00.000+02:002012-09-05T14:16:55.899+02:00De halve marathon die niet doorgaat.<br />
<span class="messageBody" data-ft="{"type":3}" style="font-weight: normal;">Damn.
Ben je al een paar maand aan het trainen om in Eindhoven een halve
marathon te lopen, beslist de politiek om op dezelfde dag ons allen op
te roepen open onze burgerplicht te doen. Oké tot daar toe, maar ze me
nu ook oproepen om op die mooie dag te komen controleren of jullie zo'n
goede burgers zijn doet wel pijn. Daar gaat de motivatie :-/ . Ik zal me
dan maar opladen voor de halve marathon van Kasterlee wat later op het
jaar. Gelukkig is dat ook een vlak parcour :-).</span><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-83552453513833558962012-05-18T21:37:00.001+02:002012-05-18T21:39:28.571+02:00Installation of Ubuntu 12.04 on a Dell Studio 1747<p>Just finished installing Ubuntu 12.04. A breeze to do. The whole process took less than an hour. Really fast.</p>
<p>Because I messed up the Ubuntu 11.10 (installed to much junk), I decided to start of with a clean sheet.</p>
<p>Because my documents are on a separate partition <code>/home</code> (actually it's even an different disk), it's easy to replace the OS and keep your data.</p>
<p>Because the hardware contains some specials, I had to enable some propriety software.
The video hardware is from ATI, which has it's own driver you have to enable.</p>
<code>
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)<br>
02:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI RV710/730 HDMI Audio [Radeon HD 4000 series]
</code>
<p>The Broadcom wireless card driver was enabled by default.</p>
<p>The only thing I keep forgetting is the audio. The normal speakers work fine. But the headphones are something you have to enable.
Just add options <code>snd-hda-intel model=dell-m6</code> to <code>/etc/modprobe.d/alsa-base.conf</code> and reboot.</p>
<p>The last thing to do was to install chromium, virtual box, calibre and 7zip, and that's it.</p>
<p>Thunderbird, Firefox, Chromium, Calibre, they all found there previous settings.</p>
<p>Ready to go.</p>
<p>First impressions?</p>
Being used to unity, it looks the same. Tidy and fast. I like the bar with the applications by the side.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-78003626819206731232012-04-23T13:05:00.000+02:002012-04-23T13:05:44.701+02:00De 3de deelname aan de Antwerp 10 miles zit erop. Het doel is weer gehaald, 10 % sneller dan vorige keer. En dat is gelukt. Daarvoor moest ik onder de 1 uur 45 blijven, en met 1 uur 44 is dat weer netjes gelukt.
Zoals altijd gaan we met een hele groep mensen. Altijd leuk om achteraf ervaringen uit te wisselen en een glas Cava te drinken op de goede afloop.
Vandaag voelen de benen eigenlijk redelijk goed. Ondanks het feit dat we eigenlijk de hele dag hebben rechtgestaan.
De Run zelf begon snel, ik had me vooraan in het vak van de 1u45 gezet. Maar na een paar honderd meter voelde het te snel aan. De ben en liepen niet soepel en voelden gespannen. Dat bleef zo tot na het justitie paleis, dan begon het wat te beteren. Het tempo verlies bleef binnen de perken. Op halfweg zat ik dan ook net halfweg de doel tijd, zonder overschot. Gelukkig scheen daar de zon nog een beetje.
Door de binnen stad en de Meir naar de Paardemarkt en dan naar de Konijnenpijp, het blijft speciaal. Vreemd genoeg schuilt de zon altijd achter de wolken op dat stukje van het parcours. De knie kwam af en toe klagen, maar de pijn ging telkens terug weg.
De konijnenpijp, het moment om wat verloren tijd in het halen op het stuk naar beneden. Half weg een klein opstopping, de hulpdiensten hadden daar hun handen vol met een minder fortuinlijke loper.
De laatste klim naar de uitgang (of weg naar de Hemel), blijven doorgaan met kleinere passen, proberen zoveel mogelijk het tempo hoog te houden. En dan het laatste stuk. Toch nog proberen te versnellen om toch maar die tijd te halen. Benen die tegenpruttelen. Het ritme dat niet goedkomt. De laatste bogen voor de eindmeet. En dan ben je er en zie je dat het gehaald hebt. Net optijd.
Samen met tientallen anderen. Blij.
Er was veel volk, heel veel volk. Het was drummen aan de eindmeet. Een beetje spijtig. Gelukkig waren de opkomende krampen nog onder controle te houden.
Het was goed. Volgende doel: een halve marathon. Dat lijkt veel, maar het is maar 5 km verder. Iets meer dan een half uurtje. Dat zou geen probleem mogen zijn :-).
<a href="http://www.sportstracklive.com/track/detail/andrethemac/Running/Antwerpen/20120422/580412">Het parcours en mijn tijd</a><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-89025135405727521122011-11-24T20:21:00.001+01:002011-11-24T20:23:43.177+01:00Printing in Ubuntu Linux on a Canon Pixma printerAfter all the problems I had with a Canon Pixma printer. This guy has a driver that works, even on ubuntu's 64 bit 11.10 Oneiric.
http://www.ubuntubuzz.com/2011/06/download-install-canon-printer-driver.html
Better than the solutions I had before.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-77843601763075465682011-11-23T21:08:00.001+01:002011-11-24T20:24:10.880+01:00upgrading from ubuntu 11.04 to 11.10After trying out the new Ubuntu on the net book, I decided to take the plunge and upgraded the main computer as well.
But being careful I took some precautions.
The hard drive is split up in 3 partitions, the partition with rot, another for the /home partition and a swap partition.
First another backup with "back in time (root)" for the /home partition, then a copy of the root with dd to an external drive (dd if=/dev/sda1 of=/media/extdrive/sda2.img bs=1024.
The upgrade is done through the update manager. The whole process went smooth an took about 45 minutes.
Rebooting and logging in. First time took some extra time, but everything worked as expected.
Even better, wireless was stable this time, no more freezing of the whole computer anymore.
Only the printer will take some time, but Canon makes good printers, but with lousy Linux integration.
Ubuntu 11.10 looks nice and clean, and nice to the eyes. Because most of my (computer) life goes on in a browser, the os is not that important to me.
I rather likes a clean GUI with less bells than an overload GUI, or better who hides the lot for me.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-79506728238499343462011-11-19T21:13:00.001+01:002011-11-19T21:46:10.628+01:00replacing the HD in a netbook with a SSDA couple of months ago I bought a Solid State Disk to replace the Hard disk in my Netbook (an <a href="http://www.asus.com/Eee/Eee_PC/Eee_PC_1005HA_Seashell/">asus eee pc 1005 HA</a>).<br>
I've choosen an <a href="http://www.ocztechnology.com/ocz-vertex-plus-series-sata-ii-2-5-ssd.html">OCZ Vertex Plus</a> drive with 60 GB of space.<br>
Why replacing a perfectly good drive ? Well, for the speed of an ssd, the extra time you get out of the battery, and last but not least, to get some experience with SSD drive's.<br>
The OCZ Vertex Plus is a SATA II drive, fast enough for the eee's sata port. 60 GB is more than enough for a computer mostly used for surfing and reading. The Vertex Plus seemed the right choice for an reasonable price (meaning, it's cheap).<br>
Opening the asus and replacing the drive was rather easy, with many thanks to the posters on <a href="http://www.youtube.com/watch?v=QrdyWpumP_4&feature=related">youtube</a>.<br>
Next step was installing an OS. I've choosen the ubuntu 11.04, the os that was on the netbook before the replacement of the disk.<br>
Booting from an USB stick and installing was easy.<br>
But then came the cold shower. After rebooting the netbook, nothing was found on the disk.<br>
Trying the who installation process again, but alas, no success.<br>
Surfing for solutions, I found out that the Vertex Plus had major issues with certain chip sets.
The Intel 945 chip sets, as used in thee eee pc corrupted the boot sector (<a href="http://www.ocztechnologyforum.com/forum/showthread.php?93863-Vertex-Plus-60GB-OCZSSD2-1VTXPL60G-won-t-work-on-Gateway-LT2016U-netbook&highlight=ubuntu+vertex+plus">as seen here</a>).<br>
The first firmware upgrade (version 3.5) did nothing to solve the problem.<br>
But the second firmware upgrade to version <a href="http://www.ocztechnology.com/ssd_tools/OCZ_Vertex_Plus/">3.55</a> solved the problem.<br>
The netbook is now humming away with ubuntu 11.10. Booting the machine is fast, very fast. Overal response is fast as well. The old netbook now feels a lot snappier.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-61744965199725871602011-10-29T21:21:00.003+02:002011-10-29T21:22:27.540+02:0039 years to double mankindThe Guardian has this little nice calculator. It shows you how many earthlings there were the day you were born.<br />
When I was born there were 3,245,121,422 people on earth.<br />
My son is born exactly 39 years later, we where with 6,404,053,015<br />
In those 39 years, mankind was nearly doubled, scary<br />
<br />
<a href="http://www.guardian.co.uk/environment/interactive/2011/oct/24/how-big-worlds-population-born">link to the Guardian</a><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-464210408341192432011-05-18T17:39:00.003+02:002011-05-18T17:43:53.689+02:00ubuntu 11.04 en audio op Dell 1747Na de update naar ubuntu leek alles te werken, behalve de hoofdtelefoontjes.<br />Dit probleem had ik vorige keer ook (met ubuntu 10.04).<br />Gelukkig is de oplossing eenvoudig<br />volgend regeltje toevoegen aan /etc/modprobe.d/alsa-base.conf<br /><code>options snd-hda-intel model=dell-m6</code><br />en herstarten.<br /><br />klaar<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-5337514533737894532011-05-17T17:21:00.004+02:002011-05-17T18:49:07.465+02:00upgrade naar ubuntu 11.04 aka natty narwalNa de netbook heeft ook de laptop een upgrade gekregen. Er draait nu ubuntu 11.04 op.<br />De netbook heeft de upgrade gekregen via softwarecentrum, dat ging vlot en zonder problemen.<br />De laptop is iets grondiger aangepakt.<br />Eerst een backup van de /home partitie en van de systeem partitie.<br />Dan opgestart met een cd van Ubuntu 11.04 AMD 64 bit versie.<br />De cd ontdekt zelf dat er al een ubuntu 10.04 geinstalleerd was, en geeft je de kans deze up te graden. Maar dat doen we dus niet.<br />De home partitie hergebruiken we zoals ze is maar de systeem (root of / ) partitie wordt geformateerd met ext4.<br />Na een half uurtje geduld en één herstart later ben je klaar.<br />Terug aanmelden en je vindt je gegevens netjes terug.<br />Alleen nog de programma's terug installeren die je echt nodig hebt.<br />Firefox vind je addons en bookmarks vlot terug. Email moet je ook niet opnieuw instellen. Firefox heeft wel het probleem dat er steeds om te herstarten wordt gevraagd.<br />Een terminal opstarten en "sudo apt-get --reinstall firefox" is voldoende om het probleem op te lossen.<br />Banshee inruilen voor Rythmbox is ook geen probleem, alleen weet ik niet of ik banshee boven rythmbox ga verkiezen.<br /><br />Alleen nog de andere gebruikers opnieuw aanmaken, in de zelfde volgorde als vorig keer.<br /><br />En voila, een nieuwe verse installatie zonder rommel van het verleden.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-9778259443588879002011-04-16T20:14:00.002+02:002011-04-16T20:15:58.722+02:00Robotje poging 0.2dit is een verbeterde versie van de controller software.<br />De ir sensor zijn ook dichter bij elkaar gezet, zo kijkt de robot iets meer voor zicht uit.<br /><br /><br /><pre><br /><span style="color: #7E7E7E;">// left motor is on pin 3 and 4 of motorboard</span><br /><span style="color: #CC6600;">int</span> l_direction = 7; <span style="color: #7E7E7E;">// select the pin for the E2 Left motor direction</span><br /><span style="color: #CC6600;">int</span> l_motor = 6; <span style="color: #7E7E7E;">// select the pin for the M2 Left motor speed</span><br /><span style="color: #CC6600;">int</span> l_sensorPin = 1; <span style="color: #7E7E7E;">// select the input pin for the sensor</span><br /><span style="color: #CC6600;">int</span> l_sensorValue = 0; <span style="color: #7E7E7E;">// variable to store the value coming from the sensor</span><br /><span style="color: #CC6600;">boolean</span> l_directionValue = <span style="color: #006699;">HIGH</span>; <span style="color: #7E7E7E;">// variable to store the direction</span><br /><br /><span style="color: #7E7E7E;">// right motor is on pin 1 and 2 of motorboard</span><br /><span style="color: #CC6600;">int</span> r_direction = 4; <span style="color: #7E7E7E;">// select the pin for the E1 Right motor direction</span><br /><span style="color: #CC6600;">int</span> r_motor = 5; <span style="color: #7E7E7E;">// select the pin for the M1 Right motor speed</span><br /><span style="color: #CC6600;">int</span> r_sensorPin = 0; <span style="color: #7E7E7E;">// select the input pin for the sensor</span><br /><span style="color: #CC6600;">int</span> r_sensorValue = 0; <span style="color: #7E7E7E;">// variable to store the value coming from the sensor</span><br /><span style="color: #CC6600;">boolean</span> r_directionValue = <span style="color: #006699;">HIGH</span>; <span style="color: #7E7E7E;">// variable to store the direction</span><br /><br />#define button 2 <span style="color: #7E7E7E;">//frontbutton</span><br /><span style="color: #CC6600;">boolean</span> front;<br /><span style="color: #CC6600;">unsigned</span> <span style="color: #CC6600;">long</span> <span style="color: #CC6600;">int</span> timer_reversing;<br /><span style="color: #CC6600;">unsigned</span> <span style="color: #CC6600;">long</span> <span style="color: #CC6600;">int</span> timer_turning;<br /><span style="color: #CC6600;">boolean</span> reversing;<br /><span style="color: #CC6600;">boolean</span> turning;<br /><span style="color: #CC6600;">char</span> turndirection;<br /><br /><span style="color: #CC6600;">void</span> <span style="color: #CC6600;"><b>setup</b></span>() {<br /> <span style="color: #CC6600;">pinMode</span>(l_direction, <span style="color: #006699;">OUTPUT</span>);<br /> <span style="color: #CC6600;">pinMode</span>(r_direction, <span style="color: #006699;">OUTPUT</span>);<br /> <span style="color: #CC6600;">pinMode</span>(button,<span style="color: #006699;">INPUT</span>);<br /> reversing = <span style="color: #CC6600;">false</span>;<br /> turning = <span style="color: #CC6600;">false</span>;<br /> turndirection = <span style="color: #006699;">'n'</span>;<br /><span style="color: #7E7E7E;">// Serial.begin(57600);</span><br />}<br /><br /><span style="color: #CC6600;">void</span> <span style="color: #CC6600;"><b>loop</b></span>() {<br /> l_sensorValue = readsensor(l_sensorPin);<br /> r_sensorValue = readsensor(r_sensorPin);<br /><br /> l_directionValue = setDirection(l_sensorValue);<br /> r_directionValue = setDirection(r_sensorValue);<br /> <br /> front = <span style="color: #CC6600;">digitalRead</span>(button);<br /> <span style="color: #CC6600;">if</span> (front == <span style="color: #006699;">HIGH</span>) {<br /> l_directionValue = <span style="color: #006699;">LOW</span>; <br /> r_directionValue = <span style="color: #006699;">LOW</span>; <br /> }<br /> <span style="color: #CC6600;">if</span>(l_sensorValue < 20 && r_sensorValue < 20) {<br /> start_reverse();<br /> } <br /> turn();<br /> <br /><span style="color: #7E7E7E;">// serialprint(l_sensorValue,l_directionValue,r_sensorValue,r_directionValue);</span><br /> <br /> controlMotor(<span style="color: #006699;">'l'</span>,l_sensorValue,l_directionValue);<br /> controlMotor(<span style="color: #006699;">'r'</span>,r_sensorValue,r_directionValue);<br />}<br /><br /><span style="color: #CC6600;">void</span> start_reverse(){<br /> <span style="color: #CC6600;">if</span> (reversing == <span style="color: #CC6600;">false</span>) {<br /> timer_reversing = <span style="color: #CC6600;">millis</span>() + 1000;<br /> reversing = <span style="color: #CC6600;">true</span>;<br /> }<br />}<br /><span style="color: #CC6600;">void</span> start_turn() {<br /> <span style="color: #CC6600;">if</span> (turning == <span style="color: #CC6600;">false</span>) {<br /> timer_turning = <span style="color: #CC6600;">millis</span>() + 500;<br /> turning = <span style="color: #CC6600;">true</span>;<br /> }<br />}<br /><span style="color: #CC6600;">void</span> reverse() {<br /> <span style="color: #CC6600;">if</span> (timer_reversing < <span style="color: #CC6600;">millis</span>() ) {<br /> <span style="color: #CC6600;">if</span>(reversing == <span style="color: #CC6600;">true</span>) {<br /> start_turn();<br /> <span style="color: #CC6600;">if</span>(l_sensorValue < r_sensorValue) {<br /> <span style="color: #7E7E7E;">//turn left</span><br /> turndirection = <span style="color: #006699;">'l'</span>;<br /> } <span style="color: #CC6600;">else</span> {<br /> <span style="color: #7E7E7E;">// turn right</span><br /> turndirection = <span style="color: #006699;">'r'</span>;<br /> }<br /> }<br /> reversing = <span style="color: #CC6600;">false</span>;<br /> }<br />}<br /><span style="color: #CC6600;">void</span> turn() {<br /> <span style="color: #CC6600;">if</span> (turning == <span style="color: #CC6600;">true</span> && reversing == <span style="color: #CC6600;">false</span>) {<br /> <span style="color: #CC6600;">switch</span> (turndirection) {<br /> <span style="color: #CC6600;">case</span> <span style="color: #006699;">'l'</span>:<br /> <span style="color: #7E7E7E;">//turn left</span><br /> l_directionValue = <span style="color: #006699;">LOW</span>;<br /> r_directionValue = <span style="color: #006699;">HIGH</span>;<br /> <span style="color: #CC6600;">break</span>;<br /> <span style="color: #CC6600;">case</span> <span style="color: #006699;">'r'</span>:<br /> <span style="color: #7E7E7E;">// turn right</span><br /> l_directionValue = <span style="color: #006699;">HIGH</span>;<br /> r_directionValue = <span style="color: #006699;">LOW</span>;<br /> <span style="color: #CC6600;">default</span>:<br /> l_directionValue = <span style="color: #006699;">HIGH</span>;<br /> r_directionValue = <span style="color: #006699;">HIGH</span>;<br /> }<br /> }<br /> <span style="color: #CC6600;">if</span> (timer_turning < <span style="color: #CC6600;">millis</span>() ) {<br /> turning = <span style="color: #CC6600;">false</span>;<br /> }<br />}<br /><br /><span style="color: #CC6600;">boolean</span> setDirection(<span style="color: #CC6600;">int</span> value) {<br /> <span style="color: #CC6600;">if</span> (value > 0) {<br /> <span style="color: #CC6600;">return</span> <span style="color: #006699;">HIGH</span>;<br /> } <span style="color: #CC6600;">else</span> {<br /> <span style="color: #CC6600;">return</span> <span style="color: #006699;">LOW</span>;<br /> }<br />}<br /><span style="color: #CC6600;">int</span> readsensor(<span style="color: #CC6600;">int</span> sensor) {<br /> <span style="color: #CC6600;">int</span> value = <span style="color: #CC6600;">map</span>(<span style="color: #CC6600;">analogRead</span>(sensor), 0, 512, 255, 0);<br /> <span style="color: #CC6600;">return</span> value;<br />}<br /><br /><span style="color: #CC6600;">void</span> controlMotor(<span style="color: #CC6600;">char</span> side, <span style="color: #CC6600;">int</span> value, <span style="color: #CC6600;">boolean</span> directionValue){<br /> reverse();<br /> <span style="color: #CC6600;">if</span> (reversing == <span style="color: #CC6600;">true</span>){<br /> directionValue = <span style="color: #006699;">LOW</span>;<br /> }<br /> <span style="color: #CC6600;">switch</span>(side){<br /> <span style="color: #CC6600;">case</span> <span style="color: #006699;">'r'</span>:<br /> <span style="color: #CC6600;">analogWrite</span>(l_motor,value); <br /> <span style="color: #CC6600;">digitalWrite</span>(l_direction,directionValue);<br /> <span style="color: #CC6600;">break</span>;<br /> <span style="color: #CC6600;">case</span> <span style="color: #006699;">'l'</span>:<br /> <span style="color: #CC6600;">analogWrite</span>(r_motor,value); <br /> <span style="color: #CC6600;">digitalWrite</span>(r_direction,directionValue);<br /> <span style="color: #CC6600;">break</span>;<br /> }<br />}<br /><br /><span style="color: #CC6600;">void</span> serialprint(<span style="color: #CC6600;">int</span> l_s, <span style="color: #CC6600;">int</span> l_d, <span style="color: #CC6600;">int</span> r_s, <span style="color: #CC6600;">int</span> r_d) {<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(<span style="color: #006699;">"l = "</span>);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(l_s);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(<span style="color: #006699;">" Dir = "</span>);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(l_d);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(<span style="color: #006699;">" r = "</span>);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(r_s);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(<span style="color: #006699;">" Dir = "</span>);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">print</span>(r_d);<br /> <span style="color: #CC6600;"><b>Serial</b></span>.<span style="color: #CC6600;">println</span>(<span style="color: #006699;">""</span>);<br />}<br /><br /></pre><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-25263482555209573472011-04-15T17:15:00.002+02:002011-04-15T17:22:00.377+02:00De Antwerp 10 milesZondag is het weer zover en gaan we een tweede keer de 10 miles van Antwerpen lopen (zo'n 16 km). Een stads loop door het mooiste van Antwerpen. De knieën doen wat pijn, maar de rest zit redelijk goed. Al had het gewicht wat minder mogen zijn. <br />Het weer ziet er goed uit, geen regen, 17 graden.<br />Ik hoop het rondje binnen de twee uur te lopen. Dat is geen top tijd, maar ik ben dan ook geen toploper. Als je pas op latere leeftijd begint te lopen, eigenlijk wat overgewicht meesleurt en geen competitie beest bent, dan is dat niet slecht. Al zeg ik het zelf.<br />Soit, we gaan dan ook meer voor de fun en het gezelschap en niet voor de competitie.<br />Tot lopens.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-55288735586077860802011-04-14T11:24:00.010+02:002011-04-14T11:53:40.030+02:00Robotje poging 0.1Benodigdheden:<br />1 robotplatform met 2 wielen en 2 motortjes (<a href="http://www.http://iprototype.nl/products/robotics/robot-2wd">voorbeeld</a>)<br />1 arduino uno (<a href="http://www.iprototype.nl/products/arduino/boards/uno">voorbeeld</a>)<br />1 motorshield voor arduino uno (<a href="http://www.http://iprototype.nl/products/arduino/shields/motor-2A">voorbeeld</a>)<br />2 ir sensors (<a href="http://www.iprototype.nl/products/components/sensors/ir-sensor-4-30">voorbeeld</a>)<br /><br />Het robotje in elkaar vijzen is eenvoudig. Om de motortjes aan te sluiten heb je wat soldeer nodig. <br />Het robotje is nog niet perfect. Objecten schuins vooraan worden opgemerkt en ontweken, maar wat recht voor de robot is worden niet gezien en dus niet ontweken.<br /><br />de sketch:<br />int l_sensorPin = 0; // select the input pin for the sensor<br />int r_sensorPin = 1; // select the input pin for the sensor<br />int l_ledPin = 11; // select the pin for the LED<br />int r_ledPin = 10; // select the pin for the LED<br />int l_sensorValue = 0; // variable to store the value coming from the sensor<br />int r_sensorValue = 0; // variable to store the value coming from the sensor<br /><br />int E1 = 4; // select the pin for the E1<br />int E2 = 7; // select the pin for the E2<br />int M1 = 5; // select the pin for the M1<br />int M2 = 6; // select the pin for the M2<br /><br />void setup() {<br /> pinMode(E1, OUTPUT);<br /> pinMode(E2, OUTPUT);<br />}<br /><br />void loop() {<br /> // read the value from the sensor:<br /> digitalWrite(E1,HIGH);<br /> digitalWrite(E2,HIGH);<br /> l_sensorValue = analogRead(l_sensorPin);<br /> r_sensorValue = analogRead(r_sensorPin);<br /> <br /> l_sensorValue = map(l_sensorValue,0,512,255,0);<br /> r_sensorValue = map(r_sensorValue,0,512,255,0);<br /><br /> analogWrite(M1,l_sensorValue); <br /> analogWrite(l_ledPin,l_sensorValue); <br /> analogWrite(M2,r_sensorValue); <br /> analogWrite(r_ledPin,r_sensorValue); <br />}<br /><br /><object style="height: 195px; width: 320px"><param name="movie" value="http://www.youtube.com/v/n5i7XT8LaMI?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/n5i7XT8LaMI?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="320" height="195"></object><br /><br /><br /><object style="height: 195px; width: 320px"><param name="movie" value="http://www.youtube.com/v/6Iin3M88eyY?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/6Iin3M88eyY?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="320" height="195"></object><div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-37142533805326783902011-02-18T15:28:00.001+01:002011-02-18T15:28:52.922+01:00Snel een RAID1 maken op UBUNTU 10.10Benodigdheden<br />
1 computer met ubuntu<br />
2 harde schijven (beide zonder gegevens die nog nodig zijn, dus niet de boot disk)<br />
Deze twee schijven zijn het best identie, zeker wat betreft de performatie. De kleinste van de twee bepaalt de grootte van de uiteindelijke raid<br />
<br />
stappen<br />
<code>installeer mdadm</code><br />
<code>sudo apt-get install mdadm</code><br />
<br />
kijk of de schijven gevonden worden door de computer<br />
<code>sudo fdisk -l</code><br />
Hier zou je 3 schijven moeten vinden, 1 met je al werkende partities, meestal /dev/sda[1-9]<br />
en 2 anderen (meestal /dev/sdb en sdc)<br />
maak op sdb en sdc een paritie die even groot is<br />
<code>sudo fdisk /dev/sdb</code><br />
<code>sudo fdisk /dev/sdc</code><br />
<br />
formateren is niet nodige<br />
maak de raid<br />
<code>sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1</code><br />
<br />
controleer<br />
<code>sudo mdadm --detailled /dev/md0</code><br />
<br />
wacht tot de sync is afgelopen, je kan dit volgen met<br />
<code>sudo cat /proc/mdstat</code><br />
opgelet, hoe groter de raid, hoe langer het duurt (op mijn testsysteem nam een raid 1 met 2 disk en een grootte van 1 Tbyte ongeveer 6 uur in beslag.<br />
<br />
maak je partities en formateer een volume<br />
<code>sudo fdisk /dev/md0</code><br />
<code>mkfs -t ext4 /dev/md0</code><br />
<br />
that's it<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-61862822772359590692010-10-31T21:03:00.000+01:002010-10-31T21:03:53.367+01:00het einde van de start to runHet is gelukt, de starttorun is afgelopen. En nu begint het echte werk.<br />
6 km, de eerste stap naar de 10 miles in april. Hoe het ging ? <a href="http://worksmartlabs.com/cardiotrainer/tracks.php?trackId=666513705&sig=273854270726e099664547da05a0f5b1be09c22f">Hier zie je hoe het ging.</a><br />
Het was lekker weer. Warmer dan ik dacht, het zweet liep in emmers van mijn lijf.<br />
Het bos was nog modderig en dat maakte het wat zwaar. Maar het was de moeite waard.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-37347589014461449592010-10-19T20:30:00.001+02:002010-10-19T20:51:10.217+02:00skype op ubuntu 10.04 64bitHet heeft lang geduurd, maar nu toch maar eens skype geprobeerd.<br />
Op windows geen probleem, maar op ubuntu 10.04 (64 bit versie) kreeg ik volgende foutmelding.<br />
Fatal: Cannot mix incompatible Qt libraries<br />
wat rondgooglen gaf niet echt veel resultaat. Wel vond ik een aantal links naar skype-static.<br />
(via <a href="http://playingwithsid.blogspot.com/2010/03/skype-video-chat-on-ubuntu-1004-lucid.html">hier</a>).<br />
<a href="http://www.skype.com/go/getskype-linux-beta-static">skype static</a> dan maar gedownload en uitgepakt.<br />
<code>tar -xzvf skype_static-2.1.0.81.tar.gz</code><br />
en naar de directory gegaan<br />
<code>cd skype_static-2.1.0.81</code><br />
skype-static opgestart<br />
<code>skype</code><br />
en die werkte wel<br />
dan maar de locatie van de geinstalleerde, maar niet werkende versie van skype gezocht<br />
(/usr/bin/skype), deze hernoemt en de static versie naar deze plaats gekopieerd.<br />
<code>sudo mv /usr/bin/skype /usr/bin/skype-org<br />
sudo cp skype /usr/bin/skype</code><br />
En nu werkt het wel.<br />
Hoera<br />
update: de webcam wordt ook herkent, nogmaals hoera<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-77816837778369497852010-08-31T22:04:00.000+02:002010-08-31T22:04:11.466+02:00Lopen (the story continues)De schoenen zijn al wat ingelopen. We zijn al een 3 weken en 12 loop sessies verder.<br />
Het lopen doen we rustig aan met (opnieuw) een start to run. Het gaat goed. De knie houdt het vol en de rest ook :⁻)<br />
De schoenen zitten lekker en ze doen het goed, ook op andere ondergrond dan asfalt. Goede grip en lekker licht. De vakantie is bijna uit en het lopen zal nu wel wat minderen. Zeker nu het al wat vroeger donker wordt.<br />
Tot lopens<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-32761691889623871772010-08-13T21:08:00.000+02:002010-08-13T21:08:45.666+02:00Nieuwe SchoenenHier zijn ze dan. Nieuwe loopschoenen, aangepast aan mijn gewrichten. En ze lopen lekker.<br />
We kunnen dus opnieuw beginnen. Langzaam opbouwen om volgend jaar de ten miles van Antwerpen te lopen. Ditmaal met een iets minder geforceerde training.<br />
Let the running begin.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0tag:blogger.com,1999:blog-8182776180324957800.post-75064609376045761862010-07-17T10:46:00.000+02:002010-07-17T10:46:59.650+02:00Internet in het buitenland duur en soms onveilig<a href="http://www.deredactie.be/permalink/1.826994">Internet in het buitenland duur en soms onveilig</a><br /><br />Ook in belgie is dit het geval. Het is overal even onveilig. Alle operatoren gebruiken dezelfde technologie. Het is dus onrealistisch te denken dat het hier veiliger zou zijn. <br />En duur, wat dacht je, als bellen met de gsm in het buitenland duurder is, is internet via de gsm dat ook. Sprookjes bestaan niet. Het is niet omdat niet moet bellen voor je skype gesprek, dat de verbinding niets kost. Gratis bestaat niet, toch niet als het door mensen gemaakt is.<br />En Wifi? Alleen met wpa2 beveiligde netwerken zijn een beetje veilig, al de rest niet, waar ze ook zijn.<br />Internet is (nog altijd) een onderzoeksnetwerk dat gepromoveerd is tot de nieuwe (information)highway. (of Infobahn zoals het ooit werd genoemd). Maar het is een technologie de ontwikkeld is om als onderzoeks object te dienen. En ze is nog lang niet klaar. Net dat maakt dat er nog veel problemen mee zijn, vooral beveiligings problemen.<br />Vergeet niet dat het internet ontwikkeld is om data van plaats A naar B te krijgen, op welke wijze dan ook. Of het veilig gebeurde was (toen nog) niet aan de orde.<br />Spijtig genoeg is het grote success van het huidige internet, net dat wat het moeilijk maakt om de sprong naar de opvolger te maken.<div class="blogger-post-footer">follow me
http://twitter.com/andrethemac
</div>andrethemachttp://www.blogger.com/profile/08672985379660367480noreply@blogger.com0