Monday, September 25, 2006

FAGBOK:"Essential CVS" av Jennifer Vesperman

CVS er anderledes enn andre systemer for kildekodekontroll (som jeg kjenner). Istedet for å låse filer som man skal endre, så lar CVS alle endre som de vil. Når man er ferdig med en serie med endringer så håndterer CVS eventuelle problemer. Dersom flere har endret samme fil så prøver CVS å slå endringene sammen. Dersom de ikke er i konflikt med hverandre så går det stort sett bra. Hvis konflikter oppstår så legger CVS forholdene til rette for at man kan skal kunne løse dem manuelt..

CVS er åpen kildekode. Det bruker RCS for å versjonere de enkelte filene. Det håndterer egentlig bare tekstfiler. Bilnærfiler må håndteres spesielt og har begrenset støtte.

CVS oppbevarer de RCS-versjonerte filene i et repository. Den enkelte bruker henter ut filene til sitt eget område i det som kalles en sandbox. Der kan de redigeres fritt inntil man sjekker dem inn igjen og lager nye versjoner i repository.

Da jeg begynte i et prosjekt som brukte CVS så syntes jeg det var vanskelig å få god oversikt over den overordnede filosofien i CVS. Så da var det bare å kjøpe en bok. Boken er en klassisk O'Reilly -bok med små tegnede dyr på omslaget. (Jeg tror det er sånne små Snipp- og Snapp-ekorn.) Den er godt skrevet og går dypt i detaljer. For eksempel advares det mot noen kommandoer på grunn av kommentarer i kildekoden som kan type på at det planlegges endringer.

Kan kjøpes fra play.com.

Amazon sier:
CVS, the Concurrent Versions System, is the popular source-code management tool that frees developers from the chaos that too often ensues when multiple users work on the same file. An open source technology that is available on most computer platforms, including Windows® and Mac OS® X, CVS is widely used to manage program code, web site content, and to track changes made to system configuration files. Multiple users can check out files from a directory tree, make changes, and then commit those changes back into the directory. If two developers modify the same file, CVS enables both sets of changes to be merged together into one final file. Although CVS is a lifesaver in many development scenarios, it suffers from poor documentation. But with Essential CVS, developers can have it all: the order that CVS brings and the comprehensive documentation developers need. Essential CVS is a complete and easy-to-follow reference that helps programmers and system administrators apply order to the task of managing large quantities of documents. The book covers basic concepts and usage of CVS, and features a comprehensive reference for CVS commands--including a handy Command Reference Card for quick, on-the-job checks. The book also includes advanced information on all aspects of CVS that involve automation, logging, branching and merging, and "watches." Readers will find in-depth coverage of the following:
  • Installing CVS and building your first repository
  • Basic use of CVS, including importing projects, checking out projects, committing changes, and updating projects
  • Tagging, branching and merging
  • Working with multiple users
  • Clients, operating systems, and IDEs
  • Repository management and managing remote repositories
  • Project administration, including bug tracking systems, enforcing log messages, history and annotation, and more.
  • Troubleshooting
Version control is essential to maintaining order in any project, large or small. Any CVS user, from beginners to team leaders and system administrators, will find this practical guide to CVS indispensable in getting the most from this valuable tool.

Terningkast 5

Monday, September 18, 2006

FAGBOK: Ti på topp

Jeg startet denne bloggen for å ha et sted å skrive om bøker jeg har lest. Spesielt fagbøker. Problemet er jo at ganske raskt forsvinner eldre bokanmeldelser ned i arkivene. Og der er de ikke så lette å finne.

Så derfor kommer nå min "Ti på topp"-liste. De ti beste fagbøkene jeg har blogget om.

Listen er sortert på opprinnelig terningkast.

  1. "Domain-Driven Design - Tackling Complexity in the Heart of Software" av Eric Evans.
  2. "The Design of Everyday Things" av Donald A. Norman
  3. "On Intelligence" av Jeff Hawkins
  4. "Programming Ruby" av Dave Thomas
  5. "The Best Software Writing 1" samlet av Joel Spolsky
  6. "The Mythical Man-Month" av Frederick P. Brooks,jr.
  7. "The Psychology of Judgement and Decision Making" av Scott Plous
  8. "Fit for Developing Software - Framework for Integrated Tests" av Rick Mugridge og Ward Cunningham
  9. "Agile Software Development with Scrum" av Ken Schwaber og Mike Beedle
  10. "JAVA 1.5 Tiger. A Developer's Notebook" av Brett McLaughlin og David Flanagan

Sunday, September 17, 2006

FAGBOK: "Domain-Driven Design - Tackling Complexity in the Heart of Software" av Eric Evans

Jeg hørte Eric Evans sitt foredrag om domain-driven design på Javazone i fjor.
To ting var åpenbare:
  • Eric Evans er en tørr og ganske kjedelig foredragsholder
  • Hans tema er fantastisk! Endelig en som forstår viktigheten av modellering i en verden av alle mulige smidige(agile) metoder. For en mann som er vokst opp med datamodellering så var dette nok til nesten å få tårer i øynene!
Jeg kjøpte boken samme dag og oppdaget raskt at Eric Evans er en mye mere engasjerende forfatter enn foredragsholder.
Boken er lang og detaljert og beskriver en rekke strategier for modellering i prosjekter. Alt for mye til å beskrive i en kort omtale som dette.

