All posts by ephestione

Change the user Transmission Debian daemon runs under and avoid warning message

I am writing this post also for personal reference (and currently I am writing in bare HTML since my WordPress installation lacks an updated multilanguage plugin to be able to use the WYSIWYG editor).
I was moving my home server from a slow Raspberry PI to a way faster Cubieboard 2, and got to reinstall Transmission daemon. I needed to change its user tho, because I needed a certain folder to be accessible to it.
So I edited as SU the /etc/init.d/transmission-daemon file changing the transmission-debian value into the username I wanted to use, but I kept getting a (warning) message when trying to start the daemon.
Long story short, here are some tips you have to follow, but first credits where they’re due:
This is the page where I got started the first time: http://www.webupd8.org/2009/12/setting-up-transmission-remote-gui-in.html
And this is a heads up I got while trying to solve this problem: https://forum.transmissionbt.com/viewtopic.php?f=2&t=13964

So, back on track:
1) Make sure the transmission daemon is stopped, otherwise changes you make to configuration files will be reverted to original
2) Edit the init.d starting script changing the username to your wanted username
3) chown the default transmission-debian folders to the user you need:

sudo chown username:group /var/lib/transmission-daemon/info –R
sudo chown username:group /etc/transmission-daemon/ –R

4) If you are importing a settings.json file from a previous installation, make sure to copy it to both /etc/transmission-daemon/ and /var/lib/transmission-daemon/info/ so that both copies are identical
5) You can now start the daemon and everything should work as expected

Cyclic sound MP3 audio recording in ubuntu

I work in a relatively safe environment, yet it may very well happen that I need to prove something that someone said in my office, so I can hold it against them when the time comes.

My laptop is always turned on, so I could use it to record the environmental sounds around it, with a couple of requirements:

  • the recording must be totally unattended, starting when I turn on the pc, and stopping when I turn it off, without any user intervention
  • the recorded files must be somehow purged, starting from the oldest ones, so that my disk doesn’t get filled with audio files

As in the Ubuntu spirit, I tried to search for something that did the job right away, but with no luck.

So, still in the Ubunt spirit, I had to arrange it myself: the idea is to record the audio in chunks of 10 minutes, and each time delete the oldest files, so that there is a chosen number of max files inside the recording folder.

You will need the audio-recorder package for the job, install it as follows:

sudo apt-add-repository ppa:osmoma/audio-recorder
sudo apt-get update
sudo apt-get install audio-recorder

when the program is installed, open it (Alt-F2 and then launch audio-recorder), click on the “additional settings” button, and setup your default recording folder there, in this example it’s the folder “audiofiles” directly under your home folder.
Also I suggest changing the file naming standard to %Y-%m-%d-%H:%M:%S so that each recording can be easily associated with the time of starting.

Then, you need to make a bash script that will deal with starting a new recording, while closing the previous one, this is what I came up with:

#!/bin/bash

/usr/bin/audio-recorder --display=:0.0 -c stop
/usr/bin/audio-recorder --display=:0.0 -c start
cd /home/username/audiofiles
rm `ls -t | awk 'NR>150'`

which does exactly the following: stops a previously open (if existing) instance of the program, and starts a new one, then deletes the oldest recorded audio chunks so that there are maximum 150 files inside the recording folder (if you want a different amount, just replace 150 with the number you prefer); please note that the recording folder written in this bash script must be the same that is set in the additional settings, so if you want to use a different folder make sure to set it up both in audio-recorder and in this bash script.
Also, please note that the username part of the path must be replaced with your ubuntu username.

You can create this bash script as a “recordaudio.sh” file in your home folder, and then be sure to chmod +x recordaudio.sh so you can execute it.

Then, you need something that actually starts the recording, and cron is our friend here.

Run the command

crontab -e

and if it’s the first time you run it,  you should be presented with a choice screen asking you which editor you prefer… absolutely choose nano!

