
Não lembro de nada que não fosse possível fazer, mas várias coisas eram mais difíceis do que eu gostaria que fossem, então como só tenho utilizado o computador de casa para acesso a internet, joguinhos, downloads e ver filmes resolvi voltar para o windows, mesmo reconhecendo que para desenvolvimento o linux é infinitamente superior, com exceção de desenvolvimento para windows mobile, que eu descobri ser possível mas muito difícil.
Até poucos dias eu acreditava que a unica forma de desenvolver para windows mobile no windows era comprando uma licença do Vi$ual $tudio, mas descobri uma forma gratuita, visual e muito fácil de fazer isto ![]()
Segue a lista do que você vai precisar baixar para desenvolver aplicações para windows mobile no seu desktop windows sem gastar nada mais (por que imagino eu que a sua licença do windows seja original como a minha).
Depois que eu instalei esta lista de softwares e abri o Sharp Develop, clicando em “New Solution” abaixo das linguagens C# e VB.NET aparece a opção de criar aplicações para o Compact Framework, como eu já tinha o .NET CF 2.0 aqui, posso desenvolver aplicações para as duas versões do .NET CF para o windows mobile.
Se quiserem ainda é possível baixar emuladores do site da microsoft ou testar direto no celular como eu tenho feito.


Tags: .net, compact framework, Mobile, sharp develop

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <html> <head> <script type="text/javascript" src="jquery-1.3.2.js"></script> <script type="text/ruby"> def calc(x,y,op) x.to_f.send(op.to_sym,y.to_f) end </script> </head> <body style="background-color:#1c1c1c;margin:0"> <div style="border-top:1px solid #404040"> <div style="color:#fff;;padding:10px"> <form> <fieldset> <legend>Calculator</legend> Resultado:<input type="text" readonly="true" id="result"/><br/> Valor 1:<input type="text" id="valor1"/><br/> Valor 2:<input type="text" id="valor2"/><br/> <input type="button" value="+" onclick="result.value=calc(valor1.value,valor2.value,this.value)"/> <input type="button" value="-" onclick="result.value=calc(valor1.value,valor2.value,this.value)"/> <input type="button" value="*" onclick="result.value=calc(valor1.value,valor2.value,this.value)"/> <input type="button" value="/" onclick="result.value=calc(valor1.value,valor2.value,this.value)"/> </fieldset> </form> </div> </div> </body> </html> |
E a calculadora funciona direitinho!
É criado um executável windows (a maquina que utilizei para testar é um windows) e se eu clicar em package, é possível ainda criar o executável para linux e mac utilizando os servidores da appcelerant ..
A aplicação pode ficar disponível na cloud deles, e ainda é possível criar aplicações para iPhone e Android com a mesma estrutura, ou seja, a idéia de como programar é a mesma …
E alem disto, ainda existe o Bowline, um framework Ruby escrito para facilitar mais ainda o uso do Titanium Desktop. Este ainda não tive tempo de brincar, mas pelo que li no site parece muito bom também
Finalmente temos uma forma fácil de programar aplicações desktop multi plataforma sem ter que penar na mão do SWING ![]()
Vou tentar fazer uns exemplos mais complexos para ver se o brinquedo vale mesmo a pena, mas eu já adianto que adorei a idéia ![]()
Mas nem tudo é perfeito, eu ainda estou procurando no site informações sobre licenciamento, não sei se é necessário pagar para distribuir as aplicações, não encontrei nada a respeito …
Mas a idéia continua sendo excelente ![]()
Recomendo uma olhada …
Este não é o post que diz passo a passo como fazer isto, este vai ser o próximo, este post é para dizer que descobri que o Free Pascal tem um cross compiler para arm-wince, se vocês acessarem http://www.lazarus.freepascal.org/, na parte de downloads para windows existe o download do lazarus+free pascal e também o download do crosscompiler para Windows Mobile.
Não existe o download deste cross compiler para linux, mas depois de perder algum tempo, eu ja montei um .sh que compila todo o free pascal e o cross compiler para windows mobile no linux ![]()
Só falta agora fazer isto funcionar com o lazarus …
Assim que eu fizer isto funcionar no Lazarus eu posto aqui para vocês um passo a passo de como programar em linux/Object Pascal, de modo visual, criando aplicações para windows mobile
O canal seria ter uma forma de desenvolver utilizando o mono para Compact Framework, mas como não encontrei ainda nenhuma forma decente de fazer isto, voltar a brincar de “Delphi” até que vai ser divertido
Tags: fpc, free pascal, lazarus, linux, Mobile, phone, pocket, wince

