SubSonic Post 1

November 29th, 2009 by e-thang No comments »

I’m trying out SubSonic for my personal finance management tool, Budgeteer, that I’m creating.  The experience thus far has been frustrating. I’m quite keen on straightforward documentation.  The creators of SubSonic are not.  They are quite keen of being “clever.”

Take for example the first bit you’re likely to read at SubSonic’s webpage, bit which I presume is meant to explain what SubSonic does.  “SubSonic is A Super High-fidelity Batman Utility Belt that works up your Data Access…”  I like Batman, especially since Christopher Nolan rebooted the franchise.  But I don’t care about Batman with relation to software projects.  I still don’t really know what SubSonic is after having read that.  Is it an ORM?  Is it a set of functions similar to MySQL access in PHP?  I don’t know, and they don’t seem to want to tell me.

I can stomach cleverness to about the same degree I can stomach horseradish.  It ought to enhance the content, and it can in the right hands.  The SubSonic authors WAY overdo it, and their writing style hides all the content behind a shroud of utter nonsense.  Hopefully they code better than they write English (a common engineering foible shared by this author as well).

They also use a LOT of screencasts.  Screencasts have their place, when done well (example).  However, the 1 that I’ve looked into up to this point goes on about how easy it is to set up SubSonic while scrolling past the code the author is adding after about 1 second.  Screencasts don’t have the best pause mechanism, so it’ s pretty easy to miss what the author is typing.  You also can’t copy/paste from a screencast.

More will follow.  Since there isn’t actually anything useful on how to set SubSonic up in a client application, and that’s what I’m writing, I’ll do that once and if I figure it out.  The frustration had risen to a point where I needed to vent, and where better than the solitude of a blog?

Convenience fees and the nature of government

October 22nd, 2009 by e-thang 1 comment »

I cannot understand how government entities operate. Actually, I can– deficits.

BUT, point is, renewing car registration costs an extra dollar if you mail it instead of going in person. That used to be a 20 mile drive, but is now only 10 or 15. If you do it online, $3 extra. So, it’s worth $1 to avoid all that driving for myriad reasons. That would be a kick below the belt for the planet too–  40 miles just to buy a sticker.

City water/trash utility, $1.95/month to pay online instead of mailing it. They call it a “convenience fee.” They don’t call it, “cover our costs of operating online payments.” It’s a fee because online payments are convenient. What if I punch myself in the face while paying online? Will that wave the fee?

I don’t get this. It does cost money to operate payment servers, but a fact of the tech world is that people cost a lot more than hardware. It is cheaper to do online payments. Not only that, but “online” allows for “automatic recurring,” which has been embraced by every entity that actually has to operate in the black, probably because it 1) cuts costs and 2) increases the likelihood of payment occurring on time. It’s an opportunity for a classic win-win.

But that is not the nature of government.

Monty Python has nothing on Russia or Taking issue with Akismet

September 19th, 2009 by e-thang 3 comments »

Akismet has been rocking my socks in spam prevention, but at present I’m finding it a bit lacking. A swarm of spam messages has been attempting to find its way onto my fair pages. Because I care so much about all 1.7 of you who come here on average and the integrity of Google’s search engine, I want to make sure those comments don’t see the light of day.  All comments from someone who hasn’t yet had a comment posted here require my approval.  Given my large volume of readers with the never-ending stream of comments, I realize what a labor of love it is for me to devote my every waking moment to filtering out spam, but I’m just that kind of guy.

So what’s the issue?  Well, all of the spammers post pretty much the same message.  It shows up in my browser as “??????? ?? ???????? ?? ?????,” or something like that, and all the associated URLs end in .ru.  Now, I don’t speak Russian– let’s get that right there– so what I say next doesn’t carry the same authority it would if those URLs ended in “.fr.”  For some reason I imagine written Russian having more than a single character at its disposal as opposed to this Morse code variant.  Perhaps some of you non-spammer Russian speakers out there can confirm this.

Why can’t Akismet pick up on this?  Russian link farm with no message content– seems like a no-brainer to me. The only thing I can figure is that the messages contain more than just question marks, but I don’t have the right alphabet installed on my computer. Which is just as well. I don’t want to learn how Viagra ads are written in Russian until and if I learn Russian for real.

For the time being I’ve shut down comments on my Apple Strikes Again post to see if that can exorcise the demon, comrade.

How to tell where your gems are installed

September 16th, 2009 by e-thang No comments »

From http://groups.google.com/group/rubypgh/msg/0489eed858e642a0:

gem environment

Type the above. That is all.

Deserves a pizza #3

August 27th, 2009 by e-thang No comments »

For helping me figure out why YourSQL stopped working (giving me a “No document could be created” error), my hat is off to oae.  It’s a Java thing. YourSQL doesn’t play well with Java 6, which I had set my computer to use.  The only thing I could add to oae’s post is that to change the Java settings on OSx, go to Applications->Utilities->Java->Java Preferences.  Then drag Java 5 to the top of the list.

So hopefully the 5 visitors I’ve had here will lend me enough Google street cred that this link to your blog brings you .3 visitors.

