poll, ping, PubSub, pubsubhub, pubsubhubbub

06 september 2009 door Prashant · Reacties
Geplaatst onder: technologie

In het geval dat je sceptisch bent, is er een methode in de waanzin boven, in de titel van de post. In tech kringen is het niet waarschijnlijk dat je niet hebben gehoord van pubsubhubbub. In snelle paar maanden, is het een van de top drie gesproken over dingen. Andere twee zijn homomorfe encryptie en Google wave [ 1. ]. Terugkomend op de huidige post - termen in de titel aangeven hoe u de inhoud te krijgen van andere mensen. Naar aanleiding van informatie steeds meer duidelijk zijn, als je je voorstellen dat dingen gebeuren met betrekking tot blogs, ook al zijn ze conceptueel zijn niet beperkt tot blogs.

Polling verwijst naar het scenario waarin klanten blijven vragen van de server als er iets nieuw is gekomen. Hoe vaak om te vragen of er updates zijn zal altijd een probleem met polling te vaak of te onregelmatig, maar als een lezer wees hier dat een groot, ding met polling is dat de server niet hoeft te toestand te houden.

Ping heeft betrekking op het geval dat bij het plaatsen van een artikel, u (of uw software) werkt ook een aantal populaire (CV) Update Services. Wat achtergrond hier .

Vervolgens is PubSub wat staat voor publish / subscribe, een van de eerste plaats voor het werd gemaakt hier door Evan Henshaw-Plath en Kellan Elliott-McCrea (72 dia's, maar de moeite waard door). Dwingende voorbeeld gaven ze tegen was deze - op een bepaalde datum, FriendFeed kroop Flickr 2,9 miljoen keer om de nieuwste foto's van 45.754 gebruikers krijgen, waarvan er 6.721 waren Flickr bezocht in die 24 uur en kan 'potentieel' heeft een foto toegevoegd. Merk op dat wat ze voorgesteld, was niet een nieuwe technologie, omdat ze wijzen op 'revolutionaire nieuwe 20 jaar oude technologie'. Als je het voor blogs dan een van de grote problemen met xmpp - aanwezigheid van gegevens overhead, die kan oplopen tot 60-70% kan worden verminderd veel.

pubsubhub staat voor publiceren subscribe hub en pubsubhubbub is een protocol, Essentieel is dat idee van pubsubhub. Waarin uitgevers (zeg bloggers) bij te werken, die de naaf (kan meer dan een hubs, die met elkaar praten) woont 'ergens in de cloud', volgens het protocol dit kan duwen of trekken volgens het protocol, maar de volgende schakel in de keten, hub van de klant (laten we zeggen lezers) het altijd model te duwen. Deze pagina is goed uitgangspunt voor pubsubhubbub, overzicht dia's zijn goed. Ooit welsprekende Anil Dash beschrijft het hier als drukknop web.
Twee andere maal gelezen zijn webhooks die in feite http callbacks. GitHub gebruikt , dus doet paypal voor asynchrone kennisgevingen van betaling in IPN . Dat geldt ook voor vele anderen. Verwant begrip is rsscloud die weer is PubSub hub. Volg deze link voor meer informatie.

U vraagt ​​zich misschien af ​​wat is het punt van het schrijven van al deze hier, zijn er twee: 1. Deze dingen zijn de moeite waard te weten, minimaal op zijn minst en 2. Deze blog is pubsubhubbub nu ingeschakeld via appspot hub het gebruik van dit wordpress plugin en diervoeders te pubsubhubbub is ingeschakeld via FeedBurner, link hier
-
[ 1 ]. - Goede inleidende lezen voor volledig homomorfe encryptie is dit artikel van Bruce Schneier en dit gesprek is min of meer enige bron voor Google wave.

-UPDATE - Dit bericht wordt uitgelegd hoe de eis van de openbare server voor terugbellen kan worden gewerkt rond voor desktop clients via XMPP-gateway (voor pubsubhubbub).

Een beetje van vergadering

29 augustus 2009 door Prashant · Reacties
Geplaatst onder: technologie

Na het lezen van dit artikel over lock vrij buffers en het zien van het gebruik van CAS (te vergelijken en te wisselen), voelde ik me net als het plaatsen van de assemblage-code om hetzelfde te doen. Gebruik geval daar was om een ​​eigen methode te schrijven en het noemen van Java (terug in 1.5, wanneer gelijktijdige datastructuren in Java waren min of meer ontbreekt). Zonder verdere omhaal, ik zal de code los te laten op je :) . De eerste is voor de CAS en de tweede is voor het berekenen van GCD met behulp van het algoritme van Euclides (deze is te vinden op vele plaatsen en tutorials ook).

Compileer en uitvoeren instructies gcc file_name.c ; ./a.out

Vergelijk en Swap

   # Include 
  # Include 
 / / Uitwisseling - newValue, comperand is oud / verwachte waarde
 / *
  * Functie doet eigenlijk het volgende ding - als de waarde op * dest is gelijk aan dan oldvalue te vervangen door newValue anders laat het onveranderd: niet al deze atomair
  *
  * Er zijn twee opties voor de return waarde
  * 1.is initiële waarde van * dest en laat de last van de oproep FXN te vergelijken met oldval
  * 2.  doen het hier over en weer 0 of 1, moet dit efficiënter
  ** /

 / * Later veranderen in macro * /
 int cas (int * DEST, int oldvalue, int newValue) {
	 printf ("(% d,% d,% d)", * DEST, oldvalue, newValue);
	 / * Int cas (int DEST, int oldvalue, int newValue) {* /
	 / * Int cas (int DEST, int newValue, int oldvalue) {* /
	 int resultaat = 1 ;/ * 1 laat zien dat cas geslaagd en 0 geeft aan dat het * niet /
	 / * Btw moeten cc voor vlag verpesten!  * /
	 __asm__ __ volatile__ (
			 "Movl% 2,%% eax \ n \ t"
			 "Movl% 3,%% ebx \ n \ t"
			 "Movl% 0,%% ecx \ n \ t"
			 "LOCK \ n \ t"
			 "CMPXCHG%% ebx, (%% ecx) \ n \ t" / * moet LOCK op dezelfde lijn * /
			 "JZ GEDAAN \ n \ t"
			 "Movl $ 0,% 1 \ n \ t"
			 "DONE: \ n \ t"
			 : "= M" (DEST), "= g" (resultaat)
			 : "G" (oldvalue), "G" (newValue), "m" (DEST)
			 "% Eax", "% ebx", "ecx", "cc"
			 );
	 printf ("(% d,% d,% d)", * DEST, oldvalue, newValue);
	 terug te keren resultaat;
 }

 / * TODO
  * Schrijf een andere asm FXN die hierboven FXN zet in de zoveel tijd loop en blijf proberen, tenzij het lukt * /

 int main () {
	 int a = 5, b = 6;
	 int * c = (int *) malloc (sizeof (int));
	 * C = 6;
	 / * Int c = 6; * /
	 printf ("% d \ n", cas (c, b, b));
	 printf ("% d \ n", cas (c, b, a));
	 printf ("% d \ n", cas (c, a, a));
	 printf ("% d \ n", cas (c, b, b));
	 * C = 6;
	 / * C = 5; * /
	 printf ("veranderende waarde van * c om% d \ n", * c);
	 printf ("% d \ n", cas (c, b, b));
	 printf ("% d \ n", cas (c, b, a));
	 printf ("% d \ n", cas (c, a, a));
	 printf ("% d \ n", cas (c, a, b));
	 printf ("% d \ n", cas (c, b, a));
	 return 0;
 }

Opmaak van nota's - lijkt wp syntax highlighter is het toevoegen van op het einde, negeren dat.

GCD

 # Include 
 int ggd (int a, int b) {
     int resultaat;
     / * Compute Grootste gemene deler met behulp van het algoritme van Euclides * /
     __asm__ __ volatile__ ("movl% 1,%% eax;"
                           "Movl% 2,%% ebx;"
                           "Vervolg: cmpl $ 0,%% ebx;"
                           "Je gedaan;"
                           "Xorl%% edx,%% edx;"
                           "Idivl%% ebx;"
                           "Movl%% ebx,%% eax;"
                           "Movl%% edx,%% ebx;"
                           "Jmp Vervolg;"
                           "DONE: movl%% eax,% 0;": "= g" (resultaat): "g" (a), "G" (b)
     );

     terug te keren resultaat;
 }

 int main () {
     int eerste, tweede;
     printf ("Geef twee gehele getallen:");
     scanf ("% d% d", & eerste en tweede);

     printf ("GCD van% d &% d is% d \ n", eerste, tweede, ggd (eerste, tweede));

     return 0;
 }

Cricket wereld wacht op een Nieuwe Wereld Orde

25 augustus 2009 door Prashant · Reacties
Geplaatst onder: misc

Na een reeks verspreid over vijf tests en ongeveer twee maanden, Engeland teruggewonnen as.

Laten we praten over het winnende team voor het eerst - hun midden orde is 'gemiddeld' als je niet wilt kritisch. Greame Swann de bijdrage met de knuppel telt niet minder dan bijdrage met de bal. Stuart Broad - de beste allrounder was niet starter voor de 5e test. Andrew Strauss was de enige consistente batsman en Jimmy Anderson was de enige consistente bowler.

Punt is hier niet om de verworvenheden van het winnende team hekelen, maar om in het juiste perspectief het feit dat ondanks al deze, Australië verloren. je zult moeten denken voor enkele seconden, indien gevraagd om hun beste bowler te noemen. Juist, het was BW Hilfenhaus. Hauritz beter dan everbody de verwachting, maar was nog niet goed genoeg om te worden geselecteerd voor twee van de vijf tests. Zuid-Afrika werd nooit een wereld zonder een klopper wereldklasse spinner, kan Australië niet hopen te blijven een zonder een goed genoeg is en waarvan ten minste. Magician verliet het podium en het niet meer uit als kunst, vergeet magie. Ponting staat hoog bij mindere stervelingen en Michael Clarke staat op heel vaak, maar dat maakt ze een team met een aantal zeer goede spelers en niet een heel goed team.
Ashes 2009 zal de geschiedenis ingaan van de laatste Ashes Andrew Flintoff's, Stuart Broad de komst van als een all rounder (als hij voegt wat meer Ashes folklore om zijn veelbelovende start), en een van de meest sprekende debuut eeuw aller tijden door Trott, maar het zal ook herinnerd als het punt waar mitsen en maren over de suprematie van Australië werden eindelijk tot rust, het is voorbij. Begrijp me niet verkeerd kunnen ze nog steeds opgraven Mike Hussey en Stuart Clark, maar je voelt dat de bijdrage van alle tijd groten wanneer ze gaan missen. Soms komen ze om u te herinneren van zichzelf in IPL, maar nog steeds kunnen ze niet worden vervangen. Laten we voel me gezegend voor het zien van Warne, McGrath en Gilchrist samen spelen en wordt ondersteund door Waughs, Ponting, Hyden, Martin en Langer.

In de toekomst, Zuid-Afrika altijd blijft een zeer goed team maar ze moeten naar halve finale te winnen en meer consistent over de hele wereld te zijn, Pakistan blijft raadselachtig briljant, zullen Indiase jonge honden vindt het waarschijnlijk moeilijk om de schoenen van buitengewone voorgangers te vullen. Sri Lanka moet blijven glimp van de kunst laten zien in ambacht. Maar, misschien moeten we voor bepaalde tijd te wachten alvorens met een all out dominante team of voor een kapitein klaagt over gebrek aan concurrentie, zoals Steve Waugh deed een keer.

Op een verwante nota - laten we blij met de komst achterkant van Asif hij een hel veel potentie heeft, laten we hopen een aantal van die te zien en ook van harte welkom Andy Flower in de nieuwe awatar, rechts kun je niet blijven goede mannen naar beneden voor lang.

robijn One Liners te creëren hash

20 augustus 2009 door Prashant · Reacties
Geplaatst onder: technologie

Gisteren terwijl er door een van mijn oude programma's, vond ik deze door mij geschreven eens weer:

#begin magic
hash=Hash[*CGI.unescape(raw_text).split('&').map{|x| b=x.split("=");b.push(nil) if b.size==1;b}.flatten]
#end magic

Om enkele van spanning te doden laat me onthullen dat raw_text lijkt

 

, Rechts het is gesneden uit PayPal-betaling bevestiging.

Boven regel als gebroken in delen leest beter:

  unescaped_array = CGI.unescape (raw_text). split ('&')
   unescaped_array = unescaped_array.collect {| x | b = x.split ("="); b.push (nihil) als b.size == 1, b}
   flattened_array = unescaped_array.flatten
   hash = Hash [* flattened_array] 

Laten we de afzonderlijke stappen in irb:

  IRB (hoofd):. 009:0> unescaped_array = CGI.unescape (raw_text) split ('&')    

 => ["SUCCES", "mc_gross = 10,00", "protection_eligibility = niet in aanmerking", "payer_id = U7PPJJ4TSJ47E", "belasting = 0.00", "payment_date = 09:45:30 10 juli 2009 PDT", "payment_status = In afwachting van "]                                                                         

 IRB (hoofd): 013:0> unescaped_array = unescaped_array.map {| x | b = x.split ("="); b.push (nihil) als b.size == 1, b}  

 => [["Succes", nihil], ["mc_gross", "10,00"], ["protection_eligibility", "niet in aanmerking"], ["payer_id", "U7PPJJ4TSJ47E"], ["belasting", "0.00"] , ["payment_date", "09:45:30 10 juli 2009 PDT"], ["payment_status", "In afwachting van"]]                               

 IRB (hoofd): 014:0> flattened_array = unescaped_array.flatten     

 => ["Succes", nihil, "mc_gross", "10,00", "protection_eligibility", "niet in aanmerking", "payer_id", "U7PPJJ4TSJ47E", "belasting", "0.00", "payment_date", "09:45: 30 juli 10 2009 PDT "," payment_status "," In afwachting van "]
 IRB (hoofd): 015:0>
 hash = Hash [* flattened_array]
 => {"Belasting" => "0.00", "payment_status" => "In afwachting van", "payer_id" => "U7PPJJ4TSJ47E", "mc_gross" => "10,00", "SUCCES" => nihil, "payment_date" = > "09:45:30 10 juli 2009 PDT", "protection_eligibility" => "niet in aanmerking"} 

BTW, wordt genoemd * splat operator in robijn

Een andere manier om te creëren hash van 'array van paren' is om te injecteren gebruiken:

  hash = [[1,2], [3,4]] injecteren ({}). {| resultaat, element | resultaat [element.first] = resultaat [element.last]; resultaat} 

Er is nog een manier :) Schrijf een lus, die ik laat als oefening voor de lezers!

Hier is een beetje los use case van het creëren van hash van arrays:

  IRB (hoofd): 005:0> [1,2,3,4,7,9] group_by {| x | x <5.?  : Mindere :: groter}

 => {: Minder => [1, 2, 3, 4]: groter => [7, 9]} 

Je kan meer dingen, voornamelijk door het blok wordt gebruikt als sleutel voor dat element in de resulterende hash.

gmail, mutt en msmtp fix

17 augustus 2009 door Prashant · Reacties
Geplaatst onder: technologie

Als u mutt en smtp om Gmail te openen. Hier is een (slechte) nieuws. Cool jongens op Google opnieuw gewijzigd certificaat. Oh, heb je vragen - hoe kan het kennen? Eenvoudige mutt begonnen te klagen over de slechte certificaat wanneer het proberen om msmpt, beruchte gebruik van 'msmtp: TLS-certificaat verificatie mislukt:. Het certificaat heeft nog een bekende uitgever' begroette me op het scherm.

Om te bevestigen over te steken -
Start gewoon na

$ msmtp --serverinfo --host=smtp.gmail.com --tls=on --port=587 --tls-certcheck=off

In plaats van oude Thawte Server Nu krijg je volgen in emittent segment
Issuer:
Common Name: Google Internet Authority
Organization: Google Inc
Country: US

Gelukkig fix is ​​simpel, hier is wat je moet doen op debian

# apt-get install ca-certificates
# dpkg -s ca-certificates|grep Version
Version: 20090814

Na dit gewoon volgende regel te veranderen in je op ~ /. Msmtprc

tls_trust_file /certs/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem

tls_trust_file /certs/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem

naar

tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt

Git en Awesome Survey

15 augustus 2009 door Prashant · Reacties
Geplaatst onder: misc

Hier zijn twee links voor onderzoek van Git (version control systeem) en awesome (window manager) gemeenschap. Als u een van deze, dan kunt u nemen wat tijd in te vullen de vragenlijst. Zie het als de eenvoudigste manier om terug te dragen aan de software die u gebruikt.
Hier zijn de links:

Git - http://www.survs.com/survey?id=2PIMZGU0&channel=Q0EKJ3NF54

Awesome - http://www.survs.com/survey?id=8BVEV3FO&channel=BH07CQ040D

Opmerking - (zoals in de deze pagina's, maar aan de onderkant :) ) -
"Als je cookies aangeschakeld hebben, dan kunt u altijd in te dienen gedeeltelijk gevuld enquête, en keer terug naar uw antwoorden op een later tijdstip, het invullen van het later."

Samenvoegen hashes in YAML conf bestanden

31 juli 2009 door Prashant · Reacties
Geplaatst onder: technologie

YAML is heel handig voor het schrijven van configuratiebestanden. Primair voordeel is dat, het leest als tekstbestand. Dit werkt echt goed als je config bestand is plat (geen hiërarchie) en heeft geen herhalingen.
Als uw configuratie bestand herhalingen dan is het zinvol deze te scheiden van die elementen en ze opnieuw te gebruiken. Wat ik bedoel is dit - laten we zeggen dat je je config bestand ziet er als volgt uit:

  ontwikkeling:
   input_location: common_input
   output_location: dev_location
   mail:
     smtp_server: uw_server
     login: your_login
     wachtwoord: top_secret
 productie:
   input_location: common_input
   output_location: dev_location
   mail:
     smtp_server: uw_server
     login: your_login
     wachtwoord: top_secret 

Ervan uitgaande dat bovenstaande code in / tmp / test.yml hier is hoe je kunt lezen in Python en Ruby
$cat readyml.py

 #! / Usr / bin / env python
 van pprint import pprint als pp
 # In debian moet python-yaml te installeren
 van yaml import belasting, load_all, dump
 hash = belasting (open ("/ tmp / test.yml '))
 pp (hash ['ontwikkeling']) 


$ cat readyml.rb

  #! / Usr / bin / env ruby
 require 'pp'
 hash = YAML :: load (File.open ('/ tmp / test.yml'). lezen)
 pp hash ['ontwikkeling'] 

Hier is een handige one-liner voor Ruby versie
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]' of u kunt hetzelfde proberen in irb of python console.

Merk op dat in het bovenstaande stukje code, alles is anders dan uitvoerlocatie hetzelfde is in ontwikkeling en productie deel. Dit is waar yml node identifier komt te redden is. Idee is simpel beschikken over een set van standaard waarden en ze op andere plaats te overschrijven.
Je zou kunnen trek het uit elkaar als volgt:

  standaard: & defaults
   input_location: common_input
   output_location: dev_location
   mail:
     SENDER_NAME: afzender
     smtp_server: uw_server
     login: your_login
     wachtwoord: top_secret
 ontwikkeling:
   <<: * Standaard
 productie:
   <<: * Standaard
   output_location: prod_location 


$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$

Geweldig, het werkt (tm)!.
Ongetwijfeld hebben we geruild enige duidelijkheid voor een beetje magie. Hier is een kleine uitleg: &, * en <<: & dat is ankertag kan worden opgevat als node identifier, * is knooppunt referentie-en <<: staat voor hash samenvoegen.

Voor meer details zie ofwel yaml specs of wikipedia
Tot nu toe zo goed, maar er is hier een vangst, deze hash fuseert zijn niet recursief. Wat het betekent is dit: stel dat u verschillende afzender naam hebben voor de post in twee omgevingen, kunt u in de verleiding komen het volgende doen:

  standaard: & defaults
   input_location: common_input
   output_location: dev_location
   mail:
     SENDER_NAME: afzender
     smtp_server: uw_server
     login: your_login
     wachtwoord: top_secret
 ontwikkeling:
   <<: * Standaard
   mail:
     SENDER_NAME: sender_dev
 productie:
   <<: * Standaard
   output_location: prod_location
   mail:
     SENDER_NAME: sender_prod 

Laten we bekijken

$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
nil
$

Oeps, er ging iets mis, probleem zoals hierboven vermeld is dat de hash samenvoegen niet recursief is en bij het samenvoegen van deze vervangen mail in gebreke per post van de productie die op een sleutel heeft. Oplossing / werk in de buurt is om uitgerold nog een niveau:

  common_settings: & common_settings
 input_location: common_input
 output_location: dev_location
 mail_defaults: & mail_defaults
  SENDER_NAME: afzender
   smtp_server: uw_server
   login: your_login
   wachtwoord: top_secret

 standaard: & defaults
   << * Common_settings
   mail:
     << * Mail_defaults
 ontwikkeling:
   <<: * Standaard
 productie:
   <<: * Standaard
   mail:
     << * Mail_defaults
     SENDER_NAME: sender_prod

Laten we controleer opnieuw

$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$

Heb je zeggen dat je nog een niveau van nesting, goed je kan zeker uitrollen nog een niveau, maar dan wordt het een puinhoop. Dus, als je niet probeert om oplossing voor Torens van Hanoi in een conf bestand te schrijven, is het beter om conf bestand restucture dan graven in yaml of iets anders. Maar dat is uw oproep toch.

Grote programmeurs vinden eenvoudige oplossingen voor complexe problemen

30 juni 2009 door Prashant · Reacties
Geplaatst onder: misc

Na een lange tijd die ik kon vinden van de bron voor de volgende quote-

Junior programmeurs maken eenvoudige oplossingen voor eenvoudige problemen. Senior programmeurs complexe oplossingen voor complexe problemen. Grote programmeurs vinden eenvoudige oplossingen voor complexe problemen.

Het is uit een essay genaamd Beautiful Software door Charles Connell.

Een andere favoriet van mij is The Zen of Python -

Mooie is beter dan lelijk.
Expliciete is beter dan impliciet.
Eenvoudig is beter dan complex.
Complex is beter dan gecompliceerd.
Vlakke is beter dan genest.
Sparse is beter dan dicht.
Leesbaarheid telt.
Bijzondere gevallen zijn niet bijzonder genoeg om de regels te breken.
Hoewel praktisch verslaat zuiverheid.
Fouten mogen nooit in stilte passeren.
Tenzij uitdrukkelijk het zwijgen opgelegd.
In het licht van dubbelzinnigheid, weigeren de verleiding te raden.
Er moet een en bij voorkeur slechts een voor de hand liggende manier om het te doen.
Hoewel op die manier misschien niet voor de hand liggende op het eerste tenzij je Nederlands.
Nu is beter dan nooit.
Hoewel nooit is vaak beter dan * rechts * nu.
Indien de uitvoering is moeilijk uit te leggen, het is een slecht idee.
Indien de uitvoering is eenvoudig uit te leggen, kan het een goed idee.
Naamruimten zijn een toeterende geweldig idee - laten we meer van deze!
-------------------------
en dan is er klassieke Tao van de programmering

-

credits als op de gelinkte site-

Vertaald door Geoffrey James

Getranscribeerd door Duke Hillard

Overgeleverd door Anupam Trivedi, Sajitha Tampi en Meghshyam Jagannath

Re-html-seerde en uitgegeven door Kragen Sittler

-

Boek 1 - The Silent Void

Aldus sprak de meester programmeur:

"Als je hebt geleerd om de foutcode te ontrukken aan de val frame, het
wordt tijd voor u om te vertrekken. "

1,1

Iets mysterieus wordt gevormd, geboren in de stille leegte. Wachten alleen en
onbeweeglijk, is het in een keer stil en toch voortdurend in beweging. Het is de bron
van alle programma's. Ik weet niet zijn naam, dus ik zal noemen de Tao van de
Programmeren.

Als de Tao is groot, dan is het besturingssysteem is groot. Als het besturingssysteem
systeem groot is, dan is de compiler is groot. Als de compiler is groot,
dan is de applicatie is groot. De gebruiker is tevreden en er bestaat
harmonie in de wereld.

De Tao van programmeren stroomt ver weg en keert terug op de wind van de ochtend.

1,2

De Tao is bevallen van machinetaal. Machinetaal gaf geboorte aan de
assembler.

De assembler gaf geboorte aan de compiler. Nu zijn er tienduizend
talen.

Elke taal heeft zijn doel echter bescheiden. Elke taal drukt de
Yin en Yang van de software. Elke taal heeft zijn plaats binnen de Tao.

Maar niet te programmeren in COBOL als je het kunt vermijden.

1,3

In het begin was de Tao. De Tao is bevallen van ruimte en tijd.
Daarom Ruimte en tijd zijn Yin en Yang van de programmering.

Programmeurs die niet begrijpen van de Tao zijn altijd bijna geen tijd meer
en ruimte voor het programma. Programmeurs die de Tao altijd te begrijpen
genoeg tijd en ruimte om hun doelen te bereiken.

Hoe kan het ook anders?

1,4

De wijze programmeur wordt verteld over de Tao en volgt het. De gemiddelde
programmeur wordt verteld over de Tao en zoekt naar het. De dwaze programmeur
wordt verteld over de Tao en lacht ernaar.

Als het niet om te lachen, zou er geen Tao.

De hoogste geluiden zijn het moeilijkst te horen.
In de toekomst is een manier om terug te trekken.
Groot talent toont zich laat in het leven.
Zelfs een perfecte programma heeft nog bugs.

-------------------------

Boek 2 - De Oude Meesters

Aldus sprak de meester programmeur:

"Na drie dagen zonder te programmeren, wordt het leven zinloos."

2,1

De programmeurs van de oud was mysterieus en diepgaand. We kunnen niet doorgronden
hun gedachten, dus alles wat we doen is beschrijven hun uiterlijk.

Aware, als een vos oversteken van het water. Alert, als een generaal over de
slagveld. Kind, als een gastvrouw begroet haar gasten. Eenvoudig, net als
Ongekerfde blokken hout. Ondoorzichtige, zoals zwart zwembaden in donkere grotten.

Wie kan vertellen de geheimen van hun hart en geest?

Het antwoord bestaat alleen in Tao.

2,2

Grand Master Turing een keer gedroomd dat hij een machine. Toen hij wakker werd hij
riep uit:

"Ik weet niet of ik droom dat ik een machine, of een Turing
machine dromen dat ik Turing! "

2,3

Een programmeur van een zeer grote computer bedrijf ging om een ​​software-
conferentie en keerde daarna terug te rapporteren aan zijn manager en zei: "Wat voor soort
van programmeurs werken voor andere bedrijven? Ze gedroegen zich slecht en waren
zonder zich. Hun haar was lang en onverzorgd en hun
kleren waren gerimpeld en oud. Ze stortte onze gastvrijheid suite en ze
gemaakt onbeleefd geluiden tijdens mijn presentatie. "

De manager zei: "Ik zou nooit die u hebt verzonden aan de conferentie. Die
programmeurs leven na de fysieke wereld. Zij beschouwen het leven absurd, een
toevallige samenloop van omstandigheden. Ze komen en gaan zonder het te weten beperkingen.
Zonder zorg, ze leven alleen voor hun programma's. Waarom zouden ze moeite
met de sociale conventies?

"Ze zijn gezond in de Tao."

2,4

Een beginnende vroeg de Meester: "Hier is een programmeur die nooit ontwerpt,
documenten of tests zijn programma's. Maar allen die hem kennen beschouwen hem als een van de
de beste programmeurs ter wereld. Waarom is dit? "

De Meester antwoordt: "Dat programmeur heeft de Tao onder de knie. Hij is gegaan
afgezien van de noodzaak voor het ontwerp, hij wordt niet boos als het systeem
crashes, maar accepteert het universum zonder zorg. Hij is verder gegaan dan de
nodig hebben voor documentatie, hij niet meer schelen of iemand anders ziet dat zijn code.
Hij is verder gegaan dan de noodzaak voor het testen, elk van zijn programma's zijn perfect
in zichzelf, sereen en elegant, hun doel vanzelfsprekend. Waarlijk,
hij is aangegaan het mysterie van de Tao. "

-------------------------

Boek 3 - Design

Aldus sprak de meester programmeur:

"Wanneer het programma wordt getest, is het te laat om het ontwerp
verandert. "

3,1

Er was eens een man die naar een computer beurs. Elke dag, toen hij
ingevoerd, de man vertelde de bewaker aan de deur:

"Ik ben een groot dief, bekend om mijn prestaties van winkeldiefstal. Zijn
gewaarschuwd, is voor deze beurs niet ontsnappen vrijwel ongeschonden. "

Deze toespraak verstoorde de wacht sterk, omdat er miljoenen
dollar aan computerapparatuur in, dus hij keek de man aandachtig. Maar
de man alleen maar zwierf van stand naar stand, neuriede zachtjes voor zichzelf.

Toen de man vertrok, de bewaker nam hem terzijde en doorzocht zijn kleding, maar
niets te vinden was.

Op de volgende dag van de beurs, de man terug en berispte de wacht
te zeggen: "Ik ontsnapte met een enorme buit van gisteren, maar vandaag zal zelfs
beter. "Dus de bewaker zag hem steeds hechter, maar het mocht niet baten.

Op de laatste dag van de beurs, kon de bewaker zijn nieuwsgierigheid bedwingen
niet meer. "Sir Thief", zei hij, "ik ben zo perplex, ik kan niet leven in
vrede. Gelieve verlichten mij. Wat is het dat je stelen? "

De man glimlachte. "Ik ben ideeën stelen", zei hij.

3,2

Er was eens een meester programmeur die schreef ongestructureerde programma's. Een
beginnende programmeur, op zoek om hem te imiteren, ook begon te schrijven
ongestructureerde's. Toen de beginnende vroeg de meester aan zijn evaluatie van
vooruitgang, de meester kritiek op hem voor het schrijven van ongestructureerde programma's,
zeggende: "Wat is geschikt is voor de meester is niet geschikt voor de
novice. U moet het Tao voor overstijgende structuur. "

3,3

Er was eens een programmeur die was verbonden aan het hof van de krijgsheer
van Wu. De krijgsheer vroeg de programmeur: "Wat is makkelijker te ontwerpen voor: een
boekhoudpakket of een besturingssysteem? "

"Een besturingssysteem," antwoordde de programmeur.

De krijgsheer slaakte een uitroep van ongeloof. "Zeker een boekhoudkundige
pakket is triviaal naast de complexiteit van een besturingssysteem ", zegt hij
gezegd.

"Niet zo," zei de programmeur, "bij het ontwerpen van een boekhoudpakket,
De programmeur werkt als een bemiddelaar tussen mensen met verschillende
ideeën: hoe het moet werken, hoe haar verslagen moet verschijnen, en hoe het moet
voldoen aan de fiscale wetgeving. Daarentegen is een besturingssysteem niet beperkt
door externe optredens. Bij het ontwerpen van een besturingssysteem, de programmeur
zoekt de eenvoudigste harmonie tussen machine en ideeën. Daarom is een
besturingssysteem is eenvoudiger om. "

De krijgsheer van Wu knikte en glimlachte. "Dat is allemaal goed en wel, maar
die gemakkelijker te sporen? "

De programmeur gaf geen antwoord.

3,4

Een manager ging naar de meester programmeur en liet hem aan de eisen
document een nieuwe toepassing. De manager vroeg de meester: "Hoe lang
zal zij nemen om dit systeem te ontwerpen als ik toewijzen vijf programmeurs op? '

"Het zal een jaar," zei de meester snel.

"Maar we moeten dit systeem onmiddellijk of nog sneller! Hoe lang zal het
te nemen als ik toewijzen tien programmeurs op? '

De meester programmeur fronste zijn wenkbrauwen. "In dat geval zal het twee jaar."

"En wat als ik wijs honderd programmeurs op? '

De meester programmeur haalde zijn schouders op. "Dan het ontwerp zal nooit
voltooid, "zei hij.

-------------------------

Boek 4 - Coding

Aldus sprak de meester programmeur:

"Een goed geschreven programma is zijn eigen hemel gezien: een slecht geschreven programma is
zijn eigen hel. "

4,1

Een programma moet licht en wendbaar, de subroutines verbonden als een
parelsnoer. De geest en de bedoeling van het programma dient te worden gehandhaafd
in. Er moet niet te weinig of teveel niet
onnodige lussen of onbruikbaar variabelen geen gebrek aan structuur of
overweldigende stijfheid.

Een programma moet volgen de 'wet van de minst Verwondering'. Wat is deze wet?
Het is slechts dat het programma altijd moet de gebruiker reageert zoals
dat verbaast hem tenminste.

Een programma, het maakt niet uit hoe complex, moet fungeren als een enkele eenheid. Het programma
dienen te worden gericht door de logica in plaats van door uiterlijkheden.

Als het programma niet in deze eisen is het in een toestand van
wanorde en verwarring. De enige manier om dit te corrigeren is het herschrijven van de
programma.

4,2

Een beginnende vroeg de meester: "Ik heb een programma dat ergens loopt en
soms afbreekt. Ik heb de regels van de programmering, maar ik ben
totaal verbijsterd. Wat is de reden hiervoor? "

De meester antwoordde: "U bent verward omdat je niet begrijpt Tao.
Alleen een dwaas verwacht rationeel gedrag van zijn medemensen. Waarom denk je
verwachten van een machine die mensen hebben opgebouwd? Computers simuleren
determinisme, alleen Tao is perfect.

"De regels van de programmering zijn van voorbijgaande aard, alleen Tao is eeuwig. Daarom
je moet overwegen Tao voordat u verlichting. "

"Maar hoe weet ik wanneer ik heb ontvangen verlichting," vroeg de
novice.

"Het programma zal dan correct te kunnen werken," antwoordde de meester.

4,3

Een meester is het uitleggen van de aard van de Tao van een van zijn novicen. "The
Tao is vervat in alle software - ongeacht hoe onbeduidend ", zei
de meester.

"Is de Tao in een hand-held rekenmachine?" Vroeg de beginner.

"Het is," kwam het antwoord.

"Is de Tao in een videogame?", Vervolgt de beginner.

"Het is zelfs in een video game," zei de meester.

"En is het Tao in de DOS voor een personal computer?"

De master hoestte en verschoof zijn positie beetje. "De les is voorbij
voor vandaag, "zei hij.

4,4

Prins Wang's programmeur werd codering software. Zijn vingers dansten op de
toetsenbord. Het programma gecompileerd zonder een foutmelding, en het programma
liep als een zachte wind.

"Excellent!" De prins riep uit: "Uw techniek foutloos is!"

"Techniek?" Zei de programmeur het draaien van zijn terminal, "Wat ik
volgen is Tao - boven alle technieken! Toen ik voor het eerst begon te programmeer ik
zou zien voor mij het hele probleem in een massa. Na drie jaar heb ik geen
meer zag deze massa. In plaats daarvan gebruikte ik subroutines. Maar nu zie ik niets.
Mijn hele wezen bestaat in een vormloze leegte. Mijn zintuigen zijn niet actief. Mijn geest,
vrij om te werken zonder plan, volgt zijn eigen instinct. Kortom, mijn programma
schrijft zelf. Toegegeven, soms zijn er moeilijke problemen. Ik zie ze
kom, ik vertraag, ik kijk in stilte. Dan verander ik een enkele regel code
en de problemen verdwijnen als pufjes van stationair rook. Vervolgens heb ik de opstelling van de
programma. Ik zit nog steeds en laat de vreugde van het werk vult mijn wezen. Ik sluit mijn
ogen een moment en meld u af. "

Prins Wang zei: "Zou dat al mijn programmeurs waren zo wijs!"

-------------------------

Boek 5 - Onderhoud

Aldus sprak de meester programmeur:

"Hoewel een programma te zijn maar drie regels lang, op een dag zal moeten worden
gehandhaafd. '

5,1

Een goed gebruikte deur behoeft geen olie op de scharnieren.
Een snelstromende rivier groeit niet stagneert.
Noch geluid of gedachten kan reizen door middel van een vacuüm.
Software rot indien niet gebruikt.

Dit zijn grote mysteries.

5,2

Een manager vroeg een programmeur hoe lang het zou hem naar de finish
opleiding waaraan hij werkte. "Het zal afgewerkt worden morgen," de
programmeur prompt.

"Ik denk dat je realistisch zijn," zei de manager, "eerlijk, hoe
lang zal het duren? "

De programmeur dacht even na. "Ik heb een aantal functies die ik wil
voegen. Dit zal ten minste twee weken ", zei hij ten slotte.

"Zelfs dat is te veel te verwachten," benadrukte de manager, "Ik zal
tevreden als u dat gewoon vertellen wanneer het programma is voltooid. "

De programmeur heeft hiermee ingestemd.

Enkele jaren later, de manager met pensioen. Op weg naar zijn pensioen
lunch, ontdekte hij de programmeur in slaap op zijn terminal. Hij was
het programmeren van de hele nacht.

5,3

Een beginnende programmeur werd ooit toegewezen aan een eenvoudig financieel pakket te coderen.

De beginnende werkte woedend voor vele dagen, maar als zijn meester beoordeeld
zijn programma, ontdekte hij dat het een scherm-editor, een set van ingeperkt
gegeneraliseerde graphics routines, een kunstmatige intelligentie-interface, maar
niet de minste melding gemaakt van alles wat de financiële.

Toen de meester vroeg, de novice werd verontwaardigd. "Wees niet
zo ongeduldig, "zei hij," Ik zal uiteindelijk in het financieel spul. "

5,4

Heeft een goede boer verwaarloost de oogst die hij heeft geplant?
Heeft een goede leraar over het hoofd, zelfs de meest bescheiden student?
Heeft een goede vader kan een enkel kind te verhongeren?
Heeft een goede programmeur te weigeren om zijn code te handhaven?

-------------------------

Boek 6 - Management

Aldus sprak de meester programmeur:

"Laat de programmeurs zijn veel en de managers paar - dan zal alles worden
productiever zijn. "

6,1

Wanneer managers eindeloze vergaderingen te houden, de programmeurs schrijven games. Wanneer
accountants spreken van de driemaandelijkse winst, het ontwikkelingsbudget staat op het punt
worden gesneden. Als senior wetenschappers blauwe lucht praten, de wolken zijn over het uit te rollen
inch

Waarlijk, dit is niet de Tao van de programmering.

Wanneer managers toezeggingen te doen, zijn spelprogramma's genegeerd. Wanneer
accountants te maken meerjarenplannen, harmonie en orde staat op het punt te worden
hersteld. Als senior wetenschappers de problemen aan te pakken bij de hand, de
problemen zal binnenkort worden opgelost.

Waarlijk, dit is de Tao van de programmering.

6,2

Waarom zijn programmeurs niet-productieve?
Omdat hun tijd wordt verspild aan de bijeenkomsten.

Waarom zijn programmeurs opstandig?
Omdat het management bemoeit te veel.

Waarom zijn de programmeurs ontslagnemende een voor een?
Omdat ze zijn opgebrand.

Ik heb gewerkt voor slecht beheer, ze niet meer waarde hechten aan hun werk.

6,3

Een manager zou worden ontslagen, maar een programmeur die voor hem werkte
bedacht een nieuw programma dat werd populair en goed verkocht. Hierdoor de
manager behield zijn baan.

De manager probeerde de programmeur geven een bonus, maar de programmeur
geweigerd, zei: "Ik schreef het programma, omdat ik dacht dat het een
interessant concept, en dus verwacht ik geen beloning. "

De manager bij het horen van dit merkte op: "Deze programmer, maar hij houdt
een positie van kleine achting, begrijpt ook de juiste plicht van een
werknemer. Laten we hem stimuleren om de verheven positie van het management
adviseur! "

Maar toen vertelde deze, zodra de programmeur meer hadden, zeggende: "Ik besta zo
dat ik kan programmeren. Als ik bevorderd, zou ik niets anders doen dan afval
ieders tijd. Mag ik nu gaan? Ik heb een programma dat ik mee bezig ben. "

6,4

Een manager ging naar zijn programmeurs en zei tegen hen: "Met betrekking tot uw werk
uur: u gaat moeten om binnen te komen om negen uur in de ochtend en laat
om vijf uur in de middag. "Op dit, allemaal boos werd en een aantal
ontslag ter plaatse.

Dus de manager zei: "Goed, in dat geval kunt u uw eigen set
werktijden, zolang u uw projecten afwerken op schema. "De
programmeurs, nu tevreden, begon in te komen 's middags en tot in de vroege werken
uren van de ochtend.

-------------------------

Boek 7 - Corporate Wijsheid

Aldus sprak de meester programmeur:

"Je kunt aantonen dat er een programma voor een bedrijfsleider, maar u kunt niet
maken hem tot een computer kunnen omgaan. "

7,1

Een beginnende vroeg de meester: "In het oosten is er een grote boom-structuur
dat de mensen roepen 'hoofdkantoor'. Het wordt opgeblazen uit vorm met
vice-presidenten en accountants. Het geeft een veelheid aan memo's, die elk
te zeggen `Vandaar Go! ' of `Go, hierheen! ' en niemand weet wat er wordt bedoeld. Iedere
jaar nieuwe namen worden gezet op de takken, maar alle zonder resultaat. Hoe kan
dergelijke onnatuurlijke entiteit? "

De meester antwoordde: "U neemt dit immense structuur en zijn
verstoord dat het geen rationeel doel. Kun je geen amusement uit
zijn eindeloze draaiingen? Heeft u niet genieten van de zorgeloze gemak van programmering
onder zijn opvang vestigingen? Waarom ben je last van haar
nutteloosheid? '

7,2

In het oosten een haai die groter is dan alle andere vis. Het
verandert in een vogel wiens vleugels zijn als wolken vullen de lucht. Wanneer deze
vogel beweegt over het land, het brengt een boodschap van corporate
Hoofdkwartier. Dit bericht het zakt in het midden van de programmeurs,
like a seagull making its mark upon the beach. Then the bird mounts on the
wind and, with the blue sky at its back, returns home.

The novice programmer stares in wonder at the bird, for he understands it
not. The average programmer dreads the coming of the bird, for he fears
its message. The master programmer continues to work at his terminal, for
he does not know that the bird has come and gone.

7.3

The Magician of the Ivory Tower brought his latest invention for the
master programmer to examine. The magician wheeled a large black box into
the master's office while the master waited in silence.

“This is an integrated, distributed, general-purpose workstation,” began
the magician, “ergonomically designed with a proprietary operating
system, sixth generation languages, and multiple state of the art user
interfaces. It took my assistants several hundred man years to construct.
Is it not amazing?”

The master raised his eyebrows slightly. “It is indeed amazing,” he
said.

“Corporate Headquarters has commanded,” continued the magician, “that
everyone use this workstation as a platform for new programs. Do you agree
to this?”

“Certainly,” replied the master, “I will have it transported to the
data center immediately!” And the magician returned to his tower, well
pleased.

Several days later, a novice wandered into the office of the master
programmer and said, “I cannot find the listing for my new program. Do
you know where it might be?”

“Yes,” replied the master, “the listings are stacked on the platform in
the data center.”

7.4

The master programmer moves from program to program without fear. Geen
change in management can harm him. He will not be fired, even if the
project is cancelled. Why is this? He is filled with Tao.

-------------------------

Book 8 – Hardware and Software

Thus spake the master programmer:

“Without the wind, the grass does not move. Without software, hardware is
useless.”

8.1

A novice asked the master: “I perceive that one computer company is much
larger than all others. It towers above its competition like a giant among
dwarfs. Any one of its divisions could comprise an entire business. Why is
this so?”

The master replied, “Why do you ask such foolish questions? That company
is large because it is large. If it only made hardware, nobody would buy
it. If it only made software, nobody would use it. If it only maintained
systems, people would treat it like a servant. But because it combines all
of these things, people think it one of the gods! By not seeking to
strive, it conquers without effort.”

8.2

A master programmer passed a novice programmer one day. The master noted
the novice's preoccupation with a hand-held computer game. “Excuse me,”
he said, “may I examine it?”

The novice bolted to attention and handed the device to the master. “I
see that the device claims to have three levels of play: Easy, Medium, and
Hard,” said the master. “Yet every such device has another level of
play, where the device seeks not to conquer the human, nor to be conquered
by the human.”

“Pray, great master,” implored the novice, “how does one find this
mysterious setting?”

The master dropped the device to the ground and crushed it underfoot. And
suddenly the novice was enlightened.

8.3

There was once a programmer who worked upon microprocessors. “Look at how
well off I am here,” he said to a mainframe programmer who came to visit,
“I have my own operating system and file storage device. I do not have to
share my resources with anyone. The software is self- consistent and
easy-to-use. Why do you not quit your present job and join me here?”

The mainframe programmer then began to describe his system to his friend,
saying “The mainframe sits like an ancient sage meditating in the midst
of the data center. Its disk drives lie end-to-end like a great ocean of
machinery. The software is as multifaceted as a diamond, and as convoluted
as a primeval jungle. The programs, each unique, move through the system
like a swift-flowing river. That is why I am happy where I am.”

The microcomputer programmer, upon hearing this, fell silent. But the two
programmers remained friends until the end of their days.

8.4

Hardware met Software on the road to Changtse. Software said: “You are
Yin and I am Yang. If we travel together we will become famous and earn
vast sums of money.” And so the set forth together, thinking to conquer
wereld.

Presently they met Firmware, who was dressed in tattered rags and hobbled
along propped on a thorny stick. Firmware said to them: “The Tao lies
beyond Yin and Yang. It is silent and still as a pool of water. It does
not seek fame, therefore nobody knows its presence. It does not seek
fortune, for it is complete within itself. It exists beyond space and
time.”

Software and Hardware, ashamed, returned to their homes.

-------------------------

Book 9 – Epilogue

Thus spake the master programmer:

“It is time for you to leave.”

-------------------------

If you liked these, you may also like to read worse is better

Een beetje shell redirection

10 mei 2009 door Prashant · Reacties
Geplaatst onder: technologie

Hier is hoe we normaal gesproken shell redirection te doen
$ ./pgm.sh args >out.txt 2>err.txt
Ik wilde het een beetje te wijzigen en uit te voeren als volgt
$ ./pgm.sh args
with the requirement that output and error should go to some filename computed inside pgm.sh based on args. Een illustratief geval zou zijn wanneer de datum is een onderdeel van args. Dus u wilt stdout te gaan om te zeggen / uw / directory / pgm_out_YYYYMMDD.txt 1

Het probleem met standaard manier van omleiden van N>file.txt dat wil zeggen, associëren file descriptor N tot bestand.txt, is dat het werkt alleen voor de nieuw gevorkte proces en niet voor het huidige proces.
zo
$ echo hi 1>out.txt ; echo hii will send hi to out.txt but will print hii to stdout. 2

Dit is waar exec komt ons te hulp. If we add exec 1>somefile.txt then output from rest of the script will go to somefile.txt

$ cat test.sh
#!/usr/bin/env bash
exec 1>out.txt
echo hi
echo hii
$. / Test.sh zal hi omleiden en HII out.txt

Net als stdout en stderr omleiden we iets doen als dit
cat test2.sh
exec 1>out.txt
exec 2>err.txt
echo out text
echo 1>&2 err text
somenoneexitent command
ls -ld /tmp

Nu weer terug naar oorspronkelijke punt van om te leiden naar een bestand vanuit de shell, laten we zeggen-programma berekend de bestandsnaam in sommige variabele OUTFILE, kunnen we zojuist hebben gedaan exec 1>$OUTFILE

Dat lost het huidige probleem. Maar je kunt houden om te gaan door volgende voorbeeld waarin 'random access' van het bestand in de schaal script bereikt. Voorbeeld is van hier
echo 1234567890 > File # Write string to "File".
exec 3<> File # Open "File" and assign fd 3 to it.
read -n 4 <&3 # Read only 4 characters.
echo -n . >&3 # Write a decimal point there.
exec 3>&- # Close fd 3.
cat File # ==> 1234.67890

Met opmerkingen, deze code is voor zichzelf.
-
1 Het kan ook worden gedaan door $ ./pgm.sh args >pgm_out`date +%Y%m%d` , maar idee is het bestand deze naam te genereren op basis van enkele logica in het programma zelf.
2 1 op 1> out.txt is overbodig, maar het verduidelijkt hier dat we fd 1 omgeleid

Sony VAIO review

April 29, 2009 by prashant · Reacties
Filed under: reviews

A month back I bought a vaio NS25G and have been planning to write this post since then. This post is primarily notes to self and review of the same. Let's get off the mark quickly -

Post has two parts -

I. Review of hardware
II. Installing debian and things to setup

I. Review of hardware

Since I am not a VAIO marketing guy, I'll start other way round -

Why you may not like to buy this laptop :

  1. No bluetooth : believe me, in 2009 sony sells laptop without bluetooth. Sure you can use usb stuff but …
  2. Screen size is 15.4 inches : if you travel a lot then this laptop may not be very handy and also 2.9kg laptop is not exactly the lightest around.
  3. No HDMI output.
  4. No separate graphics card and the likes.(and no dedicated video memory

Now , why you may like to buy it :

  1. This laptop is a damn good desktop. What I mean is this if your requirement is like me – mostly writing programs and trying to use it 25 out of 24 hrs, then with a big screen , extremely comfortable keyboard layout with spacious palm rest and good compute power , it makes a very good combination.
  2. It L2 cache is 2MB and processor/memory system bus are 800MHz. I don't play games so can't say about that but for anything else but a core 2 duo processor with 2GHz freq is good, this is more than enough.
  3. From my usage, I see processor mostly clocks at 1.2GHz, and memory usage ~500MB. That just reinforces previous point.
  4. Battery backup is good, ~2 hrs is what I get.

Just one more thing here – being Sony, it will cost you a bit than other laptops with similar configuration, but that is a call u have to make.

II. Configuring linux (to run out of box ! ) :
It came pre installed with Vista( I think home premium or some fancy name like that). Dungara booted once and created another partition of 150 GB. Debian testing is what I always install and then up(down?)grade to 'unstable' sid.

Things which worked without any problem:

  1. X - unsurprisingly X server had not problem with starting or resolution. After one of the upgrades X refused to start though, but 'X -configure' generated a conf file which worked pretty well.
  2. Audio - Audio output and external mic work fine. kernel version 2.6.29-1-686 #1 SMP and alsa version 1.0.17. This is what you get from
    $ lspci -v |grep Audio 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Con1.0.17troller (rev 03)
  3. Video cam – just works
  4. Hibernate to disk and back – no problem
  5. Wireless - in short – just works.
    $ lspci |grep -i wireless
    03:13:55 04:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01) .

    I think kernel 2.6..27 onwards it works with the stock kernel source. You dont have to install ndiswrapper or things like t
    hat. As a note, please say good buy gnome-network-manager and welcome wicd, it is just a gui layer but behind the scene they have fixed lot of config stuff like wpasupplient and more.

What doesn't work -

  1. Somehow internal mic refuses to work ( External mic works fine though. Latest alsa sources did not compile cleanly on debian, so for the time being I bought external Internal mic, will try to dig into it sometime in future though.

Few more misc hints for deiban:

  • Package for devnagri font- ttf-indic-fonts
  • Package for flash player – flashplugin-nonfree
  • Entry in sources.list for mplayer and likes – deb http://www.debian-multimedia.org sid main
  • Entry in sources.list for e17 – deb http://debian.alphagemini.org/ unstable main
  • Entry in sources.list for skype – http://download.skype.com/linux/repos/debian/ stable non-free

oneliner for increasing and decreasing the brightness -

[root]prashant@vaio09:12 PM$ cat bin/incbrightness.sh
#!/usr/bin/env bash
echo $[1+`cat /sys/class/backlight/acpi_video0/brightness `] >/sys/class/backlight/acpi_video0/brightness

you'll have to put this in sudo though.
and to decrease change + to – and … you get the idea, right !

A bit more, if you use enlightenment(e17) here are few more hints -

[enlightenment key bindidings]

You can use following key code and mapping

mute :
KEY="Keycode-160" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master toggle"
hibernate :
KEY="Keycode-165" ACTION="exec" PARAMS="sudo /usr/sbin/hibernate-disk"
volume decrease :
KEY="Keycode-174" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2-"
volume increase:
KEY="Keycode-176" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2+"
increase brightness :
KEY="Keycode-212" ACTION="exec" PARAMS="sudo /root/bin/incbrightness.sh"
decrease brightness
KEY="Keycode-101" ACTION="exec" PARAMS="sudo /root/bin/decbrightness.sh"

Volgende pagina »