Mar 8 10

Vulnerabilidades Site Novas Oportunidades

escrito por João Pedro Pereira

Já há algum tempo que tenho andado a investigar sites nacionais em busca de falhas de segurança e quase todos as têm, as mais frequentes são as falhas XSS mas também é muito comum encontrar falhas de SQL Injection.

Hoje tive acesso através de um tweet do Público (http://bit.ly/aU0kuy) à informação de que o site das Novas Oportunidades tinha sido explorado e alterado por  alguém… Decidi então enquanto era tempo verificar as falhas que existiam no site e qual o meu espanto (not) quando vejo presentes falhas de XSS, falhas de SQL Injection e falhas de validação de parâmetros que permitem Impersonation Attack através de injecção de URL.

O ataque relatado pelo público foi feito através de SQL Injection possivelmente na página seguinte pois esta está totalmente aberta a ataques deste género: http://testemunhos.novasoportunidades.gov.pt/detalhe_video.aspx

O ataque que referi relativo a problemas de validação de parâmetros que permitem injecção de URL: http://www.novasoportunidades.gov.pt/outerFrame.jsp?link=http://joaopedropereira.com/blog/

Com alguma imaginação pode-se fazer alguns ataques interessantes a partir daqui…

Na pesquisa também podemos facilmente fazer ataques de XSS (Cross Site Scripting) como referi anteriormente: http://www.novasoportunidades.gov.pt/np4/q?q=%3Cscript%3Ealert%28%22The+Blog+of+a+WebDeveloper%22%29%3C%2Fscript%3E

Isto mostra a preparação e conhecimentos ao nível de segurança informática que os WebDevelopers que o estado contrata têm… Atenção este não é o único site governamental com problemas graves de segurança, existem mais e talvez que transaccionem dados mais importantes…

Nota: Este post não tem como intuito incentivar qualquer tipo de ataque informático, pretende apenas informar e alertar para os problemas informáticos que podem surgir num futuro nas infraestruturas governamentais (e não só). É importante ter as nossas plataformas o mais seguras possíveis, para não sermos surpreendidos um dia.

EDIT

As falhas estão a ser corrigidas, quase completas por isso para registo futuro adicionei screenshots das falhas. É também de valor ler e participar nos comentários a este post que estão a dar uma boa análise do Web Development nacional.

EDIT 2

Governo desmente ataque informático: Portal Novas Oportunidades não foi alvo de ataque informático . Provavelmente precisam que venha algo abaixo e que cause danos a muitas pessoas para admitirem os erros…

Feb 26 10

Super Blog Awards

escrito por João Pedro Pereira

E já começou a fase de Votação para o Super Bock Super Blog Awards, onde serão eleitos os melhores blogs de Portugal e de Angola em diversas áreas como a que está este blog inscrito Tecnologia.

Como é que podem votar no meu blog?

Fácil: basta clicar no dístico de participação, que colocaste no teu blog aquando da fase de inscrição. Em alternativa, podes pesquisar no site pelo nome do blog ou autor, e aceder ao perfil de cada blog no site Super Bock para registares o teu voto.

Preciso de estar registado no site Super Bock para votar?

Sim. O registo é necessário para evitar situações de fraude na votação, assegurando que os blogs têm uma justa classificação e são avaliados de forma autêntica.
Para quem ainda não é registado, tem ainda a vantagem de poder participar nos futuros passatempos Super Bock, de música a cinema e outras oportunidades.

Feb 22 10

Processamento Paralelo com xargs

escrito por João Pedro Pereira

Com processadores multi-core semi-parados na maior parte das nossas tarefas e com a necessidade de processar grandes quantidades de informação / ficheiros é importante aproveitar toda a potencialidade de todos os núcleos.

Nos sistemas Unix (neste caso testei num sistema Linux com a distro Ubuntu) é possível separar uma tarefa em vários processos de forma a que a tarefa seja distribuida por mais que um núcleo do processador (no caso dos processadores multi-core) e por vários processos (jobs) que podem ser executados em simultâneo não dependendo que o primeiro acabe para executar o segundo podendo ter vários a correr ao mesmo tempo aumentando assim a performance da acção.

Este comando suporta a opção -P com a qual podemos especificar a quantidade de processos (jobs) a correr em paralelo.

$ man xargs
(...)
 --max-procs=max-procs
-P max-procs
Run  up  to max-procs processes at a time; the default is 1.
If max-procs is 0, xargs will run as many processes as possible  at a  time.
Use the -n option with -P; otherwise chances are that only one exec will be done.
(...)

Exemplo de Utilização

$ ls . | xargs -P 0 -i -t cp -R {} ../novo/

Decompondo o Exemplo

Listagem dos ficheiros da pasta

$ ls .

Xargs

xargs -P 0 -i -t

“-P 0″ utiliza o número máximo de processos
“-t” verbose mode activo

Cópia

cp -R {} ../novo/

“-R” copia de forma recursiva as pastas existentes
“{}” existe devido ao parâmetro “-i” do comando xargs utilizado, que corresponde a cada ficheiro/pasta que queremos copiar
“../novo” pasta de destino

Mais exemplos

Apagar todos os ficheiros com a extensão pdf

find ./ -name "*.pdf" | xargs -t -Istr rm str

Converter ficheiros pdf (.pdf) para ficheiros de texto simples (.txt)

find ./ -name "*.pdf" | xargs -Istr pdftotext str

Nestes exemplos podem acrescentar sempre a opção “-P x” em que x é o valor de processos que querem a correr em paralelo, em algumas situações permite-nos aumentar a performance do processamento através da resolução de tarefas em paralelo como veremos a seguir.

Testes de Performance

:~/teste$ ls
teste1  teste2
~/teste$ ls teste1/ | wc
33      58    1036
~/teste$ ls teste2/ | wc
33      58    1036

~/teste$ time find ./teste1/ -name "*.pdf" | xargs -Istr pdftotext str
real	1m9.805s
user	0m44.795s
sys	0m6.564s

~/teste$ time find ./teste2/ -name "*.pdf" | xargs -P 6 -Istr pdftotext str
real	0m39.911s
user	0m44.523s
sys	0m6.304s

Utilizando exactamente os mesmos ficheiros vemos alguma diferença a executar a mesma operação com e sem processamento distribuído da tarefa, que é realizada por diversos processos executados em paralelo.

~/teste$ time find ./teste1/ -name "*.pdf" | xargs -Istr rm str
real	0m0.296s
user	0m0.060s
sys	0m0.088s

~/teste$ time find ./teste2/ -name "*.pdf" | xargs -P 6 -Istr rm str
real	0m0.163s
user	0m0.060s
sys	0m0.084s

Novamente podemos verificar um aumento na performance das acções com o processamento em paralelo.

Outras utilizações

Além destas tarefas que foram mostradas em cima digamos, do dia-a-dia de qualquer utilizador de um sistema Unix que tenha descoberto as maravilhas da consola, podem ser destacadas utilizações mais direccionadas a áreas de trabalho:

  • utilização do xargs em conjunto com o ping para detectar vários hosts simultaneamente diminuindo o tempo de espera para grandes pesquisas
  • utilização do xargs em conjunto com o nmap. O nmap nos scans não utiliza muita bandwidth para não ser detectado e então podemos fazer scan a mais que um host em simultâneo aproveitando as capacidades da ligação e da máquina
  • conversão de discografias completas ou de albuns inteiros de fotos

Mais ideias diferentes?

Man Pages

$ man cp
$ man rm
$ man xargs
$ man ls
$ man find

Jan 20 10

Parsing de IP utilizando PHP+REGEX

escrito por João Pedro Pereira

No meio de época exames/frequências e muito trabalho arranjei um bocado de tempo para colocar aqui o último snippet que escrevi para fazer parsing de um ficheiro que contém uma lista de IP’s e portas onde correm serviços de proxy.
Isto porque ando a experimentar configurações mais avançadas em ferramentas como o proxychains que nas suas configurações exigem um esquema especifico para proxys.

Syntax necessária: http ip porta
Syntax do ficheiro: ip:porta

Snippet

$url = 'http://blackhatbootcamp.net/proxies/data/ultimate_proxies.txt';

	preg_match_all('/[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\:[0-9]{2}/', file_get_contents($url), $matches); 

	$size=sizeof($matches[0]);
	foreach($matches as $var) {
		for($i=0; $i< $size; $i++)
			echo preg_replace('/(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3}):(\d{2})/', "http $1.$2.$3.$4 $5<br/>", $var[$i]);
	}

Sei que python e PERL têm uma grande capacidade de utilização de REGEX, se andarem por aí conhecedores do assunto podem partilhar os snippets aqui ;)

