out 242014
 

Excelente equipamento, usamos alguns para transporte de dados cá pela Academia.

Porém, uma crítica:

Os pézinhos de borracha são colados com cuspe! (risos).

Depois de 4 anos de uso, este foi o único defeito, solucionado com um aplique de borracha adquirido por R$3,00 em papelaria daqui da região.

Veja pelas fotos:

 

out 242014
 

O causo:

Para uma campanha de entidade beneficente local nos feita a seguinte encomenda:

Será promovida uma festa beneficente, para a qual serão vendidos ingressos, com o objetivo de adquirir uma ambulância para a entidade. A proposta: Colocar na página inicial do site da entidade uma ambulância em preto e branco e, na medida, que forem sendo vendidos os ingressos, no total de 10 mil, a ambulância vai colorindo-se.

Apesar de extremamente simples, não encontramos algo do tipo em nossas pesquisas, assim vamos à solução:

Usar duas imagens sobrepostas, um PB outra colorida, formatadas via CSS, com alterações dinâmicas via jQuery.

Esta é a imagem inicial, com 0% de preenchimento:

ab

Seguida da função que faz a variação:

 

	function colore()
	{
	/*ATENÇÃO:
		Função não otimizada, para efeitos didáticos!
		*/
 
		//captura o tamanho da imagem:
				largura=$('#imagem').width();
				altura=$('#imagem').height();
		//valor (em percentual) do campo:
				percentual=parseInt($('#valor').val(),10);
					//valida o dado recebido, se for inválido, assumirá 50(%)
 
					if(percentual)
					{
						if(percentual<0||percentual>100)
						{percentual=50;};
					}
					else
					{percentual=50};
 
		//calcula o tamnho da imagem, conforme o percentual:
			largura_sobreimagem=parseInt(largura*percentual/100);
			altura_sobreimagem=parseInt(altura*percentual/100);
 
		//atribui o valor à sobreimagem:
			css_sobreimagem="clip:rect(0px,"+largura_sobreimagem+"px,"+altura_sobreimagem+"px,0px)";
 
			$('#imagem').css({"clip":"rect(0px,"+largura_sobreimagem+"px,"+altura_sobreimagem+"px,0px"});
		/*
		No caso, a sobreimagem varia na vertical e na horizontal, apenas para demonstrar as possibilidades do efeito,
		na prática, foi usado somente na horizontal para melhor visualização.
		No estilo acima, a imagem já começa como "meio colorida" apenas para efeito demonstrativo
		*/
 
	};

Chegando a este resultado:

ab2

 

Pronto, simples e rápido.

Aqui os arquivos para download: .imagem_sobre_imagem

(A imagem da ambulância é promocional da FIAT/Ducato)

out 242014
 

 

 

Projeto de Lei 6625

/2013 pode trazer incentivos fiscais para empresas de informática.

Certamente um setor estratégico para o país, incentivar, afastando a estonteante carga tributária nacional, é medida louvável.

Porém, entendo que falte um pouco mais de tecnicidade à Lei, o legislador trata a “start-up” como outras microempresas, impondo algumas regras que não são deste mundo, cito duas que entendo prejudicar o espírito que se defende na Lei:

Serão beneficiadas empresas com faturamento trimestral de até 30 mil e tiver , no máximo, 4 funcionários.

Senhores Legisladores:

Os profissionais de informática, em especial aqueles que dedicar-se-ão a start-ups, tem uma renda mensal média de 12 mil Reais. Ou seja, uma empresa com faturamento trimestral de R$30 mil, não será capaz de contratar um bom funcionário sequer, quanto mais 4. Não confunda microempresas com empresas de informática, nestas últimas o maior capital não está nas instalações, não está nos estoques, está, sim, na cabeça de seus funcionários que, pelo grau de especialização exigido, são profissionais caros, quando comparados à média salarial nacional.

Por outro lado, a limitação de contratação a 4 funcionários é um contrasenso, pois deveríamos, como país, incentivar a contratação, não limitá-la!

Assim, excelente proposta, Lei com um espírito nobre, porém com uma execução pobre, pois não reflete a realidade do mercado informático e, no fim das contas – mantida como está, será só mais uma Lei sem propósito.

 

