24 setembro 2011

Equilíbrio Financeiro e o Princípio 80/20

Esta é uma tradução livre do artigo "Financial Balance and the 80/20 Rule" que nos faz pensar e refletir a respeito de quanto gastamos, em termos financeiros e de tempo, com coisas desnecessárias no nosso dia-a-dia.

Uma das coisas mais fascinantes que descobri foi a regra do 80/20, também conhecida como Princípio de Pareto. Ela significa que 80% dos efeitos vem de 20% das causas.

Talvez seja mais fácil explicar este princípio dando exemplos de como ele aparece na minha vida, dia após dia, e como posso usar meu entendimento sobre ele a meu favor.

80% da conta do supermercado vem de 20% dos itens comprados. Seu eu pegar uma conta típica e olhar apenas para os itens mais caros, estes terão o custo de 80% do valor total da compra.

Ou seja, se eu quiser economizar dinheiro no supermercado, eu devo controlar estes itens. Este produto caro é realmente necessário na minha lista?

Você não economiza dinheiro reduzindo itens que custam menos de R$ 1,00. Você economiza dinheiro deixando de comprar (ou substituindo por um equivalente mais abrato) os itens acima de R$ 10,00.

Uso somente 20% das roupas que tenho para me vestir em 80% do tempo. Eu geralmente rotaciono por 5 calças/bermudas e mais ou menos 8 camisetas, enquanto alguma peça não ficar totalmente desgastada. Se eu observar meu guarda-roupas, possuo muito mais roupas que isso.

Então por que comprar? Por que possuir mais? 8 camisetas e 5 calças/bermudas me dão 40 combinações de vestimentas - e mais se eu combinar duas camisetas num estilo "dupla-camada".

Ou seja, eu não compro roupa a não ser que estejam em liquidação. Se de qualquer forma eu pegar uma nova peça de roupa, esta irá aguardar para entrar na lista de roupas mais usadas até o dia que uma outra peça for jogada fora.

80% do meu tempo em casa é gasto em somente 20% do espaço. Pense a respeito. Quanto tempo você gasta na sua cama? Quanto tempo você gasta na sua poltrona ou cadeira favorita? Para a maioria de nós, estes lugares gastam a maior parte do nosso tempo.

Eu gasto a maior parte do meu tempo em casa sentado no escritório, dormindo na minha cama, ou no sofá da sala. Gasto pouquíssimo tempo nos outros cantos da casa.

A única razão para ter uma casa maior é para ter mais espaço para guardar coisas.

80% do meu lazer vem de 20% da minha coleção. Eu costumo reler meus livros favoritos, ouvir novamente minhas músicas prediletas, ou assistir outra vez aos meus filmes e séries de TV favoritos.

Ter percebido isso me fez buscar formas gratuitas ou mais baratas de me expôr a novas mídias. Prefiro ir à biblioteca, assistir a vídeos online ou a ler capítulos grátis de livros digitais nos quais estou interessado.

Desta forma, não estou gastando dinheiro em algo que não está se conectando profundamente a mim.

Colocando de outra forma, a realidade do meu comportamento me leva à frugalidade. Eu só preciso sentar, olhar para o que estou fazendo, e tomar decisões financeiras de acordo.

29 agosto 2011

Java 7 Release and the JIT compiler bug

Quotation from Java Performance Tuning newsletter:

"Java 7 was released with a JIT compiler bug. This should not be an issue for the Java performance community - if you have a performance problem, you haven't been waiting for Java 7 to fix it for you, you've been busy analysing and fixing it yourself; and if you don't have any performance problems, you aren't about to upgrade your productions systems to Java 7 on the very first release!"

So true

16 agosto 2011

4MyFan: idéia excelente, de SCAM

Um amigo me passou esse site, 4MyFan, que se diz ser uma Rede Social Financeira. Isso me leva a crer duas coisas:

  •  o hype de redes sociais começou a ir longe demais
  • tem imbecil pra tudo nesse mundo


Para cada amigo que você convidar, este deve pagar US$ 10,00. Deste valor, você ganha 50%, ou US$ 5,00. A outra metade fica para o site. Sem contar que o PagSeguro ainda leva 7% do valor. Ou seja, você recebe no final das contas algo em torno de US$ 4,50.

Minha sugestão a quem quer ser ajudado por amigos: coloquem num blog o número da conta de vocês, e peçam aos seus amigos para transferirem um trocado, algo como R$ 10,00.

É ridículo dar dinheiro a um site, para que ele transfira 50% para um amigo seu, apenas para que você faça parte da "rede social financeira".

O dono da idéia não sei quem é, mas o cara que registrou o domínio é esse:

Registrado por RedeHostAcesse: www.redehost.com.br
Domain Name: 4MYFAN.COM 
Registrant:    -    Artenio Batista da Silva Junior        (info@redehost.com.br)    rua 1132, 322, qD 242 B    marista    goiania    GO,74180110    BR    Tel. +55.6232418840
Creation Date: 01-Feb-2011  Expiration Date: 01-Feb-2012

09 agosto 2011

Participações em eventos de 2011

O ano de 2011 está agitado para mim.

Já estive no JustJava, no The Developers Conference (edição São Paulo) e na próxima semana estarei presente no TDC Florianópolis. Em Setembro ainda tenho o QCon, evento do InfoQ-Caelum. E sobre o quê tenho falado? Apache Wicket.

O desenvolvimento Web em Java deixou de ser lento, e nestas minhas palestras, apresento uma proposta diferente. Programadores e Web Designers trabalhando em conjunto sem que um prejudique ao outro.

Foi-se o tempo que a separação de camadas se dava apenas na programação. Chegou a hora de separar também o trabalho do designer e o do programador. Afinal, o web designer é quem entende bem de CSS, efeitos, web fonts e UX.  No meu post "What are web frameworks missing?" detalho melhor este tema.

Mas voltando aos eventos, segue a programação para quem quiser saber mais:

The Developers Conference - edição Florianópolis
Data: 20 de Agosto de 2011 - 13:10 na trilha Java
saiba mais


QCon - São Paulo
Data: 10 de Setembro de 2011 - 18:10
saiba mais

E se quiser se aprofundar mais, confira o Curso de Apache Wicket que lancei este mês. O curso começa no dia 4 de Setembro.

Curso de Apache Wicket

Lancei ontem o Curso de Apache Wicket, para iniciantes e para aqueles que já utilizam. O curso será ministrado online através de uma ferramenta com compartilhamento de tela e chat. Serão ao todo 4 aulas com duração de 3 horas e meia.

Durante o curso, os alunos construirão uma aplicação completa, integrada ao Spring, paginação e outras funções em Ajax. Os interessados podem se inscrever pelo site www.cursodewicket.com.

Valor: R$ 389,00


4 de Setembro: 9:30 - 13:00
11 de Setembro: 9:30 - 13:00
18 de Setembro: 9:30 - 13:00
25 de Setembro: 9:30 - 13:00

08 agosto 2011

Run Activity with Intent without knowing the class

I was having a problem this evening where I had to call an activity that I didn't want to know the class name. My problem was exactly this: I have several activities, each with a String id. And in activity A I call goToScreen("b"); to load activity B.

To make this work one need to do this:

public void goToScreen(String id) {
  PackageManager pm = androidContext.getPackageManager();
  Intent intent = new Intent("com.myproject.screen."
    + id.toUpperCase());
  intent.addCategory(Intent.CATEGORY_DEFAULT);

  ResolveInfo ri = pm.resolveActivity(intent,
    PackageManager.MATCH_DEFAULT_ONLY);

  if (ri != null) {
   Intent i = new Intent();
   i.setClassName(ri.activityInfo.applicationInfo.packageName,
     ri.activityInfo.name);
   androidContext.startActivity(i);
  }
 }

This code will call an activity mapped on AndroidManifest.xml like this:

<activity android:label="@string/app_name" android:name=".AvisoActivity">
   <intent-filter>
      <action android:name="com.myproject.screen.AVISO" />
      <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</activity>


The DEFAULT category is not optional, as one may think. If you don't put both references (Java and XML) of the category, this code won't work. I don't know if it's a bug at Android or just a non-documented feature (which is a bug to me, anyway).

Also, don't forget to call resolveActivity with MATCH_DEFAULT_ONLY.

This is all for tonight and this blog post is more like of a reminder to myself. =)

05 agosto 2011

Bug maldito

Bug maldito, bug maldito
Ajuda o sistema a travar
Nunca desiste, nunca descansa
Escondido!
Ainda vou ter que encontrar



original

12 julho 2011

What are web frameworks missing?

First of all: there's no perfect web framework. And it doesn't matter what technology, language or platform. But I finally have come to one thing that is really important. Something most web frameworks are missing, and something I believe, as many other developers that have already blogged about, is the future of the Web.

Let's start with the consequence of the problem: the infinit fight between Web Designers and Web Developers. Designers and developers have been fighting for years within web development. And this happens because the work done by designers usually is "destroyed" by developers when they have to inject dynamic/logical code into the HTML, converting it to something like JSP, PHP, RHTML or a mix of Python and HTML. It doesn't matter the language.

The problem is clear: what the designer did goes away. If he must update the design, even if the data structure won't change, most certainly you will have problems. He might break some logics, some code, and you will have to fix it. Then, you might also break some layouts and he will have to fix it. And you might go into a loop for a couple of days because of something that should be done in about hours.


