Life is better without Facebook

I once thought that Facebook was a medium where friends could freely exchange ideas. Later I realized it’s not about exchanging ideas at all, but more about affirming feelings and reinforcing opinions. It seems most people prefer that now, anyway, which accounts for Facebook’s success. Now this. In the world of Generation Snowflake, where people are finally able to insist on their own version of reality and still be considered both mentally and morally sound, it shouldn’t be surprising that Facebook is part of it. Christians would do well to remember that Facebook is not a public forum, but a corporation. Its highest goal is to please its shareholders, not to serve truth. Its business is advertising, not ensuring the free exchange of ideas and allowing them to stand or fall on their own merit. It will not treat the biblical worldview fairly, but instead will draw Christians into accepting things contrary to the word of God. Just so you know.

Mozilla and Marriage

I was deeply disappointed with the response from Mozilla to pressure from the LGBT(ABCDEFG) activist community leading to the April, 2014 announcement of the Mozilla CEO resigning. The pressure was exerted by activists because the CEO, who had helped to lead Mozilla from its founding, had also contributed to the grassroots efforts in California to pass Proposition 8. This was an effort on the part of the people of California to enact a law defining the state’s involvement in marriage according to the so-called “traditional” concept of marriage. That is, the concept used for millennia throughout the world, that marriage is a permanent institution uniting a man and a woman, recognized by government because of its foundational role in the fabric of society and its well-documented and frequently-observed benefits in promoting a stable and morally-sound environment for raising children.

There have been other concepts of marriage through the ages, but none so well-rooted in the design of human gender, and so beneficial. The alternatives have produced greater strife and less stability, not to mention moral depravity.

So Proposition 8 was not a revolutionary proposition. It was reasonable and well-supported by the history of human civilization. Prior to 21st-Century America, nobody anywhere seriously conceived the institution of marriage including groupings of the same gender. It’s self-evidently contrary to nature, and nonsensical.

When the furor was fabricated against the Mozilla CEO, attempting to strong-arm the Mozilla organization into public support of the LGBT(ABCDEFG) agenda, it was my impression at the time that the organization caved, and I was deeply disappointed. I had been using Firefox as my browser of choice, and subsequently began to prefer alternatives.

It turns out that my impression was only partly right. Mozilla did issue a blog post in support of “LGBT Equality,” going as far as “including marriage equality for LGBT couples.” That is still deeply disappointing to me, because Mozilla’s existence and Manifesto are unrelated to the politics of immorality. This incursion is more than a distraction from the excellent purpose of Mozilla, it also turns Mozilla ever so slightly into an influence upon others in favor of that immorality, even if the organization never actively pursues it. Mozilla should retract that blog post and issue another saying that it takes no public position on such issues. Until that happens, I can’t wholeheartedly endorse Mozilla or its products to others, because it has taken a position on a moral issue that happens to be wrong. That’s not my personal judgment. It’s the clear judgment of the Bible, which I consider to be God’s Word.

Despite this corruption of Mozilla’s focus, it has not gone any further in support of such things, and has otherwise continued to advocate for the principles of its Manifesto. It has clarified the circumstances of the resignation of its CEO, making clear the fact that this was another coordinated ambush by a tiny minority group, attempting to coerce a well-known entity into showing support for a revolutionary immoral stance. It may be that the CEO’s resignation helped to limit the corruption of Mozilla’s mission.

So I will again recommend Firefox and related technology to others, because the free Internet has few advocates, and Mozilla is one of the strongest. My recommendation has the caveat: ignore the public statement by Mozilla about “marriage equality.” It was a coerced statement, and we can hope that like a coerced marriage vow, it doesn’t mean much. As for me, I will begin using Firefox again even as I keep an eye on Mozilla and all of the companies and organizations which I support through my use of their products.

Scientific Jury Still Out on Hypothesis

