Bem-Vindo ao DreamsInCode

DreamsInCode é um site maioritariamente sobre programação, com os ocasionais desvarios do programador pela real life.

Salvo nota em contrário, todos os conteúdos aqui publicados são gratuítos e, no caso de software, de código aberto, ao abrigo da Licença Creative Commons 2.5 Portugal BY-NC-SA. Consultem aqui os termos da mesma.

Ir para o início do blog »

Projectos em Destaque

Eleições e Número de Deputados

Aplicação desenvolvida para testar as propostas de dois dos candidatos às eleições legislativas de 2011 quanto ao número de deputados na Assembleia da República.

Outros Projectos @ 14-06-2011 às 23:48


Últimas postas no blog

Pixels Camp 2017

A paparoca foi mais outro campo onde houve bastantes melhorias, mas infelizmente ainda estamos abaixo do expectável.

Vou já começar por um ponto que a mim, particularmente, nem me afecta, mas que imagino que tenha sido difícil para algumas pessoas: continuam a faltar opções vegetarianas. Eu sei, eu sei, é quase impossível cobrir todas as opções alimentares que por aí andam hoje em dia, mas vegetarianismo é praticamente mínimo olímpico.

A opção por refeições quentes (quase escrevia saudáveis, mas só na medida em que não são hamburguers, pizzas e quantidades maciças de noodles) foi boa jogada, e eram bem boas, embora arriscadas. A feijoada, então, tinha um potencial... erm... gasoso... bastante perigoso.

Mas o melhor de tudo foi o stand da EatTasty. Eu comi uma bifana com carne slow cooked que era uma maravilha, e um wrap de frango com pimentos que foi dos melhores que alguma vez comi. Já quanto à almôndega nuclear (nível 2 - sobrou do concurso, que eu não sou psicopata), apesar da quantidade absurda de picante, era também incrivelmente saborosa.

Já disse que se pagava neste stand? Pagava-se neste stand. Parece que me estou a queixar disso? Não estou.

Caramba, se o pessoal se queixa que não gosta da comida oferecida, ou que a comida oferecida é pouca (e, para mim, é claramente para o curto, mas isso sou eu que sou badocha), é meter mais barraquinhas. A pagar. Sério, a malta não se importa e paga.

Bem sei que a EatTasty é especial, porque foi incubada - ou acelerada, ou lá que termo é que se usa hoje em dia para as startups - na Bright Pixel, e é parceira do Continente e sei lá mais o quê. Mas não deve ser difícil convencer mais umas barracas de street food a participar. Montam a barraca, ficam com os lucros. Simples.

snacksGeez, como fazem falta. Uma maçã às três da manhã é de estalo. Uma barrita de cereais lá para as 17 também.

Vejam lá isso.

Comentários Nenhum comentário Continuar a ler Continuar a ler »

Pixels Camp 2017

O novo espaço abriu algumas oportunidades para que, por exemplo, este ano houvessem duches. O que é óptimo. Mas a comunicação foi, no mínimo, confusa. Foi-nos dito que havia novidades no alojamento. Há duches? Sim. Não. É capaz de haver. Semanas nesta indecisão.

Eu hesitei a marcar alojamento baseado nisto. Quando fiquei demasiado desconfortável com a proximidade temporal, já não encontrei Airbnb a preços decentes, e acabei por ficar num hotel que eu gostava de saber a quem é que roubou as duas estrelas, porque ali não pertenciam de certeza. Felizmente fiquei lá pouco tempo.

O comboio foi a mesma coisa. Malta do norte, não marquem já transporte. Porquê? Cenas. É o desconto do costume? É que se for, mais vale comprar com antecedência, que o desconto da CP é maior. Não, é outra coisa. Qual coisa? Cenas.

Era portanto um comboio, sim, mas à borla, cortesia da Siemens. Parecia-me ser uma composição habitual de Intercidades, mas não sou especialmente conhecedor de comboios para ter a certeza. A única coisa que posso garantir é que não era um pendular. E que era à borla.

O problema foi o prazo de comunicação, que foi muito curto. Muita gente já tinha adquirido bilhetes, impossíveis de devolver. Os horários também não foram os melhores e foram comunicados tardiamente e ainda sujeitos a alteração.

Até o Chasing Ghosts foi marcado praticamente no dia antes. Eu mal tive oportunidade para me qualificar, visto que já estava on the move.

É perfeitamente compreensível que muitas destas coisas tenham que ser negociadas com parceiros, as condições têm que ser devidamente avaliadas, os espaços convenientemente adaptados. Mas pareceu-me que, na tentativa de fazer mais e melhores coisas – que foram feitas! – incorreu-se numa pitada de precipitação e comunicação confusa que gerou alguma frustração desnecessária.

Comentários Nenhum comentário Continuar a ler Continuar a ler »

Pixels Camp 2017

