Radera gamla Linux-kärnor

January 7th, 2016 | Posted by admin in Operativsystem - (0 Comments)

Med tiden samlar man på sig en del Linuxkärnor och till slut tar de för mycket plats eller så får man felmeddelanden om att fler inte går att installera. Radera gamla kärnor genom följande:

1. Öppnar terminalen
2. Skriv uname -r för att se vilken kärna som är den aktuella. Du får tex 3.19.0-42. Den ska du alltså inte radera.
3. Skriv nu följande för att radera en specifik kärna: sudo apt-get remove linux-image-3.19.0-39-generic.

För att ta reda på vilka kärnor du har installerat kan du skriva apt-get remove halvvägs och sedan trycka på tab för att se alla installerade. Tex sudo apt-get remove linux-image-3.19.0 och sen tryck på tab två gånger snabbt.

Installera Android Studio på Ubuntu

December 27th, 2014 | Posted by admin in How-to | Smartphones - (0 Comments)

Det här är det enklaste sättet att installera Android Studio på Ubuntu:

För det första behöver man en JDK. Jag hade openjdk 7, men det funkade inte av okänd anledning så jag installerade Oracles JDK8. Så här gör man.

1. Lägg till repon och istallera från den genom att öppna terminalen och skriva:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

2. Om du har haft tidigare jdk-versioner behöver du göra Oracles alternativ till det främsta alternativt.

Skriv i terminalen:

update-alternatives –config java

Det ger dig alla alternativ som finns att välja på. Välj Oracles version av JDK.

3. Ladda ned Android Studio här.

4. Extrahera mappen och lägg den i /usr/share (standardmappen där alla nya program installeras).

5. Dags att installera Android Studio. Öppna terminalen och skriv

cd /usr/share/android-studio/bin

./studio.sh

6. Följ instruktionerna.

Varje gång du vill starta Android Studio nu måste du starta filen studio.sh på samma sätt som i punkt 5.

Det är inte helt enkelt att ställa in för att använda två skärmar i Ubuntu. När man går in i inställningarna och väljer Displays och bockar av Mirror displays och klickar på Apply så får man troligen felmeddelandet:

“The selected configuration could not be applied

required virtual size does not fit available size: requested=(2880, 900), minimum=(320, 200), maximum=(1600, 1600)”

Så här fixar man det:

1. Öppna Terminal.
2. Hitta filen xorg.conf. Den finns oftast i /etc/X11. Skriv alltså cd /etc/X11.
3. Öppna filen med vim som sudo. Skriv: sudo vim xorg.conf.
4. Filen öppnas i vim. Klicka på bokstaven i för att kunna redigera i vim.
5. Radera sektionen med Section “Screen”.
6. Kopiera in denna sektion istället:

Section “Screen”
Identifier “amdcccle-Screen[1]-0”
Device “amdcccle-Device[1]-0”
DefaultDepth 24
SubSection “Display”
Viewport 0 0
Virtual 3840 1080
Depth 24
EndSubSection
EndSection

7. Tryck på Esc.
8. Skriv in :wq för att spara och stänga vim
9. Starta om datorn.
10. Öppna Displays in inställningarna.
11. Klicka bort Mirror displays och klicka på Apply. Nu ska det funka.

Ladda ned Windows utan produktnyckel

December 12th, 2014 | Posted by admin in Operativsystem - (1 Comments)

Det är inte många datorer som har DVD-läsare nuförtiden. Så om man köper Windows 7 på DVD (för man vägrar Windows 8) och inte har en gammal dator med DVD-läsare så är man ganska körd. Lyckligtvis verkar det som att man kan ladda ned Windows 7 lagligt från nätet, som inte innehåller produktnyckel. Då lägger man bara över .iso filen på en usb-stick, installerar som vanligt och sen kan man lägga in produktnyckeln som står på DVD-skivans fodral.

Här finns en lista på alla Windows 7 versioner man kan ladda ned.

Vissa av CSS3s egenskaper är lite mer vanligt förekommande än de andra. Här är de vanligaste och hur de fungerar med exempel.

Border-radius
Rundar hörnen på div-boxar.

Exempel: border-radius: 10px;

Desto högre värde, desto rundare hörn. Vid ett visst värde får man en cirkel och efter det spelar det ingen roll hur mycket värdet ökas.

Box-Shadow
Lägger på en skugga under en div-box.

box-shadow: x-offset y-offset blur (spridning) färg

Exempel 1: Skuggan hamnar på högersida och vid botten med färgen svart
box-shadow: 5px 5px 10px black;

Exempel 2:Skuggan hamnar på vänstersida och vid toppen med färgen svart
box-shadow: -5px -5px 10px black;

Exempel 3: Med rgba istället för färgen kan man även sätta alfa-värden, vilket är värdet på transparensen.
box-shadow: 5px 5px 10px rgba(0,0,0, .3);

Exempel 4: Exempel med spridningen som är ett frivilligt värde man kan sätta.
box-shadow: 5px 5px 10px 10px rgba(0,0,0, .3);