Jan 16 10

EasterEgg – Windows “God Mode” Console

escrito por João Pedro Pereira

Foi descoberto um Easter Egg no Windows 7 e no Windows Vista 32-bit a que se chamou de “God Mode console” (GMC).

O porquê deste nome? Porque facilita a tarefa a qualquer administrador de sistemas fazer a configuração e manutenção de um computador com instalada uma das versões afectadas. Pois coloca numa só “pasta” a possibilidade de alterar todas as definições do Windows sem ser necessário andar a navegar em dezenas de menus como acontece nos painéis de administração do Windows Vista e Windows Seven. É tudo directo, e não passa de uma janela do explorer contendo uma listagem completa de todas as páginas do painel de controlo.
Segundo foi relatado o GMC não mostra as configurações “escondidas” / “secretas”, a melhor maneira de alterar essas configurações continua a ser executar ncpa.cpl no menu iniciar onde permite procurar programas e ficheiros.

Como entrar em “God Mode”

  1. Criar uma pasta no computador ou num dispositivo de armazenamento amovível se pretender utilizar em mais que um computador
  2. Dar o nome de xpto.{ED7BA470-8E54-465E-825C-99712043E01C} onde xpto pode ser um nome qualquer.

Sistemas Operativos em que Funciona

  • Windows 7 x64
  • Windows 7 x86
  • Vista x86
  • Windows Server 2008 R2 Standard Edition
  • Windows Server 2008 x86

