RSS
 

Archive for the ‘Computers’ Category

CIE Surplus — new, richer, e-commerce ready website!

07 Jul 2009

After a year and a half or so of lots of business at geeXmedia, we finally had some time to build a more robust web front-end for CIE Surplus, whose commissioning of ListApp is really what brought about our company.

Anyway, I wanted to highlight the new features.

First of all, the most important enhancement is the ability to buy items directly from the website!  None of the other optimizations we’ve done are worth anything without that functionality.  That means you can buy an awesome steal of a deal from a CIE Surplus eBay auction, proceed to check out using the much-upgraded CIE cart, and pile on a bunch of additional blowout deals right from the site, and pay right there.

You can even specify customer pickup.  What does that mean to people in the northern Virginia, Winchester and Berryville Virginia, and West Virginia eastern panhandle area?  Super deals with no shipping charges!

And for the savvy user, there are RSS feeds to track new inventory from wherever you choose.  They are as follows:

Check it out today!  They can ship to anyone, so even if you’re not stopping by to pick up, you can get some seriously awesome deals.

 

Why GoDaddy can’t get it right, and why you should not use their Grid Hosting

23 Jun 2009

Grid hosting is a somewhat recent technology that essentially emulates a single server, but whose processing power is distributed over multiple servers.  There are several technologies used to accomplish this, but essentially it can be thought of as a cluster or as a self-scaling server arrangement.

The concept of it is to get the best of both worlds — you upload your website to a single server, or at least a single IP address, but depending on how much traffic your site is getting, more servers are added or removed to maintain stability.  In other words, easy, 100%, infinite scalability.

It is very attractive.  However, after spending the last few months using GoDaddy’s Grid Hosting BETA, I simply have to conclude that GoDaddy has it all wrong.  I believe from their perspective, they consider it one of their lower end solutions, and indeed, during the beta, it is only $4.99 a month.  However, infinite scalability is not something of value to someone whose websites will never scale.  Scalability is a point of interest for large sites, especially large sites that could become gargantuan.

So, the truth is, the service works very well with the exception of one important factor:  You can’t directly connect to any hosted file.  That’s right — if you attempt to post data to a script hosted on their server, you will, at least once ever so often, be forced through a 302 File Temporarily Moved redirect.  And, according to the W3C:

The requested resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests. This response is only cacheable if indicated by a Cache-Control or Expires header field.

The temporary URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).

If the 302 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.

      Note: RFC 1945 and RFC 2068 specify that the client is not allowed
      to change the method on the redirected request.  However, most
      existing user agent implementations treat 302 as if it were a 303
      response, performing a GET on the Location field-value regardless
      of the original request method. The status codes 303 and 307 have
      been added for servers that wish to make unambiguously clear which
      kind of reaction is expected of the client.

Summary: Any posted data cannot be forwarded through the redirect.  Again, I’ll reiterate that this only happens on occasion, but it happens 100% of the time for a service I was trying to implement:  PayPal IPN.

That’s right, every time PayPal tries to send an IPN (Instant Payment Notification) they are sent a 302 File Temporarily Moved header.  Given that PayPal sends payment data via POST, and that PayPal is so fixated with security, and that the W3C expressly prohibits the forwarding of posted data through a 302 redirect, well it just doesn’t work.

And ultimately, anyone who uses any form on their website cannot reliably expect to get any results, as this redirect will prohibit the form from working.

The fact of the matter is, it really makes no sense anyway.  A logical conclusion would be, well why not have PayPal submit the data to the destination of the temporary redirect?  Short answer, the redirect goes to the same file.

Let’s say my IPN handler is at http://mysite.com/handler.php.  PayPal sends POST data to that URL, only to receive a 302 reply to redirect to the location http://mysite.com/handler.php?3ecvxYara (3ecvxYara is just a random string of characters, and it can change).  Ok so PayPal is then redirected to http://mysite.com/handler.php?3ecvxYara, where it can’t resubmit the POST data, but that’s where GoDaddy sends them.  Once they hit that URL, they receive yet ANOTHER 302 which directs them back to the original URL, only this time it works.  However, 2 steps ago, we were prohibited from resubmitting the POST data.

Let me summarize, GoDaddy, this SUCKS.

I have spent almost 6 months back and forth with their technical support.  I would send an email, only to get the reply “Hey we got your question.”  Then, a few hours later, I would get a reply “Your request has been forwarded to the high level tech guys because we low-level guys barely know how to turn a computer on.”  Finally, a day or so later, I would get “We think it is a problem with your scripting.  Check your script and make sure you’re not screwing up.”

