And We’re Back!

I have been so incredibly busy the last few months that aside for 140 character Twitter updates, I haven’t been able to keep this blog updated with my exploits.

If you are still paying attention, I was complaining about ACL. After several attempts, I gave up using the built-in ACL component in CakePHP and just decided to keep things simple, use the Auth component with role-based access control. Problem solved.

The development of the application has progressed smoothly since getting over that hurdle.

In the meantime, I’ve been setting up my own virtual server for hosting websites for my freelance clients. That has been a learning experience in itself. I’ll post more about that as I formally launch that service.

I’m also way behind on podcasts for the Minneapoliscast podcast. I hope to resume that at a modest pace this fall.

More later as all of my respective projects get updates including SVN info on my CakePHP app.

Wow. ACL is Hard

That is Access Control Lists. I’ve been developing with CakePHP this spring and summer and it was all going very well until I actually needed to control access to the application. It’s not even that CakePHP falls short here. There are apparently tons of built-in tools for managing access. They’re just poorly documented and the community is relatively new so no one has built a complete plug in. If you’re looking for a solution like I was, I’m afraid I’m not going to give you the best answer here. I did find something that works, so read on. Especially if you’re learning ACL or Modified Preorder Tree Traversal Algorithm (MPTTA) for the first time.

Disclosure: I’m not formally trained as a programmer/developer. Everything I’ve learned, I’ve taught myself. So there are definitely some silos in my knowledge as I’ve learned things on the basis of necessity. I have, however, been developing in PHP for over six years. So it’s not all that bad.

So the learning curve for implementing ACL has been relatively steep for me. First, I had to get my head around the concept. The big picture is easy. What we’re after is a tree of access with ‘admin’ at the root and everything else branching off from that with diminishing access. That’s not hard to conceptualize. What is hard is putting that into practice.

I messed around with this for a long time before stumbling upon this tutorial about the Modified Preorder Tree Traversal Algorithm. Stop now. Read it. Come back.

Now you should understand the concepts that drive CakePHP’s ACL. Unfortunately here is also where we depart from using CakePHP’s tools. At least until a decent plug-in comes along that allows you to manage Access Request Objects (ARO) and Access Control Objects (ACO) via a good, web-based interface.

After many attempts with various solutions that are currently avaliable, I finally settled on Authake.

Pros:

  • Works in CakePHP 1.2
  • User, ARO & ACO adminstration is a snap
  • Access control works immediately without modifying anything you’ve built in your app.

Cons:

  • Installation requires you replace the entire CakePHP engine with Authake’s modified version. This will make upgrading CakePHP a lot harder.
  • The developer has abandoned it in favor of developing in RoR. No hope for future versions unless the community continues development. Personally, I’d prefer a plug-in like Jeff Loiselle’s ACL Management Plugin that I could just drop right into app/plugins without replacing the entire installation. (The issue I have with Jeff’s are all listed on his “Known Bugs” list. Namely, “does not show inherited permissions, does not show full path in finder & does not have crud fields”. Unfortunately, those are three very major elements of managing ACL.)

If you are reading this in the not so distant future and someone had developed a plugin that has an admin area like Authake’s but drops into app/plugins like Jeff’s plugin, please, please let me know.

How Do You Explain Twitter?

I’m connected to a lot of tech-savvy folks (tweeple) via Twitter, but I work and hang out with a lot of not-so-tech-savvy folks (people) in real life. Once in a while the twain will meet, but not often.

My friends who are somewhere in the middle have Twitter accounts, but don’t use them like I do. (I.e., they don’t tweet via sms, or use it to ask questions of the cloud, etc.) They snicker when they see me tweet in public, but at home and work, they’re checking in regularly. I’m don’t want to discuss these Twitter-closet folks.

The people I want to discuss are those who don’t understand it at all. When I try to explain it to my co-workers, I’m a little timid. Most of the time, I don’t even bother even though I’ve found it very valuable for keeping my finger on the pulse of what’s happening in the Twin Cities. I try to explain how I’ve made friends IRL through Twitter, etc., but their eyes glaze over and I give up.

How do you explain Twitter (and services like it) to those who are unfamiliar or resistant to it?

My Private Summer of Coding

