Métodos GET, POST???
Qual usar? Qual a diferença?? Humm??
Então essencialmente:
- GET: enviamos os parâmetros por querystring e recebemos o resultado (não necessariamente XML)
- POST: enviamos os parâmetros no body do pedido e recebemos o resultado (não necessariamente XML)
Não é muito vulgar mas pode acontecer querermos enviar um XML por POST e parâmetros no URL.
De notar que há sites que só aceitam pedidos através de um dos métodos (GET ou POST) porque esse item é configurável no IIS.
Descrição interessante aqui: http://www.cs.tut.fi/~jkorpela/forms/methods.html, tópico The fundamental differences between "GET" and "POST"
Detalhes interessantes também aqui: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html (creio que pouca gente sabe que existem estes todos...)
E prontux!
Have fun! :)
Thursday, January 22, 2009
Thursday, January 8, 2009
Antivirus de borla (só p análise e pouco mais, mas...)
Estava eu em luta com o meu PC, que teimava em se arrastar cada vez mais, eis senão quando descobri que andavam por aqui uns troianos armados em gregos!
Então, com a ajudita de um querido colega, descobri uma página que analisa o disco gratuitamente e detecta ameaças. Para desinfecções, é preciso pagar (a não ser q sejam fraquitas...), mas já ajuda pra malta ver o que se anda a passar nos bastidores da máquina.
Aqui fica o link:
http://www.pandasecurity.com/portugal/homeusers/solutions/activescan/default.htm?track=80381
Enjoy...
Então, com a ajudita de um querido colega, descobri uma página que analisa o disco gratuitamente e detecta ameaças. Para desinfecções, é preciso pagar (a não ser q sejam fraquitas...), mas já ajuda pra malta ver o que se anda a passar nos bastidores da máquina.
Aqui fica o link:
http://www.pandasecurity.com/portugal/homeusers/solutions/activescan/default.htm?track=80381
Enjoy...
Thursday, November 27, 2008
Dicas do Google para mais qualidade na programação
Daqui: http://misko.hevery.com/code-reviewers-guide/
Dicas da equipa da Google, que levantam a bandeirinha vermelha de alerta em pontos do código.
Aqui ficam.
Flaw #1: Constructor does Real Work
Warning Signs
- new keyword in a constructor or at field declaration
- Static method calls in a constructor or at field declaration
- Anything more than field assignment in constructors
- Object not fully initialized after the constructor finishes (watch out for initialize methods)
- Control flow (conditional or looping logic) in a constructor
- Code does complex object graph construction inside a constructor rather than using a factory or builder
- Adding or using an initialization block
Flaw #2: Digging into Collaborators
Warning Signs
- Objects are passed in but never used directly (only used to get access to other objects)
- Law of Demeter violation: method call chain walks an object graph with more than one dot (.)
- Suspicious names: context, environment, principal, container, or manager
Flaw #3: Brittle Global State & Singletons
Warning Signs
- Adding or using singletons
- Adding or using static fields or static methods
- - Adding or using static initialization blocks
- Adding or using registries
- Adding or using service locators
Flaw #4: Class Does Too Much
Warning Signs
- Summing up what the class does includes the word “and”
- Class would be challenging for new team members to read and quickly “get it”
- Class has fields that are only used in some methods
- Class has static methods that only operate on parameters
:
Dicas da equipa da Google, que levantam a bandeirinha vermelha de alerta em pontos do código.
Aqui ficam.
Flaw #1: Constructor does Real Work
Warning Signs
- new keyword in a constructor or at field declaration
- Static method calls in a constructor or at field declaration
- Anything more than field assignment in constructors
- Object not fully initialized after the constructor finishes (watch out for initialize methods)
- Control flow (conditional or looping logic) in a constructor
- Code does complex object graph construction inside a constructor rather than using a factory or builder
- Adding or using an initialization block
Flaw #2: Digging into Collaborators
Warning Signs
- Objects are passed in but never used directly (only used to get access to other objects)
- Law of Demeter violation: method call chain walks an object graph with more than one dot (.)
- Suspicious names: context, environment, principal, container, or manager
Flaw #3: Brittle Global State & Singletons
Warning Signs
- Adding or using singletons
- Adding or using static fields or static methods
- - Adding or using static initialization blocks
- Adding or using registries
- Adding or using service locators
Flaw #4: Class Does Too Much
Warning Signs
- Summing up what the class does includes the word “and”
- Class would be challenging for new team members to read and quickly “get it”
- Class has fields that are only used in some methods
- Class has static methods that only operate on parameters
:
Thursday, April 24, 2008
Design Gráfico - à borlix! :)
Para quem quer fazer umas coisinhas de design gráfico, mas nao percebe muito de Photoshop ou CorelDraw, ou outras conceituadíssimas(!) ferramentas (e já agora para quem não quer pagar licenças ou arriscar-se à multa, que a fiscalização anda aí!), aqui fica a divulgação de um FreeWare fixolas que ajuda à coisa:
O Paint.Net!!!!

