I was fed up with the old design and its variable width. Massively crunching the listings for people with low resolutions is not welcome! No more are the space-wasting side links. No more is the user control panel on only a handful of pages. No more are the colors washed out!

Oh and the yardsale mapper has been awesome-ified. A panel has been added on the right showing the details of all the yardsales on the map. The ability to page through all the sales (hey, we had almost 4000 as of this morning) has been added too. That way you aren’t waiting for the map to refresh while panning around!

It’s spring time and thats the time for cleaning and yardsaling! So get to it!

I know there are a lot of javascript/ajax libraries out there such as prototype, but what if you just need the bare minimum? I don’t like lugging around features I don’t use, so I wrote this really handy little object. As I said, this thing does the bare minimum.

//handler has the signature: methodName(responseTxt)
function AJAX(handler){
    
    function _handleTheAx(req, handle) {
        if (req.readyState == 4) {
            handle(req.responseText);
        }
    }
    
    function call(url){
        var req = this.reqobj;
        if ((req.readyState == 4 || req.readyState == 0)) {
            req.open("GET", url, true);
            req.onreadystatechange = function() {_handleTheAx(req, handler);};
            req.send(null);
        }
    }
    
    function getXmlHttpRequestObject() {
        if (window.XMLHttpRequest) {
                return new XMLHttpRequest();
        } else if(window.ActiveXObject) {
                return new ActiveXObject("Microsoft.XMLHTTP");
        } else {
                alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
                return null;
        }
    }
    
    this.call = call;
    this.handler = handler;
    this.reqobj = getXmlHttpRequestObject();
}
So how do you use it? Easy:
function theResponse(respTxt){
    alert(respTxt);
}
function doSomethingCool(){
    teHajax.call('url/to/my/script.php');
}
var teHajax = new AJAX(theResponse);
You would just have to call doSomethingCool() and the response would show up in theResponse(). Yay! That was easy wasn’t it!

We added ‘widgets’ to Yosle today so that you can display your items on your own website or anywhere else that allows embeddable javascript. For basic information and the Widget Builder see the widget page.

The widgets are customizable via CSS on your site. There are a few classes you can style:

.yosleFeed{} /*container holding the feed widget*/
.yosleItem{} /*container holding the item widget*/

.yoslePrice{} /*any prices*/
.yosleLink{}  /*any links*/
.yosleSubtitle{} /*the subtitle directly below the title*/
.yosleDescription{} /*the description (item widget only)*/
.yosleUsername{} /*the 'posted by x' text*/

Examples

Here is the CSS. For illustration purposes and general eye strain, each piece will get a different color.

.yosleFeed{border: 1px dashed #00F;} /*blue border*/
.yosleItem{border: 1px dashed #F00;} /*red border*/

.yoslePrice{font-weight: bold; color: #000;} /*black, bold*/
.yosleLink{color: #0a0;}  /*Green*/
.yosleSubtitle{color: #F0F;} /*purple*/
.yosleDescription{color: #0FF;} /*cyan*/
.yosleUsername{color: #FF0;} /*yellow*/

Feed Example

Item Example

Round corners. Something that should be easy, right? Not so much. It seems they were left out of the CSS specification. No matter, there are a couple of ways to hack them out and make them look good. Basically there are two techniques: layering a few empty tags, and using images. There are some ways to do it with javascript as well, but I wont cover them because javascript is unnecessary. The layering technique is the most concise and clean, IMO, so thats what this post will focus on.

Continue Reading »

There is now a negotiation system in place. Items created with the ‘negotiable’ checkbox checked have a ‘Make an Offer!’ link under the buy link. All negotiations that take place will show up on your MyStuff home page. Yay!

Turns out tags haven’t been accepted by the not-so-savvy internetters, so I added categories as well. There aren’t many categories yet, but thats ok because you can create new categories when you create an item!

You can browse through the categories by clicking the Browse link in the left navigation list.

I am going to keep the tags around. I think they will be fun way to browse through the items.

Hello! The marketing department asked me do the honors and write the first blog post! So while the programmers finish up a couple of the features and the customer service reps begin to man their phones, I thought I would let you in on the excitement. Wait. I kid, I kid. There is no marketing department, there are no phones, and I cant seem to locate the programmers. I guess it’s just me for now!

I am Ben Ogle and I am proud to bring you my newest creation: that which is Yosle. As you most likely gathered from the front page, Yosle is a place to easily connect buyers to sellers for $0. My goal is to make Yosle the simplest, most user friendly way to sell your old treasures and find new ones on the web.

You’re excited aren’t you? Me too! So click around, post that stuff you’ve had sitting in your basement, and by all means tell your friends, family, coworkers, enemies, and pretty much anyone you’ve ever known in your entire life.

In the coming days, weeks, and months I will be busily adding user friendliness, features, magic, and a few graphics here and there. If you have any suggestions, please let me know.