Depois de ver as reverse pitchs dos sponsors, houve três que retive: as duas da Siemens, de partilha de bicicletas e monitorização de qualidade do ar nas cidades, e a da Mercedes, a API do smart.

Como disse anteriormente, eu ia mais ou menos decidido a não participar em nenhum projecto este ano, devido à terrível experiência que tive no ano passado. Eu sabia que me tinha atirado completamente para fora de pé – hey, mas se resultou para aprender a nadar, também podia ter resultado neste contexto – mas também tinha o receio que, na volta, estava a ficar demasiado velho para este tipo de loucura.

Portanto, foi mais por curiosidade que fui dar uma vista de olhos nos stands da Siemens e da Mercedes, ver o que eles tinham como base para trabalhar. Na Siemens tinham pouco mais que conceitos e mock data; na Mercedes, tinham mesmo lá um smart prontinho a ser conectado e testado, para além de uma API que pareceu mais sólida e documentada.

Com o que eu não contava era com a insistência e entusiasmo contagioso do Carlos. Mal acabou a keynote de abertura, já estava a perguntar “e então, o que é que vamos fazer?” Eu ri-me e encolhi os ombros: “para já, vou dar uma vista de olhos à Siemens e almoçar”.

Eu mantinha a Rosana debaixo de olho porque, em caso de projecto, ela é, mas assim de longe, uma das melhores designers e ilustradoras que eu conheço.

Portanto, quando a insistência do Carlos levou a melhor sobre mim (inclusivamente já tinha ido buscar a documentação da Mercedes e inscrito o projecto), perguntei-lhe como era com designer. Ele estava acompanhado pela Joana Rijo, que é precisamente designer, e eu não estava em posição de argumentar a favor da Rosana. Afinal, o meu plano até era não participar…

Não quero com isto menorizar a Joana. Como explicarei a seguir, ela foi competentíssima e fiável durante todo o projecto. Só que aconteceu uma coisa inacreditável: uma designer incrível como a Rosana ficou sem projecto. E, caramba, se alguns projectos, como se viu na apresentação final, tinham lucrado bastante com o trabalho dela.

Durante a tarde do primeiro dia, entre várias apresentações que todos queríamos ver, fomos conversando ao de leve sobre que conceito queríamos. Ao mesmo tempo, entretivemos a ideia de fazer um smart contract de roleta na blockchain, para ir buscar mais uns EXP para investir no projecto.

Depois de jantar – e ao jantar não se fala de trabalho, fala-se de séries de televisão, de música, da qualidade da comida (lá irei, lá irei), mas de trabalho não – alinhavámos finalmente a ideia: visto que a API era para o smart, e sendo o smart um carro da iGeneration, malta nova e altamente conectada, queríamos uma app que nos desse o estado do carro, seja o nível do combustível, o estado da bateria, se as portas estavam fechadas e trancadas, e que desse para o localizar (via GPS para localização geral, e ligando os piscas para o localizar num parque, por exemplo).mysmart logo

Quando estava para atacar a construção da app, ao final da noite, a API da Mercedes deu o badagaio. Os engenheiros já tinham desaparecido, e eu decidi fazer o mesmo. Despedi-me da rapaziada, e recolhi ao hotel a horas ainda bastante decentes (por padrões Pixels Camp – era para aí uma da manhã), porque já sabia que isto na segunda noite ia ser a doer.

Já tínhamos conversado sobre o design e decidido que tudo seria em SVG, para garantir a responsiveness com qualidade em qualquer ecrã. Isto colocou um peso incrível em cima da Joana, que basicamente teve que desenhar um smart de raiz, incluindo portas e bagageira em separado (eu queria aquilo a mexer quando se abrisse a porta fisicamente); tirando todo o resto do trabalho de design, desde cores, logótipo, botões da interface…

No segundo dia, mal cheguei, fui falar com os engenheiros da Mercedes, que já tinham identificado e corrigido o problema. Mostraram-nos os logs da API para demonstrar a carga a que tinha estado sujeita e que levou ao crash, numa demonstração de transparência e disponibilidade que caiu muito bem não só connosco, mas com outros grupos com projectos relacionados.

Durante o dia ainda alinhavei toda a ligação à API, entre todas as coisas que há para fazer, incluindo uma apresentação que tinha para dar, e as minhas participações no Chasing Ghosts (onde consegui uma pontuação mais alta na qualificação, que me tinha apurado para a final, do que na semifinal em si) e no QuizShow (onde acho que eu e o Carlos conseguimos menos pontos do que no ano passado).

mysmart app

