nunojob:~ dscape/08$ echo The Black Sheep

Archive for the ‘Education’ Category

Reitoria volta a atacar – As praxes académicas

A praxe é, por natureza, uma anormalidade. Não vou discutir que dentro da anormalidade que é algumas pessoas tentam, de facto, integrar os alunos. Mas é uma coisa medieval e não tem lugar numa instituição de ensino superior. Nos moldes que as praxes são praticadas isto é um facto. E os responsáveis pela universidade, como o reitor, sabem isto. Não o dizem porque só têm a perder e nada a ganhar. Mas sabem-o. Sabem-o mas não fazem nada acerca disso.

Contudo como o ministro Mariano Gago enviou um oficio a falar sobre a responsabilidade criminal das praxes seria de esperar que o reitor mudasse algo. A pergunta seria. Será que vai ter a coragem de proibir os actos de praxe na academia ou, muito simplesmente, irá passar a batata quente para o lado dos alunos/docentes/funcionários com um despacho que mostra o seu compromisso em querer mudar as coisas, sem de facto o fazer? A resposta, essa é simples

Aqui está ela:

– Todo e qualquer acto ou procedimento que configure ilícitos de natureza civil, criminal ou disciplinar, deve ser de imediato participado à Reitoria, seguindo a tramitação normal.

Por exemplo dar uma joelhada na cabeça de um miúdo recém entrado na universidade? Ou andar de mascaras a coagir os caloiros a fazerem coisas contra a sua vontade, até eles chorarem? Quem faz isto? Resposta simples: As pessoas que são consideras pela AAUM como a máxima entidade no que toca a praxe. A joelhada que eu presenciei foi dada, por exemplo, por aquele que toda a gente indica como próximo papa. É o número dois da praxe. Admirado? Claro que não.

– Qualquer agente da Universidade, docente, funcionário ou estudante, que presencie actos ou procedimentos que configurem ilícitos de natureza civil, criminal ou disciplinar e que os não participe, pode ser responsabilizado (civil ou criminalmente) por omissão, em coerência com o conteúdo do Ofício ministerial.

Traduzindo: Se vires denuncia. Se não o fizeres a culpa é tua. Nossa nunca é.
– A participação nas actividades com significado académico ou sócio-cultural, integradas no acolhimento aos novos alunos, tem carácter voluntário, pelo que nenhuma forma de coacção física ou psicológica deve ser permitida nas instalações da Universidade.

Acho que preciso de andar menos de 50m para ver isto a acontecer, pelo menos, umas 5 vezes num espaço de uma tarde.
Não são autorizadas em nenhuma circunstância, manifestações de acolhimento, fora do Programa de Acolhimento aos Novos Alunos, que perturbem o normal funcionamento das actividades da Universidade.

Como dizer aos alunos para faltarem as aulas para ir fazer a praxe X/Y? Também nunca aconteceu. Nem vai continuar a acontecer…E a parte das manifestações de acolhimento é de rir. Digno de um sketch de gato fedorento. Estarão-se a referir a rebolar na lama, fazer flexões ou comer cebolas cruas?

Isto tudo é um pouco como o Marcelo e o aborto. É proibido, mas pode fazer-se. Eu cá aguardo o dia em que o reitor da Universidade do Minho seja uma pessoa de convicções e que não tenha medo de enfrentar as tempestades em prol de uma universidade melhor. Até lá, boa sorte aos caloiros.

O meu conselho é não participem nas praxes, nem assinem documentos a dizer que são anti nada, nem sequer liguem a qualquer pessoa que vos pede para os tratar por doutor/engenheiro. E se algum for contra o que diz neste despacho, denunciem a associação académica e não aceitem a lavagem que eles vos vão tentar dar a dizer que não há necessidade e é uma coisa de nada. Há necessidade e é muito grave. Se eles não fizerem nada, denunciem a policia e depois fiquem a ver como eles começam a saltar quando o fogo lhes chega ao rabo. Não deixem que ninguém vós rebaixe ou vos humilhe. Os vossos pais estão a pagar pela vossa educação, não para que uma cambada de imbecis vos trate como se não fossem humanos e tivessem menos direitos.

Engenharia Informática nas Universidade Públicas

16.50 | Universidade de Aveiro     | 65  Vagas | Engenharia de Computadores e Telemática
16.18 | FEUP                       | 102 Vagas | Engenharia Informática
15.34 | Universidade    Minho      | 117 Vagas | Engenharia Informática
15.10 | Universidade de Coimbra    | 95  Vagas | Engenharia Informática
14.20 | Universidade Nova Lisboa   | 160 Vagas | Engenharia Informática
14.10 | Universidade de Lisboa     | 95  Vagas | Engenharia Informática
14.05 | FCUP                       | 70  Vagas | Engenharia de Redes e Sistemas Informáticos
13.83 | IST                        | 170 Vagas | Engenharia Informática e de Computadores
13.67 | UTAD                       | 25  Vagas | Engenharia Electrotécnica e de Computadores
13.50 | Universidade    Algarve    | 30  Vagas | Engenharia Informática
12.70 | Universidade de Évora      | 25  Vagas | Engenharia Informática
12,55 | Universidade da Beira Int. | 55  Vagas | Engenharia Informática
12.50 | IS Tecnico                 | 98  Vagas | Engenharia Informática e de Computadores
11.17 | ISTGBeja                   | 40  Vagas | Engenharia Informática

myAmbrosio

Para aqueles que andam sempre atentos as novas startups aqui está mais um projecto inovador acabadinho de sair da Universidade do Minho. Apesar de o projecto ainda estar muito verde os autores já contam com algumas parcerias importantes, assim como o sempre necessário apoio financeiro.

A ideia por trás do Ambrosio é um agregador de produtos/lojas de comercio tradicional, servindo este como veiculo de promoção das lojas/produtos e fornecendo aos utilizadores finais produtos que, por exemplo, não conseguem comprar num Hipermercado perto de si. Outro tipo de mercado que se pode abrir é certamento o do turismo rural através de, por exemplo, uma sugestão de onde dormir, onde comer ou indicação de onde estão a decorrer as festas tradicionais da terra.

Caso estejam interessados no conceito podem ver o video explicativo acabadinho de sair e contactar os autores com sugestões.

Licenciatura antes de Bolonha igual a Mestrado?

Na Universidade do Minho, provavelmente, sim. Quando se perde a esperança em Portugal e nos Portugueses, quando se acha que já ninguém faz nada apenas porque é o que se deve fazer (embora dê trabalho), eis que surge a surpresa.

Por exemplo, a minha prima anda a estudar para ser localizadora está actualmente a perder um ano no quarto da sua licenciatura porque não lhe deram equivalência ao novo curso de Bolonha (3 anos). Se falhar qualquer dos exames será obrigada a fazer essa cadeira para ter a equivalência ao novo curso de 3 anos. Ela deve pensar que a uminho é espectacular. Não é. (Mas a Universidade do Porto anda muito mal Joaninha.. :P)

