Woah, is this thing on? It has been a while since I’ve ranted or shared anything, but I am trying to get back into regularly sharing my thoughts, however useless they may be.
The topic burning in my soul today is the monotony of long stand-ups, scrums, whatever you call the daily ceremony your agile team attends to discuss where the work stands.
My opinion on this is simple Scrums are not status meetings!
46 percent of employed workers would actually prefer to be almost anywhere else unpleasant instead of sitting in a status meeting. Unfortunately, “anywhere else” includes going to the DMV, watching paint dry, or commuting for four hours. Oh, and how about a root canal or mullet hairstyle? They take preference over status meetings, too. Ouch.
— Read more at http://www.business2community.com
What is the point of daily stand-ups if not to share status updates?!
“That’s absurb!” you shout in your head, what possible use does this daily agile ceremony hold if not to update my peers on all the great work I did yesterday. Well there are several reasons to hold this daily event, but all need to be viewed in the critical lens of reducing the amount of communication needed to the smallest conceivable morsel and frequency.
I’ll share what I consider a good report and a bad report before I delve into the qualities that distinguish them.
“Yesterday I completed GD-123, all applications can consume the recommendation service in prod now. Today I will be picking up GD-136, but may need some help on the dependency on the pony service.”
“Yesterday I was working on the recommendation service. I hit an issue where the CC service did not accept the criteria for age brackets but was able to resolve it by passing in a qualifier that stipulated the sex it applied to. I deployed it out to production last night and it was passing all the smoke tests across the board. It should be ready for people to use now. I’ll probably start working on the corral portal, I like the idea of separating the animals by pedigree as well as age but don’t feel strongly either way I guess. Keep in mind that eventually when we have the rancher portal in place we will need a new integration bridge between the pony and cattle services. Oh, and also I spent sometime yesterday with Bryan reviewing the customer documentation for release 3 and it all looks really good, I like that we included more images than our last round.”
What, sorry, I wasn’t paying attention…
But seriously, we are an awesome team, we all do great work, tell me about that awesome debugging session over a beer sometime when I have opted to be there and don’t have coding my own hot-fire on the mind.
What makes a good update (without being a readout of status)?
- Reference to prioritized and visible work items (the ticket)
- Identifying blockers (whether you are the impeded or impeder)
- Getting help, or expressing the need for help
Use standups to identify impediments that have, or may soon come up, or when they are knocked down. If you did 99 things yesterday doesn’t mean the team will think you are a slouch for only talking in detail to the 1 that affects the other work in flight.
What is ReCAPTCHA?
For those familiar with ReCAPTCHA you know that Google acquired the ingenius tool some time ago. The service provides two features. Spam prevention for site owners, and nearly flawless OCR for Google. OCR is Optical Character Recognition, and is the difficult task of having computers read the words, letters and symbols in scanned text or images. ReCAPTCHA shows 2 words. One word it already knows, which provides the spam prevention. The second word it is trying to figure out. So it will use your input, and the input from thousands of other end users to build a consensus.
Using this technology ReCAPTCHA has already digitized the entire NY Times archive. So what’s next?
What does digitizing books have to do with Google Maps?
Well anyone using Google maps has surely encountered slight issues with addresses on long rural roads, and densely packed city streets. Google relies on some distance algorithms and published city planning guidelines to determine approximately where apartment 221b is on Baker Street.
Google’s latest approach is to eliminate the approximations, and to be able to say with 100% certainty just where an address is, and they are using you and I to collect that info. So when you get directions, Google can walk you right to the door.
Next time you are asked to answer a Re-CAPTCHA you might see numbers instead of words, and just where are those numbers coming from? Street addresses! Addresses captured, but not yet understood by Google’s street View cameras.
Although I love the idea that Google will finally stop sending my out-of-town friends and pizza boy2 miles down the road, I am curious where this technology will continue to go, and at what point privacy becomes a concern.
The amount of users who rely on Google Calendars to organize their personal and professional lives is staggering. Seeing as most clients are comfortable and proficient with the technology, there is little reason to point them elsewhere when they ask for a custom widget to display upcoming events on their site.
In fact, the only trouble is that Google’s provided widget layouts are all – er, well they are all quite lame, and likely won’t match your current theme.
Checking the integrity of a file on a unix node is simple thanks to a confusingly named “checksum” utility. It, oddly enough gives you the checksum of a file.
If your stuck on (or just love) windows, you can give yourself the ability to check any files checksum with the click of a mouse.
1. read more…
Although still very new, and with much to learn I am loving Modx as a tool to quickly build out robust sites.
Recently a client wanted to add Facebook Integration to their MODx site. I’ve used Facebook’s API before, and know it makes authentication pretty easy, but I had to figure out to insert that authorized user into Modx’s web context. And it was actually quite easy as well.
The user becomes a full blown member, and can be treated the same as any user that registered. (you can also treat them differently)
Read on to learn how two simple snippets allow Facebooks users to add themselves to your site in the provided member groups.
The extra also creates a full user profile in modx based on Facebook‘s info, complete with:
I recently implemented JQuery’s Tabs feature into a site I am building for a client. My first though was “wow, that was easy.” And then the usability issues starting making themselves apparent.
I like stateless web. Everything is linkable and bookmarkable, and once you have something the way you want, you should be able to share it with nothing more then the unique and repeatable url.
WHat do I mean by usability issues, let me explain with a few scenarios.
Problem 1: Switching tabs is not reflected by the URL, making the page stateful
Ugh, we hate stateful web sites!
- Your visitor lands on PageA that has 3 tabs: Main content, Dynamic Map, and User comments.
- To see the maps, user clicks on “Tab2″. (URL remains unchanged)
- User wants to share map, and sends link to a friend, but all they see is the welcome content – OOps!
In this case user A would need to supply User B with a link, and instructions to get to the right tab. This violates the principle that the web should be stateless, and repeatable. If content changes, the URL should too.
Problem 2: Elements inside hidden tabs are not reachable by URL alone
- User A is reading the comments tab “Tab3″ and decides she wants to add her own.
- After supplying her info, and the CAPTCHA she submits the form
- Let’s suppose the user forgot to add her actual comment, and the form tries to re-render with the validation message – OOps!
Here User A expected to see the comment form again, and instead sees the page re-rendered, but Tab1, the default tab, is shown. She has no awareness that the form (on Tab3) failed, and assumes her comment was submitted.
But what if she had successfully submitted her comment? The same problem will crop up when the comment widget tries to redirect our user to her submitted comment (mysite.com/pageA#YourNewComment) Because the ID “YourNewComment” is part of the hidden content of Tab3, the page will just load Tab1, and leave our user curious.
Fortunately it only takes a few lines of clever jQuery code to solve these usability issues.
- If the current tab changes, we update the URL with the correct anchor (mysite.com/PageA#Tab2)
- If a URL contains the anchor of a tab, we make that tab active
- <The icing> If the URL contains an anchor for an element that resides inside a tab, we make the parent tab active and scroll to the specified element
I need to thank Mark Yoon for numbers 1&2 that are based on a comment he left somewhere (i;ve been googling this issue alot!)
Number 3 was my own addition, and the most critical to me, because it allows existing widgets to work inside the tabs, and makes the tabs transparent from a URLs perspective.
I was only 6 when Linus shared his first offering to the world, but I do remember the linux superbowl ad by IBM.
Somewhere between CMS and Scaffolding Framework
MODx is a PHP based, mm.. tool, for publishing websites. I don’t want to call it a CMS, though If you read MODx documentation, they’ll call it a Content Management System. But in my experience products labeled CMS tend to be inflexible tools that require lots of effort to place widgets on custom templates. I remember using one tool in which you could not have a publicly accessible page not belong to a menu. We ended up building a hidden menu for all such pages – absurd!
At the other end of the spectrum are highly flexible frameworks. These are much more flexible, and let you run wild, but leave a good chunk of work to setup decent content management, authorization, etc. before you even get to the site at hand.
Well MODx sit nicely between a CMS and a framework in my opinion. You get user management, admin panel, powerful configuration, etc. But you are not forced into any mold. In face the default install (without sample content) is literally an empty page! Uncomfortable at first, but once you spend a few hours with it you begin to love the freedom. It is intended for sites that are heavy content focused, but provides full CRUD application abilities as well.
I am writing this as the release for Gingerbread (2.3) is being slowly released OTA, but the same steps apply regardless of the rom version you are eagerly awaiting.
This is safe and repeatable, and I have done it for 3 updates on 2 devices now, so I am very confident nothing will go wrong. Even so, I waive any responsibility if something goes wrong.
For the details and pictures, read below the fold.
It’s Here ! Google TV powered Revue from Logitech
I’ll admit before I go any further that I am a Google fan, and Android developer. When Google sent me the free Logitech Revue I was eager to dig in!
But honestly, I’ll do my best to stay neutral.
And before I go any further I want to make sure we’re all on the same page about what Google TV actually is or does.
- GoogleTV is not a subscription dependent content provider. (Rather Google TV aggregates existing sources of media into one source)
- You can use your existing TV (HD with HDMI inputs required).
- You should keep your current cable or satellite feed.