28 april, 2009

Säkerhet/Webbutveckling: Stjäla källkod från PHP/ASP/JSP

Förord
Denna artikel handlar om ett sätt att få tag på källkoden för ett serverbaserat skript som exempelvis PHP, ASP (även .NET) och JSP med flera. Observera dock att det inte går på alla servrar och skript. Det hela går ut på att utvecklaren inte tänker igenom sin uppladdning och redigering av skripten tillräckligt.

Introduktion
Jag har för mig att jag har läst om detta någonstans på Internet i en artikel om just säkerhet vid webbutveckling och nu upptäckte jag det själv av en slump och lite nyfikenhet. Det går att visa källkoden för serverbaserade skript som t.ex PHP, ASP och JSP på några olika sätt och ett av dem tänker jag beskriva lite för er om nu i denna artikeln.

Server Operativsystem
Min testserver Apache2 kör på Ubuntu 8.10 med PHP 5.2.6 och säkerhetsbristen kan fungera även på andra system men det har jag inte prövat. Som textredigerare för skripten använder jag programmet gedit, men i vanliga fall använder jag Zend Studio.

Vad är säkerhetsbristen?
Bristen går ut på att vissa textredigerare sparar en säkerhetskopia av skripten innan de sparas. I Ubuntu 8.10 Intrepid använder jag gedit för teständamål och utan att jag tänkte på det så skapade programmet säkerhetskopior av mina php-skript och placerade dem i samma katalog. Det är ju bra att det gör det automatiskt men ur säkerhetssynvinkel är det dåligt.

Varje säkerhetskopia får suffixet "~" (se exempel 1)
Exempel 1:
index.php redigeras och sparas vilket även skapar filen index.php~
Om man sedan råkar kopiera alla filerna (även inkluderat säkerhetskopiorna) till sin produktionsserver så har man en ganska stor säkerhetsbrist. Detta händer ibland och det räcker med att utvecklaren inte tänker på det och glömmer det en gång. Då sparas en extra kopia med källkoden som kan laddas ned istället för att tolkas av PHP interpretatorn hos Apache.

Laga säkerhetshålet
I programmet gedit som jag använder kan man välja att ställa in så att inga säkerhetskopior skapas före man sparas sina dokument (i vårt fall skript).
gedit > Edit > Preferences > Editor
Ta bort markeringen för "Create a backup copy of files before saving". Se bild 1.

(Klicka på bilden för att förstora) Bild1
Ta bort markeringen för att inte spara några kopior av filerna du redigerar.

Observera att du inte få glömma att radera eventuella säkerhetskopior som redan har sparats vid ett eller flera tidigare tillfällen.

Resultat av säkerhetshål

(Klicka på bilden för att förstora) Bild 2
Skriptet som körs är http://localhost/phpinfo.php


(Klicka på bilden för att förstora) Bild 3
Om man istället går till URL http://localhost/phpinfo.php~ visas källkoden för phpinfo.php från en säkerhetskopia.

Analys
Allt går ut på att utvecklaren är klantig och missar att det även finns gamla säkerhetskopior av skripten i den publika webbkatalogen som är tillgänglig för alla besökare. Om någon besökare är illvillig så kan det hända att han eller hon prövar att lägga till tecknet tilde "~" efter ett filnamn.

Hacket har störst chans att lyckas om det underliggande operativsystemet för servern är någon typ/variant av Linux/Unix (*nix) eller om utvecklaren sitter och programmerar i en sådan miljö lokalt på sin dator (server kan då vara t.ex IIS) och sedan laddar upp alla filer (alla skript inklusive säkerhetskopior) till den publika servern.

Det behöver inte vara "~" (vanligen kallas det för temporär i *nix) som läggs bakom utan även ".bak" som står för backup som är vanligt i Windowssystem.

Slutord
Var försiktiga och tänk noga på att det kan finnas en kopia av din kod som går att ladda ner. Man behöver endast gissa sig till filens filändelse (suffix).

I denna artikeln beskrev jag hur man på ett sätt kunde få tag på källkoden för ett serverbaserat webbskript (t.ex PHP, ASP, JSP, ...) genom att ladda ner publika säkerhetskopior från webbservern.