A couple of weeks ago I met with Garrick VanBuren to talk about cullect.com. I came away from the lunch excited about two things: Trying out some of the features in cullect that I hadn’t quite understood before and giving Ruby on Rails another shot.

I went to lunch with Garrick to offer him some feedback about why I hadn’t adopted cullect yet. (I’ve had an account for about 7 months.) A few colleagues were raving about it. I knew I had to be missing something. I was.

While I think cullect has a way to go before widespread adoption (it runs a little slow on my PowerBook), I see what everyone else likes about it and more importantly, I see lots of potential. So, nice work Garrick. I drank the Kool-Aid. I now curate a small batch of feeds about music and “recommend” posts so the best rise to the top in my “Important” list. This way I can also repurpose those same articles to Minneapoliscast. In other words, I can repurpose content so that relevant reading is included with what I publish. It’s fun and it’s cool.

I’m not even going to talk about how you can pay cullect so that part of your monthly subscription goes to publishers you read. I can’t even tell you how cool I think that is.

What I really wanted to write about is how I came away from our conversation inspired to try Ruby on Rails. I’ve been toying with RoR for about a year now. As I started working my way through Agile Web Development on Rails last year, the realization gradually dawned on me that I was going to have to sit down and learn Ruby. So I bought a pdf version of Programming Ruby, but I didn’t really get very far before other duties called. I just didn’t have time to learn a new language.

After talking with Garrick I was determined to give it another shot. Then I thought, there has to be a Rails-like set of tools for PHP–a language I’ve been working in for years. That thought and a quick Google search led me to CakePHP.

Two weeks later and I’m near completion of the first module to manage clinic and lab data here at work. Once I got my head wrapped around MVC and the built-in helpers in CakePHP, the development got faster and faster. (Disclosure: The database was already fully envisioned and built beforehand. An important first step.) I can’t tell you how gratifying it is to quickly code something in a few lines, test it and have it work. I have a whole summer of coding ahead of me. I’m very excited to deploy this application by fall.

On a final note, I was feeling a little cocky, so I coded my first Wordpress plugin yesterday too. Again, easy. It’s not quite ready for public release yet but with a little tweaking, I might just release it. Basically it just pulls in PodPress data and lists the ten most popular podcasts on Minneapoliscast.

I was a little worried that with our research slowing down over the summer I was going to be bored. Now I’m really looking forward to the coming months. Fun stuff.

Value of the Written Word

Yesterday I was listening to the Sound Opinions podcast with Peter Blackstock as a guest to talk about the last print issue of No Depression magazine. (I’m reluctant to link to ND, since I’m pretty sure Peter will find this within hours.) But something caught my attention even though I was very busy at work. Peter made a comment about the “devaluation of the written word” as a contributing factor in ND’s change of medium.

Devaluation is a word that is bandied about a lot these days. There is a lot of discussion about the devaluation of music as well. It’s a bit like a recent discussion I had on Twitter about the old “vinyl vs. CD” argument. When someone says music or writing is being devalued, everyone just nods there heads in agreement. Remember when music and writing had value? Kids today.

I don’t mean to single Peter out (because, again, I’m pretty certain he’ll read this), but it’s an interesting issue to explore in greater depth.

I think the argument is better framed as a democratization of media rather than a devaluation. The stakeholders in traditional media are accustomed to a one-way model. At the top is the advertiser, the medium (newspaper, magazine, radio station, etc.) delivers the audience to the advertiser. Editorial considerations aside, that’s the basic paradigm.

What’s happening now is that a whole lot of folks are delivering content to audiences for free. Such a democratization inevitably results in an overall lowering of quality. This same thing occurred with the advent of desktop publishing in the mid-nineties.

But this scenario also allows for exciting possibilities inherent in the word democracy. A lot of content will be bland, narcissistic, and even bad but it can also be exciting and important. Citizen journalism is the most intriguing new concept to arise from the blogging revolution. Engaged citizens can make their own choices about what they feel should be highlighted and new communities arise around those who are good stewards of their content.

Let’s look at those last few words again: stewards of their content. That’s where the onus lies for independent media producers. The world is filled with blogs about personal exploits and nights on the town, but being a good producer means developing good editorial skills and considering your audience. Those of us who are good stewards to our audience will build successful communities around our respective media.

Music, writing, video, audio production might hold more potential value for those of us in the lower parts of the long tail than ever before. And we’re more accessible than traditional media.

