SGA é o acrônimo de Sistema de Gerenciamento de Atendimento, sistema desenvolvido pela Dataprev e liberado como código aberto através da versão SGA Livre.
Devido ao desenvolvimento do SGA Livre estar estagnado na mesma versão desde 2009, unindo a burocracia dos responsáveis pela comunidade no [Portal do Software Público](http://softwarepublico.gov.br/) surgiu a necessidade de criar uma nova versão para esse sistema que já roda em diversas localidades do Brasil.
A parte web foi totalmente reformulada, deixando mais leve e intuitiva, com uma interface amigável e instalação super fácil. Já no painel foi feitas melhorias para funcionar em monitores widescreen. Outras melhorias e funcionalidades estão previstas e irão ser aplicadas durante o desenvolvimento do projeto.
Com o seletor selection podemos definir a cor do texto e de fundo do texto quando o selecionamos.
The ::-moz-selection (::selection) pseudo-element applies to the portion of a document that has been highlighted (e.g. selected with the mouse) by the user.
Gecko/Firefox supports ::-moz-selection, use also ::selection other browsers. The following properties apply to ::-moz-selection: color, background and background-color (background-image is ignored).
[http://dochub.io/#css/selection](http://dochub.io/#css/selection)
<pclass="yellow">Lorem ipsum dolor sit amet, consectetur adipiscing elit...</p><pclass="green">Aliquam erat volutpat. Donec in elit at magna venenatis venenatis...</p><pclass="pink">Donec interdum placerat urna at aliquet...</p>
O código abaixo permite exibir no title e na frente das tags que possuem o atributo accesskey o seu atalho.
Com o uso do CSS é adicionado ao final do conteúdo da tag o seu atalho. E via Javascript esse atalho também é adicionado ao title.
Como esses atalhos variam de acordo com o Browser e o Sistema Operacional, fiz uso do Modernizr + Detectizr para adicionar no body a classes informando o ambiente.
/** * Add browser and OS name to body class, and append the shortcut to element title * @author rogeriolino */(function($){$(document).ready(function(){Modernizr.Detectizr.detect({detectScreen:false});varbody=$('body')body.addClass(Modernizr.Detectizr.device.browser+' '+Modernizr.Detectizr.device.os);$('*[accesskey]').each(function(i,e){varelem=$(e);prefix='Alt';if(body.hasClass('firefox')){if(body.hasClass('mac')){prefix='Ctrl + Opt';}else{prefix='Alt + Shift';}}elseif(body.hasClass('safari mac')){prefix='Ctrl';}elem.prop('title',elem.prop('title')+' ['+prefix+' + '+elem.attr('accesskey')+']');});});})(jQuery);
Os comandos abaixo que devem ser executados como root.
Passo 1 - Verificando a versão do PHP no repositório
1
apt-cache show php5 | grep Version
Caso a versão mais nova já esteja na 5.4 ou superior, então pule para o próximo passo. Senão execute os comandos abaixo para adicionar o repositório com a versão 5.4.
Segue abaixo algumas das novas funcionalidades da versão 5.4 do PHP. Para ver mais informações, siga os links no final do post.
Trait
Trait (ou mixin em outras linguagens) é um mecanismo que permite que as classes reutilizem métodos de outras classes sem a necessidade de estende-la.
1234567891011121314151617
traitSingleton{publicstaticfunctiongetInstance(){...}}classA{useSingleton;// ...}classBextendsArrayObject{useSingleton;// ...}// Singleton method is now available for both classesA::getInstance();B::getInstance();
Sintaxe curta para definição de Array
Agora é possível instanciar um array de maneira semelhante à outras linguagens de script, como por exemplo, Javascript.
12
$a=[1,2,3];$b=['foo'=>'orange','bar'=>'apple'];
Referência direta ao retorno das funções/métodos
Também é possível fazer fazer chamada direta ao retorno das funções, sem que haja necessidade de atribuir o valor a uma variável e só depois fazer a chamada.
1234
functionfruits(){return['apple','banana','orange'];}echofruits()[0];// Outputs: apple
O mesmo serve para chamadas através de novas instâncias:
Semelhante ao __tostring ao tentar imprimir um objeto, você pode pre-definir o objeto que será serializado para o formato json, através do uso da função json_encode.
Iniciei e publiquei um pequeno projeto que reune algumas funcionalidades para auxiliar durante o desenvolvimento. Segue abaixo as funcionalidades que estão disponíveis por enquanto:
Crypt: algorítimos de hash como sha1 e md5, e base64 encode/decode
Random: geração de senhas (com opções de configuração), CPF e CNPJ, e Lorem Ipsum
Converter: conversor de unidades de medida
Network: exibe o IP do cliente, geo localização (coordenadas e mapa), e consulta de domínios (whois server)
Browser: informações sobre versão, user-agent, resolução e viewport, e as principais funcionalidades do HTML5 e CSS3 que o browser suporta.
Javascript: code minifier and optimizer
Como toda a execução é feita no lado do servidor, você pode fazer uma execução ajax do seu site/aplicação para o dev-tools e pegar no response o resultado, sem que haja necessidade de importar novos recursos:
Conforme eu vá sentindo necessidade de mais funcionalidade ou alguém dê uma sugestão, irei incrementando. Depois criarei um projeto no Github e atualizarei o post com o link.
Há alguns dias publiquei uma app no Google Play: Futeria, versão móvel do site Futeria.net, agregador de notícias dos principais clubes de futebol do Brasil.
Para o desenvolvimento dessa app foi utilizado HTML5 e jQueryMobile para o frontend, e PHP para o backend. E para agilizar o carregamento das pãginas estã sendo utilizado o Manifest App Cache do HTML5. Já para uma próxima versão estará disponível uma página para salvar configurações do usuário, utilizando LocalStorage.
Então, se você é um usuário Android e gostaria de ler as últimas notícias do seu time, instale o Futeria e dê uma feedback sobre bugs e melhorias que podem ser feitas. E muito obrigado!