The title of this post is something like a tautology in that no scientific hypothesis is considered the final word. Unless, that is, you are listening to certain people about the “theory” of evolution. It’s not a theory in the sense that it can be disproven (the classic sense), but in the sense that people use it as a model for trying to understand new evidence. So it’s more like a hypothesis, which means a claim (or “thesis”) that’s somewhat less (“hypo”) than fully developed. To hear some people, evolution is settled science. In reality, it’s just the best alternative they have found to biblical creation.

Along those lines, an article linked today on Drudge caught my eye. Though written from an evolutionary point of view, it’s rich for pointing out the weaknesses of that “theory.” If you read it, just keep in mind that the ages mentioned there don’t disprove the biblical timeline, because they are based on a number of assumptions, several of which may easily be wrong.

But one thing above all seems noteworthy in that article. It discusses several different species identified in this research, which are “theoretically” related to human beings (homo sapiens). It says,

Meanwhile, using improved methods, Dr. Paabo, Dr. Meyer and their colleagues assembled a rough draft of the entire Neanderthal genome in 2010.

That discovery shed light on how Neanderthals and humans’ ancestors split from a common ancestor hundreds of thousands of years ago. It also revealed that Neanderthals and humans interbred about 50,000 years ago.

My point is this. If Neanderthals and humans interbred at some point, then they are really the same “kind” of creature, as described in Genesis chapter 1. So not only are the ages applied to these discoveries wrong, but even the classification of creatures like Neanderthals as “non-human evolutionary relatives” must also be wrong. Rather than evolutionary relatives and ancestors of mankind, this research is identifying something more like a variety of races within the human family tree. That sounds biblical.

New look, Bugs, and Deporting German Homeschoolers

[Caution: Geek content follows. Others may skip down two paragraphs.]

If you have read this blog before, and you actually visit the web site, you probably notice that it looks different. Well, it is different. A hard drive failed in the old machine that was hosting this web server. It was backed up and all, but I realized that this machine is 13 years old now, and some of its parts might be even older. The whole thing has been on borrowed time for years already, and I had an idea. In fact, it works. Everything that machine was doing is now accomplished within my regular desktop machine, by a virtual machine living inside it. In the process, I also ported The Plucked Chicken over to WordPress. Why WordPress? In the end, because it’s very well tested and supported. And of course, free, like Linux. (Try getting that much use out of a Windows machine originally built in 2000!)

So when there is time, I’ll spruce things up around here with some images and other media. There are a few little bugs or snafus from the blog conversion, but they can wait. In the meantime, just enjoy the simplicity.

In case you haven’t seen it, Gene Veith blogged about this case of deporting illegal immigrants. It seems the US Attorney General is very tough on them, and wants them deported, at least when they’re from Germany, and when they have obtained political asylum in the United States from religious persecution in their home country. And when they’re homeschoolers.

It’s worth reading about. I find the AG’s obtuse understanding of the religious freedom protected by our First Amendment to be sadly lacking. It may be a safe bet that he wasn’t home-schooled. Of course, it may not really be him behind it, but his minions acting under his name. Well, those minions need schooling too. So please read it, and click through the link Veith provides to read more about it. Note especially this, “Holder claims that the family’s fundamental rights have not been violated by Germany’s law forbidding families from homeschooling.”

This is really the same obtuse lack of understanding we find in the way our executive branch has dealt with the ACA (“Obamacare” for those who don’t recognize that acronym.) and its universal requirement for people like the owners of Hobby Lobby religiously to violate their consciences. In both cases, it seems our government has compartmentalized religious freedom into an area thoroughly insulated from public life. They have no clue that religion should affect every aspect of a person’s life. How far the United States has fallen from her founding!

Busy times and Printing to a Canon iR2230

Clearly, I haven’t posted anything for a while. I’ve thought of some interesting things to post, but couldn’t justify the time it would take. Maybe after Christmas.

