Home Vegetables Lifehack: Using Google search to the fullest for effective crowd marketing. View Google results in other countries

Lifehack: Using Google search to the fullest for effective crowd marketing. View Google results in other countries

Indy components used in Delphi 6.

In addition to basic Internet services and protocols, there is a wide range of additional services, the capabilities of which are often used by Internet developers. In addition, the ability to display information using a browser is not always an acceptable solution for Internet applications. In this case, it is reasonable to use the Internet infrastructure for data exchange, and provide information display through more complex client applications developed, for example, in Delphi.

Let's say you need to implement specialized server logic that is not included in standard Web servers. To solve this class of problems, Delphi includes the Internet Direct (Indy) library from Nevrona Designs (http://www.nevrona.com/Indy/). This library, developed specifically for Borland Delphi, already has eight versions, the latest of which is included in new version Delphi. The set of components is divided into three groups: client (Indy Client), server (Indy Servers) and auxiliary (Indy Misc).

Indy Clients and Indy Server s

Majority Indy components Client and Indy Servers are pairs corresponding to the client and server parts of protocols and services (with the exception of individual, mainly server-based components such as TunnelMaster and TunnelSlave), and allow the use of protocols such as TCP/IP, UDP, NNTP, SMTP, FTP , HTTP, as well as ECHO, FINGER, WHOIS, etc. services.

Indy client components are written using sockets. The client side socket requires a connection to the server. If the connection is established, the client and server can begin exchanging messages. These messages are of a different nature, but usually the exchange occurs using a specific protocol (for example, HTTP)

TIdTCPClient and TIdTCPServer

These components are used to support one of the main network protocols - TCP (Transmission Control Protocol), and are also the base classes for the TIdSMTP and TIdFTP components. The TIdTCPServer class has a ThreadMgr property that defaults to nil. If ThreadMgr is nil when TIdTCPServer is enabled, the TIdThreadMgrDeafault class will be created implicitly. Otherwise, the installed process manager is used.

TIdUDPClient and TIdUDPServer

These components are used to support the UDP (User Datagram Protocol) network protocol and are also the base classes for a number of other Indy components.

TIdChargenServer

The component is used to generate random symbols, usually for testing purposes.

TIdDayTime and TIdDayTimeServer

The components are used to provide time service. The client requests, and the server reports the current date and time.

TIdDNSResolver

This is a client component that serves requests from a DNS (Domain Name Service) server. DNS server queries are designed to replace a computer's name with its IP address. TIdDNSResolver is a descendant of the TIdUDPClient class.

TIdDICTServer

A server component that supports the Dictionary Server Protocol (DICT), a server-side dictionary based on the TCP protocol that allows a client to access a natural language dictionary.

TIdDISCARDServer

The server component that supports the records server. The recordings can be used as a debugging and measurement tool. The records service simply hands over any data to whoever is willing to receive it.

TI dEcho and TI dECHOServer

The components are designed to provide a response service, typically used to check the health of the network. The client sends a text message to the server, the server returns the message to the client. If the message is garbled, the network malfunctions.

TIdFinger and TIdFingerServer

The components are designed to provide a protocol that allows a user to query data regarding the presence of other users on the system. Some servers handle such client requests. Using this pair of components will allow you to service client requests that determine the presence of other users on the system.

TIdFTP

The component includes full support for the file transfer protocol - FTP (File Transfer Protocol). Passive and active data transfer is supported, as well as operations such as GET and PUT, deleting directories, obtaining quotas, file and directory sizes. TI dFTP uses the TIdSimpleServer class to operate. When an FTP file transfer is in progress, a secondary TCP connection is opened for data transfer and is closed when the data has been transferred. This connection is called a “data link,” which is unique for each file being transferred.

TIdGopher and TIdGopherServer

These components are designed to provide a network protocol that has been superseded in Lately from WWW (World Wide Web) via HTTP protocol. The server that implements this protocol provides a hierarchical distributed document flow support system. An example of using this pair of components, located in the \demos\indy\GopherClient and \demos\indy\GopherServer directories, demonstrates how using this protocol you can provide information about files on your computer, including closed ones, on the local network .

TIdHostNameServer

A server component designed to pass the local server name to clients.

TIdHTTP and TIdHTTPServer

The components are used to provide the HTTP network protocol (versions 1.0 and 1.1 are supported, including GET, POST and HEAD operations). In addition, support is provided for authentication and the use of proxy servers. The server component is used to provide services to another Web server that supports a given protocol. TIdHTTPServer facilitates the implementation of functions such as cookies, state management, etc.

TIdIcmpClient

A client component designed to provide the Internet Control Message Protocol (ICMP), which is used to perform ping operations and network tracing.

TIdPOP3

A client component designed to provide the Post Office Protocol (POP), including support for MIME encoding and decoding, and multibyte character transmission.

TIdIMAP4Server

A server component designed to support IMAP (Internet Message Access Protocol) operations on the server. The protocol allows you to search for messages Email on server. The difference between the IMAP and POP protocols is that the POP protocol requires additional memory to store data, and the IMAP protocol accesses the server instead of the client machine. IMAP4 was created to replace POP3, but POP3 remains a widely used standard to this day.

TIdIRCServer

A server component designed to support the most commonly used service operations on the Internet, commonly called chat. The component provides the basic building blocks for an IRC (Internet Relay Chat) server.

TIdMappedPortTCP

