The Zibings Starts Here

05 February, 2010

An N2 CMS

As I wrote about earlier this week, we’ll be “forced” to move our company and personal blogs off of the Blogger platform come the end of March this year.  All opinion on the matter aside, we decided this was a great opportunity to test ourselves with N2F Yverdon.

Going in line with that idea, we sat down to catalog the features we needed to replicate from Blogger and WordPress to make the CMS useful to us across multiple instances.  Here is that list:

  • Support for Windows Live Writer and other desktop publishing clients (Atom Publishing Protocol, MetaWeblogAPI, MovableType or Really Simple Discovery)
  • Multiple authors with profiles for each
  • Entry trackback links
  • Comment moderation and spam protection
  • Image upload integration with RTE
  • Pings to services like weblogs.com
  • Atom/RSS Feeds
  • Code Syntax Highlighting
  • Memcached compatibility

The list we have going is a bit longer, but mostly due to it digging down deeper with each of the above features and listing most of the common features you could expect in any useful blogging application.

You may notice that there is no mention of plug-ins.  Keep in mind that for the moment we’re building a system mostly for internal use.  N2F Yverdon is already so easily extensible we basically have a plug-in system already built.  We will be releasing the application somewhere (likely on the N2F site) under the same MS-RL license used for N2F Yverdon.  If any of you would be interested in helping us build a good plug-in system, we’re all ears.

That’s all for this announcement.  It’s looking like we’ll be putting down code as early as next week, which is good if we intend to have this ready for use by the end of March!  More updates to come as they’re available.

 

- Andy

Labels: , , , , , , ,

03 February, 2010

The End of Blogger (At Least For Me)

For the past few years, I’ve been using Blogger as the service powering my blog (and recently it was chosen to power the blog for the company).  It made things pretty easy for me, as all I needed to do was open up an FTP account to the service and let it rip.  Google had announced a while ago that they were phasing out the FTP feature for Blogger.  Since I try pretty hard to ignore Google, I missed this notice.  They were kind enough to send me a reminder email of sorts yesterday, letting me know that sometime in March this year, the FTP feature would be discontinued completely.

In some ways, this is a sad moment for me.  I have enjoyed the service, mostly because of how easy it was to use.  In other ways, this presents itself as an opportunity.  I have no intention of allowing Google to hold onto anymore of my data than they already do, so the thought of switching to a custom domain is just unacceptable.  I’m left with two choices as I see things:

  1. Install WordPress/Drupal/etc to replace Blogger
  2. Create a new CMS/Blog, because the world doesn’t already have enough of these

It’s true, the world probably doesn’t have enough.  A Bing search for ‘free Blog engine’ turns out approximately 17.5 million results, which essentially means nothing.  There are a ton of good-enough solutions out there which I could easily utilize to take care of the switch.  Unfortunately for me, I am – by default – required to be an annoying advocate for my open source framework, the N2 Framework.  We love our little framework so much, we’d rather spend time reinventing the blogging wheel and show it can be done.

So it seems that is what I’ll be doing over the next month or two.  I might be able to rope one or two of the other N2F developers into helping, but I don’t have more than a few extra hours each week that I can devote to the project.  I’ll do what I can to outline our progress here and on the N2F site.  Our goal will be to simply replicate all of the features we have available for us with the Blogger service.  I’ve got two months, here’s hoping this framework works as well as we need!

 

- Andy

Labels: , , , , , , ,

29 January, 2010

Going Back…To Old Methods

I’ve been teaching a very close friend how to program recently.  As we got close to beginning a full-fledged project (which we’ll be starting to show off sometime in February), he gave me a request.  For the most part, I’ve been showing him how to use N2F Yverdon through the lessons because of a pre-existing foundation in PHP syntax.  His request was to go back to the way I “did things before” so he could see where N2F was born.

My immediate response was a simple look of horror and sharp intake of breath.  Get rid of my beloved framework?  Go back to complete manual sanitization for data?  Use mysql_query() calls!?

After I was recovered from the shock, I realized that this is a great opportunity (or excuse) to revisit those old methods and remind myself of the very things that I hope to make unnecessary with N2F.  I agreed to the challenge, and my grin seemed to frighten my friend thoroughly.

To say it will be interesting doing this is probably an understatement, but I’ll be sure to keep you all up to date on the project’s progress.  Has anyone else done something similar?

 

- Andy

Labels: , , ,

24 January, 2010

1 Update in 1 Year, 2 Months?

As I was putting the finishing touches on the new N2F website yesterday, I happened to notice that the release date for Yverdon v0.1 was November 2nd, 2008.  That’s over 1 year and 2 months for us to release a ‘minor’ revision to the framework.  Quite frankly, I was embarrassed at first, that’s a long time for an update that doesn’t really cover a whole slew of changes.

After that initial moment however, I did stop and think about what all has gone into producing this framework.  When Matt, Chris and I originally set out to build this framework from the things we’d learned using an old framework I had built years earlier, it wasn’t something that we were able to piece together over night.  If my memory serves me (which it usually doesn’t), we spent upwards of 8 months just talking about the way the system would work and what things we wanted to accomplish.

With that in mind, I started looking back on the past year and two months that it has taken us to build v0.2.  We’ve spent a lot of time and energy testing out the different pieces of the framework, and we know we still haven’t hit everything.  After all the testing was done (or in progress), we then had to sit down and go through the process of discussing what changes needed and what we wanted to accomplish.  We actually went through this cycle 2 to 3 times before finally getting things to the point where we could release them.

All in all, it’s been a long and busy year.  We hope that the v0.2 release reflects that to those of you who end up using the system.  I promise we’ll try to keep the release of v0.3 under the 2 year mark.  ;)

 

- Andy

Labels: , , ,

28 September, 2009

Updates!

I’m feeling particularly chatty tonight, so I figured I’d give some Zibings updates to those of you who still read this blog.

The Zibings Network
We are well into the rewrite now and are hoping to be testing a new version of the site towards the end of October.  Whether or not this happens will depend a lot on me, but we’re putting as much time into the project as we can afford.  It has become a very large part of the direction we’re looking to take Zibings in general, so the lot of us are doing different things to make the re-launch smooth and worthwhile.

N2 Framework
Ah yes, the framework we love to use so much we can barely spend enough time to do updates!  In a way, we’re really happy that we’ve gotten so busy using it that we haven’t been able to finish doing the v0.2 release, but in most ways we’re just annoyed.  The release is coming still, but I’m learning that setting dates for these isn’t going to be easy while we’re the only main contributors to the code.  Even so, I keep putting some hours into it each week and will hope to release Yverdon v0.2 before the end of the year.

Super Tech Help
The forums are back, and about as active as they ever were.  No real plans have been put forth JUST yet to figure out ways to draw new traffic to the boards, but a meeting is in the works for that exact thing.  I’ll be reviving my PHP tutorial, finishing it eventually, and moving on to another tutorial which I hope won’t take me 3-4 years to complete.

 

All in all, we’re busy-busy here and loving every minute of it, as usual.  I’ll be sure to let you know when things are getting closer to completion.

 

- Andy

Labels: , , , , , , , ,

24 July, 2009

N2F Yverdon: The First Extension!

Ok, so it’s not really the first extension, but it is the first non-sponsored extension that is ‘released’ for Yverdon.  As I detail on the N2F Training blog, I was looking for a CAPTCHA solution and found this gem.  In true fanboy fashion I figured there was no better way to use this than to load it up as an extension in N2F Yverdon.  Within 10 minutes I had it working and packaged for distribution.  If you’re using Yverdon (should work with any version we have out) and need a CAPTCHA, go ahead and download the extension and unzip it to your root Yverdon directory.

 

- Andy

Labels: , , , ,

22 July, 2009

100 Posts!

After getting back from a bike ride with my dad, I noticed that I’ve made 99 posts on my blog.  As I sit here and attempt to pretend that my legs don’t exist, I thought I’d just go over a few things that are happening in my life, with Zibings, family and anything else I can think to include.

Back In The Saddle
As I just mentioned, I’ve come back after a bike ride with my father.  All told I racked up about 18.4 extremely painful miles while Dad logged around 16.4.  The reason for the difference lies with how horribly out of shape I actually appear to be on a bike.  Within the first 2 miles of the trip, Dad lost me completely.  Oh well, it’s bound to happen when you haven’t really touched a bike in 9 years.

N2F Yverdon
After my busy day today I didn’t get to do this tonight, but tomorrow I am tentatively scheduling the debut of our RC (Release Candidate) for Yverdon v0.2.  We’re getting some new people to help with testing and are hoping to be out of RC with a new site before the end of next month.  Exciting for us!

The Zibings Network
We’ve been plugging away at a few milestones on the project as well as working on adding some new team members.  We have a designer coming on board, hopefully two new developers as well as some management switches.  All in all, we’re happy with the progress and will be even happier once we start having updates to show off to the world.

 

It’s been a pretty crazy month and it seems like months more crazy are coming up soon.  Thanks to everyone who’s been reading the blog, here’s to another 100 posts!

 

- Andy

Labels: , , , , , , , ,

04 July, 2009

N2F Yverdon: v0.2 Database Testing Update

We’ve been at it for a little while now and are finally wrapping up the tests for our new database extensions.  The MySQL and MySQLi extensions have had their test sites completed and ctd1500 and I are working on finishing both the PostgreSQL and SQLite sites.

