<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Gladko kot po sluzi (programiranje)</title><link>https://polz.si/</link><description></description><atom:link href="https://polz.si/sl/categories/programiranje.xml" type="application/rss+xml" rel="self"></atom:link><language>sl</language><lastBuildDate>Wed, 28 Sep 2016 18:35:46 GMT</lastBuildDate><generator>https://getnikola.com/</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Cenzura na UPM</title><link>https://polz.si/sl/posts/cenzura-na-upm/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;En od mojih hobijev je pomoč pri tekmovanju &lt;a href="http://www.upm.si"&gt;UPM&lt;/a&gt;. To vključuje občasno pripravljanje &lt;a href="http://putka.upm.si/tasks/"&gt;nalog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Za letošnje prvo kolo sem pripravil &lt;a href="http://putka.upm.si/tasks/2012/2012_1kolo/ocdnorci"&gt;preprosto nalogo&lt;/a&gt;. Besedilo naj bi bilo šaljivo. Na žalost se neimenovanim in meni neznanim ljudem zdi žaljivo, mojemu nadrejenemu (ki je sicer najboljši šef, kar bi si jih lahko zamislil) pa neprimerno.&lt;/p&gt;
&lt;p&gt;Zaradi neprimernega humorja sem nalogo v arhivu na spletni strani tekmovanja predelal, da je morda manj grozna. Vseeno se mi zdi prav, da besedilo ostane vidno vsemu svetu, zato jo objavljam tukaj. Živela cenzura!&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;OCDNorci&lt;/h2&gt;
&lt;p&gt;V psihiatrični bolnišnici imajo kot stažista zaposlenega res zlobnega doktorja medicine, Slavka.&lt;/p&gt;
&lt;p&gt;Slavko je ugotovil, da ima v umobolnici neskončno zalogo ubožcev z obsesivno-kompulzivnimi motnjami. Nekateri med njimi stalno štejejo črke in cifre. Ti so tudi takšni, da se pod določenimi pogoji lahko povsem zamotijo, izgubijo stik z resničnostjo in nato tavajo brezciljno naokrog.&lt;/p&gt;
&lt;p&gt;Mimo bolnišnice pelje glavna vpadnica v mesto. Vsako jutro Slavko ob cesto postavi pacienta. 
Pacient gleda registrske številke in šteje cifre in črke. Ko mimo pripelje tretje vozilo, v registrski številki katerega sta vsaj dve črki ali cifri enaki, 
izgubi pamet in odtava na sredo ceste, kjer ga nemudoma in brez ustavljanja v onostranstvo pošlje eden od na mobitelu visečih voznikov.&lt;/p&gt;
&lt;p&gt;Slavko to predstavo opazuje, se reži in snema filmčke, ki jih namerava nekoč postaviti na Internet. 
Takoj, ko norec odleti izpod koles v nebesa, Slavko ob cesto pošlje novega. 
Vaša naloga je, da napišete program, ki bo za vsakega norca povedal, koliko vozil je preživel. Privzamete lahko, da norec na vsakem vozilu vidi le eno tablico.&lt;/p&gt;
&lt;h3&gt;Vhodni podatki&lt;/h3&gt;
&lt;p&gt;Na vhodu bo vaš program najprej dobil število vozil $N$, ki so se peljala mimo umobolnice. zaporedje registrskih številk, po eno registrsko na vrstico. 
Vsaka registrska številka je dolga največ 16 znakov.
Znaki so cifre, velike črke angleške abecede, presledek (" ") in pomišljaj ("-"). Norci presledke in pomišljaje ignorirajo.&lt;/p&gt;
&lt;h4&gt;Omejitve vhodnih podatkov&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;1 $\lt$ N $\lt$ 10000&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Izhodni podatki&lt;/h3&gt;
&lt;p&gt;Za vsakega norca naj vaš program v novo vrstico izpiše, koliko vozil je preživel. Šteje tudi avto, katerega registrska je norca pahnila v smrt.  Če je ob koncu vhodnega zaporedja zadnji norec še živ, zanj ne izpiši ničesar.&lt;/p&gt;&lt;/div&gt;</description><category>FRI</category><category>programiranje</category><category>tekmovanje</category><guid>https://polz.si/sl/posts/cenzura-na-upm/</guid><pubDate>Wed, 16 May 2012 16:29:38 GMT</pubDate></item><item><title>Primer programa v C z GLADE</title><link>https://polz.si/sl/posts/primer-programa-v-c-z-glade/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;Pri tej nalogi za oblikovanje uporabniškega vmesnika uporabite program glade-3. Rezultat je datoteka s končnico .glade (na primer naloga12.glade), v kateri je v obliki xml zapisan ustvarjen uporabniški vmesnik. Napisati moramo torej še program, v katerem bomo to datoteko uporabili za prikaz uporabniškega vmesnika. Tak program lahko napišemo v različnih programskih jezikih (npr. C, C++, Python, Ruby, PHP ...); spodnji primer bomo prikazali v jeziku C, ki je tudi jezik GTK+.&lt;/p&gt;
&lt;p&gt;Program, ki ga moramo sami napisati, zajema funkcijo main in vse odzivne funkcije na dogodke (slednje oz. njihova imena smo sicer določili že pri izgradnji uporabniškega vmesnika, vendar jih moramo tu še definirati). Na začetku programa moramo vključiti zaglavno datoteko knjižnice GTK+:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;gtk/gtk.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&lt;/span&gt;
&lt;/pre&gt;


