Showing posts with label spacebook. Show all posts
Showing posts with label spacebook. Show all posts

Monday, September 21, 2009

Looking for work?

Looks like we are hiring again! Who are we? We are contractors for NASA's Science Mission Directorate! We are looking for Django developers or experienced Python developers who want to learn Django to come and help us do awesome stuff for NASA. Experience with CSS, JavaScript, Subversion, Linux, and experience with contributing to open source projects are definite pluses.

Before you apply you need to pass this little test of mine. If you fail any portion of this test we won't consider hiring you.
  1. Are you a U.S Citizen? Yes, there are brilliant non-U.S. Citizens we really want to hire but according to the unchangeable rules we can't hire them. No exceptions. You need to be a U.S. Citizen.
  2. Can you get to the office? You need to be able to get into Crystal City, Arlington, Virginia every day of the work week. No telecommuters!
  3. Do you know Python? Sorry, but we aren't looking for Foxpro developers.
  4. Are you a developer? I will throw away anything from a recruiter.
  5. Can you send your resume to my email address?
The email address you need to send it to can be generated by running these two lines of code:
numbers = [100, 97, 110, 105, 101, 108, 46, 103, 114, 101, 101, 110, 102, 101, 108, 100, 45, 49, 64, 110, 97, 115, 97, 46, 103, 111, 118]

''.join([chr(x) for x in numbers])

Thursday, April 9, 2009

Show me your open source Django blog application

Want your blog engine to be used by NASA?

Unlike everyone else in the Django world, I have not written a blog application.

