2012. november 30.

Könyvismertető: Lean szemlélet

Nehéz nem találkozni a lean szóval manapság. Van lean szoftverfejlesztés, lean startup és még a ott van a personal kanban és egyéb csodamódszerek garmadája. Vannak akik már-már vallásosan hisznek ezekben a módszerekben, de a többség számára inkább érdekes és értékes módszerek tárháza ez, amiből sokat lehet tanulni. Womack és Jones művét eddig minden általam olvasott lean szoftverfejlesztéssel foglalkozó könyv, cikk, poszt stb. nagyon ajánlotta, ezért nagyon nagy elvárásokkal vetettem magam olvasásába. Elvárásaimmal ellentétben ez a könyv nem hozható kapcsolatba az IT-vel, de ettől még nagyon izgalmas és lebilincselő olvasmány.


Ha valaki időt szeretne spórolni magának és szeretné megtudni hogyan alakult ki a lean mozgalom és miről is szól eredeti alkalmazási területén (autógyártás), annak bőven elegendő a blogon már bemutatott Toyota-módszert elolvasni! Mivel soha az életben nem kerültem az ipari termelés közelébe, ezért számomra a Lean szemlélet amolyan ismeretterjesztő könyvvé vált olvasása során. Ennek megfelelően nagyon könnyen olvasható, a fordítás sokkal jobbra sikeredett mint a Toyota-módszer (habár a japán szavak angol átírása nagyon idegesített itt is). Külön bónusz a kötet végén található kis fogalomtár, mivel a szövegben nem nagyon foglalkoznak egy-egy fogalom elmagyarázásával.

Maga a mű három részre tagolódik. Az első részben a lean filozófiájával ismerkedhetünk meg. Ez dióhéjban arról szól hogy minden elörejelzés alapvetően hibás, a kereslet változik hol így, hol úgy, jobb ha tudunk alkalmazkodni hozzá. A lean tehát arról szól, hogy ne halmozzunk fel felesleges készleteket (ne push rendszerben termeljünk), hanem az igények vezéreljék a termelést (pull rendszer). A második részben esettanulmányokat olvashatunk a lean rendszer bevezetéséről. Itt aztán van minden, a csomagológépeket gyártó kisüzemtől a Porsche-én át fűtéstechnikai cégekig! Mindezek mellett ügyelnek arra, hogy a "fejlett világ" is le legyen fedve, amerikai, német és japán cégekkel ismerkedhetünk meg, szerintem kicsit jobban is mint kellene. Habár nagyon érdekesek az esettanulmányok, bennem mindig ott motoszkált két kérdés 1) miért nem olvashatok katasztrófa történeteket 2) miért nem olvashatok arról hogy valahol megvizsgálták, de elvetették a lean átállás lehetőségét? Az utolsó rész tkp. ismétlés, az esettanulmányok után végigmennek a szerzők az alapelveken és "nesze semmi, fogd meg jól" tanácsokat adnak a lean átálláson gondolkodóknak.

Habár a könyvben nincs olyan "take home message" amit a szoftverfejlesztésben, vagy a hagyományos termelőágazatokon kívül használni lehetne, megéri elolvasni. Az első rész nagyon jó szemléletformálásra, ha valakinek nagyon nincs ideje, legalább azt olvassa el. A többi rész számomra olyan volt, mint az ismeretterjesztő csatornákon látható "így készül X termék" filmek, amik engem le tudnak kötni, de erősen az olvasó ízlésének függvénye, hogy mennyire fogja élvezni. A lean alapművek elolvasása után annyit azonban bizton kijelenthetek, hogy az elterjedt lean szoftverfejlesztési könyvek bőségesen elegendő információt tartalmaznak ahhoz, hogy képben legyenek olvasóik. Csupán az intellektuális kalandozás szól mind a Lean szemlélet, mind pedig a Toyota-módszer elolvasása mellett. Ha idő szűkében van a kedves olvasó, biztosíthatom arról hogy nyugodtan kihagyhatja ezeket a könyveket.

