Despre memory leak-urile lui UIWebView

Mi-am pierdut citeva ore bune de viata pretioasa incercind sa inteleg de ce crapa un UIWebView incapsulat intr-un view simplu, parte a unui UINavigationController (stack).

Detalii depsre probleme aici: http://blog.techno-barje.fr/post/2010/10/04/UIWebView-secrets-part1-memory-leaks-on-xmlhttprequest

Dar pina la urma am rezolvat-o cu ce scrie aici: http://stackoverflow.com/questions/1397112/memory-leak-uiwebview-when-loading-from-file-instead-of-url

Ruby Benchmark

Benchmark e un sistem integrat in rails ce il cautam de foarte mult timp.

Pe scurt, Benchmark e un modul plin de metode care masoara si ofera rapoarte in ceea ce priveste timpul de executie a codului.

Despre modul de folosire mai multe detalii le gasiti in link-ul de mai jos.

http://santoro.tk/mirror/ruby-core/classes/Benchmark.html

Sintel – The Game (sau “un Blender care nu face maioneză !”)

Pardon ? Care mixer ? Și mă rog, ce treabă ar avea vreun mixer, oricare ar fi el, cu domeniul IT ?

Buun… pentru cine are astăzi un pic de timp și este dispus să-și aprofundeze cunoștințele despre "aproapele sau dușmanul" său, o să aduc vorba despre Blender.

Blender, după cum ne povestesc cei de la wikipedia, este o aplicație care se ocupă cu modelarea 3D. În spatele unor cuvinte atât de simple se găsește o fundație și un ditamai proiectul open-source, o aplicație extrem de complexă, la care lucrează o gramadă de oameni din toată lumea. Am zis open-source ? Da, programul, în toată splendoarea sa, poate fi descărcat gratuit și poate fi utilizat în egală masură atât pe Windows cât și pe Linux și Mac. Dacă ești un tânăr curios sau chinuit de talent artistic, atunci sfatul meu este să arunci nu una, ci mai multe priviri cât se poate de atente asupra a tot ce înseamnă lumea Blender.

Recunosc, eu nu mă număr printre cei chinuiți de talent (3D) dar știu când ceva este suficient de prețios pentru a duce vorba mai departe.

De unde și până unde o "lume Blender" ? Simplu: Aplicația asta nu e o jucarie și nu e nici un proiect aflat la început de drum. Are o istorie foarte bogată în spate, cu suișuri și coborâșuri dar mai ales cu realizări care mai de care mai interesante (vezi, între altele, participarea la ceea ce urma să devină filmul "Spider Man 2", participarea la o serie de documentare pentru History Channel și nominalizarea la premiul Oscar ("Best Animated Feature Film") pentru "The Secret Of Kels")

Aș vrea să fac o remarcă, una negativă, deci care nu va fi însoțită de niciun link (mai degrabă mi-aș tăia o mână decât să ofer un link către niste "neica nimeni" care încearcă să fure un produs și să câștige bani dându-se drept cine nu-s): Pe internet, dar și pe site-ul Blender veți descoperi informații potrivit cărora, niște idioți încearcă să vândă aplicația Blender sub un alt nume și mai ales cu prețentia că produsul le aparține. Pe bani grei și cu o nesimțire demnă de un pluton de execuție. Sper din tot sufletul că nu există niciun fraier care să le fi mușcat din momeală. Iar dacă vreun tip cu bani simte că ar vrea să investească în domeniu, eu ii recomand cu căldură să facă o donație fundației Blender, cea care se ocupă cu adevărat de acest proiect. Pentru că merită !

En fin… după cum spuneam Blender știe să facă multe lucruri când vine vorba de modelare 3D și animație. În articolele celor care sunt foarte atenți la ce se întâmplă cu acest proiect (dar nu numai) apar foarte des numele unor proiecte de film de scurt metraj, filme de o calitate excepțională, realizate cu ajutorul aplicației Blender: "Elephant's Dream", "Big Buck Bunny", "Plumiferos" și mai ales "Sintel" pe care eu îl consider a fi o bijuterie și în fața căruia mă înclin cu toată admirația și respectul cuvenit.

