Mercury MVC Framework's Journal|
[Most Recent Entries]
Below are the 19 most recent journal entries recorded in
Mercury MVC Framework's LiveJournal:
|Saturday, July 4th, 2009|
I haven't posted lately about Mercury. I've done a ton of work on it. For starters, it's been the framework we've used on the major job i've been working on the past three months. We've used a lot of core functionality and we've written a ton of custom stuff. It's been awesome seeing custom presentation files fall into places, using the occasional custom function override and even using a few hooks.
Everything I had planned for it to do it has done.
I don't know what I'm going to do with Mercury. It's almost too good not to share somehow. But sharing means a lot lot lot more unpaid work and I don't know if I have time or energy to lead something like that. Right now I'm for sure going to use it for pesonal projects as well as the foundation for all new client projects. But beyond that it's up in the air.
|Monday, April 20th, 2009|
User Photo Gallery
Yesterday I built a photo gallery that hooks into a user's profile. Multiple levels of categories, auto thumbnails, storing the originals, edit ability. Haven't built delete yet though.
Rolled it out today to the FriendsThatRide.com site and so far so good. Caught one bug and added a couple of interface things once it was pushed.
|Monday, April 13th, 2009|
So we launched another Mercury site today but I have two rounds of better news. One is that I have taken over WebKit fully. Mercury will move forward but as a WebKit product and not a Chick Interactive one. The other is that I have just landed a project that will be a large Mercury-based social network. Just dumb luck that it came to me but we're moving forward and Mercury will get a bunch of new features and testing and I don't have to worry about putting food on the table.
I'm thinking that I'm going to start a new blog running on Mercury itself to chronicle progress. I may or may not keep this one going.
Today: added edit and delete on blog posts (necessary and finally built). Cleaned up a few bugs I found on blog and forum links. This is what testing is for!
Next up: more work on joining with hooks, photo galleries.
|Friday, March 27th, 2009|
Today we are launching the beta site of FriendsThatRide.com
, the first social network built on Mercury.
This site features:
- Core helper functions
Today I did a lot of work and got a few little bumps ironed out. I added a new interface to the most recent blog post and build the 'leave comments on user pages' feature. Also found an interesting issue with the image uploads where it was choking trying to resize an image larger than 2060 pixels wide. Not sure if was the pixel size (approx 3.2 megapixel) or something else. Didn't fix it but I capped the upload limit at 2000 pixels wide.
There is nothing like a live site to accelerate some of the little UI elements. For instance, much of my stuff so far has been in test mode and doesn't have any pagination. We'll hit enough users after tonight's launch party that the demand will be there quickly for stuff like that.
It's a slick site and it will be a great portfolio piece!
|Friday, March 20th, 2009|
After I finally got my local CentOS 5.2 install working last night I slept in. We also upgraded an existing site to the newest version of the database and it went very smoothly. The next time I'll use the migration path tools I have built in already :)
Today I was able to dial up a few things in Messaging and added the ability to request, approve and deny friends.
There are about seven days until the beta launch of Pete's new social network site on Mercury and I've got most of what he needs done. Now, this doesn't mean that there isn't a lot to do. I have to add some error-checking and tighten a few things up. I need to work some on the default styles to make sure that things look nicer. Eventually I need to add some jQuery or Prototype features to do more in-page rather than having to do page refreshes. But I have a functioning product right now and that's exciting!
I need to add photo galleries and a basic shopping cart and I'll have most of my main tools. Then to tighten it up. Then banners, classifieds, some enhanced user profile stuff, payment gateways (probably built with the cart though) and a traffic monitoring system.
This is about 25 days since I created this community and about two months since I actually started work on Mercury in my spare time. Admittedly some of my recent days have been mostly Mercury but this is a lot of progress in that time :)
|Thursday, March 19th, 2009|
centos in vmware
how annoying. I mapped a working folder from Windows into my CentOS virtual machine. I could see it in the shell, I could even do things. But apache wouldn't map a document root to that path. wtf?
dig dig dig dig dig....
Shutting off selinux's security monitoring solved the issue, two and a half hours later. They didn't have selinux back when i was really playing with this stuff last. Oh to be learning again, the hard way.
|Tuesday, March 17th, 2009|
First live Mercury site
Today we launched http://www.deepcreekmarina.com
, the first Mercury site. It uses admin, users, security and CMS. The boat listing piece will be rewritten in Mercury soon.
I have a politician's website in Mercury ready to go as well. Just waiting on a head shot for the front page.
Lastly, have a cool social network site in the works. I'm in the process of working on profiles, friends and messaging for that one. Can't let the cat out of the bag any more on that one until the beta launch in ten days.
|Monday, March 16th, 2009|
I haven't done much on Mercury the past couple of days. I haven't been slacking, just prepping the groundwork for progress. On Saturday I met with a guy who is going to try to sell Mercury-based solutions for me and perhaps transition out of his other job. I also spent a lot of this weekend training Cass in HTML and CSS.
Pete got his new Linux VPS for Friends that Ride and we installed his Mercury alpha site. With the advent of that site I wil be making a lot of improvements to Mercury in short order. This is exciting.
I spent several hours today working on a site for a politician. Along with FTR and the other site that hopefully goes live tomorrow that will make three sites running Mercury. Not bad considering I only just started working on the engine in my spare time in late January. :)
|Thursday, March 12th, 2009|
So we have rolled out our first client site in Mercury. Everything went exceedingly smoothly and that was awesome. The only exception was that I could not get mail() to work on my new vps . The error messages were crap, as in there weren't any, and ultimately (and after many many hours) I resorted to using PEAR::Mail. That still throws warnings but the mail gets delivered.
Next up: user-to-user messaging and adding friends.
|Wednesday, March 11th, 2009|
blogs and users
last night i added a front face to blogs and enhanced the user profiles. came up with a slick way to allow for a default layout for blogs with a flexible main column and sidebar. it's all about the CSS.
today we built our first commercial site using Mercury. It uses users, blog, cms and admin. It was a joy to deploy, very nice indeed. More on it when it goes public, maybe tomorrow, and we get some client feedback!
|Sunday, March 8th, 2009|
I spent time yesterday working on the blog module. I have the basic admin done and need to start on some refinements. I can make categories and edit them. I can add posts and attach as many files as I want (into a pseudo-hashed blog-specific upload folder structure)
today I need to polish up the post page and build the view page. then implement the seo-friendly urls with that part of the framework i've already built.
|Saturday, March 7th, 2009|
I didn't post yesterday but I made some changes to how Mercury is laid out. The best news is that I only really had to change a couple controller files.
Now I have a system that allows for a primary code repository on the server that exists independently of any client's folder. Clients can leverage this code and if they ever want to leave i can just give them a copy of the code and their dedicated database. This is great for portability. To roll out a new site means ftping a base folder structure (with about 9k of files) to the new client and changing a couple of lines. The install footprint is very minimal :)
I can go from nothing to a new apache virtual running cms, users, forums and the whole works in five to ten minutes. Obviously adding the creative and tweaking all of the CSS takes a little longer but for a functionality rollout that's pretty sweet.
Today I work on blogs
|Thursday, March 5th, 2009|
I forget to update this when i work, shame on me.
I have a working forums that is DIV based allowing for snazzy CSS formatting. I have locked down parts of the admin by permissions so a site owner could give CMS control to one account and "manage users" to another account, or some combination of permissions. Tidied up a few things in the CMS.
Getting ready to work on Blogs, Photo Galleries and our custom Winboats Web application.
Looks like we'll be rolling Mercury out to its first client this weekend. They will only be using the CMS but it will be a good test. I'm a little anxious about the updating process but what I have works and we have backup mechanisms in place too. This will be good.
|Tuesday, March 3rd, 2009|
- Manage Profile
- Change Password
- Upload Profile Picture and resize to fit
- Create thumbnail picture
- Store original picture for future use
Updated some code to some user function calls.
did fresh database reinstall from scripts, found some missing columns. or maybe i didn't find them, they were missing. added them again. the system is working again from a fresh install. made some visual tweaks.
zero to sixty in four seconds.
|Monday, March 2nd, 2009|
it doesn't make sense to have the Mercury engine try to auto-download all the latest and greatest code. too much messing with permissions and such to make it smooth.
just about done working on the first pass of the forums module.
once the framework is complete development is both powerful and fast. This is very exciting :)
|Saturday, February 28th, 2009|
Install and update
I have incremental database updates working on a versioning system. Next I'd like to build a system that will automatically (or even manually) go to a designated repository and check to see if a module is out of date and get the latest and greatest. With the notions i have in mind it won't be that hard to do :)
|Friday, February 27th, 2009|
implemented an auto-install feature for all modules in a Mercury site. will build database tables and populate any necessary initial data. on to auto-updating modules next.
One of the challenges I've had has been coming up with a good way for Mercury modules to update automatically, including the database.
Last night I took a notepad to bed and came up with a plan for how to do it. Haven't had a chance to put the code to it yet though.
|Thursday, February 26th, 2009|
My new PHP Framework
After twelve years of ColdFusion development I have recently embraced PHP. It's not that I've lost faith in CF but the economic reality is that I will have an easier time getting work as a PHP developer than a CF one. To that end I have decided to pretty much abandon my CF KungFu platform and rewrite it in PHP. This has been complicated by the fact that PHP has neither an application scope for variables nor the ability to load functions into a global and persistent memory space. It's taken some slight of hand but I have put together a system that doesn't waste any overhead loading anything it doesn't need.
I call this system Mercury.
So far I have built the following:
- Core Mercury framework
- MySQL script to build initial tables (built using MySQL Workbench)
- MySQL script to populate initial data
- Flexible security and permission structure
- The ability for modules to hook into other modules without having to at all rewrite the source module that is being hooked into. This is kind of like one module 'extending' another.
- A content management system with WYSIWYG controls and file browser
- An admin system that adapts to the modules that you want to use
- An MVC model that separates form from functions
- Default presentation files that can be customized on a per-site basis with almost zero processing expense
- The ability to have a core repository of code for multiple sites on the server yet easily control which modules a given site has
- The ability to run distinct databases per site (this deviates from the WebKit model. It will mean more overhead when changes happen but will give us the ability to much more easily migrate sites as needed)
- A ton of useful functions I can leverage at will
- A level of database-software abstraction
Last night at pool I added the ability to easily update permissions as modules get updates and need to push new permissions into the system. Along with that there is a summary for each permission to let you see who it has been assigned to on a login, group or user type basis.
Today I added a switch to enable or disable modules. This mostly comes into play on the hook level but since the admin system is built on that then it means that a disabled module won't show up in the admin, nor can it be summoned anywhere within a site that calls the functionality by hooks.