Otroligt bra läsning när man lämnat Hello World bakom sig. Det är lätt i början av listan...
http://www.horstmann.com/cpp/pitfalls.html
fredag 23 december 2011
Använda alla bibliotek från boost
Jag träffade nyligen en c++-utvecklare som precis som jag är en varm anhängare av boost. Han hade använt, med något enstaka undantag, alla boostbibliotek! Jag blev omedelbart imponerad.
Jag går igenom listan själv och konstaterar att jag faktiskt använt 27 av biblioteken i verkliga projekt. Har satt en asterisk framför de jag använt hittills.
Listan finns här för version 1.48 (senaste i skrivande stund). Den innehåller imponerande 111 bibliotek! (en del listas förvissa som flera).
Jag får en viss lust att gå igenom de resterande och skriva ett litet program för var och en av dom. Det får vänta till nån sömnlös natt...
Jag går igenom listan själv och konstaterar att jag faktiskt använt 27 av biblioteken i verkliga projekt. Har satt en asterisk framför de jag använt hittills.
Listan finns här för version 1.48 (senaste i skrivande stund). Den innehåller imponerande 111 bibliotek! (en del listas förvissa som flera).
Jag får en viss lust att gå igenom de resterande och skriva ett litet program för var och en av dom. Det får vänta till nån sömnlös natt...
- Accumulators
- *Any
- *Array
- *Asio
- *Assign
- *Bimap
- *Bind
- Call Traits
- Chrono
- *Circular Buffer
- Compatibility
- Compressed Pair
- Concept Check
- Config
- Container
- Conversion
- *CRC
- *Date Time
- Disjoint Sets
- Dynamic Bitset
- Enable If
- Exception
- *Filesystem
- Flyweight
- *Foreach
- Format
- Function
- Function Types
- Functional
- Functional/Factory
- Functional/Forward
- Functional/Hash
- Fusion
- Geometry
- GIL
- *Graph
- ICL
- In Place Factory, Typed In Place Factory
- *Integer
- *Interprocess
- Interval
- Intrusive
- *IO State Savers
- *Iostreams
- Iterators
- Lambda
- Lexical Cast
- Locale
- Math
- Math Common Factor
- Math Octonion
- Math Quaternion
- Math/Special Functions
- Math/Statistical Distributions
- Member Function
- Meta State Machine
- Min-Max
- Move
- MPI
- MPL
- Multi-Array
- Multi-Index
- *Numeric Conversion
- Operators
- Optional
- Parameter
- Phoenix
- Pointer Container
- Polygon
- Pool
- Preprocessor
- *Program Options
- *Property Map
- *Property Tree
- Proto
- Python
- *Random
- Range
- Ratio
- Rational
- *Ref
- *Regex
- Result Of
- Scope Exit
- *Serialization
- Signals
- Signals2
- *Smart Ptr
- Spirit
- Statechart
- Static Assert
- String Algo
- Swap
- System
- *Test
- *Thread
- Timer
- Tokenizer
- TR1
- Tribool
- *Tuple
- Type Traits
- Typeof
- Units
- Unordered
- Utility
- *Uuid
- Value Initialized
- Variant
- Wave
- Xpressive
tisdag 1 november 2011
Ubuntu 11.10 on Thinkpad T420
I share my experience on getting ubuntu 11.10 running on a Lenovo Thinkpad T420.
The computer has a core i5 processor, a 1600x900 screen with a nvidia graphics card and an integrated gpu on the processor. Since I prefer silence before playing games, I have shut off the discrete gpu.
I use a kingston ssd which reaches over 500 MB/s in the ubuntu disk test. Impressive is the least I can say. The computer boots really fast.
This computer has a wonderful feature I did not know of until i unpacked it: a small light on the top of the screen, lighting up the keyboard (controlled via a key combination)!
Update bios
I updated the bios to the latest revision after having install problems. Those problems were related to a faulty hard drive, which is now replaced (note to self: never buy stuff where firmware updates is a news issue). So the bios update may be unnecessary to install. Your mileage may vary.
Bios settings
I made an overly complicated install as I only had the normal ubuntu install cd, not the alternate one. To get an adequate level of system encryption, I first installed normally, then live cd booted, created a new luks filesystem inside lvm, copied the install to the encrypted system, chrooted to it and built initramfs and modified fstab and crypttab. A bit tricky, but it works. I recommend using the alternate installer instead.
Fan
The fan is running all the time. I followed the instructions here with the small change that /etc/thinkfan.conf should contain
sensor /sys/devices/platform/coretemp.0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp2_input
sensor /sys/devices/platform/coretemp.0/temp3_input
Works like a charm.
The rest
I have not noticed anything that does not work. The buttons I use work as they should (volume, screen brightness). The rest like speakers, usb, touchpad etc. works perfectly.
Left to do
enable trim on the ssd.
Links
debian on t420
The computer has a core i5 processor, a 1600x900 screen with a nvidia graphics card and an integrated gpu on the processor. Since I prefer silence before playing games, I have shut off the discrete gpu.
I use a kingston ssd which reaches over 500 MB/s in the ubuntu disk test. Impressive is the least I can say. The computer boots really fast.
This computer has a wonderful feature I did not know of until i unpacked it: a small light on the top of the screen, lighting up the keyboard (controlled via a key combination)!
Update bios
I updated the bios to the latest revision after having install problems. Those problems were related to a faulty hard drive, which is now replaced (note to self: never buy stuff where firmware updates is a news issue). So the bios update may be unnecessary to install. Your mileage may vary.
Bios settings
- sata mode ahci
- boot to uefi only
- turn off discrete graphics
- turn off "os optimus detection"
- set boot order to cd before hard drive.
- enable boot screen diagnostics.
I made an overly complicated install as I only had the normal ubuntu install cd, not the alternate one. To get an adequate level of system encryption, I first installed normally, then live cd booted, created a new luks filesystem inside lvm, copied the install to the encrypted system, chrooted to it and built initramfs and modified fstab and crypttab. A bit tricky, but it works. I recommend using the alternate installer instead.
Fan
The fan is running all the time. I followed the instructions here with the small change that /etc/thinkfan.conf should contain
sensor /sys/devices/platform/coretemp.0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp2_input
sensor /sys/devices/platform/coretemp.0/temp3_input
Works like a charm.
The rest
I have not noticed anything that does not work. The buttons I use work as they should (volume, screen brightness). The rest like speakers, usb, touchpad etc. works perfectly.
Left to do
enable trim on the ssd.
Links
debian on t420
lördag 15 oktober 2011
Egendriftat alternativ dropbox
Äntligen har det dykt upp ett opensource-program för att köra en egen dropboxliknande tjänst!
Har inte hunnit kolla alls, men noterar länken så jag kommer ihåg det sen. Tyvärr är websidan för tillfället död, men sidan för nedladdning av källkoden lever:
sparkleshare
Har inte hunnit kolla alls, men noterar länken så jag kommer ihåg det sen. Tyvärr är websidan för tillfället död, men sidan för nedladdning av källkoden lever:
sparkleshare
Hur spotify fungerar
Det finns en mycket intressant artikel som berättar om hur spotify fungerar (i vissa avseenden).
Klienten strömmar data både från spotifys servrar och andra klienter. Hur detta sker berättas i artikeln som går att läsa här:
http://www.csc.kth.se/~gkreitz/spotify-p2p10/
Väldigt intressant. Spotifyservrarna står för ca 9% av lasten, 36% via andra klienter och resten från lokalt lagrade data. Det betyder alltså att serverbelastningen är en femtedel av vad den hade varit utan p2p-funktionen!
Genom att börja ladda låtar från servern lyckas man hålla nere fördröjningen från "play" till att det börjar spela till imponerande 256 ms (medianvärde).
Artikeln beskriver hur man begränsar t ex antalet anslutningar och andra parameterar för att förenkla implementationen av både klient och server, och att minska belastningen på folks nätverksutrustning.
Undrar hur stor lasten är totalt? Totalt finns ca 10 miljoner användare(källa: http://www.csc.kth.se/~gkreitz/spotify-p2p11/). Om jag gissar att genomsnittsanvändare lyssnar på ca 20 låtar á 4 minuter om dagen (en vild gissning) och denna delas jämnt över ca 12 timmar (aktiviteten är störst dagtid, lasten är nästan sinusformad, se http://www.csc.kth.se/~gkreitz/spotify-p2p10/, detta motsvarar toppvärdet 2 ggr genomsnittslasten)
så blir totala lasten som högst under dagen
10e6 användare*20 låtar*240 s/låt/(12 h*3600 s/h) * 160 kbit/s=178Gbit/s
Med avlastning enligt ovan behöver servrarna bara ta hand om 9% av detta vilket blir 16 Gb/s. Det är en rätt stadigt belastning. En gigabitanslutning för företag kostar ca 10kSEK/mån exkl. moms sist jag kollade (2008?). Om vi bortser från volymrabatt betyder det att bandbredden per användare kostar ca 16*10e3/10e6=2 öre per användare och månad. (man behöver lite marginal för sällsynta tillfällen, så låt marginalen kvittas mot volymrabatten för att slippa räkna mer noggrant.)
Hur många servrar behöver man? Säg att en server kan streama musik i 200 Mbit/s (trots allt är det rätt jobbigt eftersom alla klienter vill åt olika filer, jobbigt jämfört med om 10 miljoner klienter ska ladda ner samma ubuntu-iso som då kan cachas), då behövs ca 100 servrar (några går väl åt för att sköta trackern också). Sen ska det skickas ut reklam, hanteras inloggning etc men det måste vara trivialt jämfört med att strömma musik i 16Gb/s. Med 200W per server (man får hoppas de bygger energisnålt!) blir det ca 100*200W*730 timmar/månad*1 kr/kWh=15 kSEK elräkning per månad, ca 0.15 öre per användare och månad.
Säg att det går åt dubbelt så många servrar (någonstans måste musiken lagras) så är det ett väldigt kostnadseffektivt sätt att distribuera musik. Har för mig att en cd kostar tio kr att tillverka.
Stor brasklapp för att jag klantat till något i beräkningarna ovan. Har inte dubbelkollat, utan skrivit medan jag tänkt.
Klienten strömmar data både från spotifys servrar och andra klienter. Hur detta sker berättas i artikeln som går att läsa här:
http://www.csc.kth.se/~gkreitz/spotify-p2p10/
Väldigt intressant. Spotifyservrarna står för ca 9% av lasten, 36% via andra klienter och resten från lokalt lagrade data. Det betyder alltså att serverbelastningen är en femtedel av vad den hade varit utan p2p-funktionen!
Genom att börja ladda låtar från servern lyckas man hålla nere fördröjningen från "play" till att det börjar spela till imponerande 256 ms (medianvärde).
Artikeln beskriver hur man begränsar t ex antalet anslutningar och andra parameterar för att förenkla implementationen av både klient och server, och att minska belastningen på folks nätverksutrustning.
Undrar hur stor lasten är totalt? Totalt finns ca 10 miljoner användare(källa: http://www.csc.kth.se/~gkreitz/spotify-p2p11/). Om jag gissar att genomsnittsanvändare lyssnar på ca 20 låtar á 4 minuter om dagen (en vild gissning) och denna delas jämnt över ca 12 timmar (aktiviteten är störst dagtid, lasten är nästan sinusformad, se http://www.csc.kth.se/~gkreitz/spotify-p2p10/, detta motsvarar toppvärdet 2 ggr genomsnittslasten)
så blir totala lasten som högst under dagen
10e6 användare*20 låtar*240 s/låt/(12 h*3600 s/h) * 160 kbit/s=178Gbit/s
Med avlastning enligt ovan behöver servrarna bara ta hand om 9% av detta vilket blir 16 Gb/s. Det är en rätt stadigt belastning. En gigabitanslutning för företag kostar ca 10kSEK/mån exkl. moms sist jag kollade (2008?). Om vi bortser från volymrabatt betyder det att bandbredden per användare kostar ca 16*10e3/10e6=2 öre per användare och månad. (man behöver lite marginal för sällsynta tillfällen, så låt marginalen kvittas mot volymrabatten för att slippa räkna mer noggrant.)
Hur många servrar behöver man? Säg att en server kan streama musik i 200 Mbit/s (trots allt är det rätt jobbigt eftersom alla klienter vill åt olika filer, jobbigt jämfört med om 10 miljoner klienter ska ladda ner samma ubuntu-iso som då kan cachas), då behövs ca 100 servrar (några går väl åt för att sköta trackern också). Sen ska det skickas ut reklam, hanteras inloggning etc men det måste vara trivialt jämfört med att strömma musik i 16Gb/s. Med 200W per server (man får hoppas de bygger energisnålt!) blir det ca 100*200W*730 timmar/månad*1 kr/kWh=15 kSEK elräkning per månad, ca 0.15 öre per användare och månad.
Säg att det går åt dubbelt så många servrar (någonstans måste musiken lagras) så är det ett väldigt kostnadseffektivt sätt att distribuera musik. Har för mig att en cd kostar tio kr att tillverka.
Stor brasklapp för att jag klantat till något i beräkningarna ovan. Har inte dubbelkollat, utan skrivit medan jag tänkt.
torsdag 29 september 2011
Varför jag inte använder facebook
Dags att slå in lite öppna dörrar. Det handlar om facebook.
Jag gick inte med på Facebook när det kom. Tyckte att man kan maila mig om man vill ha kontakt, jag är lätthittad på nätet.
Sedan kom det ett larm om att man delar med sig av rättigheter till bilder man lägger upp. Och nu i dagarna kommer larm om att facebook kan spåra vilka websidor du besöker (förutsatt att de har en gillaknapp, annars är det svårt).
Jag tycker det är rätt obehagligt. Men, det är frivilligt att vara med. Om man inte gillar det kan man stå utanför.
Och det är här problemet kommer: facebook håller på att bli etablerat som ett "eget internet". Fler och fler företag har gillaknappar (för övrigt rätt fånigt) och/eller har en egen sida host facebook. Tex facebook.com/företag istället för www.företag.se Viss information finns bara åtkomlig via facebook. Exempelvis ger en förening jag är med i ut information via facebook. Som tur är finns informationen även på annan plats, men det visar på problemet: Man är på sikt tvungen att gå med. Och vips sitter vi där och facebook gör som de vill, för man har redan godkänt villkoren och är så invävd i det att man fortsätter, trots att man ger ut nästan all information till facebook. Och för företagen gäller det att man måste betala och acceptera facebooks villkor för att få synas.
Så, för n:te gången, vad var det jag sa. Ni hittar vare sig mig eller mitt företag på facebook. Mitt företag finns under sin egen adress www.dreik.se. Och jag själv finns på www.pauldreik.se. Välkomna dit, om ni vill.
Jag gick inte med på Facebook när det kom. Tyckte att man kan maila mig om man vill ha kontakt, jag är lätthittad på nätet.
Sedan kom det ett larm om att man delar med sig av rättigheter till bilder man lägger upp. Och nu i dagarna kommer larm om att facebook kan spåra vilka websidor du besöker (förutsatt att de har en gillaknapp, annars är det svårt).
Jag tycker det är rätt obehagligt. Men, det är frivilligt att vara med. Om man inte gillar det kan man stå utanför.
Och det är här problemet kommer: facebook håller på att bli etablerat som ett "eget internet". Fler och fler företag har gillaknappar (för övrigt rätt fånigt) och/eller har en egen sida host facebook. Tex facebook.com/företag istället för www.företag.se Viss information finns bara åtkomlig via facebook. Exempelvis ger en förening jag är med i ut information via facebook. Som tur är finns informationen även på annan plats, men det visar på problemet: Man är på sikt tvungen att gå med. Och vips sitter vi där och facebook gör som de vill, för man har redan godkänt villkoren och är så invävd i det att man fortsätter, trots att man ger ut nästan all information till facebook. Och för företagen gäller det att man måste betala och acceptera facebooks villkor för att få synas.
Så, för n:te gången, vad var det jag sa. Ni hittar vare sig mig eller mitt företag på facebook. Mitt företag finns under sin egen adress www.dreik.se. Och jag själv finns på www.pauldreik.se. Välkomna dit, om ni vill.
onsdag 27 juli 2011
Om incitament
Den här videon berättar om varför människor motiveras av annat än pengar. Väldigt intressant, och kul sätt att presentera resultat på.
Jag försöker fundera på vad jag drivs av när jag jobbar och de saker jag engagerar mig i på fritiden. Hur man kan omsätta dessa resultat till att skapa bättre arbetsplatser? Kan jag kanske tillämpa detta på mitt sätt att arbeta?
http://www.youtube.com/watch?v=u6XAPnuFjJc
Jag försöker fundera på vad jag drivs av när jag jobbar och de saker jag engagerar mig i på fritiden. Hur man kan omsätta dessa resultat till att skapa bättre arbetsplatser? Kan jag kanske tillämpa detta på mitt sätt att arbeta?
http://www.youtube.com/watch?v=u6XAPnuFjJc
Prenumerera på:
Inlägg (Atom)