A few months ago Tim Morgan emailed the Portland OWASP chapter and suggested
that we organize a meeting where everyone could get together and audit some
existing software. When vulnerabilities were found we would follow the
responsible disclosure life cycle and notify the maintainers before publicly
disclosing. It would be a fun way to spend an afternoon, people would get
experience with responsible hacking, and the software maintainers would have the
opportunity improve their software. The idea gained traction and FLOSSHack One was
born.
Last week Greg Koberger finally got me to cross "add a test locale to AMO" off my list - and it turns out it only took a few minutes of actual coding. It sounds like others have had some troubles so I wanted to run through what I did.
Firstly, you can see what I'm talking about at the AMO dev site. I'm using a script in the Translate Toolkit called podebug to generate a .po file filled with unicode characters. You can also generate one which surrounds the strings with "xxx" or blanks them out, etc. The goal is to easily see what strings on your website can't be localized (this means they aren't in the .po files for localizers).
If you're using product-details to get locale names make sure you're using the latest revision - I added dbg to the array so it will show up in language dropdowns like all the other languages. After that I added dbg to Django's LANGUAGES define[1]. At that point the language showed up, but we'd get tracebacks if we tried to format money in a string since 'dbg' was a fake language. AMO uses Babel for details about each locale so I just made a wrapper for the Babel Locale() function and told it to use 'en' if it saw 'dbg'. This way 'dbg' is used for all the strings on the site but for any complex formatting we fall back to en. This works since dbg is based off en anyway, as far as pluralizations are concerned. You can see my commit which added that function and made sure we started using it here.
This also works on the marketplace.
[1] I actually added it to AMO_LANGUAGES which gets to LANGUAGES in a slightly round-about way. See our settings.py file for how that flow works.
Last year we set up landfill.amo to give contributors an easy base to set up the addons.mozilla.org site. Easy is relative here, of course, but it was a big leap over what we had at the time.
Kumar leapfrogged that milestone by adding Vagrant configuration scripts to our repository. Now you can have a running version of AMO on your local system in about 3-5 commands[1].
Check out the steps to install AMO with Vagrant to see how. I set it up on OS X last week and aside from waiting for the download it only took a few minutes. Drop by #amo on IRC if you run into any troubles.
[1] Setting this up on Windows is apparently more difficult although one contributor did find success after fighting with it for some time.
Edit: Updated the installation instructions URL
This is just a short note to recognize the long coming milestone of PHP being
effectively off[1] on addons.mozilla.org. We started the migration in
2010 and just finished it up a couple weeks ago. After the major pages were
completed it was hard to budget time for all the minor details we had
implemented since there was so much other important stuff to do (I’m looking at
you, marketplace.mozilla.org). Now that the switch is done though we can
simplify our setup instructions for AMO, simplify our infrastructure, optimize
apache for python only, have full unit test coverage - the list goes on.
I started using Irssi almost 10 years ago when I first started trolling wandering around the world of IRC. My main use is to run it in a screen and stay connected all the time. To chat I'll just ssh into the server and reconnect to the screen. Generally I leave my terminal open, stretched across the top of my monitor so it's really wide but only about 8 or 10 lines high. This way I can keep IRC visible all day long and respond quickly to questions.
I've customized irssi with custom highlights and commands and all has been well, save one thing: bug 310 - vertical splits. Irssi can't do vertical window splits and with the trends giving us widescreen monitors, horizontal splits aren't really useful to me. The bug has been open since 2005 and I've all but given up on it.
Then the other day Chris McDonald claimed the unfortunately named WeeChat was superior to Irssi. I was all ready to defend Irssi's honor but I read through the documentation and WeeChat was pretty compelling - most notably its support for vertical splits!
So, long story short, I switched last week and it's awesome. I don't miss Irssi at all and in fact WeeChat offers me things I never even knew I'd want (like per-buffer history when hitting the up-arrow). I've customized it so it essentially looks like Irssi (no nickname list, etc.) and I've added a lot of aliases to make it easier for me to use (mostly vim keys). If you're an Irssi user you owe it to yourself to at least read their docs and see what you think.