27 april, 2009

Cisco: Feature navigator

Jag vill tipsa er om en superbra webbsida som Cisco har skapat där man kan kolla upp vilka funktioner och plattformar man kan få tillgång till när man söker efter ett IOS för en Cisco enhet (t.ex router, switch). Webbsidan heter Feature Navigator [1] och används för att se vilka IOS som passar till vald modell.

Exempel
Hemma använder jag en c2610 router för labb och övningar. När jag ville kontrollera om den hade stöd för IPSec, brandvägg och IDS så sökte jag efter ett passande IOS via Feature Navigator [1].

Den är mycket användbar när man söker efter passande IOS för laborationer i Dynamips/GNS3.

Referenser
[1] Cisco Feature Navigator (http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp)

22 april, 2009

Ubuntu/PHP/Apache: Sätta upp webbserver i Linux Ubuntu

Detta är mest ett tips för mig själv för att jag inte skall glömma bort var jag fann denna fantastiska guide [1]. Guiden går igenom om hur man sätter upp Apache, PHP, MySQL i ett Ubuntu system. Jag fann guiden via Netbeans och jag tror även att det går att använda Netbeans IDE på Ubuntu men är inte riktigt säker.

Om det går så har man en bra PHP-editor tillgodo eftersom Netbeans har det stödet inbyggt i senare versioner.

Framtiden
Inom kort kommer jag dokumentera exakt hur man installerar en webbserver med mod_rewrite, gd2 och en MySQL-databas i Ubuntu.

Källor
[1] Configuring the PHP development environment in Linux Ubuntu

16 april, 2009

Linux/Ubuntu: Radera 5 äldsta backup filerna

Just nu arbetar jag med att försöka lära mig GNU/Linux Ubuntu v8.10 eftersom det är en del av mitt och en klasskompis examensarbete.

Jag sitter och försöker konfigurera och ändra lite inställningar via terminalen och har därför automatiskt skapat säkerhetskopior (eng. backup) av filerna jag ändrar ifall något skulle gå snett. Men nu är det så att antalet säkerhetskopior börjar bli väldigt många och det börjar bli svårt att hantera.

Därför har jag skapat ett Shell skript som raderar de fem filerna som har ändrats för längst tid sedan (eng. modification time) och skriver ut ett fint litet meddelande för att informera användaren. För att detta skall ske måste det finnas minst sex stycken säkerhetskopior som har suffixet (filändelsen) *.bak

Allt detta sker innan jag skapar en säkerhetskopia. Här nedanför kan ni se koden för mitt Shell skript.

deloldbak.sh

#!/bin/bash
#
#test
#if expr length $(echo hello) '<' 6 >/dev/null; then
# echo mindre än 6 tecken
#fi
#
#-----------------
# expr length -- beräknar längden på strängen som parameter
# expr -- beräknar utrycket som parameter
#------------------
#
# License: Open source but leave this comments if you want to use my code
# Licens: Öppen källkod men lämna dessa kommentarer om du vill använda min kod
# Date: 2009-04-16
# Owner: Waschman
# URL: http://waschman.blogspot.com
#


# Tar bort de fem äldsta backup filerna från aktuell katalog men
# bara om det existerar fler än 6 säkerhetskopior
if expr $(ls -lt | grep '\.bak$' | wc -l) '>' 6 >/dev/null; then
echo 'Too many backups... removing the 5 oldest backups'
# För varje fil som hittas i utskriften så körs kommandot 'rm'.
# '{} \;' anger att kommandot är slut.
find $(ls -t | grep '\.bak$' | tail -5) -exec rm {} \;
else
echo 'We only have a small amount of backups: not removing any backups'
fi
Ni kan skapa filen med kommandot gedit, nano, vim, eller någon annan textredigerare:
Exempel:
~$ gedit deloldbak.sh
Gör den sedan körbar:
Exempel:
~$ chmod +x deloldbak.sh
Kör skriptet i terminalen:
Exempel:
~$ ./deloldbak.sh
Jag kände bara för att dela med mig av skriptet till allmänheten.

Tips!
I shell-skriptet använder jag $(...) vilket omvandlar utskriften från kommandot innanför paranteserna till en text (eng. string, sv. sträng) som sedan kan behandlas av ett annat kommando. I mitt fall skickas strängen till kommandot expr.

