Author: Kevin

A2Hosting vs Bluehost – Find out Which is Better

It’s been so long since I have written a review. I’ve ran into A2Hosting, a relaunch of an old brand and I decided to do a quick comparison of A2Hosting vs Bluehost to help you better decide if A2Hosting is the best option for you.

The three key areas we will focus on are plans and features, pricing and overall performance.

Plans and Features

A2Hosting offers customers one hosting package which is shared. Bluehost on the other hand offers shared, VPS and dedicated hosting. Bluehost also has three different price points. The basic plan starts at $3.45 per month, the Plus plan starts at $4.95 per month and the Prime plan starts at $6.95 per month.A2Hosting FeaturesTo help customers start driving traffic to their new website as quickly as possible, A2Hosting gives all new customers $200 in free marketing credits. $100 in Google ads and $100 in Bing/Yahoo ads. With Bluehost these options are only available on the Plus and Prime plans.

If you are just starting out A2Hosting has all the plans and features you need. If, on the other hand, you need something more scalable, Bluehost is the best option.


With A2Hosting you can get an all-inclusive hosting solution starting at $2.75 per month. You may even be able to get it for as low as $1.65 per month if you can catch their limited time 70% off promotion. Please note in order to get these prices you must pay for 36 months worth of hosting upfront.

If you opt for a shorter term the price will be higher. A2Hosting also offers a 45 day money back guarantee. If for any reason you aren’t happy with their services you are entitled to a full refund within the 45 days of purchase.

While Bluehost plans are also affordable, they start at $3.49 per month for shared hosting versus $2.75 per month of A2Hosting. For VPS hosting prices start at $14.99 per month and dedicated hosting prices start at $74.99 per month. Bluehost also has a money back guarantee but it is extended to no more than within 30 days of purchase.

Overall Performance

A2Hosting uses a data center of CyrusOne which is located in Houston, TX. The data center is both PCI and HIPAA compliant. To ensure they always provide high performance and reliability, A2Hosting utilizes technology such as an enhanced security suite, cloud storage, site traffic, visitor statistics and 24/7 network monitoring.

Because of their willingness to implement some of the latest technology, A2Hosting is able to provide their customers with a 99.9% uptime guarantee. If at any time your website experiences an extended period of downtime, A2Hosting will give you a one month credit on your account. Bluehost is also very reliable and very secure due to its 24-hour network monitoring.

Web Hosting Biz

Should you be buying a specialized online file storage that goes with entrepreneurs seeking a web e-commerce endeavor, then consider picking an e-commerce hosting package. Although believe a normal internet hosting plan will suffice to a web business, soon they reap a harvest of profits. And profits don’t come easy. You need a pro company behind you.

Greengeeks is the one that I often hear about. Reviews look good. Some FatCow reviews say Fatcow is one of them pros.

To be adopted seriously by your local competition offering a similar products, secure an e-commerce host. It’s less difficult with the onset to select the one which offers solutions as an alternative to regarding to changed web hosts mid-course caused by growing sales or edgier competition.

Although host advertisements appeal with tantalizing offers, always look into the details in it to know that which you the typical in the service. Small business owners usually get caught in 1 of 2 traps: free hosting and premium host plans. Free hosting is most beneficial employed for testing a audience or learning the ropes; nonetheless it includes numerous limitations and virtually impossible to expand your enterprise. Seasoned gurus often this would victims on the second trap by signing their life away when securing an amount host package, while establishing a web business. Granted, premium packages usually offer the many amazing features, but ask yourself yourself at what cost? Compare prices and contract details before taking the steps neccessary to secure an e-e-commerce host.

Another aspect that you can not realize if you look into the fine information of an individual agreement if by chance online host company will file bankruptcy, and assuming they contain the law aimed at your web, then you’re totally outside of luck when you opted for the terms and secured the service. With all this worst case scenario as being an e-commerce entrepreneur, naturally it could be devastating towards your web based business.

