Forgot your password?
typodupeerror
Canada

Journal: My new career path. 24

Journal by tomhudson

More here.

As a bonus , I'll probably soon reveal the unbelievable story of how I acquired my legal knowledge - by doing something nobody else ever has, and which, until now, would be considered pretty much impossible.

I'd rather not, because there is some danger involved, but it's necessary to achieve my goals in an open and transperent fashion.

Advice and help sought and welcome.

Open Source

Journal: Yet another open source failure 14

Journal by tomhudson

Trying to print an envelope address in openoffice under linux? What a waste of time.

Do the people who code this sh*t actually ever use it? Or do they never use anything else, so they simply don't know that it's possible to do better?

Easy prediction - open source will never be competitive. When it's so bad that I'm tempted to throw a copy of XP (or even Wn95) on the box because linux on the desktop is still 2 decades behind the times anyway, there's a fundamental problem that obviously will never be fixed.

I really hate them, but my next computer is going to be a mac.

The Internet

Journal: Every browser is *still* broken. 17

Journal by tomhudson

After 15 years, we still don't have an un-b0rked browser. CSS 2.1 was done in 1997, and yet firefox, opera, chrome, arora - they all render differently for non-trivial layouts.

15 years, and they still can't get the basics right. It means that the problem is not the implementation, but the underlying concepts that are flawed in fundamental ways.

And there's no blaming Microsoft or Apple for this fiasco.

No, we did this to ourselves. We're all suckers. The people setting the standards did it wrong, and we didn't immediately stone them to death, salt their fields, enslave their families for the next 3 generations, and all that other "Carthage must die!" goodness.

So we have let ourselves become slaves to stupidity.

What a waste of time, energy, brain cells, and just general aggravation. Have fun with html5 + css3, folks - you'll never see it finished in your lifetime, not even if you live for another 100 years.

Apple has it right - apps, not a stupid one-size-fits-nada web browser. Just like they have it right about not releasing stuff until it's good and ready.

Stupid browsers. Stupid us.

Programming

Journal: NoSQL+ sprintf() == better. 7

Journal by tomhudson

Old technology doesn't die - it get re-implemented when newer ways get too bloated and turn everything it touches into Beavis and Butthead.

In the dying days of the last century (awk! - how time flies) I used to do web cgi using c, same as a lot of people. Used malloc and sprintfs() to insert variables into a "template" and then printf()s to output. It was easy to track memory allocation for such cases, so the whole "OMG you'll leak memory" issue was a non-starter.

And then along came the attack of the killer web scripting "pee" languages - php, perl, and to a lesser extent, python. The concept of a "templating language" evolved and eventually we ended up with "templating engines" - megabytes of code to make up for the shortfalls of the approach.

For example, output buffering. php includes stuff like ob_start() because even one stray newline emitted will prevent you from setting cookies on the client. c/c++ cgi programs didn't worry about a stray newline being output by an #include file because only printf() and putchar() would actually write stuff to stdout - so as long as you were just sprintf()ing to your format strings you were all good. In php, even one space before the opening tag or after the closing tag in index.php and you're hosed for sending cookies (which is why you should always omit the closing tag - the spec allows it).

Another advantage was that the ONLY character you needed to escape in any file you loaded as a template as a sprintf format string was the % symbol. No worrying about single or double quotes, angle brackets, or whatever.

For user input, the only sanitation needed was the left and right brackets (to prevent someone from entering raw html, such as script tags) and, again, the % symbol. No "escape_string", no "real_escape_string", no "really_really_escape_string", since the data was stored and read w/o needing sql.

In terms of performance and memory use, sprintf() easily beats regexes. You really can't help but notice the difference. And it sure beats the so-called "compiled templates" produced by templating engines like smarty.

Yet another advantage is portability - any language that supports sprintf() can be used w/o modifying your template files. This means that if you need the best possible performance on some really really HUGE files, you can always do it directly from a shell in c, or if you're so inclined, java.

So I decided to re-implement my old approach from scratch yesterday in a couple of hours in php. The entire code - including for variable range-checking, reading and writing data (strings and arrays), meta tag files, html, reading and parsing config files, getting and setting cookies, posts and gets along with verification and using sane defaults and coercing the values to those default types, loading templates, creating those little "go to page 1 2 3 4" clickies for larger web documents and everything else, is under 9k, including the site's index.php file.