At this point, all I knew was that PayPal couldn’t connect because they were getting a 302 reply.  I had theorized that there was some kind error in the Grid Hosting redundancy system.  Ultimately, GoDaddy admitted that it was something happening on their end.  Then, finally, someone on the PayPal boards triggered me to look up the protocol for a 302, and I realized the problem.  Then, I used FireBug to track the headers, and sure I enough, I found what I needed to know.  So, I questioned GoDaddy as to why the 302 is necessary.

The reply:

Dear Sir/Madam,

Thank you for contacting Hosting Support.

Your issues with communicating with Paypal are related to the methods which we use
to protect our network. For security reasons, we cannot get into the technical
explanations as to why this configuration will not work.

Please contact us if you have any further issues.

Regards,

Aaron R.

Hosting Support

In other words, they can’t come up with a solution that makes the Grid Hosting system behave like a normal server, and, as I mentioned before, that is supposed to be the appeal of this technology.  Give me a break … temporarily redirecting every file somehow protects their network?  Wow!  I guess I know now how to try to bring down their other hosting services right??

Needless to say, I will not be using Grid Hosting from GoDaddy anymore.  I will next try Media Temple, as it is more matured and I have not read about any such issues.  I doubt GoDaddy cares about losing my $4.99 a month, but I will deter as many people as possible from using their system at all.  Their slow, inefficient, vague technical support is a frustration in itself, and the fact that they can’t get their system to work properly, well that’s just bad business.

 

Days 2 & 3, eBay DevCon 09

22 Jun 2009

So days 2 and 3 of ebaydevcon09 seemed very uneventful compared to previous DevCons (Chicago and Boston).  eBay played it very low key, and mainly just used it to press the selling manager applications platform to those who aren’t already knee-deep in it (such as me).

A lot of the talks focused on SMApps and how to monetize your applications there, so that was helpful, but, frankly, I got more out of networking with other developers and eBayers than the talks and presentations themselves.

We cut day 2 of the conference short (The first day wasn’t actually part of the conference) and did a little tour of San Fran by car — saw quite a bit for just a few short hours.  We drove over the Golden Gate, then drove all the shore-roads all around the bay.

There were some pretty cool communities and views — definitely worth the drive.

I have uploaded pictures here:  http://ihrt.it/3

and here:  http://ihrt.it/2

Sorry it is so short, but it’s taken me forever just to write this anyway.  Maybe the pictures will be more descriptive.  :-D

 

Internet Explorer Legacy Issues — 100% width and horizontal scrolling

22 Jun 2009

One of the beautiful idiosyncrasies (some calls ‘em bugs I call ‘em idiosyncrasies) of IE that I just had the pleasure of dealing with has to do with the use of the width: 100% property.

Basically, I fixated the html and body elements, then built a 100%, 100% height div (no padding, margins) inside it so that I could better control the scrolling of my page compared to other fixed objects.

At the top of that replacement div, I had 3 linear objects making a header.  One was 110px tall at the top, the next was 22px immediately below that (top: 110px), and the next was 10px, immediately below that (top: 132px).

Each of these elements was 100% width (entire width of the viewport).  For some bizare, wacky reason, I kept getting a horizontal scroll bar, even though everything fit on the page.

It was my top element, which made no sense to me because they were all 3 position: absolute; width: 100%; and fixed height, just with varied positioning.  In debugging, I was stumped, as it didn’t matter where I put the objects, in what order, etc.  That top div (the one that was originally on top) was always wider than the screen — in fact, it was wider by the width of the scrollbar.  For some reason, it was getting its width of the viewport from BEHIND the vertical scrollbar, whereas the other 2 for some reason did as they should and excluded the width of the vertical scrollbar in their calculations.

Then I realized, but “no it couldn’t be?!?” — the 2 divs that were working properly had a background image.  More specifically, their background was defined as background: #xxxxxx url(/file/location) repeat-x; but the other div simply had background-color: #111111; as its definition.

So for some reason, using background: vs. background-color: causes the always intelligent IE to change its interpretations.  Go figure right?

So the workaround?  Use background: instead.

background: #111111 url() no-repeat;

And voila, it was fixed.

I HATE YOU IE.

 
 

Day 1 of eBay DevCon 2009 plus a little tour of Northern California!

16 Jun 2009

Corresponding pictures for this blog are available here:    http://abv8.me/2Q.

My business partner Chris and I have made our 3rd voyage to eBay DevCon, this year in wonderful San Jose in northern California (where the girls are warm so I could hear my sweet baby say … ).

We flew in last night, Jet Blue flight 317 direct from Washington Dulles to Oakland International.  Oddly enough, Chris’ neighbor Tooland happened to be the pilot, and he hooked us up with a free Heineken — yeah baby.  Anyway, it was a very long 6 hour flight (it was only 6 hours 23 minutes in the air when I flew to Paris from Philly), and we had some rocky air with a little detour as there were t-storms and tornadoes in Kansas.