A server component designed to create mapped ports, which are often used in proxy servers. The methods of this component allow you to map one port to another. For example, port 80 could be mapped to port 3000, and all requests to the first port (port 80) would be forwarded to the second port (port 3000).

TIdNNTP and TIdNNTPServer

These components are required to support the Network News Transfer Protocol (NNTP) used in news services. The client component includes support for MIME encoding and decoding, as well as support for multibyte characters and alternate encodings. The server component allows you to create news servers. It is important to note that TIdNNTPServer is not a full-featured news server, but a component that provides the basic functionality for such a server.

TIdQOTD and TIdQOTDServer

The components are used to provide the Quote of the Day service. The client component connects to the server component instance to obtain the daily quote. Each server instance contains a unique citation database.

TIdSMTP

A client component designed for use in Simple Mail Transfer Protocol (SMTP) applications, providing support for authentication, MIME encoding and decoding, and multi-byte character support.

TIdSNTP

A client component designed to provide SNTP (Simple Network Time Protocol) - a time service. Can be used to connect to any time service to determine the current date and time.

TIdSimpleServer

Server component that provides a lightweight TCP server. Allows you to organize a point-to-point connection. It is used to create servers with a single user, that is, it can only serve one connection at a time. Unlike the TIdTCPServer component, it does not spawn secondary processes when waiting for requests from clients and when processing these requests. In other words, if the server is serving a request from a client, and at that time another client is contacting it to connect, then it will be blocked until the end of processing the first request.

TIdTelnet and TIdTelnetServer

The client component is used to organize remote sessions on another computer, including console negotiations and authentication. The communication protocol assumes the presence of a person interacting interactively with the server. The client component does not have display support or terminal emulation, but simply provides a connection to the server part. Typically, the TIdTelnetServer server protocol is used to organize remote databases with a text interface for interactive interaction with clients.

TIdTime and TIdTimeServer

The client component is an alternative to the TIdSNTP component for determining time. It is important to note that the formats of the two protocols are different. TIdTime is based on the RFC 868 format (returns the time in the internal UNIX OS standard, performing all necessary conversions). The server component is similar in functioning to the DayTime server. Can be used to implement a time service on the local computer. No additional code is required, just create an instance of TIdTimeServer that will return the time of the server computer's internal clock.

TIdTrivialFTP and TIdTrivialFTPServer

These components are necessary to organize a simple file transfer protocol. The client component of this protocol is used to connect to an instance of the corresponding server component. The protocol is intended for private, lightweight, local cases of file transfer, for example in local area networks or for loading (uploading) routing tables into routers. Due to the weakened characteristics of this protocol, its use is not recommended when using authentication algorithms or any other security mechanisms. The main purpose of this protocol is to transfer files to a hardware device for the purpose of modifying it.

TIdTunnelMaster and TIdTunnelSlave

Server tunnel components are used in proxy servers to organize multiple logical connections over one physical (tunnel). These classes can be used for various purposes, for example, to organize a secret connection over non-secret channels.

TIdWhois and TIdWhoIsServer

This client component connects to any standard Whois server, allowing you to obtain information about domains. The server component provides the basic functionality of a NIC server.

Indy Misc

The Indy Miscellaneous Components palette page includes BASE64, UUE, Quoted Printable and other common email communication formats, encoders (MD2, MD4 and MD5) for cryptography standards used to store passwords and electronic signatures in an irreversible (hard to decipher) form, as well as many other useful components and utilities often used in the development of Internet applications.

TIdAntiFreeze

Due to the block-based algorithms of Indy components, it often appears that the application is stuck while the connection is working. To eliminate the use of secondary processes (threads) when organizing communications to prevent the application from freezing, it is enough to place the specified component on the form.

The component works by parsing requests from the TCP/IP protocol stack and sending messages to the application during the delay when external connections are blocked, which creates the illusion of running code. Since the component affects blocked connections only for the main process, the use of TIdAntiFreeze in secondary processes of the application is not required. Be aware that the TIdAntiFreeze component slows down connections because the main process is periodically interrupted to process messages. It follows that care must be taken to ensure that the application being developed does not spend too much time processing messages, including OnClick, OnPaint, OnResize, etc. To some extent, this can be controlled through the properties of the TIdAntiFreeze class. The use of this component is not mandatory, but it allows you to solve the problem of synchronizing connections with the visual interface of the application.

TIdDateTimeStamp

A class for performing date and time math related to the fact that Internet protocols use different date and time formats; in addition, clients and servers may be located in different time zones.

TIdIPWatch

It is a timer-based component that constantly monitors changes in the computer's IP address. Component events occur when a change is detected. This component is usually used to detect whether a computer is connected to the Internet or any other network. The change in IP address in this situation may occur due to the IP address being assigned by the DHCP (Dynamic Host Configuration Protocol) server when connecting to the new network.

TIdLogDebug

The purpose of this component is to intercept events of any client or server component and place a record of the event in the specified file. This component is very useful for debugging Indy components.

TIdMessage

The component is used in combination with other components to properly decrypt or encode messages. These can be POP, SMTP and NNTP components. The class supports MIME encryption and decryption, multibyte characters, and ISO encoding.

TIdNetworkCalculator

One of the few Indy components that can be used when building applications. The network calculator can be used to perform calculations on IP addresses, including network masks, subnet, network classes, etc.

TIdThreadMgrDefault

The component provides control of secondary processes by default. Created when any Indy component that supports process management does not have an instance of the TIdThreadManager class defined. The component provides only basic capabilities for managing secondary processes: creating and destroying them on demand.

TIdThreadMgrPool

