Busca

fim de expediente

by rafa soares

Tag

desenvolvimento

sonora no orkut

Finalmente posso justificar, em parte, meu afastamento do blog.

Passei os últimos meses trabalhando em um projeto ambicioso, grandioso, que vai mudar o mundo… Tá, não é para tanto, mas foi um projeto bem trabalhoso.

E o melhor, ou não, que o projeto é relacionado com o nosso grande, amado, idolatrado, salve salve, orkut! Ou seja, fiquei um bom tempo sendo obrigado a acessar o orkut, todo dia, frequentemente e no trabalho. Morram de inveja, pessoas do post anterior!

Não que eu seja fã do orkut, não mesmo. Mas que dá um gostinho fazer inveja nessas lesmas pessoas que ficam entrando no orkut escondidas do chefe… tsc tsc.

Agora, sobre o projeto.

Bom, a coisa é simples de entender (de entender, porque pra fazer foi uma odisséia). É uma versão “lite” do Sonora, funcionando como uma das recém-lançadas aplicações para orkut.

As funcionalidades são basicamente as mesmas. Você adiciona músicas, artistas, álbuns, etc. à sua biblioteca (no caso, seu perfil), ouve as rádios, vê rankings, etc. etc. etc. O grande diferencial aqui é poder trocar essas informações com os seus amigos, através de indicações, fuçando entrando no perfil dos amigos, e assim vai. Além de ganhar 30 dias de Sonora digrátis

Para adicionar o aplicativo, basta clicar aqui (detalhe: os comentários são bem a cara dos usuários normais do orkut…). Espero que gostem.

Anúncios

absurdos cotidianos 3.0

Bom, faz muito tempo que não posto aqui… Espero que logo volte ao normal.

Para refrescar, vou mandar umas pérolas que algumas pessoas me mandam quando pedem ajuda.

Pergunta:

Comecei a criar a função de pesquisa mas está dando este erro, o que pode ser?

'Manager.[nome da classe].Pesquisar(int?, int?)': not all code paths return a value

Estou criando assim:

public List<&#91;nome da classe&#93;> Pesquisar( int? CodigoDe, int? CodigoAte )
{
	Query query = new Query();
}

Resposta:

Termina a função. Se continuar dando erro, você me fala.

Não sei porquê, mas não tive resposta depois disso….

Pergunta:

Estou usando esta linha, mas, não sei porquê, a variável não está sendo atualizada , tenho certeza que o campo DataValidade está atualizado…

if([nome da classe].DataValidade.HasValue)
	[nome da classe].DataValidade = Convert.ToDateTime(linha["DataValidade"]);

Reposta:

Você não pode verificar se a variável tem algum valor antes de atribuir o valor a ela…
O que você tem que verificar é se o campo no banco tem valor.

De novo, silêncio…

Pergunta:

Quando estou no aspx.cs e digito [nome da classe], só aparece [no IntelliSense] o Manager e não aparece a Entidade, mas já criei a entidade o que pode ser?

Resposta:

Tenta recompilar a solução.

Adivinhem… *grilos cricrilando*

Eu não me acho o fodão, também tenhos várias dúvidas, mas tem gente que pergunta por pura preguiça de pesquisar ou até de pensar. É muito mais prático abrir o MSN e perguntar pra alguém do que tentar alguma outra coisa ou abrir o Google e procurar, não é?

absurdos cotidianos 2.0

De vez em quando eu tenho que engolir umas dessas:

System.FormatException: Seqüência de entrada não estava em um formato incorreto.

Se não estava incorreto, porque não funcionou?! ¬¬

Tinha que ser da Microsoft! (ASP.NET 2.0)

UPDATE

Um número considerável de pessoas tem chegado a esse post procurando por este erro, então deixa eu atender às expectativas destes nobres visitantes:

A mensagem que dizer justamente o contrário, ou seja, significa que o valor de entrada estava num formato incorreto (logo, não estava num formato correto). Verifique o valor da variável que você está tentando converter. Aposto que é um campo onde o usuário deveria digitar um valor ou uma data e você não está validando a entrada. 😛

Um RegularExpressionValidator deve resolver o problema. 😉

Quanto à mensagem, é óbvio que quem fez a tradução ia escrever “não estava num formato correto”, mas achou que “estava num formato incorreto” era melhor (eu também acho), mas esqueceu de apagar o “não”. Isso acontece direto, tá perdoado. Eu só não perdôo o revisor que deixou esse erro passar!

website coming soon

Já tem um tempo que comecei a trabalhar no meu site pessoal, mas não andava com muito pique.

