Installation av Teamspeak 3 server

Har länge funderat på att sätta upp en Teamspeak 3 server hemma för att kunna ha när man gäjmar, eftersom det ibland är svårt att få tag på en server som är ledig. Dessutom behöver min World of Tanks spelande klan en server, så nu var det dax.
 
Teamspeak är en programvara för röst- och text-kommunikation, som till skillnad från skype bygger på egna servrar och högre ljudkvalitet med lägre krav på bandbredd. Senaste versionen är TS3 och klienter finns för PC, Mac, Linux, iOS och Android.
 
 
Första steget är att ladda ned rätt serverprogramvara, i mitt fall har jag en 64-bitars installation.
# uname -a
Linux monoton 3.15.4-200.fc20.x86_64 #1 SMP Mon Jul 7 14:24:41 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Detta innebär att jag skall ladda ned amd64 varianten.
 
Efter det packar man upp filen och lägger den på rätt plats, i mitt fall valde jag att lägga filerna under /opt/ts3server.
 
Starta servern med startscriptet och spara informationen på en säker plats. Du kommer behöva den senare.
------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "ghdghfghf"
------------------------------------------------------------------


------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=ksfhkhjfhgkjsdfgjkhdkghksdjhfgskdjhfg
------------------------------------------------------------------

Sedan skapar du en användare "ts3server" och ändrar ägare och grupp för samtliga filer i katalogen /opt/ts3server till desamma.
 
Sist skapar vi en service som startar automatiskt vid boot, se följande tråd för mer information.
 
Skapa filen /usr/lib/systemd/system/teamspeak.service med nedanstående innehåll:
[Unit]
Description=Teamspeak Service
Wants=network.target

[Service]
WorkingDirectory=/opt/ts3server
User=ts3server
ExecStart=/opt/ts3server/ts3server_minimal_runscript.sh
ExecStop=/opt/ts3server/ts3server_startscript.sh stop
ExecReload=/opt/ts3server/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Kör sedan kommandot:
# systemctl enable teamspeak.service
# systemctl status teamspeak.service
teamspeak.service - Teamspeak Service
   Loaded: loaded (/usr/lib/systemd/system/teamspeak.service; enabled)
   Active: active (running) since Wed 2014-07-16 20:59:07 CEST; 31min ago
 Main PID: 945 (ts3server_minim)
   CGroup: /system.slice/teamspeak.service
           ├─945 /bin/sh /opt/ts3server/ts3server_minimal_runscript.sh
           └─954 ./ts3server_linux_amd64

Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Jul 16 20:59:12 monoton ts3server_minimal_runscript.sh[945]: 2014-07-16 18:59...
Hint: Some lines were ellipsized, use -l to show in full.


Nästa steg är att starta klienten på PC och konfigurera det egna kontot till att vara administratör - då behöver man "token="-strängen som servern spottade ur sig tidigare. Efter det kan man göra all administration av servern via PC-klienten.

Robot med Arduino

Jag har köpt på mig lite Arduino-prylar och håller just nu på med att lajja runt med en Pololu Zumo baserad robot.
 
 
Robotplattformen kommer att kompletteras med lite servo, avståndsmätare med ultraljud, NeoPixel lysdioder samt lite annat smått och gott.
 
 
Just nu håller jag på att bygga en påbyggnad på chassiet där jag kan montera, först ut blir ett vridbart torn för ultraljudssensorn (±90° panorering) samt ett PWM-styrkort för servo och lysdioder. NeoPixel ringen är tänkt att visa information om vad roboten "ser".
 

Hålbild för väggmonterad switch

Att skruva upp nätverkskomponenter, t.ex. switchar och routers, på en vägg kan vara en utmaning - speciellt om tillverkaren inte har bemödat sig med att göra en hålmall för skruvhålen.
 
I dessa fall brukar jag ta till trixet med en blyertspenna för att rita av hålbilden, eftersom det kan vara svårt att mäta c/c-avståndet med tillräcklig precision. Det räcker ju med några 10-delars mm fel så kan det vara svårt att få switchen på plats.
 
 
Genom att sätta pappret på väggen och skruva i skruven genom den blyertsmarkerade kanten kan man få c/c-avståndet exakt som hålen i apparatlådan.
 
 

Hörlurar till mobilen

För några år sedan hittade jag ett par Sansui SS-2 hörlurar på en loppis för 20:- som jag köpte utan att tveka en sekund... Designen är helt fantastisk tycker jag.
 
Lurarna är alldeles för snygga för att man bara skall sitta hemma och lyssna med dem, beslutade jag mig för att bygga om dem för att passa min mobiltelefon - så jag kan visa upp dem på stan. Detta innbär att jag har bytt ut den gråa retro-kablen mot en vit handsfree-sladd så jag har en svarsknapp och en mikrofon.
 
Högtalarna är ett par 8-ohms bredbandselement, vilket gör att  det är svårt att driva hörluren från en mobiltelefon. Det krävs en hörlursförstärkare för att få det att funka.
Jag har därför monterat in ett par 1.5" neodym element på 32 ohm från en AKG-lur, vilket är en bra driver.
 
Jag har givetvis sparat alla originaldelarna så att det skall gå att restaurera objektet till originalskick om så önskas :-)
Jag har hittat lite information på nätet om den, se länk.

Här är resultatet:
 
 
 
 
 
 

Installation av nya diskar (Pt II)

   .
   .
  /dev/md126: Moved: 99.8%
  /dev/md126: Moved: 99.9%
  ABORTING: Can't find LV in lvm-raid for /dev/md126
 
Gahhh! Såhär vill man inte att 2 timmars grejjande av det magiska kommandot "pvmove" skall sluta.
Efter panik-googlande visade det sig att detta beteendet är en känd bugg, dokumenterad här. Som det går att se nedan så är hela PVn /dev/md126 tom, så "pvmove" gjorde det den skulle.
 
# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/md100 lvm-raid lvm2 a-     1.82t 931.50g
  /dev/md126 lvm-raid lvm2 a-   931.51g 931.51g
  /dev/md127 lvm-raid lvm2 a-   931.51g      0
#
 
Vi tar först bort etiketten på den aktuella PVn och sedan resar vi bort den ifrån volymgruppen (VG).
 
# pvremove -ff -v /dev/md126
Really WIPE LABELS from physical volume "/dev/md126" of volume group "lvm-raid" [y/n]? y
  WARNING: Wiping physical volume label from /dev/md126 of volume group "lvm-raid"
  Labels on physical volume "/dev/md126" successfully wiped
#
# pvs
  Couldn't find device with uuid P8UUSG-EqE4-5qpH-939d-fYVn-S5cn-ngGz26.
  PV             VG       Fmt  Attr PSize   PFree  
  /dev/md100     lvm-raid lvm2 a-     1.82t 931.50g
  /dev/md127     lvm-raid lvm2 a-   931.51g      0
  unknown device lvm-raid lvm2 a-   931.51g 931.51g
#
# vgreduce --removemissing lvm-raid
  Couldn't find device with uuid P8UUSG-EqE4-5qpH-939d-fYVn-S5cn-ngGz26.
  Wrote out consistent volume group lvm-raid
# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/md100 lvm-raid lvm2 a-     1.82t 931.50g
  /dev/md127 lvm-raid lvm2 a-   931.51g      0
#
 
Nu stänger vi ned servern och monterar bort de trasiga diskarna.
 
Efter uppstarten visar det sig att LVM döper om de olika arrayerna, men det spelar ingen stötrre roll eftersom den lyckas reda ut hur dom hänger ihop ändå. Syncningen fortsätter där den blev avbruten och allt ser bra ut sålångt - de trasiga diskarna har redan påbörjat sin resa mot elektronikåtervinningen:
 
# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdb1[0] sdd1[1]
      1953512400 blocks super 1.2 [2/2] [UU]
      [=========>...........]  resync = 48.5% (948276288/1953512400) finish=109.2min speed=153363K/sec
      
md127 : active raid1 sdf1[1] sde1[0]
      976759672 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sda2[0] sdc1[1]
      485807996 blocks super 1.1 [2/2] [UU]
      bitmap: 4/4 pages [16KB], 65536KB chunk

unused devices: <none>
 
Nästa steg är att utöka den logiska volymen (LV) med de outnyttjade 1TB utrymme som finns i vår nyaste PV, notera kolumnen PFree nedan:
 
# pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/md126 lvm-raid lvm2 a-     1.82t 931.50g
  /dev/md127 lvm-raid lvm2 a-   931.51g
#
 
För att kunna göra detta behöver jag veta hela sökvägen för LV, vilket jag kan få fram med "lvdisplay", samt antalet lediga PE, vilket gar får fram med "pvdisplay"

