|
1 February 2006
Being a Bot
Often search engine results contain information that is not accessible when you follow links.
For example if your search result contains articles from SQL Server Magazine site (e.g.
Should I Use IDENTITY or Not?)
you will see how different actual page and search engine summary are. How does Google see the whole page
when it indexes it? Sites rely on User-Agent string when returning actual content to the client.
In Mozilla Firefox you can easy change portion of User-Agent string in
about:config (search for general.useragent.extra.firefox):
Now open the same page again.
Some examples of user-agent substrings used by search engines:
Googlebot/2.1; +http://www.google.com/bot.html
Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html
|
|
It is unlikely that site owners will implement some sort of IP address filtering since
search engines do not have fixed IP addresses to run crawls from:
The IP addresses used by Googlebot change from time to time. The best way to identify
accesses by Googlebot is to use the user-agent (Googlebot).
As experiment you can try browsing the Web with custom user-agent string and see how different it looks.
24 January 2006
Today Sybase released new version of PowerDesigner. This is an excerpt from release notes:
Data Modeling
- New Database Generation dialog box
- New, simplified DBMS-specific physical options tab
- Enhanced model options (Default value for objects owner...)
- Enhanced ERwin import (logical model, referential integrity option, merge of identical
data item, symbol color, link & diagram preference,...)
- Automatic detection of stored procedure dependency links
- Keep selection from reverse engineering by ODBC
- Display comment in symbol
- Support for database generation and reverse engineering via VBScript
- Support for GTL in database script generation
- Support for new database versions
- SQL Server 2005
- ASE 15.0
- MySQL 5.0
- PostgreSQL 8.0
Trial version is available for
download.
Here are my first-look notes about this release.
Dependencies in Microsoft SQL Server 2000
Sometimes you may encounter the following warning message during T-SQL script playback:
Cannot add rows to sysdepends for the current stored procedure because it depends on the missing object 'OBJECTNAME'. The stored procedure will still be created.
This is an informational message and nothing is wrong with the code. It just means that the sequence in which objects are created is wrong from the logical point of view. Lets look at example:
CREATE PROCEDURE usp_adduser
AS
EXECUTE usp_checkpermission
RETURN
GO
CREATE PROCEDURE usp_checkpermission
AS
RETURN 0
GO |
|
Playing this script results in the warning message shown above. What this mean in practice? Well, system stored procedure sp_depends will be unable to show anything when called for the usp_adduser. And in other tools that rely on sysdepends table like Enterprise Manager there will be no information about object dependencies since no record is added to sysdepends...
How to fix this: create objects in correct order. If there are recursive procedures (that call themself) you can first create a dummy procedure and then alter it:
-- Dummy
CREATE PROCEDURE usp_getdirtree
AS
RETURN
GO
-- Real code
ALTER PROCEDURE usp_getdirtree
AS
EXECUTE usp_getdirtree
RETURN
GO |
|
July, 27, 2005
Building Firefox 1.0.4 on Sun Solaris 10 x86
Finally I've got it up and running. It took about 10 attempts to build the browser on my home Solaris 10 host. Each build attempt lasts from several minutes (very first ones that fail soon) till 2 hours (successful build). I am running PIII 933 MHz with 512 Mb RAM computer, so the timing may vary for other configurations.
May, 25, 2005
Windows XP Styles
Windows XP and Windows Server 2003 provide a nice user interface that is known as themes. On Windows Server 2003 you need to turn on service Themes (set it to start up automatically) and then select Theme in Display Properties applet (I use customized one). To make old applications (e.g. SQL Query Analyzer, VSS Explorer and so on) look great create the following XML file in the application directory and name it appname.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="MyApp" type="win32"/>
<description>MyApp.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
</assembly>
|
|
For example, for SQL Query Analyzer it is named isqlw.exe.manifest and here is screenshot:
May, 12, 2005
Solaris 10 Packages
I was curious what is installed with default Solaris 10 Entire set and used pkginfo command to get the list of installed packages. I was amazed: between a lot of useless packages I found those that were not included in previous Solaris releases:
- SUNWgcc (GNU C compiler)
- SUNWzsh (Z shell)
- SUNW1251f (Russian fonts for Windows 1251 charset)
As usual something is missing like GNU debugger (GDB), Firefox Web Browser - but you can download this separately from the Web.
May, 11, 2005
About passwords
Sometime ago I decided to store passwords (I have about a dozen of them for all mailboxes and forums) in one place. It was a plain text file stored on USB Flash drive. Extremely useful: all in once place, just copy-n-paste. Until my flash was stolen. And now I found another place: mobile phone. Using cable and gammu software I synchronize Nokia 6313 Wallet with PC text file. At anytime I have all my passwords with me. Needless to say that I use strong passwords. I generate 'em in SQL Server:
SELECT REPLACE(CAST(NEWID() AS varchar(36)), '-', '') |
|
May, 11, 2005
Changing IE User-Agent string
You probably know that Internet Explorer sends User-Agent string that contains information on some installed software. For example if .NET Framework in installed then User-Agent looks like this:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322) |
|
To get rid of this delete values under the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform |
|
It maybe useful for debugging also: temporary add some unique strings to identify particular session.
March, 28, 2005
Burning CD/DVD disks under Solaris 10
It's so easy to burn a CD or DVD in Solaris.
March, 12, 2005
How to retrieve Connection passwords in SQL Server 2000 DTS packages
Follow-up article about Connection passwords in Microsoft SQL Server 2000 DTS packages.
March, 2, 2005
How Microsoft SQL Server 2000 encrypts DTS packages?
Here is a note about DTS packages encryption in Microsoft SQL Server 2000.
February, 26, 2005
iPAQ2210 Page is here
iPAQ2210 page restored (in Russian).
February, 26, 2005
Solaris 10: time to move
Sun released Solaris 10 on January, 31, 2005 . This is great event: now anyone can use commercial-quality UNIX variant for free even in production. A lot of new features were introduced in Solaris 10: DTrace, self-healing, Zones and many others. Solaris 10 is available as downloadable CD/DVD ISO images that I've downloaded, burned, and successfully installed on my PC. Here is my page with Solaris tips.
February, 26, 2005
Blog is back again
After long, long time I finally decided to start over writing regular notes. In other words, resume my dairy or blog. I thought much about whether to do it or not: what can drive a man to write something that anybody can read on the Web? And main idea is that it might help a little to concentrate on some important things I am doing. At least I believe in this.
February, 25, 2005
|