Ynui website progress: The site is being rewritten from ground up
User type: Administrator
Date: June 28, 2008, 5:08 p.m.
Just a quick post what is really happening with the Ynui website, as some of you may have gotten the impression it is dead/dying, but in fact it is far from it. Note that this post is a little technical.
First a little on the original website: The original website was written in PHP, using a Content Management System (CMS), that I wrote many years ago (at least 5 years ago now). This CMS was initially designed for my own personal site, we then did a lot of work on it and created the Ynui site using a much revised version of this CMS. The CMS now runs not only our site, but also several others (there were more, but some owners have shut their websites down for different reasons of their own, which has nothing to do with us). Although the CMS was (and still is) good in it's day, we have pretty much outgrown it over the years…
About two years ago, I spent some time researching (diving in to) several web frameworks and programming languages, in a quest to find a better solution for rewriting our CMS from ground up. I have put a lot of thought in how to rewrite the CMS in a better way, learning from the experiences other people had that were using the old CMS. This idea had been slowly brewing up in my head over the last 2 years, and I am still coming up with new ideas as I go along.
Initially I thought about rewriting it in PHP again, but this time enforcing a minimum requirement of PHP5 (which has been out well over 5 years now), so I could leverage the many improvements and additions in PHP5, especially the improved object oriented programming (OOP) support in PHP5 over its predecessor. I kind of started on the project head first, and ditched it about a month and a half into it, as I figured the best way would really be to write the CMS on top of some sort of Web Framework, saving me an awful lot of time and future maintenance. I had made the mistake of writing the old CMS from ground up, not using a framework before, and will not do so again. These days web applications are so complex, that you can barely compete/keep up if you do not utilise some sort of web framework, making development as well as maintenance much quicker and hassle free.
Other PHP frameworks that interested me at the time were Cake, Symfony, and PRADO. Coming from a Delphi background, I gave PRADO a go first, but dropped it pretty soon too, for various reasons of my own. I think the main reason was that I was slowly starting to see some of the design flaws in PHP. Points 2, 4 and 8 bothered me the most, especially point 2: considering multi core processors are so cheap now, why even use a language that can only still run single threaded? I know the core of PHP is considered thread safe and not some modules, but this just isn't good enough anymore. I really hope by the time PHP6 comes out, they fix this issue and make all problematic modules thread safe.
Getting back on topic: I tried Java Server Pages (JSP) next, which uses a technology called Servlets. Servlets are kind of like Applets, but they run on the server instead. This was the first language that showed me web applications could be written in a different way: Whether as PHP scripts start and stop for each page view, Java Servlets run once and they remain in RAM on the server, just like programs. Each HTTP request runs on a separate thread to a special function in your Servlet, also because the Servlet was pre-compiled as Java Bytecode, it made it super fast. Servlets are cool, but I soon realised that JSP simply wasn't the right tool for the job, for what I was actually trying to create. So 3 months in, I once again ditched the project.
At this time, Ruby on Rails was starting to gain momentum and become more and more popular. I heard about the term MVC but knew little about it. I also didn't know the Ruby language and it surely looked alien compared to PHP, C or Java. Around this same time I found a similar framework called Django, which is in a way a similar framework to Rails, except using the Python programming language. I didn't know anything about Python either, but it looked more appealing to me than Ruby, I also thought it would be very valuable to learn Python, because so many Linux desktop applications are also written in it. Several things also made Django stand out for me over Rails, including the built in Admin interface, URL config files, and Object Relational Mapper (ORM), so I chose Django instead.
I took a month to learn Python, reading Dive Into Python, which I would highly recommend, it is an excellent resource to learn Python if you are already a programmer of another language. I instantly fell in love with Python, and this appears nothing unusual, it seems this happens to a lot of other people discovering Python for the first time. After learning Python properly, I was all to eager to get started and learn Django. I ran through the tutorials and got that same feel learning Python. I instantly knew Django was the framework for me, the framework I was going to stick to, and Python became my new favourite language.
This switch to Django is about 8-9 months ago and am working on our new CMS pretty much every day. Development is progressing faster than ever before, and if all goes well, I think about another 6 months and we can start running a BETA version of the Ynui site for people to try out and review. One more thing is, that I have decided that this CMS will be open sourced. The source code will be made available, when I feel the project is stable enough, and I am hoping this will encourage other developers to pitch in and send patches. I have already opened up a Trac site, although at current there is nothing much to see there and there is no source code to download yet. But there will be… all in due time…
When we go open source, it will be officially announced on our news page.
User type: Administrator
Date: Sept. 22, 2008, 11:57 p.m.
Ok guys, sorry for the lack of updates, the new CMS is coming along fine though. I have been going through some major restructuring of certain areas of the CMS over the last few months, cleaning up the Static Page editor especially, and Blog modules out and improving help and documentation (although there is a lot of work to be done in that area still), as well as optimising the code and making sure everything works with Django 1.0.
I have just added support for other markup languages such as Markdown and Textile, as well as a WYSIWYG (visual) page editor. You switch editors using a select dropdown box, which through jQuery code will dynamically load and unload the WYSIWYG editor. When switching editors, previous content is stored in memory (so long you keep that page open), so switching editors won't lose their content.
I have dropped the old menu editor, and have come up with a much better idea on how to do the site navigation (hint: using jQuery, Drag & Drop, AJAX). This came to me, when I was thinking of how to implement a Wiki system (which is on the todo list), I needed a different way to handle the menus. I will post more on the progress of this project later.
For now, have a look at some current screenshots, please note however the project is very fast moving at the moment and is changing all the time. This is the main reason I do not wish to release it just yet… this time will come though.
Update: My appologies if they are hard to read, I do have a 1600x1200 monitor and they don't scale well in a small area. Here are the originals though:
User type: Administrator
Date: Nov. 24, 2008, 6:15 p.m.
Since I haven't posted about the progress of the CMS in a while, I thought I better write something, even if quite brief.
I have slowly been working on the CMS since my last post and it is coming along nicely, but there is still a lot to do and it is taking a lot longer than anticipated. Still… I plan to finish the project even if it takes another year or two (I am in no great rush).
I am thinking of not hosting the source using Trac on trac.ynui.co.nz anymore, because I already have my hands full enough working on the code itself, I don't really wish to maintain a Trac and SVN installation as well. I am thinking of using Github instead.
Please note that the name rvcms is not official, I don't even like it… it's just something temporary until I can come up with a proper name.
I haven't officially released any code yet, although I have had an unofficial copy of the code running at http://robvdl.ynui.co.nz for some time now, where you can browse the code online at least. I wasn't going to announce this for a while still, but it seems Google has already found the site and indexed it (even though I never mentioned it anywhere), so I might as well announce it here now.
Off course there isn't too much to see yet, unless you go into the admin area itself, I won't open this up to everyone just yet, in fear certain people will mess around with the content and I have to reset the database all the time (also I don't consider it complete enough to open to everyone just yet). If people contact me via email I may consider access to admin, but I prefer to know the person first.