Saltar para o conteúdo

Programando na Madrugada

Introducing Krate: A Rate Limiter Library for Kotlin

As a software developer, I’m always on the lookout for tools and libraries that can help streamline my projects and improve their overall efficiency. Today, I will share with you my latest creation, an open-source rate limit library for Kotlin called Krate! In this post, I’ll introduce you to Krate, explain its features, and show you how it can be a valuable addition to your Kotlin-based applications. What is Krate? Krate is a rate limiter library designed specifically for Kotlin applications. It provides a simple yet powerful solution for managing and enforcing rate limits in various types of applications, such as APIs, web services, or any other projects that require rate limiting to control request rates and protect your resources from abuse.

Ler mais →

8 de abril de 2023

Artigo sobre o Playlist Exchange no The Next Web

Saiu um artigo sobre o Playlist Exchange no The Next Web. O Playlist Exchange é uma ferramenta online para importação e exportação de playlists de música. How to save your Rdio playlists to Spotify and Apple Music while you still can

Ler mais →

18 de novembro de 2015

Workaround para o problema de checksum mismatch error do SVN

Existem casos onde os metadados de uma working copy do SVN fica corrompida e durante o commit, recebemos a seguinte mensagem: $ svn commit -m "Some update" svn: Checksum mismatch for '/home/me/dev/bionshare/FileServer.java'; expected: '77d5a3ce97ccff226dcdaaf07d5721f5', actual: '67d76735a0467d91c5ff733f98de451d' Existem algumas formas de resolver esse problema, como renomear o arquivo e depois restaurar o nome original. A forma mais rápida que eu encontrei foi essa: $ svn update --set-depth empty D FileServer.java Updated to revision 6544. $ svn update --set-depth infinity A FileServer.java Updated to revision 6544. Esses comandos restauram os dados de cache do arquivo com as informações do repositório.

Ler mais →

20 de maio de 2015

Contando palavras no SQL Server

Hoje precisei executar uma consulta no SQL Server que me retornasse a quantidade de palavras de uma coluna, agrupado pela palavra. Utilizei a consulta abaixo para fazer o serviço sujo: WITH Num1 (n) AS (SELECT 1 UNION ALL SELECT 1), Num2 (n) AS (SELECT 1 FROM Num1 AS X, Num1 AS Y), Num3 (n) AS (SELECT 1 FROM Num2 AS X, Num2 AS Y), Num4 (n) AS (SELECT 1 FROM Num3 AS X, Num3 AS Y), Nums (n) AS (SELECT ROW_NUMBER() OVER(ORDER BY n) FROM Num4), Words (word) AS ( SELECT SUBSTRING(' ' + descr + ' ', n + 1, CHARINDEX(' ', ' ' + descr + ' ', n + 1) - n - 1) FROM Nums JOIN (SELECT text FROM TweetMessages) AS F(descr) ON SUBSTRING(' ' + descr + ' ', n, 1 ) = ' ' AND n < LEN(' ' + descr + ' ')) SELECT word, COUNT(*) AS cnt FROM Words GROUP BY word ORDER BY cnt DESC Não é uma maravilha de performance, mas é bem útil!

Ler mais →

12 de abril de 2014

Importando um arquivo CSV para o SQL Server com BULK INSERT

Como importar um arquivo CSV para o SQL Server com BULK INSERT BULK INSERT CLIENTE FROM 'F:BULKDATACLIENTE.txt' WITH ( FIRSTROW = 2, -- Ignora o header FIELDTERMINATOR = ',', ROWTERMINATOR = 'n' ) GO

Ler mais →

15 de janeiro de 2014

Baixando o conteúdo de uma URL no PowerShell

Hoje precisei programar um job no SQL Server para baixar um arquivo de um site usando o powershell. O script que eu utilizei foi esse: $fileName = "c:tempfile.zip" $webclient = New-Object System.Net.WebClient $webclient.DownloadFile("http://siteparabaixararquivo/arquivo",$fileName) Um script muito simples que as vezes poder ser útil.

Ler mais →

10 de novembro de 2013

Removendo registros duplicados na base de dados

Script SQL simples para remover os registros duplicados de uma tabela: DELETE FROM Links WHERE ID NOT IN ( SELECT MAX(ID) FROM Links GROUP BY url ) Removendo os registros com urls duplicadas da tabela Links.

Ler mais →

1 de novembro de 2013

Indexando e buscando documentos com Lucene.Net e LINQ

Código de exemplo: using System; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; using Lucene.Net.Store; using Lucene.Net.Linq; using Lucene.Net.Linq.Mapping; using Lucene.Net.Analysis.Standard; namespace LuceneTests { [TestClass] public class LuceneTest { [TestMethod] public void TestIndex() { // Configura o Lucene. var luceneDir = Path.Combine(System.Environment.CurrentDirectory, "lucene_index"); if (!System.IO.Directory.Exists(luceneDir)) { lock (this) { System.IO.Directory.CreateDirectory(luceneDir); } } var directory = FSDirectory.Open(new DirectoryInfo(luceneDir)); var provider = new LuceneDataProvider(directory, Lucene.Net.Util.Version.LUCENE_30); // Indexa os Documentos. using (var session = provider.OpenSession<Document>()) { session.Add(new Document() { Title = "Hello", Content = "Hello Lucene!" }); session.Add(new Document() { Title = "Hi", Content = "Hi, Lucene!" }); } // Busca os documentos que contém a palavra "Hello" no título. var items = provider.AsQueryable<Document>() .Where(l => l.Title.Contains("Hello")); Assert.AreNotEqual(items.Count(), 0); } } class Document { [Field(Analyzer = typeof(StandardAnalyzer))] public String Title { get; set; } [Field(Analyzer = typeof(StandardAnalyzer))] public String Content { get; set; } } }

Ler mais →

28 de outubro de 2013

Como desenvolver para XNA no Windows 8

Por padrão, se você tentar instalar o XNA Game Studio 4.0 no Windows 8, você receberá uma mensagem de erro. Esse erro é devido a problemas de compatibilidade. A Microsoft prometeu uma nova versão do Windows Phone SDK que resolve esse problema, mas ainda deve demorar para sair. Uma maneira de contornar o problema é instalando o Games for Windows Marketplace Client. Após essa instalação, você poderá instalar o XNA Game Studio para utilizá-lo com o Visual Studio 2010. Infelizmente, o XNA Game Studio ainda não é compatível com o Visual Studio 2012.

Ler mais →

8 de outubro de 2012

Utilizando o Apple Wireless Keyboard no Windows

Sem dúvida alguma, o Apple Wireless Keyboard é um teclado sensacional. Adquiri recentemente um teclado apple wireless, para utilizar no meu hackintosh. Funcionou que é uma maravilha! Como estava tendo diversos problema de compatibilidade com o hardware, resolvi parar de utilizá-lo e montar uma estação Windows :/ Como queria utilizar o teclado com o Windows, utilizei o aplicativo Apple Wireless Keyboard, que além de fornecer uma boa compatibilidade, oferece uma opção de trocar as teclas Control Fn.

Ler mais →

28 de maio de 2012