Information Architecture

Says Abby Covert that this is a book a that you can read during the time it takes to go from New York to Chicago by plane, meaning some 2 and a half hours. And, yes, you can do that. But really getting into what she is telling us is something that will probably take us some weaks. And putting them into practice, well, it’s something that can take a work life.

A book on information architecture that doesn’t seems to be about information architecture just because information architecture is almost everywhere.

“Information architecture is the way that we arrange the parts of something to make it understandable”

Interesting takeaways from SocialNow

Last week I went to the Social Now 2016 Conference in Lisbon, a conference organized by Ana Neves that, among other things, works as a showcase for vendors who want to show the tools they’ve built to enable the ideas behind the concept of enterprise 2.0, like collaboration, sharing, leveraging social networks, noemail, and others.

Generally speaking I was really impressed by the overall quality of the products being shown and surprised that all of them (i think) had mobile apps that allowed for the usage of most of the functionalities while not connected or on the desktop.

All the tools had slightly different goals but most of them had some kind of instant messaging, document editing and collaboration or integration/orchestration with other service providers like Google Docs, Microsoft Office, Slack, Hipchat, etc

Considering the different products, for me it felt like if I wanted a complete full blown solution that would have everything inside the box i would go for IBM Connections or Mango Apps, if was more into having some social tools and connect with other platforms maybe i would use Brikit, Knowlegde Plaza or Sitrium. If I only wanted to integrate and create a seamless experience for users using different tools maybe i would go with Topdox and if I wanted a different approach to visualizing your tasks and work items maybe Nooq would be the best.

But i think one of the most importante messages was the importance of the questions you need to ask yourself before giving these tools to your collaborators:

  • why do you want to implement these tools, what do you want to solve… enable colaboration? making your life easier?…
  • what do you want to achieve… less emails? reduce travel expenses?…
  • how are you going to roll-out the tool? just give everything to everybody at the same time? or define which users will start using what…

These simple but often forgotten questions may be the difference between a successful a project or just another set of tools you need to learn to do your job.

Brian K Vaughn on Orbital Comics Podcast

During my recent trip to London to attend the Feeling Restful Conference I was also able to go to a cool comic book store named Gosh!. When I came back, and as I was looking through their twitter feed, I also found out about Orbital Comics and their podcast which had a 2 part interview with Brian K. Vaughn.

If your not into comics maybe telling you that he was one of the guys that co-wrote some episodes of Lost will give you some sense of the kind of work he does. If not maybe you’ll recognize some of the stories we wrote like Y: The Last Man or Saga.

saga_18_00_titlesThis interview is really interesting and covers lots of stuff, like the comic book industry in this new digital age and some experiments they are doing with pay-what-you-want in Panel Syndicate. He also talks about is career, how he got into the industry, how working for Marvel and DC was important to grow-up as a writer and how the books he writes are a kind of “cheap therapy”.

I only knew about Y: The Last Man a couple of years ago and I got really addicted to it, much like it happened when I read “Strangers in Paradise“, so last year when asking for recommendations at my favorite comic book store here in Porto (Mundo Fantasma) and they talked about Saga I promptly bought the available issues and got into it.

The best thing about this interview was that Brian K. Vaughn sounded like a really cool guy which is a great thing when your favorite writers are also nice guys.

