26 december, 2009

God Jul och ett Gott Nytt År

Till er från mig önskar jag alla en god jul och ett gott nytt år.. eller man kanske ska säga god fortsättning denna Annandag Jul.

Jag jobbar mycket och får väldigt lite tid över till bloggen, men PHP-artiklarna är skriva för hand redan plus att jag funderar på att skriva mer om Cisco och etisk hacking.

Ha en fortsatt trevlig vinternatt

- Waschman

22 oktober, 2009

Windows 7: Visa skrivbordet

Hej! Jag kände att det var dags att uppdatera lite på bloggen, därför skriver jag här ett tips till er om Windows 7.

Ikonen i snabbstartfältet för att visa skrivbordet fanns i Windows XP och Windows Vista. Men i Windows 7 är ikonen borttagen. Jag fann en guide på Internet hur man gjorde för att få ikonen tillbaka och likna den i Windows Vista. Det fungerade bra. Men det bästa hade väl varit om den funktionen redan fanns i nya Windows 7.

Jag har upptäckt att det finns tre sätt att visa skrivbordet.

Steg för att visa skrivbordet i Windows 7:
  1. Klicka med musen i den vertikala rutan längst ner till höger


    (Klicka på bilden för att endast visa den) Visa skrivbordet i Windows 7 - Alternativ 1

  2. Man kan även högerklicka på aktivitetslisten längst ner på skärmen och sedan välja "Visa skrivbordet" eller "Show the desktop" i engelska versionen.


    (Klicka på bilden för att endast visa den) Visa skrivbordet i Windows 7 - Alternativ 2

  3. Man kan även använda tangentkombinationen Windows + D. Tack för tipset från BosseWeb

För fler tips om Windows 7 kan ni även läsa en artikel från webbtidningen IDG Windows 7 på 2 minuter [1]

Själv kan jag inte använda alla tips för Windows 7 eftersom jag inte har en sån bra laptop där Aero-temat inte fungerar över huvud taget. Aero-temat är (för de som inte vet) det tema i Windows 7 som aktiverar snyggare färger, genomskinlighet, extra funktioner, musrörelser, m.fl. Jag får nöja mig med Firefox och Notepad++ när jag utvecklar webbsidor och ska surfa på Internet.

Ha en fortsatt trevlig dag!

Källreferens
[1] http://www.idg.se/2.1085/1.261217/snabbkoll-windows-7--pa-2-minuter

13 september, 2009

Ljus höst framför oss

Semestern är över och solen närmar sig horisonten fortare för var dag som kommer och tittar förbi. Mycket har hänt och mycket kommer hända nu till hösten. Det kanske inte kommer märkas så mycket på bloggen men jag har många saker att göra, samt några projekt som måste färdigställas.

Några av uppgifterna är att utbilda studenterna vid Halmstad Högskola inom nätverksdesign och datordrift med Cisco-nätverk. Min egna webbsida skall också utvecklas med mitt egna CMS (Content Management System) plus lite annat.

Så hösten tror jag blir väldigt lärorik och medan höstmörkret närmar sig, ser det fortfarande ljust ut på IT fronten. Det kommer fortfarande komma nya artiklar om t.ex PHP, Cisco och Windows 7 och annat smått och gott.

Så jag hoppas ni får trevlig läsning framöver.

MVH
Waschman

30 juni, 2009

Semester: Sommar och härlig ledighet

Äntligen sommar och härligt väder är det också. Jag är ledig och ska snart i början på augusti börja förbereda inför min anställning på Halmstad högskola som labbinstruktör och lärare i olika datorkurser.

Det är så skönt att få bada i havet och temperaturen bara stiger och stiger, med senast uppmätta temperatur på 20-21 grader celcius vid Åsa camping i Halland. Jag umgås mycket med min flickvän och mina kompisar nu och sitter därför mycket lite vid datorn. Det händer att man ser efter om man har fått någon ny e-post nån gång ibland, men annars gör jag inte så mycket mer på datorn.

Detta leder naturligtvis till färre artiklar på bloggen, vilket det också har blivit nu den sista perioden i slutet av våren p.g.a. mitt examensarbete tillsammans med en klasskompis.

