Ele segue o mesmo princípio mas o Github lançou também o atom-shell, o que permite a criação desse tipo de aplicativo.
Blog que foca abordar sobre basicamente 3 assuntos: Software Livre, Tutoriais e How-To(Como fazer), Tecnologia em geral. Follow us @mad3linux.
Mostrando postagens com marcador Programação. Mostrar todas as postagens
Mostrando postagens com marcador Programação. Mostrar todas as postagens
4 de jul. de 2014
Editor de Texto Atom
Recentemente o Github lançou seu editor de texto Atom, um editor bastante poderoso escrito com tecnologias web (HTML, CSS, Javascript) mas que funciona como aplicativo desktop nativo. Se isso parece familiar e lembra o node-webkit você está enganado.
Ele segue o mesmo princípio mas o Github lançou também o atom-shell, o que permite a criação desse tipo de aplicativo.
Ele segue o mesmo princípio mas o Github lançou também o atom-shell, o que permite a criação desse tipo de aplicativo.
Marcadores:
atom,
editor de texto,
github,
javascript,
node,
nodejs,
ppa,
Programação,
Softwares Úteis
18 de out. de 2012
Faça seu próprio driver de impressora usb no Linux
Alguns programadores estão familiarizadas com o uso de impressoras usando a porta direta /dev/lp0 ou porta USB /dev/usb/lp0. Mas essa funcionalidade parecia que havia deixado de existir no Ubuntu 12.04. Na verdade ela apenas foi desabilitada por padrão.
Marcadores:
dicas,
github,
how to,
impressora,
Java,
lx 330,
Programação,
tpl 2844,
ubuntu,
ubuntu 12.04
6 de fev. de 2012
NetBeans 7.1
![]() |
| NetBeans 7.1 |
Lançado em 5 de Janeiro de 2012, a versão 7.1 do IDE NetBeans, agora desenvolvida pela Oracle veio com várias novas funcionalidades. Vou listar as que eu particularmente acho mais úteis, pelo menos do ponto de vista das que eu mais vou utilizar (por exemplo, funcionalidades relacionadas ao JavaFX não serão o
o foco).
Novos Refatoramentos
Um refatoramento bastante útil é o que troca a chamada demasiada de um método e substitui por uma única chamada e atribui o valor a uma variável local. Ex. suponha o seguinte método:
public double calculatePrice() {
if (getBasePrice() > 1000) {
return getBasePrice() * 0.95;
} else {
return getBasePrice() * 0.98;
}
}
Note que a chamada ao método getBasePrice() é feita três vezes. É muito provável que este método seja caro para a aplicação, no sentido de que ele deve executar algum cálculo toda vez que é chamado.
Neste caso o ideal seria chamá-lo apenas uma vez e atribuir o valor a uma variável.
Para isso basta clicar com o botão direito no método getBasePrice(), Refatorar → Introduzir variável...
Selecione a expressão desejada, dê um nome a nova variável. Note que é possível torná-la final e/ou
substituir todas as ocorrências. Pronto. Seu código agora deverá ser da seguinte maneira:
public double calculatePrice() {
double basePrice = getBasePrice();
if (basePrice > 1000) {
return basePrice * 0.95;
} else {
return basePrice * 0.98;
}
}
Renomear
Um problema grande de renomear algum atributo de instância no NetBeans era de que os metodos get e set ainda ficavam com o nome antigo. Agora já é possível mudá-los ao renomear um atributo.
Mudar tipo de retorno do método
Caso você crie um método, e ao terminar de escrevê-lo se dá conta que deveria retornar um valor, ou
que o tipo de retorno está incorreto é possível mudar utilizando as Dicas do NetBeans. Quando uma lâmpada com um ponto de interrogação aparece é possível chamar um menu com dicas do IDE. O atalho para isso é o Alt+Enter. Daí basta escolher a opção Alterar o tipo de retorno do método para...
Importar classes ao copiar e colar
Quando um código Java é copiado, os tipos que são usados pelo trecho de código são gravadas. Quando o trecho é colado, você tem a opção de automaticamente importar as classes que são utilizadas no trecho.
Seleção Retangular
Para isso clique em "Alternar seleção retangular" na barra de edição (ou Ctrl+Shift+R). A seleção pode ser criada com o mouse ou com as setas do teclado usando Shift.
Possíveis ações:
- Clique Del para remover o texto selecionado.
- Digite novos caracteres, os quais serão replicados em todas as linhas
- Recorte/Copie/Cole
Suporte ao Git finalizado
Suporte completo ao Git faz parte da distribuição padrão do NetBeans e está disponível logo após a instalação do IDE. Ele permite que usuários trabalhem com clones locais bem como provê possibilidade
de clone, fetch, pull ou push de repositórios remotos.
Histórico Local
Reverter exclusão
É possível escolher quais arquivos serão deletados.
Aba Histórico
Use a aba Histórico para acesso rápido ao Histórico Local.
Essas, dentre outras dicas podem ser encontradas em http://wiki.netbeans.org/NewAndNoteworthyNB71
Marcadores:
De desenvolvedor para desenvolvedor,
dicas,
how to,
Java,
netbeans,
Programação,
Softwares,
Softwares Úteis,
Tecnologias
9 de dez. de 2011
Máscara de dados - PostgreSQL
Fazendo uma pesquisa descobri uma maneira fácil de criar máscara de dados usando a função to_char() do PostgreSQL. Para exemplificar teste a seguinte query:
SELECT to_char(12345678901, 'FM000"."000"."000"-"00');
Neste exemplo transformaremos o número 12345678901 (NUMERIC) no texto 123.456.789-01 (TEXT). O que acontece é que a função to_char() tem o poder de converter valores em textos usando máscaras. Isso serve tanto para números, como para datas, entre outros. Mais detalhes em http://www.postgresql.org/docs/8.1/interactive/functions-formatting.html.
Notem que existem algumas curiosidades neste SELECT. A primeira é: o que representa esse FM? Neste caso ele remove espaços em branco antes do texto. Isso porque a função to_char() adiciona esses espaços para criar um padrão de tamanho fixo. Faça o teste e remova o FM e note que há um espaço em branco antes do primeiro zero.
A segunda curiosidade é a presença de aspas duplas. Neste caso elas servem como delimitadores e compõem a máscara. Isso diferencia um ponto flutuante de um ponto qualquer.
Seguindo o mesmo raciocínio podemos criar máscaras para outros tipos de dados, como por exemplo CNPJ, CEP, telefone, etc. Para uma utilização otimizada e para não repetirmos códigos criaremos uma função SQL na linguagem pl/pgsql. Eis o código:
-- Function: public.to_cpf(numeric)
-- DROP FUNCTION public.to_cpf(numeric);
CREATE OR REPLACE FUNCTION public.to_cpf(numeric)
RETURNS text AS
$BODY$
BEGIN
RETURN to_char($1, 'FM000"."000"."000"-"00');
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public.to_cpf(numeric) OWNER TO postgres;
Essa função recebe um NUMERIC como parâmetro, assim poderemos passar um INTEGER, ou LONG, que o método aceitará numa boa. A partir desse número usaremos a função to_char() para gerar a máscara e retornar o valor. Simples e objetivo.
Faça o mesmo para outras máscaras, por exemplo telefone:
SELECT to_char(12345678901, 'FM"("00") "0000"-"0000');
Ou seja, sempre que for necessário utilizar caracteres diferentes de zero utilize aspas duplas.
Marcadores:
banco de dados,
máscara,
plpgsql,
postgresql,
Programação,
sql
7 de nov. de 2011
COMSOLiD ⁴ - Falta pouco...
Para quem ainda não se inscreveu no COMSOLiD⁴, basta acessar o link e confirmar sua presença no melhor evento de software livre e inclusão digital do Ceará.
Para os interessados em palestras, mini-cursos e oficinas basta submeterem seus trabalhos para o e-mail comsolid_AT_comsolid_DOT_org.
Essa ano teremos um Blender Day, distribuiremos uma versão customizada do Ubuntu com vários recursos pré-configurados, Campeonato de Jogos, Luta Livre de Programação, palestras dos mais variados assuntos, entre outras atividades.
Tudo isso de 23 a 26 de novembro no IF CE - Campus Maracanaú.
Para mais informações vá ao site oficial do evento.
Para os interessados em palestras, mini-cursos e oficinas basta submeterem seus trabalhos para o e-mail comsolid_AT_comsolid_DOT_org.
Essa ano teremos um Blender Day, distribuiremos uma versão customizada do Ubuntu com vários recursos pré-configurados, Campeonato de Jogos, Luta Livre de Programação, palestras dos mais variados assuntos, entre outras atividades.
Tudo isso de 23 a 26 de novembro no IF CE - Campus Maracanaú.
Para mais informações vá ao site oficial do evento.
Marcadores:
COMSOLiD,
Jogos Open Source,
Programação,
Urban Terror
28 de abr. de 2010
Boas práticas de programação 3 - Java Collections Framework
Collections - Classe Java para Manipular Listas.
Se você estava a procura de uma forma rápida de ordenar listas, embaralhá-las, entre outras coisas, esta é a classe.
Ela pode manipular várias Interfaces do java, como:
A classe Collections oferece vários métodos que são de bastante utilidade. Confira:
obs.: Você deve implementar a Inteface Comparable. Mas como eu faço isso? Simples. Veja ai!
Vamos supor que você tenha uma classe Produto com essa cara:
Para que o Collections.sort(List) ordene o Produto pela descricao, por exemplo, primeiro implemete a Interface Comparable.
E implemente o método compareTo(Object).
Mas por que isso deve ser feito? Bom, primeiro pois o sort ordena seus elementos a partir do resultado que retorna o compareTo(Object). Esse método tem por função retornar números inteiros negativos(não necessariamente -1), positivos (não necessariamente 1) ou zero.
Dica: se você tiver uma List de String, por exemplo, não é necessário implementar o compareTo, pois esse trabalho já foi feito pelos desenvolvedores da Sun. Isso vale para as várias classes conhecidas como Integer, Long, Double, etc.
Bom, o próximo passo é chamar o método:
Vamos supor a seguinte situação: Você quer os elementos de uma lista ordenados de forma decrescente. Bem, agora
que você já aprendeu a ordenar de forma crescente, basta chamar o sort(List) e depois o reverse(List).
Útil quando necessário algum tipo de prioridade de certo elemento, basta achá-lo e trocar de lugar com outro
usando o método swap.
No caso o elemento 3 da list foi para a primeira posição e o 1 foi para a terceira posição.
É ideal quando você precisa embaralhar, por exemplo, uma lista de cartas de uma baralho.
Para mais informações sobre Java Collections Framework visite: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html
Se você estava a procura de uma forma rápida de ordenar listas, embaralhá-las, entre outras coisas, esta é a classe.
Ela pode manipular várias Interfaces do java, como:
- Set
- List
- Map
- SortedSet
- entre outras.
A classe Collections oferece vários métodos que são de bastante utilidade. Confira:
- sort(List) - ordena uma lista usando o algoritmo merge sort, o qual provê uma performance média comparado com o algoritmo quicksort, mas garantindo performance de [n*log n] (diferente do quicksort), e estabilidade (diferente do quicksort).
obs.: Você deve implementar a Inteface Comparable. Mas como eu faço isso? Simples. Veja ai!
Vamos supor que você tenha uma classe Produto com essa cara:
public class Produto {
private Integer id;
private String descricao;
private Double preco;
private Long codigoBarra;
// getters and setters ...
}Para que o Collections.sort(List) ordene o Produto pela descricao, por exemplo, primeiro implemete a Interface Comparable.
E implemente o método compareTo(Object).
public class Produto implements Comparable {
// continua o mesmo acima ...
@Override
public int compareTo(String value) {
return this.descricao.compareTo(value);
}
} Bom, o próximo passo é chamar o método:
public class ProdutoDao {
// atributos e construtor ...
public List findAll() {
List list = new ArrayList();
// conexão com o banco e a query ...
while (rs.next()) {
// Pegue os dados do ResultSet e adicione na lista
list.add(produto);
}
Collections.sort(list);
return list;
}
} reverse(List) - Reverte a ordem dos elementos na lista.
Vamos supor a seguinte situação: Você quer os elementos de uma lista ordenados de forma decrescente. Bem, agora
que você já aprendeu a ordenar de forma crescente, basta chamar o sort(List) e depois o reverse(List).
public List findAll() {
List list = new ArrayList();
// conexão com o banco e a query ...
while (rs.next()) {
Produto produto = new Produto();
// Pegue os dados do ResultSet e adicione na lista
list.add(produto);
}
Collections.sort(list);
Collections.reverse(list);
return list;
} swap(List, int, int) - Troca elementos da List a partir do índice.
Útil quando necessário algum tipo de prioridade de certo elemento, basta achá-lo e trocar de lugar com outro
usando o método swap.
// ...
Collections.swap(list, 3, 1);
// ...No caso o elemento 3 da list foi para a primeira posição e o 1 foi para a terceira posição.
shuffle(List) - permuta randomicamente uma lista usando um código randômico padrão.
É ideal quando você precisa embaralhar, por exemplo, uma lista de cartas de uma baralho.
// ...
Collections.shuffle(list);
// ...Para mais informações sobre Java Collections Framework visite: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html
Marcadores:
De desenvolvedor para desenvolvedor,
Java,
Programação,
Softwares,
Tecnologias
8 de fev. de 2010
Boas Práticas de Programação 1
Linguagem Java
1. Ao comparar Objetos, prefira começar pelo que você tem certeza que não seja nulo. Por exemplo:
1. Ao comparar Objetos, prefira começar pelo que você tem certeza que não seja nulo. Por exemplo:
Dessa maneira você evitará o erro:
Exception in thread "main" java.lang.NullPointerException
at mad3linux.Main.main(Main.java:20)
Java Result: 1
2. Ao criar um Bean para uso com banco de dados, crie os atributos que podem receber nulo em seu valor não com os tipos primitivos com int, long, boolean, double, etc. Crie como classes. Por exemplo:
Dessa maneira o atributo telefone, por exemplo poderá receber valores nulos, e não vai ser preciso validar, por exemplo, buscas e verificar se tal valor for nulo e por um zero no lugar. Exemplo:
Se o atributo telefone tiver o valor nulo, não terá problema pois o telefone é da Classe Long, e não do primitivo long, o qual não poderia ser nulo.
Think About it!
Marcadores:
De desenvolvedor para desenvolvedor,
Java,
Programação,
Tecnologias
18 de ago. de 2009
Apache Tomcat - Adicionando um usuário
· 1° passo: tomcat-users.xml
Deixa que eu explico.
Você obterá como resposta seu nome de usuário. Agora faça:
Você verá em sua tela seu diretório home.
Bom, acho que ficou entendido. Vamos prosseguir. ;-)
Como eu disse anteriormente para adicionar um usuário no Tomcat basta editar o arquivo tomcat-users.xml que está em $CATALINA_HOME/conf (acho que agora você sabe onde fica hã? :-). Espero que você esteja usando um editor de texto no próprio terminal como nano ou vi ou vim. Digo isso porque é assim que você configuraria um servidor. Seguindo minha dica entre no diretório raiz do Tomcat e:
Liste todos os arquivos deste diretório:
Você verá o seguinte:
Neste diretório estão contidos todos os arquivos de configuração do Apache Tomcat. Podemos ver o nosso arquivo na penúltima linha. Basta editá-lo com:
Com o arquivo aberto é possível ver dicas que o Tomcat dá sobre como adicionar usuários. Mas não confunda, as linhas onde estão supostamente adicionando usuários estão comentadas (verifique a presença do , como no html essas tags representam comentários), logo abaixo delas faça:
Para adicionar uma role (algo como função ou grupo):
Para adicionar um usuário no grupo:
· 2° passo: Testando se tudo deu certo.
Para ver se o usuário foi adcionado com sucesso faça o seguinte:
Inicie o servidor Apache Tomcat. Apenas abra um terminal e entre em $CATALINA_HOME/bin, por exemplo, vamos supor que você tenha instalado o Tomcat em /opt:
e então:
Iniciado o servidor, a seguinte saída pode ser observada:
http://localhost:8080/
Aparecerá a tela principal de configurações do Apache Tomcat.