Exempel 5: Man kan lägga fler skuggor på varandra så här.
box-shadow: 5px 5px 10px rgba(0,0,0, .3),
5px 5px 11px green;

Exempel 6: En skugga som går runt hela boxen.
box-shadow: 0 0 2px 1px rgba(0,0,0,0.3)

Text-Shadow
Lägger på en skugga på texter.

text-shadow: x-offset y-offset blur färg

Exempel 1: Lägger på en skugga åt vänster och på botten som är röd.
text-shadow: 5px 5px 2px red;

Exempel 2: Lägger på en skarp skugga på botten-delen av en text som att det finns belysning bakom texten.
text-shadow: 0 1px 0 #ffffff;

Gradients
Lägger på en gradient på div-boxen eller på hela rutan om man vill. Kan kräva att man har prefixes för att det ska funka. Kör den alltså genom prefixr.com.

linear-gradient(riktning, från-färg, till-färg)

Exempel 1: Lägger på en gradient uppifrån och ned som börjar med svart och avslutas med vit.
linear-gradient(top, black, white);

Exempel 2: Lägger på flera gradients uppifrån och ned. Man kan lägga på hur många färger som helst.
linear-gradient(top, black, red, white);

Exempel 3: Lägger på en gradient där det är bestämt var en viss färg ska sluta.
linear-gradient(top, black 30%, white);

Exempel 4:Lägger på en gradient där svart slutar vid 50% och vit börjar vid 50%, vilket skapar en skarp linje.
linear-gradient(top, black 50%, white 50%);

Columns
Fördelar texten i en div till flera kolumner.

columns: antal kolumner eller längd på kolumner

Exepmel 1: Skapar tre kolumner.
columns: 3;

Exepmel 2: Skapar så många kolumner som möjligt där varje kolumn är 100px brett.
columns: 100px;

Exepmel 3: Skapar så många kolumner som möjligt där varje kolumn är 100px brett med mellanrum mellan varje på 50px.
columns: 100px;
column-gap: 50px;

Media queries
Ger möjlighet att använda olika egenskaper för olika storlekar på skärmen.

@media screen and (max-width: maxlängd på fönstret)

Exempel 1: När fönstret minskas till mindre än 500px hoppar texten över till en kolumn.
@media screen and (max-width: 500px){
p{
columns: 1;
}
}

Font-face
Använda vilken font som helst.

