BSD-DK Nyhedsbrev 008 Oktober 2007 INDHOLD 1.Introduktion 2.Hyggemøde på Café Katz d. 11/10-2007 3.EuroBSDCon 2007 4.Månedens lille utility 5.Netikette på BSD-DK mailinglisterne 6.Næste nyhedsbrev 1. INTRODUKTION Af: Søren Hansen Velkommen til denne ottende udgave af BSD-DKs nyhedsbrev. Efter en lang pause vil vi nu prøve at starte Nyhedsbrevet op igen med en udgivelse hver anden måned. Aktivitetsniveauet har på det seneste været dalende. Der har ikke været specielt mange foredrag, men der har været en del hyggemøder og happy-hacking arrangementer med svingende tilslutning. Derudover har vi netop overstået den vel største BSD-relaterede begivenhed i mange år på dansk grund med en succesfuld afholdelse af EuroBSDCon i København i forrige måned. Det er vores håb, at vi med relanceringen af nyhedsbrevet her kan bidrage til at få fyret lidt op under BSD-kedlen igen. Nyhedsbrevet er en mulighed for, at bidrage med erfaringer og gode historier om BSD fra den virkelige verden, komme med gode tips og tricks eller blot komme med forslag til fremtidige aktiviteter. Hvis du sidder med dit eget lille ynglingsprojekt, som du brænder for, og som du gerne vil have andre til også at opdage eller måske ligefrem til at deltage i, så er nyhedsbrevet muligheden. Derudover vil jeg gerne benytte lejligheden til at gøre lidt reklame for BSD-DKs hjemmeside www.bsd-dk.dk. Derinde findes blandt andet en kalender over kommende planlagte aktiviteter. Deriblandt hyggemøde på torsdag den 11. oktober på Café Katz, J-dag samt et foredrag om CruiseControl. God læselyst! 2. HYGGEMØDE PÅ CAFÉ KATZ d. 11/10-2007 Af: Peter "czar" Larsen Du er måske ny i BSD-DK og vil gerne lige se hvad vi er for nogle mærkelige mennesker? Eller også har du altid undret dig over, hvad vi laver på de hyggemøder som du høre så meget om? Så er det her det rigtige sted at starte! - Hvad er et hyggemøde? I praksis består det af en flok medlemmer fra BSD-DK foreningen, der mødes over en kop øl, og typisk en god burgah (BSD-DK sprog for burger). - Hvornår er der hyggemøder? Hyggemøder arrangeres pt. af czar (Peter Larsen). Jeg modtager gerne input på gode steder til at afholde hyggemøder, og jeg kan jo ikke prøvespise alle steder selv. Vi prøver at være sociale ca. 1 gang hver anden måned. Du kan altid se i vores kalender på websitet www.bsd-dk.dk efter arrangementer i nær fremtid. - Hvad koster det? Du betaler selv for den mad og drikke, du indtager. Ud over det koster det ikke noget. - Hvad opnår jeg så, jeg kan spise hjemme..? Du møder en frygtelig masse interessante mennesker som bruger BSD eller arbejder professionelt med miljøer omkring BSD. Typisk snakkes der om teknisk ting, der fortælles anekdoter og om nye spændende features/ting man selv har lavet/fundet eller oplevet i den forbindelse. Det er ikke usædvanligt, at man finder kontakter til at løse opgaver eller inspiration til at forbedre sin viden. - Skal jeg melde mig til? Det står på indkaldelsen, hvis det er påkrævet at melde sig til. Dette er typisk af hensyn til bordbestilling, da det er ret svært for en café/restaurant lige at lave plads til 10-20 mennesker. På Cafe Katz har arrangøren bedt om folk melder sig til. - Må jeg tage min kæreste med? Ja, men han/hun skal være forberedt på vi typisk snakker om teknik. Så er han/hun også velkommen. - Jeg har glemt at melde mig til, jeg er i nærheden, og mit andet møde er aflyst :( Bare kom! Det kan dog være, at du må vente på maden eller lign.. Men bare kom! - Hvad med bagefter vi har spist? Det er ikke usædvanligt, at vi tager ud og drikker en lille øl, eller to.. til tider måske flere, efter vi har spist. Det er dog ikke arrangeret på forhånd og er typisk et udslag af "spontanitet". - Skal man partout spise, jeg kan ikke lide maden/er vegetar og spiser derfor ikke burgers? Nej, du må godt bare møde op og drikke en øl og hygge. Cafe Katz HAR vegetar retter, men læs altid linket til menukortet hvis du er i tvivl. - Hvor var det jeg tilmelder mig til på torsdag? Du kontakter czar på irc (EFNet) og fortæller hvor mange I er (gerne med navn eller irc handle). Evt sender du en mail til mail@czar.dk .. Jeg fortrækker dog IRC beskeden. Nøjagtige information om sted og tidspunkt findes på www.bsd-dk.dk i kalenderen. Vel mødt! 3. EUROBSDCON 2007 Af: Nicolai Petri, Catpipe Jeg lovede Søren at skrive om mine oplevelser på EuroBSDCon 2007 som, hvis nogen ikke har opdaget det endnu, foregik i Symbion, København. For mig startede det hele allerede om onsdagen hvor jeg havde tilmeldt mig Kirk McKusicks crashcourse i the FreeBSD kernel. Jeg havde tilmeldt mig 2 dage og det fortrød jeg ikke ud over at man havde placeret lige præcis denne tutorial væk fra Symbion - tingene handler jo ikke kun om at høre tutorials og foredrag, men mindst ligeså meget om den sociale kontakt med nye mennesker og især dem man typisk ser hvert 300 år, når man mødes på konferencer. Så næste gang vil jeg foreslå, at man prioriterer at holde tingene samlet istedet for at splitte det op, for at spare penge. Nå, men indtil videre, ikke mere brok omkring dette. Det jeg dog vil sige er, at hvis man ikke har været på en tutorial med McKusicks, vil jeg anbefale det, hvis man bare har lidt interresse i kerneprogrammering (og C programmering). Noget som jeg nok ikke havde forventet at lære på denne tutorial var, hvorfor PostgreSQL på Linux altid irriterer mig. (bdwrite vs bawrite). Hvem elsker ikke at ens shell hænger ca. 30 sekunder, hvis man skulle være så formastelig at skrive # sync i kommandolinien. Og desuden er det jo lidt fjollet, at Linux bruger en masse cache på writes, som typisk ikke skal læses igen. Bare tag transaction loggen på en PostgreSQL som et godt eksempel. En anden sørgelig iagtagelse jeg gjorde var, at selv McKusick er sunket så dybt at han bruger en MacBook. ;o) Nå, men efter 2 dages tutorial var overstået hvor der på anden dagen måske lige var lovligt mange mennesker i rummet, som begyndte at give associationer til en finsk sauna, så glædede jeg mig til at komme igang med konferencen. Det var ret godt, at komme derud og starte med morgenmad og lige sig hej til dem man kendte. Jeg hørte vist nok velkomsten, der var en smule forsinket ud fra hele 'ish konceptet, men hurtigt blev jeg enig om at jeg med mindre hovedpine nok bare skulle finde på nogle stille at lave - altså sidde med min maskine. Mit eget lille FreeBSD projekt Det jeg primært brugte tiden på, når jeg sad med min pc (uden wireless...) var at arbejde lidt videre på mit proof-of-concept accept_filter til FreeBSD. I dag findes der 2 accept filters, nemlig accf_http og accf_data. Kender man ikke access_filters, vil jeg stærkt anbefale, at man ser på det, såfremt man har serverer, der håndterer en anseelig mængde af tcpconnects udefra. Nå, men mit projekt var at lave endnu et accept_filter der vil kunne fungerer med f.eks. ssh, smtp og lign. protokoller hvor klienten først venter på en greeting fra serveren før den sender data. Det lykkedes mig faktisk, at få et simpelt testprogram til nogenlunde at virke. De 3 problemer jeg har tilbage er at so_send i kernen første gang "mister" første karakter fra den streng jeg sender. Jeg ved ikke om dette er en fejl i min kode eller i so_send i kernen - jeg hælder pt. mest til so_send fordi jeg ikke har fundet nogle ting i kernen der bruger den på samme måde som mig (Altså jeg voldtager sikkert api'et). Problem nummer 2 er måden som man sætter et accept_filter - der har man mulighed for at give argumenter med som strenge, men det er begrænset til ca. 240 bytes og især voldsomt uvenligt overfor binære data. Tredje problem er at jeg ikke har kunnet finde et fornuftigt sted at gemme state for mit accept_filter. Man kan med accept_filter api'et ikke nemt se, om det er første gang eller senere man bliver kaldt, så jeg mangler sådan set et sted at gemme state så jeg kan registere, at på denne socket har jeg allerede sendt greeting headeren. Mit hack på det var simpelthen at fjerne accept_filter flaget på socket, da det sådan set har udført sit job på det tidspunkt - desværre er jeg lidt i tvivl, om det breaker ting længere nede i systemet. Jeg håber at komme videre i projektet snart, men det bliver nok ikke før jeg har fået bygget mig et setup med remote gdb til debugging. Social Event Nå men for at undgå at holde dette indlæg i kronologisk orden så vil jeg lige sige lidt om "Social Event" hvor vi var i Zoo og spise. Da vi ankom med busser, fik vi stukket en velkomstdrink i hånden og så gik der en "quick-tour" rundt i Zoo med zoo toget. Dette kørte desværre kun 3 gange og jeg nåede ikke med - jeg tog det nu også ret afslappet da jeg har børn og kender turen udemærket - så det var vel kun fair at de fjollede "turister", der ikke var lokale fik lov at se Zoo. :o) Da togturene var overstået, gik det i fælles trop over til de tasmanske djævle hvor man kunne se, at ud af 2 sponsorer så var LinuxForum den ene - det vidste jeg ikke engang, men det er da en fin måde at gøre omverdenen opmærksom på opensource miljøet. Efter dette lille afbræk så var det ved at være tid til maden. Vi fik alle sat os til borde og så blev der efter en kort intro sagt værs'go. Og kære læser, her er det man ser, hvad en mand som Kirk McKusick har lært af mange års erfaring: FIFO - First In, First Out.. Manden spurtede hen til buffeen, og andre begyndte at følge hans eksempel - vi andre der havde pli havde aldrig forestillet os, at man laver mad til så mange mennesker, og så ikke engang har en SMP udskænkning. Det betød noget der føltes som 20 minutter i kø, og det var efter at vi havde ventet i 20 minutter ved bordet for at køen skulle blive mindre. Så god mad men ufattelig dårlig logistik. Da vi havde forspist os i den gode mad og drukket rigeligt med vin så blev vi smidt ud - eller vi skulle ihvertfald videre. Desværre var der ikke rigtigt planlagt det store her, så alle splittedes hurtigt op i mindre grupper, som enten tog en bus eller prøvede turen til fods mod centrum. Vi endte på bryggeriet ved tivoli, og der fik vi så lige klarlagt verdenssituation med nogle øl inden vi tog hjem og gjorde os mentalt klar til endnu en EuroBSDCon dag. Delaymekanisme på konferencematerialet En af de mere underholdende ting på konference var PHK's USB pusher maskine hvor vi kunne få kopieret konferencematerialet over på den usb-stick vi fik udleveret ved registreringen. En ting som jeg specielt bed mærke i var, hvordan PHK havde implementeret en eksponientiel delaymekanisme, som ud fra antallet af mennesker i kø, brugte længere og længere tid på at kopiere data. Jeg gad ikke at stå i kø, så når der var ledigt, så blev min usb-stick hurtigt og smertefrit opdateret på 1 minuts tid imod de op mod 10 minutter det typisk varede, når folk stod i kø. Til PHK's forsvar skal det måske lige siges, at der var lidt rygter omkring USB1 vs USB2 sticks, der måske også kunne have haft en indflydelse. Programmet Nå men tilbage til programmet. Grundet min næsten permanente hovedpine, så var det ikke så mange talks jeg fik bevæget mig indtil. Dog er her lige en liste over hvad jeg husker at have set. Isaac Levy med "FreeBSD jail(8) Overview, the Secure Virtual Server": Jeg så ikke det hele, men til gengæld gjorde det mig opmærksom på nogle af de sikkerhedsproblemer, der kan være med jails. Og desuden var der også en del gode "best practices" for at håndtere mange jails. Steven Murdoch med "Hot or Not: Fingerprinting hosts through clock skew": Hvis man i forvejen var paranoid, så var dette et perfekt foredrag til at gøre tingene værre. Konklusionen var noget i stil med, at selv maskiner uden netforbindelse kunne sende skjulte beskeder... tag den! Marshall Kirk McKusick med "A Brief History of the BSD Fast Filesystem": Nu havde jeg i forvejen været til Kirk's tutorial så jeg vidste, hvad der blev sagt. Men manden er sjov at høre på, og der er en masse god information omkring hvorfor tingene er som de er i dag - og det har helt sikkert mest med erfaring at gøre :) Pakkesystems deathmatch Nå, men da programmet var ved at være færdigt, så var det tid til "3rd party software deathmatch", som handlede om pakkesystemer. Der blev linet op med folk fra hver bsd camp + OSX + Debian(? - det var ihvertfald noget Linux halløj). Det er svært at forklare hvad der præcist skete ved denne event, men ganske underholdende var det dog. Dog skal det siges at dommerne helt tydeligt var blevet fulde af de øl de blev bestukket med - det kunne ses på resultatet. En anden sjov observation var mængden af useless information, som blev langet ud til folkemængden - der havde vi heldigvis den lokale klovn til at signalere til speakerne, når tilskuerne begyndte at falde i søvn. Afslutning Da tingende var ved at være færdige, så var det tid til at runde programmet af. Dette skete med uddeling af præmier for de bedste foredrag og diverse information om kommende arrangementer. Og så blev det også lige nævnt at man kunne mødes på brewpub bagefter. Jeg var i bil så jeg sprang afsted og var en af de første på brewpub.. efter et kvarter i dræbende kulde begynde det at drysse ind med kendte ansigter. Vi satte os til at få en øl og overvejede så hvad vi skulle spise. Det blev hurtigt til at vi skulle ind for at få varmen og der var allerede mange andre, der havde fået den ide, så pladsen var lidt trang. Alle sad inde i restauranten og efter lidt diskussion hvor vores udseende og tøjstil blev vurderet, fik vi nådigst lov at komme ind. Skuffelsen var selvfølgelig stor fordi vi ikke kunne købe de lækre burgers, som de havde i baren men at vi måtte nøjes med mad der kostede det tre-dobbelte og sådan set ikke var specielt godt. Eller nu skal jeg være lidt fair; deserten var super og min steak havde måske været en superskøn oplevelse .... hvis den havde været varmere end en isterning i en fryser. Nå, men efter maden, deserten og lidt øl, så var det tid til at se København lidt mere - jeg havnede på Vesterbro Bryghus (som må siges at være en pinlig kopi af Nørrebro Bryghus) hvor vi fik lidt øl - og så var vi faktisk så trætte, at det var tid til at tage hjem.. og det kære læser var afslutningen på EuroBSDCon2007 for mig. 4. MÅNEDENS LILLE UTILITY Af: Michael Knudsen moo - Marco's Object Oriented calculator moo er en lommeregner for C-programmoerer. Den accepterer en C-lignende syntaks og understoetter de fleste operatorer i C. moo arbejder med heltal paa 64 bit. moo er temmelig enkel at gaa til: usage: moo [-su] [-b base] [expr] [...] Man kan give et udtryk som parameter til programmet; goer man ikke dette, laeser moo udtryk fra stdin. moo er velegnet til nemt at konvertere tal mellem forskellige baser: luggage$ moo 10 0xa 10 012 0b1010 Dette kan ogsaa goeres med dc: luggage$ echo 16 o 10 p | dc A .. men det er knapt saa ligetil, og man glemmer ofte `p', saa dc ikke skriver noget ud. Naar man regner udtryk med moo, skriver den resultatet ud i de baser, der er blevet givet tal i: luggage$ moo 10 + 0xf 0x19 25 luggage$ moo 0b10010 + 076 0120 0b1010000 Undtagelsen for dette er, hvis man kun skriver eet tal, hvilket saa bliver skrevet ud i base 16 (hex), 10 (decimalt), 8 (oktalt, som kendt fra permission masks), samt 2 (binaert) -- som set ovenfor. Nogle eksempler paa brug af moo: # Er 1234 skiftet en byte op i 64-bit heltallet stoerre end 1MB? 1234 << 8 + 0b0 > 1024 * 1024 0 0b0 # Hvilke bits er forskellige i tallene 1234 og 4321? 4321 ^ 1234 + 0b0 5171 0b1010000110011 Find selv paa mere. moo understoetter endnu ikke variable, og der er ingen lineediting, men moo er stadig rar til hurtigt lige at tjekke, hvordan en udregning eller et udtryk i C egentlig opfoerer sig. moo findes i ports i hvert fald paa OpenBSD og FreeBSD, men ellers skulle det vaere nemt at faa i gang paa de fleste systemer. Her findes den i disse dage obligatoriske tilhoerende hemsida: http://cyth.net/~ray/moo/ 5. NETIKETTE PÅ BSD-DK MAILINGLISTERNE Fra http://www.bsd-dk.dk/netikette.shtml Før du søger hjælp på mailinglisterne, er der nogle ting som du kan gøre for at få bedre hjælp: * Lad være med at stille de samme spørgsmål Søg i mailarkivet for at se om der er andre der har haft et tilsvarende problem. Så slipper folk på listen for at svare på de samme spørgsmål om og om igen. Kig i mail arkivet. * Tal pænt. Folk på listen får ikke penge for at løse dine problemer, de gør det af egen fri vilje. Hvis du udviser almindelig høflighed kommer du langt! Dette gælder i lige så høj grad de "garvede" på listen! Det at du har en masse erfaring giver dig ikke ret til at skræmme vores nytilkommere væk! Husk at du selv var grøn engang. Vejled de nye i at blive gode mailinglist medlemmer i en god tone. * Vær præcis For at undgå at bruge flere mails på at afdække trivielle detaljer bør du inkludere dem allerede i den første. Eksempler kan være versionsnummer på den pågældene applikation eller på operativsystemet, stinavne og environment variable hvis det er relevant. Forklar proceduren du gjorde da du opdagede problemet og/eller hvordan man kan reproducere det. Inkluder den eksakte ordlyd af fejlbeskeden (Brug klip & klistre hvis det lader sig gøre). Disse informationer kan hjælpe andre når de skal søge efter et tilsvarende problem. * Prøv først selv. Listens imødekommenhed øges dramatisk hvis det kan ses at du faktisk har prøvet at løse problemet inden du sendte det til listen. Beskriv hvad du selv har gjort for at løse problemet. Hvis du sidder fast, så prøv at læse de relevante manual sider eller søg information på steder som Google - det afslører måske den detalje der sætter dig i stand til at løse problemet selv. Udover fornøjelse og selvrespekt, er det processen ved at løse problemer, som virkelig sætter skub i det at lære nye ting. * Giv tjenesten tilbage ;). Hvis du har lidt tid og løsningen til et problem som du har set på listen, så overvej venligst at skrive en mail til listen. Den information du ligger inde med kan være uvurderlig for personen som søger hjælp og den er med til at gøre mailinglisten et værdifuldt sted at søge hjælp. 6. NÆSTE NYHEDSBREV Da vi vil bestræbe os på, at få udgivet nyhedsbrevet en gang hver anden måned, vil næste nummer af nyhedsbrevet udkomme i begyndelsen af december. Jeg skal derfor opfordre alle, der har noget på sinde, at informere os i god tid, og indlevere deres indlæg inden den 1. december. Indlæg kan indsendes til bestyr (hos) bsd-dk.dk