Silverlight – YOUR WORLD IS OVER
So, Sliveright THREE is in beta now, and it’s set to take over the entire web! If your site isn’t made in Silverlight, guess what? IT SUCKS. IT COMPLETLEY FAILS AS A WEBSITE. PERIOD.
This site? SUCKS.
Amazon.com? SUCKS.
eBay? SUCKS.
Google? SUCKS
“You’re obviously right, Rob. But I can’t put my finger on why you’re so right! Please tell me!”
Okay, I’ll tell you. But you keep your filthy fingers away from me. You sound poor, and I don’t like it when poor people touch me.
Gradients
You can make gradients with it. HOT. SHIT. You might have THOUGHT you could make gradients before, but guess what? YOU DIDN’T. NOW you can finally make them.
I know, you really did think you were making gradients with Photoshop or Paint.NET or something, and using them on your site, but you didn’t. You just made colors. They were garish and horrible.
And you certainly didn’t make a single grayscale transparent gradient, then use CSS to set that as the background image with a background color so you could have multiple gradients from image. Nope, you’ve never done that.
See, all those would be way too much work and time investment. Why open up image software, and make a gradient in 3 or 4 clicks? Now you can open up Blend, and make a REAL GRADIENT WITH XAML in 3 or 4 clicks!
So, now you can finally create gradients. You’re on your way to being a real developer. Right now there is only one real developer in the world, me, because I’m the only one who’s used gradients in Silverlight.
But why are they good? Because the world is nothing but ONE BIG GRADIENT. Next time you’re in the bathroom, and you feel your insides explode and issue forth an eruption of epic proportions, take a look at what you see – it’s JUST like a gradient. It’s not one solid color. It’s a rainbow, softly blending from one color to the next. Just like Silverlight!
Animations
You can FINALLY animate stuff! I know, once again, you THOUGHT you animated stuff before.
BUT.
YOU.
DIDN’T.
“Pretty sure I use jQuery to easily animate some stuff.”
Listen, I don’t know what jQuery is, so it doesn’t exist. Got it? It was never possible to animate UI before.
“Well, pretty sure I used Flash to animate a site like a decade ago.”
Will you quit making shit up? I’ve never used Flash either, so I’m pretty sure it doesn’t exist either.
Finally, with Silverlight, using Blend, you can make animations! It uses this great thing that the Silverlight team invented, called a storyboard, which consists of timelines, that have keyframes! It’s pretty simple!
Hover effects
This is a bit of a combination of Gradients and Animations (capitalized because they’re so important)! Now, when a user hovers over important things, like menu items, you can give a subtle gradient to pop into place to let the user know they’re over something sensitive!
“That’s been possible with CSS for yea—“
SHUT UP!
“I could do it with javascript even longer than t—“
WHAT PART OF SHUT UP ARE YOU MISSING?! YOU COULD NEVER HAVE A HOVER EFFECT FOR A WEBSITE BEFORE SILVERLIGHT!!!! SHUT THE HELL UP!!!!!
It’s one huge ass object
Well, I know FOR A FACT this one is new! Silverlight is now one single element on the page! This is super great, and really where Silverlight shines.
This really makes it, finally, the perfect solution for public sites. I mean, who needs that “web” crap. Now, it’s one solid object. You no longer have to worry about your public site being pilfered by nasty search spiders. I don’t even know what those are, but they’re called spiders, so I assume they have eight legs and crawl all over you. I have enough night terrors about them as it is.
Plus, people now can’t link to somewhere deep in your site. I hate it when people link to direct portions of my site, and skip all my advertisements or cool pictures of myself or something. Now, they have to see all that EVERY TIME. Hell yes.
Also, you can’t copy & paste my text now, jerks! You’re just going to have to paraphrase it. I’ll get you started:
“Then Rob was awesome”.
Done.
“Uh, I made sites entirely in Flash a decade ago, and it was a horrible idea, and that’s why only marketing sites do it now, You see—“
I’M GOING TO SHOTGUN YOU IN THE FACE. I’M BUSY TALKING ABOUT HOW BRILLANT SILVERLIGHT IS, AND HOW EVERYTHING IT DOES IS COMPLETLEY NEW AND BETTER THAN ANYTHING THAT EXISTED FOR THE WEB BEFORE, EVEN THOUGH I’M PURPOSEFULLY IGNORANT OF ANY AND ALL WEB TECHNOLOGY!!!
The Bad Stuff
Well, the main bad stuff is that all these non-Silverlight websites haven’t been converted yet. Hopefully soon browsers will support xaml natively. At least the One True Browser should do it soon.
But there’s really one thing wrong with it:
Case Sensitivity. Seriously. WTF. How freaking retarded is that. I mean, in this day and Age, why is ANYThinG case Sensitive? i can’T think WHY it would Matter at alL. AnD whiLE I’M on tHiS subJecT, I shOUlnD’t hAve to spEll thINGs correCTly eiTheR. it shouLd havE a DictIOnaRy of poSSiBle ValUEs, aND pIck teH nErEst wRd B-Cuz e dUn hAf tIm oR sKil 2 lErn al tHeeS wurDz i meN u nO hw eT s wHN u gTz so Mny wRd tt its impsB fr tO sTp fern rEd F dgeR DqoeR gler!!!!!
11:05 AM | Labels: Evil Rob | 3 Comments
A better way to organize your CSS/HTML
It’s tough being a genius. It really is. Here’s my new guidelines for CSS/HTML:
- All tags are divs
- Use standard html tags as class/id names whenever possible
So, with our new awesomeness, we might get something like this:
1: <div class="body">
2:
3: <div class="h1">My Title</div>
4: <div id="p">This is my awesome <div id="span">stuff</div></div>
5:
6: </div>
Pretty freaking slick, eh? I’m hoping it can be integrated into Kobe soon!
3:32 PM | Labels: Evil Rob | 5 Comments
Testing: A waste of time, or a HUGE waste of time?
I'm about sick of all this "wah wah wah, you should test your code" bullshit. Really. I mean, testing code should only be considered if any of the following apply:
1. You're a retard
That's the only condition. If you're a developer worth a crap, you know how to write code. Real developers write correct code the first time. It's that simple. If you can't write code that doesn't break ever, you shouldn't be writing code.
What's worse than bothering to test your code? Writing actual TEST PROJECTS. FLAMING NERD FACES, what the hell are you people thinking? Then, you get bugs IN your test projects. So then you have to write test projects for your test projects. I once saw a development shop that had five layers of testing projects. For reals.
The simple point is, a software developer is measured on output alone. If you're too busy "testing" your "code", you aren't producing. And you have to produce. I mean, you wouldn't pay your grocery clerk to test your apples before you bought it, would you? Hell no! That's your apple, dammit! You're wasting people's money when you bother to test code. If any idiot users think they found a bug, that's what they get for being idiots and not knowing how to use software. I mean, software can't be made to handle every possible case anyways. Everyone knows it, that's why there's nothing out there done to try counter it. So, if you concentrate on making your software work really well for one case, then you're set. They do it that way, and every time, it'll work awesome.
"So, what do I do about all my broken software I've done so far? I've wasted tons and tons on testing, that never got anywhere, because all it did was find bugs! I wish I'd never have tested anything, then we wouldn't have those bugs!" First off, I didn't ask for your stupid questions. Second, shut up. I'm about to give you the step-by-step process to fixing your project.
Step 1: Well, the first step in recovery of your failing test-ridden project, is deleting all those unit tests. Doesn't that feel good? It's like picking off scabs. Very cathartic. Next - start writing new, awesome, perfect code. It's simple. And as soon as you finish each module, immediately push it to production. Soon, your users and managers and all those other jerks we have to live with but don't actually provide any value at all will be so enthralled with your new code, that they won't even have time to remember your old crap. And if they think they find bugs in the new code? They're wrong. Plain and simple. But if they just won't shut up about it - go back to the beginning of Step 1, and repeat.
That's right. My step-by-step process only needs 1 step. That sure as hell is alot easier than all those steps to test things. And easier is better - Steve Jobs has shown us that (too bad MS is full of idiots and won't let .NET code run on Macs - really pisses me off they block off mac users specifically. You know all they have to do is flip a "run on non-windows" switch, and it'd work. Buncha jerks.)
"Wow Rob, thanks alot. You've really opened my eyes." I prefer praise to be made monetarily, but I'll let it slide this time. Remember, code fast, code hard, code voluminous. Everything else becomes a blur when you're raking in the cash, are being awesome, and being adored by the rest of company for shipping so much product.
YOU'RE WELCOME.
2:45 PM | Labels: Coding, Evil Rob | 0 Comments
NULLS are your best friend!
Apparently there's a hate-monger spreading fear about the use of nulls. I'm here to tell you it's a bunch of bologna. And bologna is nasty enough as it is - this is old bologna you find behind the fridge that's been sitting right there on the radiator for 8 months.
Nulls are the best thing since sliced bread. The more we use them, the better everything gets - automatically. It's basically a "win now" button. "But Rob - don't nulls make bad things happen?" Hell no, idiot. Let a real developer speak for a minute.
There are so many super-awesome-beneficial things to nulls, that's it difficult to arrange them in order for presentation. So, I'm just going to have grab a few at random, and go from there.
1. Null is a short word.
This is super awesome. You know how much time is saved there? Tons. Let's compare:
if(something == null)
versus
if(something.trim().length == 0)
WOAH HOLY CRAP. I don't know about you guys, but my eyes got tired half way through that monstrosity. Saved time + saved brain power = saved $$$. Lots of it. Like, hundreds a day probably. Don't even get me started on keystrokes saved. I tried to count the amount of characters in the non-null example, but windows calculator had a buffer overflow and crashed. That's a lot of characters, I tell you. The first example has like, 7 or something. It'd be even worse if it was in VB, what with 500 combinations of AndAlso IsOr Maybe KindaSorta ButNotReally.
2. Null can mean ANYTHING!
This is super awesome too. If a database field is nullable, that means the value could possibly be null. Hell yes, sign me up! This is great for a lot of reasons. Let's think - what could a null value mean?
- The data wasn't set by the user yet
- There's no corresponding possible value that met what the user really wanted to enter, so they left it blank
- For datetimes, it could be the timestamp for an event that hasn't happened yet
- Maybe an application error happened and those values got lost
- Someone let their kids play in the server room, and they damaged portions of the harddrive containing those fields
And this is just off the top of my head, people. That's a lot of kick-ass reasons. See, having this 1 option, "nullable", turned on for a column in a database, adds ten metric tons of usefulness to that field. With so many possible values, that column now goes from being boring old "Durrr I store 1 value" to "I contain a wealth of data AND metadata! Love me!"
3. C# has a null coalescing operator
Now, why would the geniuses at Microsoft put in an operator if it wasn't intended to be used? They deprecate bad things to help think for us. They are to software developers as Oprah is to housewives. Microsoft gave ADDED functionality just to make using nulls even easier! I'm not going to spit in their face by abandoning the use of nulls. Thank you, Microsoft Coder Guy. I will use ?? whenever possible.
Well, that's just 3 quick examples, and I'm sure other people have many more. I'd write more, but I'm working on a dynamic reporting system. Thanks to nulls though, my job should be half as difficult easy!
1:36 PM | Labels: Evil Rob | 0 Comments