Por volta da meia-noite, estava pronto a atacar o frontend da app. A Joana tinha concluído todo o design e estava completamente esgotada. Disse-lhe para dormir um bocado e ela, que já estava embrulhada numa manta, literalmente rolou da cadeira para o chão e acho que adormeceu antes de lá chegar. O Carlos, que tinha andado o dia todo a azucrinar todos os angels que lhe aparecessem à frente, para além de andar envolvido na caça ao tesouro das camisolas (dava 50.000 EXP, era uma ajuda valente para o nosso projecto), não estava em muito melhor estado. Ainda tentou resistir ao cansaço, mas estar sem fazer nada a olhar para mim também não ajuda, e acabou também por colapsar ali ao lado.

E aconteceu uma coisa que já não me acontecia há muito tempo. Por volta das 4 da manhã – depois de ter ido fumar um cigarro onde demorei meia-hora porque um casal holandês estava particularmente interessado em saber o que se estava a passar ali – entrei in the zone; mesmo, mesmo in the zone. Estava completamente alheado do que se passava à minha volta. Às 8 a app estava completa. Ainda antes de acordar os meus parceiros, fui apanhar um bocadinho de ar, e quando voltei, o Carlos já tinha ido para a fila da banhoca e a Joana estava com ar de zombie sentada no chão.

“A app está pronta. Vou ao hotel tomar banho e trocar de roupa. Está tudo controlado. Volto daqui a uma horita.”

O resto da manhã foi mais soft. O Carlos tratou da apresentação, eu gravei um vídeo com a Joana a abrir as portas do smart para colocar lado a lado com a app a funcionar, conversámos com os angels que passaram pelo nosso estaminé para se inteirarem do progresso. Tínhamos tudo controlado.

Mas eu não estava muito confiante. Já levo anos suficientes disto para perceber que faltava wow factor ao nosso projecto. Não era sexy que chegue. Tinha repetido isto várias vezes nos dois dias antes à equipa, juntamente com “isto este ano tinha de ser uma app com blockchainaugmented realitymachine learning” (nem de propósito, o projecto que ganhou tinha AR e ML). A seguir ao almoço, perguntei, meio a brincar, se conseguíamos chegar ao top 10. O Carlos, com o entusiasmo que lhe é característico, respondeu de calcanhar que era 5.º lugar, no mínimo.

E foi.

Pixels Camp 2017 Trophy

Comentários Nenhum comentário Continuar a ler Continuar a ler »

Pixels Camp 2017

Uma das maiores inovações foi, portanto, uma cripto moeda baseada na rede Ethereum chamada Exposure. O nome em si é uma piada baseada neste comic do fenomenal The Oatmeal, e acaba por ser um bocado meta, visto que exposure é basicamente o que se ganha na hackathon do Pixels Camp.

Basear o resultado de uma hackathon num sistema de mercado – ainda para mais usando blockchain – deve ser das ideias mais loucas da história das hackathons. Tinha todo o potencial para ser espectacular, como acabou por ser, como um desastre: bastava que a comunidade simplesmente não aderisse ao conceito.

As cripto moedas ainda têm um longo caminho a percorrer em termos de usabilidade. Criar uma carteira virtual, guardar uma chave privada ou uma frase mnemónica que é preciso usar a cada transacção, inserir longos identificadores alfanuméricos para onde queremos fazer as transacções – uff, que trabalheira.

De qualquer forma, correu optimamente. A malta criou carteiras, andou à caça dos badges para obter mais EXP, investiu nos projectos, e até comprou e vendeu serviços. A Rosana ainda fez umas lecas a vender designs e tatuagens (yep, tatuagens), e houve pelo menos dois projectos cujo conceito era precisamente a venda de serviços usando os smart contracts da blockchainBoothchain, uma cabine fotográfica com impressão térmica, e If Pay Then Play, do inefável Luís Correia e demais Lobsters, uma máquina de arcade. Estes projectos tinham a particularidade de se auto-financiarem: aquilo que as pessoas pagavam – e ainda pagaram algumas – era directamente investido no projecto.

A nossa equipa pensou no mesmo, mas ao invés de fazermos disso o nosso projecto principal (já estávamos mais ou menos decididos pelo que veio a ser o mysmart), seria um meio de financiamento. Brincámos com o conceito de um smart contract emulando uma roleta de casino durante a tarde de quinta-feira, mas depois acabámos por nos focar apenas no projecto.

O único problema que detectei em todo o conceito, e que nem sequer está relacionado com o facto da moeda ser baseada em blockchain, é que não há qualquer incentivo para investir noutros projectos que não o nosso. Inclusivamente, fiz notar isso mesmo ao Celso durante a apresentação mais aprofundada que fez do conceito.

Pode alegar-se que há sempre gente que não participa em projectos, e há, embora o foco na hackathon seja tão grande que nem deveria contar. Há, na realidade, um microincentivo, que é o facto do investidor que obtiver maior retorno ganhar um prémio, mas a proporção da distribuição é tão desbalanceada, que esse investidor vai acabar por ser um membro do projecto que efectivamente ganhou a competição.

