Postagens

Mostrando postagens de 2015

Linux é melhor que Windows (não é legal promover às custas de informações errôneas)

Recentemente li um artigo que há algum tempo não lia, um daqueles para incitar guerrinhas que não levam a nada, em contexto Linux versus Windows. Resumindo minha opinião, s inceramente, um artigo como todos os outros até então, para tentar enaltecer o que é bom no Linux tenta denegrir o que não é fato na concorrência, quer dizer, Windows (citou OSX só por engano eu acho). Ninguém quer saber o que o Windows não fazia, ou o que demorou X anos para fazer nativamente, mas sim o que faz. Não vai ser assim que vão conseguir evangelizar potenciais usuários do Linux pois os que utilizam hoje o Windows sabem que há muito tempo não é desse("s") jeito("s") que ele se comporta como diz a comparação. Abaixo o texto original, no final meus comentários. Por que mudar para o Linux, parte 1 http://canaltech.com.br/ materia/linux/por-que-mudar- para-o-linux-parte-1-54927/   "Entender “Linux” como um sistema operacional único é tão reducionista quanto enca...

Quem precisa de Evernote? Google Keep X GNotes X Tasks (Tarefas)

O objetivo não é comentar sobre os citados esquecendo das tantas ferramentas que existem no mercado, mas sim uma crítica sobre o assunto, que para muitos existe apenas o Evernote como único insubstituível, bem como algumas ferramentas que efetivamente testei Task agrega as funções do "Tarefas" do Google e incorpora alguns outros. Task/Tarefas Sincroniza com o "Tarefas" do Google. Checklist hierárquica. Lista de tarefas separadas ao invés de uma monte de checklists amontoadas. Lembretes. Anotações avulsas. Alteração da ordem de exibição. GNotes Prático para anotações de todos os tipos (mais que o Google Keep). O banco de dados é o seu próprio e-mail do Gmail com um marcador Notes. Também tem um banco de dados próprio na nuvem. Nunca testei a interface web. Função de checklist é muito básica, melhor nem comparar. Google Keep Interface web e móvel ótimas. Interface Android tão boa quanto a web. Todos os tipos de notas podem ter cores diferent...

Tabela de acentos em JavaScript

Quem trabalha com desenvolvimento em Javascript de vez em sempre precisa utilizar frameworks de terceiros (ExtJS, Bootstrap, Jquery, AngularJS, DevExtreme e outras) ou mesmo construir uma própria código nativo. Sobre acentuação, em alguns casos a meta tag charset pode não ser suficiente para corrigir problemas de textos exibidos ao usuário com caracteres estranhos. Para a situação citada você pode substituir os acentos por códigos. Abaixo uma tabela com os tais caracteres e os seus substitutos: á = \u00e1 à = \u00e0 â = \u00e2 ã = \u00e3 ä = \u00e4 Á = \u00c1 À = \u00c0 Â = \u00c2 Ã = \u00c3 Ä = \u00c4 é = \u00e9 è = \u00e8 ê = \u00ea ê = \u00ea É = \u00c9 È = \u00c8 Ê = \u00ca Ë = \u00cb í = \u00ed ì = \u00ec î = \u00ee ï = \u00ef Í = \u00cd Ì = \u00cc Î = \u00ce Ï = \u00cf ó = \u00f3 ò = \u00f2 ô = \u00f4 õ = \u00f5 ö = \u00f6 Ó = \u00d3 Ò = \u00d2 Ô = \u00d4 Õ = \u00d5 Ö = \u00d6 ú = \u00fa ù = \u00f9 û = \u00fb ü = \u00fc Ú = \u0...

Monitorando ataques a aplicações Web em ASP.NET

O artigo é apenas um esboço inicial do artigo, em outra oportunidade atualizarei com código em C# de exemplo. As aplicações que desenvolvi para clientes possuem um mecanismo de l og que implementei que também detecta erros na requisição de rotas ASP.NET MVC , além de erros de aplicação, validações, regras de negócio e outros. Inicialmente quando pensei em fazer isso não imaginava que seria útil para outrs fins, de vez em quando recebo e-mails de requisições de tentativas fúteis em encontrar falhas de segurança na aplicação. Fúteis pois são como tiro no escuro numa sala vazia, ou seja, nunca acertará ninguém, tentam explorar falhas de frameworks ou aplicações em JSP ou PHP. Recentemente recebi os seguintes erros: Error: The controller for path ' /testproxy.php ' was not found or does not implement IController. Error: The controller for path ' /menuBcm.js ' was not found or does not implement IController. Error: The controller for path ' /web-console/Ser...

Gestão de Projetos x Gestão de Pessoas (reprodução)

Reprodução de um artigo que achei interessante e retrata uma realidade na minha área de atuação. Ao final faço um comentário. " Por Renato Lopes* Todo Gestor, seja ele de TI ou não, deveria fazer como segunda faculdade o curso de psicologia. Ou pelo menos fazer um ano de terapia antes de assumir essa função. Afinal, para entender o próximo é preciso entender a si mesmo. O resultado disso são ações muito mais estratégicas e com resultados surpreendentes. Explico. Imagine um Gestor de TI com um projeto em mãos, data limite para entrega e com uma mensagem subliminar enfatizando a importância do cumprimento dessa data e sem a mínima hipótese de adiamento. Projeto em mãos é hora de delegar as tarefas. E é nesse ponto que se pode definir o sucesso ou o fracasso de sua execução. Passar a tarefa certa para a pessoa certa é mais que um feeling, é um conhecimento amplo da equipe e específico de cada membro dela. O gestor, além das tarefas, deve prestar atenção na ação d...

LINQ :: Select().Max() considerando retorno que pode ser nulo

Para quem desenvolve sistemas e trabalha com LINQ  e banco de dados, pode existir uma situação em que seja necessário fazer o que utilizando SQL convencional seria um SELECT MAX(campo), sendo que normalmente campo uma chave primária (particularmente eu trabalho com PKs identity ou sequences). O objetivo é simples, encontrar o maior valor para um determinado campo. A sugestão utilizando LINQ  é algo como: decimal  consultaId =  ContextoBD .Query< TipoDominio >()     .Select(x => ( decimal ?)x.Id)     .Max() ?? 0; var  maiorId = (consultaId + 1); return  ( int )maiorId; Mas então a pergunta, "qual o detalhe do código, não seria óbvio só utilizar o método Select() e então Max() diretamente para uma variável Int?". Só que isso não funciona em todos os casos! O detalhe no código acima está em utilizar um tipo decimal como retorno com um cast nuláv...

Seu apartamento vale um produto Apple? (ou "troco Apple Watch por um pulmão")

"Pense num inutilitário, achou o Apple Watch, por mais contrário que isso seja para os fanboys." Inutilitário para a maioria das pessoas, e não necessariamente apenas o smart watch da Apple. Essa massa de pessoas já trocou os relógios de pulso por um celular há muito tempo hoje compra um smart watch tentando achar um objetivo, forçadamente tenta, mas é difícil ver algo que não seja tão banal quanto as "smart bands" que apenas exibem horas e contam passos (e outras frescuras só para alertar o usuário a pegar o celular para ver detalhes). Não estou falando sobre um determinado programa muito legal que rode no seu revolucionárioeinovador aparelho de pulso do futuro, mas se realmente vai encontrar utilidade prática no dia-a-dia para ele que justifique te-lo. O problema da Apple é cobrar - a preço BrasilPT - 2.900 reais a 135.000 reais, isso é irreal mesmo no Brasil, ainda mais sabendo que vai estar mesmo é pagando por versões de pulseiras e a caixa do relógio, ...

IIS Express - resolver problemas de cache

Quem desenvolve com o Visual Studio deve, em algum momento, ter esbarrado com algum comportamento estranho do IIS Express após alguma mudança de arquivos do projeto fora do contexto do Visual Studio. A solução que encontrei foi a exclusão do site no IIS Express para que seja posteriormente criado pelo Visual Studio, assim como da primeira vez. $appCmd = "C:\Program Files (x86)\IIS Express\appcmd.exe" $result = Invoke-Command -Command {& $appCmd 'list' 'sites' '/text:SITE.NAME' } for ($i=0; $i -lt $result.length; $i++) { Invoke-Command -Command {& $appCmd 'delete' 'site' $result[$i] } } Esse snippet exclui todos os sites, mas pode ser facilmente adaptado para um apenas.

Problemas Google :: utilizar ou não o Google Drive e Chrome?