Também funciona em Vista x64 mas necessita de algumas alterações para que o explorer não crashar.

UPDATE

Encontrei uma lista de mais algumas maneiras de criar atalhos para ferramentas especificas relativas a administração em windows:

Printers: {2227A280-3AEA-1069-A2DE-08002B30309D}
Control panel: {305CA226-D286-468e-B848-2B2E8E697B74}
Dial-up networking: {992CFFA0-F557-101A-88EC-00DD010CCC48}
Scheduled tasks: {D6277990-4C6A-11CF-8D87-00AA0060F5BF}
Folder options: {6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}
Dial-Up Networking: {992CFFA0-F557-101A-88EC-00DD010CCC48}
Scheduled tasks: {D6277990-4C6A-11CF-8D87-00AA0060F5BF}
Taskbar and startmenu: {0DF44EAA-FF21-4412-828E-260A8728E7F1}
Microsoft FTP folder {63da6ec0-2e98-11cf-8d82-444553540000}
Temporary Internet files {7BD29E00-76C1-11CF-9DD0-00A0C9034933}
ActiveX Cache folder {88C6C381-2E85-11D0-94DE-444553540000
Subscriptions folder {F5175861-2688-11d0-9C5E-00AA00A45957}
History {FF393560-C2A7-11CF-BFF4-444553540000}

Jan 7 10

Trabalhando com jQuery e MooTools ao mesmo tempo

escrito por João Pedro Pereira

jQuery & MooToolsHoje estava a melhorar a área de administração para o portal de um cliente que será brevemente lançado, e deparei-me com o problema… Tinha um plugin desenvolvido em jQuery e outro em MooTools que queria ver integrado na mesma página.

Explicação do Porquê do Erro Acontecer

O símbolo ‘$’ é usado como objecto pela jQuery e também pela MooTools, logo existe interferência.

Se chamarmos primeiro a jQuery ela vai correr e criar um objecto chamado ‘$’ com as funções especificas para jQuery, de seguida, chamamos a MooTools que vai criar o seu o objecto também chamado ‘$’ com as funções especificas da MooTools.

A Solução

Depois de alguma pesquisa consegui solucionar o problema e ter os dois a funcionar correctamente no mesmo local, apesar da solução mais vista: jQuery.noConflict(); não funcionar no meu caso.

A solução passou por pegar nos ficheiros de funções jQuery e alterar todos os ‘$’ para ‘jQuery’, porque é a mesma coisa chamar uma função através do objecto ‘$’ quer através do objecto ‘jQuery’, pois o objecto ‘$’ é apenas um shortcut para ‘jQuery’.

Depois a ordem que utilizei para chamar as bibliotecas em si foi a jQuery primeiro e de seguida a MooTools.

Jan 7 10

Maior Edificio do Mundo 828 metros – Inauguração do Burj Khalifa

escrito por João Pedro Pereira

O Maior Edifício do Mundo fica no Dubai e foi inaugurado dia 4 de Janeiro de 2009.

A altura oficial da torre, baptizada de Burj Khalifa, é de 828 metros.

“Mohamed Alabbar, Presidente do Conselho da Emaar Properties, disse que a torre representa um símbolo de esperança para o mundo árabe e um brilhante exemplo da realização humana.”

Simplesmente impressionante a inauguração deste edifício, está belíssima e de uma coordenação dos vários constituintes, som, água, luz e fogo de artificio fenomenal.

Impressionante não concordam?

Dec 29 09

Configurar SSH para Diferentes Usernames

escrito por João Pedro Pereira

Neste post o serão abordadas ligações por SSH, Secure Shell ou SSH que é além de um programa, um protocolo de rede que permite a ligação a outra máquina. Possui as mesmas funcionalidades do telnet, no entanto, tem a vantagem de ter a ligação encriptada. E é hoje uma ferramenta utilizada diariamente por SysAdmins (administradores de sistemas) ou por qualquer pessoa que tenha a necessidade de se ligar a um computador remotamente.

How SSH works

Esta dica é especialmente importante para aqueles que utilizam a linha de comandos em sistemas Linux e não aplicações como o Putty, por exemplo.

Para aqueles que precisam de se ligar por SSH a máquinas com diferentes credenciais, existe uma alternativa ao

$ ssh -l joaopedropereira maquina.dominio.com

Podemos configurar o SSH para que para cada domínio determine diferentes credenciais e configurações.

Exemplo Ficheiro: ~/.ssh/config (pode ser necessário criar)

Host *.fe.up.pt
User login_feup

Host 192.168.1.150
Compression Yes
User login_deskop

Host *.remote.shell.com
User  xpto

Existem imensas opções para configurar a ligação, só é preciso dar uma vista de olhos aos man files
ssh_config, por exemplo:

$ man ssh_config

Para mim é extremamente útil isto. Espero que a dica seja útil para vocês ;)

