It’s probably a bit of a weird post. Especially since SQL Server 2008 is already anounced. But in the company I work for we are only now making the switch from SQL Server 2000 to SQL Server 2005.
So here are some of the things that I encountered:
Let me explain point two. Analysis services has the capability to migrate all the cubes you had in Analysis Services 8, but since the service has changed so much it’s useless. After the migration you won’t be able to edit the cubes any more. So you’re better of starting from scratch.
I’ve been working on the migration non-stop for three weeks now. It’s mostly that slow because I have to process the cubes every time I make a change to fix a bug. And for some cubes this takes a few hours.
After a few days of hard work I can say that we finally released a new version of the synchronizing tool. For those who don’t know what it is. I created a small tool in 2005 to keep the contents of two directories in synch.
After 2 years I’ve completely rewritten the tool, which is why I’m still releasing in the alpha phase at this time. So what can it do:
If you want to test it out then download it here, by the way it’s free. If you find any problems then please report them to me. I love to improve tools like this whenever I can.
Update 1:
I’ve been told that the application fails to run on some systems. Especially with older Windows versions. I’ve been looking in to this and your able to solve it by first installing the C++ 8 runtime libraries. Which you can download here, english version.
Normally I don’t write to much about new stuff or gadgets I get. Well no longer. And my first little post is going to be about the new phone I got. When I say phone I’m understating what the device can do.
Why is it an understatement to say it’s just a phone. Well lets list some of the HTC p3300 features:
And of course all of the default Windows Mobile features are also included. Oh and last but not least it’s a phone. So yes you can make phone calls with it.
In the box you’ve got some all the basics you need to get started, buy an additional microSD card though. That’s not included ;(!
What’s my first impression. Well I like it, granted the touch keyboard is a little small but it works great. The phones mic and speaker quality is not bad.
Some more pictures:
[singlepic id="256" w="240" h="159" mode="watermark" float="" ]
When you browse around the web searching for information on C++ you will often come accros the name SafeDelete, but not everywhere it is explained. So what is the purpose of this homemade function.
Well it’s kinda simple, the function checks if an object has already been deleted. If it hasn’t it will free the memory reserved and nullify the pointer. Nullifying means the value is set to 0, otherwise known as NULL.
So let’s look at what a basic ‘SafeDelete’ function is like:
void SafeDelete(LPVOID *pointer)
{
if (pointer != NULL)
{
delete *pointer;
pointer = null;
}
}
Pretty basic function, but it does the trick. There are a dosen variations possible but most of them come down to the same basics.
Ok this will be the first part of the series I promised earlier on. The series will be about my adventures of setting up an Debian Sarge VPS server, a package of Strato Hosting. In this first part I will help you through some of the basics. Which includes structuring your server and setting up the basics for Apache.
Deciding on a structure you like
The first thing you will need to do is decide how you would like to maintain your server. Because this has a huge impact on how you structure the thing. When making the decision you should keep the following in mind:
If you are like me you prefer to be all the configuration to be in one place. Grouped per application or service, eg. one directory for Apache config files, one for AWStats, etc. Then it doesn’t matter how many files you create you’l know where to look.
The structure I always pick is something like this:
/published
/conf
/log
/domain.com
/log symlink to the main log directory
/wwwroot
Easy thing is that I now have all related things together. In multiple ways, per domain (by using symlinks) and per type like configuration, log, etc. Here’s a set up order to do this all.
:> mkdir -p /published/conf
:> mkdir -p /published/log
:> mkdir -p /published/log/domain.com
:> mkdir -p /published/domain.com/wwwroot
:> ln -s /published/log/domain.com /published/domain.com/log
This will set up all the needed directories for one web project. Creating first the base directories for all the configuration files and logs. After that you create the domain directory and a symbolic link to the log directory.
Creating the initial Apache set-up
Now that you have the base structure of a webserver (or gameserver or whatever you like to call it) you can set up Apache. For me most of this was very simple, as Apache 2.0 already came pre-installed on the server. But if it isn’t you can do it manually by executing the following line:
:> apt-update
:> apt-cache search apache2
:> apt-get install apache2
Note that you may not have to do the first two steps. But it does guarantee Apache 2 can be installed. After executing te second line you should get a listing of all available modules you can install, if you don’t you can’t install Apache 2. The third step actually installs Apache 2. You will probably get a question if you wish to download and install, just reply with ‘Y’.
For now you should not need to modify the main Apache configuration file, we’ll do some of that later on
.
Step 1:
Lets first create an Apache config directory for our personal use:
:> mkdir -p /published/conf/apache
Step 2:
Now we can create the configuration for our first website:
:> vi /published/conf/apache/domain.com.conf
With the following content:
<VirtualHost *:80>
DocumentRoot "/published/domain.com/wwwroot"
ServerName domain.com
ServerAlias *.domain.com ErrorLog "/published/log/domain.com/apache-error.log"
CustomLog "/published/log/domain.com/apache-access.log" combined <Directory "/published/domain.com/wwwroot">
AllowOverride All
</Directory>
DirectoryIndex index.php index.html
</VirtualHost>
This configuration will prepare our Apache server to start listening to port 80 for the website www.domain.com, just like we want to. You may notice if you tested the website it doesn’t work just yet.
Step 3:
That’s just about going to be fixed. What you should do next is edit ‘/etc/apache/apache.conf’, or ‘/etc/apache/httpd.conf’. The latter is only for Apache 1.x. Add the following line, which will ensure Apache loads our custom config files:
Include /published/conf/apache/*.conf
Now create a file with the following command:
:> vi /published/conf/apache/ports.conf
Add the content below. This will enable Apache to listen on port 80 and port 443 (secure socket) as well as enabling the Virtual Host system for port 80.
Listen 80
Listen 443
NameVirtualHost *:80
Now all that is left to do is restart Apache and you’re done for your first website. Restart Apache by running:
:> /etc/init.d/apache2 reload
Presto a working website! Well at least if you uploaded some HTML pages to the ‘/published/domain.com/wwwroot’ directory that is.
Setting up additional website is a lot easier though. You only need to create a new config file like described in step 2. You can create as many websites as you want as long as they run on port 80. This because this is the only port using the Virtual Host technology.
Well I’ve made this article to long already so let’s wrap it up. I will soon write some more articles on setting up Debian VPS. But if you’ve got a remark or question then leave a comment and I’ll try and help you.