Slashdot Mirror


Ask Slashdot: How Can My Code Help?

An anonymous reader writes: The story will probably be familiar. My non-profit organization had a particular need (we want to communicate with government officials by offering anecdotes and stories of how we help their constituents), and while I created a solution, the time constraints and lack of experience, training and natural ability show. I'd like to do more with the code, both in terms of letting others have it for their needs and also because I'm sure talented coders could more quickly and efficiently solve some of the existing problems with my code. But how do I make that happen? What do I do with it?

I have every intention of continuing to work on it. I enjoyed the learning opportunity, and I've already identified a number of things I want to improve upon, but I recognize that even as crude as my code is, if it solved my issue it might help others too.

Do I just put it on Github or SourceForge and hope that someone else will have that magic formula of my use case and skill level (because someone more talented would probably make their own code easily enough, while someone less talented may not realize how doable the solution can be)? Do I try to find an existing project and see if I can shoe-horn my efforts in somewhere? Do I keep it to myself until some unspecified point in time that I realize it's right for sharing?
Read on for further background information on this question. Here's the backstory: Our existing data didn't always make identifying relevant politicians easy so, for example, I could quickly make a list of who's in what city but we have multiple congressional districts in single zip codes which is a problem that needed more than a simple Excel Vlookup.

I did a fair amount of research into this use case, and saw outdated solutions (projects that fell out of date due to API changes) or more recent posts and projects that made my issue seem so entry level. As if passing data to one API, then parsing the results and sending to another API and then storing the results was Hour 4 in the "Teach Yourself to Code in a Single Day" books. And it very likely is entry level, but coding doesn't come easy to me and my background is limited. I should note that days after completing my mission, I discovered a Drupal module that may have been able to accomplish some of what I needed... if installing Drupal and passing my information into a Drupal install before pulling it back out was going to be any less time consuming.

My solution was inelegant, and though written in Python it is far from Pythonic. It requires a lot of post-processing. It breaks a number of times and in a number of ways, each of which makes me think "oh, I should fix that time-out issue" or "I should figure out how to get it to double check for 5 digit zip codes" or "I should make some kind of error handling to let the script continue instead of stopping".

3 of 47 comments (clear)

  1. Share the source, and make it easy to install by paulproteus · · Score: 2

    Hi anonymous person,

    Getting more eyeballs on your code is a marketing problem. So:

    * Give us here a link to your code, and

    * Make it easy to run your code.

    * Then, you can try to reach people who care about that problem domain and tell them to use your code.

    To make it easy to run the app, I suggest you create a package for Sandstorm, which is an open source project that makes web apps easy & secure to run. I work on the project, so feel free to decide I'm biased! But do take a look at https://apps.sandstorm.io/ and see how easy it is.

    You can reach me (for packaging help) at community@sandstorm.io and find our packaging tutorial here: https://docs.sandstorm.io/en/l...

    Best of luck!

    --
    |/usr/games/fortune
    1. Re:Share the source, and make it easy to install by njnnja · · Score: 2

      No, please *don't* just go posting another project. As you have even discovered yourself, this is probably a solved problem for someone who knows the tools better. Most coding problems don't stem from the fact that there isn't enough code out there; the problem is that there are a lot of libraries and systems (free, gratis, and paid) that do 80% of what needs to be done, and the first job of the developer is to evaluate which of those tools is the right one to start with. Throwing out yet another message passing system into that thoughtstream (one that you admit probably isn't very good) is just going to cause more work than it saves, by making people figure out why they want to filter your codebase out.

      If it works for your use cases, then you should keep it in production, while you try to learn more and improve on it (either incrementally or with a whole system re-write). But just putting a code base out there for other people to stumble over seems to be as poor etiquette as throwing a month old newspaper into the middle of the street, just in case somebody might be able to use it.

  2. document it, share on forums with interested peopl by raymorris · · Score: 2

    People won't contribute unless they're using it, and they are also encouraged to contribute. So to move forward you'd want people to start using it. They'd need to be able to get it (github), they'd need to know how to use it (thorough documentation), and they'd need to kniw about it and how it can help them. In order for people to know about it, it might be helpful to post on forums which include people who would find it useful. You could also individually contact some of your counterparts in other organizations if you think it would be useful to them.