I’m launching a new Django-based project at work.  I’ll initially be the sole developer, but I expect it to grow to 10 heads (developers, QA, web designers, operations, and project management) over time.  I hope to start the ball rolling this week, and one of my first decisions is the Source Code Management (SCM) tool.

Here’s the development environment:

  • Up to 12 people using the pool.  Four to five of them will be full-time developers.  The developers, QA, and web designers will use Macs; operations and project management will probably use Macs but might use Windows
  • Most of us will be in the same office space, and all of us will be in the same building.  But, I don’t want a tool that obviates our potentially hiring a contractor in a far-away land
  • We’ll use the standard pool organization of one trunk with multiple branches
  • This is for a commercial product that’ll have, eh, many lines of code.  Python will be the major language, and most of the technologies will be open-source.  There won’t be a line of .NET, or any other Microsoft technology, within 500 miles of the project
  • Perferably open-source.  Preferably free

I quickly narrowed the solution set down to Subversion, Mercurial, and Git.  I’ve extensively used Subversion, and occasionally used Mercurial.

I first eliminated Git, after reading multiple commentaries about its UI, and getting the sense that it’s less-than-fully baked.

Mercurial’s primary advantages are in minimizing network latency effects, a simple setup, and no status directories (e.g., “.svn”) “polluting” the pool. But, we’ll all be on a high-speed internal network, I’ve used Subversion before and don’t think the setup is terrible, and the declining cost of disk space makes .svn directories a non-issue. These all blunted Mercurial’s presumed advantages.

Additionally, I think distributed SCMs like Mercurial have a not-yet-fully-appreciated problem in making it too easy to not [ever] check code back into the main pool.  With a local repository, a developer can feel protected from accidents and continue working happily for quite a long time.  And then, say a year down the road, he/she does a massive check-in and discovers an integration problem.  Branches, or a local repository that is effectively a private branch,  should be easy to make — but not too easy.

Mercurial will be very effective for SCMing individual scripts and one-off files in random directories.  It means remembering which files are in Mercurial (or doing “hg status” a lot), but that’s balanced against not needing to make a new repository for a directory that contains just one SCM’d file.

So, I decided upon Subversion, via Trac, for the main code pool, and Mercurial for a “one-off” script SCM tool.  Another nice aspect of Subversion is its Trace integration.  (Trac has a Mercurial plug-in, but it’s experimental.  No thanks.)

References 3 Items:

Published 2 days ago from John on Seek Nuance Received 2 days ago
Close | Link
Since posting "The basics of creating a tumblelog with Django," I've received some requests to explain how to get these tumblelog items to actually show up on my homepage.
Published 6 days ago on Ryan Berg's blog Received 6 days ago
Close | Link

