Saiu o sdk 4.11.
Ainda tem bastante coisa a ser feita para ter tudo em HTML5 mas é uma boa notícia.
Veja mais:
Apache Flex com saída para HTML5,Javascript e CSS. Trans-compilação para vários clientes
Apache Flex 4.11 Released!
What's new with Apache Flex (Dec 2013)
sexta-feira, 6 de dezembro de 2013
sexta-feira, 4 de outubro de 2013
Integritas - Oportunidades PHP (2)
A Integritas Tecnologia possui duas oportunidades para PHP, com bom inglês, tempo integral, home-office para início imediato.
Quem tiver interesse, por favor, envie currículo para rh@integritas.com.br
sábado, 28 de setembro de 2013
Shakes industrializados secam músculos e não gorduras
Esse link só vem a confirmar que perda de peso se consegue com reeducação alimentar e exercícios físicos.
segunda-feira, 16 de setembro de 2013
Superando barreiras no desenvolvimento iOS
Para quem está começando a programar para iOS, como eu, indico a palestra abaixo, muitas dicas e sugestões de frameworks.
terça-feira, 10 de setembro de 2013
T&T seleciona: Analista Programador C
Analista Programador C
Desejável: Experiência em desenvolvimento para sistemas embarcados e conhecimentos de Linux.
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
- Experiência em desenvolvimento C (preferencialmente para Windows);
- Conhecimentos de Redes e Configuração de Redes;
- Inglês leitura/escrita
Desejável: Experiência em desenvolvimento para sistemas embarcados e conhecimentos de Linux.
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
quinta-feira, 22 de agosto de 2013
Desenvolvedor Java/Ruby - Integritas
A Integritas Tecnologia possui oportunidade para desenvolvedor Java/Ruby, tempo integral.
terça-feira, 20 de agosto de 2013
Desenvolvedor Python/Django - Integritas
A Integritas Tecnologia possui uma oportunidade para desenvolvedor Python/Django, sênior, fluente em inglês.
Quem tiver interesse, por favor, envie currículo para rh@integritas.com.br
segunda-feira, 29 de julho de 2013
Oportunidade Mobile - Integritas (remoto)
Aproveitando meu post anterior aproveito para divulgar oportunidades em desenvolvimento mobile, principalmente iOS na Integritas onde trabalho.
Quem tiver interesse, por favor, envie currículo para rh@integritas.com.br
Treinamento de iOS
Nos próximos dias irei participar de um treinamento na TargetTrust de iOS.
Já tinha dado uma olhada antes mas agora pretendo me aprofundar nessa tecnologia, já tinha feito o treinamento de Android também pela TargetTrust.
Mesmo gostando de desenvolvimento web a tendência é mobile, então, nada mais certo do que acompanhar a maré.
segunda-feira, 22 de julho de 2013
Auditoria em PostgreSQL
Uns anos atrás na Sadig onde trabalhava precisei alterar o produto BI para fazer com que as chamadas a banco de dados que já "conversavam" com dbf, SQL Server e Oracle para também rodarem em PostgreSQL, gostei muito desse banco, e cada vez tenho aprendido mais sobre ele.
Agora num cliente, a Lexsis, precisamos implementar o recurso de auditoria no PostgreSQL. Se estivéssemos usando Hibernate poderíamos usar o Envers o qual usando a anotação @Audited na classe com a anotação @Entity cria uma nova tabela com atributos adicionais no banco para gravar as alterações na tabela da entity.
Outra opção é ter uma única tabela e gravar o DTO serializado num campo dessa tabela, mas não seria fácil de identificar só utilizando a console do banco.
Usamos JDBC puro, então, uma opção que foi definida em reunião foi criar um schema para auditoria com uma cópia de cada tabela com campos adicionais específicos para auditoria da aplicação usando triggers.
Bem, mas para cada tabela se precisa criar a trigger / function e um script para criar a tabela de auditoria, o que na primeira vez se torna trabalhoso e repetitivo pelo número de tabelas existentes em cada aplicação que irá usar a auditoria, porque a trigger é vinculada a uma única tabela e a uma function. Usar uma única function é uma ideia mas não cheguei a um código que contemplasse o meu cenário, mas não perdi muito tempo pois sempre achei interessante ser o mais independente do banco, caso seja necessário migrar para outro.
A ideia de ter uma tabela de espelho num schema separado é interessante por ser mais fácil a visualização, não necessitando de uma interface apropriada. Usando este formato e pensando em otimizar o processo me foquei em dois pontos: como otimizar a criação das tabelas espelhos e como não precisar das triggers.
Referente a criação das tabelas, dando uma olhada no create table do PostGreSQL vi que existe as cláusulas INHERITS e LIKE, o primeiro permite herdar a estrutura de uma ou mais tabelas (multi-herança), onde qualquer alteração nas estruturas das tabelas herdadas como alteração de um campo ou inclusão afeta as tabelas filhas o que resolve a situação de ter os mesmos campos de auditoria em todas as tabelas, enquanto que o LIKE permite pegar a estrutura de outra tabela, mas diferente do INHERITS, alterações na tabela de origem não se propaga para a tabela de destino. O LIKE não copia os valores default da tabela de origem (EXCLUDING DEFAULTS) só o faz com a adição de INCLUDING DEFAULTS.
Referente a segunda opção, para ficar independente de banco de dados utilizei introspection / reflection e anotações. Em cada DTO / entity marquei com uma anotação para identificar a tabela (equivalente o @Entity do Hibernate) do banco e outra anotação para identificar o campo id (primary key - PK) na tabela (equivalente o @Id do Hibernate). Com isso passo o DTO para uma classe com mais alguns parâmetros da aplicação que via introspection / reflection monta um insert...select para popular a tabela de auditoria, ficando assim independente de banco de dados e se for necessário migrar para outro banco só se altera uma classe.
O único cuidado que se tem que ter com o insert...select é que a ordem dos campos da cláusula select tem que fechar com a ordem dos campos da tabela do insert, pois não vincula o campo / valor da tabela do select com o campo na tabela de destino, podendo dar erro de tipo inválido ou gravar um valor de um campo em outro por estarem na mesma ordem e terem o mesmo tipo de dados.
Com esta metodologia, usando introspection / reflection e anotações, consegui montar um início de um ORM, passando o DTO consigo fazer a exclusão, agora o próximo passo é fazer o insert, update passando o DTO e a listagem lendo os valores da tabela e populando os DTOs necessários.
terça-feira, 9 de julho de 2013
T&T seleciona: Analista Programador Pleno
Analista Programador Pleno
Requerido:
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
Requerido:
- Graduação completa ou cursando em Ciências da Computação, Sistemas de Informação e afins;
Conhecimentos em:
- Testes Automatizados
- Shell script, Vbscript, Java, C++;
- Inglês Intermediário
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
quarta-feira, 12 de junho de 2013
T&T seleciona: Desenvolvedor iOS e Estágio em Desenvolvimento e Testes
Desenvolvedor iOS (1 vaga)
Requerido:
- Graduação completa ou cursando Ciências da Computação, Sistemas de Informação e afins.
Conhecimentos em:
- iOS
- C-C++
- Língua inglesa.
Desejável:
- Conhecimentos: Java, Html
Pretensão salarial: a combinar
Estágio em Desenvolvimento e Testes (5 vagas)
Requerido:
- Cursando Graduação a partir do 6º semestre na área de TI.
- Inglês: Intermediário
Conhecimentos em:
- Programação Java
- C++
- Web (Javascript, HTML, CSS)
- Testes de software
Desejável:
- Conhecimentos: Java, Html
Pretensão salarial: a combinar
quinta-feira, 23 de maio de 2013
T&T seleciona: Designer de interação
Designer de interação
Requerido:
- Graduação completa ou cursando em Ciências da Computação, Sistemas de Informação e afins.
Conhecimentos em:
- Design de interação
- Ferramentas Adobe Creative Suíte
- Metodologias ágeis
- Língua inglesa.
Desejável:
- Conhecimentos: Javascript, Html, CSS.
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
quarta-feira, 8 de maio de 2013
T&T seleciona: Analista Programador Pleno
Analista Programador Pleno
Requerido:
Benefícios:
Salário a combinar
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
Requerido:
- Nível superior cursando ou concluído;
- Sólidos conhecimentos em Java e Ruby on Rails
- Conhecimento em Javascript
- Inglês avançado
Benefícios:
- Horário flexível/compensação
- Jornada de segunda a sexta
- Vale Refeição (R$ 19,00)
- Vale transporte
- Plano de Saúde Unimed
- Plano Odontológico
- Avaliações de Desempenho
- Seguro de vida
- Programa de Inglês
- Incentivo para cursos e treinamentos
Salário a combinar
Interessados enviar currículos com pretensão salarial para: talentos@tet.com.br
segunda-feira, 29 de abril de 2013
Oportunidades divulgadas na Holden RH
Repassando a pedido.
Arquiteto de Sistemas Sênior
Atividades:
Atuar na área de arquitetura de TI assegurando a coerência e alinhamento das aplicações com o negócio, alinhamento dos mapas de arquitetura com os processos de negócio, identificando quais aplicações atendem os requisitos e participando dos processos de desenho, construção (ou aquisição) e integração dessas aplicações garantindo a aderência aos padrões de arquitetura.
Requisitos:
Experiência em projetos de grande porte. Sólida e comprovada experiência como arquiteto de sistemas.
Formação superior completa
A empresa possui remuneração diferenciada, contratação CLT e amplo pacote de benefícios:
2 vagas Desenvolvedores Java web pleno/sênior
Para atuar em empresa de TI com mais de 15 anos de mercado em ambiente que proporciona o desenvolvimento profissional
Remuneração compatível com o mercado
Desenvolvedor PHP – 1 vaga para Porto Alegre e 1 vaga para Novo Hamburgo
Arquiteto de Sistemas Sênior
Atividades:
Atuar na área de arquitetura de TI assegurando a coerência e alinhamento das aplicações com o negócio, alinhamento dos mapas de arquitetura com os processos de negócio, identificando quais aplicações atendem os requisitos e participando dos processos de desenho, construção (ou aquisição) e integração dessas aplicações garantindo a aderência aos padrões de arquitetura.
Requisitos:
Experiência em projetos de grande porte. Sólida e comprovada experiência como arquiteto de sistemas.
Formação superior completa
A empresa possui remuneração diferenciada, contratação CLT e amplo pacote de benefícios:
2 vagas Desenvolvedores Java web pleno/sênior
Para atuar em empresa de TI com mais de 15 anos de mercado em ambiente que proporciona o desenvolvimento profissional
Remuneração compatível com o mercado
Desenvolvedor PHP – 1 vaga para Porto Alegre e 1 vaga para Novo Hamburgo
Outras vagas para atuar em Porto Alegre, São Paulo ou Rio de Janeiro na área de tecnologia podem ser consultadas em nosso site www.holdenrh.com.br
domingo, 28 de abril de 2013
IRPF 2013 - Rendimentos Recebidos Acumuladamente
Na minha opinião IRPF é desonesto, tudo que se compra tem imposto, quando se recebe o pagamento já vem excessivamente tributado sendo a tributação trabalhista brasileira uma das mais pesadas.
Fora os pedágios que estão lá para melhorar as rodovias o que às vezes não acontece. Você sabia que os combustíves tem um tributo (CIDE) justamente para isso?
Aí você se esforça, faz cursos, se empenha no trabalho para ganhar um salário maior, e aí ganhando um aumento você entra numa outra faixa de IR de percentual maior.
Se pelo menos os serviços públicos básicos, educação, transporte, saúde fossem de primeira qualidade.
PARA ONDE VAI TODO O DINHEIRO PAGO COM IMPOSTOS?
Sinceramente somos muito pacatos, deixamos as coisas acontecerem.
Bem, passado o desabafo, quero comentar sobre Rendimentos Recebidos Acumuladamente (RRA).
Estava fazendo o IRPF da minha cunhada e o ano passado ela ganhou uma causa trabalhista devido um aumento salarial que não tinha sido incorporado, ela é professora municipal, sendo que ao receber acumulado o leão deu uma grande mordida.
Nesses casos a tributação é diferenciada, Rendimentos Recebidos Acumuladamente (RRA), tendo uma ficha específica no programa de declaração de IR. Essa ficha aparece no menu esquerdo sendo o nono item acima de Imposto Pago / Retido.
O que quero chamar a atenção é que na guia de rendimentos recebida pela prefeitura este valor apareceu no quadro Rendimentos Tributados Recebidos de Pessoa Jurídica, o que não pode, nesse quadro deve aparecer somente o valor recebido devido trabalho no ano de 2012, e o que ela recebeu devido a causa trabalhista deveria estar no quadro específico, RRA. No lançamento inicial lancei na mesma ficha no programa de IR fazendo com que ela não conseguisse recuperar o valor retido na fonte da causa trabalhista, sendo que o advogado dela comentou que ela conseguiria.
Depois de muito pesquisar encontrei este vídeo da Sevilha Contabilidade que explica muito bem. Tem coisas do IR que lendo no site não tem como entender devido a linguagem cheias de leis, etc.
Resumo da história, amanhã, faltando 2 dias para a data final de entrega ela terá que pedir para a prefeitura que alterem a guia de rendimentos para que ela possa receber o valor retido da causa trabalhista e não caia na malha fina devido um erro que não é dela.
Destacando então: se você recebeu alguma causa trabalhista no ano passado verifique a sua guia de rendimentos para não ter problemas com o leão.
[]s
quinta-feira, 25 de abril de 2013
Agile na prática: desafios, experiências e adoção
Muito boa a entrevista, dá passos de como implantar desenvolvimento ágil.
Recomendo: Agile na prática: desafios, experiências e adoção
Recomendo: Agile na prática: desafios, experiências e adoção
Marcadores:
Agile,
Entrevista,
Integração Contínua
sábado, 6 de abril de 2013
Cloud - Primeiros passos
Uma ótima palestra para entender essa nova tendência
Sua aplicação Java nas nuvens: de conceitos a exemplos em AWS e Google App Engine
Sua aplicação Java nas nuvens: de conceitos a exemplos em AWS e Google App Engine
sábado, 16 de março de 2013
Concatenação de Strings e Cálculo com precisão
Dois tópicos aparentemente simples que esbarramos seguidamente programando em Java é qual a melhor forma de concatenar Strings, usando o operador +, StringBuilder ou StringBuffer e o outro tópico é como fazer cálculos com precisão.
Já aplico estes conceitos já faz algum tempo e quando um colega me pergunta tento explicar da melhor forma, colocando a minha leitura em dia encontrei dois posts da Caelum que explicam muito bem estes pontos, posts que indicarei a leitura toda vez que um colega me perguntar sobre o assunto.
terça-feira, 12 de março de 2013
Oportunidade - Desenvolvedor Java Web - TECNOPUC - POA - RS
A Datum T.I., empresa do ramo da Tecnologia da Informação localizada no
TECNOPUC em Porto Alegre - RS, um dos maiores Parques Tecnológicos do
País seleciona:
Desenvolvedor Java Web
Experiência em: HTML 5, CSS 3, JavaScript (Prototype e JQuery) e JSP (JavaServer Pages).
Requisitos: Experiência em desenvolver interfaces para serviços de alta disponibilidade;
Projeto Pontual de 3 meses.
Local de Trabalho: Porto Alegre – RS.
Remuneração: A Combinar + Benefícios;
Forma de Contratação: CLT / PJ
Encaminhar currículo para danielle.carvalho@datumcorp.inf.br
Requisitos: Experiência em desenvolver interfaces para serviços de alta disponibilidade;
Projeto Pontual de 3 meses.
Local de Trabalho: Porto Alegre – RS.
Remuneração: A Combinar + Benefícios;
Forma de Contratação: CLT / PJ
Encaminhar currículo para danielle.carvalho@datumcorp.inf.br
segunda-feira, 4 de março de 2013
Oportunidades - Porto Alegre
Programador .Net JR - Bairro Cidade Baixa - Porto Alegre
Remuneração R$ 2.000 CLT - requisito 1 ano de experiência com .Net
Remuneração R$ 2.000 CLT - requisito 1 ano de experiência com .Net
Técnico de Suporte a Sistemas - Bairro Centro - Porto Alegre
Remuneração R$ 1.500 (mais dissídio) CLT - requisito CNH categoria B, superior completo ou em andamento e disponibilidade para viagens.
Desenvolvedor Delphi - Bairro Higienópolis - Porto Alegre
Remuneração R$ 2.500 a R$ 3.500 CLT - requisito experiência com Delphi 7 e sistemas de gestão (ERP).
Interessados enviar currículo atualizado com pretensão salarial para talentos@aemyoursrh.com.br - Escrever o Nome da vaga no campo Assunto do e-mail.
quinta-feira, 28 de fevereiro de 2013
Módulos e gerenciamento de memória
O problema dos módulos sempre foi e ainda é o gerenciamento de memória, mesmo agora na versão 4, fiz um teste com a versão 4.5.1, mesmo depois de descarregar o módulo usando loader.url = null e loader.unloadModule o módulo ainda continua ativo consumindo memória juntamente com os recursos que este carregou.
Um exemplo, se criar um módulo que tem um timer que de tantos em tantos segundo faz uma requisição http ou com um música tocando, depois que você o descarregar você verá que as requisições http ainda continuam ocorrendo e que a música ainda está tocando.
Nesse caso, além de "descarregar" o módulo é necessário desativar os recursos, mas mesmo assim a memória ainda estará sendo usada.
Não vejo a necessidade de usar módulos para conter somente uma tela, são realmente úteis com projetos muito grandes e mesmo assim tem que ser bem avaliado, porque ao gerar o swf da aplicação e colocar no servidor o client / browser irá identificar o novo swf e irá utilizá-lo.
E mesmo numa aplicação grande que terá benefícios reais modularizar o projeto acredito que usar sub-apps é mais recomendável, isto é, em vez de usar módulos criar sub-projetos cada um tendo o seu swf podendo ser independentes o que não acontece com os módulos que dependendem da aplicação principal.
quarta-feira, 20 de fevereiro de 2013
O fantasma da produtividade
Muito bom este artigo: http://imasters.com.br/desenvolvimento/o-fantasma-da-produtividade/
Para quem tem pouco tempo, os pontos chaves que destaco:
Sintomas clássicos da falsa entrega de software:
- Efeito bumerangue – você entrega e ele volta rapidinho;
- Efeito formigueiro – sempre tem que mudar em vários pontos;
- Efeito dinheiro velho – ninguém consegue reutilizar o código;
- Efeito piano – custos altíssimos operação e sustentação;
- Efeito laxante – manutenção complicada, sempre dá merda;
- Efeito pipoca – todos os códigos modificados estouram;
- Efeito navalha – alguém sempre sai cortado;
- Efeito previdência – só segurados conseguem manter o código;
- Efeito sabão – manutenção sempre escorrega no orçamento;
- Efeito furacão – remendar cansa e não segura ninguém;
- Efeito ex-esposa(o) – cliente perde amor pelo projeto.
Todos – sem exceção – pregam ao máximo o excesso de produtividade,
acreditando fielmente que produção de software é fabricação de telas no
processo “1,2,3”… No entanto, esquecem que resultado vem da reutilização
(RiSE – Reuse in Software Engineering), padronização, estabilidade,
integração e, principalmente, sustentabilidade da solução que está sendo
implementada (continuous quality enablement).
É claro que alguém vai gritar que testar é caro. ... um estudo realizado e publicado pelo Instituto Forrester que mostra que
corrigir um defeito custa 30x mais que resolvê-lo na origem.
Na prática, todos sabem o tamanho do prejuízo, porém ninguém quer
encarar o leão de frente, sendo mais prático passar a batata quente para
frente, gerenciar o turnover de pessoas, disponibilizar uma equipe
gigantesca de suporte. Na sequência, os novos clientes acabam tendo fila gigantesca de
implantação e são servidos por um processo lento e caro que aos poucos
mina o crescimento de qualquer negócio.
Nesse momento você fará uma nova pergunta: Prefere colocar o foco no
problema ou na solução? Esse é o momento de dizer sim à mudança e trazer
um novo momento ao negócio, procurando produzir software com estratégia
e não mais fabricar aos modos “go horse”, pois o “débito técnico”
acumulado é igual a cartão de crédito, a conta chega mesmo.
Complemento meu:
Em alguns lugares que passei se tem a filosofia de fila de produção, onde os desenvolvedores tem a preocupação de entregar a tarefa o quanto antes, e não entregá-la bem testada correndo o risco que volte por bugs simples de se identificar com um pouco de teste.
Nunca consegui seguir esta filosofia, voltar a corrigir algo que deveria estar ok no primeiro envio para testes é demorado, pois precisa se lembrar o que se quis fazer em cada código, reproduzir a situação, etc.
Nunca consegui seguir esta filosofia, voltar a corrigir algo que deveria estar ok no primeiro envio para testes é demorado, pois precisa se lembrar o que se quis fazer em cada código, reproduzir a situação, etc.
quarta-feira, 13 de fevereiro de 2013
JavaFX para iOS e Android
JavaFX compilando para iOS e Android, mas uma ferramenta cross-over para ser analisada.
Veja mais aqui.
Veja mais aqui.
quinta-feira, 7 de fevereiro de 2013
Verdades e mitos sobre JOINs
quinta-feira, 31 de janeiro de 2013
Oportunidades na T&T - Analista Programador Java
Empresa Tools & Technologies - T&T está com as seguintes oportunidades em aberto:
Analista Programador Java
Requerido:
- Nível superior em andamento ou concluído;
- Conhecimentos sólidos e experiência com desenvolvimento em Java;
- Experiência com webservices, Soap, Rest e protocolo http;
- Conhecimentos em Linux.
- Nível superior em andamento ou concluído;
- Conhecimentos sólidos e experiência com desenvolvimento em Java;
- Experiência com webservices, Soap, Rest e protocolo http;
- Conhecimentos em Linux.
Interessados devem enviar seu currículo para talentos@tet.com.br.
quarta-feira, 23 de janeiro de 2013
sexta-feira, 11 de janeiro de 2013
Apache Flex 4.9.0 Released!
Mês passado o Flex se tornou um projeto oficial do grupo apache (veja link) agora é liberada a primeira versão nesse novo formato.
Veja mais:
Dicas para desenvolvimento mobile
Uma palestra que assisti e recomendo, com várias dias para desenvolvimento para mobile do Sérgio Lopes.
Link:
segunda-feira, 7 de janeiro de 2013
Storage em HTML5
Para quem quiser aprender sobre as opções de storage do HTML5 recomendo esta palestra:
Puxaram o cabo de rede! Soluções para uma web sem conexão permanente
Puxaram o cabo de rede! Soluções para uma web sem conexão permanente
Assinar:
Postagens (Atom)