Monday, November 01, 2010

PicasaUploader to Facebook Problems

So, this is semi-tested theory that hasn't let me down so far.  I use the PicasaUploader App in Facebook to get my pictures from Picasa to Facebook's Photos with frustrating intermittent success.  Sometimes it would go through the process perfectly and others it would never open the browser to do the last step that confirms the upload.  After playing around a while, it seems that <= 9 pictures is the key.  Try uploading 10 or more and it fails, but 9 or below is fine.  I dunno, it sounds arbitrary and strange, but this has worked so far for me.  I post this here in case someone else is having similar problems maybe they'll find this and confirm it.  YMMV.

Friday, October 29, 2010

First class link relations

The original proposal had link types:

"it is useful for the system to be aware of the generic types of the links between items (dependences, for example)... without imposing any limitations." ... "Note that each link has a type ("includes" for example)..." (1989)

and later, it was made clear that link relations should be first-class - peers to the target itself - or, first-class link selection criteria:

"In this way, link relationships in HTML, and in future XML hypertext languages, should migrate to becoming first class objects." (1999)

I suppose that migration is finally upon us?  RFC 5988 - Web Linking

Friday, October 08, 2010

Two wheels at last!

Me:  "It's your decision, but you just road with the training wheels barely touching.  I think you're ready."
Grace:  "K.  Let's do this.  Daddy, go get your tools and take 'em off!"
Me:  "Yes ma'am"

She then walked the bike mid-way down the street and boldly road all the way up on two wheels her first time.

Wednesday, September 22, 2010

REST and self-descriptiveness

The REST Architectural Style has this constraint called the Uniform Interface. The Uniform Interface Constraint itself decomposes into four constraints and one of those, the self-descriptive messages constraint, decomposes into at *least* three other constraints. The analysis of what system properties are evoked was done at the highest level - the Uniform Interface Constraint. So, what happens when you modify one of the sub-sub constraints? Who knows, as with all the constraints, you should probably *think* about it with "your eyes wide open"*....

if you don't see a movie below, open outside your reader:)

* an unfindable Roy quote

Sunday, September 19, 2010

RESTFest 2010

I just returned from RESTFest 2010 in Greenville, S.C (on a side note, I wasn't thrilled about the location at first, but I should say, the people in Greenville, S.C. are great and the downtown area rocks - I never imagined I'd say such a thing about Greenville, but... there it is... it rocks - if you have a chance to work or visit, take it!) - it was great to see the Raleigh crew again and meet some new folks. Starting with Mike's thorough Hypermedia Workshop the first day and some great extended and lightening talks Saturday.

There was Apache CouchDB well-represented with some cool presentations and hacking, some really bizarre stuff (I'm thinking Events:), and everything in between. I don't do .Net development but if I did, I'd be pretty excited to get my hands on the coolness that Glenn presented on that platform. Anyway, many thanks to Ben and Mike for all their hard work to pull this thing together... Here's everyone that made it all the way to the end:

And a HUGE thanks to all the great sponsors. They were:

Sunday, September 05, 2010

Our first toothfairy visit...

... will be tonight!  John's been wiggling that tooth for weeks now and just came excitedly up the stairs to proclaim his loss.  He's real happy and immediately wanted to eat foods of different textures to see how they feel:)

Wednesday, August 11, 2010

Health through good-for-you food

Science and the medical community are finally catching up to our elders and "raw foodies" who have, for years, claimed that eating your [natural non-GMO] vegetables will keep you healthy.  I can't remember it now, but I watched a convincing movie several years ago where a collection of last-resort cancer patients went into seclusion on a raw food diet and most (if not all) returned cancer free.

I have to say, that the secondary benefit of healthy eating might be reducing obesity, gave me a "duh!" reaction.  Anyway, ridiculously interesting, you really should watch it.

Friday, July 30, 2010

Happy SysAdminDay Infra

Happy Sysadmin Appreciation Day to the Apache Infra team!  Thanks so much for all you do to keep us safely and securely computing.  We enjoy the fruits of your ridiculous talent and tireless labor, you guys rock!

Wednesday, May 26, 2010

Architecture of Governance Structures

When working on complex problems it's easy to get bogged down by stuff that just doesn't matter. In software, we address this through architecture. We define, up front, properties we'd like to see in the end system. Then, we carefully begin adding constraints that will evoke those system properties. Over time, we learn that we can snapshot certain coordinated constraints and refer to them by a simple name - as an "architectural style."