# lvdisplay
  --- Logical volume ---
  LV Name                /dev/lvm-raid/lvm0
  VG Name                lvm-raid
  LV UUID                tDC0UQ-TrcX-P0qU-SyNA-PA21-R7Pu-7gJHwM
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.82 TiB
  Current LE             476932
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
# pvdisplay /dev/md126
  --- Physical volume ---
  PV Name               /dev/md126
  VG Name               lvm-raid
  PV Size               1.82 TiB / not usable 2.95 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              476931
  Free PE               238465
  Allocated PE          238466
  PV UUID               mg0Qio-KqU3-Bf50-lpr6-mCNL-eOwf-M1yhEE
   
#
 
Nästa steg blir att utöka LV med de lediga PE.

# lvextend -l+238465 /dev/lvm-raid/lvm0
  Extending logical volume lvm0 to 2.73 TiB
  Logical volume lvm0 successfully resized
#
 
För att vi skall få mer lagringsutrymme (filsystem) räcker det inte med att utöka den logiska volymen - man måste utöka filsystemet också.
 
Men eftersom allt har gått så bra och vi känner oss riktigt sturska så utökar vi storleken på filsystemet on-line, dvs med servern i full drift (filsystemet är monterat och används).

# resize2fs /dev/lvm-raid/lvm0
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/lvm-raid/lvm0 is mounted on /data; on-line resizing required
old desc_blocks = 117, new_desc_blocks = 175
Performing an on-line resize of /dev/lvm-raid/lvm0 to 732566528 (4k) blocks.
The filesystem on /dev/lvm-raid/lvm0 is now 732566528 blocks long.

Med detta har vi bytt ut 2 trasiga 1TB diskar som var speglade med RAID1 mot två 2TB nya under full drift av servern, men det enda undantaget att jag stängde ner den då jag monterade i och ur diskarna.
 
Slutet gott allting gott.

Installation av nya diskar

Då själva syftet med LVM är att kunna hantera volymer och diskar på ett effektivt sätt, kollade jag runt lite i HowTo's och FAQs för LVM och RAID. Jag hittade denna intressanta artikeln om hur man tar bort en fysisk volym (PV) från ett filsystem som är i drift.
 
Enklaste lösningen för att råda bot på probleme med trsiga diskar i ett RAID system är givetvis att skaffa exakt lika stora diskar och byta ut dem en och en, med en resync emellan. Men jag vill passa på att sätta in större diskar, vilket ökar komplexiteten något.
 
Men först av allt måste jag installera de nya diskarna och partitionera dem med "fdisk". Partitionens ID sätts till RAID Autodetect (0xfd). Partitionerna dyker upp i systemet som /dev/sdb1 samt /dev/sdd1.
 
Nästa steg blir att bygga ihop den båda diskarna till en spegel (RAID1-array).
 
# mdadm --create --verbose /dev/md100 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdd1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: size set to 1953512400K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md100 started.
#
# cat /proc/mdstat
Personalities : [raid1]
md100 : active raid1 sdd1[1] sdb1[0]
      1953512400 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.0% (1148352/1953512400) finish=226.6min speed=143544K/sec
      
md126 : active raid1 sdg1[0]
      976758841 blocks super 1.2 [2/1] [U_]
      
md127 : active raid1 sdf1[1] sde1[0]
      976759672 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sda2[0] sdc1[1]
      485807996 blocks super 1.1 [2/2] [UU]
      bitmap: 3/4 pages [12KB], 65536KB chunk

unused devices: <none>
 
Syncning startar i bakgrunden och det går bra att börja använda arrayen /dev/md100 på direkten.
 
Nästa steg blir att lägga till arrayen som en fysisk volym (PV) i införliva den i vår LVM volymgrupp (VG).
 
# pvcreate /dev/md100
  Physical volume "/dev/md100" successfully created

#
# lvs
  LV   VG       Attr   LSize Origin Snap%  Move Log Copy%  Convert
  lvm0 lvm-raid -wi-ao 1.82t                                      
#
# vgextend lvm-raid /dev/md100
  Volume group "lvm-raid" successfully extended
#

Vi ser nedan att den nya PVn har adderats till VGn, som nu är 3.64TB stor.
 
#
# vgdisplay
  --- Volume group ---
  VG Name               lvm-raid
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               3.64 TiB
  PE Size               4.00 MiB
  Total PE              953863
  Alloc PE / Size       476932 / 1.82 TiB
  Free  PE / Size       476931 / 1.82 TiB
  VG UUID               UNdmuD-JNGp-YwgA-s5PQ-3mp6-u4En-5Ets3U
   
#
 
Nästa steg blöir att utnyttja VGns extrakapacitet till att rädda data från de trasiga diskarna.
 