Trata-se de um freeware de edição de imagem que corre sobre o Windows. Como os senhores do Paint.Net apregoam, é intuitivo e relativamente fácil de usar.
É um pouco mais limitado que os softwares tradicionais, mas a vantagem deste tipo de software é que está sempre a sofrer melhorias, o que quer dizer que podemos sempre contar com mais uma versãozita que traz mais umas coisinhas com que podemos brincar.
Podem sacá-lo aqui.
Have fun ;)
O Paint.Net!!!!

Trata-se de um freeware de edição de imagem que corre sobre o Windows. Como os senhores do Paint.Net apregoam, é intuitivo e relativamente fácil de usar.
É um pouco mais limitado que os softwares tradicionais, mas a vantagem deste tipo de software é que está sempre a sofrer melhorias, o que quer dizer que podemos sempre contar com mais uma versãozita que traz mais umas coisinhas com que podemos brincar.
Podem sacá-lo aqui.
Have fun ;)
Monday, November 26, 2007
Power Toys XP
Divulgou um colega uma pequena ferramenta, ou melhor, um conjunto de ferramentas que podem ser bastante úteis.
Tratam-se de ferramentas / brinquedos que trabalham em cima de aplicações já deployed.
Experimentei esta: Alt-Tab Replacement
E é engraçado! :) Trata-se de uma variante ao habitual alt-tab, mas com a particularidade de ver um screenshot da aplicação por onde 'passamos'.
A janela é qualquer coisa como isto (trata-se da janelita azul por cima do wexplorer):
Tratam-se de ferramentas / brinquedos que trabalham em cima de aplicações já deployed.
Experimentei esta: Alt-Tab Replacement
E é engraçado! :) Trata-se de uma variante ao habitual alt-tab, mas com a particularidade de ver um screenshot da aplicação por onde 'passamos'.
A janela é qualquer coisa como isto (trata-se da janelita azul por cima do wexplorer):

