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.
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
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.
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!
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
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.
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.
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; } } }
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.
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.
28 de maio de 2012