Não entendo por que a MS não faz o Windows Mobile pensando que muita gente vai querer utilizar o SO com a mão, e não com a stilus, mas isto é problema de marketing deles …
Sim, eu sei que se eu tivesse comprado um iPhone não teria este problema, mas o iPhone eu não conseguiria tanto desconto da claro, e sim, eu ando bastante “pão duro”
Então, segue uma listinha rápida do que eu já estou considerando essencial no pocket:
Por enquanto é isto, semana que vem vou fazer um hardreset e testar o Manila 2d.
Eu ter um pocketPC novamente, provavelmente quer dizer que vou voltar a me interessar por desenvolvimento para windows mobile, então é provavel que eu escreva sobre isto, principalmente se eu conseguir compilar coisas no meu linux e rodar no pocket, mas não tenho muitas esperanças
PS.: Dicas de softwares para entulhar a memória do pocket são bem vindas, vou passar um tempinho ainda brincando com ele
Tags: links, Mobile, windows mobile
Um dos maiores problemas do Java ME (CLDC/MIDP) é a completa escassez de componentes para UI, é simplesmente impossível desenvolver uma aplicação mais complexa com Java ME sem ter que re-inventar a roda e recriar todos os componentes de alto nível utilizando Canvas, e isto é assim por que o maior objetivo do CLDC/MIDP é rodar em todo e qualquer celular, e para isto eles precisam alinhar os recursos por baixo, ou seja, suportar mesmo nos telefones mais poderosos (que não são mais a minoria) apenas os recursos gráficos dos celulares mais podrinhos.
A nokia sabendo disto, faz algum tempo que ja suporta eSWT nos celulares Series 80, mas isto não ajuda muito pois estes tem apenas uns 3 ou 4 modelos e ja suportavam CDC/Personal Profile, o que ja permitia até mesmo o uso de SWING, por tanto não sofriam tanto com este alinhamento por baixo (CDC/Personal Profile é a configuração para PDAs, e não PALM não suporta CDC palm é podre
).
Mas “Seus problemas acabaram” ou quase …
Faz bastante tempo que esta sendo prometida pela nokia uma implementação do eSWT para Series 60 (Todos os NSeries, ESeries e quase todos os modelos mais novos), e pelo que foi anunciado no Forum Nokia acabou de ser lançado o plugin de eSWT para o S60 3rd FP2 SDK, ou seja um plugin para desenvolvimento de interfaces eSWT para o kit de desenvolvimento para celulares Symbian 9 (ou Series 60 3rd edition), mas infelizmente apenas para o Feature Pack 2, ou seja, não existe ainda no mercado nenhum celular que implemente o Feature Pack 2
Mas pelo menos agora existe uma luz no final do túnel, poderemos em breve desenvolver aplicações com UI SWT sobre CLDC/MIDP para celulares Symbian, e com alguma sorte, vai sair também um .sis para adicionar este suporte aos celulares Symbian S60 3rd edition que ja estão no mercado (como o meu N80 por exemplo).
Bom, acho que era isto, desculpem pelo tempo sem postar, é que a semana foi corrida com o Curso de Rails, mas agora vou voltar a postar com mais frequência!
Amanha ou segunda devo escrever alguma coisa sobre o Curso, que na minha opinião foi bem legal, acho que todos os alunos aproveitaram bastante! (Hoje não vou escrever mais por que é meu aniversário de casamento e tenho que dar mais atenção para a esposa se eu quiser chegar no segundo aniversário
)
Outra coisa, vocês acham úteis estas coletâneas de links que posto de vez em quando?
Tags: Dia a Dia, dia-dia, Java, Java EE, Mobile, produtividade, Ruby
Quanto mais coisas eu limpo do Google Reader, mais coisas aparecem para “escrever depois”
Então vamos a lista!
Você já pensou em editar o código fonte de alguma coisa do seu celular? Pois é, tem maluco pra tudo!
Eu vi neste blog, um link pra esta aplicação de malucos, e digo de malucos por que o cara tem que ser meio doente para escrever usando o teclado do celular, mas como eu disto antes, cada doido com as suas manias.
O J2MEdit permite que você edite código Java, C/C++, PHP e HTML direto do Celular, e tu ainda pode salvar os arquivos localmente ou no servidor deles.
Pior ou melhor ainda, é possível compilar código Java e C/C++ direto do celular (na verdade o editor faz um upload do código e compila no server), alem de diversos outros recursos (compartilhamento, …)
Tudo isto por U$4,00 por mes, ou U$2,60 por mes se fizer um contrato de 12 meses.
Até que eu achei a idéia interessante, fora a grande probabilidade de arrumar uma tendinite
Pelo que diz neste post, o compilador JIT do JRuby agora compila assertions também ![]()
O que vai fazer os testes ficarem bem mais rápidos
Este outro post, de titulo “Por que Rails é melhor que ASP.NET” tem um ponto devista bem interessante, e uma ótima dica!
Que resumindo quer dizer: aprenda novas ferramentas, mas não adianta querer abandonar agora aquela que paga o leitinho das crianças
Aqui tem um GEM bastante interessante para a sua próxima aplicação escrita em Ruby, o cara escreveu uma biblioteca que permite acessar o Google Music Trends, a partir de sua aplicação.
O único porem, é que como não existe uma API pública, isto foi feito via screen-scraping, ou seja, se mudar o layout a biblioteca quebra.
Mas é um ótimo exemplo de utilização do Hpricot, o parser de HTML/XML mais fácil de utilizar que ja vi em qualquer linguagem
O código fica mais ou menos assim:
E por último, o JRuby agora precisa de Java5 para rodar, isto vai facilitar bastante a vida dos desenvolvedores
require 'google_music_trends'
trends = GoogleMusicTrends.new
s = "GOOGLE MUSIC TRENDS\n===================\n"
trends.get(:genre => 'alternative & punk', :where => 'USA').each do |item|
s << "Artist: %s\n" % item[:artist]
s << "Song: %s\n" % item[:song]
s << "Rank: #%s\n\n" % item[:rank]
end
puts s
Finalmente acertaram a mão de fazer uma biblioteca de paginação decente para Java EE!
Eu vi neste post do blog do Adam Biens, um link para o projeto p4j5.
A biblioteca de paginação tem suporte a entidades persistentes JPA, permitindo que o lazy loading funcione sem problemas (claro, apenas se você estiver utilizando JPA+EJB3), mas ja é uma mão na roda, acho que vou utilizar isto nos mini cursos que vou apresentar no WebMobile Tech Week 2007
Para utilizar ficou bem fácil, deem uma olhada no código:
CustomerQuery query = (CustomerQuery)PortableRemoteObject.narrow(remote,CustomerQuery.class);
while(query.hasNext()){
List<Customer> customers = query.next();
System.out.println("Size: " + customers.size());
for (Customer customer : customers) {
System.out.println("Customer: " +customer);
}
}
Ainda no mundo Java, o Google criou uma ferramenta que analisa os bytecodes de uma aplicação Java e detecta a utilização de Singletons. Parece que todos estão convencidos que singletons não são uma boa ideia mesmo
Para quem como eu, sempre achou muito estranho o Python, por achar que espaços são um identificador de blocos de código, os seus problemas acabaram!
Segundo este post do Walter Cruz criaram um “encoding” novo para o código fonte python que permite a utilização de chaves para definição de blocos.
Quem quiser brincar, é só baixar esta biblioteca, mas é só pra brincar mesmo
E só pra finalizar: “As pessoas não precisam ser educadas, as pessoas precisam ser lembradas“, mas claro, nunca levando isto ao pé da letra
Você tem um celular Symbian? programa em Python? quer ter um site na web? não quer pagar provedor?
Use o seu celular como servidor do seu blog então

