On Saturday 05 Sep, 2015
With a week of delay (3 weeks after v0.8 release), I finally released AMY v0.9 today.
The list of changes for this release doesn’t contain one big thing I was hoping for, but it’s still decent.
This is also the last release that (partly) took place during Google Summer of Code 2015.
Google Summer of Code 2015
I’d really like to thank everyone who helped me during this Summer:
- Raniere Silva for keeping eye on the participants’ reminders and for so many friendly chats over these months
- Greg Wilson for mentoring me and for lots of enjoyable meetings
- Trevor King for introducing me to some very advanced git methods
- my application’s users: Amy, Giacomo, Maneesha, Tracy and others, for providing me with excellent feedback.
This was incredible Summer; I learned a lot and had so much fun. That’s great to see that we’ll release AMY v1.0 soon as a wrap up of 4 or 5 months of work.
Okay, back to the change log.
- Some workshop URLs weren’t translated between repository and website versions. This is now fixed and every workshop with one of these links will automatically display the other link as well.
- It happened that users put whole links into Host.domain (in the form https://domain.tld). This caused errors in many places where we wanted to display link to that Host. The issue is now fixed: users aren’t allowed to put protocols or trailing slashes into Host.domain.
- Some management commands were broken due to the fact that we switched underlying methods to use API endpoints, but we didn’t change the commands themselves.
This release was focused on getting permissions sorted out and adding read-only access to people from Software-Carpentry Foundation Steering Committee.
We had to cut out the another exciting feature: workshop requests, profile update requests. The Pull Request for this feature is very big and we’ll release it in v0.9.5 somewhere in the next week.
On Saturday 15 Aug, 2015
After another two weeks, AMY v0.8 was released today.
The list of changes for this release is really small.
- Some workshops that didn’t provide a list of instructors or helpers were erroring out during Import from URL. That was fixed in a v0.7.1 in between release.
- Some of location fields (address or venue) and contact field were too short for some events. Their length was bumped to 255 chars.
This release was focused on integrating main Software-Carpentry website and AMY.
On the AMY side, I implemented a basic REST API (read-only).
Changes to the website are still WIP: this is a big project and I still don’t get "the whole image" clearly, so the development is slower.
Plans for v0.9
Nothing for now, except triaged issues.
On Thursday 30 Jul, 2015
AMY v0.7 was released today. You’ll find list of changes below.
This release contains surprisingly few changes, and the development seemed slowed a little, but that’s not a bad thing: Greg’s moving to Europe with his family and I’m going from time to time on 2-day trips (Wrocław tomorrow)
This time I start with bug fixes.
- Check if event’s starting date is earlier than it’s ending date.
- Ensure event’s administrative fee and event’s attendance are both non-negative numbers.
This release was themed "fixing host/site/organizer representation in the database", and I claim success!
The change was rather significant and required me confirming ideas with Software-Carpentry administrators and Steering Committee.
- Rename "Site" to "Host"
- Previously event’s host was incorrectly named "site" (ie. location).
- Rename "organizer" to "administrator"
- Event.organizer field was mostly unused and no-one knew it’s real purpose. By changing it to "administrator" we now have a place for our administrators to mark events they’re working on.
- Filter by administrators on the "All Events" page
- We can filter by Host, we can now also by administrator.
- More location fields for Event
- Workshops that have a public website (most of our workshops does) contain standardized location data we didn’t previously collect. This was required by some other features.
- contact field for Event
- Additional field we didn’t collect in the past.
- Faster testing
- I switched the Travis-CI server to use fast Linux Containers. Testing time dropped from 1.5min to 45s.
- Enhanced filtering
- It’s possible to select multiple countries and preferable gender on "Find Instructors" page.
- Lookup instructors closest to the event’s location
- From event’s details page administrators can quickly go to "Find Instructors" and search by latitude/longitude.
- "Update from URL" functionality
- This works in a similar way to "Import from URL" from v0.6.
Plans for v0.8
Greg wants v0.8 to store demands for Instructor Training in AMY.
On Friday 17 Jul, 2015
Today is the deadline and release day for AMY v0.6.
Here’s what’s new and what’s changed in this release.
v0.5.1 included a fix for the name of one of our lessons (was ‘dc/spreadsheet’, but it should be ‘dc/spreadsheets’).
- Deletion of tasks
- Tasks can now be deleted from their details page.
- Eventbrite link
- Event details page will show link to the Eventbrite’s event page instead of sole key ID.
- Quick link for new airport page
- Accessible from "+" dropdown menu.
- Auto-fill end-date on event form
- Setting a start-date for an event will set-up an end-date (+1 day) automatically (most of our workshops lasts for 2 days). The auto-fill won’t happen if user put something into end-date field.
- 2-column layout on person-details page
- First column contains awards and tasks, while the second column contains knowledge domains and lessons person can teach.
- Facelifted Find Instructors page
- Full-width layout, filters in sidebar, no setting of "wanted" instructors. Using GET for filters application instead of POST as previously.
- Ability to add tasks for person from their edit page
- Now admins can not only assign awards to specific persons from their edit page, but also tasks.
- Tabs on person edit page
- Because of using 3 forms and 2 listings on the person edit page, the split was necessary. The first tab contains original person edit form, the second tab contains awards and award-form, the third one contains tasks and task-form.
- Facelifted bulk-upload
- Another switch to full-width layout. Confirmation page for bulk-upload will now show what happens with specific entries ("will be created" or "it’s already in the database" kind of thing).
- Lessons sorted by default
- Lessons will appear in alphabetical order in Find Instructors filter and also in "lessons" column on that same page.
- Importing event from URL
- Admins can pre-fill event create form with data from workshop page.
- Improved "failed to delete" page
- Thanks to one small discovery, a big and ugly chunk of code was replaced with almost a one-liner.
- Display of tasks
- Tasks now show links to events and persons.
- Eventbrite event ID name change
- Previously it was ‘reg key’, now it’s clearer.
- Better fields in airport form
- "Airport name" instead of "Fullname", "IATA code" with link in the "help_text" instead of "Iata".
- Better list of tasks on person-details page
- These tasks now contain links to related events and clearly indicate roles a person has.
- Searching for "firstname lastname"
- Searching for "Piotr Banaszkiewicz" now works!
- Enforced uniqueness for event slugs
- Having two events with the same slug resulted in a crash, so we decided to enforce uniqueness for event slugs. This not only prevents the bug from hunting us, but also prevents admins from adding events with slugs that are already in the database.
- Awards will prevent events from deletion
- If there are some awards that point to specific event, that event will not be deleted.
Plans for v0.7
There are two things that I want to work on for v0.7 release.
- I want to add develop branch and set it as the main branch for the repo.
- I want to fix host/site/organizer representation in the database.
The rationale for 1. is that I had to make two minor releases to v0.5 when we already had features for v0.6 merged to the master. If we had only kept stable releases in the master (git-flow), I’d not have that problem.
On Friday 03 Jul, 2015
After some tough weeks today marks the v0.5 release of AMY!
Here’s the short list of what’s new.
- We finalized the move from "Amy" to AMY.
- Instructors’ profiles
- We ask instructors to provide a list of preferred lessons, nearest airport, area of expertise and current career stage. While some of that information does not land in the database, can now take what we really need in AMY: airport, lessons to teach, email changes, and so on.
- Nice pagination
- Thanks to work by Carlos Peña, we now have a very nice looking pagination bar. I added some algorithms to make it show sections.
- Merging duplicate people
- We can now merge people who appear more than once in our database.
- History of changes
- This has some flaws, but we now store history of changes to events and persons. It should help admins a lot, because they demanded it at least twice! This feature makes dashboard look strange (it’s very wide), and I’m looking forward to feedback from admins if they like it or hate it.
- New development database
- Weights at least twice more due to pregenerated initial revisions (ie. initial "changes" for all our events and persons).
- Missing make migrations command
- Thanks to Carlos Peña sharp eye, we no longer miss that step in the installation section.
- Sidebar covered messages
- On pages with full width (all events, all persons, etc.) the success/error messages would be covered by sidebar background. Now they’re narrower so that sidebar doesn’t cover them.
- Redundant display of badges
- Badges were displayed in two places on person’s details page.
Features for v0.6
Currently there’s no main theme for v0.6 release.
I had exams in previous weeks, so they casted a little bit of shadow on this AMY release.
On Friday 19 Jun, 2015
Today’s the deadline for AMY v0.4. It contains a bunch of usability fixes, so all our admins should be happy :-)
- "New" name
- As you might have noticed, we’re switching from "Amy" to "AMY", to not confuse people with software.
- Thanks to Greg’s work, we now are able to simply report which events are missing attendance figures, as well as display how many workshops, learners or instructors we have over time.
- Success/error messages
- Each successful form save, or each errorneous action will result in adequate message displayed on top of the page.
- Horizontal layout of Find Instructors page
- You won’t have to scroll half of the page to get the results, because now the skills take way less vertical space than before.
- Search improvements
- You can now search through airports, and search for events by their site name. Also, events ordering was changed: soonest show first.
- Deleting objects
- It’s possible to delete almost any object we have in the database.
- Improvements to bulk-upload
- Greg made the person-bulk-upload useful! And Giacomo used it recently.
- Pagination on airports list
- Clicking through our stored airports is now possible.
- Fixes to workshop selection for the debrief
- Only events that started and ended in the specific period are going to show up.
- View/edit icons in object listings
- Two icons now make it possible for admins to view object details or go right ahead to editing it.
- Event fields ordering
- We reorganized fields on the event detail/edit page. Now the slug is on top.
- Line wrapping for fields with notes
- Some notes had very long lines, but thanks to CSS3 goodness we can now break-up the words inside <pre> tag.
- Username visible
- Person details page displays the person’s username.
- Link to event’s repository and it’s website
- If either is provided, we display the other link too. For example, the admin submits only the link to the repository. We parse it and display the link to the event’s website (because it’s way easier to fact-check the website than the repo).
Update 19.06.2015: I forgot to mention that we moved servers! We’re now using Rackspace VPS and have a very clean deployment, plus we’re SSL-only!
You’re gonna miss it
- Event "published"
- Greg simplified the logic for marking events as published. So now "published" field is gone!
- We decided to drop the breadcrumbs. They proved to not be as useful as I hoped.
- Our listings were pretty big (for example if you wanted to load all persons at once, you’d be waiting for about 10-20s for the site to come up), so to maximize usability we’d have to turn DataTables into "server-side processing" mode. Basically, we’d have to do all filtering and sorting on our end, and that would mean no benefit for us. So instead we switched to django-filter.
- Django Admin
- We were not using it at all.
What did not land
I’m trying to figure out a way to automate Eventbrite for admins, but from what I can tell it’s going to be impossible unless Eventbrite changes the way it’s working. So I’m holding off with creating Eventbrite events, at least for now.
On Thursday 04 Jun, 2015
We’re soon to release Amy v0.3, which should include some exciting features.
- It’s now possible to type a fragment of what you’re looking for and then simply select from a drop-down list.
- Page footer
- The new footer displays current Amy version.
- Country representation
- Countries in Amy are now internally represented in ISO 3166-1 format.
- New "+" button in top-nav
- It allows to add a new event, site or person. Or even multiple persons.
- The dashboard page has proper title
- It’s not "Amy: None" anymore.
- Stripped down Makefile
- Some actions it included were not longer relevant.
- Templates with the same content were merged
- It’s not a change to the end-user.
- Lots of small interface changes
- Including switch from links to buttons in some cases, easier event page validation, better display of events on the fron page, better display of people on the person’s listing, links for persons or tasks or webpages, and more…
- Event invoiced field
- Instead of "fee paid?", we now call it "invoiced?". Why the change? Because NumFOCUS handles invoicing, not Amy. We only need to know if we should list the event as uninvoiced or not.
- Contributor guidelines
- We now have guidelines for contributors.
In the oven
The list above is not complete. We still have about 3-4 days to include other nice features:
- awarding badges from badge details page (done)
- awarding badges from user edit page (work in progress)
- setting permissions and passwords (done, awaiting feedback)
What we’re going to miss
We probably won’t implement addition of new skills. At least I didn’t see a pull-request for it.
Features for v0.4
DataTables. It’s a must-have! Many feature requests would be solved by simply introducing these tables. We may leverage autocompletion backend for serving via Ajax, but I didn’t quite look into the matter yet.
- We now have new admins, including woman named Amy. This causes some "namespace" conflicts. In v0.4 we might switch to capitalized AMY for the software name. I proposed an acronym for that ("AdMinister Yourself"), but it’s not what I think is good acronym. I failed at finding others, though. Also, recursive acronym didn’t fit.
- Feature freeze. I think we need it. We don’t want to incorporate stuff that’s not thought-through.
- Maybe smaller release periods, with smaller upgrades. With the current pace, Amy would gain 0.1 every month or even less.
- I have exams soon. I received credits for multiple academic projects for the current semester, so I’m only 2 small tests away from the exams. Gotta start preparing…
On Wednesday 20 May, 2015
I got involved in Software Carpentry one year ago. We went through one Summer of Code, I became certified instructor, and then at MozFest 2014 in London we decided to write a workshop management tool.
Software Carpentry is growing rapidly and managing workshops has become a hussle.
Greg Wilson, Software Carpentry’s father, started the Amy project on October 30th 2014. I got involved early in December, and became since then one of the core contributors.
On April 27th, almost a month ago, I received a chance to work on Amy during my summer and get paid for it (which was basically my dream summer coming true).
The community bonding period
I consider myself, Greg Wilson and W. Trevor King the core of Amy community. We had not much chance to integrate in the last month, but we used it to progress on Amy.
Amy: status update
Most important features of this bonding period:
- Amy v0.2 was released
- A new Rackspace server was set up just for Amy
- We started using Travis-CI for continuous integration
Currently we have an open window for v0.3 release, and some of already implemented features contain:
- No more "None" in Amy’s dashboard title [#282]
- A footer with Amy’s version (both release and git hash) [#275]
- "+" sing in the top navbar — a shortcut to add event/site/person pages [#286]
- Slimmed down Makefile [#284]
- New look for the dashboard with unpublished events more visible [#274]
And there’s more in the oven!
Plans for the summer
I want to get a rest, cut down on projects (only Amy and my Bachelor’s project), play some games.
This is going to be an exciting summer, and I’m looking forward to it!
On Monday 11 Aug, 2014
This summer was great. I’m really glad I had the chance to work with Mozilla Science Lab on bringing a new teaching tool.
Here are a few of my thoughts about the good, the bad parts about GSoC 2014 and the future of my project.
What’s cool about this summer
This summer was special for a variety of reasons.
I met quite a few people interested in my project (despite very low number of stars or watchers on GitHub) and spent fruitful time with my mentors on discussions about the project.
What’s not cool about this summer
A few things that come to my mind that could’ve been done better.
First, at the beginning of this project I pivoted a little. The actual codebase and architecture (pub/sub) is, I think, third or even fifth iteration.
I was promised a community hosting for my project at Mozilla but didn’t get one, even though I went through some lengthy procedures. Instead, my mentor had to allow me on his private server.
I’m also a little sad that my project doesn’t bring as much attention and excitement as it excites me. Hopefully I will be able to present it during MozFest and it will spark some interest.
CoffeeScript or Dart were crossed out at the beginning. In April, during PyCon in Montreal, actually. Reason: too fresh, too unstable and with little support, even though they may provide a better language experience.
Running multiple camera streams within browser is very resource-heavy.
I’m pretty happy that I end the summer with a working application that still can fit multiple features, ehancements and improvements. There’s even place for something that wasn’t done before, I think.
Peer instruction teaching tool features
I "end" this project with these specific features implemented:
- broadcasting mode
- discussions in small groups mode
- really quick switching between these modes
- countdown with audio aid before disabling discussions mode
- variable small group sizes
- better interface for tablets
- basic text chat
It might seem like not that much, but I spend whole summer on this and I think I did pretty good :)
In near future I want to see these features implemented:
- better chat
- better interface
- better backend and frontend code structure
- sharing files
- connections routing / mesh
I want to highlight and thank Greg Wilson and Mike Hoye - my mentors during this summer. Their efforts and continuous work and long meetings with me… I call this summer a success; it wouldn’t be without your help. Thank you! :)
On Tuesday 05 Aug, 2014
There’s still so much work to do on Pitt I’m sure I’ll be working on it after the GSoC 2014 is done.
Features not coming into Pitt this Summer
Sadly, there’s only so much I can do… A few features won’t make it into Pitt this GSoC:
- Hard: better broadcasting mesh (students act like relays / proxies), read more at https://github.com/pbanaszkiewicz/pitt/issues/22
- Etherpad integration – Greg Wilson told me that Etherpad right now is not in best condition so this one is postponed (https://github.com/pbanaszkiewicz/pitt/issues/23)
- Peer2Peer file sharing – something exactly like ShareFest (https://github.com/pbanaszkiewicz/pitt/issues/21)
Features coming into Pitt
- Mobile-friendly interface (at least for tablets) and fixes for non-full-HD devices (https://github.com/pbanaszkiewicz/pitt/issues/18)
- Voice-only connections improvements – as long as I’m able to test them (https://github.com/pbanaszkiewicz/pitt/issues/19)
- Chat (https://github.com/pbanaszkiewicz/pitt/issues/20)
I won’t write summary post until after the firm pencils-down date. But let me say that this Summer was truly awesome :)