Enough emphasis can’t be added to the need for research and reading the small print, while considering e-commerce because valuable resources have reached stake. Don’t worry to request references through your host service. It’s vital to have more expertise in the exact plan details plus the the repute of which host you’re requesting service. Ask any fellow online business owner to express her or his nightmarish connection with changing web hosts and moving a site before a pre-existing contract expires. It’s likely that they highly won’t recommend it!

The Web is Yourspace

The web is Yourspace: a commentary on how the web was created, and how open standards were instrumental in its success.

Common Communication: The Web By Design

The web was created by Tim Berners-Lee as a method to facilitate communication around CERN, though it became apparent it could become a lot more when coupled with two other technologies developed by the US DoD:

“I just had to take the hypertext idea and connect it to the TCP and DNS ideas and — ta-da! — the World Wide Web.”

—Tim Berners-Lee

There are some acronyms in there that need explaining. First a protocol is like a language designed for computers to “talk” to each other. TCP–Transmission Control Protocol–is special because computers can make sure that they are getting the data they requested, or the data they are sending is getting received. Imagine it like when you sign for a mail-order package: the “TCP packets” are the letters, and the signing is the TCP protocol. These packets could be re-sent, or even separated and sent around other networks as needed.

This was quite a big idea in communications as it meant that even if a particular network went down, the packets could be “switched” along a different path. It’s a misconception that these ideas were solely developed for the purpose of ensuring the US military could communicate reliably in the event of a nuclear war, but certainly they used these ideas extensively in the making of the DoD’s ARPANet–the “mother” of today’s Internet. This combination of “packet switching” to by-pass network problems and “signing off” of data packets made for robust communications.

DNS or the “Domain Name System” was a solution to the problem of finding a computer on a network in the first place. Or more specifically allowing a human to find a computer on a network, as computers find each other quite easily by IP addresses; going back to our letters analogy this would be like sending a letter to a number. Humans aren’t very good at carrying around numbers in their heads, so the Domain Name System was created to match up IP addresses to text addresses: instead of sending our “letter” to 345.678.910 you can just type in

Conveniently that brings up that complicated-looking word “hypertext”. That “http” you type is another protocol. It’s called Hypertext Transfer Protocol, let’s examine it: well, it’s a protocol (as we know that’s like a “language” for computers to communicate with) that transfers “Hypertext”. The protocol is actually similar to our own language, using verbs such as “GET”, “POST”, and “DELETE” among others. Going back to the analogy, you could say it’s a bit like a postman–but this postman you can control. If you type in your browser uses the “GET” part of the protocol, because you want to “GET” that hypertext. If you fill in a form and click “Submit” the browser issues a “POST” to post your data. Conveniently your browser does all this for you, but you could actually issue these commands yourself.

But what about hypertext? This too is a simple idea, but an idea that had been brewing as far back as 1945. To understand hypertext, first think of footnotes in books. At a certain part of the text you would get a little number, indicating that if you looked at the footnote then you could find something else that was related to that word or phrase. Hypertext encompasses this idea by making the word or phrase itself a gateway to further information. A sterling example of hypertext is Wikipedia: you could spend days following hyperlinks in the hypertext to ever more information.

Around 1990 when Berners-Lee was doing his stuff I should imagine there was lots of talk about the uses of this new and exciting technology. Unencumbered by things like long-distance phone calls, or long and often unreliable postal mail, people would be able to communicate like never before. Berners-Lee kept this in mind when designing HTML: the markup language that gives structure to hypertext. It’s a simple user-friendly system of “tags” used to enclose their respective data. For example a paragraph would be indicated like so: <p>paragraph text</p>. The web was designed to allow people with no special computing knowledge to add things to it.

An Important Decision

About as important as actually inventing the web was the decision to make it open. This means that you don’t have to pay royalties or own a commercial piece of software to access it. A lot of people have made an incredible amount of money off the web, but the creator of it isn’t one of them. To further protect your freedom, he founded an organization called the World Wide Web Consortium. This organization creates and publishes open standards for creating and accessing the web.

