Interesting Quotes

“When you try to be all things to all people, you end up being nothing” – Al Reis

“When your work speaks for itself, don’t interrupt.” - Henry J. Kaiser

“People come to your site for one reason: to solve a problem.” – Vincent Flanders

If you’re the sort of person who tells someone how to build a watch when they ask you what time it is...” – Seth Godin

5,0 avaliado(s) por 3 pessoa(s)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Consultoria vende-se?

Segundo um artigo interessante na wikipédia, não!

"

Aspectos mercadológicos da consultoria:

A consultoria não pode ser vendida. A empresa-cliente deve comprá-la de acordo com suas necessidades. Compara-se a um médico cirurgião, que não pode sair buscando pacientes oferecendo cirurgias de ponte-de-safena a qualquer um. Não é o consultor que deve vender seus serviços, e sim a empresa cliente que deve reconhecer que algo está errado e buscar a ajuda de um profissional.

"

Fonte: http://pt.wikipedia.org/wiki/Consultoria

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Como comprimir o output de um webform programaticamente, em C#?

Quem programa para a web sabe perfeitamente que quanto mais pequeno o output de uma página mais rapidamente é efectuado o download da mesma.
Além da compressão do IIS (que compacta o pacote de dados e o browser descompacta), o objectivo é sem alterar qualquer html/xhtml, tornar uma página mais pequena. Vamos apenas cortar espaços e "quebras de linha".

De forma a tornar a utilização simples apenas é necessária a cada página, alterar a herança:
Ao invés de
public class _default : System.Web.UI.Page
colocamos
public class _default : CompressPage.

Ou em .net 2 sem code-behind simplesmente adicionar Inherits="CompressPage" ficando <%@ Page Language="C#" Inherits="CompressPage" %>

Como funciona?
Simplesmente elimina qualquer duplo espaço em branco tornando-o apenas num. Parece pouco?...

Utilizámos com bastante sucesso uma implementação semelhante no canal de cultura do sapo http://cultura.sapo.pt. O output da HP tem cerca de 17kb, isto usando UTF-8.
Ficamos com um output de cerca de 34% do original!

O tradeoff é um aumento de processamento médio de 0,005 segundos. Penso que negligenciável.

Segue a Class responsável pela compressão:

using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Web.UI;

public class CompressPage : System.Web.UI.Page
{

    protected override void Render(HtmlTextWriter output)
    {
        // FIRST INITIATE AN STRING WRITER
        StringWriter outputWriter = new StringWriter();       

        // GET THE UNCOMPRESSED OUTPUT
        HtmlTextWriter normalOutput = new HtmlTextWriter(outputWriter);
        base.Render(normalOutput);
        normalOutput.Close();
       

        // FINALLY WRITE IT DOWN AFTER COMPRESSION
        output.Write(RemoveSpaces (outputWriter.ToString()));
    }


    private string RemoveSpaces(string origin)
    {
        origin = Regex.Replace(origin, "\\s+", " ");
        origin = Regex.Replace(origin, "> <", "><");
        origin = Regex.Replace(origin, "javascript\"><!--", "javascript\">");
        origin = Regex.Replace(origin, "// --></script>\">", "</script>");
        return Regex.Replace(origin, "//--></script>\">", "</script>");
    }


}

 Esta implementação implica alterar a base class de todas as páginas. Simples para quem usa uma página base de controller.

Outra solução "mais limpa" seria criar um simples http handler com o mesmo tipo de processamento.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Para onde vai o dinheiro - Aplicações a Prazo Millenniumbcp.com

No site (ou sítio) do Millennium BCP para empresas existe uma funcionalidade de aplicações a prazo.

De forma sucinta dá a possiblidade de converter um determinado valor que está numa conta a ordem numa aplicação a curto prazo (ex: 30 dias) a troco de uns juros baixinhos.

Até aqui tudo bem.

Usamos esta funcionalidade há anos e um determinado problema persiste. Quando se faz a aplicação financeira o montagem aplicado desaparece durante umas horas, depois umas largas horas, por vezes um dia.