2012. november 20.

Hogy állunk a funkcionális programozással?

Arra kérem kedves olvasóimat, hogy segítsenek nekem feltérképezni hogyan állnak a magyarországi fejlesztők és cégek a funkcionális programozáshoz. Ezért egy rövid kérdőív kitöltésére kérek mindenkit, attól függően hogy melyik csoportba illi:
Az online kérőívek kitöltéséhez maximum öt perc szükséges, ha rászánod az időt, akkor sokat segítettél nekem. Cserébe a blogon és egyéb fórumokon is megosztom majd tapasztalataimat!

Hogy teljes legyen a kép, szükséges lenne ún. structured interview (strukturált, vagy irányított kérdezésen alapuló) felmérést is végeznem. Ezért keresek olyan hazai cégeket akiknél bevezetés alatt áll, vagy már bevezetésre került egy funkcionális programozási nyelv és megengedik hogy pár munkatársukkal egy kb. 30 perces beszélgetést folytassak. Ha tudsz ilyen cégről, vagy te magad is ilyen helyen dolgozol, kérlek lépj velem kapcsolatba a zoltan.varju(kukac)gmail.com email címen!

2012. november 19.

Scheme - királyi út a funkcionális programozás felé

Szerencsére egyre többen érdeklődnek a funkcionális nyelvek iránt. Sokkal sajnálatosabb hogy sokan eltántorodnak a kezdeti lelkesedés után. Sok nyelvész és logikus számára életük első programozási nyelve a Haskell manapság, nekik nem okoz gondot a régi szokások levetkőzése, ellenben a komolyabb feladatok (vagy az egész egyszerű I/O) estén sokan elakadnak. Szoftverfejlesztők általában az Erlang vagy a Clojure mellett teszik le a garast, de gyakran szembesülnek azzal hogy ezen közösségekben divat régi Lisp és Prolog könyveket ajánlgatni. Sokkal egyszerűbb ha nem rögtön a divatos nyelvekkel ismerkedünk meg, hanem a Scheme nyelvvel töltünk el egy kis időt. A nyelvek változnak, a mögöttes elvek azonban nem, érdemesebb először ezeket megtanulni.

1. Az alapok
  • Simply Scheme: Introducing Computer Science - A legjobb könyv amivel elkezdheti valaki a programozás és/vagy a funkcionális programozás tanulását. Remekül szemlélteti az alapfogalmakat és sok-sok érdekes feladattal foglalkoztatja az olvasót. Nem csak a programozás terén kezdőknek ajánlom, hanem mindenkinek aki nem rendelkezik több éves tapasztalattal.
  • The Little Schemer -Zseniális könyv, amely példákon keresztül mutatja be a funkcionális programozás főbb technikáit. Továbbá megtudhatja belőle az olvasó hogy az Y-combinator nem csak egy startup program :D Nagyon kezdőbarát, érdemes többször elolvasni! Figyelem, a szerzők már az előszóban leszögezik, hogy attól senki sem válik programozóvá hogy elolvassa a könyvet!
  • The Seasoned Schemer -A fenti könyv folytatása, szépen tovább építi az alapokat.
  • How to Design Programs - ingyenesen elérhető könyv, mely nagyon gyakorlat orientált. Célja a programfejlesztés logikájának bemutatása nem műszaki/tudományos érdeklődésű olvasók számára. A kötethez készül speciális Scheme implementáció nőtte ki magát a Racket nyelvvé, mely annak ellenére hogy nem szabvány Scheme, a legelterjedtebb ma a Schemerek körében.
2. A klasszikusok
  • Structure and Interpretation of Computer Programs - A "köznyelvben" csak SICP. Ez a számítástudomány leghíresebb bevezető könyve. Annak ellenére hogy bevezető, nem ajánlható kezdőknek! Minden tisztességes funkcionális programozással foglalkozó embernek egyszer el kell olvasnia, aki ezt nem teszi meg, legalább ismerje a címét és tegyen úgy mintha olvasta volna. Ingyenes, ezért nem lehet azt mondani hogy nem volt rá pénzed :D Érdemes az OCW kapcsolódó kurzusával - vagy legalább az előadás videokkal - kiegészíteni a feldolgozását. 
  • The Reasoned Schemer - a Little Schemer stílusában íródott kicsi könyvecske, mely a funkcionális-logikai programozásba vezet be minket
