Comment On The Storray Engine

As an independent .NET consultant, Steve gets called in to help smaller development teams to transition to the platform. Several weeks ago, a client had asked him to help rebuild some of their "core technologies" in .NET so they could offer it as a service to their clients. The first "technology" they wanted to upgrade was something called the Storray Engine. [expand full text]
« PrevPage 1 | Page 2 | Page 3 | Page 4Next »

Re: The Storray Engine

2006-01-23 15:23 • by DonMcNellis
Ugh!

Re: The Storray Engine

2006-01-23 15:25 • by voodooc
57486 in reply to 57485
The *real* WTF here, is why didn't he use a hash instead of an array?



vc

Re: The Storray Engine

2006-01-23 15:25 • by R.Flowers

With a grin from ear to ear, proud to be showing off his masterpiece, the programmer proclaimed, Although Steve was trying to figure out a professional exit strategy at this point, he just had to ask about maintenance. The programmer gleefully replied that's where the *real* Storray Engine lies.


When I read this, I felt like the loud person yelling at the horror movie: "Get the hell outta there! You're gonna die!"


Then I saw my worst fears confirmed.

Re: The Storray Engine

2006-01-23 15:26 • by Maurits
I knew arrays were evil.

Re: The Storray Engine

2006-01-23 15:27 • by Andy
That's awesome.  I saw something very similar to that about a week
ago in the wild during a consulting gig.  Scary that is probably
very prevalent.

Re: The Storray Engine

2006-01-23 15:27 • by SeekerDarksteel

About a week ago one day I was pondering the zen-ness of an .asp that modified itself.  This is close.  But to achieve ultimate zen, the core functions would have to be in the same page as products.asp.  Until then, I must go ponder...after all...what is the sound of one asp page rewriting itself?

Re: The Storray Engine

2006-01-23 15:28 • by Richard Nixon
57491 in reply to 57488
Maurits:
I knew arrays were evil.


It's not the tool - it's the person. Guns don't kill people. People kill people.

Sincerely,
Richard Nixon

Re: The Storray Engine

2006-01-23 15:29 • by Anonymous Coward

Sadly there really are people in this industry who are so wrong that it actually isn't possible to help them. I mean way far out down "Wrong Road" that a journey to go and reach them would take an entire lifetime!


It makes me tired just thinking about it...


This has conjured up some horrific memories from my past - I think I'll join Steve at the bar...

Re: The Storray Engine

2006-01-23 15:30 • by Anonymous Coward
57493 in reply to 57491

Richard Nixon:
Maurits:
I knew arrays were evil.


Guns don't kill people. People kill people.

Sincerely,
Richard Nixon


"No - Bullets Kill People" - Sledgehammer [:P]

Re: The Storray Engine

2006-01-23 15:33 • by SeekerDarksteel
57494 in reply to 57486

voodooc:
The *real* WTF here, is why didn't he use a hash instead of an array?

vc


 


I dunno if you've ever messed around with VB's Scripting.Dictionary object (afaik the easiest (only?) way to do hashes in VB), but they are extremely annoying to work with.  Massive bugs can occur because you fail to use cStr around either a key or a data item.  Just last week I was having a problem where I was getting data out of the hash that I had never put in.  Worse, if I tried to use certain keys to access the data the page would error out.  It turns out that the problem was that I didn't cast the data as cStr before putting it in the dictionary.


 


Now, I know you were probably joking about using hashes given the tell-tale "The real WTF here is...", but I just wanted to use this opportunity to bitch about hashes in VB without being entirely off-topic.

I like it!

2006-01-23 15:35 • by utunga

Hey why not! OK its certainly a WTF but I don't think anywhere near as bad as some of the mind numbing horror that you will see on this site on occasion.


Basically what he's doing is writing an in-memory database. If he was looking for a .NET equivalent, he may, yeah have to use some of those 'Class' things but for the rest of it maybe the closest equivalent would be Bamboo Prevaylance.


Whacky, and obviously not a programmer but there is something appealing about it I'm sure.


As someone said, the real wtf is that he was not using a hashtable, or should i say, Scripting.Dictionary

Re: The Storray Engine

2006-01-23 15:35 • by merreborn
This is superior to a flat file storage scheme... how?


Re: The Storray Engine

2006-01-23 15:36 • by mlathe
57497 in reply to 57494
I would have stored it in XML. :grin:

Re: The Storray Engine

2006-01-23 15:41 • by wtfocker
I think I would have taken the job. It would have taken 5 minutes to write the whole array to a database and then you could junk the include file.

Re: The Storray Engine

2006-01-23 15:41 • by SeekerDarksteel
57499 in reply to 57497

mlathe:
I would have stored it in XML. :grin:


 


As rabidly anti-xml as some people on this site can be, I don't think anyone would prefer the wtf's method to xml. 

Re: The Storray Engine

2006-01-23 15:42 • by Sean
Wait til the programmer discovers the wonders of reflection.  Makes me shudder just thinking about it.

Re: The Storray Engine

2006-01-23 15:45 • by voodooc
57501 in reply to 57498
Anonymous:
I think I would have taken the job. It would
have taken 5 minutes to write the whole array to a database and then
you could junk the include file.




Good point.  I mean, it's horribly, horribly wrong -- but it's at least consistent in its wrongness.



Re: Dictionary; yeah, I think I played with that once.  But this
is why I use hard drugs and alcohol.  To forget VBXXX.  I am
a quintessential coder burn-out; I refuse to write in anything but ruby
these days.



Parent company in conference call this morning:  "How possible
would it be to implement this webservice client in Java instead of
Ruby?"

Me: "Not at all."



vc

Re: The Storray Engine

2006-01-23 15:47 • by Just another WTF
57502 in reply to 57500

Sean:
Wait til the programmer discovers the wonders of reflection.  Makes me shudder just thinking about it.


Now we are getting into true Zen-ness.  Self modifying ASP.NET code based on self reflection.... 


....


....


... probably safer not to try, given the current implentation.

Re: The Storray Engine

2006-01-23 15:47 • by JohnO

My VB array knowledge is a little rusty but how does Dim STORRAY_Products(487, 4)
allow STORRAY_Products(14,7)?  Isn't that a 487x4 item array?  Isn't the valid range of indexes for the second dimension 1 to 4?


I can't believe a company with that kind of rinky dink website can afford a consultant.

Re: The Storray Engine

2006-01-23 15:47 • by rogthefrog
57504 in reply to 57490
SeekerDarksteel:

Until then, I must go ponder...after all...what is the sound of one asp page rewriting itself?





A giant sucking sound, to be sure.

WTF is the WTF?

2006-01-23 15:50 • by mcrbids
I've used solutions like this where part of the spec is that no flavor
of SQL is available, and there's a need to store complex sets of data
in files. He at least abstracted maintenance into a single, uniform method!



So, really, what's the WTF? Please explain. No, I'm not satisfied with "ooh, the eyes!", either.



Yes, you end up with limits on storage size, and
SQL is the preferred choice. But, with the limitations
mentioned above, what's the "non-WTF" answer to this kind of problem?




Seems to me that the WTF here is a programmer unable to challenge himself, and perhaps too dependent on alcohol.

Re: The Storray Engine

2006-01-23 15:52 • by jeremydwill
57506 in reply to 57491

Richard Nixon:
Maurits:
I knew arrays were evil.


It's not the tool - it's the person. Guns don't kill people. People kill people.

Sincerely,
Richard Nixon


In this case, I think the person *is* a tool (and not a very sharp one either).

Re: The Storray Engine

2006-01-23 15:54 • by SeekerDarksteel
57507 in reply to 57504
rogthefrog:
SeekerDarksteel:

Until then, I must go ponder...after all...what is the sound of one asp page rewriting itself?




A giant sucking sound, to be sure.


 


I dont know.  I just feel so sure that there has to be some kind of...i dunno...awesome application for self-rewriting asp files.  I just can't think of it yet.


 


Of course this is coming from the same person who couldn't stop laughing for 5 minutes after thinking about the idea of pcAnywhere'ing into a remote box, then pcAnywhere'ing back into my own box.  Speaking of which, I need to try that sometime. 

VB interpreted vs. XML

2006-01-23 15:54 • by Carl
And the difference between this and an XML "database" is....

...

...

Re: The Storray Engine

2006-01-23 15:58 • by R.Flowers
57509 in reply to 57503
JohnO:

My VB array knowledge is a little rusty but how does Dim STORRAY_Products(487, 4)
allow STORRAY_Products(14,7)?  Isn't that a 487x4 item array?  Isn't the valid range of indexes for the second dimension 1 to 4?


