Promine

Nossas idéias para você…

Bonde Barato

Pessoal,  a Promine vem trabalhando nas últimas semanas no desenvolvimento de um site de compras coletivas: Bonde Barato. Estaremos fazendo o lançamento da primeira oferta na próxima semana. Estamos atacando inicialmente mercados com grande potência de crescimento e que ainda não foram devastados pela tsunami da quantidade de sites de compras coletivas. Nossa primeira parada vai ser na região do Cariri, no interior do Ceará. Já estamos analisando a ampliação para outras cidades e, procurando representantes comerciais para essas cidades. Acessem o site e confiram as nossas ofertas. Divulguem para seus amigos.

Popularity: 1% [?]

Resolvi escrever esse post porque tenho visto alguns erros comuns e graves nos currículos que recebo. Seguir as dicas abaixo não é uma garantia de um currículo perfeito, mas evita pelo menos que quem esteja fazendo a seleção não ria de você (digo isso porque já bolei de rir de algumas coisas) :P

  1. Curriculo não é único por profissional, mas único por profissional e vaga: O erro mais comum é achar que o seu currículo vale pra qualquer vaga. Direcione seu CV para a posição que está aplicando para deixar claro ao avaliador por que você deve ser o escolhido para aquela vaga.
  2. Evite dados pessoais desnecessários: Nunca vi nenhuma empresa privada usar o número da carteira de reservista de alguém. Portanto, evite incluir documentos como carteira de reservista, carteira de motorista (a nao ser que a vaga exija), nome dos pais, dos filhos, entre outros.
  3. Ordene a sua lista de qualificações de acordo com a vaga: Inclua primeiramente o que for obrigatório, depois o que aparecer como desejável na notificação da vaga. Por ultimo inclua as qualificações que acha relevantes. O que não for relevante, remova do currículo.
  4. Não transpareça sua escolha religiosa: Não estou dizendo para ter vergonha de dizer que é evangélico, católico, espírita, ou seja lá o que for. No entanto, evite e-mails pessoais como filhodejeova@provedor.com, discipulodechicoxavier@provedor.com, entre outros. Isso pode lhe valer um ponto negativo na hora de ser selecionado, pois o avaliador pode achar que você repassará para os clientes suas orientações religiosas. Essa mesma dica se estende para times de futebol, escolha sexual, ou qualquer outra opção estritamente pessoal.
  5. Não inclua dados de conclusão de ensino médio ou fundamental: Se você possui uma graduação, dados do seu tempo de colégio não servem de absolutamente nada. Caso tenha especialização, mestrado ou doutorado, inclua-os mas mantendo a graduação. Basta uma linha para grau obtido. Simplifique para que seu currículo profissional não se torne um lattes.
  6. Faça um currículo de UMA página: 99% dos currículos que já recebi e que tinham mais de uma página, não mereciam tinham porque mereciam. Para que seu currículo tenha mais de uma página, ou a vaga que está aplicando exigindo um milhão de requisitos que você tem que listar que possui, ou você é um profissional excepcional, raro, gênio e não teve vida porque só estudou ou trabalhou. Faça com que o avaliador veja suas qualificações da forma mais direta possível.

Tem mais alguns aspectos que acho importante, mas como não quero alongar muito o post, prefiro ficar por aqui. Mandem sugestões ou críticas. Gosto de escutar as experiências de outras pessoas que fazem seleções de profissionais. Abraços. Até mais.

Popularity: 19% [?]

Hey guys, as promised by DHH (on his post during week), Rails 3.0 was released!

This version has a huge amount of changes:

  • New Action Mailer: It is all controller now. Forget about creating a model!
  • Routes: The syntax was completely remade to be more a REST-based compliant.
  • Switch easily to your preferred JS library: Now changing from Prototype to JQuery or vice-versa it is supposed to be very straightforward.

You can see the complete list of changes on the official release announcement post.

Let’s try it out! Awesome work RoR team!

Popularity: 22% [?]

Oi pessoal!

Faz um bom tempo que não posto por aqui. Hoje, eu gostaria de conversar sobre um assunto um tanto polêmico e é necessário um pouco de coragem para falar. Claro, isso não me faz melhor. Hoje, eu comprei um DVD de um filme que é um clássico pra mim: Os Intocáveis. Sim, paguei R$ 20,00 por um filme que eu poderia baixar. Por que eu fiz isso? Por comodidade. Isso mesmo. Alguém já disse isso, eu não lembro. Mas nós pagamos por conveniência e não por acesso ao conteúdo. Eu pago em média R$ 120,00 mensais para acessar a rede a 10MB. É muito facil baixar conteúdo e poderia ter feito o download rapidamente, mas seria trabalhoso. Não é preguiça. Olha quanto trabalho ia ser…