Dec 27 09

Criar Servidor Rapidamente com Python e SimpleHTTPServer

escrito por João Pedro Pereira

Alguma vez tiveram a necessidade de disponibilizar conteúdo de uma máquina urgentemente através de HTTP, mas não tinham a mínima vontade de estar a configurar um servidor ?

Eu tive este Natal… Felizmente tinha o python instalado na minha máquina e por isso o assunto foi resolvido facilmente utilizando o módulo SimpleHTTPServer.

$ python -m SimpleHTTPServer 8888

O que este comando vai fazer é criar um servidor no vosso endereço de IP na porta 8888 (podem escolher a porta que quiserem desde que não esteja já ocupada). E a pasta que vai ser o vosso root do servidor é a pasta em que executam o comando.

Se quiserem criar um servidor para a pasta das vossas musicas:

~$ cd Music/
~/Music$ python -m SimpleHTTPServer 8888

É porreiro, não é?

Dec 9 09

SAPO Codebits 2009 – Reviewed

escrito por João Pedro Pereira

Nos dias 3, 4 e 5 de Dezembro realizou-se o SAPO Codebits 2009, depois de ter estado presente na edição de 2008 posso dizer que este ano quase tudo esteve melhor que o ano passado e que excedeu completamente as minhas expectativas.