3. Hard core computer science
  • Essentials of Programming Languages - a programozási nyelvek (és paradigmák) alapjaiba vezet be ez a remek könyv, csak a SICP ismeretét feltételezi ehhez csupán.
  • Types and Programming Languages - Habár nem kell a típusokkal bajlódni a Scheme esetében, nem árt tisztában lenni velük, ha Haskell vagy Scala felé kacsingatunk, akkor nincs más választásunk!
4. Bónusz

2012. november 16.

Évadzáró meetup november 21-én

November 21-én zárjuk első évadunkat, 18:00-kor kezdünk szokott helyünkön, a Colabsben. Kérjük az érdeklődőket hogy regisztrációval segítsék munkánkat (a regisztráció és rendezvény is ingyenes). 2013-ban folyt.köv., a tavaszi szezonban két angol és két magyar meetup lesz, várjuk előadók jelentkezését.

A program

2012. november 14.

Magyar Nyelv Napja 2012

 A magyar nyelv digitális túlélési esélyéről, a nyelvi "akadálymentesítéshez" szükséges technológiai támogatásról és a hazai nyelvtechnológia nemzetközi pozíciójáról cserélnek eszmét egyebek közt annak a kerekasztal-beszélgetésnek a résztvevői, amelyet a Magyar Nyelv Napja alkalmával szervez csütörtökön (november 15-én, 16 órától) az MTA Nyelvtudományi Intézete.
 
 
A rendezvény ingyenes, regisztrálni itt lehet. Aki otthon (vagy munka közben :D) a gépe előtt szeretné megtekinteni az eszmecserét, az itt megteheti ezt.

Könyvismertető: A Toyota-módszer

A szoftverfejlesztésben már régóta divatos a lean módszertan és az utóbbi két évben robbant be a köztudatba a lean startup fogalma is. De hogy kerül az autógyártásban kifejlesztett és úgy általában a termelőüzemekben alkalmazott metodológia az IT-be


A könyv, ahogy a címe is mutatja, a Toyotára koncentrál, annak beszállítóiról és az észak-amerikai autógyártásról szólnak a példái, ami egy idő után sok tud lenni olyannak aki életében nem látott hagyományos termelő vállalatot. Szerencsére sok-sok anekdota színesíti a fejezeteket és az autógyártás történetéről is sokat megtudhatunk. A legérdekesebb lecke számomra az volt hogy a lean, a Toyota-módszer (Toyota way) és a Toyota termelési rendszer (Toyota Production System, TPS) nem azonosak egymással. A lean mint folyamatszervezési eszköz a jéghegy csúcsa, a TPS pedig olyan átfogó elvek gyűjteménye mely megpróbálja kanonizálni a Toyota-nál kialakult szellemiséget. A lean szoftverfejlesztés és a lean startup sokkal inkább a Toyota-módszerből merít, mint a lean alapelvekből! Az ügyfélközpontúság, az emberi erőforrások középpontba helyezése és a folyamatos visszacsatolás és tanulás feltételeinek kialakítása a Toyota-módszer központi elemei, amik az Agile Manifesto-ban és a The Four Steps to the Epiphany-ban is visszaköszönnek. A könyv erőssége abban áll, hogy nagyon szemléletes mutatja be miképp alakult ki a Toyota saját módszere és hogyan adaptálta az egyes országok kultúrájához azt miközben világcéggé nőtt. Liker nem ad kész recepteket, hanem szemléletet próbál formál az esettanulmányokon keresztül. Talán ezért is kerülhetett fel a könyv a legtöbb szoftverfejlesztéssel foglalkozó olvasmánylistára, hiszen a személet - az termelési elvekkel ellentétben - alkalmazható a termelőágazatokon kívül is.

