To display the most relevant entries to you in priority,
vote for the stories you are interested in
(  )
and reject those that you are not interested in
(  )
O'Reilly Network Articles -
4 hours and 2 minutes ago
Myth of China's Manufacturing Prowess -- The latest data shows [...] that the United States is
still the largest manufacturer in the world. In 2008, U.S. manufacturing output was $1.8 trillion,
compared to $1.4 trillion in China (UN data. China’s data do not separate manufacturing from
mining and utilities. So the actual Chinese manufacturing number should be much smaller). Also
contains pointers to an interesting discussion of lack of opportunities for college grads in China.
This and more in today's Four Short Links. 
|
iLounge | All Things iPod, iPhone, iTunes and beyond -
4 hours and 34 minutes ago
As an interesting new protective shell for the iPhone 3G and 3GS, Zero Chroma's Projeto ($35) does
three things: it covers the back and parts of the iPhone's sides, includes an 18-position pop-out
video stand that lets you ratchet your way to your preferred viewing angle, and also has a "Sound
Scoop" that channels the iPhone's bottom speaker output towards the front of the unit. While it
falls short of offering the sort of top, bottom, front, and... 
|
MacUpdate - Mac OS X -
5 hours and 55 minutes ago
Splunk 4.0.10
Splunk Server indexes logs from ANY source (apache, OS X, sendmail, routers). No
need to configure it for specific formats, write regular expressions or change your logging
output.
Search mountains of data by time, keywords, type of event, source, host or relationships to other
events. Note: Splunk is server software. You configure and use the software via a web browser.
WHAT'S NEWVersion 4.0.10: Release notes were unavailable when this listing was updated.
REQUIREMENTSMac OS X 10.5 or later.
PRICEFree
DEVELOPER Splunk,
Inc
DOWNLOADS9964
DOWNLOAD NOW (153 MB)
More information
|
NewTeeVee -
6 hours and 27 minutes ago
The Numbers Behind the World’s Fastest-growing Web Site: YouTube’s Finances
Revealed; Viacom releases YouTube’s finances from before the Google acquisition.
(MediaMemo)
Hulu’s Ad Sales Team Is Undercutting Its Parent Companies; Hulu’s
sales team is “actively subverting” the ad sales of its parent companies, which are
also trying to sell ads for their shows, according to a source. (The
Business Insider)
ITV Goes Cold on YouTube, Hulu; a senior ITV executive says that the broadcaster
has “no plans” to do output deals to put its programming on video-on-demand
aggregation services such as Hulu, YouTube, SeeSaw or MSN Video Player. (paidContent)
Madison Avenue Finds Old and New Media Can Coexist; more marketers are turning
to web video, but many are increasingly doing so along with — rather than in
place of — television. (NY
Times)
Indie Web Producers Try to Overturn BBC’s Online Cull; Pact (the Producers
Alliance for Cinema and Television), which represents independent online multimedia producers
that have work commissioned from the BBC and others, urges the BBC not to cut its investment in
digital media. (paidContent:UK)
The Guardian Finds Video Success With the Contextualization of Content; the
newspaper has been innovating with online video since 2006, has invested heavily in video
operations in its new headquarters and is finding traction with its own brand of journalistic
video. (Beet.TV)


|
BusinessWeek Online -- -
7 hours and 30 minutes ago
Boeing Co., the world’s second- largest commercial-plane maker, will accelerate planned rate
increases on both the 777 and 747 programs because of increasing demand from customers.
|
MAKE Magazine -
8 hours and 28 minutes ago
Repurposing a leftover CO2 cylinder and regulator, maker Joel Miller assembled this DIY home carbonation unit after a
quick parts run.
The carbonating process is simple. Fill an empty bottle with the liquid of your choice and
refrigerate it. Replace the cap with the special one you made and attach the quick-disconnect hose
to it. Make sure the shutoff valve on the regulator is closed, then slowly open the main valve on
the tank until the regulator shows pressure. Adjust the output pressure to about 45psi and open the
shutoff valve, pressurizing the bottle. Now loosen the cap on the bottle just slightly while
squeezing any air space out of the neck of the bottle, then tighten the cap. This will purge any
air from the bottle and replace it with CO2. Now shake the bottle vigorously for about 20-30
seconds; this will help dissolve the CO2 into the liquid faster. Shut off the CO2 at the regulator
and disconnect the hose from the quick-disconnect fitting. You can now remove the special cap
(slowly, the contents are now carbonated!) and replace it with a regular cap.
So on the first day I made seltzer water. On the second day I carbonated apple juice, grape juice,
and Gatorade, and ended the evening with a carbonated vodka martini (nice!). What else can I
carbonate?
Just to be on the safe side, Joel also mentions:
VERY IMPORTANT: Apparently there is a chemical reaction between the CO2 dissolved in water and
copper (or copper alloys like brass) that creates a toxic substance that will make you sick. Never
use brass or other copper-based fittings with seltzer! All of these fittings (or at least the ones
that will be in contact with the seltzer for any length of time) are either zinc-plated steel or
stainless. Read
more | Permalink | Comments |
Read more articles in Chemistry |
Digg this!

