Blog posting to Google result in 20 minutes

Today I was looking for some xml matchers for RSpec so I googled ‘xml matchers rspec’, clicked on the first result, which happened to be exactly what I was looking for, and I posted a comment. After posting the comment, I realized that the post had only been up for 22 minutes! That is the fastest turnaround I’ve ever seen from blog post to Google results. Wow.

I was so amazed that I took some screenshots:

google_search.png

wolfman_blog_post.png

Anyways, if you’re into RSpec and doing much with XML document creation, his matchers seem to be a great way to verify that your documents are being created correctly. Thank you.

Tagged with: , ,

Amazing Wii Remote Projects

Wii RemoteI just had to post this. Johnny Lee is doing amazing things with a Wii Remote. One of my favorites is the video on head tracking for desktop vr displays. It’s incredible! When you have a minute, it’s worth checking out.

[Wii Remote photo taken by Dave Minnich]

Tagged with:

How to add tags to your template Wordpress 2.3

Although I upgraded to Wordpress 2.3 over a month ago, I hadn’t taken the time to edit my template so that it would show the tags on each of my posts. I also wanted to add a tag cloud to the sidebar. It’s actually very easy to add tags to your template with Wordpress 2.3.The following two links will help you get all set up:

  • the_tags: this method is used for displaying the tags of a single post. Use this within your Single Post template file.
  • wp_tag_cloud: this method will build a tag cloud for you. Use this within your Sidebar template file.

It’s pretty simple. Just add those two methods to your single post and sidebar templates, and you’ll be ready to go.

Tagged with: , ,

Slimtimer - Another winning service

SlimtimerWhile I’m in the mood for promoting great services and products, I have to throw in a recommendation for Slimtimer. One way great businesses create meaning and a loyal following is by solving a pain better than anyone else. I believe Slimtimer has done that.

Slimtimer makes time tracking easy and painless and produces powerful reports. If the recording of your time isn’t made easy, then recording the time is usually put off to another day and the records will be mostly based off of memory and will be inaccurate. If the reports produced are not useful, then all of your effort in tracking your time will be in vain.

During my time as a web developer for BYU’s Creative Marketing department we used time sheets where we recorded how we spent our time in intervals of 15 minutes. This was usually a drab process that you “had to get done” at the end of the day. We did this on paper, and I’m not sure how well the information was actually used. It seemed like a waste of time.

In one startup company that I worked for, time tracking was completely neglected all together. This led to lots of wasted development time and left no good way for management to guide efforts in more productive tasks. It seemed that management had to make blind decisions.

Another startup I worked in tried to track time with a custom-built time tracking software, but it was so complex and difficult to use, that we often put off recording our time to the end of the week, which led to bad data. We ended up abandoning the practice of time tracking altogether.

slimtimer-timer.pngIn my current work as a freelancer, I’ve been empowered by Slimtimer’s simple time recording widget. It allows me to simply click on the task that I’m working on and the timer begins to track in the background. If I forget to start the timer, I can easily edit my entries in a beautiful time editing interface.

Slimtimer has very powerful reporting capabilities. Tasks can be tagged so you can segment your reports in the ways that you need them whether it be by ‘billable’ or ‘non-billable’, by client, or by project, or even by task. You can also share tasks and time entries with co-workers, so you can build reports for your entire team.

If you are tired of filling out timesheets, and would like to have a better understanding of how your team’s time is spent, I strongly recommend you check out Slimtimer.

[Note: I am NOT an affiliate marketer for Slimtimer.]

Tagged with: , ,

Peepcode - It’s worth every penny

peepcode.png

Buying screencasts at Peepcode is worth every penny. The quality of the tutorials is superb. The topics they cover will increase your Rails development productivity, systems reliability, and overall maintainability.

Go check out the screencasts that are available and actually buy one. You won’t be sorry.

[Note: This is NOT an affiliate marketing promotion. I honestly love the work these guys produce.]

Tagged with: , ,

Simple Tutorials For Learning BDD and RSpec

Behavior Driven Development (BDD) is quickly grabbing attention of developers who are looking for a better way of developing applications. BDD revolves around the idea of writing specifications for your application, writing the API that your code will need to implement to meet the specifications, and then finally implementing the API to pass all of the specifications.

I used to be guilty of not writing good tests for the code that I developed. I found it difficult to really find the meaning of writing the tests. I knew it was a good practice and would alert me if I broke my code later on, but I had a hard time figuring out what types of tests to write, and which code I actually needed to write tests for. I think this is a problem that Dave Astels saw happening in the Test Driven Development (TDD) world. See his original post leading to BDD.

Behavior Driven Development has helped me begin writing practical tests for my code, and has helped me focus on the specifications of what my application should be fulfilling. It has really caused quite a shift in my thought process.

RSpec is a testing framework that facilitates BDD for Ruby. It makes the testing during the development process work for you. You write your tests first, watch them fail (because you haven’t yet implemented anything yet), and then implement the code and see it pass. It’s a wonderful process, and RSpec makes it fun.

rspec-tests.png

The above example shows some some results of some Ruby development I’m currently working on. I’m working on implementing a FamilyTreeApi client’s person method. You’ll see that you can read the tests and see what the specifications are of that particular method. The Green are specifications that the library is currently passing, and the yellow are not yet implemented.

Below is the actual test for the first specification of the client ‘person’ method description.

rspec-code.png

If you are interested in learning more about BDD and RSpec, I suggest going through the following tutorials:

One more interesting thing with RSpec. Ben Maybe has posted an article on using RSpec for your C code. This is way cool, being able to harness the power of RSpec while writing an application in C.

Has anyone else seen any other good BDD frameworks for other languages? How about more good tutorials? What has been your experience with BDD or TDD?

Tagged with: , , , ,

Upgrading to Wordpress 2.3.1 - Now with tagging

Wordpress 2.3.1 finally came to Fantastico on my Hostmonster account, so I have finally upgraded. I haven’t seen any problems yet. I’m hoping that most bugs have been smoothed over from the 2.3 release.

One of the things that I’m most excited about for this release of Wordpress is the native support for tagging. I wrote a post a little while back on category cleaning for my blog. I used to treat categories like tags, but I’ve changed my thinking and the way that I organize my blog. I now have 1 category per post (unless I really have to go to 2).

Categories are like folders in a filing cabinet, tags are more like the index of a book, describing the contents so that you can easily find them later on.

After having used del.icio.us for almost 2 years now, I’ve found tags to be a really effective way of indexing my bookmarks. I can almost always find what I’m looking for very, very quickly. I’m hoping that tagging will come in useful for my blog as well.

Tagged with: , ,