domingo, 22 de maio de 2011

Visual Studio Tip: Open XAML in code only mode

A major annoyance of mine after installing a new instance of Visual Studio is when I open a XAML document for the first time. By default, Visual Studio opens a XAML document in Preview mode (the design on the top and the code view on the bottom).  As you start adding more and more elements to XAML, Visual Studio will render the XAML in the design view, even going as far as playing video back if you have a MediaElement defined.

The option to turn this off is buried in the Options.  The below figures show how to change the default behavior.

First click Tools > Options.

image

Then navigate to Text Editor > XAML > Miscellaneous.  Check the box that says Always open document in full XAML view.  If you don’t see Text Editor in the options menu, check the box Show all settings in the bottom left of the Options window.

image

 

Font: http://www.85turns.com/2009/04/23/visual-studio-tip-open-xaml-in-code-only-mode/

quinta-feira, 28 de abril de 2011

Visual Studio - loading toolbox content from package toolboxcontrolsinstaller

Estava com problemas por causa de lentidão no Visual Studio, não sei se influenciou mas instalei o toolkit do Silverlight 5.

Bom a solução foi essa: http://connect.microsoft.com/VisualStudio/feedback/details/551183/loading-toolbox-content-from-package-takes-55-seconds-or-more

sábado, 5 de março de 2011

Inteligência Artificial aplicado ao Trânsito - SmartWay

Abaixo será apresentada a documentação do meu trabalho de conclusão de curso.

image

O sistema funciona em duas etapas, na primeira são feitos cálculos para encontrar uma combinação de tempos de semáforos otimizada, e na segunda etapa é possivel simular como seria o comportamento deste ambiente com os tempos sugeridos.

sábado, 29 de janeiro de 2011

Depurando WebServices

Olá Pessoal,

Nesse ultimo mês tive que fazer alguns workarounds para conseguir finalizar um trabalho de integração com o Salesforce, pois bem, aqui vão algumas dicas.

Para capturar os pacotes enviados para os webservices com os clientes C# e Java:

Utilizar o Wireshark para captura dos pacotes, porém caso seja https o soap estará criptografado, o que não irá adiantar de muita coisa, então simplesmente mude o caminho de destino https:// para http://, isso vai fazer com que o servidor recuse o seu pacote, mas já ajuda pra verificar se o envelope soap está enviando os dados corretos.

Verificando os pacotes descobri que realmente tinha coisa errada no C#, devido a propriedade no elemento que não estava sendo enviado no WSDL estar com  minOccurs="0"  o C# simplesmente não enviava os elementos boleanos.

Descoberto isso foi fácil, bastou remover esse atributo do wsdl que a comunicação com o servidor foi realizada com sucesso.

Outra forma de capturar os pacotes, mas nesse caso somente no cliente C#, é habilitar o trace no web.config

<system.diagnostics>
        <trace autoflush="true"/>
        <sources>
            <source name="System.Net"  >
                <listeners>
                    <add name="TraceFile"/>
                </listeners>
            </source>
            <source name="System.Net.Sockets" >
                <listeners>
                    <add name="TraceFile"/>
                </listeners>
            </source>
        </sources>
        <sharedListeners>
            <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/>
        </sharedListeners>
        <switches>
            <add name="System.Net" value="Verbose"/>
            <add name="System.Net.Sockets" value="Verbose"/>
        </switches>
    </system.diagnostics>

sexta-feira, 21 de janeiro de 2011

SoapUI: Testes de Web Services rápido e descomplicado

SoapUI é uma ferramenta open source escrita em Java cuja principal função é consumir e testar Web Services.

Confira o tutorial no link: http://www.linhadecodigo.com.br/artigo/1286/SoapUI-Testes-de-Web-Services-r%C3%A1pido-e-descomplicado.aspx

quinta-feira, 25 de novembro de 2010

Processamento de Imagens – Udesc 2010

Contagem de Arestas (EdgesCount.xaml.cs)

gear

image

 

EdgesCount.xaml.cs

 

