Go Vote!

| | Comments (38)

If you live in the US and are of voting age, get out and vote! I did, and they gave me a sticker for it to boot. :-P

The other fun things in the life of Aaron are: nothing! That's right, not much. It's been a rather dull and unproductive day. I've been working on some StatusBar changes for the IDE lately, but they're proving to be a lot more difficult to do in REALbasic than they were to do in a plugin. But, using a plugin is still a royal PITA because then I'd have to make a Mac and Linux part just so that the plugin can be loaded from platforms other than Windows. Failing to do that would really complicate the build process, so I'm stuck trying to write it all in REALbasic. Usually that's not a problem, but I've been fighting with the view hierarchy for the better part of the day and am bitter.

After spending half a day working on an idea I had for a way to rewrite the EasyTCPSocket class, I've come to the conclusion that it's impossible to do without breaking old code. Makes me angry because it leaves me with two equally horrible choices -- no backwards compatibility (or put the back compat onus on the user), which is a nightmare, or no good new features which makes the class less-than-easy. Yuck, either way you look at it. And before you say "but there must be a way!" you should realize that I've been working on this problem for over a year now. It's looking rather bleak.

In happy news, I've come to the conclusion that I really don't care for Trigun. I watched a few episodes last night and ended up turning it off and sending the DVD back to NetFlix. It's just not my style of anime. At least Samurai Champloo hasn't been a let-down.

Oh, in happier news, PayPal still sucks wank.

And finally, in the happiest news of all -- this blog rambling is done. Voila!

38 Comments

Not only did I vote (@7:00am est) but I did an 8 hour shift working the polls.

Voter turnout is fantastic, which bodes well for the republicans. We had almost 90% turnout in our town, and for a midterm election, that is almost unthinkable.

We did our part.

What about creating a newEasyTCPSocket ?

or call it easierTCPSocket ?

Ahhh, I forgot my daily homage to PayPal's suckiness.

It not only sucks, but it blows, which would seem to go against several laws of physics, but PayPal succeeds in its sucky-blowiness.

I read about the bomb that was planted at PayPal headquarters, and my only reaction, as bad as it is, was twofold, that it was unsuccessful and that there were not more.

@Bill -- good job (for voting and for working the polls), and may the democrats win. :-) As for PayPal, I think you should give them another call. In fact, find some nice high school kid, pay them 10$/hr to call every 20 minutes or so. ;-)

@Trausti Thor -- that puts the back compat onus on the user since the new class wouldn't be able to talk to the old class. So what do you do when you've got 1000 deployed apps which use one version, and 1000 deployed apps which use the other version, but they need to be interconnectable? Messy.

For the whole StatusBar set of issues, you could always just throw in my StatusBar control and call it a day. ;)

@Anthony -- I would, but it's not a real OS control, so it doesn't meet my needs. What I've got is certainly functional, just annoying me at the moment. It also has the functionality I need. ;-)

However, I should note that I downloaded your demo off your site, and after a bit of tweaking, it does look nice. You seem to be missing some pictures in the demo, though (alert and alertmask). The UI looks nice and appropriate, but it is lacking in two fundamental areas which I require. However, if you're interested in a joint venture for a native OS control... ;-)

Sniff...Sniff...Do I smell a business opportunity?

Not if it involves PayPal. ;-)

Maybe for Anthony

It would seem an awful conflict of interest to have a REAL employee providing "enhanced" controls for RB that possibly should be part of the basic framework.

Reminds me of an old Dilbert where the [pointy haired boss announces that team members will be paid for finding and fixing bugs to which Wally cheers "I'm going to write me a minivan!"

I voted, too. I think it is about time to check the news and see if I won anything ;)

@Norman -- That must explain why everyone rails against the WFS or RBLibrary, right? ;-) As for it being part of the basic framework, that would mean no RS employee should ever work on extra-curricular functionality as any of it could potentially be part of the basic framework.

"Usually that’s not a problem, but I’ve been fighting with the view hierarchy for the better part of the day and am bitter."

Welcome to the club. Please fix it :-P

You're a funny one Mr Asher, but it's not broken, technically. It's behaving by design. Just so happens that the design and I don't always see eye to eye. ;-)

Aaron - If the status bar is a control that is part of RB's basic framework and you were to sell a better one I'd seriously ask why that's not part of the standard one. It is what you get paid to create.

WFS is not. It's NOT functionality that the basic frame work contains which is why you wrote most of it. You might even use it in RB itself (I have no idea)
Plus, you don't sell it. Folks might donate though.

