Hydlide Blog

On this blog I will post most of the stuff which is keeping me busy. Currently I am working on the following projects:

 

Screenshot from 2014-09-07 01:53:18

Since of last 2 weeks I have been working on another “hidden” secret project. This will become Reasonexperts.com version 4.0.

While most of you “gents” will probably not be interested in how I am able to set up a wordpress site. Let me make sure, Reasonexperts isn’t a wordpress site. Since the whole thing is made from the ground up.

The main thing here, is that till the current version of Reasonexperts the admin panel (the thing I post stuff in to) has never been updated. Which basically means, the site never had an update since the last 3 years.

Currently I am getting to a point where I will re-code the complete site once more. It starts with the admin panel (which is compatible with the current one, but with a lot of nice additional features).

While I am doing this, I have been thinking out load on how to approach this whole “core” replacement. And I think it will kind of go as followed:
- Stage 1: replace the admin panel (in progress)
- Stage 2: replace the frontpage with new features
- Stage 3: rewrite the complete frontpage so it uses the new features of the new admin panel

This may bring up the question: why not jump from stage 1 to stage 3 and skip stage 2?

Its a fair question, and it has everything to do with migration trajectory from IT projects such as these. The main issue with the “so called” Big Bang deployment is that often there are features that will not work the way they should. At the same time, people might get scared with the way it suddenly has changed.

Migration trajectories such as “small phases”, may be more subtle changes for the people who are following the site while they revisit it, rather then all of a sudden come to a page they can’t recognize.

Another part of the problem with the so called big bang method is that it takes about a couple of months (or longer) to just develop such a thing. And by releasing the complete thing, there is no measurement to see which features are successful and which aren’t.

There for, I am doing small iterations (like sprints… if you will) to release certain snippets that are ready to be deployed and tested.

Sure a migration method like this needs more time (since the old code still need to function), but I prefer this method to provide a stable service…

So in case your wondering what I have been doing while not making any articles / videos and alike… there you go… I have been coding instead :)

Posted on September 7, 2014

reasonexperts

View details »

Just as an experiment I have decided to take away the video embeds on the content pages for youtube.

Personally, I haven’t really noticed that drastic of a drop while replacing the frontpage snippet with a bandcamp widget.

So there for to experiment further I have taken away the video from the content pages too. Just to see what kind of impact this change would have.

Posted on August 25, 2014

reasonexperts

View details »

Ok, here I go… I am going to do something NUTS! Back in the days I did an experimental set up where I created like 10 songs at the same time and the result was posted on youtube (all 10 of them iirc).

Now the cool thing with this little project was that I created 10 projects all at the same time and hopped back and forth from project to project to create 10 songs like at the same time.

This idea made me thinking like: what if you would do this “album” style… make like 12 tracks at the same time and create 2 albums at the same time.

Ok, to be fair: that sounds crazy… and to think of it, I can really pull this off if I want to. However: there is the thought of “quantity” vs “quality”. So there for I am not going to take it that far…

However, the initial stage I am however doing right now is creating 2 albums at the same time. The reason for me doing this is simple:

- one is going to be a chilled down album
- the second is going to be hydlide on overdrive

The idea here is to swap to the parts of the album which fit best with the mood I am in right now. And while looking at the parts I have done so far, the overdrive album will be done faster then the chilled one..

The cool thing is that I can put my mind at ease where it is needed, i can relate to the tracks I am working on much faster. And last, I just want to see if I can pull this one off.

Currently I have 2 mean tracks done for the overdrive album, one is prepped for the chilled one, there are 3 pieces are being worked on as I type this.

I’ll keep you guys posted… Awesome times ahead :)

 

Posted on August 19, 2014

music

View details »

In this blog entry I will just clarify a few things on what I am currently working on regarding the future of Reasonexperts. It might get a bit technical at times, but I will try to save most of the technobable for myself.

Bootstrapping

While I have been running this blog (hydlide.nl) for a couple of weeks now with the new bootstrap setup, I am seeing the main advantages while comparing this with the template structure I am running on Reasonexperts.com

To keep the long story short, the look and feel will change in the next few months. Since it makes the maintenance of things a lot easier.

Rewriting older articles

While recently I have already made a large change regarding the categories and structure of the site. One thing I always wanted to do is go over all the content once again and see what bits and bobs needs a complete rewrite.