I can't believe a company with that kind of rinky dink website can afford a consultant.



Good question. I thought that maybe ASP/VB might allow you to run runshod over the original Dim, but that's not true. Then I thought maybe the array was ReDimmed somewhere in the snipped portion, and I tried it - but got this:


Error Type:
Microsoft VBScript runtime (0x800A000A)
This array is fixed or temporarily locked
/test.asp, line 12


So, I dunno.


 

Re: The Storray Engine

2006-01-23 16:01 • by rbriem
57510 in reply to 57493
Anonymous:

Richard Nixon:
Maurits:
I knew arrays were evil.


Guns don't kill people. People kill people.

Sincerely,
Richard Nixon


"No - Bullets Kill People" - Sledgehammer [:P]



I'd love to see the MythBusters episode on this one ...


Seriously, though, I'm an Knife user, which pretty much does everything I need to do (its handling of hash is exceptional), so I've never had a reason to try Gun. But I do recall seeing this discussed on a forum and from what I recall, Gun is a trigger-driven system that delivers unique "message/object" modules called "Bullets", and it requires an actor (person) to initiate the message/object delivery action. So I think that you're *both* right, to a certain extent.


People kill people ... guns just improve their performance.

Re: The Storray Engine

2006-01-23 16:02 • by Alex Papadimoulis
57511 in reply to 57509
R.Flowers:
JohnO:

My VB array knowledge is a little rusty but how does Dim STORRAY_Products(487, 4)
allow STORRAY_Products(14,7)?  Isn't that a 487x4 item array?  Isn't the valid range of indexes for the second dimension 1 to 4?


I can't believe a company with that kind of rinky dink website can afford a consultant.



Good question. I thought that maybe ASP/VB might allow you to run runshod over the original Dim, but that's not true. Then I thought maybe the array was ReDimmed somewhere in the snipped portion, and I tried it - but got this:


Error Type:
Microsoft VBScript runtime (0x800A000A)
This array is fixed or temporarily locked
/test.asp, line 12


So, I dunno.



Anonymization error (the original Array had 5 elements) -- I've fixed it.

Re: The Storray Engine

2006-01-23 16:09 • by Satanicpuppy
57512 in reply to 57489
Anonymous:
That's awesome.  I saw something very similar to that about a week
ago in the wild during a consulting gig.  Scary that is probably
very prevalent.


I put together something like this for an e-commerce site that "couldn't afford database hosting" and "only had a few products"...Though my implementation didn't include the brillant "core" functionality, I thought it was perfectly acceptable on a small scale. The biggest drawback, of course, is performance, but I let them know that up front, and explained to them what they were going to get, and how it was going to work. Then I wrote a method that hooked my e-commerce frontend onto an array-based flat database on the backend, pocketed my check, tipped my hat, and never gave them another thought.

They called me when the array-based datafile started throwing errors, probably about a year and a half later. I couldn't believe they were still using it...I figured at the time that either they'd succeed, and upgrade, or fail, and scrap it. I told 'em that they just had to delete a few old products, and the errors would go away, because that the code was only designed to hold a few hundred items.

Actual quote: "But it didn't start giving us problems until we got over a thousand" Damn thing had actually held together until the quota'd drive space on their webhost gave out (was mostly the picture, not my file). Yay multiple redundancy.

Talked 'em into going with a database, exported the junk out of the poor flat datafile, gave 'em a free upgrade to the new e-commerce package (which was the same code, tightened up, with 2 new features, and a snazzy new interface), pocketed my check, tipped my hat, and haven't heard from them since. Hopefully they'll complain to their webhost next time.

Just goes to show, sometimes the wierd stuff you find in the field wasn't so weird, initially.

Re: WTF is the WTF?

2006-01-23 16:10 • by Anonymoose
57513 in reply to 57505
mcrbids:
I've used solutions like this where part of the spec is that no flavor
of SQL is available, and there's a need to store complex sets of data
in files. He at least abstracted maintenance into a single, uniform method!



So, really, what's the WTF? Please explain. No, I'm not satisfied with "ooh, the eyes!", either.



Yes, you end up with limits on storage size, and
SQL is the preferred choice. But, with the limitations
mentioned above, what's the "non-WTF" answer to this kind of problem?




Seems to me that the WTF here is a programmer unable to challenge himself, and perhaps too dependent on alcohol.




Alright, how about:

The *real* WTF here is that guy thinks his solution is better than a database.

He was not restricted from using SQL, as far as we know.



Re: VB interpreted vs. XML

2006-01-23 16:12 • by Satanicpuppy
57514 in reply to 57508
Anonymous:
And the difference between this and an XML "database" is....

...

...

XML == Sexy && Arrays == Ugly.

Or

60 jilluion tags would massively increase performance of your layered, portable app.

Or

If you put this in XML, you'd be able to get another job, later.

Re: The Storray Engine

2006-01-23 16:14 • by database guy

Maybe it was a draw when they tried to agree on a database platform.


Actually the file technique is fine (AS A TOY).

Re: The Storray Engine

2006-01-23 16:16 • by osp70

my first assumption was that this site was the built over time.  At the start they had a few products and this worked well.  After time the web master began to complain and 'master programmer' came up with brillant method of adding to the 'database'.


Anyways, if I was told to design a datadriven site without any sql flavour, unless it was choice of not eating this week I think I would balk at the assignment.


later,

Re: I like it!

2006-01-23 16:20 • by Cheddar
57517 in reply to 57495
Speaking of in memory databases, a company I worked for thought that preloading 30 days worth of applications and persisting them as a dataset on a shared session server (asp.net) would save tons of time when people are viewing the content.

Pity for the poor guy who was the first to access the application each day, his request would usually time out before he got a response.

Add to this the wonderful consequence of having to update the db and dataset every time something changed.

The problems people create trying to avoid problems they should fix are usually worse.


Re: The Storray Engine

2006-01-23 16:34 • by seizethedave

I love it when people jump to call whatever set of functions they're working on "An Engine."


/joins steve @ the bar

Re: WTF is the WTF?

2006-01-23 16:39 • by rbriem
57519 in reply to 57505

mcrbids:
I've used solutions like this where part of the spec is that no flavor of SQL is available, and there's a need to store complex sets of data in files. He at least abstracted maintenance into a single, uniform method!

So, really, what's the WTF? Please explain. No, I'm not satisfied with "ooh, the eyes!", either.

Yes, you end up with limits on storage size, and SQL is the preferred choice. But, with the limitations mentioned above, what's the "non-WTF" answer to this kind of problem?

Seems to me that the WTF here is a programmer unable to challenge himself, and perhaps too dependent on alcohol.


Half the WTFs that show up here can be turned into reasonable solutions by invoking the proper combination of assumptions regarding the design - some more far-fetched than others.


I've used (and dealt with others') solutions like this, too, under similar restrictions, and have no problem with them as such. No WTF there.


And now, admittedly, this is a subjective description of the events, and certain aspects may be exaggerated for effect. But one WTF given these factors is the original developer's attitude about the solution; most of us here would soberly explain *why* we chose this solution while describing it, not "gleefully" expound on its "beauty".


Another WTF is Steve's reaction - if this represents a "tough, gawd-I-need-a-drink problem" for him, he needs to rethink his career.


And yet another WTF is my taking the time to respond to an AA killjoy's "I'm so tough" post ...

Re: WTF is the WTF?

2006-01-23 16:41 • by Anon
57520 in reply to 57505
mcrbids:
I've used solutions like this where part of the spec is that no flavor
of SQL is available, and there's a need to store complex sets of data
in files. He at least abstracted maintenance into a single, uniform method!

Are you daft?

Anyway, if this guy likes arrays so much, he could have tried serializing the array data to a file. Simpler than XML and requires no DB

Re: The Storray Engine

2006-01-23 16:50 • by eimaj2nz
57521 in reply to 57502
Anonymous:

Sean:
Wait til the programmer discovers the wonders of reflection.  Makes me shudder just thinking about it.


Now we are getting into true Zen-ness.  Self modifying ASP.NET code based on self reflection.... 


Woah! Isn't that starting to get a little too deep for these forums? "I changed myself, based on some self-reflecting..."

As for the code... I can almost forgive the original programmer. The solution is simple, and it works... so long as you don't have to worry about concurrency issues (which for a web application means all the time).

Re: The Storray Engine

2006-01-23 17:03 • by SurfMan
Another programmer heading for death row....

Re: The Storray Engine

2006-01-23 17:11 • by John Smallberries
Alex Papadimoulis:
fileName = Server.MapPath("/Code/StorrayEngine/Data/" & name & ".asp", True)