Mas, pelo menos nos serviços académicos alguém anda a tentar fazer com que isto seja o mais justo possivel para os alunos. E só isso merece um aplauso deste rapaz que já tem um empréstimo de 5000 euros porque a sua bolsa de estudo social foi retirada devido a bolonhices.

E porque acho isto justo? Porque era uma palhaçada em portugal estudar-se 5 anos para se tirar uma licenciatura quando lá fora é sempre 3+2 (USA, UK e Europa pelo menos). Acho muito bem que se deem agora condições especiais aos alunos que tiveram que aturar este aborto chamado licenciatura puderem estar em igualdade com o resto do mundo, sem parecer que fizeram o curso no Bangladesh.

Tendo dito isto, PATAS AO AR! (Paws In The Air for danish retards that visit my blog)

Nova startup promete arrasar com o maisgasolina

Novo e intrigante email que recebi hoje:

Chegou a concorrência ao maisgasolina e, ao que parece, tem pernas para andar. Um dos autores é Tiago Ribeiro, que foi recentemente premiado pela microsoft (buuh) com o premio great minds, great efforts, e é também o mentor do project e-sharing. Para já deixo-vos o email que recebi.

Olá!

A thirdlabs, em parceria com a InnovationPoint S.A., gostaria de convidar a comunidade académica a participar no seu novo comparador de combustíveis gasmappers.com, que acaba de lançar no mercado nacional. Trata-se de um portal comunitário, de adesão livre e com uma interface intuitiva que permite saber quais os postos mais económicos para abastecerem o vosso carro, de acordo com vários critérios e condições de geolocalização.

Este convite (…), sendo a equipa composta por um aluno do 3º ano do Mestrado Integrado em Engenharia Biomédica da Univ. do Minho (Rui Marinho), por um ex-aluno de Engenharia Informática do Instituto Politécnico do Porto (Sérgio Castro) e ainda por um aluno do Mestrado em Engenharia Informática da Univ. do Minho (Tiago Ribeiro).

Esperamos que desfrutem do site e que contribuam sempre que possível. Estamos abertos a sugestões e comentários, quer via Google groups, quer por email para info@gasmappers.com.

Desabafo sobre o mestrado

O mestrado em que estou é composto por duas unidades de especialização. Penso que foi feito assim para permitir as pessoas especializarem-se podendo trabalhar ao mesmo tempo, já que em regime part-time podem frequentar uma UCE durante um dia por semana (e pagar metade da propina) enquanto trabalham em outros cinco dias.

A ousadia e modelo idealizado por alguns dos directores de departamento (e conselho cientifico) merece, na minha opinião, um forte apoio por parte dos alunos. Não foram em pantominisses de mestrados integrados que dão direito a licenciaturas da treta, remodelaram a licenciatura a sério e pensaram num plano de mestrado a altura. Poucos foram os que foram tão longe e é por isto que a Universidade do Minho acaba sempre por ter bons cursos. Tomam-se boas decisões na altura de remodelar, sem ser a reboque de decisões duvidosas baseadas em premissas obscuras (pe: despedimentos, o não aumento das propinas, etc)

Para mim o problema das decisões foi… Apenas as que eu tomei.

Na altura tive uma discussão com um amigo meu (Olá Diogo) sobre se se deveria ou não escolher a área de especialização tendo como critério principal a qualidade dos docentes. Eu defendi que seria um absurdo escolher não pela área que gostamos mas apenas porque os professores são mais competentes (organizados, cientificamente capazes, actualizados, etc). O Diogo sempre defendeu o contrario, que seria impossível ter um mestrado a altura sem aproveitar o melhor que o departamento tem para oferecer em termos de docentes.

Hoje penso que estava errado.

Dia após dia faço trabalhos que não considero dignos de serem englobados no mestrado, não existe um planeamento cuidado das aulas, não existe uma aprendizagem vocacionada para criar investigadores. Tudo o que sei sobre artigos científicos, ou teses aprendido dentro da Universidade foi na especialização que partilho com o Diogo, que tem um corpo docente muito bom. Na outra são trabalhinhos, ferramentas, brincadeiras, tpcs. Dá a ideia que se pode faltar um semestre inteiro e aparecer na altura do exame e tirar a mesma nota (ou melhor) que se tivéssemos frequentado as aulas. Os docentes dizem aos alunos que o mestrado não tem saídas profissionais (o que é mentira, eu vou ter estágio na área) , não estabelecem a calendarização das aulas (nem sequer dos exames), tratam mal os alunos, até chegam ao cumulo da desgraça de referir alunos por terem uma ou outra deficiência e achar isso “incrível”. Existem pessoas sem escrúpulos capazes de abusar da sua posição de poder para passar a mensagem que estão ao vosso nível (talvez queiram mostrar que são superiores, mas eu não tenho respeito por pessoas assim. Desprezo-as). Acreditem passaram-se coisas comigo que eu considero inacreditáveis. Docentes que tiveram atitudes de tal forma graves, e em frente a outros docentes, mas que passaram completamente impunes. Eu também assim o permiti porque muito sinceramente a minha vida é outra e não me dei ao trabalho de me chatear. Mas pergunto-me, como podem os outros olhar para o lado e fingir que nada se passou? Claro que tudo isto é sempre injusto para alguns docentes que são competentes mas sem grande culpa ficam associados a tudo isto. Mas já dizia o outro “diz-me com quem andas, dir-te-ei quem és”

Ainda nem falei da sobrecarga de trabalhos que são dadas em outras especializações mas resumindo cabe tudo nisto: Se estão a considerar entrar no mestrado em informática na Universidade do Minho tem aqui um incentivo. Mas informem-se sobre quais as especializações que são de facto algo de relevante. E informem-se sobre os docentes. E tomem boas decisões. Não que acredite que vos vá mudar o rumo profissional mas, pelo menos, tenho a certeza que vão passar um ano bem mais agradável e dar o vosso dinheiro por melhor gasto.

Está aqui o meu email e estou sempre disponível para esclarecimentos :) Vou voltar aos trabalhinhos patéticos que faço para o mestrado. Sinto que estou a desaprender quando o faço, e sinto uma tristeza e vergonha semelhante a que teria se trabalhasse na Microsoft (pessoal isto foi uma piada) :P

Criptografia Aplicada à Segurança em Bases de Dados

Resumo: A preservação da privacidade entre várias bases de dados apresenta-se como um dos mais intrigantes desafios na criptografia actual. Várias técnicas têm sido desenvolvidas no sentido de tentar resolver este problema. Este artigo surge então como uma revisão bibliográfica sobre o tema com especial foco na Anonymization, Private Information Retrieval e Secure Multi-Party Computation. Serão também apresentadas algumas directrizes para trabalho futuro, no qual se tentará aplicar os conhecimentos adquiridos a um problema concreto.

Link: report.pdf

Recomeçamos, NUNCA nos rendemos!

A frase é do Lars Gustafsson, no meu livro favorito “A morte de um Apicultor”. Que com um pouco de sorte o João Moura anda a ler.

Summer School CDDIP 2008, Struer, Denmark – Selected!

I was selected for all paid trip Struer (Denmark) representing University of Minho – Portugal in the Summer School CDDIP 2008 Erasmus IP program. As far as I know at least five lucky Portuguese students will attend.

But what is CDDIP? CDDIP stands for Conceptual Design and Development of Innovative Products and the goal is to facilitate better interdisciplinary and multidisciplinary collaboration for BSc and MSc students with different technical backgrounds.

If you are from another country and you are also going you can leave me a comment. See you there!

Problema resolvido: NetworkContacto, As candidaturas estão abertas

Como viram andava aborrecido com o facto de não me conseguir candidatar ao programa. Bem parece que o problema está resolvido.

Para quem não sabe o NetworkContacto é um programa de estágios internacionais financiados dentro da comunidade europeia. Existem programas parecidos para, por exemplo, fazer estágio no Japão (Vulcanus in Japan).

Boas candidaturas e viagens :)

PORQUE????

Não consigo compreender porque é que o governo continua a gastar dinheiro em soluções proprietárias que nem sequer separam o ambiente de development do ambiente de deployment.

Para fazer um formulário é preciso usar ASP? Não podiam ter usado LAMP ou Ruby on Rails? E acima de tudo não o podiam ter feito isto _direito_ ?

Lembram-se do e-archia?

FACTOS:

OBS:

Não há links para os trabalhos de 12 porque nenhum deles está online.

Deve ter sido por causa de não ter corrigido os erros ortográficos. É que parecendo que não. É chato! E com o tempo torna-se aborrecido.

Primeiro contacto com programação por parte dos alunos do ensino superior

Qual deve ser a linguagem de programação que serve de introdução ao seu curso superior de informática? Para mim a resposta não podia ser mais evidente: Haskell.

Pelo que sei no ISEP a primeira coisa que se aprende é Java, o que acho chocante. Afinal o paradigma de programação orientada aos objectos é vastíssimo e ensinar alguém a programar em Java sem estes conhecimentos por trás parece-me de uma irresponsabilidade incrível. Isto após uma reestruturação que ocorreu o ano passado! Pode-se alegar que o ISEP tenta formar profissionais que sejam absorvidos o mais rapidamente possível pelas empresas, que não se pretende formar investigadores. Mas, na minha opinião pessoal, existem coisas que são base para um licenciado em informática. Têm que conhecer os paradigmas de programação que existem pelas valias que eles oferecem e não pelo facto da sua sintaxe ser mais ou menos acessível. Como me parece evidente que qualquer informático deve saber estruturas de dados e algoritmia. São as ferramentas base com que trabalhamos diariamente e por muito que as empresas queiram monos lá a trabalhar a “chapar” código têm que existir algo que diferencie esse mono de um pedreiro. Senão para que o canudo?

Mas e porque Haskell?

  1. É uma linguagem funcional. Os problemas são entendidos como problemas matemáticos, o que permite aos alunos quebrar com a pre-formatada ideia que programar é deve ser seguindo o paradigma imperativo.
  2. A maneira de pensar nesta linguagem é diferente. Dijkstra disse que “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”. Aposto que ele diria o oposto sobre Haskell. É difícil ensinar mal alunos que começam por aprender/gostar de Haskell.
  3. Ao aprender os vários paradigmas o aluno torna-se mais versátil. Começando por Haskell certamente que não vai ver todos os problemas de uma forma imperativa. Esta forma diferente de pensar vai-lhe permitir, no futuro, a mais valia de saber escolher o método mais apropriado para resolver um problema que se depare no futuro. Pode na altura não usar Haskell mas vai-se lembrar dos mecanismos que aprendeu e da forma, correcta, que aprendeu para resolver problemas.
  4. As outras vantagens do Haskell: Esquema de recursividade extremamente simples, Strongly Typed, Lazy Evaluation, Elegância do código.

Atrevo-me até a dizer que podem dizer mal do Haskell em tudo que quiserem menos que é mau como ferramenta de ensino. Para isso, é simplesmente divinal.

Se quiserem ver uma melhor resposta a esta pergunta Why Haskell podem ler este artigo no Good Math, Bad Math. E caso queiram espreitar um pouco de código podem visitar (e rir-se um bocado com) este The Evolution of a Haskell Programmer.

e-archia.net

Bem a minha primeira aventura em rails chegou a metade. Quem estiver interessado em ver as sources, pode sacar este não-tão-pequeno ficheiro. Senão fica aqui a screenshot. O site não está online porque eu, com a pressa, não tenho a certeza ser fiz escapeHTML ao texto que vem da base de dados. Ficam as screenshots:

Random in Ruby on Rails

So your doing a find on your model and you want a random instance. I didn’t find a method to do this so I decided to make my own.

In this case I wanted a random quote. So after generating the model all I had to do was:

def self.random
  Quote.find_by_id rand(Quote.count) + 1
end

And now you can simply call your random quotes in any controller action you desire. Just

@rquote = Quote.random

If this is the lamest ruby ever please feel free to give me some feedback :) I will be delighted to learn a different way!

[EDIT: Discussion about this at Rails Core]

xForms Example (CSS)

Sample Xforms Application using cssSo here comes my first ever XForms sample. If you are interested in testing them out I’ll have to give you some pointers. First off all your browser probably can’t render XForms. So you need to find a specific add-on for your browser to make it work. As this XForms where made in Mozilla Firefox with this add-on I strongly recommend that you use it to get the same results. This is not my fault, XForms is not as mature as HTML or CSS and therefor these things tend to happen. You will see what I’m talking about when I get to the Know Issues! :PNow two short notes:

  • For the load/save button to work you will need to change the path in the code. Just look for xforms:submission and replace the filepath for the one in your computer.
  • You need to comment what’s between this for the load button to work. Why? The bind is interfering with the instance replace. How do you fix it? If i knew I would have. I think that when I do remove the bind and add the schema this behavior will be fixed..

<!– remove this lines to erase load bug. Using a schema will fix this –><!– EOB: End of bug –>

Credits for the icons go to famfamfam.Here is the list of known issues (any help is welcome):

  • Not binded to the schema. That’s because I’m lasy and METS is hard work.
  • xforms:select1 won’t hide the scroll on overflow:hidden. I’m not sure this is my responsibility as the add-on doesn’t represent a full XForms implementation.
  • Submission not implemented. That was really not the point.
  • Submission button is relevant when no authorid or workid is given. Anyone?
  • Can’t style ‘add’ and ‘remove’ trigger differently from the other xforms|trigger. I tried creating a class for them having as result a weird inverted triagle. To replicate this bug you need to find a trigger and add style=”border:100px;”.

For now: that’s all folks! Have a nice week.

Creating a User Interface for XML Schema using xForms

We use XSLT all the time to convert a XML document into another format. XML Schemas are XML documents and I think it would be interesting to create the user interface and model for that specific schema using xForms. This would drastically decrease development time and would allow a quick view on what that XML Schema is all about. In other words, this would do for xForms what JAXB does for Java.

Why xForms? xForms is W3C recommendation for creating user interfaces and it’s based on the MVC pattern. This is enough to convince me, I’m all for standards.

While researching I found some works on this subject [here, here] but they are mostly on conference proceedings and therefor I thought no one had really implemented a Generic Schema to xForms transformation engine. Before giving up I asked Vítor Rodrigues about this, as IBM is know for their XML Alphaworks. Guess what? Now I have the solution.

Here’s what you need create an xForm from a Schema:

  • Download Eclipse WTP
  • Open Eclipse and browse to Help > Software Updates > Find and Install
  • Click New Remote Site
  • Name: Emerging Technologies Toolkit (ETTK) Updates
    URL: http://awwebx04.alphaworks.ibm.com/ettktechnologies/updates
  • Select it and click Finish
  • Now select Emerging Technologies Toolkit (ETTK) Updates > Emerging Technologies Toolkit – Technologies > Visual XForms Designer
  • Click next.
  • Accept the license, install the software and restart eclipse.

Now for the Visual XForms Designer I made a little screen-cast. Just click here to see it.

xForms Resources

We will post a xForms/METS/DB2 screen-cast in this website soon. To get you prepared for this I advice you to download this firefox plugin and read the following articles:

In case you are looking for good examples you can visit this wikibook or better yet… Open your console, and create a directory in your home folder. Enter the folder and write this:

svn checkout http://xforms-examples.googlecode.com/svn/trunk/ xforms-examples-read-only

These are some great samples from Google Code. Believe me I’m saving you time with this advice. You won’t need to spend hours on badly executed examples from companies that are supposed to be building xForms implementations. Outch!?

Pluggable Authentication Modules

Este trabalho serve como introdução aos Plugglable Authentication Modules (PAM), do ponto de vista da administração de sistemas e desenvolvimento de aplicações num ambiente Linux. São também abordadas as temáticas da segurança e do desenvolvimento de novos módulos. Para finalizar é apresentado um pequeno exemplo prático em como desenvolver uma aplicação PAM-aware. 

Quem estiver interessado numa breve introdução ao PAM basta carregar aqui.

Acordar Cedo!?

Hoje quando peguei no carro bem me parecia que estava frio. Um grau negativo em Braga. É caso para dizer: Porra! :P
E já agora já ouviram falar em gramática independentes de contexto a gemer!? Não!? E se vos falar de parsers a gemer?

Dado este input

INDICE
1= a,b,c
2= e,d
3= e,f
5= a,f
7= b,a
10: f
FINDICE

A seguinte gramática gemia.

p1: Index -> INDICE Conteudo FINDICE
p2: Conteudo -> Parte
p3:                | Conteudo Parte
p4: Parte       -> NrPagina = Palavras
p5: NrPagina   -> num
p6: Palavras   -> Palavra
p7                  | Palavras Palavra
p8: Palavra     -> pal

Alguém sabe dizer porquê? :P

Featured DB2 Student Ambassador

Featured IBM DB2 Student Ambassador

I’m really happy to announce that I was selected as featured DB2 Student Ambassador on IBM website. I really would like to thanks Vítor Rodrigues for all the help, for being a my DB2 mentor and most of all a good friend! I also feel obliged to mention the work of the other DB2 Ambassadors that have helped to establish the first Portuguese DB2 Study Group. So Simão, Hélder, João, Nuno and Marcelo thank you :) Finally I would like to thank the support of CeSIUM and CAOS, two students organization that I am a part of and that provided the hardware and know-how that made the site, blog and DB2 server a reality.

I hope that with this many Portuguese students like myself see that your work can be recognized – even by industry leaders like IBM – if you just go the extra mile. So do it! It’s your life, live it to the the fullest.

Para ser grande, sê inteiro: nada
Teu exagera ou exclui.

Sê todo em cada coisa. Põe quanto és
No mínimo que fazes.

Assim em cada lago a lua toda
Brilha, porque alta vive

Ricardo Reis (Fernando Pessoa)

Vistoria na Residência

Acordaram-me as dez da manhã para uma vistoria. Embora seja muito provavel que fosse porque alguém deu uma pertence como roubada, quando confrontamos a responsável com o motivo foi-nos dito que era por causa da HUMIDADE.

Foi mais ou menos assim:

Por muito que gostasse de vós dizer que estava a brincar – à parte do video que é de uns apanhados – não estou. Foi mesmo assim o meu acordar. Embora a menina que se queixou da humidade fosse ligeiramente mais bonita… Talvez muito.

Uma pequena introdução as assinaturas digitais XML

De acordo com o RFC2828 uma assinatura digital define-se como sendo um valor calculado com um algoritmo criptográfico e anexado ao objecto de dados de tal forma que se possa usar essa assinatura para verificar a autenticidade e integridade dos dados.Então o que é uma assinatura digital XML (W3C XMLDSIG)? É, como seria de esperar, uma assinatura digital mas adaptada a assinar documentos XML.A forma como funcionam é extremamente fiável.Logo para começar a assinatura não só assegura que a pessoa assinou aquele documento é de facto quem se espera – através de um certificado – como também que o mesmo se manteve inalterado até ao momento em que foi apresentado. Uma mensagem encriptada com uma chave pública apenas pode ser desencriptada com a correspondente chave privada.

Começamos por processar o documento. Para isso precisamos de transformar o ficheiro XML em um ficheiro que seja igual na fonte e no destino. Como sabem em XML ter

<nome>   Nuno Pinto</nome>

É igual a

<nome>Nuno Pinto</nome>

Logo surge a necessidade de criar uma representação única para cada documento XML. A este processo chamamos canonicalização. Numa assinatura digital XML existe a necessidade de explicitamente declarar qual foi o algoritmo usado para criar esta representação. Agora podemos processar o documento XML e criar, através de um algoritmo criptográfico num processo normalmente chamado de digest, uma impressão digital do documento. Em seguida, com a chave privada, encriptamos essa impressão digital e enviamos para o destinatário a nossa assinatura (que contém a chave pública, certificados, impressão digital assinada e os algoritmos que foram usados para o digest e a canonicalização).Ao receber o documento assinado pode-se verificar o resultado do digest do documento (usando os algoritmos contidos na assinatura). Depois podemos desencriptar a impressão digital assinada e comparar os dois valores. Se coincidirem é valido dizer que o documento é autentico e não foi alterado. Fixe!Por fim resta dizer que existem três tripos de assinaturas XMLDSIG.

  1. Detached: O documento XML a ser assinado e a assinatura estão são dois ficheiros distintos, sendo que esta tem uma referência ao documento que se propõe a assinar.
  2. Enveloped: O documento XML e a assinatura surgem no mesmo ficheiro de uma forma sequencial.
  3. Enveloping: O documento e a assinatura estão contidos em um envelope XML.

Se este artigo serviu para vos aguçar o apetite sobre este assunto, podem ler mais sobre o assunto no artigo Programing with Java XML Digital Signature API feito pelo Sean Mullan da Sun.

Ornatos Violeta – Deixa Morrer

Para quem estava interessado no tema anterior deixo-vos as sources do livro Beginning Cryptography with Java. Pelo menos usa bibliotecas de uso livre (bouncycastle). Quando acabar o trabalho disponibilizo-o neste post. É com muita pena minha que tenho que comunicar que o livro não está disponível na biblioteca da Universidade do Minho.

[EDIT: Código fonte disponível aqui]

E agora a minha música favorita de uma banda que muita falta faz no panorama musical português. Ornatos Violeta, claro!

Não nos deixei mentir e agora tanto faz. Vou dar o mundo a quem!?

Decrypting a S/MIME PKCS7 Signature [P7S]

I’m off to a Wedding and won’t be online until I return. This will be serious as I will not be able to do more research on Decrypting a S/MIME PKCS7 Signature.

So, any quick ideas to help me out before I leave?

Thanks and have a nice weekend ;)

Diffie-Hellman Java Implementation

Diffie-Hellman is a cryptographic key agreement algorithm that allows two parties that have no prior knowledge of each other to jointly establish a shared secret key over an insecure communications channel. This key can then be used to encrypt subsequent communications using a symmetric key cipher.

We were asked at cryptography classes to develop such algorithm using the core java libraries. I made a little test – I think they call it jUnit – to prove that both famous Bob and infamous Alice share the same dirty little secret.. :)Source: http://nunojobpinto.googlepages.com/diffie-hellman.zip[EDIT: As Ruben pointed out Diffie-Hellman is vulnerable to man-in-the-middle attacks. This is a purely academic work and – despite the brilliance of the response – is not intended to be used as is. If you want to learn more about this maybe you should read about station-to-station and certificates. In Portuguese you can use the resources given to cryptography masters students at University of Minho]Also if your using Netbeans IDE 6 you are probably noticing that the themes SUCK. I don’t even mean this as it’s not eye-candy, I really mean they hurt the eyes and I am already using glasses due to the overwhelming amount of time I spend at my laptop.To surpass this I advise you to download these files:

Now open your very own Netbeans IDE – wait 10 minutes for it to start – and then go to:

  • Tools -> Plugins -> Downloaded -> Add

Now add the two files you have just downloaded and change the theme in Tools -> Preferences and you are ready to go.

Chaos Theory: The Butterfly Effect [Lorenz Attactor]

I was asked to deliver some work on chaos theory and my group choose Lorenz Attractor as object of study. It’s a really nice chaos function as you can learn in the wiki page dedicated to the subject.The work was developed in OpenGL but I’m pretty sure that it would have been easier to do so in PovRay. Ok, bad joke :PI found some useful links for OpenGL Beginners from IST (here) and UMINHO (here). If you are just learning OpenGL give them a look. (Portuguese only, sorry)If you want to give the application a try download the sources at http://nunojobpinto.googlepages.com/isdGL.zip and compile them. You’ll need GCC, build-essentials and – who would of thought? – the OpenGL libraries.It’s all explained in a slightly demented readme file. Have a nice week!

Ideia para curta-metragem

Bem, eu e o Ulisses estivemos a desenvolver uma ideia para uma curta-metragem para apresentar um trabalho de matemática (Teoria do Caos, nomeadamente Lorenz Attractor – o famoso efeito borboleta). Como provavelmente não vai haver tempo para a acabar, fica a ideia aqui (para quem tiver paciência para ler)

Speed-default: 2x realidade.

Som: respirar fundo. Ofegante.

Luz: Liga com som Click.

Estudante levanta-se porque teve uma ideia e escreve no blog.

Olha colega de quarto e pede desculpa por o acordar.

Ideia/Insónia: Trabalho sobre a teoria do CAOS.

Atractor de Lorenz.

Ver: Código Java.

Ver: Wikipedia.

Ideia: Curta-metragem em vez de Powerpoints e equações. Vê-se estudante a escrever este documento (esta frase incluída)

Ideia: Um dia na vida de um estudante. Começo do dia. Em aproximadamente 4 horas e meia. Olhar relógio. Apagão! {fade-to-black}

filme.png

(0: raiz) O inicio.

Acordar.

Tomar Banho. (apontar microondas)

Lavar Dentes.

Vestir. (apontar portátil no ubuntu)

Pegar na mala. Não confundir. Coisa de Homem. Portátil. :P

Abandonar Quarto.

Descer escadas. {velocidade: 4x}

Olhar Pulso.

(00:Left) Voltar para buscar relógio.

Elevador sempre onde não deve.

Esmurrar elevador.

Sobe escadas.

Corre no corredor.

Porta foca “Quarto dos fofinhos”.

Entrar.

Pegar Relógio.

Olhar a volta para se esqueceu algo.

Verificar dinheiro.

Sair.

Fechar porta.

Correr.

Voltar atrás a ver se porta está fechada.

Estupidez.

Seguir.

Descer escadas. {velocidade: 4x}

Encontrar amigo.

(01:Right) Seguir sem relógio.

Parar na paragem.

Olhar a volta.

Por óculos de sol {devias ter dormido mais}

Ver pessoas a passar.

Bocejar.

Olha pulso sem relógio.

Impaciente toma decisão.

(000:Left) Da conversa ao amigo.

Amigo: Tens o número do C? {velocidade: 1x}

{Mais conversa de treta}

Despedir.

Seguir.

Paragem com o autocarro a passar.

Óculos de Sol.

Segue a pé para o Campus {velocidade: 4x}

Encontra boleia.

Entra e segue de carro para o Campus, estaciona e entra na aula de ISD {velocidade: 4x}

(001:Right) Não dar conversa ao amigo.

Cumprimentar.

Pessoa: Tenho pressa vou embora. {velocidade: 1x}

Correr.

Entrar no bus mesmo a ultima.

Por óculos de sol.

Autocarro para o Campus e entra na aula de ISD {velocidade: 4x}

(010: Left) Continuar a espera pelo autocarro.

Esperar ainda mais.

Mais vídeo de pessoas a passar.

Alguém conhecido.

Conversa Casual.

Apanhar BUS.

Sentar ao lado da pessoa enquanto conversam.

Autocarro para o Campus acompanhado. Entrar Montalegrense para tomar café. Pessoa fica um pouco e depois despede-se. Tas a ler o jornal. {velocidade: 4x}

(011:Right) Decidir ir a pé.

Fartinho de esperar.

Segue a pé para o Campus. Entrar Montalegrense. Sentar. {velocidade: 4x}

Cumprimentar amigo/a que ia ver no autocarro {velocidade: 1x}.

Pedir café. Tas a ler o jornal. {velocidade: 4x}

(00) Aula de ISD

Equações no quadro.

Outro grupo explica a Atracção de Lorenz. {velocidade: 1x}

{É aqui que entra a nossa apresentação matemática}

Olha para o relógio.

Sai da aula.

Encontra pessoal no CP2.

(01) Montalegrense

