Posts tagged as:

Software

Why all (major) operating systems suck

by Pearlbear on June 2, 2011

I’ve been a user of a ton of operating systems over time. In the past ten years, I have been an everyday user of the big three, Windows, Mac OS, and Linux, for long stretches of time. I switched from Apple to Windows/Linux last year, and I’ve largely been OK with it, but I’ve complained enough about all three that I realized that they all suck.

Of course, they suck for completely different reasons, which is part of the frustration. And each have places where they shine. Why can’t there be a nice combination of all three? That would be perfect.

Why Mac OS X sucks:

  • Apple is becoming a controlling, closed system, and with the advent of the Apple App store, developers have to go through an approval process to get their apps on the store, there are specific things you can’t include in an app in the store, and there will come a time when most people get their software through the store, so there will be less and less incentive to maintain non-app store versions of software apps
  • These days, you can find most kinds of software for the Mac, but there still is a relative paucity of apps in comparison to Windows.

Why Windows sucks:

  • Viruses, Trojans and Worms, Oh My!
  • Although I have only seen the Blue Screen of Death once in my year of Windows 7 use, there are still inexplicable slow-downs, crashes, and weird problems. And it takes FOREVER to boot, even with Soluto.
  • Internet Explorer

Why Linux (in my case Ubuntu) sucks:

  • I have to go through arcane (and luckily for me, fairly painless) procedures to get simple things to work (like plugging a headset with a mic into my jack!)
  • Hardware manufacturers ignore Linux for the most part
  • Most software developers don’t make Linux versions

The only good news I can see is that the operating system is getting less and less relevant. And, on balance, for me, Linux is winning. Now that dropbox and scrivener work on Linux, and I’m moving from Quicken to some online cloudish thing (suggestions?), I can pretty much leave Windows behind. (Oh, there is still Netflix. Sigh.)

{ 9 comments }

My Tools: Development

by Pearlbear on April 25, 2011

Since I am a web developer, the core of my development workflow is, for sure, a browser. But not just one browser, or any browser. Several. Chrome has become my everyday browser, although Firefox is making its way back into my heart, now that Firefox 4 is so lean and zippy. But I am very often in both. I use Opera on occasion, and, of course, I use IE only when I absolutely have to (and it generally means rebooting into Windows, which I do less and less these days.)

My other core tool is a console window. In Linux, I use the generic version. For Windows, I use SecureCRT, which is well worth the $ since putty is not up to the task (I know, it’s open source, which is great. But it just doesn’t cut it if you need to use it pretty much all day every day with multiple servers.) My text editor of choice is Emacs. Yes. Emacs.

For Windows, I love Notepad++, a sweet open source text editor.

I like Eclipse as an IDE, its awesome. I think it’s better than the proprietary Komodo, but that’s just me, I’m sure people beg to differ.

Other core tools are git for version control and github for code sharing. I haven’t found a GUI git client I like, so I just use the command line. IRC and Pastebin rock my world for getting help in troubleshooting problems, and IRC is great just for chilling with other developers.

 

Open Source vs. Proprietary: Graphics and Video

by Pearlbear on April 7, 2011

There are some very interesting comparisons to make in this realm, and, I’d say first off, that the proprietary tools are in the lead, for sure.

I’ll start with basic graphics – graphic manipulation tools. Of course, on the proprietary side is the ever present and predominant Adobe Photoshop and Illustrator. And, honestly, they are very good tools, and considered industry standards.

On the open source side, the projects that stand out are GIMP (a Photoshop replacement) and Inkscape (a vector graphics program – like Illustrator). I’ve used GIMP for many years, and I don’t generally do a whole lot with graphics, but it always serves my needs.  There has been a lot of back and forth about the GIMP user interface. It is very unlike that of Photoshop. So much so, in fact that someone came up with another project called Gimpshop, which re-does the UI to better match Photoshop.

Both GIMP and Inkscape are completely cross-platform, and available for Mac, Windows and Linux. I’ll leave it to the graphics professionals to say for sure, but they are both worth a look if you don’t want to plunk down hundreds of $ for Photoshop and Illustrator, and/or you like to work with open source tools.