By the way, Merry Christmas to all who happen to read this. May the joy of the Christ-child warm your hearts with the love that God demonstrated by sending His Son into our world and redeem sinners through His own death. Remember, the same Jesus has now risen from His grave, and reigns forever over all things for the good of His Church, which He is bringing out of this fallen world to Himself.

Most of what I have learned about computers has been learned when I can’t really afford the time. So I spent the whole morning, and part of the afternoon today getting a new computer set up to print to our church printer, the aforementioned Canon. It’s an old black and white business-level photocopier, and has been very reliable for us. We’re currently at 162,461 letter-sized pages on that machine.

Canon’s print drivers for Linux have improved in the last few years, but their support in the United States is very poor. I’ve been using the Japanese driver, which is named “LIPSLX” for some reason. “LX” at the end is a Roman numeral, I think. Anyway, this new computer is a 64-bit machine, the first in this office. So the OS (Ubuntu) is also 64-bit. And Canon doesn’t provide binary (pre-compiled) driver packages for Debian-based 64-bit Linux. I tried lots of things and learned a lot about the print system (which comes from Apple and is called CUPS). It seemed I was close, but there was no data in the print jobs. Zero copies of zero sheets every time a job went through.

More digging on Google found a thread on a Gentoo Linux forum with an odd post that actually pertains closely to my problem. So thanks to n00b, I was able to create my own binary package files for 64-bit Debian. And they work.

I’ll quote n00b’s series of “less than intuitive” steps below, for future reference…

  • Run the following commands which are necessary to support the binary blobs included in the driver files:
    
         ln -s lib /usr/lib64
         apt-get install ia32-libs
     
  • Visit the Canon-Australia support site and download the most recent drivers, currently Linux_UFRII_PrinterDriver_V250_uk_EN.tar.gz.
  • Unpack the file.
  • In the Sources directory, unpack the cndrvcups-common-2.50-1.tar.gz and cndrvcups-lb-2.50-1.tar.gz files.
  • Edit the debian/control files and change all instances of “Architecture: i386” to “Architecture: i386 amd64”.
  • Edit the debian/rules files and uncomment the “dh_makeshlibs” lines.
  • Edit the cndrvcups-lb-2.50/allgen.sh file and delete all instances of “–enable-static”, “–disable-static”, “–enable-shared”, and “–disable-shared” options.
  • Run the following commands from the Sources directory to build and install the driver software:
    
         cd cndrvcups-common-2.50cndrv
         debuild binary
         cd ..
         dpkg -i cndrvcups-common_2.50-1_amd64.deb
         cd cndrvcups-lb-2.50
         debuild binary
         cd ..
         dpkg -i cndrvcups-lipslx_2.50-1_amd64.deb cndrvcups-ufr2-uk_2.50-1_amd64.deb cups-ufr2-us_2.50-1_amd64.deb
     

Buy the whey, I’m using Ubuntu 12.10 64-bit, and I ended up using the “LIPSLX” package produced by the debuild process. Other printers might work best with a different one.

Access to Logos Content without Windows: Priceless

Yes, friends, I’m using Logos Bible software on Linux. (But don’t tell Logos that Android is really Linux underneath, or they might decide to pull the plug.)

My Logos purchases of Concordia: The Lutheran Confessions and Luther’s Works: American Edition have been gathering digital dust the last year or three since I bought them. I’d hoped to be able to run the Libronix application under Wine, a set of Windows-compatibility libraries on Linux capable of running a large number of Windows applications as though they were native to Linux. But alas and alack! I have Libronix installed, and the icon stares me in the face from my Gnome desktop, but apparently Libronix relies on some of the proprietary features of Internet Explorer that are integrated into Windows, and not (yet) duplicated by Wine. Its runs with Wine, but the interface is mostly useless.