Nu tänker jag gå och lägga mig för i morgon (egentligen idag) skall jag bara slappna av och ta en åktur på mina inlines. Tills dess önskar jag er "happy programming".

Källor
http://www.howtogeek.com/howto/ubuntu/delete-files-older-than-x-days-on-linux/

14 april, 2009

Examensarbete: Test av tunn klient

Detta är ett testmeddelande från en av mina testklienter i VMware som körs som en tunn klient mot en LTSP-server i Ubuntu v8.10 (Intrepid Ibex).

Min testmiljö ser ut på följande sätt:
  • Jag har en vanlig hemma-router Netgear WGR614 som är kopplad via Cat5 ethernet till min stationära PC.
  • På min PC kör jag VMware med två virtuella maskiner (VM). En av dem kör Ubuntu 8.10 LTSP server med två nätverkskort och den andra är helt tom (50MB) och inställd på 128MB RAM-minne och ett nätverkskort.
  • Min tomma VM startar upp via nätverket: PXE Network Boot.
  • För att den skall kunna starta måste servern köra DHCP och skicka ut speciella parametrar. Därför måste man stänga av DHCP på min Netgear WGR614 annars krockar protokollet.
  • Starta min tomma VM och vips så har man en tunn klient som kör Ubuntu via nätverket. Hur smidigt som helst!

-------

Jag och en klasskompis arbetar just nu med vårt examensarbete och i skolan har vi en suverän labbmiljö där vi testar att sätta upp tunna klienter mot en GNU/Linux server som kör LTSP - Linux Terminal Server Project. Serverversionen är Ubuntu 8.10 och de avbildningsfiler som skickas ut till klienterna i nätverket kör också Ubuntu 8.10 fast en nedbantad version.

Exakt vad vi skall använda detta till vår jag inte tala om men en sak är säker... det kommer gå jättebra.

Just nu söker vi efter en GUI-baserad kontrollpanel för LTSP och två alternativ har dykt upp.
  • Landscape
  • LTSPManager
Efter en snabb undersökning tror jag vi kommer använda LTSPManager. Mer tänker jag inte avslöja ;)

- Waschman

08 april, 2009

Photoshop: Lära sig använda Photoshop CS3/CS4

Nu till sommaren planerar jag att lära mig redigera bilder Photoshop CS3 eller CS4. Jag är nämligen webbutvecklare på fritiden och jag känner att jag vill förbättra mina kunskaper inom bildredigering och hur man kan skapa snygga "eng. Gradients", knappar, bakgrundsbilder med mera.

Notis: För er som undrar så berättar jag att jag även känner till programmet Gimp till GNU Linux som är nästan lika funktionsrikt men gratis.

Jag gick en väldigt grundläggande kurs om Photoshop 7 när jag gick på gymnasiet. Då var det inkluderat i Estetisk verksamhet (bild och musik). Men lärarna var ju inte så bra på att lära ut så man fick inga riktigt bra tips på hur man kunde lära sig programmet på egen hand. Personligen tycker jag att man lär sig bäst genom att pröva sig fram men Photoshop var lite svårt då tyckte jag, lager, skuggor, framhöva olika lager, ljussättning, etc.

Men när jag häromdagen läste en artikel om tio bra designtekniker vid webbdesign så kände jag ett starkt intresse som väcktes till liv - jag ville lära mig använda Photoshop på riktigt.

Jag har hittat några bra guider på Internet om hur man kan gå tillväga för att lära sig bemästa programmet på bästa sätt men jag ställer även samma fråga till alla er som läser bloggen eller som bara hälsar på en kort stund.

Finns det några där ute som är intresserade utav Photoshop CS3/CS4 och som känner att ni vill bidra till några bra webbresurser där man kan lära sig Photoshop från grunden och upp med enkla exempel som vem som helst (nästan) kan följa? Klicka bara på länken "Skriv en kommentar" för att hjälpa till.

Här under rubriken "webbresurser" listar jag några resurser som jag tycker verkar bra.