RBLibrary is not part of what REAL is selling as part of any of it's package - Pro or Standard.

Would it be OK for SQLabs to vend a alternative version of REAL SQL Server based on SQLite ? I doubt it because there is undoubtedly some legal agreement preventing that.
Could Mars ship an alternative optimizing compiler for RB ?
Again I seriously doubt it.

This is no different.

First off, I never said I'd be selling a StatusBar control -- I asked about a joint venture. Also, the WFS could certainly contain things the framework contains -- there's a StatusBar class in there, I might add. And the only reason I don't sell the WFS is because I'm lazy (and hate PayPal :: grins ::). It's not a conflict of interest in any way -- if RS says "we want functionality X" then it gets implemented, regardless of whether I've already made something on the side or not. We've done it before (such as the Mutex functionality in the WFS which then appeared in the product), and we'd do it again. As for RBL, we do sell documentation and the two seem very similar (though certainly not the same) to me, and there's still no conflict of interest (I still submit plenty to our doc writer).

My selling functionality that is not currently in the product is hardly a conflict of interest, and I find it rather offensive that you'd think it was as it implies I'd somehow sabotage any internal implementations. The way I look at it is I'd be providing an implementation of something which is not currently in the product (nor is it scheduled, as far as I'm aware of, for a future version of the product), will never be in prior versions of the product (if/when it does become part of the framework; because we don't backport anything) and isn't simple for someone else to do on their own. I sure think it's acceptable to expect compensation for such a venture.

I think you're misunderstanding something fundamental Norman (which is probably my fault for not being clear). I'm not working on a framework feature for RB -- I'm fixing up some IDE functionality (which I wholesale yanked off my plugin that I wrote on my own time). If there was a StatusBar control being planned, then I'd certainly agree with you. But until there is such a feature, wouldn't it be nice (as an RB user) to have something available for you to use?

Isnt there already a plugin that REAL used to create the IDE ?
Ship that ?

Aside from the fact that it's Win32-only, and not a plugin, and not x-platform, it also only solves one problem: the IDEs. It's not a general purpose sort of thing. The plugin I wrote is a general purpose sort of thing, more meant for human consumption.

But, from our off-list discussion, I do see your point on the perception of being unethical, so this will probably stay in my repertoire of things to use for my own projects. It's unfortunate (in a philosophical sense) that trying to help can be viewed as unethical though...

There's lots of things that can be viewed in the wrong light far too easily

When I worked at the Police Dept we all knew the adage about the Justice System not necessarily having to be just, it has to be thought or seen to be just.
Anything else throws it into ruins.

RE: Voting. We are Doomed as a Nation.

A democracy cannot exist as a permanent form of government. It can only exist until the voters discover that they can vote themselves money from the public treasure. From that moment on the majority always votes for the candidates promising the most money from the public treasury, with the result that a democracy always collapses over loose fiscal policy followed by a dictatorship.

The average age of the world's great civilizations has been two hundred years. These nations have progressed through the following sequence: from bondage to spiritual faith, from spiritual faith to great courage, from courage to liberty, from liberty to abundance, from abundance to selfishness, from selfishness to complacency from complacency to apathy, from apathy to dependency, from dependency back to bondage.

Finally,

It'll be interesting to see what happens.

These are the same people who supplied crappy intel on Iraq, then blamed Bush.

These are the same people who voted for war in Iraq, then blamed Bush.

These are the same people who ignored Osama Bin Laden, then blamed Bush.

These are the same people who think the WTC was an inside job.

These are the same people who failed to prepare New Orleans for Katrina, then blamed Bush.

These are the same people who funded North Korea's nuclear program, then blamed Bush.

What is the inspiration/report ID for rewriting EasyTCPSocket?

@Bill -- quit your whining. Your "type" got to run the country into the ground for the last 8 years, it's our "type's" turn now. If you really don't like it, then become a democrat and claim you won anyhow.

@DeanG -- I don't think there's a report ID, but it stems from the fact that I'm unhappy with the protocol. It's very rigid, and doesn't allow for newer versions of the protocol in any way. So when I wanted to add some APIs to make the socket even easier to use (such as handling string encodings for you automatically, and allow you to send files), I wasn't able to add them because doing so would break backwards compatibility. So for the last year or so, I've been trying to come up with a way to not break the class but still be able to extend it. I've had some really clever designs, but have always been foiled by safety checks in the current code. Basically, if the current code gets *ANYTHING* it doesn't expect, it closes the connection. Not much room to maneuver, unfortunately.

Problem is, my type (libertarians) never get a chance to play with the nuclear weapons.

Now the foot stomping, breath holding infants have the nuclear keys, and will force withdrawl of our troops, and cause us to fight a much larger, much bloodier war.

At least if History is any guide.

Why couldn't they just pine for the days of bad music, smoking form their bong and driving VW mini buses, instead they long for the days when they could carp and complain about how awful their country is, and the power of causing that great country to be lessened.

A real shame, a ten year war (Yeah, I know, almost an infinite amount of time to the American populace), now turns into a 60 year war. Sad.

If you don't like the length of the war, then you only have yourself to blame seeing as how republicans were the ones who started it (democrats would have kept their noses out of it). ;-)

Ah, the joys of egging you on. :: grins :: you know you're still cool in my book Bill. :-)

I hate it when Mommy and Daddy fight. :-)