Open standards are important to combat short-sighted business practices. It goes without saying software companies want you to buy and use their software, and a way of making you do this is creating a special language that only their products understand, this is called a proprietary format. Once enough people use the software that proprietary format is called the “industry standard” and people take it for granted that you have to buy the software, otherwise you won’t be able to digitally interact with all the other people who own it. Already your freedom has been severely curtailed; if you want to see that file then you have to pay out for the software. Some companies provide you with a free piece of software to view files, but what if you wanted to edit them? Or incorporate it into a larger project? You don’t have this freedom unless you’re prepared to pay out.

It is your freedom to pay for software, but it is also your freedom to decide how much you want to spend. However this freedom is again curtailed when buying the vast majority of software that uses proprietary formats. The reason behind this lies in competition–because one company holds all the cards–there is none. A little upstart company can build a better product with more features, but nobody would buy it because it wouldn’t be able to, or be severely limited, in accessing or using the larger company’s proprietary format. Rather than information is power, it seems the flow of information is power.

Without open standards on the web you’d be ”locked into” the information that you’re allowed to see. Instead of HTML there could have been a proprietary format that could only be accessed by certain pieces of software. Those would be the new barriers between global communications, the barrier between who can afford to “pay up” and who can’t.

Thankfully this never happened. You don’t need any special authoring tools to publish content to the web. You also know that people won’t need any special software to view your content. However remember that other formats you see on the web and offline, formats that you need plugins or programs to view, choose to use proprietary formats. These include Windows Media .wmv files, Apple Quicktime .mov files, RealNetworks .ram or .rm files, the Adobe Flash Player, Apple iTunes .aac files, Microsoft .doc, .xls, .ppt files and many more.

You usually need to buy software to create these files and then you are locked into them. An example would be if you wanted to buy something other than an iPod, you would have to burn every single .aac file to a CD then encode it in a different format. This is cumbersome, but remember there aren’t even fixes like this with other such formats. The only real answer is to use and promote open formats.



I wrote a post a while back on how much I disliked MySpace, much for the reasons as outlined in the Slashdot news stories below. However an anonymous commenter replied with something interesting:

Social networking websites are a kludge. People are trying out because it’s new and prevalence of computer and internet makes it possible for an average, unrespected, socially adept Joe to find some of his basic needs via this medium. Psychological.

I myself am not a proponent of social networking. But sometimes I do sign up and check how the system works. I don’t care about the users, it’s the ideas that I am looking at. These kinda websites are created by smart people, really smart. There are very good ideas that you can learn from something that you hate. Your perspective should be diverse for problem solving, which is important if you are into computer science or otherwise.

This comment must have been brewing in the back of my mind as a few months later I signed up to the MySpace network. I did it mainly because I wanted to see what all the fuss was about, I also wanted to examine the a system that so many of my non-technical friends seemed so enthralled in – how did their user interface cope with such a wide range of ability?

The Attraction

A large attraction of MySpace would be down to its snowballing ubiquity, the more people who sign up, the more attractive it is. This is for obvious reasons:

  • There’s no apprehension about MySpace as “everyone else” uses it, “MySpace” is an acceptable name to drop in normal teenage conversation, as opposed to say “blog feed aggregator”. Those terms aren’t engrained into current popular teenage culture, so would be shunned.
  • As it’s the widest used network, chances are there’s already someone you know on there, so you can get started straight away. A kind of “everyone uses it, so everyone uses it” affect.

An interesting side-effect of the first point is that some technical words have entered normal conversation. At college in our Skills Centre (where a lot of computers are) I regularly hear the mention of “HTML” by people who would sneer their noses up at it in any other context than MySpace. Currently people would say there’s a worrying Western teenage culture that deems intellect or an interest in learning as unsavoury. I’d add that more specifically it’s education that is deemed unsavoury. From that HTML example it would seem interest in learning about things is alive and well, which considering our innate curiousness as humans is not entirely surprising.

Education however has the ability to poison a lot of routes which people may have wanted to know more about. Education is largely seen as “the man” in Western teenage society, so it goes without saying that going “against the man” is the preferred option, as opposed to giving things that “the man” says a try. Is this really surprising considering the perceived view of what establishment–”the man”–has given us? Tax, war, student debts, eroding liberties to prevent terrorism, all without any escape due to an apathetical political climate.


