Internet connection not good recently

I just want to inform, my place currently cannot connect internet smoothly. Therefore, it is hard for me to update the blog. And, for the visitors who request the drivers, I cannot send the drivers now… This need to wait until the ISP solve the “fiber optic” problem…

Even now, I also hard to check mail and surf net. Very disappointed.

Toshiba Satellite M200 Windows XP sound driver

Again Toshiba driver.

Since the sound driver I suggested in my previous post does not work, so lastly I need to upload the driver of my laptop.

But the driver I uploaded does not content setup file. Therefore, one needs to right-click “oem1.inf” and select “install”.

I exported the driver using DriverMax (freeware). I didn’t upload the original setup folder, because it is about 83 mb. So, after exported and compressed the file, it is about 9 mb.

Hope this one will really solve Toshiba sound driver problem.

Just for information, I use 7-zip to zip the file. Because it is smaller and it is freeware. To unzip it, there are too many ways, you can use 7-zip or WinRAR or IZarc. And I use Badongo instead of RapidShare. For me, RapidShare is too poor, I don’t like it.

[Update: 7/1/2008]
Download
Realtek_Driver.7z (8.18 mb) – Without setup file. Need to install the driver manually.
To install manually, please read the following links:
http://www.bestpricecomputers.ltd.uk/freehelp/installtip.htm
http://www.computerhope.com/issues/ch000834.htm

N0te: I personally didn’t try the manual installation. Try this if you like to.

Since the installation of the smaller driver fail, I upload the whole driver with setup.
Realtek-Audio-Driver.7z (17.39 mb) – With setup file.
[end]

Lastly, please post your comment about the result of the driver. Because I afraid that, the driver only specifically suit with my laptop. If so, I cannot help anymore… Orz
And please inform me if my uploaded files are corrupted.

.NET Framework and .NET Compact Framework are different things

Because the use of Java is increasing, in websites or software, that is why I install Java Runtime Environment (JRE). Why need JRE? Because the software developed by using Java language will need the JRE, so that the software is WORA (Write Once, Run Anywhere).

Then, Microsoft also produces similar product. That is .NET Framework. .NET Framework becomes popular because of C# language.

However, what I want to say is, I just found that .NET Compact Framework is different from .NET Framework. Now, .NET Framework 3.5 is released. However, the full installation file is about 100mb. It is quite wasting time to download it. And I just found .NET Compact Framework 3.5, which is much smaller than .NET Framework. So, I thought it is a “compact version” of .NET Framework. And search the Wikipedia about .NET Compact Framework, and found that both are different things. 🙂

Short prayers

Have you ever felt that, sometimes you are wasting time? For example, you are waiting for some people, or you are on the bed and waiting falling in sleep.

I often feel that.

That is why, I looked for short prayers which I can recite whenever and wherever I am.

I forgot where I read a short prayer. It was:
“Jesus, Mary. I love you save souls.”

Besides that, there is a popular prayer: Jesus Prayer.
“Lord Jesus Christ, Son of God, have mercy on me, a sinner.”

Read here for more about Jesus Prayer.

Very nice prayer.

MediaPlayerConnectivity and VLC

Previously, I installed K-Lite Mega Codec and used MediaPlayerConnectivity add-on for Firefox. But the Media Player of K-Lite Mega Codec could not connect most mp3 and wma files especially in chinese websites.

Now I tried VLC. And using VLC, it solves the problem of MediaPlayerConnectivity. That means, MediaPlayerConnectivity works well with VLC.

So, now I click the “play” button of MediaPlayerConnectivity, it will pop up VLC and play the audio streaming file. Nice.

My C++ Experience

Introduction

To learn about programming, C++ is a very popular programming. However, besides the language itself, there are many things need to know.

Compiled language

C++ is a compiled language. Therefore, it is not platform independent like interpreted language such as PHP, Perl, Python and else. Because it is a compiled language, that means the developer should target the platform of the C++ program, Microsoft Windows or other? Because I am using Windows, so I will only focus on Win32.