Inside the editor screen, paste this:

*/10 * * * * /home/username/recordaudio.sh

where “username” must be replaced with you ubuntu username, then press Ctrl-X to save the file (press Y is prompted to confirm).

What this cron line does, is running the bash script we just created every ten minutes, so the recorded sound files will be 10 minutes long. If you want to change this length, just change the 10 in the command to the number of minutes you prefer.

Restart the pc, and notice how files are being created inside of your folder. After a while, you will also get over the set limit for the files, and you will notice how the number of files will always stay the same, with the oldest files being deleted.

Collegare in parallelo pannelli fotovoltaici di potenza diversa

Questo articolo è scritto in linguaggio “terra terra”, e non è indirizzato al perito elettrotecnico di turno, che sicuramente non avrà bisogno di leggere questa breve guida per sapere cosa fare; non aggreditemi quindi per i toni estremamente semplicistici.

Se siete finiti qui, è perché vi state chiedendo se è possibile collegare in parallelo due o più pannelli solari differenti, ebbene la risposta è: dipende!

Partiamo da due premesse:

  1. Se volete collegare più pannelli fotovoltaici assieme, significa che dovete alimentare uno o più dispositivi assetati di energia
  2. Se vi ponete il problema del “si può fare?“, significa che immaginate perlomeno che i pannelli, se non identici, devono essere comunque di caratteristiche simili

Essendo valide queste premesse, la risposta è sì, si possono collegare più pannelli solari in parallelo purché simili, ed entrambi con un diodo di protezione.

La caratteristica più importante è che abbiano lo stesso voltaggio, o un voltaggio molto vicino tra loro: ad esempio due pannelli da 5V, oppure un pannello da 18V e uno da 20V; è meno importante invece che abbiano anche la stessa potenza, cioè la stessa corrente in uscita.

Il voltaggio, collegando i pannelli ad un carico, si abbassa necessariamente ai capi di entrambi i pannelli, quindi anche se il pannello da 18V entrerà in azione “dopo” quello da 20V, entrambi comunque parteciperanno alla produzione della corrente (il pannello più debole non entra in azione “dopo” in realtà, ma semplicemente copre una parte inferiore del carico, in proporzione alla sua capacità di produrre potenza); i diodi di protezione, utili soprattutto sul pannello con voltaggio o amperaggio inferiore, servono a evitare che ci sia un flusso contrario di corrente dal pannello più potente a quello più debole, con un “furto” energetico di cui risentirebbe il dispositivo da caricare.

Come va montato il diodo? Prima di tutto è preferibile usare un diodo tipo Schottky (praticamente quelli che potete smontare dalle lampadine a risparmio energetico esaurite), e lo si può collegare al polo positivo del pannello, con la righetta bianca del diodo sul lato più lontano dal polo positivo stesso.

L’esempio pratico della fattibilità della cosa l’ho ottenuto collegando una lampadina led usb ad un pannello da 5V/5W, e successivamente aggiungendo in parallelo a quest’ultimo un altro pannello da 5V/3.5W: la luce della lampadina aumenta istantaneamente, questo perché la lampadina costituisce un carico rilevante per il primo pannello, al punto che aggiungendo il secondo, meno performante, comunque anche questo è in grado di fornire potenza sfruttata dalla lampadina.

Howto batch watermark resize convert crop images and pictures

  • Download IrfanView (if you already don’t have it installed, it is an awesome image viewer, and great for basic editing with its Paint plugin, installed by default)
  • After opening the main viewer window, go to File>Batch Conversion/Rename
  • What opens is a window crammed with options and tools, with which you can:
    1. Convert between different formats (Jpeg, Gif, PNG, BMP, TIFF, whatever)
    2. Rename with serial progressions
    3. Crop at given dimensions (this and the following are accessible pressing the Advanced button)
    4. Resize to given dimensions, or proportionally inside a maximum dimensions rectangle
    5. Change color depth
    6. Flip horizontally and/or vertically
    7. Rotate 90° to left or right
    8. Grayscale or negative color
    9. Add an overlay text with custom color, font, size, position, alignment, you name it (this is a fast and easy way to watermark your pictures)
    10. Add a proper watermark image overlay, pointing to an image file, choosing its position and transparency
    11. Change color scheme inverting the order of the RGB values
    12. Apply other filters: sharpen, brightness, contrast, gamma correction, saturation, color balance for R G and B, bur, median, and fine rotation (choose amount of degrees)
    13. You can choose whether overwriting or renaming destination files, move them to subfolders, and so on
    14. You can add multiple files to the batch job by picking them from different arbitrary folders or loading them from a list saved into a TXT file

How to drag and drop files between windows in Ubuntu Unity launcher bar

So I like Unity, it looks nifty and the Zeitgeist launcher is so productive.
One huge gripe about unity though, is that you cannot, apparently, drag&drop files between applications open in the Unity launcher bar, namely:

  • a file from nautilus into thunderbird as a mail attachment
  • an image from nautilus into a photo-editing program
  • the same file from nautilus into an archive manager
  • an image into the upload page of imgur.com opened in your browser
  • anything else

I use a Precise Pangolin installation, and this is what works for me:

  1. Start dragging the file until you have it under your mouse pointer, ready to be dropped somewhere
  2. At this point you will notice the launcher bar buttons become gray (almost all of them, Nautilus and Firefox stay bright for me)
  3. Trying to drop onto any of the buttons, be it grayed out or bright, will NOT bring up its window
  4. Keep the mouse button pressed, and on your keyboard use theWinKey+TAB combination, you will see the applications buttons on the unit launcher bar brighten one at a time, cycling though both bright ones and grayed ones
  5. When you have highlighted the button of the program you need (for example, Thunderbird to attach a file into a mail), release the WinKey+TAB combo and the relative application window will open
  6. Finally drop your file in the opened window
  7. After you’ve done your job, flood LaunchPad with bug reports until we get this dumb problem fixed

MyPhoneExplorer via Bluetooth: phone could not be indentified and parameter incorrect

Chances are that you are trying to have your Android phone sync with Outlook via MyPhoneExplorer, but whatever you do won’t work, since as soon as you try to connect, the procedure stops at “identification” and MyPhoneExplorer pops up a “phone could not be identified” error.

Syncing via USB cables works though, but you are not going to settle for something as annoying and remembering to plug in your cable everytime.

Update: try this first:
Chris, in the comments below (thank you, Chris), suggests doing this, which is apparently working in Windows 7 (Windows 8 doesn’t have such possibility):

Easier if you just go to control panel > hardware and sound > devices and printers > bluetooth devices

Then right click on the device you’ve already paired. Go to Services tab, and under Bluetooth Services there should be a checkbox for Serial port(SPP) ‘MyPhoneExplorer’.

Check it, apply, done…

If that doesn’t work, continue reading!

Compared to the first version of this article, when I was on Windows 7 + Ice Cream Sandwich, now I’m on Windows 8 + Lollipop, and started having this problem a short while after upgrading from KitKat. The solution was to open MyPhoneExplorer settings, select bluetooth in the connection tab, and choose, from the dropdown menu, the other Bluetooth port that was not selected before, and try again to connect, in my case it went by as normal.

If this doesn’t work as well, then proceed with the very first guide.

So let’s start by saying this out front: this is black magic.

You may have tried to go into “change bluetooh settings” in your control panel, then open the “COM Ports” tab, and manually add incoming ports and trying them out one by one in MyPhoneExplorer… this should not work, no matter how many times you reboot your phone and/or unpair/pair again with your PC.

The procedure I am going to illustrate may work for you, or it may not. It may do nothing on a sunny day of April, but deal impressive results in a foggy evening of november.

