Razumijevanje zlonamjernog softvera

Original: http://xfront.com/malware/index.html

Roger Costello

Nedavno sam krenuo da učim o malveru. Da bih organizovao svoje misli, kreirao sam model relevantnih koncepata. Malver uključuje softverske programe, tako da sam morao modelirati programe – njihove ulaze i izlaze. Saznala sam da malver uključuje namjeru da se nanese šteta, pa sam morao modelirati ljude koji kreiraju programe s namjerom (bilo zlonamjernim ili dobroćudnim) i modelirati pojam štete. Saznala sam da ne postoji opšteprihvaćena definicija malvera. Neki ljudi zlonamjernog softvera definišu kao softver koji je kreiran sa zlonamernim namerama; drugi je definiraju kao softver koji uzrokuje štetu. Usvojio sam definiciju da je malware softver koji je stvoren sa zlonamernim namerama i kada se njegovi rezultati izvrše štete.

U nastavku su izjave entiteta i odnosa izrazio u svom modelu. Imajte na umu da koristim riječ program, a ne softver. Ja razliku između programa i ulaza programima. Ulazi mogu biti softver, kod, tekst ili binarni. Programi obrađuju (izvršavaju/interpretiraju) ulaze. Cilj je da se odredi koji ulazi su zlonamjernog softvera.

  1. Programi stvaraju ljudi.
  2. Ulaze u programe kreiraju ljudi.
  3. Svaki ulaz u program proizvodi jedan izlaz.
  4. S obzirom na isti ulaz, program uvijek proizvodi isti izlaz.
  5. Program je kreiran da obrađuje određeni skup ulaza i proizvodi određeni skup izlaza. Stvarni skup ulaza u program i izlazi koje proizvodi program može biti veći. To jest, očekivani U/I je podskup stvarnog U/I.
  6. Kada osoba kreira ulaz u program, on ima ili benigne ili zlonamerne namere.
  7. Neki rezultati izazivaju štetu.
  8. Ulazni podaci koje program kreira za obradu su benigni. Izlazi koje je program kreirao da bi proizveli ne štete.
  9. Ako su gore navedene tvrdnje zadovoljene, logično slijede sljedeći zaključci:
  • Unosi koje je program kreiran za obradu nisu malware; samo ulazi koje program nije kreiran za obradu može biti malware.
  • Softver napisan sa benignom namerom može biti malware. Mogu postojati benigni ulazi koji, kada se izvršavaju programom, rezultiraju izlazima koji uzrokuju štetu.

——————————

Modeliranje uključuje apstrahovanje irelevantnih aspekata i pojednostavljenje nekih relevantnih aspekata. Pokazao sam gore navedene izjave prijatelju i on je identifikovao stvari koje je moj model izostavio i pojednostavio. U nastavku su komentari mojih prijatelja, u crvenoj boji.

1. Programi stvaraju ljudi.

Neki programi su kreirani od strane drugih programa. Na primjer, Lexu se daje gramatika kao ulaz i izlazi parser (koji je program). Dakle, program je kreirao program.

2. Ulaze u programe kreiraju ljudi.

Većina današnjeg softvera je ugrađeni softver. Ti programi dobijaju ulazne podatke od senzora i aktuatora. Dakle, većina unosa je od ne-ljudi.

3. Svaki ulaz u program proizvodi jedan izlaz.

Ako program ne uspije, možda neće proizvesti nikakav izlaz, ili može proizvesti pogrešan izlaz, ili može proizvesti pravi izlaz u pogrešno vrijeme (što je, u suštini, ista stvar kao i pogrešan izlaz).

4. S obzirom na isti ulaz, program uvijek proizvodi isti izlaz.

To gotovo nikada nije istinito u ugrađenim real-time programima. Na primjer, ulaz programa je ventil za kavu koji kontrolira protok vode u aparat za kavu, a izlaz je nivo vode. Dajte programu isti ulaz (ventil) i gotovo uvijek će izlaz (nivo vode) biti drugačiji.

5. Program je kreiran da obrađuje određeni skup ulaza i proizvodi određeni skup izlaza. Stvarni skup ulaza u program i izlazi koje proizvodi program može biti veći. To jest, očekivani U/I je podskup stvarnog U/I.

Program treba uvijek provjeriti ulazne podatke prije obrade. Dakle, skup ulaza koji se obrađuju treba da bude jednak skupu ulaza koje je program kreirao za obradu.

6. Kada osoba kreira ulaz u program, on ima ili benigne ili zlonamerne namere.

Kao što je ranije rečeno, ljudi nisu jedini entiteti koji stvaraju ulaze. Da li senzori i aktuatori imaju namjere?

7. Neki rezultati izazivaju štetu.

U redu.

8. Ulazni podaci koje program kreira za obradu su benigni. Izlazi koje je program kreirao da bi proizveli ne štete.

Razmislite o programu koji kontrolira krilo. Ulaz je iz pitot cijevi. Pretpostavimo da postoji led na pitot cevima, što dovodi do ulaza u program koji proizvodi izlaz (konfiguracija krila) koji uzrokuje da avion zastane. Ulaz je u rasponu koji očekuje program i ima benigne namjere (pod pretpostavkom da pitot cijev ima namjere), ali izlaz proizvodi štetu.

Ako su gore navedene tvrdnje zadovoljene, logično slijede sljedeći zaključci:

  • Unosi koje je program kreiran za obradu nisu zlonamjernog softvera; samo ulazi koje program nije kreiran za obradu može biti zlonamjernog softvera.

Krasan.

  • Softver napisan sa benignom namerom može biti zlonamjernog softvera. Mogu postojati benigni ulazi koji, kada se izvršavaju programom, rezultiraju izlazima koji uzrokuju štetu.

Da, postoje neki doprinosi koji su benigni i ipak dovode do štete. Niko nije nameravao da sistem zračenja izazove štetu, ali zbog grešaka u sistemu, neko je ubijen.

——————————

Sjetite se da sam usvojio definiciju da je malware softver koji je stvoren sa zlonamjernim namjerama i kada je izvršen uzrokuje štetu. Evo šta je moj prijatelj rekao o tome:

Pretpostavimo da postoji greška u dizajnu programa, koji otkriva ranjivost da neko eksploatiše; je taj program zlonamjernog softvera? Je implementacija buggy zlonamjernog softvera samo zato što mogu iskoristiti? Mislim da je to SSH koji je imao bubu u njemu nešto poput 10 godina dok neko iskoristio bug. Da li je program SSH zlonamjernog softvera za 10 godina da bug nije otkrivena? Šta ako postoji greška u dizajnu programa koji ima potencijal da uzrokuje štetu, npr greška u softveru aviona koji može uzrokovati da sruši. Da li je to zlonamjernog softvera?

Zadnja izmjena: 15. travnja 2019. Autor: Roger Costello

 

Monokultura: jednako loša ideja u računarstvu kao iu poljoprivredi

Original: https://dan.tobias.name/thenet/monoculture.html

Daniel R. Tobias

U poljoprivredi i biološkim naukama, monokultura se odnosi na situaciju u kojoj jedna vrsta biljke ili životinje potpuno dominira u ekosistemu, istiskujući sve druge vrste. Tipično, dominantni element monokulture neće biti samo ujednačenih vrsta, već čak i ujednačen podtip unutar vrste – kao da ne samo da su svi kućni ljubimci psi (istiskivanje drugih vrsta kućnih ljubimaca kao što su mačke), već su svi oni posebna vrsta pudla.

Moderna poljoprivreda je imala mnogo primera monokultura, pošto su pojedine vrste useva izabrane za različite poželjne osobine i propagirane identično širom sveta, zamenjujući mnoštvo različitih lokalnih useva. Uspon velikih korporativnih farmi i multinacionalnih proizvođača sjemena ubrzao je napredak ka ovoj situaciji. Broj različitih vrsta usjeva koji se široko uzgajaju stalno se smanjuje kako naučnici stvaraju pažljivo izrađene sorte dizajnirane za maksimalnu popularnost, a farmeri se identično odlučuju da ih koriste.

Dakle, u čemu je problem, ako su ovi usjevi izabrani zato što su bolji? Pa, pored opšteg dubokog osećanja da je “raznolikost začin života” i nešto je izgubljeno kada je zamenjeno uniformnošću (kao da, obala do obale, McDonald’s je istisnuo sve ostale restorane i Wal-Mart je eliminisao sve u drugim prodavnicama), postoje stvarni problemi koji nastaju zbog monokulture. Uprkos pažljivom uzgoju koji je doveo do sadašnjih sorti useva, nijedan usev nije u potpunosti imun na napad. Bolesti, insekti, klimatske promene i druge štetne stvari mogu uništiti useve, a može se ispostaviti da su, slučajnom šansom, neke genetske sorte podložnije određenoj katastrofi od drugih. U multikulturi, sa mnogo različitih varijanti na terenu, katastrofa će nauditi nekim od njih dok štedi druge; došlo bi do privremenih nestašica, a neki nesretni poljoprivrednici imali bi velike gubitke, ali usjevi u cjelini bi dobro prošli kroz katastrofu – u stvari, sljedeća generacija usjeva bila bi bolja, jer je prirodna selekcija dobila priliku da djeluje da promoviše širenje varijeteta imunih na tu vrstu katastrofe kroz opstanak najsposobnijih.

U monokulturi, međutim, ako je jedna dominantna sorta podložna katastrofi, ona može biti potpuno izbrisana, pretvarajući ono što je moglo biti manji problem u globalnu katastrofu, i ostavljajući malo uzgojnih stokova iz kojih se može izdržati sorta proljeće. To je u osnovi ono što se dogodilo sa nasadima južnog pamuka i žižakom na kraju XX. Stoljeća.

Kakve to veze ima sa računarstvom?

Kao i poljoprivreda, računarstvo se suočava sa prijetnjama kao što su virusi, crvi i drugi faktori, i zlonamjerni i slučajni, koji uzrokuju propadanje stvari. Kao i polja farmera, kompjuteri, zajedno, mogu da naprave monokulturu – sve to radi sa hardverom i softverom identičnog dizajna koje proizvode isti prodavci – ili multikultura, sa raznovrsnim hardverom i softverom sa velikom razlikom. Baš kao što je to slučaj sa farmama, manje je verovatno da će kompjuteri sa većom raznovrsnošću biti potpuno izbrisani bilo kojom nesrećom koja se širi kroz računarstvo. Računarski virus će verovatno biti napisan da radi na određenoj platformi i koristi prednosti slabosti bezbednosti određenog skupa softverskih proizvoda i biće potpuno inertan na računaru koji je drugačije dizajniran. Fatalna greška u jednom softverskom proizvodu je malo vjerovatno da će se ponoviti u drugima. Dakle, multikultura je robusnija u pružanju otpora katastrofama; neki kompjuteri i softver će imati negativan uticaj, ali drugi će proći kroz neoštećene, a ukupna šteta će ostati na upravljivim nivoima. Širenje opasnih virusa i crva može usporiti ili zaustaviti kada se većina sistema koje pokušaju da zaraze ispostavi da su imuni, umjesto da se šire kao požar u svijetu punom identično-ranjivih računara.

Trenutno, najveće prijetnje monokulture u svijetu računanja su od Microsofta. Windows operativni sistem ima vodeću ulogu na tržištu desktop operativnih sistema (izvan “niša” segmenta kao što su umjetnici koji preferiraju MacOS i računalne geekove koji preferiraju Linux), Internet Explorer ima veliku većinu tržišta pregledavanja weba, kao i različite verzije programa Outlook i Outlook Express ima veliki deo tržišta elektronske pošte. Ovo su iskoristili autori virusa i crva, koji svoje zlonamerne programe čine posebno ciljanim sistemima. Virusi i crvi koji se pokreću pod Windowsom, koriste prednosti sigurnosnih propusta u MSIE i Outlook-u kako bi se lansirali kada korisnik koji ne sumnja da otvori web-stranicu ili e-poruku, a koriste poznate formate podataka u adresaru programa Outlook i MSIE web-u. cache da biste pronašli adrese e-pošte drugih osoba na koje ćete poslati virus. Na MacOS ili Linux sistemu, oni se verovatno ne mogu uopšte pokrenuti. Kada pogode konkurentni program za poštu kao što su Pegasus ili Eudora, ili konkurentski pretraživač kao što su Mozilla ili Opera, njihovi zlonamerni skripti verovatno ne pokreću, pa čak i ako to urade, ne prepoznaju formate adresara i keša da bi pronašli više ljudi da zaraze.

Dakle, korisnici drugih sistema obično nađu imuni na ove viruse. Ovo nije nužno jer su drugi sistemi nisu u stanju hvatanje virusa u cjelini. Iako je moje uvjerenje da su odluke dizajn Microsoft napraviti svoj softver posebno osjetljivi na takve napade, jer programeri cijenimo “Neodoljivo” drečavost i “zaglupljena” lakoća preko robustan sigurnost i poštovanje standarda, ne priznaju da ne – Microsoft programerima ubaci se ponekad i previše i uvesti sigurnost slabosti u svoje programe. Međutim, svaki program ima različite sigurnost slabosti, proizvodeći multikulturalnosti koja otežava bilo koje virus širi. Ovih dana, a većina virusa usmjerene na Microsoft programe, oni obično prestanu mrtav kad su udarili računar koristeći nešto drugo. Nažalost, dosta ljudi koriste MS-ware da virusi i dalje vodi ionako raširene. A raznovrsniji okruženje biti manje pogodna za ovo širenje.

Ali kako raznolika treba računarstva biti?

Uobičajeni prigovor na zagovaranje računarske raznolikosti je potreba za interoperacijom – web preglednik i program za e-poštu ne bi bili vrlo korisni ako ne bi mogli pristupiti web stranicama ili porukama e-pošte koje dolaze iz sistema sa različitim softverom. Namera e-pošte (od 1970-ih) i Mreže (od 1990-ih) bila je da ih učine univerzalno interoperabilnim, tako da bi svi sa računarom mogli da ih koriste. Neki ljudi ovo pogrešno shvataju da bi svi trebali da vode iste programe pod istim operativnim sistemima, tako da web stranice i poruke e-pošte izgledaju potpuno jednako svima. Svaka Web stranica koja ima liniju kao što je “Najbolje gledano u MSIE 6.0 pod Windowsom XP sa 1280 x 1024 monitorom sa pregledačem u režimu preko celog ekrana, omogućen JavaScript i kolačići i instaliran Flash plugin”, jasno je kreirana od strane osobe s tim manjkavim razumijevanjem principa Mreže. U stvari, internet je dizajniran na osnovu skupa otvoreno dokumentiranih standarda za osnovne protokole i formate podataka, kako bi se osiguralo da sve što slijedi standarde može razgovarati jedni s drugima, istovremeno dopuštajući beskonačan raspon varijacija u svemu ostalom. uključeni programi, operativni sistemi i hardver.

Microsoft je, posebno, učinio sve što je u njegovoj moći kako bi potkopao takve standarde kroz svoj “zagrljaj i proširio” stav – oni pružaju usrdnu podršku podržavajućim standardima, au ranim fazama njihovog ulaska na određeno tržište kada su samo jedan dio multikultura, oni zapravo održavaju pristojan stepen kompatibilnosti kako bi dobili početno prihvaćanje. Međutim, kada su oni dominantni, oni počinju “proširiti” standarde sa vlasničkim trikovima koji rade samo između korisnika njihovog softvera. Ubrzo, njihovi programi za e-poštu ne ispunjavaju uslove za slanje pošte u neobičnim formatima koji izgledaju neuredno u drugim čitačima pošte, a njihov softver za kreiranje weba kreira stranice koje ne funkcionišu dobro u drugim pretraživačima. Nezainteresovani potrošači, kada vide Web stranice i e-mail poruke koje ne rade dobro u drugim pretraživačima i čitačima, krive one druge proizvođače softvera iako je greška zapravo u nestandardnom izlazu Microsoft programa, a Microsoft dobija status monokulture.

Generalno, greške i sigurnosne rupe koje propuštaju viruse i crve nisu inherentne osnovnim standardima Interneta; oni se pojavljuju u specifičnim implementacijama programa, a posebno u vlasničkim dodatnim funkcijama kao što su mogućnost automatskog pokretanja skripti sa Web stranica ili e-mail poruka. Prema tome, drugi softver može savršeno da prati standarde i da nema iste slabosti koje ima jedan program.

Šta treba da uradite o tome

Jednostavno je; pregledajte raspoloživi softver za pretraživanje interneta i e-poštu i odaberite one koji su najbolji za vas, a ne nužno ono što je prethodno instalirano na vašem računalu. Bez obzira koji softver koristite, pokušajte ga koristiti na način koji generira izlaz koji je u skladu sa svim primjenjivim standardima i izbjegavajte korištenje vlastitih trikova koji bi vaše poruke i web-stranice mogli učiniti nečitljivim drugima koji donose različite odluke od vas. Zapamtite, nije svatko na svijetu koristi isti hardver i softver kao vi, zato budite pažljivi u onome što šaljete, čak i ako to može značiti spuštanje na “najniži zajednički imenitelj” koji vam se čini blagim (npr. Običnim tekstualnim porukama fancy formatiranja). Podržavati i ohrabrivati raznolikost, u okvirima usklađenosti sa standardima, umjesto monokulturne upotrebe onoga što je danas popularno.

Iako je Microsoft je “neprijatelj dana” u ovom polju, ovo nije večna, nepromenljiva situacije; koncept je trajna, ali igrači mijenjati vrijeme i mjesto. U mainframe računarsko okruženje iz 1960-ih i 1970-ih, IBM je “zlo carstvo” nameće svoju vlastitu ne-standarda na terenu, ali su imali pad i više nisu prijetnja nikome; sada je “negativac” je Microsoft, ali neki dan to može biti neko drugi, možda AOL (što je iritantno blizu monokultura na tržištu ISP, barem među velikim kohorte nezahtevnih korisnika koji misle AOL = Internet). Za neko vrijeme, Netscape je monoculturalist polja Web browser, ali se to promenilo vrlo brzo. Dakle, to je previše pojednostavljeno da prikaže pitanje kao borba protiv jednog večna i svemoćan đavola; borbi, bolje rečeno, je različitosti otvorenog standarda na bazi nasuprot gotovo monopolista, čak i ako identitet monopolista mijenja s vremena na vrijeme. Ako je bilo koji ne-Microsoft proizvoda preporučujem kao antidota u monokulturi postao toliko popularan da prijete da će se novi monoculturalists, možete očekivati ​​od mene da promjenu brzina i početi zagovara korištenje nešto drugo samo da se trese ih gore.

Neke alternative za Microsoft hegemonija

Mozilla

Odličan izbor za obje Weba i e-pošta je Mozilla. Ja sam to sada koristi kao bude moj zadani preglednik godinama, a to je oblikovanje se jako lijepo. Ako ste pokušali ranije Mozilla verzije odavno i misli da je previše lud i nestabilan, pokušajte ponovo sada; to je sada dostigao visoko razvijenoj fazi. Imate nekoliko izbora koju verziju za preuzimanje; što se odlučite ovisi o tome kako avanturistički ili konzervativni ste. Postoje dva glavna sorte Mozilla: u “Mozilla Suite” (uključujući i preglednik, program za e-mail i druge stvari, kao što su Internet chat relej [IRC] klijent), kao i samostalni Firefox. Verzija 1.7.1 je najnovija stabilna verzija za paket od pisanja ovog teksta, pažljivo testiran za uklanjanje većih bugova (uz sigurnosnu zakrpu od verzije 1.7 popraviti ranjivost – takve stvari rade dogoditi sa Mozilla previše) 1.8 Alpha je bliža vodeći rub (sa novim karakteristikama koje nisu još u potpunosti testiran) i noćnog “prtljažnik gradi” su pravo na krvarenje rubu (gdje ćeš biti prvi koji će vidjeti uredan novim stvarima, ali i prvi koji će doživjeti katastrofalnih bugova). Firefox postaje sve popularniji u zadnje vrijeme, ali je i dalje tehnički softver prepustiti koji je u verziji 0.9.2 (predstojeće verziji 1.0 obilježit će postizanje “konačno oslobađanje” status). Bugzilla baza podataka je tamo da vidite što problemi postoje, kako oni rješavaju, kao i da doprinese diskusiji sebe. Mozilla je participativni projekt, a ne korporativni proizvod, tako da možete imati neki utjecaj na to kako se razvija. Pored promocije browser i e-mail multikulturalnosti, ti i sticanje korisne funkcije kao što su pop-up blokiranje i karticama pretraživanja. Funkcija e-mail sada razvija spam filter, previše. Provjeri!

Oni koji bi radije da imaju korporativni naziv iza preglednika koriste mogu preuzeti Netscape 7.1; to je na osnovu Mozilla (iako su, nažalost, uklonjen funkcija blokiranja popup, i dodao sve vrste oglasa junk svoje, po nalogu svojih “marketinške tvrtke”). Međutim, Netscape je sjena onoga što je nekad, nakon što je bez utrobe strane korporativnog roditelja, AOL; bez mnogo osoblje ili motivacija ovih dana, oni vjerojatno neće praviti jako puno preglednika izdanja.

101 stvari koje Mozilla pretraživač može da uradi da IE ne može

Opera

Opera je komercijalni pretraživač koji ima mnogo obožavatelja, posebno u Europi. Njegovo sučelje se veoma razlikuje od Netscape-a, MSIE-a i Mozilla-e, što može biti dobra ili loša stvar za vas, zavisno od toga koliko vam se sviđaju ili ne sviđaju drugi pretraživači. Opera je dizajnirana da podrži mnogo malih prozora pretraživača u okviru većeg prozora aplikacija, nešto kao Mozilla-jevo pregledanje na karticama, ali još više svestrano. Takođe imate veliki stepen konfigurabilnosti, volite da odlučite da li veze koje pokušavaju da se otvore u novim prozorima zaista to urade ili da ostanu u istom prozoru. Nekada ste morali da kupite kopiju Opere da biste je koristili, što joj je dalo veliki nedostatak u odnosu na pretraživače koji su bili besplatni za preuzimanje i korišćenje, ali sada je osnovna, neregistrovana verzija Opera slobodna za korišćenje, ali prikazuje oglase na ekranu banner na vrhu, bez nametljivih pop-up prozora ili bilo čega drugog. I dalje možete platiti verziju bez oglasa. Kao i Mozilla, Opera takođe ima mogućnost slanja e-pošte.

Pegasus Mail

Iako koristim Mozilla kao svoj preglednik, ne čitam e-poštu u njoj, jer već imam poseban program za poštu koji mi se sviđa: Pegasus Mail. Pegasus ne izgleda kao “visoka tehnologija” kao drugi mail programi, i ima samo minimalnu podršku za fancy-schmancy formate poruka, ali za mnoge od nas starosjedioce koji misle da e-pošta nema nikakvog posla u bilo čemu zanimljivijem od običnog tekst, to nam je u redu. Praktično ne postoji rizik od dobijanja e-mail virusa preko Pegasusa, jer ne izvršava nikakav program ili skript jednostavno otvaranjem poruke ili prikazivanjem u oknu za pregled, za razliku od nekih drugih mail programa. Pegasus je bio pionir u korišćenju naprednih pravila za filtriranje poruka kako bi vam omogućio da sortirate poruke u fascikle po kategorijama ili da sprečite neželjenu poštu. Drugi programi su morali da se uhvate u koštac sa značajkama koje Pegasus ima već duže vreme.

Linkovi

Ova stranica je prvi put stvorena 15.12.2002.

Copyright © 1995-2018 by Daniel R. Tobias. All rights reserved.

 

Je Dizajn Smrt?

Za mnoge koji dolaze nakratko u kontakt sa Extreme Programming, čini se da XP poziva na smrt dizajna softvera. Ne samo je mnogo dizajna aktivnost ismevane kao “Big Up Front Design”, ali kao što dizajn tehnike kao UML, fleksibilne okvire, pa čak i obrasci su de-naglasio ili stvarno zanemariti. U stvari, XP uključuje puno dizajna, ali to radi na drugačiji način nego osnovan softvera procesa. XP je podmlađena pojam evolucije dizajna sa praksama koje omogućavaju evolucija da postane održiva strategija dizajna. Ona također pruža nove izazove i vještine kao dizajneri trebaju naučiti kako napraviti jednostavan dizajn, kako koristiti pravljenja da bi dizajn čist, i kako koristiti obrasce u evolucioni stilu.

Extreme Programming  (XP) izaziva mnoge zajedničke pretpostavke o razvoju softvera. Od ovih jedan od najkontroverznijih je njegova odbijanja značajne napore u up-front dizajn, u korist više evolutivni pristup. Svojim klevetnici da je ovo povratak “kod i popraviti” razvoj – obično ismijavana kao sjeckanje. Da bi svojim fanovima se često doživljava kao odbacivanje tehnika dizajna (kao što je UML), principa i obrazaca. Ne brinite o dizajnu, ako slušate vaš kod će se pojaviti dobar dizajn.

Sam se pronaći na adresi u centru ovog argumenta. Veći dio svoje karijere je uključen grafički dizajn jezika – Unified Modeling Language (UML) i njegova prethodnika – i obrazaca. Zaista sam pisao knjige i na UML i obrasce. Da li moj zagrljaj XP znači da povuče sve ono što sam napisao o ovim temama, čišćenje moj um od svih takvih kontra-revolucionarne ideje?

Pa neću očekivati ​​da se mogu ostaviti da visi na udici dramske napetosti. Kratak odgovor je ne. Dugi odgovor je ostatak ovog rada.


Planirani i Evolucijski Dizajn

Za ovaj rad ću opisati dva stila kako se dizajn radi u razvoju softvera. Možda je najčešći je evolucijski dizajn. U suštini evolucijski dizajn znači da je dizajn sistema raste kao što je implementiran sistem. Dizajn je dio procesa programiranja i kao program razvija dizajn promjene.

U svojoj uobičajenoj upotrebi, evolucijski dizajn je katastrofa. Dizajn završava što je agregaciju gomilu ad-hoc taktičke odluke, od kojih svaka čini kod teže mijenjati. Na mnoge načine možda tvrditi da ovo nije dizajn, svakako to obično dovodi do lošeg dizajna. Kao Kent kaže, dizajn je tu da vam omogućiti da zadrži lako mijenjaju softver na dugi rok. Kao što je dizajn pogoršava, tako se vaša sposobnost da učinkovito napraviti promjene. Imate stanje softvera entropije, tokom vremena dizajn postaje sve gore i gore. Ne samo da ovo napraviti softver teže promijeniti, to čini bugova i lakše uzgajati i teže naći i sigurno ubiti. Ovo je “kod i popraviti” noćna mora, gdje bube postaju eksponencijalno skuplji popraviti kao projekt ide dalje.

Planirana Design je kontra toga, i sadrži pojam rođena iz drugih grana inženjerstva. Ako želite izgraditi nemilosti, možete samo dobiti neke drva zajedno i dobiti lošem stanju. Međutim, ako želite izgraditi neboder, možete raditi na taj način – samo će propasti prije nego što čak i dobiti na pola puta gore. Dakle, što počnete s inženjerske crteže, obavlja u inženjerska uredu poput onog moja supruga radi u Bostonu. Kao ona dizajna ona shvati sva pitanja, dijelom matematičke analize, ali uglavnom pomoću građevinskih propisa. Građevinski propisi postoje pravila o tome kako dizajnirati strukture na osnovu iskustva o tome šta radi (i neke osnovne matematike). Kada je dizajn učinio, onda je inženjering kompanija može predati dizajn off na drugu kompaniju koja gradi.

Planirani dizajn u softveru treba da rade na isti način. Dizajneri da se veliki problemi u unaprijed. Njima ne treba pisati kod jer nisu izgradnji softvera, oni su projektiranje ga. Tako da oni mogu koristiti dizajn tehnike kao što je UML koja dobije od neke detalje programiranja i omogućava dizajnerima da rade na više apstraktnom nivou. Kada je dizajn vrši se mogu predati ga u posebnu grupu (ili čak zasebna kompanija) za izgradnju. Budući da je dizajneri razmišljaju o većem obimu, mogu izbjeći niz taktičkih odluka koje dovode do softvera entropija. Programera mogu pratiti pravac dizajna i, pod uslovom da pratite dizajna, imaju dobro izgrađen sistem

Sada je planirano dizajn pristup još od 70-ih godina, i mnogi ljudi su ga koristili. Bolje je na mnogo načina nego kod i popraviti evolucijski dizajn. Ali ima neke mane. Prva greška je u tome što je nemoguće da kroz sva pitanja koja vam je potrebna da se bave kada programiranja. Tako da je neminovno da prilikom programiranja ćete naći stvari koje dovode u pitanje dizajn. Međutim, ukoliko se vrši dizajnera, preselio na drugi projekt, što se događa? Programeri početi kodiranje oko dizajna i setovi entropije u. Čak i ako je projektant nije prošla, treba vremena da sredim pitanja dizajn, promijeniti crteža, a zatim mijenjati kod. Tu je obično brži popravak i vremenskim pritiskom. Stoga entropija (opet).

Osim toga tu je često kulturni problem. Dizajneri su se dizajneri zbog znanja i iskustva, ali oni su tako zauzeti rade na dizajnu ne dobiju puno vremena da se kodirati bilo koji više. Međutim, alate i materijale razvoja softvera promjena velikom brzinom. Kada više nije kod ne samo da propustite o promjenama koje se javljaju s ovim tehnološkim fluksa, možete izgubiti poštovanje onih koji rade kod.

Ova tenzija između graditelja i dizajnera se događa u zgradi previše, ali to je intenzivnije u softveru. To je intenzivan jer je ključna razlika. U zgradi postoji jasnija podjela u sposobnosti između onih koji dizajniraju i onih koji grade, ali u softver koji je manje slučaj. Bilo koji programer koji rade u visokom dizajnu sredinama treba biti vrlo vješt. dovoljno vješti u pitanje dizajna dizajnera, posebno kada je dizajner je manje upoznati sa svakodnevnim stvarnostima razvojne platforme.

Sada može biti fiksna ovim pitanjima. Možda možemo nositi sa ljudskim napetosti. Možda možemo dobiti dizajneri dovoljno vješti da se bave većini pitanja i imati proces dovoljno disciplinovani promijeniti crteža. Postoji još jedan problem: mijenja zahtjeve. Mijenjanje zahtjevi su broj jedan veliki problem koji uzrokuje glavobolje u softverskim projektima koji radi u.

Jedan od načina da se nosi s promjenom zahtjeva je da se izgradi fleksibilnost u dizajnu, tako da možete lako može promijeniti kao mijenja zahtjeve. Međutim, to zahtijeva uvid u kakve promjene očekujete. Dizajn može se planirati da se bave područjima volatilnost, ali dok koji će pomoći za predviđene zahtjeve promjene, to neće pomoći (a može povrijediti) za nepredviđene promjene. Tako da ćete morati shvatiti zahtjeve dovoljno dobro da se odvoje nestabilna područja, i moja opservacija je da je to jako teško.

Neki od ovih zahtjeva problemi zbog ne razumijevanja zahtjeva dovoljno jasno. Tako mnogo ljudi se fokusiraju na zahtjeve inženjerskih procesa na bolje uslove u nadi da će to spriječiti potrebu za promjenu dizajna kasnije. Ali čak i tom pravcu je ona koja ne može dovesti do lek. Mnoge nepredviđene zahtjeve promjene nastaju zbog promjena u poslovanju. Oni se ne mogu spriječiti, međutim, oprezni vašim zahtjevima inženjering proces.

Dakle, sve ovo čini planirane dizajn zvuči nemoguće. Svakako oni su veliki izazovi. Ali ja nisam sklon tvrditi da planirani dizajn je gore nego evolucijski dizajn, jer se najčešće praktikuje u “kod i popraviti” način. Zaista volim planirao dizajn “kod i popraviti”. Međutim, svjestan sam problema planiranih dizajna i am seeking novom pravcu.

U Omogućavanje prakse XP

XP je kontroverzno iz mnogo razloga, ali jedan od ključnih crvene zastave u XP-u je u tome što se zalaže evolucijski dizajn, a od planiranog dizajna. Kao što znamo, evolucijski dizajn nikako ne može raditi zbog ad hoc odluke dizajn i softver entropija.

U srži razumijevanja ovaj argument je kriva promjena softvera. Kriva promjena kaže da kao projekat traje, postaje eksponencijalno skuplje napraviti promjene. Krivulja promjene se obično izražava u smislu faza “promjene se u analizi za 1$ bi koštalo hiljade popraviti u proizvodnji”. To je ironično jer je većina projekata i dalje raditi u proces ad-hoc da nema faze analize, ali je stepenovanje je i dalje tu. Eksponencijalna krivulja promjene znači da evolucijski dizajn nikako ne može raditi. Takođe, prenosi zašto planirane dizajn mora biti učinjeno pažljivo, jer neke greške u planiranim dizajn suočavaju sa istim stepenovanje.

Osnovnih pretpostavka u osnovi XP je da je moguće da se poravnati krivu promjenu dovoljno da evolucijski dizajn posao. Ovaj ravnanje je i omogućeno XP i eksploatišu XP. Ovo je dio spojnice prakse XP: konkretno ne možeš one dijelove XP da iskoristi spljoštene kriva bez raditi one stvari koje omogućavaju poravnavanje. Ovo je zajednički izvor kontroverzi oko XP. Mnogi ljudi kritikuju eksploatacije bez razumijevanja omogućava. Često kritike proizilaze iz vlastitog iskustva kritičara gdje nisu radili povoljnog prakse koje omogućavaju eksploataciju prakse za rad. Kao rezultat toga opekao i kad vide XP pamte vatru.

Postoji mnogo dijelova za omogućavanje prakse. U srži su prakse testiranja, i kontinuirano integracije. Bez sigurnosti koja testiranjem ostatak XP bi bilo nemoguće. Kontinuirano Integracija je potrebno zadržati tim u sync, tako da možete napraviti promjenu, a ne biti zabrinut integraciji sa drugim ljudima. Zajedno ove prakse mogu imati veliki uticaj na krivoj promjene. Setio sam se opet ovdje u ThoughtWorks. Uvođenje testiranje i kontinuirano integracije su imala značajno poboljšanje u odnosu na razvoj napor. Svakako dovoljno da ozbiljno dovode u pitanje XP tvrdnju da ti sve prakse da se veliki napredak.

Refaktorisanje ima sličan efekt. Ljudi koji refactor svoj kod na disciplinovano predlaže XP naći značajne razlike u njihovu efikasnost u odnosu na radio gubitnik, više ad-hoc restrukturiranja. To je svakako moje iskustvo kad me je Kent naučio da pravilno refactor. Na kraju krajeva, samo tako snažnu promjenu bi me motivisalo da napišem celu knjigu o tome.

Jim Highsmith, u svojoj odličnoj  sažetak XP, koristi analogiju set vage. U jednoj ležište planirano dizajn, a drugi je pravljenja. U više tradicionalnih pristupa planirane dizajn dominira, jer pretpostavka je da ne možete kasnije predomisliti. Što su troškovi promjene onda snižava možete učiniti više od vašeg dizajna kasnije pravljenja. Planirani dizajn ne nestanu potpuno, ali sada postoji ravnoteža dva pristupa dizajnu za rad. Za mene je to izgleda kao da je prije pravljenja sam radio sve moj dizajn jednom rukom.

Ove omogućava praksa kontinuiranog integracije, testiranje, i pravljenja, pružaju novu sredinu koja čini evolucijski dizajn prihvatljivo. Međutim, jedna stvar mi još nismo shvatili je mjesto gdje je težište. Siguran sam da je, uprkos izvan utisak, XP nije samo test, kod, i refactor. Postoji prostor za dizajniranje prije kodiranja. Neke od ovih je pre nego što je bilo kodiranje, uglavnom se javlja u iteracija prije kodiranja za određeni zadatak. Ali postoji nova ravnoteža između up-front dizajn i pravljenja.


Vrijednosti Jednostavnost

Dva najveća okupljanja plače u XP-u su parole “Da najjednostavnije što može da rad” i “nećete da je to potrebno” (poznat kao YAGNI). Oba su manifestacije XP prakse jednostavan dizajn.

Način YAGNI se obično opisuje, kaže da ne treba dodavati kod danas koji će se koristiti samo mogućnost da je potrebna sutra. Na prvi pogled to zvuči jednostavno. Pitanje dolazi sa stvarima kao što su okviri, za višekratnu upotrebu komponenti, i fleksibilan dizajn. Takve stvari su komplikovane za izgradnju. Plaćate dodatni trošak up-front da ih graditi, u očekivanju da ćete dobiti natrag te troškove kasnije. Ova ideja izgradnje fleksibilnosti up-front vidi kao ključni dio efikasne dizajn softvera.

Međutim savjet XP je da ne graditi fleksibilan komponente i okvira za prvi slučaj da to treba funkcionalnost. Neka ovih struktura rasti kao što je potrebno. Da sam danas da se bavi toga, ali ne i množenje žele Novac klase onda graditi samo dodatak u klasu novca. Čak i ako sam sigurna da ću trebati množenja u sljedećoj iteraciji, i shvatiti kako je lako raditi, a mislim da će biti jako brzo da radim, ja ću ipak ostaviti do tog sljedećoj iteraciji.

Jedan od razloga za to je ekonomska. Ako moram da radi bilo koji posao koji se koristi samo za funkciju koja je potrebna sutra, to znači da gubim napor funkcije koje je potrebno da se uradi za ovu iteraciju. Plan za oslobađanje kaže šta treba da se radi na sada, radeći na druge stvari u budućnosti je u suprotnosti sa sporazumom programerima sa kupcem. Postoji rizik da priča ovo ponavljanje ne može obaviti. Čak i ako priča ovog iteracije a nisu u opasnosti da je na kupcu da odluče šta dodatni posao treba raditi – i to možda još ne uključuje množenje.

Ovaj ekonomski odvraća se pogoršava šansa da možda ne bude u redu. Međutim, neke možemo biti o tome kako ova funkcija radi, još uvijek možemo ga pogrešno – pogotovo što nemamo još detaljne zahtjeve. Rad na pogrešnom rješenje rano je još rasipno nego rade na pravo rješenje rano. I Xperts uglavnom smatraju da smo mnogo veće šanse da budu u pravu nego u pravu (i ja se slažem s tim sentiment).

Drugi razlog za jednostavan dizajn je to složen dizajn je teže shvatiti nego jednostavan dizajn. Stoga bilo kakva modifikacija sistema otežano strane dodao složenosti. Ovo dodaje trošak u periodu kada je dodao komplikovanije dizajn i kada je to bilo potrebno.

Sada ovaj savjet udara mnogo ljudi kao besmislica, a oni su u pravu da misle da. Pravo pod uslovom da li zamisliti što je to uobičajeno u svijetu razvoju gdje su omogućavanje prakse XP nije na mjestu. Međutim, kada je ravnoteža između planiranih i evolucijski dizajn mijenja, onda YAGNI postaje dobre prakse (i samo tada).

Da rezimiramo. Ne želite provesti napor dodavanjem novih mogućnosti koje neće biti potrebno dok se budućnost iteracije. A čak i ako je trošak je nula, i dalje ne želite dodati jer povećava troškove modifikacija čak i ako se ništa ne košta da se stavi u. Međutim, možete samo razumno ponašati na ovaj način kada koristite XP, ili neki sličan tehnika koja smanjuje troškove promjene.

Ono što na Zemlji je jednostavnost svakom slučaju

Dakle, mi želimo da naša kod da bude što jednostavnije. To ne zvuči kao da je to teško za raspravu, na kraju krajeva, koji želi da bude komplikovano? Ali, naravno, ovo dovodi do pitanja “šta je jednostavno?”

XPE Kent daje četiri kriterija za jednostavan sistem. U cilju (najvažnija prva):

  • Pokreće sve testove
  • No dupliranja
  • Otkriva sve u namjeri
  • Najmanji broj klasa ili metoda

Radi sve testove je prilično jednostavan kriterij. Ne dupliranje je prilično jednostavan, iako dosta programera trebaju smjernice o tome kako to postići. Nezgodna jedan ima veze sa otkrivajući namjerom. Šta to znači?

Osnovna vrijednost ovdje je jasno koda. XP pridaje veliki značaj na broj koji se lako čita. U XP “pametan kod” je termin zlostavljanja. Ali namjera otkriva kod nekih ljudi je drugog pameti.

U svom radu XP 2000. godine, Josh Kerievsky ističe dobar primjer za to. On gleda možda najviše javnosti XP kod svih –  JUnit. JUnit koristi dekorateri dodati opcijske funkcionalnost test slučajeva, takve stvari kao što sinhronizacija konkurentnosti i serijski postavljen kod. Odvajanjem ovaj kod u dekorateri omogućava opće kod biti jasnije nego što bi inače bilo.

Ali morate da se zapitate da li je rezultat kod je veoma jednostavno. Za mene je to, ali onda sam ja upoznat sa Decorator obrazac. Ali za mnoge koji nisu to baš komplikovano. Slično JUnit koristi pluggable metode koje sam primijetio većina ljudi u početku naći ništa, ali jasan. Dakle, može se zaključiti da je JUnit dizajn je jednostavniji za iskusne dizajnere, ali komplikovanije za manje iskusne ljude?

Mislim da je fokus na otklanjanju dupliciranja, oba sa XP “Jednom i samo jednom” i  Pragmatični Programerski  sušenje (ne ponavljaju Yourself) je jedan od onih očiglednih i predivno moćan komada dobrih savjeta. Samo nakon toga sam vas može odvesti daleko. Ali to nije sve, i jednostavnost je i dalje komplikovana stvar pronaći.

Nedavno sam bio uključen u tome nešto što može postati preko dizajniran. Dobila Refactored i neke fleksibilnost je uklonjen. Ali, kao jedan od developera rekao “to je lakše refactor preko dizajna nego što je refactor ne dizajn”. To je najbolje da bude malo jednostavnije nego što je potrebno da bude, ali nije katastrofa da je malo složeniji.

Najbolji savet koji sam čuo na sve ovo dolazi iz Uncle Bob (Robert Martin). Njegov savjet je da se ne zamarajte o tome šta je najjednostavniji dizajn. Na kraju krajeva možete, treba, i da li će refactor kasnije. Na kraju spremnost da refactor je mnogo važnije od znajući šta najjednostavnije stvar je odmah.


Da li Refaktorisanje Violirati YAGNI?

Ova tema je došao na XP mailing listu nedavno, i to je vrijedno izvlači kao gledamo ulogu dizajna u XP.

U osnovi je pitanje počinje sa stanovišta da pravljenja treba vremena, ali ne dodaje funkciju. Budući da je svrha YAGNI je u tome što bi trebalo da dizajnira za sadašnju ne za budućnost, je li to kršenje?

Poenta YAGNI je da ne dodati složenost koja nije potrebna za tekuću priče. Ovo je dio prakse jednostavnog dizajna. Refaktorisanje je potrebno da zadrži dizajn kao jednostavan kao možete, tako da bi trebalo refactor kad god shvatite možete napraviti jednostavnije stvari.

Jednostavan dizajn i eksploatiše XP prakse i je također omogućava praksu. Samo ako imate testiranje, kontinuirano integracije i pravljenja možete li efikasno praktikuju jednostavan dizajn. Ali, u isto vrijeme zadržavajući dizajn jednostavan je od suštinskog značaja za čuvanje stana kriva promjene. Bilo koji nepotrebnih složenosti čini sistem teže promijeniti u svim pravcima, osim onaj koji vam predvidjeti sa složenom fleksibilnost te u. Međutim, ljudi nisu dobri u predviđanju, tako da je najbolje da se borim za jednostavnost. Međutim, ljudi neće dobiti najjednostavniji stvar prvi put, tako da je potrebno da refactor kako bi se približili cilju.


Obrasci i XP

Primjer JUnit me dovodi neminovno u odgajanje obrasce. Odnos između obrazaca i XP je zanimljiv, a to je često pitanje. Joshua Kerievsky tvrdi da su obrasci pod-naglasio je u XP-u, a on čini argument elokventno, tako da ne želim da se ponovi to. Ali to je imati na umu da je za mnoge ljude obrasce čini u sukobu na XP-u.

Suština ovog argumenta je da obrasci često previše koristi. Svijet je pun legendarnog programer, svježe skinuo prvom čitanju GOF koji uključuje šesnaest obrasce u 32 linija koda. Sjećam se jedne večeri, podstaknut vrlo lijep single malt, prolazi kroz s Kent papir da se zove “Nije Design Patterns: 23 jeftine trikove” Razmišljali smo o takvim stvarima kao upotreba ako izjava, a ne strategije. Šala je u pravu, obrasci se često iskušavati, ali to ih ne loša ideja napraviti. Pitanje je kako ih koristite.

Jedna od teorija ovoga je da su snage jednostavnog dizajna će vas dovesti u obrasce. Mnogi refaktorisanih ovo eksplicitno, ali i bez njih tako što ćete pratiti pravila jednostavnog dizajna ćete doći do obrasce, čak i ako ih ne već znaju. To može biti istina, ali da li je zaista najbolji način da se to uradi? Sigurno da je bolje ako znate otprilike kuda ideš i imam knjigu koja vam mogu pomoći kroz pitanja, umjesto da sve to sami izmisliti. Ja svakako i dalje posegnuti za GOF kad god mi se uzorak dolazi u. Za mene je efikasan dizajn tvrdi da moramo znati je cena uzorak vredi platiti – to je vlastitu vještinu. Isto tako, kao što Joshua predlaže, moramo biti više upoznati o tome kako da se olakša u obrazac postupno. U tom smislu XP tretira način na koji koristimo obrasce drugačije na način na koji neki ljudi ih koriste.

Ali čitajući neke mailing liste Imam jasan osjećaj da mnogi ljudi vide XP kao obeshrabrujući obrasce, uprkos ironija da je većina zagovornika XP bili vođe obrazaca pokreta previše. Da li je to zbog toga što su vidjeli izvan obrasce, ili zato što obrasci su tako ugrađeni u svoje razmišljanje da više ne to shvatiti? Ne znam odgovore za druge, ali za mene obrasce i dalje su od vitalnog značaja. XP može biti proces za razvoj, ali obrasci su okosnica dizajn znanje, da je vrijedan bez obzira na proces može biti. Različiti procesi mogu koristiti obrasce na različite načine. XP naglašava kako ne koristite obrazac sve dok je to potrebno i razvija svoj put u obrazac pomoću jednostavnog implementacije. Ali obrasci su ipak ključni dio znanja da steknu.

Moj savjet XP-e koristeći obrasce bi bilo

  • Uložiti vremena za učenje o obrascima
  • Koncentrirati o tome kada će primijeniti obrazac (ne prerano)
  • Koncentrirati o tome kako su prve sprovele obrazac u svom najjednostavnijem obliku, zatim dodajte složenosti kasnije.
  • Ako stavite obrazac u, a kasnije shvatiti da se ne vuče svoje težine – ne boj se da ga ponovo.

Mislim XP Treba naglasiti učenje o obrascima više. Nisam siguran kako bih uklopiti to u praksi XP, ali siguran sam da Kent može smisliti način.

Raste arhitektura

Šta se podrazumeva od strane softverske arhitekture? Za mene je pojam arhitektura prenosi pojam od osnovnih elemenata sistema, komade koje je teško promijeniti. A temelj na kojem treba biti izgrađen do kraja.

Koja je uloga arhitekture igrati kada koristite evolucijski dizajn? Opet XPS kritičari navode da XP ignoriše arhitektura, da trasa XP je da se ide brzo kod i vjerovati da pravljenja koji će riješiti sva pitanja dizajna. Zanimljivo je da su u pravu, a to može biti slabost. Svakako najagresivniji XP-e – Kent Beck, Ron Jeffries, i Bob Martin – stavljaju sve više i više energije u izbjegavajući napred arhitektonski dizajn. Nemojte stavljati u bazu podataka dok ne znam da ćeš to potrebno. Rad sa datotekama prvi i refactor baze podataka u toku kasnije iteracije.

Ja sam poznat po tome što je kukavički xper, i kao takav moram da se ne slažemo. Mislim da postoji uloga za širok arhitekturu polazište. Takve stvari kao navodeći rano o tome kako da sloj aplikacije, kako ćete interakciju s bazom podataka (ako treba), što pristup koristi za upravljanje web servera.

U suštini, mislim da su mnogi od tih područja su obrasci koje smo naučili tijekom godina. Kao što raste svoje znanje o obrazaca, trebalo bi da imate razumne prvi take kako da ih koriste. Međutim, ključna razlika je u tome se ne očekuje ove rane arhitektonski odluke biti postavljen u kamenu, odnosno tim zna da oni mogu pogriješilo u ranim odluke, i treba imati hrabrosti da ih popraviti. Drugi su rekli priču o jednom projektu koji, u neposrednoj blizini raspoređivanje, odlučio da više nisu potrebni EJB i ukloniti ga iz svog sistema. To je bio značajan pravljenja, to je učinjeno kasno, ali omogućavajući praksi je to ne samo moguće, ali isplati.

Kako bi to radili obrnuto. Ako ste odlučili da ne koriste EJB, da li bi bilo teže da ga dodati kasnije? Treba da na taj način nikada ne početi sa EJB dok ste pokušali stvari bez i našao ga nema? To je pitanje koje uključuje mnogo faktora. Sigurno rade bez kompleksa komponenta povećava jednostavnost i čini stvari idu brže. Međutim, ponekad je lakše iščupati tako nešto nego da ga stavim u.

Dakle, moj savjet je da počne procjenom što je vjerovatno arhitekture. Ako vidite veliku količinu podataka s više korisnika, samo naprijed i koristiti bazu podataka iz dana 1. ako vidite složene poslovne logike, staviti u model domenu. Međutim, u poštovanja prema bogovima YAGNI, kada je u nedoumici pogriješilo na strani jednostavnosti. Također biti spremni da se pojednostavi svoj arhitekture čim vidite da je dio arhitekture se ne dodaje ništa.


UML i XP

Od svih pitanja koja sam se o mojoj povezanosti sa XP jedan od najvećih vrti oko moje povezanosti sa UML. Nisu dva nespojiva?

Postoji veliki broj bodova od nekompatibilnosti. Svakako XP de-naglašava dijagrama u velikoj mjeri. Iako je službeni stav je po uzoru na “koristite ih ako su korisni”, postoji jak podtekst “pravi XP-e ne rade sheme”. Ovo je ojačan činjenicom da su ljudi poput Kent nisu nimalo ugodno sa dijagramima, zaista nikada nisam video Kent dobrovoljno nacrtati dijagram softver ni u jednom fiksnom notaciji

Mislim da je problem dolazi iz dva odvojena uzroka. Jedan od njih je činjenica da su neki ljudi smatraju softver dijagrame pomoći i neki ljudi ne. Postoji opasnost da oni koji misle da su oni koji ne bi trebalo da radimo i obrnuto. Umjesto toga, treba prihvatiti da će neki ljudi koriste dijagrame, a neki neće.

Drugi problem je taj softver dijagrami imaju tendenciju da se u vezi sa teškoj proces. Takvi procesi provode puno vremena za crtanje dijagrama koji ne pomažu i zapravo može uzrokovati štetu. Tako da mislim da ljudi treba savjetovati kako da koriste dijagrame dobro i izbjeći zamke, a ne poruku “samo ako morate (izneveriti)” koja obično dolazi iz Xperts.

Evo moj savjet za korištenje dijagrama dobro.

Prva imajte na umu ono što vi crtanje dijagrama za. Primarna vrijednost je komunikacija. Efektivna komunikacija znači odabirom važne stvari i zanemarujući manje važno. Ova selektivnost je ključ za dobro pomoću UML. Ne bi privukli svaki čas – samo važnih. Za svaku klasu, ne pokazuju svaki atribut i rad – samo važnih. Ne bi privukli slijed dijagrama za sve slučajeve korištenja i scenarija – samo … ti sliku. Čest problem sa zajedničko korištenje dijagrama je da ljudi pokušavaju da ih konačan. Kod je najbolji izvor sveobuhvatne informacije, kao što je kod najlakše da ostanu u sync sa kodom. Za sheme sveobuhvatnost je neprijatelj razumljivosti.

Uobičajena upotreba dijagrama je da se istraže dizajn prije nego što počnete kodiranja. Često ste dobili dojam da je takva aktivnost je nelegalno u XP, ali to nije istina. Mnogi ljudi kažu da kada imate ljepljive zadatak to je vrijedno da zajedno na prvo brzo dizajn sesije. Međutim, kada radite takve sesije:

  • držati ih kratko
  • ne pokušavaj da se obrati svim detaljima (samo važno one)
  • tretiraju kao rezultat dizajna kao skica, a ne kao konačan dizajn

Posljednju tačku vrijedi širi. Kada radite neke up-front dizajn ćete neizbježno naći da su neki aspekti dizajna nisu u pravu, a ti otkriti tek ovo kad kodiranje. To nije problem s tim da se onda promijeniti dizajn. Problemi nastaju kad ljudi misle da je dizajn se radi, a onda ne uzimaju znanje koje su stekli kroz kodiranje i pokrenite ga natrag u dizajn.

Promjenu dizajna ne znači nužno mijenja dijagrama. To je sasvim razumno da bi privukli dijagrame koje će vam pomoći razumjeti dizajn, a zatim baciti dijagrama dalje. Crtanje im pomogli, i to je dovoljno da ih isplati. Oni ne moraju postati stalni artefakata. Najbolji UML dijagrami nisu artefakti.

Dosta XP-e koristi CRC kartice. To nije u sukobu sa UML. Ja koristim mješavinu CRC i UML cijelo vrijeme, koristeći god tehnika je najkorisniji za posao na dohvat ruke.

Još jedna upotreba UML dijagrama je u toku dokumentacije. U svojoj uobičajenoj formi to je model koji se nalaze na slučaj alat. Ideja je da je održavanje ove dokumentacije pomaže ljudima da rade na sistemu. U praksi se često ne pomaže uopće.

  • to traje predugo zadržati dijagrama do danas, tako da padaju u raskoraku sa kodom
  • oni su skriveni u CASE alata ili debeli vezivo, tako da niko ne gleda u njih

Dakle, savjet za tekući dokumentacije traje od ovih uočeni problemi:

  • koristiti samo dijagrame koji možete zadržati do datuma bez uočljive bol
  • Put dijagramima gdje su svi lako mogu da ih vide. Volim da ih postaviti na zid. Ohrabriti ljude da biste uredili zid kopiju olovkom za jednostavne promjene.
  • Obratite pažnju na to da li ljudi ih koriste, ako ih ne bacaju.

Poslednji aspekt korištenja UML je za dokumentaciju u primopredaje situaciji, kao što je jedna grupa preda drugom. Ovdje XP Stvar je u tome da proizvodi dokumentacija je korisnik priča kao i svaki drugi, i na taj način svoje poslovanje vrijednost određuje kupac. Opet UML je korisno ovdje, pružajući dijagrami su selektivni da pomogne komunikaciju. Imajte na umu da je kod spremište detaljnih informacija, dijagrami djelovati da se sumiraju i istakne važna pitanja.

Na metafora

U redu, možda to i reći javno – Još se nisam snasao ove metafore stvar. Vidio sam da radi, i dobro rade na projektu C3, ali to ne znači da sam imao pojma kako se to radi, a kamoli kako objasniti kako se to radi.

XP praksa metafora izgrađen na Ward Cunninghams pristup sistema imena. Stvar je u tome da si došao s dobro poznatim set imena koja djeluje kao vokabular da razgovaramo o domenu. Ovaj sistem imena igra u način na koji ime klase i metode u sistemu

Sam izgradio sistem imena izgradnjom konceptualnog modela domene. Ja sam to učinio sa stručnjacima domena koristeći UML ili njegovog prethodnika. Našao sam da morate biti oprezni sa ovim. Potrebno je da se drže minimalni jednostavan skup notacije, i morate čuvati protiv puštajući sve tehničke probleme puzanje u model. Ali ako to otkrio sam da možete koristiti za izgradnju vokabular domena koje stručnjaci domena može razumjeti i koristiti za komunikaciju s programerima. Model ne odgovara klasi dizajnira savršeno, ali to je dovoljno da daju zajedničku terminologiju na cijelu domenu.

Sad ja ne vidim ni jedan razlog zašto je ovo rečnik ne može biti metaforički jedan, kao što je C3 metafora koji su se pretvorili platnom spisku u fabriku traci. Ali isto tako ne vidim zašto zasniva svoj sistem imena na vokabular domena je bilo tako loša ideja. Niti sam sklon da napusti tehniku ​​koja radi dobro za mene da dobije sistem imena.

Često ljudi kritikuju XP na osnovu toga što vam je potrebno barem neki obris dizajn sistema. XP-e često odgovoriti odgovor “to je metafora”. Ali i dalje ne mislim da sam vidio metafora objasnio na uvjerljiv način. Ovo je pravi jaz u XP i onaj koji je XP-e treba da sredimo.


Da li želim biti arhitekta kad odrasteš?

Za veći deo prošle decenije, pojam “softver arhitekt” je postao popularan. To je pojam koji je teško osobno mi koristiti. Moja supruga je strukturalni inženjer. Odnos između inženjera i arhitekata je … zanimljivo. Moja omiljena je “arhitekti su dobri za tri B: grmlje, ptice sijalice”. Pojam je da arhitekti dolaze sa svim ovim prilično crteže, ali to je inženjera koji moraju osigurati da oni zapravo mogu ustati. Kao rezultat toga sam izbjeći pojam softvera arhitekta, na kraju krajeva, ako svoju ženu ne može da me tretiraš sa profesionalnim poštovanjem kakve šanse da stojim sa nekim drugim?

U softveru, pojam arhitekta znači mnogo stvari. (U softveru svaki izraz znači mnogo stvari.) U principu, međutim prenosi određenu težinu za, kao “Ja sam ne samo puki programer – Ja sam arhitekta”. To može prevesti u “Ja sam arhitekta sada – Ja sam previše važno da radi bilo koji programiranje”. Pitanje onda postaje jedno od toga da li odvajanje sebe od svakodnevnih programiranja napor je nešto što bi trebalo učiniti kada želite da ostvare tehničke vodstvo.

Ovo pitanje stvara ogromnu količinu emocija. Vidio sam ljude se jako naljuti na pomisao da oni nemaju ulogu više kao arhitekata. “Nema mjesta u XP za iskusne arhitekte” je često plače čujem.

Baš kao što u ulozi samog dizajna, ja ne mislim da je to slučaj da XP ne vrednuje iskustvo ili dobar dizajn vještine. Zaista mnogi od zagovornika XP – Kent Beck, Bob Martin, i naravno Ward Cunningham – su oni od kojih sam naučio mnogo o tome šta dizajn je oko. Međutim, to ne znači da je njihova uloga mijenja od onoga što mnogi ljudi vide kao ulogu tehničkog vodstva.

Kao primjer, ja ću citirati jedan od naših tehničkih lideri na ThoughtWorks Dave Rice. Dave je prošla kroz nekoliko života ciklusa i preuzela nezvanični plašt tehničkog vodstva, nakon pedeset osoba projekta. Njegova uloga kao lider znači provodi puno vremena sa svim programerima. On će raditi sa programer kada im je potrebna pomoć, on gleda oko sebe da vidi kome je potrebna pomoć. Značajan je znak gdje je sjedi. Kao dugoročni ThoughtWorker, mogao je dobro imati ured mu se sviđa. Je dijelio jedan za dok je kod Cara, menadžer u saopštenju. Međutim, u posljednjih nekoliko mjeseci preselio na otvoreno uvale gdje su programeri rade (koristeći otvorene “room rat” stil koji XP usluge.) Ovo je važno da ga, jer na taj način on vidi šta se dešava, a dostupan je za kreditiranje ruku gdje god je to potrebno.

Oni koji znaju XP će shvatiti da sam opisujući eksplicitne XP ulogu treneru. Zaista jedan od nekoliko igara sa riječima da je XP čini se da se zove vođenje tehničke figura je “trener”. Smisao je jasan: u XP tehnički vođstvo pokazuje uči programeri i pomaže im donose odluke. To je onaj koji traži dobre ljude vještina, kao i dobre tehničke vještine. Jack Bolles na XP 2000 prokomentarisao da je sada malo prostora za usamljenog majstora. Saradnja i nastava su ključevi uspjeha.

Na konferenciji za večeru, Dave i ja smo razgovarali sa vokalnim protivnik XP. Kao što smo razgovarali ono što smo radili, sličnosti u našem pristupu su prilično označena. Svi smo se dopao adaptivni, iterativni razvoj. Testiranje je bilo važno. Tako da smo bili zbunjeni na žestinom svoje protivljenje. Onda je došla njegova izjava, po uzoru na “zadnja stvar koju želim je moj programeri pravljenja i majmunisanja sa dizajnom”. Sada je sve bilo jasno. Konceptualni jaz je dodatno objašnjena Dave nakon toga rekao da me, “ako on ne vjeruje njegov programeri zašto ih zaposliti?”. U XP najvažnije iskusni programer može učiniti je proći na onoliko vještine kao što može kako bi što više junior programera. Umjesto arhitekta koji donosi sve važne odluke, imate trenera koji uči programerima da se važne odluke.


Preokretljivost

Na XP 2002 Enrico Zaninotto dao fascinantan govor da su razgovarali o tie-ins između agilnih metoda i lean proizvodnje. Njegov stav je bio da je jedan od ključnih aspekata oba pristupa je da su oni bavili složenost smanjenjem nepovratnost u tom procesu.

U ovom pogledu jedan od glavnih izvora kompleksnosti je nepovratnost odluka. Ako ne možete lako promijeniti vaše odluke, to znači da je manje važno da ih u pravu – što čini vaš život mnogo jednostavnije. Posljedica za evolucijski dizajn je da dizajneri treba razmišljati o tome kako mogu izbjeći nepovratnosti u svojim odlukama. Umesto da se dobije pravu odluku sada, tražiti način da ni odložiti odluku kasnije (kada ćete imati više informacija) ili donijeti odluku na takav način da ćete biti u mogućnosti da se preokrene kasnije bez previše poteškoća.

Ova odlučnost da podrži reverzibilnost je jedan od razloga zbog kojeg agilnih metoda stavio mnogo naglasak na sistemima kontrole izvornog koda, i stavljanja svega u takav sistem. Dok se ovo ne garantuje reverzibilnosti, posebno za čeznuo-živio odluke, on ipak pruža temelj koji daje povjerenje u tim, čak i ako se rijetko koriste.

Dizajniranje za reverzibilnost podrazumijeva proces koji čini greške pojavi brzo. Jedan od vrijednosti iterativnog razvoja je da brze iteracija omogućiti korisnicima da vide sistema koji se razvija, a ako je napravio grešku u zahtjevima može se uočiti i fiksni prije trošak pričvršćivanja postaje zabrane. Ovaj isti brzog uočavanje je također važno za dizajn. To znači da morate postaviti stvari tako da potencijalna područja problem se brzo testirali da vide šta stigne pitanja. To također znači da je vrijedno radi eksperimente da vidi kako je teško budućih promjena može biti, čak i ako zapravo ne bi sada stvarne promjene – efektivno radi baca prototip na grani sistema. Nekoliko timova su izvještavanje isprobavanje budućnost promjene rano prototip režimu da vidi koliko je teško bi bilo.

Volja za dizajn

Dok sam koncentriran dosta tehničke prakse u ovom članku, jedna stvar koja je vrlo lako izostaviti je ljudski aspekt.

Kako bi se raditi, evolucijski dizajn treba sila koja pokreće da konvergiraju. Ova sila može doći samo od ljudi – neko u timu mora imati odlučnost kako bi se osiguralo da je kvalitetan dizajn ostaje visok.

Ta volja ne mora doći od svih (iako je lijepo ako se radi), obično samo jednu ili dvije osobe u timu preuzeti odgovornost vođenja dizajna cjelini. Ovo je jedan od zadataka koje obično spada pod termin ‘arhitekta’.

Ova odgovornost znači zadržavanje konstantan na oku osnovni kod, u potrazi za vidjeti ako postoje područja to su sve u neredu, a zatim uzimanje brze akcije da ispravite problem prije nego što izmakne kontroli. Vratar dizajn ne mora biti onaj koji to popravlja – ali oni moraju osigurati da se fiksira za nekog.

Nedostatak volje za dizajn čini se da je glavni razlog zašto je evolucijski dizajn može propasti. Čak i ako su ljudi upoznati sa stvari koje sam govorio u ovom članku, bez da će dizajnirati neće održati.


Stvari koje je teško refactor u

Možemo koristiti pravljenja da se bavi svim odlukama dizajn, ili postoje neka pitanja koja su toliko sveprisutni da su teško dodati kasnije? U ovom trenutku, XP ortodoksija je da su sve stvari lako dodati kad ih trebate, tako YAGNI uvijek se odnosi. Pitam se da li postoje izuzeci. Dobar primjer nečega što je kontroverzna dodati kasnije je internacionalizacija. Da li je to nešto što je takva bol da dodate kasnije da treba početi s tim odmah?

Nisam mogao lako zamisliti da postoje neke stvari koje bi spadaju u ovu kategoriju. Međutim, realnost je da i dalje imamo vrlo malo podataka. Ako imate nešto dodati, kao što su internacionalizacija, kasnije vrlo si svjestan napora je potrebno da to učini. Ti si manje svjestan napor da bi zapravo su se, iz nedelje u nedelju, da ga stavim u i održavati ga prije nego što je zapravo potrebno. Također ti si manje svjesni činjenice da možda i dobili to pogrešno, a time i potrebno da malo pravljenja u svakom slučaju.

Dio opravdanosti YAGNI je da su mnogi od tih potencijalnih potreba završiti ne potrebno, ili barem ne na način na koji biste očekivali. Od njih ne radi, vi ćete uštedjeti mnogo truda. Iako neće biti napor potreban da refactor jednostavno rešenje u ono što vam zapravo treba, ovo pravljenja će vjerovatno biti manje posla nego izgradnju svih upitna funkcije.

Još jedno pitanje koje treba imati na umu u ovom je da li znam kako se to radi. Ako ste učinili internacionalizacije nekoliko puta, onda ćeš znati obrasce trebate zaposliti. Kao takav si veće šanse da bude kako treba. Dodavanje anticipirajući strukture je vjerojatno bolje da ste u tom položaju, nego ako ste novi problem. Dakle, moj savjet bi bio da, ako znate kako se to radi, ti si u poziciji da sudi troškove to rade sada to radi kasnije. Međutim, ako ste ne to i ranije, a ne samo niste u mogućnosti procijeniti troškove dovoljno dobro, ti si i manje šanse da to dobro. U tom slučaju trebalo bi da je dodati kasnije. Ako vam se dodati onda i da je bolno, verovatno ćete biti bolje nego što bi bio da si ga dodao rano. Vaš tim ima više iskustva, znate domenu bolje, i razumjeti zahtjeve bolje. Često u ovom položaju se osvrnete na to kako je lako bi bilo sa 20/20 vremenske distance. Možda je to bilo mnogo teže da ga dodajte ranije nego što mislite.

To se povezuje na pitanje o naručivanje priča. U planiranje XP Kent i ja otvoreno ukazao naše neslaganje. Kent je u korist Najam Poslovni vrijednosti biti jedini faktor u vožnji naručivanje priča. Nakon početnog neslaganja Ron Jeffries sada se slaže s ovim. I dalje sam nesigurna. Vjerujem da je balans između poslovnu vrijednost i tehničke rizik. Ovo bi me voziti pružiti barem neke internacionalizaciju rano da se ublaži taj rizik. Međutim, ovo je jedini pravi ako je potrebno internacionalizacije za prvo izdanje. Dobijanje na izdanje što je brže moguće je od vitalnog značaja. Sve dodatne složenosti vrijedi raditi nakon tog prvog puštanje na slobodu ako to nije potrebno za prvo izdanje. Snaga isporučen, trčanje kod je ogroman. Fokusira se pažnja kupca, raste kredibilitet, i masivni izvor učenja. Učiniti sve što možete da bi taj datum bliži.

Sa svakom novom tehnikom da je prirodno da su njeni zagovornici su sigurni od svojih graničnih uslova. Većina XP-e su rekli da evolucijski dizajn je nemoguće za određeni problem, samo da otkrijete da je zaista moguće. To osvajanje ‘nemoguće’ situacije dovodi do povjerenje da su sve takve situacije mogu prevazići. Naravno, ne možete napraviti takvu generalizacija, ali do XP zajednice pogađa granice i ne uspije, ne možemo nikada biti sigurni gdje te granice leže, a to je pravo da pokuša gurnuti izvan potencijal granice koje drugi mogu vidjeti.

(U nedavnom članku Jim Shore raspravlja o nekim situacijama, uključujući i internacionalizacije, gdje potencijalni granice ispostavilo da ne bude prepreka nakon svega.)


Je dizajn događa?

Jedna od poteškoća evolucione dizajna je da je veoma teško reći da li dizajn se zapravo dešava. Opasnost od preplitanja dizajn sa programiranjem je da programiranje može dogoditi bez dizajn – to je situacija u kojoj Evolucijski Design odstupa i ne uspije.

Ako ste u razvojnom timu, onda osjetiti da li je dizajn se događa po kvalitetu baze koda. Ako je kod bazne postaje sve složeniji i teži za rad, ne postoji dovoljno dizajn uzimajući učinio. Ali, nažalost, to je subjektivna gledišta. Mi nemamo pouzdane metrike koji nam mogu dati objektivan pogled na kvalitetu dizajna.

Ako se ovaj nedostatak vidljivosti je teško za tehničku ljude, to je daleko više alarmantno za ne-tehnički članovi tima. Ako ste menadžer ili kupca kako vam mogu reći da li je softver je dobro osmišljen? Važno je da ti, jer će se loše dizajniran softver biti skuplji modificirati u budućnosti. Nema jednostavan odgovor na ovo, ali evo nekoliko naznaka.

  • Poslušajte tehničke ljudi. Ako se žale na poteškoće donošenja promjena, onda uzeti takve pritužbe ozbiljno i dati im vremena da popravi stvari.
  • Držati na oku koliko kod se baci. Projekat koji radi zdrav pravljenja će biti stalno brisanje loše kod. Ako se ništa ne uzimajući izbrisani onda je gotovo sigurno znak da nema dovoljno pravljenja događa – što će dovesti do degradacije dizajna. Međutim, kao i svaki metričkih to može biti zlostavljana, mišljenje dobre tehničke ljudi aduti bilo metričkih, uprkos subjektivnosti.

Tako da je dizajn mrtav?

Ne na bilo koji način, ali priroda dizajna promijenio. XP dizajn izgleda za sljedeće vještine

  • A stalna želja da zadrži kod kao jasan i jednostavan kao moguć
  • Refaktorisanje vještine tako da možete sa sigurnošću napraviti poboljšanja kad god vidim potrebu.
  • Dobro poznavanje obrazaca: ne samo rješenja, ali i cijeneći kada ih koristiti i kako evoluirati u njima.
  • Dizajniranje sa ciljem da se buduće promjene, znajući da odluke sada će se morati mijenjati u budućnosti.
  • Znajući kako da komuniciraju dizajna do ljudi koji treba da ga razumiju, koristeći kod, dijagrami i iznad svega: razgovor.

To je zastrašujući izbor vještina, ali onda biti dobar dizajner je uvijek bilo teško. XP zapravo ne čini ništa lakše, barem ne za mene. Ali mislim da XP ne daju nam novi način razmišljanja o efikasan dizajn, jer je ponovo napravio evolucijski dizajn prihvatljivo strategije. I ja sam veliki fan evolucije – inače ko zna šta bi bilo?

Lazarus/Delphi/Programiranje Tutoriali

Original: http://sheepdogguides.com/tut.htm

U potrazi za pomoć kako da rade konkretne stvari u Delphi, Pascal ili Lazarus? Imaš pravo sajt! Slobodno koristiti ove tutorijale u programiranju kurseva, ali kredit od izvora bi bilo poštovati. Kad smo kod toga … sljedeće je bio od velike pomoći u svoju programiranje: ‘Borland Delphi Kako-To’, iz Waite grupe, po Frerking, Wallace i Niddery, ISBN 1-57169-019-0. Njegov pristup odgovara mojim potrebama, i pomogao inspirišu oblik ovih vježbi: Većina su samostalne objašnjenja o tome kako da ostvari određeni zadatak, ili koristiti određenu komponentu jezika.

Prva uhvatiti svoj Lazarus … ili Delphi! I sada volim Lazarus, jer je besplatan i stvara aplikacija za više platformi. Imam još naići na nešto Lazarus to ne mogu Delphi mogao. Lazarus je bio moj glavni programski jezik od jula 2011. Dobivanje kopija Delphi  nije tako lako kao što je nekad bio, ali se nadam da i dalje može učiniti, ako želite da istražite alternativa Lazara.

Lazarus – Sve što sam koristiti sada, osim za održavanje legacy aplikacije

Lazarus je vrlo kao stariji, komercijalne RAD, Delphi. Možete raditi na Windows, Linux i Mac OS. Možete sastaviti svoj kod za kreiranje aplikacija za Windows, Linux ili Mac. I da, u principu, možete prodati kod tako stvorio. (Pogledajte Lazarus sajt za “sitna slova” o tome).

Već nekoliko godina, sve moje nove urađeno sa Lazarus. Mnoge stvari objasnio na mom Delphi stranice “rad” pod Lazarus. Osim toga, imam neke Lazarus tutoriali za vas. (Oni nastao nakon što sam se preselio iz Delphi. Nisam napisao novi Dlephi tutorial neko vrijeme. (Ali i dalje “maintian” stare)).

Sam započeo rad temeljno moje Delphi tutorijale, označavanje ih naznake bilo čega što nije baš isto u Lazarus. Ako pokušavate da uradite Lazarus sa jednim od mojih Delphi tutoriali, i ne ide dobro, molim te pisati i recite mi koji tutorial radite sa …. Preći ću to moje “dodati komentare na ovaj” listi! Također sam počeo  neke Lazarus specifične tutorijale.

 

Prijateljski prijatelj web-stranice

Cilj mi je da se mojim stranicama preglednika prijateljski. Učinite vaš prozor preglednika širok kao vi to želite. Tekst će lijepo teče. Lakše je čitati u uskom prozoru … a ostatak ekrana će biti besplatan za Delphi ili Lazarus posao! Držite kontrolu ključ (“ctrl”) i pritisnite znak plus, minus ili nula za promjenu veličine teksta u Firefoxu i druge dobre pretraživača. Ovaj i još jedan dobar nagovještaj objasnio na mojoj moći pregledavanje stranice!

Postoji više bilješke na dnu stranice o drugim ponudama, moj uredničke filozofije, dugme za mene e-mail, kao i tražilice će vam pomoći da pronađem stvari u mom mjestu.

Za malo zabave, vidim demonstraciju pisanja Delphi- kao aplikacija sa ništa više od Open Office!

Oprosti malo drskost? Ste došli ovdje, nadam se, za Lazarus, Delphi ili Pascal tutoriali. Samo prije nego što idu na njih, pozivam vas da razmotrite neke stranice sam proizveo u pokušaju da vas ubedi da je besplatan, multi-platforma baze podataka ugrađen u Open Office, pod nazivom “Base”, ili “ooBase”, zaslužuje vaše razmatranje.


Pogledajte takođe: Delphi predmeta:

Dalje na moje dugogodišnje Delphi tutorijale (Sadržaj slijedi), imam niz eseja koji će vam pomoći postati dobar Delphi programer ako uzmete vremena za rad svoj put kroz njih. Odgovor Vodiči mogu rješavati u bilo sekvenci vam odgovara. Eseje Delphi kursa su najkorisniji ako pročitate u nizu. Delphi  Kurs  Sadržaj

 


Sadržaj, Delphi i Pascal Vodiči:

Delphi … ..

Nivo Zero:
Pascal naravno: Ako niste novi samo u Delfe, ali i nove programiranju, možda želite da studirate Pascal prvo malo! Tu je besplatan proizvod, Pascalite, koji možete koristiti za to. Ono što naučiti sve će doprinijeti da dobijem ide lako s Delphi. Rad sa Pascal prvi vam omogućava da savladate jedne grupe pitanja (što će bitno u Delphi programiranje, previše) prije nego što se bore sa njima i neka pitanja koja su uključeni u bilo koji Windows jezikom. Stranica o mom naravno također govori kako (6/2007) da se dobije odličan Borland Turbo Pascal, takođe, koji će odgovarati neke potrebe.