Now, I do have one or two Windows XP Professional installations available to me. One is on my old ThinkPad T43, gathering its own digital dust while I happily boot that machine 99% of the time directly into Ubuntu. It seems every time I do boot Windows, it wants to update some of the software. That could either be a measure of the infrequency with which I use Windows, or simply the price of running an OS with the security vulnerabilities of Windows. Suffice it to say that I didn’t choose to put Windows on that machine, but I’ve kept it around for “legacy” purposes. Until now, it was my only means to access the Logos content I’ve bought, and I’ve probably only used it a handful of times. The limitations, headaches, and expenses that always accompany a commercial operating system like Windows (and to a lesser degree, OS X) are just not worth the hassle of figuring out how to get things done in that environment, so even though I’ve bought Logos content, I’ve had to live as Paul recommends in 1 Corinthians 7:30.

But as you may have read in the previous post, I’ve now acquired an Android tablet for entirely different reasons. Though priced comparatively to a Windows or OS X license, the Nexus 7 is actually useful to me. Today I wondered, “Hmm. Even though Logos doesn’t have an application compatible with the Linux desktop, do you suppose they’ve made one for Android?” The answer, to my delight, is yes.

So now I can read my Logos content. I haven’t tried yet, but maybe I can also search through it. That would be most useful.

Now, all of this could make a person wonder why Logos wouldn’t make an application for the Linux desktop. Let’s speculate. The most likely reason is that they don’t think enough people would use it, so that the cost would not be justified. Okay, I can understand that. Logos is a business, after all. But…

Linux is built of Free software. While that may sound like it’s contrary to the principle of business-for-profit, it’s not. In fact, it can be used to the advantage of a business like Logos. You see, there are thousands of people with programming capability who literally donate their time to write software of every quality (from poor quality to better-than-commercial), which can be used in Linux. In fact, this phenomenon spills over into the Windows and Macintosh environments, but most of it happens in connection with Free computing environments like Linux. Some of those programmers (including me) would be happy to help create a Linux-compatible application for Logos.

Now, you might object, “But then Logos couldn’t sell it!” Ah, but they already have decided to give away their applications for Windows, Macintosh, and apparently Android too. Their money is not earned by selling their application, but by selling and supporting the content. So an open-source, Free Logos application for Linux would fit their business model like a glove. All we need are the specs needed access the Logos digital library. That brings us to another possible objection.

The Logos digital library and its inner workings are a kind of proprietary property of the company. The company probably believes that if any other programmers learn how to access it, they will lose their ability to generate revenue, and even to protect the rights of those who own the content. That’s a legitimate concern, because Logos has a responsibility in this area. However, I think the security record of Free software speaks for itself, especially when compared to proprietary software in the Windows environment.

There are plenty of Linux applications that are responsible for the security of their users, administrators, and the owners of the systems on which they run. Technologies like GnuPG, SSH, SSL, TLS and others are relied upon daily by people all over the world for their security, and they are implemented in Linux, with Free software. The security comes not from keeping the source code, algorithms, and apis secret, but on the contrary, by making them publicly available, with the widest-possible review base. These technologies protect important data from falling into the wrong hands. In the same way, Free software could protect intellectual property in the Logos Library System from falling into the wrong hands.

“But that doesn’t guarantee that legitimate purchasers of LLS content will not misuse it!” True. Neither does the current Libronix application for Windows. At some point already, Logos’ responsibility to copyright owners ends, and the end users’ responsibility takes over. That would still be true with a Free software Logos application. Nothing would change there.

While some might think that the Linux community has no regard for intellectual property, the opposite is generally the case. Through long conditioning, Windows users reflexively click past EULA screens when installing software, but the copyright stipulations that make open-source software Free are very important to a great many Linux users, especially the programmers. We tend to care about whether a bit of intellectual property is used in the ways intended by the copyright-holder, because that’s where we find the most basic difference between the programming of proprietary software and Free software. The copyright of Free software is what makes it Free. Not necessarily free as in “free beer,” but Free as in “freedom to see the source code and use it elsewhere.”