I tried to replicate the same method previously, but it worked for me just a few minutes ago as a blessing (and this is why I rushed to write an article about it) while it didn’t at my previous attempts, so these are the steps (keep in mind I have ICS on my phone, and Windows 7 x64 on my laptop, the BT sync worked before, but had stopped working after I upgraded from Gingerbread to Ice Cream Sandwitch on my Galaxy Note)

  1. Find your phone entry in bluetooth devices in Windows, click it and remove it
  2. Unpair with your PC from your Android phone
  3. If there are any remaining, remove every reserved port in “COM Ports” tab of bluetooth settings (unless there are other ports being used by other BT devices you own, leave those alone)
  4. Reboot both your PC and your phone, preferably at the same time (black magic, remember?)
  5. Pair the device from Windows (go into bluetooth panel, “add device”, then proceed with the pairing)
  6. Your aim here is to have Windows itself add the COM ports, you should end up with two COM ports, one Incoming, and one Outgoing, they should both carry the BT name you have given to your phone, and the Outgoing port should also say “MyPhoneExplorer”
  7. You should set MyPhoneExplorer to use the Outgoing port among the two, but if it doesn’t work for you, also try the Incoming port (black magic)

Good luck!

Convertire una micro-SIM in una scheda SIM normale, senza adattatore

Vi può capitare di avere tra le mani una microSIM per una qualche promozione (ad esempio, guardacaso, la super smartphone di Wind), ma dovete metterla in un telefono che accetta SIM di dimensioni normali.

Potete farlo senza attendere che vi arrivi per posta un costoso adattatore (perché dite quello che vi pare, ma pagare qualunque cifra sopra i 50cent per un francobollo di plastica ritagliato, secondo me è troppo costoso).

L’importante è NON rimuovere la microsim dalla sua matrice formato carta di credito!

microsim convertita all'interno della matrice
Questo è quello che faremo, ritagliare una cornice attorno alla micro-SIM dandole la forma di una normale SIM
confronto larghezza sim microsim
Confronto della larghezza della microsim nella sua scheda formato carta di credito, con una SIM normale, notare l’allineamento dei bordi delle piazzole
riferimento larghezza sim sulla matrice
Avendo perfettamente allineato i contatti della SIM con quelli della microSIM (dovete naturalmente guardare le piazzole che hanno i segnetti dei contatti, cioè quelle effettivamente usate) marcate i bordi laterali con del nastro isolante
sagoma sim sulla matrice della microsim
Fate lo stesso con i bordi superiore e inferiore, allineando stavolta le due schede in modo che i chip siano alla stessa altezza
adattamento microsim quasi finito
Il risultato grezzo dopo aver inciso lungo i bordi con un taglierino ed un righello a tenere la retta, le dimensioni sono leggermente eccessive ma basta poco per aggiustarle
microsim convertita e sagomata
Dopo aver tagliato via l’angolo e aver arrotondato i bordi l’aspetto è quello di una normale SIM

La scheda SIM così ottenuta funziona perfettamente nel mio Galaxy Note, anche se è un po’ più complicata da far entrare siccome è meno rigida lungo i bordi e la pista di inserimento è stretta..

Convert a micro-SIM into a normal SIM card, just a knife without adapter

Sometimes you’re stuck with a brand new microSIM that you can’t use in your phone, because you need a normal form factor SIM, but maybe you had this chance to activate a special promotion that only came in microsim format.

Well do not despair, you can get a normal SIM (-ish) from a microSIM, just DON’T remove the microsim from its matrix just yet!

microsim converted inside it's credit card holder
This is what we are going to get at the end
width comparison between SIM and microSIM
Our micro-SIM in its credit-card like holder, compared to a standard SIM card
marking width on microsim holder
After aligning the correct contacts of SIM and micro-SIM, I used insulating tape to mark the side borders of the new SIM card
marking the outer borders of the SIM on the microsim holder
I did the same thing with upper and lower borders, aligning the microSIM and SIM through their chips
almost finished microsim sim conversion
This is the rough result after cropping the external borders with an exacto knife guided by a ruler, slightly bigger but centered nonetheless
microsim converted to SIM, adapted and rounded with dremel
After cutting the angle, I used a dremel to round the corners

