Jun 3

I threw this together on a whim with odds and ends that I had lying around the kitchen.  Everyone had good things to say about it, so figured I'd capture it here.  This quick and easy (and healthy) stew took all of about 10 minutes to prep, and was ready to serve inside of 30.


  • 2 cans black eyed peas drained
  • 1 can fire roasted tomatoes
  • 1 14oz can chicken broth
  • 1 to 2 cups prepared chicken chopped (1)
  • 1/2 large sweet yellow onion sliced
  • 1/4 cup celery chopped
  • 1 red jalapeno pepper diced
  • 2 cloves garlic sliced
  • 1/2 tsp chili powder
  • salt and black pepper to taste
  • olive oil


Heat olive oil, add sliced onion and cook covered while preparing other ingredients.  Add celery, jalapeno pepper, and garlic, cover and cook until onion and celery are softened.  Add all other ingredients, cover and bring just to a boil.  Reduce heat and simmer for 15 minutes.  Serve hot and top with shredded white Mexican cheese blend and/or cubed avocado.

(1) I've really enjoyed keeping the Tyson Grilled & Ready frozen cooked chicken products on-hand.  Properly frozen, they maintain great shelf life and are very handy in a pinch - used in all sorts of dishes from soups and stews, to pastas and tacos, they greatly cut down on prep work and food waste due to spoilage.  Imparting a smokey grilled flavor, use of the product adds another dimension of flaovr to the dishes it is used in.  For this recipe, another alternative includes use of left over rotisserie chicken.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

May 21

Today I performed the Pathfinder's first brake job.  At around 50k miles, and some occasional squeal, it seemed a good time to perform some maintenance.

I went into the project cold, having not bothered to look for and review others experience and/or tutorials published on the various Nissan forums.  I expected, with the universal brake service kit I'd picked up some time ago at Harbor Freight that there is virtually no caliper which could defeat me.  As it turns out, a brake job on a late model Pathfinder is a breeze.  With the impact wrench to ease the tedium of tire removal and fitment, the entire job was done in approximately 90 minutes, and I dare say I could have completed the same in closer to one hour if only I had a proper floor jack.  Somehow, performing the same tasks on the Passat is grueling, and I've never been altogether satisfied with the results. 

In part, the work I did today on the Pathfinder is meant as a product test of EBC's "Green Stuff" brake pads. Provided the EBC pads perform as well as most claim in various reviews, I plan to fit them to Passat in due time - the economy pads that are on the car now perform at around 70% of what I would call acceptable.  For the Passat, I'll probably marry the Green Stuff pads to the EBC Ultimax rotors as the StopTechs on the the Passat now are getting pretty tired.

With only approximately 10 miles on the Pathfinder since the service work was performed, it's a little early to call final success.  However, I can say that even without proper bedding and run-in time, the the Pathy is feeling more responsive to the brake pedal than it did even when new.  So, it's looking good so far for the EBC product line.

A couple of notes for safe keeping - I was not able to find what I felt was an authoritative source for brake caliper torque specs, so I went with my gut of 90 ft lbs in the rear, and 100 ft lbs in the front.  I'd see other specs, which were all over the board, and seemed far too light - some as low as 35 ft lbs.  These were some hefty bolts hanging some large dual piston (in the front) calipers, with considerable rotational force, stopping a fairly heavy vehicle, and could hardly imaging less than 100 ft lbs in the front.

Second, as should always be done with alloy wheels, getting an even torque across all lug nuts is important - for this, I found a reasonable sounding working range and went with 95 ft lbs all the way around - though I noticed later today that America's Tire suggests 105 ft lbs in their chart posted online.  I'll have to decide tomorrow if that last 10 ft lbs warrants breaking out the tools fooling around with the car again tomorrow.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Apr 16

Straight out of the headlines, it seems I'm not the only one that finds Palin a little immature, and full of hot air...at least she's (apparently) not dragging others down in her own special brand of tomfoolery.

