Entries in category "Projects"

Added some more details to the main listing view, including dropdown views. 

And here's the individual image listing view:

Instead of doing a specific style for the name/description, it's treated as just another comment. This does two things: (1) it reduces a UI element I have to implement, and (2) it makes the comment area always seem populated (well, unless no image is uploaded). The white background comment is the one input by the image uploader. 

Next step will be figuring out the DB schema, which should be trivial since I've already designed like 3 databases for image hosting sites. But when to actually build it? Will need to squeeze in time, I really want to get the Tabulas editor done first (as I'm blogging more, I'm finding this old interface maddening). 

. . .

Besides that, I went in for my Global Entry interview today - I should get my card in the next 7 - 10 business days. This will let me bypass the passport control lines when entering the US in favor of a passport/biometric scanner. Yippee! 

. . .

Also, somebody slashed the top of my car. That's like a $500 replacement - looks like I'm going to find some glue and try to fix it myself. Sigh. Can't complain, overall. Everything is going pretty great lately. 

Posted by roy on October 17, 2012 at 11:57 PM in Projects, Miyaki | Add a comment

I love it when you get to the point of a product release where you're cutting things out. The past two weeks, I've been cutting out UI components, features... it's great. Getting rid of the cruft is so much easier when the product is more tangible. Certain ideas just don't make the cut. 

The login screen for the new project was previously: 

The text logo was a placeholder. The top right navigation used to have "Create Account" too, but we moved away from a self-registration model once we figured out our user stories. The text also seemed a bit ... constrained. 

With our new logo, I tried something new:

 

Collapsed the header text into the header bar saved vertical space. Slightly larger text gave the site more breathing room. But the logo bothered me - seemed too much like a tramp stamp. 

Ahh, nice. Logo still stands out, but isn't the primary focus. I like the left/right balance it gives with the header text.  

 

Posted by roy on May 3, 2011 at 11:01 PM in Projects | 2 Comments

It had been a long time since I sat down for a long period of time and just hacked on code. Well, today was a change ... logged a good 8 hours in front of the computer working on something for MindTouch... and I got the mini-app wrapped up! (Which I'll proceed to talk about now - if you don't want to read the lengthy version, I'll be posting a summary of this on the MindTouch Developer Blog shortly).

Growing as rapidly as we've been, the MindTouch team has been shortstaffed, as our sales exceeded our capacity to handle projects on the professional services side. I've tapped engineers for projects, and we've gotten creative with project management (lots of people stepped in from time to time to help). While growing out the team to match capacity is one task, another task is to continue to excel at our projects. There are a whole bunch of goals that align with it, but the overall theme is to increase transparency into a project's lifecycle so that I can figure out if (a) we're scoping things correctly and (b) to create a baseline to start finding improvements in the process.

To that end, I decided to put together a MindTouch application which would solve one problem: tracking hours in a project. Because we don't bill hourly (but per-project), it is incredibly important we keep an accurate log of hours to make sure that we're not losing money on bigger projects.

How did we do it before? Well, like all things that grow organically, there was a wiki page that we just kept updated: (this is real, I kid you not)

Whoo boy! Well, now, I've put together a tool that looks more like this:

There's a live demo you can check out - this whole project took 8 hours from beginning to end (I took dinner, laundry, and cleaning breaks).

I'm a bit tired, so I'll just try to summarize some points:

  • Writing the functional spec for this feature helped the development of this mini-feature incredibly. You should always write a functional spec - there were so many times when I was deep in some code, then asked myself, "What did I decide about this user experience?" Easy to just jump back to the functional spec!
  • It's amazing the tools that are already in JavaScript and MindTouch to accomplish these tasks - if you tried to create this same application five year ago, it'd take you weeks. And it did take me weeks. 
  • The whole application is completely degradable - turn off JavaScript, and the whole thing still works. As it always should. It is NOT that much more work to do it this way - in fact, the natural progression for development is to make it work without JavaScript first, then add in the progressive enhancements... I can't understand people who keep writing everything JS heavy. Debugging that stuff is near impossible (although Firebug's console makes it a lot easier now! I <3 Firebug!)
  • It's fast. The whole app was designed with user speed in mind; if the activity takes longer than updating a wiki page, it has failed. And holding up to that metric, I'd say it's super fast.
    • As an amusing note, I actually spent about 10 minutes figuring out the order of the input forms. Originally it was: "Time, Task, and Project". I switched it to the current order because if you tab over to the <select> as the last element, you actually need to tab over once more to submit (you can't hit "enter" when a <select> is active). These are the important details!
  • This is just the beginning. Now that I've started getting my development mojo back, I may take a stab at fully porting Listfoo to MindTouch. There are two holes at MindTouch which could benefit from a modification to this script: daily activity dashboards & tasklists.
  • How does this technically work? Let me go from the bottom-up. The data store is mySQL (it utilizes the built-in database code in MindTouch and uses the existing database). The processing is handled in a MindTouch special page plug-in (/Special:TimeTracker) and utilizes a crapload of the existing PHP libraries (DekiForm, DekiResult, DekiPlug, DekiTable, etc...). jQuery progressively hooks up the UI optimizations. DekiScript/MindTouch API is used to render the pages inside a MindTouch page. Properties were used as the "customizing" endpoint - as the first example, the list of "active" projects is actually a page property. I actually like storing configurations through page properties - it lends these applicatoins being easily customizable by end-users ... and with import/export of trees as a new feature in Minneopa ... imagine how awesome it'd be to launch your own instances of these mini-apps!
  • And most importantly, shout-outs to the music I was listening to: Meg & Dia, Katy Perry, Cascada, and Lady Gaga... can you sense some odd pattern? 

Now time to fold three loads of laundry and get some sleep...

Currently listening to: Meg & Dia - The Last Great Star in Hollywood
Posted by roy on July 27, 2009 at 01:50 AM in Projects, Web Development, MindTouch | Add a comment

following this moment of inspiration for as long as i can, for fear of losing it.

Posted by roy on February 6, 2009 at 11:19 PM in Personal, Projects, Web Development | Add a comment

I spent the weekend touching up some things on listfoo and decided to just package up the ZIP and release it as open source.

You can read more about the project and download the bits and run your own crappy list services now! Yay ponies!

I spent a good 5 seconds mulling over the licensing options (GPL, LGPL, BSD, MIT), and I decided to go with the best candidate: WTFPL - Do What The Fuck You Want To Public License.

I feel pretty confident with my choice. I really like the simplicity of the license:


DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar
14 rue de Plaisance, 75014 Paris, France
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.


This marks my first contribution to the OSS community (outside of MT, obviously). I hope to release swarmf.com under the same license, assuming I ever find the time to work on it.

Posted by roy on April 22, 2007 at 07:44 PM in Projects, Web Development | 1 Comments
« Newer · »