For example, we might endeavor to have a system that evokes the properties of re-usability, simplicity, and evolvability and this might lead us to a design based on the Pipe-and-Filters Architectural Style which is a set of contraints (e.g. Uniform Interface) known to positively effect those properties. But you can learn more about that reading Roy's dissertation.

Like software architecture, within organizational governance it's easy to get bogged down by stuff that just doesn't matter. This typically leads to more bureaucracy. I'm interested in thinking about applying the same architectural techniques to defining an organizational governance structure.

For starters, we'd need to think about the properties that are important to the organization. For this experiment, I'll use an organization with wide familiarity - the Apache Software Foundation. So let's define some [subset of] organizational properties that are important to the ASF:
  • Participatory (Pa) - the characteristic of affording the opportunity for broad participation.
  • Stability (S) - the characteristic of the organization and it's product to be viable over a long period of time.
  • Protectiveness (Pr) - the characteristic of being protective of volunteers and end-users from liability.
  • Frictionless (F) - the characteristic of achieving goals while minimizing friction.
  • Modifiability (M) - the ease with which a change can be made to the organization and/or its products.
  • ...
This is enough to get the experiment going. Now, we can begin adding constraints and reason about their effect on the organizations governance goals.

1. Open mailing lists. Open mailing lists shall be used to facilitate communication and decisions. By channeling communications over asynchronous medium we maximize participation (Pa). We further maximize participation by being volunteer friendly - they can get to it when they get to it. It enhances stability (S) by being both openly archived and self-documenting. It moderately evokes modifiability (M) allowing anyone to participate in decisions and direction of the project.

2. CLA/CCLA/Grants. All contributors must agree to grant copyright/license to the ASF. This has a positive effect on long-term project stability (S) and modifiability (M). The great positive effective also negatively impacts wide participation (Pa).

3. Release Process. All projects must have formal releases following a process that ensures license compatibility, export controls, etc. This has a positive effect on protectiveness (Pr) by ensuring that software release to the public is done under the Corporate entity (ie. the Foundation).

4. Decision making. When coordination is required, projects use simple, pre-defined voting procedures. These are simple votes (+1, 0, -1) for pre-defined approval types (e.g. lazy consensus, consensus, etc.) for pre-defined actions (e.g. releases, major code shift, new committer, etc.). Having a transparent decision making process limits friction (F). It also has a positive impact on long-term stability (S), participation (Pa), and modifiability (M).


Hopefully that's enough to convey the idea. Once the properties are fully enumerated and the constraints fleshed out, we might dub this coordinated constraints the "Apache Organizational Style." I'm sure the analogy and, therefore, the framework breaks down somewhere, but it seems a better fit than the typical adhoc adaptiveness that many organizations currently suffer. I think the key value that this brings is focus. Every proposed governance change would need to be reasoned about through the lens of desired organizational properties. It also forces the organization to think about what properties it really thinks are important.

Wednesday, May 05, 2010

Textual Weather

I've been annoyed for years at the increasing trend towards graphics-only weather forecasts. With 24 hours in a day, how can a single picture with two numbers be particularly helpful? Anyway, I finally realized how to get a nice text forecast in the Mac Dashboard - I know, I'm a little slow.

In Safari, navigate to

Enter your zip code in the left side.

Now, scroll down and look at the bottom right, and click on "Text Only Forecast".

No go to File->Open in Dashboard...

Highlight the middle text section, and click "Add..."

That's it, that's my not-so-new tip of the day. Now, if I could only get it in a fixed-width font:)

Tuesday, May 04, 2010

Article:Using DNS for REST Web Service Discovery

I'm not sure if it's a "Good Thing To Do" or not, but it is interesting. Personally, I haven't seen the "service discovery" problem first-hand - I've long thought it a problem manufactured by vendors to sell their ESB-ish wares... I'll definitely be watching to see how the comments on this one play out:)

Article:Using DNS for REST Web Service Discovery: "Service Discovery is an essential aspect of service orientated architecture because it avoids early binding of clients to particular service instances. In this article, Jan Algermissen explains the need for discovery of RESTful services, and explains how the existing Domain Name Service (DNS) standard can be used as a widely-deployed and scalable solution. By Jan Algermissen"

Wednesday, April 28, 2010

Green escalators...

I'm at a conference watching empty escalators roll constantly and I'm thinking what an incredible energy waste. Ironically, the first speaker of the morning touted the "green-ness" of the Raleigh Convention Center.

My first inclination was that escalators should come with sensors that would detect an approaching person and start it rolling and continue rolling until they are detected to have left the disembarking area.

After further consideration, given that we have an obesity epidemic accompanying our energy challenges, the best thing for our energy and our health would be to just turn them off entirely...

Monday, April 26, 2010

WWW2010 WS-REST Workshop

Day 1 of WWW2010 is complete. I spent the day in the WS-REST Workshop. The day, for me, started out a bit sketchy. Sam's talk was ridiculously interesting, but only tangentially related to REST. Most of the others were solid, predictable and safe. The couple presentations that did approach the edge of our current understanding of REST were, well, bizarre and, arguably, an impedance mismatch for the style itself.

Federico's talk (no slides) was pretty interesting. He suggested the need to describe and communicate new styles that were based on REST but not exactly REST. More generally, a practical model for visualizing and understanding architecture design rationale. He had a modeling tool (i forget the name) that manages a graph of constraint, rationale, and properties (or somesuch). This is somewhat analogous to the styles->properties mapping in the dissertation itself but instead of talking about styles, talking about the constraints directly. For other reasons, I've come to talk directly about constraints instead of REST too lately. It turns out that frameworks facilitate getting REST wrong just as much as they do getting it right, so instead of talking about a squishy style, I've found it more useful to enumerate the constraints explicitly. Having a modeling approach to reason about all this would be pretty useful.

Being hosted at a conference dominated by academia, potential "research areas" seemed a key focus. Some thoughts that I had during the day...

1) It seems that we need more research on getting from style to architecture. Practically, we end up with an unreasonable delta between where the style leaves off and additional constraints of the architecture. We need a framework for defining, sharing, and reasoning about those extended constraints. This doesn't get highlighted very often primarily because the folks that talk about REST do so from the perspective of a single service rather than an
architecture group constraining a set of services across an enterprise? For example, suppose a particular architectural style gives us 6 constraints and a specific architecture has 3 additional constraints. Those 3 constraints are, typically, hidden as implementation details but they should be highlighted and reasoned about in the same way that the style itself was.

2) Someone mentioned the need for the sales pitch for REST style. In other words, if a simple RPC-style solution could be hacked together in half the time, why spend time designing media types, changing the paradigm, etc. ? Intuitively, it seems that the answer is the system properties evoked by the REST style, but maybe that doesn't resonate with managers, etc.?

3) Media type design. Someone mentioned this too, but it's clearly a theme in the RESTful world. It seems that we have collectively grokked what Roy has given us in his dissertation so far and are all collectively struggling with the variety of media type issues. When to pick one over another; when to create your own; how to create your own; json:link types missing; when to use specific vs. generic representation control data (e.g. /xml or /myformat+xml); etc.

4) Link qualifications. Link relations are clearly the way to assert the semantics of the relationship between the "current" resource and some "target" resource. I think we need some clear way to qualify the "target" resource independent of it's relation to the current. Perhaps there isn't a particularly important link relation but you want to assert some link selection criteria anyway.

5) Transactions, of course, got token mention. Mike(i think) mentioned them as the "third rail" of REST:) I dunno, I don't do services on the wild internet so maybe it's a concern, but I got a gut feeling that we've got some problem-solution force-fit going on here. I see the same thing with messaging too - I haven't seen a lot of valid needs for a composite REST/Publish-Subscribe Style. I like REST. A lot. But there are plenty of other valid architectural styles appropriate to other problem domains.

6) Similar to #1 above where there needs to be a macro discussion of REST for the enterprise, I wonder if there's a place for REST style in the micro. It seems like the same REST principles could be applied to micro application architecture. Something like the Actor model of immutable message passing.

Anyway, my rough notes of Day 1 as I understood it...

Wednesday, April 21, 2010

Hypermedia constraint check

The Hypermedia Constraint seems to be the toughest one for developers to "get" in a RESTful system.  Most of my architecture documentation/communication effort has been focused on those things that one needs to get it right.  Things like: links in representations, link relations, etc.  Still, all too often, folks get it wrong.  Terribly wrong even.  So, I've thought about a simple check that I could provide as the hint that you're "doing it wrong":

Imagine the URLs to all resources except the static bookmark had a variable number of random numbers somewhere in the path and changed on each request.  Would your client still work?  Would your service's documentation still be correct?

Is it possible to answer yes to both questions and still break the hypermedia constraint?

Wednesday, April 07, 2010

RFC 5785: Defining Well-Known URIs

This feels like a terrible idea. "Fixed URIs"... it just sounds wrong in a hypertext driven ecosystem. Must be a better way. Why couldn't this be addressed by defining good site-* link relations?

RFC 5785: Defining Well-Known URIs: "

