Kategorier
Programmering

GitHub

Jag har börjat lägga upp en del kod på github. https://github.com/plwebse

Kategorier
Bash Linux Programmering

Hitta bilder som inte har ändrats på ett tag och radera dem

Om du vill ta bort JPEG-bilder som inte har blivit modifierade på ett tag kan det här vara något för dig. Med find så kommandot i linux kan man söka efter filer per namn och senast ändrat tid och efter filtyp mm.

Här under använder jag find för att hitta alla filer som inte har ändrats på mer än sju dagar och slutar på *.jpg. Filerna som hittade skickas senare vidare till rm kommandot som tar bort filerna. Obs används på egen risk

find /home/peter/bashtest/ -mtime +7 -type f -name '*.jpg' -print0 | xargs -0 rm

Jag har kört detta bashscript innan för att testa kommandona ovan för att jag gillar tdd 🙂 Scriptet nedan skapar tomma filera med två olika ändringsdatum.

#!/bin/bash 

i=0
max=10
while [ "$i" -lt "$max" ]
do
	touch -am -t '201110090800'  "bild$i.jpg"
	touch -am -t '201110140800'  "bild$i$i.jpg"
  	i=`expr $i + 1`
done

http://www.computerhope.com/unix/utouch.htm
http://content.hccfl.edu/pollock/Unix/FindCmd.htm
http://linux.about.com/od/commands/a/blcmdl1_findx.htm

Kategorier
Okategoriserade Programmering

free -m && awk == nice

#!/bin/sh
OFF="$1"
UNIT="$2"

OUTPUT_FROM_DF_AND_AWK=$(free -m | awk 'IF NR == 2 {print $4"%s%s"$2"%s\n"}')

for LINE in $OUTPUT_FROM_DF_AND_AWK
do	
	printf $LINE "$UNIT" "$OFF" "$UNIT";echo " ";
	
done
peter@E5410:~$ memory.sh " av " "MB"
2643MB av 7799MB 
Kategorier
Programmering

freespace.sh

#!/bin/sh
OFF="$1"
ON_DRIVE="$2"

OUTPUT_FROM_DF_AND_AWK=$(df -Phx tmpfs -x devtmpfs | awk 'IF NR > 1 {print $4"%s"$2"%s"$6"\n"}')

for LINE in $OUTPUT_FROM_DF_AND_AWK
do	
	printf $LINE "$OFF" "$ON_DRIVE";echo " ";
	
done

peter@E5410:~$ freespace.sh " av " " på "
237G av 282G på / 
Kategorier
Javascript Programmering

RegExpFiddle.com

Jag har jobbat en del med en ny webbtjänst i helgen. Den nya webbtjänsten skall underlätta testningen av ”regular expressions”. Du hittar webbtjänsten på adressen på RegExpFiddle.com

Kategorier
Java Programmering

Java concurrency in practice inlägg 2

Nu har det blivit lite förändringar i koden för mitt Memory spel igen. Jag har gått från en flerdimensionell array till Collections.synchronizedList(new ArrayList()); och sett att mina tester går igenom.

Kategorier
Java Programmering

Java concurrency in practice

Köpte en ny bok för inte så länge sedan om Java concurrency som verkar riktigt bra. Jag har börjat titta lite på vad jag kan göra med mina nyvunna kunskaper på mitt Memory spel. Memory spelet är hur som helst uppdaterat med små förbättringar i koden.

Kategorier
Javascript Programmering

localStorage test

Idag testade jag localStorage på en av mina sajter och jag måste säga att det är väldigt coolt 🙂

Jag valde att spara alla inmatning i localStorage tills man valt skicka väg formuläret. namnet på formulär fältet används som nyckel i localStorage men det det bör inte vara något större problem att kombinera formulärets id eller action attribut.

ls = {
set : function(name, value){
if(window.localStorage){
localStorage.removeItem(name);
localStorage.setItem(name, value);
}
},
get : function(name){
if(window.localStorage){
return localStorage.getItem(name);
}
},
clear : function() {
if(window.localStorage){
return localStorage.clear();
}
}
};

$(document).ready(function(){

$(":input").each(function(){
if($(this).val() == "" && ls.get($(this).attr("name")) != ""){
$(this).val(ls.get($(this).attr("name")));
}
});

$(":input").change(function(){
if($(this).val() != ""){
ls.set($(this).attr("name"), $(this).val());
}
});

$("form").submit(function(){
form = this;
$(form).find(":input").each(function(){
ls.set($(this).attr("name"), "");
});
});
});
Kategorier
Okategoriserade Programmering

Denna dag

Kategorier
Programmering Python

min loopia dns sync python modul

Laddade precis upp min python modul jag använder för synka några av mina domäner till http://pypi.python.org/pypi.

http://pypi.python.org/pypi/loopiadnssync/1.0.0/
https://github.com/plwebse/loopiadnssync

from loopiadnssync import LoopiaDnsSync

loopiadnsSync = LoopiaDnsSync("loopiaUserName", "loopiaPassword")

loopiadnsSync.addDomain("www.test.com");
loopiadnsSync.addDomain("test.com");
loopiadnsSync.syncDomains()

Och om kör koden ovanför så ser resultat ut ungefär så här:

python loopiadns.py
loopiadnssync: Sat, 16 Apr 2011 19:12:12
www.test.com, 127.0.0.1, nochg
test.com, 127.0.0.1, nochg