# pvmove -v /dev/md126
    Finding volume group "lvm-raid"
    Archiving volume group "lvm-raid" metadata (seqno 9).
    Creating logical volume pvmove0
    Moving 238466 extents of logical volume lvm-raid/lvm0
    Found volume group "lvm-raid"
    activation/volume_list configuration setting not defined, checking only host tags for lvm-raid/lvm0
    Updating volume group metadata
    Found volume group "lvm-raid"
    Found volume group "lvm-raid"
    Suspending lvm--raid-lvm0 (253:0) with device flush
    Found volume group "lvm-raid"
    activation/volume_list configuration setting not defined, checking only host tags for lvm-raid/pvmove0
    Creating lvm--raid-pvmove0
    Loading lvm--raid-pvmove0 table (253:1)
    Resuming lvm--raid-pvmove0 (253:1)
    Found volume group "lvm-raid"
    Loading lvm--raid-pvmove0 table (253:1)
    Suppressed lvm--raid-pvmove0 identical table reload.
    Loading lvm--raid-lvm0 table (253:0)
    Resuming lvm--raid-lvm0 (253:0)
    Creating volume group backup "/etc/lvm/backup/lvm-raid" (seqno 10).
    Checking progress before waiting every 15 seconds
  /dev/md126: Moved: 0.0%
  /dev/md126: Moved: 0.1%
  /dev/md126: Moved: 0.2%
   .
   .
   .
 
 Detta tar lång tid. Jag återkommer :-)

Diskhaveri på G

Min Linux-server har börjat indikera att en hårddisk håller på att kapitulera:
 
 
Orsaken är att en av diskarna har börjat detektera sektor-fel genom SMART övervakningsfunktionen:
 
 
 
Då båda diskarna ligger på i samma RAID1-array riskerar jag att snart tappa bort 1TB data, men eftersom jag använder LVM för att bygga ihop ett 2TB stort filsystem bestående av två identiska RAID1-arrayer, skulle ett fel i den ena arrayen påverka hela VolymGruppen(!):
 
# cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdf1[0]
      976758841 blocks super 1.2 [2/1] [U_]
      
md127 : active raid1 sdb1[1] sdd1[0]
      976759672 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sda2[0] sdc1[1]
      485807996 blocks super 1.1 [2/2] [UU]
      bitmap: 3/4 pages [12KB], 65536KB chunk

unused devices: <none>
 

Bygga nya frontpaneler

Så var det dax att byta högtalare. Eftersom detta även innebär att jag måste göra en ny front (baffel) har jag dragit lite på det. I samband med ombygget har jag beslutat mig för att även byta piezo-skrikare och kontaktdonen.
 
Istället för XLR-don sätter jag dit de modernare speakON kontaktdonen.
 
 
Pinouten blir då enligt följande:
 
1+: +högtalaranslutning höger främre kanal
1- : -högtalaranslutning höger främre kanal
2+: +12 VDC (+pol batteri)
2- : Jord (-pol batteri)
 
 
 
Som jag tidigare nämnt så byter jag ut mina gamla Sinus-högtalare mot ProAudio SW-1030 och diskanterna blir piezo-tweeters JB systems JB-660.
 
 
Såhär är tanken att det skall bli - placeringen på motsvarande huvuddelen skall givetvis vara spegelvänd. Just nu är frontpanelerna grundmålade och väntar på att torka innan jag täckmålar dem. Sen är det dax att skruva ihop allt och löda in kablarna.

mediaSupport(TRUE);

Testade att köra alla olika alternativa mediakällor idag; allt funkar perfekt!



Min HTC telefon funkar både över USB och Bluetooth och min iPod likaså. USB minne funkar suveränt och CD, CDROM funkar även om det är lite oklart har den bygger upp spellistan. Men det spelar mindre roll.

Önskar jag hade en sådan här stereo i min bil.... :-/

#fail

Fick mina SW 1030 igår och tänkte byta ut de gamla högtalarelementen. Dom gamla Sinushögtalarna är lite underdimensionerade för det nya slutsteget och som sagt några år på nacken.



Dock är 10" från 1994 inte samma sak som 10" 2012 :-), monteringshålen stämmer inte, så bytet gick inte att göra!

Dock visade det sig även att de gamla högtalarna har pumpat luft för sista gången, elementen har spruckit av ålder och överbelastning - gummiringen har gett med sig.

Så det blir till att byta ut baffeln (fronten) på båda lådorna. Fortsättning följer.

Montering

Så var det dags för montering av CD RDS Radion, batteri samt internt kablage.

Radio  har en s.k. ISO 10487 kontakt som är kontakterad enligt följande länk.