I predicted this back in March--can't believe a solution has surfaced so soon. It makes so much sense to build in an issue tracker to a revision control system. Since you're working with the code, might as well track the issues in the same system and take advantage of the extra metadata. This is really cool (and as a bonus, it's written in Python) so I hope to see it really grow and flourish!

Published 6 days ago on Eric Florenzano's Blog Received 6 days ago
Close | Link | Comments

I’m writing a job description for a new opening in my team.  While reviewing a draft, it dawned on me that one of the requirements was meaningless, and bordered on being silly.

Why do the qualifications of job descriptions list, “excellent communication skills?”

This is a knee-jerk requirement that’s in every description I see.  And I’m guilty of putting it in my JD’s over the years, too. I say it’s meaningless for at least two reasons.

  1. It’s a large blanket requirement that can’t be quantified. I don’t know how to do it, and I bet you don’t, either. I sense when someone will be hard to communicate with, but it’s instinctual and is based on a nigh-infinite number of (often subtle) reasons.
  2. Even though I can’t quantify it, I agree it’s important.  The problem is, it’s important to every job on the planet.  Every employee needs to be able to communicate “well,” be it in e-mail, memos, presentations, group meetings, 1-on-1, to subordinates, to colleagues, and to superiors.  I’ve never seen a job description ask for “mediocre communication skills,” or state that “poor mumbling is considered a strong plus.”

It could be argued that the “ECS” requirement lets you legally reject a candidate who cannot communicate well. Otherwise, you’re liable to be sued. But if so, then why not list, “must not pick nose or eat one’s ear wax?”  Or, “must not punch interviewer in the face?”  All of those behaviors would disqualify a candidate, too.

If a job needs particular communication skills — say, a web producer job entails a lot of writing — then the description should call it out.  For example, “three or more years experience with writing lively business stories.” But we shouldn’t waste time listing something that’s a common yet unmeasurable requirement for every job on the planet.

I’m going to write this description without listing “excellent communication skills.”  I wonder if it will pass the HR sniff test.

 

Published 8 days ago from John on Seek Nuance Received 8 days ago
Close | Link
On my new homepage, a combined list of my tweets, bookmarks, and user comments on my site appear underneath my latest blog entries. I use a fun bit of Django code to pull these various items together, sorted by publication date, and I'd like to share how this bit of tumblelog-like functionality works.

Referenced by 4 Items:

Published 14 days ago on Ryan Berg's blog Received 14 days ago
Close | Link

Ever since last September when I moved this site off the shared-hosting account which had been handling it from its initial launch, I’ve been using separate services to handle static files — “media” in common Django parlance — instead of using the same web server instance, or a separate instance running on the same physical server as the rest of the site. Specifically, I’m using Amazon S3.

When I first explained this a few months ...

Read full entry and comments

Referenced by 2 Items:

Published 15 days ago from James Bennett on The B-List: Latest entries in category 'Django' Received 15 days ago
Close | Link | Comments

So, let me straighten a few things out.

First off, this is my personal blog. What you see here is me speaking my own personal mind, and I neither represent nor want to represent anything larger: not Django, not Python web development, not my employer, not anything except me and whatever I feel like writing about. This is an important point to keep in mind, because I don’t have any claim to represent anything ...

Read full entry and comments

Published 16 days ago from James Bennett on The B-List: Latest entries in category 'Django' Received 16 days ago
Close | Link | Comments

For a little while now I’ve been trying to stay out of Python framework debates, partly because I just haven’t had the time and partly because things seem to be taking a turn for the nasty again. But recently it’s been harder and harder to keep away, especially with the hard work of a new entrant into the arena: Noah Gift, whose blog posts at O’Reilly have, in the last month ...

Read full entry and comments

Published 16 days ago from James Bennett on The B-List: Latest entries in category 'Django' Received 16 days ago
Close | Link | Comments

I’ve not written anything here for a good few weeks, my tweeting has slowed down some and I’m behind on my feed reading. I’m going to blame the new job and the daily commute from Cambridge to London I think. I’ve definitely not been any less busy that usual:

Hacking

We had an internal hackday on Thursday and Friday last week where lots of us over at GCap/Global downed tools and build cools stuff for a couple of days. This is exactly the sort of reason I took the job in London – for the opportunity to build interesting things quickly with other smart people. I got to play around with an event driven, music orientated, API hack and a more useful but less sexy documentation hack. Yes, I said documentation hack. I might be able to release the latter all being well but I need to finish it off first and kick the tyres on some internal projects

Django

As a development team we’re using Django for everything which is proving to be huge fun. It’s a decent size project and we’re pushing Django (and in particular new-forms admin) in interesting ways. Having worked previously with PHP, ASP.NET and Rails I’m loving lots of bits of Django. I mentioned the template system before but their are lots of other things to appreciate. Some of this just comes from working with people like Simon and Rob who know Django pretty well. Some of it just from being able to write Python every day.

Continuous Integration

When not working on Django, or writing HTML, CSS or Javascipt (now mainly using JQuery), I’ve been busy pushing the benefits of Continuous Integration. As someone who is actually pretty bad at writing unit tests I like the process of working with Cruise Control as a gatekeeper. I also like automation in general so have been busy with Ant scripts and some Twill scripts as well for more functional testing. Django’s test suite is pretty nifty and easy to use. The official documentation is a pretty good starting point but I’m still on the lookout for some more in depth best practices articles.

So, between writing lots of code I’ve had less time to write words other than internal documentation. I’m finding the change pretty refreshing at the moment but want to keep up with writing every now and again. Who knows how that will work out? I have a feeling that I might blog more geeky code related stuff but time will see how that plays out.

Tagged

References 2 Items:

Published 17 days ago from gareth on Morethanseven Received 9 days ago
Close | Link

One of the most active threads on reddit’s programming section right now discusses things people look for when reviewing someone else’s code; the article being discussed treats this as a great interview question and points to things like algorithm choices and object-oriented design as good responses. While these are important considerations, I’ve found I tend to make snap judgments long before I get to that level of analysis, and they’re almost ...

Read full entry and comments

Referenced by 3 Items:

References 1 Item:

Published 17 days ago from James Bennett on The B-List: Latest entries in category 'Django' Received 17 days ago
Close | Link | Comments
Ahh, the thrill of launching a new website. Then realizing you missed a few details before you flipped the DNS switch. Then rushing to get them fixed before anyone notices.
Published 19 days ago on Ryan Berg's blog Received 19 days ago
Close | Link
<p>According to the <a href="http://www2.ljworld.com/news/2008/jun/17/new_foundation_django/" title="LJworld.com / New foundation for Django">Lawrence Journal-World</a>, Django is now owned by a new, nonprofit, organization. </p> <blockquote><p>The Django Software Foundation, based in Lawrence, now owns the trademark and intellectual property that form the basis for the application that is used to create increasingly popular Web publishing programs </p> </blockquote>
Published 21 days ago on Ryan Berg's blog Received 21 days ago
Close | Link

From GraphJam:

relative extension graph

References 1 Item:

Published 22 days ago from John on Seek Nuance Received 11 days ago
Close | Link

A follow-up to my earlier post about problems with Memeo LifeAgent for Mac, and Memeo’s sup-optimal customer support.

Today, they finally responded in their support forum.

A recap: They initially said they would fix the problem by the end of May.  There were no more responses from them for five weeks, during which time two other users reported the same problem.

Today, Memeo now says that the problem is that I’m continually modifying a large file.

Attention, Memeo: I wasn’t continually modifying a large file.  I never said I was!  So from where did you get that idea?

And even if I was doing that, how in the name of [insert deity] does that justify LifeAgent sucking up 100% of my CPU, all the time?

 

References 1 Item:

Published 26 days ago from John on Seek Nuance Received 11 days ago
Close | Link

Daily blog by Kevin Fricovsky. In addition to having some really great content, he has started to post audio interviews with people from the Django community. This is a site to keep an eye on in the coming days and months.

Referenced by 1 Item:

Published 29 days ago on Eric Florenzano's Blog Received 29 days ago
Close | Link

After my terrible experience with Memeo LifeAgent for Mac, I searched for a better backup application for my MacBook.  (By “better,” I mean, “it’s not a piece of crap, and it works.”)

After reading enough product descriptions to glaze my eyes over, I decided upon EMC Retrospect for Macintosh.

At $119, it’s pricey, compared to consumer-grade backup applications. They’ve done a good job with the initial configuration screens, although they are more involved than simpler backup applications.

However, it works. It’s rock solid.  It’s a backup application that I’ll definitely never grow out of, because it can handle any system and network folder configuration that I’ll ever dream up.  It works.  I know from past experiences with this company that they take customer support seriously, unlike Memeo.  Did I mention that it works and it’s rock solid?

 

References 1 Item:

Published about 1 month ago from John on Seek Nuance Received 11 days ago
Close | Link

On a recent plane ride, I was watching an episode of The West Wing which had flashbacks to the original campaign which set up the Presidency on which the show is based. There’s a scene in that episode where Abbey Bartlet — the eventual First Lady on the show — is talking to some of her husband’s campaign staffers about whether her husband is ready to really run the campaign and be President. The dialogue ...

Read full entry and comments

Referenced by 1 Item:

Published about 1 month ago from James Bennett on The B-List: Latest entries in category 'Django' Received about 1 month ago
Close | Link | Comments

Demo site for django-arcade, an open source reusable Django app to add new flash games to any django-powered site. Looks very cool for easily creating game portals. It also comes from my future employer.

Referenced by 2 Items:

Published about 1 month ago on Eric Florenzano's Blog Received about 1 month ago
Close | Link | Comments

Djangodash, a two-day two-person sprint to create a project using Django, took place last weekend. To be honest, I wasn't expecting it to be much fun, but it ended up being an absolute blast!

Feedalizer.net

Before getting too far into this post mortem, I'm going to just get it out of the way and shamelessly promote the site that Tony and I created during the dash: feedalizer.net. The idea behind the site is that it's a feed aggregator, but people vote on the feeds. The higher the feed's score, the more likely items from that feed will bubble up to the top of the list. There's also the concept of a "channel", which only aggregates feeds for a specific area. For example, there's a Humor channel, a Django channel, and a Python channel. You can also subscribe to channels to create your own "station", which aggregates the content from the channels that you care about.

The idea came to me when a friend of mine asked me "I've never used a feed reader before, but I want to get started and subscribe to programming feeds. What are some good ones for me to subscribe to?" It took me about 30 minutes to cull through my feeds and produce a list of the best. But it shouldn't have taken me any time at all--there should have been a site out there to do this for him!

OK, enough shameless self-promotion.

The Dash

52 teams registered for the dash, so watching the commit activity at the turn of the clock was pretty crazy. Unfortunately, Tony was driving from 4 hours away and he hadn't arrived yet. When he did arrive, we both wanted to spend some time catching up and talking about non-Django things. So we didn't even get started until about 3:30AM. Getting started mainly consisted of frantically checking in 3rd party projects that we thought we would use, and talking about architecture, and writing a few cron jobs. Not much code got written that night (morning?), since we still had a lot of planning to do.

The next day, all of a sudden our commits weren't working! We went to the website to see what was going on, and the website wasn't responding to our requests. Something was definitely going on, and it was slowing down our progress significantly. We tried working on our own separate parts of the project, but at this early stage there was simply too much overlap. We found out later in the night that there were problems at Webfaction's data warehouse,`The Planet`_, where a transformer quite literally exploded.

This severely slowed us down, because we ended up having to switch to git, and then once we got everything into our git repository, we had tons of merge conflicts. We got an e-mail saying that the due date would be postponed, so we decided to take the afternoon and night off to do other things.

The next day we did the brunt of our work. I had the task of designing the frontend, so I opened up my trusty text editor and hammered out the worst-looking CSS file you'll ever see in your life, producing some of the worst-looking pages you'll ever see in your life. This changed over the course of the day, but not by much as you'll see if you visit the site. This same day, Tony was working on some of the harder queries etc.

The final day (the deadline had been extended, remember) was all about integration. There was nothing really notable about this, but it took all day to get everything working properly together. I ended up writing a bunch of Javascript to make the client experience more enjoyable, and Tony had the chance to debug his views now that I had templates and we had sample data. It was a crunch to make the deadline, but we tried to do the little important extra details like write an "about" page, a README file, etc.

Conclusion

Whether we win or lose, and despite the technical difficulties that The Planet suffered, I had a blast doing the competition. I think that our idea is novel, and Tony and I got to work on something once more post-graduation. (Nothing like a programming competition to bring people together, I always say.) In fact, we'll probably continue to work on it for the months to come, especially in upgrading its graphics. It's going to be really awesome to see what everyone else produced this year. I encourage anyone who thought about participating this year, or anyone who even considers it as a possibility, to sign up and just do it next year!

Referenced by 1 Item:

References 1 Item:

Published about 1 month ago on Eric Florenzano's Blog Received about 1 month ago
Close | Link | Comments
The road has been fun and at times tedious but Arkayne is finally out of Beta. For those of you not familiar with the project, its a content linking widget that works on relevance. Think of it as the "Amazon Similar Items" for blogs. Arkayne started as a side project and has grown to [...]
Published about 1 month ago from Paul Kenjora on Django Aware Received about 1 month ago
Close | Link

Firstly, my apologies to any technical readers of this blog, as this post is mostly personal.

Iowa State University

For the past four years, I have attended Iowa State University, pursuing a Bachelors of Science in Computer Science. Finally last month, that process was over. Degree in hand, I can't help but think back about all of the truly great memories, experiences, and new friends that were made possible by going to Iowa State. Not only was the extracurricular experience great, but at the same time, I feel like the education was top-notch as well. For anyone that knocks state schools, tell them to try to keep up in my Essentials of Programming Languages class with Professor Lumpe.

Tokyo, Japan

I recognize that this point in my life is the last time (for a while, at least) that I'll be able to do something crazy and go to a foreign country for two weeks. The logical choice would have been to go to France, since I minored in French and know some people who live there. That's why I didn't do that. Instead, I'm doing something that I've always wanted to do, but never have: go to Japan.

I know there are some crazy things going on all the time in Japan, and honestly that's what's so exciting to me. It's a completely different culture from our own and up until now I've only had glimpses into that culture. I'll have a ton more to say about this after the trip is done, along with a dizzying amount of pictures, so stay tuned for that if you're at all interested.

Mochi Media

I have accepted a position at Mochi Media, where I'll be working with some ridiculously smart and talented people. Not only that, but I get to use my favorite technologies, like Python and Erlang. In the case of Erlang, Mochi Media is actively pioneering its use in the web space with its open source project mochiweb (most recently noted for being a key component in Facebook's chat feature). Contributing to open source, using languages that I like, pioneering the use of established technology in new ways, working with smart people, and having a great business model to boot. All of that combined makes me one hell of an excited guy!