Foi sem dúvida uma excelente experiência, não só pelo evento em si mas por outros factores que existiram devido ao evento. A partida do Porto deu-se dia 3 de Dezembro da FEUP (Faculdade de Engenharia da Universidade do Porto) na companhia de cerca de 30 estudantes do MIEIC (Mestrado Integrado em Engenharia Informática e Computação), que mostraram ser uma excelente companhia, sempre com boa disposição e simpatia.

SAPO Codebits 2009 Logo

Chegando ao local do evento, este ano foi escolhida a Cordoaria Nacional junto ao Tejo, o “check in” foi super rápido e as meninas que o fizeram foram muito simpáticas situaram-me logo no edifício e indicaram o que existia e onde se encontrava.

Passados uns minutos já estava eu sentado numa mesa a ver os brindes que os patrocinadores tinham oferecido.

Uma bolsa de transporte para laptops oficial SAPO Codebits, uma USB Lamp oferecida pela Microsoft, equipamento para dormir mais descansado da PT Inovação (venda para os olhos, tampões para os ouvidos, umas meias e ainda uma escova e pasta para lavar os dentes), adorei também a ideia de entregarem uma folha com badges, tendo já quitado o meu computador portátil com alguns… Ri-me quando vi que tinham entregue um read-me impresso que por acaso foi muito útil, e as tshirts este ano estão fantásticas.

SAPO Codebits 2009 Entrance

Depois de uma volta pelo recinto gostei do que vi, as instalações estavam bem melhores este ano, a área para descanso estava muito bem conseguida, havia muito espaço, não faltavam mesas, nem beanbags, havia mais alternativas à pizza, muitas bebidas, notou-se um grande esforço por parte da organização para atender às queixas do ano anterior relativamente ao espaço e às refeições.

Este ano também não notei a confusão do ano passado nas horas das refeições, não tendo esperado mais do que 3/4min para ter o que queria nas horas de mais movimento.

Talks

SAPO Codebits Main Stage

Dia 1

Pelas 14h começaram as talks e para esta hora eu escolhi Think before you develop! — Kai Seidler

O Kai Seidler nesta talk esteve a analisar várias arquitecturas de servidor, e web services em geral, mostrou também os prós e os contra de linguagens de WebDevelopment como PHP, Python, JavaScript, ASP.NET, Perl, etc. bem como de vários SGBD’s como MySQL, SQLite e Oracle. No fim abordou vertical e horizontal scaling.

Foi uma talk muito inconstante pois o orador esteve muito nervoso, esteve com vários problemas no remote control, mas na minha opinião conseguiu transmitir bem a mensagem e pegou bem nos tópicos que se propôs abordar.

Info Oficial: http://codebits.eu/intra/s/session/82

Ás 15h assisti a HTML5 JavaScript APIs — Remy Sharp

O Remy Sharp conseguiu interagir muito bem com o público criando uma boa dinâmica, abordou o tema de uma forma muito inteligente e divertida.

A nova especificação do HTML tinha sido um assunto que até então não me tinha despertado grande curiosidade, mas com esta talk fiquei mesmo interessado em analisar mais a fundo as novidades desta especificação pois pareceu-me que vai trazer muito de bom à internet e aos WebDevelopers.

Info Oficial: http://codebits.eu/intra/s/session/60