Inkoppling av matningsspänning pin 7 (röd) samt standbyström pin 4 (gul) är gjord direkt till batteriets +pol. Jord pin 8 (svart) kopplas till batteriets -pol. Övriga anslutningar i strömkontakten är oanslutna.
Standbyströmmen ligger på c:a 50 mA då radion frontpanel är ansluten, men då jag tar bort fronten så kopplas en del elektronik bort och då sjunker strömmen till <1 mA.

Högtalarkontaken har anslutningar för 4 högtalare, men jag kommer bara använda fronthögtalarnas anslutningar så pin 1, 2, 7 samt 8 (höger och vänster bakhögtalare) lämnas oanslutna medans pin 3 (grå) och pin 4 (grå/svart) kopplas till XLR kontakten (höger främre kanal) och pin 5 (vit) och pin 6 (vit/svart) kopplas till den interna högtalaren i huvudenheten (vänster främre kanal).

Samtliga högtalarutgångar är brygg-kopplade, så dom kan inte refereras till jord, vilket gör att jag måste använda XLR-kontaktens 3 poler samt anslutning till skärmkåpa för att ansluta högtalare och batteri-laddning.



Pin 1: +högtalaranslutning höger främre kanal
Pin 2:  -högtalaranslutning höger främre kanal
Pin 3: +12 VDC (+pol batteri)
Kåpa: Jord (-pol batteri)



I botten av huvudenheten ligger bly-accumulatorn förankrad. Till skillnaden från ett "vanligt" MC-batteri kan detta vändas hur som helst utan att det rinner ut någon batterisyra, men eftersom det inte fungerar om det ligger upp-och-ner kan man inte placera det riktigt hur som helst i lådan.



Högtalarenheten (eller locket i stängt läge) har ett förvaringsfack som jag inte har färdigställt. Jag hade en idé om att bygga en liten kylbox med ett eget batteri och Peltier-element för att kunna förvara kall öl där, men batterikapaciteten räcker inte till att driva kylboxen en längre tid. Utrymmet måste även isoleras så väl att man bara får plats med 3-4 öl, så det kanske inte är värt besväret...

En annan ide är att komplettera den med solpaneler, så man kan ladda den under dagtid (vid vackert väder). Solpaneler är fortfarande ganska dyra om man skall ha lite kapacitet på dem, så jag avvaktar lite med det.

Fältbandspelare M/93 Mk II

För många år sedan vid en tältpats på Arvikafestivalen omringades vårt tält av andra festivalbesökare, som beväpnade med bergsprängare spelade trash, punk, death, synth och techno från alla håll samtidigt. Inte för att jag har något emot dessa genrer, men det kan bli lite fel när man sitter i epicentrum och hör alla samtidigt.

Då föddes idén till Fältbandspelare M/93, som konstruerades för att lösa detta problemet på ett smidigt sätt.



I ihopfällt läge yttermåtten 1000 x 600 x 600 mm och väger c:a 30 kg. Den är byggd som ett gig-case i 22 mm plywood med metallbeslag och lås för att förhindra sabotage/stöld.



Eftersom mitt festivalbesökande inte har varit så intensivt den senaste 15 åren så är den i stort behov av underhåll och modernisering.

Den ursprungliga konstruktionen bestod av ett underhållsfritt bly-accumulatorpaket på 12V/24Ah, en billig kassettradio på 2 x 18 W och ett par 10" bas-högtalare samt piezo-skrikare.

Då kassettradio är väldigt lite 2000-tal och numera har ersatts helt av MP3, CDROM, USB-minnen och mobiltelefoner så blev det till att leta upp en bilstereo värdig vår samtid.

Valet föll på en Pioneer DEH-4400BT eftersom den har alla funktioner, verkar pålitlig och inte kostar skjortan.

Det gamla batteriet var helt dött efter att tillbringat >10 år i källare av olika slag. Det har jag bytt mot ett nytt Celltech CT25-12 och en batteriladdare är inköpt från Biltema art-nr. 37-733.

Högtalarna fungerar men är på 8Ω och ganska gamla. Ett högtalarmembran är lite skadat, så jag har köpt ett par nya Pro Audio SW 1030 på 4Ω.

100 % Technik

Denna blogg är garanterat fri från mode, inredningstips, familj och renoveringsprojekt. Här dokumenteras bara teknik och hobbies.

Kommentarer om sakfel, förslag på bättre lösningar eller bara vill tala om att inlägget har hjälpt dig är du varmt välkommen att skriva.

RSS 2.0