Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/webvol34/an/96qmbdpibm1sspm/danielliljeberg.se/public_html/blog/wp-content/mu-plugins/gkphp.php on line 1
Daniel Liljeberg – Page 2

Fixa dina beroenden

16 december, 2011 av Daniel Liljeberg Inga kommentarer »
Snabb prototyp av applikation för att få fram beroenden inför Amahi program paketering.

Flattr this!

Tvheadend för Amahi

16 december, 2011 av Daniel Liljeberg 2 kommentarer »
Pre Alpha av Tvheadend för Amahi

Flattr this!

R.I.P. Steve Jobs

6 oktober, 2011 av Daniel Liljeberg Inga kommentarer »

En stor pionjär och entreprenör har gått ur tiden. Han kommer vara saknad av många för många olika anledningar. Få har kunnat vara så konsekventa i att förutse kundernas framtida önskemål och framtida trender. En hel industri har tappat en drivande eldsjäl.

 

Steve Jobs

1955-2011

Flattr this!

Fler paket

5 oktober, 2011 av Daniel Liljeberg 452 kommentarer »

Jag har flera paket för Amahi under skapande. Snart kommer följande att återfinnas för alpha testning. Nedan följer korta presentationer på engelska. Paketen för dessa beräknar jag ha klara inom någon vecka.

Har du fortfarande inte en Amahi som snurrar hemma så sätt upp en fort! http://www.amahi.org

Syncrify

Syncrify BannerSyncrify is fast, incremental, and cloud-ready backup that implements the rsync protocol over HTTP.

Key Features
  • Backup over HTTP – Backup and restores are done using the HTTP protocol. Click here to see why is this important.
  • Uses Rsync – Files are copied using Rsync algorithm. Click here to see why is this important.
  • Multi-platform – Syncrify can be installed on any operating system including MS Windows, Linux, Mac OSX and UNIX
  • Backup over the Internet – Backup files from any computer across the Internet
  • Cloud Ready  – Power your private cloud using Syncrify. If you are an enterprise looking for a comprehensive, cost effective data protection platform, consider Syncrify to create a private cloud. Click here for more information.
  • Free – Syncrify is absolutely free for personal use

Click here for a more features.

How does it work?
  • You install Syncrify Server on any machine of your choice with plenty of hard-drive space. This machine can be located anywhere on the Internet.
  • Using your web-browser you, the administrator, create multiple user accounts.
  • You then install Syncrify Client on a machine that you want to backup. Run this client, decide the files you want to backup and schedule as task to run it.
  • Individual users can connect to the Syncrify Server using their web browser to view backed files as well as download/restore any file when they need it.

Tvheadend

Tvheadend is a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources.

It also comes with a powerful and easy to use web interface both used for configuration and day-to-day operations, such as searching the EPG and scheduling recordings.

Even so, the most notable feature of Tvheadend is how easy it is to set up: Install it, navigate to the web user interface, drill into the TV adapters tab, select your current location and Tvheadend will start scanning channels and present them to you in just a few minutes

For the full list of features see the documentation.

Flattr this!

Expanding…

21 september, 2011 av Daniel Liljeberg 4 kommentarer »

Senaste tillskottet till hemmets Amahi server.

Ett externt eSata hårdvaru RAID kabinett med 4x2TB diskar i. Här mitt uppe i att bygga en RAID-5 array, vilket tog lååååååååååååååång tid Smile.

Har ett kabinett till stående som är redo att rycka in när detta blir fullt.

Håller på att fixa iordning en 1-click install för Syncrify till Amahi vilket bör vara klart snart.

Flattr this!

Plex Media Server för Amahi

6 september, 2011 av Daniel Liljeberg 14 kommentarer »

imagePlex Media Server är en server mjukvara som enkelt kopplar samman alla dina Plex klienter med din media samling, men även online tjänster. Plex Media Server hanterar även transcoding och klienter finns för ett stort antal plattformar. På grund av detta tyckte jag att Plex Media Server hade varit ett utmärkt komplement till funktionaliteten som redan idag finns hos Amahi och bestämde mig för att paketera Plex Media Server till en 1-click install för Amahi.