Artikelserien om PHP för riktiga nybörjare fortsätter att utvecklas och jag har redan skrivit några utkast på nästa del. Jag och en klasskompis tänker skriva mer om Cisco-nätverk nu till hösten, och under samma period kommer utvecklingen av en festivals webbsida komma igång på riktigt. Vilken festival det rör sig om tänker jag inte berätta. Det är mycket som är på gång och det börjar snart klia i fingerspetsarna inför nya artiklar och utvecklingsprojekt.

Försök ta del av sommaren vi har så mycket ni kan och när regnet kommer och när sommaren börjar nå sitt slut, då börjar man komma i fas igen.

Jag vill bara önska er alla en mycket trevlig sommar med många mysiga och härliga dagar i solen, skuggan, vattnet och där ni nu helst vill vara.

Glad sommar!

Tips/Administration: 100 Windows XP smarta genvägar

Vilken härlig sommar vi har. Allt är helt underbart förutom att det ibland är lite för varmt. I värmen behöver man dricka mycket vätska och då är det ju typiskt att vattnet i husområdet läcker och måste stängas av. Man blir lite dåsig i huvudet och nästa lite yr om man dricker för lite och om det är för varmt. Om man då ska sätta sig vid datorn och sköta lite av administrationen är chansen stor att man snabbt tröttnar på tröga laddningar av det grafiska gränssnittet. Speciellt för mig när jag sitter vid pappas dator i hans varma, kvava och lilla klädgarderob och hjälper till att fixa datorproblem.

Men nog om det.

För att ni enklare ska komma igång med administrationen i den både härliga och hemska värmen tipsar jag nu om 100 textkommandon för Windows XP som underlättar och snabbar upp väntetiden. Jag fann dem för inte så länge sedan och kände direkt att dessa behövs.

OBS! Man kör kommandona genom att öppna rutan "Kör" på startmenyn eller genom att klicka på Windowslogotyp-tangenten + R

Listan med kommandon

Accessibility Controls
access.cpl

Add Hardware Wizard
hdwwiz.cpl

Add/Remove Programs
appwiz.cpl

Administrative Tools
control admintools

Automatic Updates
wuaucpl.cpl

Bluetooth Transfer Wizard
fsquirt

Calculator
calc

Certificate Manager
certmgr.msc

Character Map
charmap

Check Disk Utility
chkdsk

Clipboard Viewer
clipbrd

Command Prompt
cmd

Component Services
dcomcnfg

Computer Management
compmgmt.msc

Date and Time Properties
timedate.cpl

DDE Shares
ddeshare

Device Manager
devmgmt.msc

Direct X Control Panel (If Installed)*
directx.cpl

Direct X Troubleshooter
dxdiag

Disk Cleanup Utility
cleanmgr

Disk Defragment
dfrg.msc

Disk Management
diskmgmt.msc

Disk Partition Manager
diskpart

Display Properties
control desktop

Display Properties
desk.cpl

Display Properties (w/Appearance Tab Preselected)
control color

Dr. Watson System Troubleshooting Utility
drwtsn32

Driver Verifier Utility
verifier

Event Viewer
eventvwr.msc

File Signature Verification Tool
sigverif

Findfast
findfast.cpl

Folders Properties
control folders

Fonts
control fonts

Fonts Folder
fonts

Free Cell Card Game
freecell

Game Controllers
joy.cpl

Group Policy Editor (XP Prof)
gpedit.msc

Hearts Card Game
mshearts

Iexpress Wizard
iexpress

Indexing Service
ciadv.msc

Internet Properties
inetcpl.cpl
IP Configuration (Display Connection Configuration)
ipconfig /all

IP Configuration (Display DNS Cache Contents)
ipconfig /displaydns

IP Configuration (Delete DNS Cache Contents)
ipconfig /flushdns

IP Configuration (Release All Connections)
ipconfig /release

IP Configuration (Renew All Connections)
ipconfig /renew

IP Configuration (Refreshes DHCP & Re-Registers DNS)
ipconfig /registerdns

IP Configuration (Display DHCP Class ID)
ipconfig /showclassid

IP Configuration (Modifies DHCP Class ID)
ipconfig /setclassid
ava Control Panel (If Installed)
jpicpl32.cpl

Java Control Panel (If Installed)
javaws

Keyboard Properties
control keyboard

Local Security Settings
secpol.msc

Local Users and Groups
lusrmgr.msc

Logs You Out Of Windows
logoff

Mcft Chat
winchat

Minesweeper Game
winmine

Mouse Properties
control mouse

Mouse Properties
main.cpl

Network Connections
control netconnections

Network Connections
ncpa.cpl

Network Setup Wizard
netsetup.cpl

Notepad
notepad

Nview Desktop Manager (If Installed)
nvtuicpl.cpl

Object Packager
packager

ODBC Data Source Administrator
odbccp32.cpl

On Screen Keyboard
osk

Opens AC3 Filter (If Installed)
ac3filter.cpl

Password Properties
password.cpl

Performance Monitor
perfmon.msc

Performance Monitor
perfmon

Phone and Modem Options
telephon.cpl

Power Configuration
powercfg.cpl

Printers and Faxes
control printers

Printers Folder
printers

Private Character Editor
eudcedit

Quicktime (If Installed)
QuickTime.cpl

Regional Settings
intl.cpl

Registry Editor
regedit

Registry Editor
regedit32

Remote Desktop
mstsc

Removable Storage
ntmsmgr.msc

Removable Storage Operator Requests
ntmsoprq.msc

Resultant Set of Policy (XP Prof)
rsop.msc

Scanners and Cameras
sticpl.cpl

Scheduled Tasks
control schedtasks

Security Center
wscui.cpl

Services
services.msc

Shared Folders
fsmgmt.msc

Shuts Down Windows
shutdown

Sounds and Audio
mmsys.cpl

Spider Solitare Card Game
spider

SQL Client Configuration
cliconfg

System Configuration Editor
sysedit

System Configuration Utility
msconfig

System File Checker Utility (Scan Immediately)
sfc /scannow

System File Checker Utility (Scan Once At Next Boot)
sfc /scanonce

System File Checker Utility (Scan On Every Boot)
sfc /scanboot

System File Checker Utility (Return to Default Setting)
sfc /revert

System File Checker Utility (Purge File Cache)
sfc /purgecache

System File Checker Utility (Set Cache Size to size x)
sfc /cachesize=x

System Properties
sysdm.cpl

Task Manager
taskmgr

Telnet Client
telnet

User Account Management
nusrmgr.cpl

Utility Manager
utilman

Windows Firewall
firewall.cpl

Windows Magnifier
magnify

Windows Management Infrastructure
wmimgmt.msc

Windows System Security Tool
syskey

Windows Update Launches
wupdmgr

Windows XP Tour Wizard
tourstart

Wordpad
write

Lycka till!

Källa
http://www.techtalkz.com/blog/general/100-windows-xp-run-commands.html

02 juni, 2009

Programmering: Artikelserie PHP för riktiga nybörjare

Förord
Jag håller på att skriva en artikelserie om PHP för riktiga nybörjare och jag tänker ha en lista här med alla delar. Då blir det enklare för er att hitta dem och enklare för mig att underhålla.

Delar i artikelserien

Programmering: PHP för riktiga nybörjare - Del 2

Artikelserien är tillägnad min bror

Förord
Detta är del 2 i min artikelserie om PHP för riktiga nybörjare. Mitt mål är att försöka lära ut PHP till så många som möjligt och berätta på ett så enkelt och lättläst sätt som möjligt. Om något är oklart för er så tveka inte att skriva en kommentar och berätta vad ni tycker är bra och/eller mindre bra.

Delar i artikelserien
Lista med alla delar i artikelserien [6]

Vad vi kommer att gå igenom
  • Olika typer av variabler
  • Ingående om talsystem
  • Omvandla från en variabeltyp till en annan
Introduktion
I del 1 gick vi igenom de första stegen mot ett första PHP-skript, vad kommentarer används till, hur man lagrar data i s.k. variabler, lite grundläggande om text och siffror och hur man visar text på en webbsida.

I denna delen kommer jag beskriva de olika typer av variabler som finns samt hur man omvandlar data från en typ till en annan. Det kan vara rätt svårt att ta till sig allt första gången så läs gärna igenom artikeln flera gånger.

Olika typer av variabler
Vad är en datatyp för något?
I del 1 sade jag att en variabel är en slags kakburk som kan innehålla olika typer av kakor med olika smak och storlekar. En kaka i detta fallet är data som du som programmerare vill spara någonstans för att sedan göra saker med den. Man kan säga att en datatyp i PHP är vilken smak kakan har.

Kom ihåg nu att i alla framtida artiklar, inklusive den du läser nu, så är det variabler jag berättar om och inte kakor. Det är bara för att ni skall förstå lite bättre.

Exempel på datatyper
En variabel (kaka) kan vara en av följande typer. Notera att den engelska betäckningen står inom parentes.
  • Heltal (integer)
  • Decimaltal / Flyttal (float, double)
  • Boolesk: Sant eller falskt (boolean)
  • Sträng: Vanlig text (string)
  • Vektor: Lista som innehåller en eller flera datatyper vilka kan vara likadana eller olika (array)
  • Resurs: Koppling till resurser som t.ex databaser, filer, nätverksanslutningar m.fl (resource)
  • Objekt: Samla verktyg och egenskaper i ett s.k. objekt för att skapa mer återanvändbar kod (object)
Datatyperna Resurs, Vektor och Objekt är svåra att förstå och begripa så därför kräver de en ny artikel var för sig.

Överkurs
Datatypen Objekt är överkurs så jag kommer endast visa principen och några mycket enkla exempel i en framtida artikel.

Datatyper i andra programmeringsspråk
I andra programmeringsspråk så används datatyperna på ett mer låst sätt. Man kan inte göra hur som helst. Vill man skapa en variabel som man vet kommer innehålla en viss typ av data, måste variabeln deklareras först. Det betyder att man väljer datatypen först och sedan får den inte ändras. Men den kan ändras men då måste man använda andra lite svårare tekniker.

Datatyperna i PHP
I PHP omvandlas variablerna automatiskt till den datatyp som datan har när den sparas i variabeln. Om en variabel innehåller text får den datatypen "string" men om man sedan sparar några heltal i samma variabel, omvandlas datatypen automatiskt till "integer".

Det finns både för- och nackdelar med detta men jag tycker det är skönt att slippa tänka på vilka typer av variabler man använder i sin kod. Man behöver bara kontrollera data bättre för att det inte ska bli fel. Man måste även kontrollera data bättre i andra programmeringsspråk för att slippa få komplicerade fel och s.k. undantag.

Heltal
Heltal heter på engelska "integer".

Positivt och negativt

Heltal i PHP är tal/siffror som kan vara antingen positiva (+) eller negativa (-). Man använder de precis som man gör i vanlig matematik i skolan.

Nybörjartips
Ni behöver egentligen bara koncentrera er på människans talsystem i första hand. Ni kan hoppa över de andra talsystemen. De andra beskriver jag endast eftersom jag tror det finns några som vill känna till de andra talsystemet i alla fall.


Människans talsystem basen 10
Vi människor har ett talsystem från 0 till 9. Man säger att vårt talsystem har basen 10 (0 1 2 3 4 5 6 7 8 9). Vi kan alltså beskriva tal med 10 olika siffror. Det finns även andra sätt att representera heltal vilka beskrivs här nedanför.
Exempel:
10, 27, 10254, +56, +79, -62, -2, -9
Datorernas talsystem basen 2
Datorer använder basen 2 (0 1). Här får vi bara använda siffrorna 0 (noll) och 1 (ett). De kallas för binära tal.
Exempel:
101, 10010110101, 11110, 11010, 0, 1
Program och utveckling basen 16
Ett vanligt sätt att beskriva stora tal är med basen 16 i det s.k. hexadecimala talsystemet från 0 till 9, sedan från A till F (0 1 2 3 4 5 6 7 8 9 A B C D E F). Dessa tal används vanligen när man programmerar stora program och system med avancerade konfigurationer. Det är också vanligt när man arbetar med kryptering.

Ett hexadecimalt tal måste inledas med 0x eller 0X.
Exempel:
0x5, 0x2F, 0x694FA, 0x101
Oktala talsystemet basen 8
Jag har inga bra exempel på när det är bra att använda det oktala talsystemet med basen 8. Det är tal från 0 till 7 (0 1 2 3 4 5 6 7). Ett användningsområde jag känner till är i Unix/Linux när man behöver konfigurera behörigheter i filsystemet (läsa [4], skriva [2], köra [1]). Då får man tal som kan se ut så här: 777, 644, 500, 100.