In the current stage I am doing a complete overhaul on the instrument section.

In addition, I have integrated a new player (soundmanager) on the site as well. Where the initial set up can be seen here:

http://www.reasonexperts.com/reason-rack/reason-instruments/The-Redrum-in-Reason.html

While rewriting the articles, I am also going to add different images and so on. Since I am planning ahead with this.

Getting started with Reason

All this has something to do with a segment called “getting started with reason”. While looking at the current site (and many other like it) there is one big flaw in the set up as presenting it as a “blog” like style. People who get started with the program have no clue where to start…

This is something I am trying to fix. Yet this will be a long term project which may take about another year to fix things.

Thors hammer

Now, this kind of leaves me brick around my leg where I am kind of puzzled what to do with it… Thors hammer is a time consuming project and since the last few weeks I kind of feel like it doesn’t really work out the way it should.So maybe I am putting thors hammer on hold or something, or do this on a slower pass then I am currently doing.Since recently thors hammer has dropped out of my “famous top 25 pages”.  So that also tells me a story right there (kind of like people are not interested enough in seeing another refill project like this).

Posted on August 17, 2014

reasonexperts

View details »

Next in the pipeline for me to release is Thors Hammer Release candidate 18. While Release candidate 16 has been released like 6 days ago (on the 4th of august) I would like to go back to the schedule of bi weekly releases.

I have noticed that it took me one month to compile release candidate 16. And to fairly honest it gets quite harder each release candidate to come up with a new line up.

What to expect for RC18

To keep the productive flow going I am hopping through the different genres and fill up the line up where things are lacking. The Hip Hop leads is something I am focussing on now, next to the House leads and the Psy Trance Pads. So expect those to be filled up once this thing is done.

Other then that I have an additional idea to focus on some glitch / percussion elements since these things are easy to create (if I run out of time that is).

The near future

While I have been releasing new release candidates on a regular basis, I am not sure if it would be wise to continue to spread this any further then it is right now.

Since the release candidates I am releasing currently are just “fillers” of genres that are already present in the current package I would like to finish the complete project by the end of the year and release the “final” version once it is done..

Since the original project idea didn’t really take of the way I wanted it to be like.. since this is just turning out to be “me creating patches”. Thus spreading release candidates to get feedback does not make much sense from that angle.

 

Posted on August 10, 2014

reasonexperts

View details »

With my latest article about benchmarking Wordpress, I left out one specific test. This would be a stress test from multiple directions that would hammer down the server.

While the initial test I am presenting is a single user test. The other tests (multiple users) will show a similar result, while in those cases it becomes more of an Apache issue (since a single html file even starts to show issues).

While benchmarking these, I am using both Wordpress as Wordpress Hijack on the same server. So the configuration is the same.

The tool I am using to measure is jmeter, set on a 800 times request loop. The results are as followed:

Screenshot from 2014-08-03 20:54:27

This is the results of hijack (also named “wordpress-frontend” on github.

The following is the results of wordpress default (using the same configuration and database):

Screenshot from 2014-08-03 21:09:05

Make note that wordpress shows an average of 707 ms per request while wordpress-frontend renders the same content in just 67ms.

Now I know that wp-supercache or w3cache will improve wordpress overall. And what is even more funny is that it gets close to the responds time of my own wordpress-frontend application.

Screenshot from 2014-08-03 21:21:27

This test run does it just 30 ms on average. So from that angle wp supercache will probably win this contest.

But then again, I already have plans for setting up a cache system inside wordpress-frontend. And when that is in place it will be super fast.

Additional

While I have been writing down like an hour ago about setting up a page cache system. It is already in to place. The current page cache system is almost the same one I have been using for Reasonexperts.com

It kind of works like the following:
you have a page, it renders the page the first time and stores the rendered page as an md5 encrypted has file on the hard disk (of the webserver).

The second time the same page is requested it grabs the cached file first and renders that instead (without connecting to the database).

This set up is rather fast (I know that supercache uses a similar set up). The only thing it can cause is an high I/O on the file system.

While ideal would be using memory in stead (memcache for instance). A memcache module is another angle I already planned to do (as you can see in the code of the db object).

However the memcache method caches things totally different.

Here you can see the initial impact on the cached method:

Screenshot from 2014-08-03 22:36:32

Average is 26 ms that compared to the 30ms of Wordpress ;)

 

 

 

 

