PiFast

I came across PiFast today which is a Windows program allowing you to calculate Pi. It’s certainly a lot faster than Super Pi – it took somewhere in the region of 40 seconds to calculate 1 million digits using Super Pi; using PiFast I calculated 1 million digits in 3 seconds.

I left the program on over lunch to calculate 256,000,000 digits of Pi. It took 2396.4 seconds (around 40 minutes). Here is my configuration (Pentium 4 3GHz, 1GB ram) and output:

C:\Documents and Settings\Khlo\Desktop>pifast43
PiFast, version 4.3 (fix 1) (Copyright 1999-2003 Xavier Gourdon)
http://numbers.computation.free.fr/Constants/PiProgram/pifast.html
Menu :
[0] Compute Pi with Chudnovsky method (Fastest)
[1] Compute Pi with Ramanujan method
[2] Compute E by the exponential series exp(1)
[3] Compute E by the exponential series 1/exp(-1)
[4] Compute Sqrt(2) (useful for testing)
[5] Define your constant with hypergeometric series
[6] Compute a user constant from a .pifast file
[7] Decompress a result file
[8] Check a compress result Pi file
Enter your choice : 0

Choose your computation mode :
[0] standard mode (no disk memory used)
[1] basic disk memory mode (for big computations)
[2] advanced disk memory mode (for huge computations)
Enter your choice : 1

Number of decimal digits : 256000000
Possible FFT modes, with approximate needed memory :

FFT Size=16384 k, Mem=788960 K, MemDisk=500000 k (Fastest mode)
FFT Size=8192 k, Mem=395744 K, MemDisk=500000 k (Time: Fastest mode * 1.3)
FFT Size=4096 k, Mem=197872 K, MemDisk=500000 k (Time: Fastest mode * 1.8)
FFT Size=2048 k, Mem=99568 K, MemDisk=500000 k (Time: Fastest mode * 3.0)
FFT Size=1024 k, Mem=50016 K, MemDisk=500000 k (Time: Fastest mode * 5.1)
FFT Size= 512 k, Mem=25440 K, MemDisk=500000 k (Time: Fastest mode * 7.3)
...

Enter FFT Size in k :16384

Compressed output (also useful to specify output format) ? [0=No, 1=Yes] : 0

Chunks : in this mode, you can do your computation
in several runs by entering a time threshold for the current
run. The next run will start where the current run has stopped.
Time threshold in hours (0 if single run wanted) : 0

Total Physical Memory Allocated = 789762 Kbytes
Computing series with index N=18053604
Starting step 10
Starting step 9 ...
Starting step 8 ...
Starting step 7 ...
Starting step 6 ...
Starting step 5 ...
Starting step 4 ...
Starting step 3 ...
Starting step 2 ...
Starting step 1 ...
Starting step 0 ...
Series computing time : 2396.44
Division :   Done
Division time : 237.06
SquareRoot :   Done
InvSqrt time : 181.31
Final huge multiplication time : 130.00
---------------------------------------------------------------
Computation time of this run : 2996.72 seconds
Total computation time : 2996.72 seconds(~ 0.83 hours)
Writing informations into file pi.txt

The computation seems OK
Appending result to file pi.txt ...

So now I’m stuck with a 352 Mebibyte file which I have no idea what to do with

Finding a successor for phpBB

Of all the open source bulletin boards phpBB is undoubtedly the most popular and successful. phpBB 2.0, the last major version, was released on April 4th, 2002. 44 months later, there have still been no major updates – just security patches. Most webmasters want free and decent bulletin board software. There are alternatives, but nothing matches the familiarity of phpBB. Additionally, no other free bulletin board has anywhere near the same amount of support or add-ons. The downside of phpBB is it’s non-existant release cycle, poor security and the lack of community participating in it’s development (the community coding projects are the closest)

The cost-benefit ratio

