- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Jarvis should frist print the SVG and then take a photo of it with his smartphone. Then, he would have both SVG file AND high-resolution raster file.
Captcha: THAT would be truly ingenium
Admin
I forgot to mention that the photo should be taken preferably on a wooden table.
Admin
In Jarvis' defense, half the battle is getting an SVG or hi-res original from a customer. Most people just grab a logo from their web site or a Word document header since that's all they can get their hands on. But the web site could at least prompt them regarding low resolution artwork and direct them to get better.
On the other hand, 640 X 480 would look decent when printed on a pen. And as they note- no one ever wears the T-Shirt anyway.
Admin
TRWTF for me? A technical guy that doesn't review the technical specs for sanity first before liaising with the web devs...
Admin
Downloading an SVG was the sanity check.
Admin
In his defence, it has to be pointed out that there exists an expectation of some sort of quality when liaising with a third party.
I was in the embarrassing position once of being the customer-facing guy in front of a prestigious client, presenting a product upgrade that was in practice completely unusable. The problem was, there was nothing in the specification which covered the specific points of issue:
a) Nothing which said: "When you try move the cursor off the screen, it will not beep and throw an error message, but simply stay at the edge of the screen and quietly not move, and most certainly will not beep-and-error for every single keypress in the input buffer, thereby going "beep-beep-beep-beep-beep ..." after someone has injudiciously held their finger down on the up-arrow key."
b) Nothing which said: "In order to move the cursor one character to the right, press the right-arrow key. We do not want to have to press F1 then the right arrow key to move one character to the right. Similarly with the left hand key."
c) Nothing which said: "Objects created in error must have a tool on the application which allows simple deletion of the object. It should not be necessary to open a text editor and edit machine-generated source code in order to delete something."
What I did find in the spec, on inspecting it in some detail, was a clause which stated the exact programming standards that would be applied, such that in order to achieve those standards there was a two-page function which to increment its parameter and return it.
Admin
I'd just rasterbate the PNGs.
Admin
The "-loutions" in "Weblutions" obviously stands for "convolutions", not "solutions".
Admin
Admin
Wow. This is one of the most intense WTFs I have read here. Talk about not understanding the basic principles of the system you're building...
Admin
How in the world did that update get past QA? Specs rarely call out that the solution should not blue-screen the clients machine, and subsequently drop the hard drive head on the spinning surface of the disk platter before shorting the line side of the switching power supply. It's generally assumed, and a good QA team would absolutely refuse to bless the product into release if it didn't meet certain basic levels of usability.
Admin
Can't decide if TRWTF is expecting something good to come out of programmatically changing a bitmap to a vector image or measuring file size in megabits.
Admin
But this is an ingenius solution! This man could work by us in any time!
Admin
Admiral Bakdar: "IT'S A TRAP!!!"
Admin
I suppose the name is meant to echo "solutions" and perhaps "ablutions" ... but really? "Weblutions" ...?
Admin
At least that SVG used real circle elements. I once wanted a simple icon consisting of a polygon contained within a large circle. Instead I was given an SVG that used two transformed paths.
Admin
Seriously. Everyone knows that companies should have a name in the form NounNoun where the two nouns are completely unrelated to your line of business. Or else a noun ending in *Vr where the vowel has been cleverly removed. Or both - LeafZippr would have been a much better name. And the domain is available!
Admin
Sorry, I need VB (GASP!) to account for the the various conditions that may influence a response to the above:
If REALITY == somewhat real "Dude, what's QA?" Else If REALITY == somewhat WTFy "Dude, it compiled!" Else If REALITY == really WTFy "Dude, I AM QA!!" Else "WTF?" End If
Admin
These kinds of things used to infuriate me, but I've seen them so much, it kind of just wears off. You get these new EOs parachuted in, and they're all, "Cut costs, cut costs, let's offshore!", raise a dissenting opinion and you become one of the costs to cut.
Admin
If you're doing this sort of promotional printing, and getting a suitably scalable format from your client (preferably with decent printable colors that have been well calibrated) isn't literally #1 on your requirements list, you have no business being in that business.
It's not something you leave out in briefing the web developers, let alone being something you entrust the web developers to understand.
TL:DR - marketing people are idiots.
Admin
The part where I'm unclear is the part where Jarvis was supposed to magically extract enough information from the users' 640x480 images so that they'd look good when printed on a t-shirt. How exactly was he supposed to do that?
Admin
The more detailed specifications from certain blue colored 3 letter organizations certainly do go to that level of detail.
It's unfortunate that there is no convention for the equivalent of an "executive summary" for engineers who aren't challenged by the obvious. It really makes it hard to find the actual requirements in the sea of boilerplate that they have accumulated over the years, when every paragraph ends with "and the system shall not crash, or otherwise malfunction when this action is performed"
Admin
For basic PNG images (like corporate logos) there are actually fairly good vectorization algorithms. The result isn't perfect, but at least it doesn't look pixelated when upscaled.
But in reality, in every case I've seen this kind of thing actually done on a commercial scale, it's implemented using a highly sophisticated system involving a bunch of starving graphic design students with pirated copies of illustrator 5 to recreate the image as a vector.
Admin
Why did he wait a week before just logging into the FTP server to see if maybe that change had already been done?
Admin
Quite!
My understanding is that there was politics involved.
It did go through QA, whose brief was: "Make sure it passes the specifications." And indeed, for the specs that had been published, and agreed with the customer, it did indeed pass.
The entire position in the company that I was ostensibly supposed to fill was one great big (highly-paid, tax-free) cluster-fornication in which the customer (rich, naive, foreign) was being ripped off six ways to Saturday.
It was not very long after this update fiasco (which was rejected by the customer part way through the multi-site installation -- I was sent back to base 3 days early, which was good because it meant I could go to the party planned that weekend) that my contract was terminated. I had to confess that it was rather a relief ...
Admin
How in the world did that ever get past the developer trying their own damn code. Maybe we'd all be a lot better off if developers thought about basic usability etc. first before throwing their steaming piles of garbage over to QA.
Admin
For a while there I was worried this was a story about my former employer, who happened to be in the exact same business as Weblutions. Fortunately, they weren't that WTFy, the copy-and-paste programmers who were there before me wouldn't be capable of something that advanced.
Admin
Admin
Just to clarify on the story. We (PromoCorp) DO have our own web front-end (something I've spent two years of my life constructing) that generates beautiful SVG vector files. The third party in question (Weblutions) have a product that they market to resellers in the industry. Being able to integrate with their software would obviously open up a whole load of order-generating websites to help us make money. Unfortunately, since they're not in the printing business themselves, their standards of "acceptable artwork" are rather low. We print at 600 DPI or higher in most cases. We're sticking with the low-res PNG files and we'll let them explain why the quality is a load of garbage.
Admin
The real WTF, as they say, was that the client apparently accepted the idea that anything that met the letter of the contract had to be accepted, and that they did not include anything in the contract giving them an out for quality or customer satisfaction issues.
If I go to a restaurant and order a chicken sandwich, and the waiter comes back with a piece of charcoal that used to be a dead chicken between two slices of soggy bread, I think I'm going to say, "Umm, no, this isn't what I ordered." A reply of, "Hey, there's chicken and there's bread, that makes it a chicken sandwich" is not going to cut it. If I refused to pay and left, I'd be surprised if a court would rule in favor of the restaurant.
The same could be said of almost any product. There's a reasonable expectation that the product will actually work, at least in some basic sense.
Trying to list everything that could possibly be wrong with a software product would be virtually impossible. Do we really need to specify that when you press the letter "a", an "a" must appear on the screen and not a "b"? That the data saved to the database must match what the user typed in and not be something generated randomly? That all data cannot be automatically deleted after 5 minutes, no matter how much space that might save? That if we add 2 and 3 the answer given must be 5 and not 27? Etc etc etc. I could think of thousands of possible stupid and irrational things that a program could do. I can't imagine trying to list all of them in a contract.
Admin
Admin
What the person shuold have done is use a bing or google query to find zooming software.
http://www.bing.com/search?q=Best+Photo+Zooming+Software&FORM=QSRE5
This will give him many results and user can always choose one that work best. we used a tool to magnify many lower res images to high ones to use on printing of reports. Client is never noticing the difference till now.
Admin
But hey, if your clients don't notice their graphics look like dirt, more power to you.
Admin
This. The story clearly states that Joe User uploads the image to Jarvis's "weblution", which then makes it available to PromoCode. If Joe User uploads a crappy low-res image, what's Jarvis to do? I suppose there could have been something in the spec that says, "ensure the customer uploads a vector file or hi-res bitmap", but short of that I'm not really blaming Jarvis. Well, I blame him for the WTF-y circular pixel implementation when the SVG format already has a perfectly cromulent way to embed raster images, but not for simply passing along what the end-user gave him. Unless, of course, the spec says something about it that we're not being told.
BTW, images are hard. Much harder than they should be. Unless your customer is a graphic designer you can't just tell them to provide "an SVG" file or "a PDF" or anything else, for the reason demonstrated in the article. It's all too easy to embed raster images in just about any vector format. Ask for an SVG and someone will take their crummy web logo and do "Save As... SVG". I worked at a place where we made signs using an electronic paper technology (like eInk, only different). I couldn't even convince our own people to give me images in the correct format, to say nothing of customers. The requirement was a black-and-white bitmap. They always gave me grayscale, no matter how many times I clearly told them "NOT GRAYSCALE. Monochrome. Bi-level. Black. White. The number of colors shall be two. Thou shalt not count to three colors. Four is right out!" And then they would just do a simple color-reduction and get a crappy stippled image rather than actually designing something to look good in monochrome. (And don't get me started on the mess our professional font designer would give me!)
Admin
As long as QA understands the basic level of usability. It may be that all QA had in this case were the requirements. "SVG File" - Check! Good to go.
No one said "SVG File for high quality graphics purposes"
Admin
This is what happens when you outsource to a certain part of the world. I've seen it too many times.
Admin
In the printing industry, we use loss-less compression algorithms for large graphics files. It's important to specify a minimum Weisman score so that transmission times don't take too long.
Admin
Raster and Vector based graphics are great for most artwork, but for large volume and high quality you'll want to use Pied Piper based compression, it has the highest Weissman score.
Admin
Indeed this is true! Much of our most lucrative work is coming from disappointed customers of surfer-boy coders too busy smoking the bhang to properly code working solutions.
Admin
The solution is pretty simple. Use the CSI "zoom" feature that give more and more resolution the more you zoom in on the (in this instance the 640x480 image) graphic.
Look, it works on TV all the time!
Don't all graphic programs have this feature?
Admin
Newly assigned QA here. When I recently pointed out that our new feature did not allow sort and stay - once you edited a record in the sorted list, the list then reverted back to unsorted state , I was told : that was not in the spec. I tried to explain expectations on basic usability, programming 101, but was voted down. System went live as designed - poorly.
Admin
It is not impossible. Check out "formal methods" sometime. The trick is to specify exactly and completely what the program must do, then state that it must do nothing else.
Admin
TRWTF is that a developer is responsible for delivering graphical art. The bigger WTF is that anybody was surprised how that turned out.
Admin
Of course this formal specification happens to contain exactly the same information as the end code. If you have the ability to write the spec so thoroughly and correctly, there is no need to hire a contractor to turn this into code. You've already done all the work.
Admin
Of course this formal specification happens to contain exactly the same information as the end code. If you have the ability to write the spec so thoroughly and correctly, there is no need to hire a contractor to turn this into code. You've already done all the work.
Admin
As a person who worked for a decade as a researcher in a theoretical computer science lab and who has now worked for half a decade writing programs for large companies, let me give you an expert opinion on using formal methods for creating programs:
AHHAHAHAHAHAHAHAHAHAHAHA-SNORT-HAHAHAHAHAHAHAHAHAHAHA!
For a bit longer answer:
Using formal methods to create programs will work only in highly specialized cases where costs of bugs are really, really, really, really, really, really, and really high. The problem is that you first have to create the formal specification which is really expensive thing to do. Then, you need to find all the errors in your formal specification, which is a really expensive thing to do. Then you need to create a new formal specification, because the requirements have changed and that's -- guess what -- a really expensive thing to do. Then you need to find all errors in your new formal specification, and it still is a really expensive thing to do. Then you need to scrap your formal specification because you realize that it's utter garbage and start from the scratch. Which is a really expensive thing to do.
Then, after you have created and debugged the specification a couple of times, you are convinced that it works and start to implement it as a program, which is about as expensive thing to do as software development usually is. And then you realize that you need to scrap the formal specification because it doesn't work, and start from scratch once again.
However, all this is purely academic with respect to the post that you responded to, because absolutely no one will be creating a formal specification on the level of 'if the user presses the key "a", then the letter "a" appears on the screen'. If they try to do that, the first (nonworking) formal specification will never be completed.
Admin
One thing i don't understand is why did he use circle for a pixel presentation? I've never saw round pixels, is that really a thing?
Admin
I think they should've simply accepted the crappy low-res graphics, and then marketed the shirts as "Retro 8-bit Graphics Style", cashing in on the 80's nostalgia factor.
Admin
Worse than that, it is easier to be that precise in code than n English. Just doing it yourself will not only get the right result, but take less of your time. The only time when this can be justified is with new team members, but then I'd suggest pair programming would be the better way of doing it.
Admin
Worse than that, it is easier to be that precise in code than n English. Just doing it yourself will not only get the right result, but take less of your time. The only time when this can be justified is with new team members, but then I'd suggest pair programming would be the better way of doing it.