This first piece of the discovery stack was published today as an RFC. RFC 5785 defines a registry for new well-known URIs which will provide a standard location for the host-meta document. This work started a year and a half ago as a well-known document called /site-meta, and slowly evolved into a simple registry. While this isn’t a breakthrough idea, it does codify existing behavior and hopefully encourages people to share ideas, discuss proposals, and reusing existing well-known URIs.

Thursday, April 01, 2010

ASF Membership += Me

I've been proud to participate in the Apache community in a variety of roles over the past five years.  I'm surprised and honored to learn that I've been voted in as an ASF member.  Thanks for nominating and voting for me...

Wednesday, March 31, 2010

It's time to trust the kids...

... 'cause these Apple Parental Controls are seriously slowing me down. Flash on Mac has nothing on these parental controls!
Posted by Picasa

Tuesday, January 12, 2010

Insecticide Corn

Bt Corn is registered with the Environmental Protection Agency as an insecticide.  According to the U.S. Department of Agriculture, said corn accounts for approximately 60% of the acres of corn grown in the U.S.  According to the EPA,
The new plant-incorporated protectant product, MIR162 maize, produces its own insecticidal protein within the corn plant.
So, we're producing corn that is, essentially, a factory for insecticides. One has to wonder if that's the reason studies are showing negative effects of GMO corn on our kidney's, liver, and other organs.

Sunday, January 10, 2010

Monsanto's new idea may make detasseling of corn obsolete -

This is sickening science - how can we get Monsanto to quick applying sick science to our food system? It's nearly impossible when the nature of the ingredients are opaque to the end consumer. Normally, we (the consumer) have an incredible influence in the growth and direction of markets. In order for us to apply our influence, we need transparency. This is the case, for example, with organics. In the case of genetically modified food, we have no good way of knowing when it's in our foods. We need proper labeling, so that the people who don't, for example, want to eat dangerous food that has been genetically modified to resist poison, have a way of making that decision.

What is left of a longstanding Corn Belt rite - detasseling - may end for good when Monsanto brings to market what it calls its "Roundup Hybridization System" for corn.

Cornfields also will lose much of their masculinity, too.

Detasseling, for the city folks, is the removal of the golden sprigs at the top of the plant that secrete the pollen that reproduces corn. Seed producers want selective reproduction of corn rather than self-pollination, so they remove the tassels from some plants so they reproduce with pollen from other plants that have the requisite traits.

The Monsanto system, the company said, "utilizes a transgenic corn trait created by Monsanto that exhibits high tolerance to glyphosate (herbicide) in all tissues except male productive tissues."

Tuesday, January 05, 2010

Effects of Genetically Modified (GM) foods

A recent study providing more evidence of what nations smarter than us intuitively suspected - genetically modified food is bad for us.  Of course, when we hire people to represent us that have a vested interests that conflict with our health, the outcome shouldn't surprise, right?  Oh well, on to the study...

"... in the three GM maize varieties that formed the basis of this investigation, new side effects linked to the consumption of these cereals were revealed, which were sex- and often dose-dependent. Effects were mostly concentrated in kidney and liver function, the two major diet detoxification organs, but in detail differed with each GM type. In addition, some effects on heart, adrenal, spleen and blood cells were also frequently noted. As there normally exists sex differences in liver and kidney metabolism, the highly statistically significant disturbances in the function of these organs, seen between male and female rats, cannot be dismissed as biologically insignificant as has been proposed by others. We therefore conclude that our data strongly suggests that these GM maize varieties induce a state of hepatorenal toxicity." [conclusions]
What exactly is hepatorenal toxicity?  I'm not sure exactly but hepatorenal refers to the kidneys and the liver and toxicity refers to poison/toxic - doesn't sound good in any case.  Turns out Greenpeace knew this two years ago though.

They modify these foods, for example, by attaching the desired DNA to a virus [you know, like E. Coli] and letting it infect and change the host.  They do this for various reasons, for example, to inject pesticides into corn so that it's immune to it when they spray the crops.  Sound gross?  Well, you're eating it.  Around 75% of processed foods in the U.S. contained GMO ingredients in 2003 according to the Grocery Manufacturers of America[1].

The first commercial GMO was allowed into the food supply system in 1994, now 15 short years later, they're in well over 75% of processed food.  That's a lot considering the effects are only now being uncovered.  As well as the study above there are links to infertility.  Anecdotally, there has been a 500% increase  in hospital admissions for food allergies since 1990.

Equally frustrating is the fact that farmers (e.g. Nelson Farm) are being forced to buy it and grow it by Monsanto (the former major producer of Agent Orange and DDT fame).  The Roundup that "Roundup Ready Seed" is engineered to be immune to appears to be a decendant of those poisons.

What can you do?