SqlServer SELECT Case Sensitive

Sql Server

Por defeito o SQL ignora as maiúsculas e minúsculas no valor dos parâmetros… para forçar o SQL Server a ter em conta maiúsculas e minúsculas num determinado querie basta acrescentar ao query uma COLLATION que tenha em conta maiúsculas e minúsculas por exemplo SQL_Latin1_General_CP1_CS_AS, 

por exemplo “select * from Tabela where nome= ‘Antonio’  COLLATE SQL_Latin1_General_CP1_CS_AS AND sobrenome = ‘Campos’  COLLATE SQL_Latin1_General_CP1_CS_AS

sem o COLLATE SQL_Latin1_General_CP1_CS_AS o querie ia retornar qualquer linha desde que tivesse “antonio”  no nome independentemente de ter ou não letras maiúsculas.

 

Nova morada

Link

Decidi deixar de usar o domínio que usava neste blogue desde o seu inicio em 2005, embora não publique com muita frequência uso o servidor e o domínio para alojar algumas experiências e fazer testes.

Utilizei nestes 11 anos o serviço gratuito do no-ip.com, que nunca me deixou mal! quando criei a conta o domínio no-ip.com ainda fazia parte dos domínios que podia usar nas contas gratuitas, sei que isso já não é possível há alguns anos….

Neste período o blogue esteve offline algumas vezes com motivos como por exemplo, acidentalmente me “fechar” fora da firewall (Iptables) ou quando faltava a corrente eléctrica ou a internet e principalmente quando fazia alterações no servidor (que também me serve para outras coisas!!!) que corriam mal!

Não me esforcei muito para encontrar um novo domínio… substitui apenas o .no-ip.com por .net!!

Para esta alteração ser transparente renomeie o host antoniocampos.no-ip.com do apache para antoniocampos.net e apontei o host antoniocampos.no-ip.com para uma pasta que apenas tem um .htaccess que reencaminha todos os pedidos para o novo domínio exactamente com os mesmo parâmetros!!!

RewriteEngine on
RewriteRule ^(.*)$ http://antoniocampos.net/$1 [R=301,L]

Na configuração do WordPress alterei o domínio nas configurações reiniciei o Apache e parece que funcionou!!!

Como o servidor é fraquinho aproveitei para configurar o serviço cloudflare para me poupar alguma largura de banda e alguns pedidos…

Embora não seja coisa que me preocupa muito… segundo o video do Matt Cutts (da Google) esta alteração não deve afectar a indexação dos motores de busca… nem a “autoridade” (se é que tenho alguma!!) do site…

Componentes e controlos .net Framework

Syncfusion

Escolher componentes e controlos para uma aplicação não é tarefa fácil… temos que que ter em conta as funcionalidades que acrescentam à nossa aplicação, o “peso” que os componentes ou controlos terão no desempenho da aplicação, e o tempo que pouparão ao desenvolvimento.

Outro factor é o preço dos próprios componentes e controlos, se for para usar num ou mais projectos grandes a serem comercializados facilmente se dilui o preço de aquisição no preço de venda… se for para uma aplicação desenvolvida por uma pequena empresa ou por um freelancer para uso próprio a maioria dos “pacotes” de componentes têm preços que não compensam o custo, e limitamos-nos a usar o standard.

Em pensar nos freelancers e nas pequenas empresas, e também inspirada na Miscrosoft que nos “deu” a versão community do Visual Studio, uma empresa chamada Syncfusion criou uma versão “community” do seu pacote de componentes e controlos, esta versão gratuita (com valor comercial de quase 10 000€)  destina-se a programadores individuais ou equipas até 5 utilizadores que facturem por ano menos de $ 1 000 000 (USD).

Na versão gratuita do “ESSENTIAL STUDIO 2015 VOLUME 4” estão incluídos todos os componentes e controlos das versões pagas que enumero abaixo (esta lista está incompleta para a lista completa ver o site da Syncfusion)

WEB

  • ASP.NET MVC
  • ASP.NET Web Forms
  • JavaScript
  • LightSwitch
  • Silverlight

MOBILE

  • iOS
  • Android
  • Windows Phone
  • WinRT
  • Xamarin
  • JavaScript
  • Orubase
  • UWP