Žele malo zabave? Ako imate odličan, besplatno, Open Office instaliran na Windows ili Linux stroj, možete pisati aplikacije slične na mnoge aplikacije u ovom tutorial! Sam napravila mali demo, koji se sastoji od jedne “dokument” za Open Office-a wordprocessor, ooWrite. Ako imate Open Office na uređaju i preuzeti moje demonstracije, vidjet ćete “stranu” od “wordprocessor” materijal sa dugmetom, uređivanje kutiji, dva spin kutije, a neke etikete, za izlaz. Vidjet ćete tekst manipulacije, poruka kutije, i aritmetike. Gotovo kao da je stvorena sa Delphi! Zabava! (Detalji o tome kako su kontrole su “uživo” su date). (Demo je napisana za OO verziju 2. Vjerujem da je ista stvari bile moguće u verziji 1.)

Nivo 1 Vodiči:

Početak prve klase ovde: Ali, nemojte se iznenaditi da nađete na Lazarus tutorial! Na ovom nivou, Delphi i Lazarus gotovo ne razlikuju. Ovaj Lazarus tutorial je napisano u julu 2011. godine, nedugo nakon mog Delphi tutorial web-lokaciji zrelo. Delfi “Start ovdje” je napisana prije nego što sam znao ono što sada znam!
Nastaviti ovdje, ali opet, nemojte se iznenaditi da nađete na Lazarus tutorial! Kao što je bio slučaj s prethodnim tutorial, ovo Lazarus tutorial je napisano u julu 2011. godine, nedugo nakon mog Delphi tutorial web-lokaciji zrelo. Tutoriali Delphi početnike ‘su napisane prije nego što sam znao ono što sada znam!
(U ovom trenutku, postoji i neki nivo 1 stvari u Nivo 2 tutorial pod nazivom ‘Dodavanje stvari jedinicu’)
Drugog reda “Počnite ovdje” Za to je potrebno potpuno početnik kroz prvi projekt, pokriva točke koje se odnose na bilo koji projekt, i pokriva neke stvari o konvencijama se koriste u drugim tutoriali.
Celu sliku Pregled dijelova bilo Delphi projekta. Ovo je više ‘filozofska’, manje ‘kako’, nego većina mojih tutorijala.
Potprograma: procedura i funkcija. Osnovni gradivni blokovi. Ovo je važan tutorial, i napisan u maju 2007. godine, kada sam proteklih što neke greške prisutne u ranijim tutorijalima!
Čineći ga raditi: Savjeti i savjete o ispravljanje pogrešaka. Također više ‘filozofske’, manje ‘kako’, nego većina mojih tutorijala. (Vidi i debugging informacije Pascal u sekciji Pascal ispod.)
Uredi polje OnPromeni upravljač događaja: Ne boj se ako koristite ovaj link i nađete u Lazarus- zemljišta. Osim ako sam jako varam, ono što vidite u tutorial će raditi jednako dobro u Delfima, i pomoći vam shvatiti događaje i događaj rukovanje.

Nivo 2 Vodiči:
Kako … ..  Napravite ‘bip’ ili neki drugi zvuk. 
Kako … ..  Blank monitora tako da ga isključite. 
Kako … ..  Reagovati na akcije miša korisnika.

____________________________________
POSEBAN!  >>> Pročitajte ovo kad ste postali ugodno što Delphi posao, barem za proizvodnju malih stvari. To je tutorial objašnjava način da ostanu u zadužen za aplikaciju koju su u razvoju. Predstavlja “protok crtati” za događaj prešao okruženja: dijagrama stanja. Ima izvorni. Pokriva važan generalno vještine koje će vam omogućiti da napreduje do  donošenja stvari po dizajnu, umjesto po “poke i nadam se”. Te vještine vam omogućiti da završe veće, pouzdan, projekata. Usput, bušilice i praksa Aplikacija je razvijena što se lako može produžiti u nešto korisno.
___________________________________

A sada je “obični” Level 2 tutoriali ….

Probaj ovaj …  napisao sam ovo maj 2011 … nakon mnogo godina korištenja Delphi, i pisanja ovih tutoriala. Su mi rani tutorijale “savršen”? Ne! I ja ću pokušati da ih izmeni jedan dan, očisti bita stvari sam kasnije saznao nisu bili toliko pametan. Ovaj tutorial vam govori kako da uradite nešto … Ja ću na to … ali ima i neke važne opšti savjeti o korištenju Delphi, i na programiranje u cjelini. Predmet tutorijal stvara malo aplikacija koja predstavlja nasumično odabranih citata iz tekstualne datoteke citata. Tutorijal dolazi sa punim izvornim kodom, kopiju gotovih .exe datoteku, pa čak i uzorak skup citata za korištenje. (To su u arhivu .zip, a link za download je u vodiču).
Zadržavanje kupca zadovoljan … Kako vaš program može odrediti želje vaš korisnički (Pt 1. V. također Pt 2, u razini 3). Ovaj tutorial dolazi “recommended”: vidi ovo, molim vas, čak i ako želje utvrđivanje korisnika nije glavna stvar koju ste tražili?
Meni, “O” strani i Prekini u meniju … Kako ih dodate u projektu.
Rukovanje datoteke … čitanje/pisanje datoteka podataka, sa izvornim kodom. Prvi dio. Kada ste zadovoljni s materijalom u ovom tutorial, tu je produžetak toga u 3. nivo Atipični tutoriala ovdje u tome što se naginje prema diskusiju gotovog proizvoda više nego što pokazuje izgradnju iz temelja.
Rukovanje file … Kako čitati podatke iz datoteka na disku, i pisati takve datoteke. (Dugo tutorial)
Re-pomoću projekta …  Kratki vodič za izgradnju novog projekta od ranije, slično, jedan.
Dodavanje Stvari na jedinicu … Gdje se stvari. Stvari koje bitno. Pitanja opsega.
Ovaj tutorial je puno dobrih stvari… ali vrlo neuredan, loše organizovana u ovom trenutku. Ja ću pokušati da to srediti, ali za sada: Vi ste bili upozoreni!

Sintaksa oznake … kako da pročitate važne stvari.
Ćete naučiti više od Borland “Help” datoteke jednom kada savladate informacije u ovom uputstvu.
Dijagrama stanja … I preporučujemo vam da pročitate ovu kratku Općenito o pomoću dijagrama stanja. Oni vam pomoći zadržati jasnu ideju onoga što pokušavate stvoriti. Dijagrami su dobri za male “uglovima” vašeg projekta, ali s obzirom na Windows (i Linux) su događaj prešao, dijagrami su ograničeni u njihovu korisnost za upravljanje ukupnu sliku.
Kompletna Primer … Ovo je napisano u maju 2007. godine, i više poliranog od nekih od tih tutoriala. Ona dobiva off na spor početak, ali nakon što je u toku, to vas vodi vrlo brzo kroz stvaranje nešto veće od tipičnog Nivo Dva aplikacija. Ono što radi nije poenta… Poenta je kako je izgrađen aplikacije, iz prazne forme, pomislio faze, do gotovog stvaranja. Aplikacija manipulira znakova.
Parametara komandne linije …  Molim Vas da pogledate ovo … to je sasvim kratko. Vi ćete biti prikazan na način da se neke od prednosti .ini datoteka i registra postići … bez pretpostavkom da pišem stvari na sisteme vašeg kupca.
Koristeći TTimer komponente … To ne samo da pomaže u pokretanju koristeći važnu komponentu, ali će vam pomoći da proširite svoje sposobnosti za rad sa Windows osnovnih događaja prešao prirode. Ovaj tutorial je teško uredio 5/07 i  a) je uglađen i b) pokriva neke bitne aspekte pisanja Delphi programa. To nije lako ili kratka, ali se preporučuje ako ste spremni učiniti napor da napreduju!  Ne radi se samo o Timer komponentu.
Jedan primer – bonus za čitanje vežbača…  To dolazi sa kompletnim izvornim kodom za vas da pregledate. To pokazuje koristeći OnPromeni slučaju edit box da odgovori na korisnički unos. On takođe koristi tajmer za prikaz popisa riječi na ekranu za mogućnost čitanja vremenski ograničena. Korištenje jednostavnih Pokušajte … Osim blokova pokazalo, u rukovanju na EConvertError izuzetak.
Principi programiranja, i ScrollBars, GetTickCount, itd … Ovo dolazi sa kompletnim izvornim kodom za vas da pregledate. To pokazuje ScrollBars u akciji, ali i “odstupa” da pokrije niz općih mjesta, kao što je gniježđenje postupak (ili funkcija) izjavama, koristeći TabOrder, i postavljanje omogućava. Korisne GetTickCount dobija spominje, previše.
Koristite događaja, Luke … Ovaj tutorial je počeo kao uvod u niz rešetke, i to čini ih uvesti. Međutim, dok sam radio na tome, ja “otkrio” više nego što sam znao o korištenju događaju prešao operativni sistem. Tutorijal takođe ilustruje i dobro inkrementalni razvoj. Preporučuje se svima, a ne samo one koji traže pomoć za niz mrežama. Nije strašno dugo. Ona također vodi do još važnije Nivo 3 tutorial.

Nivo 3 Vodiči:Dosta stvari dobio ovom nivou nisu kompleksni, ali su ovdje stavili u svakom slučaju jer nisu od suštinskog značaja za Delphi programiranje u cjelini. Neki drugi su prilično jednostavne, ali dolaze bez puno podrške tutorial materijala.

 