@font-face{
font-family: “namn”;
src: url(‘filnamn.eot’); //För Internet explorer
src:
url(‘filnamn.eot?#iefix’) format(’embedded-opentype’), //För gamla Internet explorer
url(‘filnamn.woff’) format(‘woff’), //Chrome och Safari
url(‘filnamn.ttf’) format(‘truetype’), //Firefox
url(‘filnamn.svg#namn’) format(‘svg’); //iPad och iPhone
font-weight: normal;
font-style: normal;
}

div{
font-family: ‘namn’;
}

Ändra rootmappen i Apache under Xampp

September 16th, 2014 | Posted by admin in How-to - (0 Comments)

När man installerar Xampp på Ubuntu installeras det som standard i mappen /opt och det är bara root användaren som har skrivrättigheter för den mappen. Det gör det omöjligt att spara filer i htdocs-mappen som ligger i /opt och som webbrooten (dit localhost pekar). Det är inte alls bra om man vill hålla på och utveckla webbsidor. Man skulle kunna logga in som root eller ge skrivrättigheter till den mappen från sitt vanliga användarkonto. Men jag tycker bästa lösningen är att ändra rootmappen till en annan mapp som redan har skrivrättigheter. Personligen föredrar jag också att ha rootmappen i min dropbox så kan jag hålla på med utveckling var jag än är utan att alltid behöva commit:a till Github eller Bitbucket i tid och otid för att alltid ha senaste uppdateringen. Men det kan vara nåt att undvika om man jobbar på nåt topphemligt, men då väljer man bara en mapp som inte ligger i ens dropbox. Så här ändrar man rootmappen för Apache:

1. Det går inte att bara öppna httpd.conf filen och redigera den för man har som sagt inte skrivrättigheter. Det jag tycker är enklast är att öppna det enkla grafiska skalet till Xampp och därifrån har man skrivrättigheter till httpd.conf. För att öppna skalet skriver man i terminalen:

cd /opt/lampp

sudo ./manager-linux-x64.run

Skippa -x64 om du inte har den versionen installerad.

2. Nu poppar det grafiska skalet upp. Klicka på knappen Configure. En till ruta poppar upp. Klicka på kanppen Open Conf File. En till ruta poppar upp. Klicka Yes.

3. Nu öppnas httpd.conf filen. Scrolla ner till stycket där det står:

DocumentRoot “/opt/lampp/htdocs”
<Directory “/opt/lampp/htdocs”>

Ändra båda dessa sökvägar till den sökvägen där du vill att rootmappen ska vara. Spara.

4. Om du startar Apache nu och skriver in localhost i webbläsaren kommer du få 403 Access denied-meddelande. Det beror på att den användaren du är inloggad med inte har tillåtelse att ansluta till localhost från den nya sökvägen. Hitta följande stycke i httpd.conf-filen:

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>

Ändra User daemon till User användarnamn, där användarnamn är det användarnamnet du loggar in i ditt aktuella konto med. Så om ditt användarnamn är 1337haxxor så skriver du User 1337haxxor. Spara.

5. Nu är det klart. Starta/starta om Apache och skriv in localhost i webbläsare så kommer innehållet i den nya sökvägen att laddas. Härifrån den nya sökvägen borde mappen även vara skrivbar från ditt vanliga konto om det ligger i Home-mappen.

Hur man sätter upp en SSH identitet på Linux

September 10th, 2014 | Posted by admin in How-to - (0 Comments)

Som utvecklare behöver man ofta sätta upp en SSH identitet för att kunna bekräfta vem man är för andra system, till exempel för att enkelt kunna commit:a ändringar för sin kod till Bitbucket eller Github utan att behöva ange lösenord varje gång. Så här gör man:

1. Kolla om du redan har en identitet genom att i terminalen skriva:

ls -a ~/.ssh

Man kollar helt enkelt vilka filer som finns i mappen .ssh. Om du redan har en identitet kommer du har följande filer i .ssh-mappen.

. .. id_rsa id_rsa.pub known_hosts

Du behöver inte skapa ytterligare en identitet om du redan har en identitet. Hoppa till steg X. Om du har en identitet men vill skriva över den för att du till exempel har glömt bort lösenordet eller om du inte har nån identitet alls kan du forsätta till steg 2.

2. Skriv ssh-keygen i terminalen för att generera nya nycklar.

3. När systemet frågar dig vart du vill spara nycklarna tryck bara enter så sparas de i .ssh-mappen.

4. Sedan skapar du ett lösenord. Ange det två gånger.

5. Sen är det klart. Du kan nu kopiera in den publika nyckeln dit det behövs. Publika nyckeln finns självklart i filen id_rsa.pub i mappen .ssh.

Installera Skype på Ubuntu

September 8th, 2014 | Posted by admin in How-to - (0 Comments)

Om man går in på Ubuntu Software Center och söker på Skype så kommer man inte att få nåt resultat om man inte har lagt till Canonical Partner Repository. Så här lägger man till repositoryn och installerar Skype. Man behöver skriva två rader i terminalen:

Lägga till Canonical Partner Repository:

sudo apt-add-repository “deb http://archive.canonical.com/ $(lsb_release -sc) partner”

Installera Skype:

sudo apt-get update && sudo apt-get install skype

Har man Xampp och Codeigniter installer lokalt på sin dator så är det inte helt uppenbart hur man ansluter från Codeigniter till MySQL-databasen.

För det första om Apache lyssnar på port 80 så ligger phpMyAdmin på adressen http://localhost/phpmyadmin. Om den lyssnar på vilken annan port som helst måste man skriva in det portnumret. Alltså: http://localhost:xxxx/phpmyadmin. Vilken port Apache lyssnar på hittar man i httpd.conf-filen.

För det andra måste man anropa sin databas med en användare som har rättigheter att ansluta till den specifika databasen och som har rättigheter att göra allt annat också. Som standard med Xampp kan man ansluta till sin databas utan vare sig användarnamn eller lösenord. Försöker man anropa sin databas utan användarnamn från Codeigniter får man felmeddelandet Unable to select the specified database, eftersom denna användare inte har rätten att göra något med databasen. Anslut istället med användare root och inget lösenord så kommer det att funka. Användare root har rättigheter att göra vad som helst med databasen.

För det tredje, om Apache lyssnar på annan port än port 80 måste man i Codeigniters database.php-fil ange vilken port MySQL lyssnar på. I vanliga fall är detta 3306.

Så här kan det se ut i Codeigniters database.php-fil som exempel:
$db[‘default’][‘hostname’] = ‘localhost:3306’;
$db[‘default’][‘username’] = ‘root’;
$db[‘default’][‘password’] = ”;
$db[‘default’][‘database’] = ‘min_databas’;
$db[‘default’][‘dbdriver’] = ‘mysql’;

Hämta thepiratebay med cURL

June 22nd, 2014 | Posted by admin in How-to | Tips | Webbutveckling - (2 Comments)

Att hämta thepiratebay(.se) med cURL borde vara ganska lätt. Thepiratebay skickar tillbaka responsen till en request i gzip-format. Därför behöver man avkoda svaret för att se html-koden istället för gzip-kodningen. Detta gör man i requestheadern där man sätter Accept-Encoding till gzip. Alltså:

header_array[] = “Accept-Encoding: gzip”;
curl_setopt(CURLOPT_HTTPHEADER, $header_array);

Om detta inte funkar så kan man också testa att sätta CURLOPT_ENCODING till gzip. Alltså:

curl_setopt($ch, CURLOPT_ENCODING, “gzip”);

Nu kommer man få response-bodyn i vanlig html.