From the category archives:

Software

My Tools: Writing

by Pearlbear on May 11, 2011

I’m mostly doing this last post on my tools to pimp Scrivener. I was a loyal Scrivener user on my Mac for years, and then when I moved to Windows last year, I mourned my loss terribly. But then! Then someone started to work on Scrivener for Windows and Linux. Almost enough to make a grown woman cry.

I do just about all of my novel writing on Scrivener. It’s great for outlining, for research, for writing scenes, etc. And it has a great compile function, to spit it all out into a manuscript when it’s ready to edit. I have probably only used 30% of it’s features, but I love it, and look forward to using it. (Am I really looking forward to using it, or just looking forward to writing…?)

I use LibreOffice for most other writing and editing tasks, although sometimes I must sadly use MS Word for some stuff (like some ebook converters have a harder time with LO files, even formatted as .doc.)

I’ve been experimenting using Scribus for page layout. I use GIMP for any graphics manipulation I need for cover art and such.

And, of course, I do a lot of writing on WordPress and Drupal.

Tools I use: Personal Web Presence

by Pearlbear on May 6, 2011

I’ve had a web presence of some sort since way back when most personal URLs looked something like: http://somecollege.edu/~username. In 2002 or so, I ditched HTML for a series of CMS systems for my personal stuff. I started out using the CMS I wrote in Perl, called XINA. (Those were the days.)  Anyway, that was then, and this is now. Here’s what I use.

Software:

  • WordPress – you already know it and love it. I use it for this blog, only. I used to have two blogs on WP – this blog and my personal blog, but I moved my personal (and author blog) to Drupal, to integrate it with other stuff I had online.
  • Drupal – I use Drupal for my personal blog and also other purposes, like the website for my intentional community. My main personal site will be migrated to Drupal 7 soonish. My main sci-fi author site is already on Drupal.
  • Dokuwiki – my woefully neglected and out of date technology wiki is on Dokuwiki. Dokuwiki is a very cool tool. It’s a wiki, but everything is stored in files instead of a database. It makes it quicker, and also much more easily migratable. The annoying part is that it is one more wiki markup to learn (I wish SOMEONE would finally agree to make a wiki markup standard!!)
  • In the relatively rare case where I need to use HTML/CSS for web pages (there are a few legacy sites I maintain for friends) I use Bluefish (on Ubuntu.)

What I like most about WordPress is that I don’t really have to do any work to use it, or tweak it. I love how easy it is to use.

I love Drupal for its flexibility – and for my personal stuff, it’s really great to be able to mix and match stuff (like I actually have two different blogs on that site, but it’s really only one blog… Drupal is ace at that sort of thing.) I keep debating about whether or not to migrate this blog to Drupal. Stay tuned.

Hosting:

All of my personal stuff is on Dreamhost. I say this with some hesitation. I have hosted with Dreamhost since 2007. They are worker-owned, pretty green, and their newsletters are quite humorous. They give free accounts to nonprofits. Their service has improved over the years, but they ultimately aren’t all that reliable. They have downtimes (a really bad one recently,) Drupal often barfs on Dreamhost during admin tasks, and you can’t run Rails apps reliably at all. I’m going to spend the spring and summer migrating all of my domains (there are plenty!) to a VPS on Linode (this will be my chance to play with IPv6, too. I already use Linode as a development server.)

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.

LibreOffice vs. OpenOffice.org

by Pearlbear on February 21, 2011

I hope that everyone reading this blog has heard of OpenOffice.org.  OpenOffice.org is a free and open source cross-platform office suite, which can read and write MS Office .doc, .xls, and .ppt files. It actually has more to it than that, there is a drawing program, a database, a math equation editor and more. It has been in development as OpenOffice.org since 1999, when Sun Microsystems bought the code from a company called Star Division (remember StarOffice?) (You can find an aged, but perhaps useful webinar I did up on slideshare.)

For 85% of what most nonprofits (and individuals) need out of MS Office, you can get in this package for free. Sorry, clippy not included. OpenOffice.org has come an incredibly long way since the old days, and it is, now, quite a credible competitor to MS Office.