Webbresurser
Photoshop Guider för Nybörjare - 35st
Använda Lager i Photoshop och hur det fungerar
Devello Photoshop Tips
Photoshop 7.0 grunder (pdf)
Good-Tutorials Photoshop
Adobe Photoshop Tutorials
Watch and Learn Photoshop CS4

21 mars, 2009

Cisco: Rekryteringsdag i Stockholm

Den 19 mars 2009 var jag i Stockholm med några av mina klasskamrater från Halmstad högskola och besökte Cisco under deras rekryteringsdag. Några av våra Cisco-instruktörer följde också med på resan och det var skönt att se dem när vi kom fram för då visste vi att vi hade kommit rätt.

Rekryteringsdagen gick ut på att vi studenter skulle få prata med och bli intervjuade av våra (kanske) kommande arbetsgivare. De var guld- och silverpartners med Cisco och innan de började beskriva deras företag och verksamhet så hade de en cirka 20 minuter lång föreläsning. Jag hoppades verkligen på att det skulle ske på svenska men eftersom det kom några utländska studenter också till eventet så fick företagen improvisera och köra på engelska istället. Det tyckte jag var lite synd eftersom jag hade hoppats på svenska men det gick bra ändå.

Vi fick höra VD:n för Cisco och företagen som vi fick prata med och lära känna var följande:
  • Atea
  • TDC
  • Verizon
  • Cygate
  • Logica
  • Network Services
Cisco bjöd på mat (wraps), fika och drycker (Coca Cola och Kaffe) vilket jag tyckte var välbehövligt så man kunde hålla sig levande, pigg och glad hela dagen. Man blev dock lite seg när man stod och väntade i köerna till intvjuerna med företagen för det tog så lång tid innan man väl kom fram.

Innan jag kom in på min första intervju var jag självklart lite nervös och jag kände att det var lite pirrigt i luften. Så kändes det nog för de flesta, men så fort jag kom in och fick hälsa på respektive företag så kändes det jättebra och jätteskönt. Det var väldigt avslappnat och man kunde föra en trevlig konversation utan att få nervösa svettningar.

En mycket positiv sak jag vill berätta är att när rekryteringsdagen var över så visste jag mycket mer om Cisco än innan. Jag fick även reda på typiska arbetsuppgifter och problem som en Ciscotekniker kan ställas inför på en arbetsplats.

På Halmstad högskola har vi endast några laborationssalar där vi tränar på Ciscoutrustning och design av nätverk med olika protokoll och tekniker. Vi har heller inte fått så mycket kontakt med näringslivet som jag hade velat och behövt för att kunna utvecklas ännu mer som person. Därför var det jätteskönt att vi fick möjligheten att ställa frågor till CCIE-tekniker, Chef och VD samt andra rekryterare under besöket hos Cisco.

Certifieringar är bra men inte ett krav om man söker jobb som Ciscotekniker. Visst är det bra att visa upp certifikat för sin egen skull och att man då kan visa upp sina kunskaper på papper. Men många har svårt för prov och teoritester så om du har bra egenskaper och mycket kunskap inom ett ämne som du sedan kan applicera praktiskt så har du fortfarande mycket goda chanser till jobb. Men certifikat bör vara ett mål om man söker sig till tjänsten. Det är också ett krav för några av kunderna till företagen att de får en tekniker som kan visa upp på papper att han eller hon verkligen är certifierad inom området.

Jag ser nu verkligen fram emot att få börja arbeta och jag väntar ivrigt på att den sista delen av terminen på högskolan skall nå sitt slut. Nu är det bara examensarbetet och en programmeringskurs kvar och sedan är det dags för det riktiga arbetslivet. Men vi får ju inte glömma sommaren som jag längtar efter så mycket nu. Det hoppas jag att ni också gör för enligt mig är sommaren den bästa årstiden på året tätt följd av våren.

Om du är student och läser inom Cisco så tycker jag verkligen att du ska ta chansen och besöka Cisco under nästa års rekryteringsdag. Jag rekommenderar det verkligen.

Hoppas ni får en trevlig helg.

16 mars, 2009

Nätverk/VMWare: Workstation v6.5.1 "bridged" mode fungerar inte