More practically, what this means is that I'm moving to San Francisco! Hopefully there'll be more Pythonistas there than there was in Iowa. Whether there are or not, one thing is certain: there'll be a lot more to do.

I'm a bit bored right now, and it's a feeling I'm going to savor, because starting next week and into the foreseeable future, boredom is not a feeling I'll be having much at all.


References 1 Item:

Published about 1 month ago on Eric Florenzano's Blog Received about 1 month ago
Close | Link | Comments

This is awesome. That is all.

Published about 1 month ago on Eric Florenzano's Blog Received about 1 month ago
Close | Link | Comments

Probably the simplest XML library that I've seen for Python. Sometimes you just want to generate some stupid XML, and this is the perfect tool for the job.

Published about 1 month ago on Eric Florenzano's Blog Received about 1 month ago
Close | Link | Comments

Lately there's been a lot of discussion in certain programming communities about which method of object extension makes more sense: inheritance, or composition. Most of the time these discussions turn into debates, and when that happens developers tend to "take sides"--often moving towards extremist positions on the issue. I've been sort of quietly thinking about it all lately, trying to determine which use case warrants which approach. Here I show examples of both, explore some properties and consequences of both composition and inheritance, and finally talk about my own preferences.

Examples of Composition and Inheritance

Before talking about the consequences of inheritance vs. composition, some simple examples of both are needed. Here's a simplistic example of object composition (using Python, of course, as our demonstration language):