If you wonder why I was using your sequel or whether or not you had even written the first work requiring a sequel, then I can say with at least .9 certainty that this post doesn’t apply to you.

i(Tunes | Pod) deficiency or Deserves a Pizza #2

July 31st, 2009 by e-thang No comments »

Apple, the reigning champion of “intuitive” design, strikes again has another winner.

“Podcast” is a useless, branded neologism for audio files that come out on a regular basis.  Nevertheless, audio files that come out on a regular basis are enjoyable.  I “subscribe” to the Dave Ramseypodcast.”  I also bike to work.  Those may seem unrelated, but in fact the latter is the cause of the former.

Biking to work falls into the high-risk class of activities, but is closer to the moderate-risk class than, say, sky diving without a parachute.  Folks who don’t bike to work don’t much notice those who do. I’m all for live and let live, but this lack of attention can sometimes break that pattern for bikers.  The point is that just how a pregnant woman has to eat for 2, I have to pay attention for 2, or 3, or 4, depending on how many motorized vehicles cross my path during my commute.  That payment of attention only requires a visual debit, leaving many spare brain cycles during which my mind sits idle.  I like to fill that with sound.  Sound where I learn something is even better.

Enter audio files that come out regularly.  But sometimes I don’t listen to the Dave Ramsey audio files that come out on a regular basis, giving me a backlog.  This means that there’s more than that I haven’t heard.  Now, the genius of mp3 players is that they hold more than 1 song, and mp3 players can, generally, play all their contents without user attention between each track.

Enter the iPod.

Audio files that come out regularly are a magical class of audio file for the iPod.  The iPod, by default, cannot play 1 such audio file and then go on to the next without user interaction.  In fact, at the end of 1 such track, it repeats the same track, even though the menu is showing a list of all availabe Dave Ramsey audio files that come out on a regular basis.  Now, I realize that desiring this feature just means I’m using the iPod wrong, because only holiness emanates from Cupertino.  Nonetheless, academic freedom dictates that I must challenge such dogmas and question all authority.

Assuming all cows are perfect spheres, this as a default behavior makes perfect sense.  And it gets better!  If we define “intuitive” as “difficult” or “requires somewhere-above-average-but-less-than-expert knowledge of system to use,” then Apple has provided an intuitive way to overcome this problem.  This blog post describes the solution.  I mean, who wouldn’t have thought to create a “Smart Playlist” to do something so basic complicated as playing the next track?  Who actually uses their mp3 player that way anyway?

However, if not all cows are, in fact, perfect spheres and we define “intuitive” the same way that Merriam-Webster does, then to get the next track to play, one should just have the next track on the device.  Ergo, this is an Apple fail.

Conclusions:

  1. danandchoka deserve a pizza.
  2. The fact that goole has just over 400k hits for “ipod podcast play next” seems to indicate that I’m not alone in this problem.

Besides venting another Apple-related spleen, I wrote this post to bump up danandchoka’s post.  I really did appreciate finding the answer to this problem.

Deserves a pizza inaugural post

July 17th, 2009 by e-thang 2 comments »

A new category of post.  People who deserve a pizza.

For helping my out of my can’t-install-mysql-gem problem, I present to you http://marcgrabanski.com/article/installing-mysql-ruby-gem-mac-media-temple-dv.

Use of a mac will be forgiven for pure awesomeness.

I was getting errors along the lines of:

Building native extensions.  This could take a while…
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… yes
checking for mysql_query() in -lmysqlclient… no

use != utilize

July 3rd, 2009 by e-thang No comments »

Today Dell upset my homeostasis.  I quote from Dell’s product information on their 30″ LCD:

“To fully utilize your new 3007WFP-HC monitor and enjoy the ultra-high resolution settings…”
(see http://accessories.us.dell.com/sna/products/Monitors/productdetail.aspx?c=us&l=en&s=dhs&cs=19&sku=222-7175)

“Utilize” is not the more formal/pretentious form of the word “use,” even though swarms of would-be writers utilize it as such.  No, “use” means “the act or practice of employing something.” (http://www.merriam-webster.com/dictionary/use) “Utilize” means “turn to practical use or account.” (http://www.merriam-webster.com/dictionary/utilize)

Thus we see that “utilize” is a special case of “use.”  In a similar manner, “cat” is a special case of “useless 4-legged animal,” which is in turn a special case of “4-legged animal,” which is a special case of “animal,” and so forth.  All cats are 4-legged animals, but not all 4-legged animals are cats (as an example, see “dog,” which is a special case of “useful 4-legged animal”).  Similarly, one can bludgeon a sentence and use “use” wherever “utilize” is appropriate, but some meaning is lost. One cannot, however, utilize “utilize” wherever “use” is used, because the former is just not up to the task.

So when is it appropriate to use “utilize?”  Whenever one doesn’t have to utilize “utilize.”  As the dictionary points out, “utilize” brings with it the connotation of being used for something other than its original purpose.  You cannot, for example, utilize a hammer to drive in a nail.  Since hammers were made for that purpose, driving in a nail with a hammer is an example of “using” a hammer, not “utilizing” it.*  In a pinch however, one could utilize a wrench to drive in a nail.  As a further example, one can very well utilize a Macintosh computer to accomplish serious work.

If you’re still here after all this time, you may wonder what this has to do with Dell.  Well, they say, “To fully utilize your blah blah blah.”  First, since I haven’t purchased it, it isn’t mine.  Second, what does it even mean “to fully utilize?”  “Fully” would imply that there is some intended level of use.  But since I’m utilizing it, I’m using it for something other than what it was intended– some other use that I came up with.  Well, how would they know if I’m fully using something when they haven’t even come up with the use?  I fail to see how Dell is the authority on whether or not I’m succeeding in some tangential use of their product.  Thus, I am left spinning in an irreducible cloud of logic, which frankly irritates me to the point that I will not be purchasing the 30″ Dell LCD any time soon.

Why does this even matter?

“Clear language engenders clear thought,” wrote Richard Mitchell in his masterpiece The Graves of Academe.  As human beings we really can’t function and explore the full potential of our existence without one another.  We accomplish more in society than we’d be able to individually.  The trouble is that we aren’t mind-melded in the same way that Vulcans can be.  Our sole means of communication is translating our thoughts to words and communicating those words to another who must the re-translate those words into thoughts.  At each step of that process, intent is lost.  Words mean different things to different people (see discussion of “cat” and “dog” above).  And it is through words that we teach brain surgeons to be brain surgeons, for example.  Since we’re already at an inherent disadvantage, we ought to labor to use clear language.  This sort of thing can cost lives (http://en.wikipedia.org/wiki/Flammability#Linguistics:_Flammable_vs._inflammable).

I concede that “use” vs. “utilize” will probably not kill anyone; I am unable to contrive an example.  But 1 cigarette won’t kill you either.

* -  Sledge hammers are an exception, but note that they are a special case of hammer.

uninitialized constant Thin::Server::Forwardable

July 2nd, 2009 by e-thang 2 comments »

I may be getting batty in my old age here, but for whatever reason Thin decided to just stop running on my system.  When trying to invoke thin to further development on the code behind my awesome website, I was treated to the following:


ethan:ethang juanpaco$ thin start
/Library/Ruby/Gems/1.8/gems/thin-1.0.0/lib/thin/server.rb:51: uninitialized constant Thin::Server::Forwardable (NameError)
from /Library/Ruby/Gems/1.8/gems/thin-1.0.0/lib/thin/runner.rb:38:in `initialize'
from /Library/Ruby/Gems/1.8/gems/thin-1.0.0/bin/thin:6:in `new'
from /Library/Ruby/Gems/1.8/gems/thin-1.0.0/bin/thin:6
from /usr/bin/thin:19:in `load'
from /usr/bin/thin:19

I didn’t like that.

I went to the line number where the error occurred (/Library/Ruby/Gems/1.8/gems/thin-1.0.0/lib/thin/server.rb:51), and found:
extend Forwardable

Not knowing what Forwardable was, and for giggles, I went to irb and typed “Forwardable” thinking I’d get the class object.  Not defined.  So I try “require ‘forwardable’.”  There was no period in what I typed, but I haven’t figured out how to get Ruby and English to play well together.  Anyway, that worked, and a subsequent typing of “Forwardable” returned the object. So then I tried putting require ‘forwardable’ at the top of server.rb in thin’s gem.

And then it worked.

I’m not sure why it used to work and then suddenly didn’t.  This was after several install/uninstall, swear off programming moments.  Weird.  So, if you’re struggling with this same problem, perhaps the above can be of service.

Apple never ceases to amaze me

April 30th, 2009 by e-thang 1 comment »

I can’t actually post screenshots, because it’s a work project again.  I got some html documents from our graphic designer, and I wanted to incorporate them into our code base.  Wanting to just get at the html code, I figure a simple text editor would do that for me.  I used Apple’s cra… amazing text editor TextEdit, foolishly thinking that like notepad or writepad on Windows I would see, you know, the text of that file.

This idiotic Apple piece of software tried interpreting the html document and rendering it as would a web browser.  I don’t see any mode switcher which would allow me to actually see the html either.

With absolutely 0 toolbars or the like for editing the content in a WYSIWYG manner, I’m dumbfounded.  How could that possibly be the best way to open this document?  If I used Dreamweaver, I could understand, because Dreamweave actually supports graphical development of html documents.  But it also has a simple and easy-to-find mode switcher to let me go back and forth.  And in that case, I still find the visual designer useless.

“Text”Edit has 0 graphical support that I can see (because Apple things are supposed to “just work” and be “intuitive,” I feel fine setting the bar that high) and no visible way of switching to “text edit” mode.

1 more example of Apple not living up to the hype surrounding.  In the 1 year+ I’ve been using the Mac platform I have been so underwhelmed.  It is every bit as frustrating as Windows, just in different areas.  If you like Apple’s stuff and can get work done with it, great.  Continue to do so.

The actual hardware is prettier though.  It’s nice that the Eye on the laptop’s lid lets everyone know how creative and unique I am.