But then … Oracle bought Sun. And just like the fears that many in the MySQL community have had about the future of MySQL under Oracle’s watch (Oracle shut down the OpenSolaris project, for example), people were worried about the future of OpenOffice.org. And the cool thing about open source software is that in situations like this, people can fork stuff. And they did. They formed an organization called the Document Foundation, and forked the code from version 3.3 of OpenOffice.org, and called it LibreOffice.

All of the major Linux distributions are going to include LibreOffice, some as the default office suite. I’ve already been using LibreOffice, and intend to stick with it, since IMHO, a good bet is that anything FOSS will flounder and probably die in Oracle’s hands. (Which is why I am also keeping a keen eye on MySQL drop-in replacements, as well. You’ll read about that one here.)

{ 1 comment }

eCommerce #1: Options

by Pearlbear on February 13, 2011

Nonprofits don’t use e-commerce much,  but I’ve had some experience (on both sides of the profit fence) doing e-commerce, and for some reason, shopping carts are intriguing me at the moment, and I figure its a good time to know what’s out there, especially in the open source shopping cart world. What would I use if someone came to me wanting to set up a store?

The last time I looked closely at this (which was a few years ago) it was a different situation – there wasn’t much in the way of open source shopping carts. Today, there are a ton, some better than others.

Here are the options I’ve found:

  • Zen Cart – LAMP stack program, at version 1.3.9. Has a community forum, and seems to be pretty popular. Dreamhost at least has this option as a one-click install.
  • Magento – this is also LAMP stack, and is using the SugarCRM business model (which I will admit is not nearly my favorite) – they have a community version with fewer features and no support compared to the other versions. The other versions seem extraordinarily expensive – ($3,000 – $13,000 per year. I’m assuming for that we’re talking high-end shopping cart system.)
  • Ubercart – Ubercart is a module of Drupal, and the one of the bunch of these that I have the most experience with. Because it is a Drupal module, all of the vast array of features available with Drupal are right there – so the shopping cart system doesn’t have to have them. This is a big plus.
  • Open Cart – Also LAMP. Like Ubercart and Zen Cart, this is a truly open source community effort, with an ecosystem of providers rather than a business model.
  • PrestaShop – Also LAMP. More like Magento in business model. My pet peeve: a form for downloading software that requires you to put in your email address. Hate that. Most add-ons for PrestaShop cost money.
  • OSCommerce – Seems to have most of their popularity in Europe. LAMP stack program.
  • Spree - Open Source Ruby on Rails eCommerce program. It’s younger than most of the list above, but interesting.

There are others, but they are much less popular, and much less feature rich – not much reason to choose them at this moment.  There are several WordPress shopping cart plug-ins that seem worth looking at, if you are wedded to WordPress. Some open source, some not.

Of course, so much depends on how much you want to sell, how you want to sell, what you want to sell, how important your store is in comparison with the rest of your website (for instance, do you set up an entirely separate store, or use something like Ubercart as part of your website.) Those questions are going to be key to know the answers to before you compare features and technologies of these systems to make a decision.

{ 7 comments }

Security and Privacy in a Web 2.0 world

by Pearlbear on October 8, 2009

Security Camera - Photo by Sirius Rust

Security Camera - Photo by Sirius Rust

Beth threw down the gauntlet, and I had to pick it up. I’m sort of surprised I hadn’t written about this before. I think a lot about both of these, not so much for myself, but for organizations that I work with whose work is fairly sensitive.

First off, some definitions – I think that these two terms do get mixed up quite often, and understanding what’s really being meant by them in a technical context is important.

Security, in this context, is the concept that your personal computing resources and data are safe from both prying eyes, as well as hijack by crackers and spammers who will use those resources and data for their nefarious ends. In the case of your computing resources and personal data inside that box you call your laptop, or protecting the whole of your home or office network, security is a matter of using specific tools that prevent unprivileged outsiders from getting in. Wifi passwords, firewalls, password protected fileshares, virus protection software, etc. are the tools of the trade here. Security of your private data that is “in the cloud” is largely at the mercy of the software developers who hold your data. Luckily, most of them take security quite seriously. (That said, your data “in the cloud” can be compromised by lack of security on your network or laptop – someone installs a key logger, for instance, and grabs all of your passwords.)

