Showing posts with label NASA science. Show all posts
Showing posts with label NASA science. Show all posts

Saturday, February 12, 2011

How to sell Python panel at Pycon

Do you want to use Python but are you fighting Fear, Uncertainty, and Doubt (FUD) in your organization? Does any of this sound familiar to you?
  • Python is just a scripting language.
  • Python is too new to use in real production environments.
  • Language X has better benchmarks doing obscure math so it is better for web development.
  • Python sounds great but we've already spent so much on this expensive tool that does things badly!
A lot of people want to use Python, but their customer, management, school, government, or organization won't let them. Python is a great tool, but can be challenging to get in the door. This panel will explore how companies and individuals have successfully introduced Python, what tools are available to sell Python, how to fight the good fight, and what pitfalls there are to avoid.

Panel Questions
For this event at Pycon I've got some stock questions ready but I want the community at large to suggest some more.

Speakers
For this panel I choose five speakers from the broad categories of academia, government, commercial organizations, and non-profit who have had a known impact in their organizations:

Academia
C. Titus Brown is an Open source hacker, Artificial Life/Digital Evolution, B.A. Math (Reed), Earthshine research, Ph.D. Developmental Biology and Regulatory genomics (Caltech), Python testing tools, Python Software Foundation member, Assistant Professor (Michigan State U.) - dev bio, genomics, metagenomics, software engineering. 

Note: A lot of my personal understanding on how to do web tests outside of Selenium is thanks to a Pycon tutorial given by Dr. Brown and Grig Gheorghiu back in 2008. 

Government
Chris Shenton is a partner at Koansys LLC, a consulting company whose clients include US Federal Government agencies, Internet startups, and non-profit organizations. He is a free software and UNIX bigot, advocating for the use of both in organizations large and small. He's been involved with the Washington DC area's Python/Zope/Plone user group ZPUGDC for years, and recently was appointed to its board. 

Note: Chris has the dubious honor of introducing me to Python in 2005 and was pivotal in promoting the adoption of Python for use in NASA's Science Mission Directorate. 

Large BusinessThe Vice President of Engineering at Evite/IAC, Dan Mesh is the person credited by other Evite staff with bringing Python to life in that business. 

We used Evite for our just passed LA area hackathon and plan to use it for future events. 

Non-Profit Organizations
Rich Leland is an Application Architect at National Geographic where he uses Python on a daily basis to work on nationalgeographic.com and its ecosystem of web sites. He is also the founder of django-district, a group for Django users in the Washington, DC area. In the past life he worked for Discovery Channel as Designer and Lead Web Developer. 

Small Business
Frank Wiles is President of Revolution Systems, Lawrence, KS. Expert in Internet infrastructure scaling and performance. Primarily focused on Django and PostgreSQL. 

Note: I credit Frank with providing me with a great opportunity to work with an awesome code base but also the encouragement and support to get me through my first year as a freelance consultant.

Sunday, March 21, 2010

Leaving NASA

This has been a hard post to write.

I was delighted that on January 3rd, 2005 I started my first day working for the National Aeronautics and Space Administration (NASA). While I wasn't working on science efforts, I was at least contributing to the cause. In 2005 I was introduced by co-worker Chris Shenton to Python, which became my favorite programming language ever. I also learned tools like Zope, Plone, and Django. Over the past five years, I've met a lot of fascinating people in and around the agency, a list that seems endless in size and scope. That includes astronauts, scientists, engineers, developers, managers, and so much more.

This meant so much to me, and maybe because my first memories of television as a child were the moon landings of the early 1970s. I dreamed as a child of being an astronomer or astronaut, and sometimes I plot how I would redo my life to fit these dreams if I got a second childhood.

In the past year I've had some incredible opportunities present themselves to me. I've been presenting frequently on Django and Pinax. I've had the singular honor of writing course material for Holdenweb, LLC on behalf of the O'Reilly School of Technology. Representing NASA as a contractor to the Python and related communities has been both enjoyable and a great honor.

Yet all things, even good ones, must come to an end.

I've decided to become an independent consultant. My first project will be working with Revolution Systems (Jacob Kaplan-Moss and Frank Wiles) on a neat stealth project that looks very promising and once launched will help people. The project will be Python/Django/Linux based, and the client insists on accessibility, testing, and quality work. We'll be exploring the boundaries of what has been done with those tools and besides what must remain proprietary, a lot of our work will end up going back to the community. Sounds like my kind of thing!

My last day is April 1, 2010. I'm both excited to explore this new project, and saddened that my professional world for the past five years is coming to an end. Yet the overlap in technology and the participation of the NASA SMD python group in the open source world means that my work with NASA isn't coming to an end, its just transforming into something different.

Nevertheless, this is the end of an era for me.

Which is partly why I'm happy that I'll still be in touch with my fellow NASA SMD Python contractors such as Katie Cunningham, Chris Shenton, Chris Adams, James Saint-Rossy, and others. I also plan to be real friendly with the awesome Ames Research Center Python/Django/FOSS groups such as the intrepid Mark Friedenbach and the entire incredibly awesome Nebula team.

I'll miss having the pleasure of working with Leslie Cahoon, Jessy Cowan-Sharp, John Kasmark, Bob Ryan, Candace Solomon, Bill Keeter, Gamble Gilbertson, Meredith Mengel, Malik Ahmad, Jenny Mottar, Mike Brody, Virginia Butcher, Dawayne Pretlor, Michele Montgomery, Jim Consalvi,Siew Chin Hon, Hans Goetzelt, Shannon Lantzy, and many more.

Lastly, I'll miss the honor of serving civil servants such as Gretchen Davidian, Sharron Sample, and Ruth Netting and others.

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])

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 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.

Wednesday, January 28, 2009

Starting a new Plone project in February

I'm excited because I've yet to do a Plone 3 project from scratch. This is another internal NASA effort, one that Plone is literally designed to fit almost out of the box. We'll change the skin and add a few add on products.

Some of the specific things I want to explore are:
  • Using a simple architecture to represent data cleanly. All my previous Plone work has been with systems with very complex data architectures, so complex that I realize now that most of the special content types were not need.
  • AJAX via KSS to make things just more fun, and in a functional way.
  • Integrating a couple NASA internal products that I have written.
  • Plone 3 Style Portlets! I know they are hard to set up, but I really like their concept.
  • Having my co-worker Malik show us how good his design skills are.
  • A chance to create some custom forms using z3c.form. After playing with the hackish nature of zope.formlib (IMHO) and the clean implementation of the Django formlib, I want to be able to compare and contrast.
I will also be keeping my toes in NASA Science's major upcoming release (more details on that later) and our "top-secret" project (more to come). So next month promises to be even more crazy busy than this one.

Wednesday, October 22, 2008

Morning brainstorm about FeedFeeder v2

I've been working on a .plan for FeedFeeder v2, but for some reason things were not really coming together. Something seemed off. In retrospect, what was off was that my proposed solution didn't immediately correct the current problem with the otherwise excellent current version of FeedFeeder. And that problem is that any anomalous feeds force you to write and deploy code (ie - plugins) to correct the anomaly.

Sure, the Van Rees brothers had agreed that a future stage would correct the problem via a TTW function, and we would even consider a handy AJAX powered GUI to make it intuitive. However, the issue with that is that it would occur at a future stage, not at a stage that worked with my current use case - that I get feeds from the customer that they want today to work in nasascience.nasa.gov. Speaking on the finanical side, how could I get NASA to pay for work done on FeedFeeder v2 if it doesn't correct our current issues out of the box?

Well, this morning the answer came to me. The solution to the problem was rather clear and simple. Rather than a sophisticated plug-in system what about a definition system? Currently FeedFeeder provides two content types:
  • FeedFolder:
    • includes a field listing the feeds consumed by this folder
    • and is a container for holding feed definitions and feed items

  • FeedItem:
    • individual feed content items provided by the feeds defined in the FeedFolder
My solution proposes adding a third content type called 'FeedDefinition' to handle defining of feeds:
  • FeedFolder:
    • a container for holding feed definitions and feed items

  • FeedItem:
    • individual feed content items provided by the feeds defined in the FeedFolder's FeedDefinitions

  • FeedDefinition:
    • Defines the source of a feed and how to handle the feed
A FeedDefinition would likely include the following fields in addition to the defaults:
  • Source:
    • URI of the feed source

  • FeedTitle:
    • default: standard
    • otherwise define location of feed title based on FeedParser output

  • FeedDescription:
    • default: standard
    • otherwise define location of feed description based on FeedParser output

  • ItemTitle:
    • default: standard
    • otherwise define location of item title based on FeedParser output

  • ItemDescription:
    • default: standard
    • otherwise define location of item description based on FeedParser output

  • Replacements:
    • default: empty
    • lines field that shows what text needs to be replaced with other values.
    • example: 'www.nasa.gov -> nasawww-origin1.hq.nasa.gov'
When handling feeds, when a FeedFolder has its update_feed_item action triggered it would:
  1. Iterate through its FeedDefinition children.
  2. Based off the rules in each FeedDefinition, fetch and parse each feed.
  3. The parsed feeds would be then added to the FeedFolder as FeedItems.
A supplementary view for FeedFolder would be provided that would not display the FeedDefinition.

Comments? Thoughts? Anyone think I should move my blog to a place that handles comments better?

Wednesday, October 1, 2008

Why did we use Plone for nasascience.nasa.gov?

