Para realizar commit e deploy automático no Heroku, utilizo o seguinte script:
git add .
git commit -m "Automatic Commit"
git push heroku master
Posted by Luiz Picanço | Posted in .Net, C# | Posted on 28-05-2010
2,054
Estava precisando remover a acentuação e os caracteres especiais do nome de um arquivo. Para isso, desenvolvi um extension method para a classe String.
Exemplo:
String de entrada:
Adobe Acrobat – Pacy-Paraná_05.12_áèïôúã+.pdf
String de retorno:
AdobeAcrobatPacyParana_05.12_aeioua.pdf
Desenvolvi o método utilizando uma HashTable e expressão regular. Caso você tenha alguma sugestão de melhoria, poste aí nos comentários.
Extension method:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| public static String RemoveSpecialCharacters(this String self)
{
var normalizedString = self;
// Prepara a tabela de símbolos.
var symbolTable = new Dictionary<char, char[]>();
symbolTable.Add('a', new char[] {'à', 'á', 'ä', 'â', 'ã'});
symbolTable.Add('c', new char[] { 'ç' });
symbolTable.Add('e', new char[] { 'è', 'é', 'ë', 'ê' });
symbolTable.Add('i', new char[] { 'ì', 'í', 'ï', 'î' });
symbolTable.Add('o', new char[] { 'ò', 'ó', 'ö', 'ô', 'õ' });
symbolTable.Add('u', new char[] { 'ù', 'ú', 'ü', 'û' });
// Substitui os símbolos.
foreach (var key in symbolTable.Keys)
{
foreach (var symbol in symbolTable[key])
{
normalizedString = normalizedString.Replace(symbol, key);
}
}
// Remove os outros caracteres especiais.
normalizedString = Regex.Replace(normalizedString, "[^0-9a-zA-Z._]+?", "");
return normalizedString;
} |
Posted by Luiz Picanço | Posted in ActionScript, AIR, LifeHack | Posted on 23-05-2010
2,096
O Webcam Life Log é um utilitário que tira fotos com a webcam, em um intervalo de tempo definido. Desenvolvi ele utilizando o Adobe AIR.
Para instalar, basta clicar na imagem abaixo.
Please upgrade your Flash Player
This is the content that would be shown if the user does not have Flash Player 6.0.65 or higher installed.
Screenshot:

O código-fonte está disponível no google code:
http://code.google.com/p/webcamlifelog
Posted by Luiz Picanço | Posted in .Net, C# | Posted on 09-04-2010
3,044
O Castle ActiveRecord é uma implementação do padrão homônimo feita em cima nHibernate. Um ORM bastante conhecido no mundo Java. Apesar de alguns comportamentos serem realizados pelo nHibernate, estarei aqui citando o ActiveRecord como responsável por tais comportamentos.
Um problema muito comum que eu costumo me deparar, é com a utilização de lazy loading no ActiveRecord.
Geralmente na utilização de lazy loading em aplicações web, é utilizado o padrão Session per Request para o SessionScope. Só que por padrão, o ActiveRecord persiste automaticamente (em algumas situações) as entidades, mesmo que seus métodos Save ou Update não tenham sido invocados. Isso costuma gerar uma série de problemas, como por exemplo, entidades com o seu estado interno inválido sendo persistido.
Para resolver esse problema, deve ser especificado o FlushAction como Never:
1
| SessionScope session = new SessionScope(FlushAction.Never); |
Assim, o ActiveRecord não irá mais persistir automaticamente as entidades. Em contrapartida, mesmo invocando os métodos Save ou Update as entidades não serão persistidas. Para que isso ocorra, será necessário utilizar os métodos SaveAndFlush e UpdateAndFlush, respectivamente, ou utilizar o método Flush da instância do SessionScope.
Posted by Luiz Picanço | Posted in Ruby, Ruby on Rails | Posted on 21-02-2010
4,988
Um erro muito comum que costuma acontecer no ruby/rails, em ambiente windows é: “LIBMYSQL.dll is missing from your computer”

E a mensagem também pode aparecer no console da seguinte forma:
ruby.exe - Unable to locate Component
This application has failed to start because LIBMYSQL.DLL was not
found. Re-installing the application might
fix this problem.
Esse erro ocorre porque a dll do mysql, LIBMYSQL.dll, não foi localizada. Para resolver esse problema, faça o seguinte:
1 – Instale a gem do mysql
2 – Copie o arquivo LIBMYSQL.dll do diretório bin do mysql(ex.: c:\mysql\bin) para o diretório bin do ruby (ex.: c:\ruby\bin)