Om du inte tidigare är bekant med vad Amahi är så finns här en liten introduktion.

Plex Media Server

  • Organisera enkelt din media till ett mångsidigt bibliotek med olika avdelningar.
  • Webbaserad administration för enkel åtkomst.
  • Metadata hämtas automatiskt från Internet.
  • Gör en komplett anpassning av ditt bibliotek med ett par klick.

Plex Media Server körs på din Amahi HDA och tillgängliggör ditt media bibliotek för alla dina Plex klienter som exempelvis:

… och mer

imagePlex Media Server kan samexistera med andra media servrar och delningstjänster vilket gör den idealisk för att addera ännu en dimension till din mediedelning genom att aktivera unika funktioner som dina Plex klienter kan dra nytta av.

http://www.amahi.org/apps/plex-media-server

Flattr this!

Snabbare läs och skrivprestanda i Amahi

1 september, 2011 av Daniel Liljeberg Inga kommentarer »

Jag skrev ihop en liten guide om hur man aktiverar AIO på Samba vilket kan öka din läs och skrivprestanda i Amahi shares över nätverket med flera hundra procent.
Samma funktioner kan självklart användas även i en “vanlig” Linux installation som använder sig av Samba. 

Guiden återfinns här: http://wiki.amahi.org/index.php/Make_Samba_Go_Faster

Flattr this!

It’s alive! Hur en PC bootar

21 juni, 2011 av Daniel Liljeberg 1 050 kommentarer »

Introduktion

För att en PC skall kunna boota så är det en hel del kriterier som måste uppfyllas. En nyckelkomponent i hela proceduren är BIOS (Basic Input/Output System) som sitter på moderkortet. Men magin bakom hur BIOS lyckas förstå att den skall boota en enhet och hur den därifrån lyckas starta operativsystem som Windows, Linux osv. är egentligen inte så magisk. Det styrs istället av strikt uppsatta regler för hur bootprocessen skall gå till och villkor som måste uppfyllas. Även om det skiljer en del mellan olika BIOS osv så går vi här igenom själva grunderna i hur en PC faktiskt bootar.

Dags att stiga upp

Ström

När du trycker på strömbrytaren så skickas en signal till moderkortets styrkrets som startar strömförsörjningen. Då det tar ett tag innan nätaggregatet kan leverera en pålitlig spänning till komponenterna så skickar styrkretsen en så kallad reset signal till processorn. Enkelt förklarat kan man säga att denna signal skickas för att processorn skall vänta på att systemet är redo för att processorn skall börja jobba. Denna signal är samma signal som skickas när du trycker på reset knappen på din dators chassi. Om du någon gång hållit inne denna knapp så kanske du märkt att datorn inte startar om förens du släpper upp knappen igen. När strömmen är stabil skickas signalen “PWR OK” från nätaggregatet. Denna signal skickas sedan kontinuerligt ifrån nätaggregatet så länge inga fel upptäcks. När denna signal mottas så kan bootprocessen börja.

BIOS

För att processorn, som för tillfället inte har några instruktioner i minnet att exekvera, skall kunna göra något produktivt så är den förprogrammerad att leta efter systemets BIOS på en specifik plats i systemminnet. Positionen för detta är oftast 0xFFFF, vilket är 16 byte ifrån slutet av systemminnet. Genom att lägga BIOS där så garanterar man att processorn vet var den skall börja exekvera. Dock så är det svårt att passa in hela BIOS16 byte. Detta har man löst genom att på positionen 0xFFFF lägga en enda instruktion, en “jump” instruktion som talar om för processorn var den kan hitta den riktiga BIOS koden. På detta sätt kan den faktiska koden för BIOS växa utan att skapa kompatibilitetsproblem och processorn vet alltid var den skall leta för att hitta sin första instruktion.

BIOS utför nu något som kallas POST. POST står för Power On Self Test och utför en del kontroller så som att varje komponent har rätt spänning, att minnet inte är korrupt etc. Om några fatala fel upptäcks så avbryts bootprocessen. POST kan också returnera felkoder i form av så kallade “beep codes”. Dessa kan skilja mellan olika tillverkare av BIOS men är mycket användbara när det gäller att precisera fel som hindrar datorn från att boota.

