Postagens

Mostrando postagens de 2014

Google "Nowlizando" - Integrações de serviços Google

Imagem
Quem usa o Google Now no Android já deve ter percebido que eles conseguem ler o conteúdo de alguns e-mails e interpretar em informação, por exemplo, compra de passagem aérea, assim exibindo o Card bonitinho no aparelho. Apenas para constar qualquer possível interferência, hoje o Google Now está desativado no meu celular. Até então só tinha visto no Android o recurso, então hoje fiz uma compra de passagem aérea, logo depois recebi um e-mail de que o evento foi adicionado automaticamente na minha Agenda (Google). Ao clicar no evento adicionado... Faltou apenas que alguma notificação fosse adicionada (não obedeceu às configuradas como padrão). Outros tipos de identificação automática de conteúdo de e-mail que ocorrem no Gmail: Vídeos enviados para o Youtube (aparece um link para visualizá-lo sem precisar abrir a mensagem). Compras feitas no DealExtreme (aparece um link para abrir direto o pedido).

Google Inbox - primeiras impressões

Imagem
Comentário de alguém, eu, que conseguiu ser convidado a testar. Achei o conceito ótimo, muito prático, e útil, mas a ferramenta, tanto no Android quanto na Web, ainda precisam evoluir para acompanhar o conceito na prática, até mesmo para não deixar que façamos algo errado sem querer. Pense num webmail que exibe uma Caixa de Entrada única com os e-mails agrupados, algo que o Gmail já faz, mas com conceito de ações e exibição evoluídos. Calma, as pastas estão lá, é só arrastar o mouse para a esquerda, tudo está lá, só que de forma diferente de se ver. Demora um pouco para acostumar, mas depois você ganha certa agilidade e não perde tempo lendo o que não precisa. Apesar disso eu sinto falta de algumas facilidades do Gmail (webmail). A idéia prática é que nem tudo o que você recebe você precisa ler naquele momento, então você vai ensinando ao software como agir e organizar (classificar em pastas/marcadores e categorias), e também toma ações sobre adiar assuntos (lembretes que ...

Teoria sobre a complexidade e a solução de um problema

A complexidade para a solução de um problema é inversamente proporcional à complexidade do mesmo. Será? Nem sempre! A maioria das vezes ?! O que torna um problema realmente complexo, grande, enorme? Algumas vezes vemos o problema como "enorme", complexo, podemos até demorar a chegar na solução, mas então quando descobrimos como resolver vemos algumas vezes que sua solução era mais simples do que imaginávamos. Há ainda o pensamento que, o tamanho do seu problema está relacionado ao nível de ansiedade que está sendo gerada em/por você, ou seja, o problema não é grande, você que pensa que ele o é. Então podemos teorizar que a grandiosidade de um problema envolve algumas variáveis em uma sentença como: Nível de conhecimento para entender o problema. Nível de conhecimento para executar uma solução proposta. O quão seu eu, suscetibilidade a ficar ansioso, estressado, você é para interferir no descobrimento da solução. "Tirai a pedra..."

Microsoft abraça o Open Source de verdade no desenvolvimento de aplicações

Após um bom tempo apenas cozinhando Open Source, parece que a Microsoft resolveu definitivamente abraçar a causa. .NET Foundation Projects Projects under the stewardship of the .NET Foundation currently include the .NET Compiler Platform ("Roslyn") as well as the ASP.NET family of projects, both of which were open sourced by Microsoft Open Technologies, Inc. (MS Open Tech). Xamarin has contributed several open source .NET projects, including the very popular Mailkit and Mimekit projects. We’re actively engaged in bringing many more projects into the foundation, see our blog for the latest announcements. Pick a project below to learn more about it and how to contribute: .NET Compiler Platform ("Roslyn") .NET Core 5 .NET Micro Framework .NET SDK For Hadoop ASP.NET Ajax Control Toolkit ASP.NET MVC, Web API and Web Pages (Razor) ASP.NET SignalR ASP.NET vNext Cecil Couchbase Lite for .NET Entity Framework 6 Kudu MailKit Managed E...

Atualização oficial do Android Kitkat para o Samsung Galaxy S4 mini LTE (i9195)

Imagem
Após a surpresa de ontem do meu cartão de memória queimar, outra hoje pela manhã, mas boa, finalmente chegou a atualização para o Kitkat versão 4.4.2. Quando conectei hoje pela manhã na rede sem fio lá em casa apareceu um aviso de atualização, na hora nem liguei, mas quando cliquei para ver dava para deduzir pelo tamanho que era o Kitkat.      Após a etapa de instalação o aparelho fez um reboot. Só um aviso inicial (pode não ter influência nenhuma), meu aparelho não está "rooteado". Foram cerca de 13 minutos do reboot até os 100% da atualização com o robozinho na tela em modo recovery. Após um novo reboot passando pelo processo normal de boot, os escritos Samsung S4 mini, Vivo (meu caso), então na logo Samsung demorou um pouco mais, até que apareceu a telinha padrão "Atualizando o Android" com o texto "Otimizando aplicativo x de 136.". Logo após outros escritos de como "Atualizando Contatos" e outros. Esse processo...

Samsung S4 mini - como capturar tela (snapshot/screenshot)

Não que seja uma convenção do Android embarcado pela Samsung ou do Android em geral na versão que está o meu até então, a 4.2.2, mas algumas combinações de teclas que pesquisei não funcionaram, no meu caso funcionou apenas esta. Basta apertar e segurar o botão para ligar/desligar e logo em seguida apertar e segurar o home , em torno de meio segundo depois ouvirá um som de foto tirando (se o som estiver habilitado) e piscar bordas brancas na tela para dizer que foi capturada. O arquivo ficará salvo na memória principal.

Samsung Galaxy S4 mini em modo desenvolvedor

Não pesquisei sobre ser uma forma padrão do Android 4.x para exibir as opções de desenvolvedor, tenho um tablet com o 4.0.1 que já vem com ela disponível por padrão. O processo é simples e irá habilitar um modo de desenvolvedor, por isso cuidado com o que for mexer lá, sugiro só mexer no que souber. Config | Mais | Sobre o dispositivo | Nº de compilação (toque e segure por alguns segundos nessa opção). Depois que soltar irá aparecer algo com o "você está a X passos para ...", então toque no "Nº da compilação" e solte, cada vez que fizer isso irá diminuir um contador e quando acabar o menu "Opções do desenvolvedor" irá aparecer na opção "Mais".

PetaPoco - Como mapear um relacionamento Many-to-Many (simulação de Lazy Load)

Há algum tempo estou utilizando a micro ORM PetaPoco para alguns projetos pessoais, a grande vantagem é o desempenho, liberadade e facilidade de implementação. Eu poderia utilizar Entity Framework ou NHibernate, que são mais parrudos e completos, e que inclusive uso em outros projetos, mas o objetivo é justamente descomplicar e deixar o funcionamento o mais leve possível. O objetivo deste artigo é exemplificar de forma simples e tornar fácil o entendimento de algo que garimpei na Internet e vi muitos artigos, bons, ruins, completos, incompletos, outros bem direitos, outros com muitos frufrus. Vamos exemplificar então, à começar com algumas definições básicas: View - uma view, oras, então temos Título e outras propriedades que a formam. Campo - é um elemento que compõe uma View.  CampoView - agregação de todos os Campos que compõem Views . Uma View exibe para o usuário um Campo para digitação de nome, outro para digitação de Valor e etc. Fazendo uma analogia para facili...

Desenvolvimento para Smart TVs LG

Imagem
Um post sem entrar em detalhes, apenas para abertura da discussão. Após adquirir em 2014 uma Smart TV LG, que diga-se de passagem sem querer foi a melhor opção desse nicho, percebi como há carência em softwares, mas ligado a isso também há ainda uma certa nebulosidade sobre o que desenvolver, qual mercado, quem iria comprar o que e para que, pelo menos aqui no Brasil. Então basicamente os softwares mais úteis hoje são aqueles que disponibilizam conteúdo para os usuários, assim sendo, Terra, Band, Netflix e outros tem os seus softwares, bonitos (ou poderiam ser) que às vezes escondem uma certa precariedade, mas funcionais, fazendo o seu papel que é prover conteúdo. Ah claro, Facebook não poderia faltar na lista. Já quebrei pau com o Telecine (alô Telecine!) por não disponibilizar uma versão do Telecine Play para WebOS. O browser nativo até consegue acessar ao site deles e a algumas funções, mas não assistir a filmes, com isso perdem audiência para o Netflix, q...

Tentativa de hacking a meus sites

Tenho alguns sites de projetos pessoais que ainda estão em fase de desenvolvimento e outros já funcionais em versão beta eterna :), mas não faço divulgação, enfim, são sites de serviços que deixo expostos na Internet e são indexados por serviços de pesquisa como o Google e Bing. Recebo por e-mail além dos indicadores do Google Analytics, também logs de erros de acesso. Já fiz tratamentos de acessos pelo bot de indexação do Google forçando erros de rotas, mas esta semana recebi alguns erros interessantes de acessos a rotas em um site meu baseadas na lista abaixo: plus/e7xue.php plus/mytag_js.php plus/download.php Pesquisando um pouco descobri que se trata de hackers tentado achar falhas no site, na verdade falhas em algum CMS porventura instalado (ex.: Joomla, Drupal e outros), nesse caso acho que o Drupal, mas que não é o meu caso. Outro possíveis arquivos exploráveis: sites/default/files/css/css... sites/default/files/js/js... components/com_community/index.html  ...

