I seem to be writing a lot of “first impressions” posts lately, and I’ve definitely been using several new tools recently. Its fun and strange at the same time; I am doing a lot of learning, which is fun and horizon expanding, but I am also coding less as a result, and because my knowledge of these new tools is necessarily superficial as a newbie, I know that the code I am writing is probably not very good. This week, I started gathering requirements on a project that I initially expected to be coding in JRuby on Rails, only to find out that eventually, I would be handing off the application to a development group that only wanted to support PHP. OK, I thought, I’ll just use CakePHP, which is a Rails clone and one of the best PHP MVC frameworks offered. I know PHP, and I know Rails, so the transition should be smooth. and overall, it has been so far.
If you’ve scanned my blog in the past, you know that I am a big fan of Python and have been obsessed with Django recently, which to date is the most elegantly designed Web framework I have encountered. So far, other than using it on a very small project, I have mostly just been exploring Django and looking forward to using it on a more significant project that’s on my schedule for this summer. Unfortunately, it looks like I won’t be using it on that project after all, and the story behind it, which involves a good deal of office politics and my reasoning as I try to find a way through it, may be of interest to some.
As I mentioned a few weeks ago, Andreas Stuhlmueller has proposed a general REST API for Django, and as his ideas and mine seemed very compatible, we began talking about collaborating on a joint solution.
I recently turned my attention to user account management in Django and what follows are (cleaned-up) notes I made while exploring the django-registration contribution. As a result, this post is very introductory and task oriented, but hopefully, it will help orient newcomers like me to what’s available and provide a foundation for exploring these topics in more depth.
I’ve updated the django-restful-model-views contribution, based on feedback I’ve received, primarily to make this a more generic REST API (not just model based). This update also begins implementing some ideas borrowed from Ruby on Rails.
I posted an announcement to the django-users list about the django-restful-model-views contribution to get some feedback on the approach. The main responder, Malcolm Tredinnick, gave me a lot to think about and along with more research into how Ruby on Rails (RoR) implements REST, I have new ideas about how to improve the contribution.
This time around, I will try to take the logical next step with my exploration of REST and Django, and begin creating a Django contribution to implement the ideas I have been working on and to do so in a way that fits with Django’s philosophy.
This is the third post in a series exploring how to create a basic tagging application, and how to do so in the Django framework so that I may better understand Django as well as other technologies and development approaches that are at least somewhat new to me. This time, I want to revisit REST, and hopefully come up with something more usable from the last post.
If you’ve read my blog in the past, and you probably haven’t, you’ll know that I have been trying earnestly to understand how to effectively apply REST, both in Web applications and Web Services. I also believe that you can’t claim to know something, and judge it fairly, until you have used it in a significant project. That is what I intend to begin in this post.
Although I’ve used many Web based applications that employ tagging, I’ve yet to create an application of my own with this feature. But now, I have two potential projects on the horizon that could benefit from tagging, and I’m thinking about how to best implement this, both in the database and user interface layers.
So, I thought I would explore how to implement tagging in my own applications, from scratch, and write about them on this blog. Therefore, I won’t pretend I have all the answers–or even necessarily any good answers–but I will simply be trying to think through how to approach implementing tagging, and I will welcome any constructive feedback on those thoughts.