En blogg om teknik, IT, nätverk, programmering, servrar, nyheter och annat som intresserar.
26 december, 2009
God Jul och ett Gott Nytt År
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
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:
- 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 - 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 - 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
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
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 1 : Om PHP, Siffror, Text, Variabler, Kommentarer
- Programmering: PHP för riktiga nybörjare - Del 2 : Datatyper, talsystemet, omvandling av datatyper
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
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)
Ö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:Datorernas talsystem basen 2
10, 27, 10254, +56, +79, -62, -2, -9
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:Program och utveckling basen 16
101, 10010110101, 11110, 11010, 0, 1
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:Oktala talsystemet basen 8
0x5, 0x2F, 0x694FA, 0x101
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:Exempel i PHP med olika heltalstyper
0100, 08, 012, 029, 0777
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å decimaltalHär nedanför ser ni exempel på kod i PHP
1.2 8.6 0.1 0.7
<?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 falsktBoolesk 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.
ExempelHär nedaför kan ni se ett exempel på datatypen boolesk
true = sant
false = falskt
-1 = sant (mindre än noll)
0 = falskt
1 = sant (större än noll)
<?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ängEn 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 ( " ).
ExempelHär nedanför kan ni se ett exempel med strängar
"Emelie", "Pelle", "Anna", 'Patrik', 'Erik', 'Fredrik'
<?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 runtomkringFö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
(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
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
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: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.
index.php redigeras och sparas vilket även skapar filen index.php~
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
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
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
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:Gör den sedan körbar:
~$ gedit deloldbak.sh
Exempel:Kör skriptet i terminalen:
~$ chmod +x deloldbak.sh
Exempel:Jag kände bara för att dela med mig av skriptet till allmänheten.
~$ ./deloldbak.sh
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
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
- Waschman
08 april, 2009
Photoshop: Lära sig använda Photoshop CS3/CS4
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