I wanted to take a few minutes and let all of you know about an organization I had the pleasure and honor of working with recently.  I have worked with similar organizations previously however there was something truly special about this organization.  This organization was Heavenly Driven Disaster Relief website here.

About HDDR

Basically HDDR is a non-profit organization which want to help people afflicted by disasters, they have been all over the world working in disaster areas trying to help people clean up and rebuild their lives.  At the center of this ministry is Albert Knight, he is a contractor with a passion for helping people.  He coordinates volunteer teams of all skill levels to complete the work that is being done under the organization.  While HDDR is a Christian Organization they do not require volunteers have an affiliation with a specific church or even religion.  People of all faiths and lifestyles are encouraged to get involved.  Another thing that HDDR does differently is they really try to defray some of the costs of your participation in the relief efforts.  They are able to provide housing and food for groups, leaving you with only the costs associated with getting there.

About Al

We came to work, and to be honest Al didn’t expect alot from us, all he really wanted was 8AM – 4PM so he was surprised when our crew went back out after dinner (most nights) to finish up some jobs.  But the really important thing for you to understand about Al, is that he really burns for this ministry.  While this is in his backyard.  This is by no means without sacrifice for him.  Al has a home in Philadelphia, PA but during the week he is living with the volunteers in Atlantic City, NJ so that they can get an early start.

Lessons Learned

Al runs a really tight ship.  We lead a team of 9 to New Jersey from Dallas, TX.  This was a 25-27 hour drive.  We had two pickups one of which was packed to the gills with tools and gear.  Looking back we brought too much.  Al already had most everything that was needed.  That said I would recommend that everyone who plans on going forget all of the tools that they think they will need (Al has all of those) and instead focus on having a basic toolkit for each member of your team.

  • Tool Belt / Leathers
  • Hammer
  • Tape Measure
  • Carpenters Pencils (at least 3)
  • Utility Knife or Break-Away Razor
  • 1 each Phillips and Standard Screwdriver
  • Work Boots (steel toe)

Now had we packed the above we would have needed one storage box which could have held all of these, instead of half of a pick-up bed.  And honestly the only other things that we used were things that Al already had (skil saw, nail gun, miter saw) but we used ours because the pickup was 10 feet closer than the trailer.

How Can I Help?

Oh here it comes, the part where he tries to pry money out of my wallet…  Honestly though, HDDR and Al don’t want your money.  But they do need your skilled or unskilled labor.  They really can work with all skill levels, and they will put you to work at a level where you feel comfortable and challenged, so you won’t just be picking up garbage.  He takes the time to show you what to do, and then he lets you run and do it.  Now all that said if you are not able to give of your time but you’d like to give of your resources instead they will be more than happy to receive that donation and will make sure that it is maximized.  You have a couple of options…

  1. Buy a shirt or sweater on the HDDR website
  2. Make a cash donation, or a donation of specific supplies and gift cards
  3. HDDR is working on getting PayPal set up so that they can streamline the donation process, in the interim if you’d like to make a donation to them through my site using the link on the bottom of this post please feel free to do so.  Note: if you choose to do so please understand that I will forward the money to HDDR as quickly as possible (I would guess they should be able to have it inside of a week and a half based on clearing times) and I encourage you to coordinate with HDDR to ensure that the money is received (and that you get all appropriate tax receipts).

The Videos

We had some guys with us who are creative geniuses who were able to capture quite a bit of great footage and edit it together into daily videos.

 

January 16th, 2013 | Tags: , , ,

The past couple of weeks I have been dealing with a fairly aggravating issue at home.  My wife has a Windows 7 laptop which for some reason started printing everything repeatedly (repeatedly being defined as forever and ever until the bottom of the paper tray was found).  Our printer in particular is a HP Laserjet 1022n which is connected to the network, and my wife’s computer connects via the network directly (as in not using any print server to mediate the jobs).  When this was occurring and looking at the print queue I was seeing the one job, however the job kept flashing (or perhaps blinking) and it seemed like the job was being continuously restarted.  This would even happen for test pages.  The only other machines in the house are Linux/Unix and none of them had the same issue so it didn’t appear to be caused by the printer itself.  One other detail was that I purchased this printer new in 2005 and it has been working just fine since then, with this computer and others.