Palin 9yr Old Full of Hot Air

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Apr 2

Again, we settled on Disneyland as our Spring Break get-away destination.

I've been to plenty of amusement parks, but Disneyland (just like they advertise) truly is the "Happiest Place on Earth".  Customer service rules the day at Disneyland - from sun-up to sun-down (and late into the night...the place doesn't close until 12).  It never ceases to amaze me the attitude of every single associate that you interact with while in the park - from the moment you enter the security check point, the tone is set with genuine smiles and positive attitudes...and it never diminishes.

What amazes me more, is the effect that this has on the guests as a collective.  Where else could one expect to wait in-queue for upwards of an hour, often with young kids in-tow, and not be witness (or party to) complete societal meltdown?  I'm convinced that there is something infectious in the attitudes of the Disney-ites, which somehow inspire behaviors, that have otherwise become all too foreign in our interactions with others.  Stranger still is the willingness with which we, as customers, pay a dear premium to experience what amounts to this transformation in, and of ourselves.

If only we could all agree to adopt our Disney-inspired behaviors and attitudes as we pursue our day-to-day activities and interactions - perhaps then we could advertise "Happiest Place is Earth".

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Mar 19

I've recently finished reading A Thousand Splendid Suns by Khaled Hosseini.  This is an emotionally moving story, purely fictional, but not entirely out of the realm of reality/possibility in context of life faced by women in Afghanistan through more recent history.  This, I have on good faith by individuals who have lived extensively in, and around, the nation of Afghanistan, and who possess a global perspective on such matters.

A Thousand Splendid Suns is centered around the story of one woman's upbringing - from early childhood, to adulthood.  She endures many hardships as the bastard daughter, the enslaved wife, and finally, the liberated humanitarian.

Now, a story wouldn't be a story if it didn't possess a certain amount of drama, and a story like this one would not be such a riveting page-turner if so much drama were not compressed into the life of a single primary character, such as it is.  However, through extrapolation, one stands to gain insight into the conditions which have defined the lives of women in Afghanistan through recent history.

I definitely put A Thousand Splendid Suns on the must-read list as a horizon-expanding, thought-provoking story of human endurance.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Mar 3

I don't post in this category as often as I should - I do tend to read a lot, but often can't (or won't commit to) find the time to note my observations here...well, I found the time tonight:

In Death by Meeting, Patrick Lencioni lets an engrossing personal tale of a CEO's struggle to save his newly acquired company play out to a happy ending by providing a model for, and illustrating the value of effective communication and leadership.

Death by Meeting is fictional, but the problem addressed is very real, and the solution through which it is addressed is invaluable in today's world of too-many/all-too-ineffective meetings.

I've read Death by Meeting twice, and plan to re-read every three to five years as refresher.  Some may argue that it has a diminishing place in the world of 24x7 global organizations - I submit that the principles remain the same regardless, and are of even greater importance in such a world.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Feb 26

I happily received my invitation to the Instagram API developer's party the other day, and have since carved a few moments to give it a once-over.  Sadly, there is no shrink-wrapped PHP class or port - only Python and Ruby.  Ruby is a foreign language to me, and Python is not an altogether foreign language, but at least a dialect that I'm not completely at home with.  It's unfortunate that PHP wasn't considered as part of the initial API release, and seems more unfortunate in that one enterprising individual released a PHP Instagram API prior even to the Instagram team doing so themselves.  Unfortunately, it seems that the author has been blackballed by the Instagram team to some degree, his API rendered "rogue", and future of his efforts left uncertain.

I'm determined to wait and see how things shake out.  Soon enough, I predict that an official port of the API will be available in PHP.  I only hope that in doing so, consideration is made for making it fully portable with no secondary dependencies (PEAR comes to mind) outside of the core PHP - it should be supremely simple, like any good PHP app is.  For now, I'll poke around a bit at the Python package, and forgo and real work towards an S9Y module.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Feb 21

A need has recently arisen which has sent me on a mission to explore the vast sea of directory listing scripts that are floating about.  I'd briefly considered writing my own from scratch, and possibly do so as an S9Y plugin, and I may still do so one day.  If done, I'm envisioning a pop-up panel in jQuery which, passed the appropriate directory as a variable, would give a tidy tabular listing of available files for download.  An option would include a sidebar panel which included a select list of available indexed directories, where when selected, the links to the files contained would be displayed in the sidebar panel.

But alas, there are many off-the-shelf options available, and I've far too many priorities at the moment to trouble myself with such an effort.  My search for the simplest, most functional directory listing script landed on Greg Johnson's "PHPDL" or "PHP Directory Lister" script.  Of all that I looked at, Greg's was the best marriage of function, simplicity, and lightness of weight.  Completely self-contained, index.php delivers not only the UI framework and backend PHP directory reader, but all of the supporting collateral as well.  This is to say that various icons and images used throughout the script are stored as binary encodings within, as are the javascript libraries, and so on.  Not many folks use this approach (I've done this only a time or two), which is unfortunate as it makes for cleanliness and supreme portability.