Skal jeg trekke frem et kjernepunkt så må det være "The Ubiquitous Language". Altså at man i modelleringen finner et sett av kjernebegreper fra forretningsområdet som skal brukes i alle deler av prosjektet. Dette gjør at modellene blir gode verktøy i kommunikasjonen med brukere som kjenner forretningsområdet. I boken beskriver han flere diskusjoner med brukere hvor de forfiner the ubiquitous language og avslører misforståelser mellom analyse og det virkelige forretningsområdet.

Kan kjøpes på amazon.

Amazon sier:
The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process.

Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development.

Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:

  • Getting all team members to speak the same language
  • Connecting model and implementation more deeply
  • Sharpening key distinctions in a model
  • Managing the lifecycle of a domain object
  • Writing domain code that is safe to combine in elaborate ways
  • Making complex code obvious and predictable
  • Formulating a domain vision statement
  • Distilling the core of a complex domain
  • Digging out implicit concepts needed in the model
  • Applying analysis patterns
  • Relating design patterns to the model
  • Maintaining model integrity in a large system
  • Dealing with coexisting models on the same project
  • Organizing systems with large-scale structures
  • Recognizing and responding to modeling breakthroughs

With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.


Terningkast 6

Saturday, September 02, 2006

ROMAN: "JPod: A Novel" av Douglas Coupland

Dette er egentlig en my versjon av Microserfs. Denne gangen bruker forfatteren et spillfirma som bakteppe for en gruppe av dysfunksjonelle nerder. For eksempel John Doe som egentlig er døpt "crow well mountain juniper". Han har vokst opp med sin mor i et lesbisk kollektiv og har ikke hatt kontakt med omverdenen før han ble tolv. Etter dette har han byttet navn og har som hovedmål å være så normal og gjennomsnittlig som mulig.

Gruppen i JPod er nesten ferdig med å utvikle et dataspill om skateboarding. Etter at de får beskjed fra firmaets ledelse om at de må ha med en søt skilpaddefigur begynner problemene...

Forfatteren bringer etterhvert inn en skare av merkelige personer. For eksempel Kam. Kinesisk menneskesmugler med glødende interesse for selskapsdans. Og etterhvert dukker forfatteren selv opp som en særdeles lite sympatisk bifigur.

Boken er tykk, men mange sider er fyllt med stoff som ikke er beregnet på å leses. For eksempel 16 sider med primtall. Gruppen liker nemlig å gi hverandre små oppgaver. I listen av 8363 primtall er det nemlig ett ikke-primtall. Eller tyve sider med tilfeldige tall hvor en null er erstattet med en stor O.....

Som i Microserfs skriver Coupland veldig morsomt. Og som i Microserfs tar han litt vel mye av på slutten....

Kan kjøpes på play.com.

Amazon sier:
Already dubbed Microserfs 2.0 by some pundits--a winking allusion to Douglas Coupland's previous novel Microserfs, which similarly chronicled pop-culture-damaged twentysomething misfits flailing, foundering, and occasionally succeeding in the high-tech sector--JPod is, like all of Coupland's novels, a byproduct of its era and yet strangely detached from it. Only this time with a bold and very crafty narrative device: Douglas Coupland, novelist, is a character in Douglas Coupland's novel. Which, when you think about it, makes sense since the type of people Coupland depicts are precisely the type of people who consume Coupland novels. As the once-great comedian Dennis Miller might holler, "Stop him before he sub-references again!" Readers familiar with Coupland's oeuvre know what to expect with the characterizations here. They also know that Coupland on a roll is both savagely observant and laugh-out-loud funny: "Bree was showing someone photos of her recent holiday visiting Korean animation sweathshops. She was bummed because she couldn't get into North Korea: too much legal juju. [She said] 'I just wanted to know what it's like to be in a society with no technology except for three dial telephones and a TV camera they won from Fidel Castro in a game of rock paper scissors.'" Much of the book is like that, built on granular and meandering exchanges between characters about . . . stuff. While JPod's flow is hobbled by some preposterous twists and character traits and by random words, phrases, and numbers splattered gratuitously across successive pages in oversized typeface, it's hard to imagine Coupland fans walking away disappointed. --Kim Hughes

Termingkast 4

FAGBOK: "Wabi-Sabi: for Artists, Designers, Poets & Philosophers" av Leonard Koren

Wabi-sabi is a beauty of things imperfect,
impermanent, and incomplete.


It is a beaty of things modest and humble.


It is a beauty of things unconventional.

Vi snakker altså om et japansk begrep om estetikk. Egentlig beskriver det en reaksjon mot kinesisk, overdådig utsmykning. Særlig i forbindelse med te-seremonien.

Wabi-sabi knyttes også til Zen-budisme og kan kalles "Zen of things". Men siden et av hovedprinsippene i zen er at ting ikke kan forklares, så er det umulig å forklare wabi-sabi. Dersom man klarer å forklare wabi-sabi fullstendig så ødelegger man det.

Forfatteren beskriver wabi-sabi i wabi-sabis ånd. Vi forstår litt av det, men det kan altså ikke beskrives.

Så jeg avslutter med dette diktet som beskriver følelsen av wabi-sabi:

All around, no flowers in bloom

Nor maple leaves in glare,

A solitary fisherman's hut alone

On the twilight shore

Of this autumn eve.

Kan kjøpes på amazon.

Terningkast 5