csak egy buta arnyek
Vótmá (eddigi posztok):
We can check your plugins and stuff
861 Hmm..
2010-01-27 15:34:22
nincs kategoria
Ezt nézem, és épp a branch prediction van terítéken. Vajon lehetne-e olyat, hogy
- kinevezni többnyire-igen összehasonlító utasításokat, amik "ha, i > 0, akkor.." kérdésekre a fordító, a futtató környezet, a CPU (?) azt érzékeli, hogy többnyire-igen, akkor lecseréli a sima "ha" utasítást egy olyanra, amelyik jelez a CPU-nak, hogy többnyire az igen ágat érdemes elkezdenie elő-végrehajtania.
- branch prediction helper flageket hagyni/pakolni az futó program utasítás memóriaszegmensébe.

Az egész előadás nagyon érdekes, jó példákkal. Bemutatja, hogy miért is kell nagyon észnél lenni, ha több szálú programot írunk, miért is nem olyan kicsi az esélye annak, hogy egyszerre írunk és olvasunk egy adott memória területet.

Valahol van egy jó talk a probléma megoldásáról, a lock-olásról is, majd előkerítem.
2010-01-26 10:58:45
nincs kategoria
Az a jó, hogy a Ruby egy ilyen kis buzibár szleng nyelve. A RubyGems egy szeméttelep, állandóan tenyészik. Lassú és gagyi. A Rails meg buta.

Első körben jó ötletnek tűnik, hogy lehet ubuntu repositoryn keresztül ruby gemeket telepíteni. De a tutorialok, manualok, guide-ek tömkelegében előbb utóbb kiad az egyszerű programozó egy "gem install rails" parancsot, és kész a baj. Főleg, hogy kérdés nélkül installálja a user home directoryjába. Viszont, ha sudo-val követjük el ezt a sort, akkor a /var/lib/gems/-be pakol. (Ezt se volt egyszerű kideríteni.)

Utó-mellékszál előre betűzve, az ubuntu csomag karbantartókról - akik szintén cigányok - basznak rendesen karbantartani. A rails csomag elavult. Nem kicsit. Akkor vegyék szépen ki a repóbol. Jah, hogy nem is figyel rá senki? Áh, sebaj. Másik WTF, hogy nem használják a RubyGem könyvtárakat; teljesen más helyre installálgatnak dolgokat.

A Ruby on Rails fejlesztői meg persze cigányok. Nah. Mert az actionpack-2.3.5-ben van egy fájl, ami specifikálja, hogy rack ~> 1.0.0 gemre van szüksége az actionpacknak. Ami azért jó, mert a thin szerver szépen felvarázsolja a legújabb rack-et, ami jelenleg az 1.1.0.

Amikor a thin indul, betölti a racket, majd betöltené a rails környezetet. Rails betöltené a rack-et. Bamm. Azért, mert a Rails csak 1.0.x verziókat fogad el. (Ezt jelenti a ~>) A thin viszont alapból a legújabbat kapta. Viszont erről nem kapok értelmes hibaüzenetet, csak annyit, hogy "Missing Rails gem", blablabla.

És Ruby kódot olvasni, olyan, mint mikor pornófilmben valamiért épp belóg a centerbe egy pár here. Instant nyomnád az alt-f4-et, de inkább kicsit tovább nézed, hátha megint pina jön. Feltúrtam egy csomó .gemspec fájlt (/var/lib/gems/1.8/specifications) ezekben átírtam a függőségeket (dependency, >= 1.1.0), az gems/1.8/gems/actionpack-2.3.5/Rakefile-t, majd végül a /var/lib/gems/1.8/gems/actionpack-2.3.5/lib/action_controller.rb -ben a következő változtatásokat kellett eszközölni:
- gem 'rack', '~> 1.0.0'
+ gem 'rack', '>= 1.1.0'


És máris ment a thin. Hát. És én még amiatt aggódtam, hogy a mySQL 5.1 nem fog neki tetszeni, amit a Lucid Lynx (development) feltett.