Things I Tried

  • Updating the Windows 7 Print Driver
  • Updating the Printers Firmware
  • Deleting the Printer and Recreating it in Window

None of the above “fixed” the problem.  However I was able to find a solution.  The problem apparently was Bi-Directional Support.

  1. Click on Start
  2. Select Devices and Printers
  3. Right Click on the Symptomatic Printer
  4. Select Printer Properties
  5. Click on the Ports Tab
  6. Uncheck Enable Bidirectional Support
  7. Click Apply and Re-Test

 

January 15th, 2013 | Tags: , , , ,

I personally use Crashplan for my cloud based backups (I have for over a year).  I use them because they are one of a few (to be honest the only one) who actually have Solaris installers.  The one downside of this is that they do not start the CrashPlanEngine by default (as a service).  However when using the Service Management Framework in Solaris this is really easy to handle yourself…  For more details how to handle the SMF portion refer to my article “Solaris 11: Defining A Service Using Svcbundle and the SMF” which goes into much more detail on this subject.

Install Crashplan Application

#mv CrashPlan_2010-03-08_Solaris.tar.gz /var/spool/pkg/
#tar -xzvf CrashPlan_3.4.1_Solaris.tar.gz
#/usr/sbin/pkgadd

Create a Service Bundle

# svcbundle -o crashplanengine.xml -s service-name=application/crashplanengine -s model=daemon -s start-method="/opt/sfw/crashplan/bin/CrashPlanEngine start

Import the Service Bundle

# mv crashplanengine.xml /lib/svc/manifest/site/
# svcadm restart manifest-import

Check the Status of our Service

# svcs -a | grep crashplan
online         14:38:53 svc:/application/crashplanengine:default

Since I have done this my Crashplan service has been much more stable and my backups have been completing more reliably.

REF: http://support.crashplan.com/doku.php/getting_started/installing_crashplan

January 14th, 2013 | Tags: , , , , , , , ,

Lately I have been going through an exercise of migrating all of my current services into Solaris 11 (more specifically a zone).  I have already been using similar technology on the Linux side, I use OpenVZ with a mix of Linux distributions.  However I would like to take advantage of ZFS and get a little more simplicity in management. One of the most important hurdles to overcome when making the move from Linux to Solaris is simply the execution of services or processes.  Now in Linux you would write a little init script and then set it to run at certain run levels by either using chkconfig or creating symbolic links into runlevel directories.  For an example of what these init scripts would look like you can see my article “Bash: Automatically Mount File Systems on a Volume Group if Present“.  Now I could simply port my script to run under Solaris (and use the existing rc.d symbolic linking which also exists), however this methodology only starts and stops services on a change of run level and it doesn’t actually do anything to ensure that these services stay up.

Enter the Service Management Facility (SMF) which is built into Solaris starting in Solaris 10.  Basically the idea is that starting and stopping services is similar enough from service to service, that why should we be writing/modifying scripts from service to service.  Why not simply tell it what command to run when starting and then the SMF does the heavy lifting.  The biggest benefit of this is that the SMF can work with other Solaris components to detect the failure of a service and then automatically start it again, making these services more resilient.  This is accomplished by simply acknowledging that services are not simply user processes and thus should not be treated as such.

Now as an example I have moved my mercurial repositories from Linux to a Solaris zone, mercurial has a functionality which can share repositories via HTTP.  This can be done ad-hoc by simply executing the following command.

Determine the Command to Execute

$ hg serve

This will share via HTTP on port 8000.  Now this isn’t entirely how I want it to operate so lets start by creating a configuration file to change some options.