The other realm of stuff that I know some about is video. In term of viewing, on the proprietary side are the players that come with the proprietary operating systems. Itunes/Quicktime comes native with MacOS, and Windows Media Player for Windows. One doesn’t have to pay for these, so it’s a bit hard for open source (or other products, even) to compete. Which is perhaps why the other major proprietary video player, Real Player, has had such a hard time catching on for all of these years. I notice now they seem to have added a ton of features (like video conversion from one format to another).

On the open source side, one program you must know about is VLC by VideoLAN. Totally cross-platform (so cross-platform, they have a version for BeOS!) It plays everything. I mean, everything.This means you don’t have to have several video players around to play different formats. I use it constantly – it’s my go-to video player. It has a bunch of other features as well.

In terms of video editing, again, the proprietary programs have somewhat of a leg up on the open source, although a recent entry into the field may well change that (see below). On the “low-end” (for people like me who make videos like this,) there is, like in the video playing arena, iMovie and Windows Movie Maker, made by Apple and Microsoft respectively, for their own platforms. (An aside, a lot has been said about the crapware iMovie has become – it used to be a really good video editor.) There are other proprietary products as well. I’ve used TrakAxPC, which has a free version and a paid version. There are a variety of other low-end video editing options. There are low-end versions of Adobe’s Premier (called Elements) and Apple’s Final Cut (called Final Cut Express.) On the high end (where I’d love to work more), there is Apple’s Final Cut (only available on Apple hardware) and Adobe Premier (cross-platform). There are also quite a number of high-end, Hollywood products, like Avid (a side note, I used Avid a little bit, way back when it was the first and only non-linear video editing platform).

On the open source end, there are some notable entries. Blender is a very popular cross-platform open source 3-D modeling, animation and editing tool. It’s actually pretty amazing what it can do. (There is a study that compares a bunch of 3D tools for professionals, you can see how Blender stacks up.) Another notable entry is Cinelerra, which only runs on Linux. (You can see videos edited with Cinelerra on Vimeo.) A recent entry into the fray, and the one that might make a huge difference, is Lightworks. This is one of the video editors that Hollywood uses that used to be proprietary. It will go open source later in the year, but you can grab it for free right now. Yes, a Hollywood-quality video editor for free, and soon to be open source. It’s Windows only for now, though.

In summary, proprietary software has the popularity edge, mostly. From this non-graphic professional’s perspective, it seems that one would not be left wanting if you went the open source route, however.

{ 2 comments }

Web Application Frameworks

by Pearlbear on April 6, 2011

If I got a dollar for every time I heard something like: “we’re trying to choose between Ruby on Rails and Drupal for our new website” or “our developer convinced us to do our new website in Ruby on Rails and we can’t update it,” I wouldn’t be rich, but I’d have some money for a very nice meal at an expensive restaurant.

I know a lot of pretty serious geeks read this blog, but I also know some folks who aren’t do too, and I figured it was time to do a quick outline of web application frameworks, and how they differ from things like a CMS.

A web server, in the physical sense of the phrase, is a box sitting in a data center (or under someone’s desk) with a unique IP address, that answers queries from the internet and serves up data, depending on the request. In the software sense of the phrase, it is the actual piece of software (most often Apache, but sometimes something different.) That software runs in the background, and and listens to requests, then serves up the data.  That data is in some form of HTML, CSS and Javascript, because that is what browsers understand. However, how that HTML, CSS and JS is generated varies depending on the system underneath.

In the old days (when I was starting with web programming, back in the early-mid-90s) it was all HTML flat files (and not even much in the way of CSS or JS at the time.) And dynamic elements were less common (you remember those days.) Now, a minority of web servers actually serve HTML files – they serve HTML, CSS and Javascript dynamically generated by software, like, in the case of this page you are reading now, WordPress.

WordPress, Drupal, and Joomla are CMS systems that are written in PHP. PHP is one of many programming languages. Plone, for instance is written in Python. This isn’t really the place to describe what programming languages are, or how they work, but Wikipedia (as always) as a nice entry, worth a read. CMS systems are full-featured – they require no programming to install or configure or get going, or to create a usable interface. They may require some to customize in particular kinds of ways, but I’d say most nonprofit websites don’t need to do that. Most Drupal developers, for instance, don’t spend a whole lot of their time in code unless they work on contributed modules (or contribute patches and such to core.)