Förord
Denna artikel är för alla som använder VMWare Workstation och har problem med "bridged"-mode (sv. brygga) nätverk. Jag har nämligen själv haft stora problem med detta sedan jag uppdaterade min VMWare Workstation från v5.5.x till v6.5.1. Innan dess fungerade "bridged" helt utan problem så när det inte längre fungerade efter uppdateringen misstänkte jag fel i konfigurationen.

Tips: På följande webbsida Workstation 6.5 - Networking is not working on VM in "bridged" mode [1] verkar det som om någon har ett likadant problem som jag hade. Det är ett forum på VMWares webbsida på engelska. Efter att jag läste där fann jag min lösning.

Introduktion
Idag används virtualisering för fullt både på hemdatorer och på små till stora företag. Företaget VMWare [2] är en av de största aktörerna inom detta område och är mycket populärt bland utvecklare som kräver stabila utvecklingsmiljöer och företag som behöver köra mer mjukvara på färre hårdvaruenheter - oftast servrar. Det jag kommer gå igenom är hur jag fick igång "bridged" mode i VMWare.

Tekniken
Jag tänker inte gå in på djupet om virtualisering men kort och gott kan man säga att man vi får möjlighet att installera flera operativsystem (gäst-operativsystem) på ett ensamstående operativsystem (värd-operativsystem). Dessa kallar vi i fortsättningen för värd och gäst. T.ex så kör jag Windows XP Professional som värd och mjukvaran VMWare Workstation (i fortsättningen kallar jag denna endast för VMWare-miljön) med Ubuntu 8.10, Windows Server 2003 (student edition), Windows Server 2008, extra installation av Windows XP Professional, Windows Vista 64-bit.


(Klicka på bilden för att förstora) Vy över hur systemet delvis är uppbyggt.

Problemet
Mitt problem var att jag inte fick "bridged" mode att fungera korrekt. Jag prövade med "NAT" och "Host-only" som nätverkstyp i VMWare-miljön men inget fungerade. Systemen fick inte någon IP-adress via DHCP utan de fick istället en annan privat IP-adress från en vmnet-adapter. Jag prövade även att sätta IP-adress manuellt men ingen lycka där heller.

Vägen mot lösningen
När jag läste på forumet jag nämnde ovan [1] så tänkte jag att det kanske beror på att VMWare-miljön inte känner igen mitt fysiska Gigabit-gränssnitt till nätverket. I forumet läste jag att man skulle testa stänga av den automatiska bryggningen (eng. Automatic Bridging) och se efter i registret på värd-datorn i nyckeln HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VMnetBridge\Parameters\Adapters och kontrollera vilka adaptrar som fanns tillgängliga.

Jag fann inte något som var till nån nytta så jag började leta efter inställningar i VMWare-miljön. Till slut fann jag rätt menyalternativ.
Workstation v6.5.1:
Edit -> Virtual Network Editor
Då öppnas följande fönster:

(Klicka på bilden för att förstora) Gå till fliken "Automatic Bridging" och kryssa bort alternativet "Automatically choose an available physical network adapter to bridge to VMnet0".

Notis: När VMWare-miljön valde ett gränssnitt automatiskt åt mig valdes Microsoft Loopback Adapter vilket är helt fel. Det använder jag när jag konfigurerar och programmerar Cisco routrar i GNS3/Dynamips och vill ha åtkomst till mitt riktiga nätverk.

Som nästa steg måste man manuellt välja vilket fysiskt gränssnitt man använder på sin värd-dator. Det visas i följande fönster:

(Klicka på bilden för att förstora) I listen för VMnet0 väljer man sitt fysiska gränssnitt för nätverket. Jag själv har ett integrerat nätverkskort på mitt moderkort som är av typen NVIDIA nForce. Chansen är stor att ni har det likadant eller så har ni troligen DLink, Linksys, Cisco, Netgear Fastethernet Adapter eller liknande.

Tryck på knappen Apply och sedan OK för att spara ändringarna.

Testa
Nu kan ni testa att starta ert gäst-system igen och välja "bridged" som typ för nätverkåtkomst i VMWare-miljön. Allt fungerar perfekt för mig nu och jag får nu min efterlängtade IP-adress via DHCP som körs på routern i diagrammet högst upp.