Dobivanje vaše aplikacije automatski kopirate tekst u sistemu clipboard ili zalijepite stvari u vaše aplikacije iz privremene memorije: Neuobičajeno kratak tutorial … ali “radi ono što piše na tin”, i tehnike su korisne. To je u razini 3 samo zato što te tehnike nisu široko važni, kao i tutorial je pisano za čitaoce koji nisu novi u Delphi. Udžbenik je zapravo iz moje Lazarus tutorijala kolekciju, ali mislim da sve u njemu radi na isti način u Delfima … ali moram priznati da nisam testirao to! Da li pisati i žaliti ako sam u pravu; spasiti sledeću osobu muke?
Koristeći Ini datoteke, štampač, kako su se događaji pomoći, podaci validacije checksum, i raznih “osnove” Neobična udžbenik. Veliki (-ish) “pravi” aplikacija, koje sam napisao jer mi je bilo potrebno, a ne zato što je to bilo korisno za opise nekih programiranje vještina. Udžbenik ima u sebi mnogo više nego neke, uz mnogo manje objašnjenje. Gotovo ništa od uobičajenih blow- opis podzakonskim udarac razvoja odozdo prema gore, na primjer.
Također, to je prvi! Riječ je o programu pisane koristeći Lazarus! Mislim da je sve u tutorial se odnosi jednako dobro Delphi rad. Prethodno (prije septembra 2012.), da li sam nekoliko konverzije Delphi tutoriali da ih “radi” sa Lazarus. (Ne mnogo “pretvaranja” je potrebno, kao pravilo.) Evo, po prvi put, program koji je stvoren pomoću Lazarus, ali koja ima pouke za Delphi programer.
Prolazi podataka i iz potprograma. Eksternih uređaja. Koristeći korisnički definirane evidencije u “paket” je broj vrijednosti u jedan “paket”. Uz nastavak o tome kako kod može se staviti u samostalnom eksternim jedinicama, za ponovnu upotrebu između više projekata. (Ne … ne mislim što komponenta … nešto jednostavnije, sa manje posljedice. Napisao u maju 2011. godine i više koncizan, vredniji od mnogih, ako vam je potrebna vještina objasnio. You “može bez” njih .. ali ako počnete da koristite tehnike objasnio ovdje, vaš programiranje može postati više robustan, i možda brže završiti projekte.
vosak, vosak navijača …  A jednostavna aplikacija, sa izvornim kodom. ne radi ništa strašno pametno, ali pokazuje kako jednostavno i “čist” aplikacija može biti. Ova aplikacija je izgrađen za stvarnu, stvarnom svijetu treba, povezan sa moje učešće u Pachube “internet stvari” podataka posredovanje projekta. Ali ima drugih aplikacija, i stvari za podučavanje korisnika čak i ne-Pachube. Napisana u januaru 2011. godine, a vrijedan najmanje obrano kroz, ako ja to tako kažem sebi!

Ovaj >>> * * Čestitam vam! … ne samo za informacije o višestrukim oblicima, pametan korištenje događaja voziti se mijenja, kao i informacije o prolazu kontrole parametara, ali i zbog toga što jest je dugo napisana nakon većina materijala u mjestu, i pokriva generalni bodova koji će vam pomoći napraviti bolji posao od pisanja aplikacija. (Objavljeno 9/06).
Držeći kupac zadovoljan …  Kako vaš program može odrediti želje vaš korisnički (Pt 2. Vidi i Pt 1, u razini 2).
Datoteke pomoći …  što je veza između njih i vašeg programa. (A kratko uputstvo). (Koristim HelpScribble  za kreiranje moje .hlp i .chm datoteke. Imam  stvaranje HelpFile stranice razmatranje, previše).
Stvaranje niz Uredi kutije … trikove objasnio ovdje će raditi sa drugim komponentama, previše.
Stvaranje nešto da se koristi od strane mnogih programa … pokazuje kako ponovne upotrebe koda. Napišite nešto jednom, koristiti u mnogim aplikacijama. Tutorial ne uzmete sve do registracije komponentu tako da postane dio Delphi komponenta Palette, ali to vam pokazati kako da napravite nešto što može optimizirati razvoj niza programa koji svi trebaju zajednički element, na primjer poruku kutiju sa autorskim pravima i verziji informacije. Postoji još jedan tutorial o ovoj važnoj temi u četvrtom nivou, gdje se koriste neke dodatne mogućnosti koje pruža Delphi.
Alternativna “stvarajući nešto da se koristi od strane mnogih programa” …  ^^ Vidi i prethodni tutorial ^^. Ovaj “alternativni” je stari tutorial, ne tako dobro predstavljena kao novija (post o 1/04) one. To, međutim, opisuju stvaranje Visok Rezultat Tabela. Pokušajte da zanemari “koji se koristi od strane mnogih programa” elementima … bolje su objasnili u prethodnom udžbenik, ali ako High Scores sto je ono što vam je potrebno, ovo je tvoj tutorial!
Ipak, rukovanje drugu datoteku podataka tutorial Postoji dosta na ovom sajtu! Ovo je jedna vrlo koncizan, a noviji od većine, što je napisano u julu 2011. godine koristi dopisa. Da držite datoteku koja se masira po programu, jedan kao tampon za izgradnju rezultat. Također ide u koristeći OpenDialog i SaveDialog … umm … dijaloge! Udžbenik se može koristiti i kao koristan školjka slomiti kičmu dobivanja mnogih manipulacija datoteku aplikacije napisane. Kod je prilično “uredan”, vrijedan brzo obranog za neke druge “trikove” koji se koristi usput.
Podaci rukovanje datoteku  plus  pomoću dijaloga za čitanje i pisanje podataka u/iz datoteka. Drugi dio, iako možete početi ovdje. (Nemojte početi ovdje samo ako je materijal na dijaloge je tvoj jedini interes.) U prvom dijelu je u 3. nivo Delphi komponente OpenDialog i SaveDialog objasnio. (To su dobre vesti, a ne previše). Također obuhvaćeni: stvaranje vlastite dijalog forme. Izvorni kod dostupan za preuzimanje. Atipični tutoriala ovdje u tome što se naginje prema diskusiju gotovog proizvoda više nego što pokazuje izgradnju iz temelja.
Test program … Ilustruje raznovrstan stvari, koristi TMemo objekat, pokazuje kako implementirati “Da li želite da sačuvate vaše podatke prije nego izađete?” Kviz program pamti prošlost performanse korisnika, na pitanje nivo pitanje. Izvorni kod dostupan za preuzimanje.
Unos podataka program … verovatno, samo po sebi, bez koristi. Ali pokazuje neke korisne trikove, može poboljšati vaše poimanje mogućnosti koje događaj prešao okruženju stvoriti. Izvorni kod dostupan za preuzimanje.
A start na kucanje tutor igra … Nedovršena u ovom trenutku. Ilustrira razvoj aplikacija.
Kako pristupiti datotekama baze podataka … To je izuzetno lako napisati program u Delfima koji vam omogućuje pregled i uređivanje datoteka dijeli sa Paradox, dBase, Access, itd Saznajte kako ovdje!
Igranje WAV datoteke s MediaPlayer …Bilo da želite da vaš program da kažu “Imate nove pošte…”, ili samo treba nadređeni “Zapp!” Zvuk, evo kako. I šta ste naučili ovdje vjerojatno radi za igranje drugim medijima, previše.

Čitajući džojstik … rade u Delphi 2 i gore. Revidirana i proširena maja 04. A štoperica program je kreiran kao ilustracija. Vidi i na nivou 4 džojstik tutorial. Izvorni isporučuje.
A program kontrole secirao …  A program potvrdu i boolean varijable rade zajedno se analizira. Top izvorni isporučuje.
Koristeći DLL. Uvod …  Kako koristiti funkcije i procedure iz biblioteke dinamičkih veza tuđe (DLL). Jedan je osiguran. Tu je i dodatni drugi dio o tome kako napisati svoj DLL. Tutorijal dolazi sa izvornim kodom, i unaprijed napisana DLL za vas da koristite dok ste naučili. Vidi i moj nivo 4 tutorijal ako želite više na DLL.
Štampariji liniju u vrijeme … ovaj tutorial pokazuje kako poslati tekst na pisač liniju u jednom trenutku. Nema složene koncepte, ali potreba nije univerzalno, a pomoć je minimalna .->
A Word Search Program … Neće vam trebati program, ali možda neke od tehnika koje se koriste za završetak će biti od interesa! Izvorni i .exe pruža. Malo držati za ruku o tome kako da Delphi posao, samo komentariše i u gotovom proizvodu.
Izaberite ćeliju, bilo koju ćeliju …  Navodno, ovaj tutorijal je o korištenju kod za odabir ćeliju niza mreže u vrijeme izvođenja. Usput, neki općenito važan materijal se pitanje koristeći reference na Delphi stvorili objekte, npr objekt u “korisnik” koji proizlaze iz Delphi stvoren za obradu događaja.

crtanje ili gledanje slika/grafika, ETCETERA :  Samo da vam pomoći da pronađete stvari, ja grupisanje (*) sledeće Nivo Tri priručnici zajedno. Dok deo svakog od njih je oko crtanje slika, radi grafiku sa Delphi, gotovo svi oni pokrivaju druge teme, tačke, pitanja usput ….
Uvod u grafiku …  MoveTo (100,10); DrawTo (300,300); Dovoljno je jednostavna … Link na početku ovog stava će vas odvesti na Lazarus tutorial sam napisao na Božić, 2013. godine najviše onoga što je u narednom, stariji tutorial, vjerojatno bolje govori. Sadrži note na vrlo male razlike u ono što radite u Delphi vs ono što radite u Lazarus. Probajte prvi. Ako to ne reći ono što vam treba, pokušajte …
* Uvod u grafiku … MoveTo (100,10); DrawTo (300,300); izgleda prilično jednostavno … ali to nije dovoljno da se napravi linija koja će i dalje biti tu nakon što ste smanjili onda vratiti prozor. (Pogledajte prethodni unos u ovoj tablici sadržaja sada). Link stava čitate također govori kako stvoriti uporni grafike, i (!) Govori ukratko od bitmapa.
* Još jedan crtež tutorial, sa dodatnim bita! … Ovo je jedan od mojih pažljivo učiniti tutoriali. Je završen u maju 2007. godine, kada sam se da ih piše za neko vrijeme. Prostire se na rad u prethodnom tutorial (“Uvod u grafiku”), a također pokazuje malo o izgradnji lako mijenjati programe. Grafički generisana je samo malo prilično zabavno bode zabave na ljude koji su mislili da su pristupni kod DRM se može držati u tajnosti. Tu je i malo o različitim osnovama broj. (“Hex”, itd)
* Slike i pristup datotekama … Display .bmp slike na formi. Pristup sve datoteke u određenom folder na disku, koristeći to kao osnova za “Možete li prepoznati …” vježbe. Tutorial ima grube ivice, ali puna izvor popis programa rada dao. (Delphi verzije 4 i 7, u najmanju ruku, omogućuju vam da prikažete JPEG. Ja ne znam koja je verzija Delphi je došao sa ovu funkcionalnost … email me ako znate? … a ja tražim freeware komponentu sa izvornim kodom ( ili iz uglednog izvora, kao što su sourceforge ili Tucows) Za komponentu kako bi se omogućilo pokazuje JPEG slika u Delphi 2 aplikacijama … opet, molim vas e-mail ako vam mogu pomoći? A u vezi misao: Delphi 4 (standard) se može instalirati na PC samo sa serijskim brojem i kod autorizacije. Ne treba ti “dozvola” iz Borland (ili neki drugi korporativni … npr Microsoft (!)) Servera. Da li stvarno misliš da je gospodin Gate korporacija će pustiti da igra zauvijek sa svim alatima izdali “slobodne” nedavno? (pre-5/07) I da li će druge korporacije uvijek biti tu da ponovo omogućili stvari koje se presele u novi PC? Daj mi proizvode koji mogu instalirati web-manje, svaki put!
* Grafovi za matematiku … Ovo dolazi sa izvornim kodom i sastavio exe. To je dugoro than- uobičajeni tutorial zato što se uzimaju kroz razvoj stvarne, korisne aplikacije. Ne postoje posebno teško koncepata, osim, možda, iz upotrebe jednog potprograma pružiti OnChange za pretovar nekoliko edit kutija.

Za pisanje screensaver: A screensaver se ne razlikuje mnogo od bilo koje druge Windows aplikacije. Mark R Johnson je pripremio odličnu raspravu u istom stilu kao i moj tutoriali, i ne vidim razloga da se ponovno izmisliti da točka. (On je čak i napravio je izvorni kod dostupan.) Ja sam to stavio u Nivo Tri zbog nekih dosadnih sitnica koje morate obratiti. Šta imate screensaver  do  može biti vrlo jednostavno.

Ako je, uzgred budi rečeno, vi ste samo u potrazi za program screensaver generiranje, za prikaz vaše fotografije, ja sam uradio komparativni pregled nekih stvari … mnogi besplatni .. koje mogu biti od interesa.

Uslugu, molim vas? Ako znate za dobar Windows screensaver koji zadovoljava sljedeće, molim vas javite mi? (Trebam samo .exe, a ne izvorni kod.)
Shareware, registracija manje od $20.
Prikazuje rotirajuće kocke.
Slika na lice kocke korisnički definirane … nadam se do
neke vrlo jednostavnim sredstvima. Najbolje od svega: Screensaver samo
koristi šest slika na poznatoj lokaciji. U mom savršen
svijet, mijenja sadržaj jednu od datoteka će
promijeniti sliku na kocke. Ne smeta mi da se
ograničena na fiksnim imenima datoteka slika.
Urednik je e-mail adresa. Prijedlozi pozdravio! 
Zahvaljujem vrsti čitača koji me je ukazao na Xara je rotirajuće kocke screensaver. To je sada radi na mom mašinu za nekoliko mjeseci bez ikakvih problema. Čak ispunjava moje “Promenite ekran mijenjanjem sadržaj datoteke” uslov, mislim. To-boje lica jer su okrenuti … bitan “frill” da se postigne najbolji učinak, čini mi se. Info i program na Xara sajtu.

Nivo 4 Vodiči:
Najveći i najbolji do danas: povezivanje više uređaja Arduino “master/slave” setup: Uz program koji radi u “master” PC, što je Arduino “rob”, sa LED i “zvonce” prekidač može biti “prešao”/pratiti. Prozor na ekranu PC vam govori iz trenutka u trenutak da li je tipka “zvonce” povezan sa Arduino, a tu su i dva dugmeta: “Okreni LED On”, “Turn LED Off”. Jednim klikom miša na master, PC, LED na Arduino se može uključiti ili isključiti. Njih dvojica su povezani jednostavnim serijske veze. Ne morate Delphi da imaju koristi od materijala u vodiču, iako je PC deo je formulisan u Delphi smislu.

Preko serijskog porta … Prvi dio:  Slanje poruka sa PC preko serijske veze, npr RS-232 … ali samo u jednom smjeru.
Preko serijskog porta … Part Two:  Bidirectional komunikacijske, slanje poruka u svakom slučaju između dva uređaja spojena serijski kabel, ili virtualne serijske komunikacijske veze. Ovo ima elemente za Hyperterminal klon. (Pogledajte “PuTTI” (koristite Google) ako želite gotov “Hyperterminal”).

Preko serijskog porta … Hyperterminal klon: Nije dobro kao Hyperterminal ili PuTTI … ja sam ih spomenuti samo da vam dati ideju o tome šta je program radi. To šalje iz dopisa, znak po znak, kao brzo kao što ih unesete, i prima podatke preko serijskog potok, i prolazi stvari dopis. Ovaj tutorial je posebno sirove u ovom trenutku, ali vam ponuditi mnogo koda. Program je raspravljalo je na kraju pretvara u “najveći i najbolji”, opisano gore.

STATI PRITISNUTI!!! Ja sam, nakon mnogo godina pokušavanja, napokon Provalili iz osnovne rutine za Hyperterminal klon. Program, izvorni i sastavio exe je na raspolaganju u “Upotreba serijski port, Part 2” (gore). Ako radite sa povezivanje uređaja s serijske veze, možete pronaći i moj Arduino Serijski Comms stranici koristan.

Je “pokušati … osim …” mehanizam za hvatanje grešaka Ovo je jedna od onih stvari koje ti ne “potrebu” … ali to je vrlo korisno kada ga savladate. I to vam daje način za kontrolu šta se dešava kada, na primjer, svoju aplikaciju nailazi ček pogreška dometa. Ovaj esej također ide u brojnim pitanjima dobre programiranja prakse. Ne, nažalost, možda, samo “reći da je odgovor”. Prvi nacrt jula 2011. godine, kada sam bio koristeći Delphi i pisanje ove tutorijale za više od deset godina.

Pristupanje Port Hardver … ovaj tutorijal govori o freeware DLL za slanje poruka i sa računara preko paralelnog ili serijskog porta. Tutorial uključuje pomoć o tome kako ga koristiti. Moglo bi se voziti elektronike svog izumeli priključen na PC-u. Ako ste novi u DLL, postoji  Nivo 3 tutorial o DLL za vas. Ako pričvršćivanje svoju elektronike zvuči interesantno, posjetite moje stranice o korištenju luke na računaru.

Prilagodba standardne kontrole … dovršetak razini 3 tutorial ‘Stvaranje niz edit box’ prije nego pokušate ovu.

Datoteka Datum … Nije složena, ali je predstavio pod pretpostavkom da neki fluentnost na dijelu učenika. Zamjenjuje datoteku sa modifikovanom verzijom samog sebe. Podržava do originalne datoteke.

A obrađeni primjer … Program za dekodiranje jednostavne zamjene kodova. Ovo se nadovezuje na prethodni tutorial.

Navigacija podršku store …  Re-kreira dijelove Windows Explorer. Takođe ilustruje više prozora. Koristi FileListBox, DirectoryListBox i DriveComboBox.

Koristeći jedinice … Ovo je napisano u maju 2007. godine, tako da ima neke prednosti u odnosu na starije tutoriali. To start prilično kompleksan tema, ali vrlo koristan: Stavljanje potprograma u jedinicama koje se mogu koristiti i ponovno koristiti. U ovom tutorial, idemo dalje nego što smo radili u  ranije jedan na istu temu. Pohvalio… ako se vi osjećate se za izazov!

Boja Graphics. Dynamic promjena veličine … Kako nacrtati u boji po vašem izboru. Kako napraviti stvari na veličinu obliku promjene ako veličina prozora se mijenja.

HTML generator … početak programa za generiranje online foto albuma.

Ugao ekrana … mali krug sa strelicom u njemu. Strelica može ukazati bilo koji od 16 pravaca. Izvorno razvijen za pokazati pravac vetrokaz je pokazivao. Ne “ključno” vještine u ovom tutorial … ali to je dobar, uz neke lijepe bitova elegancije u kodiranje. Ilustrovani neki srednji tehnike event handler. To također ilustrira korištenje imovine oznake.

Još jedan radio primjer …  To je veći i kreće se duž brže nego neke moje tutorijale. To pokazuje kako sam izdvojiti podatke za određeni dan od gomilu fajlova, svaki drži zapise za nekoliko dana.

Windows poruke, joysticka i štoperica …  To se odnosi na nekoliko tema, uključujući i odgovaranje na poruke koje generira drugdje u kompjuter, poruke iz Windows API-ja. Postoji jednostavniji način da se pročita džojstika objašnjen u Level 3 tutorial. Ona dolazi sa izvornim kodom.

Kako bi se osiguralo da … samo jedna instanca aplikacija radi u bilo kojem trenutku. Koristi mutex.

Vanjski jedinice … jednostavan način za recikliranje kod koji ste napisali bez režijskih troškova prilagođenih komponenti.

DDE klijent … A ograničen uvod u prikupljanje podataka iz DDE server, koristeći  1-Wire/MicroLan primjer.

Transformacija konce … Dva funkcije. Prvi se nizovi sadrže nejasne znakove … kao “0”. Da li je to nula ili “oh” …. i pretvara ih u nizove bez dvosmislenih znakova. Drugi preokreće proces. Korisno ako ćete, na primjer, da bi registracija korisnika ključne konce. Udžbenik također uvodi neke koncepte koji su opšte upotrebe programerima.

Nivo 5 vježbi:
Početak sa TCP/IP postoji mnogo ovladati prije nego što će biti ekspert u dohvaćanje stvari preko LAN ili preko interneta, koristeći TCP/IP-a. Međutim, ako želiš da donese datoteku, bilo da je to neki HTML, JPG, ili neke podatke u datoteku na web server, a možete prilagoditi program nekog drugog, čak i ako ne razumiju sve što se radi , možda će biti potrebno samo WinHTTP od http://www.appcontrols.com/, a mali demo program koji dolazi s njim. Dostupan je kao shareware (probati prije nego kupite). Radi sa mnogim Delphis, a možda čak i Lazara. Demo bi trebalo biti dovoljno za vas da napišete program za, na primjer, donesi i pohranu slika iz IPCam. A “bez izvorni” kopija košta samo oko 18 $. Ako to ne ispunjava vaše želje, isprobajte sljedeći tutorial …
Stariji “Prvi koraci sa TCP/IP” Postoji mnogo ovladati prije nego ćete uspjeti u komunikaciji između računala na LAN-u, a kamoli preko interneta. Ovaj tutorial, koji dolazi sa kompletnim izvornim kodom, gleda na neke osnove. Usput, to stvara mala aplikacija klijenta. Krajem septembra 2011. godine, to je možda moj najbolji tutorial o TCP/IP pitanja … Najbolji jedan za početak, u svakom slučaju.
Internet, ali i šire! Možete da pišu aplikacije koje pristupaju stranicama preko svog LAN ili internet! Ovaj tutorial vam daje ulazu u svijet TCP/IP-a. Konkretno, to će vam pomoći da se stvori aplikacija koja može pogledati, recimo, http://bbc.co.uk i prenijeti HTML s tog lokaliteta u TMemo komponentu u svojim aplikacija. To je teži deo! Ono što onda s tim je na vama …. Verujem da vidite mnogo mogućnosti to otvara? (Vidi također sljedeći tutorijal.
TCP/IP: Pitanje “blokiranje”  Prije nego što možete dobiti daleko sa ICS, i TCP/IP programiranje, čak ni uz pomoć prethodne tutorial, morate početi da savlada vještinu programiranja na način koji je non-blocking. TCP/IP stvari zaista treba da se uradi kako bi se omogućilo asinkroni komunikacije preko interneta. Ovaj tutorial pokušava da vam pomoći s tim konceptima.
maloljetnik adaptacija jednog ICS demo U ovom tutorial, mi malo prilagoditi osnovni demo iz zbirke isporučuje sa Francois Piette Internet Komponenta Suite. Cilj je da se počne razumijevanje komponente i TCP/IP programiranja. Adaptaciju može biti manja, ali ako ste novi u TCP/IP-a, mislim da bi stvarno trebali imati ići na ovaj tutorijal.
Sjesti na lakat … dok sam napisati program koji je veći od tipičnog Tutorial program. Izvorni dostupan za preuzimanje. Ilustrira slijed razvoja. Ilustruje neke rukovanje datoteke i grafika programiranje.
Temperatura drvosječa … Sindikat i grafičkim podacima iz temperature (i vlažnost) senzora. Dolazi sa izvornim kodom. Tutorial pokriva i privlačan XML iz web server, kako je napisano u vezi sa Poseidon SNMP/XML LAN/internet “termometar” (iz HW grupa), ali se može revidirati da čita iz drugih senzora. (Delphi 2, plus besplatan komponentu treće strane, ICS Ovo je klijent/server rada.)
RS-232 komunikacijske (serijski I/O) … OBSOLETE: Postoji bolji tutorial (“… Part One”) duž ovih linija iznad … ali ja to ostavljam kao sekundarni izvor za vas, ako vam se ne sviđa drugi. A start na kućnom-napitkom jednostavan Hyperterminal. Mogu slati samo do sada, ali ne zahtijeva nikakve komponente treće strane. (Delphi 2)
RS-232 komunikacijske (serijski I/O) za uređaje log podataka …OBSOLETE: Ne postoji bolji tutorial (“… Part Two”) u tom smislu gore… ali ja to ostavljam kao sekundarni izvor za vas, ako vam se ne sviđa drugi. Jednostavan Hyperterminal nalik terminal program, konfiguriran za interakciju s bilo koji od dva uređaja za prikupljanje podataka (Anderson TM # 128/WeatherDuck). Može se prilagoditi za drugim sredinama. Program ima neke mane, ali “radi”. Koristi freeware, sa izvornim kodom, komponenta TComPost od Dirk Claessens. (Delphi 2)
diferencijalni termostat … A prilično “grubo” “tutorial”, kao što sam sumnjate na ograničenu publiku … ali može biti korisno za neke! Dolazi sa izvornim kodom. Pogledajte Temperatura Logger, Iznad, kako da se donese XML iz web server … kod koji je bolji. Napisan u vezi sa Poseidon SNMP/XML LAN/internet “termometar” (iz HW grupa), ali se može revidirati da čita iz drugih senzora. Koristi SNMP za uključivanje/isključivanje na izlaz na LAN-u prilogu uređaju. (Delphi 2)

——-

Moji tutorijali o programiranju za Dallas Semiconductor 1-Wire™ čipova, koji se koristi na MicroLan™, su se preselili u ovdje. Takođe održava stranice na kojima se uvode MicroLan i objasniti hardver.

 


 

Pascal …….

(Ako ste zainteresirani da vide linkove na rad drugih, bookmark this page tako da možete se vratiti na to, i posjetite moje stranice sa linkovima. Naravno, gotovo sve što je iko ikada zanimalo je već na webu u Prof. Salmi je vrhunski najčešća pitanja …. ako ne možete ih naći!!! Ta divna resursi su vrijedan traženju. 1/2009, bili su dostupni ovdje. Uzmite tsfaqp50.zip, unzip to, pogledaj u TSFAQP.IDX za tabeli FAQ sadržaja.

(Oni FAQs čini da se kreće! Bilo je na ftp://garbo.uwasa.fi/pc/link/tsfaqp.zip, a zatim u ftp://garbo.uwasa.fi/pc/ts/tsfaqp36.zip. opet se krije? Pokušajte u potrazi sa Google za “timo Salmi Pascal Najčešća pitanja”. zahvalan sam im nije napisao Joe Smith!

U jednom trenutku, morao sam da pitam: “Ne znam kako da unzip?” I rekao je “Vrijeme je da naučite!” Nadam se da nemate problema sa zip arhiva danas?

Ako je ono što želite da znate nije odgovorio na mojim stranicama (!), Onda možete koristiti novinskim grupama ili forumima. Jedan od načina da se pronađe grupe Google Grupe usluga.

 

Pascal Tutorials:
Pascal za one koji znaju Osnovne … Neki bilješke od mene za one koji znaju Basic, a koji nisu učinili mnogo Pascal.

Čineći ga raditi … Pomoć za otklanjanje grešaka .. i sprečavanje potrebe za to.. Također korisno Delphi programere.

Uvodnik Filozofija

Ne volim ‘fantazija’ web stranica, s više briga za blještavi izgled nego za dobar sadržaj. Za lepu sliku, ne mogu ići u umjetničku galeriju. Naravno, atraktivnom mjestu sa sadržajem zaslužuje pohvale … sve dok to lijepo lice ne košta vremena za preuzimanje. U svakom slučaju….

Ja pokušavam predstaviti ovaj materijal u formatu, što ga čini lako za vas da ga koristite. Postoje dva aspekta da: Način na koji je razdvojiti, a način na koji je objavljeno.

Način na koji je rastali …

Pokušao sam da podijeliti ga u ‘zalogaja veličine’ komada, i da se ukaže koji komadi su osnovne i od opšteg značaja, a koje se bave više specifičnih pitanja koja se desiti da bude složena, ili zahtijevaju razumijevanje više temeljnih pitanja. Drugim riječima, trudim se da vam pokazati kako hodati prije nego brige o pokretanju. ‘Level 1’ tutoriali pokriti osnove. Ako nemate iskustva, počnite sa nivoa jedan tutoriali. Ako se odlučite za skok u na još viši nivo, a stvari nisu jasne, to može biti ideja da pokupi razinu jedne teme, ako je samo da se upoznaju moj način izražavanja pojmova. Vidi također, u nastavku, “razlika” između Delphi i Pascal.

Način na koji je postavljen …

Ova arhiva tutorijala seže neki put ka zore interneta. Sada, većina nas ima HTML sposoban word, i novija tutoriali učiniti više koristi od HTML koda od starijih. Da li je to problem? Možete uštedjeti stranice iz preglednika, i ponovno učitati ih u pretraživač sa hard diska kasnije, off-line. OpenOffice (odličan, besplatno, uredski paket za Windows i Linux od www.openoffice.org) uzima HTML u svom koraku. Sa WordPerfect, možete učitati .htm datoteku, odaberite sve, kopiranje u clipboard, pokrenuti novi WordPerfect dokumenta, a zatim zalijepite u tekstu, uglavnom netaknut i očišćen od HTML-a.

Trebalo bi biti u stanju da pročita tutoriali on-line bez poteškoća. Međutim, trebalo bi da je lako da ih uhvate za korištenje off-line, uključujući uređivanje za svoje potrebe. U nastavku bi trebalo da radi. Predložio bih da napravite folder za tutorijale, tako da možete zadržati moju imena fajlova bez rizika od sukoba:

Imajte na umu da ako radite od off-line kopija, vi ćete propustiti kada postoje ažuriranja, revizija.

On-line, koristite svom pregledniku kako bi pogledali tutorial koji želite snimiti.

Koristite File pretraživača | Save As … da spasi web-stranicu sa svojim diska. U ovom trenutku možete se odjavite, ili posjetite druge stranice, možda ih štedi, previše.

Kada ste prijavljeni off, samo koristiti datoteke vašem pregledniku! Load komanda za pregled materijala. Ako želite da uređujete, pokušajte koristeći uobičajeni wordprocessor. Ako to nije moguće, početi Notepad (ili WordPad, ili šta god želite, ali onda si na svom <g>). Učitati datoteku koju ste sačuvali. Uključite riječ-folija na. (Notepad: Edit | Word-wrap).

Odrezati zaglavlju html i podnožja. Ponovo spremite dokument, mijenja proširenje .txt ili .doc zavisnosti od tutorial, tu će biti više ili manje HTML koda unutar tijela teksta. Uz malo sreće, vaš wordprocessor će se nositi s tim. Daj OpenOffice Pokušajte ako ne! U suprotnom možete koristiti globalnu potragu i zamjenjuje u prilično brzo ukloniti većinu oznaka.

________

Ovo se čini da je mjesto za plug za TextPad. To je mnogo više od Notepad, dok ne bude sve da “wordprocessor” je … ali ima značajke koje će vam uskoro doći do love, ako radite puno posla s tekstualne datoteke …. posebno programiranje ili HTML kodiranje. Sve moje web stranice su stvorene s tim, i mnogo drugih teksta posao radim vrši s njim, previše. Ima ček čini. Ima sintakse. Okrenem na moju word (Ami Pro, za nasleđe rad, i OpenOffice Writer za novi posao) samo kada želim da proizvede pisma formatiranje i slova opcije nisu intenzivno podržani u TextPad. Međutim, ima mnogo, mnogo, vrlo uredan dodira koje je radost će se koristiti za mnoge stvari napraviti. Posebno vole svoj odgovor na pitanje “autotext”, kao i činjenica da korisnik može konfigurirati kako se prikazuje različite klase dokumenata. Ovdje je link na njihove stranice. Shareware: Možete probati besplatno, a to nije skupo da se registrujete za nastavak korištenja.

________

Imena fajlova: Pokušao sam da se organizuje: imena početi Pt ili DT Pascal/Delphi Vodič. Sljedeći je cifra, za nivo, a onda sam koristio slova jedan za drugim, npr Dt1a, Dt1b, Dt1c. U pismu ne znači puno … to samo pokazuje kad sam došao do toga temu! DST datoteke su neki od onih koji se odnose na Dallas MicroLan.

Imajte na umu da je materijal o autorskim pravima. (TK Boyd, 2006. i kasnije) gore navedene procedure se predlažu samo za praktično ličnu upotrebu materijala, međutim, ….

Slobodno koristiti ove informacije u kompjuterske kurseve, itd, ali kredit od izvora, navodeći URL, bi bilo poštovati. Ako jednostavno kopirati stranice na druge web stranice koje će učiniti vaši čitaoci medvjeđa usluga: Vaša kopija neće ostati struje. Daleko bolje da se povežu na ovim stranicama, a zatim svojim čitateljima vidjeti up-to-date verzije. Za one koji neautorizova- hvala You- sam postavio stranicu s više informacija o tome šta autorskim pravima odricanja da produžim, i prijedloge za one koji žele da stave ovaj materijal na CD-u, itd (postoji barem jedan zatvoru koristeći materijal za zatvorenika obrazovanje. Koliko sam shvatio, situacija postoji kada nije moguće internet konekcije!)


Razlika između Delphi i Pascal … i obećanje Kylix ili Lazara ….

Delphi je baziran na Pascal. To je za pisanje programa za Windows, koristeći Pascal .. sa puno poboljšanja iz tih jednom divnih ljudi na Borland. Jednom davno, moj savjet je bio “ako ste jako novi u programiranju, možda ćete napredovati brže ako počnete s ne-Windows Pascal”.

Međutim, zato što Windows, Linux i MacOS koriste GUI, i zato što je GUI okruženju je važno, a ne programiranje GUI vrši se iz druge perspektive, mislim da, danas, rekao bih, ne … početi mislite da nastavim. Počnite s Delphi ili Lazarus, iako je, na neki način, to znači da morate početi na složeniji nivo.

Ako želite isprobati bez GUI Pascal, bilo besplatnih okolo. Detalji jedan je bio u svom slobodnom Pascal tutorijale, ali ja ne znam da li je i dalje na raspolaganju.

U Delphi priručnici ovdje, trebalo bi pronaći sve što je potrebno za Delphi programiranje. Međutim, čak i ako nikada ne namjeravaju programirati za šta drugo osim za Windows, ako ste novi u programiranju, gledajući neke od niskog nivoa Pascal tutorijale može vam pomoći da shvatite važne ideje za Delphi rad.

(Ova napomena dodao maja 2007. godine, revidiran 2015.) Kylix je proizvod Borland izveli godina pre 2007. godine nisam “igrao” s njim, ali to je bilo, ja mislim, “Delphi za Linux”. Na žalost, koliko ja znam, Kylix umro. Srećom, iako imamo Lazarus koja ispunjava želje Kylix je imala za cilj.

Manifest Pojedinačne Stranice

Source: http://itsnat.sourceforge.net/php/spim/spi_manifesto_en.php

spirala Porijeklo web tehnologije

Kada Tim Berners Lee izumio web je tražio sistem objavljivanje naučnih dokumenata daljinski dostupne, vizualno atraktivan, lako se kod i jednostavan za korištenje za ne-tehničke osobe.

U naučnom dokumentu, vanjski navodi na druge dokumente neophodan, kako bi čitalac može po želji razviti temu u pitanje.

Iz tih razloga, World Wide Web je zamišljena kao stranica (dokument) sistem baziran s hipervezama.

U početku je Web bio svijet statičkih stranica i linkova, ali je ubrzo generacija dinamičkih stranica i općenito korištenja web kao podrška za dizajniranje web-based aplikacija komplikovano sve.

spirala Dolazak web aplikacija

Dugi niz godina je došlo do velike napore da se prilagode web paradigma stranice i linkove na razvoj aplikacija. U web aplikaciji Berners ‘pogled statičkih dokumenata i jednostavne veze ne postoje.

Različiti pristupi razvoj aplikacija su događa:

  • Model 1: direktan prevod originalnog modela stranica i linkova, gdje se stranice dinamički generiran.
  • Model 2 o MVC: Sada linkovi nisu direktno ukazuje na konkretne ciljne stranice, u ovom slučaju kontrolor odluči šta sljedećoj stranici se ovisno o poslovanju došlo u stranici tranziciji.
  • MVC zasnovan na komponentama (model 3?): Je sofisticirana verzija modela 2 simulira kako desktop aplikacija rad. Ona se zasniva na komponente i događaje, tako da bilo koji korisnik akcija podrazumijeva potpuno obnovljen i ponovo stranice djelomično mijenja jedan dio u skladu sa akcijom izvršena. Stranicu i stranicu tranzicija je sada upravlja komponentama koje šta sad mijenja se održati prema događaju, simulirajući kako komponente rade na desktop GUI programiranje.

U posljednjih nekoliko godina uveden je AJAX tehniku, ova tehnika uz pomoć JavaScripta omogućuje parcijalne promjene stranicama dobivanje novih podataka sa servera bez pretovara. Uprkos parcijalne tehnike Promijeni je davno prije uvođenja XMLHttpRequest u Internet Exploreru (baza AJAX programiranje), što je to bio poticaj njegove masovne upotrebe.

Sada milijune web stranica i web aplikacija koristi AJAX pružiti bolje iskustvo krajnjim korisnicima, zahvaljujući više sluha korisnički interfejs djelomično izbjegavanje dosadnih stranicu ponovno učitavanje.

Uprkos masovne upotrebe AJAX, možemo reći Web prati razvojni model mogli bismo navesti kao “Model 2 (MVC) obogaćena AJAX”. Kada se koristi AJAX, “Model 3” nema mnogo smisla jer AJAX u velikoj mjeri smanjuje potrebu upravljanja stranice baziran na komponentama. Jer AJAX se obično koristi zajedno komponente (ne nužno predstaviti u model 2), možemo klasificirati trenutno stanje umjetnosti web razvoja kao  model 3.5, gdje se navigacije djelomično izbjegavati u slučaju manjih državnih prijelaza obavlja AJAX i JavaScript.

spirala Koji su nedostaci na temelju stranice navigacije i razvoj?

Svaki web developer zna kako je problematično stranice navigacija u web aplikaciji, osim bandwith rasipanja i dugotrajan proces obnove cijele stranice više problema napraviti web razvoj bolnih poput neželjene caching, natrag/naprijed dugmad, desynchronized forme uzrokovane “oblik auto-fill” karakteristika pojedinih pretraživačima i tako dalje. Nije neuobičajeno da vidi web aplikacije koje skrivaju menija i dugmad pretraživača ili pomoću okvira ili okvira (npr banke) da se izbjegne problem Natrag/Naprijed tipke.

Razvoj zasnovan Page forsira stil kodiranja čudno, ponavljaju (dosta obuhvata) i neefikasne (i propusnosti i procesorske snage) nije pronađen u razvoju desktop.

spirala Šta je ono što sprečava intenzivno korištenje AJAX?

U oblasti web razvoja smo navikli razlikovati dve vrste web rješenja: web aplikacija i web stranica.

U prvom slučaju AJAX je sve više i više koristi, jer ova vrsta aplikacija ne dijele neke rekvizite koje se izriču za web stranice. U web stranice intenzivnog korištenja AJAX je problem.

U javnim web stranice krajnjih korisnika koriste se za koncept stranice, vezan na stranice neke rekvizite i usluge su potrebne u bilo kojoj web stranice kao što su:

  1. Bookmarking: Svaka web stranica ima drugačiji URL, ovaj URL može biti sačuvana kao marker. Jer AJAX može djelomično promijeniti stranice URL je isti, krajnji korisnik ne može spasiti kao marker konkretan pogled (država) stranice.
  2. Search Engine Optimization (SEO): Svaka web stranica želi da bude u potpunosti indeksirane od strane tražilice poput Google Search. Trenutni crawlers pogledajte Web kao Web 1.0, to jest, JavaScript kod se potpuno ignoriše, čime bilo parcijalne promjene vrši preko AJAX učitati sa servera se ne izvršava onda ne indeksirane od strane pretraživači poprijeko web stranice.
  3. Usluge na strani posjeta: Na primjer reklama usluga kao što su Google AdSense i strani posjetu praćenje kao što je Google Analytics, u oba slučaja je broj stranica učita je važno. Stoga, bilo parcijalne promjene obavlja AJAX ne računa kao novi posjet.
  4. Povremene potrebe pop-pup prozora

Jer ovi rekviziti intenzivne AJAX je obeshrabrena u web stranicama.

Međutim, razlika između “web stranice” i “web aplikacije” postaje manji, jer je skoro bilo kojoj web stranice je neka vrsta “web aplikacije” …

spirala Trebamo li odustati AJAX-intenzivne aplikacije?

NO.

Postoje tehnička rješenja za sve gore navedene rekvizite.

spirala Izrada web sajtova na osnovu jednog Web stranica (SPI), da li je moguće?

DA!

Ovo je vrijeme za početak ove tranzicije, programeri i krajnji korisnici sve nas dobiti. Imamo tehnologiju i modernih pretraživača osposobljeni su za postizanje tog cilja.

Da bi uspjeli u ovom “novom” način web razvoja moramo ostvariti sve prethodne rekvizite bilo koje web stranice.

spirala Zbogom stranica, dobrodošli  država

U web aplikacije bez JavaScript, država sekvenca je ekvivalent stranice, u SPI aplikacija bilo parcijalne promjene podrazumijeva nova “država” na “strani”. Među državama možemo razlikovati dvije kategorije stanja:

  • fundamentalna država
  • srednje države

Razlikovanje između oba stanje vrste je vrlo važno, jer će fundamentalna država postati web stranice kada je to potrebno. Temeljnih i srednje diferencijacija ovisi web stranice.

Da bi bolje razumjeli oba tipa država možemo proučavati pravi primjer: prijaviti validacije.

U klasičnom stranice aplikacije bazirane tipičan prijava je izgrađen pomoću dvije stranice, jedan za korisnika i lozinku i jedan pokazuje korisničkih opcija ako prijava validacija je bio u pravu; login stranica će biti reloaded prikazuje neke poruke o greškama uz prijavu obrazac kada ulazak prijava nije u redu.

U SPI web, početni prijava i na strani opcije korisnik može biti temeljni država, i poruke o greškama uz prijava može biti sekundarna stanja.

Još jedan primjer, web stranice zasnovane na stranicama koji treba pretvoriti u SPI, u ovom slučaju će fundamentalna država biti strana i srednje države će biti strana država sa manjim promjenama, nije dovoljno važno za bookmarking ili da se prolaze pretraživači.

spirala Jednoj stranici Interfejs i Bookmarking

Različitim stranicama imaju različite URL-ova, nakon SPI rutu kako možemo promijeniti stanje i istovremeno URL bez pretovara da bi ovo novo stanje može markiranom krajnji korisnici ?

Postoji trik, koristeći “referenca” dio URL-ova ( “hash fragment”, stvar ili hashbang), ovo je posljednji dio, ako je prisutan, nakon # karakter. Ova referenca se koristi za listanje stranicu na konkretne lokacije navedene neke <a name=”ref”> </a> znak. Ova referenca deo ako promijenjen ne ponovo učitava stranicu, pa ako je referentna URL je promijenjen pomoću  window.location uz državu stranu (u ovom slučaju nove države je “fundamentalna”) sa JavaScript i AJAX, onda ne reload obavlja. Jer URL i temeljnih države su se promijenile, krajnji korisnici mogu spasiti ovaj URL, na neki način sadrži nove države informacija, kao marker.

Kada krajnji korisnik želi da se vrati ponovo na markirane stranice, meta država je navedeno u referentnom deo URL, server će se tražiti, nažalost referentni deo se ne šalje na server jer referentni ulogu ima veze sa udaljene lokacije preko HTTP, pa će nam trebati proces nakon opterećenja.

Server će se vratiti u početni strana u kojoj se nije naveden ciljne države, međutim, window.location predmet sadrži originalni URL, uključujući i referentne dijela. Prilikom ubacivanja ciljne stranice možemo otkriti s JavaScript da li window.locationsadrži referencu dijelu i da li je to referenca ima potrebne ciljane države info, ako je istinita možemo prepisati URL dodajući neku vrstu normalnog parametar da navedete ciljnu državu za učitavanje. Jer URL zapravo promijenjen novi zahtjev serveru se izvršava, ovaj put država za učitavanje je u parametar i server vraća novu stranicu sa potrebnom države.

Druga opcija, bolje nego hashbangs, nastaje sa pojavom HTML 5, na History API HTML 5.

spirala Jednoj stranici Interfejs i Search Engine Optimization (SEO)

Najlakši način da se našoj web stranici obrađuje pretraživači pretraživač je da ponudi dva različita režima plovidbe, SPI za krajnje korisnike, stranice za web pretraživači.

Narednih primjer pokazuje vezu sa ovom idejom:

<a href=”URL page” onclick=”return false”> … </a>

Ovaj link će učiniti ništa u pregledniku sa JavaScript jer je navigacija onemogućena ” return false” od onclickatributa, ali kada bot indeksi ovaj link zanemaruje onclick atribut jer JavaScript kod se ne izvršava i da će obraditi naveden URL kao sljedeću stranicu za obradu.

U oblasti SPI aplikacije, URL-ove koji se koristi za stranicu / država plovidbi mora sadržavati ciljane države, isti tip URL-ova koristi u SPI bookmarking koji koristi referentni dijelom ukazuje na ciljane države, ili je cilj direktno piše kao normalan parametar, kasnije se preferira jer se izbjegava zahtjev serveru, naravno “prilično URL-ovi” se može koristiti.

Trenutno Google već puzi “AJAX URL-ova”, to jest, URL-ove koji sadrže meta države u referentnom dijelu sljedeće  #! kao što je navedeno u  Making Ajax aplikacije Crawlable, u ovom slučaju web stranica / aplikacija mora vratiti očekivanog stranice se traži sa  _escaped_fragment_ parametrom.

Istovremeno SPI web okvir može dodati specifičan kod u onclick kontejnera prije  return false ili može vezati događaj slušatelja na link koji se koristi za državne / navigacije, na evidenciji  addEventListener ili  attachEvent u zavisnosti od pretraživača. Ovaj događaj slušalac će izvršiti neku akciju da komanduje server, obično koristeći AJAX, promijeniti stanje stranici. Kada se klikne na link ovo stanje promjene nisu novu stranicu, jer je atribut  onclick="... return false" izbjegava default ponašanje.

Tehniku ​​prije opisana je najjednostavniji i neposredno putem vidljive veze kompatibilan sa robota i SPI. Možete ikad razdvojiti obje funkcije, na primjer pomoću skrivene linkove za krajnje korisnike, ali ne i za robota zajedno sa drugim kliknuti elemente promijeniti SPI država pomoću JavaScript nevidljiv za robota.

Najvažnija karakteristika sposobnog okvir SPI je stranica generacija kao HTML sa potrebnom države na vrijeme utovara i istovremeno ista promjena država mora izvesti JavaScript i parcijalne stranice ažuriranje. Ove rekviziti su osnova za pružanje SPI i simulacije stranici.

spirala SPI and Back/Naprijed tipke

Natrag/Naprijed tipke su izvor problema na konvencionalnim zasniva stranici web stranice i treba ih izbjegavati što je prije moguće. Uprkos korisnika koriste se izbjegli natrag i naprijed dugmad prilikom podnošenja obrazac sa korisničkim podacima (jer nosi rizik kupovine dva puta u istom avionu označeno ili knjige), upotreba Back/Forward tipke je vrlo raširena.

Izgleda da je SPI paradigma razbija tradicionalni način plovidbe web stranice, jer u teoriji Natrag/Naprijed tipke nema smisla u SPI (bez stranica) i web-preglednika ne daju dobru kontrolu ovih dugmadi.

To nije u potpunosti istina, Natrag/Naprijed ponašanje može se simulirati, umjesto navigacije Natrag/Naprijed (i povijesti plovidbe u cjelini) može se koristiti za promjenu trenutnog stanja na prethodno/naprijed stanje. U ovom slučaju JavaScript kôd može otkriti kada je referentna deo URL promjene i traži prijavu promijeniti stanje u skladu s tim. Jer browser ne mijenja stranicu vaše aplikacije je sada u potpunosti odgovoran Back/Forward ponašanje izbjegavanje tipične probleme neočekivanih Natrag/Naprijed upotrebu krajnjih korisnika prilikom podnošenja obrasca, sada u SPI postoji takav oblik ne i ne nekontrolisanog stranice navigaciju aplikacija/web stranice web.

spirala SPI i usluge na strani posjeta

Aplikacije usluge i na strani posjeta brojači su bazirani na koliko stranica su utovar. U oba slučaja možete koristiti skrivene <iframe> elementi koji sadrže prazne web stranice sa potrebnim skripte da izvrši ovu vrstu usluga.

U slučaju reklama usluga kao što su Google AdSense, dinamičan umetanje <iframe> podrazumijeva od nove oglase stoga svaka promjena država bi moglo da znači novi pretovar <iframe> s oglasima. Google AdSense izgleda otkriti kada se AdSense skripta izvršava unutar <iframe> i uzima u obzir sadržaj stranice kontejnera. Može biti poželjno dodati neki parametar koji identificira temeljne države koja učitava <iframe>.

U slučaju posjete brojila, možemo ih koristiti za praćenje korisničkih posjeta osnovnih stanja našeg SPI web stranice. U tom slučaju potrebna nam je sakriven <iframe> sadrži praznu web stranice sa skriptama za praćenje. Uz jednostavan parametar možemo ukazati na fundamentalno stanje posjećuju. Naša <iframe> bi trebao biti globalni (uvek isti na stranici). Kada je stranica prvi put učita, temeljni država se učitava (navedeno u URL-u) treba navesti na <iframe> sa parametrom. Nakon učitavanja stranice, svaka fundamentalna promena stanja mogao biti obaviješten <iframe> mijenja URL putem JavaScript u skladu sa novim fundamentalnim države, ova promjena URL će izazvati pretovar <iframe> (što ukazuje na novi posjet).

spirala SPI i pop-up prozora

Kada se kreira prozor novu stranicu model SPI je slomljena. Fundamentalizam je loše, nema problema ako se stanje ovog novog prozora nema nikakve veze sa stanjem prozora roditelja, u ovom slučaju pop-up prozora su u redu.

Problem nastaje kada bilo kakve akcije izvode na pop-up prozor (modalni ili ne modalne) ima utjecaj na prozoru roditelja, koordinacija između stranica je komplikovano. Na primjer ne postoji web standard za stvaranje modalnih prozora jer je koncept stranica je tradicionalno uvijek bila nezavisna elementa i zbog toga se njegov životni ciklus je teško koordinirati sa druge strane.

Srećom, ovaj problem ima rješenje za neko vrijeme u SPI, možete simulirati modalni ili ne modalni prozori unutar iste web stranice, ne novi prozor pravi strana je stvorio. U slučaju ne-modalni prozori, HTML element s apsolutno pozicioniranje može biti “ne-modalni prozor” i možete stvoriti modalni prozori pomoću apsolutno pozicioniranje, kontroliranje z-indeksa i neprozirnost elemenata “na vrhu” stranice ( “modalne slojevi”). Ova rješenja važeći u SPI kontekstu su.

Uz malo truda, pa čak i država koja pokazuje modalni prozor može biti fundamentalno stanje i stoga plovnog od robota tražilice.

spirala Kulturni pomak za web programere

Većina web programera (i web okvira) smatra Web kao zasnovan na stranicama, smanjenje stranice na jednu stranu podrazumijeva radikalne promjene uma i kako napraviti web stranice i aplikacije. Ova promjena nije toliko radikalan zahvaljujući AJAX, AJAX je danas mainstream i smanjen broj stranica tipičnih web sajtova, ukratko nam je donio u blizini tog “novog” razvoj SPI model.

U novom SPI web na <form> tag nestaje i općenito potrebu sesija koristi kao menadžeri podataka sljedeću stranicu sekvenci. Sada je protagonist je strana klijent s nekim simetrije u server (na strani u server). U stvari, jer smo riješi koordinacije stranice sa sesijama smo oslobođeni izvor problema kao što je loša praksa nekih korisnika koji otvoriti nekoliko prozora s iste stranice, ova praksa obično razbija sjednicu i primjenu u cjelini.

SPI programiranje se temelji na događaje isti kao u desktop, jer je u desktop većini aplikacija radi u istom prozoru okvir i kada postoje dijete prozore te su u potpunosti upravlja glavni prozor i iskreno modalni.

Nakon paradigma razvoja web razvoj, ovaj “novi” pristup bi se mogao nazvati  Model 4.

spirala Kulturni pomak za krajnje korisnike?

Nije puno, sa bookmarking i natrag/naprijed kraj simulacije korisnici neće razlikovati web stranice SPI i na istoj stranici na bazi, nadalje SPI stranice će biti više sluha i tipične treperenje i pomicanje stranice navigacije je uklonjen.

spirala Tehnička održivosti danas

Ovaj manifest nije izjava o namjerama, ali je izraz želje da promoviše “novi” način izgradnje web stranice koje su već pravi. Gore tehnička studija je uvijek imala Java web framework ItsNat kao tehnološke osnove SPI razvoj web stranice. Uprkos ItsNat zamišljen je od prvog dana na ovu vrstu aplikacije/lokaliteta, prethodne tehnike može primijeniti s drugim web okvirima ili ovim okvirima mogao evoluirati da obezbijedi sredstva za ovu vrstu SPI web stranice sa zahtjevima stranici simulacije.

Neki zahtjevi tih SPI web stranice kako bi mogli zamjene tradicionalnih zasnovan stranici web stranice, kao što je stranica simulacija temeljnih država na vrijeme učitavanja, samo su moguće sa serverom centric web okvire jer HTML renderiranje mora biti urađeno u server na vrijeme opterećenja. HTML renderiranje na vrijeme opterećenja i isto dinamički opterećenih i ubačena sa JavaScriptom su ključne karakteristike web okvira spremni da grade SPI web stranice. Klijent centric okviri može imati veliku ulogu za realizaciju takozvane sekundarne država.

spirala Dva stvarnom svijetu primjera

Web  innowhere.com/jnieasy

Napravljena je sa ItsNat u server i dobar primjer SPI web stranice jer sumira sve zahtjeve web stranice SPI, objasnio je u ovom dokumentu, da bude zadovoljavajući zamjena tradicionalnog stranice. U stvari, novi SPI verzija zamijeniti, bez koji označava estetski funkcionalnih promjena, prethodne verzije na osnovu stranicama. Ona se zasniva na hashbangs.

Karakteristike

  • Jedna stranica Sučelje: Back i Forward tipke su simulirane mijenja na prethodnu ili naprijed posjetio države.
  • Fundamentalne države mogu biti sačuvana kao markere.
  • SEO kompatibilan: fundamentalna stanja su dostupni sa JavaScript onemogućen uključujući modalni prozor.
  • Je hashbang  #! format se koristi, to jest, Google SEO kompatibilan “AJAX URL-ova”, na stranici se takođe traži sljedeće Google konvencije_escaped_fragment_ parametara. Na primjer ovo stanje se zavukao Google traži ovaj URL.
  • Radovi sa JavaScript onemogućen.
  • Pokazuje oglasi baner na osnovu Google AdSense
  • Uprkos tome što je SPI, listati osnovnih stanja prati Google Analytics pomoću skrivene <iframe> koji URL mijenja kada je trenutni temeljnih promjena stanja.
  • A simulirani modalni prozor izbjegava stvaranje novog prozora stranice, ovo simulirani prozor je također dostupan sa direktnim URL ili hashbang verzija sa tekstom već u markup na vrijeme opterećenja samim SEO kompatibilni.

 

Kako da postavljaju pitanja pametan način

Source: http://www.catb.org/~esr/faqs/smart-questions.html

Eric Steven Raymond

Rick Moen

    


Sadržaj

Odaberite forum pažljivo
Stack Overflow
Web i IRC forumima
Kao drugi korak, koristiti mailing liste projekta
Koristite smislene, specifične zaglavlja predmet
Olakšavaju odgovori
Napišite u jasan, gramatički ispravno-napisano jeziku
Pošalji pitanja u pristupačnim, standardnim formatima
Biti precizan i informativan tvoj problem
Volumena nije precizno
Ne žuri da tvrdite da ste našli bug
Puzanje nije zamjena za to domaći
Opišite simptomi problem, a ne tvoj nagađanja
Opišite simptomi vaš problem u kronološkom redu
Opišite cilj, a ne korak
Nemojte tražiti od ljudi da odgovorite privatnih e-mail
Biti eksplicitne vaše pitanje
Kada pitate kod
Nemojte pisati zadaću pitanja
Orezati besmislena pitanja
Ne zastavu vaše pitanje “Hitno”, čak i ako je za vas
Brodska nikad boli, a ponekad pomaže
Pratite sa kratkim poruku na rješenje

Odricanje

Mnoge web stranice projekta povezuju na ovaj dokument u svojim sekcijama o tome kako dobiti pomoć. To je u redu, to je upotreba smo namijenjen – ali ako ste webmaster stvaraju takvu vezu za svoj projekt stranice, molimo prikaz vidno blizini najave link koji nismo help desk za svoj projekt!
Naučili smo na teži način da bez takve najave, mi ćemo u više navrata se dosađivala idioti koji misle da je zbog objavljivanja ovog dokumenta čini naš posao riješiti sve tehničke svjetske probleme.

Ako čitate ovaj dokument, jer vam je potrebna pomoć, a vi otići sa utiskom možete ga dobiti direktno od autora ovog dokumenta, ti si jedan od idiota govorimo. Nemojte nam postavljati pitanja. Mi ćemo vam samo ignorisati. Mi smo tu da vam pokazati kako da biste dobili pomoć od ljudi koji zapravo znaju za softver ili hardver imate posla, ali 99,9% vremena koje neće biti nas. Osim ako znate sigurno da je jedan od autora je stručnjak na ono što imate posla, ostavi nas na miru i svi će biti sretniji.

Uvod

U svijetu hakera, vrstu odgovora koje ste dobili sa svojim tehnička pitanja ovisi koliko na način na koji postavljate pitanja kao i na teškoće u razvoju odgovor. Ovaj vodič će vas naučiti kako da postavljaju pitanja na način veće šanse da dobijete zadovoljavajući odgovor.

Sada kada korištenje open source postala rasprostranjena, često možete dobiti dobar odgovore od drugih, iskusnijih korisnika kao od hakera. Ovo je dobra stvar; korisnici imaju tendenciju da budu malo tolerantniji prema vrsti kvarova početnici često imaju. Ipak, tretirajući iskusni korisnici poput hakera na način preporučujemo ovdje će uglavnom biti najefikasniji način dobiti korisne odgovore od njih.

Prva stvar koju treba shvatiti je da hakeri zapravo poput teških problema i dobra, provokativna pitanja o njima. Ako nismo, ne bismo bili ovdje. Ako nam date zanimljivo pitanje grickanje ćemo ti biti zahvalan; dobra pitanja su stimulans i poklon. Dobra pitanja nam pomoći da razvijamo naše razumijevanje, a često otkrivaju probleme koje smo možda nije primijetio ili pomišljali. Među hakeri, “Dobro pitanje!” Je snažan i iskren kompliment.

Uprkos tome, hakeri imaju reputaciju za sastanak jednostavna pitanja sa što izgleda kao neprijateljstvo ili arogancije. Ponekad izgleda da smo refleksno nepristojno novajlije i neznalice. Ali to nije istina.

Ono što su, neapologetski je neprijateljska prema ljudima koji izgleda da su spremni da misle ili da sami zadaću prije nego postavljanje pitanja. Ljudi kao da su vremena sudopera – oni uzimaju bez davanja natrag, a oni gube vrijeme mogli smo proveli na drugo pitanje zanimljivije i još jedna osoba više dostojan odgovor. Mi to zovemo ljudi kao što je ovaj “gubitnici” (i iz istorijskih razloga ponekad crtam “lusers”).

Shvatamo da postoje mnogi ljudi koji samo žele da koriste softver pišemo, a koji nemaju interes za učenje tehničke detalje. Za većinu ljudi, kompjuter je samo sredstvo, sredstvo za postizanje cilja; moraju učiniti više važne stvari i živi za život. Potvrđujemo da, i ne očekuju da se svi da je interes za tehničke stvari koje nas fasciniraju. Ipak, naš stil odgovara na pitanja je podešen za ljude koji rade uzeti takav interes i da su spremni da budu aktivni učesnici u rješavanju problema. To se neće promijeniti. Niti bi trebala; ako jeste, mi bismo postali manje efikasna u stvari radimo najbolje.

Mi smo (uglavnom) volontera. Uzmemo vremena van zauzet život da odgovara na pitanja, a ponekad smo preplavljeni sa njima. Tako smo filter nemilosrdno. Konkretno, mi bacamo pitanja od ljudi koji izgledaju gubitnici, kako bi se što efikasnije provesti našeg vremena pitanje-odgovaranja na pobjednike.

Ako ste pronašli ovaj stav odvratan, snishodljivo, ili arogantan, provjerite vaše pretpostavke. Mi ne tražimo da se klanjaju na nas – u stvari, većina nas bi volio ništa drugo nego da se bave s vama kao ravnopravan i pozdravljamo vas u našoj kulturi, ako stavite u napor potreban da bi to moguće. Ali to jednostavno nije efikasan za nas da pokušamo da pomogne ljudima koji nisu spremni da pomognu sami sebi. To je u redu da bude neznalica; to nije u redu da se igra glupo.

Dakle, iako nije neophodno da se već tehnički kompetentan da privuku pažnju od nas, neophodno je da se pokaže takav stav koji dovodi do kompetencija – popustu, promišljeno, pažljivi, spreman da bude aktivan partner u razvoju rješenja. Ako ne možete živjeti s ovom vrstom diskriminacije, predlažemo vam platiti nekoga za ugovor komercijalnu podršku umjesto traži hakerima da osobno donirati pomoć za vas.

Ako se odlučite doći do nas za pomoć, ne želite da bude jedan od gubitnika. Vi ne želite da izgledaju kao jedan, ni. Najbolji način da se brzo i brz odgovor je da ga pitati kao osoba s pameti, samopouzdanje, i tragove koji je upravo događa da je potrebna pomoć na jedan poseban problem.

(Poboljšanja ovaj vodič su dobrodošli. Možete poslati mail sugestije [email protected] ili [email protected]. Imajte na umu, međutim, da ovaj dokument nije namijenjen da bude opšti vodič pristojnosti, a mi ćemo generalno odbaciti prijedloge koji nisu posebno vezani za izvlačenje korisne odgovore u tehničkom forumu.)

Prije nego te pitam

Prije nego što traži tehničko pitanje putem e-maila, ili u novinska grupa, ili na web chat odbora, učinite sljedeće:
  1. Pokušajte pronaći odgovor pretraživanjem arhivi foruma ili mailing listu planirate da objavite.
  2. Pokušajte pronaći odgovor pretraživanjem Weba.
  3. Pokušajte pronaći odgovor čitajući priručnik.
  4. Pokušajte pronaći odgovor čitajući FAQ.
  5. Pokušajte pronaći odgovor od strane inspekcije ili eksperimentisanje.
  6. Pokušajte pronaći odgovor pitajući vješt prijatelj.
  7. Ako ste programer, pokušajte naći odgovor čitajući izvorni kod.

Kada postavite pitanje, prikazati činjenicu da ste učinili ove stvari prvi; to će pomoći da se ustanovi da nisi kao lijen spužvu i gubljenja vremena ljudi. još bolje, prikazati ono što ste naučili u obavljanju ove stvari. Volimo odgovaranje na pitanja za ljude koji su pokazali da mogu naučiti od odgovora.

Koriste taktike kao radi Google pretraživanje na tekst bilo koje poruke o grešci dobijate (u potrazi Google grupe, kao i web stranica). To bi moglo dobro odvesti pravo da popravi dokumentacije ili mailing listu nit odgovor na vaše pitanje. Čak i ako se to ne desi, govoreći “guglao sam na sljedećim fraza, ali nisu dobili ništa što je izgledalo obećavajuće” je dobra stvar u e-mail ili news objave traži pomoć, ako samo zbog toga što snima ono što traži won ‘ t pomoć. To će također pomoći usmjeriti drugim ljudima sa sličnim problemima sa svojim nit povezivanjem pojam na ono što će, nadamo se, vaš problem i nit rezolucije.

Uzmi si vremena. Nemojte očekivati ​​da bi mogli riješiti komplikovan problem sa nekoliko sekundi guglati. Pročitajte najčešća pitanja, zavalite, opustite se i dajte problem razmisliti prije nego što se približava stručnjaka. Verujte nam, oni će biti u stanju reći iz vašeg pitanja koliko čitanje i razmišljanje jesi, i da će biti spremni da pomognu, ako se pripremio. Nemojte odmah otpustiti cijeli svoj arsenal pitanja samo zato što svoj prvi pretragu došao bez odgovora (ili previše).

Pripremite vaše pitanje. Mislim da kroz. Ishitrene-sondiranje pitanja dobiti ishitrene odgovore, ili uopšte. Što više radite da pokaže da što stavi misli i napora u rješavanju vašeg problema prije nego što traže pomoć, veće su šanse da zapravo dobiti pomoć.

Čuvajte se pita pogrešno pitanje. Ako pitate onaj koji se temelji na pogrešnim pretpostavkama, J. Random Hacker je vrlo verovatno da odgovori sa beskorisno doslovnom odgovor misleći “Glupo pitanje …”, i nadajući se da će iskustvo dobivanja što ste tražili, a ne ono što ti je potrebno će vas naučiti lekciju.

Nikada Pretpostavljam da imaju pravo na odgovor. Ti nisi; vi ne, na kraju krajeva, plaćanja za uslugu. Ćete zaraditi odgovor, ako ga zaraditi, pitajući značajan, zanimljivo, i provokativna pitanja – onaj koji implicitno doprinosi iskustvo zajednice, a ne samo pasivno zahtjevan znanja od drugih.

S druge strane, što je jasno da ste sposobni i spremni pomoći u procesu razvoja rešenje je vrlo dobar početak. “Da li je neko pruži pokazivač?”, “Koja je moja primjer nedostaje?” I “Što lokacije treba Provjerio sam?” Su veće šanse da se odgovorio nego “Molim vas, pisati tačan postupak bi trebalo koristiti.” Zato što si što je jasno da ste zaista spremni da se završi proces ako netko jednostavno ne mogu vas uputiti u pravom smjeru.

Kada pitate

Odaberite forum pažljivo

Biti osjetljiva u odabiru gdje postavite pitanje. Vi ste vjerojatno da se ignoriše, ili otpisani kao gubitnik, ako:

  • postavite pitanje na forum gde je off topic
  • post vrlo osnovno pitanje forum na kojem se očekuje naprednih tehničkih pitanja, ili obrnuto
  • cross-post na previše različitih news grupe
  • post lični e-mail nekome ko nije ni poznanik tvoja, niti osobno odgovoran za rješavanje vašeg problema

Hakeri blow off pitanja koja se neprimjereno ciljano kako bi pokušali da zaštite svoje kanale komunikacije budu utopio u beznačajnost. Vi ne želite da se to desi tebi.

Prvi korak je, dakle, pronaći pravi forum. Opet, Google i druge metode web-u potrazi su svojim prijateljem. Koristite ih pronaći projekt web stranice najviše usko povezana sa hardverom ili softverom dajući vam teškoće. Obično to će imati veze sa FAQ (često postavljana pitanja) liste, i da projektuje mailing liste i njihove arhive. Ove mailing liste su konačne mjesta za obratiti za pomoć, ako ste svoje planove (uključujući i čitanje one FAQs ste našli) zar se ne nađe rješenje. Stranica projekta može opisati postupak bug-izvještavanje, ili imaju vezu sa jednom; ako je tako, pratite ga.

Ispaljivali e-mail osobi ili forum koji niste upoznati sa je rizično u najboljem slučaju. Na primjer, ne pretpostaviti da je autor informativne web stranice želi biti svoj besplatni konsultant. Ne prave optimista nagađanja o tome da li će vaše pitanje biti dobrodošla – ako niste sigurni, pošaljite je na drugom mjestu, ili se suzdrže od njega šalje na sve.

Prilikom odabira web foruma, newsgroup ili mailing liste, ne vjerujem ime po sebi predaleko; traže FAQ ili povelju potvrditi vaše pitanje na temu. Pročitajte neke od leđa prometa prije objavljivanja, tako da ćete dobiti osjećaj za to kako se tamo radio stvari. U stvari, to je vrlo dobra ideja napraviti ključnu riječ za pretraživanje riječi koje se odnose na vaš problem na newsgroup ili mailing listu arhiva prije nego što objavite. To možete naći odgovor, a ako ne to će vam pomoći da formulirati bolje pitanje.

Ne shotgun-blast sve dostupne pomoć kanala odjednom, to je kao da se dere i iritira ljude. Korak kroz njih tiho.

Zna šta je tema! Jedan od klasičnih grešaka postavlja pitanja o Unix ili Windows sučelje za programiranje u forum posvećen jezik ili biblioteku ili alat prijenosni preko oba. Ako ne razumijem zašto je ovo kiks, ti bi bio best off ne traži bilo kakvih pitanja na sve dok ste ga dobili.

U principu, pitanja dobro odabran javni forum češće dobiti korisne odgovore nego ekvivalent pitanja na privatni. Postoji više razloga za to. Jedan od njih je jednostavno veličine bazena potencijalnih ispitanika. Još jedna je veličina publike; hakeri bi radije odgovarati na pitanja koje obrazuju mnogi ljudi od pitanja služe samo nekoliko.

Razumljivo, vješti hakeri i autori popularnog softvera već primaju više od njihove fer udio mis-ciljane poruke. Dodavanjem do poplava, mogao bi u ekstremnim slučajevima čak biti kap koja razbija prelila čašu – dosta puta, doprinos popularne projekte povukli svoju podršku jer kolateralna šteta u obliku beskorisnih e-mail prometa na svoje lične račune postalo nepodnošljivo.

Stack Overflow

Traži, onda pitati na Stack Exchange

U posljednjih nekoliko godina, Stack Exchange zajednice lokaliteta je nastao kao glavni resurs za odgovaranje na tehnička i druga pitanja i čak poželjan forum za mnoge open-source projekata.

Počnite sa Google pretraživača prije gledajući Stack Exchange; Google indeksira se u realnom vremenu. Postoji vrlo dobra šansa je neko već postavio slično pitanje, a Stack Exchange stranice su često pri vrhu rezultata pretraživanja. Ako niste našli ništa preko Google-a, tražite opet na određenu lokaciju najrelevantnije na vaše pitanje (vidi dolje). Pretraživanje s oznakama može pomoći suziti rezultate.

Ako još uvijek nisu našli ništa, postavite pitanje na jednom mjestu gdje je najviše na temu. Koristite oblikovanje alata, posebno za kod, i dodajte oznake koje se odnose na suštinu tvog pitanja (posebno ime programskog jezika, operativni sistem, ili biblioteku imate problema s). Ako je komentator traži više informacija, uređivati ​​glavne pošte da biste je uključili. Ako bilo koji odgovor je od pomoći, kliknite na strelicu nagore da ga upvote; ako odgovor daje rješenje za vaš problem, kliknite na polje ispod glasa strelice da ga prihvati kao ispravna.

Stack Exchange je narasla na više od 100 lokacija, ali ovdje su najozbiljniji kandidati:

  • Super Korisnik je za pitanja o opće namjene računarstva. Ako se ne radi o kod ili programe koje razgovarati samo putem mrežne veze na vaše pitanje, vjerovatno ide ovdje.
  • Stack Overflow je za pitanja u vezi programiranja.
  • Server Greška je za pitanja u vezi servera i administraciju mreže.

Nekoliko projekata imaju svoje određene lokacije, uključujući Android, Ubuntu, TeX / LaTeX, i SharePoint. Provjerite Stack Exchange stranice za popis up-to-date.

Web i IRC forumima

Vaš lokalni grupa korisnika, ili Linux distribucija, mogu oglašavati web forum ili IRC kanal gdje početnici mogu dobiti pomoć. (U zemljama koje nisu na engleskom govornom području početnik forumi su ipak veće šanse da bude mailing listama.) To su dobri prvih mjesta da pita, pogotovo ako mislite da ste možda sapleo relativno jednostavan ili zajednički problem. Jedan reklamiraju IRC kanal je otvoren poziv da se tamo postavljaju pitanja i često dobiti odgovore u realnom vremenu.

U stvari, ako imaš program koji vas pravi probleme od Linux distribucija (kao što je danas uobičajena), možda bi bilo bolje da pitate u distro Forum / list prije nego što pokušate programa Project Forum / list. hakeri projekta mogu samo reći: “koriste naše build”.

Prije objavljivanja na bilo koji Web Forum, provjerite da li ima Search funkciju. Ako se to dogodi, pokušajte nekoliko ključnu traži nešto kao i tvoj problem; to samo može pomoći. Ako ste radili opće pretraživanja weba prije nego što (kao što bi trebao imati), pretražite forum ionako; Web-širok tražilica možda neće imati sve ovog foruma indeksirane nedavno.

Postoji sve veća tendencija za projekte da to korisničkoj podršci preko web foruma ili IRC kanal, sa e-mail pridržana više za razvoj saobraćaja. Tako tražiti kanale prvi kada traže pomoć konkretnih projekata.

U IRC, to je vjerojatno najbolje da ne baci dug opis problema na kanalu prva stvar; neki ljudi to tumače kao kanal poplava. Najbolje da izgovori opis u jednoj rečenici problem na način kosi da se započne razgovor na kanalu.

Kao drugi korak, koristiti mailing liste projekta

Kada projekt ima razvoj mailing listu, pišite mailing listu, a ne na pojedinačne programere, čak i ako mislite da znate ko može najbolje odgovoriti na vaše pitanje. Provjerite dokumentaciju projekta i njegovih stranica za adresu mailing listu projekta, i koristiti ga. Postoji nekoliko dobrih razloga za ovu politiku:

  • Svako pitanje dovoljno dobar da bi tražio od jedne programer će biti od značaja za cijelu grupu. Nasuprot tome, ako sumnjate da je vaše pitanje preglup za mailing listu, to nije opravdanje za uznemiravanje individualne programere.
  • Postavljanje pitanja na listi raspoređuje opterećenje među programerima. Pojedinac developer (pogotovo ako je on vođa projekta) može biti previše zauzet da odgovori na vaša pitanja.
  • Većina mailing liste se arhiviraju i arhivi su indeksirane od strane pretraživača. Ako postavite pitanje na listi i to je odgovorio, budući pitalac mogao naći pitanje i odgovor na webu, umjesto još jednom pitam ga.
  • Ako se vide neka pitanja da se često postavlja, programeri mogu koristiti te informacije za poboljšanje dokumentaciju ili sam softver da bude manje zbunjujuće. Ali, ako ta pitanja se postavljaju u privatnom, niko nema potpunu sliku o tome šta pitanja postavljaju najčešće.

Ako projekt ima i “korisnik” i “developer” (ili “haker”) mailing listu ili web foruma, a vi ne hacking na kod, pitajte u “korisnik” lista / forum. Nemojte pretpostavljati da ćete biti dobrodošli na listi developer, gdje su šanse da dožive vaše pitanje što je buka remeti njihov developer prometa.

Međutim, ako ste sigurni da je vaše pitanje nije trivijalno, a ne dobijete odgovor u “korisnik” lista / forum za nekoliko dana, pokušajte “developera” jedan. Ti bi biti dobro savjetuje da vrebaju tamo nekoliko daysor najmanje komentar posljednjih nekoliko dana arhivirane poruke, da se upoznaju lokalne Folkways prije objavljivanja (zapravo to je dobar savjet na bilo privatnim ili polu-privatne liste).

Ako ne možete naći mailing listu adresu projekta, ali samo pogledajte adresu za održavanje projekta, slobodno pisati na održavatelja. Ali čak iu tom slučaju, ne pretpostaviti da mailing listu ne postoji. Spomenuti u svoj e-mail koji ste pokušali i nije mogao pronaći odgovarajući mailing listu. Također napomenuti da se ne protivi da svoju poruku proslijediti drugim ljudima. (Mnogi ljudi vjeruju da je privatna e-mail treba da ostane privatna, čak i ako ne postoji ništa tajno u njemu. Dopuštajući vaša poruka biti proslijeđena dajete dopisnik izbor o tome kako se nositi sa svojim e-pošte.)

Koristite smislene, specifične zaglavlja predmet

Na mailing liste, grupama ili web forumima, predmet zaglavlja je vaša zlatna prilika da se privuku pažnju stručnjaka ‘u oko 50 znakova ili manje. Ne gubite ga na brbljanje kao što su “Molim Vas da mi pomogne” (a kamoli “Molim vas pomozite mi !!!!”; poruka s temama kao što su da se odbaci refleks). Ne pokušavajte da nas impresionira dubinu vaše patnje; koristiti prostor za super-sažet opis problema umjesto.

Jedna dobra konvencija za zaglavlja predmet, koje koriste mnoge organizacije za tehničku podršku, je “objekat – devijacija”. Je “objekt” dijela određuje ono stvar ili grupe stvari se imam problem, i “devijacija” dijela opisuje odstupanje od očekivanih ponašanja.

Stupid:

HELP! Video ne radi ispravno na mom laptopu!

Smart:

X.org 6.8.1 izobličene kursor miša, Fooware MV1005 vid. čipset

Pametniji:

X.org 6.8.1 kursor miša na Fooware MV1005 vid. čipset – je izobličena

Proces pisanja “objektno-odstupanje” opis će vam pomoći organizirati vaše razmišljanje o problemu više detalja. Ono što je pogođena? Samo mišem ili drugim grafičkim previše? Je li ovo specifične za X.org verziji X? Na verziju 6.8.1? Da li je to specifično za Fooware video čipseta? Za model MV1005? Haker koji vidi rezultat može odmah shvatiti što je to što imaju problem sa i problem imate, na prvi pogled.

Više općenito, zamislite gledajući indeks arhivu pitanja, samo predmet linije pokazuje. Napraviti svoj red za temu odražavaju vaše pitanje dovoljno dobro da u narednih osoba u potrazi arhivu sa pitanjem sličan tvoj će moći pratiti nit na odgovor, a ne ponovno postavljanje pitanja.

Ako vam postavim pitanje u odgovoru, budite sigurni da promeni temu linije ukazuju na to da pitate pitanje. Linija predmet koji izgleda kao “Re: test” ili “Re: novi bug” je manje šanse da privuče korisne količine pažnje. Također, pare citat prethodnih poruka na minimum u skladu sa cluing u novim čitaocima.

Jednostavno ne udariti odgovor na listu poruku kako bi započeli sasvim novi thread. To će ograničiti svoju publiku. Neki čitaoci mail, kao džukelo, omogućavaju korisniku da sortirati oglase po temi i onda se kriju poruke u temi preklapanjem nit. Ljudi koji to nikad neće vidjeti vašu poruku.

Mijenja subjekt nije dovoljna. Mutt, i verovatno drugim čitaocima mail, gleda ostale informacije u zaglavlju e-mail da se dodijeliti na temu, a ne subjekt linije. Umjesto toga započeti potpuno novi e-mail.

Na web forumima pravila dobre prakse su malo drugačiji, jer poruke su obično mnogo čvršće vezan za konkretnu raspravu teme i često nevidljiva izvan tih tema. Mijenja predmet kada postavljam pitanje odgovor nije neophodno. Nisu svi forumi čak omogućiti poseban predmet linije na odgovorima, a skoro ih niko ne čita kada to učine. Međutim, postavlja pitanje u odgovoru je sumnjiva praksa sama po sebi, jer će se vidjeti samo oni koji gledaju ovu temu. Dakle, osim ako ste sigurni da želite pitati samo ljudi koji su trenutno aktivni u nit, započeti novu.

Olakšavaju odgovori

Završni radovi na vaše pitanje sa “Molimo pošaljite vaš odgovor …” čini prilično teško ćete dobiti odgovor. Ako ne može biti smeta da se čak i nekoliko sekundi je potrebno da se uspostavi ispravan Odgovori-Na header u svoju poštu agent, ne možemo da se potrudi da čak i nekoliko sekundi da razmišlja o svom problemu. Ako vaš mail program ne dozvoljava ovo, dobiti bolji program pošte. Ako vaš operativni sistem ne podržava bilo koji e-mail programa koji to dozvoljavaju, dobiti bolji operativni sistem.

U web forumima, tražeći odgovor na e-mail je potpuno nepristojno, osim ako smatraju da informacije mogu biti osjetljive (i neko će, iz nekog nepoznatog razloga, da vas, ali ne i cijeli forum znamo). Ako želite e-mail kopiju kad neko odgovara u nit, tražiti da se Web Forum je poslati; podržava ovu funkciju gotovo svuda pod opcije kao što je “gledati ovu temu”, “poslati e-mail na odgovore”, itd

Napišite u jasan, gramatički ispravno-napisano jeziku

Našli smo iz iskustva da su ljudi koji su nemarni i aljkav pisci su obično i nemarni i aljkav na razmišljanje i kodiranje (dovoljno često da se kladite na, ionako). Odgovarajući na pitanja za nepažljiv i nemaran mislilaca nije nagrađivanje; mi radije provodimo vrijeme negdje drugdje.

Dakle, izražavajući svoje pitanje jasno i dobro je važno. Ako ne može biti smeta da to uradi, ne možemo se potrudio da obrati pažnju. Provedite dodatni napor za poliranje vaš jezik. To ne mora biti krut ili formalno – u stvari, hakerska kultura cijeni neformalne, žargonski i duhovit jezik koji se koristi s preciznošću. Ali to mora biti precizan; mora da postoji neki pokazatelj da razmišljate i obraća pažnju.

Spell, punktirati, i kapitalizirati ispravno. Ne miješajte “svoje” sa “to je”, “labave” s “izgubiti”, ili “diskretni” s “diskretno”. Nemojte kucati velikim slovima; ovo se čita kao vikanje i smatra nepristojno. (All-Smalls je samo malo manje dosadna, jer je teško pročitati. Alan Cox može izvući, ali ne možeš.)

Uopšte, ako pišete kao polupismeni sisu ćete vrlo vjerojatno biti ignorisani. Dakle, nemojte koristiti prečice instant-poruka. Pravopisa “ti” kao “U” čini da izgledaju kao polupismeni sisu da spasi dva cijele tipke. Što je još gore: pisanje kao l33t script kiddie hax0r je apsolutni poljubac smrti i garantira da ćete dobiti ništa drugo nego šljunčana tišine (ili, u najboljem slučaju, gomilajući pomažući prezira i sarkazma) za uzvrat.

Ako se postavljaju pitanja na forumu koji ne koristi svoj maternji jezik, dobit ćete ograničenu količinu slack za pravopisa i gramatike grešaka – ali bez dodatnih zatišje na sve za lenjost (i da, obično možemo uočiti tu razliku). Također, osim ako ne znate šta jezicima svojim ispitanika su, pisati na engleskom jeziku. Zauzet hakeri imaju tendenciju da jednostavno ispiranje pitanja na jezicima oni ne razumiju, i engleski je radni jezik Interneta. Pišući na engleskom da smanjite svoje šanse da će vaše pitanje biti odbačen nepročitane.

Ako pišete na engleskom jeziku, ali to je drugi jezik za tebe, to je dobra forma da upozori potencijalnih ispitanika na potencijalne poteškoće jezika i mogućnosti za dobivanje oko njih. Primjeri:

  • Engleski nije moj maternji jezik; molim vas, oprostite štamparske greške.
  • Ako govorite $ JEZIK, molimo pošaljite email/PM me; Možda će mi trebati pomoć prevođenje moje pitanje.
  • Upoznat sam sa tehničkom smislu, ali neki sleng izraza i idioma teško za mene.
  • Sam pisao moje pitanje u $ i engleskom jeziku. Ja ću biti drago da prevesti odgovora, ako koristite samo jedno ili drugo.

Pošalji pitanja u pristupačnim, standardnim formatima

Ako napravite vaše pitanje umjetno teško pročitati, to je veća verovatnoća da će prešla preko u korist one koja to nije. Dakle:

  • Pošalji običan tekst mail, a ne HTML. (To nije teško da isključite HTML-a.)
  • MIME prilozi su obično u redu, ali samo ako su stvarni sadržaj (kao što je u prilogu izvornu datoteku ili zakrpa), a ne samo predloženi stvara svoj mail klijent (kao što je drugi kopiju poruke).
  • Ne šalju e-mail u kojem cijele paragrafi jednom višestruko-omotan linije. (Zbog toga je teško odgovoriti na samo dio poruke.) Pretpostavimo da će vaša ispitanici biti čitanje poštom na 80-karakter-širok tekst displeji i postaviti svoju liniju wrap u skladu s tim, na nešto manje od 80.
  • Međutim, ne zamotajte podataka (kao što su datoteke dnevnika deponija ili transkripti sjednica) u bilo koje širine fiksnim kolone. Podatke treba uključiti kao-je, tako da ispitanici mogu imati povjerenje da oni vide ono što ste vidjeli.
  • Ne šaljite MIME Citirano-Štampu kodiranja na engleskom jeziku forumu. Ovo kodiranje može biti potrebno kada ste postavljanje na jeziku ASCII ne pokriva, ali mnogi e-mail agenti ne podržava. Kada su slomiti, sve one = 20 glifove razbacane kroz tekst su ružni i odvlače pažnju – ili može aktivno sabotiraju semantika teksta.
  • Nikad, nikad očekivati ​​hakeri da bi mogli čitati zatvorene formate vlasnički dokument kao što su Microsoft Word ili Excel. Većina hakera reaguju na ove oko, kao i što bi da ima gomilu parenje svinja stajnjaka ostavila na pragu. Čak i kada se mogu nositi, oni su poslali potrebe da se to učini.
  • Ako ste slanje e-pošte iz Windows mašini, isključite Microsoft problematična “Smart Citati” funkcija (Iz Alati> Opcije automatskog ispravljanja, brisanje smart quotes kvadratić ispod AutoFormat dok kucate.). Ovo je tako ćete izbjeći prskanje znakove smeće preko pošte.
  • U web forumima, ne zloupotrebljavaju “smajli” i “HTML” funkcije (kada su prisutni). A smajli ili dva je obično u redu, ali u boji fancy tekst ima tendenciju da ljudi misle da su bezveze. Ozbiljno preteranom smiješak i boje i fontovi će vam ispasti kao golicljivih tinejdžerke, što nije općenito dobra ideja, osim ako ste više zainteresirani za seks od odgovora.

Ako koristite grafički-korisnički interfejs mail klijent, kao što su Netscape Messenger, MS Outlook, ili njima slični, čuvajte da može krše ova pravila kada se koristi sa zadane postavke. Većina takvih klijenti imaju “View Source” komandu menija na bazi. Koristite ovo na nešto u vašem poslao-mail folder, provjeru slanje običan tekst bez nepotrebnih prilogu Crud.

Biti precizan i informativan tvoj problem

  • Opisuju simptomi svoj problem ili bug pažljivo i jasno.
  • Opišite okruženje u kojem se javlja (mašine, OS, aplikacije, kako god). Pružiti distribuciju vašeg proizvođača i oslobodite nivou (e.g .: “Fedora Core 7”, “Slackware 9.1”, itd.)
  • Opišite istraživanja si učinio probati i shvatiti problem prije nego što ste postavili pitanje.
  • Opišite dijagnostičkih koraka ste uzeli da pokušate i prikliještio problem sebe prije nego što je postavio pitanje.
  • Opišite sve moguće relevantne nedavne promjene u vašem računalu ili softver konfiguracije.
  • Ako je ikako moguće, ne pruža način da se pojave problema u kontroliranom okruženju.

Da najbolje što možeš predvidjeti pitanja haker će tražiti, i odgovarati na njih unaprijed vaš zahtjev za pomoć.

Davanje hakeri mogućnost pojave problema u kontroliranom okruženju je posebno važno ako ste izvještavanje nešto mislite da je bug u kodu. Kada to učinite, vaše šanse za dobivanje koristan odgovor i brzina kojom ste vjerojatno dobiti taj odgovor i poboljšati strahovito.

Simon Tatham je napisao odličan esej pod naslovom Kako prijaviti Bagi Efikasno. Preporučujem da dobro ste pročitali.

Volumena nije precizno

Morate biti precizan i informativan. Ovaj kraj se ne služi samo bacanje ogromne količine koda ili podataka u zahtjevu pomoć. Ako imate veliki, komplikovano test koji krši program, pokušajte da ga smanjiti i učiniti ga što je moguće manji.

Ovo je korisno za najmanje tri razloga. One: ne vide da ulože napor u pojednostavljivanju pitanje čini više vjerojatno da ćete dobiti odgovor, dva: pojednostavljenje pitanje čini više vjerojatno da ćete dobiti koristan odgovor. Tri: U procesu prerade svoj izvještaj o grešci, možete razviti popraviti ili zaobilaznim sebe.

Ne žuri da tvrdite da ste našli bug

Kada imate problema sa komad softvera, nemoj tvrditi da ste pronašli grešku osim ako ste vrlo, vrlo sigurni u svoj zemlji. Napomena: ako ne može pružiti izvornog koda zakrpu koja ispravlja problem, ili test regresije protiv prethodnu verziju koja pokazuje pogrešan ponašanje, vjerojatno ste dovoljno siguran. To se odnosi na web stranice i dokumentacije, previše; Ako ste pronašli dokumentaciju “bug”, treba dostaviti zamjena teksta i koje stranice treba ići dalje.

Zapamtite, postoje i mnoge druge korisnike koji nemaju iskustvo tvoj problem. U suprotnom bi saznao čitajući dokumentaciju i potrazi Web (niste to prije nego što se žale, zar ne?). To znači da vrlo vjerojatno ti si taj koji nešto rade pogrešno, a ne softver.

Narod koji je napisao softver raditi veoma teško uspeti kao i moguće. Ako tvrdite da ste pronašli grešku, bićete impugning njihove nadležnosti, koje mogu uvrijediti neke od njih, čak i ako ste u pravu. To je posebno nediplomatski vikati “bug” u liniji Subject.

Kada pitate pitanje, najbolje je pisati kao da ste pretpostaviti radite nešto pogrešno, čak i ako ste privatno prilično sigurni da su otkrili stvarni bug. Ako stvarno postoji bug, vi ćete čuti o tome u odgovoru. Igrati tako će održavaju žele da ti se izvinim ako je bug je pravi, a ne tako da ćete ih dugujem izvinjenje ako ste zabrljali.

Puzanje nije zamjena za to domaći

Neki ljudi koji su se da ne bi trebalo da se ponašaju grubo ili arogantno, tražeći odgovor, povući u drugu krajnost od puzanja. “Znam da sam samo patetičan početnik gubitnik, ali …”. Ovo je odvraća pažnju i pomoći. To je posebno neugodno kada je zajedno sa nejasnoća u vezi sa stvarnim problemom.

Ne gubite vrijeme, ili naša, na sirove primata politike. Umjesto toga, predstaviti pozadini činjenice i vaše pitanje jasno kao možete. To je bolji način da se pozicioniraju nego puzanja.

Ponekad Web forumi imaju odvojena mjesta za newbie pitanja. Ako mislite da imate početnik pitanje, samo idi tamo. Ali, ne puzim ni tamo.

Opišite simptomi problem, a ne tvoj nagađanja

To nije korisno reći hakeri šta misliš uzrokuje problem. (Ako vaš dijagnostički teorije bile takve hot stuff, da li bi konsalting drugih pomoć?) Dakle, pobrinite se da im se kaže: sirove simptomi onoga što krene po zlu, a ne svojim interpretacijama i teorije. Pustite ih da rade za tumačenje i dijagnoze. Ako osjećate da je važno da navedete svoje nagađanje, jasno označite ga kao takvog i opisati zašto je odgovor ne radi za vas.

Glup:

Idem back-to-back SIG11 greške na kernel sastavlja, a sumnja se kose pukotine na jednom od matične ploče tragova. Koji je najbolji način da se provjeri za to?

Smart:

Moj dom građen K6 / 233 na FIC-PA2007 matičnu ploču (VIA Apollo VP2 čipset) sa 256MB Corsair PC133 SDRAM počinje uzimajući česte SIG11 greške oko 20 minuta nakon uključivanja u toku kernela sastavlja, ali nikada u prvih 20 minuta . Restart ponovo ne pokrene sat, ali gašenja preko noći radi. Zamjene sve RAM nije pomoglo. Relevantni dio tipičnog dnevnika kompiliranja sjednice slijedi.

Od prethodnog trenutku čini se da je teško jedan za mnoge ljude da shvate, ovdje je fraza da vas podsjetim: “Svi dijagnostičara su iz Missourija.” zvanični moto da su američke države je “Pokaži mi” (ostvarene u 1899. godine, kada je rekao kongresmen Willard D. Vandiver “dolaze iz zemlje koja podiže kukuruza i pamuka i cockleburs i demokrata, i pjenasta elokvencije ni uvjerava ni mene zadovoljava ja. Ja sam iz Missourija. Moraš mi pokazati. “) u slučaju dijagnostičara ‘, to nije stvar skepticizma, nego doslovni, funkcionalna potreba da se vide sve što je što je moguće bliže na isti sirove dokaz da te vidim, radije od tvog surmises i sažetke. Pokaži nam.

Opišite simptomi vaš problem u kronološkom redu

Tragove najkorisniji u otkrivanju nešto što je pošlo po zlu često leže u događajima neposredno prije. Dakle, nalog treba da opiše upravo ono što ste radili, i koji su mašine i softver učinio, što je dovelo do Blowup. U slučaju procesa komandne linije, koji ima dnevnik sesije (npr, koristeći skripta komunalnih) i citira relevantne dvadesetak linija je vrlo korisna.

Ako je program koji je eksplodirao na vas ima dijagnostičke mogućnosti (kao što je -v za preopširan), pokušajte da izaberete opcije koje će dodati korisne informacije ispravljanje pogrešaka u zapisnik. Imajte na umu da više nije nužno bolje; pokušati izabrati debug nivou koji će obavijestiti, a ne davi čitaoca u junk.

Ako vaš račun završi što dugo (više od oko četiri paragrafa), možda bi bilo korisno da se sažeto navesti problem se vrha, a zatim slijede sa hronološkim priču. Na taj način, hakeri će znati šta obratiti pažnju u čitanju vaš račun.

Opišite cilj, a ne korak

Ako pokušavate da saznate kako da nešto (za razliku od izvještavanje bug), početi opisuje cilj. Tek tada opisuju određeni korak ka tome da su blokirani na.

Često, ljudi kojima je potrebna tehnička pomoć imaju cilj na visokom nivou u vidu i zaglavim na ono što misle da je jedan poseban put prema golu. Oni dolaze po pomoć u korak, ali ne shvataju da je put u pravu. To može potrajati znatan napor da se otarasiti ovoga.

Glup:

Kako mogu dobiti boju-berač na programu FooDraw da heksadecimalni RGB vrijednost?

Smart:

Trudim se da zamijeni sto boju na sliku s vrijednostima po mom izboru. Trenutno je jedini način na koji mogu vidjeti da to je uređivanjem svaki slot sto, ali ne mogu dobiti Color Picker FooDraw da preuzme heksadecimalni RGB vrijednosti.

Druga verzija pitanje je pametan. To omogućava odgovor koji ukazuje na alat bolje odgovara na visini zadatka.

Nemojte tražiti od ljudi da odgovorite privatnih e-mail

Hakeri vjeruju rješavanju problema treba da bude javni, transparentan proces tokom kojeg se prvog pokušaja na odgovor može i treba ispraviti ako neko više znanja obavijesti da nepotpune ili netočne. Također, pomagači dobiti neke od njihovih nagrada za što su ispitanici iz ne vide da su kompetentni i obrazovani od strane svojih vršnjaka.

Kada pitate za privatne odgovora, vi remeti i proces i nagrada. Ne radi to. To je izbor ispitanika da li da odgovori privatno – i ako on ili ona radi, to je obično zato što je on ili ona misli da je pitanje previše formiran bolesni ili očigledno biti zanimljivo drugima.

Postoji jedan ograničen izuzetak od ovog pravila. Ako mislite da je pitanje tako da ste vjerojatno dobiti mnoge odgovore koji su usko slično, onda čarobne riječi su “e-mail me, a ja ću rezimirati odgovore za grupu”. To je ljubazni da pokuša spasiti mailing listu ili newsgroup poplavu suštinski identične objave – ali morate održati obećanje da sumiramo.

Biti eksplicitne vaše pitanje

Otvorena pitanja imaju tendenciju da se percipira kao otvoreni put umivaonika. Ti ljudi najvjerojatnije biti u mogućnosti da vam dati koristan odgovor su i najprometnijih ljudi (ako samo zato što su uzeti na najviše sami rade). Ljudi kao da su alergični na otvoreni put sudopera, tako oni imaju tendenciju da budu alergični na otvorena pitanja.

Vi ste više šanse da dobiju koristan odgovor ako ste eksplicitni o tome šta želite ispitanika učiniti (pružanje pokazivači, poslati kod, provjerite patch, kako god). To će se fokusirati svoj trud i implicitno staviti gornju granicu vremena i energije ispitanik mora izdvojiti da vam pomaže. Ovo je dobro.

Razumjeti svijet stručnjaci žive, misle stručnosti kao obilan resursa i vremena da odgovori kao oskudna jedan. Što je manje od vremena opredjeljenje vas implicitno traže, veće su šanse ste dobiti odgovor od nekoga stvarno dobro i jako zauzeta.

Tako da je korisno kadriranje pitanje kako bi se smanjila predanost potrebne za stručno to polje – ali to često nije isto što i pojednostavljenja pitanje. Tako je, na primjer, “Da li mi dati pokazivač dobro objašnjenje X?” Je obično pametniji pitanje nego “Da li objasniti X, molim vas?”. Ako imate neke neispravan kod, obično je pametnije tražiti nekoga da objasni šta nije u redu s njim nego da pitate nekoga da ga popravi.

Kada pitate kod

Ne pitaj druge da debagovali razbijena kod bez davanja nagovještaj kakav problem treba ih u potrazi za. Slanje poruka u nekoliko stotina linija koda, kaže “ne radi”, će da te ignoriraju. Postavljanjem desetak linija koda, rekavši da “nakon što je linija 7 sam očekivao vidjeti <x>, ali <y> Pojavila umjesto” mnogo veće šanse da dobijete odgovor.

Najefikasniji način da budemo precizni o problemu kod je pružiti minimalno bug-demonstrirajući test. Koja je minimalna test? To je ilustracija problema; dovoljno koda pokazuju nepoželjnog ponašanja i ništa više. Kako napraviti minimalni test? Ako znate šta linije ili dio koda je proizvodnju problematičnog ponašanja, napravite kopiju i dodajte dovoljno podrške kod za proizvodnju kompletan primjer (tj dovoljno da je izvor koji je prihvatljiv za kompajler / prevodilac / god aplikacija obrađuje) . Ako ne možete to suziti na određeni dio, napraviti kopiju izvora i početi uklanjanje komade koje ne utječu na problematično ponašanje. Manjih svoj minimalni test je, bolji (vidi odjeljak pod nazivom “Volume nije preciznost”).

Generiranje jako mali minimalni test neće uvijek biti moguće, ali pokušavam da je dobra disciplina. To vam može pomoći da naučite ono što vam je potrebno da se riješi problem na svoju ruku – pa čak i kad to ne desi, hakeri bih da vidim da ste pokušali. To će učiniti ih još zadruga.

Ako jednostavno želite pregled kod, reći koliko je napred, i budite sigurni da se spomenuti kojim oblastima mislite možda posebno trebati pregled i zašto.

Nemojte pisati zadaću pitanja

Hakeri su dobri u otkrivanju zadaću pitanja; većina od nas su ih uradili sami. Ta pitanja su za vas da razraditi, tako da ćete naučiti iz iskustva. To je u redu tražiti upute, ali ne i za cijelu rješenja.

Ako sumnjate da su prošli domaći zadatak pitanje, ali ne može riješiti to pitanje u svakom slučaju, da pitate u grupu korisnika foruma ili (kao u krajnjoj nuždi) u “korisnik” lista/forum projekta. Dok su hakeri će to uočiti, neke napredne korisnici mogu li barem dati savjet.

Orezati besmislena pitanja

Oduprite se iskušenju da zatvorite svoj zahtjev za pomoć sa semantički-null pitanja kao što su “Može li mi neko pomoći?” Ili “Da li postoji odgovor?” Prvo: ako ste napisali svoj opis problema na pola puta kompetentno, kao nalijepljen na pitanja u najbolje suvišno. Drugo: jer su suvišne, hakeri ih pronaći neugodno – i vjerovatno će se vratiti logički besprijekornu ali odbacuje odgovore kao što su “Da, može pomoći” i “Ne, nema pomoći za vas.”

U principu, tražeći da ili ne pitanja je dobra stvar da se izbegne, osim ako želite da ili ne odgovor.

Ne zastavu vaše pitanje “Hitno”, čak i ako je za vas

To je tvoj problem, a ne naš. Tvrdeći hitnosti će vrlo vjerojatno biti kontraproduktivno: većina hakera će jednostavno izbrisati takve poruke kao nepristojan i sebičan pokušaja da izazovu trenutnu i posebnu pažnju. Osim toga, riječ ‘Hitno’ (i drugih sličnih pokušaja da zgrabite pažnju u naslovu) često izaziva spam filteri – namjeravanog primatelja možda nikada neće vidjeti na sve!

Postoji jedan polu-izuzetak. To može biti vrijedno spomena ako koristite program u nekim visokog profila, jedna je da će hakeri dobiti uzbuđen; U tom slučaju, ako ste pod vremenskim pritiskom, a vi kažete tako ljubazno, ljudi mogu dobiti dovoljno zainteresirani da odgovori brže.

Ovo je vrlo riskantan potez, međutim, jer metričkih hakeri “za ono što je uzbudljivo vjerojatno se razlikuje od vašeg. Slanje poruka iz Međunarodne svemirske stanice bi se kvalificirati, na primjer, ali postavljanje u ime feel-good dobrotvorne ili političkih razloga bi gotovo sigurno ne. U stvari, postavljanje “Hitno: Pomozite mi spasiti fazi foka!” Pouzdano će vas izbjegavali ili se zapalila čak od strane hakera koji misle fuzzy foka su važni.

Ako ste pronašli ovaj misteriozni, ponovno pročitajte ostatak ovog kako-da više puta sve dok ga ne razumiju prije objavljivanja ništa.

Brodska nikad boli, a ponekad pomaže

Budite ljubazni. Koristite “Molim” i “Hvala na pažnji” ili “Hvala ti na razmatranje”. Jasno vam cijeniti vremena ljudi provode ti pomažem za besplatno.

Da budem iskren, to nije tako važno kao (i ne mogu zamijeniti) što gramatičkih, jasan, precizan i opisni, izbjegavajući vlasnički formati itd .; hakeri općenito radije dobiti nešto grub, ali tehnički oštre izvještaje o greškama nego učtivo nejasnoće. (Ako vam to zbunjuje, zapamtite da cenimo na pitanje šta nas uči.)

Međutim, ako imate svoj tehnički patke, učtivosti li povećati vaše šanse za dobivanje koristan odgovor.

(Moramo napomenuti da je jedini ozbiljni prigovor koji smo dobili od veterana hakera u ovom KAKO je u odnosu na našu prethodnu preporuku za korištenje “Hvala unaprijed”. Neki hakeri osjećati ovo podrazumijeva namjeru da nikog ne kasnije zahvaliti. Naša preporuka je ili da kažem: “Hvala unaprijed” prvi, a nakon toga se zahvalim ispitanika, ili izrazi ljubaznosti na drugačiji način, kao što je rekao: “Hvala na pažnji” ili “Hvala ti na razmatranje”.)

Pratite sa kratkim poruku na rješenje

Pošalji poruku nakon što je problem riješen za sve one koji ti je pomogao; neka znaju kako je izašao i jednom hvala im na pomoći. Ako se problem privukao opšteg interesa u mailing listu ili novinska grupa, to je prikladno da se položi Praćenje tamo.

Optimalno, odgovor bi trebalo da bude nit započeo originalno pitanje knjiženja, i očekivalo se da ‘fixed’, ‘Riješeno ili jednako očigledno citat u naslovu. Na mailing liste sa brzim preokret, potencijalni ispitanik koji vidi nit o “Problem X” završava s “Problem X – Fixed” zna da ne gubi njegove / njene vrijeme, čak čitajući temu (osim ako on (a) osobno smatra Problem X zanimljiv ), pa se stoga koriste to vrijeme rješavanja različitih problema.

Vaš Praćenje ne mora biti dug i uključeni; jednostavan “Dobar dan – to je propali mrežnog kabla! Hvala svima. – Bill “bi bilo bolje nego ništa. U stvari, kratko i slatko rezime je bolje nego dug disertaciju osim ako rješenje ima pravi tehnički dubine. Reci šta akciju riješio problem, ali ne morate ponavljanje sekvence za rješavanje problema u cjelini.

Za probleme s nekim dubine, to je prikladno objaviti sažetak istorije za rješavanje problema. Opišite završni račun problem. Opisuju ono što je radio kao rješenje, a ukazuju izbjeći slepim ulicama nakon toga. Slijepe uličice treba doći nakon ispravnog rješenja i drugih sažetak materijala, a ne okretanjem follow-up u detektivske priče. Ime imena ljudi koji ti je pomogao; ćete napraviti prijatelje koji način.

Pored toga što je uljudan i informativan, ova vrsta Praćenje će pomoći drugima u potrazi arhivu mailing liste / novinska grupa / forum da znam točno što rješenje ti je pomogao, a time i mogu im pomoći.

Na kraju, a ne i najmanje važno, ova vrsta Praćenje pomaže svima koji su pomogli osjećati zadovoljavajući osjećaj zatvaranja o problemu. Ako niste tehno ili haker sebe, vjeruj nam da je taj osjećaj je vrlo važno za gurue i stručnjaka vi predložen za pomoć. Problem priča koje utihne u neriješena ništavilo su frustrirajuće stvari; hakeri svrbi da ih vidi riješiti. Dobre volje da grebanje te svrbi zaradi ćete biti vrlo, vrlo korisno da vam sledeći put kada treba da postavi pitanje.

Razmislite o tome kako bi mogao biti u mogućnosti da spriječi druge da imaju isti problem u budućnosti. Zapitaj se da li bi dokumentacija ili FAQ patch pomoći i ako je odgovor da pošalje da zakrpa za održavatelja.

Među hakeri, ova vrsta dobrog ponašanja Praćenje je zapravo važnije od konvencionalnih pristojnosti. Tako dobijate reputaciju i igranje sa drugima, što može biti vrlo vrijedne imovine.

Kako interpretirati odgovori

RTFM i STFW: Kako reći da si ozbiljno zabrljao

Postoji jedna drevna i sveto tradiciju: ako dobijete odgovor koji glasi “RTFM”, osoba koja ga je poslao misli da bi trebalo da ste pročitali Fucking Manual. On ili ona je gotovo sigurno u pravu. Idi pročitati.

RTFM ima mlađeg rođaka. Ako dobijete odgovor da glasi “STFW”, osoba koja je poslala misli da je trebalo da Tražili jebeni Web. On ili ona je gotovo sigurno u pravu. Idi potražite ga. (Blažu verzija ovog je kad se kaže “Google je tvoj prijatelj!”)

U web forumima, možda ćete biti rečeno da pretražite forum arhiva. U stvari, netko može čak biti toliko ljubazni da daju pokazivač na prethodnu nit na kojoj je riješio taj problem. Ali se ne oslanjaju na ovu naknadu; učiniti arhive traženja ranije pitao.

Često, osoba govori da uradite pretragu ima ručno ili web stranice s informacijama koje trebate otvorena, a gleda na to kao on ili ona vrsta. Ove odgovorima znači da je responder misli (a) informacije koje su vam treba je lako naći, i (b) ćete saznati više ako traže informacije nego ako ga imate hranio vas.

Ne bi trebalo da se uvrijediti ovim; od strane hakera standardima, vaš ispitanik vas pokazuje grubu vrstu poštovanja jednostavno ne ignoriraju. Trebalo bi, umjesto da bude zahvalan za ovu grandmotherly ljubaznost.

Ako ne razumem …

Ako ne razumiju odgovor, odmah ne oporave zahtjev za pojašnjenje. Koristiti iste alate koje ste koristili da pokuša odgovoriti na vaše pitanje (priručnike, najčešća pitanja, Web, vješti prijatelje) da shvate odgovor. Onda, ako i dalje treba tražiti objašnjenje, pokazuju ono što ste naučili.

Na primjer, pretpostavimo da ti kažem: “Zvuči kao da si dobio zaglavila zentry; morat ćete ga očistiti “Onda: evo loš followup pitanje:”.? Šta je to zentry “Evo dobrog Followup pitanje:” OK, pročitao sam man stranicu i zentries se spominju samo pod -z i -p prekidača . Nijedan od njih ne govori ništa o čišćenju zentries. Je li to jedan od ovih ili sam nešto propustio?”

Suočavanje sa grubost

Mnogo toga što izgleda kao grubost u haker krugovima nije namijenjen da pruži djelo. Umjesto toga, to je proizvod direktno, cut-kroz-the-sranje komunikacija stil koji je prirodno da se ljudi koji su više zabrinuti za rješavanje problema nego što se drugi osjećaju toplo i fuzzy.

Kada vide grubost, pokušajte da reaguju mirno. Ako neko stvarno acting out, vrlo je vjerovatno stariji osoba na listi ili na interesnim grupama ili forum će njega ili nju pozvati na to. Ako se to ne dogodi, a vi izgubiti živce, to je vjerojatno da je osoba koju je izgubiti na ponašao u okviru normi hakerske zajednice i kada će se smatrati kriv. Ovo će povrijediti vaše šanse da informacije ili pomoć koju želite.

S druge strane, vi ćete povremeno pretrčati grubost i poziranje to je sasvim neopravdano. Flip-strani gore je to što je prihvatljiv oblik zalupiti pravi prestupnika prilično teško, secira svoje nedolično ponašanje oštrim verbalnim skalpel. Biti vrlo, vrlo sigurni u tlo prije nego što pokušate to, međutim. Linija između ispravljanja neljudnosti i pokretanje besmisleno flamewar je dovoljno tanak da sami hakeri često kiks preko njega; ako ste početnik ili autsajder, vaše šanse za izbjegavanje takve domaćih niske. Ako ste nakon informacije, a ne zabave, bolje je držati prste na tastaturi nego na taj rizik.

(Neki ljudi tvrde da mnogi hakeri imaju blagi oblik autizma ili Aspergerov sindrom, a zapravo nedostaju neka mozga kola koja podmazuje “normalne” ljudske socijalne interakcije. To može ili ne može biti istina. Ako niste haker sebe , to može pomoći da se nose s našim ekscentričnosti ako mislite na nas kao maloumni izvolite Nećemo briga;.. želimo biti bez obzira na to je da su, kao i obično imaju zdrav skepticizam o kliničkim etikete).

Jeff Bigler je zapažanja o takta filtri su također relevantni i vrijedan čitanja.

U narednom poglavlju ćemo govoriti o drugo pitanje; vrstu “grubost” vidjet ćete kad loše ponaša.

Na ne reaguje kao gubitnik

Šanse da ćeš zeznuti nekoliko puta na hakerske forumima zajednice – na način koji je detaljno opisano u ovom članku, ili slično. A vi ćete biti rečeno tačno kako se zeznuo, eventualno sa šarenim opaski. Javno.

Kada se to dogodi, najgora stvar koju možete učiniti je cviljenje o iskustvu, tvrde da su verbalno napali, izvinjenja potražnje, vrišti, zadržite dah, prijete tužbe, žale poslodavcima ljudi, ostavite dasku gore, itd Umjesto toga, evo šta radiš:

Preboli. To je normalno. U stvari, to je zdrav i pravilan.

standardima Zajednice ne vode sami: Oni održavaju ljudi aktivno ih primjene, vidljivo, u javnosti. Ne kukaju da su sve kritike trebalo da se prenose preko privatne e-mail: To nije kako se to radi. Niti je korisno insistirati da si lično uvredio kada neko komentariše da je jedan od vaših tvrdnji nije bilo u redu, odnosno da njegovi stavovi se razlikuju. To su gubitnik stavove.

Bilo je haker forumima, gdje, od nekih pogrešnih smisla hiper-ljubaznost, učesnici zabranjeno postavljanje bilo pronalaženje grešaka s drugom postove, i rekao: “Ne kažem ništa, ako ste voljni pomoći korisniku.” The rezultiralo odlazak clueful učesnika drugdje uzrokuje ih da se spuste u besmislenu brbljanje i postati beskoristan kao tehnički forumima.

Preterano “prijateljski” (na taj način) ili korisna: Izaberi jednu.

Zapamtite: Kada da haker kaže da si zajebao, i (bez obzira na to koliko osorno) kaže da ne bi to opet, on se ponaša zbog brige za (1) ste i (2) svojoj zajednici. Bilo bi mnogo lakše za njega da se zanemari i filtrirati te iz svog života. Ako ne možete upravljati da bude zahvalan, barem malo dostojanstva, ne kukaju, i ne očekujem da budu tretirani kao krhka lutka samo zato što si novajlija sa teatralno preosetljivim dušu i iluzije prava .

Ponekad ljudi će vas napasti lično, plamen bez ikakvog razloga, itd, čak i ako ne zajebeš (ili su se samo zajebao u svojoj mašti). U ovom slučaju, žaleći se na način da se stvarno zeznuti.

Ove Flamers su ili Lamers koji nemaju pojma, ali vjerujem da će biti stručnjaci, ili bi-biti psiholozi testiranje da li ćeš zeznuti. Drugi čitaoci ih ni ignorirati, ili naći načina da se bave njima na njihovim vlastitim. ponašanje Flamers ‘stvara probleme za sebe, koji ne moraju da te brine.

Ne dozvolite da se može izvući u flamewar, ni. Većina plamen se najbolje ignoriše – nakon što ste provjerava se da li su zaista plamena, ne pokazivači na načine na koje ste zabrljali, a ne pametno kriptovana odgovore na vaše pravo pitanje (to dogodi kao i).

Pitanja ne pita

Evo nekih klasičnih glupa pitanja, a ono hakeri razmišljaju kada ne odgovorite na njih.

P: Gdje mogu pronaći program ili resurs X?
P: Kako mogu koristiti X učiniti Y?
P: Kako mogu konfigurirati moj ljuske?
P: Mogu li pretvoriti AcmeCorp dokument u TeX datoteku koristeći Bass-O-Matic konverter fajl?
P: Moj {program, konfiguracija, SQL izraza} ne radi
P: Imam problema sa Windows stroj. Možeš li mi pomoći?
P: Moj program ne radi. Mislim da je sistem objekt X je slomljena.
P: Imam problema prilikom instalacije Linux ili X. Možete li mi pomoći?
P: Kako mogu razbiti root/ukrasti kanal-OPS privilegije/čitanje nečiji e-mail?

P: Gdje mogu pronaći program ili resurs X?

O: Na istom mjestu ja bih ga naći, budalo – na drugom kraju web pretraživanja. Ghod, ne svi znaju kako se još koristiti Google?

P: Kako mogu koristiti X učiniti Y?

O: Ako je to što želim je da uradite Y, treba postaviti to pitanje bez prethodnog pretpostavkom korištenje metoda koja ne može biti prikladno. Pitanja ovog oblika često ukazuju na osobu koja nije samo neznalica o X, ali zbunjeni o tome što problem Y su problema i previše fiksirani na detalje njihove konkretne situacije. To je generalno najbolje ignorirati takve ljude dok se ne definiraju njihov problem bolje.

P: Kako mogu konfigurirati moj ljuske?

O: Ako si dovoljno pametan da postavim ovo pitanje, ti si dovoljno pametan da RTFM i otkrijte sami.

P: Mogu li pretvoriti AcmeCorp dokument u TeX datoteku pomoću konvertera datoteku Bass-O-Matic?

O: Probajte i vidjeti. Ako da, ti bi (a) naučiti odgovor, i (b) zaustaviti gubim vreme.

P: Moje {program, konfiguracija, SQL izraza} ne radi

O: Ovo nije pitanje, a ja nisam zainteresovan za igranje Dvadeset pitanja zagledati vaše konkretno pitanje od tebe – imam pametnija posla. Na vidim nešto ovako, moja reakcija je obično jedan od sljedećih:

  • imate li još nešto dodati na to?
  • oh, to je loše, nadam se da se to popravi.
  • i to je upravo ono što sa mnom?

P: Imam problema sa Windows stroj. Možeš li mi pomoći?

O: Da. Izbaciti da Microsoft smeće i instalirate operativni sistem otvorenog koda kao što su Linux ili BSD.

Napomena: možete postavljati pitanja vezana za Windows mašine ako su o programu koji ima službenu Windows graditi, ili u interakciji sa Windows mašine (i.e., Samba). Samo nemojte biti iznenađeni odgovor da je problem sa sustavom Windows, a ne program, jer Windows je toliko slomljena generalno da je to vrlo čest slučaj.

P: Moj program ne radi. Mislim da je sistem objekt X je slomljena.

O: Iako je moguće da ste vi prva osoba primjetiti očigledan nedostatak u sistemu poziva i biblioteke teško koriste stotine ili tisuće ljudi, prilično je vjerovatnije da ste potpuno clueless. Vanredna tvrdnje zahtijevaju izvanredne dokaze; kada napravite zahtjev kao što je ova, morate napravite to sa jasnim i iscrpnu dokumentaciju o slučaju kvara.

P: Imam problema pri instaliranju Linux ili X. Možete li mi pomoći?

O: Ne bi nam ruke na pristup vašoj mašini za rešavanje ovog. Pitaj lokalnog Linux korisničke grupe za pomoć iz prve ruke. (Možete naći popis korisničkih grupa ovdje.)

Napomena: pitanja vezana za instalaciju Linux može biti prikladno ako ste na forumu ili mailing listu o određenom distribucije, a problem je sa tim distribucija; ili na lokalne grupe korisnika foruma. U ovom slučaju, budite sigurni da opiše točne pojedinosti o neuspjehu. Ali, da li oprezni u potrazi prvo sa “linux” i sve sumnjive komada hardvera.

P: Kako mogu razbiti root/ukrasti kanal-OPS privilegije/čitanje nečiji e-mail?

O: Ti si propalica za koje žele da rade takve stvari i moron na pitanju hakera da ti pomogne.

Dobre i loše pitanja

Na kraju, ja ću ilustruju kako se postavljaju pitanja na pametan način primjer; pari pitanja o istom problemu, jedan je pitao na glup način, a jedan na pametan način.

Glup: Gdje mogu saznati stvari o Foonly Flurbamatic?

Ovo pitanje samo moli za “STFW” kao odgovor.

Smart: Koristio sam Google da pokušaju da pronađu “Foonly Flurbamatic 2600” na webu, ali nemam koristan pogodaka. Mogu li dobiti pokazivač na programiranje informacije o ovom uređaju?

Ovaj jedan je već STFWed, i zvuči kao da bi mogao biti pravi problem.

Glup: Ne mogu dobiti kod sa projekta foo sastaviti. Zašto je slomljena?

Pitača pretpostavlja da je neko drugi zeznuo. Arogantan git …

Smart: Kod iz projekta Foo ne sastavi pod Nulix verzija 6.2. Pročitao sam FAQ, ali to ne mora ništa u njemu o problemima Nulix u vezi. Evo transkript moj pokušaj sastavljanja; je to nešto što sam uradio?

Pitača je naveden okoliš, pročitajte FAQ, pokazuje grešku, a ne pod pretpostavkom da njegovi problemi su neko drugi kriv. Ovo bi se moglo biti vrijedno malo pažnje.

Glup: Imam problema sa matične ploče. Može li neko pomoći?

odgovor J. Random Hacker da je ovo vjerovatno biti “Tako je. Da li je potrebno podrigivanje i pelene, previše? “, A zatim udarac od brisanja ključa.

Smart: Pokušao sam X, Y i Z na S2464 matičnoj ploči. Kad to nije upalilo, pokušao sam A, B i C. Napomena znatiželjnike simptom kada sam pokušao C. Očito florbish je grommicking, ali rezultati nisu ono što bi se moglo očekivati. Koji su uobičajeni uzroci grommicking na Athlon MP matičnih ploča? Ima li neko ideju za još testova mogu pokrenuti prikliještio problem?

Ova osoba, s druge strane, čini dostojan odgovor. On / ona je izlagala inteligencije za rješavanje problema, a ne pasivno čeka odgovor na pad sa visine.

U posljednje pitanje, primijetiti suptilne, ali bitna razlika između zahtjevne “Dajte mi odgovor” i “Molim te pomozi mi shvatimo šta dodatne dijagnostike mogu pokrenuti da se postigne prosvjetljenje.”

U stvari, oblik koji poslednje pitanje je blisko baziran na stvarnom incidentu koji se dogodio u avgustu 2001. godine na linux-kernel mailing listu (lkml). I (Eric) bio je postavljam pitanje koje vrijeme. Sam video misteriozan Zatvaranja na Tyan S2462 matičnu ploču. Članovima liste isporučuje važnih informacija mi je bilo potrebno za njihovo rješavanje.

Postavljajući pitanje na način na koji sam uradio, dao sam ljudima nešto žvakati na; Napravila sam ga lako i atraktivan za njih da se uključe. pokazao sam poštovanje prema sposobnosti mojih vršnjaka ‘i pozvao ih da se konsultuje sa mnom kao peer. Takođe sam pokazao poštovanje prema vrijednosti svog vremena govoreći im slepim ulicama sam već isprazne.

Nakon toga, kada sam se zahvalio svima i napomenuo kako dobro proces je radio, što je lkml član je primijetio da je mislio da nisu radili jer sam “ime” na toj listi, ali zato što sam postavio pitanje u odgovarajućem obliku.

Hakeri su na neki način vrlo nemilosrdan meritokratija; Siguran sam da je bio u pravu, i da, ako sam se ponašala kao spužva bih su se zapalila ili ignorisani bez obzira na to ko sam ja. Njegov prijedlog da pišem ceo incident kao uputstvo drugima doveo direktno na sastav ovog vodiča.

Ako ne možete dobiti odgovor

Ako ne možete dobiti odgovor, molim te, nemoj da ga osobno da mi ne mislimo da vam mogu pomoći. Ponekad članovi pitao grupe može jednostavno ne zna odgovor. Bez odgovora nije isto kao da je ignorišu, iako priznajem da je teško uočiti razliku izvana.

U principu, jednostavno ponovno postavljanje vaše pitanje je loša ideja. To će se vidjeti kao besmisleno dosadno. Imaju strpljenja: osoba sa odgovorom može biti u drugoj vremenskoj zoni i spava. Ili može biti da nije dobro formiran vaše pitanje za početak.

Postoje i drugi izvori pomoći možete ići na, često izvora bolje prilagođena potrebama početnika a.

Postoje mnogi online i lokalne grupe korisnika koji su entuzijasti o softveru, iako možda nikada ne bi pisao sebe softver. Ove grupe često čine, tako da ljudi mogu pomoći jedni drugima i pomoći novim korisnicima.

Tu su i dosta komercijalnih kompanija možete ugovoriti uz pomoć, velike i male. Nemojte biti zbunjen na ideju da mora platiti za malo pomoći! Uostalom, ako je vaš automobil motor duva brtvu glave, velike su šanse da će uzeti ga u servis i platiti da se to popravi. Čak i ako softver, nisi ništa koštati, ne možete očekivati ​​da podrška uvijek dolazi besplatno.

Za popularne softver poput Linux, ima najmanje 10.000 korisnika po developer. To jednostavno nije moguće za jednu osobu za rukovanje pozivima podršku od preko 10.000 korisnika. Imajte na umu da čak i ako morate platiti za podršku, vi i dalje plaćati puno manje nego da ste imali kupiti softver, kao i (i podrška za zatvorene-source softver je obično skuplje i manje kompetentni nego podrška za open-source software) .

Kako da odgovori na pitanja u koristan način

Biti nježan. stres problem u vezi može napraviti ljudi izgledaju nepristojan ili glupi, čak i kada nisu.

Odgovaranje na prvi počinilac off-line. Nema potrebe javnog poniženja za nekoga ko je možda napravio pošten greška. Pravi newbie možda ne znaju kako pretraživati ​​arhivu ili gdje se FAQ skladišti ili objavljeno.

Ako ne znate sigurno, tako kažem! A u pravu, ali autoritativno zvuči odgovor je gore nego uopšte. Ne ukazuju nikoga niz pogrešnim putem jednostavno zato što je zabavno zvuči kao stručnjak. Budite skromni i pošteni; postaviti dobar primjer i za pitalac i svojim vršnjacima.

Ako ne možete pomoći, ne ometaju. Ne prave viceve o postupcima koji mogu uništite podešavanje korisnika – siromašni SAP može protumačiti ih kao uputstva.

Pitati sondiranje pitanja da dobijete više detalja. Ako si dobar u ovome, pitača će naučiti nešto – i tako možda ti. Pokušajte da biste loše pitanje u dobar; se da smo svi bili početnici jednom.

Dok je mrmljajući RTFM je ponekad opravdano kada odgovarate na nekoga ko je samo lijen mangup, pokazivač na dokumentaciju (čak i ako je to samo prijedlog da google za ključnu fraza) je bolji.

Ako ćeš da odgovori na pitanje na sve, daju dobre vrijednosti. Ne ukazuju kludgy zaobilaznice kada se neko koristi pogrešan alat ili pristup. Predloži dobar alat. Preformulisati pitanje.

Odgovorite na konkretno pitanje! Ako je pitalac je bilo tako temeljito kao da to svoje istraživanje i uključeni u upitu da je X, Y, Z, A, B i C su već pokušali bez dobar rezultat, to je izuzetno od pomoći da odgovori s “Try A ili B “ili link na nešto što kaže samo” Try X, Y, Z, A, B ili C. “.

Pomoći svojoj zajednici naučiti od pitanja. Kada polje je dobro pitanje, zapitajte se: “Kako bi relevantnu dokumentaciju ili FAQ morati promijeniti tako da niko ne mora da ponovo odgovoriti na to?” Onda poslati zakrpu u održavatelja dokument.

Ako ste radili istraživanja kako bi se odgovori na pitanje, pokazati svoje vještine, nego pisanje kao da ste izvukli odgovor iz guzice. Odgovora na jedno dobro pitanje je kao hranjenje gladan osoba jedan obrok, ali učeći ih istraživačkih vještina primjerom pokazuje im kako se uzgaja hranu za cijeli život.

Slični izvori

Ako vam je potrebna uputstva u osnove kako osobnih računala, Unix, i Internet posao, pogledajte Unix i Internet Osnove KAKO.

Kada otpustite softver ili pisati zakrpe za softver, pokušajte slijediti smjernice u KAKO Software prakse priopćenju.

Priznanja

Evelyn Mitchell doprinijeli neki primjer glupa pitanja i inspirisala poglavlju “kako da dobar odgovor”. Mikhail Ramendik doprinijeli neke posebno vrijedne sugestije za poboljšanja.

Kako postati hackerem

Source: http://www.catb.org/esr/faqs/hacker-howto.html

Eric Steven Raymond


Sadržaj

Zašto ovaj dokument?
Šta je haker?
Haker stav

1. Svijet je pun fascinantnih problema koji čekaju da budu rešeni.
2. Nema problema nikada ne bi trebalo da se dva puta riješiti.
3. Dosada i naporan posao su zli.
4. Sloboda je dobro.
5. Stav nije zamjena za stručnost.

Osnovni hakerski vještine

1. Naučite kako programirati.
2. Gat jedan od Unixa i naučiti koristiti i pokrenite ga.
3. Saznajte kako koristiti svetske komunikacione mreže i pisanje HTML-a.
4. Ako nemate funkcionalan engleski, naučiti ga.

Status u hackerski kulture

1. Napisati open-source softver
2. Pomoć test i debug open-source softver
3. Objavite korisne informacije
4. Pomoć u izgradnji infrastrukture
5. Poslužite haker kulture same

Haker/Nerd priključak
Poena za stil
Istorijski napomena: hacking, open source i besplatni softver
Ostali resursi
Često postavljena pitanja

Zašto ovaj dokument?

Kao urednik Žargon datoteke i autor nekoliko drugih poznatih dokumenata slične prirode, često sam se zahtjeva mail od entuzijazma mreže početnike upita (na snazi) “kako mogu naučiti biti haker čarobnjak?”. 1996. godine sam primjetio da izgleda da nije da se bilo koja druga najčešća pitanja ili web dokumenata koji su se bavili ovo vitalno pitanje, pa sam počeo da ovaj. Mnogo hakera sada smatra da je definitivan, i pretpostavljam da to znači da je. Ipak, ja ne tvrdim da isključivu nadležnost na ovu temu; ako ti se ne sviđa ono što ste pročitali ovdje, pisati svoj.

Ako čitate snimak ovog dokumenta nije, trenutna verzija živi u http://catb.org/~esr/faqs/hacker-howto.html.

Napomena: postoji lista pitanja i odgovora na kraju ovog dokumenta. Molimo vas da pročitate ove-dvaput-prije mene mailing bilo kakvih pitanja o ovom dokumentu.

The-kvadrata pet tačaka u devet dijagram koji ukrašava ovaj dokument se zove jedrilici. To je jednostavan obrazac s nekim iznenađujuće nekretnina u matematičku simulaciju pod nazivom Život koji ima fasciniran hakeri dugi niz godina. Mislim da to čini dobar vizualni znak za ono što su hakeri kao – apstraktne, na prvi pogled pomalo misteriozno, ali prolaz u cijelom svijetu sa zamršenim svoju logiku. Pročitajte više o jedrilici amblem ovdje.

Ako ste pronašli ovaj dokument vrijedan, molim te podržavaju me Patreon. I uzeti u obzir i podršku drugih hakera koji su proizvedeni kod koji koristite i vrijednosti. Mnogo malih, ali i dalje donacije dodati brzo, a može osloboditi ljude koji su vam dali darove svoga rada da se stvori više vrijednosti.

Šta je haker?

Žargonu datoteka sadrži gomilu definicija pojma ‘haker’, većina ima veze sa tehničkim adeptness i užitak u rješavanju problema i prevazilaženja granica. Ako želite znati kako postati haker, iako, samo dva su zaista relevantni.

Tu je i zajednica, zajedničku kulturu, stručnih programera i umrežavanje čarobnjaka koji vuče povijest natrag kroz decenije prvi miniračunara time-sharing i najranijih ARPAnet eksperimente. Članovi ove kulture potiče termin “haker”. Hakeri izgrađen Interneta. Hakeri su Unix operativni sistem ono što je danas. Hakeri čine World Wide Web posao. Ako ste dio ove kulture, ako ste doprinijeli da ga i drugi ljudi u njemu znam ko si i pozvati ti haker, ti si haker.

Haker um-set nije ograničen samo na ovaj softver-haker kulture. Postoje ljudi koji primjenjuju haker stav prema drugim stvarima, kao što su elektronika ili glazbu – zapravo, možete ga pronaći na najvišem nivou svake nauke ili umetnosti. Softver hakeri prepoznaju ove srodne duše na drugim mjestima i može ih zovu ‘hakera’ previše – a neki tvrde da je haker priroda je stvarno nezavisna od određeni medij haker radi u Ali u ostatku ovog dokumenta ćemo se fokusirati na vještine i stavove. softvera hakera i tradicije zajedničke kulture koji je nastao pojam “haker”.

Postoji još jedna grupa ljudi koji su se glasno zovu hakera, ali nisu. To su ljudi (uglavnom adolescenata mužjaka) koji dobije udarac od provalio u računala i phreaking telefonski sistem. Real hakeri zovu ‘krekeri’ ovi ljudi i žele ništa sa njima. Real hakeri uglavnom smatraju krekeri lijeni, neodgovorni, a ne vrlo svijetao i prigovoriti da je u stanju da razbije sigurnosti ne čini haker bilo više nego u stanju da povežeš automobila čini automobilski inženjer. Nažalost, mnogi novinari i pisci su zavaravao koristio riječ ‘haker’ da opiše krekera; ovo iritira pravi hakeri nema kraja.

Osnovna razlika je ovo: hakeri graditi stvari, krekere ih slomiti.

Ako želite biti haker, nastavite sa čitanjem. Ako želite biti kreker, idite pročitajte alt.2600 novinska grupa i spremite se da na pet do deset zatvor nakon što sazna da nisi pametan kao što misliš da jesi. I to je sve što ću reći o krekere.

Haker Stav

1. Svijet je pun fascinantnih problema koji čekaju da budu rešeni.
2. Nema problema nikada ne bi trebalo da se dva puta riješiti.
3. Dosada i naporan posao su zli.
4. Sloboda je dobro.
5. Stav nije zamjena za stručnost.

Hakeri rješavaju probleme i graditi stvari i vjeruju u slobodu i dobrovoljne uzajamna pomoć. Da bude prihvaćen kao haker, moraš se ponašati kao da imate ovu vrstu stav sebe. I da se ponašaju kao da imate stav, morate stvarno vjerujem stav.

Ali ako mislite uzgoja stavova haker samo kao način da se bude prihvaćen u kulturi, da ćete promašiti temu. Postati osoba koja vjeruje da ove stvari je važna za vas – za pomaže da učiš i motivirani. Kao i kod svih kreativnih umjetnosti, najefikasniji način da postane gospodar imitirati um-set majstora – ne samo intelektualno, ali isto tako i emocionalno.

Ili, što su moderni Zen pjesma ga ima:

Da prate put:
pogledati na gospodara,
pratite majstor,
hodati sa master,
vidjeti kroz gospodara,
postati gospodar.

Dakle, ako želite biti haker, ponovi sljedeće stvari dok ih ne vjeruju:

1. Svijet je pun fascinantnih problema koji čekaju da budu rešeni.

Biti haker je puno zabave, ali to je neka vrsta zabave koja traje puno truda. Napor uzima motivacije. Uspješnih sportaša dobiti njihovu motivaciju od vrste fizičkih užitak u izradi njihova tijela obavljaju, u guranju sebe prošlosti vlastite fizičke granice. Slično tome, da bi bio haker morate dobiti osnovni uzbuđenje od rješavanja problema, oštrenje svoje vještine, i da ostvarite svoje inteligencije.

Ako niste tip osobe koja misli na ovaj način, naravno, potrebno je da postane jedan kako bi ga kao haker. U suprotnom ćete naći svoj hacking energije potkopala od ometanja kao seks, novac i socijalne odobrenje.

(Također morati razviti neku vrstu vjere u svoju sposobnost učenja – uvjerenje da, iako možda ne znate sve što vam je potrebno riješiti problem, ako start samo komad je i naučiti iz toga, ‘ ću naučiti dovoljno da se riješi sljedeći komad – i tako dalje, sve dok ne završite).

2. Nema problema nikada ne bi trebalo da se dva puta riješiti.

Creative mozgovi su vrijedan, ograničen resurs. Oni ne treba da se troši na ponovno izmišljanje točka kada postoji toliko fascinantan novi problemi čeka tamo.

Da se ponašaju kao haker, morate vjerovati da je vrijeme razmišljanja drugih hakera je plemenitih – toliko da je to gotovo moralna dužnost da se razmjenjuju informacije, rješavaju probleme, a zatim dati rješenja na samo kako bi i drugi hakeri mogu riješiti novim probleme umesto da stalno ponovno adresa stare.

Napomena, međutim, da “Nema problema nikada ne bi trebalo da se dva puta riješiti.” ne znači da morate uzeti u obzir sve postojeće rješenja sveto, ili da postoji samo jedan pravo rješenje za bilo koju problema. Često smo mnogo naučiti o problemu koji nismo znali prije proučavajući prvi rez na rješenje. To je u redu, a često je to potrebno, odlučiti da možemo bolje. Ono što nije u redu je umjetni tehničke, pravne ili institucionalne prepreke (poput zatvorenog izvornog koda) koji sprečavaju dobro rješenje od toga da ponovno koristi i silu ljude da ponovno izmišljaju točak.

(Ne morate da verujem da ste dužni dati sve svoje kreativne proizvod dalje, iako su hakeri koji rade su oni koji dobiju najviše poštovanje od drugih hakera. To je u skladu sa haker vrijednosti prodati dovoljno je da ostanete u hrani i najam i računala. u redu je da koristite hakerskih sposobnosti da podrže porodice ili čak se obogate, dok god ne zaboravi lojalnost svoju umetnost i vaše kolege hakera dok to radi.)

3. Dosada i naporan posao su zli.

Hakeri (i kreativnih ljudi općenito) nikada ne bi trebalo da bude dosadno ili su u glupim ponavljaju rada, jer kada se to desi to znači da ne rade ono što samo oni mogu uraditi – riješiti nove probleme. Tog otpada boli sve. Zbog toga dosada i naporan posao nisu samo neugodni, nego i zlo.

Da se ponašaju kao haker, morate vjerovati dovoljno da žele automatizirati voljenog provrtanje koliko god je to moguće, ne samo za sebe već i za sve ostale (posebno drugi hakeri).

(Postoji jedan očigledan izuzetak od ovog. Hakeri će ponekad stvari koje mogu izgledati ponavljaju ili dosadno posmatrača kao um-kliring vježbe, ili kako bi se steknu vještinu ili imaju neku posebnu vrstu iskustva ne možete imati drugačije . Ali ovo je po izboru -. niko ko može da bi trebao ikada biti prisiljeni u situaciju da im je dosadna)

4. Sloboda je dobro.

Hakeri su po prirodi anti-autoritarni. Svako ko vam mogu dati narudžbu možete zaustaviti od rješavanja god problem vam je fasciniran – i, s obzirom na način na autoritarne umovi rade, uglavnom će naći neke užasno glupi razlog za to. Dakle, autoritarni stav mora se voditi gdje god da je, da ne bi vi i druge hakere.

(Ovo nije isto što i borbi protiv svih autoriteta. Djeca trebaju biti vođeni i kriminalci vezan. Haker se mogu dogovoriti da prihvate neke vrste vlasti kako bi dobili nešto što on želi više od vremena provodi po naređenju. Ali to je ograničen, svestan pogodba; vrsta predaje autoritetima žele nije u ponudi).

Autoritarni napreduju na cenzuru i tajnosti. I ne vjeruju dobrovoljnu saradnju i razmjenu informacija – oni samo kao ‘saradnja’ da kontrolišu. Tako da se ponašaju kao haker, morate razviti instinktivno neprijateljstvo prema cenzuri, tajnosti, i upotrebom sile ili obmane da prisili odgovorne odrasle osobe. I morate biti spremni da djeluju na tom uvjerenju.

5. Stav nije zamjena za stručnost.

Da bi haker, morate razviti neke od ovih stavova. Ali kopiranje stavova sama po sebi ne čini haker, ništa više nego što će vam napraviti šampionom ili rock zvijezda. Postaje haker će inteligencije, praksa, posvećenost i naporan rad.

Zbog toga, morate naučiti da ne vjeruju stav i poštuju nadležnosti svake vrste. Hakeri neće dozvoliti pozeri trošiti svoje vrijeme, ali oni obožavaju kompetencija – posebno kompetencije na hakiranje, ali kompetencije na šta se vrednuje. Kompetencija da malo može savladati je posebno dobro i kompetencije na zahtjevnim vještinama koje uključuju mentalnu bistrinu i koncentraciju je najbolji.

Ako poštuju nadležnosti, da ćete uživati ​​u razvoju u sebi – naporan rad i posvećenost će postati neka vrsta intenzivno igranje, nego naporan posao. Takav stav je od vitalnog značaja da postane haker.

Osnovni hakerski vještine

1. Naučite kako programirati.
2. Get jedan od Unixa i naučiti koristiti i pokrenite ga.
3. Saznajte kako koristiti World Wide Web i pisanje HTML-a.
4. Ako nemate funkcionalan engleski, naučiti ga.

Haker stav je od vitalnog značaja, ali vještine su još od vitalnog značaja. Stav nije zamjena za stručnost, a tu je i određenih osnovnih alata vještina koje morate imati prije nego što će bilo haker sanjati te zove jedan.

Ovaj priručnik polako mijenja tokom vremena kao tehnologija stvara nove vještine i čini starih zastarjela. Na primjer, to se koristi za uključiti programiranje u mašinski jezik, i nije do nedavno uključuju HTML-a. Ali sada je prilično jasno uključuje sljedeće:

1. Naučite kako programirati.

To je, naravno, je temeljna hakerski vještina. Ako ne znate bilo koji programski jezik, preporučujem da počinju sa Python. To je čisto dizajniran, dobro dokumentirani, i relativno ljubazna prema početnicima. Uprkos tome što je dobar prvi jezik, to nije samo igračka; to je vrlo moćan i fleksibilan i pogodan za velike projekte. Napisao sam detaljniju evaluaciju Python. Dobri tutoriali su dostupni na web stranici Python; tu je odličan jedna trećina-party u Computer Science krugovima.

Nekada sam preporučiti Java kao dobar jezik za učiti rano, ali ta kritika promijenio moj um (traženje za “zamke Java kao prvi programski jezik” u njemu). Haker ne može, jer su poražavajuće je put “pristupu rješavanja problema kao vodoinstalater u prodavnici”; morate znati šta komponente stvarno rade. Sada mislim da je bolje da prvo nauči C i Lisp, zatim Java.

Tu je možda više opšta stvar ovdje. Ako jezik ne previše za vas, to može biti istovremeno dobar alat za proizvodnju i loše jedan za učenje. To je ne samo jezika koji imaju ovaj problem; okvire web aplikacija kao što su RubyOnRails, CakePHP, Django može da se previše lako doći do površno vrstu razumijevanja koji će vas ostaviti bez sredstava kada imate za rješavanje težak problem, ili čak samo debug rješenje za lak.

Ako se u ozbiljne programiranje, morate naučiti C, osnovni jezik Unix. C ++ je vrlo usko povezan sa C; ako znate jedan, učenje drugi neće biti teško. Ni jezik je dobar da pokuša učenje kao prvo razočarao. I, zapravo, više možete izbjeći programiranje u C više produktivniji ćete biti.

C je vrlo efikasan, i vrlo štede resursa uređaja. Nažalost, C dobiva da efikasnost zahtijeva da radite puno za upravljanje niskom nivou resursa (kao što je memorija) ručno. Sve to kod niskog nivoa je kompleksan i bug-sklone, te će upiti ogromne količine vrijeme na ispravljanje pogrešaka. Sa današnjim mašinama moćan kao što su, to je obično loš kompromis – to je pametnije koristiti jezik koji manje efikasno koristi vremena mašine, ali svoje vrijeme mnogo efikasnije. Dakle, Python.

Ostali jezici od posebnog značaja za hakere uključiti Perl i LISP. Perl je vrijedno učenje iz praktičnih razloga; to je vrlo široko koristi za aktivne web stranice i administraciju sistema, tako da čak i ako nikada ne pišu Perl treba naučiti da je pročitate. Mnogi ljudi koriste Perl na način Predlažem vam treba koristiti Python, da bi izbegli C programa na poslovima koji ne zahtijevaju efikasnost mašina C. Morat ćete biti u mogućnosti da razumiju svoj kod.

LISP je vrijedno učenje iz drugih razloga – duboke prosvjetljenje iskustvo ćete imati kad napokon dobiti. To iskustvo će vas učiniti boljim programer za ostatak svog dana, čak i ako nikada niste koristili LISP sebe mnogo. (Možete dobiti neke počinje iskustva sa LISP prilično lako pisanjem i dopunama načina uređivanje teksta editor Emacs, ili Script-Fu pluginova za GIMP.)

To je najbolje, zapravo, da nauče svih pet Python, C / C ++, Java, Perl, i LISP. Osim što je najvažnije hakerski jezika, oni predstavljaju vrlo različite pristupe programiranju, a svaki će vas educirati na vrijedne načine.

Ali imajte na umu da nećete dostići nivo vještina haker ili čak samo programer jednostavno akumuliranja jezika – morate naučiti kako da razmišljaju o problemima programiranja na opšti način, nezavisno od bilo kojeg jezika. Da bi bio pravi haker, morate doći do tačke gdje možete naučiti novi jezik u danima povezujući ono što je u priručniku za ono što već znate. To znači da treba da nauče nekoliko vrlo različitih jezika.

Ne mogu vam dati potpunu upute o tome kako naučiti programirati ovdje – to je kompleks vještina. Ali mogu vam reći da knjige i kurseve neće učiniti to – mnogo, možda najviše od najboljih hakera su samouki. Možete naučiti jezik karakteristike – bita znanja – iz knjiga, ali um-set koji čini da je znanje u stambeni vještina se može naučiti samo kroz praksu i pripravnički staž. Ono što će učiniti da je (a) čitanje koda i (b) pisanje koda.

Peter Norvig, koji je jedan od Google vrha hakera i koautor najkorišteniji udžbenika na AI, napisao je odličan esej pod nazivom Naucite programiranje u deset godina. Njegov “recept za uspjeh programiranje” je vrijedan posebnu pažnju.

Učenje na programu je kao učenje pisanja dobrih prirodnih jezika. Najbolji način da se to uradi je da pročita neke stvari napisao majstori obrasca, pišu neke stvari sami, pročitao mnogo više, pišu malo više, pročitajte mnogo više, pišu još malo … i ponavljajte dok vam pisanje počne razviti vrstu snage i ekonomije što vidite na modelima.

Imao sam više reći o ovom procesu učenja u kako učiti haking. To je jednostavno skup instrukcija, ali nije lak.

Pronalaženje dobar kod za čitanje je nekada bilo teško, jer je bilo nekoliko velikih programa dostupnih u izvor za hakere za čitanje i poigravanja s. To je dramatično promijenila; open-source softvera, programskih alata i operativnih sistema (sve izgrađen od strane hakera) su sada široko dostupni. Što me dovodi uredno našim sljedeću temu …

2. Gat jedan od Unixa i naučiti koristiti i pokrenite ga.

Ja ću pretpostaviti da imate lični kompjuter ili može dobiti pristup jednom. (Uzmite trenutak da shvate koliko to znači. Hakerska kultura prvobitno razvilo se kada kompjuteri bili toliko skupi da pojedinci nisu mogli da ih posjeduju.) Je najvažniji korak za svakog početnika može uzeti prema sticanje veštine hakera je da dobije kopiju Linux ili neki od BSD-Unixa, instalirate ga na mašini, i pokrenite ga.

Da, postoje druge operativne sisteme na svetu osim Unix. Ali oni distribuirani u binarnom – ne možete pročitati kod, a ne možete ga mijenjati. Pokušavaju da nauče da hack na Microsoft Windows mašini ili pod bilo kojim drugim zatvorenim izvor sistem je kao da pokušavate naučiti da plešu dok nosite oklop.

Pod Mac OS X to je moguće, ali samo dio sistema je open source – verovatno ćete pogoditi puno zidova, i morate biti oprezni da ne razviju naviku zavisnosti od Apple vlasničkih koda. Ako koncentrirati na Unix ispod haube možete naučiti neke korisne stvari.

Unix je operativni sistem na Internetu. Dok možete naučiti koristiti internet bez znajući Unix, ne možete biti Internet haker bez razumijevanja Unix. Iz tog razloga, hakerska kultura danas je prilično snažno Unix-centered. (To nije uvijek istina, a neka stara vremena hakeri još uvijek nisu sretni zbog toga, ali simbioza između Unix i internet je postao dovoljno jak da je čak i Microsoft mišićima ne izgleda u stanju da ga ozbiljno dent.)

Tako bi se Unix – Ja volim Linux, ali postoje i drugi načini (i da, možete pokrenuti i Linux i Microsoft Windows na istoj mašini). Learn to. Pokrenite ga. Prtljati s tim. Razgovarajte na Internet s njim. Pročitajte kod. Promjeni kod. Vi ćete dobiti bolje programskih alata (uključujući C, LISP, Python i Perl) nego bilo koji Microsoft operativni sistem može sanjati, da ćete se zabaviti, a ti ćeš upiti više znanja nego što shvatite da učite dok ste osvrnem na to kao master haker.

Za više informacija o učenju Unix, pogledajte u Loginataka. Možda ćete također žele da imaju pogled na The Art Of Unix Programming.

Blog Ajmo Larval! je prozor na proces učenja jednog novog Linux korisnik mislim da je neobično lucidna i pomoći. Post Kako sam naučila Linux čini dobro polazište.

Da biste dobili svoje ruke na Linux, pogledajte Linux Online! stranice; možete preuzeti od tamo ili (bolja ideja) pronađite lokalnu grupu za podršku će vam pomoći s instalacijom.

Tokom prvih deset godina života ovom KAKO-a, prijavio sam to od tačke novog korisnika gledišta, sve Linux distribucije su gotovo jednake. Ali u periodu 2006-2007, stvarni najbolji izbor pojavila: Ubuntu. Dok druge distribucije imaju svoje područja čvrstoće, Ubuntu je daleko najviše pristupačne Linux početnici. Čuvajte se, međutim, na odvratan i noćno-neupotrebljivi “Jedinstvo” desktop sučelje koje Ubuntu predstavio kao primarnu nekoliko godina kasnije; na Xubuntu ili Kubuntu varijante su bolje.

Možete pronaći BSD Unix pomoć i resursa na www.bsd.org.

Dobar način da umoči prste u vodu je da se pokrene ono što navijači Linux zovu live CD-a, distribucija koja vodi u potpunosti isključuje CD ili USB stick bez modificirati vaš hard disk. To može biti spor, jer CD-a su spori, ali to je način da se pogled na mogućnosti, bez potrebe da ništa drastično.

Napisao sam bukvar o osnovama Unix i interneta.

Nekada sam preporučujemo instaliranje bilo Linux ili BSD kao solo projekt ako ste početnik. Danas je monteri su dobili dovoljno dobro da to radi u potpunosti na svoju ruku je moguće, čak i za početnik. Ipak, i dalje preporučujemo uspostavljanje kontakta s grupom svom lokalnom Linux korisnika i tražeći pomoć. Ne može povrijediti, a može glatko proces.

3. Saznajte kako koristiti World Wide Web i pisanje HTML-a.

Većina stvari koje je hakerska kultura rade svoj posao daleko od pogleda, pomažući da se tvornice trčanje i kancelarijama i univerziteta bez ikakvog očiglednog uticaja na to kako ne-hakeri žive. Web je jedan veliki izuzetak, velika svetlucava da je čak i političari priznaju da je promijenio svijet. Samo iz tog razloga (i puno drugih dobrih, kao i), morate naučiti kako da rade na Webu.

To ne znači samo učenje kako voziti browser (svako to može), ali učenje kako napisati HTML, web je markup jezik. Ako ne znate kako da programirate, pisanje HTML će vas naučiti neke mentalne navike koje će vam pomoći da naučite. Tako izgraditi početnu stranicu.

Ali samo što je početna stranica nije ni blizu dovoljno dobro da napravite haker. Web je pun home stranice. Većina od njih su besmislena, nula-sadržaj mulja – vrlo pomodno-tražim mulja, um vas, ali mulj svi isti (za više o ovome vidjeti HTML Hell Page).

Da bi korisno, vaša stranica mora imati sadržaj – mora biti zanimljiv i / ili koristan drugim hakerima. I to nas dovodi do sljedeću temu …

4. Ako nemate funkcionalan engleski, naučiti ga.

Kao američki i engleski maternji jezik sebe, ja sam ranije bili voljni i predložio da se, da se ne bi uzeti kao neku vrstu kulturnog imperijalizma. Međutim, nekoliko izvornih govornika drugih jezika su me pozvali da istaknem da je engleski radni jezik hakerske kulture i interneta, i da ćete morati znati da funkcioniše u hakerske zajednice.

Nazad oko 1991. saznao da mnogi hakeri koji imaju engleski kao drugi jezik koristiti u tehničkim razgovorima, čak i kada im je rođenje jezik; objavljeno je da me u tom trenutku da je engleski ima bogatiji tehnički rečnik nego bilo koji drugi jezik, te je stoga jednostavno bolji alat za posao. Iz sličnih razloga, prevodi tehničkih knjiga napisanih na engleskom jeziku su često nezadovoljavajući (kad se radi na sve).

Linus Torvalds, Finac, komentariše svoj kod na engleskom jeziku (to navodno nikada nije palo na pamet da to drugačije). Njegov odlično znanje engleskog jezika je važan faktor u njegovu sposobnost za zapošljavanje širom sveta zajednica programera za Linux. To je primjer vrijedi sljedeće.

Biti engleski maternji jezik ne garantuje da imate znanje jezika dovoljno dobro da funkcioniše kao haker. Ako je vaš rukopis je polupismen, prenaglašenim i prepuna grešaka, mnogi hakeri (uključujući i mene) će težiti da se zanemari. Dok neuredan pisanje ne uvijek znači aljkavo razmišljanja, mi smo uglavnom našli korelaciju da bude jaka – i nemamo koristi neuredan mislilaca. Ako ne možete još pisati kompetentno, naučiti da.

Status u hakerski kulture

1. Napisati open-source softver
2. Pomoć test i debug open-source softver
3. Objavite korisne informacije
4. Pomoć u izgradnji infrastrukture
5. Poslužite haker kulture same

Kao i većina kultura bez novca ekonomije, hackerdom radi na ugled. Ti pokušavaju riješiti zanimljivih problema, ali kako su oni zaista interesantni, i da li rješenja su zaista dobri, je nešto što je samo vaše tehničke vršnjaka ili nadređenih su obično opremljeni da sudimo.

U skladu s tim, kada igrate hakera igre, naučite zadržati rezultat prije svega ono što drugi hakeri misle o svoje vještine (to je razlog zašto nisu zapravo haker dok drugi hakeri konzistentno nazvati jedan). Ova činjenica je zaklanja sliku hakiranja kao usamljene rada; i od strane haker-kulturni tabu (postepeno propada od kasnih 1990-ih godina, ali i dalje potentan) protiv priznajući da ego ili vanjski validacije su uključeni u nečije motivacije na sve.

Naime, hackerdom je ono što antropolozi zovu poklon kulture. Možete dobiti status i ugled u njemu ne dominira drugim ljudima, niti zato što si lep, niti ima nešto što drugi ljudi, nego davanjem stvari. Naime, poklanjajući svoje vrijeme, svoju kreativnost, i rezultate svoje vještine.

Postoje u osnovi pet vrsta stvari koje možete učiniti da se poštuju od strane hakera:

1. Napisati open-source softver

Prvi (strogom centru i najtradicionalnijih) je pisati programe koji drugi hakeri misle su zabavne i korisne, i dati izvori program dalje na celu hakerska kultura za korištenje.

(Zvali smo te radove “slobodni softver”, ali ovo zbunjen previše ljudi koji nisu bili sigurni šta “slobodne” je trebalo da znači. Većina nas sada preferiraju termin “open-source” softver).

Hackerdom je najpoštovanijih polubogovi su ljudi koji su pisali veliki, sposobni programe koji se sastao ogromne potrebe i dati ih, pa ih da je sada svima koristi.

Ali tu je malo fino istorijske tačke ovdje. Dok hakeri su uvijek izgledala do open-source programeri među njima najteže srž naše zajednice, prije nego što je sredinom 1990-ih većina hakera većinu vremena radio na zatvorenog koda. Ovo je i dalje istina kada sam napisao prvu verziju ovog KAKO 1996. godine; to je mainstreaming open-source softver nakon 1997. umjesto njega. Danas je “hakerske zajednice” i “open-source programeri” su dva opisa za ono što je u suštini istu kulturu i stanovništvo – ali Podsjetimo, to nije uvijek tako. (Za više informacija o ovome, vidi odjeljak pod nazivom “Povijesni napomena: haking, open source i slobodni softver“.)

2. Pomoć test i debug open-source softver

Oni također služe koji stoje i debug open-source softvera. U ovom nesavršenom svetu, mi ćemo neminovno najviše vremena razvoja softvera provesti u fazi ispravljanje pogrešaka. To je razlog zašto bilo koji open-source autor koji je razmišljanje će vam reći da je dobar beta-testeri (koji znaju kako da se jasno opisati simptome, lokalizuju problem dobro, mogu tolerisati bug-u na brzaka izdanju, i spremni su da se prijave nekoliko jednostavnih dijagnostičkih rutina) su vrijedan svoje težine u rubine. Čak i jedan od ovih može napraviti razliku između faza otklanjanje grešaka to je dugotrajan, iscrpljujući noćna mora i jedan koji je samo koristan smetnja.

Ako ste početnik, pokušati pronaći programa u razvoju koje vas zanima i biti dobar beta tester. Tu je prirodna progresija od pomažući test programa za pomažući im debug pomaganju mijenjati ih. Vi ćete naučiti mnogo na ovaj način, i ostvaruju dobru karmu sa ljudima koji će vam pomoći kasnije.

3. Objavite korisne informacije

Još jedna dobra stvar je prikupiti i filtrirati korisne i interesantne informacije u web stranice ili dokumente poput Često postavljana pitanja (FAQ) liste, i da oni obično na raspolaganju.

Održavaju ovakve sajtove dobijaju gotovo isto poštovanje kao i open-source autori.

4. Pomoć u izgradnji infrastrukture

Hakerska kultura (i razvoj inženjering Interneta, što se toga tiče) vodi volontera. Postoji mnogo neophodan ali unglamorous posla koji treba biti obavljen da bi ide – upravljanje mailing listama, moderiranje njuzgrupama, održavanje arhiva veliki softverom, razvijanje RFC i drugih tehničkih standarda.

Ljudi koji rade ovakve stvari i dobiti puno poštovanja, jer svi znaju da je ovo ogroman posao lavaboa i ne toliko zabavno kao igranje sa kodom. Rade ih pokazuje posvećenost.

5. Poslužite haker kulture same

Konačno, možete poslužiti i propagandom same kulture (od, na primjer, pisanje precizan prajmer kako postati haker :-)). To nije nešto što će biti postavljen da radim dok si okolo dok i postati poznat po jednoj od prvih četiri stvari.

Hakerska kultura nema vođe, tačno, ali ima kulturu heroje i istoričari i glasnogovornici. Kada ste bili u rovovima dovoljno dugo, možda prerasti u jednu od ovih. Čuvajte se: Hakeri u svojim plemenskim starješinama, pa vidljivo posežu za ovu vrstu slavu je opasno. Radije nego težnja za to, morate nekako pozicionirati sebe tako da padne u krilo, a zatim biti skroman i ljubazan o svom statusu.

Haker/Nerd priključak

Suprotno popularnom mitu, ne morate biti štreber biti haker. To pomaže, međutim, i mnogi hakeri su zapravo štreberi. Biti nešto socijalne izgnanik pomaže vam da ostanete koncentrisani na stvarno važne stvari kao što je razmišljanje i sjeckanje.

Iz tog razloga, mnogi hakeri su usvojile oznaku ‘geek’ kao bedž ponosa – to je način proglašenja njihove nezavisnosti od normalnih društvenih očekivanja (kao i sklonost za druge stvari kao naučna fantastika i strategije igre koje često idu s tim da haker). Termin “štreber” se koristio na taj način vratiti u 1990-ih godina, još kad ‘nerd’ je bio blag pežorativni i ‘geek’ prilično oštrije jedan; negdje nakon 2000. godine prešli mjesta, barem u Sjedinjenih Američkih Država popularne kulture, a tu je sada čak i značajan geek-ponosa kulture među ljudima koji nisu tehničari.

Ako možete upravljati da dovoljno koncentrirati na sjeckanje biti dobar u tome i još uvijek imaju život, to je u redu. To je puno lakše nego što je bila kad sam bio početnik u 1970; mainstream kultura je mnogo prijateljskiji techno-štrebere sada. Postoje čak i sve veći broj ljudi koji su shvatili da hakeri su često visoko kvalitetnih ljubavnika i supružnika materijala.

Ako ste privučeni hakiranja zato što nemaju život, to je u redu previše – barem nećete imati problema koncentracijom. Možda ćeš dobiti život kasnije.

Poena za stil

Opet, da je haker, morate razmišljati kao haker. Postoje neke stvari koje možete učiniti kada niste na kompjuter koji su Vam na pomoći. Oni ne zamjenjuje za sjeckanje (ništa nije), ali mnogi hakeri rade njih, i smatraju da su se povezali u neke osnovne način sa suštinom hakiranju.

  • Naučiti pisati svoj maternji jezik dobro. Iako je uobičajena stereotip da programeri ne mogu pisati, iznenađujuće veliki broj hakera (uključujući sve najuvaženiji one su ja znam) su veoma dobri pisci.
  • Pročitajte naučne fantastike. Idi na naučne fantastike konvencija (dobar način da zadovolji hakera i proto-hakeri).
  • Pridruži se hackerspace i napraviti stvari (još jedan dobar način da zadovolji hakera i proto-hakeri).
  • Vlak u obliku u borilačkim. Vrsta mentalne discipline potrebne za borilačke sportove izgleda slično na važne načine na ono što hakeri rade. Najpopularniji oblici među hakerima su definitivno Asian praznih ruku umjetnosti kao što je Tae Kwon Do, razni oblici Karate, Kung Fu, Aikido, ili Ju Jitsu. Zapadni ograde i azijske mač umjetnosti također imaju vidljivo slijedeće. Na mjestima gdje je legalno, pucanje pištolj je u porastu u popularnosti od kasnih 1990-ih. Najviše hakera su one koje ističu mentalnu disciplinu, opušteno svijest, i preciznu kontrolu, a ne sirove snage, atletsku ili fizičke izdržljivosti.
  • Studiraju disciplinu meditacije. Najpopularnija meću hakerima je Zen (najvažnije, moguće je da se koristi od Zen bez sticanja religija ili odbacivanja jedan već imate). Ostale stilove može raditi kao dobro, ali budite oprezni da odaberete onaj koji ne traži da vjerujem lude stvari.
  • Razviti analitički uho za muziku. Naučiti cijeniti neobične vrste muzike. Naučiti svirati neki glazbeni instrument dobro, ili kako da peva.
  • Razvijati svoju zahvalnost za zabavu i igru.

Što više od ovih stvari već rade, veće su šanse da je to što su prirodni haker materijala. Zašto ove stvari posebno nije potpuno jasno, ali su oni povezani sa mješavinom levi i desni mozak vještina koje izgleda važno; hakeri moraju biti u mogućnosti da oba razloga logički i korak izvan prividne logike problem u svakom trenutku.

Raditi kada igrate i igrati kao intenzivno dok radite. Za istinske hakere, granice između “play”, “posao”, “nauka” i “umetnost” svi imaju tendenciju da nestane, ili da se spoje u kreativnu zaigranost na visokom nivou. Također, ne biti zadovoljan sa uskom rasponu vještina. Iako je većina hakera opisuje sebe kao programeri, oni su vrlo vjerovatno će biti više nego kompetentni u drugim oblastima – sistem administracija, web dizajn, PC serviseri su zajednički one. Haker koji je administrator sistema, s druge strane, će vjerovatno biti prilično vješt u skript programiranju i web dizajn. Hakeri ne rade stvari polovice; ako ulažu u šansu u svemu, oni imaju tendenciju da se vrlo dobar u tome.

Na kraju, nekoliko stvari koje ne treba raditi.

  • Nemojte koristiti glupo, grandiozna imena i ID.
  • Ne ulazi u ratove na Usenet (ili bilo gdje drugdje).
  • Ne zovite sebe ‘cyberpunk’, a ne gubiti vrijeme na bilo koga ko zna.
  • Nemojte postavljati ili e-mail pisanja koji je pun pravopisnih grešaka i loše gramatike.

Jedino ugled ćete napraviti sa nekim od ovih stvari je kao glupan. Hakeri dugo pamte – moglo bi vas odvesti godine života oprati dovoljno da bude prihvaćen.

Problem sa nadimke zaslužuje pojačanja. Prikrivanje svoj identitet iza ručka je maloljetnik i glupo ponašanje karakteristično krekera, warez d00dz, i drugih nižih oblika života. Hakeri ne rade ovo; oni su ponosni na ono što oni rade i žele ga u vezi s njihovim pravim imenima. Dakle, ako imate ručku, pusti to. U hakerska kultura samo će vam označiti kao gubitnik.

Istorijski napomena: hacking, open source, i slobodnog softvera

Kad sam prvobitno napisao kako da je krajem 1996. godine, neki od uslova oko njega su bili veoma razlikuje od načina na koji danas izgledaju. Nekoliko riječi o tim promjenama može pomoći razjasniti pitanja za ljude koji su zbunjeni o odnosu open source, slobodnog softvera i Linux na hakerske zajednice. Ako niste znatiželjni o tome, možete preskočiti direktno na FAQ i bibliografiju odavde.

Hakera etos i zajednice kao što sam to opisao ovdje dugo prethodi pojava Linux nakon 1990. godine; Prvo sam počeo da se bavi s njim oko 1976. godine, a, svoje korijene su lako može pratiti natrag do ranih 1960-ih. Ali prije nego što Linux, većina hakerskih je učinjeno na bilo vlasnički operativni sistemi ili šačice kvazi-eksperimentalni domaći sustavima kao što su MIT ITS koji nikada nisu raspoređeni izvan prvobitne akademske niše. Dok je došlo do neke ranije (pre-Linux) pokušava da se ovo stanje promijeni, njihov uticaj je bio u najboljem slučaju vrlo marginalne i ograničena na zajednica posvećenih istinski vjernici koji su bili sitne manjine čak i unutar hakerske zajednice, a kamoli u odnosu na veći svijet softvera u cjelini.

Ono što se sada zove “open source” seže koliko hakerske zajednice radi, ali sve do 1985. bilo je neimenovani folk praksa, a ne svjesno pokret sa teorijama i manifesti priključen na njega. Ovo prapovijesti završio kada, 1985., arh-haker Richard Stallman ( “RMS”) pokušao da mu daju ime – “slobodni softver”. Ali njegov čin imenovanja bio je i čin tvrdi; je priložio ideološki teret na “slobodan softver” etiketu koja mnogo postojećih hakerske zajednice nikada nisu prihvatili. Kao rezultat toga, “slobodni softver” oznaka je glasno odbacio je značajna manjina hakerske zajednice (posebno kod onih koji su povezani s BSD Unix), i koristi sa ozbiljnim, ali tiha rezervacije većinom ostatka (uključujući i mene).

Uprkos ovim rezervacije, RMS tvrde da definiše i vodi hakerske zajednice pod “slobodni softver” banner široko ostao do sredine 1990-ih. To je ozbiljno pobijati samo usponom Linux. Linux je razvoj open source prirodni kući. Mnogi projekti izdaje pod uvjetima bismo sada nazivamo open-source migrirali iz vlasničkih Unixa u Linux. Zajednice oko Linuxa rasla eksplozivno, postaje daleko veća i heterogene nego pred-Linux haker kulture. RMS odlučno pokušao da prisvoji sve ove aktivnosti u njegov “slobodni softver” pokret, ali je osujećen kako eksplodiraju raznolikost Linux zajednici i javnosti skepticizam svog osnivača, Linus Torvalds. Torvalds je nastavio da koristi termin “slobodan softver” zbog nedostatka bilo kakve alternative, ali javno odbacio RMS ideološki prtljaga. Mnogi mlađi hakeri pratili odijelo.

1996. godine, kada sam prvi put objavljen ove Hacker KAKO, hakerska zajednica je brzo reorganizaciju Linux i pregršt drugih open-source operativnih sistema (posebno onih koji potiču od BSD Unix) oko. memorija zajednice na činjenicu da je većina nas je proveo desetljeća u razvoju zatvoren-source softver na zatvoren-source operativnih sistema još nije počela da bledi, ali ta činjenica je već počinje da izgleda kao dio mrtve prošlosti; hakeri su, sve više, definiše se kao hakeri po njihovim prilozima na open-source projekata, kao što su Linux ili Apache.

Izraz “open source”, međutim, još nije pojavio; ne bi učiniti sve do početka 1998. godine kada je to uradio, većina hakerske zajednice usvojio je u narednih šest mjeseci; izuzeci bili u manjini ideološki vezan za termin “slobodan softver”. Od 1998. godine, a posebno nakon što je oko 2003. godine, identifikacija ‘hakiranja’ sa ‘open-source (i slobodnog softvera) razvoj “je postao veoma blizu. Danas ima malo smisla u pokušaju da se napravi razlika između ovih kategorija, a malo je verovatno da će se promijeniti u budućnosti.

Važno je zapamtiti, međutim, da to nije uvijek tako.

Ostali resursi

Paul Graham je napisao esej pod nazivom Velike Hakeri, a drugi na Undergraduation, u kojem govori puno mudrosti.

Mlađi hakeri mogli naći Stvari svaki haker poznavao zanimljivo i korisno.

Napisao sam i Kratku istoriju hackerdom.

Napisao sam papir, Katedrala i Bazaar, što objašnjava mnogo o tome kako Linux i open-source kulturama radi. Ja sam se obratio ovoj temi još više direktno u njegov nastavak Homesteading Noosfere.

Rick Moen je napisao odličan dokument o tome kako pokrenuti Linux grupu korisnika.

Rick Moen i ja smo sarađivali na drugi dokument na Kako postaviti pametan pitanja. To će vam pomoći da traže pomoć na način koji čini više vjerojatno da će zapravo dobiti.

Ako vam je potrebna uputstva u osnove kako osobnih računala, Unix, i Internet posao, pogledajte Unix i Internet Osnove KAKO.

Kada otpustite softver ili pisati zakrpe za softver, pokušajte slijediti smjernice u KAKO softver prakse priopćenju.

Ako ste uživali u Zen pesmi vam se dopasti i Rootless korijen: Unix koane Master Foo.

Često postavljena pitanja

P: Kako da znam da li sam već haker?
P: Hoće li me naučiti kako hakovati?
P: Kako mogu počnem, onda?
P: Kad imaš početi? Da li je kasno za mene naučiti?
P: Koliko dugo će mi trebati da naučim da hak?
P: Da li je Visual Basic dobar jezik za početak?
P: Da li mi pomoći da crack sistem, ili me naučiti kako da puca?
P: Kako mogu dobiti lozinku za tuđe račun?
P: Kako mogu provaliti/čitanje/pratiti tuđe e-mail?
P: Kako mogu ukrasti kanal na privilegije na IRC-u?
P: Ja sam pukao. Hoće li mi pomoći da se odbrani od daljih napada?
P: Imam problema sa Windows softver. Hoćeš li mi pomoći?
P: Gdje mogu naći neki pravi hakeri da razgovaraju sa?
P: Možete li mi preporučiti korisne knjige o hakiranju u vezi predmeta?
P: Da li je potrebno biti dobar u matematici postati haker?
P: Koji jezik bi trebalo da prvo naučiti?
P: Koja vrsta hardvera mi je potrebno?
P: Želim da doprinesem. Možeš li mi pomoći izabrati problem raditi na?
P: Da li treba da mrzim i bash Microsoft?
P: Ali, neće open-source softver odsustvo programeri ne mogu zaraditi za život?
P: Gdje mogu dobiti besplatan Unix?

P: Kako da znam da li sam već haker?

O: Zapitajte se sljedeće tri pitanja:

  • Govorite li kod, tečno?
  • Da li se identificirati sa ciljevima i vrijednostima hakerske zajednice?
  • Je uhodani član hakerske zajednice li ikada nazvao haker?

Ako ne možete odgovoriti da na sva tri ova pitanja, vi ste već haker. Samo ne postoje dva dovoljna.

Prvi test je o sposobnosti. Verovatno ste proći ako imate minimalne tehničke vještine ranije opisane u ovom dokumentu. Duvaš kroz nju ako ste imali značajnu količinu koda prihvatio projekat razvoja open-source.

Drugi test je o stavu. Ako pet principa hakerske razmišljanja činilo očigledan za vas, više kao opis načina na koji već žive od svega roman, već ste na pola puta do prolazi to. To je unutra pola; s druge strane, spolja polovina je stepen do kojeg vas identifikuje sa dugoročnim projektima hakerske zajednice.

Ovdje je nepotpuna, ali indikativna lista nekih od tih projekata: Da li je bitno da ti je to Linux poboljšati i šire? Jeste li strastveni o slobodi softver? Neprijateljski na monopole? Da li djelovati na uvjerenju da kompjuteri mogu biti instrumenti osnaživanja koji čine svijet bogatijim i humanije mjesto?

Ali treba obratiti pažnju jeste da bi ovdje. Hakerska zajednica ima neke specifične, prije svega u odbrani političkim interesima – dva od njih brane pravo na slobodu govora i brani od “intelektualne svojine” moći osvojiti da bi open source nezakonito. Neke od tih dugoročnih projekata su civilno-sloboda organizacije poput Electronic Frontier Foundation, a spolja stav pravilno uključuje podršku od njih. Ali osim toga, većina hakera gledaju pokušaja sistematizacije hakera stav u eksplicitni politički program sa sumnjom; smo saznali, na teži način, da su ti pokušaji su podjele i odvlače pažnju. Ako neko pokuša da te zaposliti da marširaju na Capitol u ime hakera stav, oni su propustili tačke. Pravi odgovor je vjerojatno “Umukni i pokazati im kod”.

Treći test ima nezgodan element rekurzivnosti o tome. Posmatrao sam u sekciji pod nazivom “Šta je hakera?” koji kao haker je dijelom pitanje pripadnosti određenoj subkulture ili društvenih mreža sa zajedničke istorije, iznutra i izvana. U dalekoj prošlosti, hakeri su bili mnogo manje kohezivna i samosvjesna grupa nego što su danas. Ali važnost društvene mreže aspekt je porastao u posljednjih trideset godina, kao Internet je napravio veze sa osnovnim hakerske subkulture lakše razvijati i održavati. Jedan jednostavan indeks ponašanja promjena je da se, u ovom stoljeću, mi imamo svoje majice.

Sociolozi, koji studiraju mreže poput onih hakerske kulture pod generalnim rubrikom “nevidljivih koledža”, upozoravaju, da je jedna od karakteristika takvih mreža je da oni imaju vratari – jezgro članova sa socijalnim ovlasti da odobri novih članova u mrežu. Budući da je “nevidljivi koledž” koji je hakerska kultura je labava i neformalni, uloga vratara je previše neformalan. Ali jedna stvar da su svi hakeri razumiju u njihovim kostima je da nije svaki haker je vratar. Vratari moraju imati određeni stupanj staža i ostvarenje prije nego što oni mogu darovati titulu. Koliko je teško kvantificirati, ali svaki haker to zna kad ga vide.

P: Hoće li me naučiti kako to hack?

O: Od prvog objavljivanja ove stranice, ja sam dobio nekoliko zahtjeva nedeljno (često i više dnevno) od ljudi u “me naučiti sve o hakiranju”. Na žalost, nemam vremena ni energije da se to uradi; svoje hakerskih projekata, a radi kao open-source zagovornik, zauzimaju 110% svog vremena.

Čak i ako jesam, hakiranje je stav i veština koju sami morate naučiti. Naći ćete da dok pravi hakeri žele da vam pomoći, oni vas neće poštovati ako te molim da se hranio sve što znaju.

Prvo naučiti neke stvari. Pokazuju da pokušavate, da si sposoban za učenje na svoju ruku. Zatim idite na hakera sa specifičnim pitanjima.

Ako pošaljete email haker pita za savjet, ovdje su dvije stvari koje treba znati unapred. Prvo, mi smo otkrili da ljudi koji su lijeni ili neoprezni u svom pisanju su obično previše lijeni i nemarni u svoje razmišljanje da dobro hakeri – pa zato pazite da ispravno čarolija i koristiti dobar gramatike i interpunkcije, inače ćete vjerojatno biti ignorisani. Drugo, ne usuđuju tražiti odgovor na ISP račun koji se razlikuje od računa šaljete iz; nailazimo na ljude koji to čine su obično lopovi koriste ukradene račune, a mi nemamo interes u nagrađivanju ili pomaganje lopovluka.

P: Kako da počnem, onda?

O: Najbolji način da počnete vjerovatno bi da ode u sastanku LUG (Linux grupe korisnika). Možete pronaći takve grupe na LDP-a general Linux informacije stranice; verovatno postoji jedan u blizini, možda povezan sa višom ili visokom. članovi LUG će vam vjerojatno dati Linux ako pitate, a sigurno će vam pomoći da instalirate jedan i počnemo.

Vaš sljedeći korak (i ​​svoj prvi korak, ako ne možete pronaći LUG u blizini) bi trebao biti da open-source projekt koji vas zanima. Započeli čitanje kod i pregleda bugova. Naučite da doprinese, i raditi svoj put u.

Jedini način na je radeći na poboljšanju svoje vještine. Ako me pitate osobno za savjet o tome kako da započnete, reći ću vam te iste stvari, jer ja nemam čarobni prečice za vas. Ja ću mentalno vas otpisati kao vjerojatna gubitnik – jer ako nisu imali snage da pročitate ovaj FAQ i inteligenciju da shvate od toga da je jedini način je radeći na poboljšanju svoje vještine, ti si beznadežan.

Još jedna zanimljiva mogućnost je da se posjeti hackerspace. Postoji rastuće kretanje ljudi stvaraju fizičke lokacije – kavu klubova – gdje se mogu družiti raditi na hardver i softver projekte zajedno, ili rade solo u cogenial atmosferi. Hackerspaces često prikupljaju sredstva i specijaliziranu opremu koja bi bilo preskupo ili logistički nezgodno za pojedince da posjeduju. Hackerspaces su lako pronaći na internetu; može biti u svojoj blizini.

P: Kada imaš početi? Da li je kasno za mene naučiti?

O: Bilo koje dobi u kojoj ste motivirani za početak je dobro doba. Većina ljudi izgleda da se zanimam starosti između 15 i 20 godina, ali znam od izuzetaka u oba smjera.

P: Koliko dugo će mi trebati da naučim da hack?

O: To zavisi od toga koliko si talentovan i koliko naporno radite na tome. Većina ljudi koji se trude da steknu respektabilan vještina postavljen u osamnaest mjeseci do dvije godine, ako se koncentrirati. Ne mislim da se tu završava, iako; u hakiranju (kao iu mnogim drugim oblastima) potrebno je oko deset godina da se postigne majstorstvo. A ako ste pravi haker, vi ćete provesti ostatak svog života učenje i usavršavanje svoj zanat.

P: Je Visual Basic dobar jezik za početak?

A: Ako pitate ovo pitanje, to gotovo sigurno znači da razmišljate o pokušaju da hack pod Microsoft Windows. Ovo je loša ideja sama po sebi. Kada sam uporedio da učite hack pod Windows da pokušavam da naučim da igram dok nosite oklop, nisam se šalio. Ne idi tamo. To je ružno, a to nikad ne prestaje biti ružan.

Postoji poseban problem sa Visual Basic; uglavnom da nije prenosiv. Iako je prototip open-source implementacije Visual Basic, važeći ECMA standardi ne pokriva više od malog skupa svog programa interfejsa. Na Windows većinu svojih biblioteka podrška je vlasništvo jednog proizvođača (Microsoft); ako niste izuzetno oprezni o kojoj ima koristite – oprezniji nego za svakog početnika je stvarno sposoban bića – ćeš završiti zaključan u samo one platforme Microsoft odluči podržati. Ako ste početnik na Unix, mnogo bolje jezika sa boljim biblioteke su na raspolaganju. Python, na primjer.

Također, kao i druge osnove, Visual Basic je loše dizajniran jezik koji će vas naučiti loše programiranje navike. Ne, ne pitajte me da ih detaljno opisati; to objašnjenje će popuniti knjigu. Naučiti dobro osmišljen jezik umjesto.

Jedan od tih loših navika postaje ovisna o bibliotekama jednog proizvođača, widget, i razvojni alati. U principu, bilo koji jezik koji nije u potpunosti podržan u najmanje Linux ili jedan od BSD, i/ili najmanje tri operativna sistema različitih proizvođača “, je loš da nauče da hack u.

P: Da li mi pomoći da puca sistem, ili me naučiti kako da puca?

O: Ne Svako ko i dalje mogu pitati takvo pitanje nakon čitanja ovog FAQ je previše glup da bi nesposobnom za obrazovanje, čak i ako sam imao vremena za podučavanje. Bilo koji elektronskom poštom zahtjeve ove vrste da ću dobiti će se zanemariti ili odgovorili sa ekstremnim grubost.

P: Kako mogu dobiti lozinku za račun nekog drugog?

O: Ovo je pucanje. Odlazi, idiote.

P: Kako mogu provaliti / čitanja / pratiti tuđe e-mail?

O: Ovo je pucanje. Gubi se, moronu.

P: Kako mogu ukrasti kanal na privilegije na IRC-u?

O: Ovo je pucanje. Odlazi, kretenu.

P: Ja sam pukao. Hoće li mi pomoći da se odbrani od daljih napada?

O: Ne Svaki put kada sam je do sada postavila ovo pitanje, to je bilo od neke jadne SAP Microsoft Windows. To nije moguće djelotvorno osigurati Windows sistemima protiv crack napada; kod i arhitektura jednostavno imaju previše mana, što čini osiguravanje Windows kao pokušaj da se izvuče brod sa sito. Jedini pouzdani prevencija počinje sa prelaskom na Linux ili neki drugi operativni sistem koji je dizajniran da barem bude u stanju sigurnosti.

P: Imam problema sa Windows softver. Hoćeš li mi pomoći?

O: Da. Idi na DOS prompta i tip “format c:”. Bilo kakvih problema imate će prestati u roku od nekoliko minuta.

P: Gdje mogu naći neki pravi hakeri da razgovaraju sa?

O: Najbolji način je da se pronađe Unix ili Linux korisnika grupa lokalnih vas i idite na njihove sastanke (možete naći linkove na nekoliko lista korisničkih grupa na sajtu LDP u ibiblio).

(Nekada sam da kažem da ne bi našli pravi hakeri na IRC-u, ali ja dao da razumem to mijenja. Izgleda da neki pravi haker zajednica, priključen na stvari kao što su GIMP i Perl, imaju IRC kanala sada.)

P: Možete li mi preporučiti korisne knjige o hakiranju u vezi predmeta?

O: Ja tvrdim Linux Lista za čitanje KAKO da možete naći korisne. U Loginataka može biti zanimljivo.

Za uvod u Python, pogledajte tutorial na Python stranice.

P: Da li moram biti dobar u matematici postati haker?

O: Ne haking koristi vrlo malo formalne matematike ili aritmetike. Konkretno, obično neće trebati trigonometrije, račun ili analize (postoje izuzeci od ovog u nekoliko specifičnih područja primjene kao što su 3-D kompjutersku grafiku). Znajući neke formalne logike i Bulova algebra je dobro. Neki uzemljenje u konačnom matematike (uključujući i konačnih teoriji skupova, kombinatorika i teorija grafova) može biti od pomoći.

Što je još važnije: morate biti u stanju da misle logično i pratite lanaca tačne obrazloženja, način matematičari rade. Iako je sadržaj većine matematike vam neće pomoći, morat ćete disciplinu i inteligencije za rukovanje matematike. Ako vam nedostaje inteligencije, malo je nade za vas kao haker; Ako vam nedostaje disciplina, bolje rasti to.

Mislim da je to dobar način da saznate ako imate ono što je potrebno je da pokupite kopiju Raymond Smullyan knjige koje je ime ove knjige ?. Smullyan razigrana logičke zagonetke su vrlo mnogo u haker duh. Biti u mogućnosti da ih riješiti je dobar znak; uživanje njihovog rješavanja je još bolji.

P: Koji jezik bi trebalo da prvo naučiti?

O: HTML, ako već ne znaju. Postoji mnogo sjajnih, hype-intenzivne loše HTML knjige tamo, i uznemirujuće nekoliko dobrih. Onaj mi se najviše sviđa je HTML: Definitivno Vodič.

Ali HTML nije potpuni programski jezik. Kada ste spremni za početak programiranja, ne bih preporučio počinju sa Python. Vi ćete čuti puno ljudi preporučuje Perl, ali to je teže za učenje i (po mom mišljenju) manje dobro dizajniran.

C je jako važno, ali je i mnogo teže nego što Python ili Perl. Ne pokušavajte da ga prvo naučiti.

Windows korisnici, ne izmiruju za Visual Basic. To će vas naučiti loše navike, a to nije prenosiv off Windows. Izbjeći.

P: Kakav hardver mi je potrebno?

O: Nekada je bilo da osobnih računala bili prilično underpowered i memorije siromašnih, dovoljno tako da su postavljeni umjetni ograničenja na proces učenja je hakera. Ovo je prestao da važi za sredinom 1990-ih; bilo koja mašina od Intel 486DX50 se je i više nego dovoljno snažan za rad na razvoju, X i internet komunikacije, a najmanji diskove možete kupiti danas su dovoljno dosta veliki.

Važna stvar u odabiru mašina na kojoj će se saznati je li njegovo hardver Linux kompatibilan (ili BSD-kompatibilan, ako odlučite da se taj put). Opet, to će biti istina za gotovo sve moderne mašine. Jedino stvarno ljepljive područja su modemi i bežične kartice; neki mašine imaju Windows specifične hardver koji neće raditi s Linuxom.

Postoji FAQ na hardver kompatibilnost; najnovija verzija je ovdje.

P: Želim da doprinesem. Možeš li mi pomoći izabrati problem raditi na?

O: Ne, jer ne znam svoje talente ili interese. Morate biti motivirani ili nećete držati, zbog čega ima drugih ljudi odabrati svoj pravac gotovo nikad ne radi.

P: Da li treba da mrzim i bash Microsoft?

O: Ne, ne. Nije da Microsoft nije odvratan, ali bilo je haker kulture dugo prije nego što Microsoft i dalje će postojati dugo nakon što je Microsoft je istorija jedan. Svu energiju trošite mrzi Microsoft bi se bolje proveo na vole svoj zanat. Napišite dobar kod – da će udarila Microsoft sasvim dovoljno bez zagađivanja svoju karmu.

P: Ali neće open-source softver odsustvo programeri ne mogu zaraditi za život?

O: Ovo izgleda vjerojatno – do sada, čini se da je open-source softverske industrije da se otvaraju nova radna mjesta, a ne da ih dalje. Ako imam program napisan je neto ekonomsku dobit više ne nakon što je napisan, programer će biti plaćeni da li ili ne program će biti open-source nakon što je učinjeno. I, bez obzira na to koliko je “slobodan” softver bude napisan, čini se uvijek biti veća potražnja za novim i prilagođenih aplikacija. Napisao sam više o tome na Open Source stranica.

P: Gdje mogu dobiti besplatan Unix?

O: Ako nemate Unix instalirane na vašem stroju ipak, na drugom mjestu na ovoj stranici uključujem pokazivači gde da se najčešće koriste Unix. Da bi haker trebate motivaciju i inicijativu i sposobnost da se obrazujete. Start sada …

 

Jačanje e-mail sigurnost sa Procmail: E-mail Sanitizer

Source: https://www.impsec.org/email-tools/procmail-security.html

Početna stranica


Dobrodošli na početnu stranicu E-mail Sanitizer. Je Sanitizer je alat za sprečavanje napada na sigurnost vašeg računala putem e-mail poruke. Dokazano je da je vrlo efikasan protiv crvi Microsoft Outlook e-mail koje su dobili toliko pažnje u popularnoj štampi i koje su izazvale toliko problema.
U Sanitizer je namijenjen publici je administratorima mail sistema. To se obično ne namijenjen za krajnje korisnike, ukoliko ne upravljaju vlastitim mail sistema, a ne samo govori njihov mail program da preuzmete poruke mail server upravlja neko drugi.

Ako ste ovdje jer ste dobili poruku u kojoj piše da je odbijeno neku poštu ste poslali, ili zato što je URL za ove web stranice se pojavljuje u komadu mail ste dobili, ili zato što se pitate zašto je vaš e-mail prilozi se iznenada pod nazivom DEFANGED, pročitajte ovaj uvod u Sanitizer – treba odgovoriti na vaša pitanja. Javi mi ako se to ne desi.

Imajte na umu da je sanitizer NIJE tradicionalni virus skener. To se ne oslanja na “potpisa” za otkrivanje napada i nema “prozor ranjivosti” Problemi da je sigurnost potpis na bazi uvijek ima; a to vam omogućava da sprovode politiku kao što je “e-mail ne treba scenario” i “makroi u prilozima Microsoft Office dokument treba pristupiti Windows registra”, i “e-pošte ne bi trebali imati Windows priloge izvršnu datoteku”, i karantin poruka koje krše te politike.


Index:


Filtriranje E-mail za sigurnost

Procmail je programa koji obrađuje e-mail poruke u potrazi za određenim informacijama u zaglavlja ili tijela svake poruke, a traje akcija na osnovu onoga što nađe. Ako ste upoznati sa konceptom “pravila” kao što je predviđeno u mnogim velikim korisnik mail klijenata (kao što je cc: Mail klijent), onda ste već upoznati sa konceptom automatski obrade e-mail poruke na osnovu njihovog sadržaja.

Ova kombinacija procmail skup pravila i Perl skripta je posebno dizajniran za “dezinfekciju” e-pošte na serveru, prije nego što vaši korisnici ni pokušao da preuzme svoje poruke. To nije namijenjen za krajnje korisnike instalirati na svoje desktop sisteme Windows za ličnu zaštitu.


Novosti i bilješke

Trenutnu verziju HTML-trap.procmail skup pravila je: 1.151
Preporučuje se da ažurirate svoj primjerak ako je verzija starija, jer će dodane su ispravke grešaka i filtriranje za novije podvige. Pogledajte povijest promjena za detalje.

Nastavila sam koristiti Sanitizer u proizvodnji, iako je razvoj znatno smirila u posljednjih nekoliko godina i uglavnom prešao sada i moje potrebe, a ne zahteva korisnika. Ipak je korisno, i dalje blokira pokušaj malware isporuke, čak i od exploita taj virus skeneri još ne otkriva. Ja sam, međutim, nije vođenje web up-to-date, tako da to radim. Ja predlažem da ako se i dalje koristi Sanitizer vas pogled na razvoj otpuštanje (1.152pre8) za tekuće promjene i poboljšanja, prije svega ažuriranje Ureda makro skener za preuzete malware.


Tu je buffer overflow ranjivost u DUNZIP32.dll zipfile biblioteka koje koriste mnogi komercijalni programi, uključujući i Lotus Notes i Real Audio Player. Podvizi za ovu ranjivost su u divljini. Ako koristite Napomene ili neki drugi softver koji rukuje ZIP arhiva, obratite se prodavcu da vidimo da li je dostupno ažuriranje.
U pokušaju da ublaži ovu ranjivost, razvoj verzija sanitizer je implementirao filename dužina provjere na arhivirane imena datoteka. Ako ne želite da probate razvoj snimak, patch koji dodaje testove dužina zipped-filename to je dostupan postojeće ZIP skeniranja. To je protiv 1.151, ali to bi trebalo raditi na bilo izdanje koje ima poštanski skeniranje.

Tu je i mala zakrpa za verzije 1.151 i ranije da defangs metoda zamagljivanju ugrađenih JavaScript. Da biste se prijavili flaster, osim zakrpu na direktorij gdje je spasio dezinficijensa (obično / etc / procmail) i pokrenite sljedeću naredbu:

patch --backup <obfuscated_javascript.patch

To će biti u narednih stabilno izdanje.
ESA-l i ESD l mailing listama su obnovljena i sada su domaćin impsec.org. Zahvaljujući Michael Ghens za njegovu velikodušnu hosting liste za pet godina!

Tu je najava mailing listu za sigurnost e-mail pitanja. To će prije svega imati informacije o novim podvizima i ažuriranja sanitizer. Da biste se pretplatili, pošaljite poruku na temu “pretplatiti” na [email protected]. Ovo je jako moderirao popis za najavama samo, ne opštu diskusiju.

Ako želite da se pridruže sanitizer diskusija mailing liste, pošaljite poruku na temu “pretplatiti” na [email protected]. Ovo je samo za članove liste; da postavite da ga morate pridružiti. Tu je i arhiva poruka na raspolaganju.

1.142 popravci manji bug u 1.141 što čini zipfile filename odgovarajući previše pohlepan.

1.141 sada omogućava skeniranje ZIP arhive sadržaja. NAPOMENA: ako ne eksplicitno navesti datoteku ZIPPED_EXECUTABLES politike, Sanitizer će default sa svojim POISONED_EXECUTABLES datoteku politike za obradu ZIP arhivu sadržaja. Ovo je vjerojatno više paranoičan nego što želite da bude. Pogledajte Konfiguriranje Sanitizer stranicu za više detalja.


VAŽNA OBAVIJEST:

Ako ste preuzeli i koriste 1.139 Sanitizer, ovdje je patch da to zanemari kovani dijelu NovArg / MyDoom Primljeno: zaglavlja i zaustaviti obavještavanje nepostojeći korisnik adresama o napadu. Molimo Vas da prijave ovaj patch sa svojim sanitizer koristeći upute u nastavku i pomoći da se smanji lud količinu saobraćaja ovo čudovište stvara …

[HTTP Mirror 1 (SAD: WA) | HTTP Mirror 2 (SAD: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (SAD: WA)]

Uputstva za instalaciju:

Kopirajte .diff datoteku u direktorij gdje ti sanitizer živote i izvedite sljedeće naredbe:

cp html-trap.procmail html-trap.procmail.old
patch < smarter-reply.diff

Na 1.139 Sanitizer uključuje otkrivanje Microsoft Office VBE buffer overflow napada. Pogledajte EEye popustu za više detalja.

Sobig.f pravila za direktne napade i jastuci su sada u datoteci uzorka lokalnih pravila.

Molimo pogledajte uzorak lokalnih pravila datoteke za pravilo da treba otkriti i karantin poruka dizajniran da napadnu Sendmail zaglavlje gramatičku analizu daljinskog korijen bug. VAŽNO: Ovo pravilo neće zaštititi stroj na kojem je instaliran. Ipak morate ažurirati sendmail. To, međutim, može zaštititi ugrožene mašine iza mašina na kojoj je pokrenut, dajući vam vremena da ih ažurirati.

Ako su sve greške poput “sendmail: ilegalna opcija – U” pogledajte stranicu konfiguracije kako da se to popravi.

Ako imate je “pao F” ​​problema (gdje je “F” u vodećim “From” u poruci se briše), imajte na umu: to je poznat problem u procmail. To može biti fiksna u trenutnom izdanju, možda želite nadograditi. Problem nastaje kada akciju filter vraća grešku. U toj situaciji procmail može izgubiti prvi bajt poruke. Pobrinite se da vaša datoteka dnevnika ima 622 dozvole. Također, ovdje je kratak pravilo koje će vam pomoći da počisti, dodajte ga na kraj/etc/procmailrc datoteke.

(Planiranje) razvoj 2.0 sanitizer je počela. Planirani popis funkcija izgleda otprilike ovako:

  • Politika-file-based prilog rukovanje ($ MANGLE_EXTENSIONS nestane)
  • Internacionalizacija podrške putem GNU gettext ili nešto slično
  • Pravilno rukovanje kodiranih imena fajlova
  • Folding zaglavlje dužine i HTML-defanging kod u glavni perl skriptu, kako bi se smanjila Perl proces inicijalizacije
  • Perl skripta će biti odvojena od (više ne inline)
  • Kreće od mimencode i mktemp da MIME :: Base64 i File :: mktemp
  • Prijave u samu poruku (dodavanjem novog MIME tekst vezanost listing ono što se dogodilo u sanaciju) uz mogućnost da dodate komentar datoteke site-specific
  • Viri u prilozima MS-TNEF. Nadam se da ću imati punu politiku i podršku za skeniranje makro, ali politika će vjerovatno morati primijeniti na MS-TNEF attachment in toto (npr ako je jedan dio toga će biti oduzeta, cijela stvar bude oduzeto).
  • Opcionalno de-BASE64ing teksta i HTML priloge, tako da oni mogu biti predmet spam filtriranje nakon sanitizer.

Beta najavama će biti na mailing listu.

Ja se mogu kontaktirati na <[email protected]> – mogli posjetiti i moj dom stranici.

Nekoliko ljudi su me pitali zašto ne naplaćuju za ovaj paket. Pretpostavljam da je to prije svega zbog činjenice da ja ne mislim da iko treba biti izložena na ove napade, jednostavno zato što ne žele ili ne mogu priuštiti da kupi nešto da bi se zaštitili, ali ima veze sa činjenica da sam to gledaju kao zanimljiv intelektualni izazov, na način da se dobije priznanje, kao i način da se vrati u zajednicu.
Međutim, ako se osjećate kao što su plaćanje za primanje nešto od vrijednosti koja je poboljšala svoj život, onda slobodno posjetite moj lični listi želja ili moje Amazon listu želja, ili pošaljite mi donaciju putem PayPal i naricati da niko još uradio TequilaPal.


Najbolje su sa bilo kojim preglednika

$ Id: procmail-security.html, v 1.211 2017/04/14 11: 44: 55-07 jhardin Exp jhardin $
Sadržaj Autorsko pravo (C) 1998-2017 John D. Hardin – Sva prava pridržana. Prevođenje ohrabrio, molimo Vas da obavijestite me tako da mogu pisati veze sa glavne stranice.
Primarne Sanitizer početnoj stranici na http://www.impsec.org/email-tools/procmail-security.html

… moj ured je u mom podrumu …

 

 

Wave Repair

Source: http://www.delback.co.uk/wavrep/

Wave Repair Logo Wave
Repair

Kliknite ovdje za važnu poruku o treće strane preuzimanje stranicama

 

Uvod

Wave Repair je shareware urednik posebno dizajniran za obnovu WAV datoteka koje su snimljene iz gramofonskih ploča. Također se može koristiti za obradu snimaka iz trake, ali njegova restauracija karakteristike su namijenjeni uglavnom za evidenciju. Ime je možda malo nesretan. Možda mislite da Wave Repair je program za fiksiranje slomljenih WAV datoteke (npr. sa nevažeća zaglavlja), što nije. U retrospektivi, trebao sam odabrao je drugo ime, ali ja sam zaglavio s njom sada.
To je 32-bitni program koji radi na svim verzijama Windowsa od Windows 98 na Windows 8. Imajte na umu da od ukidanja 4.9.1, to više ne radi na Windows 95. To je zato što je potrebno promijeniti program pomoći u CHM datoteku kako bi se održala kompatibilnost sa Windows Vista i CHM datoteke ne podržava Windows 95.

Wave Repair nije opće namjene digitalni audio editor (posebno, to ne uključuje proizvoljno copy / cut / paste uređivanje WAV datoteka). Umjesto toga, Wave Popravak olakšava mnoge od zadataka koji su potrebni prilikom obnove glazbe snimljene iz gramofonskih ploča, a koji su često teško koristeći alate za opće namjene. Napisao sam to jer sam bio u mogućnosti pronaći pristupačne urednik WAV datoteke koji se lako obavlja ove zadatke.

Ako vam je potreban editor opšte audio namjene, ne mogu preporučiti GoldWave kao dobar primjer. (I ranije preporučuje CoolEdit 2000. godine, ali s obzirom na Syntrillium Software je kupio Adobe Systems, taj program je nažalost prekinuta). Još jedan editor koji ima mnogo zadovoljnih korisnika je Audacity, i ima dodatni bonus da bude besplatan.

Windows 10

Imao sam izvještaje iz nekoliko korisnika pitanja pod Windows 10. I nemam kopiju Windows 10, i nemaju namjeru kupovati. To je zato što sam prilično izgubili veru sa Microsoftom. Trulež je počela sa Vista, poboljšana sa Win 7, onda su stvarno ispustio loptu sa Win 8. Wave Repair je prilično jednostavan aplikacija, a jedini deo koji će vjerovatno biti pod utjecajem čudno promjene u Windows je način na koji interfejs sa zvučne kartice. Osim ako Microsoft je učinio nešto čudno u ovoj oblasti (i iz onoga što sam pročitao, to nije slučaj), onda bih očekivao da će raditi sasvim u redu, ako ste instalirali najnovije osvojiti 10 upravljačke programe za vaše zvučne kartice.

Takođe sam čuo od nekoliko korisnika da radi dobro na Windows 10. Moguće je da oni korisnici koji su imali problema nisu tipične i upravo sreće.

Dakle, u ovom trenutku moj savjet je da ne može povrijediti da probam radi Wave popravak na Windows 10. Ako se ispostavi da se ne radi za vas, to je lako da ga deinstalirati. Ako se ipak odlučite da probate na Windows 10, savjetujem ti da ga instalirati na default mjestu (Program Files), kao što je Windows 10 štiti tom području. Umjesto toga, instalirajte ga negdje bezazleno, kao što su C: \ WAVREP. Također, budite sigurni da imaju čitanja sledećeg stava o Windows Vista / 7/8.

Vista, Windows 7 i Windows 8

Running Wave Repair pod Windows Vista i kasnije koristi funkcije podrške nasleđe primjenu Vista / Windows 7 / Windows 8. To radi, ali postoji nekoliko pitanja trebali biti svjesni. Pogledajte ovu stranicu za više detalja.

Probni period

Da bi ste ga isprobati da vidimo da li će biti korisno za vas, to je potpuno funkcionalan za probni period od 30 dana. Nakon tog vremena, potrebno je da se registruje da ostane potpuno funkcionalan; cijena je 30 američkih dolara. Ipak, neke karakteristike ne nastaviti raditi bez registracije – vidi Mode stranu Freeware.

Zahtjevi sustava

  • PC radi bilo koju verziju Windowsa od Windows 98 na Windows 8.
    (U principu treba da radi na Windows 10, iako sam imao izvještaja o problemima – ali na sve načine pokušati ga)
  • Ekran postavljen na 800×600 ili veći.
  • Zvučna kartica sposobna CD standarda (44,1 kHz / 16 bit / stereo) reprodukcije / snimanja.
  • Razumno brzo hard disk. Neki hard disk mlađe od 10 godina je gotovo sigurno da će biti dovoljno brzo.
  • 200MHz Pentium ili brži preporučeno. Wave popravak će raditi na sporijim sistemima (čak 486), ali neke od funkcija prikaza u realnom vremenu možda neće raditi na sporijim računalima.

Linux VPN Masquerade

Source: http://www.impsec.org/linux/masquerade/ip_masq_vpn.html

IP Masquerade je karakteristika Linux kernela koji vam dozvoljava da dijele siguran pristup internetu. Ako samo imate jedan priključak na internet, da li je dial-up telefonske linije, ISDN, DSL, kablovski modem, ili nešto drugo, Linux-baziran IP Masquerade firewall će vam omogućiti da dijele taj pristup, dozvoljavajući čak računala kao što želite na lokalnoj mreži za komunikaciju sa internetom istovremeno.

Vaš cijeli ured (ili porodice) mogu surfati World Wide Web, chat, da prijenos datoteka, igrati igre i telecommute u isto vrijeme.

VPN Masquerade je dio IP Masquerade koji vam omogućuje korištenje IPsec-baziran i PPTP-baziran Virtualna Privatna Mreža klijenata iza zajednički pristup firewall.

To se prvenstveno koristi za maskirana IPsec i PPTP VPN klijenata:

IPsec
Client -.
        |   Linux                     IPsec
PPTP   -+-> Masq and --> Internet --> or PPTP
Client  |   Firewall                  Server
        |
Others -+
        |

Nijedan drugi softver je potrebno da bi se maskiraju VPN klijentima.

Također se može koristiti za pristup privatne mreže IPsec ili PPTP servera iza Linux firewall …

IPsec                    Linux        Private-IP
or PPTP --> Internet --> Masq and --> PPTP or IPsec
Client                   Firewall     Server

Za to će trebati ipportfw port-forwarding kernel patch i konfiguraciju alat za 2.0.xx kernela ili ipmasqadm alat za 2.2.xx kernela proslijediti početnih 500/udp ISAKMP ključ-razmjena i/ili 1723/TCP kontrola PPTP kanal saobraćaj na server, i IPFwd generički IP prosljeđivanje komunalnih proslijediti početne IPsec ESP i/ili PPTP GRE saobraćaj na server. Detalji su dostupni u VPN Masquerade HOWTO – pročitajte ga.

Ako je vaš VPN baziran na tunele PPP preko Secure Shell (kao što je opisano u VPN mini-HOWTO) je vršeno od strane standardne IP Masquerade kod, kao ssh je čisto TCP protokol. Ćete ipportfw ili ipmasqadm i dalje treba, ako VPN server je maskirao (iza firewall, s IP adresom privatne mreže), a ne na samom firewall.

Ako koristite Checkpoint SecuRemote VPN sa FWZ-utisnutim tunela, nećete biti u mogućnosti da se maskiraju saobraćaja. Konfigurirati VPN za korištenje čistog IPsec protokola i dozvoljavaju NAT, i izbjeći CheckPoint vlasničkih FWZ protokola. Pogledajte VPN Masquerade HOWTO za više detalja.


Zašto želim ovo?

Jednom VPN Masquerade je konfiguriran više nećete morati da pozovete vašeg ISP-a direktno iz vašeg VPN klijenta (ili priključite VPN klijenta u vaš kablovski modem) kada želite da biste pristupili VPN servera. To znači da su sve prednosti Linux zajednički pristup internetu ostati na raspolaganju, čak i dok koristite svoj VPN za pristup udaljenom mreže.

U stvari, uz pravilnu konfiguraciju lokalne mreže možete istovremeno pristupiti Internetu i privatne (korporativni?) Mreža (preko VPN) iz svih računala na lokalnoj mreži. svaki dan radim to dok je radio od moje kuće.

Napomena za W’95/’98 VPN korisnika klijent: Žao mi je, ali W’95 / ’98 IP stog ne lako podržava IP prosljeđivanje. Ne možete koristiti W’95 / ’98 VPN klijenta da djeluje kao VPN router za lokalne mreže – svaki W’95 / ’98 sistem će morati uspostaviti svoju privatnu vezu sa VPN server osim ako koristite sistem koji izvodi WinNT ili neki drugi OS sposoban IP prosljeđivanje kao VPN router.


Dobijanje VPN Masquerade patch

VPN Masquerade je ugrađena u kernel tisak 2.0.37, a kasnije u 2.0.x serije. A patch je dostupan za 2.0.36. Patch može raditi sa ranije kernela, ali to nije testiran. Zakrpe su također dostupni za kernela 2.2.5 do 2.2.16, i može raditi sa starijim jezgrama u 2.2.x serije.

Važna napomena: molimo vas da skinete i primijeniti 2.2.x kfree_skb () bugfix patch nakon nanošenja bilo koju verziju punu 2.2.x zakrpu. Ovo ispravlja bug koji može dovesti do kernel panike pod teškim IPsec maskenbal upotrebu.

Generički 2.0.x-serija kernela

Ako koristite kernel izdanje ranije od 2.0.37 možete skinuti patch od:
[HTTP Mirror 1 (SAD: WA)]

Ako koristite 2.0.37 ili 2.0.38, postoji bugfix da spriječi GPFS pod određenim okolnostima kada se IPsec maskenbal omogućeno:
[HTTP Mirror 1 (SAD: WA)]

Generički 2.2.x-serija kernela

2.2.5 – 2.2.10: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 4 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.11 – 2.2.12: [ HTTP Mirror 1 (USA: CA) | HTTP Mirror 2 (USA: WA) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.13: [ HTTP Mirror 1 (USA: CA) | HTTP Mirror 2 (USA: WA) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.14: [ HTTP Mirror 1 (USA: CA) | HTTP Mirror 2 (USA: WA) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.15 – 2.2.16: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.17: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.18 – 2.2.20: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]

Nisam imao nikakve izvještaje patch radi sa kernel verzije veći od onih gore navedenih, ali patch će vjerojatno raditi dobro. Na 2.2.x kernel serija je sada u režimu održavanja, i promjene su uglavnom ispravke grešaka koje ne utječu na maskenbal podsistema.

RedHat i Mandrake 2.2.x-serija kernela

RedHat je uključena VPN zakrpu u jezgrama 2.2.16-8 i kasnije. Svrati na RedHat FTP lokaciju ili ogledalo stranice RedHat i spasiti sebi krpanje. Imajte na umu da možete imati i ažurirati na novu verziju RPM kao dobro.

Ako pokušavate da zakrpi kernel od RedHat ili Mandrake jezgra izvor RPM prije 2.2.16-8 Takođe će vam trebati da se prijave na sljedeći patch nakon nanošenja pune VPN Masq patch. To će popraviti važnu nije komad. Za primjenu tog patch:

cd /usr/src/linux/net/ipv4
zcat patchfile.gz | patch -l -p0

2.2.12 i 2.2.13: [ HTTP Mirror 1 (USA: CA) | HTTP Mirror 2 (USA: WA) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
2.2.14 kroz 2.2.16-7: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]

Sljedeće patch je potrebno za RedHat ili Mandrake 2.2.16 kernel ili kernel koji je imao flaster VS-Masq (Virtual Server) primijeniti. To uključuje kernel isporučen sa RedHat 7.0 – ako imate RedHat 7.0 i koristite kernel koji je došao s njim, da ti treba ovo patch. Update kernela RedHat 2.2.17-14 uključuje ovaj patch, preporučujem ti to kernel RPM sa FTP lokacije nego krpljenje i obnove.
Ako verbose PPTP ispravljanje pogrešaka pokazuje maskarada adresa (maddr) od 0.0.0.0 se koristi, ili tcpdump na internetu sučelje pokazuje nešto poput:

08:32:26 0.0.0.0 > 1.2.3.4: ip-proto-50 108 (ttl 63, id 1)

… onda treba da koristite ovu zakrpu. Za primjenu tog patch:

cd /usr/src/linux/net/ipv4
zcat patchfile.gz | patch -l -p0

2.2.16: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]

Nemojte zaboraviti da pokrenete “make modules_install” nakon krpljenje i ponovnim prevođenjem.

VPN Masq patch je izostavljen iz prvog RedHat 2.2.19 kernel RPM zbog vremenskog ograničenja. To će biti u sledeći.

Možda želite preuzeti obična kernela arhive iz kernel.org ogledalo stranice umjesto.

Bugfix za sve 2.2.x seriju kernela zakrpe

Svi IPsec korisnici Masq treba preuzeti i primijeniti ovaj bugfix patch i rekompajlirajte kernel. Ovaj patch popravlja bug u pozivanju kfree_skb () koja bi mogla dovesti do kernel panike pod velikim maskenbal opterećenja.

2.2.x: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]

Da biste se prijavili:

cd /usr/src
zcat ip_masq_ipsec-kfree.patch.gz | patch -l -p0

Ako dobijete greške o tome da ne bude u mogućnosti pronaći datoteku zakrpa, pobrinite se da / usr / src / linux postoji.

2.4.x-serija kernela

Zahvaljujući Brian Kuschak <bkuschak na yahoo.com> za pružanje kernel patch za PPTP Masquerade pod 2.4 kernel!

2.4.12: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) ]

2.4.15: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) ]

2.4.17: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) ]