&lt;p&gt;V funkciji main moramo najprej poskrbeti za inicializacijo GTK+. Pokličemo funkcijo&lt;/p&gt;
&lt;pre class="code literal-block"&gt;gtk_init(&amp;amp;argc, &amp;amp;argv);
&lt;/pre&gt;


&lt;p&gt;kjer sta argc in argv argumenta funkcije main.&lt;/p&gt;
&lt;p&gt;Nato za izgradnjo uporabniškega vmesnika uporabimo GtkBuilder, ki pregleda našo .glade datoteko (naloga12.glade) in ustvari vse objekte (widgets), ki so v njej definirani, določi njihove lastnosti ter vzpostavi relacije (hierarhijo) med njimi:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;builder = gtk_builder_new();
gtk_builder_add_from_file(builder, "naloga12.glade", NULL);
&lt;/pre&gt;


&lt;p&gt;Spremenljivka builder, ki predstavlja GtkBuilder, je kazalec na ta objekt, in jo moramo pred uporabo seveda deklarirati:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;GtkBuilder *builder;
&lt;/pre&gt;


&lt;p&gt;Ko smo ustvarili celoten vmesnik, moramo pridobiti še reference na tiste objekte, ki jih želimo v programu še uporabljati oz. z njimi manipulirati. Primer:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;// pridobimo referenco na glavno okno, ki smo ga v Glade poimenovali window1
window = GTK_WIDGET(gtk_builder_get_object(builder, "window1"));

// pridobimo referenco na oznako, ki smo jo v Glade poimenovali labelA
label = GTK_WIDGET(gtk_builder_get_object(builder, "labelA"));

// pridobimo referenco na dialog za izbiro datoteke, ki smo ga v Glade poimenovalii fileChooserDialog1
chooser = GTK_WIDGET(gtk_builder_get_object(builder, "fileChooserDialog1"));
&lt;/pre&gt;


&lt;p&gt;Pri tem moramo spremenljivki window in label deklarirati kot kazalca na GtkWidget:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;GtkWidget *window, *label;
&lt;/pre&gt;


&lt;p&gt;Nato moramo povezati odzivne funkcije s signali:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;gtk_builder_connect_signals(builder, NULL);
&lt;/pre&gt;


&lt;p&gt;Drugi parameter v funkciji je kazalec na strukturo, ki se pošlje vsem signalom kot uporabniški podatki. V našem primeru tega ne bomo uporabljali, zato je to NULL.&lt;/p&gt;
&lt;p&gt;S tem smo opravili vse potrebno za pravilno delovanje uporabniškega vmesnika. Objekta builder tako ne potrebujemo več, zato ga uničimo:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;g_object_unref(G_OBJECT(builder));
&lt;/pre&gt;


&lt;p&gt;Za konec moramo le še prikazati glavno okno programa (naša spremenljivka window)&lt;/p&gt;
&lt;pre class="code literal-block"&gt;gtk_widget_show(window);
&lt;/pre&gt;


&lt;p&gt;ter zagnati glavno dogodkovno zanko (neskončna zanka, ki čaka na dogodke):&lt;/p&gt;
&lt;pre class="code literal-block"&gt;gtk_main();
&lt;/pre&gt;


&lt;p&gt;S tem lahko zaključimo našo funkcijo main.&lt;/p&gt;
&lt;p&gt;V glavni dogodkovni zanki GTK+ preverja stanje objektov in po potrebi sproža signale. Na te signale se odzivajo funkcije, ki so z njimi povezane. Vse funkcije, ki se odzivajo na dogodke (signale), smo določili že v programu Glade. V našem programu jih moramo seveda še definirati. Vsaka funkcija prejme dva parametra, to sta kazalec na objekt, ki je prejel signal (GtkObject *object), in morebitni podatki uporabnika (gpointer user_data). Slednjih v našem primeru ne uporabljamo (glej klic funkcije za povezavo signalov).&lt;/p&gt;
&lt;p&gt;Primer dveh odzivnih funkcij (prva zapiše neko besedilo v oznako, druga pa prikaže dialog za izbiro datoteke):&lt;/p&gt;
&lt;pre class="code literal-block"&gt;void on_option1_menu_item_activate(GtkObject *object, gpointer user_data) {
    // koda za odziv na signal, v oznaki label se izpiše besedilo
    // ime funkcije on_option1_menu_item_activate smo določili že v programu Glade
    gtk_label_set_text(GTK_LABEL(label), "Besedilo, ki se prikaze v oznaki.");
}
void on_file_open_menu_item_activate(GtkObject *object, gpointer user_data) {
    // koda za odziv na signal, prikaže se dialog za izbiro datoteke in prebere ime izbrane datoteke
    // ime funkcije on_file_open_menu_item_activate smo določili že v programu Glade
    gchar *imeDatoteke;
    // pridobimo ime izbrane datoteke
    imeDatoteke = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
    // skrijemo dialog
    gtk_widget_hide(chooser);
    // pridobljeno ime datoteke zapišemo v oznako
    gtk_label_set_text(GTK_LABEL(label), imeDatoteke);
}
&lt;/pre&gt;


&lt;p&gt;Pa še nekaj uporabnih funkcij (nekatere smo uporabili že v zgornjem primeru):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Program lahko zaključimo tako, da pokličemo funkcijo, ki prekine glavno dogodkovno zanko (in s tem zaključi program): gtk_main_quit();&lt;/li&gt;
&lt;li&gt;Besedilo v oznaki label lahko nastavimo na "bla bla" z naslednjim klicem funkcije: gtk_label_set_text(GTK_LABEL(label), "bla bla");&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ime datoteke, ki jo izberemo v oknu za izbiro datoteke chooser, dobimo s klicem naslednje funkcije:&lt;/p&gt;
&lt;p&gt;gchar *fName; // ime datoteke kot niz znakov
fName = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Okno chooser lahko skrijemo s klicem: gtk_widget_hide(chooser);&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ko program v jeziku C napišemo, ga prevedemo z ukazom:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;gcc -Wall -g -o naloga12 naloga12.c -export-dynamic $(pkg-config --cflags --libs gtk+-2.0 gmodule-2.0)
&lt;/pre&gt;


&lt;p&gt;pri čemer je naloga12.c ime našega programa z izvorno kodo, naloga12 pa je ime prevedenega programa (oboje po potrebi zamenjajte). Rezultat prevajanja (če ni bilo napak) je datoteka naloga12 (ali drugo ime, ki ste ga podali). Program poženemo z ukazom:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;./naloga12
&lt;/pre&gt;