Searching for a unique identity is one of the problems that adolescents often face. Some, but not all, teenagers often challenge the authority or the rules as a way to establish their individuality. They may crave adulthood and to find their place in the society.

Wikipedia article on Adolescence

I’m a teenager, I find that quite true. Being young is all about throwing personality-mud against the wall and seeing what sticks. Heck–a lot of adults don’t even know who they are.

The search for a unique–or at least some–identity is also an innate human condition. Whether the identity be created by clothes, or writing, or the way you act. MySpace has profile “styles” to bring about a representation of your taste, much like wearing clothes can. This is where MySpace comes under a lot of criticism from a technical audience: web design as a career means creating an identity and taking into consideration the ease of use from a user’s perspective. MySpace users largely only care about the first part: creating their identity. This is one way in which MySpace should be as detailed in my post Yourspace.

My point resides in how the styling of profiles seems like an accidental afterthought on behalf of the makers of MySpace. Yourspace highlights how standards like HTML allow everyone to interact without the need of special software. The way MySpace has been implemented spits in this:

  1. To style their profile, at all, users are forced into either copying from a different site, or painfully learning “their” esoteric incredibly unfriendly “system” of hooks in the original MySpace design.
  2. They don’t put the user stylesheet into the <head> block, resulting in that little flash of the underbelly of your profile before the style kicks in.

It’s things like that that make me think adding styles to MySpace was an afterthought, or at least very poorly implemented in the original scheme of things. They’ve basically deprived 50 million people of the ability to appreciate the beauty and simplicity of CSS coupled with HTML. The only option available for most teenagers when styling their profiles are those awful advertising-laden MySpace layout sites. If there was proper CSS support then they could use any of the innumerable CSS resources on the web. The point is that these technologies are designed for average people to use, so should be. The following quote sums it up:

…imagine what a service like this could be with a professional makeover. Get a company like Adaptive Path or a few Bryan Velosos in there and you could open up a whole new world of user enjoyment and customization.

–Mike Industries “Hacking MySpace Layouts“

Natural Interaction

Social software has to do what it says on the tin: it has to interact with your social life seamlessly, otherwise nobody would use it. This is one reason why MySpace is so popular, it does that quite well: you can comment on other people’s profiles, you can send out bulletins, you can view other people’s blogs to see what they’ve been doing with their lives, or look at their images / videos. Also, amazingly for once, record labels have embraced technology to make streaming songs available for inclusion on user profiles.

A while ago I would have considered these activities as “noise”. This is from signals-to-noise ratio terminology borrowed from electrical engineering by trendy web people to describe the web. Presumably things like Wikipedia are the “signals” while things like MySpace are the “noise”. However on giving a little more thought on the subject, the whole deciding on whether something is a signal or just noise is entirely subjective. For instance within MySpace there are microcosms where messages for organising parties etc. would be considered very much signals, but if taken on a macrocosmic level they would be considered as noise.

Unnatural Interaction

However, some parts of MySpace have more in-common with the points as outlined in an article called “Autistic Social Software“–the simplistic representation of social situations within a technical field.

Instead of letting comments between people naturally decide who your friends are, there is the concept of “rating” your friends in rank order. I couldn’t rank my friends in real life, because people aren’t discrete values. Why do I have to do so online?

Rather ominous is the positioning of a “Delete” button underneath a bulletin. I’ve pressed it a couple of times, instinctively thinking that I was deleting the bulletin–not so–it was the friend who sent it they decided you wanted to delete. One strike–bad bulletin–and a friend’s out?

The whole concept of a friend-counter is bizarre; again, in real life I wouldn’t feel too comfortable with tokenizing my friends in that way. What kind of sad person counts all the friends they have? I don’t see how the friend counter has any bearing on anything whatsoever:

  • Most of your friends may not have MySpace accounts.
  • The “friends” may just be acquaintances, with no real bearing on your real life.
  • What does a higher friend count really mean? That you’re happier? Or more popular?