Why need to target the platform? You might want to develop a cross-platform program, but this is not a good idea to use C++ to develop the program.

If so, why using C++? C++ is quite hard especially dealing with memory, because it doesn’t provide garbage collection (manage the memory automatically). However, using C++ instead of C is because OO (object oriented) is easier for software development.

Then why I choose C++, not VB (Visual Basic)? Though developing C++ program need to target the platform, C++ itself is widely used even in other platform (or OS). Unlike VB, it is used in Microsoft, and BASIC has a lot of dialect, VB is only one of them. But I admit that, VB is faster in developing program.

Compiler, linker and IDE

C++ needs a compiler and linker in order to produce an executable file (.exe file) or binary application file (in the sense of Linux). I myself use Microsoft Visual Studio 6.0, which is an IDE (Integrated Development Environment) during development. IDE is a combination of several development tools: compiler, linker, resource editor, debugger, text editor, and else. So, that is why, using IDE will lack of basic knowledge of compilation.

We can find several free C++ compiler from internet. Compiler generally works together with linker, thus linker is always included with the compiler. Since we need to target the platform of the C++ program, we need to choose a correct compiler. If you are using Microsoft Visual Studio, then no need to think about compiler and linker.

Differences of compilers

A well-known C++ compiler, GCC compiler, is free. However, GCC compiler is for Linux. If you want to use the compiler, there are Cygwin and MinGW which are able to develop Win32 application (Windows 32-bit application). Both compiler is based on GCC compiler. I personally prefer MinGW.

However, different compiler will produce different things even the source code are same. Because of different compiler, the coding might need slightly changed in order to be compiled.

Size

Choosing compiler is quite difficult. Microsoft also provides free C++ compiler, Visual Studio Express. However, it does not provide all header files for developing Windows application. Therefore, it requires “Windows Platform SDK”. Besides that, both Visual Studio Express and Windows Platform SDK are large files, it requires long time to download.

On the other hand, MinGW is very small compare with Visual Studio Express and Windows Platform SDK. But, MinGW is only a compiler. It does not contain IDE which provide GUI for the user like Visual Studio. Therefore, one needs to use an editor like CodeLite or IDE like Dev-C++ to develop. Or you can just use any text editor and compile the coding using commandline. But I personally do not like to use commandline.

Shared library and Object file

Like I said, different compilers produce different things. Using Microsoft compiler, it will produce .lib file for static library and .obj for object file. On the other hand, MinGW which uses GCC compiler, will produce lib*.a for static library and .o for object file because it is based on UNIX,. What does it mean? From what I know, this means that, you cannot use Microsoft linker to link what GCC compiler has compiled, vice-versa. That is why, each compiler has their own header and library for compiling.

Which one is better? I think it is better to know which one you need or which one you prefer.

User Interface

Commandline

Develop a console program (or commandline) is easiest one. Because it has the lowest dependencies. You can just develop a commandline from a function.

Graphical User Interface (GUI)

Because of the usability, one would like to develop GUI program. I personally prefer to use GUI program.

If you are targeting Microsoft Windows as the platform, the lowest dependencies GUI is using Win32 API. Because Win32 API itself is from Windows OS. That means you do not need other runtime libraries (.dll) except Windows runtime libraries. But, that also means your program can only work in Windows.

Using Win32 API, you can create windows dialog, button, scrollbar, and else. However, it is quite difficult to develop the complex interface using Win32 API.

That is why, Microsoft provide MFC (Microsoft Foundation Class Library) for the user who use Visual Studio. If you are using this, that means your coding will have high dependencies on Visual Studio, because Visual Studio provides MFC library and header files.

Besides MFC, WTL (Windows Template Library) can also be used to develop the GUI for Windows platform. WTL also uses Win32 API and it is free. You can download it from internet.

