Tinkering with CSS

Cascading style sheets are great, but these are also a royal pain to deal with. Especially when the learning curve is steep. Fortunately, there are folks who are well-versed in CSS who write articles for us neophytes. One good resource is A List Apart.

Currently I'm working on a set of dye calculators for those of us who like to dye yarn, but don't like to deal with math that it requires to determine the amounts needed. I'll also be putting up some Google Adsense on this page, to generate a bit of revenue for myself. (Why do this? -Ed. Hey . . . why not? Everybody's doing it, so might as well see if it works here.)

There's going to be two columns, the Dye Calculator in the first column and the hopeully non-intrusive Google Adsense in the second column. This article, ""Multi-Column Layouts Climb Out of the Box"" gives me just what I needed to get the layout started.

The CF Talent Is Out There - If You Take a Chance

TomdeMan, I empathize with you about finding qualified employees. It's a really tough job, especially where your business' bottom line is at stake.

I am coming at this from the potential employee's perspective. Not all of us are fortunate enough to have employers who care enough to invest in continuing development. Yes, it may be on paper, but sometimes it's quite a struggle to get them to pay for needed training and not worth going through the hassle if there's no results. One may have to spend their own money getting needed education to remedy gaps in their knowledge - that's what I should have done, looking back. (Those of you starting out, don't rely entirely on the company to pay for tuition and training, but try to set aside a little money for that on your own.) I plan to remedy that once I get a job.

Also, some of us have a life outside work - we may be married with family, or single and trying to take care of our children. Compromises have to be made on a daily basis whether to go to the user group meeting or to go to that award ceremony at the grade school, or to spend time with one's spouse or significant other. Thank goodness for Connect presentations that are available on a 24/7 basis. Ironically, for me at least, this presents an additional barrier, since I'm deaf and the audio part is almost not accessible for me. It's very expensive to close-caption Connect presentations (quoted price is in the $300/hour range) and to date I haven't seen any CF-related presentations that are CC'ed.

As for certification, well, for some people it may be needed. Especially here in the DC Metro area where there seem to be quite a few contracting positions. Do I have it? No. Will I get it? Yes. But it may be a while, especially in light of recent conversation about the certification process for ColdFusion 8. It may be useless in that anyone can memorize the material and not apply in the real world where there are 10 different ways to slice out AJAX solutions. But it's certainly not useless to Human Resources folk who put out the job ads and sign off on the new employee hire for a government contract that requires certified developers.

I guess what I'm trying to say is, sometimes one just has to take a chance, take a deep breath and hire that candidate who has, at best, 50% of what you need. That person may turn out to be the best employee you've ever had in the long run.

Obscure, Dead Languages

A long, long time ago, fresh from churning out static pages using the still brand-new HTML language, I was offered the opportunity to forage even further into programming by my former company. At the time we were using a proprietary scripting language that worked somewhat like ColdFusion, at a very basic level. In my spare time, I noodled around with it.

I hate doing math, but much of knitting relies on math (for instance, a sweater that is knit at 5 inches per inch as opposed to 6 inches per stitch, with a circumference totaling 250 stitches will result in two very different sizes, one of which, should you pick the wrong gauge, will swim on your designated recipient and will be quietly designated to the darkest corner of his closet). And so does dyeing. Say you have liquid totaling 100% with which to dye yarn. And you want to use two different colors such as magenta and turquoise to get that nice blue shade. And you want to make sure it doesn't come out too light - somehow I don't think Cousin Jim would appreciate a pastel-blue sweater.

So, I developed a web-based dye calculator using that dead, proprietary language. Here's what the code that did the calculations on the back-end looks like:

\r\n##VAR.oz.declare(##PARAM.oz##)##\r\n##VAR.gram.declare("""")##\r\n\r\n##VAR.volume.declare(##PARAM.volume##)##\r\n##VAR.percent.declare(##PARAM.percent##)##\r\n##VAR.gdp.declare("""")##\r\n\r\n##VAR.fiber.declare(##PARAM.fiber##)##\r\n##VAR.dos.declare(##PARAM.dos##)##\r\n##VAR.strength.declare(##PARAM.strength##)##\r\n##VAR.TempFibdos.declare("""")##\r\n##VAR.totsol.declare("""")##\r\n\r\n##VAR.TempColper1.declare("""")##\r\n##VAR.TempColper2.declare("""")##\r\n##VAR.colper1.declare(##PARAM.colper1##)##\r\n##VAR.colper2.declare(##PARAM.colper2##)##\r\n##VAR.stocksol.declare(##PARAM.stocksol##)##\r\n##VAR.colora.declare("""")##\r\n##VAR.colorb.declare("""")##\r\n\r\n<!REM These two IF statements converts from ounces to grams>\r\n\r\n<!IF ##PARAM.Action## .eq. ""Ounces to Grams"">\r\n <!IF ##PARAM.oz## .ne. NULL>\r\n ##VAR.gram.assign(##FUNC.math(""*"", ##VAR.oz##, 28, 1)##)##\r\n <!ENDIF>\r\n<!ENDIF>\r\n\r\n<!REM These two IF statements calculate the stock solution formula>\r\n\r\n<!IF ##PARAM.Action## .eq. ""Calculate Dye Powder"">\r\n <!IF ##PARAM.volume## .ne. NULL>\r\n ##VAR.volume.assign(##FUNC.math(""/"", ##VAR.volume##, 100, 2)##)##\r\n <!ENDIF>\r\n \r\n <!IF ##PARAM.percent## .ne. NULL>\r\n ##VAR.TempVar.declare(##VAR.volume##)##\r\n ##VAR.gdp.assign(##FUNC.math(""*"", ##VAR.TempVar##, ##VAR.percent##, 1)##)##\r\n <!ENDIF>\r\n<!ENDIF>\r\n\r\n<!REM These two IF statements calculate the fiber/total stock solution formula>\r\n\r\n<!IF ##PARAM.Action## .eq. ""Calculate Volume"">\r\n \r\n <!IF ##PARAM.fiber## .ne. NULL .and. ##PARAM.dos## .ne. NULL>\r\n ##VAR.TempFibdos.assign(##FUNC.math(""*"", ##VAR.fiber##, ##VAR.dos##, 2)##)##\r\n <!ENDIF>\r\n \r\n <!IF ##PARAM.strength## .ne. NULL>\r\n ##VAR.totsol.assign(##FUNC.math(""/"", ##VAR.TempFibdos##, ##VAR.strength##, 2)##)##\r\n <!ENDIF>\r\n<!ENDIF>\r\n\r\n<!REM These two IF statements calculate the % for 2 colors>\r\n\r\n<!IF ##PARAM.Action## .eq. ""Color Ratios"">\r\n <!IF ##PARAM.colper1## .ne. NULL .and. ##PARAM.colper2## .ne. NULL>\r\n ##VAR.TempColper1.assign(##FUNC.math(""/"", ##VAR.colper1##, 100, 1)##)##\r\n ##VAR.TempColper2.assign(##FUNC.math(""/"", ##VAR.colper2##, 100, 1)##)##\r\n ##VAR.colora.assign(##FUNC.math(""*"", ##VAR.TempColper1##, ##VAR.stocksol##, 1)##)##\r\n ##VAR.colorb.assign(##FUNC.math(""*"", ##VAR.TempColper2##, ##VAR.stocksol##, 1)##)##\r\n <!ENDIF>\r\n<!ENDIF>\r\n

Well, as I said, this language is dead, consigned to the dustbin of Obscure Historical Facts.

BlogCFC was created by Raymond Camden. This blog is running version 5.9.004. Contact Blog Owner