Poderia haver incentivos maiores; por exemplo, as carteiras e o seu valor depois da redistribuição podiam transferir-se para eventos subsequentes, embora isso levantasse novas classes de problemas: qualquer membro dos primeiros três ou quatro projectos ficariam automaticamente a ser super-investidores, o que levaria a que os projectos deles ganhassem novamente no ano a seguir, independentemente do mérito. As soluções para isto seriam cada vez mais complexas e confusas (um membro não podia investir no seu próprio projecto, tendo que existir uma CMVM específica para o evento).

Basicamente, temos aqui uma situação em que não gosto nada de me encontrar: identifiquei um problema para o qual não tenho solução (ou as que tenho são foleiras).

O capitalismo é complicado.

Comentários Nenhum comentário Continuar a ler Continuar a ler »

Agora sim, melhor Pixels Camp de sempre. Também ainda é só o segundo.

Pixels Camp 2017

Que evolução. É que se sente em primeiro lugar, no final de tudo.

O novo espaço, no Pavilhão Carlos Lopes, é não só melhor que o LX Factory do ano passado, como arrisco dizer que é também melhor que os últimos do Codebits, a Sala Tejo – a todos os níveis. O edifício em si é regalo para os olhos, com a sua traça de revivalismo barroco e os painéis de azulejo com cenas da História de Portugal. A localização, no Parque Eduardo VII é óptima e lindíssima (embora a Sala Tejo tivesse uma vista impecável para a Ponte Vasco da Gama). As acessibilidades, com o metro ali ao lado, são excelentes, as várias salas separadas para as apresentações e workshops resolvem finalmente o problema do som e os vários corredores largos e átrios foram usados para espalhar os sponsors de forma acessível e sem perturbar a circulação.

keynote de abertura trouxe várias surpresas, sendo que a maior delas todas – que já tinha sido apresentada de véspera, mas nem toda a gente segue o blog do Pixels Camp – foi o uso de uma cripto-moeda baseada na blockchain Ethereum chamada Exposure (ou EXP, for short), que substituiria a habitual dupla júri/público que atribui os prémios da hackathon. O projectos que cheguem ao fim com maior investimento – maior quantidade de EXP na conta – ganham. Para evitar distorções (a comunidade às vezes passa-se *ahem* Sensor Helmet), existiam 22 angel investors: pessoas ligadas aos sponsors ou à organização que começavam com uma quantidade muito maior de EXP, e, portanto, com o poder de influenciar grandemente o resultado.

A outra novidade, que eu tenho a sensação de já ter sido tentada antes mas com menor efeito, foi o pitch invertido dos sponsors. Os vários sponsors presentes tinham um tempo limitado para apresentarem que ferramentas e desafios tinham trazido, numa tentativa de levar a comunidade a fazer soluções para os mesmos. Com maior ou menor sucesso, houve vários sponsors com desafios e ferramentas interessantes. O que me saltou mais à vista foram as soluções de mobilidade e smart city da Siemens e a API da Mercedes.

Eu tinha ido mais ou menos convicto a não participar em nenhum projecto este ano. No ano passado quase tive um esgotamento, e não estava disposto a passar pelo mesmo. No entanto, o Carlos – meu parceiro pelo segundo ano no QuizShow e que é uma pessoa entusiástica, no mínimo – lá me convenceu a participar nalguma coisa. Acabámos por nos decidir pela API da Mercedes, e acabou por render um 5.º lugar.

Acabei por, mais uma vez, assistir apenas a meia dúzia de apresentações das imensas que queria ver; notavelmente, e tive imensa pena, o painel sobre diversidade, que foi à mesma hora da minha apresentação. Agora, é esperar pacientemente que apareçam no YouTube…

Depois, imensas coisas para fazer (e que também não fiz nem metade): tiro com arco, cortesia da Siemens, para ganhar jantares de sushi, bilhetes para o Web Summit e mini-gadgets variados; pesar a mochila, cortesia da Cisco, para ganhar access points Meraki; competição de segurança; Code in the Dark, cortesia da OLX, onde era preciso implementar uma série de designs apenas com HTML e CSS, sem acesso a mais nada a não ser ser um editor muito simples; Dragon's Breath, o habitual desafio da comida picante; Chasing Ghosts, competição de retro gaming; o sempre hilariante e concorrido Quiz Show; e ainda uma caça ao tesouro (quase literalmente: valia 50.000 EXP) envolvendo as camisolas oferecidas.

No global, foi dos melhores eventos que já fui. Ainda está longe da organização do antigo Codebits, mas está a dar grandes passos na direcção correcta e, ao mesmo tempo, a corrigir alguns vícios que aquele tinha.

Tenho mais coisas para escrever, mas vêm aí a seguir como notas isoladas.

Comentários Nenhum comentário Continuar a ler Continuar a ler »