A web application framework is one that does require programming to provide the basics of a user interface. The cool thing about frameworks for developers is that it provides a great leg up, and a way to use the model-view-controller design pattern really easily – it’s a powerful way to do development. The advantage of a framework is that it allows you to do great custom apps a lot easier and quicker than before (many web 2.0 apps are written using these frameworks). The disadvantage to a framework is that it does take significant programming to get user interfaces (especially on the admin side) working well. So to use them to build a CMS (or a CRM, for that matter) is probably not a great idea, given the plethora of already-cooked options in the world. People who are working with frameworks are spending much of their time dealing with code.

Popular web application frameworks include Ruby on Rails (using the Ruby programming language,) CakePHP (using PHP), and django (using Python.) Ruby on Rails is arguably the most popular MVC web framework at the moment, but there are a lot of folks using the others. The PHP frameworks (which include Cake, as well as Symfony and Zend) are pretty popular because of the plethora of PHP programmers out there. All of these frameworks get more sophisticated every year, and they are interesting to watch.

Open Source vs. Proprietary: Browsers

by Pearlbear on March 14, 2011

The browser wars between proprietary and open source browsers have changed in some ways from the days that it was simply Internet Explorer vs. Netscape. There are more players on both sides of the field, with some interesting complexities.

On the proprietary side, still, sits Internet Explorer, now about ready to pop with version 9. It definitely depends on who is gathering the data, but IE has about 44% of the market. This is down significantly from its high point, back in the dark ages of 2005, when it garnered over 90%. It has been dropping steadily since. This drop has been primarily, but not exclusively due to the open source browser, Firefox. More recently, however, two other proprietary browsers, Opera and Safari, have been increasing their own market shares. Now, Opera gets about 2% of the market (up from microscopic some years ago.) Safari, used mainly by Apple Mac users (although there is a Windows version) now gets about 5% of the market.

On the open source side, Firefox is certainly the leader, with a bit less than 30% of the market. Chrome, which is sort of an open source browser, is now getting around 14% of the market. So what do I mean when I say Chrome is “sort of an open source browser”?  Chromium, is the open source project which results in the browser Chrome – but there are a bunch of additions Google makes to Chrome which are proprietary, and not in the Chromium codebase.

So, anyway, basically, between Firefox and Chrome, the open source side is a smidge in the lead over the proprietary side, but it’s pretty close to even. And still, the primary reason for the difference is that IE still ships with Windows (and Safari with Mac OS X), and if people don’t take the step to download and install another browser if they are a windows user, they will still just be using IE.

In the mobile space, things are very interesting. Opera mobile is in the lead, with about 21%, followed by iPhone, Nokia, and Blackberry. These are all proprietary. Bringing up the rear is Android, at 16%. But I’m sure that is going to change as Android begins to gobble up the moble smartphone market share.

{ 2 comments }

Git

by Pearlbear on July 19, 2010

I became sold on version control fairly far back in my programming life. Back when CVS (C0ncurrent Version System) was the standard. I learned it, although there were varied gaps in my use of it, so it never became second nature. As I learned more about newer version control systems, I tried them out. For a while, I was using SVN (Subversion), which is similar enough to CVS, but has some nice improvements. More and more folks are moving to distributed version control systems. I began to understand the great advantages of those systems, and decided to pick one to standardize on. Git stood out from the others in terms of popularity and resources. And, I figured anything Linus Torvalds wrote was good enough for me. That was last year. This year. drupal.org is moving to Git, making my life oh so much easier.

In my daily life, Git has 2 major advantages: version control and comparison of versions even when I’m not connected to the internet (you have your own actual repository, not just a working copy), and its speed. It takes less time to clone a whole repository of code than it does to check out a working copy using CVS or SVN! It’s really worth checking out.

I imagine Git will become the new CVS – the new standard, until something better comes along to supplant it.

Be like a three year-old

by Pearlbear on May 3, 2009

I don’t have kids, but I do know how young kids ask questions. They are innocent, and free of assumptions, and keep asking “why?” In the end, the poor adults either get tired of the questions, or realize that there are assumptions they’ve been making for all this time that might actually be worth questioning.

Human processes mold around software. We see this all the time. A CRM gives you these 5 canned reports, and you get used to making do with what’s there. A legacy client database requires a certain order of data entry, and your intake forms have been produced to copy that order. Your email software has particular limitations, and you find behavioral workarounds.