I guess this wasn't designed to work on a webfarm. It would have been fun trying to keep all the files in sync.

Also it's a good idea to keep volumes of static data in ASP files: since the weberserver has to parse them over and over, it keeps the data from degrading when cosmic rays bombard the magnetic media.

Re: WTF is the WTF?

2006-01-23 17:19 • by ferrengi
57524 in reply to 57505
mcrbids:
I've used solutions like this where part of the spec is that no flavor
of SQL is available, and there's a need to store complex sets of data
in files. He at least abstracted maintenance into a single, uniform method!



So, really, what's the WTF? Please explain. No, I'm not satisfied with "ooh, the eyes!", either.



Yes, you end up with limits on storage size, and
SQL is the preferred choice. But, with the limitations
mentioned above, what's the "non-WTF" answer to this kind of problem?




Seems to me that the WTF here is a programmer unable to challenge himself, and perhaps too dependent on alcohol.




Have you found out why SQL was not an acceptable solution in those cases?

The "programmer" in this case was proud of the fact that he was doing
all this stuff without a database. It makes he sound like he could have
used one but for whatever reason (maybe to save money) decided to come
up with this cockamaney method.



Give us a real life example of where a database cannot be used and then
we can discuss the best answer to the problem without using a database.

Re: WTF is the WTF?

2006-01-23 17:24 • by Omnifarious
57525 in reply to 57505
mcrbids:
I've used solutions like this where part of the spec is that no flavor
of SQL is available, and there's a need to store complex sets of data
in files. He at least abstracted maintenance into a single, uniform method!



So, really, what's the WTF? Please explain. No, I'm not satisfied with "ooh, the eyes!", either.



Yes, you end up with limits on storage size, and
SQL is the preferred choice. But, with the limitations
mentioned above, what's the "non-WTF" answer to this kind of problem?




Seems to me that the WTF here is a programmer unable to challenge himself, and perhaps too dependent on alcohol.

I rather agree with you. The main problem this has is the lack of a decent way to query it. But that may not have been important for the application. Given the size of the table, I'm guessing it probably isn't.


One thing you could do if you wanted to wow the original programmer and lead him to a better way of thinking is to change the code so it automatically loaded the array from a real database at startup. Then no self-modifying code would be needed to maintain it. I have, in fact, seen some important small domain tables in larger setups handled in just this fashion. And it would be a way for the original programmer to get his feet wet with a real database without having to plunge in head-first.


I truly don't think this is so bad. But, the original programmer clearly needs to lose the fear of complex database tools that inspired him to write this in the first place.


Re: WTF is the WTF?

2006-01-23 17:29 • by ferrengi
57526 in reply to 57519
rbriem:

mcrbids:
I've used solutions like
this where part of the spec is that no flavor of SQL is available, and
there's a need to store complex sets of data in files. He at least
abstracted maintenance into a single, uniform method!

So, really, what's the WTF? Please explain. No, I'm not satisfied with "ooh, the eyes!", either.

Yes,
you end up with limits on storage size, and SQL is the preferred
choice. But, with the limitations mentioned above, what's the "non-WTF"
answer to this kind of problem?

Seems to me that the WTF here is a programmer unable to challenge himself, and perhaps too dependent on alcohol.


Half the WTFs that show up here can be turned into reasonable
solutions by invoking the proper combination of assumptions regarding
the design - some more far-fetched than others.


I've used (and dealt with others') solutions like this,
too, under similar restrictions, and have no problem with them as
such. No WTF there.


And now, admittedly, this is a subjective description of the events,
and certain aspects may be exaggerated for effect. But one WTF given
these factors is the original developer's attitude about the solution;
most of us here would soberly explain *why* we chose this solution
while describing it, not "gleefully" expound on its "beauty".


Another WTF is Steve's reaction - if this represents a "tough,
gawd-I-need-a-drink problem" for him, he needs to rethink his
career.


And yet another WTF is my taking the time to respond to an AA killjoy's "I'm so tough" post ...





Yeah, there really are only a handful of WTFs that I've seen so far on
this site that I wouldn't want to touch no matter how much I got paid.

There's the hotel reservation system, and there's one that is the
database full of databases and one more which was some kind of delphi
system.

So, only about 4 or 5 real nightmares. The rest could be dealt with
effectively by an intelligent programmer who's willing to roll up
his/her sleeves and work it out.