Durante este período de tempo o valor simplesmente desaparece da nossa conta. Screenshots, comprovativos, pdfs enviados para o banco surtem muito pouco efeito e o problema continua a ser um mistério insondável.

A minha questão é... para onde vai o dinheiro?

5,0 avaliado(s) por 1 pessoa(s)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Visual Studio 2008 RTM lançado em Novembro

Alguns meses atrás a Microsoft anunciou o lançamento do Visual Studio 2008 para o ano de 2008 (parece fazer sentido).

O lançamento oficial será efectivamente a 27 de Fevereiro de 2008 mas está já disponível a versão RTM.

Para quem não está a seguir RTM significa "release to manufacturing".

Para os early adopters estão já disponíveis versões trial do VS 2008 ou as express (gratuitas) já disponíveis.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

To do or not to do

In house or Outsource Development?

Fact: Occasionally, you need new software, a new package, a new library, whatever...
Options: do it yourself, get someone else to do it or get it already done.

This is what this post is all about: to do or not to do? That, my dear programmers, is (sometimes) the question.

Like most technical dilemmas, this is not as straightforward as it may seem.

Let's take a look at some major considerations:
 - Cost
 - Ownership
 - Time to Business Value
 - Knowledge

Cost: This is usually one of the major concerns. Consider not only how much you would be charged if you sent it outside your team, but also how much it would cost to do it inhouse (in fact, this is the first criteria you should consider). Figure out the costs of your team being assigned to this one project.