class UserDetails(object):
    email = "floguy@gmail.com"
    homepage = "http://www.eflorenzano.com"

class User(object):
    first_name = "Eric"
    last_name = "Florenzano"
    details = UserDetails()

Obviously these are not very useful classes, but the essential point is that we have created a namespace for each User object, "details", which contains the extra information about that particular user.

An example of the same objects, modified to use object inheritance might look as follows:

class User(object):
    first_name = "Eric"
    last_name = "Florenzano"

class UserDetails(User):
    email = "floguy@gmail.com"
    homepage = "http://www.eflorenzano.com"

Now we have a flat namespace, which contains all of the attributes from both of the objects. In the case of any collisions, Python will take the attribute from UserDetails.

Consequences

From a pure programming language complexity standpoint, object composition is the simpler of the two methods. In fact, the word "object" may not even apply here, as it's possible to achieve this type of composition using structs in C, which are clearly not objects in the sense that we think of them today.

Another immediate thing to notice is that with composition, there's no possibility of namespace clashes. There's no need to determine which attribute should "win", between the object and the composed object, as each attribute remains readily available.

The composed object, more often than not, has no knowledge about its containing class, so it can completely encapsulate its particular functionality. This also means that it cannot make any assumptions about its containing class, and the entire scheme can be considered less brittle. Change an attribute or method on User? That's fine, since UserDetails doesn't know or care about User at all.

