kyselyn, ping, pubsub, pubsubhub, pubsubhubbub
Jos olet skeptinen, on menetelmä hulluus edellä, otsikossa postitse. Vuonna tech piireissä on epätodennäköistä, että et ole kuullut pubsubhubbub. Nopeasti muutaman kuukauden, se on ollut yksi kolmesta puhui asiaa. Kaksi muuta homomorphic salaus ja Google aalto [ 1. ]. Palatakseni nykyiseen tehtäväänsä - termit otsikossa kertoa, miten saat sisältöä muilta ihmisiltä. Seuraavat tiedot tulee selvemmäksi, jos voit kuvitella mitä tapahtuu suhteessa blogeja, vaikka ne eivät ole käsitteellisesti rajoitu blogeja.
Polling viittaa skenaarioon, jossa asiakkaat Kyselen palvelimeen, jos jotain uutta on keksittävä. Kuinka usein pyytää päivityksiä aina ongelma äänestyspaikalla liian usein tai liian harvoin, mutta kuten eräs lukija huomautti tähän , että yksi suuri, juttu äänestyspaikoilla on, että palvelin ei tarvitse ylläpitää tilaan.
Ping tarkoittaa silloin, kun kirjoittaa artikkeli, sinä (tai ohjelmisto) päivittää myös suosittuja (keskus) Update Services. Jotkut tausta täältä .
Seuraavaksi on pubsub joka kannattaa julkaista / tilata, yksi varhaisimmista piki se tehtiin täällä Evan Henshaw-Plath ja Kellan Elliott-McCrea (72 dioja mutta kannattaa mennä läpi). Vakuuttava esimerkki he antoivat vastaan oli tämä - tiettynä päivänä, FriendFeed ryömi Flickr 2,9 miljoonaa kertaa saada uusimmat kuvia 45754 käyttäjää, joista 6721 oli käynyt Flickr näissä 24 h ja olisi voinut "mahdollisesti" ladattu kuva. Huomaa, että he ehdotti ei ollut uutta teknologiaa, koska he huomauttavat "vallankumouksellinen uusi 20 vuotiaan tekniikalla. Jos teet sen blogeja silloin yksi suurimmista ongelmista xmpp - läsnäolo datarakenteen, joka voi olla jopa 60-70% voidaan vähentää paljon.
pubsubhub sanoista julkaista Tilaa napa ja pubsubhubbub on protokolla, ytimenä on ajatus pubsubhub. Missä julkaisijat (eli bloggaajien) päivittää napa joka (saattaa olla useampia keskuksia, jotka puhuvat keskenään) sijaitsee "jossain pilvessä", koska per protocol tämä voidaan työntää tai vetää kohti protokollan mutta seuraava lenkki ketju, napa asiakkaan (sanoa lukijoille) on aina työntää mallia. Tämä sivu on hyvä lähtökohta pubsubhubbub, yleiskatsaus kalvot ovat hyviä. Koskaan lennokas Anil Dash kuvaa sitä täällä kuin painike web.
Kaksi muuta liittyvät luettu ovat webhooks joka on pohjimmiltaan http kutsuja. Github käyttää sitä, niin ei paypal tahdistamattoman ilmoituksia maksun IPN . Niin tekevät monet muutkin. Related konsepti rsscloud mikä taas pubsub napa. Seuraa tätä linkkiä.
Saatat ihmetellä, mitä järkeä on kirjoittaa kaikki nämä täällä on kaksi 1. Nämä asiat on hyvä tietää, vähän ainakin ja 2. Tämä blogi on pubsubhubbub käyttöön nyt kautta appspot keskittimeen käyttämällä tätä wordpress plugin ja ruokinnasta on pubsubhubbub portin kautta FeedBurner, linkki täällä
-
[ +1 ]. - Hyvä johdanto lukea täysin homomorphic salaus on tämä artikkelin Bruce Schneier, ja tämä puhe on enemmän tai vähemmän ainoa Google aalto.
-UPDATE - Tämä viesti kertoo, kuinka vaatimus julkisen palvelimen soittopyyntö voidaan kiertää pöytäkoneiden asiakkaille käyttäen xmpp gateway (for pubsubhubbub).
Hieman kokoonpano
Kun olet lukenut tämän artikkelin lukko vapaita puskureita ja nähdä käyttöön CAS (vertaa ja vaihtaa), tunsin itseni lähettämistä assembly tekemään samoin. Käytä tapauksessa tuolla oli kirjoittaa natiivi menetelmä ja kutsuvat sitä Java (takaisin 1,5, kun samanaikaisesti tietorakenteita Java olivat enemmän tai vähemmän olematon). Pitemmittä puheitta, minä valloilleen koodia sinuun
. Ensimmäinen on CAS ja toinen on tietotekniikan GCD käyttää Eukleideen algoritmi (tämä löytyy monin paikoin ja tutorials samoin).
Käännä ja suorita ohjeet gcc file_name.c ; ./a.out
Vertaa ja Swap
# Include# Include / / Vaihto - newvalue, comperand on vanha / odotusarvo / * * Toiminto itse asiassa tekee seuraavat asia - jos arvo * dest on sama oldvalue sitten korvata newvalue muuten jätä se ennallaan: eivät kaikki nämä atomisesti * * On kaksi vaihtoehtoa paluuarvon * 1.is alkuarvo * dest ja jättää taakan kutsuvan fxn verrata sitä oldval * 2. tekevät sen tänne ja palauttaa 0 tai 1, tämä olisi tehokkaampaa ** / / * Myöhemmin vaihtaa sen makro * / 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 tulos = 1 ;/ * 1 osoittaa, että CAS onnistunut ja 0 osoittaa, että se epäonnistui * / / * Btw tarvitse asettaa CC lippu clobbering! * / __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" / * pitäisi lukita olla samalla rivillä * / "JZ DONE \ n \ t" "Movl 0 dollaria,% 1 \ n \ t" "DONE: \ n \ t" : "= M" (dest), "= g" (tulos) : "G" (oldvalue), "g" (newvalue), "m" (dest) : "% EAX", "% EBX", "ECx", "CC" ); printf ("(% d,% d,% d)", * DEST, oldvalue, newvalue); palata tulos; } / * TODO * Kirjoittaa toisen asm fxn joka asettaa edellä fxn ja while-silmukka ja pitää yrittää jos se onnistuu * / int main () { int = 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)); printf ("% d \ n", CAS (C,,)); printf ("% d \ n", CAS (c, b, b)); * C = 6; / * C = 5; * / printf ("muuttaminen arvo * c% d \ n", * c); printf ("% d \ n", CAS (c, b, b)); printf ("% d \ n", CAS (C, B)); printf ("% d \ n", CAS (C,,)); printf ("% d \ n", CAS (C,, b)); printf ("% d \ n", CAS (C, B)); return 0; }
Muotoilu toteaa - näyttää wp syntaksin korostus on lisätä lopulta sivuuttaa sitä.
GCD
# Includeint syt (int, int b) { int tulos; / * Lasketaan Suurin yhteinen tekijä käyttää Eukleideen algoritmi * / __asm__ __ volatile__ ("movl% 1,%% EAX;" "Movl% 2,%% EBX;" "CONTD: CMPL 0 dollaria,%% EBX;" "Je tehty;" "Xorl%% EDX,%% EDX;" "Idivl%% EBX;" "Movl%% EBX,%% EAX;" "Movl%% EDX,%% EBX;" "JMP CONTD;" "DONE: movl%% EAX,% 0," "= g" (tulos): "g" (), "g" (b) ); palata tulos; } int main () { int ensimmäinen, toinen; printf ("Anna kaksi kokonaislukua:"); scanf ("% d% d", ja ensimmäinen, ja toinen); printf ("GCD% d-% d ovat% d \ n", ensimmäinen, toinen, syt (ensimmäinen, toinen)); return 0; }
Cricketing maailma odottaa UMJ
Kun sarja ulottuu viisi testiä ja noin kaksi kuukautta Englannissa regeneroituina tuhkaa.
Puhutaanpa voittajajoukkue ensimmäinen - niiden keskellä järjestys on "keskimääräinen", jos et halua kriittisiä. Greame Swann osuus kanssa bat laskee peräti panos pallon kanssa. Stuart Broad - paras all monitaituri oli ei Starter viides testi. Andrew Strauss oli ainoa johdonmukainen lyöjä ja Jimmy Anderson oli ainoa johdonmukainen keilaaja.
Kohta täällä ei ole haukkua saavutuksia voittajajoukkue vaan laittaa oikeisiin mittasuhteisiin, että huolimatta kaikista näistä, Australia menetetty. sinun täytyy ajatella muutaman sekunnin, jos pyydetään nimeämään heidän paras keilaaja. Aivan, se oli BW Hilfenhaus. Hauritz päihitti everbody odotukset, mutta ei silti ole tarpeeksi hyvä valitaan kaksi viidestä testeistä. Etelä-Afrikka ei koskaan tullut maailman vispilä ilman maailmanluokan kiekkoa, Australia voi toivoa tulevaisuudessakin yksi ilman sitä kelpaa ainakin yksi. Taikuri lavalta ja se ei näytä kuin taidetta enää unohda taikuutta. Ponting komeilee keskuudessa vähemmän kuolevaisten ja Michael Clarke nousee kovin usein, mutta tekee niistä tiimi joitakin erittäin hyviä pelaajia, eikä kovin hyvä joukkue.
Ashes 2009 muistetaan Andrew Flintoff viimeisen Ashes, Stuart Broadin saapumis kaikki monitaituri (jos hän lisää hieman Ashes kansanperinnettä hänen lupaava alku), ja yksi osuvin debyytti vuosisadalla kaiken aikaa Trott mutta se on myös muistetaan pisteeseen, jossa jossittelua siitä Australian ylivaltaa oli vihdoinkin levätä, se on ohi. Älkää ymmärtäkö minua väärin he voivat silti kaivaa Mike Hussey tai Stuart Clark, mutta sinusta tuntuu osuus kaikkien aikojen suuruuksien kun he katoavat jäljettömiin. Joskus ne tulevat muistuttamaan itseään IPL mutta niitä ei voida korvata. Katsotaan tuntea siunattu nähtyään Warne, McGrath ja Gilchrist leikkivät yhdessä ja saa tukea Waughs, Ponting, Hyden, Martin ja Langer.
Jatkossa Etelä-Afrikka jää aina erittäin hyvä joukkue, mutta heidän täytyy voittaa välieriin ja olla johdonmukaisia ympäri maailmaa, Pakistan pysyy enigmatically loistava, intialainen Young Guns luultavasti löytää se vaikea täyttää kengät poikkeuksellisen edeltäjänsä. Sri Lanka on edelleen näyttää välähdyksiä taiteen veneet. Mutta saatamme joutua odottamaan jonkin aikaa ennen kuin kaikki ulos hallitseva joukkue tai ennen kapteeni valittaa kilpailun puutteesta, sillä Steve Waugh teki kerran.
On liittyvä huomautus - sanotaan tervetuloa palaamassa ja Asif, hänellä on helvetin paljon potentiaalia, toivottavasti nähdä tuon ja myös tervetullut Andy Flower uudessa awatar, oikea et voi pitää hyvää miestä alas pitkään.
ruby yksi vuorausta luoda hash
Eilen taas läpi yhtä vanhoista ohjelmista, löysin tämän kirjoittanut minulle joskus takaisin:
#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
Tappaa joitakin suspense haluan paljastaa, että raw_text näyttää
, Oikea se on leikattu paypal maksun kuittaus.
Ennen linja rikkoutuessaan osissa lukee paremmin:
unescaped_array = CGI.unescape (raw_text). split ('&') unescaped_array = unescaped_array.collect {| x | b = x.split ("="); b.push (nolla) jos b.size == 1, b} flattened_array = unescaped_array.flatten hash = Hash [* flattened_array]
Tehdään yksittäisiä askeleita IRB:
IRB (tärkein): 009:0> unescaped_array = CGI.unescape (raw_text). split ('&') => ["SUCCESS", "mc_gross = 10,00", "protection_eligibility = tukikelpoinen", "payer_id = U7PPJJ4TSJ47E", "vero = 0.00", "payment_date = 09:45:30 10 heinäkuu 2009 PDT", "payment_status = Odottaa "] IRB (tärkein): 013:0> unescaped_array = unescaped_array.map {| x | b = x.split ("="); b.push (nolla) jos b.size == 1, b} => [["SUCCESS", nil], ["mc_gross", "10,00"], ["protection_eligibility", "tukikelpoinen"], ["payer_id", "U7PPJJ4TSJ47E"], ["vero", "0.00"] ["payment_date", "09:45:30 10 heinäkuu 2009 PDT"], ["payment_status", "Odottaa"]] IRB (tärkein): 014:0> flattened_array = unescaped_array.flatten => ["Menestys" nolla "mc_gross", "10,00", "protection_eligibility", "Tukikelvottomat", "payer_id", "U7PPJJ4TSJ47E", "vero", "0,00", "payment_date", "9:45: 30 10 heinäkuu 2009 PDT "," payment_status "," Odottaa "] IRB (tärkein): 015:0> hash = Hash [* flattened_array] => {"Vero" => "0.00", "payment_status" => "Odottaa", "payer_id" => "U7PPJJ4TSJ47E", "mc_gross" => "10,00", "menestys" => nil "payment_date" = > "09:45:30 10 heinäkuu 2009 PDT", "protection_eligibility" => "tukikelpoinen"}
BTW, * kutsutaan läiske operaattori ruby
Toinen tapa luoda hash osoitteesta "joukko pareja" on käyttää pistät:
hash = [[1,2], [3,4]]. pistää ({}) {| tulos, elementti | tulos [element.first] = tulos [element.last]; tulos} On vielä yksi tapa
Kirjoita silmukka, joka Jätän harjoitustehtäväksi lukijat!
Täällä on vähän liity käyttötapaus luoda hash mistä taulukot:
IRB (tärkein): 005:0> [1,2,3,4,7,9]. group_by {| x | x <5? : Vähemmän :: suurempi} => {: Vähemmässä => [1, 2, 3, 4]: suurempi => [7, 9]}
Voit tehdä enemmän asioita, pohjimmiltaan johtuu lohkon käytetään avain että osa tuloksena hash.
gmail, mutt ja msmtp korjaus
Jos käytät mutt ja SMTP käyttää Gmailia. Tässä on (huono) uutinen. Cool guys at Google jälleen muuttunut todistus. Ai, sinä pyysit - miten se tiedä? Yksinkertainen mutt alkoi valittaa huonoa todistusta, kun yritän käyttää msmpt, pahamaineisen "msmtp: TLS varmenteen todentaminen epäonnistui: todistusta ei ole saanut tunnettu liikkeeseenlaskija." tervehti minua ruudulla.
Rajat vahvistaa -
Juokse jälkeen
$ msmtp --serverinfo --host=smtp.gmail.com --tls=on --port=587 --tls-certcheck=off
Sen sijaan vanhojen Thwate Server nyt saat seuraaminen liikkeeseenlaskijan segmentissä
Issuer:
Common Name: Google Internet Authority
Organization: Google Inc
Country: US
Onneksi korjaus on yksinkertainen, täällä on mitä sinun tarvitsee tehdä on debian
# apt-get install ca-certificates
# dpkg -s ca-certificates|grep Version
Version: 20090814
Tämän jälkeen vain muuttaa seuraavan rivin sinä ~~~V /. 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
ja
tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
Git ja Awesome Survey
Tässä on kaksi linkit kyselyssä git (versionhallintajärjestelmä) ja mahtava (window manager) yhteisö. Jos käytät jompaakumpaa näistä, ota pois jonkin aikaa täyttää kyselylomake. Ajattele sitä yksinkertaisin tapa edistää takaisin ohjelmia käytetään.
Tässä linkit:
Git - http://www.survs.com/survey?id=2PIMZGU0&channel=Q0EKJ3NF54
Awesome - http://www.survs.com/survey?id=8BVEV3FO&channel=BH07CQ040D
Huomaa - (Kun löytyy näillä sivuilla, mutta alareunassa
) -
"Jos evästeet ovat käytössä, voit aina jättää osittain täytetty kysely, ja palata vastauksia myöhemmin, täyttämällä sen myöhemmin."
Yhdistäminen tiivisteiden ja yaml conf tiedostojen
YAML on varsin kätevä kirjoittaa asetustiedostoja. Ensisijainen etu on, että se lukee kuin tekstitiedosto. Tämä toimii todella hyvin, jos config tiedosto on tasainen (ei hierarkia) eikä toistoja.
Jos kokoonpanoissa tiedosto on toistoa on järkevää erottaa näitä tekijöitä ja käyttää niitä uudelleen. Tarkoitan siis tämän - sanokaamme sinulle config tiedosto näyttää tältä:
kehitys: input_location: common_input output_location: dev_location mail: smtp_server: oma_palvelimesi login: your_login Salasana: top_secret tuotantoon: input_location: common_input output_location: dev_location mail: smtp_server: oma_palvelimesi login: your_login Salasana: top_secret
Olettaen yli koodi in / tmp / test.yml tässä miten voit lukea Python ja Ruby
$cat readyml.py
#! / Usr / bin / env python mistä pprint tuonti pprint kuin yks # Debianin pitää asentaa python-yaml mistä yaml tuonti kuormitus load_all, dump hash = kuormitus (open ("/ tmp / test.yml ')) pp (hash ['kehitys'])
$ cat readyml.rb
#! / Usr / bin / env ruby vaativat "pp" hash = YAML :: kuormitus (File.open ('/ tmp / test.yml "). luettu) pp hash ["kehitys"]
Tässä on kätevä yhdelle putkelle Ruby version
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]' tai voit kokeilla samaa sisäisten luottoluokitusten menetelmän tai python konsolin.
Huomaa, että edellä koodinpätkä, kaikki on muu kuin lähtö paikka on sama kehityksen ja tuotannon osa. Täällä yml solmu tunniste tulee pelastamaan. Idea on yksinkertainen on joukko oletusarvot ja ohittaa ne eri paikkaan.
Voisit vetää sen lisäksi seuraavasti:
defaults: & oletusarvot input_location: common_input output_location: dev_location mail: SENDER_NAME: lähettäjä smtp_server: oma_palvelimesi login: your_login Salasana: top_secret kehitys: <<: * Oletusarvot tuotantoon: <<: * Oletusarvot output_location: prod_location
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$
Hienoa, se toimii (tm)!.
Todennäköisesti me vaihdettiin joitakin selvyyttä vähän taikuutta. Tässä pieni selitys: &, * ja <<: ja joka on ankkuri tag voidaan ymmärtää solmun tunniste, * on solmu viite ja <<: tarkoittaa hash yhdistämisessä.
Lisätietoja löytyy joko yaml silmälasit tai wikipedia
Hyvä niin, mutta siellä on saalis täällä, nämä hash yhdistämisiä ei ole rekursiivinen. Mitä se tarkoittaa on tämä: Oletetaan, että haluat olla erilaisia lähettäjän nimen postin kahdessa ympäristössä, saatat joutua kiusaukseen tehdä seuraavaa:
defaults: & oletusarvot input_location: common_input output_location: dev_location mail: SENDER_NAME: lähettäjä smtp_server: oma_palvelimesi login: your_login Salasana: top_secret kehitys: <<: * Oletusarvot mail: SENDER_NAME: sender_dev tuotantoon: <<: * Oletusarvot output_location: prod_location mail: SENDER_NAME: sender_prod
Katsotaan
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
nil
$
Oho, jokin meni pieleen, ongelma kuin edellä on mainittu, että hash yhdistäminen ei ole rekursiivinen, ja kun yhdistetään se korvattiin mail laiminlyö postia tuotantoa, joka on vain yksi avain. Ratkaisu / työ ympärillä on kääriä rullalle yksi taso:
common_settings: & common_settings input_location: common_input output_location: dev_location mail_defaults: & mail_defaults SENDER_NAME: lähettäjä smtp_server: oma_palvelimesi login: your_login Salasana: top_secret defaults: & oletusarvot <<: * Common_settings mail: <<: * Mail_defaults kehitys: <<: * Oletusarvot tuotantoon: <<: * Oletusarvot mail: <<: * Mail_defaults SENDER_NAME: sender_prod
Katsotaan uudestaan
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$
Sanoitko sinulla on yksi sisältymistaso, hyvin voit varmasti levittää yksi taso, mutta silloin siitä tulee sotkua. Joten, jos et yritä kirjoittaa ratkaisua Hanoin tornit on conf tiedostoon, on parempi restucture conf tiedostoon kuin kaivaa yaml tai jotain muuta. Mutta se on teidän puhelu muutenkin.
Suuri ohjelmoijat löytää yksinkertaisia ratkaisuja monimutkaisiin ongelmiin
Pitkästä aikaa voisin löytää lähde seuraava lainaus-
Junior ohjelmoijat luoda yksinkertaisia ratkaisuja yksinkertaisiin ongelmiin. Senior ohjelmoijat luoda monimutkaisia ratkaisuja monimutkaisiin ongelmiin. Suuri ohjelmoijat löytää yksinkertaisia ratkaisuja monimutkaisiin ongelmiin.
Juuri essee nimeltään Beautiful Software Charles Connell.
Toinen suosikki yksi minun on Zen of Python -
Kaunis on parempi kuin ruma.
Eksplisiittinen on parempi kuin implisiittisiä.
Yksinkertainen on parempi kuin monimutkainen.
Kompleksi on parempi kuin monimutkainen.
Flat on parempi kuin sisäkkäin.
Harva on parempi kuin tiivis.
Luettavuus laskee.
Erityistapaukset eivät ole erityisiä riitä rikkomaan sääntöjä.
Vaikka käytännöllisyys voittaa puhtautta.
Virheet olisi koskaan kulkea hiljaa.
Ellei erikseen vaiennetaan.
Kun edessä epäselvyys kieltäytyä kiusaus arvata.
Pitäisi olla yksi-, ja edullisesti vain yksi-ilmeinen tapa sen.
Vaikka tämä tapa ei välttämättä ole havaittavissa ensimmäisellä ellet hollanti.
Nyt on parempi kuin koskaan.
Vaikka koskaan on usein parempi kuin * oikealle * nyt.
Jos toteutus on vaikea selittää, se on huono idea.
Jos toteutus on helppo selvittää, se voi olla hyvä.
Nimitilat ovat yksi honking loistava idea - Tehdään enemmän näitä!
-------------------------
ja sitten on klassinen Tao of Programming
-
hyvitysten on sidoksissa sivuston
Käännös Geoffrey James
Jäljentänyt Duke Hillard
Välittämien Anupam Trivedi, Sajitha Tampi ja Meghshyam Jagannath
Re-html-sivustot ja muokata Kragen Sittler
-
Book 1 - Silent Void
Näin puhui päällikkö ohjelmoija:
"Kun olet oppinut nappaamaan virhe koodi ansa runko, se
on aika sinun lähteä. "1,1
Jotain mystistä on muodostunut, syntynyt hiljainen mitätön. Odottaa yksin ja
unmoving, se on heti edelleen ja vielä jatkuvassa liikkeessä. On lähde
kaikista ohjelmista. En tiedä sen nimeä, joten kutsun sitä Tao of
Ohjelmointi.Jos Tao on suuri, niin käyttöjärjestelmä on suuri. Jos toiminta
Järjestelmä on suuri, niin kääntäjä on suuri. Jos kääntäjä on suuri,
niin sovellus on suuri. Käyttäjä on tyytyväinen, ja on olemassa
harmoniaa maailmassa.Tao of Programming virtaa kaukana ja tuoton tuuli aamulla.
1,2
Tao synnytti konekielellä. Koneen kieli synnytti
assembler.Assembler synnytti kääntäjälle. Nyt on kymmenentuhatta
kieliä.Kullakin kielellä on tarkoituksensa, mutta nöyrä. Kukin kieli ilmentää
Yin ja Yang ohjelmistoja. Kullakin kielellä on oma paikkansa Tao.Mutta älä ohjelmoimaan COBOL, jos sen voi välttää.
1,3
Alussa oli Tao. Tao synnytti tilaa ja aikaa.
Siksi Tila ja aika ovat Yin ja Yang ohjelmoinnin.Ohjelmoijat, jotka eivät ymmärrä Tao aina loppumassa aika
ja tilaa niiden ohjelmia. Ohjelmoijat että ymmärtää Tao aina
on riittävästi tilaa ja aikaa toteuttaa tavoitteensa.Miten voisikaan olla toisin?
1,4
Viisas ohjelmoija on kerrottu Tao ja seuraa sitä. Keskimääräinen
ohjelmoija kerrotaan Tao ja etsii sitä. Tyhmät ohjelmoija
on kerrottu Tao ja nauraa sille.Jos se ei naurua, ei olisi Tao.
Korkeimmat äänet ovat vaikeinta kuulla.
Jatkossa on tapa perääntyä.
Suuri lahjakkuus näyttäytyy myöhemmällä iällä.
Myös täydellinen ohjelma on vielä bugeja.-------------------------
Book 2 - Ancient Masters
Näin puhui päällikkö ohjelmoija:
"Kolmen päivän ilman ohjelmointia, elämä muuttuu merkityksettömäksi."
2,1
Ohjelmoijat Vanhojen oli salaperäinen ja syvällinen. Emme pysty käsittämään
heidän ajatuksensa, joten kaikki mitä teemme on kuvata niiden ulkonäköä.Aware, kuten kettu rajan vettä. Varoittaa, kuten yleisesti on
taistelukenttä. Kiva, kuten emäntä tervehti häntä vieraille. Yksinkertainen, kuten
uncarved puu-. Läpinäkymätön, kuten musta altaat hämärässäkin luolissa.Kuka voi kertoa salaisuuksia heidän sydämensä ja mielensä?
Vastaus on olemassa vain Tao.
2,2
Grand Master Turing kerran unta, että hän oli koneella. Kun hän heräsi, hän
huudahti:"En tiedä olenko mistuksen unta, että olen kone, tai
kone unta, että olen mistuksen! "2,3
Ohjelmoijaa erittäin suuri tietokone yhtiö meni ohjelmisto
konferenssiin ja palasi ilmoittamaan hänen managerinsa, sanoen: "Minkälainen
ohjelmoijien työtä muiden yritysten? Ne käyttäytyi huonosti ja oli
välinpitämättömästi ja esiintymisiä. Heidän hiuksensa olivat pitkät ja hoitamattomat ja niiden
vaatteet oli ryppyinen ja vanhoja. Ne romahtivat vieraanvaraisuus suite ja ne
tehdyt töykeä ääniä ollessani esityksen. "Johtaja sanoi: "En olisi koskaan lähettänyt sinut konferenssiin. Ne
ohjelmoijat elävät kuin fyysisessä maailmassa. Ne katsovat elämää järjetön,
tahaton yhteensattuma. He tulevat ja menevät tietämättä rajoituksia.
Ilman hoitoa, he elävät vain niiden ohjelmia. Miksi heidän pitäisi vaivautua
yhteiskunnallisia sopimuksia?"He ovat elossa sisällä Tao."
2,4
Noviisi kysyi Master: "Tässä on ohjelmoija, joka ei koskaan suunnittelee,
asiakirjoja tai testejä hänen ohjelmat. Mutta kaikki, jotka tuntevat hänet pitävät häntä yhtenä
parhaat ohjelmoijat maailman. Miksi näin? "Mestari vastasi: "Se ohjelmoija hallitsee Tao. Hän on mennyt
lisäksi tarvitaan suunnittelua, hän ei suutu kun järjestelmän
kaatuu, mutta hyväksyy maailmankaikkeuden ilman huolta. Hän on ylittänyt
tarve asiakirjoja, hän ei enää välitä, jos joku muu näkee koodia.
Hän on ylittänyt testauksen tarvetta, kullekin hänen ohjelmat ovat täydellisiä
itsessään, rauhallinen ja tyylikäs, niiden tarkoitus itsestäänselvyys. Totisesti,
Hän on tullut mysteeri Tao. "-------------------------
Kirja 3 - Suunnittelu
Näin puhui päällikkö ohjelmoija:
"Kun ohjelma on testattu, se on liian myöhäistä tehdä suunnittelu
muutoksiin. "3,1
Olipa kerran mies, joka meni tietokoneeseen messuilla. Joka päivä kun hän
tuli, mies sanoi vartija ovella:"Olen hyvä varas, tunnettu minun urotekoja myymälävarkauksia. Olla
ennakolta, tämä messuilla pääse pakoon unplundered. "Tämä puhe häiriintynyt vartija suuresti, koska siellä oli miljoonia
dollaria atk-laitteiden sisällä, joten hän katseli miehen huolellisesti. Mutta
mies vain vaelteli kielittäin, hyräillen hiljaa itsekseen.Kun mies lähti, vartija vei hänet syrjään ja tutkivat hänen vaatteensa, mutta
mitään ei löytynyt.Seuraavana päivänä messut, mies palasi ja läksytti vartija
sanoen: "Minä pakeni suuri booty eilen, mutta tänään on vielä
paremmin. "Niin vartija katseli häntä yhä tiiviimmin, mutta turhaan.Viimeisenä päivänä messut, vartija voisi hillitä uteliaisuuttaan
ei enää. "Sir Thief", hän sanoi, "Olen niin hämmentynyt, en voi elää
rauha. Ole hyvä valaista minua. Mikä on se että olet varastaa? "Mies hymyili. "Olen varastaminen ideoita", hän sanoi.
3,2
Olipa kerran mestari ohjelmoija joka kirjoitti jäsentymätön ohjelmia.
noviisi ohjelmoija, etsien matkia häntä, alkoi myös kirjoittaa
jäsentymätön ohjelmia. Kun noviisi pyysi päällikköä arvioida hänen
edistystä, mestari arvosteli tätä kirjoittamista jäsentelemätöntä ohjelmia
sanoen: "Mikä on sopiva isäntä ei sovellu
noviisi. Sinun täytyy ymmärtää Tao ennen ylittävä rakenne. "3,3
Oli kerran ohjelmoija, joka oli kiinnitetty tuomioistuimen sotapäällikkö
Wu. Sotapäällikkö kysyi ohjelmoija: "Kumpi on helpompi suunnitella:
kirjanpitopakettiin tai käyttöjärjestelmä? ""Käyttöjärjestelmä", vastasi ohjelmoija.
Sotapäällikkö lausuttu huudahdus epäuskon. "Varmasti kirjanpito
paketti on triviaalia vieressä monimutkaisuus käyttöjärjestelmän ", hän
sanoi."Ei niin", sanoi ohjelmoija "suunnitellessaan kirjanpito paketti,
ohjelmoija toimii välittäjänä ihmisten välillä, joilla on eri
ideoita: miten on toimittava, miten sen raporteissa on oltava, ja kuinka se on
mukaisia verolainsäädännön. Sen sijaan, käyttöjärjestelmä ei rajoitu
ulkopuolisia esiintymisiä. Suunniteltaessa käyttöjärjestelmä, ohjelmoija
pyrkii yksinkertaisin harmonia koneen ja ideoita. Tämän vuoksi
Käyttöjärjestelmä on helpompaa suunnitella. "Sotapäällikkö Wu nyökkäsi ja hymyili. "Se on kaikki hyvin ja hyvin, mutta
joka on helpompi debugata? "Ohjelmoija ei vastannut.
3,4
Johtaja meni master ohjelmoija ja näytti hänelle vaatimukset
asiakirjan uusi sovellus. Johtaja kysyi päällikkö: "Kuinka kauan
se aikoo suunnitella tätä järjestelmää, jos antaa viisi ohjelmoijia sitä? ""Se kestää vuoden," sanoi Mestari nopeasti.
"Mutta me tarvitsemme tätä järjestelmää heti tai jopa nopeammin! Kuinka kauan se
ottaa jos liittää kymmenen ohjelmoijia sitä? "Mestari ohjelmoija rypisti otsaansa. "Siinä tapauksessa, se kestää kaksi vuotta."
"Entä jos minä antaa sata ohjelmoijia sitä?"
Mestari ohjelmoija kohautti. "Sitten muotoilu koskaan
suoritettu, "hän sanoi.-------------------------
Kirja 4 - Coding
Näin puhui päällikkö ohjelmoija:
"Hyvin kirjoitettu ohjelma on oma taivas, huonosti kirjoitettu ohjelma
oma helvetti. "4,1
Ohjelman tulisi olla kevyt ja ketterä, sen aliohjelmat kytketty kuten
helminauha. Henki ja tarkoitus ohjelmaa olisi säilytettävä
läpi. Ei saa olla liian vähän tai liian paljon, ettei
Sanomattakin silmukat eikä turhia muuttujia, ei ole rakenteen kuin
suuri jäykkyys.Ohjelma tulisi noudattaa jäljempänä laki vähiten hämmästystä ". Mikä on tämä laki?
Se on yksinkertaisesti, että ohjelman tulisi aina vastata käyttäjän tavalla
että hämmästyttää häntä vähiten.Ohjelma, riippumatta siitä, miten monimutkainen, tulisi toimia yhtenä yksikkönä. Ohjelma
tulisi ohjata logiikkaa eikä ulospäin esiintymisiä.Jos ohjelmassa on nämä vaatimukset, sillä tulee olla tila
epäjärjestystä ja sekaannusta. Ainoa tapa korjata tämä on kirjoittaa
ohjelmaa.4,2
Noviisi kysyi päällikkö: "Minulla on ohjelma, joka joskus toimii ja
joskus painallus keskeyttää. Olen seurannut sääntöjä ohjelmoinnin, mutta olen
täysin ymmällään. Mikä on syynä? "Mestari vastasi: "Olet hämmentynyt, sillä et ymmärrä Tao.
Vain typerys odottaa järkevää käyttäytymistä hänen lähimmäisiä. Miksi te
odottaa se kone, ihmiset ovat rakentaneet? Tietokoneet simuloida
determinismi, vain Tao on täydellinen."Säännöt ohjelmointi ovat ohimeneviä, vain Tao on ikuinen. Siksi
sinun täytyy miettiä Tao ennen kuin saat valaistumisen. ""Mutta miten tiedän, kun olen saanut valaistumisen?" Kysyi
noviisi."Teidän ohjelma sitten suorittaa oikein", vastasi mestari.
4,3
Päällikkö selitti luonnetta Tao on yksi hänen aloittelijat. "
Tao on kirjattu kaikki ohjelmat - riippumatta siitä, kuinka merkityksetön ", sanoi
master."Onko Tao on kädessä pidettävä laskin?" Kysyi noviisi.
"On", kuului vastaus.
"Onko Tao on videopeli?" Jatkoi noviisi.
"Se on jopa videopeli", sanoi päällikkö.
"Ja on Tao on DOS ja tietokoneella?"
Master yski ja siirsi kanta hieman. "Oppitunti on ohi
tänään ", hän sanoi.4,4
Prince Wangin ohjelmoija oli koodaus ohjelmisto. Hänen sormensa tanssivat heti
näppäimistö. Ohjelma on käännetty ilman virheilmoitusta, ja ohjelma
juoksi kuin lempeä tuuli."Excellent!" Prince huudahti, "Sinun tekniikka on virheetön!"
"Tekniikka?" Sanoi ohjelmoija kääntää hänen terminaalista "Mitä minä
noudattaa on Tao - arvaamattomaan tekniikat! Kun aloitin ohjelmoinnin I
näkisi edessäni koko ongelma yhden massan. Kolmen vuoden kuluttua en mitään
enää nähnyt tätä massaa. Sen sijaan käytin aliohjelmia. Mutta nyt en näe mitään.
Minun koko olento olemassa muodoton mitätön. Omat aistit ovat lepotilassa. Oma henki-
vapaasti työskennellä ilman suunnitelmaa, seuraa omaa vaistoa. Lyhyesti sanottuna, minun ohjelma
kirjoittaa itse. Totta, joskus on vaikeita ongelmia. Näen heidät
tulossa, en hidastaa, katson hiljaa. Sitten vaihtaa riviäkään koodia
ja ongelmat katoavat kuin haikuja tyhjäkäynnillä savua. Sitten koota
ohjelmaa. Istun hiljaa ja anna ilon työstä täyttää olemukseeni. Suljen
silmäni hetkeksi ja sitten kirjautua ulos. "Prince Wang sanoi: "Haluaisitko, että kaikki omat ohjelmoijat olivat viisas!"
-------------------------
Kirja 5 - Huolto
Näin puhui päällikkö ohjelmoija:
"Vaikka ohjelman olla, mutta kolme riviä, joskus sen on oltava
yllä. "5,1
Hyvin käytetty ovi ei tarvitse öljyä sen saranat.
Nopeasti virtaava virta ei kasva pysähtynyt.
Ei ääntä eikä ajatuksia voi kulkea tyhjiössä.
Ohjelmisto mätänee jos ei käytetä.Nämä ovat suuria mysteereitä.
5,2
Johtaja kysyi ohjelmoija kuinka kauan kestäisi hänet loppuun
ohjelma jossa hän työskenteli. "Se on valmis huomenna"
ohjelmoija heti vastasi."Luulen, ollaan epärealistinen", sanoi johtaja, "totuudenmukaisesti, miten
kauan se kestää? "Ohjelmoija mietti hetken. "Minulla on joitakin ominaisuuksia, joita haluan
lisää. Tämä kestää vähintään kaksi viikkoa ", hän sanoi lopulta."Sekin on liikaa odottaa", painotti johtaja, "Minä olen
tyytyväisiä, jos vain tietää, milloin ohjelma on valmis. "Ohjelmoija suostui tähän.
Useita vuosia myöhemmin, johtaja jäi eläkkeelle. Matkalla eläkkeelle
lounas, hän löysi ohjelmoija nukkuu hänen terminaaliin. Hän oli ollut
ohjelmoinnin koko yön.5,3
Noviisi ohjelmoija oli kerran määrätty koodata yksinkertaisen rahoituspaketti.
Noviisi työskenteli kuumeisesti monta päivää, mutta kun hänen isäntänsä uudelleen
hänen ohjelmaansa, hän huomasi, että se sisälsi näytön editori, joukko
yleistynyt grafiikka rutiinit, tekoäly rajapinta, mutta
ei pienintäkään mainintaa mitään taloudellisia.Kun isäntä kysyi tästä, noviisi tuli närkästynyt. "Älä
niin kärsimätön ", hän sanoi," laitan rahoitusmarkkinoiden kamaa lopulta. "5,4
Onko hyvä maanviljelijä laiminlyö sadon hän on istuttanut?
Onko hyvä opettaja jättää jopa kaikkein nöyrä opiskelija?
Onko hyvä isä antaa yksi lapsi nälkään?
Onko hyvä ohjelmoija kieltäytyä ylläpitää hänen koodia?-------------------------
Kirja 6 - Management
Näin puhui päällikkö ohjelmoija:
"Olkoon ohjelmoijat ovat monet ja johtajat muutamat - silloin kaikki on
tuottavampia. "6,1
Kun johtajat pitää loputtomia kokouksia, ohjelmoijat kirjoittavat peleistä. Milloin
kirjanpitäjät puhua neljännesvuosittain voittojen kehitys budjetti ollaan
leikata. Kun vanhempi tutkijat puhuvat sininen taivas, pilvet ovat noin roll
sisäänTodellakin, se ei ole Taon Ohjelmoinnin.
Kun johtoa tekemään sitoumuksia, peli-ohitetaan. Milloin
kirjanpitäjät tehdä pitkän tähtäimen suunnitelmia, harmonia ja jotta ollaan
palautettu. Kun vanhempi tutkijat ongelmiin käsillä,
ongelmia pian ratkaistu.Totisesti, tämä on Tao of Programming.
6,2
Miksi ohjelmoijat ei-tuotannollisten?
Koska heidän aikaa hukkaan kokouksissa.Miksi ohjelmoijat kapinallinen?
Koska johto häiritsee liikaa.Miksi ohjelmoijat eroava yksi kerrallaan?
Koska ne ovat palaneet.Ottaa työskenteli huono hallinto, ne eivät enää arvoa työssään.
6,3
Johtaja oli juuri potkut, vaan ohjelmoija joka työskenteli hänen
keksi uusi ohjelma, joka tuli suosittu ja myi hyvin. Tämän seurauksena,
johtaja säilyttää työnsä.Johtaja yritti antaa ohjelmoija bonus, mutta ohjelmoija
hylkäsi sen ja sanoi: "Minä kirjoitin ohjelmaa, koska luulin että se oli
mielenkiintoinen käsite, joten en odota mitään palkintoa. "Johtaja kuullessaan tämän huomautti, "Tämä ohjelmoija, vaikka hänellä
asema pienten arvostusta, ymmärtää hyvin oikea velvollisuus
työntekijä. Olkaamme ylentää korkeassa asemassa johdon
konsultti! "Mutta kun kertoi tämän, ohjelmoija kerran kieltäytyi sanoen: "Minä on olemassa niin
että voin ohjelmoida. Jos ylennettiin, tekisin vain jätteiden
kaikkien aikaa. Voinko mennä nyt? Minulla on ohjelma, teen työtä. "6,4
Johtaja meni ohjelmoijille ja sanoi heille: "Mitä työhösi
h: olet menossa on tulla yhdeksältä aamulla ja jättää
viideltä iltapäivällä. "Tässä, kaikki heistä suuttui ja useita
erosi paikan päällä.Joten johtaja sanoi: "No, siinä tapauksessa voi asettaa oman
työajasta, kunhan lopetat projektit pysyvät aikataulussa. "
ohjelmoijia, nyt tyytyväisiä, alkoi tulla keskipäivällä ja työtä wee
aamuun.-------------------------
Book 7 - Corporate Wisdom
Näin puhui päällikkö ohjelmoija:
"Voit osoittaa ohjelman johtoryhmän, mutta et voi
hänet tietokonetaitoinen. "7,1
Noviisi kysyi päällikkö: "Idässä on suuri puu-rakenne
että ihmiset kutsuvat `Yrityksen pääkonttori". Se on paisunut ulos muodon
varapuheenjohtajat ja kirjanpitäjät. Se antaa lukuisia muistioita, kukin
sanoen `Go, siis!" tai 'Mene, tänne! " eikä kukaan tiedä mitä. Kaikki
Vuoden uudet nimet laittaa päälle oksia, mutta kaikki turhaan. Miten
niin luonnoton kokonaisuus on? "Mestari vastasi: "Et näe tätä suunnatonta rakennetta ja ovat
häiriintynyt, että sillä ei ole järkevää tarkoitukseen. Voitko ota huvi alkaen
sen loputon kaarteet? Ettekö nauti pääosin selkeänä helppo ohjelmointi
alta suojelee oksat? Miksi vaivautunut sen
hyödyttömyys? "7,2
Idässä on hai, joka on suurempi kuin kaikki muut kalaa. Se
muuttuu lintu, jonka siivet ovat kuin pilvet täyttämällä taivaalla. Kun tämä
lintu liikkuu maalla, se tuo viestin Corporate
Päämajassa. Tämä viesti se putoaa keskelle ohjelmoijia,
kuin lokki tekee sen merkin päälle rannalla. Sitten lintu kiinnikkeet
tuuli ja, sininen taivas sen takaisin, palaa kotiin.Noviisi ohjelmoija tuijottaa ihmeissään lintua, sillä hän ymmärtää sen
ei ole. Keskimääräinen ohjelmoija rastat tulemisesta lintu, sillä hän pelkää
sen sanomaa. Mestari ohjelmoija toimii edelleen hänen terminaali-ja
Hän ei tiedä, että lintu on tullut ja mennyt.7,3
Magician of Ivory Tower toi hänen uusin keksintö
master ohjelmoija tarkastella. Taikuri pyörillä suuri musta laatikko
päällikön toimistossa kun isäntä odotti hiljaa."Tämä on integroitu, hajautettu, yleiskäyttöinen työasema," alkoi
taikuri "ergonomisesti suunniteltu oma käyttöjärjestelmä
järjestelmä, kuudennen sukupolven kieliä, ja useita huippuluokan käyttäjän
rajapinnat. Kesti avustajani satoja miestyövuotta rakentamiseen.
Eikö ole ihmeellistä? "Mestari kohotti kulmakarvoja hieman. "On todella hämmästyttävää", hän
sanoi."Pääkonttori on käskenyt," jatkoi taikuri, että "
jokainen käyttää työasemaa alustana uusille ohjelmille. Oletko samaa mieltä
tähän? ""Varmasti", vastasi isäntä, "minä ole sitä kuljetetaan
datakeskuksen heti! "Ja taikuri palasi torniin, hyvin
tyytyväinen.Useita päiviä myöhemmin noviisi harhaili toimiston päällikkö
ohjelmoija ja sanoi: "En löydä listalle minun uuteen ohjelmaan. Do
tiedät, missä se voisi olla? ""Kyllä", vastasi isäntä, "listat pinotaan alustalle
datakeskuksen. "7,4
Mestari ohjelmoija siirtyy ohjelmasta toiseen ilman pelkoa. Ei
muutos johto voi vahingoittaa häntä. Hän ei niissä voidaan käyttää, vaikka
hanke peruuntuu. Miksi näin? Hän on täynnä Tao.-------------------------
Kirja 8 - Laitteistot ja ohjelmistot
Näin puhui päällikkö ohjelmoija:
"Ilman tuuli, ruoho ei liiku. Ilman ohjelmisto-, laitteisto on
hyödytön. "8,1
Noviisi kysyi päällikkö: "Ymmärrän, että yksi tietokone menee paljon
suurempi kuin kaikki muut. Se kohoaa yli sen kilpailu kuin jättiläinen keskuudessa
kääpiöt. Jos yksi sen liiketoimintayksiköistä voisi kuulua koko liiketoiminnan. Miksi ei
niin? "Mestari vastasi: "Miksi kysyt niin tyhmiä kysymyksiä? Kyseinen yritys
on suuri, koska se on suuri. Jos se vain teki laitteisto, kukaan ei osta
sen. Jos se vain tehnyt ohjelmistot, kukaan ei käytä sitä. Jos se jatkaa vain
järjestelmät, ihmiset kohtelisi sitä kuin palvelija. Mutta, koska se yhdistää kaikki
näistä asioista, ihmiset ajattelevat, että yksi jumalista! Kun pyri
pyrimme, se voittaa ilman työtä. "8,2
Päällikkö ohjelmoija läpäissyt noviisi ohjelmoija yhden päivän. Mestari totesi
avustettavan huolissaan kannettavalla tietokonepeli. "Anteeksi"
hän sanoi, "voinko tutkia sitä?"Noviisi pultattu huomiota ja ojensi laitteen master. "Minä
Katso, että laite väittää kolme tasoa pelata: Easy, Medium ja
Hard ", sanoi päällikkö. "Mutta jokainen tällainen laite on toinen taso
leikkiä, jossa laite tarkoituksena ei ole valloittaa ihmisen, eikä valloitettavista
jonka ihmisen "."Pray, suuri mestari," rukoili noviisi, "miten voidaan löytää tämän
salaperäinen asetukset? "Mestari laski laitteen maahan ja murskasi sen jalkoihin. Ja
yhtäkkiä noviisi valaistui.8,3
Oli kerran ohjelmoija joka työskenteli kun mikroprosessori. "Katsokaa kuinka
varakas olen täällä ", hän sanoi keskuskone ohjelmoija, joka tuli käymään,
"Minulla on oma käyttöjärjestelmä ja tiedostojen tallennuslaite. En tarvitse
Jakaako resursseja kenellekään. Ohjelmisto on erillisen ja
helppo käyttää. Miksi ette lopeta nykyinen työ ja liittymään minut tänne? "Mainframe ohjelmoija sitten alkoi kuvata hänen järjestelmänsä hänen ystävänsä,
sanonta "mainframe istuu kuin muinaisen tietäjän mietiskellen keskellä
ja datakeskuksen. Sen kiintolevyt valehdella end-to-end kuin suuri valtameri
koneita. Ohjelma on niin monipuolinen kuin timantti, ja poimuiset
koska aarnio viidakko. Ohjelmat, uniikkeja, siirtyä järjestelmään
kuin nopeasti virtaava joki. Siksi olen onnellinen kun olen. "Mikrotietokone ohjelmoija, kuullessaan tämän vaikeni. Mutta kaksi
ohjelmoijat pysyi kanssa loppuun niiden päivää.8,4
Laitteisto tapasi Software tiellä Changtse. Ohjelmistot sanoi: "Olet
Yin ja olen Yang. Jos kuljemme yhdessä meistä tulee kuuluisa ja tienaa
valtavia summia rahaa. "Ja niin määrätyt tehtävät yhdessä ajattelun vallata
maailman.Tällä hetkellä he tapasivat Firmware, joka oli pukeutunut repaleinen rättejä ja hobbled
pitkin rekennettiin on hankala kiinni. Firmware sanoi heille: "Tao sijaitsee
kuin Yin ja Yang. Se on hiljaa, kuten altaaseen vettä. Se
pyri fame, siksi kukaan ei tiedä sen läsnäoloa. Se ei etsi
onni, sillä se on täydellinen itsessään. Se on olemassa lisäksi tilaa ja
ajan. "Ohjelmistot ja laitteet, häpeää, palasivat koteihinsa.
-------------------------
Kirja 9 - Epilogi
Näin puhui päällikkö ohjelmoija:
"On aika sinun lähteä."
-------------------------
Jos pidit näistä, voit ehkä myös lukea huonompi on parempi
Hieman kuoren uudelleenohjaus
Tässä on, miten yleensä tee kuori uudelleenohjaus
$ ./pgm.sh args >out.txt 2>err.txt
Halusin muokata sitä hieman ja ajaa seuraava
$ ./pgm.sh args
vaatimusta, ettei tuotantoon ja virhe olisi mennä jonkin tiedoston laskettu sisälle pgm.sh perustuu args. Yksi valaiseva tapaus voisi olla, kun päivä on osa args. Joten haluaisit stdout mennä sanoa / oma / hakemisto / pgm_out_YYYYMMDD.txt 1
Ongelma tavallinen suunnata N>file.txt eli yhdistämällä tiedosto avainsana N tiedosto.txt, että se toimii vain uusien haarainen prosessia eikä nykyinen prosessi.
niin
$ echo hi 1>out.txt ; echo hii lähettää terveisiä out.txt mutta tulostaa hii vakiotulosteeseen. 2
Tässä on exec tulee meidän pelastus. Jos lisäämme exec 1>somefile.txt tulostetaan sitten muusta kirjoitus menee somefile.txt
$. / Test.sh ohjaa hi sekä hii ja out.txt
$ cat test.sh
#!/usr/bin/env bash
exec 1>out.txt
echo hi
echo hii
Samoin voidaan ohjata stdout ja stderr teemme jotain tällaista
cat test2.sh
exec 1>out.txt
exec 2>err.txt
echo out text
echo 1>&2 err text
somenoneexitent command
ls -ld /tmp
Nyt tulossa takaisin alkuperäiseen kohtaan suunnata jossain tiedoston sisällä kuoren, sanotaan ohjelmassa lasketaan tiedostonimen joissakin muuttujan OUTFILE, olisimme voineet vain tehdä exec 1>$OUTFILE
Se ratkaisee nykyisen ongelman. Mutta ehkä haluat käydä läpi seuraava esimerkki, jolla saavutetaan "random access" tiedoston kuorelliset script. Esimerkki on kotoisin täältä
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
Selityksiä, koodi ei ole itsestään selvä.
-
1 Se voi myös tehdä $ ./pgm.sh args >pgm_out`date +%Y%m%d` , mutta idea on luoda tiedoston nimen perusteella logiikkansa itse ohjelmaan.
2 1 1> out.txt on turha, mutta se selventää, että me suuntaavat fd 1
Sony VAIO arvostelu
Kuukausi sitten ostin VAIO NS25G ja ovat suunnitelleet kirjoittaa tähän viestiin jälkeen. Tämä viesti on lähinnä muistiinpanoja itsensä ja uudelleen saman. Mennään pois merkki nopeasti -
Viesti on kaksi osaa -
I. Katsaus laitteisto
II. Debianin asentamisessa asioita setup
Koska en ole VAIO markkinointi kaveri, aloitan toisinpäin -
Miksi et ehkä halua ostaa kannettava tietokone:
- Ei Bluetooth: uskokaa minua, vuonna 2009 Sony myy kannettava ilman bluetooth. Toki voit käyttää usb-kamaa, mutta ...
- Näytön koko on 15,4 tuumaa: jos matkustaa paljon niin tämä kannettava tietokone voi olla erittäin kätevä ja 2,9 kg kannettava tietokone ei ole aivan kevyin ympärillä.
- Ei HDMI-ulostulo.
- Ei erillistä näytönohjain ja tykkää. (Eikä erillinen näyttömuisti
Nyt, miksi ehkä haluat ostaa:
- Tämä kannettava tietokone on pirun hyvä työpöydälle. Tarkoitan siis tämä, jos vaatimus on kuin minä - lähinnä kirjoittaminen ohjelmat ja yritin käyttää sitä 25 ulos 24 h, sitten iso näyttö, erittäin mukava näppäimistöasettelu tilavat kämmentuki ja hyvää laskentatehoa, se tekee erittäin hyvän yhdistelmää.
- Se L2 välimuisti on 2MB ja prosessorin / muistin järjestelmä bussi on 800MHz. En pelaa pelejä niin ei voi sanoa, että ilman muuta, mutta Core 2 Duo-prosessori 2 GHz taajuusalue on hyvä, tämä on enemmän kuin tarpeeksi.
- Omasta käytöstä, näen prosessori enimmäkseen kellot at 1.2GHz, ja muistin käyttö ~~~V 500MB. Tämä vain vahvistaa edellisessä kohdassa.
- Vara-akku on hyvä, n. 2 tuntia on mitä saan.
Vain yksi asia tässä - on Sony, se maksaa hieman kuin muut kannettavat tietokoneet samantapaista asetustiedostoa, mutta se on puhelu u on tehtävä.
II. Konfigurointi linux (loppuu box!):
Se tuli valmiiksi asennettu Vista (luulen Home Premium tai joidenkin fancy nimi noin). Dungara käynnistetään välittömästi ja luodaan toinen osio 150 Gt. Debian Testing minä aina asentaa ja sitten ylös (alas?) Arvosanan "epävakaan" sid.
Asiat, jotka työskentelivät ilman mitään ongelmia:
- X - yllättävää X-palvelin ei ollut ongelma alkaa tai tarkkuus. Kun yksi päivitykset X kieltäytyi alkaa kuitenkin, mutta X-configure "luotu conf tiedostoa, joka sujui varsin hyvin.
- Audio - Audio ulostulo ja ulkoinen mikrofoni toimivat hyvin. ytimen versiota 2.6.29-1-686 # 1 SMP ja alsa version 1.0.17. Tämä on mitä saat siitä
$ lspci -v |grep Audio 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Con1.0.17troller (rev 03) - Video cam - vain toimii
- Lepotila levylle ja takaisin - ei ongelmaa
- Wireless - lyhyesti sanottuna - juuri toimii.
$ lspci |grep -i wireless
03:13:55 04:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01) .
Uskon ydin 2.6 .. 27 alkaen se toimii varastosta ydin. Sinun ei tarvitse asentaa ndiswrapper tai asioita, kuten t
hattu. Kuten huomata, tarkentakaa hyvä ostaa gnome-network-manager ja tervetuloa wicd, se on vain GUI kerros, mutta Kulissien takana he ovat kiinteä paljon config kamaa kuin wpasupplient ja enemmän.
Mikä ei toimi -
- Jotenkin sisäinen mikrofoni ei suostu toimimaan
Ulkoinen mikrofoni toimii hyvin kuitenkin. Uusin alsa lähteitä ei kerätä siististi Debianiin, joten toistaiseksi ostin ulkoisen sisäinen mikrofoni, yrittää kaivaa se joskus tulevaisuudessa kuitenkin.
Muutama misc vihjeitä deiban:
- Paketti devnagri font-ttf-intialaisten-fonts
- Paketti flash player - flashplugin-nonfree
- Entry in sources.list mplayer ja tykkää - deb http://www.debian-multimedia.org sid main
- Entry in sources.list e17 - deb http://debian.alphagemini.org/~~V epävakaa tärkein
- Entry in sources.list skype - http://download.skype.com/linux/repos/debian/ vakaa non-free
oneliner lisätä ja vähentää kirkkautta -
[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
sinun täytyy laittaa tämä sudo kuitenkin.
ja vähentää muutokseen + ja - ja ... saat ajatus, eikö!
Hieman enemmän, jos käytät valaistuminen (e17), tässä on muutama lisää vinkkejä -
[Valaistuminen näppäin bindidings]
Voit käyttää seuraavia avainkoodin ja kartoitus
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"
volyymin lasku:
KEY="Keycode-174" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2-"
volyymin lisäys:
KEY="Keycode-176" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2+"
kirkkauden lisääminen:
KEY="Keycode-212" ACTION="exec" PARAMS="sudo /root/bin/incbrightness.sh"
kirkkauden vähentäminen
KEY="Keycode-101" ACTION="exec" PARAMS="sudo /root/bin/decbrightness.sh"



