Äntligen kan jag börja arbeta som vanligt igen när jag utvecklar dynamiska webbsystem och när jag kör Ciscosimulering i GNS3.

Resultat
Här nedanför visas resultatet av mina ändringar. Det är ett utdrag från terminalen i Ubuntu som visar min aktuella IP-adress.


(Klicka på bilden för att förstora) Verifiera att man fått rätt IP-adress.


Slutord
Tänk att lösningen på problemet var så enkelt egentligen. Jag hade problemet i tre veckor innan jag på riktigt orkade leta efter en lösning. Det hjälpte verkligen att söka på Google och läsa i forumet på vmware's webbsida.


Referenser
[1] http://communities.vmware.com/thread/197994?start=0&tstart=0
[2] http://www.vmware.com/

09 mars, 2009

Spel: Quake Live

För omväxlingens skull vill jag tipsa om ett online-spel som tidigare varit ett PC-spel. Så skippa alla artiklar och information om IT. Slappna istället av med ett superhärligt spel som bygger på ett av världens mest populära spel (i alla fall så har det varit det en gång i tiden år 1999).

Jag säger bara det - Wow, äntligen! Jag har längtat efter att Quake III skulle komma till liv igen när jag först hörde om spelutvecklingen för Quake Zero som nu heter Quake Live [1]. Spelet bygger på Quake III Area och kan köras direkt i din webbläsare. Många av banorna finns kvar (och så även Q3DM17) och det är samma spelutvecklare ID Software som står bakom idén.



Det är fortfarande 3D, FPS (First Person Shooter), hektiskt spelupplevelse och det är ett perfekt spel att köra om man studerar och inte orkar läsa mer i böckerna. Det är även förbättrat på många sätt men en av dem som jag älskar är att känslan fortfarande lever kvar från det gamla spelet, som faktiskt släpptes som öppen källkod (Open Source) för några år sedan av just ID Software.

Man behöver skapa ett online-konto i vanlig ordning och när proceduren är färdig kan man börja spela en testomgång mot Crash. Hon lär dig hur man spelar och anpassar sig automatiskt till din svårighetsgrad när du spelar.

När man sedan är redo för att spela på Internet mot andra tokiga adrenalinjagande spelare så matchas automatiskt din svårighetsgrad med andra på Internet som är ungefär lika bra som dig. Det finns även indikatorer som visar om en match har svårare motståndare som helt enkelt är bättre än dig på att spela Q3.

Observera dock att spelet fortfarande är i Beta-stadiet sedan 24 februari 2009 så det är ganska fräscht och ungt. Men än så länge har jag inte stött på några problem och matcherna fyller nästan kvoten på 16 spelare varje gång jag kör.

Det sista jag vill säga är att jag verkligen rekommenderar detta för er som vill spela ett riktigt fartfyllt och härligt spel. Jag tycker om det och hoppas att ni också kommer tycka om det. Om ni vill möta mig finner ni mitt alias Waschman på spelets webbsida.

Men det fattas en viktig del - de djupa detaljerna när man fraggar någon och ***** som bara flyger åt alla håll och kanter. Lite censur men ni som känner till spelet kan nog gissa vad jag menar.

Gå loss på spelarna - spela - fragga - njut.

Källor
[1] www.quakelive.com

Övrigt
en.wikipedia.org/wiki/Quake_Zero

21 februari, 2009

Webben: Konvertera webbsidor och dokument till PDF

Jag håller just nu på med ett litet webbprojekt och jag kände att jag ville spara resultatet från webbsidan i ett enkelt och standardiserat format. Min första tanke var att använda PDF men det fanns ingen riktig stabil webbsida där man kunde omvandla från html till pdf.

Efter några sökningar på Google fann jag ett program [1] som installerar en virtuell "låtsas" skrivare i din dator (jag använder Windows XP) som sparar utskriften som PDF istället för att skriva ut den på papper. Jättesmidigt! Jag vet att Adobe har ett liknande program/funktion som kostar en del pengar, men programmet jag fann är helt gratis.

Tips: jag har tidigare skrivit om hur man omvandlar word-dokument till pdf via en enkel instickningsmodul i Word från utvecklad av Microsoft. Windows: Office 2007 Omvandla till PDF