What’s also true in the realm of customized software, is that software is molded around people. You put in your RFP that a package spit out data in X,Y and Z ways because your ED is used to data in that form (maybe because a package they had at their previous organization had those canned reports.) You have a requirement that data be entered into the system in one particular way, probably because that’s the way you’ve always done it. Sometimes, you feel the need to replicate a process that the person 3 administrative assistants ago put in place that was molded around their particular limitations, just because that’s what you know.

When you are undergoing the process of creating or implementing a new system of any sort, whether it be a CMS for a website, a CRM, some internal system, it is a really good exercise to be like a 3 year-old, and keep asking “why?” Why do we need this feature? Why will this report be important? Why should the software work this way? Once you peel the layers down to the bottom, you’ll either have “we don’t know” or “because we believe it will help us meet our mission in this specific way.”  Then you know what you should take, and what you can leave behind.

{ 1 comment }

What? She’s talking about Blackbaud?

Yes, it might be surprising, but I got a friendly email from fellow NTEN Board Member Steve McLaughlin, who also happens to be head of all things internet (more formally, Director, Internet Solutions) at Blackbaud. He gave me a demo and overview of their NetCommunity tool, which has been around for a while, and I figured it deserved a blog entry. It is, in fact, a great example of integration of a CMS and a CRM. Originally, I wasn’t going to cover the one vendor solutions, like this because, I believed (and, honestly, I still do) that you’re not going to get as powerful a CMS as you can as the best-in-breed CMS tools. However, it is true that Raiser’s Edge, the CRM/DMS tool that this integrates with, is inarguably one of the most important tools out there. Some call it the gold-standard. For many other CRM/DMS vendors, it’s the red spot at the center of the dartboard in their office.

The demo was pretty cool. But you know me, I fall for shiny, especially when it comes to data. The integration between the web front end and the RE back end is bi-directional and sweet. There were a lot of things you could do, including accept donations, track personal donation pages, and the like. and a lot of different ways to track what your donors and constituents did, both online and off, and have those show up in really interesting ways. It is, in many ways, the kind of CRM/CMS integration that lots of organizations want and need. Organizations can get this package in three different ways: On premises – installed inside the firewall, hosted, or SaaS. Their SaaS offering is called “NC Grow”, which provides sets of fairly simple CMS templates to start with, designed for organizations that, in their words, “are ready to reap the benefits of richer online marketing and communications, but may not have the resources or expertise in place to make such a website come to life”

The big kicker, pretty much as always with Blackbaud, is the price tag. There is a $10K license fee that you have to pay if you use the On premise or hosted versions. Expect a $35-45K price tag for development and integration. Their SaaS offering, NC Grow has a $20K/year price tag. This all is, of course, above and beyond the megabucks you’re already paying for Rasier’s Edge.

I didn’t get a very close look at the CMS (I’m wishing in retrospect that I had), but the little bit I did see of it suggested to me that it was somewhat more limited than CMS systems such as Drupal or Plone. Even if, perchance, it’s not, you still don’t get the vibrant community of developers making cool modules and add-ons to do just about anything you can imagine – you’ll have to either wait for Blackbaud to do it, or, perhaps (I’m not even sure if this is possible, but correct me if I’m wrong in comments) have someone custom develop special custom features for you. And, you’ll have an automatic $10K price tag tacked on that you won’t pay with the open source tools. I have a hard time believing that that translates to $10K worth of feature value (one could argue it’s $10K worth of integration value, though, but I’m not sure about that.)

Bottom line: If you are an organization which has Raiser’s Edge, and is committed to keeping it, and you want to do sophisticated integration between it and a web front end, then NetCommunity is probably your best solution. But before you jump in, make sure that the CMS is going to have the sophistication and power you need. And know that because RE doesn’t have open APIs, you are unlikely to be able to create the kind of sophisticated integrations with a different CMS that NetCommunity provides with RE.

But, if you are not a RE user, or are considering migrating off of RE, I don’t think that the combination of RE and NC is especially cost-effective. You can get this level of integration with Drupal/CiviCRM for sure, and likely Plone/Salesforce, and Drupal/Salesforce (with a bit more work.) More on those later.

{ 28 comments }

My Top 16 tools of 2008

by Pearlbear on December 26, 2008