I did, naturally, feel compelled to make one or two (or three) minor changes.  These include:

  • Re-theme to compliment the i3theme of the site.
  • Add sorting via jQuery.TinySort.
  • Prevent indexing of .htaccess.

The re-theme was fairly straight forward, mainly adjusting colors, and the usual.  However, in keeping with the i3theme's rounded corners look, and the script's incorporation of all image collateral within the body of the script itself, I pulled the top and bottom (image) borders out of i3theme, base64 encoded them, and included them within the body of the script.

Adding table sorting via jQuery.TinySort was straight forward as well.  As Greg includes jQuery already within the script, it was only a matter of packing TinySort, then base64 encoding it for a reduction of 1300 characters, and from 127 lines to only one.

Preventing the indexing of .htaccess was a simple hack within the body of the script where it already evaluates exclusions such as the script itself and references to the parent directory.

The styling could use some further tidying up - I was mostly going for quick and dirty, and am quite sure that I've left some irrelevant CSS in place...perhaps a project for another rainy day.  In the meantime, I've left all of the original credits in place, and put the work I've done here.  Look for phpdl-i3themed.zip.


Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Feb 13

A couple of days ago, I was interviewed as part of a screening for a consumer focus group panel.  I found one of the questions that I was asked to be particularly intriguing - "If you could write a book on any topic, what would the topic of your book be?".

Naturally, I gave some inane response that included writing a book about the merits of UI design for web apps, and how it's this, and that, and something something.  Never mind the fact that books about web design probably never get written, and those that do, probably never ever get read.

This question did get me to thinking though - so here goes.  The real answer to the question "if I could write a book, what would the topic of my book be?":

The subject of my book would explore the paradox that is the demand and perceived reward for the ever-increasing speed and depth of the delivery of information, and the impact and consequences of this on our global society, long term well-being, and sustainability as a species. 

I would submit that there is a theoretical tipping point at which society no longer benefits from accelerating rates and depths of information exchange.  Rather, it does greater harm than good in context of our general well-being, and could well culminate in catastrophic collapse, yet the thirst for the very same information is unquenchable and drives a pace for obtaining it which will never remain static.

So there you have it - sounds a bit like a Charles Handy dissertation.  Indeed, I think he is one individual who could have done the topic justice - perhaps him or Malcolm Gladwell.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Feb 13

I finally got around to re-enabling the iPhone theme for zenPhoto.  This was a task of minor importance that I've been meaning to address since upgrading to ZP 1.4.  I had anticipated more problems with the theme in ZP 1.4 than I actually encountered.  As it turns out, there were one two deprecated functions to deal with, and I learned of an effort underway to build mobile-detect plugin for zen which serves-up an admin-definable theme for a wide variety of mobile platforms.

First the mobile-detect plugin - I've installed this in dev for the moment and deployed the iPhone theme to production using the original iPhone-detect hack which involves a slight modification to one of the ZP core files (functions.php).  As I've already touched other core(ish) files, I figure one more small modification in functions.php isn't going to make my life any more complicated at upgrade-time than it already is.  One day, I plan to revisit the mobile-detect plugin for it's do-it-the-right-way approach, and it's broader detection and handling capabilities.  For now, this zen plugin can be found here.

Now, the minor adjustments needed to bring the theme into ZP 1.4 compliance.  The two deprecated functions are "normalizeColumns()" in normalizer.php, and "zenJavascript()" in album.php, gallery.php, image.php, index.php, and login.php.  "normalizeColumns(1, 4)" should be replaced with "setThemeColumns(1, 4)".  "zenJavascript()" should be replaced with "zp_apply_filter('theme_head')".

As I'd written about in a previous post on the topic of incorporating a login into the iPhone theme to support private albums, I found a couple of new spots where superfluous information in the album titles was getting in the way of a clean UI.  I'm not sure at what point I missed this, or something changed in a more recent release, but sweep of the same five files listed above requiring the replacement of zenJavascript() revealed a handful of instances where getAnnotatedAlbumTitle() needed replacing with getBareAlbumTitle() - quite simply, I replaced each and every instance.

Here's the finished product, implemented against ZP 1.4, looking much the same as it did for ZP 1.3 - which is a very good thing.Smile

iPhone Theme for ZP 1.4

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Feb 5

Looking for the latest and greatest in the genre of Hipstamatic, I've recently found Instagram.  Like others, this mobile photo post-production app is namely about the application of filters which endeavor to add a certain character to the image, thus giving the photos the appearance of having been shot in the 60's and 70's on low-grade photog equipment.

As of version 1.12.1, there are 15 different filters to choose from, each yielding one pleasant effect, or another - ranging from a greyscale conversion to yellowed and weathered with degraded border.  Applying filters is incredibly easy - take a photo within the app, or select one from your existing roll, size and center the image as-needed, apply the filter of your choice, and save the image.  The "save" process does three things - saves the filtered image to your camera roll (as a new image), pushes your image to your Instagram account, and gives the option to push the image (or a notification) to one or more of a number of different social networking sites (Facebook, Twitter, Flickr, etc).  One can configure their Instagram account as "private" to prevent the world from viewing their photos.  Also, I've since discovered a process workaround whereby a filter can be applied to a photo, and the photo saved back to the camera roll, but where no push occurs to any configured account (including Instagram).  Quite simply, choose your photo, apply your filter, and at the screen where you would normally tap "next" save and push your photo, instead tap "back" and exit the application.  You'll find that your filtered photo is saved to your camera roll, but not pushed to Instagram or any of your configured networking sites/accounts.

Enough of the technical - what I find amazing is the degree of artistry exhibited by the Instagram community as I browse albums.  Where one might expect to find a great deal of garbage, subjects of questionable nature, and so on, instead the content is amazingly clean, and the apparent skill of Instagrammers world-wide astounds me.  Now, it should be assumed that not all photos taken were done so via the iPhone (remember, Instagram has access to your camera roll, which can be populated with any jpg image via upload); however, I'm giving the benefit of the doubt and tend to believe that most photos taken by the Instagram community are done so via the iPhone.  Under the circumstances, this subject has to be a major consideration in context of the future direction of photography - it would be interested to hear an open-minded veteran professional's opinion on how this type of mobile post-production app is having (and will continue to have) on the future of photography.

Now, Instagram is not without its shortcomings - album browsing is tedious at best, making the "most popular" list the only realistic way to simply browse photos/albums.  There is a tag search, but the effectiveness is highly dependent on the author's diligence in tagging, and is a marginal attempt at addressing casual browsing.

