Archive for the ‘Software Applications’ Category.

Russian Government going Open Source…and the future

Well, I have seen governments claim they are going to open source before, but not from Russia, and not with such a realistic plan to migrate over a few years.

Here is a link to the article via Google translate:

Putin ordered the transfer of power on Linux

The now

Business drives software development.  Open Source communities help, but even today much of the ongoing development for Linux is driven by businesses such as Red Hat and Novell and others.  If you think your Linux code is being written by unpaid developers in their spare time, you are somewhat correct but only partially.  Most changes are made by developers who are paid.

While communities are nice, they can’t match the hours or output of experienced developers working forty to sixty hours a week.

Looking Ahead…the Apps…and C# (Mono)

The more open source is used in business, the more development power it will have.  But it is not the open source Operatings Systems that prevent people from moving to Linux or BSD.  Ubuntu, SUSE, Fedora, CentOS, PC-BSD, and numerous others are all very usable desktops that are user friendly.  It is the software that runs on them that everyone is waiting for.

The market is already there to make millions extra if you application runs cross platform, one Windows, MAC, Linux, and BSD.

But most the applications written for Windows, the business desktop of today, are using .NET Framework. So naturally those companies are going to want to make their code cross platform.  And they are going to find it is easier than they thought to move their applications between platforms using C#.  I have recently decided that C# is the future of applications on all platforms.

Some MAC and Linux users don’t like Microsoft and will fight off the idea of a Microsoft provided development platform such as C# (Mono) on their systems.  But when a corporation decides that you must run software X, and software X requires .NET, and you have to either give up your MAC or Linux box for a Windows box, or use C# (Mono), then users will come around.

If you are a company writing software for Windows only today and using C#, you need to take a look at Mono. Even if the return on investment of developing a C# (Mono) based version of your product is a slight loss to break even, it is an investment in the future.  Once written, maintenance costs will be less than the original development costs and that slight loss to break even margin will turn to a small profit.  And with the experience, you next app will migrate to C# (Mono) that much easier and soon, all you apps will run anywhere that C# (Mono) can run.

This is going to take off in a way Java hasn’t because developers for windows prefer and will continue to prefer .NET over Java.  And when it comes to business apps, Java just isn’t the language of choice.  Business applications are written in C#.

Utah Open Source Conference 2010

Hey all,

The Utah Open Source Conference 2010 was pretty fun.  It was really my first open source conference.  Yes, I have been into open source for 10 years, specifically FreeBSD, but somehow I haven’t really attended the conferences.

I will probably attend conferences more often.

What was there about FreeBSD?

PC-BSD and the folks as iXSystems sent me with some swag.  Howard Logsdon helped me man the GUBUG booth.