That being said, object inheritance is arguably more straightforward. After all, an e-mail address isn't a logical property of some real-world object called a "UserDetails". No--it's a property of a user--so it makes more sense to make it an attribute on our virtual equivalent, the User class.

Object inheritance is also a more commonly-understood idea. Asking a typical developer about object composition will most likely result in some mumbling and deflection, whereas the same question about object inheritance will probably reveal a whole host of opinions and experience. That's not to say that composition is some sort of dark art, but simply that it's less commonly talked about in so many words.

As more of a sidenote than anything else, inheritance can be speedier in some compiled languages due to some compile-time optimizations vs. the dynamic lookup that composition requires. Of course, in Java you can't escape the dynamic method lookup, and in Python it's all a moot point.

My Preferences

In general, I find object composition to be desirable. I've seen too many projects get incredibly (and unnecessarily) confusing due to complicated inheritance hierarchies. However, there are some cases where inheritance simply makes more sense logically and programmatically. These are typically the cases where an object has been broken into so many subcomponents that it doesn't make sense any more as an object itself.

The Django web framework has an interesting way of dealing with model inheritance, and I think that more projects should follow its example. It uses composition behind the scenes, and then flattens the namespace according to typical inheritance rules. However, that composition still exists under the covers, so that that method may be used instead.