A more advanced process management component than TIdThreadMgrDefault because it merges processes rather than creating or destroying them on demand.

TIdVCard

VCard - electronic equivalent business card, may contain personal information of the owner, graphic data.

TIdIMFDecoder

Designed for decoding Internet messages. It is a descendant of the TIdCoder class, just like all other encoder components. The TIdCoder class decodes according to the ARPA Internet text message format standard RFS-822, proposed in August 1982, and the USENET messaging standard RFC 1036, proposed in December 1987.

The component extends the TIdCoder class to allow detection of RFS-822 format by header context, providing decrypt-on-receive mode and MIME encryption and decryption. The TIdIMFDecoder component is used in the TIdMessageClient class to decode received and transmitted messages.

TIdQuotedPrintableEncoder

QuotedPrintableEncoder allows you to decrypt text in the specified format. Can serve as a standalone component with a specified encoding type, allowing messages containing a new encoding type to be transmitted.

TIdBase64Encoder

Implements another encryption algorithm that makes it possible to transmit non-printable characters.

TIdUUEncoder

Implements one of the first encryption algorithms, UU encoding. Sometimes used when mailing articles to a news service.

TIdXXEncoder

This encryption method is unlikely to ever be used. Essentially, this is the same UU encoding, but with a different encryption table.

TIdCoderMD2

Components with different types of MD (Message Digest) encryption algorithm. They are all shuffle-based, one-way, and have no decryption algorithms.

Components of protocol clients and servers can be used to develop server and client Internet applications, together with or instead of basic ones (ClientSocket, ServerSocket) and other components from the Internet and Fastnet palette. Indy components do not use the WebBroker architecture, implementing low-level support for Internet protocols and services directly in their source code (source codes included).

TIdConnectionInterceptOpenSSL and TIdServerInterceptOpenSSL

The SSL protocol - Secure Sockets Layer, which ensures the secrecy and reliability of communication between two applications, has two layers. At the low level of a multi-layer transport protocol (such as TCP), SSL is a recording protocol and is used to encapsulate various higher-level protocols. The advantage of SSL is that it is an independent application protocol, but a higher-level protocol can be used on top of SSL.

SSL provides communication security, which has three main functions: providing a confidential connection; public key encryption (used to confirm the identity of the recipient); support for data transmission reliability.

  • Symmetric cryptography is used to encrypt data (eg DES, RC4, etc.).
  • The digital signature is provided using asymmetric public key encryption (for example, RSA, DSS, etc.).
  • Reliability of communication, message transport includes checking the integrity of the message through MAC correction codes, secure hash functions (eg, SHA, MD5, etc.) using MAC calculations.

In combination with HTTP and server authentication, SSL provides the necessary encryption functions and further maintains the established connection by cross-checking the identity of the Web server, etc. It is important to understand that SSL only protects communications during data transfer and does not replace other security mechanisms.

The TIdConnectionInterceptOpenSSL and TIdServerInterceptOpenSSL components provide both client-side and server-side connections using the SSL protocol. It should be noted that the TIdConnectionInterceptOpenSSL and TIdServerInterceptOpenSSL components are only available in Delphi 6, but not in Kylix. This is due to the complexity of the protocol, which in the case of a Windows implementation is based on operating system functions.

Examples of using Indy components can be found in the /Delphi6/Demos/Indy directories. In total, the Indy library in version 8.0 contains 69 components. It is stated that in version 9.0 the specified library will contain 86 components. All components are unified and included in both Delphi 6 and Kylix, which allows them to be used for developing cross-platform applications. All Indy components support multithreading.

The Indy components implement almost all the functionality found in the Internet and Fastnet components, as is clearly shown in the table.

Fastn et components Indy components Purpose of components
1 TserverSocket, TClientSocket TIdTCPserverSocket, TIdTCPClientSocket Interaction between two computers (client and server) using the TCP/IP protocol
2 TNMDayTime TIdDayTime, TIdDayTimeServer Query the server for the current time
3 TNMEcho TIdEcho, TIdEchoServer Used to communicate with the response server
4 TNMFinger TIdFinger, TIdFingerServer Used to obtain information about the user from an Internet search server
5 TNMFTP TIdFTP, TIdTrivialFTP, TIdTrivialFTPServer Provide file transfer using FTP protocol
6 TNMHTTP TIdHTTP, TIdHTTPServer Use HTTP protocol for data exchange
7 TNMMsgServ, TNMMsg Used to transmit simple text messages from client to server
8 TNMNNTP TIdNNTP, TIdNNTPServer Supports data exchange with news server
9 TNMPOP3 TIdPOP3 Used to receive email from a mail server using the POP3 protocol
10 TNMSMTP TIdSMTP Used to send email via Internet mail server
11 TNMStrm, TNMStrmServ Transmits binary data written to a stream using the TCP/IP protocol
12 TNMUDP TIdUDP, TIdUDPServer Transfer data using the UDP protocol
13 TpowerSock, TNMGeneralServer Component-encapsulated classes that are the basis for writing your own clients (Powersock) and servers (NMGeneralServer)
14 TNMUUProcessor TIdUUEncoder, TIdUUDecoder Converts binary files to MIME or UUENCODE format
15 TNMURL Converts strings to HTML format and performs reverse conversion

The exceptions are classes such as TNMMsgServ, TNMMsg, TNMStrm, TNMStrmServ, TpowerSock, TNMGeneralServer, TNMURL, which either implement obsolete protocols or have functionality implemented in a large group of alternative classes.