Olhar pulso. Sem relogio.

Olhar telemóvel.

Horas.

Passa pessoal.

Vai com eles para o CP2.

(00: raiz?) CP2

Abre PC. Vê-se este documento.

Rewind {velocidade 24x}

Acordar.

Som: respirar fundo. Ofegante.

Olhar horas. Mesmas horas do inicial.

Dia normal com pequenas coisas a alterar o rumo enquanto passam os créditos , blur{velocidade 4x}

Dar umas passas

Vou fazer uma pausa para fumar um cigarro. Aqui fica o vídeo. Agora não fiquem doente a pensar que tem bolas de alcatrão no vosso corpo. Se bem que a ideia não parece totalmente … O vídeo:

A Mais Alta Arvore de Natal da Europa

A Mais Alta Arvore de Natal da EuropaVenho agora da cidade da Arvore de Natal Mais Alta da Europa! Temos o GP Histórico, temos o RedBull Air Race e agora a Arvore de Natal Mais Alta da Europa. É daquelas coisas que dá orgulho de ser portuense! Ter um governante assim dá gosto. Uma pessoa incorruptível, uma pessoa que jamais fecharia a Câmara ao Futebol Clube do Porto se fossem campeões europeus, uma pessoa incapaz de despejar velhinhos que viveram toda a sua vida na mesma ilha, uma pessoa que seria incapaz de emitir um despacho que proibisse todas as pessoas que vivem em bairros sociais de mudarem para outro. Afinal quem mais que ele percebe como é morar na torre 1 do Aleixo com dois filhos com menos de 7 anos. Não percebe senhor Rui Rio? Claro que percebe. (A continuar assim manda alguém dar pancada a uns camionistas na ponte do Freixo e ainda acaba como presidente da republica!)

Tenho muito orgulho em dizer que quando estava no décimo segundo ano e era representante dos alunos da minha escola me recusei a estender a minha mão e cumprimentar este senhor. Valeu a pena o raspanete que levei do director, a minha mãe sempre me ensinou a não me dar com escumalha.

Mas afinal quem é que quer saber da merda da maior arvore natal da Europa? Quem??? Quero Eu. Tenho aulas amanhã e tive que ir até Campanhã apanhar o comboio para Braga porque os parolos todos sairam a rua para ver o raio da arvore. É um pinheiro pessoal, atinjam, um pinheiro. Falso ainda por cima. Um pinheiro! Querem que soletre? Não tem duendes mágicos, não oferecem rebuçados, não estão lá as meninas da netcabo, nem sequer os famosos Microsofties talibans de quem o Mário Lopes tanto gosta. É apenas e só um pinheiro. Falso.
Agora que não venha agora alguém da câmara com chantagens para o meu email, isso é so-last-week. Actualizem-se.

Pelo menos na viagem tive a oportunidade de acabar o The Semantic Web da Wiley. O livro aborda muitos dos temas que são leccionados no meu mestrado, na unidade curricular de Engenharia de Linguagens. É uma leitura porreira para quem não saiba rigorosamente nada dos standards do W3 consortium, nem de ontologias ou abordagens à inteligência artificial. Mas se o vosso objectivo era o mesmo que o meu, ver algumas aplicações da tão famosa Sematic Web, comprem/requisitem outro livro. Neste não vão ver nada disso. O que tirei daqui foi que misturar soap/xml/xsd/svg/xforms da para muita coisa. E eu vou fazê-lo para o meu projecto de mestrado!

Entrentanto vou dando feedback aqui no blog.

As voltas com os estudos

Acho que já se notou que não andava muito feliz com o mestrado. Como se costuma dizer, quem está mal que se mude. Foi o que fiz.

Troquei a unidade curricular de especialização de Análise e Concepção de Software pela de Criptografia e Segurança de Sistemas de Informação.

Primeiro aula (para mim claro) andamos as voltas com o JBoss. A conclusão que cheguei foi que no meio de tantos xmls de configuração qualquer um se perde e mais vale usar o Apache Tomcat! Será que não aprendem com o Ruby on Rails? Convention Over Configuration! :P Não gostei muito da forma como se criam estes webservices. O facto de termos que andar com ficheiros de configuração para trás e para frente (cliente/servidor), sermos quase obrigados a programar em Java. Era bem mais fixe se estes webservices servissem xml como respostas a pedidos, por exemplo, e que depois fossem enclapsulados numa classe de forma a responder para cada linguagem de programação. Não que perceba nada disto, ainda estou muito verdinho.

De qualquer forma fica um pedido. Se alguém conhecer um bom guia para iniciantes em JBoss diga qualquer coisa. A gerência agradece!

Ensino Superior e a Criatividade

Ensino Superior e a CriatividadeUm estudo recente afirma existir uma correlação entre o número de anos que se passa no ensino superior e a capacidade criativa de um individuo.

Não consigo deixar de matutar sobre o assunto.

Parece evidente! Todos os dias somos completamente formatados para aprender isto ou aquilo, não temos qualquer liberdade sobre os projectos que escolhemos fazer e as aulas são iguais de ano para ano. Semana após semana entregamos relatórios sobre os assuntos que nos são indicados e acabamos por não ter tempo nenhum para estudar aquilo que queremos.

Eu, por exemplo, gostava de andar a estudar sobre:

  • Webservices;
  • Webcrawlers;
  • DB;
  • Ruby on Rails;
  • Usabilidade;
  • Open Source;
  • GPS.

Isto são os temas que me interessavam para desenvolver os projectos que tenho como pendentes. Onze projectos pendentes… :\ Uns mais viáveis que outros, claro, mas como dizem os ingleses “that’s not the point“. O que interessa é que no ensino superior não temos liberdade de escolha. O que deveria ser um ensino por excelência falha redondamente no que toca a criar pessoas empreendedoras, criativas e inovadoras. Pior, castra-as e frustra todas as expectativas que possam ter em levar em frente os seus projectos. Estão demasiado ocupadas a estudar <insira-aqui-o-que-desejar>.. Talvez Introdução aos Sistemas Dinâmicos. :P

Be what you want but always be youNão quero com isto dizer que o que tenho andado a aprender é inútil. (XML, XSL, XQuery, DB, SQL, UML, MDD) Simplesmente não é coincidente com a minha agenda. E, no ensino superior português, nos não temos agenda. É a agenda que nos tem a nós. Todos os dias.

Recentemente, numa conversa com o professor Armando, soube que na Dinamarca as coisas não funcionam assim. Existem Universidades onde nem existem aulas teóricas. Os alunos tem laboratórios abertos 24 horas por dia e projectos a realizar. Têm também algumas horas em que está um docente disponível não para os ensinar, mas para os ajudar com o projecto. A experiencia de aprendizagem tem os dois lados, os alunos aprendem mas o docente também. E, segundo o mesmo, alguns dos projectos conseguiam resultados bestiais. É difícil entender que se pode aprender assim?

Claro, os nórdicos fazem tudo bem. Os portugueses nunca são capazes certo? Pelo menos é isto que o imbecil do Luís Filipe Menezes pensa. Eu cá não vou em grupes e sei muito bem que não é assim. Os portugueses são capazes.. Se os deixarem!

Nas empresas, pelo menos por cá, parece-me que temos o mesmo problema. Os engenheiros que conheço têm 120% do seu tempo de trabalho ocupado. Os 20% que lhes faltam é da sua responsabilidade arranjar. (Isto sem sequer falar nos salários vergonhosos que por cá se praticam) É o salve-se quem puder. Em Portugal mede-se a dimensão de uma empresa pelo tamanho da sua conta bancaria. Alguns diriam que é a única maneira.

Eu como fui muito mal educado discordo completamente.

GooglePlex - Montain View - 42

La fora, por exemplo, na Google os developers tem aquilo que eles chamam de 20% project. Fixe, mas que raio é isso? Basicamente significa que cada developer deve gastar 20% do seu tempo a criar um projecto, seja ele qual for. Um dia por semana, se quiserem, a coçar a micose. Contudo algumas das ideias que sairam deste 20% project são o Google Reader, Google Suggest, AdSense for Content. Porreiro? Eu pelo menos acho que sim. (Só devia era ser mais o 100% project! :P)
Mas cuidado nem todas as empresas lá fora são assim! Existem aquelas que os Portugueses tomam como exemplo. Como por exemplo os meus amigos da Microsoft.

 

E essas vivem apenas da gestão do seu interesse. O seu objectivo é criar mais e mais riqueza. Já nem sabem bem porque, apenas sabem que é isso que querem.

Tempo de estudo

Puzzled

Mais uma vez a mesma história. Matemática.

Peço desculpa a quem tem o estranho, muito estranho, habito de ler este blog mas o tempo tem sido escasso para dizer o que me apetece. Já as dores de cabeça têm sido mais frequentes.

Entretanto deixo-vos com um post do Ulisses para configurarem o acesso eduroam nos vosso Ubuntu 7.10. E, já agora, se tiverem problemas com a vossa instalação do novo Ubuntu (quando inicia o ecrã fica todo preto) deixo a dica. A culpa é do splash.

Para acabar, alguém tem convites pro DOPPLR? Eu agradecia. :)

Tens Bute-Licença?

Tens Bute-Licença?A Universidade do Minho decidiu dar 2000 bicicletas aos seus alunos como forma de incentivar o uso das bicicletas no campus, promover a preservação ambiental e a melhoria da saúde e condição física de todos.

Tudo muito bonito até ver-mos as bicicletas. Bem, não sei se não tinha vergonha de andar com aquilo na rua. No contracto, desculpem no bute-contracto, pode-se ler algumas pérolas como a proibição de andar nas butes bêbado, transportar passageiros mediante pagamento e – va-se lá saber como – empurrar ou rebocar algo.

Ainda interessado? Inscrições aqui.

Há coisas fantásticas não há? :P

Software livre nas escolas

Eu devia mesmo mesmo mesmo estar a trabalhar mas está difícil. Antes de ir sinto-me na obrigação de partilhar esta nova iniciativa. Segue a descrição.

O projecto Escolas livres pretende dar um passo em frente e formar uma associação sem fins lucrativos dedicada à promoção do software livre nas Escolas portuguesas. Ao formar uma Associação poderemos finalmente levar a cabo iniciativas que de outra forma seriam muito difíceis de concretizar sem uma estrutura jurídica, nomeadamente, receber apoios, organizar acções de formação, fazer candidaturas.

Siga ajudar! Inscrevam-se, divulguem nos vossos blogs!
http://www.escolaslivres.org

IBM DB2 Student Group

Bem como já referi num post anterior sou DB2 Student Ambassador na Universidade do Minho. Acabamos agora de instalar e configurar o blog do projecto. Para já ainda está muito verdinho, mas esperamos que saiam boas coisas daqui. Quando tiver menos sono :P

Vai um leitinho com chocolate? Claaaaro..

[EDIT: Será que colar imans num micro-ondas é boa ideia!?..

E tirei eu 16 no exame de electricidade e magnetismo.. tsc tsc..]

Dicionário Aberto de Calão e Expressões Idiomáticas

blica ao sexual masculino
sinónimos: (pénis/pênis); pila; piça; caralho; cacete; pau; pinto; ponteiro; porra; drejo; bregalho; vergalho; Piroca; pichota; banana; pirola; pissalho; piçalho; bitola; besugo; sabordalhão

Podem ler isto, e muitas mais definições interessantes, no dicionário aberto de calão (PDF) alojado no servidor natura da Universidade do Minho.

Uma daquelas iniciativas muito sui-generis, que só podia partir do professor José João. É um professor completamente diferente dos outros, não fala para os alunos como se lhes fosse superior, e está sempre disponível para um bom tema de conversa. Claro que a definição de bom tema é controversa, mas isso é outro assunto.

Mas o nome da iniciativa não devia ser DAC, devia ser algo mais explicito. Era engraçado; se bem que não encontrei nenhum acrónimo giro e adequado.

Também era giro criar um wiki de calão, já que é demasiado difícil aos colaboradores submeter alterações/adições. Assim o projecto ganharia, certamente, outra dimensão e utilidade.

Porque não uma social network de calões? :P Isso não compra o google, penso eu de que! Falhei por um pentelho seco de velha? :)

Conclusão: As aulas de PERL vão ser interessantes…

A Vision of Students Today

Mike Wesch has released a new video. You might have seen Digital Ethnography here in my website so I decided to share this one as well. According to him

(…)the basic idea is to create a 3 minute video highlighting the most important characteristics of students today – how they learn, what they need to learn, their goals, hopes, dreams, what their lives will be like, and what kinds of changes they will experience in their lifetime. We already know some things from previous research (and if you know of any interesting statistics, please list them along with the source). Others we will need to find out by doing a class survey. Please add whatever you want to know or present.

Learning Rails

TestsDamn I HATE TESTS. Unit testing is boring…
Learning rails is hard. I know it’s supposed to be easy to use. And it is.

But if you explore it a little further, and you want to know how things work, properly understand the framework and language than your in trouble. And you’ll have some headaches with it, specially on the damn tests. Knowing that in some two months I’ll have enough knowledge to create a web application is what keep me going…

When I’m done with the first study, I’ll let you all know what my impressions where. For now I’ll describe Rails framework as highly impressive and simple, but different from all you have seen before.

Some advices to who is starting, use Netbeans 6.0 and InstantRails. Visit Netbeans Documentation for quick tutorials and read the book I referred to in another post for more advanced topics.

7 tests, 7 assertions, 0 failures, 0 errors
6 tests, 12 assertions, 0 failures, 0 errors

I’m out of here.

IBM DB2 Student Ambassador

Andava a ver o blog o Celso Martinho com um artigo muito interessante sobre como fazer citações a partir de um blog para, por exemplo, usar num trabalho cientifico quando recebi um email que já esperava à algum tempo.