@Aaron
Ahh, sounds like you should've submitted a report. ;-)

Anyway...
It's a proprietary class, right? Not a standard. I say fix it, and take steps to easy the migration but don't refute progress because of back compat.

/Stuck with an RB bug myself due to a backward compatible issue affecting ??? users. I'd rather my bug be fixed and a flag added to opt for the different behavior. Maybe I shouldn't have used a 'gimme' feature and written it from scratch...glass ceilings suck.

@DeanG -- some back compat issues are more important than others though. For instance, when code breaks but you can make some changes and then things work again, it's not a big deal. For instance, one which just came up in r4 with the Serial control was that calling .Write when the control wasn't opened would cause the control to Open. When that bug was fixed, it broke people's code. But adding a call to Open yourself fixed it, and that was acceptable.

But with intercommunications, it's a much, much more problematic thing. Not every end-user upgrades, and so you'll have X people using an old control and Y people using a new control. So long as they can talk to one another, it's not a huge deal (just some functionality is missing for some people). But when X people cannot communicate with Y people, it becomes a big issue. That's not just a minor break that you can fix -- it's a major headache with no recourse but to try to get all X people to become Y people (which can cost you money).

There's really no way to ease the migration in this case, otherwise I'd have already taken it. The options are to break or not to break, and both suck. The closest thing to a reasonable option is to put the onus on the developer by making a separate class (or a flag on the existing class). But these are supposed to be "easy" classes, and this is a hard problem to push off onto people using easy classes.

@Aaron ... run the country into the ground for the last 8 years ?

I think a lot of people expected that after Y2K things would collapse and they sort of did
But it has recovered nicely in the last 2 - 3 years and the Dow has closed at record levels for the last while

What defines "run into the ground ?"

And, this is serious, what the the major differences between Republicans and Democrats ?
The biggst similarity I can see from way up here is they both point at the the others and shout "They're Bad !" with no real definition of the platforms they espouse that I can discern

"Run into the ground" is subjective. I just like to rib on Bill. ;-)

As for the main difference, republicans tend to be more about big business, corporations, tax cuts for the rich, religion, etc. Democrats tend to be more about farm labor (hence DFL -- democratic farm labor), the environment, science, etc. Granted, these are widely sweeping generalizations, and so they're not accurate. But they're a broad overview (and there are plenty of other differences).

[rib bill]Basically, republicans are money-grubbing, power-hungry sycophants, and democrats are peace-loving, for the people, saints and protectors. Republicans want to take over Canada, and democrats want to live in harmony.[/rib bill] ;-)

Bahh ... try it ... we kicked yer ass once we'll do it again. Maybe burn the Whitehouse down again :)

So I'm sort of a replublican / democrat hybrid I guess.

I'm all for making money, and being peaceful but being prepared to kick ass when required. For my liking Canada has let the military wither to the point it's hard for them to be effective even in times of domestic crisis (say like Katrina)

The US political landscape has always confused me because the two parties seem so diametrically opposed and there's no "other parties" that fit in the void between the two.

Here we have a dizzying array of choices that all seem to have some similarities and differences. I'm not sure I prefer that.

I'm a heavy user of EasyTCPSocket for commercial work, so I appreciate your not breaking compatibility.

@Charles -- so are we! It's used for the remote debugger stub as well.

Leave a comment

Disclaimer

I'm currently an employee of REAL Software. My blog is mine. The opinions represented in this blog are mine as well and may not represent my employer's opinions. All original material is copyrighted and property of the author.

REALbasic® is a registered trademark of REAL Software, Inc. REAL SQL Server™ and Lingua™ are pending trademarks of REAL Software, Inc. All rights reserved.