Re: The Storray Engine

2006-01-23 17:42 • by fmr
57527 in reply to 57511
It seems there is another one, as the Ryobi info seems to override the Dewalt one... (index 345 used instead of 2)

Re: The Storray Engine

2006-01-23 18:01 • by Gene Wirchenko
Alex Papadimoulis:
As an independent .NET consultant, Steve gets called in to help smaller development teams to transition to the platform. Several weeks ago, a client had asked him to help rebuild some of their "core technologies" in .NET so they could offer it as a service to their clients. The first "technology" they wanted to upgrade was something called the Storray Engine.


Why have a program when you can have a "technology"?

<%

Dim STORRAY_Products(487, 7)
...
STORRAY_Products(14,0) = "Black & Decker"
STORRAY_Products(14,1) = "Auto Tape Measure"
STORRAY_Products(14,2) = "ATM100"
STORRAY_Products(14,3) = "/products/images/bd_atm100.gif"
STORRAY_Products(14,4) = "Extend and retract with the push of a button Blade ... "
STORRAY_Products(14,5) = "21.99"
STORRAY_Products(14,6) = "2"
STORRAY_Products(14,7) = "True"

Everything being strings means no worries about different types (unless you want to do something with the data).

Sincerely,

Gene Wirchenko

Re: WTF is the WTF?

2006-01-23 18:12 • by Cowardly Anonymous
57529 in reply to 57525
Omnifarious:

I truly don't think this is so bad. But, the original programmer clearly needs to lose the fear of complex database tools that inspired him to write this in the first place.



In the first place, someone who can't be bothered to learn SQL should have never been allowed to code web applications. That's specially true for someone who apparently never heard words like "maintainability", "scalability" or "thread safety".

Re: The Storray Engine

2006-01-23 18:18 • by versatilia
57530 in reply to 57528
Gene Wirchenko:


Why have a program when you can have a "technology"?





Absolutely... any votes for the best misuse of this term folks?



I was thinking of patenting my new "boolTri" technology... it leverages
legacy ideal logic to interface tri-state values to 7GL languages, in a
nutshell, adds "fileNotFound" to boolean values...



Of course this opens the door for new "Capitalist" technologies such as paulaBean and IneedToKnowHowToUseUnderscores.

Re: The Storray Engine

2006-01-23 18:26 • by Starfish
57531 in reply to 57530
versatilia:
I was thinking of patenting my new "boolTri" technology... it leverages
legacy ideal logic to interface tri-state values to 7GL languages, in a
nutshell, adds "fileNotFound" to boolean values...

I would go for 'descriptiveCSS', the technology that tells you the style of a class in its own name! As well as making coding simple, it tells future maintainers what you intended the code to look like. The perfect way to make your legacy live on.

Re: The Storray Engine

2006-01-23 18:32 • by CornedBee
/Code/.../Data/

That's just something you don't really want to see in a directory structure.

Re: The Storray Engine

2006-01-23 18:36 • by Gene Wirchenko
57533 in reply to 57530
versatilia:
Gene Wirchenko:
Why have a program when you can have a "technology"?




Absolutely... any votes for the best misuse of this term folks?


Any industry rag's ads?

There are no bonus points for using the words "finally" or "solution" in your answer.

Sincerely,

Gene Wirchenko

Re: WTF is the WTF?

2006-01-23 18:40 • by phearlez
57534 in reply to 57526
ferrengi:


Yeah, there really are only a handful of WTFs that I've seen so far on
this site that I wouldn't want to touch no matter how much I got paid. There's the hotel reservation system, and there's one that is the
database full of databases and one more which was some kind of delphi
system. So, only about 4 or 5 real nightmares. The rest could be dealt with
effectively by an intelligent programmer who's willing to roll up
his/her sleeves and work it out.


I think you can easily make the case that there are some WTFs - including ones that are driven by 'requirements' or constraints as mentioned above - that can very clearly indicate to you the culture and caliber of the people you're dealing with. If you use a sufficiently generous definition of "no matter how much" then I agree, there's little here I wouldn't dive into for an insane amount of money. However my experience has been that the most esoteric and/or offensive WTFs always seem to come along with average to low compensation, not high. So long as I have a choice in what I do I'll be doing it where there's a minimum of idiots and jackasses.
« PrevPage 1 | Page 2 | Page 3 | Page 4Next »

Add Comment