Sempre fui um evangelizador das ferramentas do Google, mas há algum/bom tempo tenho ficado com um pé atrás devido especificamente à queda da qualidade dos softwares clientes para Windows e algumas "inconsistências" dos serviços. Pesquisando em fóruns vi não sou o único com críticas. Google Drive O cliente para Windows tem sérios problemas de excesso de uso de memória, acesso a disco e processamento. Passei por tais problemas a ponto de não conseguir sincronizar uma conta que não sincronizava há um certo tempo com um notebook que estava parado. Problema tão grande que simplesmente precisei eliminar conteúdo do drive e dividir o sincronismo em lotes - ATÉ QUE FINALMENTE CHUTEI O BALDE E DESISTI DO GOOGLE DRIVE. Segundo problema, e que descobri quando migrava para outro serviço de drive virtual , os arquivos de planilhas e documentos - .gsheet e .gdoc - são apenas links, não possuem conteúdo. Há algum "limbo" em que o conteúdo do arquivo é realmente guardado, ...

Americanizando palavras em português pelas metades

Me chamem de chato, podem chamar...mais, mais...ok,  mas é difícil engolir palavras adaptadas forçadamente como "embeda", "taggeadas", e ainda "postadas", porque não citar outra mais antiga como "deletar". Vamos traduzir: "embeda" = embute. "taggeadas" = marcadas. "postadas" = publicadas. "deletar" = excluir. Se é assim então porque ao invés de "marcação" não utilizar "taggeação"? "postadas", está aí outra palavra, esta originada de "post". Porque não vemos alguém escrever "As postações foram bem aceitas no blog."? "deletar" já entrou na cabeça de um monte de gente, então porque ninguém escreve algo como, "No Brasil há muita deleção social." Comentei após ler tantos artigos com esse tipo de conteúdo, o último em  http://canaltech.com.br/dica/instagram/koredoko-marque-uma-foto-no-instagram-em-um-local-onde-voce-nao-esta-ma...

Audacity - versão 2.1.0 e sua grande novidade

Imagem
Apenas um copy-paste sobre a release... Resumindo a grande novidade que ainda não testei, aplicação de efeitos em tempo real , ou melhor, audição em tempo real visto que antes tínhamos que aplicar numa amostra para ter noção de como ficaria no todo e então aplicar em todo o trecho, o que algumas vezes é bastante demorado. Agora próximo check a aguardar é o suporte nativo a ASIO. Ok, Reaper e outros programas pseudo-gratuitos também tem isso há tempos, mas o objetivo da publicação não é comparar, de qualquer maneira, o Audacity serve para alguns propósitos e um dos motivos é ele ser mais leve, realmente gratuito, além da interface limpa e direta nas funções, seja por bem, seja por mal. 29 de março de 2015: Audacity 2.1.0 Released Audacity 2.1.0  replaces all previous versions. For a long time, we have wanted Real-Time Preview for effects. It seemed nearly unachievable without major restructuring. But with Audacity 2.1.0, we have it in  LADSPA, VST, and Audio Un...

Compra no Deal Extreme - Correios = Atraso na entrega = Não localizado no fluxo postal

Imagem
INTRODUÇÃO Esta é apenas uma "avaliação" sobre como foi minha saga com uma compra na Deal Extreme e nosso monopolizante sistema de encomendas/entregas chamado Correios. Fiz uma compra no Deal Extreme, a primeira, meio que para fazer um teste já foi coisa pequena e barata, e também aproveitar o frete gratuito, queria comprar umas bugigangas a 1/3 - ou mais - do valor encontrado localmente. Tudo foi bem tranquilo e rápido. LINHA DO TEMPO Comprei no dia 5 de dezembro de 2014 e no dia 10 já haviam despachado. Despacho oficial para o Brasil: 10 de dezembro às 23 horas  com o número do rastreamento dos Correios, que só entra no sistema alguns dias depois, vai entender porque, visto que de fora para dentro do Brasil é mais rápido que quando a encomenda chega no país e fica passeando por cidades e estados. Agora resumindo a situação quando o rastreamento ficou ativo: Dia 19/12 entrou no sistema dos Correios. Dia 26/12 chegou ao Brasil. Dia 9 de ...

Removendo a Chave de Licença do Visual Studio 2013 do Registry

Imagem
Há uma situação que pode ser mais corriqueira do que imaginamos que não fosse. A gente baixa uma versão trial, RC ou outra do Visual Studio, utiliza uma chave de licença temporária, então no futuro compramos uma licença e precisamos trocar tal chave, mas o Visual Studio não habilita a opção para tal. Depois de garimpar um pouco verifiquei que uma parte da solução é o que  se lê em vários blogs, apagar uma certa chave no Registry do Windows, o problema é qual é essa chave, pois isso varia. Algumas publicações afirmam que basta apagar a chave XPTO1-XPTO2-XPTO3-XYZ do Registry que tudo será resolvido, só que essa chave não é única. Bem, a melhor maneira de remover a chave utilizada é pelo Process Monitor do SysInternals. Após baixá-lo basta executar pois não precisa instalar. Sugiro aplicar um pequeno filtro para achar mais facilmente o que precisa na lista processos monitorados. Então execute também o Visual Studio e vá na opção sobre o registro da licença que ele ir...