Programmet som konverterar/omvandlar dokument och webbsidor till pdf heter "doPDF" [1] och finns för tillfället i version 6.2 att ladda ner [2] från deras webbsida.

Mycket viktigt!
När man väljer att omvandla en webbsida till pdf så är det endast det som syns när man väljer "Förhandsgranska" på menyn "Arkiv" i er webbläsare (jag använder Firefox).

Följande text är för webbdesigners och utvecklare: det enda som omvandlas är det som är satt till media="print" om ni använder det eller media="all" som är standard i CSS.

Här nedanför visar jag exempel där jag omvandlat webbsidan för Gmail och PHP.net till pdf-format.

Exempel


(Klicka på bilden för att förstora) Här visar jag hur man börjar använda programmet doPDF efter att man har installerat det på sin dator.



(Klicka på bilden för att förstora) Här kan ni se egenskaperna för den nya virtuella skrivaren. Det är bara att välja den i listan och sedan klicka på knappen "Properties"/"Egenskaper".



(Klicka på bilden för att förstora) Och här ser ni resultatet från webbsidan php.net som PDF


(Klicka på bilden för att förstora) Webbsidan gmail.com


(Klicka på bilden för att förstora) Och här ser ni resultatet för gmail.com som PDF


Källor
[1] http://www.dopdf.com/
[2] http://www.software112.com/products/dopdf-free-pdf-converter+quick-download.html

18 februari, 2009

Bloggens utseende

Jag funderar än en gång på att ändra bloggens utseende till något annat som skiljer en del mot vad som används just nu. Om det är någon som vill ge något förslag så tveka inte. Det är inte säkert att jag kommer följa ert tips men det är i alla fall ett steg på vägen. Jag tror jag kommer satsa på ljusare färger/utseende nu när vi ändå är på väg mot ljusare årstider.

Den designen som jag vill gå ifrån är:


- Waschman

30 januari, 2009

Utveckling: Gratis hosting för utvecklare

Idag när jag letade efter gratis webbhosting för PHP och MySQL snubblade jag över en webbsida som heter Devhost [1]. Det är en webbsida som erbjuder gratis hosting för utvecklare. Det betyder att man endast får använda deras tjänst när man utvecklar sin kod och inte publicerar den på Internet så att vem som helst kan besöka webbsidan.

De använder även VPN-lösningar (VPN - Virtual Private Network) så att man kan arbeta direkt mot deras server utan att behöva använda något FTP-program. Då fungerar det precis likadant som när man arbetar mot sin egna hårddisk förutom att data skickas över Internet när man sparar sina filer.

Jag använder själv deras tjänst för utveckling av ett kommande enklare webbhotell som jag och en kompis har tänkt att driva.

Om ni är intresserade så finns det mer att läsa på deras webbsida [1]. Klicka bara på länken "Villkor" för att läsa mer.

Källor
[1] http://www.devhost.se/

23 januari, 2009

Java: Undersöka källkoden för Javas standard bibliotek

Jag har funnit en webbsida där man kan visa innehållet i källkoden för några av Javas standardbibliotek. Detta är väldigt bra om man vill veta mer om hur koden fungerar och om man vill lära sig att hantera kod på ett bra sätt.

Jag själv använder för tillfället webbsidan för att undersöka hur Javas bibliotek java.util.ArrayList [1] är utvecklad. På så vis kan jag få bättre vetskap om hur Java använder- och byggs upp av avancerade datastrukturer.

Vill man läsa om APIn går det bra att besöka den officiella webbsidan för Java bibliotekets API hos Sun Microsystems [2].

Referenser
[1] http://docjar.com/html/api/java/util/ArrayList.java.html
[2] http://java.sun.com/j2se/1.5.0/docs/api/

20 januari, 2009

Java: Filmer för totala nybörjare inom Java programmering (på engelska)

Jag vill tipsa er alla som vill lära er Java Programmering om en webbsida [1] där man kan se guider på engelska (kräver att man har Adobe Flash installerat) om hur man kommer igång med Java och texteditorn Eclipse, vilken egentligen är en IDE som står för "Integrated Development Environment".

Jag fann sidan genom att söka på Google efter "Java nybörjare".

