sondaggio, ping, PubSub, pubsubhub, pubsubhubbub
Nel caso siate scettici, c'è un metodo nella follia sopra, nel titolo del post. Nei circoli tecnologia è improbabile che non avete sentito parlare di pubsubhubbub. In veloci pochi mesi, è stato uno dei primi tre parlato di cose. Altri due essendo la crittografia omomorfica e Google wave [ 1. ]. Tornando al post corrente - termini del titolo indicano come si ottiene il contenuto da altre persone. Seguenti dettagli diventano più chiare, se si immagina cose che accadono per quanto riguarda i blog, anche se non sono concettualmente limitato a blog.
Polling si riferisce allo scenario dove i clienti continuano a chiedere al server se qualcosa di nuovo è venuto in su. Quante volte a chiedere la disponibilità di aggiornamenti sarà sempre un problema con polling troppo frequenti o troppo poco frequenti, ma come un lettore ha sottolineato qui che una grande cosa con polling è che il server non ha bisogno di mantenere lo stato.
Ping si riferisce al caso in cui in cui pubblicare un articolo, è (o il vostro software) aggiorna anche alcuni popolari (centrale), servizi di aggiornamento. Alcuni retroscena qui .
Poi c'è PubSub che sta per publish / subscribe, uno dei primi passo per esso è stata fatta qui da Evan Henshaw-Plath e Kellan Elliott-McCrea (72 slides, ma la pena di andare attraverso). Esempio convincente hanno dato contro era questa - in una data particolare, Friendfeed strisciato Flickr 2,9 milioni di volte per ottenere le ultime foto di 45,754 utenti, di cui 6721 aveva visitato Flickr in quelle 24 ore e potrebbe essere 'potenzialmente' ha caricato una foto. Si noti che ciò che hanno proposto non era una nuova tecnologia, come fanno notare 'nuova e rivoluzionaria tecnologia vecchia 20 anni'. Se lo fate per i blog poi uno dei problemi principali con xmpp - la presenza in testa i dati, che può raggiungere il 60-70% può essere ridotto di molto.
pubsubhub sta per pubblicare hub subscribe pubsubhubbub ed è un protocollo, cui centro è un'idea di pubsubhub. Editori in cui (dicono i blogger) di aggiornare il mozzo che (può essere più di un hub, che parlano tra di loro) risiede 'da qualche parte nella nuvola', secondo il protocollo può essere spingere o tirare come da protocollo, ma il link successivo nel catena, hub al cliente (ad esempio lettori) è sempre spingere modello. Questa pagina è una buona base di partenza per pubsubhubbub, diapositive Panoramica sono buone. Sempre eloquente Anil Dash lo descrive qui come pulsante web.
Due letture collegate siano altri webhooks che sono fondamentalmente callback http. Github utilizza esso, fa paypal per le notifiche asincrone di pagamento in IPN . Lo stesso vale per molti altri. Concetto correlato è rsscloud che è di nuovo hub PubSub. Segui questo link per i dettagli.
Ci si potrebbe chiedere qual è il punto di scrivere tutte queste cose qui, ci sono due 1. Queste cose sono la pena di conoscere, almeno in minima parte e 2. Questo blog è abilitato pubsubhubbub ora tramite hub appspot utilizzando questa wordpress plug-in e dei mangimi è troppo pubsubhubbub abilitato tramite FeedBurner, link qui
-
[ 1 ]. - Buona lettura introduttiva per la crittografia completa omomorfica è questo articolo di Bruce Schneier e questo discorso è più o meno unica fonte per Google Wave.
-UPDATE - Questo messaggio spiega come l'esigenza di server pubblico per la richiamata può essere lavorato in giro per i client desktop utilizzando il gateway XMPP (per pubsubhubbub).
Un po 'di assemblaggio
Dopo aver letto questo articolo su buffer Lock Free e vedere l'uso del CAS (confrontare e scambiare), mi sentivo come la pubblicazione del codice assembly a fare lo stesso. Utilizzare caso su quello che c'era da scrivere un metodo nativo e chiamare da Java (back in 1.5, quando concomitanti strutture dati in Java erano più o meno inesistente). Senza ulteriori indugi, farò scatenare il codice su di te
. Il primo è per il CAS e la seconda è per il calcolo MCD utilizzando l'algoritmo di Euclide (questo può essere trovato in molti luoghi e tutorial e).
Compilare ed eseguire le istruzioni gcc file_name.c ; ./a.out
Confronta e Swap
# Include# Include / / Exchange - newvalue, comperand è vecchio / valore atteso / * * Funzione realmente fa la seguente cosa - se il valore a * dest è pari a OldValue poi sostituirlo con altro newvalue lasciarlo invariato: non tutti questi atomicamente * * Ci sono due opzioni per il valore di ritorno * Valore iniziale di 1.is * dest e lasciare l'onere della FXN chiama a confronto con oldval * 2. farlo qui e restituire 0 o 1, questo dovrebbe essere più efficiente ** / / * Successivamente modificare in macro * / cas int (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 risultato = 1 ;/ * 1 mostra che cas succeduti e 0 mostra di non aver * / / * Btw necessario impostare cc per la bandiera sovrascrivere! * / __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" / * deve bloccare essere sulla stessa linea * / "Jz FATTO \ n \ t" "Movl $ 0,% 1 \ n \ t" "DONE: \ n \ t" : "= M" (dest), "= g" (risultato) : "G" (OldValue), "g" (newvalue), "m" (dest) : "% Eax", "% ebx", "ECX", "cc" ); printf ("(% d,% d,% d)", * dest, OldValue, newvalue); return risultato; } / * TODO * Scrivere un altro FXN asm che mette al di sopra FXN in un ciclo while e continuare a provare meno che non riesca * / 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 ("valore di cambio di c * a% 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; }
Note Formattazione - sembra evidenziatore wp sintassi è l'aggiunta di alla fine, ignorarlo.
GCD
# Includeint gcd (int a, int b) { int risultato; / * Calcola Massimo Comun utilizzando l'algoritmo di Euclide * / __asm__ volatile__ __ ("movl% 1,%% eax;" "Movl% 2,%% ebx;" "Contd: cMpl $ 0,%% ebx;" "Je FATTO;" "Xorl%% edx,%% edx;" "Idivl%% ebx;" "Movl% ebx%,%% eax;" "Movl%% edx,% ebx%;" "Jmp cont;" "DONE: movl%% eax,% 0;": "= g" (risultato): "g" (a), "g" (b) ); return risultato; } int main () { int primo, secondo; printf ("Inserire due interi:"); scanf ("% d% d", & primo, & secondo); printf ("MCD di d &%% d è% d \ n", primo, secondo, gcd (primo, secondo)); return 0; }
Cricket mondiale attende un Nuovo Ordine Mondiale
Dopo una serie che copre cinque prove e circa due mesi, frassini Inghilterra bonificate.
Parliamo della squadra vincitrice prima - il loro ordine centrale è 'medio' se non si vuole critico. Contributo Greame Swann con la mazza conterà non meno di contributo con la palla. Stuart Broad - best all rounder di avviamento non era per il test 5. Andrew Strauss era l'unico battitore coerente e Jimmy Anderson è stato l'unico bowler coerente.
Qui non si tratta di rimproverare i risultati della squadra vincente, ma di mettere in prospettiva il fatto che, nonostante tutti questi, l'Australia ha perso. dovrete pensare per pochi secondi, se richiesto di nominare loro meglio bowler. Giusto, era BW Hilfenhaus. Hauritz everbody superato le aspettative, ma non era comunque sufficiente per essere selezionati per due delle cinque prove. Sud Africa non è mai diventato un battitore mondo senza un filatore di classe mondiale, l'Australia non può sperare di rimanere senza uno uno uno abbastanza buono almeno. Magician ha lasciato il palco e non sembra più come l'arte, dimenticare la magia. Ponting si erge tra i mortali e Michael Clarke si alza molto spesso, ma che li rende una squadra con alcuni giocatori molto buona e non una squadra molto buona.
Ashes 2009 sarà ricordato per Ashes ultimi Andrew Flintoff, l'arrivo Stuart Broad come per tutte le stagioni (se si aggiunge ancora un po 'folklore Ashes to il suo inizio promettente), e uno del secolo debutto più significativo di tutti i tempi Trott, ma sarà anche ricordato come il punto in cui se e senza ma circa la supremazia in Australia sono stati infine messi a riposo, è finita. Non fraintendetemi possono ancora scoprire Mike Hussey o Stuart Clark, ma si sente il contributo di tutti i grandi del tempo quando vanno a mancare. A volte vengono a ricordare a se stessi in IPL, ma ancora non può essere sostituito. Facciamo sento benedetto per aver visto Warne, McGrath e Gilchrist giocare insieme e di essere supportato da Waughs, Ponting, Hyden, e Martin Langer.
Andando avanti, il Sud Africa rimarrà sempre una squadra molto buona, ma hanno bisogno di vincere semifinali ed essere più coerente in tutto il mondo, il Pakistan rimane enigmaticamente brillante, indiani pistole giovani probabilmente è difficile riempire le scarpe di straordinari predecessori. Sri Lanka dovrebbe continuare a mostrare scorci d'arte in mestiere. Ma, potremmo dover attendere per qualche tempo prima di avere un team tutto fuori dominante o prima di un capitano si lamenta della mancanza di concorrenza, come Steve Waugh faceva una volta.
In una nota correlata - diamo il benvenuto al ritorno di Asif, ha un sacco inferno del potenziale, speriamo di vedere un po 'di questo e anche il benvenuto Flower Andy nel awatar nuovo, proprio non si riesce a mantenere gli uomini buoni verso il basso per molto tempo.
ruby uno rivestimenti per creare hash
Ieri, mentre sta attraversando uno dei miei vecchi programmi, ho trovato questo scritto da me qualche tempo fa:
#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
Per uccidere un po 'di suspense lasciatemi rivelare che raw_text assomiglia
, A destra è stata tagliata dal riconoscimento di pagamento paypal.
Sopra la linea in caso di rottura in più parti si legge:
unescaped_array = CGI.unescape (raw_text). split ('&') unescaped_array unescaped_array.collect = {| x | b = x.split ("="); b.push (zero) se b.size == 1; b} flattened_array = unescaped_array.flatten hash = Hash [* flattened_array]
Facciamo singole fasi IRB:
irb (main):. 009:0> unescaped_array = CGI.unescape (raw_text) split ('&') => ["SUCCESS", "mc_gross = 10,00" "protection_eligibility = non ammissibile",, "payer_id U7PPJJ4TSJ47E =" "tassa = 0.00",, "payment_date = 09:45:30 10 Luglio 2009 PDT", "In attesa di payment_status = "] irb (main): 013:0> unescaped_array unescaped_array.map = {| x | b = x.split ("="); b.push (zero) se b.size == 1; b} => [["SUCCESSO", nil], ["mc_gross", "10.00"], ["protection_eligibility", "non ammissibile"], ["payer_id", "U7PPJJ4TSJ47E"], ["tassa", "0.00"] , ["payment_date", "09:45:30 10 luglio 2009 PDT"], ["payment_status", "In attesa"]] irb (main): 014:0> flattened_array = unescaped_array.flatten => ["SUCCESSO", nil, "mc_gross", "10.00", "protection_eligibility", "non ammissibili", "payer_id", "U7PPJJ4TSJ47E", "fiscale", "0.00", "payment_date", "09:45: 30 10 luglio 2009 PDT "," payment_status "," In attesa "] irb (main): 015:0> hash = Hash [* flattened_array] => {"Fiscale" => "0.00", "payment_status" => "attesa", "payer_id" => "U7PPJJ4TSJ47E", "mc_gross" => "10.00", "SUCCESSO" => nil, "payment_date" = > "09:45:30 10 Lug 2009 PDT", "protection_eligibility" => "non ammissibili"}
BTW, * viene chiamato operatore splat in Ruby
Un altro modo per creare hash da 'array di coppie' è quello di utilizzare iniettare:
hash = [[1,2], [3,4]] iniettare ({}). {| risultato, elemento | result [element.first] = result [element.last]; risultato} C'è un modo più
Scrivere un ciclo, che lascio come esercizio ai lettori!
Ecco un caso po utilizzo indipendente di creare hash di array:
irb (main): 005:0> [1,2,3,4,7,9] group_by {| x | x <5.? : Minore, maggiore ::} => {: Minore => [1, 2, 3, 4],: maggiore => [7, 9]}
È possibile fare più cose, fondamentalmente frutto del blocco viene utilizzato come chiave per tale elemento nel hash risultante.
gmail, mutt e msmtp fix
Se si utilizza mutt e smtp per accedere a Gmail. Ecco una (brutta) notizia. Raffreddare i ragazzi di Google cambia nuovamente certificato. Oh, hai chiesto - come lo conosci? Mutt Simple iniziarono a lamentarsi certificato non valido quando si tenta di utilizzare msmpt, infame 'msmtp: verifica dei certificati TLS fallito:. Il certificato non ha una nota emittente' mi salutò sullo schermo.
Per attraversare confermare -
Basta eseguire a seguito di
$ msmtp --serverinfo --host=smtp.gmail.com --tls=on --port=587 --tls-certcheck=off
Al posto della vecchia Server Thwate ora si ottiene in seguito nel segmento dell'emittente
Issuer:
Common Name: Google Internet Authority
Organization: Google Inc
Country: US
Fortunatamente soluzione è semplice, ecco cosa dovete fare su debian
# apt-get install ca-certificates
# dpkg -s ca-certificates|grep Version
Version: 20090814
Dopo questo basta cambiare la seguente riga in voi ~~~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
a
tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
Git e Survey Impressionante
Qui ci sono due link per il rilievo di git (sistema di controllo di versione) e straordinaria (window manager) della comunità. Se si utilizza uno di questi, si prega di prendere qualche tempo per compilare il questionario. Pensate a come il modo più semplice per contribuire al software in uso.
Ecco i link:
Git - http://www.survs.com/survey?id=2PIMZGU0&channel=Q0EKJ3NF54
Impressionante - http://www.survs.com/survey?id=8BVEV3FO&channel=BH07CQ040D
Nota - (come trovato in quelle pagine, ma in fondo
) -
"Se hai attivato i cookie, potete sempre inviare sondaggio parzialmente riempita, e tornare alle vostre risposte in un momento successivo, completando in seguito."
Unione di hash in conf YAML
YAML è abbastanza comoda per la scrittura di file di configurazione. Vantaggio principale è che, si legge come file di testo. Questo funziona molto bene se il vostro file di configurazione è flat (senza gerarchia) e non ha ripetizioni.
Se il file di configurazione ha ripetizioni allora ha senso per separare gli elementi e riutilizzarli. Quello che voglio dire è questo - diciamo che il file di configurazione simile a questa:
sviluppo: input_location: common_input output_location: dev_location mail: smtp_server: Your_Server Login: login_personale password: top_secret produzione: input_location: common_input output_location: dev_location mail: smtp_server: Your_Server Login: login_personale password: top_secret
Supponendo sopra il codice in / tmp / test.yml: ecco come si può leggere in Python e Ruby
$cat readyml.py
#! / Usr / bin / env python dal pprint import pprint come pp # In debian è necessario installare python-YAML da YAML carico importazione, load_all, discarica hash = carico (open ('/ tmp / test.yml')) pp (hash ['sviluppo'])
$ cat readyml.rb
#! / Usr / bin / env ruby require 'pp' hash = YAML :: load (File.open ('/ tmp / test.yml'). leggere) pp hash ['sviluppo']
ecco un pratico uno di linea per la versione ruby
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]' o si può provare lo stesso in irb o console python.
Si noti che nel frammento di codice di cui sopra, tutto è diverso percorso di output è lo stesso in fase di sviluppo e parte della produzione. Questo è dove identificatore di nodo yml viene in soccorso. Idea è semplice avere un insieme di valori predefiniti e li modifichi in luogo diverso.
Si può scomporre come segue:
default: default e input_location: common_input output_location: dev_location mail: SENDER_NAME: mittente smtp_server: Your_Server Login: login_personale password: top_secret sviluppo: <<: * Le impostazioni predefinite produzione: <<: * Le impostazioni predefinite output_location: prod_location
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$
Grande, funziona (tm)!.
Probabilmente abbiamo scambiato po 'di chiarezza per un po' di magia. Ecco una piccola spiegazione: &, * e <<: e che è tag di ancoraggio può essere inteso come identificatore di nodo, * è il nodo di riferimento e <<: sta per unione hash.
Per maggiori dettagli vedere sia le specifiche YAML o wikipedia
Fin qui tutto bene ma c'è un fermo qui, queste si fonde hash non sono ricorsivi. Che cosa significa è questo: diciamo che si desidera avere altro nome del mittente per la posta in due ambienti, si può essere tentati di fare quanto segue:
default: default e input_location: common_input output_location: dev_location mail: SENDER_NAME: mittente smtp_server: Your_Server Login: login_personale password: top_secret sviluppo: <<: * Le impostazioni predefinite mail: SENDER_NAME: sender_dev produzione: <<: * Le impostazioni predefinite output_location: prod_location mail: SENDER_NAME: sender_prod
Consente di controllare
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
nil
$
Oops, qualcosa è andato storto, il problema di come si è detto è che l'unione hash non è ricorsiva e, mentre la fusione ha sostituito posta elettronica di default per posta di produzione che ha una sola chiave. Soluzione / lavoro intorno è quello di svolgere un livello di più:
common_settings: & common_settings input_location: common_input output_location: dev_location mail_defaults: & mail_defaults SENDER_NAME: mittente smtp_server: Your_Server Login: login_personale password: top_secret default: default e <<: * Le common_settings mail: <<: * Le mail_defaults sviluppo: <<: * Le impostazioni predefinite produzione: <<: * Le impostazioni predefinite mail: <<: * Le mail_defaults SENDER_NAME: sender_prod
Consente di controllare di nuovo
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$
Hai detto di avere un altro livello di nidificazione, e si può sicuramente svolgere un livello di più, ma poi diventa un casino. Quindi, se non si tenta di scrivere la soluzione alle torri di Hanoi in un file di configurazione, è meglio restucture file di configurazione che scavare in yaml o qualcos'altro. Ma questa è la chiamata comunque.
Grandi programmatori trovare soluzioni semplici a problemi complessi
Dopo molto tempo sono riuscito a trovare la fonte per le seguenti quote-
Programmatori junior creare soluzioni semplici a problemi semplici. Programmatori senior creare soluzioni complesse a problemi complessi. Grandi programmatori trovare soluzioni semplici a problemi complessi.
E 'da un saggio chiamato Software Bella da Charles Connell.
Un altro dei miei preferiti è The Zen of Python -
Bella è meglio di brutto.
Explicit è meglio di implicito.
Semplice è meglio che complesso.
Complex è meglio di complicato.
Flat è meglio che nidificate.
Sparse è meglio di denso.
Leggibilità conta.
Casi particolari non sono abbastanza speciale per rompere le regole.
Anche se la praticità batte purezza.
Errori non dovrebbe mai passare sotto silenzio.
A meno esplicitamente a tacere.
A fronte di ambiguità, rifiutare la tentazione di indovinare.
Ci dovrebbe essere una sola e, preferibilmente, solo un evidente modo per farlo.
Anche se in questo modo può non essere ovvio in un primo momento a meno che non sei olandese.
Ora è meglio che mai.
Anche se non è spesso meglio che * proprio * ora.
Se l'applicazione è difficile da spiegare, è una cattiva idea.
Se l'applicazione è facile da spiegare, può essere una buona idea.
I namespace sono uno clacson grande idea - facciamo di più di quelli!
-------------------------
e poi c'è classico Tao della Programmazione
-
crediti come il collegato sito di
Tradotto da Geoffrey James
Trascritto da Duke Hillard
Trasmesso da Anupam Trivedi, Sajitha Tampi e Meghshyam Jagannath
Re-html-ized e curato da Kragen Sittler
-
Book 1 - The Void silenzioso
Così parlò il programmatore master:
"Quando hai imparato a strappare il codice di errore dal telaio trappola,
sarà il momento per voi di lasciare. "1,1
Qualcosa di misterioso è formata, nato nel vuoto silenzioso. Attesa solo e
immobile, che è al tempo stesso ancora e ancora in costante movimento. È la sorgente
di tutti i programmi. Non so il suo nome, quindi mi chiamano il Tao di
Programmazione.Se il Tao è grande, allora il sistema operativo è grande. Se il sistema operativo
sistema è grande, allora il compilatore è grande. Se il compilatore è grande,
quindi l'applicazione è grande. L'utente è contento e non esiste
armonia nel mondo.Il Tao della programmazione scorre lontano e ritorna al vento del mattino.
1,2
Il Tao ha dato alla luce al linguaggio macchina. Linguaggio macchina ha dato vita al
assembler.L'assembler ha dato alla luce al compilatore. Ora ci sono 10 mila
lingue.Ogni lingua ha il suo scopo, per quanto umile. Ogni lingua esprime la
Yin e Yang del software. Ogni lingua ha il suo posto all'interno del Tao.Ma non programmare in COBOL se si può evitare.
1,3
In principio era il Tao. Il Tao ha dato alla luce Spazio e Tempo.
Pertanto Spazio e tempo sono Yin e Yang di programmazione.I programmatori che non capiscono il Tao sono sempre a corto di tempo
e lo spazio per i loro programmi. I programmatori che comprendere il sempre Tao
avere abbastanza tempo e spazio per raggiungere i loro obiettivi.Come potrebbe essere altrimenti?
1,4
Il programmatore saggio è raccontata Tao e lo segue. La media
programmatore è parlato di Tao e ricerche per esso. Il programmatore folle
è raccontata Tao e ne ride.Se non fosse per ridere, non ci sarebbe Tao.
Le più alte suoni sono più difficili da ascoltare.
Andare avanti è un modo per ritirarsi.
Grande talento si manifesta in età avanzata.
Anche un programma perfetto ha ancora bug.-------------------------
Book 2 - Gli Antichi Maestri
Così parlò il programmatore master:
"Dopo tre giorni senza bisogno di programmazione, la vita diventa priva di significato."
2,1
I programmatori di un tempo erano misterioso e profondo. Non possiamo capire
i loro pensieri, così tutto ciò che facciamo è descrivono il loro aspetto.Aware, come una volpe che attraversa l'acqua. Alert, come un generale sul
campo di battaglia. Kind, come una padrona di casa saluta i suoi ospiti. Semplice, come
blocchi di legno scolpito. Opaco, come pozze nere in grotte buie.Chi può raccontare i segreti dei loro cuori e le menti?
La risposta esiste solo in Tao.
2,2
Grand Master Turing, una volta sognò di essere una macchina. Quando si svegliò
esclamò:"Non so se sto sognando Turing che io sono una macchina, o un
macchina che sto sognando Turing! "2,3
Un programmatore di computer di una società molto grande è andato a un software
conferenza e poi tornò a riferire al suo manager, dicendo: "Che tipo
di programmatori lavorano per altre aziende? Si sono comportati male e sono stati
indifferente con le apparenze. I loro capelli erano lunghi e trasandato e la loro
abiti erano rugosa e vecchia. Si è schiantato la nostra suite ospitalità e
fatto rumori volgari durante la mia presentazione. "Il direttore ha detto: "non avrei mai inviato alla conferenza. Quelli
programmatori vivono al di là del mondo fisico. Essi considerano la vita assurda, uno
coincidenza accidentale. Vanno e vengono senza conoscere limiti.
Senza una cura, vivono solo per i loro programmi. Perché dovrebbero preoccuparsi
con le convenzioni sociali?"Sono vivi all'interno del Tao."
2,4
Un novizio chiese al Maestro: "Ecco un programmatore che non progetta,
documenti o prove i suoi programmi. Ma tutti quelli che lo conoscono lo considerano uno dei
i migliori programmatori del mondo. Perché è questo? "Il Maestro risponde: "che il programmatore ha imparato il Tao. Egli è andato
al di là della necessità per la progettazione, egli non si arrabbia quando il sistema
si blocca, ma accetta l'universo senza preoccupazione. Lui è andato al di là del
necessità di documentazione, egli non è più se ne frega se qualcun altro vede il suo codice.
È andato al di là della necessità di test, ciascuno dei suoi programmi sono perfetti
dentro di sé, serena ed elegante, il loro scopo evidente. In verità,
è entrato nel mistero di Tao. "-------------------------
Book 3 - Design
Così parlò il programmatore master:
"Quando il programma viene testato, è troppo tardi per apportare modifiche al design
modifiche ".3,1
C'era una volta un uomo che è andato a una fiera computer. Ogni giorno, mentre
è entrato, l'uomo ha detto la guardia alla porta:"Sono un ladro grande, rinomato per le mie gesta di taccheggio. Essere
avvertiti, per questa fiera non scamperanno inviolata ".Questo discorso disturbato notevolmente la guardia, perché ci sono milioni di
all'interno di dollari di attrezzature informatiche, per cui l'uomo ha guardato con attenzione. Ma
l'uomo vagava da solo stand per stand, canticchiando tranquillamente a se stesso.Quando l'uomo a sinistra, la guardia lo prese in disparte e cercò i suoi vestiti, ma
non si trovava.Il giorno successivo della fiera, l'uomo tornò e rimproverò la guardia
dicendo: "Sono scappato con un bottino enorme ieri, ma oggi sarà ancora
meglio. "Così la guardia lo guardò sempre più stretto, ma inutilmente.L'ultimo giorno della fiera, la guardia poté frenare la sua curiosità
non più. "Thief Sir," disse, "Sono così perplesso, non posso vivere in
pace. Per favore mi illumini. Che cosa si sta rubando? "L'uomo sorrise. "Sono rubare le idee", ha detto.
3,2
C'era una volta un maestro programmatore che ha scritto programmi non strutturati. A
programmatore alle prime armi, cercando di imitarlo, anche cominciato a scrivere
programmi strutturati. Quando il novizio chiese al maestro di valutare la sua
il progresso, il maestro lo ha criticato per scrivere programmi non strutturati,
dicendo: "Che cosa è appropriato per il master non è appropriato per la
novizio. È necessario comprendere il Tao prima di trascendere la struttura. "3,3
C'era una volta un programmatore che è stato assegnato alla corte del signore della guerra
di Wu. Il signore della guerra ha chiesto al programmatore: "Quale è più facile da progettare: un
contabilità pacchetto o un sistema operativo? ""Un sistema operativo", rispose il programmatore.
Il signore della guerra emise una esclamazione di incredulità. "Sicuramente uno di contabilità
pacchetto è banale accanto alla complessità di un sistema operativo, "ha
ha detto."Non così," ha detto il programmatore, "quando si progetta un pacchetto di contabilità,
il programmatore funziona come un mediatore tra le persone che hanno diversi
idee: come si deve operare, come i suoi rapporti deve apparire, e come si deve
conformi alle leggi fiscali. Al contrario, un sistema operativo non è limitata
dalle apparenze esterne. Nel progettare un sistema operativo, il programmatore
cerca la semplice armonia tra macchina e idee. Questo è perché un
sistema operativo è più facile da progettare. "Il signore della guerra di Wu annuì e sorrise. "Questo è tutto il bene e bene, ma
che è più facile eseguire il debug? "Il programmatore non rispose.
3,4
Un manager è andato al programmatore maestro e gli mostrò i requisiti
documento per una nuova applicazione. Il gestore ha chiesto al maestro: "Quanto tempo
ci vorrà per progettare questo sistema, se posso assegnare cinque programmatori ad esso? ""Ci vorrà un anno", disse il maestro prontamente.
"Ma abbiamo bisogno di questo sistema immediatamente o anche prima! Quanto tempo ci
prendere se mi assegnano dieci programmatori ad esso? "Il programmatore maestro aggrottò la fronte. "In questo caso, ci vorranno due anni".
"E se posso assegnare un centinaio di programmatori ad esso?"
Il programmatore maestro scrollò le spalle. "Allora il progetto non sarà mai
completata ", ha detto.-------------------------
Book 4 - Codifica
Così parlò il programmatore master:
"Un programma ben scritto è il suo cielo proprio; un programma mal scritto è
il suo inferno. "4,1
Un programma deve essere leggera e agile, i suoi sottoprogrammi collegati come un
collana di perle. Lo spirito e gli intenti del programma dovrebbe essere mantenuto
tutto. Ci dovrebbe essere né troppo o troppo poco, né
cicli inutili né variabili inutili, né la mancanza di struttura né
rigidità schiacciante.Un programma dovrebbe seguire la `legge del minimo stupore '. Che cos'è questa legge?
È semplicemente che il programma dovrebbe sempre reagire per l'utente in modo
che lo stupisce meno.Un programma, non importa quanto complessa, dovrebbe agire come una singola unità. Il programma
dovrebbe essere diretta dalla logica all'interno piuttosto che dalle apparenze esteriori.Se il programma non in questi requisiti, sarà in uno stato di
disordine e confusione. L'unico modo per correggere questo è quello di riscrivere la
programma.4,2
Un novizio chiese al maestro: "Ho un programma che gira a volte e
interrompe a volte. Ho seguito le regole di programmazione, eppure sono
totalmente sconcertato. Qual è la ragione per questo? "Il maestro rispose: "Voi siete confusi perché non si capisce Tao.
Solo un pazzo si aspetta un comportamento razionale dai suoi simili. Perché lo fai
aspettiamo che da una macchina che gli esseri umani hanno costruito? Computer simulare
determinismo, solo Tao è perfetto."Le regole della programmazione sono transitori, solo Tao è eterno. Quindi
è necessario contemplare Tao prima di ricevere l'illuminazione. ""Ma come faccio a sapere quando ho ricevuto l'illuminazione?" Ha chiesto alla
novizio."Il vostro programma verrà eseguito correttamente," rispose il maestro.
4,3
Un maestro stava spiegando la natura del Tao di uno dei suoi novizi. "The
Tao si incarna in tutti i programmi - indipendentemente da come insignificante ", ha detto
il maestro."Il Tao in mano calcolatrice?" Chiese il novizio.
"E '," fu la risposta.
"Il Tao in un videogioco?", Ha continuato il novizio.
"E 'anche in un videogioco," disse il maestro.
"Ed è il Tao in DOS per un personal computer?"
Il maestro tossì e spostò la sua posizione leggermente. "La lezione è finita
per oggi, "ha detto.4,4
Programmatore principe Wang è stato di codifica software. Le sue dita danzavano sulla
tastiera. Il programma compilato senza un messaggio di errore, e il programma
correva come un vento leggero."Excellent!" Esclamò il Principe, "La tua tecnica è impeccabile!"
"Tecnica", disse il programmatore svolta dal suo terminale, "Quello che ho
seguire è Tao - al di là di tutte le tecniche! Quando ho iniziato a programmare I
avrebbe visto davanti a me tutto il problema in una massa. Dopo tre anni non ho
più visto questa massa. Invece, ho usato subroutine. Ma ora non vedo niente.
Tutto il mio essere esiste in un vuoto senza forma. I miei sensi sono inattivi. Il mio spirito,
libero di lavorare senza piano, segue il proprio istinto. In breve, il mio programma
scrive stessa. È vero, a volte ci sono problemi difficili. Li vedo
arrivando, rallento, guardo in silenzio. Poi ho modificare una sola riga di codice
e le difficoltà svaniscono come sbuffi di fumo inattivo. Ho quindi compilare il
programma. Mi siedo ancora e lasciare che la gioia del lavoro riempire il mio essere. Chiudo la mia
occhi per un attimo e poi si disconnette. "Il principe Wang ha detto: "Vorrei che tutti i miei programmatori sono stati così saggia!"
-------------------------
Book 5 - Manutenzione
Così parlò il programmatore master:
"Anche se un programma sia, ma tre righe, un giorno che dovrà essere
mantenuto. "5,1
A ben usato porta non ha bisogno di olio sui cardini.
Una rapida scorrevole flusso non cresce stagnante.
Né suono né pensieri possono viaggiare attraverso il vuoto.
Software marcisce se non utilizzato.Questi sono grandi misteri.
5,2
Un manager ha chiesto un programmatore quanto tempo avrebbe impiegato per terminare la
programma sul quale stava lavorando. "Sarà finito domani," la
programmatore rispose prontamente."Credo che si sia irrealistico", ha detto il manager, "In verità, come
tempo ci vorrà? "Il programmatore pensò per un momento. "Ho alcune caratteristiche che vorrei
aggiungere. Questo richiederà almeno due settimane, "disse infine."Anche questo è troppo aspettarsi", ha insistito il manager, "Io sarò
soddisfatto se semplicemente dirmi quando il programma è terminato ".Il programmatore ha accettato di questo.
Diversi anni dopo, il manager in pensione. Sulla strada per il suo ritiro
pranzo, ha scoperto il programmatore addormentato al suo terminale. Era
la programmazione per tutta la notte.5,3
Un programmatore alle prime armi era una volta assegnato a codificare un semplice pacchetto finanziario.
Il novizio ha lavorato furiosamente per molti giorni, ma quando il suo padrone recensione
il suo programma, ha scoperto che conteneva un editor a schermo, una serie di
generalizzata routine grafica, un'interfaccia intelligenza artificiale, ma
Non il minimo accenno di qualcosa finanziaria.Quando il maestro ha chiesto su questo, il novizio si indignò. "Non essere
così impazienti ", ha detto:" Io metterò la roba finanziaria alla fine. "5,4
Esiste un buon agricoltore trascurare una coltura che ha piantato?
Esiste un buon insegnante si affacciano anche lo studente più umile?
Esiste un buon padre consentire a un solo bambino a morire di fame?
Esiste un buon programmatore si rifiutano di mantenere il suo codice?-------------------------
Book 6 - Gestione
Così parlò il programmatore master:
"Lasciate che i programmatori essere molti e pochi i manager - poi tutto sarà
produttivo ".6,1
Quando i manager tenere riunioni interminabili, i programmatori a scrivere giochi. Quando
commercialisti parlano di profitti trimestrali, il bilancio per lo sviluppo è in procinto di
da tagliare. Quando gli scienziati parlano di alto cielo azzurro, le nuvole sono in procinto di rotolare
polliciIn verità, questo non è il Tao della programmazione.
Quando i manager impegni, i programmi di gioco vengono ignorati. Quando
ragionieri fare piani a lungo termine, l'armonia e l'ordine sono in procinto di essere
restaurato. Quando gli scienziati di alto livello affrontare i problemi a portata di mano, il
problemi sarà presto risolto.In verità, questo è il Tao della programmazione.
6,2
Perché i programmatori non-produttivo?
Perché la loro è tempo sprecato nelle riunioni.Perché i programmatori ribelli?
Poiché la gestione interferisce troppo.Perché i programmatori le dimissioni uno per uno?
Perché sono bruciati.Dopo aver lavorato per la cattiva gestione, non hanno più valore il loro lavoro.
6,3
Un manager stava per essere licenziato, ma un programmatore che ha lavorato per lui
inventato un nuovo programma che è diventato popolare e venduto bene. Come risultato, la
responsabile conservato il suo impiego.Il direttore ha cercato di dare al programmatore un bonus, ma il programmatore
ha rifiutato, dicendo, "Ho scritto il programma perché ho pensato che fosse uno
concetto interessante, e quindi mi aspetto alcuna ricompensa. "Il gestore dopo aver sentito questa osservò: "Questo programmatore, anche se tiene
una posizione di stima piccola, capisce bene il dovere di una corretta
dipendente. Facciamo lo promuovono la posizione esaltata di gestione
consulente! "Ma quando ha detto questo, il programmatore ancora una volta rifiutato, dicendo: "io esisto in modo
che posso programmare. Se mi sono stati promossi, farei altro che rifiuti
tempo di tutti. Posso andare adesso? Ho un programma che sto lavorando. "6,4
Un manager è andato ai suoi programmatori e disse loro: "Per quanto riguarda il tuo lavoro
ore: si sta andando ad avere per entrare a nove del mattino e lasciare
alle cinque del pomeriggio. "A questo, tutti si arrabbiò e diversi
dimesso sul posto.Così il direttore ha detto: "Va bene, in questo caso si può impostare il proprio
orario di lavoro, fino a quando hai finito i vostri progetti nei tempi previsti. "Il
programmatori, ora soddisfatto, cominciò a venire a mezzogiorno e lavorare per il wee
ore del mattino.-------------------------
Book 7 - Sapienza Corporate
Così parlò il programmatore master:
"Si può dimostrare un programma per un dirigente aziendale, ma non è possibile
fargli letterato computer. "7,1
Un novizio chiese al maestro: "Ad est c'è una grande struttura ad albero
che gli uomini chiamano `la sede centrale '. E 'gonfio di forma con
vice presidenti e contabili. Si rilascia una moltitudine di note, ognuna delle quali
dicendo: `Va ', dunque!' o `Va ', qua!' e nessuno sa cosa si intende. Ogni
anno nuovi nomi vengono messe sui rami, ma tutto inutilmente. Come può
tale entità innaturale essere? "Il maestro rispose: "Tu percepire questa immensa struttura e sono
disturbata che non ha scopo razionale. Non puoi prendere dal divertimento
le sue infinite giravolte? Non ti piace la facilità di programmazione serena
sotto i suoi rami che ospitano? Perché sei preoccupato per la sua
inutilità? "7,2
Ad est c'è un squalo, che è più grande di tutti gli altri pesci. Essa
si trasforma in un uccello le cui ali sono come nuvole che riempivano il cielo. Quando questo
uccello si muove in tutto il paese, porta un messaggio di Corporate
Sede. Questo messaggio cade nel mezzo dei programmatori,
come un gabbiano fa il suo marchio sulla spiaggia. Allora l'uccello montato sul
vento e, con il cielo azzurro alle spalle, torna a casa.Gli sguardi programmatore alle prime armi con meraviglia l'uccello, perché capisce
Non. Il programmatore medio teme l'arrivo degli uccelli, perché teme
il suo messaggio. Il programmatore master continua a lavorare al suo terminale, per
non sa che l'uccello è venuto e andato.7,3
Il Mago della Torre d'Avorio ha portato la sua ultima invenzione per il
maestro programmatore di esaminare. Il mago ruote una grande scatola nera in
del maestro ufficio, mentre il maestro aspettava in silenzio."Si tratta di un sistema integrato, distribuito, general-purpose workstation", ha esordito
il mago ", dal design ergonomico con un sistema operativo proprietario
sistema, lingue sesta generazione, e lo stato multiplo dell'utente dell'arte
interfacce. Ci sono voluti i miei assistenti diverse centinaia di anni-uomo per costruire.
Non è incredibile? "Il maestro alzò le sopracciglia leggermente. "E 'davvero sorprendente", ha
ha detto."Corporate Headquarters ha comandato", ha continuato il mago ", che
tutti di utilizzare questa workstation come piattaforma per i nuovi programmi. Lei è d'accordo
a questo? ""Certo", rispose il maestro, "Io lo hanno trasportato al
data center immediatamente! "E il mago tornò alla sua torre, ben
contento.Alcuni giorni dopo, un novizio vagato nell'ufficio del maestro
programmatore e ha detto: "Non riesco a trovare l'elenco per il mio nuovo programma. Fare
sapete dove potrebbe essere? ""Sì", rispose il maestro, "le liste sono impilati sulla piattaforma in
il data center. "7,4
Il programmatore Master si sposta da un programma all'altro senza paura. No
cambiamento di gestione può fargli del male. Egli non viene azionato, anche se l'
progetto viene annullato. Perché questo? Egli è pieno di Tao.-------------------------
Libro 8 - Hardware e Software
Così parlò il programmatore master:
"Senza il vento, l'erba non si muove. Senza software, hardware
inutile. "8,1
Un novizio chiese al maestro: "Mi accorgo che una società di computer è molto più
più grande di tutti gli altri. Essa domina la sua gara come un gigante tra i
nani. Ognuna delle sue divisioni potrebbe comprendere un intero business. Perché è
così? "Il maestro rispose: "Perché hai domande così stupide? Tale società
è grande perché è grande. Se fatto solo hardware, nessuno avrebbe comprato
esso. Se fatto solo software, nessuno userebbe. Se solo mantenuto
sistemi, la gente lo trattano come una serva. Ma perché unisce tutti i
di queste cose, la gente pensa che uno degli dei! Per non cercare di
sforzano, conquista senza sforzo. "8,2
Un programmatore maestro passò un programmatore alle prime armi un giorno. Il master notato
del novizio preoccupazione con un hand-held computer. "Mi scusi",
ha detto, "posso esaminarlo?"Il novizio imbullonata attenzione e consegnato il dispositivo al master. "I
vedere che il dispositivo sostiene di avere tre livelli di gioco: facile, medio e
Difficile, "disse il maestro. "Eppure ogni dispositivo tale, ha un altro livello di
gioco, in cui il dispositivo non cerca di conquistare l'uomo, né da conquistare
dal umano. ""Pregate, grande maestro," implorò il novizio ", come si fa a trovare questa
impostazione misteriosa? "Il maestro lasciò cadere il dispositivo a terra e schiacciato sotto i piedi. E
improvvisamente il novizio fu illuminato.8,3
C'era una volta un programmatore che ha lavorato su microprocessori. "Guarda come
benestante io sono qui ", ha detto ad un programmatore mainframe che è venuto a visitare,
"Ho il mio sistema operativo e dispositivo di archiviazione file. Non c'è bisogno di
condividere le mie risorse con nessuno. Il software è auto-consistente e
facile da usare. Perché non lasciare il tuo attuale lavoro e unirsi a me qui? "Il programmatore mainframe poi ha iniziato a descrivere il suo sistema al suo amico,
dicendo: "Il mainframe si siede come un antico saggio meditare in mezzo
del centro dati. I suoi dischi si trovano end-to-end come un grande oceano di
macchinari. Il software è sfaccettato come un diamante, e come contorta
come una giungla primordiale. I programmi, ciascuna unica, si muovono attraverso il sistema
come un fiume che scorre veloce. Ecco perché sono felice dove mi trovo. "Il programmatore microcomputer, dopo aver sentito questo, tacque. Ma i due
i programmatori rimasti amici fino alla fine dei loro giorni.8,4
Hardware Software ha incontrato sulla strada per Changtse. Software ha detto: "Tu sei
Yin e sono Yang. Se viaggiamo insieme faremo diventare famoso e guadagnare
ingenti somme di denaro. "e quindi il stabiliti insieme, pensando di conquistare
il mondo.Attualmente hanno incontrato Firmware, che era vestito di stracci e zoppicando
lungo appoggiato su un bastone spinoso. Firmware disse loro: "Il Tao si trova
al di là di Yin e Yang. E 'silenzioso e immobile come una pozza d'acqua. Lo fa
non cercano la fama, quindi nessuno sa la sua presenza. Non cerca
fortuna, perché è completo in se stesso. Esiste al di là dello spazio e
tempo ".Software e Hardware, vergogna, tornarono alle loro case.
-------------------------
Book 9 - Epilogo
Così parlò il programmatore master:
"E 'tempo per voi di lasciare."
-------------------------
Se ti è piaciuto questo, si può anche leggere come peggio è meglio
Un po 'di redirezione della shell
Ecco come si fa normalmente redirezione della shell
$ ./pgm.sh args >out.txt 2>err.txt
Volevo modificarlo un po 'ed eseguire la seguente
$ ./pgm.sh args
con il requisito che la produzione e l'errore dovrebbe andare in qualche file all'interno pgm.sh calcolato sulla base di argomenti. Un caso esemplare potrebbe essere data quando si è parte di argomenti. Così si desidera stdout andare a dire / your / directory / pgm_out_YYYYMMDD.txt 1
Il problema con il modo standard di reindirizzare N>file.txt cioè, che associa il descrittore di file N a file.txt, è che funziona solo per il processo di nuova forcella e non per il processo corrente.
così
$ echo hi 1>out.txt ; echo hii . invierà ciao a out.txt ma stamperà hii stdout 2
Questo è dove exec viene in nostro soccorso. Se aggiungiamo exec 1>somefile.txt poi uscita dal resto dello script andrà a somefile.txt
$. / Test.sh reindirizzerà hi così come hii a out.txt
$ cat test.sh
#!/usr/bin/env bash
exec 1>out.txt
echo hi
echo hii
Allo stesso modo per reindirizzare stdout e stderr faremo qualcosa di simile
cat test2.sh
exec 1>out.txt
exec 2>err.txt
echo out text
echo 1>&2 err text
somenoneexitent command
ls -ld /tmp
Ora tornando al punto di partenza di riorientare a qualche file dall'interno del guscio, diciamo il nome del file del programma calcolata in qualche OUTFILE variabile, avremmo potuto appena fatto exec 1>$OUTFILE
Che risolve il problema attuale. Ma come si può passare attraverso il seguente esempio che raggiunge 'accesso casuale' di file in script di shell. Esempio è da qui
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
Con i commenti, questo codice si spiega da sé.
-
1 Può anche essere fatto da $ ./pgm.sh args >pgm_out`date +%Y%m%d` ma l'idea è quella di generare il nome del file in base a una logica in programma stesso.
2 1 1> out.txt è ridondante, ma chiarisce qui che si stanno riorientando fd 1
Sony VAIO recensione
Un mese fa ho comprato un vaio NS25G e sono state progettando di scrivere questo post da allora. Questo post è principalmente note per sé e la revisione dello stesso. Facciamo scendere il marchio rapidamente -
Messaggio ha due parti -
I. Rassegna di hardware
II. Installazione di Debian e le cose da configurare
Dal momento che non sono un ragazzo di marketing VAIO, mi metto in senso opposto -
Perché non hanno la possibilità di acquistare questo portatile:
- No bluetooth: mi creda, nel 2009 Sony vende computer portatile senza bluetooth. Certo si può usare roba usb, ma ...
- Dimensione dello schermo è 15,4 pollici: se si viaggia molto allora questo portatile potrebbe non essere molto pratico e portatile 2,9 kg non è esattamente il più leggero in giro.
- Nessuna uscita HDMI.
- Nessuna scheda grafica separata e simili. (E non di memoria video dedicata
Ora, perché come si può acquistarlo:
- Questo computer portatile è un desktop dannatamente buono. Quello che voglio dire è questo se il requisito è come me - per lo più la scrittura di programmi e cercando di usarlo 25 su 24 ore, poi con un grande schermo, tastiera estremamente confortevole con palm rest spazioso e una buona potenza di calcolo, lo rende un ottimo combinazione.
- La cache L2 è di 2MB e un processore / sistema di bus di memoria a 800MHz sono. Io non giocare quindi non posso dire al riguardo, ma per altri scopi, ma un processore Core 2 duo 2GHz con freq è buono, questo è più che sufficiente.
- Dal mio utilizzo, io vedo soprattutto orologi processore a 1.2GHz, e della memoria ~~~V 500MB. Che rafforza solo punto precedente.
- Batteria di backup è buono, ~ 2 ore è quello che ottengo.
Solo una cosa più qui - essendo Sony, vi costerà un po 'di altri portatili con configurazione simile, ma questo è un appello u devono fare.
II. Configurazione di linux (a corto di scatola!):
E 'venuto pre installato con Vista (Home Premium credo o qualche nome di fantasia di simile). Dungara una volta avviato e ha creato un'altra partizione di 150 GB. Debian testing è quello che ho sempre installare e poi in alto (verso il basso?) Di grado a 'unstable' sid.
Cose che hanno lavorato senza alcun problema:
- X - X server non sorprende avuto problemi con l'avvio o la risoluzione. Dopo uno degli aggiornamenti X rifiutato di iniziare, però, ma 'X-configure' generato un file di configurazione che ha funzionato piuttosto bene.
- Audio - Uscita audio e microfono esterno bel lavoro. versione del kernel 2.6.29-1-686 # 1 SMP e la versione alsa 1.0.17. Questo è ciò che si ottiene da
$ lspci -v |grep Audio 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Con1.0.17troller (rev 03) - Video cam - funziona
- Hibernate su disco e ritorno - nessun problema
- Wireless - in breve - funziona e basta.
$ lspci |grep -i wireless
03:13:55 04:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01) .
Penso kernel 2.6 .. 27 in poi si lavora con i sorgenti del kernel stock. Non dovete installare ndiswrapper o cose del genere t
cappello. In una nota, si prega di dire buon acquisto gnome-network-manager e wicd benvenuto, è solo uno strato gui, ma dietro le quinte, hanno fissato sacco di roba config come wpasupplient e altro ancora.
Cosa non funziona -
- Microfono interno, in qualche modo rifiuta di lavorare
Mic esterno funziona bene però. Le ultime fonti alsa non compilarlo senza problemi su debian, quindi per il momento ho comprato esterna microfono interno, cercherà di scavare prima o poi in futuro, però.
Pochi spunti più varie per deiban:
- Pacchetto per devnagri font-ttf-indic-fonts
- Pacchetto per flash player - flashplugin-nonfree
- Entrata in sources.list per mplayer e simili - deb http://www.debian-multimedia.org sid principale
- Entrata in sources.list per E17 - deb http://debian.alphagemini.org/~~V principale instabile
- Entrata in sources.list per skype - http://download.skype.com/linux/repos/debian/ stabile non-free
oneliner per aumentare o diminuire la luminosità -
[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
dovrete mettere questo in sudo però.
e per diminuire il cambiamento + a - e ... si ottiene l'idea, giusto!
Un po 'di più, se si utilizza l'illuminazione (E17), qui sono alcuni suggerimenti di più -
[Illuminazione bindidings chiave]
È possibile utilizzare codice seguente chiave e la mappatura
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"
diminuire il volume:
KEY="Keycode-174" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2-"
aumenta il volume:
KEY="Keycode-176" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2+"
aumentare la luminosità:
KEY="Keycode-212" ACTION="exec" PARAMS="sudo /root/bin/incbrightness.sh"
diminuire la luminosità
KEY="Keycode-101" ACTION="exec" PARAMS="sudo /root/bin/decbrightness.sh"



