Cost of switching from phpBB to another bulletin board:

  • Retraining of all members
  • Zero theme compatibility; need to reskin whole board
  • Zero mod compatibility; need to find equivalent/similar mods.
  • Most other free bulletin boards are still not open source and use proprietary licensing
  • There is still no clear alternative to phpBB; when switching your board your putting a large bet on that bulletin board being developed in the future. With people creating a new bulletin board every week or so, that is a large risk to take. Once you’ve converted to a bulletin board which then fades into obscurity, there is no way to convert to anything else as no one will bother writing a converter.

Benefits of switching from phpBB to another bulletin board: 

  • New features
  • Improved security

To create a successor to phpBB, you’ve got to do more than just write a bulletin board. You’ve got to lower the cost of switching and increase the benefits.

If you’re aiming your product at someone who has never ran a bulletin board before (and this market is getting smaller as blogs get more popular) the same reasons could apply; phpBB will still be more familiar to them and will have a larger skin/modification community.

The cost of retraining can be greatly lowered by doing things as users expect. The further you deviate from the norm, the higher the cost of retraining will be. For example, you could lay out your Admin Control Panel so it vaguely resembles the layout of phpBB’s admin CP. You could ensure that your bulletin board is licensed similarly to phpBB or give it an even more liberal license such as the BSD license. You could even use the phpBB theme (it’s GPL, right?)

Perhaps developing converters from your bulletin board back to other bulletin boards will make users feel a bit more secure and willing to make that big jump. Keep the converters up to date; it really makes it a lot easier to switch to a product knowing that it’s possible to switch back later at any time without losing posts and members.

phpBB 3.0

I believe that phpBB 3.0 will be a lot more successful than any of the alternative bulletin boards simply because the cost of switching to it is lower than alternative boards.

My personal opinion is that phpBB 3.0 has too much BC-breakage, will probably be a while until it gets released and is bloated and moving in the wrong direction.

Forking phpBB 2.0 

I believe that gradual innovation and renovation may be the key; for example you could fork phpBB 2.0, run a security audit on it, add some much needed features and possibly cleanup some existing features. The vast majority of skins and modifications should still work, and retraining should be minimal. It is unlikely the database structure will change much so a converter should take almost no time to write. The existing phpBB community should find it easy to switch sides.

It’d probably also help choosing a name similar to phpBB which retains the familiarity. Perhaps phpBBoard, phpBBD (D for Developed), Open PHP BB, etc. 

If anyone know of any phpBB 2.0 forks please let me know; I actually considered creating a fork but my knowledge of the phpBB code is elusive. 

Back

Back from hiatus and it’s freezing. I missed blogging I was actually quite surprised to come back to my RSS Reader, Sage, and having to spend the rest of the day just catching up on RSS feeds (around 5 or 6 hours) and these were just posts over the (apparently quiet) festive period. And I only subscribe to 99 feeds of which most are from blogs which are never updated any more.  RSS is great because it allows people to consume a lot more information.

Digg

Cow’s Blog made the front page of Digg for the second time this month (this time the Firefox Chrome URL Entry). The first time, reflection.js made the front page. I’m unsure how many extra visitors there were from Digg – my guesstimate from the statistics is somewhere in the region of 24,000. A digging also normally results in a few dozen blog posts about your article which will generate a bit of extra traffic. You do risk the chance of exceeding your bandwidth limit however since I used the same amount of bandwidth in about 6 hours as the total amount of bandwidth the blog used in a whole 3 months beforehand.

Weather

I really don’t like the current weather – I’ve been wearing an uber-thick coat indoors for several days now. A bit disappointed that snow was promised but never came.

Podcast

It’s well worth listening to Ricky Gervais’ blogcast. Karl is legendary and Ricky has an insane laugh. If you’re quick, you can also listen to Ricky Gervais’ show on the Radio 2 website. It’s a little more politically correct than the podcast.

Photography

There are some interesting articles on photography here. There are some cool tips and principles which will get you on your way to produce better photographs.

Evolution 5

The new round of Evolution 5 has just started. 

Fun with Firefox Chrome URLs

Firefox’s user interface is written using XUL and Javascript. The Gecko engine which renders the webpages also renders the user interface. This means you can enter chrome URLs into the Firefox address bar and do some really cool things.