Jag vill även passa på att tipsa er alla om en annan webbsida som är dedikerad till alla nybörjare inom Java [2]. Dock är webbsidan också på engelska men personligen tycker jag att den är väldigt lättläst.

Referenser
[1] Eclipse and Java for total beginners - video
[2] Java Beginner Tutorial

07 januari, 2009

Gott Nytt År // God Fortsättning

Hälsning
Här kommer en nyårshälsning från mig till er som läser bloggen. Gott nytt år och god fortsättning till er alla. Här nedanför skriver jag om en vecka under lovet då jag var i fjällen med mina kompisar och försökte lära mig att åka skidor.

Min skidvecka i Sälen (Lindvallen)
Jag har varit borta en vecka under jullovet över nyår i Sälen (Lindvallen) och lärt mig att åka skidor. Jag trodde aldrig att det skulle gå något vidare bra för mig ända tills dagen innan jag åkte upp. Då började jag tro på mig själv. Jag tänkte till och med att det skulle bli roligt att lära sig åka skidor med några av mina kompisar och deras familjer. Men det började inte bra alls.

Redan samma dag vi kom fram, ungefär vid 16.00, planerade alla att börja åka i skidbacken direkt tills de stängde kl 19.00. Jag tvekade men sade till slut att jag bara ville testa gröna skidbackar (grönfärgade backar är lättast för nybörjare). Men mina kompisar lyckades att övertala mig att följa med upp för en blå backe vid namn Gustav (blå backe är lätt och för nybörjare som kan bromsa och svänga, vilket är två saker jag inte kan).

Alla försökte tala om för mig exakt hur jag skulle göra men det gick in i mitt ena öra och ut genom det andra. Jag trodde att jag kunde bromsa ordentligt (plogning) men hörde sedan att jag höll benen fel (för tätt ihop). Till sist ville alla börja åka nedför och en av tjejerna säger "följ efter mig försiktigt". Allt gick fint tills jag skulle svänga min första sväng vid toppen av backen. Jag lyckades inte riktigt räta upp skidorna i svängen mot henne, utan for istället rätt nedför hela skidbacken i störtlopp. Jag försökte lägga mig ner åt sidan men det gick alldeles för fort. De försökte allihop att hänga efter och stoppa mig men det var för sent. Jag susade nedför Gustavsbacken och trodde att jag skulle slå ihjäl mig.

Efter att ha varit nära att åka rätt på ett stort hopp och köra in i två yngre skidåkare mitt i backen när jag hade som högst fart så lyckades jag bromsa farten och få stopp på skidorna. Jag ramlade inte men mitt hjärta pumpade jättemycket. Trodde typ att jag skulle dö, eller i alla fall bryta något ben, men jag klarade mig utmärkt. Mina kompisar kom till slut ifatt mig och kunde inte hålla sig för skratt och var samtidigt nervösa och hade dåligt samvete för att ha dragit upp mig ända dit upp.

Nästa dag fick jag en privatlärare (det var pappan till min bästa kompis) och han lyckades lära mig att svänga, bromsa, samt överväga min rädsla att än en gång åka störtlopp nedför backarna. Både min flickvän och min bästa kompis trodde att jag skulle kunna åka en svart backe (svart backe är svårtast att köra nedför och är brantast) i slutet av veckan innan vi skulle åka hemåt igen. Det trodde jag absolut inte eftersom det var första gången för mig som jag lärde mig att åka skidor.

Vet ni vad - jag åkte en svart backe vid namn Adam näst sista dagen och jag är stolt över mig själv. Hela veckan har varit fantastiskt rolig och lärorik med fest, god mat, nyårsfirande, gott sällskap, skidåkning och åkning av Icekart (vilket är ungefär som Go-kart fast på is med spikdäck). Stugan vi hyrde var 290kvm med plats för 16st sängar, 3st våningar, 4st duschar, 1st bastu, 1st bubbelpol (jakutzi), 50-52 tum LCD TV med 5.1 surround ljud.

Vilken vecka. Jag vill hälsa till alla som var med mig den veckan och tacka alla för den goda maten och de som lärde mig skidåkning samt gav mig motivationen att lyckas.

Jag hoppas att ni alla får ett trevligt år 2009.

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.