However, unlike its predecessors - the Internet and Fastnet components, Indy contains richer server components and components for data transcoding and encryption, as well as authentication support (Indy Misc palette). As can be seen from the table above, the main protocols and services are provided not only by client, but also by server components. These are time services, response services, obtaining user information, as well as HTTP, NNTP, UDP protocols and even the simplest version of FTP.

Some examples of using Indy components

In Indy components contained in Delphi, the IP address is defined in the Host property, typically only in client applications. Server-hosted components have methods that allow you to start or stop polling the corresponding port - for example, changing the Active property of the IdTCPServer component starts or stops polling the corresponding port. Once the connection between the client and server is established, data transfer can begin.

In Indy components great attention focuses on security and reliability when working with data. For example, the IdTCPClient component has Connect and Disconnect methods. Using a programming technique like the below code from the client side:

with TCPClient do begin Connect; try lstMain.Items.Add(ReadLn); finally Disconnect; end; end;

and using the Connection property passed as a parameter to the AThread instance of the TIdPeerThread class from the server side:

with AThread.Connection do begin WriteLn("Hello from Basic Indy Server server."); Disconnect; end;

you can count on either the normal execution of the connection or the correct error handling.

Note the ReadLn and WriteLn methods of the corresponding classes - they resemble standard Pascal I/O statements. This is a tribute to the UNIX programming technique, where most system operations are performed by reading and writing to the corresponding files.

Just like Fastnet components, Indy component classes have events that can be used to provide event management. For example, you can arrange for a message to be displayed on a form when connecting to a client:

procedure TForm1.IdECHOServer1Connect(AThread: TIdPeerThread); begin lblStatus.caption:= "[ Serving client ]"; end;

Indy provides components that implement protocols with client and server parts that are unique to this library. The TIdGopherServer and TIdGopher components, thanks to the GetExtendedMenu, GetFile, GetMenu, GetTextFile methods on the client side and ReturnGopherItem, SendDirectoryEntry on the server side, help to view files of various types, including those marked as hidden, as well as directories on remote computer(similar to how the dir *.* command does it in the MS-DOS operating system).

Using the IdSMTP and IdMessage components, you can easily create your own Web application that can send mail using the SMTP protocol.

In this case, the IdMessage class (one of 23 components from the Indy Misc page) is responsible for generating the message, which follows from its name, and IdSMTP is for organizing the connection with the mail server.

The technology used in Indy uses locking read and write operations. Any Connect operation used in Indy waits for the connection to complete. When working with Indy client components, you typically need to do the following:

  • request a connection to the server;
  • make read and write requests to the server (depending on the type of server, the step is performed once or repeated many times);
  • end the connection to the server and disconnect.

Indy components are designed to provide an ultra-high level of abstraction. The intricacies and details of the TCP/IP stack are hidden from the programmer so that he can focus on the task at hand.

The following small example shows a typical client bean session:

with IndyClient do begin Host:= "zip.pbe.com"; // Host to call Port:= 6000; // Port to call the server on Connect; try // Your code goes here finally Disconnect; end; end;

In the example, even if the connection to the server is not established, the connection will be gracefully terminated due to the use of the try-finally statement.

Indy's server components describe a variety of server models that can be used depending on your needs and the protocol you're using.

TIdTCPServer is the most commonly used server component, which creates a secondary process independent of the main application process. The created process awaits incoming requests from potential clients. An individual secondary process is created for each client whose request it responds to. Events that occur during the maintenance process are related to the context of the corresponding processes.

In other words, for each client connection, the TIdTCPServer class uses a unique secondary thread by calling that thread's OnExecute event handler. The formal parameter of the OnExecute method is a reference to an instance of the Athread class corresponding to the created thread. The Connection property of this class is a reference to the TIdTCPConnection class, an instance of which is created to process the client request. TIdTCPConnection supports reading and writing over the connection, as well as establishing and terminating a communication session.

The UDP protocol works without first establishing a connection with the server (each sent packet is an independent set of data, and not part of a larger session or connection). While TIdTCPServer spawns separate threads for each connection, TIdUDPServer uses either a main thread or a single secondary thread that handles all UDP protocol requests. When TIdUDPServer is active, a thread is created to listen for incoming UDP packets. For each packet received, an OnUDPRead event is raised either on the main thread or in the context of the listening thread, depending on the value of the ThreadedEvent property. When ThreadedEvent evaluates to False, the event occurs on the main thread, otherwise it occurs on the listening thread. While the event is being processed, other server operations are blocked. Therefore, it is important to ensure that OnUDPRead procedures run as quickly as possible.

If you need to create a new client application for an existing server using an existing protocol, your job is solely to develop and debug the client application. However, when we have to develop both client and server applications using an existing or new protocol, we are faced with the classic “chicken and egg” problem. Where to start programming - from the client or from the server?

Obviously, both the client and the server must be created eventually. For many applications, especially those using a text-based protocol (such as HTTP), it is easier to start building the application by designing the server. And for debugging there is a convenient client that already exists. This is a Telnet console application that is available on both Windows and UNIX.

If you type the console command telnet 127.0.0.1 80 with the IP address of the local computer and port number 80, which is used by default by Web servers, the application will respond with the text shown in Fig. 6, in case of Windows 2000 OS and IIS 5.0.

To create the simplest server using Indy components you need:

If you need to design a server that will not only correctly inform its clients when the connection is lost, but also provide them with information about error situations that have occurred, use the try-except statement instead of try-finally - for example, as shown in the following example:

procedure TDataModule1.IdTCPServer1Execute(AThread: IdPeerThread); var s: String; begin with AThread.Connection do try try s:= ReadLn; // Perform the task of the server here // if no exception is raised, // write out the server's response WriteLn(s); except on e: Exception do begin WriteLn(e.Message); end; //on end; //try except finally Disconnect; end; end;

This small example demonstrates the steps to create a simple text server, as well as how to debug it.

The above server is typical example organization of modern distributed computing.

Features of creating multi-tier applications

Recently, multiple servers are increasingly being used to satisfy client requests. A server of this type, having received a client request and partially prepared it for further processing, contacts another server and sends it the transformed request or requests. The second-tier server can, in turn, communicate with other servers. Thus, we can talk about a multi-tier server architecture.

Next we will create a data access server whose purpose is to return data from the database. This server, however, does not read or write to the database files directly. Instead, it communicates with the database server in search of the data required by the client.

So, we start developing an application with a three-tier architecture. To create a database server using Indy components you need:

  1. Create a new project.
  2. Place on main form project instance of the TIdTCPServer component from the Indy Servers palette.
  3. Set the DefaultPort property of the TIdTCPServer1 class instance to 6001 (it is recommended to assign large values ​​to avoid duplicating port numbers across different applications), and set the Active property to true.
  4. Add a new module to the project by selecting the File | New | Data Module, and place instances of the SQLConnection and SQLDataSet components on it from the dbExpress tab on the components palette.
  5. Set the ConnectionName property of the SQLConnection class to IBLocal and LoginPrompt to False. If you have not configured IBLocal on the employee.gdb database, complete this procedure first.
  6. Set the SQLConnection property of the SQLDataSet class to SQLConnection1 and assign the CommandText property to the SQL statement: select CUSTOMER, CONTACT_FIRST, CONTACT_LAST from CUSTOMER where CUST_NO = :cust.

Often one innovation causes the end of another. Until recently, Blogger ran a search engine based on Google's personal search. We had, and still have access to, the widget “ Search window", but he does not work. Instead, Google quietly introduced a simple blog search for Blogger. On the one hand, this is a simplification and loss of the ajax solution, and on the other hand, it is a mechanism that is understandable and tracked in Google Analytics.

  • How to Create a Blog Search Form for Blogger

Blog search widget for Blogger

To begin with, the list of widgets on Blogger still includes a “Search Box” that allows you to search your blog, blogroll, and other content you specify based on Google’s custom search engine.


Search Box widget not working

But even on the official Google blog, in Chrome browser, with AdBlock disabled, for the exact keyword, it does not show anything and it is unclear whether this will be fixed in the future or not. The problem has appeared for a long time, and the results of its solution are not visible.

It should also be noted here that Google custom search operates in secure mode, using the HTTPS protocol, to ensure the confidentiality of user data. On the one hand, this is good, but on the other, it is impossible to find out what users were looking for on the blog, and this is really interesting.

Google Site Search for Blogger

In fact, Google did something clever. They didn’t fix anything, but wrote JavaScript code using the jQuery library, which redirects to Google search.

$(".searchBox input").on("keypress", function(ev) ( if (ev.which == 13) ( window.location.href = "https://www.google.com/search?q =site%3A" + window.location.hostname + "%20" + encodeURIComponent ($(this).val()); ) ));

In this case, the HTML code of the search form for inserting into a regular HTML/JavaScript widget may look like this:

Thus, the user enters a search query into the search form, clicks the Enter button, and the script redirects him to the Google search result page for the query:

site:[domain name] [search term]

The solution is quite universal, but do not forget that it requires jQuery!

How does blog search work for Blogger?

As such, the search engine on Blogger has been around and used for listing archive pages for a long time. If you have enough posts on your blog, click the "Previous" link and you will be taken to a page with a URL like this:

Http://www.?updated-max=2013-11-21T08:00:00%2B02:00&max-results=7

It should be noted that in the default (by default) robots.txt file, the /search folder is prohibited from indexing, with the following line:

Disallow: /search

This is right. Otherwise, you will get a lot of duplicate pages, which can lead to not the most pleasant consequences.

The main thing is that the blog search is now carried out through this address, specifying the q parameter in which a query representing the search phrase is transmitted, for example:

http://www.?q=php

In this case, a search will be made for messages that contain the phrase “php”. It is noteworthy that there is no morphology here, i.e. is underway search by exact match with the specified phrase.

How to create a blog search form for Blogger?

The mechanism we need is there. All you need to do is insert a search form on your blog. To do this, we will use an HTML/JavaScript widget, which allows you to add applications or other third-party code to your blog, i.e. us loved ones.


HTML/javascript widget for Blogger

Just go to the section " Design"of your blog and click the link " Add a gadget» in the section you need. In the window that opens, find and click “ plus sign» at the HTML/JavaScript gadget. In the window that opens, in the “Title” field, enter the title of the form, for example: Blog Search, and in the “Content” field, enter the following HTML code:

Obviously, instead of www.site you will need to register the domain name of your blog. It should also be noted that I have given the simplest and most working option, which you can change and design as you please. Click the button Save».

The search result looks like this on my blog:


Blog search result for Blogger

It should be noted that the request does not remain in the search form field, and the highlight keywords absent. Still, it's better than nothing. Well, if you wish, these problems can be eliminated using the same JavaScript.

Let's sum it up

Creating the search form itself and adding it to your blog through the HTML/JavaScript gadget is not something complicated. In the article I presented the simplest, but quite working option, which I use myself. That's all I have. Thank you for your attention. Good luck!