I've had a few questions over time as to some of the specifics about http://nasascience.nasa.gov and I'm going to start providing answers. Here we go with the first question...

Way back on August 7th, John Kavanaugh asked:
Why didn't NASA use the eTouch CMS that the rest of NASA's portal runs on?
To explain what John is talking about, he means the NASA portal (http://www.nasa.gov), which is based on the commercial Java based CMS called eTouch. The portal contains a lot of content, and also serves as a nexus for the myriad of NASA sites hosted by various NASA centers (JPL, Goddard, etc) and organizations (Science Mission Directorate, Space Operations, etc).

On to answers!

First off, from what I understand, the Science Mission Directorate (SMD) started developing the Plone version of http://nasascience.nasa.gov before the portal was announced internally at NASA. By the time eTouch became known, we were well down the path of development, including integrating 1200+ articles and images. For various reasons the new portal launched first.

Second, SMD had a lot of very precise requirements and wanted to be able to get a lot of specific customizations to the project. Adding into the fact that we had already started on data migration and site design, and SMD felt that staying the course was the right way to go.

Third, and this comes from the business people, the portal project and our project come from two pools of money. The portal's pool is for providing a gateway for the public into NASA, and our pool is providing a gateway to Science at NASA. These are similiar yet different concepts, and allows each group to focus on what they do best. We link to each other, and that makes perfect sense.

Fourth, we are working with the Portal group to improve NASA Science. They are great folks and we applaud their work! I can't go into specific details into what we'll be doing but I will state that most of it is infrastructure and support.

Sunday, June 15, 2008

Umlizer lives!

Still is an early alpha release but nevertheless it lives! At this moment it currently handles all the formats I want for version one and has been tested against all target Plone versions. In other words, it meets the requirements I set for this tool, and now what remains is cleanup, documentation, and more testing.

What is Umlizer?
Umlizer is a Plone 2.5x/3.x package that introspects your Zope Object DataBase (ZODB) and then returns a view of your database in the specification that you want. Currently Umlizer provides the following formats for its view:
  • DOT for rendering into UML via graphviz
  • UML in JPG rendered via graphviz if graphviz is installed
  • HTML list for easy reading
  • Comma Seperate Values (CSV)
  • 3-d animated graph rendered via ubigraph
Before you ask this is a very Plone specific tool. Django already has a similiar tool called DjangoGraqhviz.

Why Umlizer?Umlizer was designed to represent the complexity of the Nasa Science site architecture, which was originally a rather complex UML diagram. The XMI for that UML diagram became corrupted, and we did not have a backup. Training people on the database has thus been a chore since, whether they be developers or content editors. In a couple other projects I've noticed that going through Plone code to figure out an architecture can be a pain. So what about a pretty diagram?

For nearly a year I tooled around with different iterations of this effort. In general, each of these iterations relied on protected Python scripts in Plone, which are limited and forced the user of the tool to make many steps before getting a view. These scripts were fragile and arcane, and just plain sucked. Different views of the data were impossible to generate. The latest version of this hack had really nice code, but was a hack.

So I thought, why not try to make it a Zope 3 style Plone package again? My previous attempt in September of 2007 tanked, but my skills in this arena had really improved thanks to training, a cancelled Zope 3 effort, and lately my co-worker Reed's insistence on using it and my need to maintain and extend his work.

Also, in the Plone community, thanks to Jens Klein we have ArchGenXml which is why we used UML in the first place. When I met him in Italy in October of 2007 for Plone Conference 2007, he told me about a pet project of his called Genesis. From what he said at the oldest pizzeria in the world is that Genesis is ArchGenXml with a very modular architecture. So I was determined to make this as modular as possible, trying to work outside the confines of Plone and isolating individual pieces as much as possible.

After about a week of playing with this along with my other duties, Umlizer is working at an alpha level!

Where can we get Umlizer?
That is a very good question. Because of our internal need for documentation this was done under the auspices of NASA. One of the things on my schedule tomorrow is asking for permission to release Umlizer as an open source package. Since there is nothing sensitive about Umlizer, I don't see anything preventing its release.

Monday, April 14, 2008

Oops... forgot RSS feed

Its not a big thing cause adding RSS feeds to Plone is painfully easy. Nevertheless, it is amusing how NASA Science didn't have RSS feeds listed on the front page on launch.

I think atom feeds are also planned.

Friday, April 11, 2008

Overview of NASA Science

I cooked something up for non-technical family members asking what I did for the NASA Science project. It gets a bit technical in places, but I'm a geek so that's just too bad.

Anyway, you can read it yourself at So what did I do on the website?

I'm also writing something that gets more technical here. I've got to be careful though cause The Man will make my life hard if I give out anything that can be construed as a security leak. So for example, if I give out the IP address of the site, that may or may not, under various conditions, be up for consideration as a security leak.

I kid you not.