THAT is a lot more maintainable than the 1.1 meg download for smarty templates (and smarty doesn't do the reading and type coercion from the client or the minmax range checking or some of the other stuff).

So, +130 files for smarty, or 2 for the old way (and one is index.php,so it really doesn't count ...)? Oh, and the template files look a LOT cleaner. For example, no embedded program logic like {include file='whatever'} in the templates, so stuff like

<input name="first_name" value=$smarty.get.first_name> // no default values!!!
<input name="last_name" value=$smarty.get.last_name> // no type coercion!!!
<input name="address" value=$smarty.get.address>
<input name="city" value=$smarty.get.city>
<input type="submit" value="Save">
<input type="reset">

becomes:

<input name="%s">, etc ...

... so your template looks like this instead:

<input name="first_name" value="%s">
<input name="last_name" value="%s">
<input name="address" value="%s">
<input name="city" value="%s">
<input name="age" value="%s">
<input type="submit" value="Save">
<input type="reset">

and your index.php file looks like

<?php
$BASE = '../'; all files live outside of public_html space
include "$BASE/php/libfoo.php";

$HTML = read_tpl("test_page"); // read_tpl automatically prepends "$BASE/tpl/", appends ".tpl" extension.

$css="my_skin_2";
$js = "new_js_lib";

$head = read_tpl("head");
$meta = read_meta("test_metadata");
$desc = $meta[0];
$keywords = $meta[1];

// want to test a new skin, new javascript libs
$HEAD = sprintf($head, $desc, $keywords, $css, $js);

$form = read_tpl("junk");
// get, post, cookie, gpc_pg, etc all sanitize the %, < and > symbols.
// also use an optional default value, and coerce any entered data to that type,
// so, if you ask for an integer and specify -42 as the default, anyone entering "FOO" returns -42
$first_name = get('first_name', 'Enter first name here');
$last_name = get('last_name', 'Enter first name here');
$address = get('city', 'Enter address here');
$city = get('address', 'Enter city here');
$age = get('age', -1);

// do any additional validation, data manipulation, etc.
// no need to do output buffering ... it's all in memory until you do the next line.
$FORM = sprintf($form, $first_name, $last_name, $address, $city, $age);

$footer = read_tpl("footer");
$FOOTER = sprintf($footer, "have a nice day!");

//okay, now write the whole thing
printf($HTML, $HEAD, $FORM, $FOOTER);

There is zero programming logic in the template itself - and that's the way it should be. Templates like smarty fail in the "presentation should be separate from code" department.

Plus, since most templates won't include variable names. they're pretty generic, again promoting template re-use. The footer, for example, could contain the output of several other templates instead of a simple message, and you'd never touch the main page template OR the footer template.

Operating Systems

Journal: Bad news for Windows and Linux 9

Journal by tomhudson

Remember how Apple captured a generation of users by concentrating on getting their computers into schools? You ain't seen nothin' yet.

One trend that I haven't heard a peep about is how mothers and grandmothers are using their iPhones and iPads to play with their kids. I'm not talking grade-school children, but babies under a year old. I have yet to see a parent do this (play with their baby) with a non-iOS device.

Cradle to grave, these kids are going to think a "computer" is something you buy from Apple, and anything else is a cheap knock-off (which is too true nowadays, btw).

Microsoft will still manage to hang on in the business world, but android? Not a very good future in either smartphones or tablets, unless you want to talk about the lower end. Androids' continued fragmentation problems mean Apple will continue to be the one to beat.

Android on TVs? Nobody wants a "socially networked TV". That's what they have their iPads and iPhones for. TV is for vegging out, for background noise when doing homework or housework, or for playing games. So even if/when android comes standard on most TVs, it's going to be like the clock on those obsolete VCRs - always blinking 12:00:00 because nobody bothers to configure it.

Medicine

Journal: Time to take on DrugCo (Merck) 4

Journal by tomhudson
Olmetec and Benicar (Olmesartan medoxomil)are a $2.5 billion a year industry. I was on Olmetec for 3 months, and let me tell you, the side efffects were nasty.

I stopped taking it a month ago, and am pretty much recovered from it, aside from still feeling like I want to take a nap once in a while, but at least the bone-crushing tired-all-the-time can't-stay-awake for more than 6 hours a day even after 6 cups of coffee feeling is gone, along with the other nasty side effects.

There are people who have reported similar reactions, but I suspect that shame keeps them from reporting the worst one - after a couple of months dealing with it, and the depression that it threw me into (another side effect that patients have reported that is not mentioned in the product monograph), I experienced the same suicidal ideation that a few others have reported. Now, considering that I've been through a lot worse and have never spent weeks in a deep dark funk thinking about offing myself, there's a problem with this drug - especially since when I stopped using it, those thoughts went away.

In my email to them, I asked what they proposed to do about this - and about the lack of warnings to either physicians or patients, esp. when there have been similar reports since at least 2009, along with reports of gradual short-term memory lost and other problems, and that two studies have shown that it also presents up to a 5-fold increase in sudden death from stroke in patients who are diabetic.

The argument from the FDA review of these deaths was that the benefits of reducing non-fatal strokes mostly outweighed the risks. That's like saying that you have a car with a steering wheel that will let you either walk away from an accident, but with a much higher risk that it will gut you instead, with no middle ground, and no, we won't tell you that it is much more likely to kill you. Or that for certain trips, maybe you should take a different vehicle. And that diabetic patients and their physicians should be looking at other options.

Their response was the usual corporate mumblings. Lots of words to avoid actually saying anything. I'll be posting it on the net sometime tonight or tomorrow, along with the ROADMAP and ORION studies, and the FDA response.

It's interesting that since the FDA review last year, some of those who said "overall, it's worth it" are now not so sure ...

And yes, I am certainly both upset and angry about this, now that I can see it for what it was.

User Journal

Journal: I guess I'm PMSing a bit ... 6

Journal by tomhudson

... or that I'm fed up that I went to check my email after spending most of the day away from the computer, and I get yet another SEO con artist from India sending more spam offering their crappy services - stuff anyone who can throw together a few meta tags and a sitemap.xml file can duplicate.

So corporatesales@web-seo-proposals.in got the following reply:

Hi:
Kindly go fuck yourself. Preferably with a dildo covered in barbed wire. Repeatedly.

It's rare that I swear, but I'll make an exception in their case. And cut-n-paste it into a few of the many others in the inbox.

They also operate under the name ethical-seo-comapany.com (no, the typo is not mine - they actually don't know how to spell company).

Just make sure you check the headers before doing anything similar to make sure the spammer isn't really someone pulling a joe job.

The rest of them got this enhanced versin:

Hi:

Kindly go fuck yourself. Preferably with an aids-infected dildo covered in barbed wire. Repeat until you remove yourself from the gene pool.

Medicine

Journal: Good news, bad news ... 7

Journal by tomhudson

The good news - doctors visit yesterday, and got the results from my latest labs. It turns out that going off that evil blood pressure medication was a smart move - my bp is lower now than when I was on it. He asked what I was doing, and I told him that every once in a while I would stop and remember to just "clear my head and RELAX!!! NOW!!!! DAMMI!!! :-)"

No need for meditation or anything like that - just thinking of something better for 30 seconds or so, to "break the cycle." It works.

I've never bothered worrying about cholesterol, but out of curiosity I asked, since it's a problem for other family members - turns out mine is just fine, as is my long-term blood glucose level.

Und now, ve haf zee bad newz! Stupid eye started bleeding again yesterday morning. It's still sore today, so I'm limiting myself to 15 minute intervals, with an hour breaks. Oh well, can't win them all.

Facebook

Journal: I keep hearing these social media claims, but no hard proof. 2

Journal by tomhudson

We've all encountered those "web designers" who claim that you need facebook, twitter, whatever "social media web integration". And yet, we all know that you can buy facebook fans for as low as 500 for a buck, that you can buy twitter followers, you can buy google+ friends, you can buy web traffic to give any site a temporary artificial boost and make it look like the social media gimmick is working its magic ...

But where are the hard statistics?

Where are the studies that show that spending $X on "social media" gives a ROI of $Y?

And is the ROI better than if you had just spent the same budget on beer for the office party and returned the empties for the refund? It seems to me that, rather than being a way to add value, it's just something that will turn into an unproductive time sink - just like social media in general. Coincidence? I think not.

Does anyone have hard figures - not anecdotal "evidence" - to the contrary?

It's funny.  Laugh.

Journal: [tt] Poll of the Day - Who do YOU trust more? A Bakers Dozen 13

Journal by tomhudson

Trust is a funny thing ... takes time to build up, and only a second to destroy. So, in each of these pairs, who do you trust more, and why? I know, some these are like that definition of conflicted feelings - watching your brand new car go over the cliff with your mother-in-law at the wheel ... others are a Hobson's Choice .... but saying "neither" doesn't count.

1. Paypal [we'll hold back whatever we want when we want] or your bank [thanks for the bail-out, suckers]?
2. Facebook [I sell your data and lock you in] or Microsoft [I want your money and lock you in]?
3. Google [I sell your eyeballs and own your data] or Apple [we'll tell you what you want]?
4. Apple or Microsoft?
5. Microsoft or Sony?
6. GM [thanks for the bail-out, suckers] or the governments that bailed them out [thanks for the campaign donations, suckers].
7. The ER doctor you've never met before, or the salesman referred to you by a close friend?
8. The cashier at the store [I just work here], or the owner of the same store [I own the place]?
9. Dog or cat?
10. Skunk or porcupine?
11. Politician or Biker Gang Member? (warning: this is a trick question)
12. The police and the courts or Biker Vigilante Justice? (see, I told you #11 is a trick question).
13. Someone who uses linux or someone who calls it GNU/Linux? (no, Virginia, they are not the same).

Java

Journal: unjava-2012-03-08 now available 2

Journal by tomhudson
For those who don't know java, but want to move away from being web monkeys, there's a new version of unjava. This release includes automatic jar generation as well as auto-creation of a non-static main class for your project, to reduce "non-static variable cannot be referenced from static context" errors.

System requirements are very modest - any *nix-ish system, gcc, a copy of the jdk, and a plain-text editor. unjava does not impose any licensing restrictions on programs you create. Examples have been updated.

User Journal

Journal: I was actually able to get back into coding tonight 15

Journal by tomhudson

... and I found out two things:

1. It's still a pain in the eyeballs, but it's now somewhat manageable

2. I have zero interest in wasting another minute of my life with crap languages in crap environments - in other words, no javascript, no php, no dom, no browser. I'd rather hand-code assembler than use a brain-dead language in a brain-dead environment. Heck, I'd even rather use java (though I obviously still prefer c/c++).

Seriously, I'd rather not ever write another line of code than waste my time on a programming "paradigm" that should have followed basic on the trash heap a decade ago.

Open Source

Journal: Taking a GPL project closed-source in 3 easy steps 8

Journal by tomhudson

The FSF is at it again - claiming that usage of the GPL is on the rise, when its' share of the market is declining, both in F/LOSS, and in the larger software ecosystem.

So, time to let everyone in on a little secret - any gpl'd project can be taken closed-source by anyone willing to go through the exercise.

Summary

Copyright law only protects a limited portion of all creative works. What I mean by this is that neither portions of copyrighted works that lack creativity, nor those parts that are "scenes a faire" ("there's only one way to do it") are protected. APIs, for example, are one such "scenes a faire".

Remember the "linux headers" FUD the FSF put out? Even Linus agreed that the headers, simple macro definitions, enums ... they simply are not protected. The same rules applied to Google using Apache Harmony - java class names and method signatures are not protected. They either lack the necessary creativity, or there is only "one way" to do it.

3 steps

1. replace all artwork, comments (comments are expressive, and as such, protected by copyright);
2. rewrite all function bodies that are not "scenes a faire"
3. PROFIT! (maybe).

You can release the result under any license you want - and you don't have to distribute your source. Better yet, you also maintain binary compatibility with the original.

Why?

Business A develops GPL software and sells support. Business B doesn't have the overhead of developing that software, so they spend the money and resources saved on things like marketing the crap out of how they are better at it, and developing a few plugins that require server-side services that only they provide.

So Business A says "the heck with this", does what I propose, forks their own software, and releases a new closed-source version that breaks only Business B's code.

Why wouldn't they?

More importantly, why wouldn't B do this first, as a preemptive strike? Once you have a "good-enough" code base, you don't really need community support for further development. In fact, releasing code "to the community" is now where software goes to die. It's the digital "elephants' graveyard."

There's really nothing legally preventing anyone from doing this and being able to sell the resulting code over and over again. Both businesses and consumers are used to that sort of arrangement.

So, can we expect to see a linux "clone" by the end of the decade? I doubt it - there's no need. BSD already runs linux programs. But I do expect to see closed versions of many open-source programs pop up once a few test cases make the rounds.

It's already being done

Sony is making a busybox clone, and there's nothing that can be done about it. So, people have a choice - do it themselves before companies like Sony do it and reap all the profits or stick their heads in the sand. In the age of "good enough computing", if it's "good enough" to clone, it's "good enough" to take private.

User Journal

Journal: Dirty rotten b**tards! 3

Journal by tomhudson

I'm wondering if some of the problems I've been experiencing with my vision - or rather, inability to compensate for it any more - are related to the blood pressure medication I was taking. It certainly negatively impacted me in many other ways, and there are still, a few weeks later, some lingering side effects (still overly-tired, for example) ... but... yesterday, the morning started out with pain after 10 minutes, but later in the day when I came back, it wasn't nearly as bad using the computer (after the first half-hour to adjust) as it's been in quite a while.

Today, well, let me sum it up quickly: "I've got the itch to code."

If that's the case, I'll really, really be more than a little p***ed off at the manufacturer - they failed to list the worst (and known - I'm not the only one who's had serious problems with this crap) side effects, or say "stop taking this sh*t immediately if you notice any of these side effects."

I am not amused! If this is the case, there are going to be some serious negotiations going on in the future.

I am a computer. I am dumber than any human and smarter than any administrator.

Working...