at 8:00 Edit message 5 comments

The popularity of the Internet continues to grow. Today, according to experts, its services are used by about 14% of the population over the age of fifteen (that is, about 694 million people). Moreover, when assessing the audience of the Global Network, users who have mobile Internet access and attend Internet cafes, clubs and classrooms are not taken into account. The leading position in the number of Internet users is still occupied by the United States (152 million people), followed by China (72 million) and Japan (52 million).

It is worth noting the advanced dynamics of the third world. IN currently only a quarter of all Internet users live in the United States, down from more than two-thirds a decade ago. However, it cannot be said that the Internet has become equally popular throughout the world. So far it is most common in the USA, Europe and Asia. If we talk about Latin American countries, then it is not so popular there. For example, Brazil, which occupies a leading position in the number of Internet users in Latin America, has only 13.1 million Internet connections. And a continent like Australia is only in 15th place (9.7 million users).

If we talk about Europe, the leaders there in terms of the number of Internet users are Germany and the UK, which occupy fifth and fourth places in the world ranking, respectively (32 and 30 million users). As for the most popular Internet resources, the first three places are given to sites of companies such as Microsoft (538.6 million visits), Google (495.8 million) and Yahoo! (480.2 million). Next comes the popular American Internet exchange eBay, which ranks fourth (269 million visits).

If we talk about the type of content that attracts Internet users today, then first of all we should mention blogs, the popularity of which is growing by leaps and bounds. Let us remind you that a blog, or web log ( from English blog, web log - a virtual network journal or diary of events) is a website whose main content is regularly added entries, images or other multimedia content. According to the authorship, blogs can be personal, group (corporate, club, etc.) or public (open); by content - personal (open or closed), thematic or general. Blogs can be networked based on thematic or other criteria. Blogs are now much more popular as a networking medium than email, news groups, web forums, and chat rooms. Moreover, web logs are sometimes so closely intertwined with each other that some users already consider them a kind of collective intelligence online community. In Russia, the most famous blogging systems are LiveJournal.com, Liveinternet.ru and Diary.ru. But the leader in popularity among blog hosting sites on the RuNet remains Livejournal.com - according to Yandex statistics, it is significantly ahead of its Russian counterparts Liveinternet.ru and Diary.ru.

As you know, a modern Internet user usually searches for information on the Internet using search services. But, since searching blogs using standard search tools, due to the specifics of their creation, formats and supporting software, is somewhat difficult, the need arose for specialized search services that would perform searches exclusively on blogs.

For example, specialists from the University of Amsterdam conducted a thorough analysis of the logs of the search engine Blogdigger.com for May 2005 (that’s 1.2 million queries), studying it from different angles: the purpose of search queries, their subject matter, and user behavior. It turned out that blog search is significantly different from regular Internet search. Here, 52% of all search queries (and after filtering out “garbage” - all 78%) are proper names - these are the names of people, product brands, company names, city names, etc. In addition, general thematic queries (linguistics, humor, Islam) are very popular, with the help of which people search for blogs on specific topics. However, when searching on blogs, users behave in much the same way as on regular search engines: short sessions in which attention is paid mainly to the first search results.

