Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Teaching and money

I have been teach­ing for al­most my whole adult life.

My first re­al job was teach­ing as­sis­tan­t. I worked in a uni­ver­si­ty for 10 years.

Then I start­ed teach­ing Lin­ux train­ning cour­ses for di­verse com­pa­nies (think LPI kin­da stuff).

Then I stopped. Why? Be­cause it makes no sense eco­nom­i­cal­ly to teach in most cas­es.

The fol­low­ing is writ­ten in pe­sos, but the idea is prob­a­bly about the same for oth­er coun­tries.

There are no mon­ey signs beause chee­tah tem­plates hate them ;-)

A train­er is paid about 35 per hour. If he's pret­ty good, he gets 50.

A course is about 24 hours, so he gets about 1200 (I am go­ing for the best case sce­nario here).

Usu­al­ly he has be­tween 6 and 12 stu­dents, which are charged about 900 + tax­es, so the gross is av­er­age 5500.

Of that, half (or a lit­tle less) goes to the class­room ren­t, leav­ing about 3000 for the train­ing com­pa­ny.

Pay the teacher, and you have a rather pa­thet­ic amount for the train­ing com­pa­ny that pays over­head, sales­peo­ple, tax­es and what­ev­er.

So, who makes any mon­ey out of this? The class­room renters :-P

So, if youa re go­ing to work on train­ing, please don't rent class­room­s, it makes no sense.

Now sup­pose you have a con­sult­ing firm and you can do on­site train­ing (at your clients), and just pock­et the mon­ey.

If you have just three stu­dents, you need no fa­cil­i­ties, you can charge slight­ly high­er, be­cause its on­site.

It's the same ef­fort for the train­er, be­cause you just change where you com­mute to (train­ing cen­ter vs clien­t).

Since you can make more mon­ey with small­er class­es, you can still charge a lit­tle high­er (more per­son­al­ized at­ten­tion).

Since the stu­dents are all from one com­pa­ny they have more in com­mon and you can struc­ture the teach­ing bet­ter, which makes it way less bor­ing.

So, if you want to make a liv­ing teach­ing, here's how.

  • Mar­ket di­rec­t­­ly to com­­pa­nies, for on­site train­ing.

  • Have your own ma­te­ri­al­s.

  • Be flex­i­ble.

  • Buy your own class­­room if you have to.

And most of al­l, don't wor­ry. It's pret­ty much im­pos­si­ble to lose mon­ey train­ing, un­less you open a ex­clu­sive­ly train­ing com­pa­ny.

Kong at dawn

Last sat­ur­day I went to see King Kong with Rosar­i­o, and some­thing hap­pened I nev­er saw be­fore.

For what­ev­er rea­son, we went at the 1:25AM ses­sion. I don't think I had ev­er been to one so late.

And then it last­ed 3 hours. And it was al­most the long­est day of the year.

So when we left, at 4:30 AM, walk­ing through a ghost­ly mal­l, it was dawn.

It's a small thing, but it was quite shock­ing :-)

The movie... she did­n't like it and in­sists Nao­mi Watts is wear­ing, in one of the sce­nes, a Lurex dress, which could­n't pos­si­bly be the case in the 30s.

Me, I liked it quite a bit, per­haps my sus­pen­sion of dis­be­lief is not so eas­i­ly taxed by tex­tile is­sues, ex­cept for some se­ri­ous moral trou­ble I got a day or so lat­er.

You see, killing Kong on the Em­pire State build­ing was right.

That damn beast had just stomped, thrown, smashed, chewn and swat­ted about 2500 peo­ple.

He was go­ing all 9/11 on Man­hat­tan, and just be­cause he did­n't feel like crush­ing one spe­cif­ic blonde (although he sure killed all her pre­de­ces­sors on the sac­ri­fi­cial girl job), we are sup­posed to feel sor­ry for him?

Cry me a riv­er of gi­ant al­li­ga­tor tears, I am not. I say we should bazooka the evil man-eat­ing mon­key, and put Den­ham in jail for reck­less en­dan­ger­men­t, along with all his ac­com­plices.