A fordítást lektorálták állítólag, de ez nem látszik a szövegen. A japán kifejezések angol átírásban szerepelnek, ami engem mindíg zavar. A fordító részéről ez akár tudatos döntés is lehetett, hiszen ezek a kifejezések részei a nemzetközi "lean szaknyelvnek" és talán elfogadható, ha a bevett angol átiratban maradnak, könnyítve evvel az idegennyelvű művek olvasását. Viszont ehhez nem ártott volna egy lábjegyzetben jelezni ezt. A lektor azonban nem csak e felett siklott át, így eshetett meg hogy a social psychology "szociális pszichológia" lett a magyar változatban és a példákat még lehetne sorolni. Szögezzük le, a kötetet nem lektorálták! Persze a mai világban növeli egy könyv ázsióját ha beleírjuk, volt lektora. Viszont fordítást ma az ember azért vesz, mert időt szeretne spórolni. Minden területnek megvan a maga szaknyelve és stílusa amit meg kell szokni, ezért elsőre sokan lasabban olvasunk szakterületünkön kívül könyveket idegen nyelven. A Toyota-módszer esetében kicsit az az érzésem, hogy jobban jártam volna, ha Amazonon szerzem be, hiszen nem kell futárt várnom és bosszankodnom a ferdítéseken, nem mellesleg spórolok is majdnem egy ezrest!

2012. november 8.

Mi fán terem a számítógépes nyelvész?

Hónapok óta számítógépes nyelvész munkatársat keresünk és rájöttünk nem is olyan egyszerű megtalálni a megfelelő embert. Már maga a megnevezés is feltételezi hogy valaki két területen is otthonosan mozog, de mi árnyaltuk a jelölttel szembeni elvárásainkat. Nem fejlesztőt keresünk, hanem kutatót, aki képes aktívan részt venni munkánkban. Mi alapvetően két területet ötvözünk; a gépi tanulást és a szemantikus webet. Problémáink jellemzően olyan kérdések, melyek közgazdasági és pénzügyi elemzők fejében fogalmazódnak meg.

Technikai oldalról tehát nem klasszikus programozót keresünk, hanem inkább a manapság divatos megnevezéssel élve egy data scientist lenne az ideális jelölt. Drew Conway Venn diagramja nagyon szépen mutatja milyen háttérrel rendelkeznek az adattudósok.


Ugyanakkor kifejezetten nyelvi, nyelvészeti problémák megoldására kell fókuszálni csapatunkban. Így kívánatosnak tartjuk, hogy a nyelvészet ne legyen idegen a jelentkezőtől. Habár sokan úgy gondolják hogy "majd úgyis felszedi azt a tudást menet közben a jelölt", nem árt észben tartani hogy mennyire szerteágazó a nyelvtudomány. Ez az ábra nagyon jól szemlélteti ezt.



Feladataink jelentős részében alapvetően társadalomtudományi háttérrel rendelkező elemzők számára szállítunk adatokat, ill. megpróbáljuk az elemzéseket automatizálni. Az ideális jelentkező egy olyan ember lenne aki a data science és a nyelvészet halmazok metszetében helyezhető el. Lássuk be, ilyen emberből nem sok szaladgál a Földön. Döntenünk kellett melyik a fontosabb. Először mi is a technikai tudást helyeztük előtérbe, sajnos azonban hamar kiderült hogy 1) nehezen megy a kommunikáció az elemzők és az ilyen kutató kollégák között 2) nehezen találnak megoldási javaslatokat a felmerülő problémákra, mert idegenek számukra a felvetett kérdések. Alaposan át kellett gondolnunk prioritásainkat ezek fényében és egy nyelvész kolléga mellett tettük le a garast, de ez egy nehéz kompromisszum volt.

