Categories
Uncategorized

And then there was a wiki…

wiki

I’ve long been a proponent of wikis as knowledge bases within organizations. Since I discovered WikiWikiWeb in 2000, I was struck by the power and simplicity of wikis. (This was a year before the launch of Wikipedia, and many years before most people had even heard of Wikipedia!)

The first wiki I launched for a company started small, and eventually grew into a tool the Interactive department used for crucial information used by the staff. Some people believe that keeping data locked up within their own notes—or worse, just inside their own brains—creates job security. If no one else knows how something works, you become invaluable. My argument goes the opposite way, that creating a wiki and sharing all the knowledge shows your commitment to the health and well being of an organization.

During a job interview in 2006 I mentioned how I left behind a 200+ page wiki at my previous position, and without a doubt, that was the one thing that brought up the most questions from my interviewer. (The position wasn’t right for me, but I always secretly hoped they launched an internal wiki.)

Inc Magazine has a nice article titled A Micromanager’s Guide to Trust, with this great bit:

At Staff.com, Martin came up with a novel solution: He created a wiki that describes how to handle some 500 operational issues.

Exactly!

While I’m sometimes a bit too busy to do all the wiki maintenance I’d like to do, the Milwaukee Makerspace wiki has grown to become the operational manual for the organization. This is even more important when you realize that each year a new group of leaders is elected to the Board of Directors. And since the group is a “club” and not an “employer” people are free to leave when they want. (Meaning, there’s no firing or laying people off, but we do have to deal with people who just “disappear” sometimes.)

To me, this all goes back to the original idea of why I find/found the Internet so interesting. It’s about sharing information, openly and freely, with others. It’s about storing knowledge and having it easily retrievable. Wikis accomplish these things, and for that, I am mighty grateful.

(Oh, and my favorite wiki for the past fear years has been DokuWiki. Check if out if you need to implement a wiki for your organization.)

Categories
Uncategorized

Sir Like-A-Lot

Sir Like-A-Lot

My latest project was sort of a failure, but I’m going to post about it anyway, because such things are important.

For a recent event I wanted to create a unique way for people to LIKE something, and get a reward for it, so I grabbed a Raspberry Pi and got to work. The idea was pretty simple, a full screen display showing the number of Facebook likes, with the URL for people to visit the page (on their mobile devices) and like it. The display would then update in “near” real-time (Well, every 10 seconds) and there would also be a surprise…

Step #1 is always configuring the Raspberry Pi. I installed Raspbian, had it set to boot to the desktop, and installed the packages I needed, mainly Apache and Chromium, since I’d be using a local web server and web browser for the display.

Getting the Raspberry Pi to work as a kiosk display was next. I didn’t want any menus or OS parts showing, so I used Chromium running in kiosk mode. My /etc/xdg/lxsession/LXDE/autostart file looked like this:

# config to launch Chromium in kiosk mode and load our application
@xset s off
@xset -dpms
@xset s noblank
@chromium --kiosk --incognito http://127.0.0.1/likealot/

We got rid of the part that lets a screensaver run, and added in the bits to fire up Chromium in full-screen kiosk mode. (Oh, one note about Kiosk mode, it does not hide the mouse pointer, but we’ll deal with that later.)

LIKES

The results on the screen looked like this. Full screen, no browser or OS bits showing. I like this solution as it can be used for pretty much anything you can code up as a web page.

The display is set to refresh every 10 seconds, so it’s pretty up-to-date, and you’re really only limited by what you can display in a browser (Chromium) running on Linux (on a Raspberry Pi, in this case.)

As for the code, it’s less than 50 lines of Perl running as a CGI, and about a dozen lines of HTML in an HTML::Template file. There’s also a little CSS and an image.

Speaking of the CSS, it was the solution to hiding the mouse pointer for Chromium running in kiosk mode. I just added this bit:

/*
 * using CSS to hide the pointer
 */
* { cursor: none !important }

For an informational kiosk you just want people to look at and not have to interact with using a mouse or keyboard, this solution works well.

JSON

You might be saying “Hey! How do you get the number of likes!?” Well, you just ask JSON, or http://graph.facebook.com/?ids=z2marketing to be more precise. Facebook Graph API data holds the key, you just need the value.

Oh, there was one more really fun bit! When someone liked the page and the page refreshed and the number increased, you’d hear applause!

The original idea was to just have the CGI do a system call to play the file using aplay. That did not work. I also tried mpg321 and that didn’t work. In the end I went the other way around and added… another Perl script! There’s a cron job that runs on startup, which launches a Perl script, which loops forever and looks at the counter file that the CGI uses. Every time the counter file changes (due to the CGI updating the number) the Perl script uses aplay to play the applause file.

The end result is pretty good. A person sees the display, goes to Facebook, likes the page, and within 10 seconds the display updates and you hear some applause!

I planned on making a sign or adding some text to entice people take action and get a “reward”. And of course the URL isn’t as helpful on a mobile device where you probably use an app instead of a browser, but this is all a good start.

Now, I mentioned a failure, so I should explain that part. For anything like this, where it needs to run for hours reliably and not just be a quick technology demo, you need some burn-in time. I had this running for a week with no issue. The first issue that came up was, what to do if you lose the Internet connection. (Hey, we use Time Warner, it happens!) You really don’t want to see a default Apache 500 error page, so the error page looked just like the main page, but with a message that said ‘Please stand by…”. That 500 page was set to redirect to the main page after 10 seconds, which would deal with occasional Internet or network outage situations. Since we were also using a WiFi connection with the Raspberry Pi, there’s always the chance of losing the WiFi connection. This didn’t seem to happen much, but it’s something you may need to deal with.