With Webhostingbiz Blog I am used to, and enjoy, the ability to have a repartee in the comments section. Curiously MySpace have made your profile comments read-only to you, and to engage in a conversation you have to reply on the other person’s profile. Any other friend looking in on your profiles would have a really hard time trying to piece together any conversation you might be having with someone else. In real life this would be like writing on pieces of paper, then secretly passing them between people, piling them up in any order as you go along.


I’d hate to look at the code behind MySpace, because it seems every other request I make ends in an “Unexpected Error” (as opposed to an expected one?) For this reason alone I’d suggest MySpace might just collapse into itself.

Far more likely though is that today’s teenagers will simply grow out of it. The next generation will then, no doubt, sign up to something else that has better features, as the market is notoriously fickle. Things like MySpace already seem quaint with fully-blown Second Life experiences, but really so long as teenagers feel the need to express and share ideas to confirm or alter their identities, they’ll be a market for a business to tap into. Or possibly teenagers will eventually find out how to make the web work for themselves.


Why I buy Music?

It’s (still) easy to acquire music illegally on the Internet. The usual suspects are P2P, music blogs, or BitTorrent. There has been a crackdown on P2P in recent years, but due to its inherently decentralised nature, you can never really stamp it out. This year I see the focus of the media giants resting on websites of a less decentralised nature, such as The Hype Machine, which act as an index to the music files that bloggers have posted. By indexing those files that would have otherwise passed under the radar, they’re making themselves quite vulnerable.

The fact remains that the music industry is still doing good business, in spite of all of the above. Note however I say industry, as the artists often get a raw deal. I used to have connections with one of the members of S-Club Seven when they were at the height of their success, she said that their fame was in no way indicative of the frugal money they were receiving from the monolithic record label. The indie–independent–music scene largely grew out of this sense of disquiet amongst bands. For a more detailed look into the problems artists face, you may be interested in a recent article by Courtney Love.

I feel that it’s good marketing sense to have one or two songs from a CD available as free downloads. I’ve downloaded some of The Shins’s new stuff from a blog that only offered one or two tracks and liked them so much that I’m going to buy the CD. Even though they are being widely pirated they’re still topping the charts. Also as I buy “oldie” compilation CDs I have no qualms about seeing if you can get the odd song, which record labels sometimes obviously leave out to make you buy another CD.

But to answer the original question:

  • I’d rather have a high-fidelity CD that I can rip to my heart’s content than a legally acquired, or otherwise, digital file.
  • The packaging: I like to read the inside of the covers, I like perusing the CDs on my shelf.
  • I buy CDs online, which are usually at reasonable prices, as opposed to those in brick-and-mortar shops.
  • You can buy your favourite songs off iTunes, or whatever, but you may be depriving yourself of the other songs that you would normally get on the CD. For instance New Slang, whilst being highly popular, isn’t really indicative of the sound of The Shins.
  • I know you can get speakers that connect to your music player, but I just have a CD player.
  • To support the band. Though if you’re serious about supporting them, then you need to see them live, as they get a bigger cut of the profits.
  • A lot of “oldie” CDs cost tuppence anyway.
  • You can look forward to it coming. Patience really is a virtue.
  • CDs make good presents. Digital often simply cannot replace the tangible.

Angry Explorer Extends Italics

If you’ve noticed this blog acting slightly erratic (on second thoughts, nobody would) it is because I have been stung by yet another IE bug. It makes a change; this time it isn’t directly down to CSS, and instead is a bug in the way the rendering engine handles italics.

The problem starts when the browser has to spread the individual characters of italic text over a larger space, as those leaning over will take up more room than their vertical counterparts, similar to kerning. Now that isn’t necessarily a bad thing, but as usual, throw IE into the mix and hair loss is imminent.

The example on the left shows the gap between the photo I took of the Alps and the light grey border; it’s only about 2px or 3px but is intensely annoying. The space Explorer made to compensate for the elongated italics has spilled out right over the margin because of the justified text. Luckily though, there is a remedy that does involve CSS.