NOTĂ: TOATE aceste filme de scurt metraj pot fi downloadate și/sau vizualizate GRATUIT !
(pentru cei mai putin răbdători există galerii foto deși farmecu' nu mai e același)

Pe de altă parte "Yo Frankie!" a fost prima tentativă de a crea un joc 3D cu Blender. Amatorii de jocuri "jump-and-run" îl pot descărca și juca gratuit, deopotrivă pe Windows, Linux și Mac. Tineretului studios i se pun la dispoziție nu numai jocul în sine ci și întreg codul sursă al jocului și o gramadă de documentație despre cum a fost realizat.

Spuneam că "Yo Frankie!" a fost prima tentativă ? Ei bine, știrea în sine (dacă e să tratăm articolul ca pe o știre) este că niște oameni au fost la fel de impresionați de Sintel pe cât am fost și eu. Și pentru ca n-au ce face cu timpul lor liber, s-au apucat să facă un joc bazat pe povestea scurt metrajului.

Dacă n-ați adormit deja atunci vă invit să vizionați acest filmuleț legat de viitorul joc "Sintel"

Sintel - the game (pre-alpha footage)

 

Adminu' ăla care se supără ;-)

 

Aș vrea o struțo-cămilă, dacă se poate ;-)

 

Știu… știu că mulți vor strâmba din nas și vor spune că uite-așa, dintr-o singură mișcare, se duce pe apa sâmbetei afirmația mea legată de faptul că nu-s fan al vreunui sistem de operare…

Trebuie totuși să vă dezvălui un secret… De fapt nu e un secret, e o chestie pe care o spun cu voce tare ori de câte ori am ocazia: Sistemul meu de operare preferat ar trebui să fie un fel de struțo-camilă… Adică .. cum ? Adică … simplu: un amestec de functionalități ale mai multor sisteme de operare, chestii pe care "nu le găsesc dincolo, la [insert-some-OS-name-here]".

Ca să înțelegeți mai bine de ce nu dorm eu noaptea și cam cât de mare e "ghiveciul" din mintea mea când mă refer la acest aspect, am să încerc să înșir mai jos câteva din chestiile care se află în mod constant pe "wishlist"-ul meu:

a. Aș vrea ca Microsoft și Apple să învețe de la Linux să ofere variante LiveCD/ LiveDVD ale sistemelor lor de operare. Evident, știu ce este BartPE (îl folosesc asiduu) dar vreau ceva oficial, ceva ieșit din burta celor de la Redmond, respectiv Cupertrino. Mai mult decât atât, dacă se poate, aș vrea ca LiveCD-ul să devină un standard de facto, așa cum e în lumea Linux. Cu Linux a fost ușor: Klaus Knopper a făcut Knoppix iar de la Knoppix încoace toți au realizat cât de mari sunt beneficiile unui sistem de operare care bootează și rulează în mod grafic (nu neapărat), direct de pe suport magnetic, oferind un mediu de operare complex și (mai ales) complet, fără ca informația aflată pe hard disk să fie afectată în vreun fel.
Bineînțeles, moțul de pe frișcă l-ar constitui variante de Windows sau OS X construite în stilul "distribuțiilor de buzunar", gen Puppy Linux/MacPup, Parted Magic, CloneZilla sau SystemRescueCd, care încap bine mersi pe un stick USB și care sunt o adevarată comoară la casa oricărui admin care se respectă.

