Archive for the ‘General’ Category
Negative File Delete
I am sure there is something metaphysical going on here…but I am not sure what.
Drs. and Their Computer Books
Update: Removed the now expired video clip from Hulu
I’ve started watching a new summer show on Fox: Mental. It is has been somewhat intriguing thus far. It is, however, formulaic: Dr. solves problems in an “hour”, but can’t solve his own problem(s) during a season or ever on the show. (Think House, another Fox show … which I enjoy because Dr. House is such a jerk.) [You can catch both shows on Hulu.]
In the second episode of this inaugural season of Mental, the two residents are sitting down for lunch in the hospital doctors lounge. As Dr. Suarez sits on the couch next to Dr. Artis, the camera pans to catch the coffee table in front of the couch. Here is the screen capture:
- Dr. Artis, Dr. Suarez and the Book
You may want to click on the image to get a better view, but check out the book. That’s right …. a 1997 Que, Special Edition of Using Microsoft Visual InterDev. Now I know there are Drs. out there who have development skills. In fact, my kids’ pediatrician is one. He and I have talked about his hacking on his office’s Patient and Records system, customizing and writing extensions. But why would any prop or set person drop a 1997 Visual InterDev book in this scene? And even worse the book was horrible, I had it at a previous job. You don’t have take my word for it, check out the reviews on Amazon.
iPhone WordPress App
We just finished upgrading our home server. The migration, while it took time, was rather easy. I combined our separate blogs all under a WordPress MU install to simplfy maintenance. One thing that I am happy about with the upgrade, besides improved performance, is that the iPhone wordpress app now works. I had errors connecting before. One thing that helped in configuring the app is improved error handling in the latest version. The initial release would always just die when trying to connect with no errors. I tried sniffing the connection, but unsuccesfully.
As I contiunue to use the app, I’ll update you on to what I like and don’t like. For now I’m happy!
My Boy Jack
I keep meaning to post more on the things I read, listen to and watch.
I watched the dramatization of the play My Boy Jack by David Haig. It is the beautifully told story of Rudyard Kipling and his son Jack. Jack was extremely myopic, but wanted, like every other young man his age, to join the war effort. Kipling did all he could to help Jack become an officer after Jack had failed to get in twice. Jack was declared missing in the Battle of Loos. It was nearly two years before Jack was declared KIA. It was after this that Kipling wrote the poem My Boy Jack.
My experience with Kipling and author authors of WW I literature goes back to working at the BYU Library. I was asked by Librarian Robert Means to help create a web site to go along with an exhibit he was putting together as an Anthology of World War I Literature. While the web site is nothing to yell home about (I was just learning), the content is great. I’d recommend anything found on the site.
Lessons learned in Appliance building, Ideas for the Future
Errands run, kids in bed, and Krull On Demand. Finally, sometime to put some thoughts down about building the Alfresco Appliance.
Some of what I write here refers back to when I original put together, the first version of the appliance. Some is from revisiting it for this release.
Choosing a distribution
I started playing with building an appliance right about the time that Ubuntu announced their Jeos distribution. I have a strong preference for openSUSE and would have liked to have built the appliance on it. (LimeJEOS answers my concerns, and I am excited to give it a spin. Just a few more things to move off my plate before I can devote time to it.) I tried several different distributions: Fedora, openSUSE, Ubuntu, Puppy Linux, Zen Walk. I liked some, was optimistic about others, and disappointed and frustrated with a couple.
What I wanted was a distribution that provided me a small lightweight base, and gives me the ability to add just the packages I needed to run my application. Most of these came in close to what I wanted, but due to dependencies, grew to be much larger than I wanted. Some didn’t even provide me with a nice clean way to get the applications I was dependent on. Those I dropped immediately. Those with decent package mangers got pluses. I wanted to be to keep base packages up to date.
This brings us to Ubuntu Jeos (Just Enough OS). It gave me the size, the packages, and the manager that met my base criteria for a distribution.
Getting Started
While the base install is already fairly small, there still are many packages that I was going to need and not need. This takes some time, but go through the installed packages and identify what you aren’t and are going to need. Make a list and develop a script to remove the ones you don’t need. Another to add the ones you need. You may like to have some of the packages around while developing your appliance, but when you go to deliver it they may add more weight than what you would like, or give tools that just aren’t need by your appliance, or your end users. Keep them installed until you are sure they aren’t needed any more. My list includes: man pages, wireless-tools, sound packages, laptop packages, different editors, hardware utilities, etc. Your list will vary. Sometimes you may want to force remove dependent packages if you know their functionality is not needed. Don’t be afraid to take them out.
I know my list is not perfect, but over time it will improve. Some of this will come with trial and error. Don’t expect to get it right the first time.
Once I narrowed the package list, I started to add my dependent packages. Some of these could require you to re-add removed packages. That is why I suggest leaving packages installed until you have all your dependencies installed.
One of the cornerstones of an appliance is zero configuration. You want people to be able to just deploy the appliance, start it and use the appliance. In the case of Alfresco, it needs Tomcat to be started at boot time. For this I needed an init script. (Mine can be found here.) I use the init script to start Tomcat, start needed services, and perform runtime configurations.
Alfresco is a web-based application, so I need a way to provide the URL needed by users to access the application. For an appliance this can be changed from install to install. There are several ways to handle this, eventual, you will want to have a static address or use Dynamic DNS to update IP to name mappings. My appliances is primarily for evaluation. It is not really ideal to play with DNS or static IPs. I have kept the implementation simple, I’ve created a script that updates the /etc/issue file with runtime URL. (The script I use is here.) The major issue I faced was when the script was to be run. I placed the script in /etc/network/if-up.d. I fully expected it to be run when the interface came up. The script did run when I manually ran ifup. But it didn’t run in every case, especially the most import, at boot time. I tried several different things to work through this. I added a reference to the script into /etc/network/interfaces using the post-up directive. (in openSUSE, you would add a POST_UP_SCRIPT=”<name of your script>” to the interface file in /etc/sysconfig/network and put the script in /etc/sysconfig/network/scripts). This added a bit more power, but did quite fix my problem. I finally narrowed it down to udev. The interface was being brought up by udev, but when /etc/init.d/networking is run, it runs ifup with a -a option (all interfaces marked auto). The problem with this is if the interface is already up, the associated scripts won’t be run. I haven’t found an appropriate fix for this yet. (Any ideas?) So I just disabled the udev rule for the network interfaces . rPath has a good solution for this, they change /etc/issue file in an init script. I like this idea, but didn’t want to write another init script or pollute my existing alfresco init script with this.
Plans for the Future
One of the things that I want to do is provide some Alfresco branding to the appliance. I also want to create some more production ready appliances that use MySQL and point at an external virtual drive to store content and the indexes.
What is Missing
One of the big things that is missing in a management interface for the appliance. rPath provides a very nice extensible web-based administrative interface. It is extensible both for function and branding. But it is rPath specific. I’d like to see an open source cross distro solution. One that was not only extensible but adds CIM based management features. This would make it easy to administer the CIM instrumented applications on the appliance, but also could allow it to be managed externally, but CIM enabled management tools. This would allow the appliance to play nicely in the data center. This is something that Xen is working toward.
World Autism Awareness Day
Today is World Autism Awareness Day, and as the father of an aspie, I’d like to encourage everyone to take a moment to learn a little more about Autism. 1 in 150 children are diagnosed with Autism.
There are some great resources out there to learn more about Austism:
- www.autismspeaks.org
- http://en.wikipedia.org/wiki/Autism
- http://en.wikipedia.org/wiki/Asperger_syndrome
Wired had a great article in February. CNN is doing a full day of coverage. And the Sundance Channel will be showing Autism Everyday.
First Person Shooter
My sons have fallen in love with PC Gaming. (They play Wii and XBox, but not with the same obsession as PC based games.) They used to just play the flash based online games from websites they would visit (cartoonnetwork.com, nickjr.com, etc.) Then their uncles introduced them to StarCraft and WarCraft. And they are hooked. One of the nice things is that I have been able to recycle some of my old games (RollerCoaster Tycoon, Sim City 3000, Nox). It has been fun seeing them explore these new virtual worlds. Taylor is super excited about the upcoming release of StarCraft 2 and dreams of one day working at Blizzard. Andrew wants to be a game designer. Everyother day they ask me how to write programs. These conversations lead to discussions on basic algebra, physics and even Object Oriented Programing. (Anyone interested in providing pre-release games for them to test or review?)
Today I thought that it would be fun to install one or two games on my machine for those times that I need at little escape. Big mistake. I installed a First Person Shooter (Return to Castle Wolfenstein) and within 5 minutes knew why I stopped playing. I loved first person shooters. I used to play network games with the guys I worked with at the Courts. It was a great break from work and a fun team building exercise. From time to time I would get a little motion sick. But today I got very motion sick. I am still suffering from a huge headache playing the game brought on. The quick jolting motion just seemed to much for me. Man I am getting old. Maybe if I take some motion sickness pills next time…..
Stuck in the ATL (Aay-Tee-el)
My flight out of Islip was delayed for weather. Once we hit the gate in Atlanta, I had two minutes before my connecting flight to Salt Lake was to leave. Needless to say, I didn’t quite make it. I hate the Atlanta Airport. I always have. I have yet to have a connection in Atlanta where first and second legs were both in the same terminal. (Try running with two kids in a double strolle, with all their carry-on, plus your own across 2 concourses. Not fun.)
So they put me up in a Comfort Suites. Not the nicest place, but it is a bed. Up at 5:30 to get my shuttle back to the airport. Now waiting for seat confirmation. I want to be on this flight. I am ready to be home. It is funny, I can complain about the noise the kids make…all the time….at home. But these trips bring home to me that I wouldn’t want it any other way. The quiet of the hotel gets to me. I love being able to sit down and have one of the kids to talk to. I love in the morning have Olivia come into my office, give me a hug, and ask for breakfast. I love talking computer games with with boys, or playing Go with Taylor. I love having Adrienne next to me. I miss her the most. It will be good to be back home.
Delta in-flight media center
On a plane, to New York, via Atlanta. On the way in, they were rebooting the in-flight media center. I was happy to see them running Linux. I tried to grab a picture, but it was at the end of the boot. This one of those rare conditions you want a reboot to grab a picture
System Inefficiencies
I’m going to try to hit on a couple of topics, mostly dealing with system inefficiencies. (I think I understand some system inefficiencies…I worked as a Systems Analyst for the US Federal Courts…let’s just say they are ripe with them.) These were all exposed during a visit to my local pharmacy.
Pharmacy
Here is a suggestion to streamline my interaction with you:
First, you are a huge nation wide chain, with interconnected systems, to allow transfer of valuable data between locations. This is awesome. No matter where I am in the country, if I need a refill of a prescription, by answering a few questions I can get that needed chemical for whatever ails me. But your work with my personal information is…well…dismal. I myself have not had to have a prescription filled in quite sometime. But I am a father of 6. I need lots of drugs for sick kids, and their mother. Pregnancy has never treated her well. It has, in half of the cases, been a violent, near death experience for mother and/or child.
In the last three years we have moved 3 times (across the country, across town and across the valley). There have also been three job changes, and three insurance changes.
My insurance company knows I have dependents and knows their relationship to me and it would be valuable if you did too. If you did, I wouldn’t have to expend valuable time each time I go to you for you to update insurance and address information. If I come in and tell you I have an insurance change, instead of changing it for just the individual I am filling a prescription for, ask me if this change needs to be applied across all the dependents (and myself) in the system. It is a simple enough database transaction across the records. It would be easy enough to even allow for the use case, where I need you to exclude changes to specific individuals. But over all, you get to cut down on the 20+ minutes I wait while you update an individuals records.
Ugh, this irks me. I am the owner of this information. I am an authority on this information, use my knowledge and my proximity to you at this point in time to update your records and improve the overall customer experience. I am willing to spend the time with you to do this once so I won’t have to do with each visit I make.
The insurance company
Now I am grateful to have insurance, and while the insurance I have now is not nearly as good as what I have had in the past, I am more grateful to have than to have not. However….I trust you, insurance company, magnitudes less than I trust my physician (especially my children’s pediatrician). I understand that you are trying to save me money, by saving you money. But, if my Physician, who I know and interact with, prescribes medication for my son to help him stay out of the hospital, saving you (and me) money, don’t second guess his recommendation and tell me I have to get a different prescription because you think that I should have one drug before I can have another.
You are a nameless, faceless machine. I have no trust relationship with you. You have in interest in my well being that keeps you in the black. But your primary interest is in your bottom line. You provide a valuable service. Thank you. But my physician is someone I have built a relationship of trust with. He take the time to help ensure my health and well being. When I see him outside of the office, he takes time to say hello and ask about me and my families well being. He has earned my trust so that I still drive through two different cities to see him.
You are a phone number, a card, a PO Box, a deduction on my paycheck, and a different voice each time I call for information or try to dispute your denial of my care. Please learn to trust my physician and maybe I will learn to trust you.