Instead I want to use your blog application. Definitely for my upcoming blog transfer to my own personal site (Blogger's limitations annoy me), and possibly for use in NASA Science Mission Directorate Spacebook project. So what am I looking for in your blog?

In no particular order these are the must-haves:
  • Elegant user interface.
  • Follows Django/Python best practices.
  • Easy to integrate into another application (which should be the case if you followed the above point).
  • Code highlighting via pygments.
  • Relies on JQuery for JavaScript, and degrades properly.
  • Publishes legal RSS feeds.
  • Allows for use of several input formats (Restructured Text, Markdown, etc)
  • Hooks for integrating WYSIWYG editor
  • Allows for multiple users each with their own blog.
  • Renders humanely in FF, Safari, and IE 6, 7, and 8.
  • Any sort of decent documentation.
In no particular order these are the nice-to-haves:
  • Publishes ATOM feeds.
  • Allows for multiple users on a particular blog.
  • Already has a WYSIWYG editor.
  • Handy import/export functions that follow whatever standards Blogger might have.
Candidate killers:
  • I have my own server space. Plus, NASA has its own servers. So Google App Engine compliant blog systems need to also support the standard Django ORM.
  • I am doing this in Django/Pinax/Python/PostGreSql on Linux. Systems that do not play well there need not apply.
What do you get out of this if I pick your blog engine?

Well, as much as I am a fan of Pinax, the default blog application doesn't do everything we want it to do for Spacebook. So your application might become the blog engine used by us. And when we launch, we'll be sharing credit with anyone who contributed from the open source community to our efforts.

Edit on August 26th, 2010: I solved how to do this research by co-authoring Django Packages which gives us this handy reference. Also, at this point in time, as part of larger systems, I've written several blog systems for clients.

Sunday, March 29, 2009

Best Pycon 2009 Day Ever!

Yesterday was a day I don't think I will ever be able to top again. I think it was the pinnacle of my geeky existence, and I fear that the rest of my life will be a dull effort to recapture the glory that was yesterday. Why do I think this is so?
  • My project, NASA SMD Spacebook got mention during Katie Cunningham's lightning talk.
  • I lost one of the Django BFDL's dongle And everyone in the worldwide Python community saw it happen live.
  • Guido van Rossum talked about twitter in his keynote. He referred to a twit post which was Barbara Shaurrette helping me get a chance to gush at him like a screaming fan boy. So yes, Guido is aware that I exist!
  • NASA SMD Spacebook got multiple mentions in the Pinax talk by James Tauber.
  • In Ian Bicking's infamous pycon 2009 talk I managed to misspell Whiskey/Whisky twice! Once the Old Country way and once the New World way.
  • I got a 3 minute opportunity to gush like a raving fan boy to Guido before he managed to escape.
  • Zed Shaw kicked me in the nuts!
Best. Pycon. 2009. Day. Ever.

That said, in the hopes that I can top this magnificent effort, I am calling this post the 'Best Pycon 2009 Conference Day'. My hope is that maybe I can beat it in the future. I doubt it. Sob.

Update: I beat this day the next year when I met Audrey Roy.

Thursday, March 5, 2009

Looking for work?

I work for NASA doing python, plone, and django. My groups has lots of work (developing new applications and maintaining existing ones) and a need for more staff. We are looking for both hungry beginners new to python and experienced pythonistas. We would prefer to hire for local (Washington, DC) full-time positions, but we are also open to consulting from afar.

You do need to be a U.S. citizen and willing to undergo a basic background check. Besides, that, anything goes!

If you are interested, please contact me emailing daniel dot greenfeld dash 1 at nasa dot gov.

Thursday, February 19, 2009

Naming conventions thoughts for Pinax and Django

I really like Pinax. As the core framework behind our NASA HQ open source social networking application Spacebook, it has been a literal godsend. Out of the box it met most of our requirements, and the Pinax team has graciously added many of our needs to the feature set of Pinax going forward (div based forms, for example). My opinion is that Pinax is a great demonstration of what you can do using Python, Django, and an open source community. We'll be using it for Spacebook and other projects moving forward.

However, if there is one thing I could improve in Pinax (and Django), would be its adherence to a model naming standard. Yes, it does follow the Django convention of naming models, but it doesn't have any internal conventions beyond the Django convention.

Whatever do I mean?

Well, lets say I want a single report to display all the bookmarks and blogs I've added in the last 2 hours, and include the name and description of each item. In theory, via the ORM, I can simply query both via user as a related field, write a django template to display the data, plug in a url, and then I'm done.

That is the theory.

However, the problem is that the Bookmark model has description and note fields, and the Blog model has title and tease fields. To make this more clear, let me demonstrate what I get:

1. BOOKMARK: description/note
2. BLOG: title/tease

So now either my template or my view has to account for different naming conventions per type. Yes, I know that django templates will not display absent variables, but what if I need to add a third model that follows yet a different convention? Or a fifth? Or a sixth? What if I want to write some awesome introspection engine to creatively fetch and list titles and descriptions of the records? Oops - now I have to carefully catalog each type or queryset I'm going to receive. Testing will have to account for lots of use cases. My code is now more complex. Heavier. Slower.

I'm having to configure, rather than follow convention.

A proposed solution

Its all about convention over configuration.

Years ago in the dark ages of the late 1990s or early 2000s, a bunch of librarians got together and established the Dublin Core for content. Everything had a title and description field, not to mention optional body, author and other useful fields that could with every bit of content.

I propose this solution for Pinax (and Django) as a standard for items that represent text based editable content. So maybe not for financial/sports numbers, but instead for blogs, bookmarks, wiki pages, projects, groups, tribes, articles, and all that other bit of stuff that we like to read.

So if I do a query that returns Bookmarks and Blogs, all I need to care about is the convention of using titles and descriptions, not checking the model to see if my understanding of its configuration (name, tease, note, rant, description, intro, etc) is correct.

Pretty neat!

And yes, those of you from the Plone/Zope communities will find this very familiar.

Thursday, February 12, 2009

Spacebook ITCD demo a success!

Yesterday Katie Cunningham presented on Web 2.0 and our latest implementation, Spacebook at the ITCD NASA HQ event. As always, she nailed the presentation, and handled the questions with skill and grace. Before and after the presentation we demonstrated live Spacebook at our booth. People seemed very interested, and we became skilled and hooking people into Spacebook.

I received the chance to proselytize on the benefits we had from using the Free and Open Source Software community to accelerate our development. We would not have been able to demonstrate a stable, working application without the contribution of the Pinax team. The amount of support we received from them was incredible. In fact, our requirements are helping to drive the growth of Pinax, and thanks to us they will be US Government Section 508 compliant.