Aki ilyet vesz azt már annyira nem érdekli a világ

Azt hiszem a TC egyik legnagyobb megfejtése az volt, hogy már indulásakor is sokkal inkább foglalkozott az autós ember valódi igényeivel és nézőpontjával, mint akármelyik másik “autós” “műsor”. Talán az első nem újságírásnak látszó promó volt a témában, népszerű is lett. De most nem ez a lényeg.

Számomra ez az autó annak a szimbóluma, hogy mire képes az “ember” (autóipar), ha egyébként nem kötik aféle limitek, hogy a terméket egy jobb módú középosztálybelinek is meg kéne tudni venni. Nem értelmetlen veretés, minden részlete kimunkált és indokolt. Már-már katarktikus.

Enterprise Design Thinking

Az IBM korlátozott ideig ingyen hozzáférhetővé tette “Enterprise Design Thinking” kurzusát.

Even though it includes the word “design,” design thinking is a mindset that anyone can apply. It simply means that you’re starting to think like a designer—about how you can improve the current experience of the people you serve: your users.

Itt.

Minecraft + python3

A “játékipar” számomra igen kevés csábító opciót nyújt, azonban szerencsére vannak kivételek, mint például a Minecraft. Ha megúntuk a favágást, kőbányászást, kézzel építkezést és a barlangban rettegést (survival mód) – szóval valami többre vágyunk, akkor ott a kreatív mód – amit azonban a programozói vénával megáldott “építész” igen hamar vékonykának fog találni.

Sokféle építkezést segítő mod(?) van, azonban gyors átfutás egyik sem tűnt úgy, amely komolyabb programozást lehetővé tenne, inkább a kézi építést szeretnék meggyorsítani. Találtam azonban egy igen szimpatikus lehetőséget: némi hályogkovácsolás – sajnos nincs még natív API támogatás – árán pythonban is programozhatunk!

Kedvcsinálónak nézzünk egy kódrészletet:

def draw_donut(mcx,mcy,mcz,R,r,mcblock):
  for x in range(-R-r,R+r):
     for y in range(-R-r,R+r):
        xy_dist = sqrt(x**2 + y**2)
        if (xy_dist > 0):
           ringx = x / xy_dist * R # nearest point on major ring
           ringy = y / xy_dist * R
           ring_dist_sq = (x-ringx)**2 + (y-ringy)**2
           for z in range(-R-r,R+r):
               if (ring_dist_sq + z**2 <= r**2):
                  mc.setBlock(mcx+x, mcy+z, mcz+y, mcblock)

Látszik, hogy egészen jól fogunk szórakozni. Mindehhez a remek leírást itt találjuk. A poszt írása idején a legfrissebb RaspberryJamMod az 1.12.2 verziójú Minecraftot támogatja, de a Minecraft az 1.14-nél jár (a Raspberry kifejezés ne tévesszen meg senkit, ez csak valamiféle workaround ahhoz, hogy elérjük az API-t, de nem lesz szükségünk extra hardverre) . Szerencsére a Launcherben ezt könnyen hozzáadhatjuk az installációk közé, viszont Forge-ból is ezt kell használnunk (abból van ugyan frissebb, de nyilván nem sokra megyünk vele).

Tehát lényegében a fent hivatkozott leírás alapján az egyszerűsített, aktualizált lépések:

  1. Installáljuk a Minecraftot, majd a Launcherben adjuk hozzá az 1.12.2 verziót
  2. Telepítsük fel a Python3-at.
  3. Telepítsük a Forge 12.2.2 verzióját.
  4. Telepítsük a RaspberryJamMod legfrissebb verzióját.
  5. Amikor indítjuk a játékot, a Launcherben a Forge 1.12.2 profilt válasszuk.
  6. Csináljunk egy 'Superflat' világot.
  7. Nyomjuk meg a 't'-t, hogy kapjunk egy konzolt, majd /py donut.
  8. Enjoy!

Valószínűleg léteznek ettől sokkal szebb/jobb építgető módszerek, de az, hogy ezzel Pythonban lehet programozni, nagyon nagy előny. Néhány kép még kedvcsinálónak:

További szkripteket az AppData\Roaming.minecraft\mcpipy mappa alatt találunk, és ide helyezhetjük el a sajátjainkat is.

A fenti link kb 1/3-ától egy jó áttekintést is kaphatunk a fejlesztés mikéntjéről, néhány buktatóra viszont felhívnám a figyelmet:

  • A setBlock-nak van egy setBlocks 'párja', mielőtt nekiállunk mindent ész nélkül for ciklussal megoldani, ez egyszerűstheti a kódunkat
  • A block.* property-k Block típusúsak. Ha a blokk id-jára vagyunk kíváncsiak, akkor block.WOOD_PLANKS.id formában kaphatjuk meg. Ennek ott van jelentősége, hogy a setBlock(s) máshogy működik, ha block id-t, vagy ha teljes blokkot kap. Például a lépcső írányát és egyéb sub-type-okat a Block objektum .data tulajdonságában kell beállítanunk. Ha id-ként adjuk át, akkor ezt további paraméterként adhatjuk meg a setBlock(s)-nak, ha kész Block objektumot adunk, akkor viszont nekünk kell beállítani, még az átadás előtt.

Wordstuck

wordstuck tumblr:

Wordstuck is a collection of different interesting words, mostly from other languages that do not have direct English translation. Some just sound lovely, or weird, while others are words we’ve felt or experienced, something we came to pass by everyday that we never been able to name, or something we never thought there exist words for them.

wordstuck_dauwtrappen_500

wordstuck_pluviophile_500

Csak az adó, meg az arpeggio biztos

Chilly Gonzales arról, hogy az arpeggio mennyire ősi és alapvető: Bachtól, Beethovenen át a Daft Punkig mindenki sikerrel használta, és utánuk is használni fogja. Mert a fülünk arpeggio-t akar. (Az arpeggio olyan játékmód, melyben az előadó az akkordot hangjaira bontva szólaltatja meg.)
https://www.youtube.com/watch?v=qY9LUBAsjVU