Archive

Posts Tagged ‘Open Source Software’

Mongoose – A web server in C

April 14th, 2010 Frank No comments

A bit ago now, I introduced the tOSU-WebServer which is a web server for educational purposes. As explained in my other writings that web server is simple and is not suitable for production use, though it could be modified and improved for that purpose.

I was flipping though Linux magazines and came across the Linux Journal’s article on Mongoose. Mongoose is an open source, self contained web server written in C and implemented in two files.

It is significantly more difficult to understand than tOSU-WebServer, but it has a lot more features. Also, the fact that it’s written in C (as is Apache 2) might be appealing to some.  I hope to explore it’s API a bit but I’m not sure I’ll do any formal articles on it. If you can follow the implementation details of tOSU-WebServer, you should be able to orientate yourself on Mongoose (assuming you are familiar with C).

The source code repository and project information are located on Google code: http://code.google.com/p/mongoose/

Move a MySQL database – How To

April 13th, 2010 Frank No comments

I had to move one of my databases from the main OS drive to a different partition. Being that I’ve not administered my own mysql database before — nothing beyond SQL level administration — I needed to find some sort of guide. I found the following and was quite pleased; I thought that other might be able to use this.

How to move MySql database to another drive or partition.

While this post is not strictly about the internal workings of an open source software package, it does have to do with the administration of notable open source software and hence, worth this blog’s posting.

The one thing to note is that the instructions seem out of date. The instructions were written using Ubuntu Server 7.10 (Gutsy Gibbon) as a basis. The instructions worked for me except for the apparmor note below. I’m currently using Ubuntu Server 8.04 LTS.

You many need to modify apparmor’s configuration file and then restart the service.  You can see the conversation in the comments (on the article) about it, but the brief version of it is:

  1. Complete the main instructions first (Understand the entire article before starting.)
  2. Open nano /etc/apparmor.d/usr.sbin.mysqld
  3. Modify entries pointing to the old location to point to then new location. This will look like: /var/www/mysql_datadir/ r, /var/www/mysql_datadir/** rwk,
  4. Restart apparmor which can be done via: /etc/init.d/apparmor restart

Again, the full article is: How to move MySql database to another drive or partition.

http://www.ubuntu-howto.info/howto/how-to-move-mysql-databases-to-another-location-partition-or-hard-drive

Categories: Article, MySQL Tags: , ,

The Open Source Definition

April 8th, 2010 Frank No comments

I have a lot of respect for Open Source; as you can see, my entire blog is centered around the exploration of open source software for educational purposes.

Despite my following of open source software and my affinity for it, I never knew until rather recently that there was a formal definition for what can be called open source or not.

This is laid out by the Open Source Initiative in a document named The Open Source Definition.

Open Source software is more than just receiving the source code. There is criteria that software or a license should meet to meet the Open Source Initiative ‘s definition.

I bring this up to share the fact that there is a driving definition that open source software generally follows.

http://opensource.org/docs/osd

Save money on a Mouse and Keyboard (but not monitors)

March 29th, 2010 Frank No comments

Synergy allows you to use a single keyboard and mouse with many computers similar to a KVM but without the headache of using hot keys. While I do not have  a need for this particular package, this is a very useful software tool and it can only be put to use if it is known about. So, I thought I’d share it here.

http://code.google.com/p/synergy-plus/

The Tools of Open Source

October 27th, 2009 Frank 1 comment

As some readers will know, I’ve been working to study the architecture of FireFox. One thing I realize is that I’m not as familiar as I should be with some of the common open source tools, or what I consider to be the common open source tools.

Below is a list of tools that are worth learning (in my opinion). I’ve also included a short description of why it might be worth learning them. (The list is in no particular order)

If you have an interest in open source, it will not hurt to get a quick base understanding of each of these. I’m not saying you (nor am I trying to) become an expert in each of these tools. However, having a basic understanding of syntax and function should save time and headache while trying to understand a project.

  1. Linux: The concepts in and around Linux are often used on other open source products. I think Open Source developers tend to stick with using open source software. So, there is a link there.
  2. Bash: The de-facto standard shell for Linux (as far as I can tell). Knowing the basic usage of bash can save you time and confusion.  Certain scripts can depend on feature of your terminal interface. The Mac OS X ships with a version of bash, which is good to know…
  3. GCC: This is the GNU Compiler Collection and is often a requirement to build open source packages.
  4. Make: This is a part of the GCC but I want to make special mention of this because knowing how to read the script files and error messages can help diagnose an error.
  5. C / C++: Low Level libraries are often written in C or C++, even for an otherwise Java or Python based program.
  6. Python: Python is sometimes used in conjunction with Make to check for build dependencies, verify (build) requirements, or many other possible things.
  7. Perl: Often used like Python, from what I understand but I’ve yet to learn much about it.
  8. Subversion: This is the most common open source VCS software in use (based on my own observations)
  9. Mercurial: One of the two popular DVCS systems. I’ve noticed more and more open source projects switching to DVCSs, so a basic working knowledge of Mercurial and Git is helpful.
  10. git: The second of the two popular DVCS systems.

If you’d like to contribute to the list, please leave a comment below but please ensure you include a fair reason.

FireFox – Getting Started

July 28th, 2009 Frank No comments

This site was established with the my express desired to learn how  certain major open source software packages work; this was to be a personal endeavor to broaden my horizons.

As it turns out, I ended up enrolling in graduate school. I’m pursuing a Master of Science in Software Engineering — something I’ve been planing since my B.S. (which is as represented).

I lost my focus on this site but I don’t want to. I want to regain that focus and this is my first post to that end.

This post is the information I gather while setting up to review and understand how Mozilla’s FireFox works.

Getting Started with Firefox

A while back, before I had even started writing this post, I posted a question on StackoverFlow.com about how to learn about how FireFox works. I’ve received some great answers.

The answer I chose to accept was from jbinto; who gave a wonderful detailed answer and list of resources to pursue this. I’ll be utilizing these resources along with my own method of stumbling though the code.

I’ve started with the Windows Build Prerequisites page since I’ll be building on windows (vista). I imagine my greatest audience will be Windows users and hence I’ll stick with windows. But I do use Linux and Mac OS X too, so if you have a question about these environments, post a comment and I’ll try to address it.

I’ve downloaded and installed the package. It apparently includes everything you need to build FireFox — Including the Source Control Tool and diffing utilities and such.

I want to work on the latest tip; but apparently, the FireFox team uses Mercurial as their source control tool. I’ve never used this tool so this is good and bad. I can learn to tool but I  have to spend the scarce resource of time to do so. I’ll be taking a short deviation way from my current plan to learn the Mercurial basics.

I won’t be posting much on how to use Mercurial as there is plenty of documentation. Anyway, off to learn about Mercurial — I shall continue with this article series once I’ve obtained the tip of FireFox.

http://mercurial.selenic.com/wiki/