AND he should lose his shirt (a­long with his the­ater bankroller­s) in a civ­il suit to the fam­i­ly of the maori guy whose head got chewed by Kong, or Lumpy, the cook eat­en by gi­gan­tic man-eat­ing mag­got­s.

At least in the orig­i­nal movie, the girl has the good sense to be scared sense­less by the sight of a gi­ant go­ril­la with ro­man­tic lean­ings.

Here? She laughs while they ice skate, I as­sume ig­nor­ing the blood stains all over the mon­key's fur.

Forgotten Language: Jorf could have been Python (or Ruby)

A long time ago, there was no In­ter­net.

Ok, there was an in­ter­net, but I lived out­side of it. It was 1992 or 1993, and I on­ly saw my first web­page and send my first email in 1995. And I was per­haps the third per­son to have an ac­count on a per­ma­nent­ly in­ter­net-­con­nect­ed box in a 150 km ra­dius.

But that did­n't mean I had no ac­cess to in­ter­net stuff! What I did was buy CDs con­tain­ing mir­rors of repos­i­to­ries like Sim­tel.net (it was a sin­gle CD, too!) and in there you could find hun­dreds of pro­gram­s.

Most of them share­ware, most of them crap, but ev­ery once in a while, there was some­thing cool, like DJGPP (a whole gcc suite for DOS! A re­al C com­pil­er! For Free!)

At the time, I had a side job writ­ing da­ta en­try soft­ware for sta­tis­tics stu­dents. They were sim­ple pro­grams that showed a for­m, where da­ta was load­ed, then it did some sim­ple ma­nip­u­la­tions of the da­ta.

The nat­u­ral lan­guage for that was some­thing like Clip­per or DBase, but I did­n't have ac­cess to them (or a way to learn it. Re­mem­ber, no In­ter­net).

On one of those Sim­tel CDs I found Jor­f. (Josephine's Recipe Fil­er). It was a OO lan­guage, with an in­ter­preter for DOS or Win­dows, and it sup­port­ed stuff that was re­al­ly ad­vanced for the time, and it made my cod­ing a lot sim­pler.

Out of nos­tal­gy, I down­load­ed a copy (yes, it is still there), and ran it in Dos­BOX (yes, it still work­s), to check if it was as good as I re­mem­bered.

You know what? It is.

In fac­t, if it had come out 2 or three years lat­er, and as free soft­ware in­stead of share­ware... I think it would have been big.

Here are some high­lights og the lan­guage:

  • OOP

  • Has in­­te­­grat­ed win­­dow­ing tool­k­it (for DOS and Win­­dows)

  • It had an in­­ter­ac­­tive hy­per­­tex­t/win­­dow­ing tu­­to­ri­al writ­ten in it­­self. In 1993.

  • It looks like a cousin of Python. A freaky cous­ing, though.

    1. Com­­­ments start with |

    2. Strings lim­it­ed with sin­­­gle or dou­ble quotes

    3. Au­­­to­­­mat­ic type con­ver­­­sions

    4. In­­­ten­­­ta­­­tion con­trols flow :-)

    5. No de­­­clared da­­­ta types

    6. In­­­te­­­grat­ed ed­i­­­tor and de­bug­ger

Sam­ple Hel­lo World:

Demo:Start
  Msg:Add ("Quick Demonstration","Ok")
    Sure you can say "Hello World" in one line of
    C code. But how many punctuation characters
    are required to display a dialog box like this?
  Return (Ok)

That piece of code showed a win­dow with the mes­sage in it, and a Ok but­ton.

The funky thing is: in the tu­to­ri­al, you saw the in­te­grat­ed ed­i­tor open, and the text of the ex­am­ple start to ap­pear, and then it ran.

That looked like mag­ic at the time :-)

The tool­kit sup­port­ed ra­dio but­ton­s, check­box­es, text en­tries, all the ba­sic­s, and it was a thou­sand times eas­i­er than what Tur­bo Pas­cal or Tur­bo C guys bat­tled with at the time.

The au­thor was Way­land Brun­s. He lived, in 1993, in Colton, Ore­gon.