Foram anunciados os primeiros IBM DB2 Student Ambassadors Portugueses e, para minha felicidade, fui um dos escolhidos. Os outros dois representantes são o Hélder Pereira e o Simão Soares, sendo que a Universidade do Minho é a primeira a constituir um grupo deste tipo em Portugal.

Vai ser óptimo ter a oportunidade de trabalhar de perto com uma empresa como a IBM, especialmente quando os colegas que foram escolhidos são tão competentes. Novidades em breve.. :P

Para já, e para finalizar, a minha versão do que é um tesourinho deprimente.

De volta aos carris

Estou a ler o livro Ruby in a nutshell do Yukihiro que é um dos dois únicos livros que a biblioteca da minha universidade tem sobre Ruby mas, infelizmente, não se apropria a um iniciante como eu. Então andava a aprender pelo help. Não acredito nessa do estuda rails e aprende assim Ruby.

A linguagem primeiro, a framework depois.

Só que existe um pequeno problema. Na biblioteca da Universidade do Minho existem tantos livros sobre Ajax como livros sobre Rails. ZERO!

Por sorte andava por entre o Twitter e o greader quando encontrei um livro para iniciantes em rails de graça! Nos próximos 58 dias quem quiser o livro Build Your Own Ruby on Rails Web Applications pode sacar-lo AQUI. Claro que a oferta apenas vale alguma coisa se o livro tivesse qualidade mas, ao que parece, tem. Pelo menos a ver pelas reviews que andei a ler.

OFF-TOPIC: Quem achar giro programar direct3D em .NET pode ler uma iniciação neste artigo.

UPDATE: Já estou a ler o livro e aviso desde já que a parte que ensina Ruby e OOP está medíocre. Leiam algo sobre Ruby antes de lerem este livro!

Life on the rails

I found Ruby in a talk with one of my friends. We were talking about how a problem that can be solved in Haskell in one line of code, could take hundreds to do so in Java or C#. It was obvious that, for some specific problems, Haskell was simpler and adequate.

Want a sample? Code permutation with n levels in C.

perms xs 0 = [[]]
perms xs n = [ p : ps | p <- xs, ps <- perms xs (n – 1)]

And like this he introduced me to Ruby on Rails. I was very thrilled to see a language that is dynamic, object oriented and adequate for web developing. I immediately thought about learning it, I just love learning new languages.

Today I checking my feeds and found a post about seven reasons to switch back to PHP (from Ruby).

It seems Ruby is like Haskell: the code looks greats and promises a lot, but it still doesn’t get where imperative languages do. (I’m still going to learn it, I just can’t resist it)

For now I’m waiting for a language that joins all that is good from imperative, functional, logic and object oriented paradigms.

If you know such programming language leave it as a comment.

 

 

PHP $61,000

 

Ajax $76,000

 

Ruby $70,000

 

Java $77,000

 

C# $78,000

 

Haskell $52,000

 

View Larger Salary Graph

Steve Jobs Stanford Commencement Speech

It’s been a while since the last time I watched this video. Watching it helped me see how obstacles can be useful to achieve what you expect from life. I can relate to Jobs little tail in many aspects and just feel thrilled that he pulled it off.

In our daily life, all factors seem to force us to settle. Everyday we hear people saying, judging, that we shouldn’t look for so much. Settle for a decent paid job, settle for a decent wife. But you will never excel if you are not doing what you enjoy. That isn’t simply what you are.

The higher you get, the higher the fall right?

Wrong! There’s no thrill in the ride if we can’t get to all the high places. Falling is just another part of life, deal with it. Learn with it! Do not, under any circumstances, live by it.

Manifesto da LESI sobre a transição para bolonha

Esta mensagem não me é nada indiferente. Tempos conturbados no Ensino Superior Português.

A mensagem que se ambiciona transmitir, através de palavras claras e objectivas, a todos os alunos do curso LESI que se sentem parte desta causa pressupõe algo não inédito mas antes verdadeiro.

Assim será possível partilhar toda a informação, abrir discussões produtivas e tentar encontrar soluções adequadas para todos os visados, não tendo como objectivo hostilizar qualquer entidade, nem apoiar qualquer grupo parcial, mas sim primar pela integridade e promover a construção de uma estratégia que facilite atingir os nossos direitos, todos aqueles que se relacionem com a obtenção pelos alunos das qualificações programadas aquando do ingresso no curso referido.

Nesse tempo, e após a análise dos cursos disponíveis na área da Informática, e considerando todo o percurso, qualificações e habilitações atingíveis em cada um, a preferência por LESI fora inequívoca, ingressando assim na Universidade Sem Muros. Olhava-se o destino com uma esperança reavivada e todo o universo parecia caber na palma de uma só mão.

Vínhamos para fazer a diferença!

Findos os primeiros três anos muitas das esperanças deram lugar a realidades longínquas, imergindo assim uma universidade feita de muros sólidos que mais parecem estar lá desde sempre.

A promessa de Bolonha apareceu, anunciando destruir todas estas barreiras. Exigia-se agora uma maior cooperação dos alunos com a Universidade, mais e melhor qualidade na investigação, inovadores métodos e melhor qualidade no ensino, uma avaliação realmente contínua, maior mobilidade, mais liberdade na escolha do currículo académico. Uma Universidade feita para os alunos.

No entanto Bolonha chegou e o processo de transição LESI/LEI que se impõe ameaça, desde já, os seus pressupostos mesmo antes da sua consumação. Os mesmos interesses que mantêm todos os muros firmes há tantos anos, cerram os dentes para impedir que estes se movam ou caiam.
De modo a contrariar esta tendência, em prol dos direitos que assistem aos alunos e para que finalmente tais barreiras desapareçam reivindica-se:

  1. Que, em situação alguma, resulte desta transição uma situação menos favorável para o aluno que aquela em que se encontraria se esta não tivesse acontecido, quer em termos académicos como em termos económicos.
  2. Que se abram novas vias de diálogo entre os alunos e as entidades decisoras que permitam quebrar a constante falha de comunicação e consequente falta de informação referente a este processo.
  3. Que se trave uma transição brusca e perdulária, reflectindo-se sobre quais as soluções proeminentes e implementando-as a seu devido tempo.
  4. Que se incentive a mobilidade, ocupando cada Unidade de Crédito Curricular um e só um semestre.
  5. Que nenhum aluno tenha que tomar diligencias para salvaguardar os seus interesses, sendo que as entidades por isso responsáveis o façam de uma forma séria e interessada.

A união e o empenho serão uma constante, força esta agregada ao instrumento Palavra, o qual se acredita ser suficiente e capaz de dissuadir os entraves que ameaçam o futuro, até que as demandas atrás referidas sejam reconhecidas como parte fulcral para uma justa transição dos alunos para os seus novos cursos acordantes com o tratado de Bolonha.

Ligações:

I hate studying maths

Starting to study to my math exam. Oh well there are worst things in life (like when your boxer shorts come up and you feel all &*$! and you can’t put them right cause it would look really bad)