There was a great presentation on FreebSD Jails given by Chris Edwards. (http://www.utosc.com/presentation/157/) Supposedly they are going to post a recording of the presentation. Until then, check it here: (http://wiki.zelut.org/doku.php/presentations:freebsd-jails)

Who else was there?

So Novell SUSE brought some nice laptop bags, and they were pretty good.  I have a nice Ogio laptop back pack, so I am giving this laptop bag to my wife.  It is just big enough to fit her 17″ HP laptop.

There was Fedora, Ubuntu, KDE, and GNOME.  There was a boot on XDMC and MythTV.

There was a very cool company there called Fusion-IO.  They have an awesome hard drive, though they are not cheap. 7k for the cheapest drive. But for some companies, it would be worth it.
When is the next Conference?

You can go here to see upcoming events: http://www.freebsd.org/events/events.html

There is the Meet BSD California 2010 conference November 6 and 7th.

To see when the next Utah Open Source Conference is you should go to the site and register so that when the date is announced, you will be informed.

Blogilo: Writing a post using Blogio, a KDE app on PC-BSD

Hey all,

I decided to try a post using Blogio. Supposedly it is a nice tool where I can write my blogs offline, save them locally, and post them when I can.

So lets see how some of the features work.

This is a heading 1

However, after creating heading 1 and then hitting enter, it did not make the next line’s type to Paragraph. I changed it to paragraph and it was still wrong. I had to click Html editor and then click back to the visual editor to make this work.

This is a heading 2

Same problem with heading 2.

Here is a quote

Ending quote was easy. Just hit the quote button again with the mouse.

  1. This is a numbered
  2. list of items
  3. And we will see if it works.

The font size works, except not for headings.

Well, I am going to be using SilverStripe in a few months. I wonder if it will integrate with that.

Update: There was an issue where when I published this, it didn’t show up right away and said it “missed schedule” whatever that means.  I updated it and now shows up.

An interesting Artic: Unix's Revenge

The article is titled Unix’s Revenge and it was quite a good read.

Here is a quote:

Now we’ve entered a new decade of devices where Unix(-like) operating systems will, on a CPU basis, probably out-install Windows. Not only is iOS based on Unix, but Android and MeeGo and even Bada are based on Linux as are QNX and WebOS. Google, Apple, HP, RIM, Samsung and Nokia are all now betting heavily on Unix or Unix-like implementations. The success is so overwhelming that there are really only two hold-outs: Microsoft and the rapidly depreciating Symbian.

Read the full article here:
http://www.asymco.com/2010/09/29/unixs-revenge/

A brief history of my computer life…

Hello. I came across this post on the FreeBSD forums:  How you did you come FreeBSD world?

I started to respond but I felt my response was too long to put in a forum comment, so I am sticking it here on my blog.

A brief history of my computer life

My family had an Adam computer that ran on tape drives when I was young, boy was that Buck Rogers game and that Pong game awesome back then.  I did my math homework in a primitive text editor when I was in 4th grade (1986), even though it was harder than doing it with a pencil. Then at some point we got a 286 running DOS, which migrated to LeMenu, then to windows 3.11.  I remember hacking around Windows 3.1.1 just learning how the system worked.  Once moment, I would be gaming, the next, just looking at why the game installed the way it did, how the system was laid out.  At some point my family got a 386.

I remember getting online for the first time in 1994 with 14.4 modem. I remember windows 95. King’s Quest (1-6) were my favorite games.  At school I had programming and graphics course, all on Apple of some sort.

In 1995, I had a semester at the University of Utah which included one programming class. All their systems were unix based and we emailed using pine.

I didn’t touch computers much from 1996-1998 because I served a mission for my church in the Dominican Republic.  When I got back, Windows 98 was out and I earned enough to buy a computer. Technically it was the first computer that was “mine” because all the ones I had used before had belonged to my family or my school. StarCraft replaced King’s Quest as my favorite game.

In 1999 I took some MCSE courses. Around the same time, Microsoft outsourced their tech support for Windows 2000 to a company called Convergys.  This was in Orem, Utah. There was a guy there talking up Red Hat who gave me a Red Hat 6 CD. I told him to install it an get on the internet in under an hour.  It installed fine. But we never got it on the internet.  Turns out he was a newbie.  I played with Red Hat 6 for a week and never got Red Hat online. I was a Windows 2000 support guy anyway, right…I did get my NT 4.0 MCSE.

Well, Nortel Networks outsourced their tech support to the same place, and I jumped over there.  I guy named Joe introduced me to FreeBSD 4.6.

At some point, I convinced my brother to drop windows servers and use FreeBSD for his servers at his ISP, Psionyx.net (now FusionNetworks.com).

I then started www.bsdcertification.com, however, I was new to the BSD world and not really well-known and some other well-known members started www.bsdcertification.org a few months later, completely unaware of the effort I had put in.  At first I was irked and felt like they stole my project but I eventually got over it and turned my website over to them and now I am probably going to proxy exams at the upcoming UTOSC.

I got a job at LANDesk in 2004.  While it has an Agent for Linux/Unix it is pretty  much a windows tool.  I have really kept up my Windows knowledge and though I haven’t updated my MSCE, I probably have enough knowledge and experience with windows to be considered an expert. A year ago I became a developer with LANDesk and we do most everything in C# (though I get to touch legacy C++ code), so needless to say I use Windows 7 at work. I have really nice dev box running Windows 7 that is a VMWare host, and they give me a laptop with Windows 7 on it too.

So I’ve never really left Windows in the desktop world completely. I have a FreeBSD desktop and a FreeBSD server.  Actually, my work gives me a license for VMWare so I have dozens of virtual machines that I continue to use and test all kinds of platforms on, with FreeBSD being my open source platform of choice.  Twice I have gotten a FreeBSD server into production at LANDesk, once as a internal knowledge base, once as an SVN server, neither lasted.  I did become the subject matter expect for the LANDesk Linux agent and the LANDesk Linux-based appliance called the Management Gateway.

I am typing this on my work provided laptop that is running Windows 7.  I have a Remote Desktop session to a decently powerful computer that is also running Windows 7 and is a VMWare Workstation host (BSD is not supported as a VMWare host). As VMWare guests,  I have two FreeBSD VMs running currently and about a dozen freebsd VMs that I create for learning. Eventually, I delete them once I have learned what I created them to learn.

No I haven’t found a permanent FreeBSD project to call my home.  I keep dabbling here and there.  Mostly, I just document my learning, but eventually, I want to develop some BSD-related project.  It would also be awesome to have a job focused on FreeBSD.  However, I am way more than happy at LANDesk and I had an opportunity to leave for a Linux training company and I came close to doing so, but I just couldn’t leave a great company like LANDesk.  So the LANDesk and Windows world remains my work life, and FreeBSD remains one of my hobbies.

Drupal, Joomla, WordPress, SilverStripe, or other, which Content Management System (CMS) is best for a BSD user?

Choosing a Content Management System

Ok, so as today, August 26, 2010, my blog is hosted by WordPress.com.  It will be this way for some time.

However, I am probably going to eventually have my own server hosted somewhere. Probably with my brother’s company, Fusion Networks.

So I will probable build a FreeBSD server that will host my site.  At this point, I think I will stop using WordPress and use a different Content Management System.

Content Management Systems Lists

So I went into this having done reasearch before, so I knew what I was getting into.  There are plenty of different Content Management Systems and unfortunately there is no way I could find time to test them all.

Wikipedia had a great list of Content Management Systems.
http://en.wikipedia.org/wiki/List_of_content_management_systems

Ok, now that  you have seen the very large list of Content Management Systems, you realize that I have to narrow my list down without really testing them all.

Narrowing down the list

First, let me document what I would like and see if which fit into the list.  These are not in order of priority, and some are important and some are not.

I want it to

  1. use PHP
  2. have a large community
  3. use a BSD License
  4. use Postgresql (as it is BSD licensed and MySQL is not)
  5. import my existing WordPress blog
  6. have great feature sets
  7. have common plugins
  8. support multiple Blogs with one install
  9. manages website as well as blog
  10. manages multiple sites
  11. have a descent editor
  12. be well documenated

PHP-Based

They have their lists separated  into tables by programming language.  The PHP table has the most options and since I for sure want to use PHP, it is the only table I will focus on.  These tables even lists the license.

However, I did look at the other tables, just in case one was mostly PHP-based but didn’t show up in the PHP list.  For the full PHP list, go here:
http://en.wikipedia.org/wiki/List_of_content_management_systems#PHP_2

Large community

So the big three Content Management Systems seems to be these.  I don’t have any data to back this up.  I think this is just because these three seem to be more mentioned when doing Google searches.

  • Drupal
  • Joomla
  • WordPress

BSD Licensed

However, none of those are BSD Licensed, which I prefer. I am not opposed to GPL or LGPL, but I feel more comfortable with BSD licenses software.

The Content Management Systems that are PHP-based and use the BSD License are these:

Had one of the Big 3 been BSD licensed, my decision would have probably been easy.  However, obviously I am going to have to test some of the three BSD licensed Content Management Systems.

Supports Postgresql

Of the six Content Management Systems listed above, the following support Postgresql.

  • Drupal
  • Serendipity
  • SilverStripe

Can import my WordPress blog

It appears that they all can do this.

I am worried about links, however.  My blog entries often link to each other.  I question whether they do it perfectly.  For example, a link to one of my WordPress blogs might be this:

http://rhyous.com/2010/08/25/freebsd-now-has-the-service-command/

So the link has this format:

http://homepage/YYYY/MM/DD/name-of-blog-entry/

So if I go with something other than WordPress, then after importing my blogs, are all the links going to be broken?

Making the Decision

So here is the rating, after a very small overview of the different CMS web sites, and before verifying their marketing claims.

I am giving 0 to 3 points for each feature. (This is subject to change over time, should I want to come back after the decision and report on something).

Features Worpress Drupal Joomla Serendipity SilverStripe Pimcore
1. PHP-Based 3 3 3 3 3 3
2. Large community 3 3 3 1 1 1
3.BSD License 0 0 0 3 3 3
4. Postgresql Support 0 3 0 3 3 0
5. Imports WordPress 3 1 ? 1 1 ?
6. Great Feature set 3 3 3 1 3 ?
7. Has common plugins 3 3 3 3 2 ?
8. Multiple Blogs 3 3 3 3 2 ?
9. Manages Website as well as blog 3 3 3 0 3 ?
10. Multiple Sites 2 3 ? 0 3 ?
11. Editor 3 3 ? 2 3 ?
12. Documenation 3 3 ? 1 3 ?
Score: 29 31 ? 21 30 ?

Here is what I am going to do:

I am going to build a BSD, Apache, PHP, Postgresl virtual machine and test Drupal and Serendipity to see how the import goes.

Perhaps I will have a follow-up some time because:

  1. I have to test these different CMSes
  2. I am sure there are a dozen other items that should be scored 1-3 that I haven’t thought of.

Serendipity

I started out looking at Serendipity first.

Positives

http://rhyous.wordpress.com/wp-admin/post.php?post=2212&action=edit&message=1
There was a FreeBSD port.

The install was painless.

Negatives

Their web site didn’t seem very good, which is a big turn off for a company that is a CMS.

The links to their Forum on their web site and other pages were broken.  I did find that the forum does exist, so the links are just broken.

I tried to sign up for the Forum to report the broken links.  I registered, but was supposed to be sent a confirmation email, which I never received, even after re-requesting it, so I have never reported the broken links.  They are still broken a day later. Also, there appear to only be a handful of people on their forums at any given time. Both suggest they have a small community.

I couldn’t figure out how to design my home page. It seemed the blog was my home page.  I couldn’t figure out how to move my blog entries to a different page.

Result

If you want one blog and nothing else, this would work for you.

I need more. I stopped trying and have dropped Serendipity from the list.

SilverStripe

I looked at SilverStripe second and I way more pleased with its feature set.

Positives

Though I had some install problems, I found solutions on their forums.

There are a number of theme available for download.

The default web site had some common pages premade:

  • Home
  • About Us
  • Contact Us
  • Page not found

They had both Site Management and Blog management.

There are many extensions: modules, themes, widgets.

Modules include a Blog Modules and Sub-site module, so I could manage multiple sites and multiple blogs.

It is simple to download and install modules.

The user interface is simple and easy to use.

The documentation is sufficient.

Negatives

I had install/setup problems (that were resolved) by the Forum.  Supposedly they only occur with Postgresql.

Not a lot is included in the default install.

The community is smaller than I would like.

The documentation is only sufficient.

Conclusion

I really like the SilverStripe interface.

It had almost everything I am looking for.  It is BSD Licensed.  It supports Postgresql.

It is a Content Management System first, and has modules to add to it.  There a blog module, a multi-site module, which really interested me.

However, while it has a module to import a WordPress xml, I have yet to get it to work.  That is something I can live with, but I would prefer it to work.

Drupal

Positives

It has many features, and any feature it lacks is pretty much filled by an add-on or widget.

The documentations seems thorough.

The community looks to be large.

Negatives

I had to install a different version of wordpress to support multiple blogs.

It is GPL instead of BSD Licensed.

The admin site seemed rather overwhelming. There were almost too many options.

Conclusion

If this were BSD licensed, it would be my pick.  It seems great.

WordPress

Positives

It is popular and familiar.  The most common platform of the blogging world.

It has many features, and any feature it lacks is pretty much filled by an add-on or widget.

Migrating from my existing WordPress blog is flawless.

The community is huge.

The documentation is a plenty.

Negatives

It doesn’t support Postgresql.

It is GPL instead of BSD Licensed.

Joomla

I almost feel like apologizing to Joomla.  I had two BSD servers, one with FreeBSD, Apache, PHP, MySQL where I installed WordPress a year ago for testing.  I have another brand new server with FreeBSD, Apache, PHP, and Postgresql where I tested all the postgresql capable CRMs.  However, I installed Joomla to the wordpress server and it just didn’t work.  The page was blank.  I actually think there was a php error, not a Joomla error.

Unfortunately, Joomla doesn’t support postgresql, it isn’t BSD licensed.  I did research and it appears like it would score high with WordPress, Drupal, and Silverstripe, but I can’t really see how it would be any better than Drupal, or Silverstripe so I really had to cut it loose.  Lets be honest.  As a BSD users, it was beaten out by Drupal and Silverstripe for the same reason I am looking to replace WordPress.  It doesn’t support Postgresql.

Others

There are two other Content Management Systems that I feel are worth mentioning.

Django is also a CMS that is BSD licensed and supports Postgresql. However, it runs on Python, a language which I have occasionally touched but never really developed in.  If you know Python, this might be the choice for you.

Bricolage is also a CMS that is BSD licensed and supports Postgresql. However, it runs on Perl, which I have written a few things with, but not as much as PHP.  If you know Python, this might be the choice for you.

My Decision

I know, you all want to know which I chose to use.

Drumb roll please….

I have chosen…

But don’t expect my blog to move to Silverstripe tomorrow.  It move slowly with things like this.  It could take months or get delayed for a year.

Anyone who might choose a CMS differently would be completely happy with any of the others they evaluate and feel meets their needs.  I am not saying I chose the best.  I am saying I chose the best for my needs.  Hopefully, you know your needs and this will help you choose the best Content Management System for your needs.

The Utah Open Source Conference – October 7th, 8th, and 9th

Hey all,

I am going to be attending the Utah Open Source Conference and manning the BSD table for maybe part of or the majority of the time.

Here are some details:

There will probably be some BSD swag if you attend, courtesy of iXsystems and PC-BSD.

You can schedule a BSD Certification exam if you desire.

Hope all you computer geeks in Utah can attend.

If you aren’t into Open Source, then then this conference is especially for you. If you don’t know much about Open Source, then you are missing out.

If you are into Open Source, then you probably know about this conference already.

Comments on 7 Reasons to Switch to the Dvorak Keyboard Layout

Ok, so I recently read an article that had seven resason to switch to the Dvorak keyboard layout

I will list the authors reasons and comment on them.  Please see the original post for the complete detail:
7 Reasons to Switch to the Dvorak Keyboard Layout

Reason 1 -QWERTY was designed for the typewriter, not the typist.

This is true.  But I am not a typewriter or a typist.  I am a developer.  While the Dvorak keyboard is probably faster for a typist that writes normal words and text, is it faster for a computer programmer ? Maybe.  Is it the fastest possible layout for a programmer?  I doubt it.

Also, a semicolon is common for programming languages and in QWERTY, it is on the home row.  In Dvorak, it is not.  Dvorak makes some common programming keys harder to reach.

So no, Dvorak was not designed for a programmer.

There is a programming version of the Dvorak layout: Programmer Dvorak layout.

This may address some of these issues.  Is that what the article intends? I don’t think so, because I couldn’t find an option on Windows 7 64 bit to use that layout.

Reason 2. Dvorak increases your speed.

Also, you forget about people who don’t really type that much, or that type the special keys of a programming language often.  Think of all the keyboard shortcuts.  CTRL + C, CTRL + P, CTRL + A.  WIN + E, WIN + D, etc…

Look at this quote from the article:

70% of keystrokes are on the home row; 22%, on the top row; 8%, on the bottom.

Does a programming language have the same the percentages?

So really, shouldn’t there be a separate keyboard layout for programmers than for typist?

if (keyboardLayout == sucks)
{
    DoChangeLayout();
    DoLearnKnewLayout();
}
else
{
    IgnoreTheSuck();
}

Reason 3 – Dvorak lessens your mistakes.

I have to agree, that having the most common keys on the home row might decrease mistakes.

However, many of my mistakes are usually due to the really far away keys, such as _ – + | \ } ] ~ ` ^ and both layouts leave those characters in the same place.  What if there was another button, like Caps Lock or SHIFT or CTRL or ALT, that moved those characters to the home row.

Reason 4. Dvorak is more comfortable and better for your health.

I think I agree with this.  I wonder if people with Carpal Tunnel Syndrome could be prevented or lessened by this.

I do have to say that a natural keyboard helps but is not enough.

A better shape for a keyboard would be if the keyboard were cut in half and the two piece leaned together like this: /\

Or maybe some type of ball with keys:  ( )

Reason 5. Switching to Dvorak is easier than ever.

Really.  I think it is harder than ever.  I agree that some of the features mentioned make it easier in ways, but other features, such as keyboard shortcuts make it harder. When I switch to Dvorak, does my keyboard shortcut keys switch too?  Unfortunately no, they don’t.

Until that is fixed, it is going to be difficult to move.

Also, I have used QWERTY since i was 7.  Yes, in 1983 my family had a computer and a digital typewriter. Both were QWERTY.  So after 26 years of using QWERTY, it is not easy to switch to anything.

Everybody has a computer.  Sometimes you use a friends computer. Of course they use QWERTY, so you have to remember how to use that.  Or if you have to fix someone’s computer.  Or worse, you remote control someone who is using QWERTY but you are using Dvorak.  How would that work?

Reason 6. Dvorak is cool.

Is this really a reason?  This is an opinion.

And this quote is just silly.

You’ll also be in the company of some cool people, including Bram Cohen, inventor of BitTorrent; Matt Mullenweg, lead developer of WordPress; and Barbara Blackburn, world’s fastest typist.

Yeah, but if I use QWERTY, the company is even that much better since it encompasses 99.99999% of the English typing world, right?

Reason 7. Using Dvorak is a noble cause.

Ok, so digging wells in Africa is a noble cause.  Manning a soup kitchen in your spare time is a noble cause.  But using a different type of keyboard than everyone else is just annoying. Sorry.

My Experience

Ok, sorry to rag on this article, but I tried Dvorak for a while and I am less than impressed.

Lets get down to what we really want.  We want to be faster at typing whatever it is we type. We want to have more comfort when we type.

My Keyboard Gripes

  1. Why is the spacebar so frieking wide. Why can’t it be half the size, so my thumbs can be used to push CTRL or ALT or the Windows key or SHIFT. Why do both my thumbs need access to the space bar?
  2. My hands do not fit well on a keyboard. Not even an ergonomic or natural keyboard. A better shape for a keyboard would be if the keyboard were cut in half and the two piece leaned together like this: /\I can’t find one.
  3. There should be a mouse pad, like on laptops, but directly below the space bar. Why do I have to have to separate interface devices that are both inefficient.  Taking my right hand away from the keyboard to use the mouse is one of the biggest faults of keyboards.Oh…there is: http://www.newegg.com/Product/Product.aspx?Item=N82E16823166076&nm_mc=OTC-Froogle&cm_mmc=OTC-Froogle-_-Keyboards-_-Adesso-_-23166076

    But is there an ergonomic version? I guess so.
    http://www.newegg.com/Product/Product.aspx?Item=N82E16823166028

    But they are expensive.

  4. As a programmer, I want to be able to have one key for these three keys: ();Most the improvements in speed for programming are in the IDEs and so the keyboard layout is becoming insignificant.  Especially with IDEs with Intellisense.

Maybe you like Dvorak and maybe you have never heard of it.  Either way.

All right.  I am done rambling.

StarCraft II available for predownload

I am downloading StarCraft II right now.

Supposedly you can download it, then purchase your activation key online and install and activate tomorrow.

It is available for pre-download here.

http://www.starcraft2.com/

7 Free Open Source Manuals…

7 Free, Open Source Tomes For Your Edification

Quote:

While the actual manuals and documentation you get with many open source applications and platforms can be underwhelming, the good news is that there are a lot of free, online books on open source topics available. We round these up on a regular basis here at OStatic, and in this post you’ll find seven online books that you can get comfortable with quickly. They introduce essential concepts for getting started with Linux, Firefox, Blender (3D graphics and animation), GIMP (graphics), the OpenOffice suite of productivity applications, and more.

EndQuote

Notepad++ and the XML Tools plugin

Ok, so I do a lot with Xml files.  Between working with my company’s product LDMS and all the Xmls it uses, to my own code using Serialization, I seem to always have an Xml file open.

I hate it when I open and Xml File and it is all on one line.  Or every element is a separate line but not a single line is indented.

Visual Studio can fix these for me rather easily.  But I have a lot of different machines in my lab and often work in other’s labs, or on customer’s computers while remote controlling them for support reasons. I can’t just quickly download an install Visual Studio. While yes, there is a free Express Edition version, it is just an overkill for the simple job of making an Xml file look pretty in text.  I need a small simple, quick to download and install tool.

The solution was right in front of me the whole time: Notepad++ and the XML Tools plugin

I always use Notepad++ as my random text editor on windows.  I already use its Compare plugin constantly, so I am very familiar with it.  It finally donned on me to check if it had an plugin that could help me with Xmls and sure enough, it did.

The XML Tools plugin, has almost all the features I wanted.

Notepad++ is just over 3 megabytes and download rather quickly.  The XML Tools plugin is not installed by default but can quickly be installed using the Plugin Manager.  Don’t worry about the additional download, the XML Tools plugin is only just over 300 kilobytes.

So I can now prettify my Xml files with a small, quick to download and install, windows tool.

Here is the menu this plugin provides, so you can see a list of some of the features.

So the Pretty pring (XML only – with line breaks) will take an Xml that is all on one single line, and expand it to have line breaks and also give it the proper indents.

There is also a tool to make sure the Syntax is correct.

The only feature I want that it doesn’t have is a tool to sort child elements and attributes.


Copyright ® Rhyous.com – Linking to this page is allowed without permission and as many as ten lines of this page can be used along with this link. Any other use of this page is allowed only by permission of Rhyous.com.

NSIS or WiX?

Hello everyone,

I want to do a quick comparison of NSIS and WiX.  Of course, NSIS creates and executable and WiX creates an MSI, so there will have to be some discussion about whether there really are any benefits to an MSI over an EXE installer.

As many of you know, I work for LANDesk.  In 2008/2009 I developed a plugin for my company’s software.  I built the plugin in C#.  I used Visual Studio to create the plugin.

I wanted an installer that created the install package whenever ran a build in Visual Studio.

I succeeded in doing this using NSIS (Nullsoft Scriptable Install System).

Ok, so since I have a nice working solution, I am not going to change my plugin to use a different installer, even if my NSIS and WiX evaluation shows WiX to be better.  However, on future projects where a solution isn’t yet in place, or when recommending  a solution to others, I may decide to use the better one of the two.

P.S. If there is a third installer tool that is free that you think is better, feel free to comment about it.

Also, I obviously bit off more than I can chew with this post, so it is unfinished.  Of course, there is no reason that new experiences can’t lead me to update this or that comments cannot help me finish this.

NSIS (Nullsoft Scriptable Install System)

NSIS is script-based.

See the list of features here:
http://nsis.sourceforge.net/Features

It also has a lot of users.
http://nsis.sourceforge.net/Users

For my plugin, I actually created the .nsi script by hand the first time and thought it decently complex. However, shortly thereafter an Eclipse plugin was created, and I created a sample with the Eclipse plugin and modified it and it is rock solid.

Anyway, now I have a project that included my .nsi file, I was able to use the command line tool, makensis.exe, to run with two parameters: the .nsi file and the output file name.

"C:\Program Files\NSIS\makensis.exe"  "$(ProjectDir)Installer\LANDesk Support Tools.nsi" "$(ProjectDir)Installer\LANDesk Support Tools_Beta_6.exe"

I am extremely happy with NSIS.

I like it for the following features:

  1. It was easy to use (especially with the Eclipse plugin)
  2. It created a small installer.
  3. It runs silently when passed the -S parameter.
  4. There was lots of documentation.
  5. There were plenty of add-on features.
  6. I had the option to include all files in a folder in my installer or specify the files individually (same with the uninstaller).  This is nice because if I create a new file in a folder that is already picked up by the installer, I don’t have to change the installer or uninstaller at all.
  7. Support for other languages was rather easy to add into my installer.
  8. It was simple to integrate with Visual Studio (add a single command in the post-build section).
  9. Notepad++ has colored syntax for it (though unfortunately Visual Studio does not but I was able to change the default tool to open it with to be Notepad++)
  10. It has an intuitive method for creating Install Sections.
  11. I can provide my installer script open source and anyone who wants to can edit and rebuild the installers
  12. The NSIS community is huge.
  13. You don’t need to be a developer to learn to use NSIS (I gave it to two non-developers and they had solutions in little time (less than two days of work).

Some Negatives…

  1. I couldn’t quickly find a way to automate the installer with a progress bar, only completely silent.

Windows Installer XML (WiX) toolset

Ok. So I’ll be honest.  I am not on the MSI bandwagon.  What features does an MSI really give me.  I find that most people say the prefer an MSI when when pinned down, they are using basic features that NSIS provides ten times easier and when they need a more complex feature, they are writing a custom action and adding it to the MSI which is not any better than adding a custom action to an NSIS installer.

I hear arguments about it being easier to push and MSI with Active Directory, but if you can’t push a .exe with a /S parameter just as easily with Active Directory, you are probably not a very versatile AD administrator. Not to mention AD is not a very good software distribution tool to begin with. Most Desktop Management tools, such as LANDesk, are much better for the job. Besides, LANDesk and the competitors all push EXEs just fine and just as easily as they push MSIs, so the whole MSI vs. EXE is just not really a big deal like some may have you believe.

The one big deal is that MSI is a standard and so every MSI will have some default features.  These are quite good:

  1. Mostly the same command line parameters for all MSI files everywhere (though you can add more and man properties can be changed with command line too)
  2. The ability to change a property in the command line.
  3. The ability to change a lot of properties in a transform file and call the MSI with the transform file.

But are those features really an improvement on NSIS.  For example, NSIS uses the /S switch to silence and install, which is just as easy as use the /q switch for an MSI and actually a lot of installers use /S so it is very common.

Is it really easier to create a property in an MSI than to just add a supported command line parameter in an NSIS installer.  Maybe not.  However, if a public property exists, a user can change it even it the developers didn’t really know a customer would want to do that.  With NSIS, there is no such ability.

Some negatives

  1. Documentation is scarce and when it is there is scattered.
  2. Most large installers cannot be completed with an MSI and end up wrapped up in a .EXE anyway and then it is harder to pass parameters to the MSI because you have to use the /v switch and quoting becomes and issue.
  3. Development is difficult and has a high learning curve (yet again, the scattered and scarce documentation compounds this problem)
  4. You pretty much have to be a developer to make MSIs and this doesn’t change just because you use WiX (I couldn’t hand WiX to someone and expect a working installer in as little as two days as I did with NSIS)

Building an Installer

Ok, so lets choose some key general features and decide a winner.

Ease of use

I have to say that the well documented and large community base NSIS has, added to the fact that you don’t have to be a developer to use it, makes it a clear winner of the ease of use category.

Winner: NSIS

Customizable

To be determined…

Language Support

To be determined…

Maintainability/Scalability

To be determined…

Using the Installer

Lets pick out some key features for an end user.  Which installer is better for them?

End User Ease of use

To be determined…

Speed of Installer

To be determined…

Enterprise Features

Lets talk about enterprise features and pick a winner for those features too.

There are two key features that an Enterprise needs an installer to support:

  1. Automated installation
  2. Silent installations

No, these are not the same.  Technically a silent installation is an Automated installation, but an Automated installation is not necessarily silent.  There may be times when you want to show a progress bar.

Automating the Installation

Both NSIS and WiX can create installers that can be automated.  Both support automation by default. With both, care must be taken with custom actions to make them also automated.

There are times when an install should be automated but show a progress bar and/or a success or failure when finished.  This is common with install on demand or install on first use functions such as LANDesk’s Launch Pad and similar solutions.  The idea is that the icon or shortcut is there, but the software isn’t installed until first use.

MSI files and there for WiX have the following supported functions for automating and Silencing an MSI.

Display Options
	/quiet
		Quiet mode, no user interaction
	/passive
		Unattended mode - progress bar only
	/q[n|b|r|f]
		Sets user interface level
		n - No UI
		b - Basic UI
		r - Reduced UI
		f - Full UI (default)
	/help
		Help information

So I had a hard time finding whether NSIS could do this level of different UI states.  Basically, I found the silent switch, but not a switch for an automated install with progress showing.

Winner: MSI

Silencing the Installation

Both NSIS and WiX can create installers that can be silent.  Both support Silent installs by default.  However, with both, care must be taken with custom actions to make them also silent.

Silencing the install is very common.  When a corporation pushes out software, the last thing they want to do is have the user see it and create a call storm to the help desk just to ask what is going on, and then of course ever subsequent computer problem is related to the newly deployed software in the end user’s mind (even when there is no possible way the new software could have caused them to be missing some emails 🙂

Overall Winner: Tie

In Bugzilla, how can I change the password used for LDAP integration if I can’t login?

Problem

For Bugzilla authentication, LDAP is configured as the first authentication method (or the only authentication method) and the password for the user used to connect to LDAP has expired or changed.

Attempts to login result in the following error:

Failed to bind to the LDAP server. The error message was: 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece�

Resolution

The change must be made manually to the bugzilla/data/params file.

Using a text editor, open the params file located under the bugzilla website and under the data folder.

Note: On FreeBSD, this was located in /usr/local/etc/www/apache22/data/bugzilla/data/params

Look for the following line to configure this manually in text:

‘LDAPbinddn’ => ‘CN=Barneck\\, Jared,OU=Support,OU=YourOU,DC=Domain,DC=tld:P@sswd!’,

As you can see the password is in clear text.  You can change it with any text editor.

Why Bugzilla fails to authenticate a local user when LDAP integration is failing?

Problem

Authentication fails with the following error even when not using an LDAP user:

Failed to bind to the LDAP server. The error message was: 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece�

To me this is a straight up bug.  I am not sure if it is reported.

Cause

Bugzilla will not even try authenticate a local user using another authentication method when LDAP integration is both list first and failing. If LDAP is the first option in the authentication methods, then if the credentials are invalid, it just stops the entire authentication process and returns this error:

Business/Impact

Low.  While this could disallow all logins to the bugzilla web page, including administrator logins.  A server administrator can make a manual change to one of configuration text files.

Resolution

Authentication is configured to use LDAP then DB.  It needs to be reversed, where it tries DB then LDAP.

There is a setting called user_verify_class in Bugzilla that allows you to select the different authentication methods you want to use.  There are two places to access this:

  1. Through the web administration
  2. Through the bugzilla/data/params file

Through Web Administration

Log in as an administrator and go to Administration | Parameters | User Authentication.

Then look for the user_verify_class setting.

Click on DB and click to move it up to the top of the list.

Through the bugzilla/data/params file

Using a text editor, open the params file located under the bugzilla website and under the data folder.

Look for the following line to configure this manually in text:

‘user_verify_class’ => ‘LDAP,DB’,

Change it to:

‘user_verify_class’ => ‘DB,LDAP’,

The user_verify_class setting

This setting allows for enabling and disabling authentication as well as providing the order for enabled authentication methods.

By default only DB is enabled.  But it can be configured so that both DB, and LDAP are enabled and they can be ordered so either is first.  However, LDAP should NOT be first.  The following setting should be used.

‘LDAP,DB’,

A Bugzilla authentication dillemma?

Let me tell you the dilemma I just faced and resolved.

I have a bugzilla installation that is configured to use LDAP for authentication.  It is configured to fall back to DB authentication if LDAP isn’t available.

I have both a local user and a domain user that are admins just to resolve this situation where I can’t login as a domain user.  I can login as the local user and make the change I need.

First, let me tell you that this is a test/educational server for learning so I “fiddle” with it. Its not in production.

Well, my password changed, as commonly happens every 90 days, and I went to update the password using the local account.

No matter what I tried, I couldn’t login with the local account. My password has changed a few times and this had never been a problem.

So this is my dillemma.  I can’t login to get to the screen to update my password.

Well, I learned a few things due to this problem and I plan to post on them:

  1. In Bugzilla, how can I change the password used for LDAP integration if I can’t login?
  2. Why Bugzilla fails to authenticate a local user when LDAP integration is failing?

I  plan to make a post on both and I will link to them here when they are done.