Linux Tips
- May 19, 2017
- 0
Gebruik je Android-telefoon als webcam
Heeft je computer geen webcam, maar heb je wel een Android-telefoon of -tablet rondslingeren? Waarom zou je dan de camera van dat apparaat niet als webcam kunnen gebruiken? Gelukkig is dat met de juiste software mogelijk. Installeer eerst de app IP Webcam op je Android-apparaat. Hiermee maak je van je Android-apparaat een IP-camera die zijn beeld kan streamen over het netwerk. Open de app en druk op _Start server_, dan streamt je telefoon standaard een MJPEG-videostream en een WAV-audiostream via poort 8080. Zorg ervoor dat _Audio mode_ op _Enabled_ staat.
Open daarna op de GitHub-pagina van het project ipwebcam-gst het bestand prepare-videochat.sh en klik rechts op _Raw_. Download dit bestand op je Linux-computer (alleen Ubuntu en Arch Linux zijn getest) en maak het uitvoerbaar met `chmod +x prepare-videochat.sh`. Voer het daarna uit met `./prepare-videochat.sh` en volg de instructies. Het shellscript controleert of je Linux-installatie aan de vereisten voldoet en installeert indien nodig de benodigde pakketten. Daarna maakt het script virtuele apparaten aan voor video (V4L2) en audio (PulseAudio).
Kies nu in je toepassing de virtuele apparaten, waarna je Android-apparaat als webcam is te gebruiken. Onder andere Skype 2.1, Cheese, Empathy en Google+ Hangouts zijn ondersteund. Bij gebruik van WiFi om te streamen, is het beeld nogal schokkerig. Maar als je je Android-apparaat met een usb-kabel op je computer aansluit en in de ontwikkelaarsopties van Android de Android Debug Bridge (ADB) inschakelt (_Android-foutopsporing_), dan verloopt het streamen heel wat vlotter.
Link
https://github.com/bluezio/ipwebcam-gst
Waar zit dit lek?
Gebruikt één van je programma’s heel wat geheugen en vermoed je dat er een geheugenlek in zit, dan is het niet eenvoudig om de oorzaak ervan te vinden. Het programma maakt immers waarschijnlijk gebruik van talloze library’s en roept wellicht ook nog externe programma’s aan. Probeer dan maar eens de schuldige te vinden…
Gelukkig bestaat een programma dat je helpt om dit soort problemen uit te spitten: pmap. Als je het process ID van het verdachte programma aan pmap doorgeeft, krijg je de volledige _memory map_ van het proces te zien. Verdenk je bijvoorbeeld Firefox ervan dat het een geheugenlek heeft, roep dan pmap als volgt op:
*******************start listing*************
“`
pmap `pidof firefox`
“`
******************eind listing*************
Je krijgt nu heel wat informatie in enkele kolommen te zien. De eerste kolom is het geheugenadres van een blok gegevens van het programma. De tweede kolom toont hoeveel kilobytes RAM dit blok nodig heeft. In de derde kolom krijg je de rechten van het proces op het blok te zien en in de vierde kolom de bron van de gegevens.
Vooral de grootte van een blok gegevens is interessante informatie: als dit ongebreideld toeneemt, is er iets niet pluis. Kijk in dat geval in de laatste kolom wie de schuldige is van het lek: het programma zelf of een library? Met de optie -x krijg je overigens nog meer informatie te zien.
Wachtwoordbeheerder op de commandline
Met wachtwoordbeheerders, zoals LastPass, kun je jouw gebruikersnamen en wachtwoorden voor allerlei websites laten onthouden. Maar wat als je liever een wachtwoordbeheerder op de commandline gebruikt? Met gpgpwd is dat mogelijk. Het programma houdt een lijst van gebruikersnamen en wachtwoorden bij en versleutelt die met GnuPG. Indien gewenst, genereert het programma willekeurige wachtwoorden. Het geheel ontsluit je met een _master password_.
Installeer eerst de dependency’s. Op de downloadpagina van het project krijg je te zien welke pakketten je op welke distributie moet installeren. Op Debian en afgeleiden is dat:
*******************start listing*************
“`
sudo apt-get install libjson-perl libtry-tiny-perl gnupg xclip git
“`
*******************eind listing*************
Download daarna de tarball van gpgpwd, pak het bestand uit, ga naar de directory en installeer het programma met de volgende stappen:
*******************start listing*************
wget http://files.zerodogg.org/gpgpwd/gpgpwd-0.6.tar.bz2
tar xvjf gpgpwd-0.6.tar.bz2
cd gpgpwd-0.6
sudo make install
*******************eind listing*************
Als je GnuPG nog niet gebruikt hebt, moet je eerst een sleutel aanmaken:
*******************start listing*************
gpg –gen-key
*******************eind listing*************
Volg de instructies. De wachtwoordzin die je op het einde ingeeft, wordt het master password van gpgpwd. Nu is gpgpwd klaar om te gebruiken. Voeg een nieuw wachtwoord toe met:
*******************start listing*************
gpgpwd set example.org
******************eind listing*************
Gpgpwd genereert een willekeurig wachtwoord voor de dienst en kopieert dit naar het klembord, zodat je bij het registreren op de website het wachtwoord eenvoudig kunt plakken. Als je je eigen wachtwoord wilt kiezen, geef het dan hier in; anders bevestig je het gekozen wachtwoord met enter. Geef daarna je gebruikersnaam voor de dienst in. Tot slot wordt het master password gevraagd.
Geef op die manier al je gebruikersnamen en wachtwoorden in. Wanneer je nu ooit een wachtwoord nodig hebt, vraag het dan op met:
*******************start listing*************
gpgpwd get example.org
*******************eind listing*************
Nadat je je master password hebt ingegeven, krijg je de gebruikersnaam en het wachtwoord te zien en wordt dit laatste naar het klembord gekopieerd. Zo kan je het gemakkelijk in het wachtwoordveld van de dienst plakken.
Bekijk de manpagina van gpgpwd voor meer opties. Interessant is dat gpgpwd get ook werkt als je een typefout in de naam van de dienst maakt: het programma gebruikt een _fuzzy search_.
Link
http://random.zerodogg.org/gpgpwd/
Vensters positioneren op een groot scherm
Heeft je computer een groot scherm? Dan kom je wel eens een ongelukkige plaatsing van vensters tegen. Als je e-mailprogramma bijvoorbeeld helemaal bovenaan links staat, is het goed mogelijk dat het venster om een e-mail te beantwoorden steeds in de rechterbenedenhoek verschijnt. Gelukkig kun je daar iets aan doen.
Installeer daarvoor het programma CompizConfig-instellingenbeheer (onder Ubuntu: `sudo apt-get install compizconfig-settings-manager`). Open het instellingenprogramma en klik op _Vensterbeheer_. Kies dan _Plaats venster_ en kies in het tabblad _Algemeen_ bij _Plaatsing modus_ voor _Pointer_ in plaats van de standaardinstelling _Slim_. Nieuwe vensters worden dan geopend op de positie waar je muisaanwijzer zich op dat moment bevindt. Op een groot scherm is dat doorgaans een handiger plaatsing dan bij de ‘slimme’ vensterpositionering.
Stuur snel lokaal bestanden
Een snelle manier om bestanden op een lokaal netwerk tussen machines uit te wisselen, is met netcat. Maar dan moet de machine die het bestand verzendt wel het IP-adres van de ontvanger kennen. Een andere optie is airpaste: dit programma herkent automatisch andere machines op het netwerk via mDNS. Airpaste is in Node.js geschreven. Onder Debian en afgeleiden installeer je dit eerst met:
*******************start listing*************
sudo apt-get install nodejs npm
*******************eind listing*************
Daarna installeer je airpaste met:
*******************start listing*************
sudo npm install -g airpaste
*******************eind listing*************
Wanneer je nu het bestand example.bin wilt doorsturen, typ je aan de kant van de zender de opdracht `airpaste < example.bin`. Aan de ontvangende kant volstaat de opdracht `airpaste > example.bin`. Je kunt zo ook mediabestanden van de ene naar de andere computer streamen. Op computer 1 waarop het mediabestand staat, voer je dan `airpaste < example.mp4` uit en op computer 2 waarop je het bestand wilt bekijken, voer je `airpaste | mplayer -` uit.
De in- en uitvoer van airpaste hoeven niet altijd een bestand te zijn: airpaste kun je ook eenvoudigweg gebruiken om tekst tussen de klemborden van twee computers op hetzelfde netwerk te delen. Overigens kun je als parameter de naam van een pipe opgeven. Op die manier kun je op hetzelfde netwerk meer dan twee computers tegelijk via airpaste gegevens laten uitwisselen. De ene computer streamt de video bijvoorbeeld met `airpaste video < example.mp4` en de andere computer speelt die af met `airpaste video | mplayer -`, terwijl andere computers tegelijk airpaste met een andere pipenaam gebruiken en zo elkaar niet in de weg lopen.
Link
https://github.com/mafintosh/airpaste