2.4.19: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) ]

Jednostavno primijeniti flaster, zatim omogućite PPTP maskenbal u sekciji IPFilter prilikom konfiguracije kernel.

Ne IPsec patch je dostupan još.

Rečeno mi je da se pretvara jedan VPN klijenta koristeći iptables je prilično jednostavan za postavljanje, i ne zahtijeva posebnu zakrpe. To može raditi i za PPTP i IPsec.

U nastavku je zahvaljujući Joshua Eichorn <[email protected]>. Nisam ga pokušao sebe.

#!/bin/bash
# Load the NAT module (this pulls in all the others).
/sbin/modprobe iptable_nat

# In the NAT table (-t nat), Append a rule (-A) after routing
# (POSTROUTING) for all packets going out ppp0 (-o ppp0) which says to
# MASQUERADE the connection (-j MASQUERADE).
/usr/local/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

Server maskarada za PPTP takođe radi sa standardnim masquerade kod. Dodaj sljedeća pravila:

PPTP (1723/TCP i 47/IP):

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1723 -j DNAT --to 192.168.0.5
/sbin/iptables -t nat -A PREROUTING -i eth1 -p 47 -j DNAT --to 192.168.0.5

… gdje 192.168.0.5 je IP adresa lokalne mreže PPTP servera. Nisam imao nikakve izvještaje o IPsec server masquerade.


