Det var mycket som hände i c++11 och det är först nu det finns fullt stöd i en kompilator.
www.h-online.com/open/news/item/Complete-C-11-support-in-Clang-1847258.html
Är detta ett tecken på att gcc fallit bakom? Det ska bli spännande att se vad konkurrensen mellan clang och gcc får för följder.
måndag 22 april 2013
lördag 20 april 2013
Vänlighet lönar sig?
Den här artikeln var väldigt intressant. Den handlar om Robert Axelrod och hans resultat om hur vänlighet lönar sig.
http://www.svd.se/kultur/understrecket/godhet-ar-en-lonsam-strategi_8100760.svd
http://www.svd.se/kultur/understrecket/godhet-ar-en-lonsam-strategi_8100760.svd
fredag 4 januari 2013
Osäkert med smart-TV
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.
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.
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...
Prenumerera på:
Inlägg (Atom)