para isto só é necessário o “Nokia Mobile Web Server“, que é uma versão melhorada, e de instalação mais fácil que o Racoon que eu testei a algum tempo …
Mas quem preferir algo open source, pode baixar o racoon mesmo.
Eles ainda disponibilizam gratuitamente um serviço de proxy reverso para que o seu mobysite seja acessível de qualquer browser …
O endereço do seu mobysite ficara algo parecido com: http://urubatan.mymobilesite.net/ (da pra testar, mas a probabilidade de estar fora do ar é bem grande, só tenho Wi-Fi a noite em casa, e isto come com farinha a bateria do celular
)
Para começar a brincar é só acessar: http://mymobilesite.net/ se registrar, baixar o software via celular ou desktop para instalar no celular depois, e startar o servidor …
Você que controla quando o brinquedo fica ativo ou não rodando a aplicação no celular …
Agora, falando sério, algum de vocês ja consegue imaginar alguma utilidade real para isto?
O que eu consegui imaginar até agora foi só o seguinte (em nenhuma ordem de importancia):
Mais do que isto, tem que ter uma idéia excelente e começar a escrever em python mesmo
Só para quem estiver muito curioso, a cara padrão do mobysite é mais ou menos esta (tudo costumizável é claro, mas acho que para customizar vocês vão preferir copiar os arquivos pro desktop
):
Não sei se isto foi exatamente útil, mas é uma informação interessante
PS.: algum de vocês consegue pensar em mais alguma utilidade para um servidor web no celular?
Des de que eu fiz algumas palestras sobre Java ME e escrevi um ou dois artigos sobre o assunto, com uma certa frequencia eu recebo e-mails perguntando alguma coisa sobre Java ME, comparações entre Java ME e .NET, …
Eu resolvi escrever este post para sanar algumas das duvidas mais frequentes … (more…)
O Grupo de Usuários Java do Rio Grande do Sul convida pra mais um evento realizado em Porto Alegre.
Tutorial J2ME: Java na palma da mão
Palestrante: Mauricio Leal – SouJava
Local: SEPRORGS
Data: 20/05/2006
Valor: R$ 15,00
Agenda:
8:30 as 9:00 ? Cadastramento (Com pagamento no Local)
9:00 as 10:30 – Tutorial J2ME: Java na palma da mão
10:30 as 10:45 ? Break
10:45 as 12:00 – Continuação do Tutorial
Recebi algumas mensagens pedindo o código fonte do meu artigo sobre JDBC para J2ME/CDC, então resolvi aproveitar o espaço aqui do blog, disponibilizar o material das minhas palestras e artigos aqui, para acessar tudo é có clicar aqui, tem inclusive o código fonte do artigo do portal web mobile que pedi para eles liberarem no site deles e eles não disponibilizaram.
Então era isto, se quiserem acessar o material basta utilizar o link acima ou o link no topo do menu a direita do site.
Se quiserem entrar em contato para que eu ministre alguma palestra, mini curso ou curso em algum evento ou in company basta entrar em contato pelo e-mail rodrigo(@)urubatan.com.br.
Eu nunca fui a pessoa mais organizada do mundo, mas devido ao modo como venho trabalhando nos ultimos tempos, onde cada dia estou em um cliente diferente, em cada cliente um projeto diferente, com reuniões cada hora em um cliente, atendendo uma hora um cliente meu, outra hora um cliente da consultoria em que trabalho …
Deu pra ver que o cenário ficou razoavelmente complicado, eu comecei a me perder na agenda, e tive que arrumar uma maneira de me organizar no meio desta confusão, e considerando que eu apanhei um pouco para resolver este probleminha, resolvi compartilhar isto com qualquer pessoa que tenha paciencia para ler este blog, e quem sabe receber algumas dicas para melhorar o meu processo.
Então vamos la, começamdo do inicio, como eu costumo dizer a todos os que me conhecem, eu sou uma pessoa bastante preguiçosa, isto é, eu não gosto de trabalhar mais do que o necessário, e como hoje em dia temos diversas ferramentas para ajudar pessoas desesperadas como eu, comecemos pela escolha de uma, ou duas na realidade (eu ja vou explicar): digo duas, por que uma delas vai ficar instalada no meo computador, e como ele fica no escritorio, e não passo muito tempo ali, preciso de alguma coisa que eu possa consultar a qualquer momento, então vou dividir este processo em dois topicos que seguirão: Desktop e móvel.
A ferramenta a ser utilizada no desktop vai depender bastante do sistema operacional da sua maquina, a minha como acho que da maioria, pelo menos por enquanto, roda Windows XP, e por razões que vou explicar melhor no proximo tópico, escolhi o Microsoft Outlook para me ajudar na minha organização na parte do meu desktop, mas exatamente no que ele vai me ajudar? vou enumerar a seguir, depois explico cada ponto, mas o mais importante é, não adianta escolher uma ferramente, mesmo que esta seja a melhor ferramenta organizacional do mundo, tem que se criar a cultura de utiliza-la e para isto, é preciso utiliza-la para tudo e sempre, mesmo que isto pareça desnecessário.
O extremamente excencial para mim em uma ferramenta destas é:
Explicando os itens a cima:
1 – O calendário é uma ferramenta bastante importante, pois é ali que você vai registrar (é isto mesmo, tem que fazer na mão) e agendar todos os seus compromissos, reuniões, e até aquele trabalho que você pegou no qual tem que ir 3 vezes por semana para o mesmo lugar no mesmo horário, não é que você vá esquecer de ir pra lá, mas isto vai evitar que você marque uma reunião para daqui a 1 mes e pouco para um horario onde você ja tem ocupado.
Mais importante que isto, enquanto estiver agendando uma reunião ou um compromisso, não esqueça que se eles não forem no mesmo local, você precisa considerar o tempo de locomoção, e mesmo que sejam no mesmo local, sempre se precisa de alguns minutos de organização entre um compromisso e outro. Traduzindo o que acabei de dizer: deixe pelo menos 15 minutos entre compromissos, e se precisar de deslocamento, mesmo que seja caminhar uma quadra, deixe pelo menos 30 minutos de intervalo.
2 – A lista de tarefas é importante por que nem tudo o que se precisa fazer são compromissos agendáveis, tem tarefas que se precisa realizar até certa data, ou algumas até sem uma data de fim definida, como por exemplo, terminar relatório tal até antes da reunião de final de semestre do cliente X. Este tipo de tarefa não pode ser agendada como um compromisso, mas precisa ser feito, e tem uma data limite para ser completado.
3 – Contatos uma da informações mais importantes a serem gerenciadas, que alem de serem extremamente úteis na hora de agendar reuniões, enviar e-mails, telefonemas entre outros, ainda podem servir como ponto de partida para todas as outras funções citadas, por exemplo, uma tarefa esta sempre relacionada a um ou mais contatos, ou seja, quando a tarefa for concluida, você deve apresentar os resultados ou apenas comunicar o termino dela a um dos contatos, ou então precisa de uma informação de outro contato para finalizar a tarefa em quastão, uma reunião é sempre com algum contato, entre outras ligações possiveis, agora o banco de dados de contatos tem que estar sempre atualizado para que todo o resto funcione corretamente, mais adiante vou comentar sobre a solução que adotei para manter tudo sempre atualizado, até o momento esta funcionando direitinho.
4 – Journaling significa tomar nota de tudo o que você fez com o máximo de informações possivel, isto é bastante importante caso você trabalhe com consultoria como eu, ou apenas precise saber dizer para alguem, quanto tempo você levou para fazer X tarefa, esta é uma das partes mais chatas de fazer de todo este gerenciamento, mas também uma das mais importantes, alguma coisa o proprio outlook faz para mim deposi que ativei o journaling automático, por exemplo ele registra no journal todos os e-mails que enviei para quem, todos os agendamentos e tarefas que criei para cada cliente/contato, mas eu ainda tenho que registrar os telefonemas, e tempo gasto em outras tarefas como escrita de relatorios, artigos, desenvolvimento de sistemas, …
5 – Emails bom, emials todo mundo sabe para que servem, mas tem um ponto importante para facilitar as coisas, se você e como eu que tem diversas contas de e-mail (um amigo reclamou estes dias que eu era a pessoa com mais endereços de e-mail que ele conhece, mas eu ja dei uma melhorada nisto), trate de receber todos os seus e-mails no mesmo lugar, isto vai evitar que você perca algum e-mail ou que simplesmente esqueça de ler eles como ja fiz mais de uma vez. Mais uma coisa bastante importante em utilizar e-mails integrado no mesmo programa que as funções anteriores, é que você pode enquanto estiver agendando uma reunião ja enviar convites para os participantes da reunião que vão estar na sua lista de contatos, e quando o sistema receber as confirmações ou recusas ja vai atualizar automaticamente o agendamento da reunião, isto também funciona para tarefas o que também é bastante útil, por exemplo você pode solicitar que alguem realize uma tarefa para você cadastrando a mesma no seu outlook, enviar a tarefa para qualquer um de seus contatos, e seguir sendo atualizado do status da tarefa enquanto a outra pessoa a realiza automáicamente, o que elimina a necessidade de ficar perguntando ou enviando relatorios sobre o que se esta fazendo a toda hora.
6 – Links até agora eu estava falando de algumas funcionalidades básicas de qualquer PIM integrado, mas uma coisa que eu acho maravilhosa no outlook, são os links entre todo e qualquer item cadastrado nele, por exemplo, eu abro um contato, vou para a aba atividades, e nesta aba começam a aparecer todos os e-mails que enviei ou recebi deste contato, todas as tarefas nas quais eu deveria me reportar a ele, todos os compromissos que agendei com este contato, todos os itens do journal cadastrados para este contato (aqui eu uso isto bastante para cobrança, simplesmente sempre que estou trabalhando para alguem cadastro no journal, depois disto, venho para esta aba de atividades, visualizo todos os tempos de todas as tarefas realizadas para este contato, somo tudo e estou pronto para cobrar qualquer um dos meus clientes) e assim por diante, por isto estes links entre todos os tipos de itens são importantes.
Bom, eu mensionei a cima que era muito importante manter os contatos atualizados, e que iria mencionar a solução que adotei para isto, pois é, eu estou utilizando uma ferramenta gratuita com o nome de Plaxo, que é um gerenciador de contatos online, possui também agenda e tarefas, tem um plugin de sincronização para o outlook, e a melhor parte, possibilita que os seus contatos atualizem os seus dados diretamente na sua agenda, mas não vou ficar fazendo propaganda do plaxo aqui, ja que ja escrevi bastante e esta não é exatamente a ideia deste texto.
Mas como é complicado de carregar o desktop pra todo lugar, meio dificil de abrir ele no meio da rua para consultar qual o seu proximo compromisso ou para verificar o endereço daquela reunião que você tem no inicio da tarde, eu preciso também de uma solução para carregar todos estes dados (ou pelo menos os que forem necessários) dentro do meu bolso, e esta também é uma disculpa para se divertir um pouquinho, ou seja, vamos escoler um brinquedinho que faça isto para nós!
Começando por quais são as nossas opções: um SmartPhone, um Palm ou um PocketPC.
Eu acabei escolhendo um Pocket PC por que assim posso utilizar ele também para testar programas desenvolvidos para esta plataforma (considerando que ele suporte J2ME CDC e CLDC tenho duas plataformas de testes em uma só), mas as vantagens que ele me traz são as seguintes:
Basicamente é isto, o Pocket permite que eu tenha o Outlook sempre a mão quando eu mais preciso dele, e como eu comentei no inicio deste texto, eu não sou a pessoa mais organizada do mundo, e ainda sou preguiçoso, isto quer dizer que se eu não anotar as coisas exatamente na hora que eu as fizer, elas não serão mais anotadas, e eu não vou ter as informações quando precisar, e ainda posso não cobrar algum cliente por um trabalho realizado, ou pior, me enganar e cobrar por algo que não esta pronto ou não foi feito, e isto não seria legal.
Ahh, mais uma coisa, se alguem conhecer um programa de controle financeiro que importe e exporte QIF, ou que tenha versão para desktop e PocketPC, por favor me passe a dica por que estou precisando, não precisa ser free, se o software for bom eu compro ele …
PS.: obrigado por ter lido até aqui, vou agradecer mais ainda se puder deixar um comentário dizendo o que achou do texto.
PS2.: se tiverem alguma ideia para melhorar este processo, vou gostar bastante de ficar sabendo para facilitar a minha organização.
mais um artigo meu publicado no PortalWebMobile desta vez é o inicio de uma sequencia de artigos sobre desenvolvimento em java para PDAs, este primeiro fala sobre as deficiencias do pacote opcional JDBC para CDC/Personal Profile, quem quiser dar uma conferida no artigo é só clicar aqui
ahh, espero vocês na minha palestra no javali amanha a noite, mais detalhes a grade de horarios pode ser encontrada aqui