Za preuzimanje datoteka pomoću Lynx: istaći vezu, pritisnite “d” (download) i odaberite “Save to disk”.
Za preuzimanje koristite Netscape Navigator: desni klik na link i odaberite “Save Link As …” – ako jednostavno kliknite na link, Navigator ima tendenciju da korumpirane datoteke zakrpe.

Za rano 2.2.x jezgrama također možete posjetiti Gordon Chaffee sajtu za 2.2.x PPTP samo Masq patch.


Konfiguriranje VPN Masquerade

Prvo, trebalo bi da bude udobno s ponovnim prevođenjem kernel

Drugo, pobrinite se da imate IP Masquerading sastavljen u kernel i ispravno. Postavljanje maskirana sama je izvan opsega ovog dokumenta, a tu je i KAKO već dostupan koji opisuje proces u velikoj detalj. Ako nemate redovne maskenbal ispravno onda molim te nemoj me kontaktirate za pomoć – prvo pročitajte KAKO. (Uspješno sam napravio poentu;)
Isto tako, ja sam napisao GUI omot za 2.0.x ipfwadm naredbu koja čini upravljanje firewall i maskirati lakše postavljanje.

Treće, pobrinite se da vaše VPN veze radi kada birati svog ISP-direktno iz vašeg VPN klijenta sistema.

