git push error: RPC failed; result=56, HTTP code = 0

Ao tentar migrar um repositório do GitHub para um servidor local usando Bonobo Git Server (https://bonobogitserver.com/), tive o seguinte erro:

Counting objects: 5682, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3751/3751), done.
error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; result=56, HTTP code = 0
Writing objects:  10% (619/5682), fatal: The remote end4.75 M huniB | 3g u6p unexpecte.00 Kdly
Writing objects: 100% (5682/5682), 34.68 MiB | 22.00 KiB/s, done.
Total 5682 (delta 1827), reused 5682 (delta 1827)
fatal: The remote end hung up unexpectedly

Pesquisando na internet verifiquei que este erro está associado ao tamanho do pacote que necessita ser enviado pelo cliente ao servidor, sendo assim a solução do mesmo é ajustar o cliente e o servidor para receber pacotes maiores.

No cliente fiz o ajuste com o seguinte comando

git config --global http.postBuffer 100M

Ja no servidor alterei o arquivo web.config do Bonobo para permitir o conteúdo com 100Mb (conforme abaixo)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <system.web>
    <httpRuntime maxRequestLength="104857600" />
    ...
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits executionTimeout="18000" maxAllowedContentLength="104857600" />
        ...

Após este procedimento e a aplicação do HotFix Microsoft (KB2634328) tudo funcionou normalmente em meu ambiente.

Referência:
https://bonobogitserver.com/frequently-asked-questions/

Criando documentação em C# com doxygen (html e pdf)

Doxygen é um sistema  open-source para a geração de documentação e referência de código, o doxygen realiza a documentação de diversas linguagens como C#, C++, Java e etc. A documentação é gerada a partir de marcadores inseridos no próprio código-fonte.

Escolhi este sistema pelos motivos acima e por ser amplamente utilizado e documentado pela comunidade.

Leia mais

Carregando e utilizando plug-ins em C#

Este post demonstra como criar uma aplicação em C# que possibilite a interação com plug-ins. O método demonstrado é bastante simples e poderoso.

Este método realiza os seguintes passos:

  • Lista todas as Dlls em um diretório (plugins)
  • Carrega todos os assemblies deste diretório
  • Verifica se o tipo do assembly é o desejado
  • Cria a instancia do tipo que implementa e armazena em uma lista

Leia mais

Barrel and pincushion distortion

Distorção em barril (barrel distortion) ocorre quando a ampliação no centro da lente é maior do que nas extremidades. Lentes olho de peixe (fisheye) produzem este tipo de distorção em resultado de uma cena hemisférica a ser projetada sobre uma superfície plana.

O inverso da distorção em barril é conhecido como pincushion distortion ( distorção almofada de alfinetes) ou inverse barrel distortion.

Para ilustrar estes 2 tipos de distorção vamos utilizar uma imagem com gradeado. Ao lado esquerdo tem-se a imagem original seguida dos efeitos barrel e pincushion respectivamente.

A motivação deste post foi não encontrar nenhum algoritmo interessante para C# (CSharp) realizando estas duas distorções, desta forma após realizar algumas leituras pela internet, e achar muitas formulas que não funcionavam ou estavam incompletas, resolvi criar meu próprio algoritmo. Neste post não entrarei em detalhes do algoritmo, mas somente na forma de utilização final dele, porém o código dele está completo e funcional abaixo.

Leia mais

Assinando digitalmente aplicativo JAVA com CA Windows

O Objetivo deste post é demonstrar como realizar a assinatura de um aplicativo JAVA utilizando uma Autoridade Certificadora (CA) Windows.

Motivação

Em um ambiente corporativo com infraestrutura de domínio e Active Directory já existe uma autoridade certificadora e todos os membros do domínio já confiam nos certificados assinados por esta CA. Desta forma facilita o trabalho de publicação do aplicativo e confiança da assinatura digital deste.

Leia mais

Criando CAPTCHA com C#

CAPTCHA é um acrônimo da expressão “Completely Automated Public Turing test to tell Computers and Humans Apart” (teste de Turing público completamente automatizado para diferenciação entre computadores e humanos): um teste de desafio cognitivo, utilizado como ferramenta anti-spam evitando que aplicativos automatizados realize post em formulários sem uma interação humana.

Um tipo comum de CAPTCHA requer que o usuário identifique as letras de uma imagem distorcida, às vezes com a adição de uma sequência obscurecida das letras ou dos dígitos que apareça na tela.

Tendo como base essa descrição retirada do Wikipédia (http://pt.wikipedia.org/wiki/CAPTCHA), irei demonstrar como implementar um CAPTCHA utilizando C#.

Este código gera o CAPTCHA conforme os exemplos abaixo

Leia mais

Convertendo relatório Zenmap (nmap) para Excel com C#

O objetivo deste aplicativo é converter o arquivo gerado pelo Zenmap (Nmap) para uma planilha do excel.

O Aplicativo tem como entrada o arquivo XML do zenmap e gera um arquivo XML com um padrão reconhecido pelo Excel.

Método de utilização:

ZenNmapToExcel.exe [arquivo_zennmap.xml]

Segue o aplicativo compilado bem como o código fonte em C# ZenmapToExcel.