&lt;p&gt;V pomoč pri izdelavi naloge vam je tudi spletni tutorial v treh delih Micah Carrick: GTK+ and Glade3 GUI Programming Tutorial.&lt;/p&gt;
&lt;p&gt;Opise objektov in njihove funkcije najdete tudi v priročniku GTK+ Reference Manual.&lt;/p&gt;&lt;/div&gt;</description><guid>https://polz.si/sl/posts/primer-programa-v-c-z-glade/</guid><pubDate>Wed, 02 Jun 2010 12:22:47 GMT</pubDate></item><item><title>RTK - rezultati</title><link>https://polz.si/sl/posts/rtk-rezultati/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;Znani so &lt;a href="http://rtk.ijs.si/2010/rezultati.html"&gt;rezultati&lt;/a&gt; letošnjega &lt;a href="http://rtk.ijs.si"&gt;tekmovanja v programiranju&lt;/a&gt; na &lt;a href="http://www.ijs.si"&gt;IJS&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Organizatorji so se lepo potrudili, da so tekmovalci dobili dobre nagrade. Čestitke zmagovalcem in pohvale udeležencem!&lt;/p&gt;
&lt;p&gt;Še posebej bi bilo treba pohvaliti &lt;a href="http://videolectures.net/jelko_urbancic/"&gt;Jelka Urbančiča&lt;/a&gt;, ki je na tekmovanje pripravljal najboljše štiri udeležence v tretji, najtežji skupini. Nivo programerskega znanja teh dijakov je precej višji od povprečnega nivoja diplomanta &lt;a href="http://www.fri.uni-lj.si"&gt;FRI&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description><category>IJS</category><category>programiranje</category><guid>https://polz.si/sl/posts/rtk-rezultati/</guid><pubDate>Sun, 28 Mar 2010 14:00:00 GMT</pubDate></item><item><title>Primer programčka v SDL - nalaganje slike</title><link>https://polz.si/sl/posts/primer-programcka-v-sdl-nalaganje-slike/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;Primer programčka, ki naloži in skopira slikico. Poiščite napake in grde programerske prijeme!&lt;/p&gt;
&lt;p&gt;Koda:&lt;/p&gt;
&lt;pre class="code literal-block"&gt; &lt;span class="nt"&gt;Uint32&lt;/span&gt; &lt;span class="nt"&gt;x&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;y&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;i&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;minw&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
 &lt;span class="nt"&gt;short&lt;/span&gt; &lt;span class="nt"&gt;int&lt;/span&gt; &lt;span class="nt"&gt;c&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
 &lt;span class="nt"&gt;Uint8&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nt"&gt;pimage&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nt"&gt;pdisplay&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
 &lt;span class="nt"&gt;SDL_Init&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;SDL_INIT_VIDEO&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
 &lt;span class="nt"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;SDL_SetVideoMode&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt; &lt;span class="nt"&gt;450&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;480&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;32&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;SDL_HWSURFACE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
 &lt;span class="c"&gt;/*for (i=0; i!=255; i++){*/&lt;/span&gt;
    &lt;span class="nt"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;SDL_MUSTLOCK&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;display&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
        &lt;span class="nt"&gt;SDL_LockSurface&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;display&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="nt"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;SDL_LoadBMP&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"lenna.bmp"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="nt"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nt"&gt;NULL&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Unable to load bitmap: %s\n"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SDL_GetError&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
        &lt;span class="n"&gt;return&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nt"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;SDL_DisplayFormat&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="nt"&gt;SDL_FreeSurface&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="c"&gt;/* for(y=0; y&amp;lt;(display-&amp;gt;h); y++) {&lt;/span&gt;