Instalirati i konfigurirati VPN Masquerade, slijedite upute s obzirom na VPN Masquerade KAKO, dostupno na:

HTML: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
PostScript (za ispis): [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
PDF: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) | FTP Mirror 1 (USA: UT) | FTP Mirror 2 (EU: NL) ]
SGML izvor: [ HTTP Mirror 1 (USA: WA) | HTTP Mirror 2 (EU: NO) | HTTP Mirror 3 (AU) ]


Bilješke i na drugim lokacijama od interesa

Ne morate VPN Masquerade podršku ako VPN krajnje je sam firewall – ako je, na primjer, imate oslobađa / WAN ili Linux PPTP klijent instaliran na vašem firewall. Nemojte koristiti VPN Masq zakrpe ako je to slučaj. To neće raditi.
Ne morate ipmasqadm ili ipfwd ako zovete udaljenom VPN servera preko Masq gateway. Da ih je potrebno samo ako je lokalna VPN server je iza Masq gateway.

Ovisno o PPTP servera koji se koristi možda biti prisiljeni koristiti konfiguraciju VPN router ako više od jednog maskirao sistem želi da se poveže sa datom PPTP servera. Protokola PPTP specificira samo jednu kontrolnu vezu iz datog sistema klijenta, a maskarada gateway je klijent kao što se tiče servera. PPTP implementacije servera da pravilno prati specifikacija neće dozvoliti više od jednog PPTP sjednicu da se utvrdi iz maskenbal gateway. Probajte prvo, međutim, kao što neki pogrešan PPTP implementacije (kao što je u Windows NT) ne dopuštaju višestruke veze između istih sistema.