I wouldn’t recommend trying out any of these "tricks" if you have any important websites open. Everything has been tested with Firefox 1.5 on Windows.

chrome://browser/content/browser.xul

This is awesome. Type this in the address bar and you can have a nested copy of Firefox running inside Firefox. You can even open up several tabs at this URL and have tabbed windows. You can even nest Firefox inside itself several times. Most things seem to work.

 browser.xul

chrome://global/content/alerts/alert.xul

Notice: This will make your Firefox window disappear under the taskbar. Before loading this URL, make sure you have at least one other tab open. The Firefox window should do a crazy dance in the corner of the screen. If your Firefox window disappears, right click Firefox in the taskbar and select maximize. Press Control+W to stop Firefox from moving around.

chrome://browser/content/preferences/preferences.xul

Opens the Options window. In Firefox 1.0 use chrome://browser/content/pref/pref.xul

chrome://browser/content/bookmarks/bookmarksPanel.xul

Opens a list of your bookmarks.

chrome://browser/content/history/history-panel.xul

Opens a list of websites in your history.

chrome://global/content/console.xul

Opens the Javascript console.

chrome://mozapps/content/extensions/extensions.xul?type=extensions

Opens the Extensions window.

extensions

chrome://mozapps/content/extensions/extensions.xul

Opens the Themes window.

chrome://mozapps/content/profile/profileSelection.xul

Closes the current tab in Firefox; or the window if there is only one tab open.

chrome://global/content/finddialog.xul

Opens the old Firefox "Find" dialog (non functional)

chrome://global/content/printdialog.xul

Opens the Firefox Print dialog (non functional)

chrome://global/content/filepicker.xul

Seems to open a Linux style file picker on Windows for me. Non functional on Windows.

You can use the DOM Inspector and inspect windows to find cool URLs. Let me know if you find something neat. 

London accidently won Olympic Games

According to the BBC:

A senior Olympic figure has told the BBC that London only won the 2012 Olympics because of a misplaced vote.

Alex Gilady claims the mistake happened when a vote was cast for Paris instead of the intended recipient, Madrid.

Had the vote gone to Madrid, claims Gilady, they would have finished level with Paris on 32 votes apiece in the penultimate round, behind London.

Gilady suggests Madrid would have won a head-to-head vote with Paris and gone on to beat London in the final round.

Either way, Paris would have lost

Windows Live Messenger Review

Awesome! Thanks to InsideMicrosoft, I got my invite for Windows Live Messenger. I don’t think I’ve been so invited since Gmail 😉

The installation was quick and simple. It didn’t ask me to install MSN Toolbar, set MSN as homepage or anything. I did have to close Windows Media Player, presumbly so it could install the music plugin.

Windows Live Messeger 

The new look is OK but I really can’t say I like the orange. The new interface (to me) also seems to be more cluttered (perhaps I’ve gotten too used to using Messenger Plus to hide a lot of clutter in MSN 7). One of the biggest changes I noticed is that it no longer shows display pictures on the contact list and the status icons are simplified to online/away/offline. When you move your mouse over a contact name, it’ll expand and show you their display picture, status, personal message in full and give you several icons for starting a new convo, sending an e-mail. Nice, but I found it kinda annoying to use.

The MSN Spaces logo looks like Ubuntu to me. 

The buddy search in the conversation window is great and being able to rename your contacts is fantastic.

Edit Contact

I currently use a similar feature in Messenger Plus – from personal experience the Messenger Plus! version is simpler and easier to use and allows you to append the contact’s nickname after your nickname. I suppose Microsoft really really don’t want us typing in random messages in our nickname anymore 🙂

You can now talk offline (if you feel really antisocial) and choose to show timestamps in the message window. This is a nice feature which I’ve been getting from Messenger Plus for a long time.

Although Messenger 8 is certainly nice there aren’t any killer features and I certainly don’t think it’s any easier to use than version 7. Perhaps its the way I use Messenger but my initial reaction is that this is a step down from the comparative simplicity of version 6. It’ll be interesting to see how I feel about Messenger 8 after using it for a few days.