b. Aș vrea ca Linux să învețe de la Apple că nu e un capăt de țară să construiești o interfață desktop extrem de arătoasă dar mai ales extrem de intuitivă și simplu de utilizat, pe un fundament Unix (am aici în vedere Aqua, interfața care stă, ca dealtfel întregul sistem de operare OS X, pe un fundament FreeBSD/NetBSD). Chinul și înjurăturile cauzate de trecerea de la KDE 3.5 la KDE 4.x se aplică mai nou la GNOME 3 si Unity. Privind de departe la toate astea, am impresia că developerii ori sunt de pe altă planetă, care se ghidează după niște reguli diferite când vine vorba de uzabilitate, ori nu dau doi bani pe ce așteaptă utilizatorii de la ei. Săracu' "an al desktopului Linux" e mai degrabă acolo, pe planeta lu' pește, decât aici, în bătătură … Și dacă la toată chestia asta mai adăugăm și damblaua cu Wayland vs X … deja mă tem că viitoru' nu sună deloc bine pentru desktopul Linux … În ritmul ăsta, pe la 80 de ani, poate o să apuc și eu să văd desktopul Linux acolo unde ar fi trebuit să se afle dacă lumea nu și-ar fi pierdut vremea cu prostii și bisericuțe de tot felul.

c. Aș vrea ca Apple să învețe de la Linux că poate ar fi cazul să se implice totuși un pic mai vizibil în lumea open source. (am aici în vedere proiectul Darwin care a fost lăsat de izbeliște deși acesta ar putea fi o excelentă poartă de intrare a neavizaților în minunata lume a Mac-ului. Da, știu că Apple ne oferă cu "generozitate" o tonă (?) de chestii – vezi aici și aici – dar toate astea nu-s, în opinia mea, decât un fel de "frecție cu Diana la un picior de lemn"…

d. Aș vrea ca Adobe să lase fițele deoparte și să ofere versiuni native pentru Linux ale aplicațiilor Photoshop, Fireworks, Indesign, Flash… N-am pretenții la FinalCut. Toate astea merg bine mersi pe OS X. Adică pe un *NIX. Cât de greu să fie oare să adaptezi codul pentru Linux ? Pe de altă parte, citind ce-am scris la punctul "b." n-aș vrea să mă pun în pielea programatorilor ;-) Săracii, nici dacă ar vrea, n-ar ști de unde să înceapă :-)

 

Adminu' ăla care se supără ;-)

 

Rulare de teste doar pe development

rake test:units environment RAILS_ENV=development --trace

 

Iar ca să nu mai dropeze baza de date poți pune asta în Rakefile

Rake::TaskManager.class_eval do

def delete_task(task_name)

@tasks.delete(task_name.to_s)

end

Rake.application.delete_task(“db:test:purge”)

Rake.application.delete_task(“db:schema:load”)

end

 

namespace :db do

namespace :test do

task :purge do

#ActiveRecord::Migrator.migrate(“db/migrate/”, 0)

end

end

 

namespace :schema do

task :load do

 

end

end

end

 

O istorie a design-ului de titluri

A Brief History of Title Design from Ian Albinson on Vimeo.

Introducere jQueryMobile și Rails3

Un bun ghid despre ce și cum trebuie instalat, iar apoi un exemplu simplu:

http://fuelyourcoding.com/getting-started-with-jquery-mobile-rails-3/

Conversie la UTF-8 în Ruby

Se folosește utilitarul Iconv. Exemplu de mai jos forțează la UTF-8 un string indiferent de encoding-ul său curent.

ic = Iconv.new(‘UTF-8//IGNORE’, ‘UTF-8′)
valid_string = ic.iconv(untrusted_string + ‘ ‘)[0..-2]

 

Logging basic pentru PHP

Simplu și curat. Făcut de fapt după bătrînul log4j :)

http://logging.apache.org/log4php/quickstart.html

 

 

Ordonare de tip arbore în Rails 3

Pluginul este awesome_nested_set și a fost actualizat și pentru Rails 3.

Instalare:

script/plugin install git://github.com/collectiveidea/awesome_nested_set.git