If the security model of the Libronix library system is based upon truly secure ways of safeguarding the intellectual property of copyright-holders, then I would only expect improvements to the interface and the security, and maybe even improvements to the system itself. If, on the other hand, the security model relies upon keeping the API secret and proprietary, then it’s a failed proposition from the start, and the copyright holders should already be nervous.

For today, though, I’m happy finally to have practical access to the content I purchased. So thanks, Logos, for the Android app.

Getting Things Done… Better

The weak link in my GTD implementation was the “trusted system” for keeping and reviewing my actions and projects. I’ve done it on paper, but I also had to carry my Palm T|X to have my addressbook handy. (I have thus far capitulated to having a mobile phone, which I use only sparingly when absolutely necessary, but still have avoided a smartphone because they’re vastly overpriced for the use I’d make of one.) So I returned to my trusty peditPro text editor on the T|X, and have been using it for quite a while. The trouble in the system is the device interface. GTD is about overcoming the limits of human behavioral patterns, and the Palm Pilot, even the T|X, just doesn’t allow for an easy enough interface to manage the “trusted system.” I would find it a daily chore just to enter the text needed for processing actions and projects. Of course, I pressed on, not really perceiving that problem. Norwegian-Americans are often really good at that. (I think it’s the German part of me that finally brought me to my senses, but it could be the Scottish.)

Then came the babies. Twins. I was needed so constantly at home, 24 hours a day, for the last seven months, that about a month into it, I just stopped using GTD altogether. None of my projects were moving forward, and no actions were getting done. It was survival mode, and I’m okay with that. My wife has always needed sleep more than I do (her personal motto is carpe requiem), so I knew that she and the family would need my full attention for a while. I missed two regional pastoral conferences and every winkel until the 2012 synod convention. Somehow, we made it through Lent and Easter, and I think I even preached sermons. Well, there’s audio on the web site, anyway, so somebody preached.

But I gradually began doing more and more at church again, and God began sending guests to our services, and church activities were fruitful and multiplied. Fortunately, I have come to realize that I’ve been keeping a sizable to-do list in my head, and that it’s not working. Unfortunately, it took several system failures for me to realize it. So as I posted the other day, it’s time again for GTD. And now I recognize the weak link, and I come to the point of this post.

Turns out there is an abundance of GTD resources that many people have developed. It was a bit overwhelming just sifting through them. But I think I found my solution. First, the main requirements:

  • It should allow me to implement GTD, as described in David Allen’s book Getting Things Done.
  • It should be very portable. My Palm T|X excels here, and is hard to match.
  • It should have a large capacity, including an address book.
  • Centralized data storage is a plus, if it’s accessible from multiple locations, and can be backed up
  • Data should be secure.

A Ruby-on-Rails web application called Tracks was enticing, because I could keep my data on my own server, even if it’s hosted online. But the Ruby on Rails support at the web hosting companies I currently use is either non-existent, or not very fully implemented.

So after looking around, I’ve settled on a smaller Android tablet computer coupled with an online service called Toodledo. Right now, I’m saving up for the tablet, which will probably be a Google Nexus7. It’s bigger than my Palm T|X, but not by much. The larger size alone may solve the physical aspects of the “weak link” in my GTD system. But there are also several Android apps written to sync with Toodledo. The one I’m most interested in trying is called Ultimate To-Do List. If it’s anything like it’s described, it should be excellent.

While saving up for the tablet, I’ve been starting my transition to Toodledo. I’m amazed at this tool. It’s exactly what I want in a GTD to-do list, and easy enough to use that it doesn’t feel like a chore. I’ve only been through part of the listings in my Palm Pilot, and already my mind is beginning to get unwound. The creative juices are beginning to flow, and the old sense of GTD control is returning. I look forward with anticipation to having everything back in a trusted system, and out of my head.

Dynamic IP Addresses; Welcome to a New Author

Until now, I’ve enjoyed having a static IP address, which was necessary for my wife’s work. That’s been convenient for hosting this domain at home. Now, however, we’re going to be cutting costs with a VoIP telephone service, and losing the no-longer-necessary static IP address. The availability of our home-hosted web sites will fluctuate as we transition to a dynamic DNS system, but I expect that things should settle down again by Lent.

