När jag nyligen köpte TV sa jag till säljaren att jag inte tänkte koppla den till internet trots att den hade sådan funktionalitet. Säljaren idiotförklarade mig då om än på ett artigt sätt. Jag sa att TV-tillverkarens låga intresse för att i efterhand täcka igen säkerhetshål jämfört med att sälja apparaten, kombinerat med att TV:n innehåller webläsare, filmvisare med mera som minskar svårighetsgraden gör att sannolikheten är hög att tvn blir hackad. Säljarens argument var att hans iphone blir uppdaterad, så varför skulle inte tvn bli uppdaterad.
Nu har jag för andra gången fått bekräftelse på att det är olämpligt att koppla TV:n till internet.
Tänk bara på hur ofta operativsystem och webläsare uppdateras av säkerhetsskäl. Hur ofta tror du att det släpps ny firmware till TV:n? Hur ofta brukar du se till att den är installerad?
Konsekvenserna av att TV:n blir hackad är potentiellt allvarliga. Förutom att någon kan skicka trafik via din internetanslutning, finns dessutom kamera i vissa TV (åtminstone som tillval).
Om man nu måste koppla TV:n till internet skulle jag råda till att koppla den via en hårt styrd brandvägg så att trafik enbart till t ex youtube tillåts.
fredag 4 januari 2013
måndag 1 oktober 2012
SHA1 calculation using boost
Here is how to calculate a SHA1 hash using boost.
/* sha1 digest function, using boost. By Paul Dreik 20121001 http://www.pauldreik.se/ License: GPLv2 or later, at your option. */ #include <fstream> #include <iostream> #include <iomanip> #include <boost/uuid/sha1.hpp> int main(int argc, char* argv[]) { if(argc<2) { std::cerr<<"Supply file name as the first argument.\n"; return -1; } //open the file std::ifstream ifs(argv[1],std::ios::binary); if(!ifs.good()) { std::cerr<<"bad file\n"; return -2; } boost::uuids::detail::sha1 sha1; unsigned int hash[5]; char buf[1024]; while(ifs.good()) { ifs.read(buf,sizeof(buf)); sha1.process_bytes(buf,ifs.gcount()); } if(!ifs.eof()) { std::cerr<<"not at eof\n"; return -3; } ifs.close(); sha1.get_digest(hash); std::cout<<std::hex<<std::setfill('0')<<std::setw(sizeof(int)*2); for(std::size_t i=0; i<sizeof(hash)/sizeof(hash[0]); ++i) { std::cout<<hash[i]; } std::cout<<" "<<argv[1]<<std::endl; return 0; }
måndag 24 september 2012
Statistik om PIN-koder
Den här artikeln var intressant - den handlar om vilka pinkoder som är vanliga och ovanliga. Den vanligaste koden är 1234 och den ovanligaste 8068. Intressant hur kodrymden visualiseras och hur man väljer.
http://www.datagenetics.com/blog/september32012/index.html
http://www.datagenetics.com/blog/september32012/index.html
torsdag 30 augusti 2012
Bandwidth limit ssh
For all you who are interested in rate limiting ssh, to not consume too much bandwidth, here is a suggestion:
Use trickle! (apt-get install trickle for debian/ubuntu users)
instead of
where u is the upload limit in kbytes/s and d is the download limit in kbytes/s.
Very handy. I use it to rate limit file synchronization with unison. I have a ssh.sh script with
Good luck!
Use trickle! (apt-get install trickle for debian/ubuntu users)
instead of
ssh you@example.comyou use
trickle -u 123 -d 456 ssh you@example.com
where u is the upload limit in kbytes/s and d is the download limit in kbytes/s.
Very handy. I use it to rate limit file synchronization with unison. I have a ssh.sh script with
#!/bin/shin it, and sshcmd=/path/to/ssh.sh in my unison profile.
trickle -u 20 -d 40 ssh "$@"
Good luck!
måndag 25 juni 2012
Utveckling med OpenCL
Efter att länge ha varit nyfiken, har jag nu tagit steget och börjat använda OpenCL. För dig som inte vet vad det är, är det ett standardiserat sätt att kunna använda en grafikprocessor till generell beräkning, inte bara grafik. Den råa prestandan i ett modernt grafikkort är många gånger större än för en normal processor, men har helt andra egenskaper och kan inte alltid utnyttjas för alla typer av problem.
Jag tog en existerande algoritm jag jobbat mycket med och implementerade delar av den. På min medelmåttiga laptop, med teoretisk prestanda 155 GFLOPS lyckades jag genomföra beräkningarna en faktor 30 snabbare än på cpu:n! Detta helt utan att försöka optimera koden. Ett grafikkort för stationära datorer i 5000 kr-klassen når ca 3000 GFLOPS. Med ett sådant kort skulle alltså prestanda kunna öka till en faktor 600 gånger snabbare än cpu, för mitt problem. Tack alla ni som spelar datorspel och finansierar denna fantastiska utveckling!
Det tog ett tag att läsa igenom dokumentationen och förstå hur det är tänkt att fungera. Jag rekommenderar att läsa många olika tutorials innan man börjar, eftersom det är ganska annorlunda mot "vanlig" programmering och varje författare förklarar på olika sätt.
En liten disclaimer:
för att nå höga prestanda behöver man göra avkall på beräkningsprecisionen, samt kunna dela upp sitt problem i parallella delar. Därutöver tillkommer fördröjning när problemet ska flyttas till grafikkortsminnet, och kerneln kompileras. Och så behöver man installera ickefri programvara...
Jag tog en existerande algoritm jag jobbat mycket med och implementerade delar av den. På min medelmåttiga laptop, med teoretisk prestanda 155 GFLOPS lyckades jag genomföra beräkningarna en faktor 30 snabbare än på cpu:n! Detta helt utan att försöka optimera koden. Ett grafikkort för stationära datorer i 5000 kr-klassen når ca 3000 GFLOPS. Med ett sådant kort skulle alltså prestanda kunna öka till en faktor 600 gånger snabbare än cpu, för mitt problem. Tack alla ni som spelar datorspel och finansierar denna fantastiska utveckling!
Det tog ett tag att läsa igenom dokumentationen och förstå hur det är tänkt att fungera. Jag rekommenderar att läsa många olika tutorials innan man börjar, eftersom det är ganska annorlunda mot "vanlig" programmering och varje författare förklarar på olika sätt.
En liten disclaimer:
för att nå höga prestanda behöver man göra avkall på beräkningsprecisionen, samt kunna dela upp sitt problem i parallella delar. Därutöver tillkommer fördröjning när problemet ska flyttas till grafikkortsminnet, och kerneln kompileras. Och så behöver man installera ickefri programvara...
fredag 15 juni 2012
Best paper award
Detta mail fick jag för ett tag sedan. Jättekul! Jag har för kunds räkning utvecklat ett system för igenkänning av spårdefekter.
I am delighted to inform you that your paper, detailed above, has been awarded the joint winner of 2011 SAGE Best Paper Award by the Editor and Editorial Board of the Journal of Rail and Rapid Transit.
Efter att ha beskrivit detta i en artikel tillsammans med andra har det nu tilldelats pris som bästa artikel!
Läs sammanfattning här:
http://pif.sagepub.com/content/225/1/1.abstract
Direktlänk till artikeln:
http://pif.sagepub.com/cgi/reprint/225/1/1
onsdag 13 juni 2012
Läsvärt om SSD
Jag tillhör en av dom som bytt till flashbaserad lagring (SSD) i min dator och kommer aldrig att byta tillbaka - prestandavinsten (både den verkliga och den upplevda) är helt enkelt så väldigt stor. För SSD är det mycket prat om TRIM och prestanda. Samt de eviga firmwareproblemen, som även jag drabbats av.
Nu snubblade jag över en mycket intressant artikel som går avsevärt djupare än vanligt och förklarar de största problemen och deras lösningar. Det gav mig en större förståelse för hur knepigt det måste vara att få till en välfungerande SSD med höga prestanda. Det finns mycket skräp på nätet, men då och då hittar man verkliga guldkorn!
Nu snubblade jag över en mycket intressant artikel som går avsevärt djupare än vanligt och förklarar de största problemen och deras lösningar. Det gav mig en större förståelse för hur knepigt det måste vara att få till en välfungerande SSD med höga prestanda. Det finns mycket skräp på nätet, men då och då hittar man verkliga guldkorn!
Prenumerera på:
Inlägg (Atom)