Postagens

Mostrando postagens com o rótulo Básico

6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr...

Obtendo e formatando datas no .Net com C# e Iron Python

Formatos para obter a data: 1.  Use dd para obter simplesmente o dia 2. Use ddd para obter um nome curto para o dia  3. Use dddd para obter  o nome completo do dia 4. Use MM em maiúsculo para obter o mês 5. Use yyyy para obter o ano com 4 dígitos 6. Use hh para obter as horas 7. Use mm em minúsculo para obter os minutos 8. Use ss para obter os segundos Código no C# para imprimir a data (no console) using System; using System.Text; namespace TesteDatas { class FormatoData { static void Main(string[] args) { Console.WriteLine("Current Date and Time:"); Console.WriteLine(System.DateTime.Now); Console.WriteLine("Data: {0:dd}", System.DateTime.Now); Console.WriteLine("Dia: {0:ddd}", System.DateTime.Now); Console.WriteLine("Dia Longo: {0:dddd}", System.DateTime.Now); Console.WriteLine("Data Completa: {0:dddd - dd \\de MMMM \\de yyyy - hh:mm:ss}"...

Quebras de linha no Delphi 2010

Imagem
Alguns tem me perguntado sobre quebra de linha no Delphi 2010, o que está dando de errado. Antes de falar sobre isso, precisamos saber como funciona a quebra de linha. No sistema ASCII (caracteres de um byte) a quebra de linha nos sistemas gnu linux / unix é feita somente com o caracter #10 (ou \n line feed  - LF para os íntimos). Já para sistemas windows a quebra é feita com #13#10 ou CR\LF. Há ainda mais um agravante: assim como no GNU linux e unix o #10 sozinho é considerado como quebra de linha, há também alguns sistemas onde o #13 sozinho é considerado como quebra de linha. Então, alguns editores, como o  notepad++  interpretam tanto o #10 isolado como o #13 isolado como quebras de linha, bem como a dupla #13#10, para atender a todas as demandas. O #13 ou \r é chamado de Carriage Return (CR) e o #10 ou \n é chamado de Line Feed (LF). Nas impressoras matriciais e maquinas de escrever elétricas antigas, para se pular uma linha e se escrever na linha de baixo, e...

Abrindo e fechando uma página web com o Delphi

É possível executar um browser com WinExec ou ShellExecute para abrir uma página web, mas o que eu vou mostrar aqui é como usar um objeto OLE para criar uma instância de um IE, abrindo ele na página desejada e depois fechando. Isso pode ser aplicado, por exemplo, em totens ou lan houses onde o acesso ao browser e suas funções, ou até mesmo o acesso a páginas é restrito. Para isso vamos usar um vetor de 10 posições de variant, mas você pode usar uma lista ou pilha, fique a vontade para usar a imaginação. Esse vetor será responsável por controlar as instâncias do IE abertas e executar operações sobre elas. Você pode fechar na ordem que foi aberto, fechar pelo índice ou fechar todas varrendo o vetor, quando esgotar o tempo do usuário, por exemplo. Coloque em um formulário um edit (para digitação da url) e dois botões. O código ficará assim: unit abreFecha; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Comobj; ty...

Primeiras impressões com Python

O Python é uma linguagem interpretada, dinâmica e multi-plataforma. Roda em qualquer máquina que contenha o seu runtime. É possível "compilar" um programa em python  de modo que ele se transforme numa espécie de bytecodes, de tamanho menor, interpretado mais rapidamente pelo runtime. Nesses aspectos ele é semelhante a linguagens como Java, PHP e Ruby. Você pode usar a GTK ou a API do windows para gerar programas desktop com o python, onde é possível ter janelas, botões etc. Mas o python é muito forte também ( e me arrisco a dizer : principalmente) na web. Web Servers como o Apache tem módulos que interpretam python, e ele pode ser assim usado como linguagem para páginas dinâmicas. Há frameworks que facilitam essa tarefa, como o Django , que contém uma série de classes para se criar sites dinâmicos e bem elaborados. Há inclusive redes sociais feitas com essa dupla. Vou começar aqui um pequeno tutorial de Python e falar das minhas primeiras impressões com a linguagem. Uma...

Criando um cronômetro no Delphi

Imagem
Esse é um post básico, destinado a quem está iniciando a programação em Delphi ou Lazarus. Vamos criar um cronômetro. Um cronômetro deve marcar horas, minutos, segundos e milésimos de segundos. Deve ter um botão para iniciar, um para parar e outro para zerar. Crie a form preta com um label vermelho e três botões, e deixe-a como a figura acima. Coloque também um TTimer e deixe a propriedade interval em 1 milissegundo e a propriedade enabled como false, para ele começar desligado. O DFM/LFM ficará assim: object frmvisor: Tfrmvisor Left = 405 Top = 209 BorderIcons = [biSystemMenu, biMinimize] BorderStyle = bsDialog Caption = 'Cron'#244'metro' ClientHeight = 102 ClientWidth = 314 Color = clBlack Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False SnapBuffer = 1 OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object lbTempo:...

Atualize seu Navegador

Imagem
Amigos blogueiros, developers, escritores e interneteiros: o Firefox está na versão 3.6.9, com a versão 4 beta saindo do forno, e o Chrome está firme e forte na versão 6. Não existe motivo para você arriscar ser invadido ou roubado por causa de um navegador desatualizado. E para você blogueiro, Web Developer ou Web Master, está na  hora de fazer sites compliantes com os padrões internacionais do W3C e tentar forçar o usuário a abandonar os navegadores velhos. Para isso apresento-lhes a barra e selo da campanha "Atualize Seu Navegador". O código se divide entre um selinho e um script que gera uma barrinha de alerta, como mostrado a seguir: Barrinha <!-- barrinha de campanha atualize seu navegador --> <script type="text/javascript" src="http://updateyourbrowser.net/asn.js"> </script> <!-- fim barrinha --> Selinho <!-- banner de campanha atualize seu navegador --> <a href="http://updateyourbrowser.net/" t...