(image credits

My Feeling Restful

It’s been now more than a week since Feeling Restful, the first conference exclusively dedicated to the WordPress API.
Being away a couple of days and a reasonable amount of new projects meant some hundreds of emails to process and several meetings to attend to which made it quite hard to have time to reflect on this conference.
I should say upfront that I felt it was a very well spent time and it was really worth it to be at this conference.
To have 2 days just to talk and think mostly about one aspect of WordPress was really valuable.
The presentations were all interesting although of course some resonated with me more than others.

Without having another look at the slides or the schedule I can still remember all the presentations:

  • Daniel Bachhuber about wp-cli and the rest api and the possibility of powering and/or automating 25% of the web is really amazing and wpcli can certainly be a part of this process, even (or especially) if it keeps being developed alongside (and not inside of) core.
  • Kathleen Vignos from the Wired was a very hands-on talk with dos and don’ts on using the API, demonstrating some interesting use cases for the api and also sharing the experiences learned from trying to use the api on what at first seemed to be really applicable cases but which turned out to be not so good cenarios.
  • Scott Taylor and the rest api on ny as well and wp adoption on the nyt was also really interesting demonstrating the
  • Jack Lennox on api and rest driven themes was also a very interesting and fun presentation. Although I don’t feel, for now at least, that having a react (or similar) driven website is really important for the majority of websites, it was interesting to see how he tackled some of the usual critiques that are made to single page applications, like seo and others.
  • K Adam White on javascript and using the API to integrate with other systems.
  • Joe Hoyle and how using the API allowed an approach to web development that went from a monolith to a lego like approach.
  • Ryan McCue and a bit of the story of the API (which I mostly missed since I arrived late to the conference).
  • Nikolay Bachiyski on Calypso and Calypso-Like applications.


I got the felling the there is already some stuff being developed with the API but you have to be willing to take some pains of developing with something that is not still stable. It also felt that the API team is really focused and interested in creating something that may have a very deep impact on the WordPress ecosystem although some different perspectives on how the code base should evolve (into core, as a plugin, etc.) may lead to some delays.

As for the hackday, in the really cool Mozilla offices, it was also good fun although I get the feeling it ended when I was getting a bit more productive. Since I never had really participated on a WordPress hackday, and also because I still hadn’t use the API, most of the time was spent, at least in the Documentation table, debating how we could best contribute, setting up our environments and finally trying to get some pull request to the documentation branch.

It was nice to talk to the guys and gal that were with me on the documentation “team”: Kirsten CassidyTom de Bruin, Mendel and all the others. By the way, if you guys feel like coming to Porto why not come to the 2016 WordCamp Porto it will on the 14 and 15 of may. It would be nice talking to you again.

Pragmatic Choices – Web Application Development with WordPress and CMB2 #2

When you choose to use some kind of component you are accepting that even though this component may not be perfect, considering all the pros and cons, it’s still a better solution (in time, cost, etc.) than developing your own solution from scratch. This also means that sometimes you end up doing things that feel kind of strange, when you compare to what you would do if you were starting with a “blank sheet” of code.

How far you can stretch that strangeness usually depends on how pragmatic your programmer can be. Is he the type of guy that really just wants to get things done, even if it means you end up with some kind of technical debt or is he the kind guy that would rather work extra-time to make that code really clean, beautiful and also effective?

In our time tracking application we have, for now, 2 main dependencies, WordPress and CMB2, and we’re trying to make the most of them. This means that we’re trying to use all the functionalities they give us and also implement some requirements in a way that makes the most sense for those components.

In our 2nd week of development we’ve ran into a situation that, I think, represents this kind of choice and that has to do with Roles and Capabilities.


One of the goals of our time entry application is to register on what projects / subjects our consultants worked during the day. So we have something like consultant, subject, client, date, worktime, and so on. Relevant to this issue we also have the concept of teams and team lead. A simple consultant can only register something that he did but team leaders can register entries on behalf of their team members. On our roadmap is also the idea of logging changes in records, that is register who made some change to a specific record.

There were some options to solve this. One would be to simply use post_author to record who was registering the time entry. This solution would have the added benefit of allowing the use of the WordPress capabilities and reduce the number of tables we would have to include to filter tasks by consultants, we could simply use wp_quer. But since team leaders can also register on behalf of their team members and also because we wanted to keep track of who made the changes this wasn’t possible.

The other solution would be to simply ignore post_author and create 2 post metas, one to save the user that was recording the time entry and the other to register the consultant associated with the time entry. This would be a totally viable option, and since we’re building an application to track tasks and times and we’re not really doing anything with posts there was no reason to consider fields like post_author. This option would however make some queries a bit more complex and probably more cpu intensive since we would have to include not only the posts table but also post_meta with its “infinite” number of records.

Since, after data entry, data selection and filtering is a huge part of our application, and having to reimplement all of this requirements didn’t seemed to make sense to us, we chose to use an hybrid solution and so we ended up using post_author to record the consultant associated with this time entry and we’ve created a post_meta to save the user that registered this entry. Best of both worlds? We will see, but in the meantime if you think we could have done differently feel free to tell us.



The Plugin Boilerplate Decision – Web Application Development with WordPress and CMB2 #1

It’s been some years now that I’ve played the developer role in what I can call a proper Web Application Project. In the last couple of years I’ve dealt more with project management and team organization than coding and it’s something that I’ve missed.
Not only because I like to create stuff but also because I feel that to really understand what your team is telling you, project-wise (scope, metrics, coding specificities….), you need to have a good understanding of all the process, and that includes code.
You certainly don’t have to be the greatest coder in the world but in my opinion it’s really great if can both talk your clients’ language and your team language.

So we’re developing yet another time tracking application. You have some clients, some stuff you do for them and you want get reports that tell you things like how many hours you’ve worked for them or what kind of stuff you spend most time in. Nothing pretty special, at least for now.

Since we’ve been doing website development exclusively with WordPress for the last 3,5 years and already developed some things that might be called web applications and also having tried CMB2 in a couple of projects we decided that this would be a cool project to start from scratch with this stack.

Although having developed several solutions for WordPress we still haven’t found what works for us when we’re talking about plugin development. On the last couple of projects we’ve used Devin Vinson WordPress Plugin Boilerplate but it felt a bit overwhelming for us. Consider that in this project we have what I would call a true WordPress developer, a relatively new developer which already participated in some projects but with far less engagement than our main guy, and me who haven’t been coding for some time now. We’re also developing this plugin to be used only inside the admin.

So we’ve decided to go on a bit more simpler route… but who knows, maybe when the project starts getting more complex and the team skills gets more homogeneous we’ll go to a similar structure. For now our structure is really flat with the, I think, expected css, includes and languages folders. We chose to include CMB2 in our plugin to avoid version problems and we’ve added it to the includes folder. Inside includes we also have the admin folder with all the classes we’re using right now: time-entry, client, etc.

It feels very comfortable to work with this structure but lets see what the next weeks will bring us. Do you use other plugin boilerplates? I’d love to hear from your experience.

rookie mistake of the week: forgetting to activate the plugin we’re developing and loosing some 15 minutes trying to figure out why I wouldn’t see what we’ve already developed.

(image credits:

Build your web business, WP e Philip Glass Taxi Driver



Boagworld – série sobre diferentes vertentes do negócio webdesign

NPR Environment

Philosophy bites

BBC Radio 4

  • Philip Glass: Taxi Driver – Anos 70, filme de Martin Scorcese a retratar um taxista pelo submundo de nova iorque e ao mesmo tempo Philip Glass a trabalhar como taxista para pagar as contas…

NPR Planet Money

The Why Factor


Poststatus Draft Podcast

99% Invisible

(imagem retirada de It Took A Musician’s Ear To Decode The Complex Song In Whale Calls)

Digital Project Management e os anos noventa outra vez

NPR Environment

Planet Money

  • #635 Trade Deal Confidential – o que se passa nas negociações dos tratados como o TTIP e porque são sempre secretos, a minha conclusão é que é um resultado de soma zero

99% Invisible

  • Children of the Magenta – não ouvir antes de viajar de avião, ou como a automação pode ter efeitos negativos imprevisiveis

Scrum Master Toolbox


  • Inequality: what can be done? – sim é possível combater as desigualdades, mas ninguém disse que ia ser fácil
  • Is the American Century Over? – interessantes algumas comparações com a China, perspectiva interessante no que diz respeito ao crescimento da população e juventude da mesma

Matt Reports

Philosphy Bites

Boagworld Podcast

All Songs


Música, Filosofia, Música, Ambiente, Música

Gilles Petterson Worldwide

Philosophy Bites

Ultima Thule

NPR Environment


All Songs +1

  • The art of streaming – discussão sobre como o streaming muda a experiência de consumo de música

Guest DJ


  • Handling your finances – afinal não é só em portugal que se paga tarde (embora talvez mais tarde) ou que se quer pagar o mínimo possível