The SIM card works perfectly inside my Galaxy Note, just slightly harder to plug inside but once inserted it goes as a charm.

Installare deluge bittorrent su Ubuntu con controllo remoto via interfaccia web

Caso tipico: avete, o volete impostare, un server domestico con Ubuntu Linux, che agisca anche da server sempre attivo per il download e upload via bittorrent.
La richiesta di risorse è molto limitata e potete resuscitare un sistema molto vecchio, ad esempio persino un vecchio laptop su cui non volete nemmeno installare l’interfaccia grafica (a patto che abbia un disco sufficientemente capiente per i file che volete scaricare).

L’idea di partenza è avere quindi un server che faccia tutto dietro le quinte, e che sia sicuro.

Questa guida è ispirata ad altre due guide: questa e quest’altra.

Se volete la spiegazione dei vari passaggi, la trovate in fondo all’articolo.

Installato Ubuntu (l’ultima versione, al momento di scrivere, è la 12.04 Precise Pangolin) eseguite i seguenti comandi:

sudo adduser --disabled-password --system --home /home/deluge --gecos "BitTorrent Service" --group deluge
sudo mkdir /home/deluge/Incoming
sudo chown deluge:deluge /home/deluge/Incoming
sudo mkdir /home/deluge/Completed
sudo chown deluge:deluge /home/deluge/Completed
sudo add-apt-repository ppa:deluge-team/ppa
sudo apt-get update
sudo apt-get install deluged deluge-webui

Quindi create il file /etc/init/deluge.conf:

sudo nano /etc/init/deluge.conf

e incollate all’interno il seguente testo:

start on (filesystem and networking) or runlevel [2345]
stop on runlevel [016]
env uid=deluge
env gid=deluge
env umask=000
exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluged -- -d

per salvare premete Ctrl-X e date l’ok premendo Y o S a seconda che Ubuntu sia in inglese o italiano.

Poi create il file /etc/init/deluge-web.conf:

sudo nano /etc/init/deluge-web.conf

e incollate all’interno il seguente testo:

start on started deluge
stop on stopping deluge
env uid=deluge
env gid=deluge
env umask=027
exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluge-web

Per avviare deluge è necessario il comando:

sudo start deluge

e per terminarlo:

sudo stop deluge

mentre per riavviarlo (ad esempio dopo modifiche alla configurazione, perché queste ultime abbiano effetto):

sudo restart deluge

L’interfaccia web di deluge si avvia e chiude contemporaneamente al demone, quindi non è necessario intervenire su quest’ultima; raggiungerla è piuttosto banale: se avete un’interfaccia grafica installata sullo stesso server, aprite un browser e dirigetevi all’indirizzo http://localhost:8112 (la password di default è deluge), altrimenti se vi collegate da un altro PC della rete, allora usate http://:8112.

Una volta ottenuto l’accesso all’interfaccia web è consigliabile effettuare alcuni cabiamenti: innanzitutto se vi compare la finestra di connessione al demone, premete il pulsante Connect, quindi dal pannello in alto premete Preferences e passate in rassegna le varie sezioni.

Vorrete probabilmente ridimensionare il numero di connessioni totali (400-500), attivare la crittografia (mettete “Enabled” e “Full stream” nelle varie opzioni e attivate la casellina), impostare correttamente le cartelle di salvataggio dei file (mettete /home/deluge/Incoming per i file in arrivo, e /home/deluge/Completed per i file che sono stati scaricati completamente), nella sezione Interface cambiate la porta di default ad una diversa, e attivate la casella SSL, cambiate la password premendo il pulsante Change sotto alle caselle di testo, e quindi riavviate deluge per attivare i cambiamenti. Se avete attivato SSL e cambiato porta, ad esempio 1234, vi dovrete collegare all’indirizzo https://localhost:1234 (oppure https://:1234), fate attenzione al protocollo, che diventa https con la “s” finale che sta per secure. Il vostro browser vi farà presente che il sito richiede dei certificati, se siete su Firefox cliccate su “Aggiungi eccezione” e salvate il certificato, oppure seguite gli opportuni passaggi sugli altri browser.