reflection.js update

Just a small update to reflection.js to make it work with Safari in Standards mode. This fix was contributed by Sithatus.

Have you implemented reflections on your website? It’d be interesting to see them; I’ve seen some pretty neat implementations around the internet already. Leave a comment or mail to linux.rocks AT gmail DOT com 🙂

Tagging in Geneone Forum

Tagging is a concept which has become popular on sites such as del.icio.us, flickr, technorati and some blog softwares. Even Amazon are implementing tagging. I’m not really sure how much of a new idea this is as people used to write their websites with <meta name="keywords"> which was more or less a global tagging system across the whole web.

However, it seemed like one of those nice ideas that could be adapted to a forum and could solve some real problems.

In Geneone, instead of replacing the existing forum hierarchy with tags, tags have been built on top of the forum hierarchy. Each forum contains it’s own namespace of tags.

There are several reasons for this:

  • Forums work. Forums are generally well defined and each forum generally covers quite a large subject area. However with forums, there is no way of finding all discussions on one specific subject. In a standard forum you can’t easily find all discussions about php in a programming forum. This can be solved in two ways: you can either create a subforum for PHP or use tags to indicate the discussion is about PHP. Both methods will work; however subforums are messy and there is no way for a discussion to be both in the PHP forum and CSS forum. Similarly, removing forums altogether will be messy. Without subscribing to a gazillion tags, you’ll never be able to subscribe to every discussion about programming. On Evolution, we run a ‘Lounge’ forum. Users can just take a look inside to see what is being discussed. With a purely tag system, users have to decide what they want to talk about and then look for any relevant discussions.
  • Permissions. In a tag-only system, how do you define permissions? How do you run a forum only for certain members or moderators?
  • Easier to find discussions – When browsing through a lounge forum, it’s very easy to find something really really random and uber cool. You’ll still be able to find that topic on Weebl and Bob even though you don’t subscribe to the "weeblandbob" tag.

I think the principles behind the design for Firefox 2.0’s places user interface are similar.

Hierarchies are bad (difficult to create and maintain*), so default presentation deemphasizes them, but retains support for advanced and existing users.

* It is easy to create too many categories, or a highly nested structure that obscures the available categories, such that it is difficult to categorize links effectively and the amount of work required to do the task exceeds the benefit provided, given searching tools. 

Adding tags removes the requirement of having tons of subforums just to be able to find all discussions about PHP. And yes, hopefully reduce the number of "is this in the right forum?" posts.

By keeping the existing forum structure, we also lower the learning curve for end users and administrators will have learning to adjust to using tags. Gradual evolution rather than revolution.

Geneone Forums

Over the last few days, I’ve been developing a forum based on Geneone and the object system. This is a total rewrite and is not based on the Evolution Community. Some of the code is based on that for the blog (if you think about it blogs and forums are actually very similar).

Objects 

The forum is split up into four different types of objects: forum centre (board), forum, discussion (topic), comment (post). A forum centre may contain any number of forums; a forum may contain any number of forums and discussions and a discussion may contain any number of comments.

One strength of the object system means that your forum can become part of the hierarchy for your website and you can run a very simple forum by not bothering with the forum centre and having a forum as your root/main object. It’s even possible to have a stand alone discussion object with no forum parent.

Screenshots

Forum Centre

The front page of the forum for an administrator. The form to create a new forum is simple and straight forward. This has been mentioned before. I’ve changed my mind about not being able to set permissions until after creating the forum. This doesn’t solve the problem of having complex form but just transfers it and gets in the user’s way. However, we’re trying to stay as far away from the complexity of phpBB and IPB as possible without losing too much flexibility and power.

 Moderation

Yup, huuge icons. The big icons actually look quite nice and are supposed to represent actions that moderators are likely to perform.

The user interface does not represent how the final product will look, it’s just an indication of what stage the project is at.

Try it out

You can try out a demo at the Geneone Site or download Geneone 0.5.