In this post I’ll be going over the more overarching feature set that Andy and myself planned out at several lunch meetings. I suppose this is the post that should have happened first, this being the distillation of my raw notes from which came those data structures.
We started talking about this because we needed some way of managing our productivity. Most project management is for very complicated software development and we needed something more general. We also believed that the program should be brain-dead simple to use so that we would actually use it. There should be very few clicks for commonly used features like time tracking, and more clicks allowed for document management and invoicing, but it should still be quick and simple. Andy and I also wanted to be able to replicate some of the better parts of other applications we’ve come into contact with like Salesforce as future add-ons or plugins. I want to take baby steps though since I am the sole developer and thinking too large is the number one killer of a good idea.
(more…)
Read More »
Well, the framework from my last post is going to be one of those low and slow projects, it may never even come to fruition. After I wrote that post I came back the next day and discovered a few major errors in how I had conceived the architecture. Whatever. I still want to do it, but I want to get the project management solution finished more. I cast around for a solution and CodeIgniter came up. I found an ORM for it that I’m not entirely happy with but that I believe will work decently (DataMapper with DMZ).
Basically the problem with any ORM is that it needs to have your database structure mirrored so that you can manipulate the data and build queries in a way that mimics the database itself without actually touching the data until the moment you need it. DM/DMZ have a rather verbose method of representing this with lots of nested arrays and it’s a pain, but after it’s set up, working with it is really decent if a bit too magical. So my odyssey has begun in creating the data structures as code. This post is not supposed to be about that, it’s supposed to be a transcription of my ideas and notes that I’ve been constantly referring to. So here we go…
(more…)
Read More »
Well business has been pretty good, but the work has either been sensitive or pedestrian. I haven’t had the time or the reason to develop an interesting or challenging web project for about a year now. The paradigm… *dons shades* has changed *walks away as The Who destroys your ears*. Recently we decided to develop some sort of project management solution for Outside The Lab that would contain a superset of the features from the MML Invoicing System. The only problem is that the entire codebase for that thing is garbage and unusable. It contains zero separation of code and logic from design and layout. It is a paragon example of spaghetti code and it’s glorious in a weird, trainwreck kind of way.
Since then I’ve taught myself some Python and revamped my video host with Django (Link). I hadn’t had experience with the MVC design pattern although I knew the theory. Django really drove the point home and forced me to use it. I had such a wonderful experience that I wanted to be able to code the same way in PHP, but after trying CakePHP and CodeIgnitor, I was still wanting. These frameworks tried to do too much. I just wanted something that would abstract the database stuff away for me and let me do my own thing with the controllers and views. Something really minimal. Now maybe there is something out there like that, but I couldn’t find it. Plus, I figured this would be a great learning opportunity. My initial plan is detailed below for my own reference and for others who may be interested.
(more…)
Read More »
Part of my intent in making this blog was to be able to talk about ongoing development in my various projects. Unfortunately, a lot of the work I typically do is simple HTML and CSS and it’s not challenging me to learn something new. Today, however, I have something to report.
I received an email from Dreamhost last week informing me that they were throttling connections to my video hosting site because recent traffic spikes from the Sonic Unleashed Let’s Play were causing the Apache server to have problems. Now I’ll be the first to admit that my video hosting solution is not elegant or efficient. I started it small and hacked on features as I went. Yeah, one of those. Everyone makes one eventually, but in this case, mine got popular so I needed to fix it.
(more…)
Read More »
At my place of work, one of my projects is to develop our department website. Because this is a major website at the university, it has to follow all the rules. These include accessibility, cross-browser support, and conservative design sensibilities. But being a non-technical corporate environment, they want to have their cake and eat it too, so I have to reconcile the JavaScript carousel and scrolling news widgets they wanted with the accessibility concerns for people with text readers or what have you.
I was poking around the internet and found the solution on another page at our university. I believe it was created by our competition, Creative Services, who we’re pretty sure take templates and butcher them to be Mason-branded. The implementation on that page was the answer no matter how much I loathe their cookie-cutter techniques. The answer is <body> classes.
(more…)
Read More »