För att arbeta med oktala tal i PHP måste de börja med 0 (noll).
Exempel:
0100, 08, 012, 029, 0777
Exempel i PHP med olika heltalstyper
Nu ska jag visa hur vi kan använda oss utav det jag precis har gått igenom.
<?php
// Exempel 1 på talsystem i PHP
$tal = 1234; // Positivt heltal basen 10
$tal = -1234; // Negativt heltal basen 10
$tal = 0x101FA; // Hexadecimalt heltal basen 16
$tal = 0777; // Oktalt heltal basen 8

// Binära heltal basen 2 måste skrivas som text
$tal = "10110"; // Binärt heltal basen 2
?>
<?php
// Exempel 2 på talsystem i PHP
$tal1 = 12;
$tal2 = 26;
$summa = $tal1 + $tal2;
echo $summa; // Skriver ut summan av 12 + 26 vilket är 38
?>
<?php
// Exempel 3 på talsystem i PHP
$tal1 = 0xFA2; // Hexadecimalt blir 4002 när 0xFA2 omvandlas till heltal basen 10
$tal2 = 1024; // Heltal basen 10
$summa = $tal1 + $tal2;
echo $summa; // Skriver ut summan av 4002 + 1024 vilket är 5026
?>
Heltal kan vara max 2147483647. Heltal som är större än det omvandlas automatiskt till decimaltal, eller flyttal som det även kallas.

Decimaltal / Flyttal
Decimaltal i PHP kallas även för flyttal och det är tal som kan bestå av decimaler (inte hela tal). Man separerar heltals- och decimaltalsdelen med punkt ( . ). Flyttal kallas även för "float", "double" och "real" i andra programmeringsspråk. I PHP hanteras de alla likadant.

Överkurs
Vill man ha högre precision när man beräknar data i PHP måste man använda ett s.k. bibliotek med kodverktyg som är anpassat för detta. Två exempel på bibliotek är BC Math [1] och GMP [2].

I PHP blir 1/3 = 0.333333333333 och floor( 0.1+0.8) * 10 ) blir 7 när det egentligen ska bli 8. [3]

Exempel på decimaltal
1.2 8.6 0.1 0.7
Här nedanför ser ni exempel på kod i PHP
<?php
// Använda decimaltal i PHP
$float1 = 1.2;
$float2 = 3.6;
$produkt = $float1 * $float2;
echo $produkt; // Skriver ut produkten 4.32 av multiplikationen 1.2 * 3.6
?>
Boolesk - Sant eller falskt
Boolesk heter på engelska "boolean" och är en datatyp som bestämmer att en variabel bara får innehålla värdet sant "true" eller falskt "false". Den datatypen är väldigt användbar när man vill styra programflödet i koden. Hur man styr programflödet kommer jag gå igenom i en framtida artikel.

Resultat från en uträkning eller ett resultat från ett verktyg eller funktion i PHP blir alltid sant eller falskt, även om resultatet är ett heltal.

0 (noll) i PHP är lika med falskt och alla tal under och över 0 är lika med sant.
Exempel
true = sant
false = falskt
-1 = sant (mindre än noll)
0 = falskt
1 = sant (större än noll)
Här nedaför kan ni se ett exempel på datatypen boolesk
<?php
// Test med boolean variabler
$bool1 = false;
$bool2 = true;
$bool3 = 1-2;
$bool4 = 0;

//
// Överkurs test
// - Kontrollera programflödet
//
if (bool4 == true) {
echo "sant";
} else {
echo "falskt";
}
?>
Sträng
En sträng i PHP är helt vanlig text. På engelska heter det "string". Ni kom i kontakt med denna datatyp i del 1. Då sparade vi texten "Patrik" i en variabel som vi döpte till "$variabel_3".

Strängar används väldigt ofta i PHP. Ett exempel på det är när man skickar data via formulär skapade med HTML/XHTML. Det är det man håller på med när man arbetar med webbdesign för er som inte vet vad HTML är för något.