Bitmap originalImage;

        private void buttonExecute_Click(object sender, RoutedEventArgs e)
        {
            Bitmap erodedImage, differenceImage, finalImage;
            //standardizes the colors in black or white
            originalImage = Equalize(ref originalImage);
            //make the erosion in the original image
            erodedImage = Erosion(ref originalImage, Convert.ToInt32(textBoxSize.Text));
            imageEroded.Source = Util.ConvertImage(erodedImage);
            //take the difference between original image and eroded image
            differenceImage = Difference(ref originalImage,ref erodedImage);
            imageDifference.Source = Util.ConvertImage(differenceImage);
            //make the erosion in the differenceImage to separate edges
            finalImage = Erosion(ref differenceImage, Convert.ToInt32(textBoxSize2.Text));
            imageFinal.Source = Util.ConvertImage(finalImage);
            //Count the edges with region growing recursively taking the difference until the image not have segments to count
            textBlockTotal.Text = EdgeQuantity(ref finalImage);

        }

 

  • Exercício 2 - Criação de imagens sintéticas

    Crie uma imagem em forma de xadrez com dimensões M linhas x N colunas, na qual cada retângulo interno do xadrez tenha m linhas x n colunas.

    image

  • Exercício 3 - Mapa de cores e pseudocoloração

    Pseudocoloração

    Crie uma função meu_mapa para gerar um mapa de cores RGB qualquer (use sua criatividade) e uma função aplica_mapa para efetuar pseudocoloração em uma imagem em níveis de cinza (exemplos de aplicações: realce de imagens de raio X, médicas, astronômicas, gráficos, etc). Referência: colormap do matlab.

    image

  • Exercício 4 - Filtragem - convolução periódica
  • Convolução

    Implente a convolução periódica.

  • image

     

  • Questão 5 - Questão 5 da prova 1
  • image
  • http://fernando-magno.blogspot.com/2010/09/deteccao-de-pupila.html

     

  • Exercício 5 - Transformada de Fourier
  • Implemente filtros ideais passa-baixa, passa-alta e passa-faixa;

    image

  • Exercício 6 - Restauração de imagens
    1. Provocar uma degradação com um filtro qualquer (suficientemente grande).
    2. Procurar restaurar a imagem com um filtro inverso R(u,v) e filtro de Wiener (equação abaixo).
  • Exercício 7 - Ampliação e redução de imagens

    Implementação de redução e ampliação de imagens usando interpolação por filtro de Butterworth.

    image

  • Exercício 8 - Crescimento de regiões

    Implementação de redução e ampliação de imagens usando interpolação por filtro de Butterworth.

    image

    image

    image

  • Exercício 9 – Rotulação

    Implementação e testes da rotulação de imagens binárias. A rotulação consiste na atribuição de um valor inteiro diferente para cada componente conexo.

    image

    image

    image

  • Exercício 10 - Gradiente e transformada de distância
  • Implementação e testes do gradiente morfológico (GM).
  • Exercício 11 - Afinamento morfológico
  • Implemente e teste o afinamento morfológico.
  • image
  • 2 passadas
  • image
  • 5 passadas
  • image

    10 passadas

     

    Projeto Final

    Contagem de Veículos

    image

  • domingo, 24 de outubro de 2010

    Estação da Luz

    http://www.desencannes.com/perolas/detalhes_alternativa.php?id=1

    image

    Vinhetas interessantes

     

    http://www.desencannes.com/perolas/slogans.php?pagina=8 SAKURA

    http://www.desencannes.com/perolas/slogans.php?pagina=2 HOSPITAL DE HANSENÍASE

    http://www.desencannes.com/perolas/slogans.php?pagina=3 DETERGENTES YPÊ

    http://www.desencannes.com/perolas/slogans.php?pagina=4 O.B.

    http://www.desencannes.com/perolas/slogans.php?pagina=10 FABER CASTELL

    http://www.desencannes.com/perolas/slogans.php?pagina=8 HUGO BOSS

    terça-feira, 12 de outubro de 2010

    sexta-feira, 8 de outubro de 2010

    quarta-feira, 29 de setembro de 2010

    domingo, 26 de setembro de 2010

    Portal de Psicologia

    Site interessante pra quem gosta do tema: http://www.psicologia.com.pt/

    A Corporação

    http://www.youtube.com/view_play_list?p=82C30C3B8F44815F

    Excelente documentario Canadense de 2002 que apresenta os verdadeiros governantes do mundo - As Corporações.
    A historia da criacao das corporaçoes, as manipulacoes das leis, incluindo constituicoes de paises, a constante exploracao da humanidade pelas Corporacoes-cujo único objetivo, quase sempre, é o LUCRO, custe o que custar.

    sexta-feira, 24 de setembro de 2010

    Debug Silverlight

    Problemas fazer debug, ou em bom português depurar o silverlight, talvez o problema seja simples.

    Verifique se nas configurações do projeto web que hospeda o silverligh está com debug pra silverlight habilitado como na imagem abaixo.

    Observe a propriedade Debuggers:

    image

    segunda-feira, 20 de setembro de 2010

    Julgamento precipitado....


    Havia numa aldeia um velho muito pobre que possuía um lindo cavalo branco.
    Numa manhã ele descobriu que o cavalo não estava na cocheira.
    Os amigos disseram ao velho:
    - Mas que desgraça, seu cavalo foi roubado!
    E o velho respondeu:
    - Calma, não cheguem a tanto. Simplesmente digam que o cavalo não está mais na
    cocheira.
    -O resto é julgamento de vocês.
    As pessoas riram do velho.
    Quinze dias depois, de repente, o cavalo voltou.
    Ele havia fugido para a floresta. E não apenas isso; ele trouxera uma dúzia de
    cavalos selvagens consigo.
    Novamente as pessoas se reuniram e disseram:
    - Velho você tinha razão. Não era mesmo uma desgraça, e sim uma benção.
    E o velho disse:
    - Vocês estão se precipitando de novo. Quem pode dizer se é uma benção ou não?
    - Apenas digam que o cavalo está de volta...
    O velho tinha um único filho que começou a treinar os cavalos selvagens.
    Apenas uma semana mais tarde, ele caiu de um dos cavalos e fraturou as pernas.
    As pessoas se reuniram e, mais uma vez, se puseram a julgar:
    - E não é que você tinha razão, velho? Foi uma desgraça seu único filho perder o
    uso das duas pernas.
    E o velho disse:
    - Mas vocês estão obcecados por julgamentos, hein?
    - Não se adiantem tanto. Digam apenas que meu filho fraturou as pernas.
    - Ninguém sabe ainda se isso é uma desgraça ou uma bênção...
    Aconteceu que, depois de algumas semanas, o país entrou em guerra e todos os
    jovens da aldeia foram obrigados a se alistar, menos o filho do velho.
    E os que foram para a guerra, morreram...
    Quem é obcecado por julgar, cai sempre na armadilha de basear seu julgamento
    em pequenos fragmentos de informação, o que o levará a conclusões precipitadas.
    Nunca encerre uma questão de forma definitiva, pois quando um caminho termina,
    outro começa, quando uma porta se fecha, outra se abre...
    As vezes enxergamos apenas a desgraça, e não vemos a benção que ela nos traz...


    Estevão Camolesi

    terça-feira, 14 de setembro de 2010

    domingo, 12 de setembro de 2010

    INT201 | Conhecendo Ruby e sua utilidade no mundo .NET

    Achei muito interessante essa palestra. Quem conhece o Akita vai entender do que eu to falando.
    =P

     

    INT201 | Conhecendo Ruby e sua utilidade no mundo .NET

    Trilha: INT - Interoperabilidade

    Palestrante(s): Fábio Akita

    Nível:200

    Data: 13/09 Horário: 17:15 - 18:30

    Graças ao Ruby on Rails, o mundo Ruby cresceu de forma muito acelerada nos últimos anos, se tornando uma forte formadora de opinioes no mundo de TI. Além disso é provavelmente a linguagem com o maior número de implementaçoes alternativas. E no mundo .NET temos um recém-chegado: o Iron Ruby que, junto com Iron Python, se junta ao arsenal .NET. Esta palestra se destina a dar uma introduçao ao mundo Ruby e potenciais de integraçao com o mundo .NET

    Estudando com música

    http://www.sejabixo.com.br/vestibular/como2.asp?id=408

    Estou testando a idéia e funciona.

    Instalando referências ABNT no Word 2007

    http://www.tecnosapiens.com.br/2009/10/instalando-referencias-abnt-no-word-2007/

    http://bibword.codeplex.com/releases/view/27212

    http://blogs.msdn.com/b/microsoft_office_word/archive/2007/12/14/bibliography-citations-1011.aspx

    http://office.microsoft.com/pt-br/word-help/inserir-um-hifen-HA010096395.aspx

    http://www.bibtex.org/Convert/ (Utilizar HTML Tables Template)

    Ligatures and Kerning - http://word.tips.net/Pages/T001130_Changing_Kerning.html

    quinta-feira, 2 de setembro de 2010

    Detecção de Pupila

    Instalador: http://easycomtec.com/magno/pi.rar

    Código Fonte: http://easycomtec.com/magno/pi%20source.rar

    Imagem: http://easycomtec.com/magno/image1.jpg

    image

     

           string filepath;
           int limiteInferiorX = -1;
           int limiteInferiorY = -1;
           int limiteSuperiorX = -1;
           int limiteSuperiorY = -1;

           int pontoX1 = -1;
           int pontoY1 = -1;
           int pontoX2 = -1;
           int pontoY2 = -1;

           public MainWindow()
           {
               InitializeComponent();
           }

           private void button1_Click(object sender, RoutedEventArgs e)
           {
               var imagemTratada = Pupila(new Bitmap(filepath));
               var maiorDistancia = MaiorDistancia(imagemTratada);
               var raio = maiorDistancia / 2;
               var centroX = (pontoX2 + pontoX1) / 2;
               var centroY = (pontoY2 + pontoY1) / 2;
               label1.Content = String.Format("Raio:{0} Centro (X,Y):({1},{2})", raio, centroX, centroY);

               var originalImage = new Bitmap(filepath);

               for (int x = centroX - 2; x < centroX + 2; x++)
               {
                   for (int y = centroY - 2; y < centroY + 2; y++)
                   {
                       imagemTratada.SetPixel(x, y, System.Drawing.Color.Red);
                       originalImage.SetPixel(x, y, System.Drawing.Color.Red);

                   }
               }

               image1.Source = ConvertImage(imagemTratada);
               image2.Source = ConvertImage(originalImage);
           }

           private Bitmap Pupila(Bitmap image)
           {
               for (int x = 0; x < image.Width; x++)
               {
                   for (int y = 0; y < image.Height; y++)
                   {
                       var color = image.GetPixel(x,y);
                       var value = (color.R + color.G + color.B) /3;
                       if (value < 50)
                       {
                           if (limiteInferiorX < 0)
                           {
                               limiteInferiorX = x;
                               limiteInferiorY = y;
                           }

                           if (limiteSuperiorX < x)
                           {
                               limiteSuperiorX = x;
                           }

                           if (limiteSuperiorY < y)
                           {
                               limiteSuperiorY = y;
                           }

                           image.SetPixel(x, y, System.Drawing.Color.Black);
                       }
                       else
                       {
                           image.SetPixel(x, y, System.Drawing.Color.White);
                       }
                   }
               }

               return image;
           }

           private double MaiorDistancia(Bitmap image)
           {
               double maiorValor = 0;
               double aux;
               for (int x1 = limiteInferiorX; x1 < limiteSuperiorX; x1++)
               {
                   for (int y1 = limiteInferiorY; y1 < limiteSuperiorY; y1++)
                   {
                       if (image.GetPixel(x1, y1).R == 0)
                       {
                           for (int x2 = x1; x2 < limiteSuperiorX; x2++)
                           {
                               for (int y2 = y1; y2 < limiteSuperiorY; y2++)
                               {
                                   if (image.GetPixel(x2, y2).R == 0)
                                   {
                                       aux = EuclidianaDistancia(x1, y1, x2, y2);
                                       if (aux > maiorValor)
                                       {
                                           maiorValor = aux;

                                           pontoX1 = x1;
                                           pontoX2 = x2;
                                           pontoY1 = y1;
                                           pontoY2 = y2;
                                       }
                                   }
                               }
                           }
                       }
                   }
               }

               return maiorValor;
           }

           private double EuclidianaDistancia(int x1, int y1, int x2 , int y2)
           {
               return Math.Sqrt((Math.Pow((x1 - x2), 2) + Math.Pow((y1 - y2), 2)));
           }

     

           private System.Drawing.Color VerifyColor(int x, double factor,ref System.Drawing.Color color)
           {
               if (x % factor == 0)
               {
                   if (color == System.Drawing.Color.Black)
                   {
                       color = System.Drawing.Color.White;
                   }
                   else
                   {
                       color = System.Drawing.Color.Black;
                   }
               }

               return color;
           }  

           private ImageSource ConvertImage(Bitmap image)
           {
               MemoryStream ms = new MemoryStream();

               image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

               System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();

               bImg.BeginInit();

               bImg.StreamSource = new MemoryStream(ms.ToArray());

               bImg.EndInit();

               return bImg;
           }

           private void buttonLoad_Click(object sender, RoutedEventArgs e)
           {
               OpenFileDialog openFileDialog1 = new OpenFileDialog();

               if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
               {
                   filepath = openFileDialog1.FileName;
                   image1.Source = ConvertImage(new Bitmap(filepath));
               }

           }

    terça-feira, 31 de agosto de 2010

    A lição da borboleta

    A lição da borboleta

    19/11/2007

    Um dia pequena abertura apareceu em casulo, despertando a curiosidade de uma moça, que ficou observando por várias horas.
    A borboleta se esforçava para fazer com que seu corpo passasse através daquele pequeno buraco, mas parecia que ela já tinha ido o mais longe que podia, e que não conseguiria ir mais longe do que aquilo.
    A moça, então, decidiu ajudar a borboleta. Com uma tesoura ela cortou o restante do casulo e a borboleta pode sair facilmente. Mas seu corpo estava murcho, era pequeno e suas asas estavam amassadas.
    A moça continuou observando a borboleta, esperando que a qualquer momento suas asas fossem se abrir e se esticar.
    Nada aconteceu. Na verdade a borboleta passou o resto de sua vida se rastejando, com o corpo murcho e suas asas encolhidas. Ela nunca foi capaz de voar. A moça, com sua gentileza e vontade de ajudar, não compreendia que o casulo apertado, e o esforço que a borboleta tinha que fazer para sair daquele espaço, era a forma que a Natureza fazia para que o fluído do corpo dela fosse para suas asas, de modo que ela ficasse pronta para voar.
    Algumas vezes o esforço e o sofrimento, é o que precisamos em nossas vidas. Se nunca sofrermos para superar certos obstáculos, isso nos deixará fracos espiritualmente. E nós jamais seremos capazes de voar e não seremos tão fortes como podemos ser.


    http://www.employer.com.br/Visualizacao.aspx?idDocumento=148&Menu=&Query=&TipoDocumento=Textos%20de%20RH

    segunda-feira, 9 de agosto de 2010

    Reiniciar o FTP IIS 7 – Windows Server 2008

    Caso veja que as configurações do FTP não estão sendo aplicadas como o desejado, é interessante forçar o restart do serviço de FTP, porque apenas clicar no Restart do Painel de Gerenciamento não deu muito certo pra mim.

    Segue:

    1. Open a command prompt
    2. type: "net stop ftpsvc" and hit enter (no quotes)
    3. type: "net start ftpsvc" and hit enter (no quotes)