Julython 2014 has come and gone. I hope everyone had a blast, I know I did!
Let's take a quick look into what was worked on in July:
I like to use Julython as a very good excuse to learn something new or learn something more about. In this passed July's case, I have been toying with the idea of learning SQLAlchemy, and this was a perfect excuse to do so.
Take a look at my Slidedecker repository and you will see that I added SQLAlchemy to it. Obviously, I wanted to learn more about it first, so I also added the tutorial to my Julython projects. But I really wanted to learn by example, so obviously working on your own personal project is the way to go!
MPPyResponse are packages available on PyPI.
bump is a fork of the original that I use to do version bumping. I had a need to do version bumping for release candidates or beta candidates and that functionality was missing, so I added that in.
MPPyResponse was created out of sheer humor. A friend of mine jokingly asked me to create an application that responded with a random Monty Python quote; no problem!
Obviously, with it still being Julython, I wanted to learn something new while still having fun, so with
MPPyResponse, I started that project off with cookiecutter. It is truly a fantastic little package for starting off your own little package. I highly recommend it if you need a little boilerplate to get your projects going!
In summation, Julython for me is really just an excuse to learn something new in Python while having a little fun. Yes, sharing code and watching myself on the leader board are awesome too, but all in all, contributing to a month-long event of hacking is really just a wonderful thing!
Until next time! Cheers!
I've been hearing far too many stories about folks having their daily stand-ups take too long. So, I feel compelled to write about stand-ups and how to keep them brief.
Full disclosure: I am not a PM nor a Scrum Master; I am an engineer and my stance on stand-ups is viewed as an engineer solely.
If 15 minutes is not enough time for you to get through your stand-up, then something is wrong. As an engineer, you have three main questions you will need to answer:
If you are having lengthy discussions about every little thing you mention during your update, then that is why your stand-up is taking too long. Stop that. Just remember to stick to those three questions and anything more than that should be discussed outside of the stand-up. Try and be respectful of other people's time. If you are discussing something at length, that is time taken away from another person's updates, which will make you go over your allotted time, which means everyone at that stand-up now has less time away from doing actual work!
"Painting the bikeshed" is a phrase that comes from the BSD mailing list and it could possibly be why your stand-ups are running too long. If you have folks that give their feedback for every little detail of someone else's update, then send them that bikeshed link. Once again, I cannot stress this more, discussions that are thought of as quick, add up after time.
There are, and I actually was looking into using Grunt. Well, I have been busy with this new project and just want to keep the ball rolling. So, I'm sure that I will revisit this minifying process again in due time.
Sure, it's here on my GitHub. It's short and sweet and super simple. I'm actually going to fork this off and use it similarly at work. Anyhow, I just thought I'd share. Cheers!
Yes, this was a bug fix. "A one line bug?" you ask? Yes, sad but true.
A bug was sent in about pagination not completely working for a web application. It was consistently showing only four pages. This is obviously not expected behavior especially if the user knows that there should have been 10, 20, 50 pages.
So it just so happens that the portion of the site was quickly rolled out to return only 100 rows from the database as a shortcut. As part of technical debt, a fix for pagination was then added. Unfortunately, sometimes working in a fast pace, you miss some details in code and bugs like this slip through.
So, I know I'm not the only engineer to have commits like this. I mean, remember the
goto fail; bug? To remedy this, we've already started doing code review on this project. Why haven't we been doing code review from the beginning? Well, if you remember my post on a quick site launch, I'm sure you are aware that this is for a site that was bootstrap'd fast to ship a functional product in a short amount of time.
Unfortunately, things like this was expected due to the lack of time. But here's to finding a humorous tone in my mistakes. Cheers!
Here is a tale of commits starting from the first initial commit, up to the production release commit. Full disclosure: these are not complete commit logs, I have tailored out any work-specific text. These are also not all of the commits in the log, but only the highlights.
So, here's the problem, I've been tasked to build a web application. They need it "A.S.A.P." aka "we need it yesterday". I'm up for the challenge, I do my research, get the requirements, pick my tools, and off we go.
commit fc230bbd88e488224145e2dcb8d3522aebbd706d Author: Adrian Cruz
Date: Tue Jan 7 11:20:48 2014 -0500 initial commit
It's a Python Django application. My second place choice was to use Play Framework, and honestly, I would have loved to use it, but I would just be learning Scala and the stress to have the application ASAP resonated. I know Python, I've built web applications in Django before. Let's do this.
commit e65ef58f6f32c39a7b345f137c899479485cdc04 Author: Adrian Cruz
Date: Wed Jan 8 09:44:32 2014 -0500 working on the bus commit
I've been having issues with Thrift. We use Thrift to provide service API calls for cross-functional teams to use. Thrift is not documented very well. Learning how to utilize Thrift to pull data and store data is taking up too much of my time. It's a blocking item, pushing all of my other tasks further back.
commit 61954bbfb2738eba93c8b270fd2dadcce4c99207 Author: Adrian Cruz
Date: Fri Jan 10 03:42:20 2014 -0500 working on page detail view, not quite working (404'ing) - time for sleep commit d62a212b3d44836258d82fa783f7d9388ee27493 Author: Adrian Cruz Date: Thu Jan 9 03:18:19 2014 -0500 specific pages are loading in a table now. -- i should sleep
I want to get this app done. I've got some strength in me to pull some late-night coding sessions.
commit 926607874dfe5ad62064a990e29a27c7d3087367 Author: Adrian Cruz
Date: Mon Jan 13 20:08:45 2014 +0000 - updated settings and models for running on beta box
I've been going back and forth with another developer. I have downtime while he is working on fixing things on his end. I set up a beta server to host my application instead of running this on my local machine. My git logs now reflect GMT time since I am not working on my local machine any longer. Note: convert the time to be in GMT -5 to see the actual times I've been working.
commit bd4ce1a3029fd412a3ae9e4465645a77405d729d Author: Adrian Cruz
Date: Fri Jan 17 19:00:01 2014 +0000 quick lunch commit -- loading data from thrift successfully commit dd8d1d209a483bfa32e51203969bc9a83c2a7903 Author: Adrian Cruz Date: Fri Jan 17 09:07:41 2014 +0000 falling asleep commit -- working on pulling data in from thrift now
Things are getting better. I'm getting the hang of Thrift finally.
commit c6671bbc0ad5aafd41f84096fcdacd59c2466366 Author: Adrian Cruz
Date: Tue Jan 21 19:30:03 2014 +0000 v0.1-beta-rc1 - functioning; saves and pulls data
Looks like I have a working beta version. I had to do a lot of AJAX work from this weekend up until January 21.
commit 01695b45c3db9ac521952f6ed9467907e7ad5675 Author: Adrian Cruz
Date: Tue Jan 21 22:54:33 2014 +0000 on the bus commute! wow this snow is horrible! i'm _still_ not home yet.
Working on the commute to or from the office has become a normal routine. But this time, I really had to since it was the only thing keeping me sane. Total commute time due to snow: 4 hours 20 minutes.
commit 721aa0881e8039925825049e8d3ad2907226171b Author: Adrian Cruz
Date: Sun Jan 26 05:49:53 2014 +0000 WORKING LDAP authentication! - need to make it pretty and add @login_required decorators everywhere
One of the requirements was to be able to snap into our company's LDAP server so users won't need to remember another password. If anything, I could roll out authentication using Django just for the time being. But luckily, just one weekend worth of hacking, I was able to write a custom LDAP authentication module for Django.
commit 01318875cb0f0adaebe7d0d03fd6d38ca8a36593 Author: Adrian Cruz
Date: Mon Jan 27 08:13:32 2014 +0000 i should go to sleep - fixed data models
commit a161c8b476c33dc2330d357143d9a2a8c94dbb79 Author: Adrian Cruz
Date: Tue Jan 28 12:06:23 2014 +0000 Thrift saving seems to be working properly now... it's 7am...
Having Thrift issues certainly did slow down the process.
commit 767f9c0796804d3fbca38db0fd0cac2c1bc746b2 Author: Adrian Cruz
Date: Tue Jan 28 22:11:10 2014 +0000 production settings.py
commit 3cbb95e1fa3f7a38e9de8d8d4f392944e5e0e52a Author: Adrian Cruz
Date: Wed Jan 29 19:57:58 2014 +0000 optimized view for pages - LEFT JOIN - limited results to 100 until pagination
We did a live beta to demo to our end users. I like these since I get to hear user feedback. But on the other hand, I really got to hear user feedback! A flood of changes were requested and some of them were done. Others, entered in as a feature request for the next iteration.
commit 8a10107c9d3b9ce4ea2ed2d4255b2f6113ae5c7c Author: Adrian Cruz
Date: Thu Jan 30 23:51:02 2014 +0000 publishing properly - TODO carousel json
I now started working on publishing output. I can see the checkered flag.
commit b8ab872dbcb464c63f4b6d260d5a81e9448d1e4f Author: Adrian Cruz
Date: Fri Jan 31 01:13:18 2014 +0000 v0.1 - publishing seems to be working properly
I made it. I've deployed everything I need to production. It's a barebones application that functions. Any further refinements will be handled with maintenance releases.
commit 53554dffeac07a86e9d62791178ca15126877887 Author: Adrian Cruz
Date: Fri Jan 31 17:21:03 2014 +0000 v0.1.1 - maintenance release - bad sql query - it was late, i was rushing, everything all looked the same
I'm technically off on holiday. I checked in on email though almost every half hour. I got an email about a couple of bugs. I was able to send over a solution via email for one bug. I VPN'd in and made some changes for the second.
I have obviously got some more work to be done. The code base for a fairly well-designed system is now in place. All that remains is to make some fancy user design changes, optimizations, and of course some general code clean up!