För att skapa data i PHP som ska vara en text, sätter vi texten innaför apostrofer ( ' ) eller citationstecken ( " ).
Exempel
"Emelie", "Pelle", "Anna", 'Patrik', 'Erik', 'Fredrik'
Här nedanför kan ni se ett exempel med strängar
<?php
// Använda strängar i PHP
$text1 = "Pelle";
$text2 = "Anna";
$text3 = 'Waschman';
$text4 = '<b>detta visar html kod som omvandlas till fet stil</b>';
echo "Hej och välkommen $text1 !"; // Skriver ut texten: Hej och välkommen Pelle !
?>
En text kan innehålla variabler som i sin tur kan innehålla text, heltal eller decimaltal. I exemplet ovanför, omvandlas först variabeln $text1 till värdet den innehåller som är Pelle. Sedan läggs den texten in i texten runtomkring

För att förstå ännu bättre visar jag ett exempel till
<?php
// Använda olika sorters strängar i PHP
$namn1 = "Pelle";
$namn2 = "Erik";
echo "Du heter $namn1 !";
echo ' och din kompis heter $namn2 !';
?>
Apostrofer ( ' ) omvandlar inte variabler inuti texten. Men det gör däremot citationstecken ( " ).

Överkurs
Om man arbetar med mycket text i PHP och man får många besökare till sin webbsida som använder tjänsten så att PHP körs, då är det bra att använda apostrofer iställer för citationstecken runt sina texter. Om citationstecken används söker PHP tolken efter variabler och annan data i texten. Det tar lite extra tid och processorkraft av webbservern där PHP körs. Det medför lägre prestanda och i kritiska webbapplikationer kan man tjäna flera sekunder. Innanför apostroferna söker PHP tolken inte efter några variabler och då går det snabbare att översätta PHP-koden till HTML-kod.

Flera datatyper
Jag har nämnt att det finns flera datatyper men de är lite svårare att förstå. Därför skriver jag om de i framtida artiklar.

Omvandla mellan olika datatyper
I PHP kan man omvandla en datatyp till en annan datatyp mycket enkelt. Man använder en teknik som kallas "typkonvertering". Det visas senare. Nu visar jag bara ett enkelt exempel på att en variabel kan ändra sin typ beroende på innehållet som sparas inuti den.
<?php
// Omvandla datatyper i PHP
$text1 = "Pelle";
$text1 = 34;
$text1 = 1.5;

/* Här använder vi oss utav en funktion i PHP
som vi använder som verktyg för att utföra en viss uppgift.
var_dump() skriver ut en beskrivning av variabeln och dess
datatyp samt dess innehåll. */
var_dump($text1); // Skriver ut: float(1.5)
?>
Här i ovanstående exempel ser vi att vi använder samma variabel men vi sparar olika data inuti den. Först sparar vi en textsträng i variabeln vilket ger datatypen "string". Sedan ändrar vi innehållet till ett heltal vilket automatiskt omvandlar datatypen till "integer". Till sist ändrar vi innehållet i variabeln till ett decimaltal vilket automatiskt omvandlar datatypen till "float".

I kommentarerna kan ni läsa att funktionen var_dump() [4] används som ett verktyg för att beskriva variabeln åt oss. Den funktionen används mycket när man letar efter fel i sin kod och vill undersöka sina variabler och datan som är sparad i dem.

Men hur gör man om t.ex. $text1 innehåller decimaltalsvärdet 1.5 och du vill omvandla det till ett heltal? Vi kan använda oss av typkonvertering. Det görs genom att skriva datatypen inom parentes innan variabeln som ska omvandlas.
<?php
// Typkonvertering 1 i PHP
$tal = 1.8; // Är av typen float
$nytt_tal = (int) $tal; // Nu är den av typen int
var_dump($nytt_tal); // Skriver ut: int(1)
?>
Nackdelen med typkonvertering är att man kan förlora data och viss precision. Problemet är att vi förväntar oss utskriften int(2) istället för int(1) eftersom decimaltalet 1.8 avrundas uppåt till 2, eller hur!? Detta problem inträffar även i många andra programmeringsspråk än PHP.

För att lösa problemet måste vi först använda ett slags verktyg för att avrunda ett decimaltal upp till närmaste heltal, innan vi kan omvandla det till ett riktigt heltal. Ett bra verktyg vi kan använda är round() [5].

Efter att man har använt round() använder man typkonverteringen (int) för att omvandla variabelns datatyp till heltal "int".
<?php
// Typkonvertering 2 i PHP
$tal = 1.8; // Är av typen float
$nytt_tal = round($tal); // Avrundad till 2.0 och fortfarande av datatypen float
$nytt_tal = (int) $nytt_tal; // Typkonvertera till heltal
var_dump($nytt_tal); // Skriver ut: int(2)
?>
Typkonvertering är bra att använda när man verkligen vill kontrollera att en variabel får rätt datatyp.

Sammanfattning
Vi har gått igenom lite olika datatyper i PHP och hur de kan användas. För att förstå lite mer har jag beskrivit grunderna i talsystemen med baserna 2, 8, 10 och 16.

Datatyperna vi har gått igenom är heltal "int", decimaltal "float", boolesk "boolean" och strängar "string". Jag bestämde också att beskriva några andra bra datatyper vid ett annat tillfälle i en framtida artikel.

Nästa gång kommer jag prata om vektorer som är variabler med listor av lika eller olika datatyper. Men mer om det nästa gång.

Slutord
Ni har nu läst del 2 i min artikelserie om "PHP för riktiga nybörjare". Artikelserien är tillägnad min bror och alla nybörjare inom PHP eller programmering överhuvudtaget.

Om något är oklart eller svårt att förstå så tveka inte att kontakta mig med en kommentar. Klicka på länken "Kommentarer" eller "Skicka en kommentar".

Jag försöker beskriva programmering på ett så enkelt sätt som möjligt, men eftersom jag är en erfaren programmerare så är vissa saker för självklara för mig och det kan då vara svårt att beskriva med enklare ord. Därför ber jag er snällt att påpeka eventuella problem ni har att förstå innehållet i artikeln.

Ni kan också skicka in begäran om att jag ska visa fler kodexempel om hur man använder tekniken som beskrivs.

Jag hoppas ni har haft en mycket trevlig läsning.

Källor
[1] http://www.php.net/manual/en/ref.bc.php - BC Math
[2] http://www.php.net/manual/en/ref.gmp.php - GMP
[3] http://www.php.net/manual/en/language.types.float.php - Floating point numbers
[4] http://se.php.net/var_dump - Beskriv variabler
[5] http://se.php.net/round - Funktionen round()
[6] http://waschman.blogspot.com/2009/06/programmering-artikelserie-php-for.html

01 juni, 2009

Google Apps: Fräschare utseende, gränssnitt och layout

Idag fann jag ett insticksprogram till Firefox som ger några av Googles webbapplikationer nytt utseende. Gmail har exempelvis fått en mycket proffsig "look" och där är även inloggningsfasen är inräknad. Se bilden nedanför.


(Klicka på bilden för att förstora) Logga in på Gmail med ny "look"

Insticksprogrammet är från Google Redesigned [1] via Globex Designs. Det innefattar inte bara ändringar i Gmail utan även Google Reader och Google Calendar. Se exempel på gränssnittet [2]. Flera bilder och exempel visas under alternativet "Screenshots" i menyn på sidan.

Om man tröttnar på de nya ändringarna kan man snabbt gå tillbaka till Googles egna design.

Källor
[1] http://www.globexdesigns.com/gr/
[2] http://www.globexdesigns.com/gmail/screenshots/03.jpg

30 april, 2009

Office Powerpoint 2007: Gratis mallar för presentationer

Letar du efter nya mallar (eng. templates) till ditt Microsoft Office Powerpoint 2007 (eller 2003)? I så fall behöver du inte söka längre eftersom jag här nu vill tipsa om en bra källa för nedladdningar av mallar.

Webbsidan jag vill tipsa om [1] hör faktiskt till Microsoft själva och de har publicerat ett par gratis mallar som är tillgängliga för alla. Några är riktigt snygga medan vissa är lite sämre utformade. Alla mallarna finns representerade av grupper så det är enklare att finna en presentationsmall som passar just dig.

Det finns även mallar för de som vill presentera fotoalbum, projektplaneringar, affärer, ekonomi, företag och många fler. Se exempel bild 1.


(Klicka på bilden för att förstora) Bild 1

Finner du ingen mall som passar dina behov kan du ju alltid googla. Tänk bara på att det kan förekomma virus i nedladdningsbar media så du bör ha ett fungerande och uppdaterat antivirusskydd på din dator.

Källa
[1] Presentations - Templates (http://office.microsoft.com/en-us/templates/CT101172721033.aspx)

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.