As long as we’re redefining paradigms, let’s go back to No Depression. My initial reaction to the final print version of No Depression was sadness. I’ve got back issues in my basement going back almost to issue #1. (I think the oldest one I have may be #3. Whichever one has Whiskeytown on the cover.) No Depression has benefited from media democratization since it’s inception. It started up as an AOL discussion group, then went to print (remember the desktop publishing revolution?), and now is headed into a new medium again that just happens to be web-based. So it’s really not an end. It may be starting over, but I give them credit for embracing changes in the industry and moving accordingly. They’ve built a devoted audience over the years. They are no less valuable for existing (mostly) on the web.

Busy Spring

Spring is slowly opening up upon us here in Minnesota and I suddenly find myself busy to the point of nearly being overwhelmed. I say “nearly” because I’m getting to do an awful lot of what I want to do, so even though I have very little spare time, I’m happy.

I’ve started work with Scott Flaskerud from The Dear Sweet Villains on a new CD project. Scott asked me to engineer and produce the CD for him. I gladly accepted. I’ve been able to fill a few gaps here and there by playing on it too. A real pleasure, even if it leaves me bleary-eyed after late nights poring over the sesssions.

Several sessions are lining up for Minneapoliscast in May and June including Luke’s Angels, Brian Just and Aviette.

Finally I’m evaluating a new client’s website for SEO as well as helping them leverage some social media technology to keep present and potential clients up to date on their latest projects. An old client has contacted me about a new project and of course, I’m busy helping my current clients.

Did I mention I have a full time job and family?

I love this time of year. I’m generally operating on the verge of exhaustion, but I certainly get a lot accomplished. If I had to complain about my current status, the only thing I’d say is that I was hoping to work more on my own music. What can I say? I’ve got to pay the bills.

More on Microsoft’s Relevance Share

A few days ago I wrote a little entry about Microsoft’s relevance share. Admittedly, my piece was more about perception and taken from a broad perspective of Microsoft’s culture.

Peter Bright wrote a really nice piece that says the same thing in much greater depth. Bright’s piece is up-close and personal. Well worth a read if you want to learn bow we got to where we are in the OS wars.

Comcast Woes

I thought maybe Comcast was “getting it.” They seemed to be on the cutting edge of responding to consumers’ needs by monitoring Twitter and blogs for complaints–and then responding to them.

Unfortunately the problems seem so pervasive that a simple campaign of Google Alerts and Twitter monitoring can’t fix them. The question remains then, is Comcast committed to truly listening and meeting consumers’ needs or are they just trying to cheaply control their image? I wish it were the former. I think it’s the latter.

Careful Where You Point That Thing

In four recent instances I’ve written something or mentioned something in a podcast where someone directly related to the subject found the post/podcast. That seems to me to be a relatively recent phenomenon.

Instance one: In a recent Minneapoliscast podcast, we discussed the demise of No Depression’s print magazine. Soon after Kyle Matteson and Steve McPherson attended SXSW. Who should attend Reveille Magazine’s day party but Peter Blackstock, co-editor of No Depression. Peter actually discussed listening to the podcast w/ Kyle. I had to review it to make sure I didn’t say anything asinine.

Instance two: I mentioned drop.io the other day here. Who should comment on the post but someone directly involved with the company.

Instance three: I made a few off-hand comments at MinneWebCon via Twitter. Who responded to me directly? One of the organizers of the event.

Instance four: I wrote about APML here earlier this week. Who added the post to his ma.gnolia links? Chris Saad, one of the founders of apml.org.

We’re no longer sequestered in our rooms in the cold glow of a CRT. We’re talking and exchanging ideas. How you doin?

Further Evidence of Microsoft’s Loss of Relevance Share

Lots and LOTS of people own computers that run Microsoft Windows. I won’t even go into market share figures. I’ll grant you that point. But what is Microsoft’s vision? Is this it? I certainly hope not.

If a bad spoof of a baby-boomer rock star signifies Microsoft’s outlook–even internally–they have no hope of maintaining a monopoly into the next generation. Microsoft is a big ship. I’m not sure they can turn it around and catch up before users have moved on to new technology. What’s remarkable to me is that they didn’t have the sense to cut the spoof off after the first chorus. They just kept on going. Bad, bad, bad.