I also set Apache to not do any logging, as there’s really nothing valuable gained from logging after you’ve got everything running. It also helps to write less data to the SD card that holds the system because… corruption.

Oh yes, corruption! Every now and then I would reboot the system to make sure it would start up properly. It almost always did. Except when it didn’t. Once the Pi booted and there was a warning that the file system needed repair, so I repaired it, and all seemed well. I tested again for another week, and things seemed good. But then…

The day of the event, I had to move the system into place, and when I did that, and started it up, Linux would not boot. Even after 13 years I am still not enough of a Linux expert to fix every problem it throws at me, and I was stuck, and had a dozen other things to do, so it was dead.

I did the dozen other things and then ended up reinstalling Raspbian and trying to quickly reconfigure it, and get all my files in place, and got everything working except the audio… and the WiFi. There are a few tricks to getting audio working properly on the Raspberry Pi. I eventually got it working, but it was too late to deploy it. Oh well…

So next time, I will have a BACKUP SD card ready to put in place when the first one destroys itself. Or maybe I’ll just build two complete Raspberry Pi systems. Backups are good. Backups are good. Backups are good.

But don’t worry, I’ll take all the successful bits of this project and re-implement it in some other way in the future.

Categories
Uncategorized

Mozilla Supporter

Adopt Mozilla

One more than one occasion, people have asked why I don’t use Google Chrome, or Apple’s Safari, or even Opera or Microsoft Internet Explorer… I think this sums it up pretty well:

Mozilla’s mission is to build user sovereignty into the fabric of the Internet. We work to ensure that the the Internet remains open, interoperable and accessible to all. To do this we build products, we build decentralized participation worldwide, and we build the ability for people to create their own experiences in addition to consuming commercial offerings.

As the “web” changes, I think it’s probably necessary for Mozilla to change as well.

Read the whole thing: Mozilla in the New Internet Era – More Than the Browser.

Categories
Uncategorized

Google-Free Fridays… are you insane!?

You will be assimilated.... by Google!

Imagine a future where you rely on one company for your email, your calendar, your maps, your documents, your videos, your phone, your blog, your discussion groups, and, oh yeah, your searches and even your browser.

I was reminded that back in 2007 Danny Sullivan revived my Google-Free Fridays idea that I originally proposed in 2003.

Today, in the second half of 2011, the idea of going even one day without Google may seem insane for some people. The reliance that many have on one single company for so much of their Internet experience is, frankly, a bit frightening to me.

Don’t get me wrong, Google offers a lot of great services, and I use a number of them, but what would happen if they shut you out? It happened to Phil Wilson, and it’s happened to others as well. How much of your world would be affected if Google disabled your account?

Oddly enough, in the time between starting this post and finishing this post, Google launched a new initiative: Email Intervention. Obviously Gmail needs more users, and they want your help assimilating anyone who hasn’t yet become part of the Gmail Family. (I know the Email Intervention thing has a tinge of humor, but as all comedians know, behind every bit of humor is a bit of truth.)

I’m not saying Google is pure evil, because, well, they aren’t. In fact, the Data Liberation initiative should be applauded, and is something every web service should provide. I just hope there are other web services besides Google 5 years from now.

Categories
Uncategorized

Mozilla == Mozilla

Mozilla

Dave is a cranky old man, and I say that in the nicest possible way, because really, I’m one too. Cranky old men like things the way they like them, and sometimes that means, the way they were before you damn kids came and messed everything up. And you did, really, you did.

Dave is not happy with the Mozilla folks and their Firefox browser.

Personally, I don’t think browsers are done or feature-complete yet. I say this because I’m dealing with developing web sites, with HTML5, with the <audio> and <video> tags, with codecs, with multiple computers/devices, etc. and it’s not perfect yet. Firefox 4 was a welcome upgrade from Firefox 3.x in my mind. Speed increases, Mozilla Sync, and a few other features were worth the small inconveniences I faced along the way. (Granted, I was running the beta for more than 6 months on one machine, so I wasn’t surprised by anything new.)

I’d admit that I am definitely a fan of Mozilla. I may even know a few people who still work there, but I’m not a Mozilla developer, or part of their marketing department, I’m just someone who wants to see them succeed.

And why do I want to see Mozilla succeed? If you notice the graphic above it says “We Believe in an Open Web” and while Apple and Google both have browsers, they’re both in a constant battle for mindshare and eyeballs, and ultimately are interested in making a profit. Mozilla is a non-profit organization that (and I hope I don’t sound naive) has an interest in keeping the web open and free. (I didn’t even mention Microsoft because they only make a browser for one single platform, and it’s a platform I don’t even use, except for testing.)

I’m a fan of freedom, and ultimately I believe that freedom (on the web) is better served by Mozilla than by Apple or Google. I fear the closing of that freedom, and think that supporting Mozilla may help prevent it.

And oh, the beauty of open source! If Dave really wants the keep using Firefox 3.x, there is nothing stopping him. It’s open source. The code is available. Hell, look at what the TenFourFox team is doing. You want Firefox 3.6 to live on forever? Start working on it, or hire some developers. This may not be entirely realistic, but it is completely possible.

I should note something here about Mozilla providing Firefox (software) for free versus Osbourne selling computers (hardware) for money. Maybe I’ll fill it in later.

Years ago when things were looking grim for the web, I always though some company would come out with a web browser that would do away with the ‘View Source’ command. I mean, sure, Chrome hides it, but Apple finally managed to get rid of it with Mobile Safari. Ugh, Mobile Safari… I wish I could run Firefox on an iOS device. This closing of the web concerns me.

I know all the cool kids abandoned Firefox, but to me, that’s like abandoning freedom, and I just can’t see doing that yet…