Robins blogg

2006-08-27

Abstraktioner

Filed under: — site admin @ 21:08

Ibland stöter man på de där överseriösa kodarna, de som bestämt måste tillämpa varenda sak de hört talas om, vartenda pattern som finns i nån bok och att skriva abstrakta abstraktioner. Varför? Gör det så enkelt som möjligt. När en abstraktion är mera komplex än verkligheten så måste det vara nåt fel. “Design patterns” är också en en grej som vissa aldrig kan få nog av. Fundera på varför du du använder vissa patterns och fråga dig om t.ex. alla dina EJB :er(Enterprise Java Bean) måste förekomma tillsammans med Sessionsbönor, fasader och fan och hans mormor. Blev det enklare av det, eller blev du bara mera produktiv räknat i antal rader kod? Om du behöver dem så automatgenerera dem med EJB-doclet eller nåt annat verktyg, skriv dem inte för hand. Eller factories och factoryfactories… Det finns situtationer där var och en av dessa patterns kan försvaras. Att man kan använda dem är inget argument.

1972 sade E.W. Dijkstra detta i sin Turing Award-föreläsning (The Turing Award är ungefär datorvetenskapens “Nobelpris”)

… In this connection it might be worthwhile to point out that the purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise.

Abstraktioner handlar om att göra saker enkla, inte om att göra dem “abstrakta”. Keep It Simple Stupid.

DV-kamera

Filed under: — site admin @ 17:08

(denna artikel har legat som draft ett tag, men det är väl det draft är till för)

Så var det dags att skaffa DV-kamera. Som vanligt är man fundersam när det gäller hårdvara och linux. Även om Linux förmodligen stöder mer hårdvara än nåt annat OS så är det ju inte säkert att just det man tänkt ansluta är med på listan. Mina farhågor kom dock på skam.

DV-kameror (Digital Video) förekommer med olika gränssnitt, USB, Firewire (aka. i-Link, IEEE-1394), minneskort och DVD. Efter diverse efterforskande kunde jag konstatera att USB kanske fungerar med vissa kameror men att Firewire fungerar med alla (underförstått de som har firewire-gränsssitt). Dessutom visar det sig att de videoredigeringsprogram som finns för Linux förutsätter firewire, så även om man har USB-stöd i hårdvaran, blir det ändå jobbigt att hämta filmerna utan firewire.

Utan firewirestöd inbyggt datorn måste man förstås köpa det också. Som tur är finns det massor med alternativ där de flesta torde fungera i Linux. Jag har inte undersökt så noga så jag frågade lite på Linuxportalen.se. Därefter köpte jag en Canon MV880Xi och därtill en kabel och ett ZUN2300-kort (3-portars firewire Cardbus-kort) till min laptop. ZUN2300-kortet var mycket billigare än jag först befarat (225 kronor).

Att koppla in FW-kortet och kameran var inga problem. Plug-and-play. Inga drivrutiner att installera eller konfigurera (det fanns nån skiva för Windows, men den är fortfarande i sitt oöppnade fodral). Det program jag valde heter Kino (http://www.kinodv.org/) som är ett enkel program för videoredigering som fungerar utmärkt och är enkelt. Jag testade Cinelerra (http://cvs.cinelerra.org/) men, tyvärr kraschade programmet vid första testen och GUI:et är inte lika enkelt. Jag får väl prova programmet igen senare eftersom det verkade intressant. Det finns också några kommersiella program för Linux som jag inte testat.

Elgiganten i Sickla misslyckades f.ö. med att sälja kamera. Försäljaren kunde inte svare på i stort sett en enda fråga. Det som kom ur honom var antingen nonsens-svammel eller helt fel (tur att jag råkade det).

2006-08-15

Uppe igen

Filed under: — site admin @ 21:08

Kanske inte spelar så stor roll, men tanke på hur mycket det bloggas här. Uppgraderade till senaste Mandriva-betan och då dog en massa, bl.a. apache. För det första hade dom flyttat certifikaten men sen kraschade det iallafall utan ett knyst i nån logg. Som ren vänlighet får ni, ärade läsare, veta hur jag fixade det. Just det, inte ominstallation.

Det första vara att konstatera att apache inte startade alls, trots att startkommandot sade så (service httpd start). Men eftersom ps -u apache inte listade några processer så måste så vara fallet.

Först körde jag bash -x /etc/init.d/httpd start. Då kunde jag se se hur httpd startades och sedan själv köra det kommandot med strace, dvs strace -fF /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DAPACHE2 -DHAVE_PHP5….

Jag klipper lite där eftersom det är rätt många -DHAVE. I slutet av spårningen stod det vad som blev fel. en yp-extension laddades (förmodligen ett tidigare trasigt beroende mellan RPM:erna som gjorde att modulen överhuvudtaget kom med.

18253 open("/usr/lib/php/extensions/yp.so", O_RDONLY) = 15
18253 read(15, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\16\0\000"..., 512) = 512
18253 fstat64(15, {st_mode=S_IFREG|0755, st_size=8192, ...}) = 0
18253 mmap2(NULL, 16084, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 15, 0) = 0xb74a6000
18253 mmap2(0xb74a9000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 15, 0x2) = 0xb74a9000
18253 --- SIGBUS (Bus error) @ 0 (0) ---

rpm -qf /usr/lib/php/extensions/yp.so gav namnnet på RPM:en. Sen var det bara att avinstallera NIS-modulen (NIS hetter Yellow Pages en gång i tiden, men dom British Telecom ville behålla det namnet för sig själva) och starta apache, med lyckat resultat denna gång :)

Powered by WordPress