The answer is not going to be "composition always" or "inheritance always" or even any combination of the two, "always". Each has its own drawbacks and advantages and those should be considered before choosing an approach. More research needs to be done on the hybrid approaches, as well, because things like what Django is doing will provide more answers to more people than traditional approaches. Cheers to continued thought about these problems and to challenging conventional thought!

References 1 Item:

Published about 1 month ago on Eric Florenzano's Blog Received about 1 month ago
Close | Link | Comments

Shortly after I acquired my MacBook, I was disappointed to discover that Apple had designed lobotomized Time Machine so it wouldn’t work with generic network storage — e.g., with a NAS.

Much has been written about this elsewhere, so I won’t dwell on it here.  Except to say that, contrary to the marketing spin, there’s no good technical reason why Time Machine should require disks formatted in Apple’s HPS+ file system.  The file system should, under normal circumstances, be entirely abstract.  The only reason for requiring an HPS+ disk on the other end of the wire (or, wireless connection) is for short-term revenue.  If you believe anything else, I own a bridge in Brooklyn that I wish to sell you.

So, to my search for new network storage on my home network, I included looking for a Mac backup solution.  I wound up buying a 2TB Buffalo LinkStation Pro Duo in April, which came with Memeo backup software.  Memeo LifeAgent for Mac seemed like a great solution.  

A philosophical detour

I prefer backups with a predefined schedule.  I’d rather incur backup overhead at discrete points, amortized over all file changes since the last execution, rather than continuously, with many smaller overhead instances occurring on every change.

I get how, “it runs all the time and saves every file you modify,” is easier for laypeople to understand, and requires less setup.  A configuration schedule wizard is easy, but it does requires more clicks than this approach.

But, I can live with this simpleton mode.  Especially when it’s prevalent in consumer-grade backup applications, which are cheaper than their commercial-grade cousins.

Back to the story

After setting up the LinkStation Pro Duo, I installed LifeAgent, and applied all the available updates. I then configured it to back up my folders and files to the NAS drive.  I set up my account to always connect the NAS drive upon login.  Then, I rebooted, logged in, and verified that everything was working as expected. This all went smoothly.

The first backup took a long time, but after that, the client woke up only after a file modification.  After a while, I turned off the notification displays.  Things were working smoothly, and I began to forget about it…

LifeAgent starts to suck

…Until around the fifth day, when I noticed my system being very sluggish. A quick check of iStat Pro made it clear that some process had gone berserk.  100% CPU utilization on a dual-core 2.6GHz processor is a whole lotta something!

Rebooted, and the same thing happened.  Opened a Terminal window and ran top, and I found a process called Memod going bonkers.

Memod would suck up 100% of the CPU for about 20 seconds, then retreat for a short period, and then return to 100%.  Because I had just finished using Quicken, I guessed it had something to do with my running Quicken in a VMware Fusion virtual machine. But, this was just a guess, and besides, a backup application should be able to process large files, yes?  (When the tiniest virtual file changes, the entire virtual machine changes state, so LifeAgent must backup the entire umpteen-gigabyte file.  That’s life in the big city.)

