Alex ([personal profile] alexbayleaf) wrote in [community profile] growstuff2012-07-29 08:25 am
Entry tags:

Tech stuff

So, how are we going to build this thing?

A bit of background: from, oh, 1996-2007 I was a full time web developer on the LAMP stack (Linux, Apache, MySQL, Perl). I've had experience building and working on quite large websites with those technologies. However, I stopped around 2007 which, of course, is five years ago, and five years is a long time in tech. So, whatever we do, I'm going to have to refresh my skills.

Since I'd be doing that anyway, I feel like it's a good idea to consider using other tools/languages/platforms. To that end, I'm strongly considering doing this thing in Ruby on Rails. Why RoR? Well, it's easy for people to learn, and I want to get people involved who might not have previously worked on this sort of thing before. I know that one other project (AO3) has been successful in this (they've had problems with scaling, but I suspect with my previous web dev experience and the help I know I can pull in, we may have less trouble with this than they did). Ravelry is also built on Rails, so I know that similar sites can do it well. And it's a modern, marketable language which means learning it is good for people's resumes if that matters to them.

That said, I could be convinced to go with something else, if someone has an idea and can address the points I've mentioned above (especially the ease-of-getting-started issues). I presume Python has a comparable web framework, so that would be one possibility.

Needless to say, there'll be a bunch of frontend stuff, which will be in Javascript, presumably with JQuery, and lots of design/UI/UX work to do. My housemate and co-gardener is a UI/UX person and has expressed interest in working on this, so I feel reassured that we have some skills in that area already, since I'm not great at it.

Apart from that, I'd like us to keep our code on github, one of the most popular version control platforms around. (AO3 already does this, and Dreamwidth is planning a move to git, so it's likely to be a handily transferrable skillset for those who've had experience on either of those projects or any of the squillions of other open source projects that use it. It also has good transparency and community features in place, which I think matches our ethos.)

I'd also like us to use test-driven development methods, and generally take an "agile" approach to the whole project. My background in that regard is in Extreme Programming, so I'd like to bring in as many of the practices from there as possible. That means short iterations (aka "release early release often" as they say in open source), flexible/lightweight planning and design (not trying to specify the whole thing up front), constant refactoring, and yes, if we can manage it, pair programming! Or at least the closest we can get to pair programming in a distributed, (mostly-)online dev community. I think XP (as it is also called) is a great match for a project that wants to be sustainable and inclusive.

So that's where my head's at and what I'm thinking of. As with everything (and you'll hear me saying this a lot especially at first) all this is up for discussion, and I promise to listen carefully to any suggestions you make.

So what I'd like to ask at this point is...

1) Roll call! If you would like to get involved in a technical way, please comment and say what part interests you. If you have existing skills in any of the areas mentioned above (or any others you think might be relevant), please mention them. If you don't know yet or would like to learn, that's fine too.

2) Tools and resources! If you know of something we should be using or looking at, whether or not it's listed above, let us know. For instance, if you know a good learning resource for new Rails developers, have opinions on database backends, or know a good web app for managing distributed XP projects, let's hear about them.
pozorvlak: (Default)

[personal profile] pozorvlak 2012-07-29 09:03 am (UTC)(link)
I'd like to be involved. I don't have a lot of Ruby experience (I did the Coursera RoR course), but I've done a bit of web development, mainly in Java, but with some Perl, Python and PHP. The biggest web project I've worked on is probably this. I've used and liked jQuery, but am by no means expert. Here's my GitHub page. I'm keen on the idea of TDD but often get stuck trying to apply it, and would love to learn more about how to make it work in practice.

Tools and resources:

* Coursera has some relevant courses: Software Engineering for Software as a Service (uses RoR as a teaching language, and git/GitHub as a version control system), and Human-Computer Interaction (which was fun, but which I dropped out of in favour of finishing Compilers).
* Git From the Bottom Up.
* mjd's Git habits and the repository setup he uses to allow rewriting of published history in a sane way - I really like the idea of the latter, but haven't tried it yet.
pozorvlak: (Default)

[personal profile] pozorvlak 2012-07-29 10:55 am (UTC)(link)
Oh! One more resource: live CO2eq emissions for various cloud providers around the world. I'm assuming/hoping "sustainable" includes "minimum carbon footprint".
pozorvlak: (Default)

[personal profile] pozorvlak 2012-07-29 09:16 pm (UTC)(link)
Cool! That's @otfrom's site, by the way.