We touched down at around 9pm local time (12am EST) and headed over to Budget Rental where we picked up our awesome Kia compact POS.  :)   Actually, it’s not too bad — good turning radius and small — hard for all the crazy California drivers to smash into.  We got to the hotel at 10:30 or so and proceeded to pass out.

So here we are in beautiful San Jose.  Well, cities are just cities, and, being the tree fanatic that I am, we had to visit the redwoods.  We got up early this morning — 6:30 or so, and decided to make our way to the Big Basin Redwoods State Park.  Now, for whatever reason, we put “shortest distance” into the GPS instead of “fastest time,” and we ended up on California route 35 — heading across the mountains on one of the steepest, windiest, but most scenic roads, I could have ever imagined.  I got some awesome pics of northern California vegetation, and, finally, about 2 hours later, we got to the park.

Now let me tell you, the coastal redwoods surprised me.  For all that they are huge, in the grand scheme of things, they really don’t seem all that large.  Really, a 300ft tall tree is only as tall as a football is long.  Gargantuan for a tree, yes, but in the grand scheme of things, they just feel like another tree — just ones that dwarf any big tree we have back east.  That being said, they are so tall and straight, they are kind of modest.  If a broad, bushy oak grew 300ft tall with a 200ft wide crown, I doubt I could relate to the perspective of such a tree being so modest.

From the park, we made our way to Santa Cruz so we could at least see the Pacific ocean.  We spent a little time at Seabright beach http://abv8.me/2R, and ate at a nice little place on the wharf named Aldo’s.  Apparently Guy Fieri ate there once.  The burger was delicious, and we had a little European Starling join us for a bite.  We named him Fred, and we were the best of buds.

From there, we headed back up route 17 to the eBay campus here in San Jose to listen to Madhu Gupta and company present the basic ins and outs of the new eBay selling manager pro applications platform.

General high points:

  • eBay items trade at a velocity of $2000/second
  • Some eBay sellers might put more trust in third party apps if they appeared to be hosted by eBay
  • eBay decided to make a platform where third party developers could integrate with eBay in a smart iframe or in hosted HTML
  • They will use the open gadgets specification
  • This will launch in August

Now, we have already developed our first application for this platform.  It is eZ labelZ for eBay, and it is a variation on our site ezbarcodez.com — geared to provide great integration with the already present eBay APIs so that sellers can print functional labels for their items.

Since we have been involved in the project since the alpha, most information was nothing new, but it was good to get a concrete overview.

Afterwards was “Happy Hour” with free beer and hors-d’oeuvres, and some networking.  We had some great chats with some eBay personnel, especially the documentation team, and well, what can I say?  Free beer.

So now we’re back at the hotel and I have hundreds of pics to parse through.  Hopefully they will appear on Facebook tonight and I will link them here.

 

Quickly duplicate a barcode!

04 Jun 2009

Fairly often in inventory circles, you just need to take a barcode  label you have and duplicate it to put on another item.  The quickest way to do so is on the Instant Barcode Duplicator by geeXmedia!  Just navigate to http://duplicator.ezbarcodez.com and scan the barcode into the box.  You can even add a title.

It currently supports 2″x1″ and 3″x1″ labels as well as label rotation.  And, if you need further barcode abilities, there is a full featured WYSIWYG label/barcode creator at http://www.ezbarcodez.com.

Currently only 128-B 1D style barcodes are supported, as it supports both numbers and letters, as well as some symbols, but it’s quick, and it will work for almost any application.

 

Abbreviate Me! URL Shortener With A Splash!

03 Jun 2009

Ok so the universe is full of URL shorteners. Does it need another one? No, but as a programmer, it was a fun project to build. Now I’m making it available to the public. It’s called Abbreviate Me! and it’s located at http://abv8.me/.

It’s free, it’s got a bookmarklet, it’s got stats, and it’s got an API.  And, in a move that is sure to blow your mind, it’s got a random color scheme!!  Awesome right?

Check it out.

 

Verizon Wireless Pantech UM-150 on Ubuntu 8.04 Hardy Heron

15 Feb 2009

This is easy enough, but since I recently did it and had difficulty finding definite information I thought I would post it myself.

Truth is, it’s a piece of cake. First things you need to know:

Your modem is just that — a modem, and it is connecting like any dialup modem.

Dialup number: #777
Username: xxxxxxxxxx@vzw3g.com (replace xxxxxxxxxx with you 10-digit phone number associated with your modem)

Plug your UM150 into your USB port. Ubuntu should detect it as /dev/ttyACM0

Now, simply run “sudo wvdialconf”

It will detect your modem and do pretty much all the configuration.

Edit /etc/wvdial.conf — put in the appropriate phone number, your username, and anything as the password (I used “abcd”).

Now, run “wvdial”

and you’re golden. Good luck!