|
Fareastgizmos.com -
9 hours ago
Sharp has developed and will introduce a CMOS camera unit designed for vehicle rearview monitoring
systems.The 1/3.7-type RJ642A10000Q CMOS camera unit developed by Sharp features a resolution of
320,000 pixels with the industry’s thinnest profile of 19.5 mm. The Sharp 1/3.7-type
RJ642A10000Q CMOS device is a single camera unit integrating a high-sensitivity CMOS image sensor
with on-board image processing circuitry and a lens inside a dustproof and waterproof enclosure
with an attached video output cable. Due to its compact size...
|
O'Reilly Radar -
11 hours and 28 minutes ago
Tsung -- GPLed multi-protocol (HTTP, PostgreSQL, MySQL, WebDAV, SOAP, XMPP) load tester written in
Erlang. Myth of China's Manufacturing Prowess -- The latest data shows [...] that the United States
is still the largest manufacturer in the world. In 2008, U.S. manufacturing output was $1.8
trillion, compared to $1.4 trillion in China (UN data. China’s data do not separate...
|
TechConnect Magazine -
12 hours and 47 minutes ago
Taiwanese titan Gigabyte Technology has just revealed its plans to introduce a secsy and pretty
feature-rich mini-ITX motherboards based on Intel's H55 chipset. Known as H55N-USB3, the upcoming
board has support for LGA 1156 processors, two DDR3 memory slots, four SATA ports, a PCI-Express
x16 slot for more serious graphics, and, as its name suggests, USB 3.0 connectors, two of them
(likely powered by NEC's famous
controller).
Gigabyte's product also packs Gigabit Ethernet, 7.1 channel audio, an eSATA port, as well as D-Sub,
DVI and HDMI outputs. The H55N-USB3 is expected to hit stores around mid-April.
Photo courtesy of PCPOP.

|
TechConnect Magazine -
13 hours and 47 minutes ago
Now this is a proper way to enjoy Friday morning at work, talking about the final specifications of
Nvidia's first DirectX 11-supporting cards, the GeForce GTX 480 and GTX 470. As reported, the GeForce GTX 470 is set to have a recommended price tag of $349
and feature 448 CUDA Cores, a 320-bit memory interface, a GPU clock of 607 MHz, a shader frequency
of 1215 MHz and 1280MB of GDDR5 memory @ 1674 MHz (3348 MHz DDR). The card's TDP is 225W.
The high and almost mighty GeForce GTX 480 packs 480 Cores, a 384-bit interface, 1536MB of VRAM,
has a 295W TDP and GPU/shader/memory of 700/1041/1848 (3696) MHz. The price tag for this model is
$499.
Both the GTX 480 and GTX 470 have 3-way SLI support, two (6-pin and 8-pin) PCIe power connectors,
take up two PCI slots, support CUDA, PhysX and 3D Vision Surround, and include dual-DVI and HDMI
outputs.
The cards' launch is March 26.
Pictures courtesy of Expreview.

|
Electronista | Gadgets for Geeks -
19 hours and 18 minutes ago
 Dell introduced two new products this week, including its short-throw S300w projector
and Vostro 230 desktop PCs, available in a mini tower and an even smaller slim form factor. The
S300w is capable of displaying 3D images at up to 720p HD resolutions. It outputs at 2,200 lumens,
while its contrast ratio is 2,400:1....
|
Planet Libre -
23 hours and 9 minutes ago
Article publié le 23/09/2009
Depuis quelques mois, les solutions de VPN payant type Ipredator ont fleuri sur la toile. Ces
solutions d'anonymat, séduisantes au premier abord, possèdent un gros point noir :
qui se cache réellement derrière ces VPN ? N'y a-t-il pas un risque que ces «
bienfaiteurs de l'Internet libre » ne revendent un jour toutes les données
collectées ? Comme on n'est jamais mieux servi que par soi-même, nous allons voir
comment monter son propre serveur VPN grâce à OpenVPN. Par ailleurs, ce VPN pourra
aussi vous servir à passer les éventuelles restrictions mises en place sur votre
lieu de travail, ou sécuriser votre connexion lorsque vous devez vous connecter sur des
réseaux publics peu sécurisés.
Configuration du serveur
Avant toute chose, vous devez avoir accès à un serveur, si possible avec une bande
passante suffisante. En effet, ce serveur va servir de relai entre vous et la cible distante : la
bande passante en upload du serveur deviendra votre bande passante en download maximale.
Dès lors, mieux vaut se tourner vers un service professionnel, offrant souvent une bande
passante allant jusqu'à 100 Mb/s (environ 12 Mo/s). Cherchez donc du côté des
VPS (Virtual Private server) : vous
aurez toutes les possibilités d'un serveur dédié, mais à prix (et
performances) réduit. Un serveur OpenVPN est très léger, donc 128 Mo de RAM
devraient être suffisants. En France, Gandi, OVH
ou LWS ont des offres
intéressantes à moins de 15 € par mois. Partagée entre 2
ou 3 personnes de confiance, cette solution est rapidement plus avantageuse qu'une solution type
Ipredator. Attention tout de même car beaucoup de VPS promettent une bande passante de 100
Mbits/s, mais en pratique ce n'est pas le cas. La bande passante n'est pas partagée de
manière équitable entre les différentes machines virtuelles, et
résultat les performances laissent à désirer (j'ai déjà eu le
cas avec du 100 Mbits/s qui en pratique approchait péniblement le 100 kbits/s...).
Cherchez donc des solutions où la bande passante est moindre, mais assurée (comme
Gandi le propose).
Avant de mettre en place votre VPN, pensez à sécuriser votre serveur. Une machine avec IP fixe accessible 24h/24 sera
irrémédiablement la cible d'attaques.
Installation de OpenVPN et création des clés et certificats
Installez tout d'abord OpenVPN, bien souvent disponible dans les dépôts de base de
votre distribution :
marty@server:# apt-get install openvpn
OpenVPN peut fonctionner avec plusieurs types d'authentification. Nous utiliserons
l'authentification par clés et certificats, plus sûre que le classique login/mot de
passe. Pour générer les clés et certificats nécessaires, des scripts
ont été créés et se situent, sous Ubuntu 9.04, dans le dossier
/usr/share/doc/openvpn/examples/easy-rsa/2.0. Commençons par copier tout ceci dans un
répertoire de travail (tout le processus doit s'effectuer en tant que root) :
marty@server:# cd /etc/openvpn marty@server:# cp -r
/usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn marty@server:# mv 2.0/ easy-rsa/
marty@server:# cd easy-rsa/
Modifiez tout d'abord les variables du fichiers vars :
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export
KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain"
Initialisez-le via la commande :
marty@server:# . ./vars
(vous devez bien écrire point/espace/point, ce n'est pas une erreur).
On efface les éventuelles clés présentes :
marty@server:# ./clean-all
On crée le certificat et la clé de l'Autorité de Certification (CA) :
marty@server:# ./build-ca
Les fichiers ca.crt et ca.key sont alors créés dans le dossier keys, et les
variables précédentes devront être confirmées. Ces fichiers sont les
fichiers centraux de la sécurité de votre serveur OpenVPN. La clé vous
servira à signer les clés du (des) serveur(s) ainsi que des différents
clients, et le certificat servira de « carte d'identité » à laquelle
serveur(s) et clients se réfèreront.
On crée le certificat et la clé pour le serveur :
marty@server:# ./build-key-server server
Laissez toutes les options par défaut (y compris la demande de mot de passe), et
répondez « yes » à la question de la signature :
Certificate is to be certified until Sep 5 14:02:19 2019 GMT (3650 days) Sign the certificate?
[y/n]: y 1 out of 1 certificate requests certified, commit? [y/n] y
Le certificat du serveur sera alors signé avec la clé de l'Autorité de
Certification. Les fichiers server.crt et server.key seront créés.
On crée le certificat et la clé pour le client :
marty@server:# ./build-key client1
De la même manière que pour le serveur, on laisse toutes les options par
défaut et on accepte la signature par avec la clé de la CA. Les fichiers
client1.crt et client1.key seront créés. Il est recommandé de créer
une paire certificat/clé par client, de manière à pouvoir les
révoquer par la suite si nécessaire (au cas où le client les perdrait).
Pour que notre serveur fonctionne, nous auront également besoin des paramètres de
Diffie-Hellman :
marty@server:# ./build-dh
Le fichier dh1024.pem est créé. J'avoue, je n'ai pas compris à quoi cela
servait précisément dans le cas de OpenVPN...
Finalement, nous augmentons encore la sécurité de notre serveur grâce
à tls-auth :
marty@server:# openvpn --genkey --secret keys/ta.key
Le fichier ta.key est créé.
Résumé des fichiers créés
Au terme dela génération de ces diverses clés et certificats, nous obtenons
les fichiers suivants :
- ca.crt : certificat de l'Autorité de Certification
-
ca.key : clé de l'Autorité de Certification
- server.crt : certificat du serveur
- server.key : clé du serveur
- client1.crt : certificat du client1
- client1.key : clé du client1
- dh1024.pem : paramètres de Diffie-Hellman
- ta.key : clé utilisée pour tls-auth
En vert, les fichiers qui ne sont pas secrets, en rouge les fichiers secrets. Attention toute
particulière au fichier ca.key qui sert à signer tous les certificats. Il permet
d'autoriser ou non un client, et il est donc fondamental qu'il soit gardé secret !
En pratique, les fichiers nécessaires sont :
- serveur : ca.crt, server.crt, server.key, dh1024.pem et ta.key
- client1 : ca.crt, client1.crt, client1.key et ta.key
Notez bien que le fichier ca.key n'est nécessaire ni sur le serveur, ni chez aucun client
! Gardez-le en lieu sûr ;-)
Fichier de configuration serveur
Toute la configuration s'effectue dans un fichier quelconque, ci-après server.conf.
Voilà un exemple typique :
#Configuration serveur mode server # c'est le fichier de configuration du serveur proto tcp #
protocole TCP port 443 # port 443 (https) dev tun # mode routé #Clefs ca keys/ca.crt cert
keys/server.crt key keys/server.key dh keys/dh1024.pem tls-auth keys/ta.key 0 # 0 pour le serveur
cipher AES-256-CBC # algorithme de chiffrement #Configuration VPN #client-to-client # permet la
connexion entre clients server 10.8.0.0 255.255.255.0 # adresse IP attribuées sur le VPN
push "redirect-gateway def1 bypass-dhcp" # redirection du flux de données push "dhcp-option
DNS 208.67.222.222" # utilisation de DNS alternatifs push "dhcp-option DNS 208.67.220.220"
keepalive 10 120 # ping toutes les 10 secondes, # considéré comme down après
120 secondes sans réponses #Divers user nobody # on passe de l'utilisateur root à
nobody group nogroup # nogroup est typique d'Ubuntu, groupe nobody pour les autres chroot
/etc/openvpn/ovpn_jail # chroot de openvpn persist-key # n'accède plus à certaines
options, persist-tun # car réduction des privilèges utilisateur comp-lzo #
compression des données #Log verb 3 # verbosité du log (1-9, 4 recommandé)
mute 20 # ne répète pas plus de 20 fois un message status openvpn-status.log #
fichier de statut log-append /var/log/openvpn.log # fichier de log
Tout d'abord, le port utilisé (443) a été choisi parce qu'il n'est jamais
bloqué (port https). Vous pouvez utiliser un autre port plus aléatoire si vous ne
devez pas contourner de blocages quelconques.
Le mode routé (dev tun) est préféré au mode bridgé pour sa
plus grande simplicité de configuration. Si vous avez une utilisation « basique
» du VPN, ne vous préoccupez pas de ça.
De nombreux algorithmes de chiffrement sont disponibles. Nous choisissons ici le chiffrement AES
256 bits, qui est assez élevé. Si votre serveur rame, tentez de passer à du
128 bits.
client-to-client permet à deux clients de se connecter l'un à l'autre, par exemple
via un serveur NFS. Dans notre cas, cette ligne est commentée.
server 10.8.0.0 255.255.255.0 définit le range d'adresses IP locales qui seront
attribuées. Le serveur prendra l'adresse 10.8.0.1, et les clients 10.8.0.2, 10.8.0.3,
10.8.0.4... Attention : cette adresse ne doit rentrer en conflit avec aucune autre. Évitez
donc d'utiliser les habituelles 192.168.x.x ou 10.108.x.x.
La ligne contenant « redirect-getaway » spécifie que tout le flux doit
être redirigé vers le VPN. Attention à cette ligne qui peut différer
d'une version à l'autre. Il semble que sous CentOS, il ne faille pas mettre les mots
clés « def1 bypass-dhcp », alors que sous Ubuntu 9.04 cela est obligatoire.
Par la suite, la sécurité est améliorée en diminuant les
privilèges du programme (« user nobody », « group nogroup ») et en
effectuant un chroot (le dossier spécifié doit être créé). De
cette manière, une éventuelle faille d'OpenVPN ne pourra être
exploitée qu'en tant qu'utilisateur restreint, dans un environnement restreint.
Vous pouvez faire un premier test, en commentant la ligne « log-append » pour que le
log s'affiche directement dans le terminal. Pour cela, on lance (en root, dans le dossier
où se trouvent le fichier server.conf ainsi que le répertoire keys) :
marty@server:# openvpn server.conf OpenVPN 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL]
[PKCS11] built on Mar 9 2009 Diffie-Hellman initialized with 1024 bit key /usr/bin/openssl-vulnkey
-q -b 1024 -m Control Channel Authentication: using 'keys/ta.key' as a OpenVPN static key file
Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
TLS-Auth MTU parms [ L:1560 D:168 EF:68 EB:0 ET:0 EL:0 ] ROUTE default_gateway=XXX.XXX.XXX.XXX
TUN/TAP device tun0 opened TUN/TAP TX queue length set to 100 /sbin/ifconfig tun0
10.8.0.1 pointopoint 10.8.0.2 mtu 1500 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw
10.8.0.2 Data Channel MTU parms [ L:1560 D:1450 EF:60 EB:135 ET:0 EL:0 AF:3/1 ] chroot to
'/etc/openvpn/ovpn_jail' and cd to '/' succeeded GID set to nogroup UID set to nobody
Listening for incoming TCP connection on [undef]:443 Socket Buffers: R=[87380->131072]
S=[16384->131072] TCPv4_SERVER link local (bound): [undef]:443 TCPv4_SERVER link remote: [undef]
MULTI: multi_init called, r=256 v=256 IFCONFIG POOL: base=10.8.0.4 size=62 MULTI: TCP INIT
maxclients=1024 maxevents=1028 Initialization Sequence Complete
La première ligne en gras indique que l'interface tun0 a bien été
créée (c'est le réseau virtuel), et les 3 autres que le chroot ainsi que le
changement de propriétaire ont bien fonctionné. Dans un autre terminal, le ifconfig
donne :
eth0 Link encap:Ethernet HWaddr 00:16:3e:51:5f:e9 inet addr:XXX.XXX.XXX.XXX
Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0 inet6 addr: fe80::216:3eff:fe51:5fe9/64 Scope:Link UP
BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:162377096 errors:0 dropped:0 overruns:0
frame:0 TX packets:153812357 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:4278174076 (4.2 GB) TX bytes:2956197161 (2.9 GB) lo Link encap:Local Loopback inet
addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:127075 errors:0 dropped:0 overruns:0 frame:0 TX packets:127075 errors:0 dropped:0
overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:77312107 (77.3 MB) TX bytes:77312107 (77.3
MB) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr: 10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING
NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0
errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0
(0.0 B)
L'adresse IP du serveur sur le réseau virtuel (tun0) est bien 10.8.0.1.
En l'état, votre serveur ne fonctionnera pas. Pourquoi ? Parce que le firewall n'a pas
été configuré bien sûr ;-)
Configuration du firewall
Avant toute chose, on s'assure que le forwarding est activé en tapant dans un terminal (en
root) :
marty@server:# echo 1 > /proc/sys/net/ipv4/ip_forward
Comme dans la section précédente, nous utiliserons Webmin pour configurer le
firewall.
Dans la section Packet filtering, on ajoute les règles :
Incoming packets (INPUT) Accept If protocol is TCP and destination port is 443 Accept If input
interface is tun0 Forwarded packets (FORWARD) Accept If input interface is tun0 Accept If output
interface is tun0
Et dans la section Network address translation :
Packets after routing (POSTROUTING) Masquerade If source is 10.8.0.0/24 and output interface is
eth0
Adaptez évidemment en fonction du protocole, port et adresse IP choisis.
Avec Iptables, cela donne :
iptables -A INPUT --dport 443 -p tcp iptables -A INPUT -i eth0 iptables -A FORWARD -i tun0 -j
ACCEPT iptables -A FORWARD -o tun0 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0
-j MASQUERADE
Ces règles sont peut-être un peu trop permissives, il est surement possible de les
améliorer.
Configuration du client
Configurer un client est très simple, car cela repose sur la création dun fichier
client.conf, à la manière du server.conf. Voilà le fichier client.conf
associé au server.conf précédent :
#Configuration client client # mode client dev tun proto tcp-client remote XXX.XXX.XXX.XXX 443
#Remplacer XXX par l'adresse IP ou le nom d'hôte resolv-retry infinite nobind persist-key
persist-tun #Clefs ca keys/ca.crt cert keys/client1.crt key keys/client1.key tls-auth keys/ta.key 1
#1 pour le client cipher AES-256-CBC #Ces 3 lignes sont inutiles si spécifié dans la
configuration du serveur #redirect-gateway def1 bypass-dhcp #dhcp-option DNS 208.67.222.222
#dhcp-option DNS 208.67.220.220 comp-lzo verb 3
Il faut bien s'assurer que les options sont identiques entre client et serveur (compression,
port, protocole, chiffrement...), car une seule erreur et ça ne fonctionnera pas.
Après avoir fourni les clés fichiers nécessaires (voire section
précédente) ainsi que le fichier client.conf au client concerné,
installé OpenVPN sur la machine cliente, il suffit de lancer dans un terminal
(après avoir préalablement lancé OpenVPN sur le serveur):
marty@client:# openvpn client.conf OpenVPN 2.1_rc7 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] built
on May 8 2009 WARNING: No server certificate verification method has been enabled. See
http://openvpn.net/howto.html#mitm for more info. /usr/bin/openssl-vulnkey -q -b 1024 -m Control
Channel Authentication: using 'keys/ta.key' as a OpenVPN static key file Outgoing Control Channel
Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication Incoming Control Channel
Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication LZO compression
initialized Control Channel MTU parms [ L:1560 D:168 EF:68 EB:0 ET:0 EL:0 ] Data Channel MTU parms
[ L:1560 D:1450 EF:60 EB:135 ET:0 EL:0 AF:3/1 ] Local Options hash (VER=V4): '2f2c6498' Expected
Remote Options hash (VER=V4): '9915e4a2' Attempting to establish TCP connection with
XXX.XXX.XXX.XXX:443 [nonblock] TCP connection established with XXX.XXX.XXX.XXX:443 Socket Buffers:
R=[87380->131072] S=[16384->131072] TCPv4_CLIENT link local: [undef] TCPv4_CLIENT link
remote: XXX.XXX.XXX.XXX:443 TLS: Initial packet from XXX.XXX.XXX.XXX:443, sid=4421b77a 4dc14e71
VERIFY OK: depth=1,
/C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/CN=Fort-Funston_CA/emailAddress=me@myhost.mydomain VERIFY
OK: depth=0, /C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/CN=server/emailAddress=me@myhost.mydomain
Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Data Channel Encrypt: Using
160 bit message hash 'SHA1' for HMAC authentication Data Channel Decrypt: Cipher 'AES-256-CBC'
initialized with 256 bit key Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC
authentication Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA [server]
Peer Connection Initiated with XXX.XXX.XXX.XXX:443 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS
208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart
120,ifconfig 10.8.0.6 10.8.0.5' OPTIONS IMPORT: timers and/or timeouts modified OPTIONS IMPORT:
--ifconfig/up options modified OPTIONS IMPORT: route options modified OPTIONS IMPORT: --ip-win32
and/or --dhcp-option options modified TUN/TAP device tun0 opened TUN/TAP TX queue
length set to 100 ifconfig tun0 10.8.0.6 pointopoint 10.8.0.5 mtu 1500 route add -net
XXX.XXX.XXX.XXX netmask 255.255.255.255 gw 192.168.1.1 route add -net 0.0.0.0 netmask 128.0.0.0 gw
10.8.0.5 route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.8.0.5 route add -net 10.8.0.1 netmask
255.255.255.255 gw 10.8.0.5 Initialization Sequence Complete
et ça devrait fonctionner ! Pour vérifier, on tente d'abord un ifconfig qui devrait
renvoyer quelque chose de similaire à ce qui s'affiche sur le serveur, et vérifier
son adresse IP sur http://checkip.dyndns.com. Vous devriez alors avoir l'adresse IP du serveur. Par
ailleurs, vérifiez également que vos DNS ont été changés
(allez sur le site http://www.opendns.com/,
et si c'est le cas « You're using OpenDNS » devrait être indiqué). Si ce
n'est pas le cas, changez-les manuellement dans le fichier /etc/resolv.conf ou via l'applet de
configuration réseau.
Un peu d'automatisation...
Côté serveur, on peut lancer OpenVPN grâce à la commande :
marty@server:# nohup openvpn server.conf &
nohup permet de ne pas terminer la commande (en l'occurence, openvpn) lorsqu'on coupera la
connexion SSH. Selon la distribution utilisée, il est possible qu'OpenVPN se lance
automatiquement au démarrage.
Côté client, il vous faudra installer le paquet network-manager-openvpn pour pouvoir
effectuer la configuration depuis l'applet réseau. Avec les versions récentes de ce
dernier, il suffit de glisser-déposer le fichier client.conf dans l'onglet VPN pour que la
configuration soit automatique. On activera/désactivera alors simplement la connexion via
l'applet réseau.
Conclusion
En principe, tout devrait être fonctionnel. Si ce n'est pas le cas, n'hésitez
à pas demander de l'aide au support de votre hébergeur, certains nécessitant
une configuration supplémentaire pour fonctionner.
Vous pouvez également vérifier le trafic réseau grâce à
Wireshark (à lancer en root). Allez dans Capture → Options, puis
cliquez sur Start. Dans la colonne Info, vous devriez voir la mention « Encrypted data
» de nombreuses fois, et des transferts vers le port https (si vous avez choisi le port
443, évidemment). Si c'est le cas, c'est que ça fonctionne !
Billet original de Marty.Votez pour cet article sur le Planet Libre.

|
Planet Libre -
23 hours and 10 minutes ago
Article publié le 27/08/2009
Dans cet article, nous aborderons la connexion à distance vers un PC sous GNU/Linux.
L'intérêt premier est évidemment l'administration d'une machine à
distance, mais cela peut également être utile pour la récupération de
fichiers lors de
voyages à l'étranger. Outre la mise en place d'un serveur SSH, nous traiterons
de la gestion firewall, du routeur éventuel ainsi que de l'adresse IP dynamique.
Configuration du serveur
Le serveur est la machine à laquelle vous voulez vous connecter, et qui retiendra la
majorité de notre attention. Cette machine devra être équipée d'une
distribution GNU/Linux quelconque. Une installation sous Windows est possible, mais semble
être plus du bricolage qu'autre chose.
IP fixe sur le LAN
Par défaut, l'attribution de l'adresse IP sur le réseau local (LAN) se fait par
DHCP, et est donc
variable. Cela peut poser des problèmes lorsque, par exemple, le routeur devra
transférer les données vers votre serveur. La première chose à faire
est donc d'attribuer une IP fixe à votre serveur. Pour cela, vous devez connaitre
l'adresse IP de votre passerelle ainsi que la gamme d'adresses IP attribuées. Par exemple,
chez la passerelle est 192.168.1.1 et les IP sont attribuées entre 192.168.1.2 et
192.168.1.254. La configuration à appliquer dans votre système devra ressembler
à ça :
Configuration en IP fixe
Cette fenêtre varie d'une distribution à l'autre, mais elle est souvent accessible
via un clic sur l'applet de connexion réseau. Vous devrez peut-être aussi indiquez
les serveurs DNS (permettant de faire le lien entre une adresse IP et le nom de domaine) ;
indiquez ceux d'OpenDNS, à savoir 208.67.222.222 et 208.67.220.220.
Installation du serveur SSH
Installons tout d'abord le serveur SSH, à savoir OpenSSH. Sous debian/Ubuntu :
marty@serveur:~$ sudo apt-get install openssh-server
À ce stade, le serveur est déjà opérationnel, mais allons tout
d'abord faire un tour dans les options de configuration du fichier /etc/sshd.conf. La
majorité des options par défaut sont bonnes, mais nous allons en modifier quelques
unes. Tout d'abord le port d'écoute, par défaut 22, peut être modifié
:
Port 12345
Changer le port par défaut permet de réduire les tentatives de connexion par des
robots. Évidemment, une personne physique effectuant un scan de port complet pourra
facilement trouver les ports ouverts. Ensuite, s'assurer que la connexion en root est impossible
:
PermitRootLogin no
Root est le seul utilisateur commun à toutes les distributions (excepté Ubuntu,
pour lequel il est désactivé par défaut et remplacé par sudo). Par
conséquent, interdire la connexion à root obligera un attaquant éventuel
à trouver un nom d'utilisateur existant. Et finalement, désactiver
l'authentification par mot de passe :
PasswordAuthentication no UsePAM no
Comment allons-nous nous connecter au serveur ? Et bien en utilisant ce que nous avons appris
précédemment, à savoir une paire de clés ! De manière
similaire à ce que nous faisions avec GnuPG, nous génèrerons une paire de
clé sur chaque client, et nous fournirons la clé publique au serveur. De cette
façon, seuls les clients ayant une clé enregistrée sur le serveur pourront
s'y connecter. Notez que dans un premier temps, vous devrez avoir un accès physique au
serveur pour copier la clé publique. Si ce n'est pas le cas, laissez les paramètres
précédents sur « yes » le temps d'enregistrer votre clé.
Quand ces modifications ont été appliquées, relancez le démon ssh :
marty@serveur:~$ sudo /etc/init.d/ssh restart Routeur et configuration du firewall via Webmin
Si vous êtes derrière un routeur, et que votre serveur doit être accessible
depuis d'extérieur de votre LAN, vous devez transférer le port choisi vers votre
serveur. Concernant le firewall, si vous savez comment configurer le votre, ouvrez simplement le
port que vous avez attribué, sous le protocole TCP. Si ce n'est pas le cas ou que vous
voulez découvrir Webmin, lisez donc la suite ;-)
Tout bon serveur qui se respecte se doit d'avoir un firewall bien configuré. Sous
GNU/Linux, le firewall intégré au système est Netfilter. Il existe plusieurs
possibilités pour le configurer :
- en ligne de commande, grâce à iptables ou shorewall
- en utilisant le firewall Firestarter
- grâce à Webmin, un outil d'administration
graphique assez général
Si Firestarter reste la solution la plus simple, c'est aussi la moins « propre » vu
ses possibilités limitées et sa configuration basique. Iptables requiert quant
à lui un peu d'expérience pour être manipulé correctement. Reste alors
Webmin, assez simple d'accès tout en proposant des possibilités de configuration
poussées. C'est celui-ci que nous allons utiliser. Notez que les firewalls graphiques
n'enregistrent pas leur configuration directement dans Netfilter : ils ont besoin d'être
lancés pour que les règles soient appliquées. En outre, si deux firewalls
fonctionnent en même temps, ce sont les règles du dernier ayant été
lancé qui seront appliquées. Veillez donc à n'avoir qu'un firewall bien
configuré sur votre machine pour éviter les embrouilles ;-)
Procurez-vous tout d'abord Webmin, celui-ci
étant disponible pour de nombreuses distributions. Après installation, rendez vous
sur la page https://localhost:10000/ via votre navigateur
web. L'utilisateur est root, et votre mot de passe est votre mot de passe root. Pour les
utilisateurs d'Ubuntu, veuillez vous référer à cette page pour activer le compte root. Rendez à la
page Networking → Linux Firewall.
Dans la partie Incoming packets (INPUT), voici les 5 règles de base à appliquer :
Accept If state of connection is ESTABLISHED,RELATED Accept If source is 127.0.0.1 and input
interface is lo Accept If protocol is ICMP Log packet Always Drop Always
La règle « Log packet » va, comme son nom l'indique, établir un log des
paquets qui seront rejetés dans /var/log/messages. Pour les retrouver facilement, je
conseille d'ajouter dans la case « Additional parameters » (lors de la
création de la règle) l'instruction :
--log-prefix "[IPTABLES DROP]: "
Dans la partie Forwarded packets (FORWARD), on refuse tout :
Drop Always
Je laisse la partie Outgoing packets (OUTPUT) vide, ce qui signifie que toutes les connexions
sortantes sont autorisées. Vous devriez trouver assez facilement comment créer ces
règle, ce n'est pas bien compliqué. Veillez tout de même à
sélectionner « Equals » au lieu de « Ignored » pour les cases
modifiées. L'ordre des règle est très important : elles seront
appliquées de haut en bas. Il faut donc toujours que la règle « Drop Always
» soit la dernière !
Pour SSH, la règle à appliquer dans Incoming packets (INPUT) est :
Accept If protocol is TCP and destination port is 12345
Nous parlons bien de port de destination. En effet, comme ce sont les paquets
entrant, leur destination est bien notre serveur. 12345 est évidemment à remplacer
par le port que vous avez choisi. Cliquez finalement sur « Apply Configuration », et
choisissez « Yes » pour « Activate on boot ».
Protection contre les attaques « brute force » : fail2ban
Une attaque par « force
brute » est une attaque tout ce qu'il y a de plus basique. Elle consiste à
essayer toutes les combinaisons possibles de lettres/chiffres jusqu'à trouver le bon mot
de passe. Elle est souvent combinée à une attaque par dictionnaire pour
améliorer la vitesse de cassage. On comprend facilement que l'efficacité de ce type
d'attaque dépend de la solidité du mot de passe choisi : «
banane76″ risque d'être découvert beaucoup plus rapidement que
« a0D€8È}~v£2%ï2″.
Pour se prémunir d'une telle attaque sur son serveur SSH, les précautions
précédentes (pas de connexion en root, changement du port pour limiter les attaques
par des robots) permettent déjà de limiter les risques. Si la connexion par mot de
passe est désactivée, ces attaques seront totalement inefficaces. Cependant, on
peut vouloir laisser cette possibilité active pour une raison ou une autre. Fail2ban va
nous aider à nous protéger contre les attaquants éventuels (et n'ayez
crainte, vous devrez y faire face très rapidement). Le principe est simple : bannir les
adresses IP qui ont effectué trop de tentatives infructueuses de connexion, via une
règle dans le firewall.
Tout d'abord, installer fail2ban :
marty@serveur:~$ sudo apt-get install fail2ban
Ouvrez ensuite le fichier /etc/fail2ban/jail.conf, et cherchez les parties suivantes :
[DEFAULT] ignoreip = 127.0.0.1 bantime = 900 findtime = 600 maxretry = 3 [ssh] enabled = true
port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6
La partie [DEFAULT] contient les options par défaut, alors que la partie [ssh] les options
propres à SSH (sans déconner !). Passons-les en revue :
-
ignoreip permet d'ignorer les connexions venant d'une certaine adresse IP, ici
l'adresse IP locale
-
bantime est la durée de bannissement d'une adresse attaquant
-
findtime est le laps de temps pendant lequel les connexions d'une même IP vont
être analysée
-
maxretry est le nombre maximum de tentative de connexions infructueuses avant
bannissement
Dans mon cas, si le serveur reçoit 6 connexions infructueuses (maxretry) en moins de 10
minutes (findtime), l'adresse IP sera bannie 15 minutes (bantime). Dans le cas de SSH, un mot de
passe est demandé 3 fois à chaque connexion, ce qui fait au maximum 72 essais par
heure et par adresse IP.
Après configuration, relancez fail2ban :
marty@serveur:~$ sudo fail2ban-client reload
Vous pouvez également vérifier s'il fonctionne correctement :
marty@serveur:~$ sudo /etc/init.d/fail2ban status
Voilà, avec ça vous devriez être tranquille.
Adresse IP dynamique
Si votre FAI vous attribue une adresse IP dynamique (adresse IP de votre ordinateur sur Internet,
pas sur le réseau local !), vous aurez besoin d'un service comme DynDNS. Celui-ci vous permettra d'associer à votre serveur un
nom de domaine, et ce gratuitement. L'adresse IP sera mise à jour grâce au logiciel
ddclient que nous installerons plus tard.
Vous devez tout d'abord vous créer un
compte sur le site de DynDNS. Allez ensuite sur la page « Host Services », et cliquez sur
« Add New Hostname ». Choisissez un nom de domaine, sélectionnez « Host
with IP address » et indiquez votre adresse IP. Pour mettre à jour l'IP, trois
possibilités :
- le faire manuellement via l'interface de DynDNS (peu pratique)
- via l'interface de votre modem/routeur/*box : certains appareils disposent en effet de la
possibilité d'enregistrer un compte et de mettre à jour votre IP automatiquement
- en installant ddclient
Installez ddclient :
marty@serveur:~$ sudo apt-get install ddclient
La configuration du fichier /etc/ddclient.conf devrait ressembler à ceci :
## ddclient configuration file daemon=300 # check every 300 seconds syslog=yes # log update
msgs to syslog pid=/var/run/ddclient.pid # record PID in file. ssl=yes ## Detect IP with our
CheckIP server use=web, web=checkip.dyndns.com/, web-skip='IP Address' ## Default options
protocol=dyndns2 ## DynDNS username and password here server=members.dyndns.org
login=YYYYYYYY password='XXXXXXXX' ## Dynamic DNS hosts
blablabla.tatata.com
Indiquez votre login, mot de passe (entre guillemets simples) ainsi que le(s) nom(s) de domaine.
J'ai choisi de faire la mise à jour toutes les 5 minutes.
Configuration du client
Côté client, la configuration est très simple. Après installation du
paquet openssh-client, connectez-vous grâce à la commande :
marty@client:~$ ssh -p 12345 login@blablabla.tatata.com
où login est votre login sur le serveur et 12345 à remplacer par le port
choisi. Notez que si vous vous connectez depuis votre réseau local, il y a de fortes
chances pour que l'utilisation du nom de domaine ne fonctionne pas. Il faudra plutôt
utiliser l'adresse IP fixe du serveur. Si vous avez laissé le port par défaut (22),
l'option -p est inutile.
Authentification par clé publique/privée
Rappelez-vous : nous devions utiliser la connexion par clé publique/privée ! Dans
le cas où la connexion via mot de passe est désactivée, cette commande ne
fonctionnera pas. Générons la paire de clé :
marty@client:~$ ssh-keygen -t dsa
Laissez les options par défaut, et indiquez une phrase de passe. Ensuite, vous devrez
copier le contenu du fichier ~/.ssh/id_dsa.pub dans le fichier
/home/login/.ssh/authorized_keys de votre serveur. Si la connexion par mot de passe
n'est pas désactivée, vous pouvez utiliser la ligne :
marty@client:~$ ssh login@blablabla.tatata.com "echo $(cat ~/.ssh/id_dsa.pub) >>
.ssh/authorized_keys"
(sur une seule ligne) Grâce à la même commande que précédemment,
connectez-vous sur votre serveur. Votre phrase de passe vous sera demandée à la
place de votre mot de passe, et si cela fonctionne, vous pouvez désactiver l'autorisation
par mot de passe si ce n'est déjà fait (soyez tout de même sûr de
pouvoir accéder physiquement au serveur au cas où votre clé privée
serait perdue).
Taper sa phrase de passe, c'est chiant... Oui, je sais. Nous allons donc utiliser ssh-agent pour
nous faciliter la vie. Dans un terminal, tapez :
marty@client:~$ ssh-add
et entrez votre phrase de passe. Connectez vous sur votre serveur et là, magie, votre
phrase de passe ne vous est plus demandée ! C'est là un énorme avantage
d'utiliser l'authentification par clé publique/privée plutôt que par mot de
passe. Il suffit d'entrer sa phrase de passe en début de session, et on est tranquille
toute la journée ;-) Il est possible de fournir la même clé publique sur
plusieurs serveurs SSH : une fois la passphrase enregistrée, les connexions se font sans
mot de passe. Qui plus est, on n'a pas à retenir un mot de passe différent pour
chaque serveur.
Transfert de fichiers
Il est possible de transférer des fichiers via SSH grâce à la commande scp.
Pour envoyer un fichier sur le serveur :
marty@client:~$ scp -P 12345 fichier marty@serveur:/dossier/serveur
Pour récupérer un fichier du serveur :
marty@client:~$ scp -P 12345 marty@serveur:/dossier/fichier /dossier/client
Attention, c'est bien un P majuscule !
Le logiciel gftp permet de faire graphiquement la même chose que scp. Il se présente
sous la forme de deux fenêtres, une pour le client et une pour le serveur.
Gftp
Faites attention de sélectionner le bon type de fichier (ASCII -- fichier texte simple --
ou Binaire -- le reste) dans le menu « FTP ».
Et les autres OS ?
Le noyau de Mac OS X étant un dérivé de BSD, les lignes de commandes
devraient être identiques. Sous Windows, allez voir du côté de PuTTY pour la ligne de commande et WinSCP comme équivalent de gftp.
Billet original de Marty.Votez pour cet article sur le Planet Libre.

