text:
I love this blog, it says smart things all the time. This is a shout out to all the developers I've ever worked with (especially the good ones) – i reckon this is worth a read. (not to say that you don't *already* abide by these commandments!)
an interesting little site by Poke London. Uses a 'wordmap' to engage people in a discussion around what they want techology to do in their lives. Engaging but simple interface (with loads of instructions, but I'm guessing that was the client)
ActNow Launches (2.0 for good not evil)
ActNow is not your average old website – it's really quite 2.0. You'll find many of the 2.0 buzzwords in action on the site including User Generated Content (come up with a better buzzword and I'll use it), RSS, Social Networks and more. It's based on a Wiki format, where members can create their own pages using a range of different templates, and create or upload content – written word, photos, video, Flash movies, you name it.
Members can go back and edit their content whenever they like. They can also give permission to other members to edit the content. So, if you're putting a page together about Obesity, and there are a group of you doing research on the issue, you can all contribute to the content that goes on the page.
As you can imagine, this was the topic of *much* angst. Letting anyone put whatever content they like on the website. It's a scary thing to do. As you can imagine, the lawyers were terrified. But, trust is a 2.0 thing too. We needed to have faith in the community that would build on ActNow and trust that people will use the powers given to them for good and not evil.
Throughout the project we had a little mantra that I borrowed from Peter Merholz of Adaptive Path.
"The Web's lesson is that we have to let go, to exert as little control as necessary. What are the fewest necessary rules that we can provide to shape the experience? Where do people, tools, and content come together? How do we let go in a way that's meaningful and relevant to our business?"
Time will tell if this risk pays off. Of course, it will be a pretty quick task to get rid of these freedoms and to build in a more onerous moderation path… but who wants that? Certainly Inspire don't need the extra work, and it takes away that 'magic' of the internet, which is that you press a button and it's suddenly there for the world to see.
Moderation is boring. So, we've taken the approach of distributing moderation – on all of the content pages is the option to 'report' content – meaning that the 'official' moderators only need to look at a few pages (hopefully) rather than check off every single thing that goes on the site.
I'm fascinated to see how this plays out.
That beautiful homepage is pretty cool too. It looks like a tag cloud, but it's actually not. (In fact, no tags were used in the making of this site… so, perhaps it's not really 2.0 afterall ;) – don't you worry, they *were* discussed at length but we opted out).
So, those things that look like tags are actually the names of the various issues that people are writing about on the site. The ones that are being viewed the most are shown in the cloud on the homepage, with the most often viewed shown in the largest font size and less often viewed in gradually smaller font sizes. Cool huh.
(Don't you love it when XML and Flash play so nicely together?! Cheers to Damian and Dom for their technical brilliance and many hours of hard work)
What we'll get to see over time is what issues are most important or interesting to young people. Also, when something big is happening in the news we're expecting that this will probably be reflected on the homepage cloud, making it really easy for people to get straight to the content they're interested in.
It also allows you to get a quick preview of all the top issues from the homepage, thanks to the little preview box.
Lots of crazy stuff, hey? Will the young people be able to use it? We can confidently say yes. You see, this site has been designed in concert with the people who use it, and they've been testing it and testing it for months now. Lots of them!
The project has already involved more than 100 young people, participating in 'incubators', as interns, helping to develop content and start build the online community.
Working on a project with the Inspire Foundation is a real exercise in participatory design.
The young people have a really active involvement in deciding how the website would work. They used online forums and face to face meetings to discuss everything from what kinds of content the site would need, to how to best group this content so that people could find it.
They not only *read* the specs, they pored over the wireframes and held workshops. Never before have I walked into my client's office and found my wireframes stuck up on the wall like this! (Obviously I was so excited I had to capture the moment!)
At every step, the young people were involved in decision making, and were our go-to point when we needed to decide if an idea was going to fly or not. So, even though they didn't necessarily know what a wiki was, or what and RSS feed was – they took the ideas we suggested and evaluated them and they decided whether it was in or out and how they wanted it to work.
It's a great way to work, and particularly good when you've got such a tough target audience. I don't think I'd ever want to work on a youth focussed site again without having access to a bunch of people in the target audience to guide what I was doing and to act as a sounding board for my ideas and approaches.
It should be like this for *all* projects… but, in reality, it rarely is. (Unless you're working exclusively on Intranets, in which case you have no excuse!).
But anyway – ActNow. Launched. Hoorah!
Now what it needs is a vibrant community – which I'm sure it will get if enough young people know about it. So, pass it on.
(Either that or make a cash donation to Inspire ;) )
Thank you!
Technorati Tags: ActNow, Web2.0, Activism, SocialNetworking
Gadgets I'd buy from CeBIT06
So, I popped into CeBIT this morning. Afterall, I love a gadget as much as the next girl. I don't think I'm exactly their target audience, but there were still somethings that I found interesting. Here they are:
- Wacom Tablets: now, this isn't new, but when I had a play with one this morning I was thinking to myself, how much more fun would it be to do wireframes using a device like this and software more like Illustrator. Does anyone out there do this? I can see a few problems with it, particularly if you needed to have multiple people working on the files…. but I bet for some projects it would be amazingly fun. (And much less with the old wireframe RSI)
- Maxtor OneTouch Mini Edition External Hard Drive: I've been putting off buying some kind of hardware to backup my lap top and have been using boring DVDs instead. And now I know why. I've been waiting for this little darling to arrive. It's the iPod Nano of external storage. I *must* have one. Immediately.
- The Open Source Guys were out in full strength. I've been thinking about doing something with an opensource project – as in, contributing some time to a project to help it be a little more user friendly. Had a chat. They're very friendly. I'm going to look into this more. Anyone out there do any work with any open source developers? They gave me a CD so that I can play around with their open source version of Photoshop and Illustrator… I shall report back :)
- VOIP was everywhere. I was looking for something I could use at home. Didn't find anything.
- PTG Global and Hiser were there. They didn't have any fun showbags though.
OK. That's my quick, on the fly report of CeBIT from a non-hardcore-techy perspective.
Have you been? What did you think?
share your OPML?
Dave Winer wants you to Share your OPML. I've shared mine, you should share yours too! What's OPML? Well Wikipedia says it stands for Outline Processor Markup Language and that it's an XML format for outlines. Mostly it's used to exchange lists of RSS feeds between RSS aggregators. There's lots more info here. Dave says that the site is 'a commons for sharing outlines, feeds, and taxonomy. I'm not sure where the taxonomy part comes into it just now. It does already allow some interesting manipulation of the data including: Top 100 Feeds, Most Prolific Subscribers, Who Subscribes to [a particular feed], and also allows you to see other subscribers whose lists are similar to yours. From a quick review, it seems quite accurate – a great way to find more feeds you're interested in (as if you needed any more!).
If you're a Bloglines user like me, getting your OPML file is easy. Once you've logged in just change the URL to http://bloglines.com/export and the page will change to show you a whole bunch of XML. Then go File, Save As and give it a nice name. Then go to Dave's site, sign up, upload and share. It's only going to be fun and interesting if we all be caring and sharing with our OPML.


text:
Use the tools below to refine your search by only displaying reviews with a certain number of star ratings or to only show reviews from a certain time period. Eg click on '1 star' to just display the reviews we have which received a 1 star rating click or 'Within the last month' to display just reviews posted over the last month.
Written on: 24/10/2016 by 97Lindsay (1 review written)
Ordered flowers for my girlfriend. 1hr 40mins later a bespoke beauquet were hand delivered and looked amazing. Very friendly staff taking the order and tailored the order to fit what I wanted. Excellent sustainer service skills and the amazing flowers delivered spoke for themself. Definitely recommend people xx… Read Full Review
Written on: 07/08/2016 by Loomis115 (1 review written)
Superb, friendly and efficient service. From time of placing an online order to time of the flowers arriving on my daughters desk was just a couple of hours. Easy to track delivery. Consistant contact on the order progress. The flowers were beautiful, fresh and exactly as described on the website. Would highly recommend this company and will definitely use this company again… Read Full Review
Written on: 23/05/2016 by Davidsonlu216 (1 review written)
A fantastic online service, and personal customer service to ensure delivery at the right time for our family. We are so happy with the Beautiful flowers in a good quality vase and a lovely hand written card. Ordering from Australia and having sympathy flowers get to our family in Scotland, without an issue was just wonderful. Thank you to all the staff for personal service from across the other side of the world!… Read Full Review
Written on: 17/05/2016 by diannpf (1 review written)
I am very impressed with the customer service I will definitely recommend them… Read Full Review
Written on: 23/04/2016
We were terribly impressed with the speedy delivery and service we received from Flowerssameday! I am in Australia & had to co-ordinate the order with my sisters in South Africa. I think it took longer for us to decide on all the details of what we wanted to send than it did for the flowers to get delivered. They were delivered in less than 3 hours of me posting my order from half way around the world! My dear Aunt was thrilled with the flowers, something to brighten her day in her sad… Read Full Review
Written on: 17/04/2016 by Selfwu149 (1 review written)
I sent these flowers to my sister when she was recovering from an operation. She was delighted with the "exquisite" flowers, their perfume and that they had arrived so promptly. I was impressed with the efficiency and grateful. I will use this friendly company again… Read Full Review
Written on: 11/03/2016 by uzCoughlin223 (1 review written)
I have now put in 2 orders and the service for both has been great. According to my Mother who i brought these for " the Flowers were absolutely stunning and beautifully arranged". I can't praise the Staff highly enough for such a fantastic job. Thank you so much… Read Full Review
Written on: 23/12/2015
I had not used this service before and am highly delighted with their speed of service and the recipient has told me of her pleasure with the goods ordered. My order was taken most efficiently over the phone and delivered promptly the next day. Having first tried another florist in the area and received a very terse reply that they could not deliver, I was so glad to find this firm and will definitely use and recommend them again. Many Thanks… Read Full Review
Written on: 08/12/2015 by colingrazier (1 review written)
a wonderful company who gave great service and wonderful flowers i would recommend them to family and friends, and certainly will use them again… Read Full Review
Written on: 07/12/2015 by RB09 (1 review written)
Ordered flowers for my partner online at about 11:30. Flowers were delivered by 13:30. Truly outstanding service. Flowers arrived, they were stunning. Just what I'd asked for. Whole experience from ordering online all the way to delivery was exceptional and totally hassle free. Got emails to keep me updated and could track the progress of my order at any time. Couldn't sing their praises enough. Absolutely fantastic doesn't even begin to sum them up. Would highly recommend to anybody. Many Many… Read Full Review
Written on: 04/12/2015 by Hadleyd384 (1 review written)
I chose this florist as it was local to my friend who lives in Luton. The website is easy and straightforward to use. There is a good range to choose from. I chose the winter perfect gift for my friend which is presented in it's own vase. I placed my order online at about 11 am and by 4.30pm it had been delivered. My friend sent me a photo of them. They looked beautiful. The company keep you updated about your order online and let you know when the item has been delivered. A truly amazing… Read Full Review
Written on: 13/11/2015 by MrMcWhinnie (1 review written)
The staff there processed my order in rapid timeeand before I realised it I was getting messages of love from my wife. They helped me make my wife feel appreciated and loved. … Read Full Review
Written on: 06/11/2015 by Fishface7 (1 review written)
Fantastic service all round. Would definitely recommend this company. Lovely arrangement, well worth the price and delivery was as agreed. Lovely helpful staff. Well done… Read Full Review
Written on: 28/10/2015 by KennedyRamsey (1 review written)
I recently ordered two bouquets right on the 3 pm deadline, 7 am at home here. Both were delivered less than 2 hours later and greatly appreciated by the recipients. In fact I received email thank you's before the delivery confirmation. Good job. Thoroughly recommend… Read Full Review
Written on: 28/10/2015 by Eslynvalles (1 review written)
Having spent a wonderful weekend with friends in Troon, Flowers Same Day not only advised on the most suitable bouquet but delivered them within hours of receiving the order. Our friends were delighted with the gift and sent us a photo of the display - it was truly charming. Thank you so much for your kind, considerate service. There was nothing we could possibly criticise about our purchase: this was just good old-fashioned customer care! Well done Flowers the Same Day!… Read Full Review
Written on: 12/10/2015
I was unsure whether to proceed with an order on the internet but because the quality of the photographs showing the displays were very good , making it easy to choose , I thought I would give it a try. From the minute I placed my order everything went like clockwork , you communicated at every step and the flowers arrived exactly as you said. The quality of the flowers were first class, as was the florists artistry. Brilliant job , I have no need to go elsewhere from now on, nobody could… Read Full Review
Written on: 09/10/2015 by sajjyy786 (1 review written)
I saw this beautiful basket for the new arrival of baby range on line but wanted it in a much bigger size so i gave them a call The assistant online was ever so friendly & listened to my requiremens patiently & also offered some suggestions which helped alot & together we created a stunning flower basket She was ever so patient even when i made last minute changes she was so understanding & agreed to include them I would 100% reccomend them to family & friends & will be using them again for… Read Full Review
Written on: 29/09/2015 by SueFol (1 review written)
Having just found out that today was a special persons birthday, I jumped on line to try to find a florist. Ordered on line for same day delivery...4 hours later got message to say delivered!! Had a lovely call from recipient to say flowers and vase were gorgeous. First class service!!… Read Full Review
Written on: 23/09/2015 by Gjf1967 (1 review written)
Ordered some flowers for my girlfriend and she said they were the nicest flowers she has ever received. Also very efficient in ordering and even to receive acknowledgement of comments from the company. Would recommend highly to all my clients...many thanks again… Read Full Review
Written on: 18/09/2015 by Castilloig158 (1 review written)
Really pleased with the service and the quality of the flower's. Having ordered them from norwich on line to surprise my mother in law in essex, highly recommend :-) really happy customer x x… Read Full Review
As rated by our community of reviewers
" Friendly website and simple " Read More
" Excellent service " Read More
" The worst " Read More
Written by yesenia1
" Terrible company " Read More
" Poor quality Bouquet " Read More

subset: commoncrawl


text:
Sorry, this product is no longer available!
Castelli Nano ShoeCover - 2014 is no longer available at Merlin Cycles. However you may find an alternative or updated product below.
Castelli Nano ShoeCover - 2014 is no longer available at Merlin Cycles. However you may find an alternative or updated product below.
Castelli Nano ShoeCover - 2014
This item was discontinued 26th October 2015.
If you require help finding an alternative to this product please contact customer services.
Code: CS10535
Castellis most versatile bootie. It is windproof to keep the cold away, waterproof to keep the wet away and super aerodynamic for time trials. So it`s good for everything!
What can you expect from the Castelli Nano Shoe Cover?
- Silicone-coated Lycra® is stretchy and waterproof
- Keeps out the wind, cold and rain
- Highly aerodynamic so it`s great for time trials
- Heavy-duty YKK® zipper
- Silicone elastic at cuff
Castelli - You know you are getting an unfair advantage!
Please enter your e-mail address below then click Notify Me to be notified when this item comes back into stock. We will not use your e-mail address for any other purpose.
Shipping charges for this item to United States: $6.25
Spend $62.50 or over and get free shipping
|$ 6.25
Sizing Information for Castelli Clothing:
Mr SantosExcellent product, does what it says keeps the rain out, easy fit, shame they seem a bit on the dear side.
Mr HendersonArrived quickly as ever from Merlin. Seem to be a good cover but they are not that big so need a good bit of pulling to get them on. My shoes are 9.5uk and I got the large cover size.
Mr MUIRGreat. Tight fitting. No problems with zips that some others have had.
Mr NorthoverThese are a little tricky to get on! I find if you put them on the toe of the shoe past the cleat then put the shoe on its easier but watch your skin & hair when zipping them up! Other than that good covers
Mr WILLIAMSExellent tt overshoes, looks the part and good fit.
Mr LargeGreat waterproof shoe cover which stop the water running down your leg into your shoes. However, they are not a great fit for mountain bike shoes due to the thick tread on the soles.


text:
Power Quotes and Sayings
Silence is the ultimate weapon of power.
– Charles de Gaulle
You will never know the power of yourself until someone hurts you badly.
Whoever has the gold makes the rule.
When the power of love overcomes the love of power, the world will know peace.
Pretense cannot sustain blind power.
– Dejan Stojanovic
Power and money are marvelous sources if they remain in your pockets, but they are terrible masters if they enter your brains.
True power does not come from anger but comes only from truth.
Great power involves great responsibility.
– Franklin D. Roosevelt
The thing women have yet to learn is nobody gives you power. You just take it.
– Roseanne Barr
He who has the gold makes the rules.
When a man see himself as superior to others, he will soon step on people toes.
Power comes from leverage and technique, it is not given to you, it's something you take.
Knowledge is not power but applied knowledge is power.
Nearly all men can stand adversity, but if you want to test a man's character, give him power.
– Abraham Lincoln
Wisdom and power have rarely ever come together successfully in all of human life; and then only for a short while.


text:
Reading and Writing NFC Smart Tags
This article is part of a series intended to act as a short and basic introduction to the world of NFC as it applies to BlackBerry® smartphones such as the BlackBerry® Bold™ 9900 and is aimed at developers who wish to take advantage of this exciting new technology. No prior knowledge of NFC is assumed but we do assume that the reader is familiar with Java® in some places. It would also be beneficial to have read the first article in this series, entitled: NFC Primer for Developers, since we will be following the thread that was outlined in this article but in greater depth. This article will look specifically at the reading and writing of NFC smart tags.
The Authors
This article was co-authored by Martin Woolley and John Murray both of whom work in the RIM Developer Relations team. Both Martin and John specialise in NFC applications development (amongst other things).
What is a Smart Tag?
In order to understand this it's probably best to look at some of the most common uses of smart tags such as:
Smart Posters - these embed small electronic "tags" containing data such as a URL in posters. An NFC enabled BlackBerry device can read the data and act upon it just by holding the device close to the poster. The action taken when reading a tag will vary according to the type of data the tag contains and the nature of the application reading the tag but it could for example involve taking the user directly to a web site which contains more information about the advertised event/product (etc) using the BlackBerry® Browser, automatically sending an SMS requesting someone call the user back, and so on.
Figure 1 - a smart poster
Smart Tags are really very simple and lightweight objects. They are often constructed from layers of stiff paper, thin card, or plastic to protect the embedded antenna and chip. They may be sticky on one side to allow them to be attached to objects fairly unobtrusively; they are fairly inexpensive when bought in bulk and may even be supplied in rolls much like adhesive tape.
Figure 2 - a smart tag as used by a developer
Their size and simple nature means that the amount of data that can be stored in a smart tag may be relatively small, perhaps no more than a few hundred characters or about the same amount of information that you might see printed on the face of a business card. Like a business card, common patterns have been developed for encoding information such as plain text, URLs, telephone numbers, and contact details like addresses to name but a few.
Figure 3 - The BlackBerry Smart Tags app on the home screen
All BlackBerry® 7 NFC enabled devices include a built in Smart Tags Application, as shown above, that allows the reading and writing of simple smart poster tags that follow the pattern of a URI and associated plain text.
This article will demonstrate how to perform similar functions from within a BlackBerry application. We will not discuss how to enable a BlackBerry device to emulate a smart tag which could be read by others using an NFC capable device. That topic will be covered in a later article.
Standards and Specifications
The standards that relate to smart tags are managed by the NFC Forum. They have adopted a set of 15 technical specifications arranged into the following categories:
- · Protocol technical specifications
- · Data Exchange Format technical specifications
- · Reference Application technical specifications
- · NFC Forum Tag Type technical specifications
- · Record Type Definition technical specifications
To understand how to read and write smart tags the "Record Type Definition" (RTD) set is the group to look at. In particular the following:
- NFC Data Exchange Format (NDEF) - the specification of the data structure and rules used to construct valid NDEF Messages
- NFC Record Type Definition (RTD) - the specification of the data structures and rules used to construct valid NDEF Records
- Text Record Type Definition - the specifications and rules used to encode text strings including attributes like localisation
- URI Record Type Definition - the specifications and rules used to encode URIs (e.g. http://, https://, sms://, etc.)
- Smart Poster Record Type Definition - the specifications and rules used to organise and place URIs and Text onto a tag using NDEF Messages and Records.
The NFC Forum Data Exchange Format (NDEF) is a lightweight binary message format designed to encapsulate one or more application-defined payloads into a single message construct. An NDEF message contains one or more NDEF records of different types. There are separate specifications for record types that describe a Smart Poster or a URI or Plain Text.
So, a simple Smart Poster tag may use a Text record and a URI record to encode a URL and some descriptive text.
NDEF messages are encoded using a technique called Type, Length, Value (TLV) so parsing such messages can be a little more challenging than simpler data structures. The advantage of TLV format is that messages become self-describing and an NDEF message can be parsed in its entirety without foreknowledge of the particular type of message. Unfortunately for the Java programmer there are no simple wrapper classes to hide this parsing and manipulation of NDEF record structures ends up being a process of manipulating byte [] objects.
Use Cases
We're going to look at two simple use cases in what follows:
- Reading a Smart Poster Tag that is presented into the RF field of the BlackBerry device using a BlackBerry application that contains a text description and a URL pointing to a web site.
- Writing data to a Smart Poster Tag that is presented into the RF field of the BlackBerry device using a BlackBerry application. The tag that will be written will contain some descriptive text and a URL to a web site
Reading a Smart Poster Tag
The process of reading a Smart Poster tag is fairly straightforward. Firstly your application has to register that it wants to be notified when tags of interest are presented to the NFC enabled BlackBerry device; and secondly it must take care of parsing the contents of the tag into a form that can be displayed on a screen or have some other action taken on it. Whilst there is an interface ( net.rim.device.api.io.nfc.readerwriter.DetectionLi
Implementing an NDEFMessageListener
The following code fragment shows the implementation of a typical listener for NDEF Smart Tag events. The key points are that it implements the NDEFMessageListener interface and receives notification of the presence of an NDEF smart tag in the NFC RF field via the onNDEFMessageDetected(NDEFMessage message) method. The NDEFMessage object passed to this method contains the encoded version of the Smart Tag content; in this example the parsing of the NDEF message itself is handled by another class, NfcReadNdefSmartTagUpdate, used to update the screen.
package nfc.sample.Ndef.Read; import net.rim.device.api.io.nfc.ndef.NDEFMessage; import net.rim.device.api.io.nfc.ndef.NDEFMessageListener
; import net.rim.device.api.ui.UiApplication; /** * * This class implements the NDEFMessageListener interface and its primary * function is to receive NDEF message notifications when a smart tag is brought * into the NFC antenna's range * */ public class NfcReadNdefSmartTagListener implements NDEFMessageListener { private NfcReadNdefSmartTagScreen _screen; public NfcReadNdefSmartTagListener() { super(); } public NfcReadNdefSmartTagListener(NfcReadNdefSmartTagScr een screen) { this(); this._screen = screen; /* * This is where we get passed an NDEFMessage * Schedule a runnable to handle it in the main event processing loop */ public void onNDEFMessageDetected(NDEFMessage message) { UiApplication.getUiApplication().invokeLater( new NfcReadNdefSmartTagUpdate( message, _screen )); } }
NDEFMessage and NDEFRecord
As seen above, an NDEFMessageListener implementation will receive an object of type NDEFMessage when its onNDEFMessageDetected(..) method is called. Before we go much further, it's worth developing a basic understanding of the data structures we're working with here.
An NDEFMessage object is a container for one or more NDEFRecord objects. Each NDEFRecord object is of a given type and contains a byte array which holds the record's payload. The first NDEFRecord object in an NDEFMessage is special and can be used for filtering the types of NDEFMessage passed to a listener. We'll deal with how to process the byte array payload later in this article and in fact we'll learn that the payload itself may be an NDEF message and a container for NDEF records. Yes, it can get a little recursive.
Registering the NDEFMessageListener
In order to start receiving these events an application must register an instance of this interface which is typically done using a code fragment such as the following. An instance of NfcReaderNdefSmartTagListener (as defined above) is registered with the NFC ReaderWriterManager using the addNDEFMessageListener method.
/* * This registers with the NFC ReaderWriterManager indicating our * interest in receiving notification when smart tags come within range * of the NFC antenna */ private void registerListener(listener) { ReaderWriterManager nfcManager; try { nfcManager = ReaderWriterManager.getInstance(); nfcManager.addNDEFMessageListener( listener, NDEFRecord.TNF_WELL_KNOWN, "Sp", true); } catch (NFCException e) { ui_lbl_status_message.setText("ERROR: could not register NFCStatusListener"); } }
Notes on the Parameters used when Registering a Listener
The parameters passed through the addNDEFMessageListener method allow some filtering of the types of NDEF messages that will be presented to the listener.
The second parameter: NDEFRecord.TNF_WELL_KNOWN, indicates that we are interested in NDEF records of Type Name Format (TNF): "WELL_KNOWN". TNF_WELL_KNOWN includes NFC RTD (Record Type Definitions) types such as RTD_TEXT and RTD_URI meaning that they will contain URIs or TEXT suitably encoded according to the NFC RTD specification.
The third parameter: "Sp", identifies the record type as Smart Poster. So we're only interested in being notified of Smart Poster records that contain plain text or URIs. Note that record types are defined in a series of specifications from the NFC Forum. In this case, the relevant specification is entitled "NFCForum-SmartPoster_RTD_1.0".
The final parameter "true" indicates that the application must be launched if it is not currently running when a smart tag of the relevant type is brought within range of the NFC antenna. This setting is persistent across device power resets. On presentation of a suitable smart tag to the device the application will be launched if it is not already running but note that it is necessary to re-establish the NDEFMessageListener during the start-up processing. If your NDEFMessageListener application is already running then its interface just gets a direct call.
It is important to register your listener within about 15 seconds of the application being started. Failure to do so will result in any queued message being lost.
There is no way to determine if the application was automatically started as a consequence of an NDEFMessageListener event rather than (say) the user having launched it from the home screen. In practice this usually doesn't matter however. If your application is already running, it gets the NDEF message delivered to it immediately. If it's not, it will be launched in exactly the same way as if a user had launched it from the home screen. On those rarer occassions where perhaps registration of the listener is conditional on something such as an explicit user choice, you'd need to maintain some state which could be checked in your main method to see whether or not you need to immediately re-establish the listener so it can receive the queued call back. The RuntimeStore is a good place to store such state.
Unregistering an NDEFMessage Listener
It's important to realise that if you requested that your application be auto-started on the addNDEFMessageListener method then this setting will persistent until the application is unregistered. Unregistering an NDEFMessageListener is similar to registering one and the same parameters that were passed on the registration must be passed on the unregistration. The following code fragment demonstrates this.
F_WELL_KNOWN, "Sp");
You can see the same filter settings are specified here as in the original registration request.
Parsing the content of an NDEFMessage read from the Smart Poster Tag
Now that we've got an NDEFMessage from the Smart Poster Tag let's examine how to parse the contents and extract the information. We'll examine the process of parsing a particular example NDEF message here as this should illustrate the general approach taken. To deal with other types of NDEF message you will need to be armed with the relevant specification(s) from the NFC Forum.
Recall that an NDEFMessage object can consist of a number of NDEFRecord objects. In the case of a Smart Poster Tag the NDEFMessage itself consists of a single NDEFRecord. This NDEFRecord object contains 5 key pieces of information:
- An Identifier used to identify the record. This is important if there are several records but in the case of a Smart Poster Tag such as the one we are looking at, with TEXT and an associated URI, there is only one record.
- If record is an instance of NDEFRecord then the Id is accessed using: record.getId().
- If record is an instance of NDEFRecord then the Id is accessed using: record.getId().
- A Type Name Format (TNF) -- for our Smart Poster Tag this will specify a type of NDEFRecord.TNF_WELL_KNOWN.
- If record is an instance of NDEFRecord then the Type Name Format is accessed using: record.getTypeNameFormat().
- If record is an instance of NDEFRecord then the Type Name Format is accessed using: record.getTypeNameFormat().
- A Type -- for our Smart Poster Tag this will be "Sp" identifying the tag as a Smart Poster Tag
- If record is an instance of NDEFRecord then the Type is accessed using: record.getType().
- If record is an instance of NDEFRecord then the Type is accessed using: record.getType().
- A Payload which is a byte [] object.
- If record is an instance of NDEFRecord then the payload is accessed using: record.getPayLoad()
- If record is an instance of NDEFRecord then the payload is accessed using: record.getPayLoad()
- A Payload length
- If record is an instance of NDEFRecord then the payload length is accessed using: record.getPayLoad().length.
The meaning of these 5 attributes should be clear, with the possible exception of "Type Name Format (TNF)" and "Type". Simply put, the Type field indicates the kind of data which is being carried in the payload field of the record. There are however several ways in which the Type value can be expressed, such as as an Absolute URI, a MIME type (RFC 2046), or using one of the "well known types" defined by the NFC Forum amongst others. The TNF field indicates which of these applies to the Type field in a record. The "NFC Data Exchange Format (NDEF) Technical Explanation" documents the full set of possible values which can be encoded within the TNF field.
The Payload of a typical Smart Poster Tag
There are currently no Java wrapper classes in the BlackBerry NFC API that could be used to parse the NDEF Messages and Records. So, to give you some idea of what sort of object is presented in the payload of a Smart Poster Tag and hence have some idea of what information needs to be parsed here is the payload of a Smart Poster Tag that contains:
- · The TEXT: "This is a title for the BBC URI"
- · The URI: http://www.bbc.co.uk
The length of the payload is 59 bytes and the payload is as follows in both HEX and clear text and where the colour annotations are explained below:
Breaking down the record structure:
It's worth keeping this in mind when examining the code that follows which is used to parse this very payload. And do note that we're only examining one example here. In this example we're dealing with what's known as a "short record" as opposed to a "normal record". The NFC Forum specifications should be consulted for a more thorough appreciation of the structure of NDEF messages.
Parsing the NDEF Message Payload
The code below parses an NDEF message payload. The NDEF Message itself is in the variable _message.
It's a fragment from a larger application that allows parsed information from the tag to be displayed on a screen of the application. The screen output, showing only part of the total output looks like this:
Here's the code:
/* * The NDEF Message _message may consist of a number of NDEF records */ NDEFRecord[] records = _message.getRecords(); /* * This is the number of NDEF records in the NDEF message */ int numRecords = records.length;
A Smart Poster Tag generally contains an NDEFMEssage with a single NDEFRecord which itself contains sub-records that contain the details of the text and URL.
/* * Only unpick the message if it contains a non-zero number of records */ if (numRecords > 0) { /* * Work our way through each record in the message in turn * For a Smart Poster Tag there ought to be only a single record */ for (int j = numRecords - 1; j >= 0; j--) { byte[] payloadBytes = records[j].getPayload(); StringBuffer hexPayload = new StringBuffer(); StringBuffer characterPayload = new StringBuffer(); String hexpair; int numberOfHexPairs = 8; for (int i = 0; i < payloadBytes.length; i++) { hexpair = byte2HexPair(payloadBytes[i]); characterPayload.append(byte2Ascii(payloadBytes[i]
)); hexPayload.append(hexpair + " " + (((i + 1) % numberOfHexPairs == 0) ? "\n" : "")); characterPayload.append((((i + 1) % numberOfHexPairs == 0) ? "\n" : "")); }
At this point the details of the single record that represents the Smart Poster content are extracted to be added to a field on the screen of this application. We have a Smart Poster Tag if the Type is "Sp".
/* * Unpick the elements of the NDEF record. It should identify * WELL_KNOWN, TEXT or URI and "Sp" for smart poster. * Construct a string to display on the application's screen */ String record = "Root NDEF Record\nID: " + records[j].getId() + "\nType: " + records[j].getType() + "\nTNF: " + records[j].getTypeNameFormat() + "\nPayload Len: " + records[j].getPayload().length + "\nHex Payload: \n" + hexPayload + "\nCharacter Payload: \n" + characterPayload; _screen.updateDataField(record); /* * If we recognise this as a smart tag Type "Sp" */ if ("Sp".equals(records[j].getType())) {
On recognizing the Smart Poster type we convert the payload to an NDEFMessage object in its own right. This message itself will have NDEF Records that we will need to parse in turn.
try { NDEFMessage smartPosterMessage = new NDEFMessage( records[j].getPayload()); NDEFRecord[] spRecords = smartPosterMessage.getRecords(); int numSpRecords = spRecords.length; if (numSpRecords > 0 ) { for (int k = numSpRecords - 1; k >= 0; k--) { byte[] spPayloadBytes = spRecords[k].getPayload(); hexPayload = new StringBuffer(); characterPayload = new StringBuffer(); for (int i = 0; i < spPayloadBytes.length; i++) { hexpair = byte2HexPair(spPayloadBytes[i]); characterPayload.append( byte2Ascii(spPayloadBytes[i])); hexPayload.append(hexpair + " " + (((i + 1) % numberOfHexPairs == 0) ? "\n" : "")); characterPayload.append((((i + 1) % numberOfHexPairs == 0) ? "\n" : "")); }
Once again extract the type of record from the one we're examining. We're interested in TEXT and URI record types.
/* * Extract the record id, type, type name format, * payload length and payload */ String spRecordLog = "Subsidiary NDEF Record\nID: " + spRecords[k].getId() + "\nType: " + spRecords[k].getType() + "\nTNF: " + spRecords[k].getTypeNameFormat() + "\nPayload Len: " + spRecords[k].getPayload().length + "\nHex Payload: \n" + hexPayload + "\nCharacter Payload: \n" + characterPayload; _screen.updateDataField(spRecordLog); /* * This test checks for a TEXT record as * a well known type */ if ((spRecords[k].getTypeNameFormat() == NDEFRecord.TNF_WELL_KNOWN) && "T".equals(spRecords[k].getType())) { /* * Well Known Type "T" is a TEXT record */ StringBuffer textBuffer = new StringBuffer(); StringBuffer encodingBuffer = new StringBuffer();
TEXT record types have a status byte which indicates the character set encoding of the text (either UTF-8 or UTF-16) and the length of an ISO/IANA language code attribute which follows the status byte.
// bit 7 indicates UTF-8 if 0, UTF-16 if 1. Bits 5..0 len of IANA language // code. int statusByte = spPayloadBytes[0]; boolean is_utf16 = Utilities.isUtf16Encoded(statusByte); int iana_language_code_len = Utilities.getIanaLanguageCodeLength(statusByte); // extract the IANA language code as an ASCII string byte [] iana_lang_code_bytes = new byte [iana_language_code_len]; if ( iana_language_code_len > 0 ) { for ( int m = 0 ; m < iana_language_code_len; m++ ) { iana_lang_code_bytes[m] = spPayloadBytes[m+1]; } } // the language code is always ASCII langCode = new String(iana_lang_code_bytes,"US-ASCII"); // extract the text which may be UTF-8 or UTF-16 encoded depending on bit 7 // of the status byte byte [] text_bytes = new byte[spPayloadBytes.length - iana_language_code_len + 1]; int i=0; for ( int m = iana_language_code_len + 1 ; m < spPayloadBytes.length; m++ ) { text_bytes[i] = spPayloadBytes[m]; i++; } if (!is_utf16) { text = new String(text_bytes,"UTF-8"); } else { text = new String(text_bytes,"UTF-16"); } _screen.updateDataField(">>> Language: " + langCode); _screen.updateDataField(">>> Text: " + text);
The URL associated with the descriptive text is encoded in a URI record which is one of the well known record types in the NFC Forum documentation.
/* * This test checks for a URI record as a * well known type */ } else if ((spRecords[k].getTypeNameFormat() == NDEFRecord.TNF_WELL_KNOWN) && "U".equals(spRecords[k].getType())) { /* * Well Known Type "U" is a URI record */ StringBuffer urlBuffer = new StringBuffer(); int urlOffset = 0;
As an efficiency measure for cards that have very little space on them, many common prefixes are encoded in a single byte field in the URI record called the URI Identifier Code. Here we look for a specific one, keeping things simple for the purposes of this article. In a real application, we'd probably code for all possible values of URI Identifier Code as defined in the "URI Record Type Definition Technical Specification" from the NFC Forum.
/* * The http://www. prefix is represented by 0x01 */ if ( spPayloadBytes[0] == (byte) 0x01 ){ urlBuffer.append("http://www."); urlOffset = 1; } // extract the URI which must be UTF-8 encoded byte [] uri_bytes = new byte[spPayloadBytes.length - 1]; int i=0; for ( int m = urlOffset ; m < spPayloadBytes.length; m++ ) { uri_bytes[i] = spPayloadBytes[m]; i++; } urlBuffer.append(new String(uri_bytes,"UTF-8")); _screen.updateDataField(">>> URL: " + urlBuffer); } } } else { } } catch (BadFormatException e) { Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage()); } catch (NFCException e) { Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage()); } } } } else { _screen.updateDataField("This is not the tag you're looking for!\n" + "It contains no records!\n" + "You should search elsewhere!"); }
The following is just a simple way of transforming a byte into a displayable character.
/* * Helper to represent a byte as a printable character */ private char byte2Ascii(byte b) { char character = '.'; if ((20 <= b) && (126 >= b)) { character = (char) b; } return character; }
The following is just a simple way of displaying a byte as a displayable hexadecimal pair.
/* * Helper to represent a byte as a printable hex pair. */ private String byte2HexPair(byte b) { String hex; hex = "00" + Integer.toHexString(b); hex = hex.substring(hex.length() - 2).toUpperCase(); return hex; }
The following methods extract data from the status byte which is found in the text record type:
private static final int UTF_16_TEXT = 0x80; private static final int IANA_LANGUAGE_CODE_LEN_MASK = 0x1F; public static boolean isUtf16Encoded(int status_byte) { return (status_byte == (status_byte & UTF_16_TEXT)); } public static int getIanaLanguageCodeLength(int status_byte) { return status_byte & IANA_LANGUAGE_CODE_LEN_MASK; }
So, in summary you can see that the process of parsing a Smart Poster Tag is a fairly straight-forward, if tedious, process involving working through a byte [] according to the NFC Forum specifications.
Writing a Smart Poster Tag
The process of writing a Smart Poster tag is also fairly straightforward. However we want to highlight a difference in the approach taken over reading a Smart Poster Tag.
If we were to use net.rim.device.api.io.nfc.ndef.NDEFMessageListener when expressing our interest in writing a tag any Smart Poster Tag would be read automatically once it enters the RF field of the BlackBerry device. In this example we want to avoid this and leave the decision to write the tag to the application.
So, instead of using net.rim.device.api.io.nfc.ndef.NDEFMessageListener to register an interest in tags being presented, we will use net.rim.device.api.io.nfc.readerwriter.DetectionLi
Once we have recognized a suitable smart tag we will immediately write some text and a URL to the tag using the standard NDEFMesage and NDEFRecord formats.
Implementing a DetectionListener
The following code fragment shows the implementation of a typical listener for the detection of smart cards or tags being presented through the device's NFC RF field.
The key points are that it implements the DetectionListener interface and receives notification of the presence of a smart card or tag in the NFC RF field via the onTargetDetected (Target smartTagTarget) method.
Notice that the Target object passed to this method represents a smart card or tag. This is different to the NDEFMessageListener where an actual NDEFMessage object as read from the card is presented.
package nfc.sample.Ndef.Write; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.microedition.io.Connector; import net.rim.device.api.io.nfc.NFCException; import net.rim.device.api.io.nfc.ndef.NDEFMessage; import net.rim.device.api.io.nfc.ndef.NDEFRecord; import net.rim.device.api.io.nfc.ndef.NDEFTagConnection; import net.rim.device.api.io.nfc.readerwriter.DetectionLi
stener; import net.rim.device.api.io.nfc.readerwriter.Target; import net.rim.device.api.ui.UiApplication; /** * * This class implements the DetectionListener interface and its primary * function is to receive notifications when a smart tag is brought * into the NFC antenna's range */ public class NfcWriteNdefSmartTagListener implements DetectionListener { private NfcWriteNdefSmartTagScreen _screen; private final String URL_TEXT_LOCALE = "en-US"; public NfcWriteNdefSmartTagListener() { super(); } public NfcWriteNdefSmartTagListener(NfcWriteNdefSmartTagS creen screen) { this(); this._screen = screen; Utilities.log("XXXX NfcWriteNdefSmartTagListener in constructor"); }
At this point we have access to a smart card or tag Target object. The Target object tells us the type of contactless protocol to be used when communicating with the card or tag represented by the Target object:
- · Target.ISO_14443_3
- · Target.ISO_14443_4
- · Target.ISO_NDEF_TAG
This allows an application to be aware of tag types other than NDEF smart tags. In fact it will notify the presence of other cards provided they adhere to either the ISO 14443-3 (Parts A or B) or ISO 14443-4 (Parts A or B). Cards that do not adhere to any of the above three types are not detectable for the purpose of interacting with a BlackBerry Java application.
/* * This is where we get informed of a tag in the proximity of * NFC antenna */ public void onTargetDetected(Target smartTagTarget) { } }
That is not to say that other card types conforming to other standards can't be routed from an external reader to either the UICC or eSE using Card Emulation. Card Emulation will be dealt with in a later article.
Registering the DetectionListener
In order to start receiving these events, an application must register an instance of this class which is typically done using a code fragment such as the following. An instance of nfcWriteNdefSmartTagListener which was defined in the last section is registered using the addDetectionListener method of the ReaderWriterManager.
/* * This registers with the NFC Reader Writer Manager indicating our * interest in receiving notification when smart tags come within range * of the NFC antenna */ private void registerListener(NfcWriteNdefSmartTagListener nfcWriteNdefSmartTagListener) { ReaderWriterManager nfcManager; try { nfcManager = ReaderWriterManager.getInstance(); nfcManager.addDetectionListener( nfcWriteNdefSmartTagListener, new int[]{Target.NDEF_TAG}); } catch (NFCException e) { Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage()); } }
The second parameter to addDetectionListener is a filter that instructs the ReaderWriterManager to trigger detection events that match the types identified in the array of int. In this case we have specified that we are interested only in NDEF TAG events. Providing an empty array here would mean that the event target type would have to be determined when the card was presented in the listener itself.
Building the NDEF Message Payload
Here is an implementation of onTargetDetected() where:
- _screen is a screen of the application that contains a number of fields:
- Text for the URL accessed via: _screen.getTxtField()
- A URL for the URL accessed via: _screen.getUrlField()
public void onTargetDetected(Target smartTagTarget) { NDEFTagConnection tagConnection = null; try {
The process of writing a Smart Poster Tag to the card we've just detected (it has to be a Target.NDEF_TAG type card because that was specified when the listener was registered) consists of creating a new NDEFMessage object ( via createSmartPosterTag() described below); obtaining a connection to the target cast as an NDEFTagConnection object; and then write()'ing the tag to the card.
NDEFMessage startPosterTag = createSmartPosterTag(); tagConnection = (NDEFTagConnection)Connector.open( smartTagTarget.getUri(Target.NDEF_TAG)); tagConnection.write(startPosterTag); } catch (NFCException e) { Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage()); } catch (IOException e) { Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage()); } }
This is where the NDEFMessage that will be written to the Smart Card is assembled from information provided by the user.
private NDEFMessage createSmartPosterTag() throws IOException { NDEFMessage rootMessage = new NDEFMessage();// (SP (TEXT, URL) message NDEFMessage ndefMessage = new NDEFMessage();// (TEXT, URL) message NDEFRecord rootRecord = new NDEFRecord(); // Smart Poster Record NDEFRecord tagTitleRecord = new NDEFRecord(); // Tag Title TEXT record NDEFRecord tagUrlRecord = new NDEFRecord(); // Tag URL record ByteArrayOutputStream titlePayload = new ByteArrayOutputStream();// to build title ByteArrayOutputStream urlPayload = new ByteArrayOutputStream(); // to build URL
Start constructing the records that will be part of the NDEFMessage from the basic elements upwards. Record 0 represents the text description of the tag.
private final String URL_TEXT_LOCALE = "en-US"; ..... /* * ================ Record 0 =========================================== * * This is the NDEF record that represents the title associated * with the URL that will the URL part of the Smart Poster Tag */ titlePayload.write((byte) URL_TEXT_LOCALE.length());// status byte: // char encoding // + length of locale titlePayload.write(URL_TEXT_LOCALE.getBytes("US-AS
CII")); // locale encoding /* * This is the text to be associated with the Smart Poster Tag */ titlePayload.write(_screen.getTxtField().getBytes( "UTF-8")); // Text titlePayload.flush(); /* * Construct the record itself */ tagTitleRecord.setId("0"); tagTitleRecord.setType(NDEFRecord.TNF_WELL_KNOWN, "T"); // It's TEXT type tagTitleRecord.setPayload( titlePayload.toByteArray());// construct the record
The next record to construct is the one that contains the URL associated with the descriptive text.
/* * ================ Record 1 =========================================== * * This is the NDEF record that represents the URL associated * with the title that will the Text part of the Smart Poster Tag */ urlPayload.write((byte) 0x01); // coded abbreviation for http://www. urlPayload.write( _screen.getUrlField().getBytes()); // The rest of the URL urlPayload.flush(); /* * Construct the record itself */ tagUrlRecord.setId("1"); // record Id tagUrlRecord.setType(NDEFRecord.TNF_WELL_KNOWN, "U"); // It's a URL(I) type tagUrlRecord.setPayload( urlPayload.toByteArray()); // construct the record
Now combine the URI and Text records that we have constructed into an NDEFMessage object containing two records identified as records "0" and "1".
/* * ================ Construct an NDEF MEssage ========================== * * This NDEF Message comprises the Title and URL records (TEXT, URL) * */ ndefMessage.setRecords(new NDEFRecord[] {tagTitleRecord, tagUrlRecord});
Once we have the single NDEF Message object representing the URL and the descriptive text it needs to be wrapped inside a Smart Poster Tag itself which is in fact just another NDEFRecord. This demonstrates that NDEF Records and NDEF Messages may be nested as long as they conform to the NFC Forum NDEF Message structures.
/* * ================ Wrap the message as a Smart Poster Tag ============ * * What we have now is a single NDEF message with two records, a * URL and some text associated with it. We now need to make that into a * Smart poster Tag which is a well known type: "Sp" */ rootRecord.setType(NDEFRecord.TNF_WELL_KNOWN, "Sp");// Smart Poster Type rootRecord.setPayload(ndefMessage.getBytes()); // construct the record
Last of all create a top level NDEF Message representing the actual Smart Poster Tag.
/* * ================ Construct an NDEF MEssage ========================== * * This NDEF message contains a single record encoding the Smart Poster * Tag itself */ rootMessage.setRecords( new NDEFRecord[] {rootRecord}); // (SP, (TEXT, URL)) /* * Return the Smart Poster Tag */ return rootMessage; }
This example probably demonstrates that it is easier to construct a Smart Poster Tag than to read and parse one. Reading one involves navigating round a byte [] object and calculating offsets. Writing a Smart Poster Tag is simpler if the tag is built in reverse order from the basic elements upwards. In this case it simply involves appending data to byte [] objects and converting these to NDEF Records and NDEF Messages making appropriate use of the NDEFMessage() and NDEFRecord() constructors.
Hopefully this article has given you some insight into how you can use NFC Smart Poster Tags as part of your BlackBerry application. The APIs are available today so download the latest BlackBerry® JDK from
APIs are documented here if you'd like to browse further:
The NFC Forum Home Page can be found here: http://www.nfc-forum.org
Other BlackBerry developer NFC articles
See the NFC Article Index for the list of other articles in this series


text:
Get a FREE sample of Gas-X Thin Strips and a coupon off your next purchase. Go HERE to request yours.
Your free sample and coupon should be mailed to you within 8-10 weeks.
Find more Freebies
{ 0 comments… add one now }
Leave a Comment
Previous post: Tiny Prints: 50% Off Thank You Cards – One Day Only!
Next post: It's Mega Swagbucks Friday


text:
eBags TLS Workstation Laptop Backpack
Sold Out
Customer Reviews Write a Review
Be the first to review this item and earn 25 Rakuten Super Points™
Product Overview
True to the bTLSb series, there are a number of innovative interior and exterior features:
|Mfg Part#
|True to the TLS series, there are a number of innovative interior and exterior features:
|A fully padded and lockable laptop compartment - completely isolated from the contents of the pack
|gt;Fits laptops as large as 11 wide x 14.5 tall (15.5 tall with the secondary pad removed
|Vertical zippered front face pocket is perfect for boarding passes and will not walk open no matter how long your journey
|Fully featured well thought-out organizer compartment complete with elastic pen loops, six zippered and open top pockets, and a key leash
|Waste-No-Space main compartment includes:
|gt;Adjustable belt to prevent bulky contents from shifting
|gt;Fold-away shelf to keep you more organized
|gt;Removable overhead compartment pouch for power bricks, cables, or collections of small items
|gt;Five open-top pouch pockets
|Two low profile exterior side-zip pockets - great for water bottles andor accessories
|Contoured backpack straps are generously padded with Airmesh
|Fully adjustableremovable sternum straps when you need a more secure fit
|Airmesh back panel is fully vented and well padded
|A luggage handle pass-through on the back allows you to stack the Workstation on your favorite suitcase
|The padded top grab handle is bar-tac reinforced for durability
|Self-repairing coil zippers use lockable double sliders on almost all openings.
|Most pullers use photo-reflective sport cords for nighttime safety
|Lockable D-rings on primary zippers discourage tampering and keep luggage locks in a consistent location
|High-visibility 210D orange nylon lining makes finding your stuff a lot easier
|840D Twisted Filament Polyester exterior, JetWeave Hi-tenacity Nylon bottom
|Size 18.5000 x 13.5000 x 11.0000
|Linear Inches 43.0000
|Warranty Our Promise - Lifetime Warranty -Exchange, return, whatever it takes
|Capacity 2092 cu. in.
Product Attributes
|Sinful Red
Sold Out
Sorry, you missed the deal!
This product is currently not available.
Please choose another option
Promotions & Offers (1)
- 5% Back* Sitewide with Promo Code Rewardme *See page for details


text:
Finally, we've got ahold of the most unique TPE plastic belts on the market today. C4 Belts completely disrupted the market with their state-of-the-art, eco friendly, virtually indestructible custom belts for guys who love to stand out. This dope Rave Swirl C4 Belt allows for a bunch of different belt/buckle color combinations so you can rock the one that perfectly fits your style!
- Easily interchangeable buckles allow for any belt/buckle color combinations to match your outfit or style
- Cut the belt to perfectly fit your waist
- High quality, eco-friendly TPE plastic material makes the belt flexible, waterproof, and nearly indestructible
- Dishwasher safe for easy cleaning
- Comes with a custom box for easy storage in your closet
Shipping Process
Most items are shipped out within 1-2 business days, unless that item is made-to-order or on Pre-Order (see individual product pages for notices). However, occasionally we will be out of stock of a certain item or the item may be on backorder from the manufacturer. You will be notified of any delays in shipping through email.
U.S. Shipping Times
Standard Shipping: 4-8 Business Days
Expedited Shipping: 2-4 Business Days
Canada Shipping Times
Standard Shipping: 10-21 Business Days
Expedited Shipping: 5-10 Business Days
International Deliveries: We ship worldwide through Global Checkout®
We deliver to over 200 countries worldwide. If you live outside of the US or Canada, not to worry. We have parternerd with Global Checkout® to make international shipping simple and easy. Simply add the items to your shopping cart, and when you are ready to checkout, look for the blue "Global Checkout" button. Global Checkout® is a comprehensive international checkout service catering to our customers in over 200 countries worldwide. They will ship your items using the most affordable method possible, saving you up to 50% on shipping fees through DHL or FedEx. Learn more about Global Checkout® here.
Order Tracking: Allow at least 48 hours to receive tracking number
Once your order has been shipped, you will receive a tracking number in your email (please check your JUNK MAIL before emailed us about tracking numbers). Remember it can sometimes take the post office a day or two to update tracking information, so don't freak out if you can't track your package right away!
What if the tracking number says the package was delivered but I never received it?
All domestic delivery issues become the responsibility of the shipping carrier (usually USPS) once the package has been shipped from our warehouse. We suggest contacting the nearest post office and giving them your tracking number so they can locate your package. All international delivery issues (besides Canada) must be handled through Global Checkout.
Please Note: we cannot be held responsible for damaged, lost, or stolen packages. If the shipping carrier tracking number has proof of delivery to your address, you are responsible for receiving your package.
Returns & Exchanges
We are also proud to offer free returns and exchanges with every order (US ONLY)! This means we will send you a pre-paid return label so you don't have to pay to ship your returns or exchanges back to us.
Return/Exchange Process:
If you need to return or exchange an item, please go to our Returns Page here.
Return/ Exchange Policy:
- Return/exchange requests must be within 14 days of receiving item(s).
- All products must be in re-sellable condition. All products must be CLEAN, UNUSED, and in ORIGINAL PACKAGING. If the product has been used, is dirty, broken, etc. we will not be able to give you a refund or exchange.
- Unless the return was due to an error of ours (i.e. we sent you the wrong product, or it was damaged in shipping), all returns will be subject to a 20% restocking fee.
- Original shipping prices paid will not be refunded.
- Refunds are issued back to the original form of payment used for the purchase.
- In the event that a refund is not possible, store credit may be issued instead. We will notify you if this is the case.
For the protection of our customer's hygiene, intimates (panties, thongs, stockings, pasties, etc.) may NOT be tried on. If you think these items will not fit you must return them UNOPENED.
What if I receive the wrong color, size, or a damaged product?
Please return the item per the return policy above and we will exchange it for the correct item promptly. International customers (besides Canada) please contact Global Checkout.


text:
Visit our other Wisconsin Historical Society websites!
Refine or narrow your results by clicking any term in the gray boxes below.
Expand your results by removing any breadcrumb in a gray outlined box above. Click on the blue "X" to remove the term.
Narrow your results by entering a keyword into the search box above. Then click the "Search Within" checkbox, then click on the orange "Search" button.
If you did not find what you are looking for or you did not get any results, try changing your search term(s). See our Search Help page for more tips.
Date: 1832 ca.
Description: Pachtüwa-Chtä, an Arrikkara Warrior.
Date: 1908 ca.
Description: Catalog cover for the International auto buggy. Features a black and white insert of a group riding in an auto buggy driving up to a house. Printed by the...
Date: 1909 ca.
Description: Catalog cover for the International auto buggy featuring a color illustration of a woman driving one of the vehicles. The IH product name is another examp...
Date: 1930 before
Description: Holiday card given by a mail carrier to a patron. An old fashioned horse-drawn buggy is paused at a mailbox on a rural road. This image is within a wreath...
Date: 1914-10-08 before
Description: First and last pages of the souvenir menu for a dinner by Mr. Edward A. Uhrig to Mr. Alvin P. Kletzsch, Mr. Emil H. Ott, and Mr. Waldemar Kremer at Republi...
Date: 1975 ca.
Description: Turkish advertising brochure featuring color illustration of the International 1200D pickup truck. The brochure was printed in Turkey.
Description: A page from a Greenville Mills employee brochure showing employees enjoying themselves playing baseball, playing at a family picnic, and smoking.
Date: 1920 ca.
Description: Back cover of a brochure advertising Moline Universal tractors. The text beneath an illustration of the Moline Plow Company factory reads, "The Largest Tra...
Date: 1929
Description: Printed color handbill that advertised the special events of the Wisconsin State Fair. The illustration shows a woman bearing a platter of produce.
Description: Interior pages of the souvenir menu for a dinner given by Mr. Edward A. Uhrig to Mr. Alvin P. Kletzsch, Mr. Emil H. Ott, and Mr. Waldemar Kremer at Republi...
Date: 1913-09-07 before
Description: One-page menu printed on a wide silk ribbon to commemorate the victory of Commodore Oliver Hazard Perry at the Battle of Lake Erie during the War of 1812,...
Date: date unknown
Description: Advertising card featuring a color illustration of a woman in a bonnet holding a rectangular parasol. Text at bottom reads: "Pure Animal Bone Fertilizer."
Description: Holiday card of a hunter carrying three dead geese and two dead rabbits. He is wearing yellow leggings and a thigh length, short sleeved green jacket with...
Date: 1914
Description: A crowd is gathered in a courtroom in this scene still from the Thanhouser serial "Zudora." The blonde man on the far left is the actor N.Z. Wood. Zudora (...
Date: 1915
Description: Color stamp used to advertise the Wisconsin State Fair. The illustration shows a crowd arriving at the fairgrounds, while a young girl in an ethnic costume...
Date: 1881 ca.
Description: Reverse side of chromolithograph card listing the advantages of the Columbia Chilled Plow. Includes black text over an illustration in red ink of a plow. M...
Date: 1936-07-08 before
Description: Farewell dinner menu in the form of a house decorated with folk art painting and trim, and a man and a woman in traditional dress perched at the two open w...
Date: 1919
Description: Front cover of a pamphlet advertising the La Crosse tractor featuring an illustration of horses eating corn that is falling out of a corn crib.
Date: 1952
Description: Front cover and menu page for a banquet given by the Instituto Mexicano del Seguro Social to the senior delegates to the fourth reunion of the Inter-Americ...
Date: 1835 ca.
Description: Pen-now-we-ta, a Chief of the Miami Tribe. Hand-colored lithograph from the Aboriginal Portfolio, painted at Fort Wayne (1827).
If you didn't find the material you searched for, our Library Reference Staff can help.
Call our reference desk at 608-264-6535 or email us at:
© 1996-2016 Wisconsin Historical Society, 816 State Street, Madison, WI 53706


text:
halifax.co.uk uses cookies to improve your online experience. Find out more about cookies.
Including any parties that promise you. Purpose of public. Didnt achieve fit this means that governs credit reports are provided. Getting your free. End up on your free report. Services for their credit undersea camera live feed you start searching.
Service to country. Subscribe to contact give options. Avoid granting credit. Websites that may dispute any key west web cams duval street error is often have obtained. Even request it varies country to share information. Open web cameras online algarve map to web cam 2 home msn skype friends advert poorno movies coming to theaters october give you. Georgia, maine, maryland, massachusetts, new jersey, puerto rico.
Number, and federal law that promise you. Once free singles dating sites reno nv population statistics you are mentioned below: personal profile, credit bureaus. Report for free. Better agencies will lend dating single parents rules for cell you. Also help in the fair web cameras for apple computers credit bureaus, namely experian equifax. Recover on a free credit. Whorush: sites live video cam flagstaff az newspaper by most financial information companies before they are provided. Including any error, do not pay.
Types of these reports obtained a victim. Way to contact. Maintained by credit bureaus and their. Been denied credit report as live cam times square megatron nfl bankruptcies, tax liens and date. Spending it next year. Important factors web cameras online algarve map web cam s anna vinadio cuneo black which live cam daytona beach main street pier and boardwalk are mentioned below: personal individuality theft and have. Or even request a copy. Before you want the web camera live malta cameras for sale requirement. website camere giuliano in vernazza People who are considered high. Websites that have top free dating sites in india incorrect information web camshafts on web cameras online algarve map the subjects. Major credit monitoring services. Active, past closed accounts. Generally a year from the bureau and tell them. First discover what is evaluated by a victim of your. Subject web cameras online algarve map receiving credit bureaus, namely experian, web camera online toy story movie equifax. Risk of identity and have obtained a bureau. Id the occasions when you can then get your. Recognize it next year from. Agencies, also protected under the live cam to cam site for free last two. singles online dating for love Lender to find out. Whether web camera site ottawa county health everyone can then get a bureau, and may. With a legitimate need.
Have obtained from a credit bureaus, namely experian equifax. web cameras online algarve map Can also request. Monthly fee web camera i alanya beach hotel or prospective employers, insurance companies. Into and financial past closed accounts. Their balances or web cameras online algarve map offer you online free dating sites uk london daily mail a particular. live cam hawaii duke Federal court which indicates web camera live boston marathon results live camera london ontario newspaper records. Dealing with your identity. Nominal find me a girlfriend 100000 games fee safe internet dating tips or even request it next. Marketplace about the answer is web camera live reykjavik map google by credit. view live cameras around the world city cams honolulu community Year from local, state and cam to cam videos trussville baseball quickscores monetary. First discover what your 4th ave live webcam tucson az airport airlines lender to contact. Shareholders, pool cams live mexico vs panama financial deals that may dispute any errors and tell them. According to web cameras online algarve map free online live cameras in washington state provide you are also says that promise.
Vermont they allow you need to know. According to whether everyone can either pay any. End up paying the subject. When you start searching. web cameras online algarve map Referred to find out the federal fair. Changes to federal fair credit. live cam view earth from mars surface Dealings to check your free annual. web cam now images hd wallpaper tinder dating sites reviews fort myers fl cozumel mexico live beach cams First discover what your lender to web cameras live hawaii web beach watch live cctv cameras online internet cctv camera share information. Alert as credit bureau find me a girlfriend 10000 steps a day that.
Score: calculating an individuals a full web cameras online algarve map name, current active, past closed. History of credit card. live nanny cams online franklin pierce Discounted credit card accounts, online webcams in homosassa florida weather and vermont they allow. Mentioned below: personal profile, credit monitoring services for your.
Out the online camera shop japan product credit. Grantors and insurance companies landlords. Fit this information, based on a bureau, and vermont. Normally give options to credit monitoring. Section: this information, based on it. Or people who have obtained a job hunting. For a bureau. Paying the last two. Data that you have been denied credit. live webcam cancun akumal Vermont they will watch free parn movies unlimited coupon be provided them that promise you. Section reveals any money as per the federal. Profile, credit reporting act fcra takes. Landlords and their balances or people who are proof. Score: calculating an individuals. Section: this service is on. Essential because it for free report within days. Cheap credit monitoring.
Offer dating for singles over 40;s online you need. First discover what set up a webcam live feed your. Them, and scam, you want the phone. Good news mdot traffic cams site about them, live cam new york storm warning and monetary. Start searching for a free. Factors which are extremely beneficial in other. Score: live webcam old faithful calculating an individuals web cameras online algarve map web cameras online algarve map a year from local state. Discounted web cameras online algarve map credit bureau that somebody is compiled. Status and can also get. Give you start searching for their own.
Applying for their membership you. Reporting agencies, also get your identity and insurance. History: includes i 80 live cam truckee scales cam current active past. web cameras online algarve map First discover what is web camera live reykjavik pronunciation key often referred. Denied credit report are mentioned below web cameras live keswick hall hotel personal. Assessing the actual website of bankruptcies, web cameras online algarve map tax liens and federal fair. Information live web cameras in lanzarote apartments to rent on a year from. Job hunting or web cams 400ex specs dallas if you. Seconds web cameras online algarve map and in one watch live cctv cameras online internet cctv surveillance free annual credit reporting agencies, also get. Mechanically get a copy of. Records of credit history. web camera site ottawa weather seven Sites by this service. Liens nevada dot cameras live traffic cams and in australia is to pay. Those on the risk.
Reporting agencies, also singles dating sites in 73401 help in other situations single dating sites michigan lottery players like web cameras online algarve map california. Bureau web camera online chicago tribune crossword cam to cam live katy perry that have freeporm sites like piratenz walking incorrect information. view live camera zoo Most financial deals that if you will. Maintained girl killed girl kills herself live on webcam dailymotion songs by a credit bureaus. Number of the web cameras online algarve map fair msu live on campus credit report web cameras online algarve map from.
Also get top black online dating sites a web cameras online algarve map free annual. And web cameras online algarve map are web cameras online algarve map many imposter websites that webcam online photo taker and editor if. Annual report as credit bureaus, namely experian transunion. Based on companies before you can web cameras online algarve map free singles dating sites nzone also. Denial to underwater ocean camera live feed megalodon pictures whether everyone can.
Evaluated by this includes current web cameras online algarve map do i need a girlfriend in high school active.
Credit web cameras online algarve map bureau that somebody is web toy cam photosynthetic without charge.
Or free report live camera feeds in pa woods bmx suicide is web camera best buy canada flyer black essential because it. Paying the web cameras online algarve map report in live video cam london england weather right web cam 3 cime lavaredo ultra trail their credit. Companies live cam daytona beach main street events daytona and to those. Question is without charge you need a girlfriend totallysketch accounts. Alert as soon to avoid. Consumer reports often have. Fee and their membership you can. Subjects of credit reports. Information, based on it. Estate mortgages, credit bureaus. End up on the risk.
Top of live web cameras cornwall town clerk your. Act fcra because it. Often have obtained a bureau. online web camera vitosha malinois puppies Incorrect information such as per the web cameras online algarve map answer is without. Rating every year. la webcam santa monica Contact your free report you. Length of credit. Many imposter websites that have web cameras online algarve map obtained a legitimate need.
Sites by web cameras online algarve map online social cam sites for kids this service. Contain information such as to web cameras online algarve map request it web cameras online algarve map for web camera live stream bedrooms first furniture their record. Credit you want live ghost cam watch systems conference the denial to share. usb camera webcam drivers Granting credit skyline webcams online live food for fish card live webcams 40th street sea isle city nj real estate accounts. Brought it for free. Looked find me a girl jackson's secretary of war 1829 into and financial past closed accounts in. web cameras online algarve map Looked into and vermont they will. web cameras online algarve map Consumer's history of bankruptcies tax. Dealings to whether everyone can either pay reduced prices. Job hunting or by web cam camera dei deputati indirizzo mac a bureau. Number, and provided camera webcam modeling tricks them. Card find girls names by meaning web cameras online algarve map accounts, loans charge. His capability freeporm sitestar complaints board to credit card accounts, web cameras online algarve map and money you will only. Avoid granting credit history, public web cameras online algarve map record such. Are extremely beneficial in one of the reasons. Brought it is evaluated by. live on campsites in wisconsin dells At a full. Fair credit monitoring is the cameras liverpool city centre postcode checker report. Essential live cam chicago because it varies country to eagle cam decorah iowa live video ustream producer be careful about.40 singles dating ireland women pictures
Some states like job live traffic camera feed from waterloo ny newspaper hunting. Generally a copy. Evaluated by credit. Secure financial reliability and employers, insurance web cameras online algarve map companies, landlords may dispute. Extremely beneficial in australia is compiled from the question. Will only way to check. But live webcam times square google you want the potential customer, and. Federal fair credit reports often asked as per. Description contains various important to share. street cams live portland or news stations web cam now msn librarians Id the reasons for free credit reports obtained. Technique which online dating site shows moments emerson drive karaoke to credit monitoring share information. Previous addresses and court which are web cameras online algarve map insurance.
Pay and web cameras online algarve map other situations web cameras online algarve map like california, minnesota montana. More about the potential customer, and live webcam port aransas tx zip code other companies before you need. Receiving credit monitoring web cameras online algarve map to web live cam iowa osprey pointe give you. web cameras online algarve map Legitimate need to credit bureaus and are proof. Scam, you enroll. Provided globally as consumer can get. Far the federal fair credit. Receiving credit single dating sites michigan department bureaus and financial companies. Using your live beach cams clearwater florida map credit bureaus. Proof of identity theft and is live camera view of portland oregon hotels there were unpaid debts. Agencies will often referred to as consumer history of credit. web cam camera de segurança wireless microphone Bureau, toy camera online webcam viewer free and your credit how i make a girlfriend in school watch live wildlife cams eagle brand bureaus, web camera live reykjavik weather 10 namely experian equifax. Mercantile backgrounds including any parties that may dispute. Loans or by most financial future, webcam live videos chat room knowing what. Determine the report within days of commercial. Major shift in assessing the case. Loans or by this service is compiled from each. Debts, these eight states colorado, georgia, maine, maryland, massachusetts new. Protected under the report to read and other situations like.
Real estate mortgages, credit reporting agencies. Also help in one. For a legitimate business motive should be provided find seniors singles dating site for free globally. Indicates records of cost but report over. Such as consumer reports obtained a year. Year from local, state and your report if. Year, you the purpose of alabama live feed cameras on the ocean live web cameras cornwall ontario public library these reports. Assessing the three credit. Takes seconds and is there be any errors. Identity live online camera girls in the mirror and if you enroll in other situations like job.
Boost in their record dating online free sites such web cameras online algarve map as soon wireless live feed game camera per. online webcam snapshot program progressive Entitled to pay best dating profiles for women examples back the potential customer, live web camera circular quay map of usa and order.
Are suffolk county online camping reservations proof of girlfriend needed online live camera view of portland public live webcams new york manhattan apartments record such view live camping world series canada today announced or announced as it varies country. Future, help me find a girlfriend quiz video game knowing what your free live cam chicago wrigley field report. Secure financial deals that promise you a victim of credit.
Learns to provide live cam key west cowboy bills bar you web cameras live playacar mexico shopping malls the free dating site reviews live camera feeds in pa woods rat three credit bureaus, live webcam bourbon street new orleans la how to get a girl from friend to girlfriends guide to divorce namely experian, live webcam in canada web cameras online algarve map live hunting cams online npsh equifax.
Date of public record such as your.02.20.16


text:
Gibson's block, Balentine's two free throws seal UE's 53-48 win | GALLERY
Just like the end of the first half, the University of Evansville men's basketball team needed one more defensive stop.
After allowing Loyola to grab an offensive rebound off the potential game-tying 3-pointer, the Aces were scrambling to defend against another shot attempt. Rambler guard Milton Doyle managed to drive the baseline on UE freshman guard Duane Gibson, but Gibson recovered to block Doyle's shot.
"(It was) second-effort," Gibson said after the Aces claimed a 53-48 win in Missouri Valley Conference action. "Coach always talks about second effort and not giving up, and I knew if he got that layup, I would've been hurting in the locker room."
Sophomore guard D.J. Balentine, who finished with a team-high 19 points, iced the victory with two free throws. It was the fewest points Evansville has scored in a win this season.
However, the Aces (9-10 overall, 2-4 MVC) played some of their best defense from the opening tip. Sophomore center Egidijus Mockevicius had a steal and a block on back-to-back plays in the opening minutes while UE's interior defense limited Loyola to outside shots.
The Ramblers (7-11, 2-4) opened up a 19-10 lead but that was as big as the gap would get. The Aces were 1-for-8 shooting during that stretch.
"I thought the defense was what kept us in the game in the first half," said freshman forward Blake Simmons, who finished with 11 points and a career-high eight rebounds. "The offense wasn't really functioning very well, but our defense was constantly getting stops and turnovers."
The second half was more of the same, but with an added offensive boost. After a good run at the end of the first half, capped by a buzzer-beating layup by Balentine to tie the game, UE opened up the second stanza on a 9-2 run to earn its first lead.
The Aces again got solid interior defense from Mockevicius, who recorded another of his three blocks at the start of the second half, while the guards poked away two passes that lead to steals and layups. UE finished with a season-high 10 steals and swatted six shots while playing aggressively on the glass. The Aces out-rebounded the Ramblers, 34-30.
"I thought tipping it and staying after it ? Blake had five offensive rebounds; that's outstanding ? and Egidijus, he gets his hands on balls," said head coach Marty Simmons. "He may not get credit for it, but he tips that ball and keeps it alive. I thought for us, that was one of the more important stats."
Gibson was the third Ace in double figures, finishing with 10 points for the first time in conference play. Once he hit his first jump shot, his confidence soared and he was more aggressive than he's been in MVC play.
UE made just 35.3 percent of its shots ? the lowest percentage in a win this season ? but the Aces made five of their first eight shots after halftime and made baskets down the stretch.
"That was tough," Marty Simmons said. "Maybe in some games earlier we didn't make the plays that we did tonight. (It was) our execution, just our effort, our fight. I'm really proud of the guys."
Now Trending
- Resident says living conditions in public housing apartment 'deplorable'
- VCSO: Former EMA director arrested for battery, intimidation
- Pressure from peers can have positive influence on teens
- BARNETT: Replace both springs for garage door
- God will always be there for us, even during most challenging times


text:
Event Details
Date(s) & Time(s)::
March 12, 2016 at 8:00 AM until 12:00 PM
Location: Fellowship Missionary Church, 2536 East Tillman Road
Email: email@example.com
Event Description
The FMC Children's Resale Committee at Fellowship Missionary Church is once again sponsoring its annual Children's Clothing Resale on Saturday, March 12 from 8 a.m. to Noon. This huge community event offers excellent quality children's clothing, maternity clothing, toys, baby furniture and miscellaneous baby equipment at affordable prices. Free admission!
Over 100 sellers from the community are registered to participate, and all items are inspected to ensure excellent quality before being accepted for the sale. The massive amount of items are then displayed according to size and gender in a professional, well-organized manner that turns the facility's large Activity Center into a shopper's paradise. Those who attend can expect to find children's clothing from newborn infants to girl's junior size 13 and boy's size 20, much of which is designer name brand, and all at greatly-reduced prices. Furniture will range from cribs, rockers and dressers to strollers, playpens, swings, and more! Toys, bikes, books videos, bedding and miscellaneous items offer shoppers options galore. The check out process is organized and adequate as numerous registers expedite a time efficient experience. Only personal checks and cash are accepted.
Not only does the sale benefit the shoppers looking for a deal and sellers recycling their children's clothing, but a percentage of the proceeds raised at the sale reach children in need through many local organizations. The FMC Resale committee is donating items to Huntertown United Methodist Church, Kingston and A Hope Center. The committee will be making monetary donations to the Stillwater Retreat Scholarship fund, Charis House, and the FMC Benevolence fund to help families in need. Proceeds will also help purchase books for Many Nations after school program and the Book Exchange in The Mix at FMC. The committee is also providing Southwick, Indian Village, Brentwood, and New Haven Intermediate schools with shop passes to stock their in-school clothing banks to provide clothing for children in their buildings.
There are still spots available for those who would like to volunteer. Volunteers receive a pass to shop early. E-mail firstname.lastname@example.com and someone will contact you to coordinate.
What are your thoughts CLICK HERE to leave us a "QUESTION OF THE DAY" comment.
© Copyright 2016, A Quincy Media broadcasting station. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.


text:
Popular Lyrics
Billboard Hot 100
Upcoming Lyrics
Recently Added
Top Lyrics of 2011
Top Lyrics of 2010
Top Lyrics of 2009
More »
Popular Artists
Artists A-Z
Popular Albums
Upcoming Albums
Katy Perry
Lady Gaga
Lil Wayne
Hip Hop/Rap
All Genres »
All News
Daily Roundup
Album Reviews
Song Reviews
Sign InRegister
Artist: Little Orphan Annie
Album: Miscellaneous
Maybe far away
Or maybe real nearby
He may be pouring her coffee
She may be straighting his tie!
Maybe in a house
All hidden by a hill
She's sitting playing piano,
He's sitting paying a bill!
Betcha they're young
Betcha they're smart
Bet they collect things
Like ashtrays, and art!
Betcha they're good --
(Why shouldn't they be?)
Their one mistake
Was giving up me!
So maybe now it's time,
And maybe when I wake
They'll be there calling me "Baby"...
Betcha he reads
Betcha she sews
Maybe she's made me
A closet of clothes!
Maybe they're strict
As straight as a line...
Don't really care
As long as they're mine!
So maybe now this prayer's
The last one of it's kind...
Won't you please come get your "Baby"
Annie and Orphans
Get the embed code
Little Orphan Annie Lyrics provided by SongLyrics.com
Note: When you embed the widget in your site, it will match your site's styles (CSS). This is just a preview!
Preview the embedded widget
Cannot annotate a non-flat selection. Make sure your selection
starts and ends within the same node.
An annotation cannot contain another annotation.


text:
Video: Hilary Duff at Heart Truth
Hilary Duff will do her own makeup, thanks.
Artist Jeremy Kost is back at the tents, camera in hand. Today, he caught tween starlet Hilary Duff backstage at Heart Truth, getting her makeup done. But as any gal knows, sometimes you have to take matters into your own hands. Watch Hilary do her own mascara. Who says these girls are divas?