What's next in my world for Instagram?  Well, the company has just announced plans to release their first official rev of Instagram API - I've already cast my bid for access, and fully intend to build a simple feed for S9Y, and I can't wait, because I'm addicted to this silly app! Cool

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Jan 31

I spent a few minutes this evening working out the problem of why my mobile blogging apps refuse to display my category information, and am happy to report that I've resolved the issue.

At some point, I'd written about this before, and back-burnered the issue for more pressing matters.  I figured it was due time to put the problem to rest, so did a bit of digging.  In the end, the solution proved a simple one, though a little perplexing to someone (me) who doesn't have a very firm grasp of the various XMLRPC API floating about.

First a little background:
In BlogWriter, there were always as many blank category list items as there were categories (so I knew it was getting somewhere), and in BlogPress, the app would just crash when trying to fetch the categories.  Meanwhile, DeepestSender for Firefox did everything it was supposed to do.

Narrowing the problem space:
I narrowed the problem down to the metaWeblog_getCategories function in serendipity_xmlrpc.inc.php (this can be found in the plugins/serendipity_event_xmlrpc directory).  Look at, or around, line 182.

The solution:
Changing 'description' to 'categoryName' does the trick for both BlogWriter and BlogPress - however it does break DeepestSender. No telling what other desktop authoring apps this change would break, but it fixes the mobile apps, and that's all I personally care about.

    foreach ((array) $cats as $cat ) {
        if ($cat['categoryid']) $xml_entries_vals[] = new XML_RPC_Value(
//              'description'   => new XML_RPC_Value($cat['category_name'], 'string'),
//  PigsLipstick: change 'description' to 'categoryName' to support mobile publishing
              'categoryName'   => new XML_RPC_Value($cat['category_name'], 'string'),
              'htmlUrl'       => new XML_RPC_Value(serendipity_categoryURL($cat, 'serendipityHTTPPath'), 'string'),
              'rssUrl'        => new XML_RPC_Value(serendipity_feedCategoryURL($cat, 'serendipityHTTPPath'), 'string')

The results:
BlogWriter for iPhone is now treating me quite well.  I can author, assign categories, and publish with no problem.  Sadly, the richer BlogPress app still falls short by failing to publish...categories function now (without crashing the app), but a new article will only get as far as draft mode.

//  PigsLipstick: change 'description' to 'categoryName' to support mobile publishing

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Jan 23

I've had my sights set on a Sonicare electric toothbrush for quite some time now.  It's hard to come to grips with the prospect of shelling out $70, $100, even $150 for something as inane as a toothbrush - especially when you're accustomed to paying no more than $5 for 2-pack of generic Safeway brand brushes.  This was a luxury that I was biding my time for, and finally found myself in the right place (Target), at the time (during a promotion), and was able to obtain my quarry at the right price ($55).

Mine would be the model 5300 Sonicare Essence.  This would be considered the entry-level brush which lacks some of the superfluous features, and slimmer design of the much pricier models available.  However, after reading numerous reviews, and considering the total amount of time spent brushing my teeth each day, the basic model seemed capable enough of fulfilling its duty.

My purpose in obtaining and committing to use the Sonicare was namely to eliminate the slow and unstoppable onslaught of plaque, to restore gum health, and to see if the unit could actually affect whiter teeth without having to resort to costly whitening strips which seem to have a short-lived impact.

Now, I've had the Sonicare for all of two days, but can already attest to its remarkable ability to eliminate plaque - in fact, I'm amazed at its ability to make plaque simply disappear.  Gum health will take longer to assess, I'm sure, but in only a few days, I've enjoyed pinker, healthier looking, and better feeling gums already.  Oddly enough, the intense vibration of the Sonicare against the gums is such a pleasant sensation that I find myself looking forward to bushing, and brushing longer as a result.  The jury is still out on the Sonicare's ability to yield whiter teeth, but I'm confident for its ability to eliminate plaque, that whiter teeth will come as a result.

Prior to use, and now proven, I'd picked up a couple of pointers.  First, not to turn on the Sonicare until it was loaded with toothpaste and actually resting against your teeth - turning it on prematurely will send atomized toothpaste in all directions at once.  Second, turn off the Sonicare prior to removing it from your mouth (see previous, replacing "toothpaste" with "saliva").  Third, learn to position your head so that your mouth-drippings don't flow down the body of the toothbrush - the Sonicare is a nearly-sealed-unit except for the joint where the brush head attaches...in this spot, your slimy used toothpaste will collect if given the chance.  Finally, take care not to touch the brush head against your teeth directly, especially against particularly sensitive teeth or dental work, as the exceptional rate of vibration of the Sonicare feels almost like an electrical shock when this happens unexpectedly.

Though I still classify the Sonicare as a luxury item, for its price alone, I'm quite pleased with the investment, and promote its use to those who can afford to part with some cash.  I can hardly conceive of paying much (if any) more than I did - I do wish that the entry level model had a price point of around $49.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Jan 22

I have a renewed appreciation for watch makers having just completed an iPhone 4 tear down for screen replacement.

From memory, I recall on the order of 25 micro-screws that hold the contraption together.  Though beautiful in its simplicity, having one two external screws, all the rest are buried in layer upon layer of intricate internals.

I used this video as my guide and found it to be very accurate aside from one extra shield in place which rest beneath the battery connector and secures the speaker connector.  I took it slow and easy - dis-assembly was roughly a 20 minute endeavor.  Reassembly took about 45 minutes.

There was a valuable lesson learned in this exercise.  It's hard to find a source of truth on this topic, so let this be it...  The iPhone 4's multilayer screen (glass + digitizer + lcd + backlight) is, for all intents and purposes, a sealed unit - and while you can purchases a glass + digitizer unit, I'm not convinced that any amount of reasonable effort will release the lcd + backlight from the screen which is being replaced.  You can trust me on this - I tried a number of things to break the bond between lcd and digitizer and was nowhere near successful.  Now, you can purchase the lcd + backlight to accompany a separate glass + digitizer, but I'm not sure that there is really any logic in such an approach.  Better to shell out the $100 and get the fully assembled sealed unit - you'll thank me in the end.  (Note: I think, but am not certain, that the iPhone 3 series did not have a bonded screen assembly - in other words, you could replace just the glass + digitizer, which makes it a much cheaper proposition.)

Another tip - don't bother purchasing separately, or going out of your way to purchase a screen replacement kit which includes the (less than) handy tools.  Since the glass screen is probably broken anyway, the plastic prying tools aren't all that necessary as you won't be too worried about lifting the glass screen without damaging it.  Plus, you'll probably find that the screwdrivers are a size or two too large to fit the tiny screws properly.  Do yourself a favor and pick up a decent set of jewelers screwdrivers, and look for a set that contains at least a size 00 philips.  I picked up this kit by General - it wasn't cheap, but I'll have it for the rest of my life, and I'll use it frequently enough (mfg # 63518):

General Tools mfg#63518

I'm including a picture of the actual phone in its fully torn-down state.  Notice the pen and tweezers for perspective as compared to the tiny little screws in the ramekin.

iPhone 4 Tear Down

I should point out - the screws in the ramekin are organized...per the video, which breaks dis-assembly down into logical steps, I grouped the screws as a removed them in a counter-clockwise fashion so that I could easily determine which screws went where as there are at least eight different sizes as I recall.

In the end, I wouldn't recommend this project to someone who lacks patience and steady hands - good eyes are a benefit too. Cool

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

Jan 8

The zen team has released version 1.4, almost concurrent with the completion of my virtual postcard package.  I've dropped 1.4 for compatibility testing and it seems that all is well aside from the use of a deprecated function (isMyAlbum) used in controlling access to the virtual postcard UI.

So, instead of including zen_postcard_ui.php on condition of "if (isMyAlbum($_zp_current_album->name, EDIT_RIGHTS))", and because I've since determined that these rights are too strict anyway, better to use "if(zp_loggedin(POST_COMMENT_RIGHTS))" which has the effect of making virtual postcards available to users who have permissions to post comments.

The updated readme now reads (excerpt):

5. I don't want to permit the world to send postcards (potentially spam) from my gallery,
so I lock down postcards to folks that I also trust with comment rights.  This is the final
block to include zen_postcard:
        <?php if(zp_loggedin(POST_COMMENT_RIGHTS)) {

I've revved the package to 1.1 and retained the original download point.

Posted by Adam KrauseGo w.i.d.eTweet MeShort URL

(Page 2 of 22, totaling 321 entries)

Strict Standards: Declaration of serendipity_event_s9ymarkup::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_s9ymarkup/serendipity_event_s9ymarkup.php on line 146

Strict Standards: Declaration of serendipity_event_s9ymarkup::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_s9ymarkup/serendipity_event_s9ymarkup.php on line 146

Strict Standards: Declaration of serendipity_event_emoticate::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_emoticate/serendipity_event_emoticate.php on line 204

Strict Standards: Declaration of serendipity_event_emoticate::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_emoticate/serendipity_event_emoticate.php on line 204

Strict Standards: Declaration of serendipity_event_nl2br::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_nl2br/serendipity_event_nl2br.php on line 395

Strict Standards: Declaration of serendipity_event_nl2br::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_nl2br/serendipity_event_nl2br.php on line 395

Strict Standards: Declaration of serendipity_event_browsercompatibility::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_browsercompatibility/serendipity_event_browsercompatibility.php on line 80

Strict Standards: Declaration of serendipity_event_spartacus::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_spartacus/serendipity_event_spartacus.php on line 1183

Strict Standards: Declaration of serendipity_event_imageselectorplus::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_imageselectorplus/serendipity_event_imageselectorplus.php on line 1105

Strict Standards: Declaration of serendipity_event_imageselectorplus::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_imageselectorplus/serendipity_event_imageselectorplus.php on line 1105

Strict Standards: Declaration of serendipity_event_sidebarlogin::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_plugin_sidebarlogin/serendipity_event_sidebarlogin.php on line 148

Strict Standards: Declaration of serendipity_event_popfetcher::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_popfetcher/serendipity_event_popfetcher.php on line 1426

Strict Standards: Declaration of serendipity_event_lightbox::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_lightbox/serendipity_event_lightbox.php on line 281

Strict Standards: Declaration of serendipity_event_lightbox::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_lightbox/serendipity_event_lightbox.php on line 281

Strict Standards: Declaration of serendipity_event_tinymce::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_tinymce/serendipity_event_tinymce.php on line 291

Strict Standards: Declaration of serendipity_event_tinybrowser::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_tinybrowser/serendipity_event_tinybrowser.php on line 150

Strict Standards: Declaration of serendipity_event_prettify::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_prettify/serendipity_event_prettify.php on line 245

Strict Standards: Declaration of serendipity_event_xmlrpc::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_xmlrpc/serendipity_event_xmlrpc.php on line 160

Strict Standards: Declaration of serendipity_event_podcast::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /home1/pigslips/public_html/s9y/plugins/serendipity_event_podcast/serendipity_event_podcast.php on line 939

Strict Standards: Non-static method TwitterPluginFileAccess::get_permaplugin_path() should not be called statically, assuming $this from incompatible context in /home1/pigslips/public_html/s9y/plugins/serendipity_plugin_twitter/serendipity_event_twitter.php on line 1554

Strict Standards: Non-static method TwitterPluginDbAccess::load_short_urls() should not be called statically, assuming $this from incompatible context in /home1/pigslips/public_html/s9y/plugins/serendipity_plugin_twitter/serendipity_event_twitter.php on line 1518