|
Download Squad -
1 days ago
Filed under: Design,
Developer, Browsers

The Web
Developer add-on for Chrome tries to complement Chrome's already-excellent developer tools
(Ctrl-Shift-I) with some in-page hints and tools. The garbled output you see above is the result
of selecting Information > Display ID & Class Details.
Not very graceful, obviously.
The add-on is missing a screen ruler (I'm sure the developer will add it later). Despite lacking
a graceful way to show massive amounts of data, it can still come in handy every now and then.
For example, you can disable CSS entirely, or just inline style, browser default styles, etc.
That's pretty neat. It's still a fledgling add-on, so don't expect too much. But if you find
Chrome's default tools are not enough for you, try giving it a shot.
Web Developer Chrome add-on is a step in the right direction, needs work originally appeared
on Download Squad on Thu, 18 Mar 2010 15:01:00 EST.
Please see our terms for use of feeds.
Read | Permalink | Email this | Comments
Google Chrome -
Download Squad -
Cascading Style Sheets - browser
- Clients

|
Hack a Day -
1 days and 15 hours ago
Before we get into the how-to, we felt it would be appropriate to explain a little bit about how
this came to be. As many of you may remember, a couple of months ago we attended CES 2010. While there, we also
attended the It Won’t Stay in Vegas Blogger
party and ended up meeting the guys from
Woot. After all of us spent a little bit of time appreciating the open bar, a group of us
stood ended up standing around and talking shop for a while. All of a sudden, a member of our
group, Jeremy Grosser, proposed the idea that Hackaday
and Woot form a partnership. Basically, they would give us a heads up on what they are going to
sell and we would write up a how-to on how to do something cool or useful with that product.
Then, when the day came for Woot to sell the product, we would post our how-to. What you are
reading right now just so happens to be that idea in action, the
first official partnership between Hackaday and Woot. In this how-to, we’ll be taking
apart the Wowwee Rovio mobile webcam robot, adding some super-bright LEDs for better
see-in-the-dark action, and see how some software called RoboRealm can give it a little bit of artificial intelligence.
If don’t have a Rovio yet, you should probably head over to Woot and pick one up so you can follow along. Also, be sure to pick up
a copy of RoboRealm at deals.woot while you’re at it.
It is important to note that while writing this how-to, we used a modified design of the Rovio
Head-Mounted LED hack, posted to RoboCommunity by [Rudolph].
Parts
- 6 super-bright white LEDs (Ours were rated for 3.3v with an intensity of 7000mcd.)
- 1 2N2907 PNP Transistor (We found ours in a 15 transistor combo pack from RadioShack.)
- 1 10ohm resistor
- 1 2.2k ohm resistor
- 22g solid hookup wire
- RadioShack
3×2x1″ Project Enclosure (We used the plastic back panel as a place to mount our
LEDs.)
- 5mm LED holders (Optional. We ended up using them to mount our LEDs in their poorly drilled
holes.)
- Heat-shrink tubing (Optional, but recommended.)
- A small strip of perfboard
We picked up most of our parts from RadioShack, but these parts are so common that you should be
able to pick them up from any electronics components store.
Disassembly
The first step towards giving our Rovio some much needed extra light is, of course, to
disassemble it. After turning the Rovio upside down, remove the six phillips-head screws and
carefully remove the top shell to gain access to the Rovio’s internals. While you
won’t be able to fully detach the top shell, you should be able to lay it next to the
bottom part of the Rovio as seen above.
Inside of the Rovio, there are two main PCBs, the control board and the power supply board. For
the purposes of this how-to, we will only need to modify the power supply board. To gain access
to the power supply board, simply remove the two phillips-head screws that secure the board
vertically. After you gain access to the board, you will then need to identify the ground and
positive pads on the PCB. We will be tapping into these pads later to power our array of LEDs.
One other item of interest to us is the white wire leading from the control board to the LED
headlight board. This wire will allow us to control our new headlights through the Rovio’s
web interface.
After firing up your soldering iron, you’ll need to solder two wires onto the power supply
board. As you can see above, there are two areas with tiny little holes, allowing for easy access
to both GND and VCC. After you have soldered both of these wires, screw the board back in and
then turn your attention towards the white wire mentioned previously. After cutting the white
wire, solder a length of hookup wire to the end of it and insulate it with appropriately sized
heat-shrink tubing. Also, it’s probably a good idea to remove the LED headlight board
entirely. This gives you three openings to run your wires out of from the Rovio to our new
headlight panel. After you’ve removed the board, you can cut the wires leading to both the
infrared LED and receiver. These function as a forward facing “radar” to alert the
user if there are any obstacles ahead. We decided to salvage ours by placing them both in the new
panel that we will soon be creating. If you choose to salvage your infrared “radar”
as well, then remember to solder extension wires between the appropriate leads and the LED and
receiver. We actually used some telephone tap connectors (from RadioShack) to extend the three
wires leading to the infrared receiver, but soldering should work just fine. Now that
you’re finished with all of the internal modifications to the Rovio, we can move on to the
circuitry behind this hack.
The Circuit
In order to make sure that we can control our replacement LED headlights through Rovio’s
web interface, we need to build a circuit that will detect when the headlights are triggered via
the web interface and activate our headlights accordingly. To do this, we’ll use a PNP
transistor to switch the ground of our headlight circuit. As you can see from the schematic
above, the white wire that we mentioned earlier will be connected to the base of the transistor
via a 2.2k resistor, the ground from the power supply board will be connected to the collector of
the transistor, and the emitter of the transistor will be connected to the ground of the parallel
array of LEDs. If you want to, you could probably add a few more LEDs to this design. Just
remember, if you change the number or type of the LEDs, you will have to recalculate the value of
the current-limiting resistor between VCC and the positive pin of the parallel LED array. After
we’ve reviewed our schematic and we’re comfortable with it, we should be ready to
breadboard.
As you can see, there really isn’t that much to our circuit as far as components go. The
black and red wires come directly from the power supply board. Our voltage reading was right
around 6.5v. Please note that your voltage may vary depending on the charge of your Rovio’s
NiMH battery. The green wire was soldered to the white wire inside of the Rovio, and controls
whether the transistor lets the ground flow to the LEDs. We found that the best way to test this
circuit while breadboarding was to turn on the Rovio and turn on and off the headlights using the
web interface. After confirming that the circuit works consistently, you can go ahead and solder
the circuit onto some perfboard and connect to the Rovio.
The circuit really doesn’t take up much space on the perfboard. We decided to use the extra
space on our board as a makeshift terminal block to extend the infrared LED. While soldering the
circuit onto the perfboard, be sure to remember the orientation of your transistor. If you
accidentally put it in backwards, you could switch the collector and emitter, burning out the
transistor. We mention this only because we actually did it the first time we assembled our
board, and we ended up having to swap in a new transistor before reassembling the board. After
you’ve assembled and verified that your circuit works, we can move on to assembling our
headlight panel.
Drilling and Wiring
On your blank panel, carefully drill 8 holes in any configuration you would like. When drilling
your holes, be sure to use a 3/16″ drill bit. While it is actually slightly smaller than a
5mm LED, you can rotate the drill once or twice around to widen the hole. The main thing is that
you don’t want to make the holes too large for the LEDs, which, incidentally, we ended up
doing. One of them was so wide that we had to change the placement of our LEDs to make sure that
they all more or less fit.
I don’t think that I need to get into too much detail here, but the major thing to remember
is that the LEDs need to be wired in parallel. Also, be sure that you are connecting cathode to
cathode and anode to anode, otherwise the whole circuit just won’t work. After you’ve
completely assembled the panel, attach the wires the ground from your perfboard and the VCC from
the power supply board to the circuit, and use the web interface to test that the LEDs get
switched on when they’re supposed to be. If you decided to salvage the infrared
“radar”, don’t forget to attach the infrared LED and receiver to the board in
the two holes left over.
After you’ve finished with the drilling and wiring, you should be ready to attach the panel
to the Rovio. While it was a little tricky for us, we were able to epoxy the panel to the
underside of the front of the Rovio so that it looked like it was vertically mounted.
Now that your Rovio can see better in darker situations, lets take a look at RoboRealm.
RoboRealm
While investigating all of the different things that we could do with our Rovio, we
stumbled upon a piece of software called RoboRealm.
RoboRealm allows you to take video input from any webcam, including the Rovio, and run it through
any number of different modules to process the images. After the images are processed, the
software can even see if any pre-defined conditions are met, and if they are it will instruct the
robot to act accordingly. Combine that visual input with the audio input/output on the Rovio, and
you can do some pretty cool stuff. The interesting part about this software is that it officially supports the Rovio out of the
box. We’ve had a chance to mess around with it a little bit, and as far as we can tell, it
seems like pretty powerful software.
We already know all of the cool things that we want to do with this software and our Rovio, but
we’re curious, what would you do with it? Leave us your answer in the comments, and if we
see something that we find truly inspiring, we’ll do some research, write it up, and post a
how-to explaining how to do it. Who knows, there might even be a brand new Rovio and a free copy
of RoboRealm in it for the winner too…


|
NewTeeVee -
1 days and 21 hours ago
A new website aptly named Videoonwikipedia.org aims to get more users to contribute video clips to Wikipedia
by demystifying some of the issues related to the site’s video format. Videoonwikipedia.org
was launched today by the Participatory Culture Foundation, which is also known for its Miro video player, in cooperation with the Open Video Alliance, the Mozilla Drumbeat Project and open source video
platform provider Kaltura.
The main idea behind the site is obviously to enrich Wikipedia, which currently doesn’t
feature many articles with videos, but the Participatory Culture Foundation also sees this as a
chance to showcase HTML5 video and the open video codec Ogg Theora. “Wikipedia is the most
popular site in the world that posts video exclusively in open formats,” the
organization’s co-founder Nicholas Reville wrote in a blog post, adding: “By encouraging more people to post videos in
Wikipedia articles, we can bring theora video played in html5 to a very large audience.”
The new site offers its users a quick and very basic step-by-step guide for posting videos on
Wikipedia, which includes converting them to Ogg Theora, signing up for a Wikipedia account and
enabling video upload capabilities on the site.
The Participatory Culture Foundation aims to simplify the encoding and converting issues with a
new and as of yet unannounced tool dubbed the Miro Video Converter. Users of the converter can
simply select Theora as the output format of choice, drop a video file onto the application and
wait for the file in question to be converted.
Video on Wikipedia has been a long time coming, with the Wikimedia Foundation announcing plans to embrace
video in early 2008. However, the site’s strong commitment to open formats has somewhat
slowed down the adoption process, as it took a while until browsers capable of playing Flash-free
video via HTML5 became available.
However, part of the delay apparently has also to do with internal issues, as representatives
from Wikimedia and its technology partner Kaltura told me earlier this
year. Kaltura’s VP of Business and Community Development Shay David said back then that
Wikipedia editors took a while to get comfortable with video. “People needed to understand
that video is an important aspect of Wikipedia,” he told me, adding: “That needed
some time.”
Related content on GigaOm Pro: What Does the Future Hold
For Browsers? (subscription required)


|
|
What is Matoumba?
A website that sorts everyday the most relevant information to you.
Vote for the news and Matoumba will learn your tastes and the information that you like the most.
It is all FREE!
|