(http://www.technorati.com/)

Until recently, the most popular blog search service worldwide was Technorati, which provided the ability to search 17 million blogs. At the end of July this year, this largest blog search engine updated its interface and also made some changes to the core to speed up query processing.

Among the main innovations are the appearance of Discover, Most Popular and Favorite navigation panels. Discover is a thematic catalog of blogs, Most Popular is a rating, and in Favorite the visitor can add favorite blogs and, if desired, select only from them.

As for changes in the search engine, Technorati management reports in its blog about faster query processing and more correct definition of links in blogs. In the near future, it is planned to implement language localization, faster indexing, as well as detailed statistics on the entire global blogosphere.

According to the search engine management, changes in operation were necessary, since the site could no longer fully provide ease of use. According to Technorati, the size of the blogosphere is growing exponentially and is already approaching 50 million blogs, which, undoubtedly, was also one of the main reasons for changes in the service.

Google Blog Search ( )

The most popular search portal Google has also expanded its search capabilities with the help of a specialized search module in online diaries. The Google Internet Archive will include all blogs, not just those previously published on the dedicated Google Blogger website.

At the moment, the service exists in beta version and searches can only be carried out on blogs published since June 2005. However, according to company representatives, work is now underway to include those diaries that were previously published on the Internet. Using the new search engine, it will be possible to find blogs by author or by the published text of the message. Moreover, Google will actively index all blogs that have an automatic system for tracking web page changes.

The creator of Technorati, after the appearance of blogsearch at Google, published a letter on his company’s blog in which he welcomed the appearance of Google in the blog community. He writes that the search portal's decision to include blogs in its archives showed that Google is taking this relatively new Internet phenomenon seriously.

We also note that Google recently began maintaining a corporate blog in Russian. The first post that appeared on this blog was written by the head of the Russian division of Google, Vladimir Dolgov. The Russian blog is run by Russian-speaking Google employees for a Russian-speaking audience. The blog is located at: GoogleRussiaBlog.blogspot.com. Russian division The company hopes that bloggers will support Google's corporate blog by sending their feedback on what information they would like to see included.

Of course, Google is by no means the first company that decided to include blogs in its search, but this decision can truly be considered significant, since this portal is the clear leader among Internet search engines. Note that even before the creation of the blog search service, Google acquired the company that helped turn web logs into a worldwide phenomenon (the most popular search engine bought Pyra, and with it the technology behind the Blogger system - software and website supporting millions of blogs around the world).

Google's strategy is to ensure that users get everything they want from the search engine, regardless of the query. After all, people are often looking for information about what is happening at the moment, they want the latest news and comments, which can sometimes only be found in web logs.

However, users of Google's search engine are already noting the inconvenience of the new search engine. For example, the default sorting there traditionally occurs by query relevance, and not by time, which is especially important for blogs. After all, in blog search the main thing is efficiency, not relevance.

Other international search engines also work with blogs. So, in the news section on the Yahoo! There is a new search option - in news and blogs. A list of blogs that contain the specified keyword phrase will be displayed in separate window, next to the news feeds of the largest news agencies. After all, despite the fact that bloggers are not professional journalists, they sometimes surpass the media in both speed and detail of description. In addition, journalists are physically unable to cover all events. However, blogs still do not guarantee reliability, so Yahoo! did not mix information from them and from 6.5 thousand responsible news sources.

In addition to blog posts, search engine users can view amateur photos of events on the photo-sharing site Flickr, owned by Yahoo!. Pictures of the aftermath of the bombings in London or Hurricane Katrina in the United States attracted especially many visitors.

The well-known search resource Ask.com (http://www.ask.com/), owned by IAC/InterActiveCorp, also recently acquired the option to search for information in blogs. The new service is called Bloglines. At the same time, representatives of the resource note that their brainchild is significantly different from other similar services that work like traditional search engines, and filters out spam, which has recently begun to acquire alarming proportions in blogs.

Users will be able to save searches and share their results with others. They will also be able to post their own searches on sites like Bloglines and Digg. The company also does not intend to limit itself to introducing the new service only on its search resource, which has recently been completely redesigned, and is going to integrate new technologies into Bloglines.

Search blogs on Yandex ( )

Blog search in the Russian part of the Internet is implemented no worse than the international one. Best Search organized the search portal Yandex for blogs in Runet. Moreover, Yandex has long had a search for all RSS formats (RSS is a family of XML formats designed to describe news feeds, announcements of articles and changes in blogs), and even a news feed to boot. And it’s unlikely that Google will have time to index blogs the way Yandex does today.

And recently, Yandex has improved its blog search service - now home page The site presents such indicators of the blogosphere as hot topics, popular blogs and blog hostings.

Blog search, as a unique tool for navigating public opinion on the Internet, now allows you to explore the sentiments of users and the Russian Internet. Not only records, but also streams are found for the query, and the relevance of the search is significantly improved. In addition, thanks to the appearance of the saved copy, the user can watch full text records directly on Yandex, without following links. Advanced search makes it possible to search separately in blogs and forums by category, as well as find posts using the links mentioned in them.

Today in the search database of the blog search service, launched by Yandex in December 2004, there are more than 800 thousand Russian-language online diaries, and every day this service processes 100-160 thousand new entries. In total, Yandex knows more than 45 million entries in blogs and forums.

Other Russian search engines are also trying to work with blogs. For example, at the end of 2005, the communication service “Rambler Planet” (http://planeta.rambler.ru) was launched - a single block of portal communication services. Rambler's new project is positioned as a means for Internet users to create their own representation on the Internet, the core of which is a multimedia diary. In this diary you can publish and view not only text messages and photographs, but also videos. Moreover, “Planet” is integrated with other portal resources - “Rambler Photo”, “Rambler Group” and “Rambler Vision”. And at the beginning of this year, a new opportunity appeared in the Rambler Planet multimedia diary system - users can now organize thematic communities. Another new feature is also pleasing: the ability to publish SMS. Now you can make entries in your online diary using mobile phone. Soon it will be possible to connect RSS and diaries from other systems and organize ratings. All communities existing today are collected in the Rambler thematic catalog.

Russian "Blogus" ( )

In addition to Yandex, searches in Russian blogs are also carried out on the website of the domestic project “Blogus”. Of course, this project is far from the complete coverage of the blogosphere that Technorati or Yandex have, but you can find interesting information there too. The service is still in beta version, its interface is constantly being improved, and in the near future it promises to become a fairly simple, functional and convenient search tool aimed specifically at bloggers. At this stage, the Blogus developers plan to maintain and index no more than 10 thousand of the most popular blogs. Thus, if Yandex allows for the widest search, then “Blogus” will become its narrower thematic addition, taking into account the authority of a particular blog.

Especially for the site

Vladimir Gubailovsky

Google has launched a search for online diaries or blogs. The search is carried out not only through the service provided by Google itself - the Blogger service, but through all other blogs that provide information about changes in the form of updates. Google's search index currently includes blog posts going back to June 2005, but Google intends to index older posts as well. Using the service, you can find the desired online diary, author or individual entry, and in a selected chronological interval.

Search in the blogosphere

It's no surprise that Google released blog search. It's surprising that a company known for its keen sense of innovation, and recently releasing new services and tools almost every week, took so long to offer users this particular service - blog search.

Blogs have their own specificity that sets this type of site apart from all others, and therefore blog search is different from traditional search. For comparison: Yandex released its blog search back in December 2004. And Google simply did not see the specifics that the blogosphere carries (this term has already established itself as a definition of all blogs that exist on the Internet).

According to Technorati, the total number of blogs on the Internet has already reached 16.1 million, their number doubling every five months - a new blog is created every 5-7 seconds. Blogs - online diaries - are written and published today by both individuals and major companies. Moreover, the most recent chronological blog entries are of main interest. And large search engines, even such fast ones as Google, update their indexes quite slowly - they simply do not notice the specifics of the blog and index everything. Traditional search engines, such as Google or Yahoo, build their indexes for web searches by “scouring” the Web using automatic search robots that collect everything they can find from all the web pages they come across. It is not uncommon for news from last year or even older to appear on the first page of a search. search system is not always well oriented in time. This is quite natural - she has to work with the date the page was updated, and the page could have been updated without any change in content. A search engine cannot guarantee the dating of any Internet page.

"Upstarts" in the search market

Time delays and irregularities in chronology when working with blogs, which are constantly encountered in traditional search engines, have given small search engines a chance. These services focus on indexing blogs as quickly as possible. They try to track updates to the blog within a few minutes to make those changes searchable. New services, some of which are not even a year old, of course face many problems. The technology is still developing, and companies are just figuring out the best ways to track and sort blogs. Some services lose many blogs, while others select sites that happen to be similar to blogs. On DayPop. There is a small number of blogs represented - about 60 thousand, but these blogs were selected by the site editors as the most interesting from their point of view. Sites like Technorati, Feedster, IceRocket (this service is the best at indexing Russian blogs today) and BlogPulse have collected many more blogs - from 15 to 20 million. The search results of these systems produce many more results, often from rather inconspicuous, but very interesting sources. While Technorati and BlogPulse focus exclusively on blogs, Feedster and IceRocket also offer an option that allows you to search for news from traditional sources - news agency feeds, online newspapers and other official news content providers.

While Google, Yahoo and Microsoft process billions of pages, blog searches are concentrated on 10 to 20 million sites. Here, search engines use methods that are only applicable to blogs and are not suitable for indexing arbitrary sites. According to The Wall Street Journal Online, Technorati, for example, most often relies on the “pinging” mechanism to monitor blogs. Most bloggers organize their journals through services such as Blogger or LiveJournal, which automatically ping the search engine whenever the blog changes. Technorati CEO David Sifry says his company has agreements with many blog hosting companies - Technorati gets pings before other search engines. Upon receiving such a message, Technorati immediately updates its search index. Feedster also uses ping monitoring, but in addition, it collects updates using an RSS feed (like the newly launched Google blog search), which posts all accumulated updates at a certain frequency. But, using only RSS feeds and ping messages from large blog services, you can lose those important blogs that exist independently. Therefore, IceRocket also uses its own search robot, which crawls the Web and independently indexes blogs. A search robot can distinguish a blog from any other site - because blogs have their own characteristic differences. Any blog has a chronological sequence of entries, each entry containing an explicitly stated date and title.

Time in hyperspace

Scientific observer for Radio Liberty Alexander Sergeev described the specifics of blogs as follows: “Together with blogs, time or even Time came to the Internet. Before blogs, the Internet was a hyper-Space in which time was absent. Websites were created, updates were posted, but time was clearly only present in news feeds, and there are very few news feeds compared to the entire volume of the Web. The fact that a blog is necessarily connected with the chronology of entries sets a completely definite structure that did not exist before the blog."

Google missed the blog search, didn't come first here, and now has to catch up. Google probably figured that if a company had the best search engine, it would index blogs just as well as everything else. But it turned out that this is not entirely true. The situation on the Internet is changing so quickly that even Google, with all its sensitivity and agility, is no longer fast enough to be the first everywhere - and the most painful thing for the company is that it missed the segment of the search market. If Google had launched blog search a year ago, many of the companies that have risen today in this segment of the market simply would not have arisen.

Recently, the so-called “guerrilla marketing”, “crowd marketing”, which is aimed at increasing the link mass from blogs, forums, question and answer sites, and comments, has become increasingly popular. If you don’t have time to carry out this work, I’m ready to immediately recommend the guys from the Referr service (their examples of work).

Today I'll briefly cover the basics of effectively using Google search filtering for effective crowd marketing. This topic is also relevant because Google is hiding some of the search filters that were previously available.

View Google results in other countries

In the age of personalization, it has become almost impossible to quickly view search results in another country as seen by local users. However, there are still options.

Algorithm for viewing search results in other countries

  • go to “Incognito” mode in Chrome (Ctrl+Shift+N);
  • In the address bar, enter the Google domain of the corresponding region and /ncr (the method is outdated and does not work) - this method applicable to all regions;
  • It is advisable to switch the browser interface language to English
  • enter the required query and get the result;

The above method no longer works.

To check the output from the selected country, use a VPN. For example, built-in free in the Opera browser.

There is another way to view search results in Google USA - this is to use the aol.com website, which aggregates Google.com search results. The main thing is not to forget to search in “Incognito” mode.

Google search for forums

What does this filter do? It filters search results and displays only those related to forums and Q&A listings. This filter is very useful for those who want to increase brand or product awareness in discussions. This is very easy to do by searching for topics on information resources where people need your product or service. The main thing is not to advertise, but to help people. Is the link just an addition or one of possible options solving a user problem.

https://www.google.com.ua/webhp?tbm=dsc - search for discussions (the method is outdated, Google has removed the functionality)

This filter also has more subtle settings that will help you find only the latest topics on the forums (day, week, month) or leave results only from the country in which you are located.

Addition: any search query can be converted into a discussion search by adding it to the end of the address bar &tbm=dsc

Google Blog Search

To limit your search results and see only results for blogs, enter the following address

New on the site

>

Most popular