root@source:~# more /etc/mercurial/hgpub.config
[paths]
hg/ = /rpool/repo/hg/pub/*

[web]
allow_archive = gz

So now to reference the above configuration file we need to modify the command we will execute.

$ hg serve --webdir-conf /etc/mercurial/hgpub.conf

Now we are getting closer.  Another thing I like to do is define the port number, even though I am using the default of 8000.

$ hg serve --webdir-conf /etc/mercurial/hgpub.conf -p 8000

Now we need to use the daemon mode flag to start this in the background and not the foreground.

$ hg serve --webdir-conf /etc/mercurial/hgpub.conf -p 8000 -d

A final test will reveal that we are ready to turn this process into a service.  Kill the service that you manually started.

Create a SMF Bundle

SMF Bundles are XML files which will tell the SMF what to do and when.  You can either copy one that is for another service and modify it to suit or you can use svcbundle to create one specific to your requirements.

# svcbundle -o hgpub.xml -s service-name=application/hgpub -s model=daemon -s start-method="/usr/bin/hg serve --webdir-conf /etc/mercurial/hgpub.config -p 8000 -d"

Inspect and Modify the SMF Bundle

# cat hgpub.xml
<?xml version="1.0" ?>
<!DOCTYPE service_bundle
SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
Manifest created by svcbundle (2013-Jan-04 21:10:40-0600)
-->
<service_bundle type="manifest" name="application/hgpub">
<service version="1" type="service" name="application/hgpub">
<!--
The following dependency keeps us from starting until the
multi-user milestone is reached.
-->
<dependency restart_on="none" type="service"
name="multi_user_dependency" grouping="require_all">
<service_fmri value="svc:/milestone/multi-user"/>
</dependency>
<exec_method timeout_seconds="60" type="method" name="start"
exec="/usr/bin/hg serve --webdir-conf /etc/mercurial/hgpub.config -p 8000 -d"
/>
<!--
The exec attribute below can be changed to a command that SMF
should execute to stop the service.  See smf_method(5) for more
details.
-->
<exec_method timeout_seconds="60" type="method" name="stop"
exec=":kill"/>
<!--
The exec attribute below can be changed to a command that SMF
should execute when the service is refreshed.  Services are
typically refreshed when their properties are changed in the
SMF repository.  See smf_method(5) for more details.  It is
common to retain the value of :true which means that SMF will
take no action when the service is refreshed.  Alternatively,
you may wish to provide a method to reread the SMF repository
and act on any configuration changes.
-->
<exec_method timeout_seconds="60" type="method" name="refresh"
exec=":true"/>
<!--
We do not need a duration property group, because contract is
the default.  Search for duration in svc.startd(1M).
-->
<instance enabled="true" name="default"/>
<template>
<common_name>
<loctext xml:lang="C">
<!--
Replace this comment with a short name for the
service.
-->
</loctext>
</common_name>
<description>
<loctext xml:lang="C">
<!--
Replace this comment with a brief description of
the service
-->
</loctext>
</description>
</template>
</service>
</service_bundle>

Here we can add a service common name and description to make our service a little easier to use.

1# cat hg-pub.xml
<?xml version="1.0" ?>
<!DOCTYPE service_bundle
SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
Manifest created by svcbundle (2013-Jan-11 11:43:52-0600)
-->
<service_bundle type="manifest" name="application/hgpub">
<service version="1" type="service" name="application/hgpub">
<!--
The following dependency keeps us from starting until the
multi-user milestone is reached.
-->
<dependency restart_on="none" type="service"
name="multi_user_dependency" grouping="require_all">
<service_fmri value="svc:/milestone/multi-user"/>
</dependency>
<exec_method timeout_seconds="60" type="method" name="start"
exec="/usr/bin/hg serve --webdir-conf /etc/mercurial/hgpub.config -p 8000 -d"
/>
<!--
The exec attribute below can be changed to a command that SMF
should execute to stop the service.  See smf_method(5) for more
details.
-->
<exec_method timeout_seconds="60" type="method" name="stop"
exec=":kill"/>
<!--
The exec attribute below can be changed to a command that SMF
should execute when the service is refreshed.  Services are
typically refreshed when their properties are changed in the
SMF repository.  See smf_method(5) for more details.  It is
common to retain the value of :true which means that SMF will
take no action when the service is refreshed.  Alternatively,
you may wish to provide a method to reread the SMF repository
and act on any configuration changes.
-->
<exec_method timeout_seconds="60" type="method" name="refresh"
exec=":true"/>
<!--
We do not need a duration property group, because contract is
the default.  Search for duration in svc.startd(1M).
-->
<instance enabled="true" name="default"/>
<template>
<common_name>
<loctext xml:lang="C">
hgpub
</loctext>
</common_name>
<description>
<loctext xml:lang="C">
Mercurial Web Server for Public Repositories
</loctext>
</description>
</template>
</service>
</service_bundle>

Import the Service Bundle

# mv hgpub.xml /lib/svc/manifest/site

Now just restart the manifest-import service to pick up the service.

# svcadm restart manifest-import

Now we can check for unhealthy services by using the below command.

# svcs -xv
svc:/system/manifest-import:default (service manifest import)
State: offline since January 11, 2013 12:02:15 PM CST
Reason: Start method is running.
See: http://support.oracle.com/msg/SMF-8000-C4
See: man -M /usr/share/man -s 5 smf_bootstrap
See: /var/svc/log/system-manifest-import:default.log
Impact: This service is not running.

Above shows you what you will see if you check the services to quickly, you will see the manifest-import service itself in a non-running state, this is due to the import.  Give it a couple seconds and try again and it should clear.

I also saw errors when I did the following.

  • Created Services with port conflicts
  • Forgot to put the service into daemon mode in the command (use & or nohup for utilities/servers which do not have a daemon mode parameter)
  • Created Services with duplicate names

Below is an example of the output that I got when I forgot to put the service into daemon mode.  The log file mentioned gives much more information on what is actually happening, in this case it is starting it, waiting, and then killing it, over and over again.

# svcs -xv
svc:/application/hgpub:default (hgpub)
State: offline* transitioning to online since January 11, 2013 11:58:49 AM CST
Reason: Start method is running.
See: http://support.oracle.com/msg/SMF-8000-C4
See: /var/svc/log/application-hgpub:default.log
Impact: This service is not running.

If you make a mistake and want to start over then you need to

  1. Disable the service (svcadm disable hgpub)
  2. Delete the service (svccfg delete hgpub)
  3. Delete the service bundle in /lib/svc/manifest/site/ (rm /lib/svc/manifest/site/hgpub.xml)
  4. Restart the manifest-import service (svcadm restart manifest-import) - I think a refresh would work here as well, but I have not tested that

REF: http://mercurial.selenic.com/wiki/hgserve

November 19th, 2012 | Tags: , , , ,

The Problem

I own both a Google Galaxy Nexus (the phone) and a Google Nexus 7 (the tablet). Both of these devices have served me well in the time I had them. Until the Over-the-Air update for Android 4.2 on my Galaxy Nexus. This really ruined my day. Basically the long and short of it is that the battery took a nose dive after installing this update. Immediately I went from a full day of battery life (only charging it while I slept) to approx 3 hours of battery life. As soon as that happened I changed my email checking settings to manual, so that it would not constantly poll, I also disabled wifi, bluetooth etc. However there was a little gem of information in the Battery Usage reports. Basically it was reporting that ~85% of my battery was being used by “Exchange Services” no longer was the screen the biggest consumer of my juice.

After disabling all of these “extra” services my battery report changed a bit, basically Exchange Services went to ~81%. Still flatly unacceptable. Especially considering that this would only give approximately 5 hours of battery time.

The Solution

Delete your ActiveSync Mail Account, and re-add it. Before you do this make sure you look over your Sync settings so you know what you are Syncing (email, calendars, contacts) so that you can reconfigure your Sync settings appropriately.

Now I am back to once a day charging except on the heaviest of conference call days.

REF: http://code.google.com/p/android/issues/detail?id=39728

Page 3 of 2312345...1020...Last »
TOP