We all talk about separating layers. But when it comes to designers vs developers, we really don't care about because we are trying to push an idea of programmers that are able to design just like designers, or designers able to code as programmers. That just won't happen. You may find one or two excellent professionals like that, but is not easy. Developers and designers have different way of thinking. The former has artistic creativity while the later has logical criativity. So if we, developers, are always saying "let's use the right tool for the right job", what's happening with the designer? His work is not being done in the right tool. I've seen designers with IDEs installed on their Macs because they have to run the project to see how it's looking like.

What if he could simply use Coda or Dreamweaver or TextMate as he does but then just preview the damn HTML in the browser, which is the right tool for him? What if he could simply preview the code that will actually be send to the client? What if he could... do his work with the best tools available? The best tool for his job.

I believe in and code with a Web Framework that helps both Developers and Designers to execute their tasks with the best tools they know. A developer should concern on data, on logic, on security. A designer should concern on layout, design, colors, UX. And what one does should not break the work done by the other.

Without mixing dynamic code with HTML, or even worse, replacing HTML elements with Tag Libraries (JSP, JSF and others), the designer can just open the HTML in the browser and see how is the prototype.

You know that prototype your designer has worked on for a week to get approval from your customer? You can just use that with minimal changes, and the prototype can still be statically functional and also run in the server. If you get an email asking for a change in the layout, no problem. Ask your designer to change the HTML, he will preview in the browser, get approval from the customer, and your developer won't have to change a line.

This is what Web Frameworks are missing. This is what I'd like to see implemented in any Web Framework. This is what Apache Wicket is providing.

The rest is just scaffolding, templates and code generation.

The future is of course static HTMLs, JavaScript and REST+JSON. Web frameworks are dead.
But until the future comes, let's just improve the web development process a little bit, shall we?

30 junho 2011

Google+ Huddle vs Kik Messenger

Group messaging has never been so easy to use as with the new Google+ Huddle launched this week. The tool is well-coupled with Google+ Circles and all of your contacts which makes it easy to start chatting with specific groups of people you can relate based on the subject of your messages.

We've already seen apps like this before. Kik Messenger is one of them, if not the most used one, specially for iPhone users. The adoption however within mobile users was low. Facebook didn't even tried to do that but failed because its Facebook Groups is not as good as Google+ Circles.

And why will Huddle succeed where Facebook and Kik Messenger failed before? First because Google is Google, and everybody has a Google account. To start a group chat on Kik, all of your friends must sign up first, hence the problem with adoption. Something Google don't have to worry about. Second, because Facebook wants - needs - to have all information its users publish be public available.

The Huddle app, although very similar to Kik Messenger, has greater potential.

Icons

Group chats

A chat

UPDATE: It seems Huddle is not a new project from Google. Actually, they came with this back in 2008 and it almost killed 37signals' group messaging tool Campfire. Read the article.

30 maio 2011

Twitter email notification

Today was the last time I complained about Twitter's email notification design for, at least, direct messages. The position of username and avatar calls for my attention and everytime I look at it, I find myself searching for the message one has sent to me.

The actual design
Look at all that whitespace. Sure there's nothing can do about it? At first look, one will look at the avatar, and suddenly, will have to go backwards to find what that person had sent you.

So, I've made one little change.

The new design
Now this design has a better flow of information and still takes advantage of space for long messages and names.

Please Twitter, fix it.

You are killing my eyes one DM at a time...

Thank you.
Bruno Borges

21 março 2011

Apache Tomcat 7: Bibliotecas Compartilhadas

Publiquei no Lado Servidor uma dica boa pra quem usa Tomcat 7.

Confere lá

01 fevereiro 2011

BlocoDroid: Carnaval de Rua Rio 2011

Hoje estréia no Android Market, minha primeira aplicação para Android. O BlocoDroid é um guia da programação do Carnaval de Rua 2011 do Rio de Janeiro, com a lista de todos os blocos anunciados no Diário do Rio.

Útil para os folióids que não querem perder de vista os melhores blocos do Rio, mas também útil para aqueles que querem escapar dos engarrafamentos e bagunças causadas nessa época do ano. :-)

Para baixar o aplicativo, use o Barcode Scanner para instalar o programa no seu celular, com o QR Code acima. Ou pesquise por BlocoDroid no seu Android Market.

E bom Carnaval pra você!!

Contato

Email:bruno.borges(at)gmail.com

LinkedIn: www.linkedin.com/in/brunocborges
Twitter: www.twitter.com/brunoborges
Comprei e Não Vou
Rio de Janeiro, RJ Brasil
Oracle
São Paulo, SP Brasil