Posted on August 3, 2014

wordpress

View details »

One thing that I have started to notice while benchmarking is the amount of re-connects that take place while doing a single query.

While in previous object oriented projects I done in the past, I often used a global database object to establish the connection and re-use this all the time.

While in this case I have set up a complete mcv framework for this complete project, which means it uses an abstract db layer to connect to the database.

There is however one minor issue with this set up which I am starting to realize while analysing the my mysql Logs…

280 Connect root@localhost on hydlide
280 Query select option_name,option_value from wp_options
280 Quit
281 Connect root@localhost on hydlide
281 Query SELECT
281 Quit
282 Connect root@localhost on hydlide
282 Query SELECT
282 Query SELECT
282 Query SELECT t.*, tt.*, tr.object_id
282 Query SELECT
282 Quit
283 Connect root@localhost on hydlide
283 Query SELECT
283 Quit

Now this is not that bad since it only connects just a few times. However, ideal would be establishing just one db connection and re-use this every time.

So from this angle, I have been looking at wordpress and how they would do this. And to my total surprise is that they use a global db connection object that gets reused all the time.

Personally, I am against global variables for multiple reasons. However, it is quick to get the job done.

So, for the record: I am using a global right now to re-use the database connection now (since wordpress does this too). However, on the long term, I am going to fix this using a different method, but this may require some rework to get it all functional.

The concept I am going for is to have the abstract db class being a part of the controller instead. It gets instantiated there, sets up the database connection, and once that is done the model will be a part off the controller.

This makes it easier for the mcv to do its thing. It is just something I had to do, but really didn’t consider to do…

So a minor update will be available today (2 august 2014), and the only thing it will update is the model. Nothing more, and nothing less.

To be continued.

 

Posted on August 2, 2014

wordpress

View details »

From this day you can download the complete Wordpress Hijack project I have been working on in the last 2 weeks from my github account located here:

https://github.com/edwinvdheide/wordpress-frontend

The project is similar as the set up I am using right here.

Enjoy!

Posted on August 1, 2014

wordpress

View details »

Lets see here… where to get started. First of all, I have kind of finished what I started to do in the last couple of days. However, the model on how I am putting this thing together needs a change…

And this one will be a different game changer then I had planned before. So bare with me, I will explain:

paradigm

On the left you can see the structure on how things are originally developed. Wordpress gets a separate folder as being the back-end of things, while hijack is just the front-page render part.

While I know that this set up would be ideal, since it separates the front-end (website) from the back end (admin).

However, while thinking about this for existing platforms, this paradigm will totally fail. Since:

- wordpress is most likely installed in the root folder
- no one would want to move the complete installation of wordpress (since thats kind of like murder to do so).

To sort out this issue, I am starting to write down a plan so these 2 things can ride next to each other inside the root folder.

My only main concern here is the way that wordpress uses a rewrite rule to send everything through wordpress:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ –
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>

While my own rewrite rules do the exact same thing. The only thing that needs to be different in this context is, if the directory contains wp-admin (that is the default of the admin panel of wordpress).

So when this happens it needs to redirect back to wordpress.

To make a long story short, I am not going to use the index.php as my own rewrite rule script, I’ll alter this, test it and see what happens.

 

Posted on July 30, 2014

wordpress

View details »

So to keep you up to date (about a project no one really cares about, but I do… since I am all up for this stuff). I have been implementing a straight feature to present a menu:

- build by categories…

Since this is something I personally need… someone else might just want to use the menu builder of wordpress. Unlucky you, this will not be an option in the initial release.

My main goal here is to load up wordpress faster then fuck. And to be honest, I have been looking at the way that the menu structure is build up with in wordpress itself.

It uses a recursive parenting model, and to be honest I against this for now. Since recursive parenting means, the more levels you nest the slower the system gets…

and if you like slow systems, stick with wordpress templates, or either go with a menu build in html that you can control yourself to speed things up.

And this last part is actually the part I am going for. A menu sits inside a separate template file. It can be modified in a notepad editor (why not) and you have your own custom made nested menu done in no time…

Posted on July 29, 2014

wordpress

View details »