Besides Win32 API, there are other libraries can be used to build GUI: wxWidgets, Qt, GTK+ and else. All of them are free and cross-platform. That means the coding for the GUI does not only work in Windows like Win32 API. From what I know, wxWidgets is popular for Windows platform, GTK+ is popular in Linux.

Libraries

For C programming, there is Standard C Library, which provides I/O functions, string functions, math functions, date and time functions, memory functions and else. For C++, there is Standard Template Library (STL), which provides containers such as vector, list, queue, stack, map and else.

However, there is still limitation. That is why there are a lot of libraries written, and we can download from internet. Then, we need to compile the coding so that the compiled libraries are compatible to the compiler we use.

One powerful library that enhance C++ is “Boost”. It provides more powerful functions, containers, and even regular expression for C++. Boost library is accepted to incorporate with next version C++ (which is called C++0x).

Interoperability

C++ often works with C programming, that is why we can found that there exists “C/C++”. C++ can works more than that with the help of libraries.

Interoperability is interoperation between two programming languages. Boost provides “boost.python” which enable C++ to interoperate with Python language. Python language is an interpreted language, and using dynamic data typing, and has many string functions.

Inspired by “boost.python”, Tcl language also provides “C++/Tcl” library for the interoperation between C++ and Tcl.

Besides that, depending on the C++ compiler, the compiler can accept “assembly language” without using library like Boost. However, different compiler parses different assembly language syntax. Microsoft compiler will parse Intel syntax, while GCC compiler will parse AT&T syntax.

Assembly language is a low-level programming language. It is difficult to develop complex program. And the algorithm is harder to read compare with C++ or other high-level programming language. Besides that, using assembly language, we also need to target the platform. Because each computer architecture has its machine language, for example, 32-bit machine is different from 64-bit machine. Even Pocket PC executable file has its own assembly language if you disassemble the file. That is why assembly language is assumed lower portability than other high-level programming language.

Another library

Besides Boost, there is a common library, OpenGL. OpenGL is cross-platform open library. OpenGL libraries are already included in Visual Studio and MinGW. So, for the extension of OpenGL, one might need to use GLUT (OpenGL Utility Toolkit). GLUT can be used to create GUI program based on OpenGL.

Component Object Model (COM)

Since OpenGL is common in 3D development. Microsoft also provide another API for 3D development, that is Direct3D, which is a part of DirectX.

DirectX is a Component Object Model (COM). DirectX includes Direct3D, DirectShow and others. And C++ can be used to implement COM through COM interface. That means, C++ can work with COM.

However, COM is developed by Microsoft. That means, in order to work with COM, Microsoft C++ compiler will be the better choice. This is because, DirectX SDK libraries are compiled with Microsoft C++ compiler. If using GCC compiler, some modifications are needed for the SDK. Therefore, if you want to use DirectShow, your target should be Windows platform.

License

Most of the software for Windows are proprietary. That means you can earn money. However, if you want to use GCC compiler such as MinGW, then you can download a lot of open source and free to use libraries. However, these libraries have their own license. Therefore, if you want to develop and sell the program, then you need to read the license and agreement carefully before using those open source and free libraries. Or you just stick to Windows and use Visual Studio and DirectX or something else to develop your proprietary software.

Note: These are only my personal experience, do not use this as the general knowledge.

Leap year

Do you know leap year? There are 366 days in leap year. And when is leap year? Every 4 years, there is a leap year, this was what I learnt from school. And counting leap year, just divide current year by 4, right?

If so, then is 1900 a leap year? NO…

To get even closer to the actual number, every 100 years is not a leap year, but every 400 years is a leap year. Putting all of these rules together, you can see that a year is a leap year not only if it is divisible by 4 — it also has to be divisible by 400 if it is a centurial year. So 1700, 1800 and 1900 were not leap years, but 2000 was. That brings the average length of the year to 365.2425 days, which is even closer to the actual number.
(From: http://people.howstuffworks.com/time.htm/printable)

I don’t know whether school teachers know this or not, because I was not taught about this.