Image by geishaboy500 via FlickrI’ve all but given up on AbstractFonts.com. It’s become so heavy with Ajax that, for the most part, i can barely navigate the interface,..maybe that’s down to incompatible DOMs but it’s certainly not my first port of call anymore, despite the large collection of free typefaces they have to offer. Today, I’m here to tell you about DaFont.com! They have a few less fonts that abstractfonts but I’d hesitate to call over 7000 typefaces a small collection!
For starters, you don’t need to register to get access to the fonts, only to add and manage new fonts. All the fonts are categorised and browse-able through a number of means; by theme (fancy, gothic, simple etc…), alphabetically, new fonts or top 100. You can customise the preview of each font by size and text so you can see exactly (specific formatting aside, like line spacing or kerning) what you’re gonna get from a given phrase.
It’s worth mentioning that there are some licencing issues with some of the fonts but they clearly state ‘for personal use only’ if that is the case.
A little while ago i had a requirement for a simple, single dimensional, generic collection with a fixed capacity. Now my definition of fixed here is that when the capacity is reached, the oldest item would be pushed off the end of the queue and forgotten. This class would be used to store the last 10 timings to calculate ETAs for downloads in a download manager application but I’m certain there are many more uses for exactly this kind of object!
As you might expect, i thought that the generic Queue<T> would almost certainly do the job but it turns out that despite explicitly setting the collection’s capacity in it’s overloaded constructor, when this capacity is breached, the collection simply doubles in size! IMHO, ‘initialCapacity’ would have made a much more descriptive parameter name given this functionality. Anywho, it turns out that the FCL just doesn’t have anything resembling this functionality (If I’ve missed something, please do tell!) so i set out to write my own.
The class is listed below. There is obviously some delegate functionality (Sort, Find, FindAll etc…) missing that many people would want to implement but I’ve left that up to you since it does all i needed to do at the time. Hopefully this will be of use to someone.
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Collections;
class QueueFrame<t>: IEnumerable<t>{private T[] values;
privateint topIx =0;
privateint capacity;
publicint Count
{
get
{return topIx;
}}public QueueFrame(int frameCapacity){
values =new T[frameCapacity];
capacity = frameCapacity;
}publicvoid Enqueue(T t){if(topIx > values.Length-1){//shift array elements back one
ShiftBackOne(ref values);
values[topIx -1]= t;
}else{
values[topIx++]= t;
}}public T this[int Ix]{
get
{return values[Ix];
}
set
{
values[Ix]= value;
}}privatevoid ShiftBackOne(ref T[] t){
T[] temp =new T[capacity];
for(int i =1; i <= t.Length-1; i++){
temp[i -1]= t[i];
}
t = temp;
}public T Dequeue(){return values[--topIx];
}public IEnumerator<t> GetEnumerator(){for(int i =0; --i >=0; ){
yield return values[i];
}}
IEnumerator IEnumerable.GetEnumerator(){return GetEnumerator();
}}
One of the most important factors in the design of any website or application is the imagery that you use. It helps you to convey just the right message to your audience and can turn an otherwise dull interface in to something much more special; though not necessarily more usable. It can, however, be very expensive to buy these resources in but you don’t need to pay every time!
I’ve collected a reasonable list of links to free icon and image sites over the years which i thought i’d share with you. So here you go, hopefully you’ll get some use from them.
Posted 1 month, 2 weeks ago at 12:36 pm. 0 comments
Over the past few days i’ve become more and more obsessed with a project called Twine from Radar Networks. Make no mistake, Twine will be big just as soon as it’s gets out of private beta. I got my invitation through about a week ago and it really is something special.
So what is it?
Well Twine is a sort of first pass at building a truly semantic web application. In their own words, “Twine is a new service that helps organize, share and discover new information about your interests, with networks of like-minded people.” but i’m not sure that description does Twine justice; it certainly does more than that!
It all starts off with the main unit of content classification which is (unsurprisingly) called a ‘Twine’. You can join an existing twine or create your own. Your own twines can be about any subject you want, be public or private and you can enforce rules about who can post and who can join etc,..
When you’ve created or joined a twine you need some content which you essentially bookmark in a similar way to del.icio.us (they’re working on a del.icio.us / furl import at the moment), but not everything in twine is a bookmark; each item you add can be either audio, a book, a bookmark, a contact record, an event, a group, an image, a not, an organisation, a person or a video and these all mean different things to twine; that’s right, i said mean!
Twine tries to ‘understand’ the content you provide it with, what it means and how it relates to all the rest of the content on there. So how does that work?
How does it work?
Let’s say, for example, that you and some of your friends and colleagues create a twine focussing on C#.Net development and whenever any of your group find interesting or useful information relating, you post a note straight to twine along with any accompanying bookmarks, images etc,.. Twine will take all of this and extract appropriate tags which provides a kind of abstracted navigation layer around this new knowledge repository; but it doesn’t stop there. Twine will then go on to create relationships between the content you just fed in to other content (documents, links, images etc..) by finding a common, if abstract, theme between them. Nova Spivack, founder of Radar Networks, has even suggested that the common theme doesn’t even need to be explicitly declared in the content; Twine works it out for itself!
The great thing is that the more you use twine, the more it learns about you, what you’re interested in and even how interested you’re likely to be. A little like Last.fm or other ‘music genome’ projects but not restricted to music. Now this is all great stuff but the ultimate question is ‘So What?’.
Why should i care?
Keyword searches should be a thing of the past for all kinds of reasons. Consider this example: You are planning to visit some friends in Africa and you need flights, insurance, car-rental and a whole host of other stuff. You start, as we all do, with Google. You’re not wanting to spend a fortune on all this stuff so you search for ’special offers on flights to Africa’; that’s going to bring back around 200,000 results. That might sound good until you realise that you’ve missed all the sites which promise ‘deals on flights to Africa’! Google returns 385,000 hits based on that search so you have potentially missed out on 185,000 relevant web-sites. The point here is that Google doesn’t know the difference between the two or, more accurately, that there isn’t a difference. Twine, on the other hand, does! That’s a very good thing.
How do i get involved?
If all this sounds interesting to you then i have some invitations to the private beta which i’ll dish out on a first-come-first-served basis. Just drop me an E-Mail.
Posted 1 month, 2 weeks ago at 8:10 pm. 0 comments
I’ve been trying to collect enough motivation to start a blog for months but now i finally bit the bullet and went the whole hog; hosted domain and all. I figure if there’s money leaving my bank every month then i’ve got all the motivation i need.
So what kind of stuff is going to be on here? Well,.. if i find something i think’s cool, i’ll drop some info on here. That might be a good app(lication) or a new website that’s offering something truly unique; like Twine (stay tuned!). I’m also interested in applications/web development in C#.Net so there’s bound to be quite a bit of that here; in fact, there could be some of my own apps here too. all this aswell as random links to some great articles on all kinds of topics.
I guess i’ll leave it at that for the moment but keep checking, i’m sure i can make it worth the read.