Remélem hamarosan hazánkban is a nyelvészeti tananyag része lesz az alapos statisztikai képzés, nem beszélve a nyelvi adatok feldolgozásának alapjairól. Ezek egyaránt fontosak a tudományos pályára készülőknek, de talán még fontosabb azok számára akik a munkaerőpiacon méretnék meg magukat. Véssük az eszünkbe, nem csak a számítógépes nyelvésznek kell programozni, ma már a tudományos munka része ez a képesség, olyan szinten mint az angol nyelv ismerete. Ha végre reagálna a hazai képzés a nemzetközi trendekre és arra a tényre, hogy a hallgatók csak piciny százaléka lesz kutató, sokkal könnyebb lett volna a dolgunk. Sőt, sokkal könnyebb lenne a hallgatók dolga is, hiszen tisztességes munkát találhatnának...

2012. november 7.

Könyvismertető: Gödel's Proof

Mostanában lette figyelmes arra hogy a Gödel tétel lassan annyira beszivárgott a hétköznapi beszélgetésekbe mint a pszichoanalitikus zsargon. Ugyanakkor azt is észrevettem, hogy rosszabb esetben Mérő László könyveiből, jobb esetben Smullyan fejtörőiből ismerős a fogalom sokak számára. Nem szeretném szidni a jeles szerzőket, de lássuk be a lovagok és lőkötők szigete kapcsán érzékeljük csupán miről is lehet szó, Mérő pedig inkább a jeles tétel következményeivel foglalkozik. Azok, akik szeretnének elmélyülni a technikai részletekbe, Smullyan Gödel nemteljességi tételei könyvét Csaba Ferenc kiváló fordításában olvashatják, de sajnos nincs a magyar piacon olyan könyv ami a formalizmust mellőzve, de mégis alaposan mutatja be a 20. század legjelentősebb logikai tételét. Az angolul jól olvasóknak nyújt alapos összefoglalót Nagel és Newman könyve, amit Hofstadter előszava (és gondos szerkesztői keze) egészít ki.
A logika könyvek csodás tulajdonsága hogy általában rövidek, a most tárgyalt cím is csupán 129 oldal, de mégsem lehet átrágni őket egy délután alatt. Nagel és Newman egy kicsit meg is vicceli az olvasót, mivel az első fejezetek egész könnyen olvashatóak. De ne feledjük, ezek a kötelező körök, ahhoz hogy kontextusba helyezzék a problémát. Így elindulunk az aritmetika megalapozásának programjától, eljutunk a modern logika születéséhez és elidőzünk a híres Russel paradoxonon és megismerjük a méltatlanul mellőzött Richard paradoxont is. Kapunk egy gyors bevezetést a logikába - talán ez nem annyira világos, annak aki még az életben nem tanult a témáról - és arról hogy mi fán terem a bizonyítás (a függelékben ennek megértéséhez egy geometriai példán keresztül további segítséget nyújtanak a szerzők).

A felvezetés után megismerkedünk a konzisztencia és a teljesség fogalmaival is, majd jön a leghosszabb fejezet, Gödel híres tanulmányának rekonstrukciója. Fontos megjegyezni, hogy az eredeti cikktől eltérően nem 7 primitív operátorra, hanem 12-re alapozzák a logika aritmetizálását a szerzők. Ha csak passzívan olvassa valaki a könyvet, akkor ennek nincs különösebb jelentőssége, de ha vesszük magunknak a bátorságot és mi magunk generálunk pár logikai kifejezésnek Gödel számot (legyen nálunk számológép, mert rendesen kell hatványozni közben) ez nagyon jól jön. Nem teljes bizonyítást mutat be a fejezet, a hangsúly az eredeti eredmény lényegi gondolatainak bemutatása. A lábjegyzetek kavalkádja zavaró lehet, javaslom hogy kétszer (vagy többször) is dolgozza fel valaki a fejezetet és elsőre ne is olvassa el a megjegyzéseket mert habár zseniálisak, megszakítják az olvasás ritmusát.

Remélem a kötet egyszer elérhető lesz magyarul is, mivel ez egy tényleg olvasható, ugyanakkor kompromisszumoktól mentes ismeretterjesztő mű.