rolisz's site

The mysterious vcvarsall.bat

I've en­coun­tered the following problem quite a few times, so I decided to write about it here on my blog so I can find the solution faster.

When trying to build various open source libraries, especially ones that were initially made for Linux and then ported to Windows, sometimes the following error is received:

Unable to find vcvarsall.bat

This comes up because it tries to build it using Visual Studio and it looks.... for an older version of VS (I think).

The solution is simple. If you have VS2010, execute: SET VS90­COM­N­TOOLS=%VS100­COM­N­TOOL­S% at the command line and try again. If you have VS2012 run SET VS90­COM­N­TOOLS=%VS110­COM­N­TOOL­S%.

Via: Stack­Over­flow

Neural Networks in Python

Artificial Neural Networks are a math­e­mat­i­cal model, inspired by the brain, that is often used in machine learning. It was initially proposed in the '40s and there was some interest initially, but it waned soon due to the in­ef­fi­cient training algorithms used and the lack of computing power. More recently however they have started to be used again, especially since the in­tro­duc­tion of au­toen­coders, con­vo­lu­tion­al nets, dropout reg­u­lar­iza­tion and other techniques that improve their per­for­mance sig­nif­i­cant­ly.

Here I will present a simple multi-layer perceptron, im­ple­ment­ed in Python using numpy.

Neural networks are formed by neurons that are connected to each others and that send each other signals. If the number of continue.

Single table inheritance in Camelot

Recently, while working on a class project, I had a small problem with in­her­i­tance in Camelot, an excellent framework for rapid ap­pli­ca­tion de­vel­op­ment in Python.

In the ap­pli­ca­tion we needed to be able to define different kinds of projects, with similar needs, but which were each available only to some user groups. Single table in­her­i­tance sounds like a natural fit for this.

I couldn't find anything in the Camelot doc­u­men­ta­tion about this, but I figured that since it uses SQLAlchemy for its models, I could try the example given there:

 class Employee(Base):
    __tablename__ = 'employee'
    id = Column(Integer, primary_key=True)
    name 
continue.

Tutorial Camelot

Nu sunt Arthur sau Merlin, așa că nu voi vorbi despre orașul Camelot, ci despre frame­workul Python, care îi pretty much everything but the kitchen sink.

Cum tutorialul acesta este mai mult pentru colegii de grupă cu care lucrăm la proiect colectiv, voi presupune că este deja instalat Camelot.

Proiectul pe care îl vom crea este o mică chestie pe care eu vreau s-o fac de mai mult timp, și aceasta este opor­tu­ni­tatea perfectă: vom face un program cu care să pot urmări când se întâmplă anumite lucruri, în speranța ca mai încolo să pot extrage informații utile din când se întâmplă acele lucruri. Ce am de gând să măsor continue.

Git tutorial - part 2

Acest tutorial e mai mult pentru colegii de grupă cu care voi lucra la Proiect Colectiv

Prima parte am scris-o mai demult, dar nu îi bai, că nu s-o schimbat multe la Git de atunci :)))

În prima parte am configurat Git-ul, am creat un proiect nou, cu un fișier .gitignore și am făcut primul commit. În cei doi ani care au trecut de atunci ne-am dat seama că la primul commit am greșit două chestii: mai trebuia inclus fișierul config.txt și trebuia să dăm un mesaj de commit mai detaliat.

> git status
# On branch master
# Untracked files:
#   (use "git add ..." to include in what will 
continue.

Cura de slăbire

La începutul vacanței am fost la cineva și m-am cântărit pe un cântar electronic. Și rezultatul a fost de xy kg. Care îi muuuult prea mult. Știam eu că în sesiune am mâncat în prostie (îmi place să ronțăi când învăț), dar nu credeam că am ajuns în halul ăsta. Mai ales că înainte să vin la Cluj aveam un zt kg foarte re­spectabil.

Așa că m-am apucat de o cură de slăbire. În aceeași seară deja am decis (ajutat de mami) să nu mai mănânc seara. Bazat pe un articol pe care l-am citit care spuneau de un regim super-mega-hiper-sănătos, să nu mănânci timp de 16 ore, iar apoi continue.

Statistici la jumătatea facultății

Am ajuns la punctul culminant după cele două tutoriale de d3.js și vom vedea rezultatul final: grafice frumoase :D

Am testat în Chrome, Firefox și IE, ultimele versiuni.

Grafice

Grafice cu d3.js - part 2

Data trecută am făcut un barchart simplu, care să poată fi sortat. Acum, să îl complicăm un pic: vrem să prezentăm un set de date, care este împărțit pe mai multe grupe, datele având mai multe dimensiuni. Vrem să vedem cum se compară grupele diferite la diferite dimensiuni. Vom reprezenta datele din fiecare dimensiune în câte un barchart, separat pentru fiecare grupă sau mai multe împreună, schimbarea făcându-se alegând grupele care să apară. Când schimbăm în cadrul aceleiași grupe, indivizii vor avea per­sis­tență, adică car­ac­ter­is­ti­ca din a doua dimensiune va fi reprezen­tată în locul unde a fost reprezen­tată car­ac­ter­is­ti­ca core­spun­ză­toare primei dimensiuni.

În HTML vom pune butoanele pentru sortare și continue.

Grafice cu d3.js - part 1

Anul trecut am făcut graficele cu notele din sesiune în R. Au fost super simplu de făcut, mai am scrip­turile de generare, și probabil aș putea să le refolosesc și să termin cu toată treaba în 5 minute. Dar... arată un pic cam nașpa. Liniile nu au an­tialias­ing, culorile sunt cam stridente și, cel mai important, sunt statice, nu se poate in­ter­acționa cu ele.

Așa că am decis ca anul acesta să le refac în d3.js, care îi la modă acuma pentru vizual­izări de date. După cum sugerează și numele, acesta este o librărie Javascript care se folosește la ma­nip­u­larea doc­u­mentelor în funcția de datele pe care le avem. Se bazează pe HTML5, continue.

Colectare note

It's that time of the year again, ~~când vine Moșul~~ când fac statistici cu notele. Primul pas pentru aceasta este să adun la un loc toate notele pe care pot să le obțin (fără să cerșesc de la tot anul individual, cum ar trebui pentru SOD). Și aceasta necesită multă muncă.

Cum vreau să lucrez într-un mod trans­par­ent și re­pro­ductibil, am decis să lucrez într-un notebook IPython, pe care îl puteți vedea aici. Soon, graphs, pretty graphs :D