Trip Down Memory Lane or Blazing a New Trail?
Today, I spent much of my afternoon bouncing between working on some new theme code for ImpressCMS to make theme design a simpler affair and posting on the forums. Other time was spent reconnecting with long lost friends who I’ve missed dearly. In many ways, it was a great day to be around such a wonderful community of people, but it wasn’t without its bitter moments.
I started out just wanting to catch up on the latest posts and goings on in the world of iCMS, but I quickly got distracted by the conversation surrounding building a new wireframe theme that makes designing for iCMS much easier. Since themeing is my primary are of experience and interest, it was inevitable that I would be drawn to this issue.
Thanks to some valuable help from the community there, we’ve come up with a way for designers to develop themes that maintain compatibility with 2.0.x versions of XOOPS (what ImpressCMS started its development from), current versions of ImpressCMS (1.1) and future versions of ImpressCMS where the core will be rewritten with no compatibility with XOOPS. The basic idea is to use a theme_functions.php file to define the SMARTY variables used in the theme. These variables can be matched to any internal (core) variables, while allowing the theme dev to assign their own theme variables that make better since to them. Of course, it would be best to use standardized variables, and that ultimately is the goal. The main point is to remove platform specific variables from the theme.html file and, using 1 include line and 1 file, make it possible for theme devs to code for past, present and future versions.
This sort of technique greatly simplifies the update process. I can recall when XOOPS first launched 2.2. There was a huge stink in the community over the fact that 2.0.x themes were not fully compatible with the 2.2.x core. This carried on for a long time. Having had that experience, I know how frustrating it can be to have that “just right” theme and then the core changes and you either have to choose between loosing your precious design or not running the latest, secure, stable code. This isn’t a compromise site owners should have to make. The simple solution, create a definition file where theme devs can update 1 file and push it out to users as a simple one-step upgrade process.
It was suggested to make this part of the core. I have some ideas on how to do that, but more details on that will come later. I prefer to keep all theme related files as the responsibility of the theme designer for the greatest amount of flexibility, but with this particular model, it might just be simpler to include these definitions in a single core file that can be updated. We’ll see how this pans out. Regardless of how it is implemented, going to such a method where all variables are in 1 file will save time for theme developers and ImpressCMS will be able to move to a SMARTY variable convention that is more intuitive than the current xoThis/xoThat model.
Then, I got distracted by chatting with friends from that community, but more so by a very interesting conversation on what brought us to ImpressCMS. For some, this is such a trivial subject, but for some of us who were around before ImpressCMS, there is some emotion in this topic. For myself, it is a very emotional thing. I tend to throw myself into what I do with extreme dedication and when I looked back at my online history and what led from my first post on XOOPS.org to my current involvement in ImpressCMS, I have to admit, I almost got a little misty. A lot has happened in 4 1/2 years since I stopped lurking and started contributing to Open Source. A lot of good things, and some things that haven’t been so good.
All this got me thinking seriously about my 7+ years of working with Opens Source software. While there have been many good times and many bad times, what I need to take from these experiences are the friends I’ve made, the lessons learned and the skills I’ve obtained. I should take all these good things with me as I go forward into my next n years of involvement in Open Source software. However, what I need to leave behind is the emotion. The bitterness I’ve assigned to past perceived harms. I need to let go of these things and just move forward on a positive note.
It’s been a day of reflection, a day of emotional upheaval, a day of self discovery and a day of reconnection. As varied as it has been, it’s been a good day.
If you’re new here, you may want to subscribe to my RSS feed. Thanks for visiting!
No Matter Which Road You Take. You Will Achieve Greatness.
oh. and the introduction of the whole xo this and xoThat.. really annoyed me.
It is very good to see you my friend! I hope all is going well with you and your ventures.
I saw you’ve been doing some messing around with C++. How are you liking that so far? From what I understand, it’s pretty easy to learn once you’ve learned another C-based language, like PHP.
We’ll have to chat sometime. I’m curious about C++ as I want to do some developing for Operating Systems and many of the popular languages are C-based.
i’m liking c++, i like defining variables before using them. i learned some C++ before some PHP. php and c++ are similar in many ways, especially that darn semicolon i forget now and then. especially in defining classes there is a semicolon after the last }
//this is only half the code, and using the convention that data members are private, also the convention that the class declaration is in a separate file then the method definitions
class classname(){
private://notice we dont have to constantly type in private like in PHP
int score;//variable type - variable name
public:
int getScore();//variable type on return value - method name
};//<<----- semicolon . i still wonder why it needs to be there.
i’m currently taking a class on C++, learning about stacks, queues, pointers,memory addresses, objects (inheritance, multiple inheritance, composition), and other things. by coding some console apps. it’s not as graphical as the VB.net class i took earlier though. in vb.net it was all about forms and didn’t really do anything that really required much thinking; as this c++ class.
bandit – C is a really good language for you indeed…