Sobre Nuno Morgadinho

Actualmente vive em Lisboa onde começou a WidgiLabs, uma empresa na área das tecnologias, onde oferece serviços relacionados com WordPress e onde dá asas ás suas ideias. Antes disso trabalhou como consultor independente e como programador para a Agência Espacial Europeia e anteriormente para a YDreams. É um apaixonado pelo que chama de "beautiful software" onde se encaixa, na sua opinião, o WordPress. Faz Kung-Fu há 6 anos.

4º Encontro WordPress Lisboa

Já há tempos que ando com vontade de organizar um meetup em Lisboa. E agora ajudado pelas recentes movimentações na comunidade vai mesmo ser :-)

Como já tinha dito a alguns de vocês queria fazer uma coisa muito informal, muito “chilled“. Acho que as melhores meetups são aquelas onde podemos conversar entre todos e trocar impressões sobre o que nos apetecer. Estou-me a lembrar por exemplo da discussão em volta das limitações do WordPress num ambiente jornalístico (potenciado pela apresentação do João Pedro Pereira do Público) e as hipóteses de solução que surgiram depois.

Desta vez estou a tentar convidar para encontro alguém do serviço Hullopress (recentemente lançado cá em Portugal pela log) para nos vir apresentar o que os levou a criar este serviço e os desafios inerentes. Vamos ver se é possível..

Depois da apresentação está planeado fazermos uma “mesa redonda” sobre Web Design & WordPress. A ideia é ajudar a resolver os problemas que todos enfrentámos no dia a dia enquanto profissionais através da partilha de experiências (e histórias de terror). Se és developer ou web designer então junta-te à mesa.

A meetup é grátis mas é necessário registo.

Agradecemos a divulgação! (a hashtag para o Twitter é #ewplx)

LocalCowork Lisboa, na LX Factory, mais concretamente na zona da cafetaria Quarto com Vista. É em Alcantâra e o mapa está aqui.

Data: Sexta-feira, dia 2 de Março, com a seguinte agenda:

  • 18.30h – início, boas vindas e networking
  • 19.00h – apresentações
  • 19.45h-20.45h – “Mesa redonda” sobre Web Design & WordPress
  • 21.00h-22.30h Networking e after-work drinks

Plugin: Theme Selector

Um belo dia em Dezembro do ano passado a @aaires abordou-me com a possibilidade da escolha dos temas no WordPress ser feita sem ir ao painel de administração.  A ideia tinha sido inspirada pelo interface do Tumblr que permite algo semelhante: quando se pretende mudar a aparência há uma sidebar que permite ao utilizador navegar por entre os temas existentes, pré-visualizar a sua aplicação e activar caso o deseje.

Quando começamos a investigar percebemos que não seria difícil implementar esta ideia no WordPress através de um plugin relativamente simples e pequeno. Se pensarmos bem a selecção de temas no WordPress no painel de administração através do menu ‘Aparência’ já permite a pré-visualização de como o blog vai ficar depois de aplicado determinado tema. Tratava-se apenas de trazer esta funcionalidade para o frontend.

A barra de administração era a escolha óbvia de onde adicionar esta nova funcionalidade.

Quando se selecciona Change Theme surge uma barra lateral onde se pode navegar por entre os temas instalados. Clickando no screenshot de cada tema é possível ter o preview  do tema seleccionado no lado direito. Ao clickar Activate o tema seleccionado é activado.

O plugin está disponível para download aqui:

http://wordpress.org/extend/plugins/theme-selector/

O código fonte está disponível no GitHub e aceitam-se contribuições e sugestões. :-)

https://github.com/WidgiLabs/theme-selector

Caso de estudo: Bonifácio Wines

Bonifácio Wines é um dos projectos mais recentes desenvolvidos pela WidgiLabs em parceria com o designer Pedro Garcia Marques.

Neste artigo pretendo fazer um pequeno case study sobre o projecto, para falar sobre vários aspectos, desde o nosso ponto de partida até aos possíveis desenvolvimentos futuros.

O principal desafio foi combinar a marca Bonifácio, um negócio de família com mais de 50 anos de história, com um look-and-feel moderno. A marca produz e distribui uma grande variedade de vinhos e queríamos que a actualização de conteúdos fosse disponibilizada para que no futuro ficasse a cargo do cliente.