Privacy, in this context, is that you can control, in a granular sense, what information about you is exposed to whom. Privacy is, as Beth says, primarily a matter of human behavior, but there are very interesting intersections with technology and security. In some instances, services have default privacy settings that are a lot less private than someone might like – and it takes some know-how to figure out how to correct those settings. Privacy is, also, a set of decisions that get made – sometimes in haste, or without much consideration. Your drunken decision to post that picture of you (or a co-worker) dancing in your underwear on a table at a party, the cat is out of the bag, and may never be able to be put back.

Security and privacy in the context of online communities, as Beth points out, are different beasts. The software that drives online communities (such as Drupal, phpBB, and others) have options to allow for varied levels of security. You might need to have a password to see anything. Or you might just need a password to make comments. You might not be able to just register for an account – you might need to go through an admin. These days, most software driving communities have roles you can assign people to, with specific privileges granted per role.

But privacy is made up of policy (the policy of the organization running the community) as well as the behavior of the members – their collective agreement that “what happens in Vegas, stays in Vegas.”

{ 3 comments }

Avoiding Trainwrecks

by Pearlbear on June 3, 2009

I spent a big chunk of my day dealing with a project that is, in no uncertain terms, a trainwreck. The client has sunk a ton of money into a product which is in, its current (first phase supposedly finished) state, unusable (client and vendor shall remain unnamed.) My role in the project has been strategic and as a liason, not technical, which to some extent gives me a bit of a distanced view.

Web development trainwrecks are, sadly, far from isolated cases – they happen all the time, even when all of the parties have good intentions. And as someone who is building a business around doing this sort of work, it is of keen interest to me as to why some projects end up in the state that this project is in, and I want to make sure to avoid these kinds of situations. So how do we avoid trainwrecks? Some trainwrecks we can see coming miles away, but yet we are in complete denial about them. Some trainwrecks are like sudden derailments – it’s not at all clear where it comes from. But I think all trainwreck projects have the seed of the wreck somewhere in the history of the project.

The hallmarks of this particular trainwreck were so clear, that in retrospect, they scream out at me:

  • Lack of transparency about development process
  • Lack of transparency about cost implications of increased scope
  • Waterfall development process (well, the vendor said they practiced Agile, but in practice, it’s been waterfall)

As a practitioner of the Agile development process (we use a somewhat modified form of Scrum, in particular,) I’m beginning to really see the value of this kind of process. It makes visible all sorts of things that are often hidden. It seems like the Agile methodology helps in a number of ways:

  • Once educated, clients have a window into the development process. They know what small chunks of development are going to happen in a given time interval, and they know what they will get at the end of that time interval
  • Things are developed in priority order
  • Clients can critique things early
  • New functionality becomes a part of the “product backlog” and it is easier to have clarity about what is and is not within scope

Of course, it is theoretically possible to be completely transparent in a traditional waterfall methodology, and completely opaque using Agile, but I do think that the Agile methodology makes it way more difficult to be opaque. But it also takes some work and education of clients unfamiliar with the methodology (as well as making mistakes along the way on our part as developers.)

And I’ve been able to watch this process work well, not only with our own projects, but also with a project I was a strategic lead on. I was pretty skeptical a year or so ago, but now I’m sold. And since transparency has always been something of real importance to me, a development process that encourages transparency is a good thing.

Why you should care that Oracle is buying Sun

by Pearlbear on April 20, 2009

In general, the activities of the big tech corporations have somewhat limited and indirect effect on nonprofit technology. For large enterprises, the activities of the big players is a much more immediate and important set of issues to deal with. For us, it’s generally much more removed.

However, today’s news that Oracle is going to buy Sun Microsystems has some very important implications. Why? It has to do with the fact that many, many nonprofit websites and web applications are built using MySQL, the most popular open source database management system. Sun bought MySQL AB (the company behind MySQL) last year for $1 Billion dollars, and therefore, MySQL AB now becomes a part of Oracle, it’s primary competition.

There is some suspicion that there may be anti-trust challenges because of this, but if it goes through, it raises some huge questions about what happens to MySQL because of this. Of course, since MySQL is open source, there is no danger of MySQL going away, someone can always fork it. And, ultimately there is a great open source database alternative called PostgreSQL, but support for it is not universal. However, the future of ongoing support and development for MySQL is certainly in question. Most nonprofits don’t get any support from MySQL AB directly, but larger organizations that might have been getting some support might see changes down the road.

It’s something that those of us who depend on MySQL for our web development projects will be watching quite closely.

{ 2 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 }