[personal profile] japester 2012-07-29 10:17 am (UTC)(link)

  • Unix and storage engineer by trade. (Current too, :sigh)
  • I can do infrastructure, but not application or UI layers.
  • I can and will do documention. I'm one of those horrid people who likes to know everything that's going on and make sure it's recorded somewhere.
  • I am tech agnostic. Will happily work with whatever everyone else likes.
  • Have also done time as a (film) producer/production manager.


Christ, I feel like a pointy haired whossname from the above.

I will try and drag in [personal profile] samvara who was one of the background people in AO3, if only for advice.

[personal profile] japester 2012-07-29 10:28 am (UTC)(link)
Oh, tech recommendations.

Linux VPS for hosting, especially in the short term. Linode for global presence, Networkpresence for Au. That's going to depend on our developer base though. May be worth investing in a couple and planning HA and growth from the start.

RoR works best on Linux. Don't mind what flavour we use, but I do prefer Ubuntu for its sane package management and regular release schedule.

I want to get performance metrics in early. This is one that did bite AO3 a bit when they hit load issues.

A developer's wiki up ASAP. Somewhere for note taking and sharing of knowledge, ideas, progress and what broke.

I'm happy to finance stuff too.
aquaprofunda: An eye reflected twice in a cut mirror. (Default)

[personal profile] aquaprofunda 2012-07-29 10:57 am (UTC)(link)
* Front end designer/developer
* CSS/HTML/some JQuery
* UI design background
* Into start-finish project planning/wireframing/beta testing/etc

Worked on Dreamwidth's UI and was a team leader in the early planning days of an OTW project, too, so experienced with/enjoy working in open source communities on things other than code.

Also diving into more project management stuff professionally at the moment :)

[personal profile] japester 2012-07-29 10:20 pm (UTC)(link)
Oh goody. You and I should talk PM stuff! I know enough to be dangerous, it will be great to have someone around who knows more than just the buzzwords. (I've always been on the receiving end of project managers ...)

Glad to have the DW and OTW history as well. They are two projects with _great_ culture.

[personal profile] atosca 2012-07-29 11:30 am (UTC)(link)
I'm down. I'm a junior web developer in Northampton, MA - just entered the field and have had a toe in open source for a few months but have yet to dive in. Working familiarity with TDD, Agile practices, SQL, Javascript/Jquery and would love to gain additional experience. Python/PHP/Java are the languages I work with but I work closely with a Ruby guy and bet I can get some mentoring if I need to learn it.

To be realistic about the kind of commitment I can make, given my experience level and previous commitments, it would be reasonable to say I could take on bite-size programming chunks to begin with. But you never know, I might really get carried away...or level up my skills and end up being able to take more on...

Oh, and as far as tech recommendations, kind of soaking it in for now, but looking forward to contributing and asking a lot of questions as they arise.
ilyena_sylph: picture of Labyrinth!faerie with 'careful, i bite' as text (Default)

[personal profile] ilyena_sylph 2012-07-29 01:11 pm (UTC)(link)
I know absolutely nothing about code (other than some very very basic HTML and enough CSS to play with my layout, which totally don't count), but I do want to learn?

Roll Call!

[identity profile] paul.warren.myopenid.com 2012-07-29 01:14 pm (UTC)(link)
Hi there, Another RoR programmer/sysadmin here, the bigger projects I worked on are:

http://apsa.anu.edu.au
http://hccda.anu.edu.au/

Like you, this was a while ago, but I've recently started messing about with rails again. I'd also starting thinking about doing something exactly like this idea myself, so, kind of spooky that I found this project tonight through @soilduck tonight.

Signed up to the mailing list, and aded here on dreamwidth, ready to help out as time permits!
killing_rose: Raven on an eagle (Default)

[personal profile] killing_rose 2012-07-29 03:20 pm (UTC)(link)
I know jack about code. There are days I lose HTML because that's just how my brain fucks up. But I'm willing to learn.

[personal profile] japester 2012-07-29 10:26 pm (UTC)(link)
Don't knock yourself. :P
There will be plenty of opportunity to learn. Given the breadth of technical *and* non-technical people required to make a project like this work properly, there will be plenty of opportunities to assist, or even, if the desire comes to you, to take the lead on.
aquaprofunda: An eye reflected twice in a cut mirror. (Default)

Re: Rails vs Django

[personal profile] aquaprofunda 2012-07-29 11:23 pm (UTC)(link)
I think I've used Sass before (with Twitter's Bootstrap). I'm all for it!

And anything that makes js easier gets a stamp of approval from me.
gchick: Small furry animal wearing a tin-foil hat (Default)

Re: Rails vs Django

[personal profile] gchick 2012-07-30 02:35 pm (UTC)(link)
I'm a huge Sass fan -- I've pretty much moved as much of my CSS work over as I can possibly get away with, and I definitely recommend it!

Just starting to poke at Coffeescript, but my impression is that it does something very similar for JS.
shadowspar: Picture of Rick holding a can of blue Jolt soda (jolt!)

[personal profile] shadowspar 2012-07-30 03:52 pm (UTC)(link)
Roll call: So, over the years I've done a bit of many things -- developer, tester, sysadmin.

I like Ruby and I'm fairly current on it; on the other hand, the Rails stuff I've done is well in the past now, back in the 1.6-1.8 days.

Know my way around both MySQL and Postgres; slight pref for the latter, but I'm not sure how well Rails plays with it, so.

I'm ok with the mechanics of HTML & CSS but my design-fu kinda sucks. Similar story on Javascript: I know enough to fix busted things in existing code, but I haven't written whole swaths of JS myself.

Git's what I've worked with most as of late for version control, and I like it in spite of how arcane some aspects of it seem to be.

I've written browser-driving tests with Selenium in the past using Selenium-RC. Nowadays things have moved onwards to Selenum-Webdriver, so I'm a bit out of date, but I'd be interested in coming up to speed and getting a UI-based test framework going if that's something we'd like.

Finally, yeah, I'll work with whatever distro, but I'm a Debian user at heart; I grok Debian/Ubuntu best.

Resources:
IME, remote pairing using voip + screen can work very well, though you need to agree on a terminal-based editor to make a go of that. Graphical desktop sharing might be workable on a fast connection, but I've found it's often laggy enough to be distracting.

I've found the book Pro Git to be v.helpful when it comes to squaring away "intermediate" topics in my head -- things like working with multiple remotes and branches, how git thinks about merging, etc, as well as clearing up some of the concepts about how git works behind the scenes. The online version is broken up into tiny little pages, but you can download the whole thing for free as a PDF, mobi, or ePub.


One last thing when it comes to committment -- free time around here is pretty tight around here right now, primarily because of two little kids =) but also because of work + some other stuff I'm trying to do after hours. Hopefully I'll manage to get better at it and free up some time in the near future...but in any case, I'd really like to contribute to the extent that I can. ^_^;
gchick: Small furry animal wearing a tin-foil hat (Default)

