62: Feeding the Office Beta
2010-01-03
Download MP3 For Geekons Episode 62
Pop-Up: MS Office 2010 Beta
- With Office 2010, Microsoft has enhanced their new interface, extended it to Outlook, and has made working with office documents enjoyable. (that is, if you find easy to design spreadsheets with advanced formulas enjoyable)
- The two largest and most obvious changes are Outlook and the new "backstage" tab in each application.
- Backstage contains all of the "behind the scenes" tasks required to manage your documents, such as Save, Open, Close, New document, recent documents, Print, share, options, etc.
- When using the Print option in Backstage, you can see a full preview of the printed document.
- Outlook now uses the full ribbon interface like the rest of Office.
- Calendar invitations and changes show a preview of the calendar inside the invitation so you don't need to open your calendar to see if you have the time available.
- Emails with replies back and forth are now grouped together in threads. (much like Gmail, but with a much richer user interface)
- Each email has a pane at the bottom with icons for each person involved in the email, giving you the ability to quickly look up other emails sent from those individuals, meetings you have with them, look at their most recent updates on sharepoint, and all kinds of obscure social networking stuff that aren't fully developed yet.
- Favorites, such as Inbox, Sent Items, and Deleted items are always at the top of the list and are very easy to reach.
- Roughly every feature of Outlook appears to have been tweaked to perform better and be more intuitive.
- 5 out of 5 stars, because I cannot justify using Linux or OS X if that means giving up Office 2010.
Geek-Tweak: How to write your first Google Wave Gadget!
- First, you will need a google wave account and a desire to do something geeky strictly for the sake of being geeky.
- Next, you will need a text editor and a place online to upload your gadget to.
- Then, paste the contents of http://gadget-doc-examples.googlecode.com/svn/trunk/wave/hello.xml into a text file, and upload it to your website.
- Finally, create a google wave, begin editing the wave, and click the puzzle piece icon (which means add Gadget by URL) and type the URL of the XML file you uploaded.
- Done! You just made a gadget that say "Hello World".
- OK, that's how to write someone else's first gadget, now what about writing YOUR first gadget?
- Now that we have all the tools required and see the basic structure (you did read the hello.xml file, right?), let's wrap our heads around some key essentials to Google Wave
- Multiple people can be interacting with the gadget at the same time.
- The gadget should be updated on everyone's screen at each change.
- A single dimensional array is stored (that is, an array with one value for each key) in the wave.
- The Wave API has a tool for generating JSON strings out of arrays and objects. (which can then be stored in that single dimensional array, and executed later)
- There is a master wave object that gives you access to the functions required to tie your javascript to wave.
- So let's walk through how my first gadget gets processed by wave (which was a simple review gadget that actually didn't add any functionality to wave whatsoever):
- First, wave registers a function that is called once the wave finishes loading.
- Next, that function is executed.
- That initial function checks to make sure the application is being executed within a wave, then it sets the State Callback function. (The State Callback is called anytime there is new data to display to the user, such as when the gadget first loads, or when any participant submits a change to that array that is stored in the wave.)
- The State Callback is called because whatever data is there is obviously new since nothing has been loaded/processed/displayed yet.
- The State Callback walks through the array and adds an HTML paragraph for each of the nodes on that array.
- The key for each data set in my array is the user ID of the person currently viewing the wave (because that's what I told it to be... it could technically be anything you want it to be). Because of this I also have the State Callback look up the display name for each person, then it displays the name next to the review inside that paragraph.
- once that is done, the gadget just sits there doing nothing, waiting for someone to type text into the review box and click submit.
- If a person does type text into the review box and click submit, then another function is called that pulls the text from the review box, validates the data to prevent cross site scripting, then it calls the submitDelta() method of the global wave object and passes it an array where the key is the current user's ID and the value is the contents of the review box.
- Once it finishes submitting the Delta it clears the text from the review box, and because the data has changed Wave automaticallly calls the State Callback which walks through the new array adding a paragraph with each review.
- If you are following closely, you would notice that I'm simply adding paragraphs, which means every time someone submits something new, all of the reviews are added to a long list. I didn't realize this, but once I did I just told the gadget to clear out all of the review paragraphs then re-add them. It happens so fast it just looks like the text changes.
- In later versions of my gadget I've also added star-ratings and cleaner displays (using a table instead of lists of paragraphs), which required me to add an additional step: use the printJason method to convert a multi-dimensional array to a simple string so I could associate both a star rating and a text review with a user ID. Then, when I grab the data while walking through the array in the State Callback function, I have it evaluate the JSON object which effectively turns it back into a normal multi-dimensional array.
- Yup, that's a lot of geekery for a small reward.
- I only mention this because I do think that wave will eventually become more popular and I think it would be cool for ministries to be ahead of the technology curve for a change.
- Once I clean up the code and make it more efficient, I'll release my star rating gadget so you can use it in your waves to rate anything you'd like (even geekons episodes).
- That's it! You've now heard more about wave than most people, and are likely more confused that before you hit play today!
View-Source: Auto-joining unprotected wifi
- Throughout the history of man we have proven ourselves to be selfish and lazy, always seeking out the easy path.
- A modern (and geeky) example would be using the same username password in multiple places. We know this is insecure because someone hacking the least secure service would then have access to the highly secure services.
- We are also prone to auto-joining unprotected wifi. How many times do you visit your local church, coffee house, or airport and join their wifi without thinking twice about it?
- By nature we simply default to the easiest habit, not thinking about the consequences.
- The Bible documents this in Exodus 32 where the Israelites, still new in their freedom from captivity, have turned away from God and built a golden calf to worship. They were waiting for Moses to come down with usernames and passwords for the RADIUS authenticated AES encrypted wifi, but decided they couldn't wait any longer and joined the world's unprotected wifi instead.
- In Hosea 11:7 God observes that His people are bent to connecting to unprotected wifi rather than to remember their passwords that change at least once a year.
- Despite our default nature, our built-in desire to do things our own way, we've been given a chance to be re-programmed. Romans 6:6 tells us that our sinful nature, the old man, is crucified with Christ so that sin might be destroyed and that we would no longer serve Sin but would serve God.
- This means that we can have the option to disable auto-joining the world's wifi each time we want to get online.
- Note that I did not say we could disable auto-joining unprotected wifi altogether, but that each time we want to get online we now have the option to resist the world's wifi.
- Luke 9:23 reminds us that to follow Christ we must deny ourselves daily. We are in an ongoing and automatic battle each day.
- How do you configure your spiritual wifi adapters?
Key Verses: