<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Art on Gyuri Horák</title>
    <link>https://horak.hu/hu/tags/art/</link>
    <description>Recent content in Art on Gyuri Horák</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>hu</language>
    <managingEditor>dyuri@horak.hu (Gyuri Horák)</managingEditor>
    <webMaster>dyuri@horak.hu (Gyuri Horák)</webMaster>
    <copyright>© Gyuri Horák</copyright>
    <lastBuildDate>Wed, 15 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://horak.hu/hu/tags/art/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Code-golfing</title>
      <link>https://horak.hu/hu/posts/code-golfing/</link>
      <pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate>
      <author>dyuri@horak.hu (Gyuri Horák)</author>
      <guid>https://horak.hu/hu/posts/code-golfing/</guid>
      <description>&lt;p&gt;Szeretek problémákat megoldani, mindig is szerettem, ebből adódott az is, hogy nagyon sokáig - amíg nem kellett managerekkel veszekedni és haszontalan meetingekre járni - a munkámmat is élveztem. Mivel most éppen két munkahely között vagyok, és főként a kertben tevékenykedek (építettem egy kerti tavat, aztán nekiálltam a kocsibeállónak), illetve mivel az utóbbi időben a munka során sem túl sok kreatív problémát kellett megoldanom, ezért kitaláltam, hogy csinálok egy kis programozási kihívást magamnak.&lt;/p&gt;
&lt;p&gt;A cél egy kis, lehetőleg 1KB alatti &amp;ldquo;weboldal&amp;rdquo;, ami egy &lt;em&gt;quine&lt;/em&gt;, azaz a saját forráskódját írja ki, kb. elférjen egy desktop böngészőablakban, és lehetőleg &lt;em&gt;csináljon is valamit&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Egyszer már csináltam egy &lt;a href=&#34;https://horak.hu/posts/bottle/&#34;&gt;hasonlót&lt;/a&gt;, amikor az előző munkahelyemet &amp;ldquo;alapítottuk&amp;rdquo;, úgyhogy témaként a &lt;a href=&#34;https://bitnet.hu&#34;&gt;következő munkahelyem&lt;/a&gt; logóját választottam.&lt;/p&gt;</description>
      <content>&lt;p&gt;Szeretek problémákat megoldani, mindig is szerettem, ebből adódott az is, hogy nagyon sokáig - amíg nem kellett managerekkel veszekedni és haszontalan meetingekre járni - a munkámmat is élveztem. Mivel most éppen két munkahely között vagyok, és főként a kertben tevékenykedek (építettem egy kerti tavat, aztán nekiálltam a kocsibeállónak), illetve mivel az utóbbi időben a munka során sem túl sok kreatív problémát kellett megoldanom, ezért kitaláltam, hogy csinálok egy kis programozási kihívást magamnak.&lt;/p&gt;