Memeo has a number of support forums, including one for LifeAgent for Mac.  So on May 7 I wrote about this problem.  There was a quick initial response from a Memeo admin — which was great!  The admin asked for more details, which I supplied, and said they planned “to release an update by the end of the month if not sooner.”  Excellent.

LifeAgent support starts to suck

But it’s now June 5, over one month later.  And there’s no fix. Worse, there’re no responses from Memeo to questions about the fix’s status.

A couple other LifeAgent users replied in the thread, reporting they had the same problem. One was backing up to an eternal disk via Airport Extreme, and the other to a Time Capsule and two USB drives.  While a few of us are reporting this problem, there must be many other affected users who just haven’t spoken up.  

Memeo’s Windows’ forums have a fair amount of activity.  So, maybe they have a much larger revenue stream from the Windows products, and they give LifeAgent bugs a lower priority. But-but-but this bug makes their product unusable!  For a number of Mac users.  And folks, it doesn’t just happen on some antiquated disk, or in a corner case.  I suspect it’s a bug that’s central to their application’s design.

That Memo would not fix the bug is bad enough. But to not keep their user base appraised of the fix, and to not post a workaround, rather sucks.

So:

  1. Memo LifeAgent for Mac has a serious bug that renders it useless for some users.
  2. After an initial indication they would fix the bug, Memeo has ceased communicating about it.
  3. If you’re considering Memeo LifeAgent as a backup solution, you should look elsewhere.

Referenced by 2 Items:

References 1 Item:

Published about 1 month ago from John on Seek Nuance Received 11 days ago
Close | Link
Published about 1 month ago from thescoop on The B-List: Latest entries in category 'Django' Received about 1 month ago
Close | Link

A few notes about the book:

  • No, there will not be a free download like Jacob and Adrian’s book. I believe an e-book version will be available, but it’ll be a for-pay download from Apress. I’m OK with that, because they’ve already given one Django book away, and I’d like them to make some money so they can keep publishing.
  • Yes, it’s written on the assumption of a checkout ...

Read full entry and comments

Referenced by 1 Item:

References 1 Item:

Published about 1 month ago from James Bennett on The B-List: Latest entries in category 'Django' Received about 1 month ago
Close | Link | Comments
For those of you wondering what it would be like to host and maintain a Django application (or any application) on Amazon’s Elastic Computing Cloud (EC2) here is a basic list of daily operations. These steps assume you’ve set up your Amazon account. This is the basic set of commands you can use [...]
Published about 1 month ago from Paul Kenjora on Django Aware Received about 1 month ago
Close | Link

In maybe a more constructive manner than yesterday I started wondering where the rock star web project managers hang out? I think we’re all aware of something of a celebrity culture within web circles. Their are a hardcore of people who’s blogs, books and conference appearances we’ve all seen several times over. And in the main I think this has had a positive effect on everyone involved. People like Jeremy, Molly and Simon have at different times acted as pretty useful barometers and yard sticks for lots of people. But these people are invariably designers and developers – not product managers or project managers.

The only person I can think of who has talked a little about the topic of project management is Meri with her new book Principles of Project Management. The topic occasionally comes up in conversation, or is mentioned by the designers and developers noted above. And their are lots of blogs (more often by developers it seems) about Agile, XP and Scrumm. But what about the practice of web product management? You can point to countless blogs written by designers and developers at the likes of last.fm, flickr and Yahoo. But where are the managers?

So, my question to you is: do you know of any great web product or project managers that blog about the discipline?

Tagged , , , ,

References 1 Item:

Published about 1 month ago from gareth on Morethanseven Received 9 days ago
Close | Link

Another successful @media conference comes to a close and as usual interesting things were said and hopefully everyone learned something. As usual I have a few more things on my must find time to play with list. More on those if they happen.

But one part of the conference I felt needed addressing straight away was the first days panel. The Hot Topics panels bring together a few of the days speakers to answer questions posed by the audience. This year each day had it’s own panel discussion, with the first days session having a design theme. So far so good, and before I getting going I have to say I think Jeffrey Veen did a sterling job of prodding and prompting the session along. The rest of the panel composed of Andy Clarke