Pelas 16h deixei o Main Stage para assistir no Stage 2 a Introducing Ajax.org Platform 3.0 — Mike de Boer que foi sem dúvida a única talk que não gostei de facto. Pareceu-me pouco preparada. Não consegui ficar até ao fim, depois de uns 20min sem ter dito basicamente nada, desisti e fui-me embora.

Info Oficial: http://codebits.eu/intra/s/session/84

Ás 17h voltei para o Main Stage para assistir a uma das melhores talks a abordar JavaScript OOP, JavaScript: From Birth to Closure — Robert Nyman

Adorei esta talk, super organizada, muito divertida, com conteúdo que notei a maioria das pessoas não ter conhecimento tendo estado super atentas ao que o orador estava a referir, e muito bem explicada com exemplos caricatos com o Ben Afflleck.

Quem segue o meu blog sabe que já escrevi sobre este assunto e que tenho uma grande paixão por JavaScript (post 1, post 2).

Info Oficial: http://codebits.eu/intra/s/session/87

Ás 18h mudei-me novamente para o Stage 2 onde um aluno da FEUP, Diogo Junior, ia dar uma talk sobre Programar para Android — Diogo Dias Júnior

Achei que o Diogo esteve muito bem na sua talk deixando “água na boca” do público o que levou a uma enchente de programas para plataformas móveis Android como projectos do concurso de programação! Parabéns ao Diogo.

Podem ver o vídeo da talk no link que segue abaixo.

Info Oficial: http://codebits.eu/intra/s/session/76

Para terminar as talks no primeiro dia assisti à apresentação da Widget Platform – tear the Web apart and assemble the pieces together — José Rodrigues da Mata Fernandes

A apresentação em si não foi nada de mais no entanto achei interessante a widget platform da SAPO, não por ser algo de inovador, que não é, mas pela feature que é em si.

Info Oficial: http://codebits.eu/intra/s/session/81

O resto da noite foi passada a ver os stands dos parceiros do Codebits a ver o que tinham para mostrar, tive também a oportunidade de falar com o Mitch Altman, que me reconheceu da edição do ano passado sem eu ter ido falar com ele até, espantoso! Tive também a oportunidade de conviver com conhecidos da comunidade Portugal-a-Programar.

No fim da noite no Codebits pernoitei no Lisbon Lounge Hostel, uma nova experiência pois nunca tinha ficado alojado num estabelecimento do género. Mas antes a viagem foi feita de eléctrico, ao tempo que já não andava de eléctrico, e claro o pessoal da FEUP conseguiu tornar aquilo hora de ponta pois o eléctrico ia completamente cheio! E fomos desde o Hospital Egas Moniz até à Rua Augusta em que nos aventuramos na procura do Lisbon Lounge Hostel que em 30 pessoas nenhuma se lembrou de ver qual a rua ao certo, nem qual o percurso desde o eléctrico. Mas lá conseguimos chegar inteiros…

Rua Augusta

Relativamente ao Lisbon Lounge Hostel, bem, adorei o conceito! Um ambiente muito relaxado, o pessoal “à vontade” como se estivesse em casa, tudo muito simples, mas bem organizado e asseado. Aqui tive a sorte de encontrar um casal Australiano que estava a visitar a Europa, muito simpáticos, e que me contaram um pouco da viagem. Achei muito porreiro os quartos serem mistos e ninguém ter problemas com a situação.

Dia 2

Depois de uma noite bem dormida, de um pequeno almoço que não foi pizza nem chocolates e de volta ao Codebits comecei as talks com o Mitch Altman às 10h, Make A Living Doing What You Love: How to Bring Your Project From Idea To Reality — Mitch Altman.

Uma excelente talk abordando todo um processo, uma história de vida que permitiu tirar vários ensinamentos e várias lições para o presente e o futuro e toda a talk baseou-se em algo que hoje em dia é complicado para muitas pessoas, que tal como o título da talk diz, viver uma vida fazendo o que amamos! Simplesmente fantástica!

