I had some spare cycles today so I decided to kick the tires on Dashcode - the Dashboard "widget" creation tool that you can use in OS 10.4 and later. The widgets are little applications that sit in your Dashboard and can do simple or complex tasks.
I decided to create a little widget that displays my bandwidth usage for the current month. This widget will post the request to my ISP (Northwestel Cable) and then display a little gauge to indicate how close I am getting to going over my usage cap and incurring usage charges.
So - if you are on NWTel Cable - download the little widget - configure your MAC address, choose your Usage Cap and never have to view the NWTel Cable website again!
A bit more than a month ago a DNS attack was reported by Dan Kaminsky that stated there was a fundamental problem with the DNS protocol that could result in web site requests being sent to the wrong location. This is a great opportunity for phishing and other evil doer's to grab personal information without our knowledge.
I decided to use the tool on his web site to test if my ISP (Northwestel) had patched their DNS servers to better protect against this particular attack. I clicked on the button that says "Check My DNS" and was presented with a potential failure notice as follows:
Your name server, at 18.104.22.168, appears vulnerable to DNS Cache Poisoning.
All requests came from the following source port: 50341
I wonder when Northwestel will update their DNS servers to protect against this issue?
Check your own ISP at the above link and see if they are doing any better. Leave comments to the failure/success of the test!
Llllllllloyd IM'd me to ask for my top 3 tips of using OS X so I figured it would be a quick and short post. I have 3 sections instead: OS Tips, Apps I Use, Etc!. These are only valid for Leopard 10.5.2+.
Get a mouse with many buttons and set the non useful ones (e.g. beyond left/right/middle) to things like show desktop, show Spaces (a.k.a virtual desktops), show all windows of app. Very useful.
I don't use TimeMachine. I do regular backups with CarbonCopyCloner. This reminds me to donate some funds to the project...
I am not paranoid enough to turn on FileVault but I do use the screensaver password utility.
I have a UPS plugged into my Mac so it will gracefully shutdown when (not if) the power goes out.
Install Bonjour on Windows clients and you can do printer sharing with 2 clicks on the Mac.
I use apps that have lots of goodness and/or Mac'ness baked in so ports of Windows apps and ugly Java apps really need to kick bottom for me to use them. Cool doesn't cut it for me.
Email/RSS feed management: GMail and Reader - I just find it easier to keep it all online (or in the cloud as the cool kids says these days) than sync with various products. Mail is nice but meh, Calendar is nice but meh, Address Book is really lacking.
Skype: IM & Voice calling
AdiumX: Instant messaging for everyone
VoodooPad Lite: a personal wiki, still kicking the tires on this one to see if I should buy it or not (i.e. do I use it regularly)
Firefox3 and Safari: some sites don't like one or the other. FF3 wins on plugins/extensibility and Safari wins on native OS integration.
VirtualBox: for free virtualization - it runs Ubuntu Server 8.04 lovely
AppFresh: keeps everything up to date or at least lets me know when I am lagging
OpenOffice 3 Beta: works, a bit buggy, definitely an early beta in the classical sense
I will not use MobileMe/.Mac. It costs too much and doesn't offer a compelling feature set for me to use. I am savvy enough to emulate the functionality through other means or just don't need the tools they offer at that price point.
iPhoto: you will either love it or not. I love it but wish it had better metadata gathering functionality.
I really like our HP printer it works great with OS X.
Always, Always, Always buy AppleCare. Always.
Wow. I have totally missed the REST bus. I finally took the time to experiment with REST, an architectural style to integrate systems, and my eyebulbs are exploding with neat uses now. This first idea below is the most immediate idea and is a bit rough but I want it documented.
The thought that has been buzzing in my brain is the idea of the universal context that can be selectively searched to provide timely context information. Big words, here's the simple idea.
We send a lot of information to Person A (usually email, but could be other forms now (IM, SMS, Twitter, blog comments, calendar appointments, address book, etc). Repeat this process with lots of other People. There is a lot of data in there about, well, everything. This is the universal context - it is the data about everyone you interact with but it is usually weakly correlated.
Where am I going with this?
Well, imagine if you could create a REST interface/app for each person you interact with. I would be //universal/context/person/Evan Wise and I am talking with "Random Friend" //universal/context/Random Friend. If I had a URI for each of the conversation methods I have used with Random Friend: IM (..../Random Friend/IM), Twitter (..../Random Friend/Twitter), email (..../Random Friend/email, etc, etc, etc. I could query each of those individual data sources for information that is happening right now.
An example, while using IM to chat with Random Friend I mention Mutual Buddy in reference to a conversation I had with them. Now, using existing semantic search methods I query all the existing data stores I have on Mutual Buddy and display them in a search results window next to my conversation with Random Friend. I can now reference previous conversations - or previous/future meetings I have scheduled or previous emails etc - and be more quickly able to relate info to Random Friend.
The real power in this is that you have distinct applications with user interfaces that are purpose designed for their task (email, IM, etc) but they have access to all the information in all your other applications/data stores in a simple common form. The key would to have standards around the query/results interface and the data structure that each of those interfaces returns.
Being able to transparently, and simply, query existing data stores using a simple URI provides a great potential to integrate disparate information systems while not requiring each application to implement the universal context individually.
I think this would be great for people like me that always forget stuff and don't like searching for it all the time.