Javascript :: console.log() + console.trace()

Quem desenvolve usando client side frameworks (ex.: Bootstrap, ExtJS e outras) de vez em quando se pega usando console.log() para rastrear a execução, mesmo que o debug seja mais eficiente. Uma dica interessante para casos assim é usar em conjunto com o console.log() - usado para colocar conteúdo visível no console do browser - também o console.trace(), assim poderá rastrear não só a chamar à função, mas também o contexto de chamada e parâmetros passados.

Javascript :: quando a expressão true == true retorna false

Recentemente precisei fazer uma validação de valor boolean vindo de um request Ajax. A lógica seria mais ou menos: // retornoRequest.Campo tinha o valor "true" (via debug e console). if (retornoRequest.Campo == "true") {    "faça" } Mas essa verificação estava dando falso por algum motivo. Mesmo comparar com === "true" também. Então a solução: if (retornoRequest.Campo .toString() == "true") {    "faça" } Somente aplicando forçadamente a conversão para string que foi possível usar o valor real da expressão, estranhamente pois pelo visual os valores eram iguais. Não avaliei o tipo, mas certamente estava nisso o problema.

A infestação de (de)serviços SPAMMERs de produtos/serviços Brasileiros

Imagem
Interessante como não há lei (há uma lenda que existe) sobre o não envio de SPAMs. A gente olha a caixa de lixo eletrônico para ver se há algo que foi barrado erroneamente aí se depara com zilhões de SPAMs de marcas famosas ou não, marcas que contratam serviços de SPAMMERs que inventam e-mails para enviar mensagens não desejadas de serviços que nunca foram assinados e links para "remover da lista" que nunca são efetivos. Normalmente os e-mails são focados em nomes de pessoas fulano_ou_fulana@servicospammer.com.br.  Estrangeiros tem pelo menos o trabalho de criar um e-mail fake em serviços conhecidos como Yahoo, mas esses brasileiros não, pelo menos isso facilita o nosso trabalho de filtragem. Faço uma ressalva dos SPAMs que podem ser ocasionados quando confirmarmos aceitar e-mails de promoções e etc ao fazermos cadastro em sites. SPAMs desse tipo são identificados como algo enviado realmente da empresa em questão, às vezes algo como contato@loja.com.br, blabla@pr...

Não ignorem o "using System;". Pode ser muito importante assim como o "using System.Linq;".

Lenoxx TB50 - Engasgos, alterações de configurações e reset de fábrica

Aviso inicial: não coloque a culpa em mim se algo der muito errado com o seu aparelho. Comprar tablet xing ling normalmente nos leva a crer que estamos fazendo um bom negócio em razão do preço pela configuração que teoricamente era para atender, pouca diferença numérica se compararmos com especificações técnicas de tablets "de marca", mas que são o dobro ou mais do preço. Acontece que há um problema que recai nesse tipo de negócio que a é falta de garantia, e que pode ser necessário aciona-la pelo fato de fabricantes usarem peças (hardware) sem qualidade ou recondicionadas, defeitos comuns são relacionados à tela/touch. Não tive problemas de hardware, mas sofria, ainda sofro, com engasgos de desempenho. Eu já sabia que teria problemas de desempenho, falta de fluidez era esperada para alguns casos, mas não que fosse ocorrer engasgos sem explicação aparente. Não comprei o tablet para jogar ou outros fins mais pesados, apesar de que muitos jogos é possível jogar, às v...