20120225

Buddhabrot konečně v C


Tak jsem se konečně rozhoupal k tomu, abych v C napsal generátor buddhabrota, který je zobrazen skrze knihovnu SDL. Je to lepší než (pomalým) pythonem sázet do 3D světa blenderu vertexy, které mají efekt halo a dostatečně velkou alfu a pak to celé ještě renderovat jako klasickou 3D scénu blenderu... No prostě neřešil jsem to úplně čistě a optimálně. Navíc po několika stech milionů vertexů se Blenderu přestal můj záměr líbit a leckdy už ani nebyl schopen nastartovat renderer...

20120122

Programovací jazyk C: 01-Příprava prostředí

Pokud chceš PVP projít dobře, musíš mít alespoň snahu psát programy. A k tomu potřebuješ nějaké vývojové prostředí, aby ses mohl o co edukovat (například studování výstupu programu gcc s parametrem -S je opravdu velmi výživný zdroj informací). Předpokládejme úplně průměrný osobní počítač s 32-bit Windows XP.

Budeme instalovat:
  1. PSPad - http://www.pspad.com

  2. Zvýrazňuje související závorky, umí doplňovat párové znaky, spravuje projekty, umí FTP...
      Poměrně kvalitní textový editor se zvýrazněním syntaxe a možností přiřazení kompilátoru k tlačítku GUI.
  3. Cygwin - http://www.cygwin.com

    • Díky němu se můžeš ve Windows pohybovat jako v linuxu s hromadou linuxových příkazů včetně interpreta příkazové řádky (bash) a základních GNU nástrojů.
  4. gcc

    • OpenSourcový kompilátor jazyka C. Tento program si vezme náš zdrojový kód v souboru program.c, udělá nějaká kouzla a vyrobí z toho spustitelný program.exe . Může nám také místo spustitelné "binárky" vygenerovat zdrojový kód pro assembler GAS, který musíme pro převod do binárky převést assemblerem na objektový soubor a ten pak linkerem na spustitelnou binárku.

20110925

AVR Assembler-01: Ponor k 0.000000125 sekundové informaci

Ve škole jsme se konečně dostali k předmětu MIT (ne, to opravdu není zkratka pro Massachusetts Institute of Technology , ale pro cosi s mikrokontrolérama) a já měl tedy pořádný důvod začít s assemblerem. Tak se podíváme, co tu máme.

20110103

Bůh je matematik... , chvilku poté

A toto nechám běžet přes noc. Uvidíme.


from Blender import Redraw,Save
import bpy
from random import randrange
me=bpy.data.meshes['Mandel']
batches=[]
vertcount=1
curbatch=0
it=100000
bail=50

def check(r,i,it,bail):
 zr=r
 zi=i
 a=1
 while a<=it:
  zr,zi=zr*zr-zi*zi+r,2*zr*zi+i
  if (zr**2+zi**2)>=bail:
   return False
  a+=1
 return True

try:
 a=1
 while 0==0:
  r=randrange(-50000000000000,50000000000000)/10000000000000.0
  i=randrange(-50000000000000,50000000000000)/10000000000000.0
  if (a%1000)==0:
   print a,"iterovanych bodu Z,",vertcount,"bodu naneseno"
  if check(r,i,it,bail)==False:
   zr=r
   zi=i
   b=1
   while b<=it:
    zr,zi=zr*zr-zi*zi+r,2*zr*zi+i
    if ((zr>-3)&(zr<2)&(zi>-2.5)&(zi<2.5)):
     batches.append([zr,zi,0])
     if(vertcount%10000==0):
      me.verts.extend(batches)
      batches=[]
      name="C:\Users\programagor\mandel{0}.blend".format(curbatch%2)
      Save(name,1)
      Redraw()
      curbatch+=1
      print "--prubeh ulozen (",name,")--"
     vertcount+=1
    if (zr**2+zi**2)>=bail:
     b=it
    b+=1
  a+=1
finally:
 me.verts.extend(batches)
 print "--prubeh ulozen--"
 print "Celkem iterovano",a,"bodu Z,",vertcount,"bodu naneseno"

20110102

Bůh je matematik...

...a já jsem bůh

Aneb takhle nějak by to mohlo vypadat, ještě než se vrhnu na optimalizaci...

20100405

[WIP] Jonathan Coulton - Still Alive [Piano cover]

Jsem ve fázi učení, takže kompletní skladbu budu umět až tak někdy za měsíc. Ale i tak doufám, že se vám bude líbiti.