Now this bug is apparent over all Explorer versions. Although as of yet, I can only fix this bug under IE 6 and 5.5 – unfortunately not 5.01. Or to put it rather more precise, I can’t fix it under 5.01 without sacrificing the text float functionality. That would be the way the text flows around an image like above.

So tell me already! Well I would be rather amiss if I didn’t credit my source; the excellent Position is Everything collection of CSS hacks. Now the code they suggest is below:

/* */
* html #main {
overflow: hidden;
o\verflow: visible;
width: 100%;
w\idth: auto;
h\eight: 1%;
/* */

I’ll explain this line by line. First of all it starts off with a comment hack designed to hide it from all non-Explorer browsers. Next it uses the star selector hack, which is mistakenly parsed by Explorer. In this case HTML is not the child of any element, so shouldn’t be parsed as it has a * in front. The next statement is kinda obsolete in the case of my blog, but I’ll explain it anyway. If you remember I said that the italics spill out, well basically hidden chops off the overhang. If you like 100% positions it up for the chopping. Unfortunately I also found that it upsets the nice way text floats around an image.

So why is it obsolete? Well the majority of the code above is only there because of IE 5. The attribute of visible is enough to correct the problem in 6 and 5.5. After a while it does get tiresome messing around with different attributes and hacks. You have to decide how important the trade off between time and who is going to benefit from it all.

* html #left {
overflow: visible;

Is enough for me. If you find your browser makes a little gap between the header picture and the division, get Firefox or Chrome!


How to Find CSS Hacks?

Ever wonder how people find their CSS hacks? No? Well I do.

They must sit at their computers typing in random stuff and abusing code, effectively torturing browsers into doing strange strange things. Maybe they construct programs that export malformed CSS so they can leave browsers stuggling night and day–possibly the system is rigged up to some sort of bell that makes a noise everytime a browser fudges something up. Maybe the reaction they get is similar to the little bell on a microwave: salivation, but instead over food, over code. Erm…anyway I found a hack by accident–this is probably how they find them.

I was trying out a couple of colours (for simplicity lets just say I was trying out the shades black and white) for fonts. I couldn’t remember the hexadecimal codes for them, so I just commented them out to see which was the best one:

.hack {

color: /* #ffffff */ /* #000000 */ #ff0000;


Obviously the class I was working on wasn’t called “hack” but that’s the sum of it. I found the nice shade (i.e. red[#ff0000]) but forgot to take out the commented shades. When I went to test the site on my variety of browsers IE 5.5 fudged it. The writing wasn’t red. I was seeing red. I didn’t know why it wasn’t working, but eventually found out it was the commenting to “fault”. Now if I had discovered that a while ago I could give it a name, but no doubt someone already has. Nice to accidently discover something though. Try it yourself–if you dare…


.hack {

color: /* #ffffff */ /* #000000 */ #ff0000;




<span class=”hack”>Hello World!</span>

I think I’ll start a trend for silly CSS blog post titles.


Color Scheme Design the Easy Way

Colour for me is an annoyance, I know what goes together, but can’t actually make them up. It normally takes me ages trialing hex values to get something that doesn’t look awful, even in primary school I was always the one who mixed so much together that my palette more often than not ended up a brown-purply soup.

That’s where Paletton comes in. There are a plethora of hex colours that go together! Sorted!

I’m considering creating a Shade Lovers site that deals with varying shades of grey. I’m a stickler for semantics, so if I ever catch so much as a whiff of #000, #fff and their friends then I’m going to be sending an angry email to the Paletton website.

Stop Console Popup Problem: Gtkmm Windows

Fed up with the .dll overheads of wxPython and Python, I’m using gtkmm as my standard GUI toolkit from now on.

I’ve got all the libraries installed on Windows XP and Slackware using the gtkmm documentation, so I’m looking forward to nice portable apps.

There was one slight problem that had me stumped: on Windows the executable causes a console window to pop up along with the main GUI. I Googled to no avail, until today; evidently a fresh pair of eyes brings a new perspective to the problem. If you’re using Dev-C++ go to “Project” → “Type” and select “Win32 GUI”. I don’t know how I missed that one, then again it was about 11:30pm.

What this does is add the -mwindows flag to the g++ compiler. If you’re interested, here are my C++ compiler flags:

-IC:/Dev-Cpp/include/gtkmm/include/gtkmm-2.4 -IC:/Dev-Cpp/include/gtkmm/lib/gtkmm-2.4/include -IC:/Dev-Cpp/include/gtkmm/include/glibmm-2.4 -IC:/Dev-Cpp/include/gtkmm/lib/glibmm-2.4/include -IC:/Dev-Cpp/include/gtkmm/include/gdkmm-2.4 -IC:/Dev-Cpp/include/gtkmm/lib/gdkmm-2.4/include -IC:/Dev-Cpp/include/gtkmm/include/pangomm-1.4
-IC:/Dev-Cpp/include/gtkmm/include/sigc++-2.0 -IC:/Dev-Cpp/include/gtkmm/lib/sigc++-2.0/include
-IC:/GTK/include/gtk-2.0 -IC:/GTK/include/glib-2.0
-IC:/GTK/lib/glib-2.0/include -IC:/GTK/lib/gtk-2.0/include
-IC:/GTK/include/pango-1.0 -IC:/GTK/include/atk-1.0

Also my linker flags:

-LC:/Dev-Cpp/include/gtkmm/lib -LC:/GTK/lib -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0 -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

I didn’t get all those by hand either, use pkg-config from the console prompt with the instructions as outlined in the documentation. If you’re unsure of how to set the PATH environmental variable in Windows, you might want to have a look at my gpg for Windows post.

Cross Compiling Gtkmm Applications to Windows

There’s a readily available Gtkmm development package for Windows, but the following could come in handy for those who don’t own Windows, or want to escape the inconvenience of setting up and booting into another environment. A basic understanding of using the console is required and though I’m using Ubuntu, the steps are easily transferable.

First you’ll need to install the following packages and their dependencies:


Wine is only required if you don’t have access to Windows and want to check basic functionality. For a simple example I’m going to cross-compile the Hello World program in the Gtkmm documentation:

g++ -o helloworld `pkg-config gtkmm-2.4 –cflags –libs`

This will compile and link “Hello World” for regular use under the Ubuntu environment. To make an .exe we need to alter this in two ways:

  1. Substitute g++ with the equivalent Windows build.
  2. Tell pkg-config to use Windows development Gtkmm dlls instead of the Ubuntu development shared objects.

The first part should be provided by the mingw32 suite you installed earlier. On my system it installed:


Conveniently the Inkscape project supplies the Gtk/Gtkmm development dlls all in one place and provides the basis for the following instructions. What they’ve done is set the pkg-config paths to work from /target, so you can put the unzipped directory wherever you want, as long as you create a symbolic link to it from /target as root:

ln -sf /home/alex/gtk28 /target

The next instruction gives precedence to the libraries in /target, rather than on your system, by temporarily changing the first location pkg-config searches:

export PKG_CONFIG_PATH=/target/lib/pkgconfig

You can check if this worked by examining that /target is the prefix for the relevant flags:

pkg-config gtkmm-2.4 –cflags –libs

Once it’s all working you can create the .exe with the following:

i586-mingw32msvc-g++ -o helloworld `pkg-config gtkmm-2.4 –cflags –libs`

You can add the mwindows flag is to stop the console popping up, but I left it out to demonstrate the complete program on the right, running under Windows. If you don’t have Windows you can use Wine to test it loads, but be aware I had some problems regarding missing fonts that would otherwise be available–but essentially it will work fine given a proper Windows installation.

When distributing your application, you either need to direct your users to install the Gtk and Gtkmm runtime environments, or download them yourself and lump the dlls in the same directory as your binary (have a look at the Inkscape Windows zip file). I’ve managed to get the total build size down to about 8MB by deleting some locales and using UPX, and that example is running off my USB key.