Cosa fa questa guida esattamente?

I vari comandi all’inizio servono a creare un utente riservato a deluge (invisibile dalla schermata di login, si potrebbe dire che è un account “di servizio”), in modo che una eventuale compromissione dell’account da remoto tramite una falla di sicurezza del demone deluge non metta a rischio l’intero server; viene creato un account chiamato deluge appartenente al gruppo deluge con cartella home uguale indovinate un po’ a /home/deluge nella quale verranno poi create le cartelle Incoming e Completed destinate rispettivamente ai file in fase di download ed allo spostamento di questi ultimi una volta completati. Il comando chown serve a attribuire all’utente deluge la proprietà delle suddette cartelle, siccome le creiamo come utente root.
Nella creazione dello script di avvio delige.conf il valore 000 assegnato al parametro umask serve a permettere l’accesso in lettura e scrittura alle cartelle di scaricamento di deluge da parte degli altri account del server, in modo che ad esempio non sia necessario impostare mirabolanti configurazioni multiutente per accedere via Samba alle cartelle del server da un pc Windows.
Se avete installato Samba, piuttosto, potete molto più facilmente accedere al server deluge usando, tramite rete locale, il nome del server. Se ad esempio l’hostname della macchina Ubuntu è pincopallo, una volta che avete impostato il WORKGROUP in /etc/samba/smb.conf ad un nome uguale al workgroup del vostro PC Windows, dal vostro browser preferito potete digitare semplicemente https://pincopallo:1234 (se vogliamo seguire l’esempio precedente).

Ubuntu won’t start Gnome GDM after upgrade to Oneiric Ocelot

So I was upgrading my home server first from Maverick Meerkat to Natty Narwhal, and then from Natty to Oneric Ocelot.
It is not a plain desktop installation, as back in the time I installed Ubuntu Server and then built upon it adding Gnome without the useless stuff that comes with the ubuntu-desktop package.

Anyway, after upgrading to Oneiric the X interface went away, all I saw was the boot messages text by the kernel up to the Apache2 start, and nothing else. SSH was still accessible so I could go through it, but you could still use recovery console to access the system if you don’t have remote terminal capability installed.

Checking with dmesg I saw these error messages:

[ 24.974182] gdm-simple-slav[1009]: segfault at 0 ip 002945b7 sp bfe9b6c8 error 4 in libnss_compat-2.13.so[291000+6000] [ 38.598946] gdm-simple-slav[1218]: segfault at 0 ip 00a3b5b7 sp bf9c35c8 error 4 in libnss_compat-2.13.so[a38000+6000] [ 39.562834] gdm-simple-slav[1238]: segfault at 0 ip 005eb5b7 sp bff72138 error 4 in libnss_compat-2.13.so[5e8000+6000]

Upgrading again, via SSH, to Precise Pangolin didn’t solve the problem, so I googled aroung and found this bug on launchpad.

Apparently, the autologin feature prevents GDM from going on and just hangs there.

Briefly, what I did and worked in my case (mileage may vary) was:

sudo add-apt-repository ppa:gnome3-team/gnome3
sudo add-apt-repository ppa:ubuntugnometeam/ppa-gen
sudo apt-get update
sudo apt-get dist-upgrade
sudo mv /etc/gdm/custom.conf /etc/gdm/custom.conf.off

The last line is the command that removes the autologin (by renaming the conf file that activates it), after doing this and rebooting I was showed the login screen.