markdidj — 2012-08-05T17:56:14-04:00 — #1
I'm skint all the time, but I spend hours every day developing a CMS written in both ASP and PHP. I want to upgrade the asp one to .NET but I also have loads of ideas for features that work in the same way.
I can't afford any help. I'm lucky if I get 1 website every couple of months at the moment. I think because I'm trying to be a jack of all trades, master of none.
I would really love to open source my work so far, but as I'm the only person to be making a live CMS I feel I have a large benefit over others if I can get them finished in time. I've got poor man's copyright, which is legal in the UK.
If I open source it I feel I'm never going to improve my financial position, but neither will I if I continue to work on it alone.
cms_dude — 2012-08-06T12:16:25-04:00 — #2
The benefit of open-sourcing it ... would be that if it catches on and gains a lot of popularity, then you would be known as the "founder."
This means that you can hold training sessions, which you can charge for. You can write books for it and hopefully make a few bucks that way. And of course there's the obligatory conferences. Once you get in to holding your own conferences, you can take a cut on the admission price, and just start adding up all the money for each attendee. Then, of course, if other user-groups emerge and start their own conferences and seminars, they can pay you $100K a pop for you to be the keynote speaker.
And finally, if a large (or even semi-large) company decides to adopt your CMS and they run in to troubles with it or need training, etc. ... Then you would be the best person for them to contact for the job. Who better than the founder, right?
Lots of ways you can parlay the popularity of an open-source product in to a lucrative opportunity. The key is to make sure your name becomes ubiquitous with the product, and that you are well-established as it's founder.
shadowbox — 2012-08-06T12:32:00-04:00 — #3
What do you mean by poor man's copyright?
markdidj — 2012-08-06T12:52:43-04:00 — #4
Thanks CMS Dude, a great inspirational piece
"Use of this method may not hold up in a court as it is simple for individuals to pre-send envelopes which can then be used later by placing the materials inside."
To help this, take your work to the post-office and use one of the more expensive plastic envelopes they give you for recorded delivery. These cannot be opened without affecting the seal, and they send it datestamped.
It's what musicians were taught in a class I took (I was there as I wanted to create musical websites)
awasson — 2012-08-06T14:08:43-04:00 — #5
Every developer I know (self included) has come up with an amazing CMS at some point. Most are similar but the term "Live CMS" caught my eye. Can you elaborate on what that means and what sort of benefits it may have.
* I had/have a CMS some that's somewhat platform agnostic because it's built on an XML backbone. I have flavors in PHP, ASP, C#.NET. The database can be MySQL, Access, MS SQL Server or with a little work (that I never completed) it can be full XML. I had considered building/converting in to the DocBook schema and then doing away with the database entirely but other than a few experimental drafts, I didn't pursue it any further.
markdidj — 2012-08-06T16:00:04-04:00 — #6
I've been constantly updating both the front-end and back, and have a good permissions sql script which I wrote for PHP/mySQL and asp/access allowing user/group read, user/group write, user/group blocked from reading, user/group blocked from writing. It allows for multiple combinations of each too which is handy. I think this sql may be the most powerful thing I've written, taking me a couple of weeks for one line (it does a lot of other things too, all with one query)
I have an asp upload progress bar using ASPupload that's embedded in the same page. This is from their 3.0 version, which was made to pop up in a small window but using my livescript functions and XMLhttpResponse managed to hack it to work in the current page without the pop up or frames, or the bloated HTML tables with inline css.
The editable area only worked in IE though, and when I upgraded to 9 it stopped working. Before then my only script copied from online was for md5 encryption for asp. A little beyond my league I think. I recently downloaded rangy.js though as the problem I had was with the ranges when selecting content from the editable area. That was difficult to include into my method as well but managed to get that working again within the last couple of weeks. I'm just updating the editable area now (if I could stop procrastinating at sitepoint )
But there are more.....
Also, what I've been thinking about lately is shopping carts. As I don't need cookies to remember data between page changes, and I can import others' live data to my page, I can add items to a cart from multiple domains.
There are loads of other ideas too, the more I work on it the more I realise what it can do.
Anyway, that'll do for now, I've still got to update the PHP version as a friend requested a site and I want it done by the end of the week as I'm skint!
awasson — 2012-08-07T01:44:42-04:00 — #7
Ok, so what's the key benefit of the system; is it that you change pages without a refresh and just refresh the content thereby reducing the server load and speed up page views or is it that the page automatically updates the page in view if it has been updated during the visitors visit to that page?
I had a look at that example that you posted over in the PHP side and I think logic_earth has a very good point about the code being too procedurally driven and that the code should be refactored to make it more modular. I built the bulk of my CMS in late 2003/2004 and things have changed immensely. Where I used to use document.getElementById('some-element').innerHTML='something'; or xmlhttp = new XMLHttpRequest(); I now use a jQuery, where I used to use my own rich text editor, I'll use TinyMCE or CKEditor. It's modular and the code is somewhat self documented.
If I do anything with my CMS, I'll release it as an Open Source project but I think before I would do that I would refactor my code to make it more OOP or MVC. My ASP and PHP versions are also very procedural but the C# version is OOP. The reason I would release it as an open source project and the reason I would release any project as Open Source is to get more people involved. When I first built my system I thought it was pure genius because it's super light weight and responsive and it was much better than the DotNukes and PHPNukes of the day however as I got my hand into more advanced CMS projects with big communities behind them I realized no matter how clever my CMS was it paled in comparison to how fully featured and extensible these others were. This isn't to put you off but to illustrate the power of a community driven project as opposed to a single developer's system. If you want to compete with the Drupal's, Joomla's and Wordpress's of the day, you'll need to get a community to help you do so.
oddz — 2012-08-07T02:24:30-04:00 — #8
It is a phase…
markdidj — 2012-08-07T05:05:08-04:00 — #9
Both really, but more
I used the long version as a function can be changed, but after my last post in the js forum I guess a lot more than I thought about can. Thanks to Jeff who pointed it out that predefined functions doesn't really mean that. Also,I tried to stay away from libraries for two reasons. I didn't want to learn something different, I wanted to be creative with the things I had. Also, if I wanted other sites use the info from mine (I couldn't stop it if I tried) They could use it without themselves needing libraries.
I couldn't use an existing rich text editor because they weren't live, eg
<a href="/cms/cmds/table.asp" title="Open Table Options"><img src="/cms/images/table.gif" alt="table" /></a>
<a href=""" & page & "?edit=" & part & """ title=""Edit Part" & part & """><img src="/cms/images/edit.gif" alt="edit" /></a>
which is a link which opens the current page (in the minimalist of the sence with live script) with edit functions that only appear if the user has write permission on the page or is in a group that does, or is not a blocked user or not in a group containing blocked users. The cms does not have read or write permissions set, neither does it do anything server-side. It just creates the options for the table and embeds it in to the current page (div id="cms_extras"). #cms_extras appears differently depending on what #cms_extras.addtable had in it (which is now brought in dynamically rather than whole files in one and fits in with the modular file structure). table.asp can be added to the permissions structure by adding it to the database and including a certain header file.
endermb — 2012-08-07T06:01:13-04:00 — #10
I hate to burst your bubble, this sounds awfully like the Page Editor functionality with large-scale CMS's like Sitecore.
awasson — 2012-08-07T12:25:13-04:00 — #11
The reason I suggest you use a library is because most developers who do "live" things on the internet are already familiar with jQuery, Node.js or one of the other well known libraries and it opens the doors to developers to better understand and adopt your system. Like you said, you don't want to learn another system... Neither do they.
- I initially balked at AJAX libraries because I knew how to manipulate things using XMLHttpRequest(), bla, bla, bla.... Then I started using Node & jQuery and I haven't looked back. All the boilerplate code is done, I just have to write some tight syntax and can get the job done.
Regarding using a rich text editor plugin, I'm sure they can be used "live" as well because they are obviously using DHTML techniques to do what they do in the first place. It's just a matter of figuring out the hooks.
markdidj — 2012-08-07T16:35:31-04:00 — #12
That doesn't burst my bubble at all. Saying something like mine is similar to a large-scale CMS to me is something of a compliment. Thanks.
Thanks awasson. The asp templeate is more-or-less finished, and the PHP is close behind. Looking forward to when they are working as I can get in to spending more time learning OOP, both server and client side, and look in to existing libraries. I can also get back in to developing more "fun" projects like my guitar and CSS3 maze. At the moment though I'll have to continue using the libraries I've created over the years as they already work the websites. Changing them now will put back the finishing of the php version. I need to get what's done fully working again. I've managed to get a range to save, which was the main setback, but in doing so it's made it work on all new browsers, it even works in my Blackberry
Thanks for the chat. Inspirational.
markdidj — 2012-08-07T17:52:52-04:00 — #13
As some of you have seen the sites, you've probably realised that the main content is about the same size. I have a bit of a dilema here. The idea is to have a button that when clicked publishes the current content view to my maze, [www.livescript.co.uk/maze/dark for Safari and Chrome. there's HTML content on [URL="http://www.livescript.co.uk/maze/3d"]www.livescript.co.uk/maze/3d](http://www.livescript.co.uk/maze/dark)) I have mashupmaze.com which is where it will go. The maze at its current size looks good in an iphone and I think it defaults to 1:1 ratio (I haven't got an iphone so I have to keep annoying my friends, and when I tried emulators they didn't have the CSS3 perspective).
Do you think it would be better to increase the size of the maze panels or decrease the size of #main in the sites? Or think of another way so both can be different sizes?