Login em uma URL com redirecionamento para outra após a autenticação

A necessidade é bem simples, autenticar num site web e então após isso redirecionar para outra URL. O fato esperado é que após ocorrer o submit para a URL da action o contexto da página corrente não existe mais, claro, então rotinas colocadas por exemplo no evento "onsubmit" do form não funcionarão. Pelo mesmo motivo quaisquer rotinas a serem executadas por um setTimeout() na página também não serão executados, que foi um caso que tentei, um timer local considerando que se passaram X segundos e que nesse período a autenticação ocorreu. Além desse problema de contexto alterado houve ainda problemas sobre CORS quando tentei utilizar um código mais limpo com XMLHttpRequest fazendo o POST para a URL da action, então a solução mais simplista e funcional foi: Copiar o HTML original da página de autenticação. Pré-preencher os valores de usuário e senha. Simular o clique no botão, na verdade não o método click, mas o método submit. Meta tag para fazer o redirecionamento pa...

Google Chrome e a extensão Streamus [DESCONTINUADA]

Imagem
https://chrome.google.com/webstore/detail/streamus/jbnkffmindojffecdhbbmekbmkkfpmjd?hl=pt-BR Streamus é uma extensão muito interessante para o Google Chrome, não pela função básica, tocador de stream, para isso há vários, que alias a maioria é confuso e fraco em vários critérios. Ele não é um tocador de vídeos do Youtube, sua principal fonte de conteúdo, mas um tocador do áudio  de vídeos. Quais as vantagens e funções que eu mais utilizo: Você configura suas playlists num computador (Chrome) e a mesma fica disponível em outros. A interface é enxuta e direta nas funções propostas - algumas poucas funções estão em menus de contexto. Possui atalhos de teclado. Pesquisa fácil e rápida no Youtube - chega ser até viciante ficar procurando coisas para ouvir. Gerenciamento de playlists bem fácil. Você pode colar uma URL de uma lista do Youtube que a mesma será incorporada. Também pode colar a URL de um vídeo que o mesmo será exibido na lista. Compartilhament...

Editor WYSIWYG - Colando uma imagem da área de trabalho no Chrome

Quem trabalha com desenvolvimento web provavelmente já precisou implementar um "editorzinho" de textos básico com formatação (negrito e etc, alteração de fonte e etc), o famoso editor no estilo WYSIWYG, quase um Word. :) Existem diversas soluções no mercado que podem ser integradas a projetos de terceiros e eu creio que uma das mais completas seja o CKeditor, no meu caso optei por algo mais enxuto, mas com o mínimo necessário além de um API que me atendesse, o SCEditor. Apesar de N tipos de editores, alguns muito simples, outros bem completos, todos os que vi funcionam com a mesma lógica de disponibilização da área que será editada, a definição da propriedade "ContentEditable=true" na tag HTML que então será a área do editor. ...então caímos no assunto da publicação, nem todos os browsers aceitam colar uma imagem no editor! Quando o usuário faz uma captura de tela pela tecla Print Screen ou com uma ferramenta (SnagIt por exemplo), a imagem fica na área de tr...

ASP.NET - WebApi e Cross-origin resource sharing (CORS)

Cross-origin resource sharing  ( CORS ) (ou  compartilhamento de recursos cross-origem ) é uma especificação de uma tecnologia de  navegadores  que define meios para um  servidor  permitir que seus recursos sejam acessados por uma página web de um domínio diferente. 1 Esse tipo de acesso seria de outra forma negado pela  same origin policy . CORS define um meio pelo qual um  navegador  e um  servidor web podem interagir para determinar se deve ou não requisições cross-origem 2  . É um acordo que permite grande flexibilidade, mas é mais seguro que permitir todos as requisições desse tipo. Quem trabalha no desenvolvimento de sistemas baseados em serviços (SOA) pode esbarrar por um problema que impede o uso de serviços criados serem consumidos por outras aplicações fora do mesmo domínio.  A minha situação é expor os Controllers, seus métodos da WebApi, para outros sistemas. Caso 1: uma aplicação desenvolvida para An...