<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fubra &#187; Software</title>
	<atom:link href="http://www.fubra.com/blog/category/technology/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fubra.com</link>
	<description>Focused on you</description>
	<lastBuildDate>Mon, 06 Feb 2012 02:38:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Furnish.co.uk &#8211; how we take payments for sellers but avoid legal liability</title>
		<link>http://www.fubra.com/blog/2011/06/02/furnish-co-uk-how-we-take-payments-for-sellers-but-avoid-legal-liability/</link>
		<comments>http://www.fubra.com/blog/2011/06/02/furnish-co-uk-how-we-take-payments-for-sellers-but-avoid-legal-liability/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 14:28:19 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Investments]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://wp.fubra.vc.catn.com/?p=2194</guid>
		<description><![CDATA[In case you haven&#8217;t heard of us, furnish.co.uk is a home interiors personal shopper. We...]]></description>
			<content:encoded><![CDATA[<p>In case you haven&#8217;t heard of us, furnish.co.uk is a home interiors personal shopper. We take the hard work out of shopping for your home by pulling together the best and most stylish furnishings from across the web. We work with multiple &#8220;sellers&#8221; and list a selection of each of their products, every one of which is hand-picked by us. Take a look to find everything from <a title="modern furniture" href="http://furnish.co.uk/">modern furniture</a> through to <a title="gifts for the home" href="http://furnish.co.uk/">gifts for the home</a>.</p>
<p>We offer several partnership options to sellers, but the one I&#8217;ll talk about here is where we sell their home furnishings directly from furnish.co.uk, just like a marketplace. For example, a customer finds a coffee table on furnish.co.uk from a particular seller, adds it to their basket, checks out and pays, all without visiting the seller&#8217;s own website. The seller is notified of this and dispatches the coffee table to the customer. We take a commission on the sale.<span id="more-2194"></span></p>
<p><strong>A legal minefield</strong><br />
Technically, this is relatively simple. But it&#8217;s a legal minefield if done the wrong way. Any business that takes payment for goods becomes accountable under the Sale of Goods Act 1979, Distance Selling Regulations, etc. Several websites such as Not On the Highstreet appear to do precisely this with home furnishings; they take payment from the customer, pay the seller a proportion of this and keep the rest. They then attempt to contract out of their statutory obligations in their terms and conditions, insisting that it is in fact the seller who is liable in the event of problems. However, in my view and that of my solicitor, if this were ever legally challenged, it would fail. Legislation to protect consumers cannot be ousted by private agreement. It&#8217;s the equivalent of those shops who put a &#8220;No Refunds&#8221; sign in the window. The situation is that, like it or not, if a company accepts payment for goods, there&#8217;s a whole load of legal baggage that comes with that. In the eye of the law, they&#8217;re a retailer and there is nothing they can do to change this.</p>
<p><strong>Paying the seller, not us</strong><br />
The only way to remove legal liability is for the customer not to pay us at all. They must pay the seller, who then quite rightly takes on the legal burden, and we charge the seller our commission afterwards. For this to work transparently, we need to perform some technical magic such that (1) the customer&#8217;s user experience of paying feels normal and natural, even though they&#8217;re paying the seller rather than us and (2) the whole process is automated, so we don&#8217;t need to get involved in manual invoicing and placing orders for home furnishings with sellers. In this way, it feels almost identical to if the customer paid us directly, except we avoid any legal liability. We do this as follows.</p>
<p><strong>Paypal API</strong><br />
Every seller that comes on board must set up a dedicated Paypal account. If, say, a customer buys some modern furniture on furnish.co.uk and checks out, they&#8217;re taken to the seller&#8217;s Paypal page, not ours. The customer feels comfortable with this, as they just see a Paypal page. Nothing abnormal there. As far as the customer is concerned, their work is now done. But there&#8217;s more to the technical process.</p>
<p>The seller&#8217;s Paypal account is configured such that furnish.co.uk gets an automatic notification through the Paypal API when a purchase takes place. This information is then automatically processed, the commission due calculated and a tally kept of commission due for each seller. Because we can also automatically monitor payments made to our own Paypal account and by who, we also know when a seller has paid us our commission. So we can calculate the total a seller owes us by taking the commission owed from all sales and subtracting from it the total paid to us. The seller is automatically emailed regularly with the outstanding balance. The email to the seller contains a link that directly opens Paypal on a page ready to transfer the sum owed into the Paypal account of Furnish.co.uk. The seller simply needs to click a confirmation to make the transfer; it couldn&#8217;t be easier for them.</p>
<p>In the event the seller doesn&#8217;t pay within the allocated time, we have some powerful options available. We could remove the seller from Furnish, thus cutting off their income from any furniture sales on furnish.co.uk, or even contact the customer, so it&#8217;s simply not worth it for a seller to act dishonestly. An added beauty is that a seller is welcome to top up their payments to us at any time to avoid any risk of underpayment, just like topping up your mobile phone credit.</p>
<p><strong>Ensuring automatic notifications happen</strong><br />
A flaw in the plan is that a seller *could* secretly switch off the automatic notifications from their Paypal account such that furnish.co.uk thinks that no sales are happening when they actually are. There&#8217;s an answer here too, which we&#8217;ll be implementing shortly. Every few days or weeks, we&#8217;ll automatically make a random payment of just a few pence to each seller&#8217;s Paypal account. If their notifications are set up correctly, we&#8217;ll be notified of the payment we made and we&#8217;ll just reduce the amount owed by that seller by the few pence we transferred. But in the event we don&#8217;t get notified of the payment we made, we&#8217;ll know that the seller has switched off the automatic notifications, and we can then deal with this accordingly.</p>
<p>I should mention that all of the above functionality is presently in development, but it&#8217;s looking good. I&#8217;ll let you know how it goes in a future post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2011/06/02/furnish-co-uk-how-we-take-payments-for-sellers-but-avoid-legal-liability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AffJet &#8211; Our Newest Addition</title>
		<link>http://www.fubra.com/blog/2011/03/01/affjet-our-newest-addition/</link>
		<comments>http://www.fubra.com/blog/2011/03/01/affjet-our-newest-addition/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 16:13:10 +0000</pubDate>
		<dc:creator>Jen</dc:creator>
				<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[AffJet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[affiliates]]></category>
		<category><![CDATA[affjet]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[new site]]></category>

		<guid isPermaLink="false">http://wp.fubra.vc.catn.com/?p=1978</guid>
		<description><![CDATA[AffJet is the latest addition to Fubra&#8217;s catalogue of websites, and we wanted to tell...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.affjet.com">AffJet</a> is the latest addition to Fubra&#8217;s catalogue of websites, and we wanted to tell everyone all about it!</p>
<h2>AffJet = Better Affiliate Analysis</h2>
<p>AffJet&#8217;s slogan summarises what AffJet is in three short words which is targeted at it&#8217;s market, but for those of you who don&#8217;t know what affiliate analysis refers to, here&#8217;s a quick introduction.</p>
<p>Affiliate marketing is a great way for websites to make money from their content and essentially, the process goes like this:</p>
<p>Site A displays links to Site B within their content, using a tracked or &#8220;affiliate link&#8221;. Every time a user on Site A clicks that affiliate link and performs a desired action on Site B (buys something, signs up for a service etc&#8230;),  Site B gives Site A some commission as a little thank you!</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-2010" src="http://www.fubra.com/wp-content/uploads/2011/03/affiliate-marketing-process1.jpg" alt="Affiliate marketing process" title="Affiliate marketing process" width="490" height="315" /></p>
<p><span id="more-1978"></span></p>
<p>This process works at it&#8217;s best when Site A and Site B are highly related to each other and, because the sales are tracked, Site B only pays for the desired actions when they happen. This differs with traditional display advertising, used online and offline, because as an advertiser you pay for all your advertising regardless of whether you receive any desired actions from it. For this reason it has taken off really well and is used by many websites across the world wide web.</p>
<p>Affiliate marketing uses intermediary software providers called affiliate networks who provide a platform which connects Advertisers and Publishers (aka Merchants and Affiliates). Affiliate networks allow relationships between these two parties to be built, agreements to be put in place and actions to be tracked and they also supply reporting for their merchants and affiliates.</p>
<h2>Where does AffJet come in?</h2>
<p>The problem with the current affiliate marketing system is that there are many affiliate networks each with lots of merchants and affiliates on their systems. As an affiliate, logging into each of these affiliate networks to find out how your websites are performing can be really time consuming, and creating reports to combine all of the data together really does take a long time.</p>
<p>This makes effective analysis of your data a much more daunting task than it needs to be.</p>
<p>AffJet provides a solution which aggregates all the data held by affiliate networks into one place. This allows affiliates to log into one place to find out how their websites are performing and saves loads of time.</p>
<h2>What can affiliate marketers do on AffJet?</h2>
<p>As an affiliate, you can take advantage of many useful, comprehensive and varied features within AffJet including: </p>
<blockquote><ul>
<li>Custom Projects to allow grouping of links from any website, network or merchant</li>
<li>Custom dashboards to allow you to see the metrics you want to see upon logging in</li>
<li>Automatic import every night, we take the load on our servers to save your computer coping with an import</li>
<li>Highly secured protection for your data, and regular back ups meaning you won&#8217;t lose out if your computer gives up</li>
<li>Access your data from anywhere with an internet connection</li>
<li>Allow yourself to act on the crucial difference between viewing your data and analysing it</li>
</ul>
</blockquote>
<p>The interface, design and features make AffJet simple to use and allow you to retrieve affiliate data and statistics quickly and simply, giving you back more time to spend on analysing and acting on the trends you have observed. </p>
<h2>What direction is AffJet moving in now?</h2>
<p>We are working hard on adding new affiliate networks (for greater coverage) and also new features into AffJet at the moment. A lot of these changes are being brought about by real user feedback as we want to make sure that we work on things that will make a real difference to affiliates daily work load.</p>
<p>We currently have a launch competition running, where affiliates using AffJet have a great chance to win an iPad regardless of their size. This competition will start when we have 50 users on AffJet and we are hoping to get a lot of feedback from these users that can help us make AffJet even better. You can read more about the <a href="http://www.affjet.com/2011/02/22/affiliates-win-an-ipad/">AffJet iPad competition here.</a></p>
<p>Did I mention Affjet is free to use while we are in our beta testing stage?!</p>
<p>You can keep updated with what is going on with AffJet by following us on our <a href="http://twitter.com/affjet">AffJet Twitter account</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2011/03/01/affjet-our-newest-addition/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Furnish.co.uk &#8211; how we automatically categorise content</title>
		<link>http://www.fubra.com/blog/2010/03/02/furnish-co-uk-how-we-automatically-categorise-content/</link>
		<comments>http://www.fubra.com/blog/2010/03/02/furnish-co-uk-how-we-automatically-categorise-content/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:00:59 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Investments]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Decoration]]></category>
		<category><![CDATA[Furniture]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[House]]></category>
		<category><![CDATA[Interior]]></category>

		<guid isPermaLink="false">http://www.fubra.com/?p=1454</guid>
		<description><![CDATA[From the outside, furnish.co.uk looks pretty simple; thousands of fabulous interiors products from multiple different...]]></description>
			<content:encoded><![CDATA[<p>From the outside, <a href="http://furnish.co.uk" target="_blank">furnish.co.uk</a> looks pretty simple; thousands of fabulous interiors products from multiple different stores, all easily searchable and nicely categorised.</p>
<p>But, in the background, there&#8217;s some seriously clever stuff going on. We&#8217;re automatically scraping stores&#8217; websites (with their permission of course) or scanning their feeds at regular intervals, and then subjecting this data to heavy processing to determine category, style, colour, materials, etc and also doing some very leading edge stuff to make our custom-developed search engine produce super-accurate results.<span id="more-1454"></span></p>
<p>For me, the most important thing about furnish.co.uk is that when a user types &#8220;wooden coffee tables&#8221; into the search or navigates to <a href="http://furnish.co.uk/f/coffee-tables-furniture-living-room-small-tables" target="_blank">coffee tables</a> or <a href="http://furnish.co.uk/f/table-lamps-lighting" target="_blank">table lamps</a>, that&#8217;s precisely what they get. They don&#8217;t see a coffee jug under coffee tables. I know of no sites that do this particularly well.</p>
<p>So, I thought I&#8217;d write about how we achieve some of this stuff &#8211; to start with, how we automatically and accurately categorise the thousands of products into our category hierarchy; how we know a bed is a bed, a wall light is a wall light, etc. I&#8217;m not the main technical guy at furnish.co.uk &#8211; that&#8217;s Alan &#8211; so I&#8217;ll keep things at a relatively non-technical level. But, hopefully, you&#8217;ll find it pretty interesting.</p>
<p><strong>Categories and clones</strong><br />
We&#8217;ve constructed a hierarchy of hundreds of categories, covering every interiors product for the home. We did this by analysing other sites that sell home interiors products, e.g. John Lewis, Graham and Green, Marks and Spencer, Heals and then put together something that we thought worked.</p>
<p>We decided to let users have multiple ways to navigate through the category hierarchy to the same product for ease of use. However, for simplicity, each product only actually has a single category. That&#8217;s because we have &#8216;clone categories&#8217;, where a category can exist in multiple places. For example, Rooms -&gt; Bedrooms -&gt; Bedroom furniture -&gt; Bedside tables shows the same items as Products -&gt; Furniture -&gt; Bedroom furniture -&gt; Bedside tables. One is a clone of  the other and means the item itself only needs a single category.</p>
<p><strong>Assigning categories</strong><br />
Based on the above, we automatically assign categories to items. For each item imported, we do the following:</p>
<ol>
<li>We pull several fields out of the item that we think will give us a hint to its category and we prioritise these fields. For example, we may think that the item name is most likely to give us a hint, followed by the description. The choice of fields and their priority varies by supplier; some suppliers actually have a categories field that we can use.</li>
<li>Next, we take each of these fields in turn (highest priority first) and attempt to determine the category. We do this using a HUGE synonyms library that we&#8217;ve painstakingly put together from scratch, where each category has a set of associated synonyms. You can see a screen shot from our back end system below. Furthermore, each synonym is prioritised. So, the system finds all synonyms contained within the field that it&#8217;s analysing, but then chooses the one with the highest priority. There are also negative synonyms, i.e. where an item cannot be a certain category if it contains certain words. In the event the field contains multiple synonyms with equal priority, it uses the one that comes first in the field.</li>
<li>If there are no matches, it moves onto the next field within the item to see if that contains a synonym.</li>
<li>This is repeated for all items being imported. On rare occasions, no synonyms are found and items end up with no category. However, these are not published.</li>
</ol>
<p><a href="http://www.fubra.com/wp-content/uploads/2010/03/Screen-shot-2010-03-02-at-10.52.55.jpg"><img class="alignnone size-full wp-image-1463" src="http://www.fubra.com/wp-content/uploads/2010/03/Screen-shot-2010-03-02-at-10.52.55.jpg" alt="" width="460" height="202" /></a></p>
<p>We&#8217;ve found that our processing and synonyms library is sufficiently good that any new supplier coming on board tends to get 95% correct categorisation. We then manually tweak the synonyms to ensure 100% accuracy for the supplier.</p>
<p>All pretty elaborate, but the result is clear and accurate navigation. We also use some of this information for the search index, but more on that in a future post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2010/03/02/furnish-co-uk-how-we-automatically-categorise-content/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sitemap Validation</title>
		<link>http://www.fubra.com/blog/2008/09/17/sitemap-validation/</link>
		<comments>http://www.fubra.com/blog/2008/09/17/sitemap-validation/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 15:31:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Sitemap]]></category>
		<category><![CDATA[Validation]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2008/09/sitemap-validation/</guid>
		<description><![CDATA[Introduction Hello, my name is Alex Buell, I am profoundly deaf, and work as a...]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p align="justify">Hello, my name is <strong>Alex Buell</strong>, I am profoundly deaf, and work as a Linux<br />
system administrator within the Fubra infosphere. I usually spend most<br />
of my time working on open source projects, giving back to the<br />
community extra value in tools that allow us to do our job.</p>
<p><strong>What are sitemaps?</strong></p>
<p align="justify">They provide a way for webmasters (people who run<br />
websites) to give out information about the content on their websites.<br />
Search engines (i.e. www.google.co.uk) look (&#8216;crawling&#8217;) through<br />
websites to build up indexes to allow people to search for things that<br />
they are interested in looking for.</p>
<p align="justify"><span id="more-262"></span></p>
<p align="justify">Essentially a sitemap is just a file containing URLs in XML format,<br />
along with additional metadata about each of these URLs (when was it<br />
last updated, how often does it change, how vital it is), enabling<br />
search engines to make intelligent decisions about searching for links<br />
to or from pages on the web sites.</p>
<p align="justify">Sitemaps have to be regularly updated so we have a tool that<br />
automatically generate sitemaps which are stored within the web site,<br />
search engines can download these files and read through all the URLs.</p>
<p><strong>A new tool for validating sitemaps</strong></p>
<p align="justify">We at Fubra have developed a web tool to help with validating sitemaps<br />
on our websites. The tool does two things; reads the sitemap files off<br />
the website, and presents to us in a human readable form, and if asked,<br />
check through the URLs, displaying the http code (i.e. 404, 301, or 200)<br />
in the status icons on the right side.</p>
<p style="text-align: center"><a href="http://sitemaps-validator.fubra.com" target="_blank"><img src="/images/f10439/1741_validator.png" alt="Sitemap Validator" /></a></p>
<p><strong>How to use the Validator webtool</strong></p>
<p align="justify">To use the tool, point your browser at the<br />
<a href="http://sitemaps-validator.fubra.com">Sitemap Validator</a> site, and type in the URL<br />
(i.e. www.talkfootball.co.uk), and see what the tool does with it.</p>
<p align="justify">As it stands, the validator tool will look through the URLs and<br />
its associated metadata for validity and colour the icon on the right<br />
accordingly. Red icons means that the URL is a duplicate, orange means<br />
the date and time associated with the URL is invalid, whilst green<br />
means that the URL and its metadata is valid. The tool sorts the URLs<br />
in a way that all invalid URLs comes first and all valid URLs comes<br />
last. This makes it easy to see what is wrong with the sitemap.</p>
<p align="justify">Additionally, there is a button &#8216;Check&#8217; in the top row, which, if<br />
clicked upon, will run a check on all the URLs on the site, and display<br />
the http code.</p>
<p><strong>Any other business?</strong></p>
<p align="justify">All comments, flames and feedback welcome, please do drop me an email<br />
at <strong>alex at  fubra dot com</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2008/09/17/sitemap-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Setup a Mac Mini as a BGP Router</title>
		<link>http://www.fubra.com/blog/2007/10/19/howto-setup-a-mac-mini-as-a-bgp-router/</link>
		<comments>http://www.fubra.com/blog/2007/10/19/howto-setup-a-mac-mini-as-a-bgp-router/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 09:58:00 +0000</pubDate>
		<dc:creator>Mark Sutton</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[BGP]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[LINX]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac Mini]]></category>
		<category><![CDATA[Router]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2007/10/howto-setup-a-mac-mini-as-a-bgp-router/</guid>
		<description><![CDATA[Thinking Differently&#8230; An update on our Mac Mini Routers at LINX We have been quiet...]]></description>
			<content:encoded><![CDATA[<p><em>Thinking Differently&#8230; An update on our Mac Mini Routers at LINX</em></p>
<p>We have been quiet for a while on the subject of the mac minis we installed into <a href="https://www.linx.net/">LINX</a> at Telehouse several months ago&#8230;</p>
<p>You may remember the <a href="http://www.fubra.com/blog/2007/04/first-mac-mini-bgp-routers-on-worlds.html">previous article</a>, basically we are using a pair of Mac Mini computers to connect our hosting platform to the LINX Internet exchange in London.</p>
<p><a href="http://www.fubra.com/blog/uploaded_images/3macminis-756319.jpg"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/3macminis-756317.jpg" border="0" alt="" /></a></p>
<p><span id="more-201"></span></p>
<p>Having a connection to LINX enables us to get much closer to our end users and to our primary content providers, meaning our information moves faster and at lower cost.</p>
<p>Our decision to use the Mac Minis as routers was based on a combination of economic factors. Compared with the typical <a href="http://www.cisco.com/en/US/products/hw/routers/ps341/index.html">Cisco 7200</a> or <a href="http://www.juniper.net/products_and_services/m_series_routing_portfolio/index.html">Juniper M-series</a> routers, the Minis use less space and a fraction of the power whilst providing a massive 2GB of RAM for routing tables, a Core2 DUO 1.83GHz CPU and Gigabit network interface for a <span style="font-style: italic">tiny</span> fraction of the cost.</p>
<p>Whilst some old-school network purists might have their own opinion on software routers, we have used Linux based routers at our edge and core for over four years now with no issues at all and saved tens of thousands of pounds in routing hardware. So far, packet-for-packet the Minis have performed every bit as well as our 1u rackmount routers in use at our less power constrained sites.</p>
<p>Now that the initial setup is completed, I have been asked to into go more detail about the system and how we solved the various issues encountered along the way. And there have been many issues to solve, mainly because the Mac Mini wasn&#8217;t really designed for use as a border router.</p>
<p>So first, the hardware issues&#8230;</p>
<h3>Hardware problem 1 &#8211; Booting without a monitor</h3>
<p>The Mac Mini is designed for use as a desktop computer. As such it expects to have a monitor attached &#8211; and somewhat unusually will not boot without one.</p>
<p>To get around this problem we made up some svga dongles as described <a href="http://www.mythic-beasts.com/support/macminicolo_howto.html">here</a> and connected them using the svga-&gt;dvi adapters supplied by Apple.</p>
<p><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/svga-dongle-parts.jpg" border="0" alt="" /></p>
<p><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/svga-dongle-assembled.jpg" border="0" alt="" /></p>
<p>Granted, from a purist perspective an svga dongle sticking out of the back does spoil the form of the Mini slightly, but in another way it looks like a chromed exhaust pipe, quite fitting for our little hot-hatch routers!</p>
<p><a href="http://www.fubra.com/blog/uploaded_images/Macmini-749542.jpg"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/Macmini-749531.jpg" border="0" alt="" /></a></p>
<h3>Hardware problem 2 &#8211; Automatic power-on</h3>
<p>The next hardware problem encountered was how to make the minis boot automatically after a power cut/cycle. Fortunately this was also figured out quite easily, it was simply a case of adding the following line early in the boot process:</p>
<blockquote>
<pre>  # setpci -s 0:1f.0 0xa4.b=0</pre>
</blockquote>
<h3>Hardware problem 3 &#8211; complex routing on a single network interface</h3>
<p>The final hardware problem &#8211; well not really a problem, but something I often get asked about &#8211; is how the networking works.  The Mini has just one network card and most people think of a router as having more than one physical network interface.</p>
<p>However, by installing a decent &#8216;managed&#8217; network switch between our physical network connections and the router, we are able to use VLAN technology (802.1q VLAN Tagging to be precise) to provide multiple secure &#8216;virtual&#8217; network connections to Linux.</p>
<p><a href="http://www.fubra.com/blog/uploaded_images/fubravlanrouter-large.png"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/fubravlanrouter-small.png" border="0" alt="" /></a></p>
<p>Problem solved.  Next, software and driver issues.</p>
<p>We run Ubuntu-Server 7.04 as the operating system on the Minis. For those who aren&#8217;t in the know yet, Ubuntu is one of the leading Linux software distributions. Fubra is no stranger to Linux with more than 150 Fedora, Centos and Ubuntu Linux systems deployed across the network as workstations, web servers, email servers, databases and routers.</p>
<h3>Software problem 1 &#8211; Dodgy ethernet drivers&#8230;</h3>
<p>Probably the biggest problem we had with the Minis was getting the network cards to remain stable under heavy load. The culprit in this case was what appears to be the buggy (aka &#8220;experimental&#8221; in kernel speak <img src='http://www.fubra.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  SKY2 network card driver supplied in the Linux kernel.</p>
<p>In the end we decided to stop using the SKY2 driver altogether until it is more stable. Instead we chose to use the Marvell supplied driver which can be found <a href="http://www.marvell.com/drivers/driverDisplay.do?dId=153&amp;pId=36">here</a>. Since switching to the Marvell driver the network card has remained rock solid and we have had no problems or device lockups at all.</p>
<h3>Software problem 2 &#8211; Connecting to the Internet. Oh yeah, and support for md5 passwords&#8230;</h3>
<p>For most people, connecting to the Internet means subscribing to a broadband service, which typically provides a single route out to the Internet at between 2 and 20Mb/s. As a hosting company with a lot of high-traffic websites, we have multiple connections to the Internet running at between 100 and 1000Mb/s, enabling us to handle a lot of simultaneous visitors without slowing down.</p>
<p>The other main reason for having multiple connections is that we can survive ISP failures on our network, but implementing this level of protection requires another software protocol running on the router called Border Gateway Protocol, or BGP.</p>
<p>BGP is like a route-planning system for the Internet. In much the same way as an in-car, GPS-based navigation system does, it knows of every route between any two given points on the Internet and can calculate which is the best path to take.</p>
<p>The only issue we had with BGP was getting md5 signatures (a common authentication method for BGP routers) to work &#8211; and judging by the <a href="http://www.quagga.net/">Quagga</a> mailing list and <a href="http://wiki.quagga.net/index.php/Main/AddRes">wiki</a> this has been a perennial problem for quite some time.  I won&#8217;t go into too much detail but from what I can tell the resolution was quite typical for an open source project:</p>
<ol>
<li>Some kernel developers suggest md5 signing has no place in the kernel &#8211; it should go into userspace.</li>
<li>Some userspace developers feel the most appropriate place for md5 signing is in the kernel.</li>
<li>Both solutions end up developed&#8230; [<a href="http://www.pilosoft.com/bgpmd5/bgpmd5.pl">bgpmd5.pl</a>] [<a href="http://lists.quagga.net/pipermail/quagga-users/2006-March/006662.html">md5qd</a>] [<a href="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/">Kernel &gt;=2.6.20</a>]</li>
</ol>
<p>In the end we went for the following recipe:</p>
<ul>
<li>Linux Kernel 2.6.22 (compiled from Vanilla sources)</li>
<li>Quagga 0.99.9 plus Solinno patch found <a href="http://www.solinno.co.uk/md5sig/quagga_md5_bsd_linux_v7.diff">here</a></li>
</ul>
<p>Note it took a couple of extra steps not all that well documented anywhere to get quagga to work properly with the in-kernel support for md5 signing:</p>
<p>First, since the patch was taken against quagga-0.99.8, it has to be applied as follows:</p>
<blockquote>
<pre>  # tar -zxvf quagga-0.99.9.tar.gz
  # cd quagga-0.99.9
  # patch -p1 &lt;../quagga_md5_bsd_linux_v7.diff</pre>
</blockquote>
<p>Next, the sources need to be configured with an option to disable IPV6 (note that this disables support for IPV6 in Quagga altogether):</p>
<blockquote>
<pre>  # ./configure --enable-ipv6=no --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga</pre>
</blockquote>
<p>To enable the md5 support provided by the Solinno patch, an extra line should be added to config.h before compiling and installing:</p>
<blockquote>
<pre>  # echo "#define HAVE_TCP_MD5SIG" &gt;&gt;config.h
  # make &amp;&amp; make install</pre>
</blockquote>
<p>I&#8217;d like to thank all the guys on the Quagga mailing list who have worked on the md5 problem over the last couple of years.</p>
<p>Having used both of the user-space solutions in production (bgpmd5.pl, md5qd), I can honestly say that the in-kernel method seems to be far more reliable once you get it working and &#8220;just feels right&#8221;.</p>
<p>Plus a special shout to Dunc from <a href="http://www.thebunker.net/">The Bunker</a> who has been working on the same bgp md5 problems for just about as long as I have <img src='http://www.fubra.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>So how fast will our little hot-hatches go?</h3>
<p>To be fair, I&#8217;m not yet 100% sure what we can expect from our Mini routers but the bottom line is, with a 1.8GHz processor, 2GB of ram for holding large routing tables, a Gigabit network interface and a liberal sprinkling of kernel tweaks I fully expect the routers to handle several hundred Megabits per second (and yes, before you shout at me I know &#8211; its really about packets per second, not Megabits!).</p>
<p>Hopefully we&#8217;ll get the opportunity to fully test some Minis under lab conditions to get some real numbers. When we do, I&#8217;ll be sure to post the results in a subsequent article.</p>
<p>I&#8217;m convinced that one day we will have to invest in something a little more substantial, after all a hot hatch is great but it doesn&#8217;t have enough room for four kids and a pram.</p>
<p>Until then we&#8217;ll enjoy the lower fuel consumption and lower purchase cost of our Mac Minis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2007/10/19/howto-setup-a-mac-mini-as-a-bgp-router/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Source Windows Applications</title>
		<link>http://www.fubra.com/blog/2005/05/29/open-source-windows-applications/</link>
		<comments>http://www.fubra.com/blog/2005/05/29/open-source-windows-applications/#comments</comments>
		<pubDate>Sun, 29 May 2005 15:44:00 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2005/05/open-source-windows-applications/</guid>
		<description><![CDATA[Who said there was no such thing as a free lunch? In my experience I...]]></description>
			<content:encoded><![CDATA[<p>Who said there was <strong>no such thing as a free lunch</strong>? In my experience I have found that the some of best <em>Windows</em> programs are in fact the ones that are completely free, (winscp, putty, firefox etc&#8230;) which is why I like this idea so much. <a href="http://www.theopencd.org/">The OpenCD</a> is a collection of high quality free and open source software designed to run on Windows. If you don&#8217;t feel brave enough to make the switch to Linux for your main system, then this is a good introduction to open source software that will run on your current Windows machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2005/05/29/open-source-windows-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freeware CD burning</title>
		<link>http://www.fubra.com/blog/2005/05/09/freeware-cd-burning/</link>
		<comments>http://www.fubra.com/blog/2005/05/09/freeware-cd-burning/#comments</comments>
		<pubDate>Mon, 09 May 2005 12:42:00 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2005/05/freeware-cd-burning/</guid>
		<description><![CDATA[Do you find it a pain having to pay for a cd burning program like...]]></description>
			<content:encoded><![CDATA[<p>Do you find it a pain having to pay for a cd burning program like Nero when you just want to rip or burn an iso file. Well I&#8217;ve found the answer&#8230; Check out <a href="http://isorecorder.alexfeinman.com/Beta.htm">ISO Recorder 2 Beta</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2005/05/09/freeware-cd-burning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secure FTP it&#039;s about time!</title>
		<link>http://www.fubra.com/blog/2005/05/02/secure-ftp-its-about-time/</link>
		<comments>http://www.fubra.com/blog/2005/05/02/secure-ftp-its-about-time/#comments</comments>
		<pubDate>Mon, 02 May 2005 22:05:00 +0000</pubDate>
		<dc:creator>Brendan</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[SCP]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[WinSCP]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2005/05/secure-ftp-its-about-time/</guid>
		<description><![CDATA[I have always been quite annoyed at the web standards FTP is among the worst...]]></description>
			<content:encoded><![CDATA[<p>I have always been quite annoyed at the web standards FTP is among the worst of them and whilst SSH has had it&#8217;s fair share of <a href="http://www.openssh.com/txt/preauth.adv">bad news</a> it is sensible that all web traffic should be secured where possible.</p>
<p>When Paul showed me <a href="http://winscp.net">WinSCP</a> as a great alternative to FTP I was well chuffed mainly because we haven&#8217;t really been able to get to our servers via FTP as hardly any run FTP servers but also because I can use my SSH key to authenticate rather than remembering passwords which I almost never use because they are so hard to remember.</p>
<p>The people behind this project should be proud it is definitely one of my favorite apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2005/05/02/secure-ftp-its-about-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