One thing that’s become clear to us is that our testing methods are relatively simple and probably will have missed some functionality as a result.  This first set of test sites will be very simple for the sake of saving time and getting us to v0.2 a little faster.  As we do more detailed work with the different database engines, we’ll work on expanding the test methods for our database extensions.

Until then, we’re just happy to be moving along with v0.2.  Last night I also began working on the new layout for the N2F site and I have to say I’m really excited.  The look and feel is much more modern and fluid, I hope that you all like it!

 

- Andy

Labels: , , , , , ,

26 June, 2009

N2F Yverdon: v0.2 Dev Released

After well over a month (heck, almost two) of internal testing, we’ve nailed down enough of the bugs that we are comfortable releasing v0.2 to the public for testing.  This is a development release and will still have bugs so should probably not be used for production development.  As always, you can find the downloads on the N2 Framework website.  Enjoy!

 

- Andy

Labels: , , , , ,

21 June, 2009

Well That’s Interesting…

For a while now, I’ve been meaning to start dabbling with regular expressions in C#.  I’ve held off though, mostly because I just haven’t had the chance to really get into anything with C# in depth on top of work and family.  At this end of this past week, Zibings finally got started on a very long-awaited project which will be done in ASP.NET, and in starting I found myself needing to port my old (almost 11 years old) email validation algorithm from C++ to C#.  I ported this to PHP years ago, and it works beautifully there, but porting it to C# offered me the ability to tweak the algorithm to work with some new tools available in .NET.

I went through, and first did an almost exact port of the script.  It worked, but I thought I should check it’s performance.  It seemed to be slow, so I tried a version of it using C#’s List datatype.  This seemed faster, but I thought I could do better.  I asked for a bit of help from some nice people on FreeNode’s ##asp.net channel (specifically Kim^J) and was given a pretty blazingly fast regular expression version.

Even so, I felt that it was odd you couldn’t create something that didn’t use a complex system like regular expressions which outperformed regular expressions, so I went back and started tweaking my List and Manual versions of the validation routine.  After a lot of work, I actually have made both into something consistently faster (on average) than a comparatively accurate compiled regular expression.  Before I go further, here’s a sampling of the rather consistent results:

Benchmarks

Also, you can view the entire source code of the .cs file here.

The three ‘algorithms’ are each enclosed in their own class.  The only difference between the List and Manual classes is that instead of using a List collection to store and search acceptable characters the Manual class simply traverses an array of the characters.  Otherwise, they should be identical in the logical patterns they use to verify that the email address and domain name are valid.

The regular expression is almost entirely based off of one readily available at this site, so if anyone out there has a pattern they know to be better/faster that should be tried I would love to hear about it, I am not a RegExpert in the least.

The above image was the result of the source code I’ve uploaded, and are derived from running three emails through a test 500 times, taking the average, and then running through again.  All told, the above test did validation of 15,000 email addresses (but of course they were the same 3 addresses).  I have run the test with a few as 5 attempts and as many as 50,000 attempts.  Regardless of the number of attempts or how many times I tell it to run the test, the order is always the same.  First and fastest is always the List version, second and mostly consistent is the Manual version and the Regex version ends up in last place by various margins.

I’ve always known it to be general knowledge that doing things by hand are faster from a computer’s perspective.  Interestingly enough though, this actually proves that at least in C#, that’s not always true.  The List approach uses a supplied method, the Contains() method, to search for the existence of a character within the List instead of looping through the entire list and bailing out when the first match is found (as the Manual approach basically does).

It should also be noted that just because the computer has an easier time handling the List/Manual methods, doesn’t mean it’s necessarily faster.  Most people are not going to be trying to validate 50,000 email addresses in a few seconds regardless of what they’re doing, so the time that I took writing this algorithm all those years ago (and today) were really wasted in a sense, as it would take a very long time to make up the time in saved milliseconds.  Regardless, I had a lot of fun working with Kim^J to look into the possibilities here.

If anyone finds anything that could help any of the algorithms become faster (and remain accurate), I’d be really excited to hear about your ideas.  Thanks again to Kim^J for the help with the regular expression version and with the test code.

 

- Andy

Labels: , , , , , , ,

18 June, 2009

N2F Yverdon: Tested On…

Just had a quick discussion in IRC and found out that we’re already tested as working on a few different environments:

- WAMP
- WIMP (IIS 5.1, 6, 7 & 7.5)
- LAMP
- MAMP

Still waiting for confirmation on Lighttpd but I don’t see why it wouldn’t work.

Not bad really, but I guess that’s more to PHP’s credit that it works so consistently over all the different environments.  Cool times, thanks for the testing guys!

 

- Andy

[Update]
Confirmation of Lighttpd has been received, thanks Anthrax.

Labels: , , ,