No menu Administration clique em Tomcat Manager.

Ele pedirá um usuário e senha. Digite de acordo com o que você configurou e clique em Ok.
Em caso positivo a seguinte tela será mostrada:

Em uma próxima postagem eu explicarei com utilizar essa parte de gerência do Tomcat.
Para adicionar um usuário no Apache Tomcat basta editar o arquivo tomcat-users.xml. Este arquivo pode ser encontrado em $CATALINA_HOME/conf.
Mas antes de qualquer coisa você deve estar se perguntando: Que diabos é $CATALINA_HOME?!?!?
Mas antes de qualquer coisa você deve estar se perguntando: Que diabos é $CATALINA_HOME?!?!?
Deixa que eu explico.
$CATALINA_HOME é o alias para o diretório raiz do Apache Tomcat. Bem, mas isso eu não inventei; o próprio Apache foi quem convencionou assim. É uma variável de ambiente do sistema que você pode usar para assim poder instalar o Apache Tomcat onde você achar melhor.
Vamos a um exemplo prático, vá em um terminal e tente o seguinte:
Vamos a um exemplo prático, vá em um terminal e tente o seguinte:
$ echo $USERVocê obterá como resposta seu nome de usuário. Agora faça:
$ echo $HOMEVocê verá em sua tela seu diretório home.
Bom, acho que ficou entendido. Vamos prosseguir. ;-)
Como eu disse anteriormente para adicionar um usuário no Tomcat basta editar o arquivo tomcat-users.xml que está em $CATALINA_HOME/conf (acho que agora você sabe onde fica hã? :-). Espero que você esteja usando um editor de texto no próprio terminal como nano ou vi ou vim. Digo isso porque é assim que você configuraria um servidor. Seguindo minha dica entre no diretório raiz do Tomcat e:
$ cd conf/Liste todos os arquivos deste diretório:
$ ls -laVocê verá o seguinte:
total 104
drwxr-xr-x 3 mad3linux mad3linux 4096 2009-07-31 14:15 .
drwxr-xr-x 9 mad3linux mad3linux 4096 2009-07-31 14:12 ..
drwxr-xr-x 3 mad3linux mad3linux 4096 2009-07-31 14:15 Catalina
-rwxr-xr-x 1 mad3linux mad3linux 8690 2009-05-13 20:15 catalina.policy
-rwxr-xr-x 1 mad3linux mad3linux 3665 2009-05-13 20:15 catalina.properties
-rwxr-xr-x 1 mad3linux mad3linux 1396 2009-05-13 20:15 context.xml
-rwxr-xr-x 1 mad3linux mad3linux 3257 2009-05-13 20:15 logging.properties
-rwxr-xr-x 1 mad3linux mad3linux 6539 2009-07-31 14:15 server.xml
-rwxr-xr-x 1 mad3linux mad3linux 1205 2009-07-31 14:27 tomcat-users.xml
-rwxr-xr-x 1 mad3linux mad3linux 50757 2009-05-13 20:15 web.xmlNeste diretório estão contidos todos os arquivos de configuração do Apache Tomcat. Podemos ver o nosso arquivo na penúltima linha. Basta editá-lo com:
$ nano tomcat-users.xmlCom o arquivo aberto é possível ver dicas que o Tomcat dá sobre como adicionar usuários. Mas não confunda, as linhas onde estão supostamente adicionando usuários estão comentadas (verifique a presença do , como no html essas tags representam comentários), logo abaixo delas faça:
Para adicionar uma role (algo como função ou grupo):
<role rolename="administrador"></role>Para adicionar um usuário no grupo:
<user username="mad3linux" password="s3cr3t" roles="administrador"></user>MAD Dica: observe onde você está escrevendo essas novas linhas. Elas devem estar entre as tags
<tomcat-users>e</tomcat-users>.
· 2° passo: Testando se tudo deu certo.
Para ver se o usuário foi adcionado com sucesso faça o seguinte:
Inicie o servidor Apache Tomcat. Apenas abra um terminal e entre em $CATALINA_HOME/bin, por exemplo, vamos supor que você tenha instalado o Tomcat em /opt:
# cd /opt/apache-tomcat-x.x.x/bin/e então:
# ./startup.shMAD Dica: para poder executar o arquivo startup.sh é necessário que ele tenha permissão de execução. Para saber isso basta digitar no terminal:
# ls -l startup.sh
A saída deve ser mais ou menos assim:
-rwxr-xr-x 1mad3linuxmad3linux1956 2009-05-13 20:15 startup.sh
Note que para o dono do arquivo, ou seja as três primeiras depois do - (hífen), uma delas é o x. Isso indica que o arquivo possue permissão de execução.
Mas caso a saída do comando ls -l seja dessa forma:
-rw-r--r-- 1mad3linuxmad3linux1956 2009-05-13 20:15 startup.sh
Então basta dar permissão ao arquivo. Faça:
# chmod +x startup.sh
Pronto, execute o comando ls -l de novo para ver as modificações.
Bem, mas antes que eu esqueça, faça o mesmo para o arquivo shutdown.sh, que se encontra no mesmo diretório que o startup.sh ($CATALINA_HOME/bin/). Ele serve para desligar o servidor Apache Tomcat.
Iniciado o servidor, a seguinte saída pode ser observada:
Using CATALINA_BASE: /opt/apache-tomcat-6.0.20
Using CATALINA_HOME: /opt/apache-tomcat-6.0.20
Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.20/temp
Using JRE_HOME: /usr
Observe que ele detectou o caminho para o jre, justamente com a variável de ambiente JRE_HOME, interessante não?
Se algo como citado acima apareceu em seu terminal, vá em seu browser favorito (o meu é o Mozilla Firefox ;-) e digite na barra de endereço:
http://localhost:8080/
Aparecerá a tela principal de configurações do Apache Tomcat.

No menu Administration clique em Tomcat Manager.

Ele pedirá um usuário e senha. Digite de acordo com o que você configurou e clique em Ok.
Em caso positivo a seguinte tela será mostrada:

Em uma próxima postagem eu explicarei com utilizar essa parte de gerência do Tomcat.
Assinar:
Postagens (Atom)