These span the range from tools I use every day or every week, to tools use more occasionally, but depend on. They also span the range of proprietary, SaaS, and Open Source. They are on this list because I think they are great, because they have undergone a lot of change or development this year, or because they are game-changing.

Open Source Tools

1. WordPress. I use WP pretty much everyday, between my own blogs, and helping clients maintain theirs. WP as a blogging tool rocks my world, and although I certainly could move blogging to Drupal, since I seem to be becoming somewhat of a Drupalista, it’s just not worth it. WP is clean and easy, and virtually hassle-free. There are lots of really great themes out there, and there just isn’t a reason I can find not to use it.

2. Drupal.  I’m somewhat of a latecomer to Drupal. Having been bogged down with my own open source CMS tool before 2005, then having taken a break from development, I missed out on the prime years of Drupal’s development. But now, here I am, and I’m impressed. It has become arguably the most popular open source CMS, and is a very able platform for creating all sorts of great web applications.

3. Xen. I use this everyday, although I don’t really interact with it much. I am administering and/or responsible for a couple of Virtual Private Servers that use it. Virtualization has really come into it’s own this year, and will continue to be a force to reckon with. I’m betting that in 2009, many folks will move from shared hosting to VPS servers. There are a lot of good reasons to consider this.

4. Songbird. Songbird is a brillant idea: build a music player using the Mozilla framework. Songbird was a buggy mess just a year ago, but with the recent release of 1.0, it’s absolutely an application to get to know.

5. CiviCRM. Oh what a difference a year or so makes. CiviCRM continues to mature, and is providing an interesting and important new model for nonprofit software development. It is becoming more popular, and is also highly recommended by those who use it. I’ve been getting to know it this year, and begun implementing it. I like it more and more.

6. Freemind. This is an awesome cross-platform mind mapping tool. I use it to create sitemaps, mostly, but it’s also great for brainstorming.

7. Elgg. Elgg is the open source social network management system. Install it on your own server, control your own data. Don’t use Ning, use Elgg. It finally looks like a project which will allow me to explore the strength of that platform is coming around the bend. Stay tuned.

8. MAMP. Wanna set up a easy development environment on your Macintosh without struggling with Fink or MacPorts? Use MAMP. Easy, fast, robust, and powerful.

Being a pragmatist, I do use proprietary tools, both the Software-as-a-Service, or basic desktop tool types. I use these tools because I haven’t found open source alternatives for these functions that work as well, or are as user friendly.

SaaS Tools

9. last.fm. I love last.fm. I love discovering new music, seeing what people I know are listening to, and learning more about what I listen to over time.

10. Twitter. This was the year for twitter. This was the year that nonprofits discovered twitter, and the year I integrated twitter into my workflow.

11. Evernote. I haven’t yet become an Evernote devotee, but I might. It’s an online note-saving service, with desktop and iPhone clients. It’s great to be able to take notes on my iPhone on the fly, and know they are saved, and will show up on my desktop when I want them. And it’s great to have my notes wherever I go, without bothering to sync my phone.

12. Intervals. Having tried a variety of project management and time tracking tools over the years, from the open source tools like ProjectPier (used to be ActiveCollab) and GnoTime (abysmal), as well as SaaS tools like BaseCamp, I have finally come across what is, for me, the perfect mix of project management, time tracking, and invoicing. It’s not cheap, but it works well, and saves me so much time invoicing, that it pays for itself several times over every month.

Proprietary Tools

13. Adobe Air, and applications. Adobe Air is an impressive framework for rich internet applications. I use TweetDeck, Twhirl, and the Analytics reporting suite among others.

14. Balsamiq. This Adobe Air application deserves its own entry. (I’ve been meaning to blog about it for a while.) It’s a really great tool for creating very rapid mockups of sites that you are working on. It actually is good enough as a wireframe tool.

15. Coda. Panic software makes really good stuff. Coda is a great editor for developers. I like it better than Textmate, which I know is another popular editor for developers.

16. VMWare Fusion. Even being the semi-religious Mac and Linux desktop user that I am, every once in a while I am forced to use Windows. This makes it tolerable. There’s a nice full-screen view, if I want to really feel the pain. There is also a mode called “unity” which allows you to run a Windows application in a regular Mac window. It’s kinda cool.

So what tools did you come to depend on in 2008?

{ 6 comments }