He lat­er seems to have be­come CTO of a com­pa­ny that de­signs sync soft­ware for Gold­mine, Lo­tus and oth­er such things.

So, he be­came a suit ;-). How­ev­er, he was once a guy that wrote, in his soft­ware's man­u­al, things like:

JORF Com­pa­ny is just me, Way­land Brun­s. I have been work­ing on JORF for six years, and ran out of mon­ey three years ago.

Or:

JOR­F(R) is a new com­put­er lan­guage. JORF was cre­at­ed by a Grun­t-pro­gram­mer frus­trat­ed by low lev­el math based com­put­er lan­guages that are in­ap­propi­ate for busi­ness da­ta pro­cess­ing.

And you know what? It was the right idea. If he start­ed Jorf in 1987, that means he start­ed it around the same time Perl 1.0, (and the syn­tax is much nicer ;-). He start­ed it around the same time Gui­do start­ed Python.

Here's a toast to JOR­F, which could have been Per­l, or Python, or Ru­by. But was not.

Rant: The problem with expensive linux

I al­ways liked SuSE's Lin­ux dis­tros. They even used to mail me a box ev­ery now and then when there was code of mine in it. It al­ways seemed nice­ly done, and well in­te­grat­ed. Of course I on­ly used it as a work­sta­tion.

Re­cent­ly, I had the dis­plea­sure of in­stalling a SLES9-based serv­er for a clien­t.

I say dis­plea­sure, be­cause it was by far the worse ex­pe­ri­ence I had with any Lin­ux dis­tri­bu­tion ev­er. It was worse than the time I had to in­stall openl­dap on a P2 with gen­too that was con­nect­ed to the in­ter­net over a 56k di­alup and had on­ly 100MB of free disk space.

And that one was a scream­er!

What were the prob­lem­s?

Well, for starter­s, it was a pun­ish­ing throw­back to the times of pro­pri­etary soft­ware in­stal­la­tion.

I in­stall it. Ok.

I try to up­date it. Not Ok.

The prob­lem? You need to au­then­ti­cate to the servers in or­der to get the up­dates. And there is no user/­pass­word any­where in the box. You have a se­ri­al num­ber (in a word file in­side a CD, not on a stick­er), and no ex­pla­na­tion on how to go from one to the oth­er.

It turns out you have to call Sup­port to get the auth data, and that de­pend­ing on how you do it you get da­ta that lets you ac­cess to the nov­ell servers or the suse servers (and not the oth­er).

Then, af­ter we got that (48 hours on tech sup­port­), I start in­stalling the soft­ware I need.

The mis­sion of this serv­er is sim­ple. It's a mail for­ward­ing serv­er. It han­dles out­go­ing mail, and it stores in­com­ing mail for a few min­utes un­til a CRM soft­ware (in win­dows) grabs it via POP3.

I can do such a serv­er on Cen­tOS, De­bian, (hel­l, yes, even gen­too) in about 2 hours with­out count­ing in­stal­l+up­dates, in­clud­ing mi­gra­tion of old da­ta.

