text:
KEEPING AN EYE ON WEB SERVERS so that they run smoothly is an essential part of the administrator's job, for both performance and reliability purposes. Sensible logging helps to detect performance problems well before they become apparent to users, and provides evidence of potential security problems.
In this chapter I will first explain how to configure Apache for logging purposes, highlighting the most common problems. I will then introduce remote logging using syslogd, the standard logging server that comes with Unix. Finally, I will propose a remote logging solution, which will allow you to encrypt logging information and store it on a remote database using MySQL.Why Logging?
Log files show you what your daemons are doing. From a security perspective, Apache's log files are used for:
- Logging requests made and pages served in order to identify "suspicious" requests.
- Logging Apache's extra information, such as errors and warnings. This information is very interesting, because an attack generally creates some abnormal entries.
The importance of log files is often underestimated. Sometimes, even in important production servers, they are left there to grow and grow, until one day they make themselves noticed because they have filled up the file system.
NOTE Log files should never be placed on file systems that don't support adequate logging. Typically that means NFS, but it might also mean Samba, AFS, and others. You must either log to a remote application or to a local file system.
Configuring Logging in Apache
I will give an overview of how to configure log files in Apache. Remember that this is not a comprehensive explanation, and for more information you should look at Apache's official documentation: http://httpd.apache.org/docs/logs.html.Normal (Classic) Configuration
There are two types of log information in Apache: the access log (handled by the module mod_log_config) and the error log.
The access log records every request sent to the web server. A typical configuration is:
LogFormat "%h %l %u %t "%r" %<s %b" common
CustomLog logs/access_log common
NOTE A better term for access log would be activity log, because you can use the powerful Apache directives to potentially create log files that just log unique ids or user-agents. However, in this book I will use the more common term access log.
Here, LogFormat sets a log format and assigns a name to it, common in this case. Then, Apache is instructed to log access information in the file logs/access_log, using the format defined in the previous line (common). To find out the exact meaning of each parameter, check Apache's documentation. You will find out that Apache can log almost anything pertaining to a request, including the client's address and the type of request itself. The log file format just described is the most common for HTTP requests (for example, IIS is capable of generating the same result), hence its name.
Apache server's error messages are logged separately, using a different file. In this case, there is no definite format for the messages, and these directives are defined:
ErrorLog logs/error_log
LogLevel warn
The first directive, ErrorLog, instructs Apache to log all the errors in logs/ error_log. The second directive sets the minimum importance for a message to be logged (the "level" of the message). These levels are defined in Table 3-1.
|System is unstable
|Immediate action required
|Critical error
|Non-critical error
|Normal but significant
|Debug level
Table 3-1. Apache Error Levels
Remember that if you decide to set the log level to crit, the messages for more important levels will be logged as well (in this case, alert and emerg).
NOTE Notice level messages are always logged, regardless of the LogLevel setting.
Sometimes, it is advisable to delegate all the logging to specifically developed parsing engines or archiving utilities. When Apache is started, it runs the logging program and sends all the logging messages to it. This solution is valid in many situations. For example:
- When you don't want to stop and restart your Apache server to compress your logs.
- When you have many virtual hosts. If you use a different log file for each virtual host, Apache will need to open two file descriptors for every virtual domain, wasting some of the kernel's and processes' resources.
- When you want to centralize your logging into one single host. The program specified in the configuration could send the log lines elsewhere instead of storing them locally, or for increased reliability, it could do both.
- When you want to create a special log filter that watches every log request looking for possible security problems.
There are some disadvantages to using an external program. For example, if the program is too complex, it might consume too much CPU time and memory. In addition, if the external program has a small memory leak, it might eventually chew up all the system's memory. Finally, if the logging program blocks, there is a chance of causing a denial of service on the server.
To delegate logging to an external program ( piped logging), you can use the following syntax:
CustomLog "|/usr/local/apache2/bin/rotatelogs
/var/log/access_log 86400″ common
The command /usr/local/apache2/bin/rotatelogs /var/log/access_log 86400 is run by apache at startup time.
In this case, the program rotatelogs will be fed the log lines by Apache, and will write them on /var/log/access_log. Remember that you can use the same syntax for Apache's error log using the directive ErrorLog. For more information about how CustomLog and ErrorLog work, refer to Apache's official documentation.{mospagebreak title=Security Issues of Log Files}
Logging appears to be a simple process, and you might wonder why security is involved at all. There are some very basic security problems connected to logging. For example:
- Logs are written as root, and permission problems can be dangerous.
- Logs are written in plain text, and can be easily modified and forged.
- Logging programs are executed as root; if they are vulnerable, an attacker may gain root access.
- Logs can cause a DOS if they run out of disk space (an attacker might do this deliberately).
- Logging can be unreliable; if Apache dies (for example after an attack), they could be incomplete.
I will discuss each of these problems in the following sections.Logs and Root Permissions
Apache is normally started by the root user, in order to be able to listen to port 80 (non-root processes can only listen to ports higher than 1024). After starting up, Apache opens the log files, and only then drops its privileges. This allows the Apache server to write to files that no other user may access (if the permissions are set properly), protecting the log files. If the log files were opened after dropping privileges, they would be a lot more vulnerable.
This implies that if the directory where the logs are stored is writable by common users, then an attacker can do this (note the wrong permissions for the logs directory):
[merc@localhost merc]$ cd /usr/local/apache2/
[merc@localhost apache2]$ ls -l
total 52
drwxr-xr-x 2 root root 4096 Oct 4 14:50 bin
drwxr-xr-x 2 root root 4096 Sep 13 23:18 build
drwxr-xrwx 2 root root 4096 Oct 5 18:10 logs
drwxr-xr-x 2 root root 4096 Oct 4 18:50 modules
[merc@localhost apache2]$ cd logs
[merc@localhost logs]$ ls -l
total 212
-rw-r–r–1 root root 124235 Oct 5 18:11 access_log
-rw-r–r–1 root root 74883 Oct 5 18:10 error_log
-rw-r–r–1 root root 5 Oct 5 18:10 httpd.pid
[merc@localhost logs]$ rm access_log
rm: remove write-protected file 'access_log'? y
[merc@localhost logs]$ ln -s /etc/passwd_for_example
[merc@localhost logs]$ ls -l
total 84
lrwxrwxrwx 1 merc merc 23 Oct 5 19:26 access_log ->
-rw-r–r–1 root root 75335 Oct 5 19:27 error_log
-rw-r–r–1 root root 5 Oct 5 19:27 httpd.pid
[merc@localhost logs]$
Obviously, this can only be done if the attacker has login access to the web server. The next time Apache is run, the web server will append to /etc/passwd. This would make the system unstable and prevent any further login by users. The solution is to ensure that the logs directory is not writable by other users.Logs As Modifiable Text Files
Log files are usually stored as text files, and they are therefore very easy to:
- Forge. A cracker might want hide any trace of his or her attack, and might therefore edit out those lines that would highlight the attacks.
- Delete. Logs might be quite valuable for your company for access-analyzing purposes, and missing information might represent a problem—and a loss of money.
- Steal. This wouldn't happen very often, but it's a possibility, especially if your logs have any value for data mining.
A possible solution to this problem is to protect the logs (and your system) properly so that these things can't happen. Another solution is remote logging, discussed in the second part of this chapter.Logging Programs and Security
Because the logger program is run as root, it must be kept simple, and the code must be audited for vulnerabilities like buffer overflows. In addition, the directory where the program resides must be owned by root, and non-root users must not have write permissions. Otherwise, they could delete the logging program and replace it with a malicious one.Logs and Disk Space
Because Apache logs can be big, you need to monitor their size. For instance, a cracker might send many requests, with the sole purpose of filling up the disk space, and then perform an attack (buffer overflow, for instance). If Apache's logs and other system logs share the same partition, the cracker will be able to perform any kind of buffer overflow attack without being logged.
Remember that all the system logs should be directed to a partition that will not cause system-wide interruptions if it fills up, such as /var. Further, the log files should be compressed once they are archived to save disk space. In addition, you can use a script that periodically checks the size of the log directory and issues a warning if too much disk space is being used, or if the log partition is full. The script could be as simple as this:
free_space=`df | grep $partition | cut -b 41-50`
echo $free_space
if [ $free_space -le 5000 ];then
message="WARNING: Only $free_space blocks left on
logger -p local0.crit $message
echo $message | mail -s "Partition problem"
This script assumes that the log partition is /dev/hda5. The available free space is taken out of the df command using cut (free_space=`df | grep $partition | cut -b 41-50). If there are fewer than 5000 blocks left (if [ $free_space -le 5000 ];then), the script logs the problem using logger, and sends an e-mail to merc@localhost. This script should be placed in your crontab, and should be executed every 15 minutes. This script can easily be improved so that it stores the available space each time in /tmp/free_space, and warns you if there has been a drastic change in the available space on the log partition. See Chapter 7 for more scripts aimed at automated system administration tasks.Unreliable Logging
After a DOS attack, the server's accountability (the logs) may be compromised; therefore, Apache might not be able to write the entries about the attack on the log files. This means that if an attacker performed a DOS attack against your server, you might not be able to investigate the attack.{mospagebreak title=Reading the Log Files}
There is one issue that seems to be overlooked by many system administrators: it is important to read and analyze log files. As I mentioned earlier, Apache has two types of logs: the error log and the access log.The Error Log
An ideal error log on a running server is an empty one (apart from information about the server starting and stopping) , when the error level is set to notice. For example, a "File not Found" error probably means that there is a broken link somewhere on the Internet pointing to your web site. In this case, you would see a log entry like this:
[Sat Oct 05 20:05:28 2003] [error] [client 127.0.0.1] File
does not exist: /home/merc/public_html/b.html, referer:
The webmaster of the referrer site should be advised that there is a broken link on their site. If there is no answer, you might want to configure your Apache server so that the broken link is redirected to the right page (or, if in doubt, to your home page).
If crackers are looking for possible exploits, they will generate "File not Found" entries in the error log, so keeping the error log as clean as possible will help to locate malicious requests more easily. Some exploit attempts are logged in the error_log. For instance, you could find:
[merc@localhost httpd]$ grep -i formmail access_log
[Sun Sep 29 06:16:00 2003] [error] [client 22.214.171.124]
script not found or unable to stat: /extra/httpd/cgi-bin/formmail.pl
[merc@localhost httpd]$
The formmail script is widely used, but it generates a number of security issues.
A segmentation fault problem needs attention as well. Apache should never die, unless there is a problem in one of the modules or an attack has been performed against the server. Here is an example:
[Sun Sep 29 06:16:00 2002] [error] [notice] child pid 1772
exit signal Segmentation fault (11)
If you see such a line in the log file, you will have to see what was going on at the time in the server's activity (possibly reading the access_log file as well) and consider upgrading Apache and its modules as soon as possible. Because of Apache's extensive use and deployment, most such problems in the core Apache package have been eliminated. Therefore, a segmentation fault message usually implicates an after-market or third-party module failure, or a successful DOS attack.
The Access Log
The access log includes information about what the user requested. If the error log reports a segmentation fault, you can use the access log to find out what caused Apache to die. Remember that if the cause of death is really sudden, because of buffering issues, the latest log information might not be in the log file.
You can also use the access log to check whether someone is trying to break into your system. Some attacks are easy to identify by checking for the right string in the log. You can find the entries for many Windows-aimed attacks just by looking for the exe string in the access log. For example:
[root@localhost logs]# grep -i exe access_log
126.96.36.199 – – [29/Sep/2003:06:25:22 +0200] "GET /_vti_bin/shtml.exe HTTP/1.0" 404 288
188.8.131.52 – – [29/Sep/2003:06:31:33 +0200] "GET /_vti_bin/shtml.exe HTTP/1.0" 404 288
188.8.131.52 – – [02/Oct/2003:02:17:53 +0200] "GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c: HTTP/1.1" 404 319
126.96.36.199 – – [02/Oct/2002:02:34:46 +0200] "GET /scripts/..%255c%255c../winnt/system32/cmd.exe?/c+dir" 404 –
[root@localhost logs]#
The main problem with using grep to look for attacks: URLs can be URL-encoded (see Appendix B for more information). This means that the last entry you saw in the access_log shown above could be written as:
126.96.36.199 – – [02/Oct/2003:02:34:46 +0200] "GET
/scripts/..%255c%255c../winnt/system32/cmd.%65x%65?/c+dir" 404 –
When encoded in this way, this URL would escape the grep filter. To perform an effective search, you will need to URL-decode all the URLs from your log files (you can use Perl for this), and then compare them with the suspicious ones. This simple script (Listing 3-1) should come in handy.
Listing 3-1. A Simple Script to Use As a Filter
use URI::Escape;
use strict;
# Declare some variables
# The cycle that reads
# the standard input
# The URL is split, so that you have the
# actual PATH and the query string in two
# different variables. If you have
# http://www.site.com/cgi-bin/go.pl?query=this,
# $path = http://www.site.com/cgi-bin/go.pl
# $qstring = "query=this"
my ($path, $qstring) = split(/?/, $_, 2);
# If there is no query string, the result string
# will be the path…
$result = $path;
# …BUT! If the query string is not empty, it needs
# some processing so that the "+" becomes "%20"!
if($qstring ne ""){
$qstring =~ s/+/$space/ego;
$result .= "?$qstring";
# The string is finally unescaped…
$str = uri_unescape($result);
# …and printed!
Note that the script is slightly complicated by the fact that a + (plus) in the query string (and only in the query string) must be converted into %20 ($qstring =~ s/+/$space/ego;), which is then translated into a space once the string is URL-decoded ($str = uri_unescape($result);).
You should call this script urldecode, place it in /usr/local/bin, and give it executable permission (chmod 755 /usr/local/bin/urldecode). To test it, just run it:
[root@localhost logs]# urldecode
this is a test: .%65x%65
this is a test: .exe
[root@localhost logs]#
The script acts as a filter as it echoes information to the standard output. The command to test your logs should now be:
[root@merc root]# cat access_log | urldecode | grep exe
You can change exe into anything you want to look for in your log.{mospagebreak title=Remote Logging}
In some cases, you'll want to store your logs on a separate, secure server on your network dedicated to logging. This means that your server won't be responsible for holding the logs, and if some crackers gain access to it, they won't be able to delete their tracks (unless they crack the log server as well).
There are two ways of doing this. The first one is to instruct Apache to send all the log messages to the standard Unix log server, syslogd. The second solution is to build a custom-made logger script that sends the log entries to a remote server. You can implement this in several ways, and it might prove to be better for security and simplicity.
In the following sections I will explain how syslogd works, how to configure Apache and syslogd so that logs are stored on a remote log server, and how to store log files remotely without using syslogd and encrypting the log information.Logging in Unix
Logging is a critical task. On a machine that acts as a server, there might be several daemons that log important messages continuously. Unix has logging facilities that make this completely transparent, and so Unix programs don't have to worry about where or how their messages are logged, or know about all the problems concerning locking or integrity of log files. They can use the ready-to-use functions that abstract the whole logging mechanism using the syslogd logging daemon.
syslogd at Work
The syslogd daemon runs in the background and waits for new messages coming from either /dev/log (a UNIX domain socket) or the 514 UDP port. For security reasons, syslogd will not listen to the 514 UDP port by default. This means it will only work locally, and not by remote (otherwise, everyone on the Internet could log information on your server).
A log message is a line of text, but it has two important attributes: the facility (to specify the type of program that is logging the message), and the log level (which specifies how urgent the message is).
The facility can be (from man 3 syslog):
- LOG_AUTH: security/authorization messages (DEPRECATED Use LOG_AUTHPRIV instead)
- LOG_AUTHPRIV: security/authorization messages (private)
- LOG_CRON: clock daemon (cron and at)
- LOG_DAEMON: system daemons without separate facility value
- LOG_FTP: ftp daemon
- LOG_KERN: kernel messages
- LOG_LOCAL0 through LOG_LOCAL7: reserved for local use
- LOG_LPR: line printer subsystem
- LOG_MAIL: mail subsystem
- LOG_NEWS: USENET news subsystem
- LOG_SYSLOG: messages generated internally by syslogd
- LOG_USER (default): generic user-level messages
- LOG_UUCP: UUCP subsystem
The log level can be (from man 3 syslog):
- LOG_EMERG: system is unusable
- LOG_ALERT: action must be taken immediately
- LOG_CRIT: critical conditions
- LOG_ERR: error conditions
- LOG_WARNING: warning conditions
- LOG_NOTICE: normal, but significant, condition
- LOG_INFO: informational message
- LOG_DEBUG: debug-level message
A program can use three standard library functions to log a message. They are:
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, …);
void closelog(void);
A program calls openlog() as soon as it is started; then, it uses syslog() to send log information to syslogd, and calls closelog() just before finishing its execution. The program sets the facility only once, with the facility parameter of the openlog() function, and then decides the importance level of each message, with the priority parameter in syslog(). The function syslog() uses the /dev/log UNIX socket to communicate with syslogd. You can see an example of this approach in Figure 3-1.
Figure 3-1. A diagrammatic representation of the logging process
You can see that Apache and other daemons don't actually record the files, but talk to syslogd instead. It is syslogd's responsibility to deal with the log requests.
Configuring syslogd
The syslogd daemon receives the logging requests issued by every running daemon on the system, regardless of the level of importance. Storing every log request onto a single file might lead to a huge and unmanageable log file, full of information of all kinds and levels of importance. Through /etc/syslog.conf you can decide:
- What messages to consider (facility and level)
- Where they should be stored
All the other log messages received by syslogd will be ignored. The syslog.conf file (usually found in the /etc directory) looks like this:
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
Each line contains two fields separated by one or more tab characters. The first field, on the left hand side, contains the facility and the level. For example, news.crit means "facility: news, level: critical." A star symbol (*) means "any." The second field is the file where the log information will be stored. The following line means that cron messages of any importance are stored in /var/log/cron:
cron.* /var/log/cron
Look at syslogd's man page (man syslogd and man syslog.conf) for more detailed information on how to configure syslogd.
{mospagebreak title=Logging on a Remote Host}
At this point, you may wonder why syslogd was proposed to perform remote logging, when the syslog() call offers no way to specify a remote server.
The reason is simple: a program (Apache, for instance) always uses the normal Unix domain socket (/dev/log) to log its messages. The syslogd daemon can be configured so that it doesn't store the received log messages on a local file, but sends them to another syslogd daemon running on the Internet and (obviously) listening to the 514 UDP port. Adding a line in the syslog.conf file can do this:
local0.info @remote_log_server.your_net.com
This forwards all the requests marked with the local0 facility and the info log level to the remote_log_server.your_net.com host. You can see an example of this approach in Figure 3-2. Please note that here, as an example, the syslog daemon A doesn't write any log files.
Figure 3-2. Syslog's structure for remote logging
Testing syslogd
The easiest way to test if your logging facility is working well is to use the logger utility (or the equivalent on your system). Suppose that you have an entry like this in the syslogd.conf file:
# Our testing bed
local0.* /var/log/apache_book
After modifying the file /etc/syslogd.conf file, remember to send a HUP signal to syslogd:
[root@local_machine root]# killall -HUP syslogd
Now, log a message using the logger utility, like this:
[root@local_machine root]# logger -p local0.crit "Hello readers…"
The /var/log/apache_book file will read like this:
[root@local_machine root]# cat /var/log/apache_book
Oct 6 19:35:31 localhost logger: Hello readers…
Now, modify your syslog.conf in your local machine so that it contains:
local0.* @remote_machine
Also modify the syslog.conf in the host remote_machine so that it contains:
local0.* /var/log/apache_book
You need to run syslogd with the -r option on the remote machine. Running this command on the local machine:[root@local_machine root]# logger -p local0.crit "Hello readers…"
will result in this message on the remote machine:
[root@remote_machine root]# cat /var/log/apache_book
Oct 6 19:35:31 local_machine logger: Hello readers…
[root@remote _machine root]#
It worked! All the logger command does is call syslogd(); it doesn't know what is going to happen to the message. It could be written to a log file, it could be sent to a remote server, or it could even be completely ignored. This is the beauty and the power of the syslogd daemon.Apache Logging Using syslogd
In this section, I will explain how to configure Apache so that it logs its error log and access log using syslogd.
Logging error_log through syslogd
From Apache 1.3, all you have to do is write syslog where the file name would be written in the httpd.conf file, like this:
LogLevel notice
ErrorLog syslog
The log levels (listed in Table 3-1) are identical to the ones used by Apache in its error log.
The syslog facility ID used by Apache by default is local7. Therefore, you need to add a line in the syslog.conf file like this:
local7.* /var/log/apache_error_log
You can set the facility in the httpd.conf file, writing this instead:
LogLevel notice
ErrorLog syslog:local0
In this book, I will assume that your Apache uses the facility local7. You should tell syslogd that its configuration file has changed:
[root@localhost root]# killall -HUP syslogd
Restart your Apache daemon:
[root@localhost root]# /usr/local/apache2/bin/apachectl restart
If everything went well, you should see Apache's log messages in /var/log/apache_error_log:
[root@localhost root]# tail -f /var/log/apache_error_log
Oct 6 20:30:53 localhost httpd[1837]: [notice] Digest: generating secret for digest authentication …
Oct 6 20:30:53 localhost httpd[1837]: [notice] Digest: done
Oct 6 20:30:54 localhost httpd[1837]: [notice] Apache/2.0.40 (Unix) DAV/2
PHP/4.2.3 configured — resuming normal operations
It worked; Apache is now logging its errors through the syslogd daemon. Of course, if you want a remote host to actually store the messages, you have to change the file syslogd.conf to:
You also need to restart your syslog daemon.
The server @remote_log_server should preferably be on your own network, and should be configured to store messages from facility local7 on a local file. Of course, the fact that a remote logging server would be receiving the log entries would be totally transparent to Apache. Remember that the syslogd daemon on the server remote_log_server must be started with the -r option.
Logging access_log through syslog
Configuring Apache's access_log through syslog is less straightforward than doing the same operation with error_log. There is no syslog option for the access_log directive. The reason behind this is that sending access log information to the syslog daemon isn't something that many users would do, because syslogd is quite slow. If you get 10 requests a second, you might miss something important. Furthermore, it can be configured easily, even if Apache doesn't support it directly. To do this, you can use a logging program that, instead of writing on a file, sends information to the syslog daemon.
First of all, add the following line to your /etc/syslog.conf file:
local1.info /var/log/apache_access_log
Apache's httpd.conf file should look like this:
CustomLog "|/usr/bin/logger -p local1.info" common
If your system doesn't have a logger program, you should be able to find its equivalent quite easily.
Now, restart Apache and to make syslog aware of the configuration changes:
[root@localhost root]# killall -HUP syslogd
[root@localhost root]# /usr/local/apache2/bin/apachectl restart
Connect to your web server:
[root@localhost root]# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Host: me
telnet> quit
Connection closed.
[root@localhost root]#
The new apache_access_log file should have a log entry like this:
[root@localhost root]# cat /var/log/apache_access_log
Oct 6 21:38:16 localhost logger: 127.0.0.1 – – [06/Oct/2002:21:38:13 +0800]
This log means that Apache is now logging its access log through syslog. Of course, you can easily change syslog's configuration so that the access logs are redirected to a different machine, like this:
local1.info @remote_log_server
It is best to log all the access log messages with an info log level, so they are all of equal importance (unlike the log entries in Apache's error log).
{mospagebreak title=Advantages and Disadvantages of Logging on a Remote Machine}
Although sending log messages to a remote machine can sound advantageous, there are disadvantages that you need to be aware of. Here are the advantages of logging on a remote machine:
- A cracker won't be able to delete or modify the logs after breaking into the system that runs Apache. The cracker could still violate the log server, however. Therefore, the log server should have much heavier security and accept only log requests, to minimize security risks.
- A cracker won't be able to perform a log-oriented DOS attack against the server that runs Apache (filling all the disk space with long requests, for instance), because the logs are written elsewhere. A cracker can try to fill up the partition that contains the log files, however, but the direct target server of such an attack wouldn't be the web server.
- There are no file permission problems on the log files, because they don't reside on the local machine. You could argue that the logging machine would have the same issues, but such a machine shouldn't have any users or external access, and it should be solely dedicated to logging.
- If you have several servers, you can make sure that all the logs are stored in one spot in the network. This would make organization of backups, log merging, and log analysis much easier.
There are several disadvantages to remote logging using syslog:
- It is unreliable. A log line could simply get lost on the way to the log server. There is no acknowledgment of any sort by the remote logging server regarding the information being written. An attacker could cause a denial of service on the remote logger by flooding it, or feeding it bad data.
- Centralizing logging to one server means that the log server represents a single point of failure.
- It is simple to create fake log entries. syslog's protocol is based on UDP, and it is extremely simple to send a forged or spoofed UDP packet, because UDP is connectionless. You need to firewall the network carefully, and even then, a cracker might be able to create misleading log entries.
- It's based on clear text. This means that the information can be forged on its way to the log server, because there is no reliable mechanism for checking that the packet that arrived is the same as the packet that was sent.
Some of these problems are structural and cannot be easily solved.
Secure Alternatives
The syslog option has pervasive structural vulnerabilities, but studying its problems and vulnerabilities will give you a good start to designing a remote logging architecture, without making the same mistakes again.
Here are alternatives that help to solve some of the shortcomings:
- syslog-ng (http://www.balabit.hu/en/downloads/syslog-ng/) This is a replacement for the standard syslog daemon. syslog-ng (the ng means next generation) can be configured to support digital signatures and encryption, to make sure that log messages weren't modified. It can also filter log messages according to their content, and log messages using TCP rather than UDP (TCP is a connection-oriented protocol and is much harder to spoof ). Additionally, it can run in a jailed environment (see Chapter 6 for detailed information on how to run Apache in a "jail" using chroot()).
- nsyslogd (http://coombs.anu.edu.au/~avalon/nsyslog.html) This is another replacement of the syslog daemon, with some interesting features, including the use of TCP instead of UDP, and the ability to encrypt connections to prevent data tampering using OpenSSL. Unfortunately, while it is a feasible solution for several Unix systems, it doesn't work well on Linux at the time of this writing.
- socklog (http://smarden.org/socklog/) This is yet another replacement of the syslog daemon. The main strength of socklog is that it's based on daemontools (http://cr.yp.to/daemontools.html). daemontools' architecture makes it possible to have encryption, authentication, compression, and log rotation quite easily. It's definitely worth looking into.
- The e-mail available at http://cert.uni-stuttgart.de/archive
/honeypots/2002/07/msg00100.html includes tips on how to hide a remote log server.
Syslog has several limitations. For example, as I mentioned, it is not feasible to store the access log information on syslog on a production server. In this section, I will explain how to configure your server so that it logs encrypted information over the network.
Two Possible Designs
To write logs over the net, you need to use a custom written program to log Apache's messages on a remote server. You can configure Apache this way:
CustomLog "|/usr/bin/custom_logging_program" common
ErrorLog "|/usr/bin/custom_logging_program"
The program custom_logging_program could be a program that reads the log messages from its standard input, and sends them to a remote server via a TCP connection. The remote log server would be a program written specifically to talk to custom_logging_program. This way, all the problems connected with syslogd could be solved, and you would be absolutely sure that the system works the way you want it to work. There is only one problem: designing a functional client/server application like this can be very complicated. At the beginning of this chapter, I mentioned that logging programs should be kept as simple as possible. A program like this would be anything but simple; it would need to use cryptography, and would need to communicate with the server following all the rules set by the (newly designed) protocol. Writing the logging server program would be even harder.
To simplify the solution's design, you could use an Apache module that would deal with SQL logging directly. A very good choice, for example, is http://www.grubbybaby.com/mod_log_sql/. The main advantage of this is that it is very easy to configure. You pay for this simplicity in terms of lack of flexibility, because:
- You cannot encrypt the log information.
- You can only deal with the access log (not the error log).
- You can only log using MySQL as a SQL back-end.
Basically, the first solution is powerful, but often too complex to be implemented (reinventing the wheel often means rediscovering the same bugs and vulnerabilities). The second solution is much easier to configure, but has very strong limitations.
{mospagebreak title=A Powerful, Hybrid Design}
I will now propose a hybrid solution, which unites the simplicity of SQL logging with the power of Perl and encryption. The idea is to write a custom logging program, as I mentioned in the previous section. However, rather than implementing a transport protocol from scratch, the logging program will use Perl's powerful DBD/DBI libraries (Database Driver/Database Interface) in order to access any SQL server and store logging information on a SQL database in the network. I will also use one of Perl's libraries to encrypt the logging information before sending it to the database server. In this case, symmetric encryption is acceptable, because I will have access to both the encryption and the decryption script (hence, the key won't have to travel anywhere).
I will use the following components to implement this solution:
- MySQL as my database server. You can use any database supported by Perl's DBI drivers, however. For example, many system administrators prefer PostgreSQL.
- A database table, able to store the logging information.
- Perl's DBD drivers for MySQL.
- Perl's Crypt::CBC.
- Perl's Crypt-Blowfish-2.09.
- A custom script that encrypts the stored information.
- A custom script that can read the database and decrypt the information contained in it.
You will first need to install MySQL on your system (you can actually follow these instructions with any other database server by marginally changing the Perl code). Then, you can create the database with a mysqladmin command:[root@merc root]# mysqladmin create apache
This command creates a database called apache. You now need to create a table to store the logging information:
[root@merc root]# mysql apache
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 41 to server version: 3.23.54
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.mysql> CREATE TABLE access_log (
-> sequence int(10) NOT NULL auto_increment,
-> log_line blob,
-> PRIMARY KEY (sequence)
-> ) TYPE=MyISAM;
Query OK, 0 rows affected (0.00 sec)
As you can see, the table is extremely simple: it only contains sequence, a column with a sequence number (automatically generated by MySQL), and log_line, the column that will contain the actual log line.
Your database server is now ready to go. I suggest you leave this MySQL session open so that you can see if information actually does get added to your table while testing the script. Note that you should set login and password in order to access your MySQL server.The Perl Components
You now need to install all the Perl components that will be needed by the script in order to work. They are Crypt-CBC-2.08, Crypt-Blowfish-2.09, and DBD-mysql-2.9002. They can all be found on CPAN (http://www.cpan.org, Comprehensive Perl Archive Network: a site that contains every single third-party Perl module), and they can all be installed with the usual perl Makefile.PL. Here is the installation log for Crypt-CBC:
[root@merc root]# tar xvzf Crypt-CBC-2.08.tar.gz
[…] Crypt-CBC-2.08/MANIFEST
[root@merc root]# cd Crypt-CBC-2.0 8
[root@merc Crypt-CBC-2.08]# perl Makefile.PL
Checking if your kit is complete…
Looks good
Writing Makefile for Crypt::CBC
[root@merc Crypt-CBC-2.08]# make
cp CBC.pm blib/lib/Crypt/CBC.pm
Manifying blib/man3/Crypt::CBC.3pm
[root@merc Crypt-CBC-2.08]# make install
Writing /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/
Appending installation info to /usr/lib/perl5/5.8.0/i386-linux-thread-multi/
[root@merc Crypt-CBC-2.08]#
The same installation instructions apply to Crypt-Blowfish and DBD-mysql-2.9002.
NOTE You can install packages from CPAN more easily using the CPAN shell, running perl -MCPAN -e shell, followed by install Crypt::CBC. This way, everything is done magically for you and you don't really get to know what happens behind the scenes.
You now need to configure Apache so that it pipes the logging information to a program. Here is what your httpd.conf should look like:
CustomLog "|/usr/local/bin/custom_logging_program" common
This is what custom_logging_program should contain:
# Libraries…
use strict; # Be strict with coding
use DBI(); # Use DBI drivers
use Crypt::CBC; # Use encryption
# Variables…
my($str); # Variable declaration
my($cipher); # Another variable declaration
# Create the cipher object
$cipher = Crypt::CBC->new( {'key' => 'my secret key',
'cipher' => 'Blowfish',
'iv' => 'DU#E*UF',
'regenerate_key' => 0,
'padding' => 'space',
'prepend_iv' => 0
# Connect to the database
# my $dbh = DBI->connec("DBI:mysql:database=apache;
host=localhost", "root", "");
# Each log line is fetched and stored into $_…
$str= $cipher->encrypt($_); # The read line is encrypted…
# …and stored onto the database
$dbh->do("INSERT INTO access_log VALUES ('0',".$dbh->quote("$str").")");
$dbh->disconnect(); # Disconnect from the database
exit(0); # End of the program
The code is well commented. The program first creates a Crypt::CBC object using the Crypt::CBC->new() command (refer to Crypt::CBC's official documentation for more cipher options, perldoc Crypt::CBC). The program reads its standard input (while(<STDIN>)), encrypts the log line ($str-$cipher->encrypt($));) and stores the encrypted information in the database ($dbh->do("INSERT INTO access_log VALUES (0,".$dbh->quote("$str").")");).
In order to test it, you should do the following:
- Delete any records from the database with the following command:
mysql> delete from access_log;
Query OK, 0 rows affected (0.00 sec)
- Stop and restart Apache:
[root@merc root]# /usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl stop: httpd stopped [root@merc root]# /usr/local/apache2/bin/apachectl start
/usr/local/apache2/bin/apachectl start: httpd started
- Connect to your Apache server requesting some pages using your browser.
- Check if any new entries have been created in your database:
mysql> select * from access_log ;
|sequence| log_line |
| 1 |??;F??b92B}?Cx{0748}?`?N^?x{018E}?G?" | | 2 |??x{992B}?C?9[lv?w5I?Tp??Q?x{02EC}c????b?|
2 rows in set (0.00 sec)
The information stored in the database is not readable, which means it cannot be modified in any meaningful way. To read your logs, you will need to decrypt them using the same algorithm. Here is the program that will fetch and decrypt the log entries:
# Libraries…
use strict; # Be strict with coding
use DBI(); # Use DBI drivers
use Crypt::CBC; # Use encryption
# Variables…
my($str); # Variable declaration
my($cipher); # Another variable declaration
# Create the cipher object
$cipher = Crypt::CBC->new( {'key' => 'my secret key',
'cipher' => 'Blowfish',
'iv' => 'DU#E*UF',
'regenerate_key' => 0,
'padding' => 'space',
'prepend_iv'=> 0
# Connect to the database
my $dbh = DBI->connec ("DBI:mysql:database=apache;
host=localhost", "root", "");
# Prepare the SQL query
my $sth = $dbh->prepare("SELECT * FROM access_log");
# Main cycle to read the information
while (my $ref = $sth->fetchrow_hashref()) {
$str= $cipher->decrypt($ref->{'log_line'});
$sth->finish(); # End of row-fetching
$dbh->disconnect(); # Disconnect from the database
exit(0); # End of the program
This program is very similar to the previous one. The difference is that the information is fetched from the database (while (my $ref = $sth->fetchrow_hashref()) {), and that it is decrypted ($str= $cipher->decrypt($ref->{'log_line'});).
Once your log information has been fetched by this script, you can feed it to "classic" web analyzing tools and store it in a secure location.{mospagebreak title=Room for Improvement}
This is only a starting point. The scripts I provided do work, but there are many features that can—and should—be added. For example:
- Error management in the source code. The scripts are very basic, and critical error conditions are not tested. This means that if the database server is down, there will be no logging—and you won't be aware of it.
- Password management. What happens if you encrypt different rows in your database using different passwords? You will need to make sure you have a mechanism in order to manage this situation. An example could be an extra numeric field that stores the "password number" (meaning: password #1, password #2, and so on) and making the decrypting script aware of those passwords.
- Field separation. It would be a good idea to store different pieces of logging information in separate fields. This would lead to powerful log analysis. Remember that you should always make sure that your decrypting script is able to generate a common log text file.
- Error log. The same script can be used for the error log. In this case, field separation would obviously be pointless.
However, the example I provided should be enough for you to understand the potential of such a solution.Checkpoints
- Minimize the number of entries in the error_log. This might mean notifying CGI authors of warnings, notifying referring webmasters that links have changed, and so on.
- Make sure that there is always enough space for log files (automatic software helps by notifying you of low disk space situations).
- If your environment is critical or attack-prone, log onto a remote machine and encrypt the logging information. In this case, be aware of all the pros and cons of every single remote-logging solution, and try to keep it simple.


text:
Enjoy It!
eBook (PDF), 285 Pages
Price: $5.00
This collection of 137 witty/sassy/sexy/crazy blog posts will convince even the crustiest of souls that Courtney Jane Kendrick delights in daily life. Even when she can't ovulate, and Target is closed, and the pumpkin tarts are sold out at the bakery. Join c jane as she dazzles her way through infertility, pregnancy, and brand-new motherhood with a cast of characters that includes one husband, two parents, five brothers, three sisters, dozens of nieces and nephews, several dogs and celebrities, various disembodied voices, and a nicotine-addicted ghost thrown in just for fun. Because this is her one and only life. And GREAT GRAVY! She's enjoying it.
Available in PDF Format
Ratings & ReviewsLog in to review this item
There are no reviews for the current version of this product
There are no reviews for previous versions of this product
Product Details
- Copyright
- Courtney Jane Kendrick (Standard Copyright License)
- Publisher
- Courtney Jane Kendrick
- Published
- September 29, 2011
- Language
- English
- Pages
- 285
- File Format
- File Size
- Product ID
- 17443556
Formats for this Ebook
|Required Software
|Any PDF Reader, Apple Preview
|Supported Devices
|Windows PC/PocketPC, Mac OS, Linux OS, Apple iPhone/iPod Touch... (See More)
|# of Devices
|Flowing Text / Pages
|Learn more about ebook formats and e-readers
Your notification has been sent
Lulu Staff has been notified of a possible violation of the terms of our Membership Agreement. Our agents will determine if the content reported is inappropriate or not based on the guidelines provided and will then take action where needed.
Thank you for notifying us. We will email you with the results and/or actions taken as a result of the investigation if you chose to receive confirmation.
We were unable to complete your request.
We were unable to complete your request.
Listed In
More From
Age Verification
The page you are attempting to access contains content that is not intended for underage readers.
Please verify your birth date to continue.

subset: commoncrawl


text:
People make companies succeed
People make companies succeed.
With this principle, we are moving people in organizations – with passion and shared commitment for your success.
Here you find an overview of some of our successful cases.
What goes for our clients, goes for ourselves. Discover more about the people that make Kienbaum what it is: Their profiles, contact details, and consulting specialties.
Up next: Your new career milestone
Discover the job openings at our clients. Take the next step in your career by registering in our online career portal!
The future of work
All companies and institutions need to ask themselves: What does New Work mean for us? How will we be working in future? The future of work starts today.
Getting fit for the digital transformation
Speed, cooperation, creativity, and radical customer focus are the order of the day and call for modern and agile work environments and ways of working. Find out how to make and keep your company state of the art.
The future of HR
Successful people management is only possible with an effective HR unit. Discover innovative role and organizational models for the HR function.
Rethinking leadership
Be it transformational or digital leadership: Find out more about the challenges for leaders in a globalized and digital age.
Consulting pioneers
It all began on 15 October 1945 with Gerhard Kienbaum, a bike, and a revolutionary idea. Find out more about the history of our company.
Kienbaum people are a special breed
We are one of the top-100 employers in Germany. Find out why and learn what it means to work at Kienbaum.
Discover current job opportunities at Kienbaum. Start your career at Kienbaum and apply online today!
Your questions – Our answers
Which documents do we need? What happens in the application process? What are your career prospects at Kienbaum? Here are the answers to your questions.
Our passion
Our blog lets our consultants speak. Follow them and find out more about the newest trends in the HR world, exciting projects with our clients, innovative events, and interesting new studies. In short: Everything we are passionate about.
Ahead of the curve You are looking for new press releases on Kienbaum studies, personnel news, or partners for media interviews or background briefings? We have you covered!
Sharing expertiseWhat trends are shaking up the HR world? How can we master the digital transformation? What does New Work mean in practice? If you want to share in our expertise, then stay up to date with our studies, white papers, and articles.
Mag. Sandra Schrögenauer
+43 1 533 51 88-26


text:
Nicola Morgan, the Crabbit Old Bat, is an award-winning author of around 90 books across many genres. For the last few years, she has given crabbitly honest advice to determined writers, here and in her books, WRITE TO BE PUBLISHED, WRITE A GREAT SYNOPSIS, DEAR AGENT and TWEET RIGHT.
Sunday, 20 December 2009
[* OK, possibly not exactly promise, as you never know when the spirit might move me to get my soap-box out from under the bed. But kind of offer with some probability, at least.]
Meanwhile, during Christmas I will raise a glass to all of you, my lovely blog-readers - you have been a true highlight of my year. Honestly. I know, I know: you're welling up with emotion, but you really have given me lots of pleasure, masses to think about and an insight into so many different mindsets and situations. You have informed and enriched me. You have soothed my crabbity brow on many occasions. In fact, the only thing I can criticise you for is that through your constant willingness to follow my advice and say nice things to me you have rubbed the edges off my inner crabbitness and if I'm not careful I will no longer be the first Google result for Crabbit Old Bat.
I'm sure you agree that this would be a shame and a loss to the world. So please return in the New Year and try to be a bit more annoying.
And I don't mean lemonade.
A very good Christmas to you all. I will be back.
Nicola xxx
36 comments:
- Carole Anne Carr said...
Thank you Nicola, look forward to your posts in future, Happy Christmas,
- 20 December 2009 at 13:33
- Flixton Mum said...
Oh, you nearly moved me to tears with all that emotion. Thank you. Have a good Christmas yourself and I hope you get lots of chocolate to ease your crabbitness.
- 20 December 2009 at 13:48
- HelenMHunt said...
A great Christmas to you too, and many thanks for all the helpful and supportive posts throughout the year.
- 20 December 2009 at 14:04
Peace and happiness to you and yours, Nicola. One of the highlights for me this year was finding honest publishing advice from great blogs like yours.
Thank you for all you do to help people like me believe that I might just have a chance to achieve my dream.
p.s. You'll always remain the Supreme Crabbit Goddess in my eyes. Er, that was supposed to be a compliment.
- 20 December 2009 at 15:24
- Elen Caldecott said...
Should auld acquaintance be forgot,
and never brought to mind ?
Should auld acquaintance be forgot,
and auld lang syne ?
For auld lang syne, my jo,
for auld lang syne,
we'll tak a cup o' kindness yet,
for auld lang syne.
- 20 December 2009 at 15:33
- Marisa Birns said...
Happy Christmas to you!
Thanks for all the humor, banter, and good advice.
2010 will be a very good year for all of us!
See you then. x
- 20 December 2009 at 15:36
- Thomas Taylor said...
Happy Christmas, Nicola. Funnily enough, I've been working down a pile of books and one of yours is next.
- 20 December 2009 at 16:12
- Cathie said...
I see I'm not alone in thanking my lucky stars that I happed upon your very excellent Batness.
Your awesome energy and wise words have been inspirational. And I hear you write books too. Lawks!
My New Year's resolution: flap arms, hang upside down and wear unsuitable shoes more often.
A very Happy Christmas and a big thank you, Nicola.
- 20 December 2009 at 16:16
- David Griffin said...
Here's hoping you and family have a great Christmas, Nicola!
Your help and support to all of us is very much appreciated, thank you; especially your unwavering optimism and enthusiasm.
- 20 December 2009 at 16:37
- Sally Zigmond said...
And may your and your family's Christmas be everything you wish it to be. Don't worry about not being crabbit any more. Once the tinsel and fairy lights have been packed away, you won't be able to contain yourself. I can't wait!
- 20 December 2009 at 17:03
Hope you have a Merry Christmas and a Happy New Year too Nicola!!!!
Isla :)
- 20 December 2009 at 17:16
- Jemi Fraser said...
Enjoy a wonderful Christmas season!
- 20 December 2009 at 17:49
- Nicola Morgan said...
Oh, for goodness' sake all of you: stop being so bloody nice!! What's a C.O.B to do? Grrrrr.
Seriously, of course, have a lovely time. Am off to cook first festive meal now, probably accompanied by sparkly stuff.
- 20 December 2009 at 17:52
- Catherine Hughes said...
Merry Christmas everybody! We finally got our share of the snow here in wales and so it certainly does feel very festive now.
Have a good one!
Cat x
- 20 December 2009 at 18:46
- catdownunder said...
Nicola, thankyou. You deserve the bubbly and the chocolate. (I promise you I'll bring some with me when I eventually return to Edinburgh.) I know I nearly drove you crazy with furry and ill-thought out comments. For a COB you are extraordinarily patient with cats! Have a marvellous Christmas (and find someone else to do the washing up) and an excellent writing New Year with all the right words.
To the rest of the you - Season's Greetings and best wishes for the right words in 2010.
- 20 December 2009 at 20:36
- Marshall Buckley said...
This is my first "writerly" (is that a real word?) Christmas... and the thought of taking a break is driving me mad.
Of course, I'm happy to take the time off from my day job, but I don't want to break the writing habit - except I have to, because I've vowed not to go near Book 2 until all my beta-readers have reported back.
So, excuse me if I'm all grumpy and - dare I say it? - crabbit...
Seriously, a Happy Christmas to one and all - my new found friends.
- 20 December 2009 at 22:07
- Pen said...
Merry Christmas to you too. We'll definitely miss you while you enjoy your well earned bolgiday and look forward to your return in the New Year.
- 21 December 2009 at 00:25
- Elizabeth West said...
A very Merry Christmas to you also, Nicola! Thank you for the great advice and funny stories!
P.S. Your blog has helped me so much, I linked to it on my blog. :)
- 21 December 2009 at 03:23
- Samantha Tonge said...
Wishing everyone the Xmas they hope for.
- 21 December 2009 at 16:21
- Rebecca Knight said...
Awwwww :). That was rather sweet, Nicola, and not crabbity at all. You'd better get your game face on for the New Year!
Seriously, though, thank you for all the wit, fancy boot pictures, and great advice this year! Yours is one of my absolutely favorite blogs, and my face lights up whenever I see a new post from you in my reader :).
Merry Christmas everyone, and happy holidays!
- 21 December 2009 at 18:15
- JaneF said...
Well you certainly deserve a nice long break - I can't believe how much you've managed to cram into your posts over the past year. Helpful and crabbit and entertaining all at the same time - a heady mix!
Also very helpful have been all those book recommendations for Christmas presents. Several are waiting to be wrapped as I type.
Merry Christmas Nicola and everyone!
- 21 December 2009 at 19:10
- Donna Gambale said...
New Year's Resolution #1 - Help restore your inner Crabbitness. Can't have you going soft!
BUT since we're still in 2009: I find you to be a lovely person who gives excellent advice, and I hope you have a wonderful blogiday and holiday filled with Bubbly, Books, and [one more b-word... one more...] crabbity Brilliance!
- 21 December 2009 at 20:12
- Jane Smith said...
Nicola. One of my 2009 highlights has been meeting you via your lovely blog. I'm so glad you started blogging: not only have I gained a valued friend, I've watched you help all sorts of writers sort themselves out and reach new heights. It's been just brilliant. Thank you.
I look forward to 2010, and all that it will bring. Which includes more of your fabulous blog posts and, I hope, the chance to meet you in the flesh, one of these days.
Have a lovely holiday. I'll raise more than just one glass for you.
- 21 December 2009 at 21:35
- Sally Clements said...
Have a happy Christmas Nicola!
- 22 December 2009 at 09:58
- Stroppy Author said...
Damn, that was a short post. Here was I, hoping I could defer writing that pb text a bit longer by noodling around on your blog, and it was all brief and over too quickly (sounds like Lily Allen, doesn't it?). Happy Christmas - now I'll have to write that dratted book!
- 22 December 2009 at 19:25
- Jo said...
Wishing you the same, Nicola. And plenty of chocolate!
- 22 December 2009 at 21:06
- Nicola Morgan said...
Awwww, thanks for all your lovely comments, everyone. It's been a lot of fun meeting you.
I hope those of you who have snow are not badly affected by it and that you are able to spend Christmas with the people you want to spend it with. We have serious snow here, which is very unusual for edinburgh. I'm sure Jane in the wilds of Yorkshire is a past mistress at dealing with it and is even now forcing her children to pedal the generator to power her aga.
Early in the New Year, I'll be asking you to suggest the topics or questions you'd like me to blog about. So, don't relax too much: get your thinking caps on.
Have a lovely holiday, everyone. You deserve it. (As far as I know!) Nx
- 23 December 2009 at 08:14
Nicola, have a wonderful, relaxing Christmas. May your mug be filled with spiked eggnog, your tree full of gifties, your family in harmony, and your writing brilliant.
I await your words of wisdom in 2010 with baited breath!
- 23 December 2009 at 13:35
- Clare said...
A very Merry Christmas to you and yours, Nicola - may 2010 be a happy and peaceful year for you all.
Thank you for your wonderful posts throughout 2009 - and your lovely behind-the-scenes posts too. (Crabbit - this old bat? Methinks not! :) )
Under the Christmas tree is the lovely book posted by the Edinburgh Bookshop (thanks, it looks just up my street - not that you can see anything up my street but snow at the mo!)
Not quite complete apparently, is the story being written by Isla for my Christmas present because you encouraged her to keep writing - that is a present beyond monetary value, a testament to the power of this blog and your unselfish goodwill. I just wish you could see her enthusiasm, the fun she is having writing it - I have no idea of the content but I know to whom I owe the thanks for re-kindling her teenage enthusiam.
Lang may yer lum reek, lang may yer blog bloom! :)
- 24 December 2009 at 00:35
- Jenzarina said...
Merry Christmas, with plenty of sparkly stuff and good books!
Jen x
- 24 December 2009 at 15:41
- Harry Markov said...
A belated Merry Christmas. :) Thanks for the magnificent advice and if you really really want it, I can let out my inner annoying-ness.
- 26 December 2009 at 07:55
- Melinda Szymanik said...
Too late to wish you merry christmas but hope it was a good one. Here's to a very cool yule!
cheers from the antipodes (where protection against sunburn is the order of the day rather than protection from too much snow) - Melinda
- 27 December 2009 at 01:55
- Terresa said...
Merry Christmas to you, Nicola. May your holidays be filled with anything but lemonade!
- 29 December 2009 at 07:59
- Anne Lyken-Garner said...
Hi Nicola,
I just wanted to visit your blog and thank you for commenting on my post over at Year Zero Writers.
You have a fantastic blog here, full of useful advice too!
- 29 December 2009 at 13:14
- Nicola Morgan said...
Clare - I hope you've now received your story from Isla and I'm so touched that it was partly my encouragement that got her going on it!
Anne - thank you and lovely to "meet" you.
Terresa, Melinda and Jenzarina - hope your Christmasses were good!
Harry - I can't wait!
Lynn - not sure about my writing but everything else was good, thank you!
Right, must go out into the horrible snow to go and do a radio interview. No rest...
- 29 December 2009 at 15:19
- Harry Markov said...
Kay, but you will have to know that I will need to split personalities to manage both annoying and admiring, so I hope you appreciate the effort. *grin*
What did Santa bring you? Boots?
- 29 December 2009 at 15:41


text:
Bollywood Karaoke and Same Language Subtitling to Promote Literacy
While I have not seen any research evidence to support this particular contention, I have been in a number of presentations over the years about the 'Finnish success in education' in which the fact that Finnish children watch cartoons with subtitles is mentioned as a contributing factor to their literacy development. Even if there are no peer-reviewed journal articles about the impact of this practice in Finland (if anyone knows of any, please do feel free to send them along!) or many other places (subtitling on television has of course been a common practice in many countries of the world for quite some time), there is some pretty compelling evidence from a little initiative in India that has been reaching big audiences for over a decade that this sort of thing can make a small but meaningful difference in the lives of many illiterate and low literate people. Sometimes innovation is the result of doing something 'old' in a 'new' place (often with a slight twist).
Back in November, PlanetRead was awarded the first-ever 'International Prize' as part of the new U.S. Library of Congress Literacy Awards [disclosure: I am a member of the advisory board for these awards] in recognition of its pioneering work in the practice of Same Language Subtitling (SLS), "the idea of subtitling the lyrics of existing film songs (or music videos) on TV, in the 'same' language that they are sung in. Call it Karaoke on Bollywood for mass reading! A deceptively simple innovation, SLS is already delivering regular and inescapable reading practice to 150 million weak-readers in India."
One notable characteristic of each of the three inaugural winners of the Library of Congress Literacy Awards is that they largely work outside of traditional 'educational' institutions as part of their efforts to promote reading. In the case of Reach Out and Read, this means connecting with parents and young children in pediatric exam rooms. 826 National supports store front writing and tutoring centers in local communities. PlanetRead focuses its outreach on a place where, like or not, many people spend a lot of their free time: watching television. Brij Kothari, the founder of PlanetRead, joked during the awards ceremonies at the Library of Congress, some people might say that TV is the enemy of reading, to which we reply: embrace the enemy!


text:
Silirrion wrote:With the 17.8 update now live and being enjoyed across the dimensions I thought it would be a good time to tell you all a little more about how we are feeling about the recent changes and what we have in the works here for upcoming content.
Firstly I just want to say a few words on the latest game update and take the opportunity to answer a few questions. We are very pleased to see the positive reaction to the new PVP systems we introduced in 17.8. It is always a little bit of an anxious time when you overhaul a major part of the game and we have been delighted to see players enjoying the new dueling system as well as taking part in more group based PVP. It has always been our aim to encourage people to explore group tactics and learnt to work together in mass PVP scenarios and I?óÔé¼Ôäóm very happy to observe that already people are starting to put together new strategies and tactics for taking each other on.
Quite a few people have asked if the new systems will support PVP based rewards. As I mentioned last time out this is something that is on the drawing board as it were. We will consider PVP based rewards associated with either your ranks or possibly some other associated goal. We won?óÔé¼Ôäót be doing it in the short term however. We want to give the new systems some time to settle in and see if we need to make any further tweaks or changes before we add rewards into the mix.
Next up, I have received a few questions on why did we decide to include a duel mode when we don?óÔé¼Ôäót balance for one on one PVP? Well, mainly it was to try and provide something for everyone in the PVP update. While as we have said in the past there are indeed too many inherent imbalances between the professions to try and balance them all for one on one combat, we do recognize that there was an active community who enjoyed just challenging friends (and enemies!) to single combat.
So when we decided to look at the PVP system it seemed a logical extension to also include something for those people as well. It was I think a fun addition to the game that allows player to have another, safer PVP option and one that isn?óÔé¼Ôäót as open to anti-social behavior like ganking and trying to trick people into PVP. I think it?óÔé¼Ôäós a great thing to be able to offer options that cater for as many preferred game styles as possible, so the dueling system was a small addition that would make that kind of PVP more appealing and more fun. If we encourage those people who were previously put off this type of PVP due to the negative elements mentioned above then I think the system was more then worth it!
So what about the future?
The render engine upgrade is coming along nicely and we are still hoping that we will be able to launch it later this year. We are soon starting full testing on the engine itself, and will them move on to the upgrading of the visual effects that have to be reworked or converted for the new engine (Nano-casting effects and such like). This is a lengthy part of the process but the progress so far has been excellent and we will be sure to keep you all up to date as we progress.
In terms of game updates the current plan is that the new engine upgrade will be the 18.0 update, which will also hopefully have some great new booster content at the same time. We are working towards completing a playfield booster for high level players to launch around the same time as the engine. That might change however as we might not want one to hold back the other and vice versa so we really won?óÔé¼Ôäót be sure until we get the engine into full beta testing. That then brings us to what will come before the new engine in the form of the 17.9 update!
The 17.9 update will be a chance for us to add a lot of little additions we have wanted to do for some time and make some small tweaks, changes and fixes that have been lower on priority lists up till now. There will be some more changes to NPCs and quests on Rubi-Ka, including some that will point players to existing content and locations and flesh out the game world a little more as well as providing some more information about the current Dust Brigade storyline as you learn a little more about what they might be up to with their sudden interest in Xan technology. You should also find some new encounters out in the wilds of Rubi-Ka that might just be of interest. There will of course be the usual selection of fixes and changes to existing items and perks in the update.
We will have a full preview of the update in a few weeks time, and then hopefully have the update on the test-live dimension not long after that.
Please continue to keep the suggestions coming through your feedback mails and posts to the game suggestions forum. Many of the recent changes and features have come directly from your feedback and we are always on the lookout for the ideas that might work their way into the coming updates!
The main code feature we are currently working on is the addition of a true raid interface for the game. This will allow for up to six groups to be linked into one raid group that is considered a single entity and allows for its own chat channels, loot rules and visibility of members health and nano status. It?óÔé¼Ôäós currently in development and we haven?óÔé¼Ôäót slotted it into a specific update just yet. It might make the 17.9 update but we haven?óÔé¼Ôäót reached the testing stage with it yet so we will have to wait a little while before announcing which update it will be included in. This will also allow us to produce raid instanced playfields in the future just for the members of the raid and balanced for the numbers involved just as we have done with the single team instances.
So that?óÔé¼Ôäós a quick update on where we are at the moment. With the new engine and continued content updates I think it?óÔé¼Ôäós going to be another exciting year on Rubi-Ka! For those of you who celebrate it enjoy the Easter vacation and we will see you all on Rubi-Ka.


text:
Ok.... I am new to the encryption stuff and i've heard about this encryption called PGP, i've heard it is one of the best encryption things out there. How does it work? What is the math behind it?
Results 1 to 10 of 17
Thread: How exactly does PGP work?


text:
Claudia Sampedro is a Actress from Cuba. She was born in Havana on October 27, 1989. She is listed on FreeOnes since 2011 and is currently ranked 8986th place. She currently has 4 gallery links in her own FreeOnes section.
Our records show that Claudia Sampedro is currently active which means she is still making movies, doing live shows and/or doing photo shoots.
Currently we have only a few links of Claudia Sampedro. You can help us out by submitting more photos and videos links to Claudia Sampedro galleries.
To submit new links please click here
No need to register!


text:
It looks like the pieces are all in place for Gary Kubiak to become the next offensive coordinator of the Ravens.
The team has announced that coach John Harbaugh will make an announcement regarding the position on Monday afternoon and Ian Rapoport of NFL Network reports that he'll be naming Kubiak as the team's offensive coordinator.
Per Rapoport, it is unclear if there will be other staff changes but a report out of Baltimore on Monday morning indicated that Kubiak is lining up an offensive staff that would mean further alterations to Harbaugh's staff. The Ravens have also spoken to Kyle Shanahan and Rick Dennison in recent days, both of whom have served as offensive coordinators in the past and who share Kubiak's history as an assistant under Mike Shanahan.
The same report about Kubiak's staff came with a note that the decision to go for Kubiak was driven more by owner Steve Bisciotti and General Manager Ozzie Newsome than by Harbaugh. It seems we'll find out Harbaugh's public feelings about them, along with just how many changes are being made in Baltimore, sooner rather than later.


text:
Summer 2013
Table of Contents
Cohort studies show that cardiovascular disease affects HIV-positive people more often than HIV-negative comparison groups. People with HIV carry a heavy burden of classic and HIV-specific cardiovascular risk factors. HIV itself and combination antiretroviral therapy (cART) appear to inflate cardiovascular risk about 50% in adults and children. At the same time, cART eases cardiovascular disease risk in various ways. Hypertension is highly prevalent in HIV populations and has a profound impact on cardiovascular and overall mortality. A Mediterranean diet rapidly cut rates of MI, stroke, and cardiovascular death in a randomized trial of high-risk people in the general population of Spain. But studies of this diet in small HIV-positive groups have yielded mixed results. Smoking prevalence stands twice higher in HIV-positive than HIV-negative US residents, and smoking may account for one quarter of all deaths and new diagnoses of cardiovascular disease, non-AIDS cancer, and bacterial pneumonia in people with HIV. US research shows that many HIV providers do not even know if their patients smoke. Some evidence suggests heavy alcohol drinking may boost cardiovascular risk in HIV-positive men more than in HIV-negative men. More than 7% of HIV-positive people in the United States have stage 3 or worse chronic kidney disease, which has a great impact on risk of cardiovascular events and heart failure.
When someone fashioned the handy acronym HAART in 1996, it seemed an apt and mnemonically friendly way to name the triple-drug strategy that wondrously reversed the course of AIDS. But it took only 2 years of HAART use to discover what a ruefully sardonic moniker HAART would be. In May 2008, fewer than 24 months after the watershed Vancouver AIDS Conference, Keith Henry and colleagues in Minnesota reported "severe premature coronary artery disease" in two men taking protease inhibitors -- one 26 years old and the other 37.1 Looking at 124 people taking PIs, Henry discovered that a third of them had high lipids. He urged colleagues "to be aware that patients receiving protease inhibitors have the potential for accelerated atherosclerosis." (This watershed report appeared as a 1-page letter in The Lancet, after the journal rejected a full-length article with angiograms.)
Everyone knows now that Henry's two young men were no anomalies, but instead harbingers of a heart disease surge that dogs HIV clinicians and disables or kills their patients to this day. In March 2013 a PubMed search for "cardiovascular disease" and "HIV" returned 5225 entries in a remorseless crescendo more than doubling from 163 citations in 1998, the year of Henry's study, to 389 in 2012 (Figure 1).
Published reports on cardiovascular disease (CVD) and HIV swelled from 163 in 1998, only 2 years after the introduction of HAART, to 389 in 2012.
Today only the most forbearing experts mapping the interlacings of HIV and cardiovascular disease can resist the heart/HAART homophone. But whatever their rhetorical indiscretions, after 15 years these experts -- and allied pathophysiologists, epidemiologists, and statisticians -- have offered some solid answers to questions posed by Keith Henry's 1998 case reports:1 Did HIV infection cause heart disease in these young men? Or was it the protease inhibitors? Or both? Or something else? Unfortunately for those preferring clean causal pathways, the answer to all four questions seems to be yes.
At the same time, HIV heart experts hasten to caution, a causal relationship between HIV or combination antiretroviral therapy (cART) and cardiovascular disease can be established only in a randomized controlled trial, and such a trial -- were it even feasible -- would have to be large and long.2 This particular HIV/heart brain trust propose that HIV and antiretrovirals can flick the risk of cardiovascular disease (CVD) in three ways (Figure 2)2:
An international panel of experts on heart disease in HIV-positive people outlined three routes by which HIV, its treatment, or both may contribute to development of cardiovascular disease.2
"Importantly," these authorities add, "there is substantial evidence to suggest that all 3 mechanisms are in operation and affect the risk of cardiovascular disease in patients infected with HIV."2 In other words, it's hard to figure out what's going on. But steadfast research since those first case reports has afforded HIV clinicians a firm footing from which to evaluate, test, counsel, and treat people with HIV who may be headed for heart trouble. The thousands of studies addressing these issues can hardly be boiled down to tidy take-home ABCs, but several points -- discussed in detail throughout this issue -- are clear:
Cardiovascular disease kills more people in the United States than any other malady, felling 600,000 people a year,3 a number higher than the population of Luxembourg. For every 3 people in the United States who die of something else, 1 dies of heart disease. So maybe we shouldn't be surprised that so many Americans with HIV get heart disease and die from it. But when one considers the grisly array of mortal threats people with HIV face -- still led by AIDS in most analyses -- heart disease exacts a stunning toll in the United States and Western Europe.
A EuroSIDA study with follow-up starting in January 2001 tracked death rates and causes in 12,844 HIV-positive people.4 During follow-up AIDS arose in 1025 people and 339 (33%) of them died. In the same period 1058 people had a serious non-AIDS diagnosis and 462 (44%) died. Of the 1058 non-AIDS diagnoses, heart disease accounted for 384 (36%), more than attributed to non-AIDS cancer (380), liver-related disease (183), pancreatitis (81), or end-stage renal disease (35).
The Data Collection on Adverse Events of Anti-HIV Drugs (DAD) Study gathers and deciphers stats on more than 49,000 HIV-positive people in Europe, the United States, and Australia. Parsing input from 33,308 cohort members with data culled up to February 2008, the DAD team counted 2482 deaths, with AIDS causing the highest proportion (29.9%).5 Cardiovascular deaths accounted for 11.6% of the tally, just behind liver-related deaths (13.7%) and ahead of deaths from non-AIDS cancer, invasive bacterial infection, kidney disease, and pancreatitis.
The HIV Outpatient Study (HOPS) has tracked HIV-positive people in 10 US cities since 1993. An analysis of 6945 patients seen from 1996 through 2004 logged 702 deaths.6 In 2004 cardiovascular disease, liver disease, and non-AIDS cancers each accounted for 23.5% of non-AIDS deaths. Rates of cardiovascular death did not rise significantly over the study period. And in one analysis figuring non-AIDS diseases as primary or secondary causes of death with or without an AIDS disease, the cardiovascular death rate fell significantly from 1996 through 2004 (P = 0.01).
In contrast, French researchers canvassing a larger, national HIV cohort charted a burgeoning trend in heart deaths.7 Surveys in 2000, 2005, and 2010 saw the proportion of deaths caused by heart trouble balloon from 8% to 10% to 14%, a highly significant jump (P < 0.0001). In 2010 AIDS retained its top mortality ranking, accounting for 25% of deaths, followed by non-AIDS non-liver cancers (22%) and cardiovascular disease (14%). Heart disease vaulted from fourth place in 2005 to third in 2010, swapping spots with liver disease.
No comments have been made.
The content on this page is free of advertiser influence and was produced by our editorial team. See our content and advertising policies.


text:
Southindian Nadigar Sangam lead by Nassar have planned to conduct a tamil celebrity cricket match to raise funds to construct a own building for Nadigar Sangam and clear the finanicial back logs. This is been trolled by people on socialmedia as they doesnt want actors to take money for developing their associations, They also stating that actors earn much and there are many biggies who can clear this finanicial issues in ease by their own salary. Also there were rumours that Ajith doesnt want to participate in this but Nadigar sangam forced him too but nadigar sangam members declined this false statement made by some media. Matches are played on April 17 and its been well received by Movie-Cricket audience and Nadigar Sangam Natchathira Cricket is live on Sun TV. Natchathira Cricket is kick started by Rajinikanth and Kamalhassan today. But the most expected actors Simbu, Dhanush, ilayathalapathy vijay and thala ajith didn't come today for nadigar sangam cricket match at M.A.Chidambaram Stadium, Chennai, Victoria Hostel Road, Triplicane, Chennai, Tamil Nadu 600005, India. Suriya's Chennai Singams playing against Arya's Salem Cheethas in First Semifinal of Natchathira Cricket. Second Semi final will be played between Vijay Sethupathi's Ramnad Rhions vs Jeeva's Tanjai warriors. Finally Chennai Singams led by Surya won the cup beating Jeeva's Tanjai warriors team.
List of teams playing In the Nadigar Sangam Natchathira Cricket league.
- Chennai Singams
- Madurai Kaalais
- Nellai Dragons
- Tanjai Warriors
- Tiruchi Tigers
- Ramnad Rhinos
- Salem Cheetas
- Kovai Kings
Nadigar Sangam Natchathira Cricket Team Captains:
Captains of all eight teams participating on Kollywood Natchathira Cricket league.
- Suriya
- Sivakarthikeyan
- Vijay Sethupathi
- Vishal
- Karthi
- Jeeva
- Jayam Ravi
- Arya
Here we brought you the Nadigar Sangam Natchathira Cricket Trolls and Memes


text:
GAINESVILLE, FL -- Joe Cirulli, owner of Gainesville (FL) Health and Fitness Centers (GHFC), is featured on the cover of this month's issue of Inc. magazine.
A 5,000-word feature on Cirulli and the company accompanies the cover appearance. Cirulli has read the article, which is titled "The Believer," and says he has become good friends with the writer, Bo Burlingham, who went down to Gainesville to visit Cirulli in May.
"I spent 17 ½ hours with him—12 ½ hours one day and five another day," Cirulli says. "And then he met with my staff. I e-mailed him back and I said, 'Bo, I don't think a writer has ever put a story together more factual than what you did.' It was exactly like I told him."
Inc. sent a photographer to shoot Cirulli about a month ago. It wasn't until the photo shoot that Cirulli was told he was going to be on the cover. Joining Cirulli on the cover are GHFC members Rashah Davis and Amy Murad, both of whom started exercising through GHFC's "Well Workplace" initiatives.
The article touches on Cirulli's rags-to-riches story, from the time he was living in his car and didn't have enough money to buy a soft drink at a fast-food restaurant to owning three health clubs and four rehabilitation centers. GHFC attracts 10,000 new members a year, has a retention rate of 77 percent and has gross revenues of $16.7 million a year, according to the article. Cirulli himself has three homes and a condo and flies his own airplane.
The heart of the article focuses on Cirulli's ability to set goals for himself and his company, then accomplishing those goals. One of those goals was realized in 2003 when Gainesville was named the healthiest community in America. Another goal of Cirulli's was for the company to land on the cover of a major business magazine.
Cirulli, who does several speaking engagements a year, says he's already received requests from people who read the article, asking for advice on how to run their companies and their lives."I started to get e-mails from people all over America," Cirulli says. "I responded to everybody."


text: I'm trying to make the pvm 3.4.5 work, but I'm having a problem with "rsh". if I execute the command: # rsh 192.168.0.2 'set' I will see a list of variables that isn't in the .bash_profile of root user. But, if I execute this: # rsh 192.168.0.1 the login occurs and I can execute # set Now, I can see the variable that I need. What did happen? How can I find the local where I can declare the variables that will be appear with " rsh 192.168.0.1 'set' " command? Because this, the PVM doesn't work. It needs see $PVM_ROOT variable that exists in .bash_profile but not in "rsh" session. Someone know anything about it? I'm using the Fedora Core 2 with kernel 2.6.7. -- Atenciosamente, Gustavo Gobi Martinelli Linux User# 270627


text:
brotherscontracting needed a new logo design and created a contest on 99designs.
A winner was selected from 88 designs submitted by 30 freelance designers.
Brothers Electrical Contracting & Home Improvement, LLC
Brothers Electrical Contracting and Home Improvement, LLC is a minority-owned residential and commercial home improvement company servicing the Baltimore and Washington D.C. metro areas. We are committed to craftsmanship, budget controlled pricing and on-time delivery, ensuring a quality completed product and a satisfied client. We are a one-stop-shop for all contracting needs including electrical works, remodeling, building, roofing, plumbing, etc.
No matter how big or small the project, Brothers Electrical Contracting and Home Improvement works with our clients to develop a timeline, budget and project plan. Our employees work flexible hours geared to meet your busy schedules.
Target audience are homeowners and commercial property owners looking to update, repair or build on to their existing propoerties.
Need something that stands out - we are open to a lot of different ideas.
Please incorporate blue and yellow in the design and full name.
On being awarded the prize the logo will need to be supplied in the following formats:
• All color formats and mono formats
• Jpeg
• PNG (with Transparent Background)
• CMYK format - SVG and PDF
Find out how a design contest works or learn more about our logo design services.


text:
By JOHN FLOWERS
MIDDLEBURY — Developers will be able to build a proposed Staples store in The Centre shopping plaza in Middlebury if they adhere to a series of town-mandated conditions, including that they provide access between The Centre parking lot and two adjoining properties, and finance a re-timing of traffic signals to minimize additional gridlock on Route 7.
Those were some of the conditions included in a 24-page "notice of decision" sent to developers Middlebury Associates LLC last week by the Middlebury Development Review Board (DRB). It was the second such conditional decision sent to the developers, who are seeking to build a 14,737-square-foot Staples next to the Hannaford Supermarket.
The proposal has come under fire from various residents and citizens' groups who believe Staples would hurt some smaller, locally owned stores that also sell office supplies. Opponents have also voiced concerns that Staples would add more traffic to Route 7 and to a Centre parking lot that is already dangerous to negotiate, according to some shoppers who have testified at DRB hearings.
Key elements of the DRB decision call for Middlebury Associates LLC to meet the following conditions:
• Negotiate access connections between The Centre parking lot and the adjoining Middlebury Short Stop and former bowling alley properties.
• Pay for an adjustment to The Centre/Route 7 intersection traffic signal that would lengthen the light from the current 60 seconds to an 80-second cycle.
• Complete, with input from the Middlebury Design Advisory Committee, a series of pedestrian safety, traffic circulation and aesthetic improvements to The Centre property.
By KATHRYN FLAGG
ADDISON — Unsurprisingly, dairy farmer Mike Eastman is a big milk drinker.
"I drink three quarts, three and a half quarts a day," he said, grinning. "I drink a lot."
But Eastman's smile — and that telltale milk moustache — aren't splashed across the iconic "Got Milk?" posters made famous over the last 15 years by a national advertising campaign. Instead, he's at the forefront of a fight closer to home.
From his Addison farm — and from his seat as co-chairman of the board of directors for Rural Vermont, a nonprofit farm advocacy group — Eastman is at work putting "raw" milk — milk that has not been pasteurized or processed to kill potential bacteria — into the hands of Vermonters.
Legislation passed last winter doubled the amount of unpasteurized milk that farmers can sell from their farms — but raw milk sales remain a contentious issue among consumers, farmers and health officials.
"I think that a lot of people really feel, including myself, that drinking fresh, raw milk is healthier," said Eastman.
But with the Vermont Department of Health strongly warning of potential perils, consumers are left to negotiate the murky territory between the opposing camp, choosing between gallons of pasteurized milk in grocery stores and the increasingly popular farm-fresh milk peddled by farmers like Eastman.
Eastman's farm is small by Addison County standards — he has 40 Holsteins under his careful watch. But his organic certification — and the unusual fact that his cows are purely grass-fed — attracts milk enthusiasts from Middlebury, Vergennes and as far away as near Burlington.
When a customer arrives at the 300-acre farm, Eastman directs them to a small, dark, cool room off the main barn. A large silver bulk tank takes up the majority of the small space.
LEICESTER — Leicester Republican John "Ike" Hughes believes the state Legislature has strayed off course.
That said, Hughes said he is running for the Addison-2 House seat to help bring lawmakers' focus back home and away from issues over which Hughes believes the state has little or no control: The War in Iraq, global warming and impeachment of President George W. Bush.
"I just don't think the state is spending proper time on state issues," Hughes said, citing energy policy, school spending and smaller government as among priority topics.
Hughes, 63, is a retired United States Navy master chief petty officer who most recently ran his own instrumentation business. A Pittsford native who has lived in Leicester for the past 25 years, Hughes is challenging incumbent Rep. Willem Jewett, D-Ripton, in the district that includes Salisbury, Cornwall, Ripton, Leicester, Hancock and Goshen.
Hughes has been an active volunteer in statewide GOP politics since 1983. He became involved in Addison County Republican causes around 10 years ago. When the July 21 candidates' filing deadline was fast approaching and no Republicans had declared an interest in Addison-2, Hughes stepped forward.
"I think the voters should have a choice," Hughes said. "I think if you feel strongly about the issues, you should get out there."
Hughes has developed strong opinions about health care, government spending and energy during a life that has included a 21-year stint in the United States Navy. He served three tours in Vietnam and visited more than 100 countries during a military career that saw him in charge of repairs to 26 nuclear submarines. That experience has given him a respect and appreciation for nuclear power at a time when the state is approaching a crossroads in determining whether to re-license Vermont Yankee.
Subscribe to Online Edition
Online PDF Print Edition
Copyright 2011 Addison Independent | 58 Maple Street, Middlebury, Vt. 05753 | All Rights Reserved
Site Development by Surf New Media


text:
Domains Starting as Low as $12.95 a Year. Search, Register Or Transfer a Domain Today!
Website Express is a United States based company which offers a unique hosting platform that allows you to take control of your website through our exclusive website hosting and content management system (CMS). When we design mobile responsive websites for United States businesses we utilize our software platform which allows you to edit pages, create menu links, create text links, add images, videos and most importantly, set the Search Engine Optimized Meta Tags for your business. If you know how to write an email, then you have the technological skills necessary to promote your business on the internet and beyond.
The internet has changed, with over 50% of websites now being accessed directly by people using their smart phones. Therefore, when people are searching for your business, product and service they are most likely using their mobile device. This is why all of our custom website design services conform to mobile devices. If your local customer cannot view your website on their smart phone, they are most likely clicking away and going to your competitor who probably has a mobile friendly website design.
We offer many different types of fully responsive, mobile, website designs and styles, and also hybrids of these styles. Some design styles are more suitable for online gallery websites, while others are better for business websites that channel your local customers along predetermined paths toward a call to action.
Newsletter Addon - Capture emails and build newsletter lists for clients all over the country. You can separate individual campaigns by locations like East Coast, West Coast, Mountain States etc. Or you can manage them by business types, or client types at a click of a button. Our Newsletter Addon also comes with a unique template that matches the design of your mobile website, maximizing your online marketing reach all over the country and beyond.
Article Manager - Creating unique links to your mobile friendly website is the best way to help push your business onto the front page of Google. Search Engine Optimization experts maintain that creating content that is informative and demonstrates your quality products and services to your local clients is critical. Our easy to use article manager will have you blogging and creating customized article content and RSS feeds that get index and place you on the top of Google Search Engine Listing.
Image Gallery - Show off your portfolio of work from your local Storefront or from job sites all over the country. Post pictures of your products and also utilize those pictures on Social Media websites like Facebook and Instagram. Everybody loves images what better way to show people your quality products and services offered right here in your state than through an image gallery.
Search Engine Optimization that targets your local customers
Your competition knows that being on the front page of Google is as good as Gold. There are two things that must happen to successfully position your United States company website on Google's front page when targeting local businesses.
On-site Search Engine Optimization - Your company website must first target a select group of keywords that best represents your products and services. These Keywords then must be filtered into multiple levels of your website to assure that they are being properly indexed by Google's search engine.
Off-site Search Engine Optimization - Google search engine algorithms determine who gets placed on the top of their page through "Link Popularity." Link Popularity simply means how many links are pointing from other websites to your website. The more links you have, the higher Google will rank you in their search index which in turn means your business and website, will be at the top of Google for your industry-related search words. Website Express can help you with your United States Off-site Search Engine Optimization. If you are in a highly competitive service or industry with lots of business competition in your area, then you will need to consider Off-site Search Engine Optimization.
© Copyright 2019 ContentManagementHost.com, all rights reserved.


text:
As you walk inside this 75 years old bungalow near the main Alappuzha canal, you are transcended into an era of flourishing spice business. The ancient home to a merchant reverberates with history on how the main vault was secured at the back of the house while the owner peeked from a low window to the street outside and numerous traders thronged the main hall.
High roofed rooms with sturdy,reliable doors still stand sound with minimal restoration. A quaint roofless atrium, around which the 8 rooms are built houses a fountain with a mysterious underground drain joining the canal. Mr. Sali has now creatively decided to hang some delicate chains to the roof to guide rainwater in the fountain. An old broad swing suspends lazily near the fountain. All rooms bear a charming antiquity with stained glass panels near the doors and archaic furniture. Some rooms have wide verandahs overlooking the street below. The house also has a typical Kerala wooden verandah overlooking the garden in the front yard. With his fascination for wood, Mr. Sali has used a number of steps in the house but all stairways are safely guarded for children with low gates.
Endearingly called âGrandpaâ & âGrandmaâ in almost all messages left to the couple in their Guest Book. It is evident that Mr. Sabu Sali and his wife have extended extraordinary hospitality to their guests from various parts of the world. Along with the sumptuous food, the couple fills you with appetizing stories of King Keshav Das woven around the central canal of Alappuzha.
CheersBye © 2019


text:
PlateSpin® Migrate is part of the PlateSpin® Portability Suite (formerly PlateSpin PowerConvert) and specializes in helping IT staff to relocate a workload—an operating system along with its applications and data—from one physical or virtual infrastructure to another, and to reconfigure the relocated workload to operate on the new infrastructure.
For example, you can migrate a workload:
From a virtual machine infrastructure to a target physical (bare metal) Dell PowerEdge* server. This is known as a virtual-to-physical (V2P) migration.
From a Dell PowerEdge server to a virtual machine infrastructure. This is known as a physical-to-virtual (P2V) migration.
From one Dell PowerEdge server to another. This is known as a physical-to-physical (P2P) migration.
Workload portability capabilities and features of PlateSpin® Migrate depend on your specific license.
Section 1.1, License Capabilities of PlateSpin Migrate for Dell
Section 1.3, Activating Your License and Accessing PlateSpin Downloads
Section 1.5, Verifying Supported Workloads and Configurations
Section 1.8, Adding Device Drivers to the PlateSpin Migrate X2P Device Driver Manager