Även andra komponenter i datorn så som ljudkort, HDD, grafikkort, tv-kort osv är också försedda med egna små BIOS program. BIOS söker nu upp dessa komponenter och kör deras BIOS program. Först ut brukar grafikkortet vara och dess BIOS brukar återfinnas på 0xC000. Detta initierar grafikkortet. På samma sätt körs sedan de andra komponenternas BIOS.

Nu när grafikkortet är initierat så har BIOS möjligheten att rita till skärmen och gör nu ett antal ytterligare tester och skriver ut fel den hittar på skärmen. Du har kanske sett meddelande som klagar på att du inte har ett tangentbord eller mus inpluggad någon gång. Det meddelandet genereras av BIOS här.

BIOS gör nu en kontroll över vilken typ av hårdvara som finns i systemet. Automatiska HDD parametrar sätts och logiska enheter som COM och LPT portar namnges.

There’s no place like… 0x7C00

Bootsektor

Nu kommer BIOS att leta efter vad som kallas bootsektor på någon av de anslutna enheterna. Bootsektorn innehåller kod för att boota ifrån enheten och exempelvis starta ditt operativsystem (OS). Vilka enheter som kontrolleras ställs in i BIOS. Vanligen kontrolleras dina HDD’s och sedan andra enheter. Den första enheten i listan som innehåller en bootsektor som uppfyller kraven för att kunna bootas kommer att vara den enhet som bootas.

Jag nämnde tidigare att den till synes magiska uppstarten av en dator egentligen är hårt styrd. Bootsektorn måste därför uppfylla ett antal kriterier för att BIOS skall kunna ladda och köra den.

  • Måste ligga i första sektorn på enheten
  • Måste vara exakt 512 byte
  • Måste sluta med 0x55 och 0xAA på position 511 och 512

Om BIOS hittar en sektor som uppfyller dessa krav så laddas den in i minnet på en specifik position, 0x7C00. Registret dl sätts till numret på den enhet som bootsektorn laddas ifrån. Första HDD’n har 0x8000 och den första floppydriven har nummer 0x0000. Om ingen enhet innehåller en bootsektor så rapporterar BIOS ett fel i stil med “Disk boot failure”.

En massa register sätts nu till 0 och processorn hamnar i vad som kallas “real mode”. BIOS ger därefter processorn instruktionen att utföra ett “jump” till 0x7C00 vilket för över kontrollen till koden som laddades ifrån bootsektorn.

Då bootsektorn endast är 512 byte så kan den inte innehålla ofantliga mängder kod. Istället brukar den bara ansvara för att ladda och exekvera mer kod. För MS-DOS laddas tex IO.SYS som sedan laddar och exekverar mera data.

Master Boot Record

Då hårddiskar kan partitioneras i flera partitioner som alla kan innehålla bootbara OS så leder resonemanget ovan till ett problem. Då olika OS kan kräva olika bootloaders för att kunna boota så måste vi byta ut bootloadern i bootsektorn varje gång vi skall boota ett annat OS.

För att komma runt detta så ligger inte den riktiga bootloadern i den första sektorn på en HDD. Istället återfinns där något som kallas Master Boot Record (MBR). Det hanteras dock precis likadant av BIOS. Det vill säga, det laddas in på positionen 0x7C00 och slutar på 0x55AA. Exekverbar kod återfinns mellan offset offset 0x0000 0x01bd. Men förutom att endast innehålla exekverbar kod som bootsektorn gör så innehåller MBR även en partitionstabell med information om partitionerna som finns på HDD’n. Dessa entries för de fyra primära partitionerna är på 16 byte var och finns på offset 0x01BE 0x01FD följt av en signatur på två byte 0x01FE 0x01FF.

Formen på en entry är

Offset

Storlek (byte)

Förklaring

0x00

1

Boot indikator (0x80 = bootbar, 0x00 = icke bootbar)

0x01

1

Första “Head” nummer

0x02

2

Första cylinder nummer (10 bits) och sektor (6 bits)

0x04

1

“Descriptor” (Typ av partition/filsystem)