I in­stall post­fix and imapd (I think it's wu-imapd, which suck­s, BTW, but the al­ter­na­tive was cyrus, which was gross overkil­l).

It seems to work. But the CRM can't fetch the mail. Out­look can, though. What the hel­l?

Well, SuSE de­cid­ed to dis­able plain lo­gins for POP and IMAP over non-SSL con­nec­tion­s. And there is no way to en­able it.

Since that's the on­ly kind of con­nec­tion the CRM will do, it will not work.

Mind you, in this case, it is ab­so­lute­ly no se­cu­ri­ty risk what­sow­ev­er, since the mail serv­er and the CRM are seg­re­gat­ed from the user's net­work...

Ok, I will in­stall couri­er-imap, which is bet­ter any­way. But it's not on SLES9 CD­s, and the RPMs on the web are for ev­ery oth­er SuSE and not SLES9. So I had to build it my­self.

That is, of course, be­cause there is no free repos­i­to­ries for SLES9. You have what comes with it, or what you can build your­self. Any­thing else, you are SOL.

The same thing hap­pened for al­most ev­ery­thing I want­ed to in­stal­l. Ei­ther it was not there, or it was for some oth­er SuSE, so it was time to com­pile a RPM again.

It was like Gen­too, on­ly with­out the au­to­mat­i­cal de­pen­den­cies, and with no hope for fu­ture se­cu­ri­ty up­dates un­less I build them my­self.

At that point I was al­ready telling the cus­tomer that maybe I could just in­stall Open­SUSE, which was free and would not have these prob­lems (hel­l, I would even get ap­t4­suse and avoid the damn nov­ell server­s).

Of course that means they would be a few hun­dred dol­lars poor­er for no good rea­son.

But any­way, it took me rough­ly 3 ex­tra days to set this up, which made me ac­tu­al­ly lose mon­ey on the gig. ANd I lost the time in the most pa­thet­ic way, sit­ting in a cus­tomer's of­fice wait­ing for tech sup­port, watch­ing my mon­ey go away.

That had nev­er hap­pened to me be­fore. I must say I am pret­ty dis­ap­point­ed.

But what was the root of the prob­lems here?

  • There is no free SLES clone like Cen­­tOS

If there were, then there would be 3rd par­ty re­pos. The cus­tomer would still have bought SLES9 be­cause they are sup­port groupies, but my life would have been eas­i­er.

Of course, it would prob­a­bly cut in­to SLES sales, but hey, that is not my prob­lem, is it?

  • Nov­ell Ar­­gen­ti­­na tech sup­­port sucks for Lin­ux.

The guy on the phone lit­er­al­ly had no idea what I talked about when I asked about how to get in­to YOU to up­date the box.

But don't wor­ry Nov­el­l, I heard Red Hat Ar­genti­na's is quite bad too.

If you re­al­ly want SuSE, buy a reg­u­lar one, the ones with pub­lic FTP repos­i­to­ries, and avoid trou­ble. Or get Open­SUSE.

Me, I'm pret­ty bummed :-(

Unknown jewels of Unix: NoSQL

I have known about Car­lo Strozzi's NoSQL for about 6 years. I don't think many oth­ers do (it's google score is 39500, com­pared with 81200000 for MySQL) , and I think it's a shame, be­cause it's a much more in­ter­est­ing idea.

What is it? It's a re­la­tion­al data­base.

Sure, I can al­most hear you think [1] , "like Mysql!" or "like Post­gres!" and you are wrong be­cause it's very dif­fer­en­t.

NoSQL is a re­la­tion­al data­base im­ple­ment­ed in AWK and op­er­at­ed via the unix shel­l. Yes, NoSQL is the most unixy RDBMS in the world. So all of you so-­called unix lover­s, shell freak­s, you are gonna love this.

In­stalling it is per­haps a bit hard­er than it should (who knew there are no MAWK RPMs any­more!), but it seems to be packed for De­bian at least ;-)

You can learn to use NoSQL with a nice [2] tu­to­ri­al that was pub­lished on Lin­ux Jour­nal.

The ta­bles are plain text files, and lat­er you can do things like this (from the doc­s):

% column Item Cost Value < inventory |
row 'Cost > 50' | mean -l Value
Item   Cost  Value
----   ----  -----
3      80    400
6      147   13083
7      175   875
----   ----  -----
              4786

Is­n't that cool? What it does is take the in­ven­to­ry table, se­lect over col­umns Item, Cost, Val­ue the rows with Cost > 50, then cal­cu­late the mean of the Val­ue col­umn :-)

It even sup­ports re­port­s, join­s, a bazil­lion things.

Hon­est­ly, I am not sure I can find a prac­ti­cal use for it [3], but it is a great piece of soft­ware, writ­ten by a ded­i­cat­ed guy, it is ex­treme­ly orig­i­nal, and it does work. I'd even say it's pret­ty pow­er­ful, and you must ac­cep­t, it's unixy as all hel­l.

So, Car­lo Strozzi, here's a toast for you and NoSQL. You are cool.


[1] So good is my hear­ing

[2] Sad­ly it's quite old

[3] I did on­ce, but that was when I was a re­al pro­gram­mer ;-)


Contents © 2000-2020 Roberto Alsina