Wednesday, February 28, 2007
As the screen grab above for Chicago illustrates, the severity of current traffic conditions is shown using a green / yellow / red overlay in maps, satellite and hybrid views.
The same features have been available for select US cities on the Google Maps for Mobile application, so it's nice to see them port it to the desktop version for people planning their trips or checking the roads before heading home.
Let's hope we see this roll out to some of the other countries that now have street maps. Personally I vote for England and Australia ;)
Friday, February 23, 2007
I'm now including almost every cricket match played in the world above club level, so now you can follow Internationals, Twenty20, women's internationals, and your domestic sides battle each other for glory with the World Cricket Map on your Google homepage. The latest release uses version 2 of the Google Maps API, so there's better imagery, more road maps, and it works properly in IE.
If you've already got the moduleo n your homepage you don't need to do anything, you should already be seeing better results.
It's been a while since I looked at the Google Hompage Module code, turns out there's been some big improvements since then. Of note is analytics support using Google Analytics. If you've written a module add the analytics code and see how popular your gadget is, and where it's popular. I had no idea that over 100 people were keeping an eye on the cricket with my humble module! Now I feel bad for not improving it sooner -- maybe I should look closer at supplying live scores...?
Also of note is the much enhanced Scratchpad that works as a real-time web-based development environment for you modules. It makes development and bug fixing a breeze and I can't recommend it enough.
Thursday, February 22, 2007
For developers there's new APIs for Google Apps, including provisioning, single sign-no and email gateway interfaces. Applications that make use of these new APIs can only be used with the Premier edition.
This push makes Google Apps a serious threat to Microsoft's Office empire. Keeping in mind that for large Enterprises the thought of hosting their applications off-site is an anathema. Likewise power users of Office applications (Excel in particular) are unlikely to consider switching. Spreadsheets' lack of support for pivot tables, a scripting language, advanced formulas, and form components makes it a non-starter for a lot of organisations that use Excel for data manipulation.
But For smaller companies (or educational institutions), the power-tools available in Excel and the rest of the Office suite are less important than the ability to write a fax, tabulate numbers, and easily and securely collaborate on spreadsheets and documents.
For these users remotely hosted applications that actively support collaboration are very attractive. Particularly with the 24/7 phone & email support Google are offering. Indeed for some operations the cost savings in application support far outweigh the $50 a year Google are charging for their office suite and will count as a net positive.
As an aside, this means that my Google Timesheeting tool is much more closely tied. I've updated my recent blog post on timesheeting with Google and posted some suggestions for how to make the most of the integration at the Office Tools Group.
Monday, February 19, 2007
v0.9.1 is a bug fix release that fixes a bug in the reporting module for users with a Google Spreadsheets Account created with an email address from a domain hosted by Google Applications for Your Domain.
The users affected would have received an 'Error: Timesheet Not Found' dialog when creating timesheets even though the correctly named timesheet existed.
Tuesday, February 13, 2007
Everywhere I've worked timesheets have always been the source of rancour. Whether it's people not completing them on time, using the wrong project codes, using an old template, or having to fill out three separate forms every week - timesheets always seem more complicated than they need to be.
Outlook and Excel are the defacto tools for timesheeting, but putting aside that GoogleOffice is free, Google's Calendar and Spreadsheets are actually better suited to the job. The access controls and collaborative features of Google Calendar and Spreadsheets streamline timesheeting in a Google Office.
Timesheets in Google Spreadsheets
Spreadsheet's collaboration and access controls make it excellent for timesheeting for a small business or an individual. Start by creating a timesheet for every employee, and sharing that (with write access) with your 'payroll' or 'timesheet' account
With payroll and staff both having access to timesheets everyone involved can 'sign off' electronically thanks to the built in revision control. Go one step further and share read access with any external agencies that might need timesheets (like agencies or umbrella companies for contractors). This prevents the seemingly endless duplication -- I've had to fill out 4 separate timesheets for a single contract.
Annoyingly spreadsheets isn't part of GAfyD yet, so you'll need payroll to create a Google account for the job.
UPDATE: Spreadsheets now is available as part of Google Apps. So just share your timesheet with the same timesheet user you share your calendar with.
Spreadsheets supports exporting to Excel/ODF and PDF so you can print or save backups. I personally save PDFs of all timesheets after I complete payroll to make sure there's always a backup once money's changed hands.
If you'd like to make things even easier, you can automate the 'filling in' part of the timesheet process by using my Google Office Timesheet Tool.
Recording Time with Google Calendar
I recommend using calendar to track your daily activities on the fly. To make my life even easier I've written a Windows tool for timesheet data entry that uses the calendar API to make this really quick and easy.
Start by using Google Applications for Your Domain to provide timesheet calendars for you and your staff. Create a 'Timesheet' account and invite it with read access to all your employee timesheet calendars. Then have your staff record their daily activities on their timesheet calendars, adding a new entry whenever they switch clients / projects.
That timesheet account can now get times for invoicing and timesheets without having to chase up every team member asking how long they spent doing what.
When you enter your activities make it easy on yourself by including the project or client in the title text - even if that's *all* you put in the title. If you get the level of detail right and make it a regular intraday activity this should take most of the pain out of timesheeting.
Some Timesheeting Tips
- Create (and regularly update) a shared company wide 'Admin' calendar that includes staff meetings and public holidays. You and your staff can copy these admin activities straight to personal timesheet calendars.
- Include a 'Make sure Timesheets are complete' task with a reminder in your admin calendar for the day before you usually process payroll.
Monday, February 12, 2007
[ Latest Version: 0.9.1 (18/02/2007) ]
I'm releasing a freeware single-entry timesheeting tool that uses Google's Calendar and Spreadsheets services to automate your timesheeting, making it as simple as possible.
Check out Timesheets at Google Powered Office Tools.
Simple Time Entry
Just add a new entry whenever you switch projects, and the tool will add it to your Google timesheet calendar. It tries to be smart by ending the last task when you start a new one, finishing your last task at the end of the day, and keeping track of your previous projects.
Easy Timesheet Creation
Sums the time spent on each project for each employee from their Google Calendars and fills in Google spreadsheet timesheets for each of them. Have your staff share their timesheet calendar with a 'Timesheet' user to create their timesheets for them with a single click!
I've created and shared templates for weekly, monthly, and yearly timesheet formats. Just login to Spreadsheets and choose import, then point them to the right location. Once imported, just rename the new spreadsheet for each employee (Eg. 'Reto Meier Timesheets').
Tuesday, February 06, 2007
Every techie knows Google Groups (formerly DejaNews, and in paleolithic times - Usenet) is the magic beans of software development, by itself it's justification for getting Internet access for developers. It is the best, largest repository of esoteric information on the net.
You may have noticed that a couple weeks ago a new version of Groups came out of Beta. When Groups-Beta was released I pretty much ignored it; It was always the content that was important - the group was just a category inherited from Group's origins with and dependence on Usenet. So other than looking more '2.0' what could Groups-Beta offer?
Google Groups is actually useful for business
Well, it's a substantive improvement in terms of functionality, Groups now features full read/write access controls; file, document, and web hosting; as well as the revamped discussion groups. Now you can create private knowledge bases full of development resources and use Google's technology and servers to host and search it.
Groups is not your Grand-Daddy's Usenet. Use it to:
- Host private knowledge bases for you and your company, with resources for development technologies.
- Host a client facing homepage for products, where users/customers are encouraged to participate in the support forums and where product downloads and documentation are readily available.
- Create a resource site for your team's development projects, where team members discuss bugs & features and store project resources, QA builds, project plans, and documentation.
Knowledge workers need fast access to information
We sure as hell don't have email and 6Mb broadband to keep in touch with clients. We have tech forums and programming meetings to share development tips - it's what code reviews and pair programming is all about, your manager called it knowledge sharing. Most IT knowledge workers already use groups to search for information, so they're not learning any new behaviours
When we are keeping in touch with clients it's convenient (for you and them) to have a single point of contact rather than relying on interfaces with individual developers. Use groups to host your product downloads, support forums, and documentation.
Earlier I mentioned three things to store in a knowledge base:
- Company specific (personal) knowledge about a particular technology
- Development knowledge about a particular product
- Customer facing (and customer contributed) knowledge for a particular product
Let's look at each more closely.
Create your own private (or company-wide) knowledge base
Access controls let you create a knowledge base with access limited to yourself or your company. I've created a private Group for each technology I use (currently one for Google code and one for C# development). I've invited each of my staff to become part of the group and encourage them to post clever resources like code-snippets, and to ask (and answer) tech questions within the forums. I also make sure everyone forwards email chains with problems / solutions into the discussion forum.
Because access is limited to the people you invite, you can post sensitive company questions / answers / code snippets / binaries without fear of public disclosure. The centralised archive means all the members have access to the same information as soon as they've been given access -- no more archives and forwarding mailing list emails to new staff. And the information is available on any Internet connected computer.
File hosting gives you somewhere to store cool icons, useful toolkits or 3rd party resources. The 'Pages' (or 'wiki' or 'documentation') section gives you somewhere to put company doco, like coding guidelines, naming conventions, FAQs, etc. The documents are collaborative and revision controlled (think Wiki) so staff can update them as required and everyone can see what's changed and when.
You also get the Groups' discussion forums, with all the usual goodness like staring, sticky posts, closed discussions, ratings, and threading. Staff can choose how they read and contribute to the group using email, digests, RSS feeds, browsing, or searching.
If you're feeling adventurous, check this out. I've also created a secret private 'me access only' group, but rather than posting snippets, I post full source code. All my source code. A full text, universally accessible, fully searchable copy of my code base. I know some of you just threw up a little in your mouths, and yes, it has risks. You can minimise them by obfuscating the code a little (remember it's not a source backup, it's a knowledge backup), remove all the headers at the top of each source file and kill all project / solution / package references -- anything that gives the files structure.If I release a product I need to host it somewhere
At a minimum that site needs a descriptive homepage, support / discussion forums, access to the most recent downloads, and all the release notes, FAQs, and documentation.
Now I could build this myself, and it would be someone's job to update the info, monitor the server, and deal with the support emails. But me and my small staff don't have the skills or the inclination to do it properly, plus I'd rather the whole team participate in support to get a feel for what the users are saying. So rather than building from scratch I suggest creating a new Google group like this one for my Google Office Tools.Write a 'welcome message' (effectively a homepage) with a description of your product with screenshots & PR material. You've got 100mb of file storage to host your downloads, and a built in support / feedback forum. Use the documentation tab to provide release notes, FAQs, how-to guides, etc.
Customise the look and feel by changing the colour scheme and fonts to bring the site in line with your product or your other websites. Using the 'navigation' tab in the settings, hide the 'members' tab and rename 'Files' to 'Downloads' and 'Pages' to 'Documentation'.
You've got a clean, structured, and reliable homepage that you can build a user community around. You even shift the burden of server load or bandwidth to Google in the process.
Manage your projects internally with a project management site
I also want somewhere for my project team to host technical specs, store binaries, and ask project specific questions that customers shouldn't be reading but which are too project specific to store in the technology knowledge base (what's the address for the SQL server we're using for QA? What are the RGB values for the colours used on the splash screen?), so I invite the team members for each project to a private group.
I cross-post bugs and feature requests here, as well as a summary of when / how bugs were fixed (or why they weren't). The files section hosts the current QA and release binaries as well as the last QA source, plus things like project graphics or required release distributables. The documents section holds the project plan, specification, release schedule -- all version controlled Wikis.
If a new team member joins they've got a first place to look for answers to their questions, and an excellent place to ask questions they can't find the answers to.
General Tips for Professionals Using of Google Groups
- Structure your documents. By selecting 'Rearrange your documents' in the 'documents' section, you can structure your documents into a sensible hierarchy. 'Sub-documents' will be indented underneath their parent and will be shown when you view their parent. Hierarchies can go multiple levels. [Here's an example].
- Add your product or company logo. Each group lets you include a logo that will be displayed on the top left and in the listings.
- Discussion posts via email. If you have an email discussion with someone that covers technical details or any other useful information, bcc or forward the conversation to the appropriate knowledge bases. You can get the email address at the bottom of the full discussions list (next to the XML feed icon).
- If your knowledge base is going to feature a lot of code snippets, set the default view to proportional font in the appearance tab of the group settings.
But what's wrong with using Outlook?
The three most common technological solutions I've seen are: Mailing lists and/or Email folders, Wikis, Internal databases.
Email and mailing lists are difficult to search and a pain to distribute to new staff and Exchange is a dirty whore to search (especially server folders). Watch your mail server get pwned during a particularly heated discussion about a message with a 3Mb attachment.
People ignore email messages older than 5 days and will never go back to them while Wikis tend to be too formal, which can intimidate new users, and are seldom up-to-date. Plus you have to setup and host a Wiki somewhere.
Internal databases are generally an admission that using Outlook just isn't enough. Generally these systems have special data entry requirements (and a new UI) that staff need to learn, have specific access permission requirements, and that often can't get accessed away from your desk (or the office).
Monday, February 05, 2007
Google has been steadily adding Australian support to Google maps over the last few months, including satellite imagery, local street maps, geocoding, and as recently as two weeks ago the the Australian domain of Google maps went live.
Sensis' Whitepages and Yellowpages have always been pretty strong, but Whereis has been stuck somewhere in the Web 1.0 dark ages for a long time, so I expect the growth for Google will begin with maps and develop from there. The current user base for White/Yellow pages searches is still big and loyal enough that it will take some time for Google to start making an impact on local search. But Google's innovations in mobile local search and providing personalised local search should help it win over market share.