0x05

1

Avslutande “Head” nummer

0x06

2

Avslutande cylinder och sektor nummer

0x08

4

Starting Sector (relativt till HDD’ns början)

0x0C

4

Antal sektorer i partitionen

 

Bootloadern för en partition återfinns i den första sektorn av en partition och är på samma form som en bootsektor. MBR kontrollerar vilken partition som är aktiv, och laddar sedan in dess bootsektor på plats 0x7C00 och instruerar processorn att göra ett “jump” till den positionen. Notera att MBR tidigare laddades in på 0x7C00. MBR måste således flytta sig själv ur vägen innan bootsektorn laddas.

Detta gör det möjligt för flera olika OS att ligga i olika partitioner på samma fysiska HDD och kunna laddas med olika bootloaders.

Avslutning

I nästa artikel skall vi se hur detta fungerar i praktiken och försöka oss på att följa dessa “regler” för att få en PC att boota utifrån en bootsektor vi själva skriver.

Flattr this!

iPhone4 test… eller njae :)

7 juni, 2011 av Daniel Liljeberg 2 kommentarer »

Fick en iphone4 kopia i handen och har sällan varit så frustrerad :). Var tvungen att filma lite för att varna andra. Jag har fattat att de sög sedan tidigare. Men att faktiskt hålla en i handen tog föraktet till nya höjder 🙂

 

Det hela börjar med att polaren frågar om hur addressboken fungerar. Det går snabbt upp för mig att det inte är någon riktig iPhone4 och en spännande liten test av hur hårt den suger börjar.
Pillandet fortsätter i samma frustrerande anda och min son kommer fram och undrar vad det är jag försöker göra med telefonen 🙂

Så… kort och gott… Köp INTE dessa hemska kopior!… hahaha! Smile

Flattr this!

Förslag till en samling tutorials

30 maj, 2011 av Daniel Liljeberg 3 964 kommentarer »

Jag har funderat lite på vad man skulle kunna göra en tutorial/kurs om. Det finns ju otroligt mycket bra information på nätet redan och även om detta mest hade varit en kul liten grej så hade det varit roligt om någon lärde sig något på samma gång. Jag tror att jag kommer rikta in mig på en webapplikation av enklare slag skriven i PHP. Med enklare menar jag då, inte som omfattande. Vi skall fortfarande använda oss av abstrakta databaslager, AJAX och annat trevligt. Mycket då det saknas en del bra information för den svenska publiken om PHP men också för att det händer mycket med språket. Det möjliggör också för många att testa på det då alla delar vi kommer använda oss av kommer vara gratis (eller ha en free trial) utan att bli beroende av tredjepartslösningar som exempelvis Mono om man nu sitter i exempelvis Linux. Jag är dock inte partisk utan kan mycket väl se att vi i ett senare skede gör om exakt samam applikation i .Net för att se likheter och skillnader.

Jag tänkte försöka utgå ifrån att inte förvänta mig en massa kunskap av de som tar del av materialet. Men naturligtvis så kommer det att hjälpa om man utvecklat tidigare då jag endast kort kommer gå igenom grunder och sedan gå in på lite mera avancerade områden. Jag tänker mig följande upplägg

  1. Sätta upp lokala utvecklingsverktyg och saker att tänka på (OS, IDE, användbara plugins etc)
  2. Sätta upp server (utvecklingsstack, databas, versions hantering etc)
  3. Lite kort om PHP, karakteristiska saker med språket. Styrkor och svagheter etc.
  4. Ett antal enklare mindre program som visar lite på olika sätt att koda under PHP (och många andra språk också)
  5. Enklare introduktion till OOP och hur PHP hanterar detta.
  6. Introduktion till Zend Framework
  7. Introduktion av MVC mönstret

Sedan börjar vi knacka på vår lilla applikation och börjar då titta på hur Zend Framework hanterar views etc. Sedan går vi in på användarhantering, åtkomstkontroll, osv.

Detta är bara en idé om punkter att ta upp och jag tror att det hela, dynamisk, växer fram med tiden. Finns det några idéer eller önskemål så kom gärna med förslag.

Flattr this!