Teria de procurar o filme numa qualidade razoável, quando encontrasse e levaria 2h para baixar, começaria a maratona para buscar uma legenda sincronizada. Caso não encontrasse, teria de baixar um programa para sincronizar, ver tutoriais para relembrar o procedimento para tal. Até aí, já teria levado umas 3,5h (bem otimista, nã0?) ou mais. Enfim, eu iria ver o filme. Para alguns de nós que têm familiaridade com tecnologia é até divertido isso. Mas pense nas pessoas que acham que o Internet Explorer é a própria Internet. Elas não sabem e nem querem ter esse trabalho. Minha sogra tem anotado num caderno ao lado do micro, todos os passos para postar fotos no Orkut – e quase sempre ela o consulta.  Minha mãe – com 3 meses de experiência de acesso à rede – não consegue enviar email. Eu já ensinei várias vezes. Burra? Não, claro que não. Primeiro por que ela é minha mãe segundo, por que tudo isso não faz o menor sentido pra ela. “Jonas, tudo nesse bicho é muito difícil! Não tem um jeito mais fácil?”

O que eu quero dizer com isso: que as coisas estão caminhando – e precisam – para a comodidade. Tem que ser fácil e conveniente. Na verdade não pagamos por acesso ao conteúdo. O fazemos porque queremos rápido e fácil! Os modelos de negócio já existentes precisam se adaptar a essa nova regra. Bom, agora é com você… concorda, não? então comenta. Vamos discutir, será um prazer!

Popularity: 15% [?]

Yesterday,  I was trying to customize my Gmail signatures, but unfortunately, the Gmail does not have a complete rich text editor yet.

I’d like to put an image (logotype) and my personal information side by side, as you can see below.

However, when you insert an image through this text editor, you have no option to set the image CSS to “float: left;”, neither graphically (WYSWYG) nor textually (inserting raw HTML code).

So, I had to trick a little and use Firebug. Firebug is a so damn good Firefox plugin that provides you a lot of features, like CSS and HTML inspection and edition.

After installing the plugin, click on the icon on the right bottom corner of your browser and enable all panels. After that, click on the HTML tab and after on the blue arrow icon to enable the selection feature.

At Gmail Settings page,  click on the box that holds the signature. Firebug shows the HTML of the selected box. Click on Edit (below HTML tab button) and enjoy it. You can set any HTML you want and set inline styles.

After editing the HTML on Firebug, click on Save Changes on Gmail. Enjoy your new signature! See ya.

Popularity: 100% [?]

Agora a pouco foi anunciado o Rails 3.0 Release Candidate. Atrasou um pouco esse anuncio, que já era esperado desde a RailsConf, mas o que importa é que foi lançado e é hora da gente aproveitar pra testar, relatar e consertar os últimos bugs. De acordo com o próprio DDH, em algumas semanas teremos a versão final.

Já é possível encontrar vários artigos e screencasts sobre o Rails 3 beta (1, 2, 3 e 4). Segue abaixo uma lista de sites interessantes sobre Rails 3:

  1. RailsGuides
  2. RailsCasts
  3. EnvyLabs
  4. RailsPlugins

Mais informações direto do blog do rails.

Em breve estaremos postando aqui as experiências da Promine com o Rails 3. Abraços.

Popularity: 21% [?]

Before publishing your Rails application, it is very important to care about performance. When we think about performance some issues like caching and compression come up to our minds. A great Firefox plugin to analyze and improve your web app perfomance is the YSlow one integrated with the Firebug. With YSlow you can see which are your web site bottlenecks. A very common and useful action you can take is reducing the number of HTTP requests and minifying javascript and stylesheet files.

According to the HTTP rules, each web site file (like images, javascript, …) is sent to the browser on a different response message. So, it’s quite straightforward to think about putting somehow many files together to reduce the number of responses. Using the asset_packager plugin, you can run a rake task to aggregate and minify stylesheets and javascripts. I do advise you to use this plugin, but take a look at the following tips in order to save some time and avoid issues when publishing your web site.

  1. Remove @charset at-rule: Some IDEs automatically add a @charset “iso-8859-1″ line, for example, at the top of stylesheet files. When you run rake asset:packager:build_all that line may broke the generated packaged file.
  2. Avoid/Remove @import at-rule: The @import CSS rule allows you to include external stylesheets in your document. However, you can mess your site layout up if you use it, since it doesn’t follow the loading order you defined on the config/asset_packages.yml. If you want to reuse files, split your files as you prefer and group them on the asset_packages.yml.
  3. Avoid compressed javascripts: The most common js libraries has a minified version. As asset_packager compresses js files, avoid re-compressing those files. If you prefer minified files, you shouldn’t include them into the asset_packages.yml.
  4. Test your app on the production environment: Before publishing your app, test it on the production environment (script/server -u RAILS_ENV=production). You can find some layout bugs.