Ownership: As far as inhouse goes, it's granted. However, when outsourcing you have to make sure it's specified on the contract (don't forget to do this) or on the license agreement.

Time to Business Value: It's cheaper to do it inhouse and the ownership is obvious... but can your team get it done on time? It's normal for projects not to be ready on time for a million reasons. If you outsource the project, you can assure this on the contract (include a clause on the contract stating that the supplier has to pay you a specific amount for each day of delay). If you prefer to buy it or get it already done, make sure that it does what you need and that you have support. Also verify if its source is open or not and if the supplier won't be going bankrupt anytime soon.

Knowledge: Even if it's done by your inhouse team, make sure that the knowledge gained is not limited to one particular individual or two. Guarantee that there is technical documentation and that the skills needed to support it are common to most programmers on your team (or at least that you can easily find that kind of resources).


I've kept this list short. It should be enough for most cases.
Do your decisions already take all of this into account?

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Queres ser um agente secreto?

A publicidade sempre procurou ser o mais direccionada possível ao público-alvo. Com o advento nas novas tecnologias da informação e da comunicação, os meios de marketing e publicidade têm vindo a procurar cada vez mais adaptar-se e reinventar-se de modo a corresponder às solicitações do mercado para atingir esta ou aquela audiência. Exemplo perfeito é o programa Google Adwords, cada vez mais disseminado e refinado.

 

Vem isto a propósito da mais recente (e rara) campanha publicitária da “Government Communications Headquarters” (GCHQ), uma agência de inteligência britânica, que vai utilizar anúncios em videojogos para PC e Xbox 360. Andam à procura de geeks informáticos com rapidez de raciocínio. E, digo eu, talvez procurem no sítio certo…

Provavelmente é uma situação “win-win”, em que ganha o anunciante, o developer e, possivelmente, o jogador. É que para além do grande mercado que já é, o mundo dos videojogos tem um grande número de pessoas que devido à escolha de determinado jogo, poderão ter características (enquanto consumidores) em comum.

 

Onde estão aqueles autocolantes para a caixa do correio?...

3,9 avaliado(s) por 9 pessoa(s)

  • Currently 3,888889/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Produção versus Produtividade

Vivemos num país onde o trabalho não produtivo ultrapassa os 35% (fonte: Expresso).

Poderiamos fazer muito mais sem aumentar a carga laboral diriam alguns.
Na Espanha e na França onde esta percentagem é ainda maior, as empresas em média produzem mais. Este argumento cai por terra.
A resposta é simples, produtividade.

Confunde-se muito produção (conjunto de bens e serviços produzidos) com produtividade (taxa na qual os produtos e serviços são produzidos).

Numa análise leve existem opções para fazer mais: aumentar o trabalho produtivo e/ou aumentar a produtividade.

Assumamos um trabalhador português (com os 35% de trabalho não produtivo) cujos objectivos diários estão a ser cumpridos.
Seria legitimo assumir que apenas teria de trabalhar 65% do dia dado que é suficiente para os objectivos da entidade patronal. Bastam apenas 5 horas e 12 minutos de trabalho produtivo para cumprir os objectivos. Se cortarmos as quase 3 horas da carga horária diária restante teremos um aumento significativo de produtividade mantendo os objectivos.

Assumamos um outro cenário. Uma empresa tem um excesso de encomendas e pondera a contratação de novos funcionários, trabalho temporário, subcontratação.  Todas estas opções implicam um custo adicional. Aumentando o trabalho produtivo e/ou produtividade tal não seria necessário.

Sem querer entrar em assuntos como gestão do tempo, motivação, planeamento e definição de objectivos, este raciocínio simples pretende demonstrar que existe elasticidade entre produção e produtividade. Cabe a cada gestor estar atento e gerir o melhor balanço.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Quando um bug não é nosso, mas nós pensamos o contrário

Sendo este o meu primeiro post aqui no Blog, vou falar no que um bug de um Browser me fez "sofrer"! Estamos a desenvolver um projecto numa framework baseada em PHP, o Prado.
Vou abordar aqui um pequeno problema que tivémos no decorrer da implementação de um projecto, que temos neste momento.

Devido a uma imposição no layout, só podíamos mostrar parte de um texto. A totalidade do texto seria mostrada através de um tooltip. Mais tarde fomos alertados que o texto do tooltip não estava a ser apresentado na totalidade em Firefox.


Após vermos o código fonte em Internet Explorer e Firefox:
"<span title="aqui era mostrada a tooltip que pretendíamos" /> aqui era mostrado o texto que queríamos </span>"

E constatámos que estava tudo como nós esperávamos...

Depois de queimarmos os neurónios durante um pouco, lá chegámos à conclusão... é um bug do Firefox.

Isto leva-nos a uma questão se calhar pertinente... Para quando o cumprimento integral por parte dos browsers das regras do W3C?

Do ponto de vista do utilizador, a variedade de browsers, aumenta o leque de opções de escolha conforme gostos e preferências. Agora do ponto de vista técnico tal é capaz de não ser tão positivo, porque não existe conformidade na interpretação do código.

Sendo assim resta-nos tentar programar sempre para todos os browsers, com mais ou com menos dores de cabeça! Wink Wink

4,0 avaliado(s) por 2 pessoa(s)

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

A génese de um nome

Corria o ano 2005 quando a ideia desta empresa começou a tomar forma.

Tinha de se pensar em posicionamento, tecnologia, financiamento, clientes, facturação, colaboradores e uma imensidão de factores que qualquer empreendedor sabe, não serem de ponderação fácil. Cientes de ter feito o melhor possível demos este passo de análise por ora terminado.

Faltava então o nome. Foram feitos estudos de opinião mais ou menos caseiros e apurada uma lista de 50 nomes.
Incrivelmente, nenhum deles passou nos testes de confundibilidade de nomes do RNPC. Sugeriram-nos que fossemos para o café da esquina do CFE II de Lisboa durante uma hora e voltássemos com mais nomes. Assim o fizemos e ainda assim não encontrámos um nome que vencesse o teste de confundibilidade. Dizem que não há duas sem três...

Voltámos a contactar os nossos ex-colegas, amigos, família e parceiros. Feita nova pesquisa o nome encontrado foi o sugerido por um holandês (obrigado Patrick van der Valk) trocando uma letra e removendo outra num dos nomes da lista.

Dias depois é registada na conservatória de Cascais a empresa BSure lda.

3,0 avaliado(s) por 3 pessoa(s)

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5