Toolbar feature [core]

We want to support a movable toolbar that floats over the content. This way we can allow users to access all sorts of administrative features without losing screen real estate (i.e. a menu at the top or bottom...)

The toolbar should have tabs to allow for quick browsing of different features. For example, one of the tabs should be something like "Meta Data" that allows you to enter the description, abstract, location, copyright, authors, etc. all sorts of information about your post.

The following is the current list of things we want to offer in the toolbar. Obviously, plugins ...

As I was checking some code, I though that I should write a note about good and bad practices.

When you create a table entry and want to use a form of status (or whatever other type of multi-state entry with a fairly small selection such as the sex of a person) you often think of using an enumeration or at least an integer. For a status, you could use 0 meaning off and 1 meaning on. Maybe you have a third status: 2, meaning it is on and shows a form to the user.

In general, this works as a great optimization. If you use a string such as "on", "off", "with-form", ...

The pages being created can generally be added to your Atom or RSS feeds.

Feeds are read by many to gather your content as it evolves.

This feature makes use of the List feature [core], which allows you to create very specific feeds (i.e. a given number of items, specific page type, date based limitations, etc.), and the Layout feature [core] with specific XSL files that transform the data to an Atom or RSS feed. We can support all the different formats available for feeds. We already support RSS 2.0 and Atom 1.0.

A page may be given an extra text area to enter exactly what you want to appear in the ...

Many updates today!

My GPR (underlined)Today I finally released the Google Page Rank project (a Qt library extension and command line tool) as well as the iplock firewall tool.

I also created a page for the new project: libQtSerialization which is an XML serialization of data available in classes in a "compressed" way.

Google Page Rank

This library is written in C++ and works with the Qt framework. It captures the rank of your website pages and returns the result (or -1 if the page is not indexed by Google.)

The project includes a command line tool as an example of usage. That tool uses the library in a synchronous ...

libQtSerialization

Serialization Made Easy with Qt

Qt Serialization logoThe libQtSerialization library is a Qt extension that makes it really easy to serialize your data in a forward and backward compatible way1.

The library is composed of two sides: the QWriter which helps you serialize data, and the QReader that helps you unserialize data.

  • 1. Being foward and backward compatible means you should be able to load your serialized data from newer and older versions of your software without having to tweak the serialized data before hand.

The Snap! system is to make use of a lexx & yacc like capability so we can include fields that accept very complex expressions. For example, we want to support fields in HTML forms where you can enter sqrt(sin(20) * 3) and get the expected result.

At this point though, it is used for the domain names and website names. These are complex enough to justify the grammar. I'm to finish up the grammar of the domain and website implementations, but the grammar itself works. I have a test that checks that in detail enough to prove that it is now in place.

At this point, the domain grammar ...

Some C++ References

C++ Operators

The following gives you the level of all C++ operators. It is often useful to know.

(table follows)

Progress on Snap! C++

Feeling like I need to write a note about the progress on the project.

If you have been around a little bit, you may have noticed that we added Projects on the website. The tarballs are actually available from SourceForget.net (which offers much bigger pipes for download!)

As we are moving forward, we are nearing a point were our basic installation will be available. We'll offer Snap! v0.1 once we get a full set of source packages that install properly in our Debian environment (we're actually using Ubuntu.)

At this point, we can receive requests from Apache and spit out a page, but ...

The core system offers an easy way to add tags to the header. This ease the handling of the header and allows us to ensure that the encoding appears first (before the title) which solves several issues with Internet Explorer (including a security issue in IE 6.x.)

Style Sheets

Having one place that handles the HTML header gives us a way to manage the style sheets in one place. This allows us to do two things to the style sheets:

  1. Add them inline when small enough (i.e. less than 1 kb)
  2. Compress them (remove all the possible new lines, spaces, etc.)

Also, all the style ...

iplock firewall tool

Hammer with a forbidden sign on top.The iplock tool is a very simple to use executable used to add or remove IP addresses to your iptables firewall to protect your services such as Apache and Postfix and all local systems.

The tool reads a set of configuration files under /etc/iplock/... where iptables commands and ports are defined. It is used by the tool to generate the iptables commands to run in order to block or unblock a set of IP addresses.

The current version supports any number of configurations that can apply blocks in any number of firewall chains. The default offers blocks for specific sets of ports as defined by:

  • HTTP
  • SMTP
  • All (block all ports, no matter what)

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly