Postagens

Audacity, o pequeno e leve, mas poderoso, gravador e editor de áudio

Imagem
Após alguns anos utilizando o Audacity para edição de áudio em gravações caseiras (e na minha igreja), resolvi publicar algumas dicas de uso do mesmo pela experiência adquirida. São gravações ao vivo direto do microfone do gravador, não são gravações diretas no Audacity, mas algumas dicas se aplicam. O objetivo não é exaltar o Audacity como melhor, existem excelentes alternativas no mercado de softwares também gratuitos (ou quase - como o Reaper), mas achei o Audacity mais direto para o que eu preciso sobre pós-produção pelos anos de uso como audiófilo amador. No meu caso o contexto de gravação induz ao áudio gravado ser saturado pela proximidade do PA e pressão do som em excesso pelo volume e sons mais graves, sendo assim fui "lapidando" algumas dicas e parâmetros para aplicar a esse contexto, adeque ao seu. As dicas não fazem milagres do tipo transformar uma gravação totalmente distorcida em uma gravação "de CD", isso porque não dá para tratar som saturad...

NHibernate + Fluent - Referência nula ou com chave estrangeira inválida

Recentemente esbarrei com uma situação de mapeamento de um banco de dados que possui uma tabela com um campo que é chave estrangeira com referência em outra tabela, só que esse valor pode não existir ou ser nulo. Contextualizando a situação: Tabela1 Campo1PK Campo2 Campo3FK (ref. Tabela2) Tabela2 Campo1PK (referência para o campo Tabela1. Campo3FK  ou qualquer outra tabela) Campo2 Até aí nada demais, mas então por um motivo ou outro o campo Tabela1.Campo3FK é do tipo "solto", ou seja, você pode colocar o valor que quiser que não há Integridade Referencial, ou seja, você coloca o código 4, quando não existe o registro em Tabela2.Campo1PK  com mesmo código, mas não há nada que critique essa falta. E aí, como mapear? O NHibernate numa situação dessa gerará/levantará uma exceção. Simples, digamos que a classe/tipo de domínio da Tabela2 se chame Tabela2Type, então na sua classe de domínio Tabela1 existirá algo como: public   virtual   Tabela2Type Ta...

What, Why and How About SignalR

Imagem
By  Abhishek Goswami ,  www.c-sharpcorner.com December 1st, 2013 What is SignalR We know very well how a client sends data to a server so now it's time to understand how a server pushes data to a client in a HTTP connection. SignalR is an open source library to add real-time web functionality in your ASP.Net web application. So what does real-time functionality mean? Just use as an example when more than 1 user is working on the same document in Google Documents When a user is making changes and at the same time another user can see the changes without reloading the page. So real-time web functionality is the ability to have server code to push content to connected clients. In the HTTP request response model we know each time we need to send a new request to communicate with the server but SignalR provides a persistent connection between the client and server. It can be easily scaled out via SQL Server, Redis or a service bus (scale out means adding more serv...

Google Drive com erro de violação de chave primária

Imagem
Apenas para registro, achei o fato interessante quando o Google Drive deu esse erro estranho de violação de chave primária há algum tempo atrás.

Análise de cartões micro SD de 8GB Multilaser, Sandisk e Kingston

Há algum tempo precisei comprar cartões de memória do tipo micro SD para uso no meu tablet, no celular e para uma câmera digital. Encontrei em uma loja aqui perto 3 marcas de cartões, Multilaser, Sandisk e o Kingston. Não vou entrar em detalhes técnicos, mas realmente fico devendo informações da especificação e modelo de cada um, só que não creio que interfira na avaliação pois são modelos equiparáveis pelo preço. A comparação não é do tipo um modelo "top" de um com um modelo "bottom" de outro, sendo que os testes demonstraram que as diferenças são da qualidade da marca. Os cartões foram formatados em FAT32 e foi usado o programa Crystal DiskMark versão 3.0.2 para avaliar o desempenho, o mesmo foi configurado para teste com 100 MB em 3 passagens, apenas o teste de leitura e gravação sequencial. Sistema operacional usado Windows 8 64 bits. Multilaser: Sequential Read :    17.421 MB/s Sequential Write :     4.036 MB/s Kingston: Sequential Read :   ...

NHibernate + Fluent :: Mapeamento de campo varchar com valor separado por caracter com conversão em propriedade de coleção no domínio automaticamente

Trabalhando em um projeto recente esbarrei na seguinte necessidade, um campo "varchar" na tabela XPTO possuirá conteúdo no seguinte formato: 65;78;21;6;98 É um caso bem conhecido, algo que em um banco de dados normalizado se transformaria em uma agregação, mas que nesse específico o conteúdo são as chaves estrangeiras para uma tabela separadas por ; (ou qualquer outro separador de valor) gravado em um campo na tabela. A solução mais comum para esse tipo de caso seria tratar em um DTO , Model ou semelhante o retorno de uma propriedade com a coleção, um array por exemplo, após a leitura do campo que contém a lista concatenada.  Usando Fluent e NHibernate (não testei sem Fluent) temos uma maneira mais direta e elegante de fazer o mesmo. Na classe de mapeamento definimos a seguinte regra: Map(x => x. PropriedadeDaColecao ,  " CampoComAListaConcatenada " ).CustomType( typeof ( string )).Access.CamelCaseField( Prefix .Underscore); Na classe de domí...

Android :: Quickoffice e os Caçadores dos 10GB Gratuitos

Imagem
Por volta do dia 23 de setembro li um artigo interessante via feed, que a Google, que já havia comprado a suíte para escritórios para Android chamada Quickoffice a tornaria gratuita, mas o melhor, que até o dia 26 quem baixasse e ativasse com sua conta Google ganharia 10 GB de graça por 2 anos nos serviços que compartilham o armazenamento (Gmail, Drive, Picasa e etc). Bem, como costumo baixar softwares da loja Google para avaliação, apesar de já ter uma suíte office comprada, e muito boa diga-se de passagem, resolvi fazer o teste, obviamente um dos objetivos era ter os 10 GB a mais, como tal fato não ocorreu até a semana seguinte deixei pra lá e imaginei que não ocorreria, que foi apenas um golpe publicitário. Até que hoje, dia 7 de outubro, ao entrar no Gmail vejo o tamanho estendido, e acessando a opção para verificação os planos de armazenamento vejo o seguinte: Então, ora, vejam, não foi golpe publicitário, simplesmente a Google apenas colocou num "pool" de serviç...