(imagem do cofrinho, licença livre, pode ser baixado em: http://fc01.deviantart.net/fs71/f/2014/295/d/a/pig_bank_by_altercom-d83sdl6.svg)

 

out 232014
 

O problema é o seguinte:

Temos uma tabela com dados de pedidos, preenchida dinamicamente com AJAX/PHP/MySQL.

Até aí ok, porém, para facilitar a visualização, pretendemos colorir a linha (cada linha representa um pedido) conforme o valor da célula que contém a informação de estatus do pedido.

Antes da função jQuery, temos:

tabela2

function colore_tabela()
    {
        /*
         * TEMOS 8 Status possíveis, com sua cores respectivas:
         *  1-salva;                    branca
         *  2-aguardando validação;     azul
         *  3-não validada;             amarelo
         *  4-aguardando aprovação;     azul
         *  5-aprovada;                 verde
         *  6-não aprovada;             amarelo
         *  7-cancelada;                vermelho
         *  8-concluida;                verde
 
      */
 
$('#t_dados').find('tr').each(function(indice){
switch($(this).children().eq(0).text())
{
 
case 'aguardando validação':
case 'aguardando aprovação':
$(this).prop('class','info');
break;
 
case 'não validada':
case 'não aprovada':
$(this).prop('class','warning');
break;
 
case 'aprovada':
case 'concluida':
$(this).prop('class','success');
break;
 
case 'cancelada':
$(this).prop('class','danger');
break;
 
};
});
}

Foram usadas as classes do Bootstrap 3.0 para tebelas: http://getbootstrap.com/css/#tables-contextual-classes

Após:

tabela1

Visualização melhorada, com poucos comandos e processamento client-side, certamente uma boa pedida.

 

Neste caso específico, criamos uma função isolada que é chamada depois da execução do AJAX, porém, caso sua tabela já venha preenchida, podes chamá-la logo ao carregar a página, com esta sugestão (ou mesmo através de função anônima):

$( document ).ready(function(){
		colore_tabela();
		});

 

Para entender um pouco mais:

Usamos a função .each() para percorrer cada linha da tabela, em seguida, selecionamos com children(), seguido de eq(0) o texto da primeira célula, logo, se quiser alterar qual célula será testada, basta alterar o índice, onde 0 representa a primeira coluna, 1 a segunda e assim por diante.

 

Até a próxima.

 

 

 

set 302014
 

search

O EasyPHP sempre foi, e penso que continua sendo, o mais simples dos WAMP para testes e desenvolvimento de aplicações web com PHP.

Porém, de algumas versões para cá (escrevo tratando da versão 14.1), quando instalado sobre o Windows7 32 bits, a bagaça enrosca e não incia o Apache pela falta da DLL MSVCR110.dll.

ScreenHunter_30 Sep. 30 18.45

Pois bem, o aviso: CUIDADO AO BAIXAR DLL DE SITES ESTRANHOS.

Uma biblioteca DDL bem construída e mal intencionada pode dar acesso irrestrito à sua máquina.

A maldita que falta faz parte do pacote:

Visual C++ Redistributable for Visual Studio 2012 Update 4, da Microsoft.

Assim, para corrigir o problema com segurança, baixe-o diretamente do site da Microsoft pelo link:

http://www.microsoft.com/en-us/download/details.aspx?id=30679%20#

Seguindo os passos:

Escolha o idioma (não tem português, ao menos até o momento que baixei.):

ScreenHunter_31 Sep. 30 18.53

Escolha seu sistema operacional (x86 para 32 bits – nosso caso, x64 para 64bits ou arm para outros dispositivos, como Windows Phone):

ScreenHunter_32 Sep. 30 18.53

Instale o trem:

ScreenHunter_33 Sep. 30 18.59

ScreenHunter_34 Sep. 30 18.59ScreenHunter_35 Sep. 30 19.01

 

 

 

 

 

 

 

 

 

 

 

Leva bem uns 5 minutos.

Pronto, EasyPHP funcionando.
ScreenHunter_36 Sep. 30 19.03

É isso.

ADENDO: Como bem colocou nos comentários o colega Artur, mesmo se usares a versão 64bits precisará instalar a X86 para que funcione corretamente. Valeu pela dica!

set 302014
 

logo@2x

Git é um cliente para controlador de versão (existem outros, como SVN – Subversion por exemplo).

A melhor explicação para inciantes pode ser vista no canal da Loiane Gronner:

É possível trabalhar localmente com o Git, ou seja, instalar um servidor local em sua máquina ou em sua rede. Aqui na Academia o Git é usado para controlar os projetos open source da academia que estão disponíveis no GitHub.

Então, usamos o Git em conjunto com o repositório GitHub que, grosso modo, é uma rede social para desenvolvedores. Para usar o Git e o GitHub, pode ser por linha de comando ou por interface gráfica. Usamos, na segunda opção, o GitHub for Windows.

search

Para aprender um pouco sobre GitHub:

Por fim, a dica:

Crie e compartilhe seus projetos no GitHub, além de organizar sua produção, ajudará e terá ajuda da comunidade. Para ti, certamente ter alguns bons códigos no GitHub serve como um excelente cartão de visitas!

É isso.

 

set 232014
 

Rede_SemânticaMuito se fala, e já há bastante tempo, sobre web semântica.

A coisa ficou tão popular que até nossos clientes pedem produtos “semânticos”…

Mas o que vem a ser isso?

Antes, vamos tratar do que é propriamente semântica:

 

Semântica está relacionada com o idioma, com a linguística. Como comparativo: enquanto a gramática estuda as regras de determinado idioma, enquanto a ortografia estuda a forma correta de escrever (representar) cada vocábulo deste idioma, a semântica se ocupa do sentido das palavras, do que querem dizer.

Assim, como em programação usamos uma linguagem, de máquina é verdade, mas ainda assim uma linguagem, programar de modo semântico e usar cada elemento daquele linguagem para o fim que ele foi criado, respeitando seu sentido, sua semântica.

Para ilustrar: Nos primórdios da web cada página era escrita na unha, um site com várias páginas tinha cada uma elas escritas no braço, era basicamente só HTML, e, nesta época, criativamente usávamos tabelas <table></table> para marcar a diagramação, assim, cada elemento na tela correspondia a uma célula , ou grupo de células, de tabela.

Com o CSS e as DIV, tal prática restou há muito ultrapassada, bem, nem tanto, ainda há muitos sites que usam tabelas para diagramar seu conteúdo.

Assim, programar de modo semântico, usando o HTML como exemplo, ok, eu sei que é linguagem de marcação e não programação, mas serve de exemplo, é usar cada coisa em seu sentido literal, ou seja, a tag <table> deve mesmo se referir a uma tabela, o parágrafo a parágrafo, a label a uma etiqueta e assim por diante.

É isso.

Para aqueles que gostam de saber um pouquinho mais:

Programar (ou marcar) de modo semântico é essencial para a internet atual por motivos diversos, tratemos de apenas dois:

Leitores de tela. Sim, há pessoas com deficiência visual que dependem dos leitores de tela para navegar na web, se marcar sua página de modo a contrariar a semântica, seus sites serão inacessíveis. Não me parece uma boa ideia.

Web Dinâmica: creio que já não existam mais páginas estáticas na web, todas são geradas dinamicamente, e convenhamos, gerar páginas através de linguagem de programação de modo não semântico é, pelo menos, umas 30 vezes mais trabalhoso, assim, pelo bem do seu trabalho, seja semântico no momento da programação.

Para ficar ainda melhor entendido, a semântica, como área de estudo, analisa as palavras de três modos:

Sinomínia: Quando palavras distintas tem o mesmo significado:

  • A garota recusou o presente.
  • A menina não quis o presente.
  • A mocinha rejeitou o presente.

No caso, as três frases, alterando palavras, mantém o mesmo sentido, assim garota, menina e mocinha e recusou, não quis e rejeitou, cada qual em seu grupo, mantém sinomínia semântica;

Antonímia:

  • A menina aceitou o presente.
  • A velha rejeitou o presente.

No caso, tanto menina x velha como aceitou x rejeitou são antônimos, possuem significados antagônicos.

Homonímia (ou Polissemia):

Aqui a coisa complica. São por estas particularidades do idioma que ainda é difícil programar máquinas para compreenderem a linguagem natural:

  • A menina chutou a bola;
  • A menina deu bola para o rapaz;

A mesma palavra (bola) adquire sentido completamente diverso a depender do contexto.

Encerramos por aqui com a esperança de ter ajudado um pouco na compreensão da semântica, claro que longe de esgotar o assunto, porém, com o aviso: o domínio da semântica é essencial para os profissionais da informática, especialmente se pensamos em partir para a inteligência artificial.

Recomendamos para iniciar: http://pt.wikipedia.org/wiki/Sem%C3%A2ntica

É isso, de novo!

ago 292014
 

Um algoritimo é fácil de entender (só que não…), no caso, aproximadas 40 variáveis, modificadas de forma precisa, transformam uma imagem de dia para noite em um clique, de verão para inverno e muito mais.

teaser400ppi

 

 

Excelente ideia, pena que não encontrei o algorítimo para estudá-lo, mas alguns detalhes podem ser obtidos na página: https://news.brown.edu/articles/2014/08/photo.

 

 

ago 292014
 

Pense naquela cena de câmera de segurança, onde duas pessoas conversam ao longe, perto delas há um saco de lixo e, pelas imagens (sem som, é claro) pela vibração deste plástico perto, a máquina recria o som e ouvimos a conversa!

Ficção? Não, bem, quase não.

Com esta cena, de baixa qualidade, ainda não é possível extrair o som, porém, quando a imagem apresenta uma qualidade maior, ou é gravada com câmeras de alta qualidade, pesquisadores do MIT conseguiram recriar o som, usando somente as imagens. A tecnologia, ainda experimental, certamente será uma nova arma investigativa em breve.

Mais tecnologia, menos privacidade!

Veja o vídeo para entender melhor:
 

maio 112014
 

Lightscribe é uma tecnologia que acho fantástica, que infelizmente “não pegou”.

Com o gravador de CD/DVD apropriado e a mídia compatível é possível “queimar” também a etiqueta no disco, com um acabamento muito bom, excelente para enviar a clientes, para as festinhas de fim ano etc.

lightscribe_03[1]

É uma mão na roda para pequenas produções, basta virar o CD/DVD e queimar a etiqueta, porém em larga escala não funciona, cada etiqueta leva uns 10 minutos para ser impressa.

Continue reading »