André's profileTalking about Software D...PhotosBlogListsMore ![]() | Help |
|
June 17 Fuso HorárioFuso Horário
No meio desse viaja pra cá e pra lá, acabei reparando em uma coisa que não tinha reparado antes...
Estava dando uma olhada em um site que mostra o horário atual em diversos países (http://www.timeanddate.com/worldclock/) e reparei que tem alguns lugares do mundo em que o fuso não respeita a quantidade de uma hora, mas sim, meia hora ou até mesmo 15 minutos!
Um exemplo é o Nepal, que está a +05:15 horas do GMT... Imagina só que louca a comunicação internacional desses países?
Acabei indo investigar melhor e descobri que parece que esse negócio de fuso na realidade é uma zona total... Pra quem se interessar, dê uma olhada nestes dois artigos:
André Alves de Lima. May 12 Namespaces, Classes Parciais e Métodos Virtuais em C#Namespaces, Classes Parciais e Métodos Virtuais em C#
Fala galera, tudo em cima?
Acabou de ser publicado no portal Linha de Código um vídeo que fiz sobre namespaces, classes parciais e métodos virtuais em C#. Aí vai o link do portal de vídeos:
Escrevi também um artigo sobre o mesmo tema no site dos Raptors:
Aí vai o texto do mesmo, para ficar registrado no blog também...
1. Introdução Este artigo abordará, com exemplos práticos, alguns conceitos básicos do .Net Framework, que são os Namespaces, Classes Parciais e Métodos Virtuais. Esses temas são básicos para quem está iniciando, mas muitas pessoas acabam ficando com dúvidas e até mesmo acabam utilizando-os de maneira errada. Iniciemos então com o primeiro tema – namespaces. 2. Namespaces O conceito de namespace foi criado para nos ajudar a organizar melhor nossos códigos. Eles podem ser entendidos como “categorias” ou “blocos” que contêm trechos de código. Um bom exemplo de utilização de namespaces é encontrado no próprio .Net Framework, que é todo separado em categorias – ou namespaces (System.Data, System.Collections, System.IO, etc.). Quando criamos um projeto, o Visual Studio já cria um namespace utilizando o mesmo nome do projeto. Então, se criarmos uma Console Application em C# utilizando o nome NamespacesDemo, o Visual Studio nos criará o seguinte trecho de código: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NamespacesDemo { class Program { static void Main(string[] args) { } } } Pelo trecho de código acima, podemos notar que a declaração de namespaces em C# é feita através da palavra reservada namespace seguida do nome que desejamos associar ao namespace criado. 2.1. Aninhamento de Namespaces Com o aninhamento de namespaces, podemos incluir namespaces dentro de outros. Abaixo temos um exemplo de como poderia ser a estrutura de namespaces de um sistema relacionado à educação: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NamespacesDemo { namespace Matematica { namespace Algebra { class MatematicaAlgebra { private int _codigo;
public int Codigo { get { return _codigo; } set { _codigo = value; } } } } } namespace Fisica { namespace Mecanica {
} } } Podemos notar que dentro do namespace “NapespacesDemo”, temos outros dois namespaces: “Matematica” e “Fisica”, e estes também contêm outros namespaces. 2.2. A cláusula “using” Para utilizarmos as classes de outros namespaces que não o atual, podemos informar no código o caminho completo da classe (incluindo o namespace), como podemos verificar no código abaixo, que utiliza a classe MatematicaAlgebra do namespace NamespacesDemo.Matematica.Algebra: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NamespacesDemo { class Cliente { private void UsaMatematica() { Matematica.Algebra.MatematicaAlgebra _meuObjeto = new Matematica.Algebra.MatematicaAlgebra(); } } } Outra opção para acessarmos a mesma classe sem utilizar o caminho completo da mesma, seria definir seu namespace utilizando a palavra reservada using. Com isso, nosso código ficaria o seguinte: using System; using System.Collections.Generic; using System.Linq; using System.Text; using NamespacesDemo.Matematica.Algebra;
namespace NamespacesDemo { class Cliente { private void UsaMatematica() { MatematicaAlgebra _meuObjeto = new MatematicaAlgebra(); } } } 2.3. Apelidos de namespaces Podemos criar apelidos para nossos namespaces, também chamados de aliases. Para isso, podemos utilizar a seguinte sintaxe: using System; using System.Collections.Generic; using System.Linq; using System.Text; using alg = NamespacesDemo.Matematica.Algebra;
namespace NamespacesDemo { class Cliente { private void UsaMatematica() { alg.MatematicaAlgebra _meuObjeto = new alg.MatematicaAlgebra(); } } } 3. Classes Parciais O conceito de classes parciais presente no .Net Framework serve para dividir o código de nossas estruturas em dois ou mais arquivos fonte. As estruturas passíveis a essa divisão são classes, structs e interfaces. As classes parciais nos possibilitam uma melhor organização do nosso código, visto que podemos distribuir o código de uma classe grande em vários arquivos (por exemplo, podemos escrever os atributos, propriedades e construtores da classe em um fonte e os métodos e funções em outro fonte). Abaixo veremos um exemplo de uma classe chamada Coordenada que foi dividida em dois arquivos fonte: Coordenada.cs e CoordenadaMetodos.cs: Coordenada.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NamespacesDemo { public partial class Coordenada { private int _x;
public int X { get { return _x; } set { _x = value; } } private int _y;
public int Y { get { return _y; } set { _y = value; } } } } CoordenadaMetodos.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NamespacesDemo { public partial class Coordenada { public void PrintCoordenadas() { Console.WriteLine(this._x.ToString() + " " + this._y); } } } Como podemos verificar nos códigos acima, separamos os atributos e propriedades da classe Coodenada no arquivo fonte Coordenada.cs e o método PrintCoordenadas no arquivo fonte CoordenadaMetodos.cs. Para indicar que uma classe está dividida em mais de um arquivo fonte, utilizamos a palavra reservada partial. Ao compilar o código, o .Net acaba juntando o conteúdo dos dois arquivos fonte em um só, para chegar ao código completo da classe Coordenada. Se repararmos nos arquivos criados ao adicionarmos um form em um projeto Windows Forms, percebemos que o Visual Studio na verdade separa o código em dois arquivos: um fonte contém o código de design do form, que vai sendo criado pelo Visual Studio ao customizarmos suas propriedades pelo editor visual e outro fonte contém o restante do código do form (implementação de eventos, métodos, etc.). 4. Métodos Virtuais Métodos virtuais foram criados para que as linguagens orientadas a objetos expressem o polimorfismo, ou seja, a permissão de escrevermos um método em uma classe derivada com a mesma assinatura da classe base. Em C#, para indicar que um método poderá ser escrito com a mesma assinatura em uma classe derivada, utilizamos a palavra reservada virtual na classe base e a palavra reservada override na classe derivada, como podemos verificar no código abaixo: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace NamespacesDemo { class FormaGeometrica { public virtual void ImprimeFormulaDaArea() { Console.WriteLine("Sem saber a forma, eu nao sei a formula da area."); } }
class Circulo : FormaGeometrica { public override void ImprimeFormulaDaArea() { base.ImprimeFormulaDaArea(); Console.WriteLine("A formula do Circulo é pi * r^2"); } } } Como podemos observar, o exemplo acima implementa duas classes: FormaGeometrica e Circulo (que é uma especificação da classe FormaGeometrica). O método ImprimeFormulaDaArea foi definido como virtual na classe base, o que indica que ele poderá ser sobreposto por um método nas classes que a herdarem. Isso é o que pode ser verificado na implementação do mesmo método na classe derivada Circulo, onde utilizamos a palavra reservada override, para indicar que esse código é uma sobreposição do método com mesmo nome da classe base. Se quisermos ainda executar também o código da classe base, além do código da classe derivada, podemos utilizar a palavra reservada base, como foi feito com a chamada base.ImprimeFormulaDaArea no código acima. Bom, vamos ficando por aqui. Espero que tenham gostado e, até a próxima!
André Alves de Lima. April 02 Evitar expansão da TreeView ao clicar no "+"Evitar expansão da TreeView ao clicar no "+"
Fala galera!
Esses dias eu estava respondendo umas dúvidas no fórum de C# no MSDN e acabei chegando em uma dúvida interessante...
Por algum motivo (explicado no post), o desenvolvedor queria evitar que o nó da TreeView expandisse quando o usuário clicasse no símbolo de "+" (contudo, sem remover o símbolo da TreeView), fazendo com que a expansão / retração fosse somente executada quando o usuário desse um duplo clique no nó...
Aí fui procurar na Internet pra ver se alguém já tinha feito isso... Como não achei nada, fui tentar implementar... E acabei chegando na seguinte solução:
public partial class Form1 : Form
{ private bool _doubleClick = false; public Form1() { InitializeComponent(); } private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { if (!_doubleClick.Equals(true)) e.Cancel = true; else _doubleClick = false; } private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { _doubleClick = true; e.Node.Expand(); } } Basicamente, criei um atributo chamado _doubleClick, que sempre estará setado como falso, a não ser que um nó tenha sofrido um duplo clique (tratamento através do evento NoveMouseDoubleClick da TreeView). No evento BeforeExpand da TreeView, a gente verifica se esse atributo está true ou false, e faz o tratamento desejado (cancelando ou não a expansão do nó)... Não sei se tem um jeito melhor de fazer, mas, dessa forma funcionou belezinha... =)
Para referência, o link do post é:
http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/990afef6-7d9f-42d1-adbd-2ad36fb76a7f Até a próxima!
André Alves de Lima. February 12 Coitado do futuro marido dela...January 30 Lost: mistérios são mais úteis do que explicaçõesLost: mistérios são mais úteis do que explicações
Fonte: http://colunistas.ig.com.br/magaiver/2009/01/21/lost-misterios-sao-mais-uteis-do-que-explicacoes/
André Alves de Lima. January 22 Nova licitação na PrefeituraNova licitação na Prefeitura
Fala galera!
Preciso postar sobre meu casamento / lua-de-mel, mas, como estou sem as fotos ainda, vou esperar mais uns dias... =)
Enquanto isso, aí vai uma piadinha sobre o famoso jeitinho brasileiro:
André Alves de Lima. December 16 Quando um cidadão se empolga no NatalQuando um cidadão se empolga no Natal
André Alves de Lima. November 17 Men's BandwidthNovember 11 Fotos DiversasJogando golfJogando golf
Olha só que chique:
Domingo retrasado não tínhamos nada pra fazer então resolvemos ir jogar golf no quintal...
Pois é... Não dava pra vir no país do golf, ficar 2 meses e não tentar jogar né?
Eita, como é difícil acertar a bolinha viu...
Eu acabei descobrindo que sou canhoto em se tratando de golf... Jogando como destro quase não consigo acertar a bola, agora, com a mão esquerda, aí acerto todas...
O foda é que todos os tacos que tínhamos aqui na casa eram pra destros, é claro... Aí fica difícil...
Mas, deu pra se divertir!
André Alves de Lima. Futebol Brasileiro na EscóciaFutebol Brasileiro na Escócia
Domingão à tarde, fim de mundo, e nós assistindo Campeonato Brasileiro de Futebol...
A Sky daqui é muito foda... Tem um zilhão de canais... E um deles transmite o Campeonato Brasileiro...
Bacana não? Melhor ainda seria se o Palmeiras jogasse que nem gente grande, né?
O mais interessante é que eles conseguiram incluir 2 times novos no campeonato: Ipayinga e Palmerias!
Show de bola, né?
André Alves de Lima. November 07 Guy Fawkes NightGuy Fawkes Night
Fala galera, tudo beleza?
Em 5 de Novembro de 1605, um bando de católicos doidos tentaram explodir o Parlamento Britânico, só que não conseguiram...
Um dos católicos era o tal do Guy Fawkes... Desde então, os britânicos comemoram a tentativa frustrada fazendo uma fogueira e soltando fogos de artifício... Louco, né?
Pois é... Ficamos sabendo que em Inverness ia ter uma fogueira gigante e uns fogos animais, então, fomos lá pra conferir...
Mais informações sobre a data festiva: http://en.wikipedia.org/wiki/Guy_Fawkes_Night
Agora, seguem as fotos e vídeos:
É isso aí...
André Alves de Lima. November 05 EA lança Command & Conquer: Red Alert 3 com CdKey incompletaEA lança Command & Conquer: Red Alert 3 com CdKey incompleta
A EA acaba de lançar o Command & Conquer: Red Alert 3...
Ela só esqueceu de, em algumas caixas, colocar o último dígito da CdKey pra ativar o jogo... Bacana, né?
É claro que, depois dos Engenheiros da EA raciocinarem muito sobre como eles resolveriam esse erro, eles forneceram um workaround fantástico:
Simplesmente fique tentando letras ou um dígitos até que o jogo aceite o CdKey!!! Sim!!! Eles sugeriram isso!
Amazing, isn't it?
Fonte: http://www.maximumpc.com/article/news/ea_recommends_hilarious_workaround_red_alert_3_cd_key_issue
André Alves de Lima. October 29 Loop InfinitoLoop Infinito
Retirado do blog do Dennes Torres...
Exemplo perfeito de loop infinito:
October 28 Minha primeira experiência com a neveMinha primeira experiência com a neve
Galera,
Hoje nevou...
Não preciso nem falar nada... As fotos e vídeos falam por sí só...
André ama Lari na neve:
Vídeos...
Show de bola, não?
Mudando de assunto... Quer ficar por dentro da economia, política e outras notícias polêmicas? Acessem o blog do meu brother Rodrigo Cordasso: http://naofaloesperanto.zip.net/... Garanto que vocês vão curtir... Grande abraço rapá! Valeu pela força!
Bom galera, até a próxima!
André Alves de Lima. O mico "Mor"O mico "Mor"
É galera... Acho que esse mico vai entrar pro ranking dos melhores da Savcor...
Nesse final de semana fomos Bruce, Dejuste e eu pra Applecross, uma vilazinha que fica no oeste das Highlands...
Estávamos indo, tranquilamente pro nosso destino, caminho bem bacana, como vocês podem ver no vídeo:
Até que o Bruce para o carro no ponto mais alto das Highlands... Ele parou o carro contra o vento, tentou abrir a porta e o vento não deixou, de tão forte que estava... Acreditem, tava surreal...
Como não ia dar pra sair do carro, o Bruce virou o carro (ficando, então, a favor do vento) e parou pra ligar pra esposa dele pra falar o quão impressionante era aquela cena...
Enquanto isso, o idiota que vos fala decidiu fazer um vídeo pra registrar o momento... Tudo estava indo bem até o momento que tive a péssima idéia de abrir a porta pra mostrar como estava a força do vento... Pois é... Lembram que ele virou o carro né? Então... Se naquela hora ele não conseguiu abrir a porta porque o vento não deixou, vocês já imaginam o que aconteceu com o carro virado ao contrário, não é?
Pois é... Esse foi o dia que eu quase perdi a porta do carro do Bruce...
Depois de rirmos muito da situação, eu e Dejuste comentamos: se fosse o Celtinha, a porta tinha ido montanha abaixo, sem dúvida!
O melhor de tudo? Eu gravei tudo... Huahuauaeuhaue... Aí vai:
(reparem que o Bruce fala que não dá pra abrir o carro, que o vento está "unreal"... com o que eu tava na cabeça, não?)
É... Como eu fui idiota... Por que eu apenas não abri o vidro?
Enfim... No final das contas foi engraçado... Só não foi muito engraçado o amassado que ficou na porta do carro dele... Mas, agora já foi... Eheheh...
Seguem mais fotos e vídeos...
Vila perto de Applecross:
Saca só a força do vento...
Encontramos também o novo Fiesta 2009:
É isso aí...
André Alves de Lima. Celtics vs Inverness Caledonians ThistleCeltics vs Inverness Caledonians Thistle
E aí galera!
Passamos o final de semana retrasado em Inverness na casa do Bill...
Aproveitamos pra assistir um jogo que ia acontecer no estádio por lá... Celtis vs Inverness...
Curiosidades? Todos os ingressos são de cadeiras numeradas (e as pessoas realmente sentam nos números certos); Aonde vende comida, tem uma mesa com catchup, maionese, etc. de graça (e no final do jogo ela estava inteira)...
O jogo foi meio morto... Dava pro time de Inverness ter ganhado, mas, perdeu algumas chances em que a bola já tava praticamente dentro do gol...
Enfim, todo mundo sabe que quem não faz toma... Resultado? Celtics 2 x 1 Inverness...
No final das contas foi bem bacana o jogo... Sentamos num lugar muito massa, bem perto do gramado... Até saímos num vídeo da BBC em um dos gols do Celtics! (aos 3:38 do vídeo deste link: http://news.bbc.co.uk/sport1/hi/scotland/7678991.stm)
Fotos do caminho pro estádio:
Dentro do estádio:
A mesinha com catchup:
Indo embora...
Videozinho...
André Dejuste, Bill, mulher do Bill, eu e filhos do Bill:
Passamos no shopping, entramos em uma loja de jogos e lembrei do Paulo Campoy... World of Worcraft nova expansão... Comming soon...
É isso aí...
André Alves de Lima. Letônia 2º RoundLetônia 2º Round
Como postei umas semanas atrás, passamos uma semana na Letônia apresentando o que a gente tinha desenvolvido...
Uma coisa interessante que aconteceu foi uma garçonete que não entendeu o que o André pediu pra tomar...
Eu tinha pedido uma Coca pequena e meio pint the Zelta (cerveja local), aí o André pediu uma Coca pequena e um pint de Zelta...
Ela trouxe meu pedido certo e uma Coca grande pro André (o que será que ela endendeu?)...
O pior foi que ele levantou, foi explicar pra ela que tinha vindo errado e que ele queria uma Coca pequena e um pint de Zelta (mostrando os copos e tudo)...
Aí o que ela trouxe? Pasmem: uma Coca pequena em um copo de pint de Zelta!! Mas como pode?!?
Na terceira tentativa ela (finalmente) trouxe o pedido certo pra ele...
Aí vão fotos de um dia que a gente saiu pra jantar com o Ingus e a namorada dele...
Inté...
André Alves de Lima. Macbeth @ Carnegie Hall / ClashmoreMachbeth @ Carnegie Hall / Clashmore
Fala pessoal!
Essa aconteceu faz tempo... Acho que foi na primeira ou segunda semana que estávamos aqui, a Silvana viu um cartaz de uma peça de teatro que ia acontecer em uma vila aqui perto e acabamos todos indo lá assistir...
Você acha que fala bem inglês? Pois é melhor rever os seus conceitos... De toda a peça (quase 2 horas), conseguimos entender pouquíssimas frases...
Aí vão as fotos e um vídeo pra ver se alguém consegue entender alguma coisa do que o cidadão tá falando...
|
|
|