Para mostrar como lidámos com estes aspectos vamos dividir este artigo em 3 secções: passado, presente e futuro.

Continuar a ler

Desenvolvimento em WordPress no P2PU School of Webcraft

As últimas semanas têm sido bastante divertidas e interessantes.

Por via de um amigo ouvi falar na P2PU – School of Webcraft, um esforço com o apoio da Mozilla para o ensino gratuito e on-line de tecnologias Web de código aberto e o seu reconhecimento.

Em algum jeito de carolice criei um curso de ‘Desenvolvimento em WordPress‘, preenchi alguma informação básica sobre um possível alinhamento do curso, criei uma tarefa de inscrição obrigatória (para inscrever era precisar modificar o plugin do Hello Dolly com as frases favoritas) e fiquei à espera..

O que aconteceu depois foi quase surreal, comecei a receber inscrições e mensagens de dezenas de pessoas e rapidamente o limite de 40 que tinha imposto passou para 178 pessoas inscritas.

O curso decorre da seguinte maneira: todas as semanas à Segunda feira os inscritos recebem um desafio que têm de completar. À Quarta reunimos todos no IRC (freenode #p2pu-webcraft/wordpress-development) e Domingo à noite são publicados os resultados dos desafios.

Existe uma página com uma lista de documentação, tutoriais, vídeos e etc. Não há necessidade de criar mais material quando já existe excelentes recursos. A ideia é apontar esses recursos às pessoas e ajudar onde necessário.

Neste momento já foram publicados o primeiro e o segundo desafios, que também publiquei no meu blog pessoal. Neste momento as inscrições já estão fechadas mas a ideia é, se correr bem, repetir o curso outra vez em Março. Todas as opiniões e ideias até lá são bem vindas.

Montra: Touch2Give


Touch2Give é um novo portal online que pretende unir as marcas e designers independentes mais inovadores do mundo e que partilhem dos seus valores e da sua visão de responsabilidade social. De couture de luxo feita apenas por encomenda, a marcas de moda que se provem éticas e sustentáveis, o portal promove marcas e produtos que tenham sido produzidos de forma responsável. Funciona a partir de Lisboa para o mundo inteiro.

Ambientes de Desenvolvimento

No encontro de 27 de Novembro, apresentei uma solução para ambientes de desenvolvimento com WordPress. Aqui estão os slides e mais algum contexto:

Os ambientes de desenvolvimento normalmente recomendados são:

Desenvolvimento: a cópia local na máquina do programador.

Staging: onde se faz continuous integration e se testa novas funcionalidades. Deve ser o mais parecido possível com o ambiente de produção de maneira a evitar surpresas quando se criam novas versões.

Produção: é o site real, ao vivo, que os utilizadores vêem.


Em cada um destes ambientes existe uma base de dados diferente.

Queres trazer uma cópia do site para desenvolver localmente?

É relativamente fácil. Se estiveres em Linux ou Mac basta pôr no /etc/hosts uma entrada do URL a apontar para o localhost e consegue-se muito facilmente desenvolver localmente.

Queres fazer commit para um servidor de staging?

Aqui é mais complicado porque normalmente o servidor de staging tem um URL diferente e é preciso alterar na base de dados todas as referências que existam do URL. Normalmente as pessoas tentam fazer um search-and-replace e só mais tarde percebem que isso não funciona por causa dos serialized arrays.

Vou explicar o que acontece porque é importante para perceber a solução que eu uso e recomendo. Quando se quer guardar um array na base de dados o WordPress usa a função serialize, que cria um serialized array que é algo desta forma:

s:15:"poll_happypolls"

Aquele 15 é o tamanho da string que se segue. Quando se faz um search-and-replace muda-se a string mas como não se alterou o tamanho os dados ficam corrompidos.

Existem algumas formas de resolver isto 1, algumas mirabolantes 2, mas na minha opinião são muito error-prone e não são algo que queira fazer regularmente.

Uma maneira muito simples de resolver isto é usar um site URL do mesmo tamanho em desenvolvimento, staging e produção. Isso faz com que seja trivial fazer migrações (mudar a base de dados de um sítio para o outro), apenas basta fazer o search-and-replace, o que pode ser facilmente automatizado com um script. Esta é uma solução muito simples e quanto a mim elegante até dada a sua simplicidade.