Agora estou mais animado, tanto para trabalhar com novas tecnologias quanto para fazer algo do jeito que eu gosto, não como a empresa quer.

Trabalhar só com desenvolvimento de aplicações web para administração tá minando minha habilidade como web developer.
Daqui a pouco esqueço o que é HTML… 😛

Por enquanto mal tenho a casca pronta. O design que fiz até agora está sujeito a mudanças e provavelmente vou mudá-lo logo.

Ainda não decidi qual tecnologia usar.

Estou em dúvida entre Ruby on Rails e PHP. Pensei em usar ASP.NET, mas já to de saco cheio dele. E também não é a melhor opção para o “web2.0 way of life“. apesar de eu considerar web2.0 apenas um jargão marqueteiro, eu gosto de trabalhar com (X)HTML, CSS e JavaScript, então já sabem o que eu quero dizer.

Muito provavelmente vou fazer em RoR, estou muito interessado em aprender essa linguagem. Só se eu tiver muitos problemas mesmo vou ser obrigado a usar PHP.

Se quiserem conferir como anda o trabalho, acessem http://rafasoares.com. Comentários, críticas e sugestões são sempre bem-vindos, é claro, tanto aqui pelo blog quanto pelo e-mail que está no site.

será que agora vai?

Hoje vi algo muito interessante:

Delphi for PHP

Eu não vou entrar no mérito da qualidade das ferramentas da Borland, porque nunca trabalhei com elas. Mas sinceramente, pelos vídeos me pareceu ser aquilo que faltava para o PHP e para o desenvolvimento web em geral: Uma IDE boa, com ótimos recursos para se trabalhar a interface.

O jeito com que são criados os controles são ótimos, superando até o Visual Studio. Não que este fosse O melhor, mas melhorou muito o jeito de trabalhar.

Estou com medo de acontecer o mesmo que acontece com o ASP.NET: Eles ficam anunciando tudo no “clique clique“, mas depois ficam dizendo “isso não é recomendado, você tem que fazer do jeito certo: na mão“…

Vou dar uma olhada melhor no programa (baixei um trial) e depois posto mais detalhes.

Vida longa ao PHP! (apesar de eu trabalhar com ASP.NET 😛 )

Até a próxima!

unnamed feeling

Obs: post feito às 23h05m…

Não sei o que dizer sobre o que estou sentindo agora.
Uma mistura de raiva, revolta, alegria, satisfação. E tudo pelo mesmo motivo!

Gastei as últimas 4/5h buscando na internet um jeito de fazer algo essencial, mas mal documentado: Inserir um texto em algum campo, mas no ponto de inserção (aka cursor).

Procurei em fóruns, sites de busca, mailing lists e nada. O que eu encontrava ou não era exatamente o que eu queria, ou não funcionava plenamente.

Encontrei algo que poderia ser o caminho para a salvação:

pos = $("texto").selectionStart;

Isso me daria a posição do cursor. Já é um começo. A partir daí eu iria dividir o texto entre “antes” e “depois” do cursor e enfiar o que eu queria no meio. Trabalhoso, mas já resolveria o meu problema.
Mas tem um pequenino detalhe: não funciona no Internet Explorer.
Bah! Que novidade… 😦 Me diz o que é que funciona nessa inhaca? E ainda tem 83% do mercado… ¬¬

Como diz o Ruppel:

Para usuário Internet Explorer: mude de navegador.

Pior do que atender só a minoria, minha solução não atendia o meu público alvo

Então volto a camelar… Já sem esperanças… Então tive um lampejo e só para constar: às 22h30, combinando uma dica de um fórum com uma tentativa desesperada e uma olhadinha na Referência do Dreamweaver, cheguei às seguintes mágicas linhas:

$("idtextarea").focus();
var range = document.selection.createRange();
range.text = "texto";

Obs: se você desconhece o comando $("idtextarea") é a mesma coisa que document.getElementById("idtextarea");
Para saber mais, dê uma olhada em http://www.metzen.com.br/freedom/. 😉

E é isso. Essas 3 linhazinhas. Simples assim.
Pior que eu já tinha tentado o document.selection.createRange(); antes, mas o macete está em dar foco no campo antes (no caso, a textarea). Aí vai do gosto do freguês: pelo ID, através do document.formulario.campo ou pelo document.forms['formulario'].elements['campo']Não interessa. O importante é o campo estar com foco antes de você criar o range.

Chato, não?
E eu aqui perdendo horas de sono…
Aliás, deixa eu ir dormir! 😀
Boa noite! o/

Acima ↑