Info Oficial: http://codebits.eu/intra/s/session/95

Como o Brian LeRoux não apareceu para a talk das 11h apenas às 12h voltei a assistir uma talk: Crash Course in Brain Surgery — Bruno Morisson.

Mas wtf? Brain Surgery? Que raio tem isso a ver com o Codebits? Bem, Brain Surgery que significa Brain -> Aplicação,  Surgery -> Segurança. Esta foi uma talk sobre um tema que não se vê muito no Codebits, a segurança, fala-se muito de aplicações web mas falha-se a parte da segurança que é, no caso do WebDevelopment, um ponto essencial.

Esta talk foi muito descritiva, nomeou várias flaws, vários métodos de explorar vulnerabilidades e seus tipos, e depois focou-se mais em alguns aspectos. Não foi uma talk que me trouxe muito de novo mas uma talk que deu para relembrar alguns pontos que já não estudava há algum tempo como Business Logic Flaws, pois XSS, SQL Injection, Code Injection, Privilege Escalation, etc. são temas com que trabalho no dia-a-dia.

Só tenho uma coisa a apontar ao Bruno, ele disse demasiadas vezes “Eu não sou developer por isso não sei x, y ou z” acho que se desculpou demasiado, mas são pontos de vista e modos de estar em público, cada um tem o seu obviamente.

Info Oficial: http://codebits.eu/intra/s/session/70

Mais tarde assisti a uma talk do José Castro relativamente às entrevistas de emprego na SAPO, foi uma talk muito interessante que me mostraram uma realidade com a qual nunca me tinha deparado pessoalmente e que me fez bem ganhar um pouco de consciência acerca do assunto. Gostei muito.

O resto do dia foi passado a ajudar em programas, a conhecer pessoas, e a tentar trazer um beanbag para casa, posso dizer que hoje escrevo este post em cima de um beanbag com a etiqueta do codebits e a condizer com as cores do meu quarto.

SAPO Codebits

Com o fim da tarde a aproximar-se começou a chegar a hora da despedida e de ir para a Estação de Sta. Apolónia para voltar no Alfa Pendular das 20h30 para o Porto.

No entanto, assisti ainda a uma outra talk através do stream e participei na votação! Pelo que consegui perceber pelos comentários que vi no twitter acho que tive mais facilidade em votar estando em casa do que os participantes do Codebits que estavam no local…

A viagem de volta

Uma viagem que prometia um longo sono tornou-se numa viagem muito interessante e produtiva devido à companhia que tive. Ao meu lado um estranho meteu conversa por ver os meus apontamentos de álgebra e lá começamos a falar sobre, inicialmente, matemática, o ensino, os alunos de hoje e o insucesso escolar, pensei eu que seria um professor ligado à matemática, mas não era médico, a conversa passou também por xadrez, física quântica, a personalidade das pessoas, as forças dentro de cada um, psicologia, o ser humano, etc. um homem de uma cultura formidável. Esse senhor chama-se Rui Caldevilla. Foi uma óptima viagem de regresso.

O Beanbag

Eu não fiquei até ao ultimo dia, que era quando podíamos trazer embora os beanbag’s aka puff’s para casa. Durante a tarde do segundo dia insisti com a organização através do twitter, ou do blog do codebits, mas nada. No entanto parece que fui suficientemente chato, eu e mais uns colegas da FEUP, que durante a noite (em que eu já não estive), andou o José Castro à nossa procura para nos calar dando-nos os voucher para trazermos os beanbag’s, como já lá não estava o Tiago Boldt, fez-me o grande favor de me trazer um para mim.

SAPO Codebits Beanbag's

Conclusão

Este post foi escrito (editado) 5 dias depois do meu ultimo dia no Codebits com um significado muito simples, foi um evento 5 estrelas.

O SAPO Codebits 2009 foi sem dúvida uma óptima experiência, e venha a edição 2010, cá espero por ela!

Fotos Retiradas de http://www.flickr.com/photos/tags/codebits