Sábado, Janeiro 29, 2011

ASUS 1215n Linux install (dual-boot or otherwise)

This post might help someone out there with the amazing ASUS 1215n netbook...
Using Windows, from within unetbootin, download and make any image (iso) file, e.g. a distro, bootable. Follow unetbootin instructions. The advantege over other methods (including Ubuntu's own) is that you still can use your pendrive as storage as usual. On restart, disable Boot Booster first (press F2 repeteadly on bootup). Then you should recover the POST. Make USB stick the first bootable drive, save and restart pressing F10 . Presto, you are able to use a Live CD, install Ubuntu or any other distro, whatever. From liveCD you easily install Ubuntu, alone or as dual-boot, just click "install" and follow the instructions. You have to be careful if dealing with manual partiitioning (gparted is awesome...).
Still waiting for a proper NVIDIA Optimus-capable driver though....:(

Domingo, Outubro 17, 2010

Web2py - primeira aplicação.... Parte I

Depois de estudar por um bom tempo com atenção o livro no site do framework web2py eu pude construir minha primeira aplicação (application), que se refere a uma estrutura em html para o processo de registrar, selecionar, editar, deletar (crud:) funcionários e seus dados, como nome, matrícula, RG, CPF, data de nascimento, foto, etc. utilizando web2py. Tomei o cuidado de não hardwire nenhuma URL, contando com a ajuda dos helpers e do scaffolding e laytout da aplicação default. Ou seja, com a exceção de 'funcionario.nome' e 'funcionario.id', a aplicação poderia ser usada para quaisquer modelos semelhantes. Vamos lá então. Primeiro criamos o modelo em models/db.py, colocando o código abaixo depois do que já havia lá:
db.define_table( 'funcionario',
    Field('nome','string',notnull=True,length=50),
    Field('email',label='Email',requires=IS_EMAIL()),
    Field('nascimento','date'),
    Field('foto', 'upload',requires=IS_EMPTY_OR(IS_IMAGE())),
    Field('matricula', 'string',length=8,unique=True,
                                   label='Matrícula'),
    Field('sexo','string',notnull=True,
              requires=IS_IN_SET(['Masculino','Feminino'])),
    Field('rg', 'string',length=10,unique=True,label='RG'),
    Field('cpf','string',length=11,unique=True,label='CPF'),
    Field('end', 'string',length=40,label='Endereço'),
    Field('tel','string',length=12,
                 label='Telefone residencial'),
                    Field('funcao','string',
                 label='Função',requires=IS_IN_SET(['Docente',
                                                    'Técnico',
                                                 'Secretário',
                                              'Desenhista'])),                                         
    Field('area','string',label='Área',
                          requires=IS_IN_SET(['indeterminado',
                                          'Ciëncias Térmicas',
                        'Materiais e Processos de Fabricação',
                         'Mecânica dos Sólidos e Projetos'])),
    Field('formacao','string'),
    Field('titulacao', 'string',length=100,label='Titulação'),
    Field('telefone','string',length=12,
                               label='Telefone funcional'), )
    
db.funcionario.id.writeable=db.funcionario.id.readable=False
Observe que foi definida uma table denominada 'funcionario' (em sqlite) usando DAL e com vários campos de interesse, alguns validadores. Em particular IS_IN_SET([ , , ]), que produzirá um drop-down menu, e 'upload', que produzirá um widget de upload/download/delete na 'foto' do funcionario, quando construídos mais tarde nas views. Esta tabela abrigará todos os dados sobre os funcionários. Observe também como os labels aparecerão nas representações e formulários (forms) finais. Ah sim, tudo foi editado/construído usando o editor TTW (Through The Web) padrão do próprio web2py.
Na parte II discutiremos as actions e as views, bem como as modificações no layout.html e no menu.py.

Quarta-feira, Agosto 25, 2010

Temos que tomar muito cuidado com a discussão sobre os novos candidatos, ou então os argumentos resvalarão para um caráter fortemente elitista, tão ao gosto da aristocracia que tem tomado conta da nação pensando sempre em seus próprios interesses. A questão aqui não reside na escolaridade formal, muito menos na atividade profissional dos candidatos (qual a escolaridade e a atividade profissional "adequadas" para se ser candidato? Dono de matadouro ou usineiro serve?), mas na total ausência de programas e de comprometimento com a coisa pública, ou com as questões que envolvem a cidadania e as políticas públicas. Porém, nisso não estão sendo em nada diferentes das elites, cuja lição aparentemente foi muito bem aprendida. Não, eles apenas querem comer da mesma mesa que as elites, criar seus próprios apadrinhados, ficar donos de meios de comunicação (se sobrou algum), gozar dos mesmos esquemas de corrupção, empregar os seus familiares, privatizar os recursos públicos. Afinal, não têm eles - e nós - os mesmos direitos de apropriação privada do Estado garantidos pela Constituição? :)
Hey, separa a minha parte aí...

Segunda-feira, Maio 10, 2010

sfepy e a compilação de scikits-umfpack

Tenho desenvolvido um grande interesse em sfepy [1], um framework de elementos finitos em Python, que utiliza como base um arquivo de configuração contendo a estrutura típica do método: um arquivo com a malha do dominio, as condições de contorno, os materiais utilizados e as equações na forma fraca expressos de forma simbólica. Entretanto, para que que se possa build o aplicativo sfepy, é importante que se monte a biblioteca UMFPACK. Uma forma de se fazer isso com Python é através de scikits-umfpack [2]. Entretanto, para que se possa build scikits-umfpack, é necessário que sejam compiladas as bibliotecas umfpack e amd. Para isso, você precisa dos aplcativos UMFPACK, AMD, CAMD, CHOLMOD, SPQR, COLAMD, CCOLAMD e do configurador UFconfig [3]. Além desses, você precisa de um bom BLAS, obtido por exemplo por meio do excelente GotoBlas [4]. Já se sente meio perdido? Continuarei a saga em outro post...
[1] http://code.google.com/p/sfepy/
[2] http://scikits.appspot.com/scikits
[3] http://www.cise.ufl.edu/research/sparse/SuiteSparse/
[4] http://www.tacc.utexas.edu/tacc-projects/

Domingo, Abril 25, 2010

Evaluating thermodynamic properties

A student of mine André Massashi Komatsu has recently not only typed in all the data from Table A1 from Assael's book, but moreover has input those data into a database using sqlite3, a system file RDBMS which is native to Python 2.6 std lib. Mr. Komatsu has also developed a class whose methods return a dictionary in which the values are the properties associated to any one of the 102 substances in A1 Table, as the key. That allowed for quite a simplification of the previous proptermo_assael's API. Remember that using proptermo_assael we could determine ideal gas properties, such as enthalpy and entropy. However, in order to that, we previously needed to furnish Cpo,Cp1,Cp2,Cp3, M for the substance. Now, you just furnish the substance's name or formula, as stated in Table A1 and everything else is taken care of... Cool, huh?

Quarta-feira, Fevereiro 17, 2010

Using Google Buzz...

Since February 10th I am being busy buzzin' with the help of Google's Buzz service... So far I am enjoying it quite a lot 'cause it is very easy to use directly within Gmail.

Quarta-feira, Agosto 13, 2008

Encontre aqui as instruções para uma instalação bem sucedida de Python 2.5.x em Windows, com qualquer classe de processadores. Essas instruções foram colocadas no portal http://200.145.244.188/Disciplinas.

Instruções para instalação de Python/numpy/scipy/matplotlib sob Windows


1- Instale a versão monolítica produzida pela Enthought para Python 2.5.2, que pode ser encontrada em Enthought Python Distribution EPD (126 MB) em C:\Python25.

2- Abra C:\Python25\Lib\site-packages e delete os diretórios numpy.x.x.x.egg, scipy.x.x.x.egg e matplotlib.x.x.x.egg.

3- Execute na ordem o programa numpy-1.1.1-win32-superpack-python2.5.exe, o programa scipy-0.6.0.win32-py2.5.exe e o programa matplotlib-0.98.3.win32-py2.5.exe, que podem ser encontrados nesta pasta do Portal.

6- Descompacte o arquivo idlelib.zip (preservando a estrutura dos subdiretórios) e copie o diretório idlelib para C:\Python25\Lib, sobre o idlelib que lá estiver, deletando ou renomeando o original.

PRONTO!