DESKTOP

  • Windows Forms
  • WPF
  • UWP

FILE FORMATS

  • Excel

  • PDF

  • Word

  • PowerPoint

Para saber mais sobre a licença gratuita basta ir ao site http://www.syncfusion.com/products/communitylicense.

 

Como não trabalho (para já!!) com Android ou IOS, não posso opinar quanto à qualidade dos componentes para estas plataformas, posso apenas comentar os componentes de Windows, para já os componentes que usei (da versão gratuita) foram apenas os destinados a WPF, e são de facto fáceis de usar e trazem um grande valor acrescentado à aplicação. Por exemplo se usar-mos a datagrid standard do .net teremos algo muito estático… ao usar a datagrid da SyncFusion temos filtros (como os do Excel), agrupamentos por colunas, etc… e o código a mais é praticamente nulo. O “menu” Ribbon (não existe equivalente na framework) também é muito simples de usar e modificar e deixa as nossas apps com um visual a que os utilizadores já se habituaram.

Sem dúvida algo a experimentar e usar…

PS. Este post não é patrocinado, é mais uma especie de agradecimento à empresa SyncFusion pelo excelente produto… e pela sua versão community, que tenho usado nos projectos pessoais.

Segurança com VPN e Proxy

Quem quer aceder a conteúdos bloqueados ou restritos na Internet procura formas de contornar essas restrições. Com o número de restrições e bloqueios a aumentar em vários países onde se incluí Portugal, o número de utilizadores da Internet que procuram essas soluções tem chamado a atenção a pessoas cujas intenções não são as melhores.

Os métodos mais populares de contornar os bloqueios e de navegar com a sensação de segurança são a utilização de Proxy ou VPN, ambas as “soluções” podem por em perigo quem as utiliza. Para isso basta que o fornecedor da VPN ou do Proxy esteja interessado em algo mais do que ajudar a contornar os bloqueios.

No caso das VPN ao reencaminhar todo o tráfego de Internet do utilizador para um túnel “seguro” o fornecedor da VPN pode por exemplo colocar todo o tráfego a passar por um “filtro” que guarde certas informações como por exemplo nomes de utilizador e password’s do serviços acedidos pelos utilizadores. Engane-se quem pensa que isto é muito complicado e quem ninguém fará isso, criar um servidor de VPN reencaminhar o tráfego para um servidor “SQUID” e analisar os logs é uma tarefa extremamente simples e ao alcance de qualquer pessoa com conhecimentos básicos (ou que saiba pura e simplesmente usar o Google!!).

Ao utilizar um proxy estamos apenas a facilitar o trabalho das ditas pessoas mal intencionadas!! pois estamos de livre vontade a enviar o nosso tráfego para os seus registos, para posterior análise!!

Engana-se também quem pensa que ao utilizar sites que usam https está a salvo, porque para usar VPN muitas vezes é necessário instalar algo no nosso pc e não sabemos se com essa instalação que pede elevação de privilégios (Windows) ou sudo (Linux), estamos a dizer ao nosso sistema que têm uma nova entidade de certificação e que pode confiar em todos os certificados emitidos pela mesma, depois com as configurações certas do lado do Proxy é só analisar logs! Neste caso já é exigido algo mais ao atacante mas como terá mais resultados e resultados em que a recompensa é maior, talvez compense o esforço.

Além dos 2 métodos referidos também é possível contornar as restrições usando servidores DNS que estejam fora do controlo das entidades da censura, este a meu ver, é o sistema mais seguro… pois embora do lado do servidor possam saber que fomos ao site X não têm acesso à navegação que fizemos no mesmo!

Existem também extensões para o Browser que permitem contornar os bloqueios, essas nem vou considerar um método porque o que fazem é para a lista de sites que estão configuradas reencaminham o tráfego para um proxy, que como expliquei em cima não será de todo o método mais seguro. Além de que ao instalar extensões no browser estamos a dar autorização que a extensão “registe” todos os sites que visitamos (com o url completo!!), que aceda a outros dados que estão na janela do browser enquanto navegamos… não são raras as extensões que injectam publicidade em todos os sites… ou fazem outro género de alterações!

Será que o utilizador sabe quanto lhe vai custar “sacar” aquele torrent que supostamente está bloqueado por uma qualquer entidade de censura??