&lt;span class="c"&gt;        for(x=0; x&amp;lt;(display-&amp;gt;w); x++) {&lt;/span&gt;
&lt;span class="c"&gt;            c = (x%256)*256 + (y%256)*65536;&lt;/span&gt;
&lt;span class="c"&gt;            *((Uint32*)display-&amp;gt;pixels + (y * display-&amp;gt;w + x)) = c;&lt;/span&gt;
&lt;span class="c"&gt;        }&lt;/span&gt;
&lt;span class="c"&gt;    }&lt;/span&gt;
&lt;span class="c"&gt;    */&lt;/span&gt;
    &lt;span class="c"&gt;/* SDL_BlitSurface(image, 0, display, 0); */&lt;/span&gt;
    &lt;span class="nt"&gt;minw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;display-&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;w&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;image-&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;w&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nt"&gt;minw&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;minw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;image-&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;w&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;for&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nt"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="nt"&gt;y&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;(&lt;/span&gt;&lt;span class="nt"&gt;display-&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;h&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="nt"&gt;y&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;minw&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;pdisplay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Uint8&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;pixels&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="n"&gt;pimage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Uint8&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;pixels&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pimage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            
            &lt;span class="n"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pdisplay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="err"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; &lt;span class="nt"&gt;SDL_MUSTLOCK&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;display&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="nt"&gt;SDL_UnlockSurface&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;display&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="nt"&gt;SDL_UpdateRect&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;display&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;  &lt;span class="nt"&gt;display-&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;w&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;  &lt;span class="nt"&gt;display-&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;h&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
 &lt;span class="c"&gt;/*}*/&lt;/span&gt;

 &lt;span class="nt"&gt;SDL_Delay&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;5000&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
 &lt;span class="nt"&gt;return&lt;/span&gt; &lt;span class="nt"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description><category>programiranje</category><guid>https://polz.si/sl/posts/primer-programcka-v-sdl-nalaganje-slike/</guid><pubDate>Thu, 25 Mar 2010 19:07:32 GMT</pubDate></item><item><title>Primer programčka v SDL</title><link>https://polz.si/sl/posts/primer-programcka-v-sdl/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;Spodnji program je namenjen predvsem študentom FRI. Gre za demonstracijo risanja po zaslonu. Program prevedete v konzoli z ukazom:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;gcc `sdl-config --cflags --libs` sdl-test.c -o sdl_test
&lt;/pre&gt;


&lt;p&gt;Izvorna koda:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;SDL.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="n"&gt;SDL_Surface&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="n"&gt;Uint32&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="n"&gt;Uint8&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="n"&gt;SDL_Init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_INIT_VIDEO&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="n"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SDL_SetVideoMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="mi"&gt;450&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;480&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SDL_HWSURFACE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="cm"&gt;/*for (i=0; i!=255; i++){*/&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SDL_MUSTLOCK&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;SDL_LockSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="cm"&gt;/*printf("Naslov zaslona:%x", display-&amp;gt;pixels);*/&lt;/span&gt;
            &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;pixels&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;SDL_MUSTLOCK&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;SDL_UnlockSurface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;SDL_UpdateRect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="cm"&gt;/*}*/&lt;/span&gt;

 &lt;span class="n"&gt;SDL_Delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;


&lt;p&gt;Zamike popravite sami!&lt;/p&gt;&lt;/div&gt;</description><category>programiranje</category><guid>https://polz.si/sl/posts/primer-programcka-v-sdl/</guid><pubDate>Fri, 19 Mar 2010 07:39:59 GMT</pubDate></item><item><title>Sikuli</title><link>https://polz.si/sl/posts/sikuli/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;Na &lt;a href="http://mit.edu"&gt;MIT&lt;/a&gt; so razvili nov sistem za avtomatizacijo opravil na računalniku. Imenuje se &lt;a href="http://sikuli.csail.mit.edu/"&gt;Sikuli&lt;/a&gt;, deluje pa na osnovi posnetkov zaslona (screenshotov). Uporabnik (programer) na sliki zaslona označi območja, na katera naj program klika / tipka / počne kaj drugega. Nato v jeziku, osnovanem na &lt;a href="http://www.python.org"&gt;Pythonu&lt;/a&gt; napiše program, v katerem opiše, kaj naj stori. Za razumevanje je verjetno najbolje, da si ogledate &lt;a href="http://www.youtube.com/v/FxDOlhysFcM&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1&amp;amp;iframe=true&amp;amp;width=640&amp;amp;height=505"&gt;film s primerom uporabe&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Novo orodje deluje povsod, kjer deluje Java.&lt;/p&gt;&lt;/div&gt;</description><category>computing</category><category>java</category><category>programiranje</category><guid>https://polz.si/sl/posts/sikuli/</guid><pubDate>Fri, 22 Jan 2010 00:56:35 GMT</pubDate></item><item><title>LED Kremelj</title><link>https://polz.si/sl/posts/led-kremelj/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;Če bi si kdo rad izdelal 3-barvno svetlečo diodo (LED), priklopljeno na USB, lahko firmware, osnovan na &lt;a href="http://www.obdev.at/products/vusb/index.html"&gt;V-USB&lt;/a&gt;, pobere &lt;a href="http://www.polz.si/trac/browser/techno/trunk/HW/AVR/LEDKremlin/firmware"&gt;tukaj&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Od &lt;a href="http://www.justblair.co.uk/the-attiny45-usb-led-e-mail-twitter-and-pidgin-notifier.html"&gt;nekaterih drugih podobnih projektov&lt;/a&gt; se moj razlikuje po tem, da gre za dejansko &lt;a href="http://www.usb.org/developers/hidpage"&gt;USB HID&lt;/a&gt; napravo z verjetno pravilnim &lt;a href="http://www.usb.org/developers/hidpage/dt2_4.zip"&gt;HID descriptorjem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Navdih za vezje je bil &lt;a href="http://www.recursion.jp/avrcdc/"&gt;avrcdc&lt;/a&gt;, le da je na PB0, PB3 in PB4 na &lt;a href="http://www.harbaum.org/till/i2c_tiny_usb/schematic.gif"&gt;vezju, zgrajenem okrog ATTiny45&lt;/a&gt; priklopljena 3-barvna LED, USB pa je pripeljan na pina PB2(USB D+) in PB1(USB D-).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.polz.si/trac/browser/techno/trunk/HW/AVR/LEDKremlin/application"&gt;Tukaj&lt;/a&gt; lahko najdete še aplikacije, ki upravljajo svetenje diode. Z &lt;a href="http://www.polz.si/trac/browser/techno/trunk/HW/AVR/LEDKremlin/application/ledkremlin.c"&gt;ledkremlin&lt;/a&gt; lahko nastavite barvo LED na katero koli RGB vrednost, &lt;a href="http://www.polz.si/trac/browser/techno/trunk/HW/AVR/LEDKremlin/application/rainbow.c"&gt;rainbow&lt;/a&gt; je klasični mavrični efekt s prelivajočimi se barvami, &lt;a href="http://www.polz.si/trac/browser/techno/trunk/HW/AVR/LEDKremlin/application/pakremelj-0.1.0"&gt;PAKremelj&lt;/a&gt; pa se poveže na &lt;a href="http://pulseaudio.org/"&gt;pulseaudio&lt;/a&gt; strežnik na vašem računalniku in poskrbi, da LED utriplje v skladu z glasbo, ki jo predvajate.&lt;/p&gt;&lt;/div&gt;</description><category>AVR</category><category>hardware</category><category>NEST</category><category>programiranje</category><category>tranzistor</category><category>TV</category><guid>https://polz.si/sl/posts/led-kremelj/</guid><pubDate>Thu, 17 Dec 2009 21:03:40 GMT</pubDate></item><item><title>Metaboard čelada</title><link>https://polz.si/sl/posts/metaboard-celada/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;a class="reference external" href="http://www.youtube.com/watch?v=eTOqZQpTLvo&amp;amp;feature=channel_page"&gt;Posnetek intra&lt;/a&gt; si lahko ogledate na Youtube. Zaslon na čeladi je sestavljen iz 6 vrstic po 16 LEDic. Vezje se napaja in nadzira preko USB vrat. Klemen, ki je v intru plesal in se kuhal s čelado na glavi, je moral zato imeti na hrbtu nahrbtnik z majhnim računalnikom, v eni izmed rok pa miško, s katero je preklapljal med animacijami.&lt;/p&gt;
&lt;p&gt;Vezje, ki predstavlja srce čelade, je osnovano na &lt;a class="reference external" href="http://metalab.at/wiki/Metaboard"&gt;Metaboardu&lt;/a&gt;, le da sem namesto ATMega168 uporabil ATMega32. Tako Metaboard kot tudi vse USB napravice, ki sem jih doslej sestavil, so osnovane na &lt;a class="reference external" href="http://www.obdev.at/products/vusb/index.html"&gt;firmware-u V-USB&lt;/a&gt;. Prednost Metaboarda pred napravami, osnovanimi na manjših in cenejših čipih je, da zanj ne potrebujemo ločenega programatorja. Na mikrokontrolerju se namreč nahaja bootloader, ki se zna pretvarjati, da je programator, s katerim potem na napravo naložimo poljuben program.&lt;/p&gt;
&lt;p&gt;Metaboard se torej lahko obnaša kot praktično katera koli naprava. Da bi nanj naložili nov firmware, ni treba priklapljati programatorja, ampak lahko preprosto pritisnemu gumb.&lt;/p&gt;
&lt;p&gt;Za izdelavo napravice sem uporabil kar navrtane tiskane ploščice, tako da mi ni bilo treba narediti niti tiskanega vezja, niti načrta. Vseeno nameravam tako načrt kot tudi predelano različico bootloaderja in programček za kontrolo displaya objaviti še ta vikend, vendar malo kasneje. Zakaj kasneje? Ni časa. Glej naslednjo novico.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://polz.si/sl/posts/metaboard-celada/"&gt;Več o tem…&lt;/a&gt; (še 2 min za branje preostanka)&lt;/p&gt;&lt;/div&gt;</description><category>hardware</category><category>impro</category><category>programiranje</category><category>tranzistor</category><category>TV</category><guid>https://polz.si/sl/posts/metaboard-celada/</guid><pubDate>Sat, 30 May 2009 08:43:35 GMT</pubDate></item><item><title>PIWO 3</title><link>https://polz.si/sl/posts/piwo-3/</link><dc:creator>Polž</dc:creator><description>&lt;div&gt;&lt;p&gt;V Wroclavu bo letos spet tudi &lt;a class="reference external" href="http://cepc09.ii.uni.wroc.pl/"&gt;srednjeevropsko programersko tekmovanje ACM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Naši tekmovalci na &lt;a class="reference external" href="http://www.upm.si"&gt;UPM&lt;/a&gt; so sicer dobri, vsaj za en razred boljši od naših povprečnih študentov, ampak z najboljšimi se zaenkrat ne morejo kosati. Zadnja leta so precej dobri Hrvatje, baje predvsem zahvaljujoč pripravam in izdatni državni pomoči pri organizaciji srednješolskih računalniških tekmovanj.&lt;/p&gt;
&lt;p&gt;Razlika med našimi in poljskimi študenti je predvsem v tem, da poljaki letijo s faksa, če jih ujamejo, da kje fušajo - študentsko delo je torej prepovedano. Poleg tega jih nič ne ujčkajo - ne učijo se programirati v C-ju ali Javi, temveč se učijo o algoritmih, uporabljati nek programski jezik pa se morajo kar lepo sami.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://polz.si/sl/posts/piwo-3/"&gt;Več o tem…&lt;/a&gt; (še 1 min za branje preostanka)&lt;/p&gt;&lt;/div&gt;</description><category>programiranje</category><category>tekmovanje</category><category>tranzistor</category><category>TV</category><category>UPM</category><guid>https://polz.si/sl/posts/piwo-3/</guid><pubDate>Sat, 23 May 2009 11:33:03 GMT</pubDate></item><item><title>Tranzistor 6 - Nao</title><link>https://polz.si/sl/posts/tranzistor-6-nao/</link><dc:creator>Polž</dc:creator><description>&lt;p&gt;&lt;a href="https://polz.si/sl/posts/tranzistor-6-nao/"&gt;Več o tem…&lt;/a&gt; (še 1 min za branje preostanka)&lt;/p&gt;</description><category>FRI</category><category>programiranje</category><category>robot</category><category>tranzistor</category><category>TV</category><guid>https://polz.si/sl/posts/tranzistor-6-nao/</guid><pubDate>Mon, 23 Feb 2009 22:17:42 GMT</pubDate></item></channel></rss>