[personal profile] gchick 2012-07-30 05:05 pm (UTC)(link)
* I work as a web dev and do a lot of front-end and UI work; I'm happy to help out there.
* My back-end/app layer experience is mostly in PHP (yeah, I know...). That said, I've really been wanting to build some RoR skillz and I'd love to use this project to learn.
* I've got a decent amount of other FOSS experience: I'm familiar with dealing with things like setting up dev environments, patches, source control, and very committed to the idea of helping new coders get up to speed with project logistics.
* I'll probably stick to bite-sized stuff at least at first because my free time comes in little bits and pieces.
boxofdelights: (Default)

[personal profile] boxofdelights 2012-08-02 01:47 am (UTC)(link)
I have a 25-year-old Bachelor's degree in Computer Science, and no modern experience. I'd like to learn and contribute anything I can.
cesy: "Cesy" - An old-fashioned quill and ink (Default)

[personal profile] cesy 2012-08-04 11:04 am (UTC)(link)
I've got RoR and Cucumber testing experience from AO3, various other scattered bits of code from hobby projects, general bits and pieces from Dreamwidth, and project management of waterfall and repeated-waterfall-claiming-to-be-agile from the day job. Oh, and deployment management and third-line support management, too.
cesy: "Cesy" - An old-fashioned quill and ink (Default)

[personal profile] cesy 2012-08-04 01:22 pm (UTC)(link)
I was managing the process of deployment, liaising with 2nd line support, deployment verification testers, making go/no-go decisions etc. for big projects, so I'm not actually familiar with the command-line part of deploying Rails software upgrades. The principles of managing the whole thing will be the same, though, and will be useful as we grow. But I've heard capistrano is reasonable for that, or [personal profile] elz or [personal profile] enigel can let you know what they now use.