My friend, pastor Aaron Hamilton, has posted an article from his church newsletter on The Plucked Chicken. I welcome him to the “staff,” and look forward to future postings. This is a good time to note that this blog is not really a “church blog.” I have another place for that on our parish web site. Instead, this is a place where we apply our faith and doctrine to all manner of things that crop up in life. So there are matters of Bible interpretation, doctrinal formulation, liturgics, and the like. There are also things that verge on the political, though I avoid official endorsements or exdorsements of candidates. Many matters are vocational in nature, whether domestic or otherwise. So I appreciate Aaron’s contribution, as it fits pretty well with our self-chosen mission here.

Exporting Plone 2.5 Member Password Hashes from GRUF

Those with no idea what the subject line means can safely ignore this post. For the merely curious, this relates to my responsibility to manage a Plone-based web site for the body of churches to which I belong. For other webmasters and Plone folk, this is a tidbit I had to search quite a bit to find, which will allow me to export my user records from Plone 2.5’s GRUF (Group User Folder) system for import into another system, without losing their ability to log in with current passwords. I plan to import my users into Plone 3+.

The recipes available at plone.org were little help, as the getPassword() and _getPassword() methods seem to have been rendered inert by Plone 2.5, probably in an attempt to tighten security. But I finally managed to find this blog post about exporting member hashes from Plone 3, and was able to confirm that the essentials also work in Plone 2.5. (By the way, you can’t export the original passwords, because they are not stored on the system. Only the cryptographic hash is stored, which can be compared at login time to a hash generated from the password provided by the user.)

If you find that you want to extract your users’ password hashes, then this is what you need to do within an External Method.

acl_users = getToolByName(self, 'acl_users')
passwords = acl_users.source_users._user_passwords

Then you can use a user id as an index into passwords to find the corresponding hash. If you need help obtaining the user ids…

mtool = getToolByName(self, 'portal_membership')
for member in mtool.listMembers():
    pwhash = (passwords[member.getId()])

Python Imaging Library: easy_install or setup.py makes a difference

Chances are most readers of the Plucked Chicken will have no idea what I’m writing about here. That’s OK. Just move along.

For anyone who may find this post when searching for Plone and an Import Error, when it claims that the Python Imaging Library is not installed because it can’t import PIL, read on.

I’m just now getting a handle on installing Plone via zc.buildout, with a view toward a migration path from a current install on a somewhat critical web site to the next great thing (TM). I decided to install a custom Python in a custom location, so that zc.buildout and easy_install would be able to do their thing without messing up my system Python installations. So far so good.

The problem came after easy_installing PIL (which isn’t as easy as one might hope), running buildout, and starting Plone. Plone complained that it couldn’t import PIL, implying that PIL was not installed. I first made sure that the Zope instance was running the correct Python install, and then I was baffled. I could verify that PIL was installed by a successful “import Image” in the Python shell, but Plone does not import Image directly. Instead, it imports PIL, or perhaps imports through PIL, as “from PIL import Image”.

Two different ways to import PIL, giving access to the same code. Two different ways to install PIL, with the “easy” one being a little more complex than usual. Putting two and two together, I removed my PIL installation, downloaded a tarball, and ran “python setup.py install”, which uses setuptools without easy_install. Everything worked smoothly. I started a Python shell and tried “import PIL” (which hadn’t worked before). This time it worked. Tried starting the Zope instance. It worked too.

Conclusion: Python Imaging Library and easy_install don’t work together the way PIL and setuptools do, resulting in two different ways to import the PIL code. This may be a PIL bug, or it may be that the egg-creation mechanism in easy_install doesn’t handle the requirements of PIL as it should. Either way, if you intend to use PIL with Plone, you’ll have to install it via setuptools. If there’s a better way, I’d appreciate hearing about it.