IPsec AH protokol (51 / IP) sadrži kriptografski kontrolni zbir uključujući IP adrese u IP zaglavlju. Od maskirana mijenja te IP adrese, a od kriptografski kontrolni zbir ne može se preračunati po masquerading firewall je maskirao paketi neće uspjeti test checksum i da će biti odbačeni od strane udaljenog IPsec gateway. Stoga, IPsec VPN koji koriste protokol AH ne može uspješno maskirao. Izvini. (ESP sa autentifikaciju mogu se maskirao.)

Evo patch za netstat koji dodaje priznanje protokola ESP i GRE. Dodajte tome i netstat -M će ponovo raditi!

Ako želite da implementira VPN IPsec-bazirani na Linuxu, molimo vas da posjetite Linux oslobađa/WAN stranice. To se posebno preporučuje ako razmišljate o postavljanju VPN PPTP-based između dvije mreže koje su i iza Linux firewall. IPsec je sigurnije i mnogo bolje odgovara ovome od PPTP.

Molimo vas da posjetite Microsoft Security najavama mjesta za važnu ispravku PPTP sigurnosti za Microsoft PPTP klijente i poslužitelje. Vi svibanj također biti zainteresirani za analizu implementacije Microsoft protokola PPTP jedan od najuglednijih članova Crypto zajednice. Druga analiza i treći analiza drugi su također dostupni.

Tu je i slobodno dostupnih native Linux PPTP klijenta i PPTP poslužitelj softver. Imajte na umu da je ovaj softver ne može osigurati enkripciju: za zakrpe koje dodaju M $ kompatibilan enkripciju i kompresiju PPPD posjetiti ovu stranicu, ili posjetite FTP mjestu gdje Paul Cadach <[email protected]> nudi pppd zakrpe za podršku MS-CHAP-V1/V2 i MPPE i implementirati multilink JPP sa NT. (Ovi linkovi su prilično stara. Posjetite PoPToP stranice za trenutni status native-Linux PPTP).

Obilno zahvaljujući Gordon Chaffee za kodiranje i dijeljenje patch za traceroute koji omogućava praćenje GRE saobraćaja. To bi trebalo dokazati neprocjenjive vrijednosti u rješavanje problema ako GRE saobraćaj je blokiran negdje. Nabavite patch od:
[HTTP Mirror 1 | FTP Mirror 1]

A patch za noviji traceroute_1.4a12 je dostupan od http://www.planet.net.au/~neale/debian/traceroute-GRE/

Ja sam koristeći maskirao VPN kroz razne inkarnacije ovog patch sa velikim uspjehom od Rujan 7., 1997

Imam samo x86 kutiju za testiranje ovo. To je prijavljen za rad na SPARC i PowerPC sistema. Komentari korisnika na drugim arhitekturama su traženo.

U 2.1.65+ zrna izvorno podržava tuneliranje protokol baziran na GRE, ali ne podržavaju PPTP nativno na bilo koji način. Morate uvijek zakrpi kernel ako želite da se prerušavaju PPTP. Pogledajte KAKO za više detalja o 2.1.x i 2.2.x kernela.

Na 2.0.x patch sukobi sa lanci IP Firewall i ipportfw zakrpe u pokušaju da zakrpe kernel konfiguracijske datoteke. Ovo je nekritične. Pogledajte KAKO za više detalja.

Da, znam da IPsec je peer-to-peer. Pisanje to tako da je mogu koristiti od strane ljudi koji koriste IPsec krajnje točke na Windows prisiljava netačne terminologiju.

Ja sam u potrazi za lokacijama ogledalo. Ako imate web ili FTP server, po mogućnosti sa SSH pristup, a da ti ne smeta domaćin nekoliko fajlova, baci mi poruku! Ako želite da me ogledalo, ili ja već preslikavanje, baci mi poruku!


Možete me kontaktirati na <[email protected]>. Ja bih da čujem vaše komentare i sugestije, a posebno vaše probleme sa ovim patch. Također možete posjetiti trenutnu verziju ovog dokumenta, te da pogled na moju početnu stranicu …

Odricanje od odgovornosti: Nema garancije funkcionalnosti. Obratite pažnju na rad sastavljen kernel okolo u slučaju da to eksplodira.


© 1999-2006 John Hardin. Možete kopirati ovu stranicu dok je sadržaj nepromijenjen (možete promijeniti oblikovanje tako da odgovara vašim stranice ako želite) i link na originalnu stranicu je ostao netaknut.

$ Id: ip_masq_vpn.html, v 1.82 2006-07-13 06: 44: 50-07 jhardin Exp jhardin $