That’s it. If you have any further tip, please, let me know, leave a comment.

Popularity: 5% [?]

Oi pessoal!

O motivo que me leva a escrever é dizer o que penso e botar a minha cara a tapa mesmo. Bom, cliché a parte, vamos ao post.
Nesta semana, recebi um e-mail de uma empresa de produtos de informática. Não foi spam. Eu tomei a iniciativa de me inscrever para receber informações da tal empresa. Apenas para ficar monitorando o mercado. Qual não foi minha supresa quando eu abrir a mensagem e me deparei com uma imagem de 1440 pixels de largura… meu Deus! Quebrou todo o meu gmail.

Claro, podemos até pensar que a imagem era gigantesca por um propósito especial mas… não. Podia ser muito menor. Pelo menos uns 80% menor. Comecei a pensar sobre isso e a ficar mais atento à abordagem adotada por algumas empresas nas peças de e-mail marketing que eu recebo. Foram muitos os pontos de melhoria (sem mais delongas, defeitos mesmo). Dimensões exageradas, uso de imagem quando um texto seria melhor, tratamento sofrível das imagens, link universal (sabe quando tu recebe um e-mail com várias ofertas, não importa em qual você clique, sempre vai pra mesma página e lá fica perdido) e que é pior, Opt-out muito difícil de ser encontrado.

Vamos usar as novas mídias respeitando e explorando o potencial de cada uma delas. Do que adianta usar e-mail se você faz como se fosse um cartaz? Por que não pensar no perfil do seu público e checar se o que você ver lindo na sua tela não vai ser uma catástrofe no do seu cliente?

Bom, é isso!

Popularity: 21% [?]

As I promissed last week, here it is the simple tabs, jQuery version. It follows basically the same idea, but adapted to use the jQuery library.

Try it out:

Download Code

Configuration

  1. Include jquery (tested 1.4.2)
  2. Include promine.simple.tabs.js
  3. Create tab menu and set the menu html id into the promine.simple.tab.js
  4. Important: menu item prefix must be the same the tab content prefix. Ex.: profile_menu -> profile_content

Javascript

$(window).ready(function () {
  initTabs('#tabs');
});
 
function initTabs(tabs_menu){
  if($(tabs_menu).length > 0){
    // listen to some events to implement a tab menu behavior
    $(tabs_menu + ' span').each(function(i, elem){
      $(this).click(function(){
        var blockName = "";
        var auxArray = [];
	$(tabs_menu + ' span').each(function(j, tab){
          // get the corresponding block name according to the tab id
          auxArray = $(this).attr("id").split("_");
          auxArray.pop();
          blockName = (auxArray.length > 1) ? auxArray.join("_") : auxArray[0];
          blockName += "_content";
 
          if($(this).attr("id") == $(elem).attr("id")){
            $(this).addClass("selected");
            $('#' + blockName).show();
          }else{
            $(this).removeClass("selected");
            $('#' + blockName).hide();
          }
        });
      })
    })
  }
}

HTML

<!-- menu -->
 
<div id="tabs">
  <span id="javascript_menu" class="selected">Javascript</span>
  <span id="html_menu">HTML</span>
  <span id="css_menu">CSS</span></div>
 
 
<!-- content -->
 
<div id="javascript_content">Javascript content</div>
 
 
<div id="html_content" style="display: none;">HTML content</div>
 
 
<div id="css_content" style="display: none;">CSS content</div>

CSS

#tabs{
    width:100%;
    border: solid #CCC;
    border-width: 0 0 1px 0;
    height: 26px;
}
 
#tabs span{
    display: block;
    width: 150px;
    float: left;
    height: 20px;
    text-align: center;
    padding: 6px 5px 0 5px;
    cursor: pointer;
    font-weight: bold;
}
 
#tabs span.selected{
    border: solid #CCC;
    border-width: 1px;
    padding: 5px 4px 0 4px;
    border-bottom-color: #fff;
    background: #fff;
}

Popularity: 36% [?]

Last week I was looking for a stupidly simple tabs system. I didn’t need anything other than toggling some divs after clicking on a menu item and making no change in the javascript if I’d like to add a new tab. After googling for a while, I found some interesting codes but none of them were as simple as I would like. I’d like to include only a 1-kb javascript file to make things work. So, I created my own solution :) . Please: don’t expect to see an outstanding and revolutionary code, because that is only a simple tab system and probably somebody has already done something like that. This week I wrote the Prototype version. Next week I’ll rewrite it using Jquery library.

Try it out

Download Code

Configuration

  1. Include prototype (tested 1.6.1)
  2. Include promine.simple.tabs.js
  3. Create tab menu and set the menu html id into the promine.simple.tab.js
  4. Important: menu item prefix must be the same the tab content prefix. Ex.:  profile_menu -> profile_content

Popularity: 29% [?]