Mas há mais!
Cá fica o link: http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
Tecniquem! ;)
Friday, July 27, 2007
SQL: Actualizar um campo do tipo Text ou NText
Um campo Text ou NText é tratado de forma um pouco diferente dos datatypes mais habituais do SQL (os int, varchar, char, etc...). Uma das diferenças é precisamente na forma como são feitas actualizaçãoes dos conteúdos de campos deste tipo.
O exemplo seguinte mostra um replace sobre um campo do tipo varchar:
create table #minhatabela (meucampo varchar(50))
insert #minhatabela values('meu teste')
select * from #minhatabela
update #minhatabela set meucampo = replace(meucampo, 'meu ', 'meu novo ')
select * from #minhatabela
drop table #minhatabela
No entanto, fazer a mesma coisa sobre um campo do tipo Text ou Ntext retorna um erro, como mostra o exemplo seguinte:
create table #minhatabela (meucampo text)
insert #minhatabela values('meu teste')
select * from #minhatabela
update #minhatabela set meucampo = replace(meucampo, 'meu ', 'meu novo ')
select * from #minhatabela
drop table #minhatabela
Este pequeno script SQL retorn o seguinte erro:
Msg 8116, Level 16, State 1, Line 6
Argument data type text is invalid for argument 1 of replace function.
Actualizar o campo do tipo Text ou NText
Então para actualizar um campo do tipo Text ou NText, é necessário utilizar um apontador para o campo a actualizar. Esse apontador deverá ser do tipo binary.
É ainda necessário identificar a posição a partir da qual se pretende actualizar.
Depois, identificando a tabela a actualizar, o apontador, a posição inicial, e o que se pretende fazer, utilizamos a instrução UPDATETEXT.
A instrução UPDATETEXT pode ser utilizada de diferentes formas: para inserir caracteres no inicio, no meio, no fim do campo, ou simplesmente para eliminar dados.
Segue-se um exemplo que inclui as diferentes utilizações da instrução UPDATETEXT:
create table #minhatabela (meucampo ntext)
insert #minhatabela values('bd')
DECLARE @ptrval binary(16), @i int
SELECT @ptrval = TEXTPTR(meucampo) FROM #minhatabela
-- Insere o caracter 'a' no inicio do conteudo do campo
UPDATETEXT #minhatabela.meucampo @ptrval 0 0 'a'
select * from #minhatabela
-- Insere o caracter 'c' no meio do conteudo do campo
UPDATETEXT #minhatabela.meucampo @ptrval 2 0 'c'
select * from #minhatabela
-- Insere o caracter 'e' no fim do conteudo do campo
set @i=(select DATALENGTH(meucampo) from #minhatabela)/2 -- Utilizar 2 apenas se se tratar de um campo do tipo NText (2 bytes/character)
UPDATETEXT #minhatabela.meucampo @ptrval @i 0 'e'
select * from #minhatabela
-- Elimina o primeiro caracter do conteudo do campo
UPDATETEXT #minhatabela.meucampo @ptrval 0 1
select * from #minhatabela
drop table #minhatabela
Length de campos Text ou NText
Apenas uma nota final. Mais uma das diferenças no tratamento deste tipo de datatypes é na utilização de instruções que permitam obter o tamanho do conteudo do campo. Usualmente é utilizada a instrução LEN, mas com campos do tipo Text e NText, a utilização desta instrução devolve um erro. Assim, a instrução a utilizar para obter o tamanho do conteúdo de um campo do tipo Text ou NText é a instrução DATALENGTH, de resto já utilizada nos exemplos acima.
E pronto! Estas foram algumas considerações sobre a manipulação de campos do tipo Text ou NText.
Um site que contém mais informação sobre a manipulação de campos deste tipo é este: http://msdn2.microsoft.com/en-us/library/aa175795(sql.80).aspx
Have fun! :)
O exemplo seguinte mostra um replace sobre um campo do tipo varchar:
create table #minhatabela (meucampo varchar(50))
insert #minhatabela values('meu teste')
select * from #minhatabela
update #minhatabela set meucampo = replace(meucampo, 'meu ', 'meu novo ')
select * from #minhatabela
drop table #minhatabela
No entanto, fazer a mesma coisa sobre um campo do tipo Text ou Ntext retorna um erro, como mostra o exemplo seguinte:
create table #minhatabela (meucampo text)
insert #minhatabela values('meu teste')
select * from #minhatabela
update #minhatabela set meucampo = replace(meucampo, 'meu ', 'meu novo ')
select * from #minhatabela
drop table #minhatabela
Este pequeno script SQL retorn o seguinte erro:
Msg 8116, Level 16, State 1, Line 6
Argument data type text is invalid for argument 1 of replace function.
Actualizar o campo do tipo Text ou NText
Então para actualizar um campo do tipo Text ou NText, é necessário utilizar um apontador para o campo a actualizar. Esse apontador deverá ser do tipo binary.
É ainda necessário identificar a posição a partir da qual se pretende actualizar.
Depois, identificando a tabela a actualizar, o apontador, a posição inicial, e o que se pretende fazer, utilizamos a instrução UPDATETEXT.
A instrução UPDATETEXT pode ser utilizada de diferentes formas: para inserir caracteres no inicio, no meio, no fim do campo, ou simplesmente para eliminar dados.
Segue-se um exemplo que inclui as diferentes utilizações da instrução UPDATETEXT:
create table #minhatabela (meucampo ntext)
insert #minhatabela values('bd')
DECLARE @ptrval binary(16), @i int
SELECT @ptrval = TEXTPTR(meucampo) FROM #minhatabela
-- Insere o caracter 'a' no inicio do conteudo do campo
UPDATETEXT #minhatabela.meucampo @ptrval 0 0 'a'
select * from #minhatabela
-- Insere o caracter 'c' no meio do conteudo do campo
UPDATETEXT #minhatabela.meucampo @ptrval 2 0 'c'
select * from #minhatabela
-- Insere o caracter 'e' no fim do conteudo do campo
set @i=(select DATALENGTH(meucampo) from #minhatabela)/2 -- Utilizar 2 apenas se se tratar de um campo do tipo NText (2 bytes/character)
UPDATETEXT #minhatabela.meucampo @ptrval @i 0 'e'
select * from #minhatabela
-- Elimina o primeiro caracter do conteudo do campo
UPDATETEXT #minhatabela.meucampo @ptrval 0 1
select * from #minhatabela
drop table #minhatabela
Length de campos Text ou NText
Apenas uma nota final. Mais uma das diferenças no tratamento deste tipo de datatypes é na utilização de instruções que permitam obter o tamanho do conteudo do campo. Usualmente é utilizada a instrução LEN, mas com campos do tipo Text e NText, a utilização desta instrução devolve um erro. Assim, a instrução a utilizar para obter o tamanho do conteúdo de um campo do tipo Text ou NText é a instrução DATALENGTH, de resto já utilizada nos exemplos acima.
E pronto! Estas foram algumas considerações sobre a manipulação de campos do tipo Text ou NText.
Um site que contém mais informação sobre a manipulação de campos deste tipo é este: http://msdn2.microsoft.com/en-us/library/aa175795(sql.80).aspx
Have fun! :)
Monday, June 4, 2007
DTS no SQL Server 2005
Para quem ainda não "domina" a construção de DTS com o SQL Server 2005, aqui ficam uns links que podem ser úteis.
Creating your first DTS Project:
http://www.extremeexperts.com/sql/Yukon/YukonDTS.aspx
Introduction to DTS in SQL Server 2005:
http://www.sqlservercentral.com/columnists/vkumar/introductiontodtsinsqlserver2005.asp
E já agora, por curiosidade...
O Yukon:
http://www.codeproject.com/useritems/Features_of_Yukon.asp
Divirtam-se! ;)
Creating your first DTS Project:
http://www.extremeexperts.com/sql/Yukon/YukonDTS.aspx
Introduction to DTS in SQL Server 2005:
http://www.sqlservercentral.com/columnists/vkumar/introductiontodtsinsqlserver2005.asp
E já agora, por curiosidade...
O Yukon:
http://www.codeproject.com/useritems/Features_of_Yukon.asp
Divirtam-se! ;)
Subscribe to:
Posts (Atom)