&lt;p&gt;A cél egy kis, lehetőleg 1KB alatti &amp;ldquo;weboldal&amp;rdquo;, ami egy &lt;em&gt;quine&lt;/em&gt;, azaz a saját forráskódját írja ki, kb. elférjen egy desktop böngészőablakban, és lehetőleg &lt;em&gt;csináljon is valamit&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Egyszer már csináltam egy &lt;a href=&#34;https://horak.hu/posts/bottle/&#34;&gt;hasonlót&lt;/a&gt;, amikor az előző munkahelyemet &amp;ldquo;alapítottuk&amp;rdquo;, úgyhogy témaként a &lt;a href=&#34;https://bitnet.hu&#34;&gt;következő munkahelyem&lt;/a&gt; logóját választottam.&lt;/p&gt;
&lt;p&gt;Kb. 4 óra játszadozás után sikerült is összehozni a dolgot, az eredmény (kis módosítással, de erről majd később) &lt;a href=&#34;https://horak.hu/bnlogo/&#34;&gt;itt tekinthető meg&lt;/a&gt;, a forráskódja, illetve pár fázis a &lt;em&gt;játszadozás&lt;/em&gt; során &lt;a href=&#34;https://github.com/dyuri/bnlogo&#34;&gt;itt (github)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;a-folyamat&#34;&gt;A folyamat&lt;/h2&gt;
&lt;p&gt;Páran kérdezték, hogy hogyan állok neki egy ilyennek, úgyhogy pár köztes verziót a &lt;code&gt;progress&lt;/code&gt; könyvtárban hagytam, illetve írok róla pár szót.&lt;/p&gt;
&lt;p&gt;Első körben a &lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/progress/bnlogo.txt&#34;&gt;logót&lt;/a&gt; &lt;em&gt;rajzoltam meg&lt;/em&gt;, majd elhelyeztem egy HTML oldalban egy &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; tag-ben - ennek a tartalma lesz a kód, amit egy &lt;code&gt;onload=eval(...)&lt;/code&gt; segítségével futtatok.&lt;/p&gt;
&lt;p&gt;Ez elsőre kicsinek tűnt, nagyítottam rajta, majd hozzáadtam a &lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/progress/bnlogo_code_separated.html&#34;&gt;&lt;em&gt;minimális&lt;/em&gt; kódot&lt;/a&gt;, ami kicsit &lt;em&gt;kiszínezi&lt;/em&gt;, illetve futtat egy loop-ot, amibe majd az animációt tudom tenni. Ezt egyelőre csak simán a logó alá tettem, a &lt;strong&gt;golfozás&lt;/strong&gt; (a kód minimalizálása/beillesztése) majd később jön.&lt;/p&gt;
&lt;p&gt;A javascript elég megengedő, rengeteg trükköt lehet alkalmazni, hogy egy-egy függvényhívás beférjen a résekbe, vagy hogy a &amp;ldquo;felesleges&amp;rdquo; egy-két karakternyi rést valamivel feltöltsük - ezekbe nem is mennék bele.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/progress/bnlogo_phase1.html&#34;&gt;Első lépésben&lt;/a&gt; a &amp;ldquo;statikus&amp;rdquo; részeket golfoztam a helyükre, és mikor körvonalazódott, hogy mennyi helyem marad, &lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/progress/bnlogo_phase2.html&#34;&gt;elkezdtem hozzáadni&lt;/a&gt; az animációt - ami ebben az esetben a &amp;ldquo;teljes blokk&amp;rdquo; karaktereket cseréli valami &amp;ldquo;töredezett&amp;rdquo; változatra.&lt;/p&gt;
&lt;p&gt;A maradékot is a helyére pofozva viszont szomorúan &lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/progress/bnlogo_phase3.html&#34;&gt;láttam&lt;/a&gt;, hogy túl sok hely maradt szabadon. &lt;em&gt;Szerencsére&lt;/em&gt; nem is annyira tetszett, hogy minden blokk töredezik, ezért töredezést is feltételhez kötve már sikerült kitölteni a szabad helyet - ehhez természetesen vissza kellett csinálni egy jó adag golfozást és &lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/progress/bnlogo_phase4.html&#34;&gt;újracsinálni&lt;/a&gt;, de hát ez erről szól.&lt;/p&gt;
&lt;p&gt;Ezzel a verzióval már szinte elégedett voltam, de a legutóbbi változtatás miatt a töredezett blokkok eloszlása &lt;em&gt;elromlott&lt;/em&gt;. Minimális változtatással azonban a töltelék-karakterek helyének felhasználásával sikerült ezt is megoldanom, és ezzel - kb. 4 óra alatt - elő is állt a &lt;a href=&#34;https://github.com/dyuri/bnlogo/blob/main/bnlogo.html&#34;&gt;végleges változat&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;works-on-my-machine&#34;&gt;Works on my machine&lt;/h2&gt;
&lt;p&gt;Lelkesen körbe is küldtem pár havernek, akik - bár elismerték a teljesítményt - nem értették, hogy én miért örülök ennyire ennek:

  &lt;img src=&#34;https://horak.hu/posts/code-golfing/bnlogo_fail.jpg&#34; alt=&#34;bitnet logo, majdnem&#34;&gt;

&lt;/p&gt;
&lt;p&gt;A következő szintén kb. 4 óra pedig arról szólt, hogy szerezzek egy olyan fix-pontos, a blokk karaktereket is támogató betűtípust, aminek a licenszelése is megfelelő, és minden platformon - &lt;code&gt;&amp;lt;3 safari&lt;/code&gt; - hasonlóan néz ki. Sikerült, de ezt a részt &lt;em&gt;kevésbé&lt;/em&gt; élveztem ;)&lt;/p&gt;</content>
    </item>
    
  </channel>
</rss>
