Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Open Source Software The Internet News IT

Drupal's Creator Aims For World Domination 192

angry tapir writes "Open-source content management system Drupal has come a long way since it was initially released in 2001. Drupal now runs 2% of the world's websites — but Drupal's creator Dries Buytaert thinks that this could easily grow to 10%. I caught up with Dries to talk about Drupal's evolution from a pure CMS to a Web platform, cracking the enterprise market, and the upcoming release of Drupal 8, which features significant architectural changes — incorporating elements of the Symfony2 Web framework to replace Drupal's aging architecture."
This discussion has been archived. No new comments can be posted.

Drupal's Creator Aims For World Domination

Comments Filter:
  • Navigation (Score:5, Interesting)

    by cgt ( 1976654 ) on Monday March 11, 2013 @01:23AM (#43135665)
    Does it have a sane menu system yet?
    • Re:Navigation (Score:5, Insightful)

      by narcc ( 412956 ) on Monday March 11, 2013 @02:06AM (#43135777) Journal

      No. Both to your question and any other "Does it have a sane ______ yet?" questions.

      As far as I can tell, the only reason to use Drupal is that it's easy to find and hire people who are familiar with it.

      • So it really is like AIDS, Cancer or Death?

      • Re:Navigation (Score:5, Insightful)

        by Rhaban ( 987410 ) on Monday March 11, 2013 @04:13AM (#43136087)

        it's easy to find and hire people who are familiar with it.

        who *think they* are familiar with it.

        Drupal looks easy to extend for a beginner developper because, like php, you don't have to do something right to have it work.
        So it's really quick to have a mess of a codebase that leads to an unstable site that's a nightmare to maintain.

        But if you really know the insides of it, you can craft a something beautiful that runs smoothly and is easy to work with. It's not perfect, and "real" coders will look at its non-use of OOP with contempt, but it's pretty good at what it can do.

        And, let's be honest for a second: it's one of the least horrible open source CMSs out there (at least in the php world, I don't really know about Java or python or other CMSs).
        If you want a good pphp cms, you have Drupal or Ezpublish. There's wordpress that wants to be a cms but isn't quite there, Joomla is a joke, Typo3 is from another time... The perfect software doesn't exist.

        • Re:Navigation (Score:5, Informative)

          by ios and web coder ( 2552484 ) on Monday March 11, 2013 @05:40AM (#43136361) Journal

          Drupal is the best of the "big 3" CMSes. Hands down.

          However, it has a Matterhorn learning curve, and I choose not to use it in most of my work; opting for WordPress.

          The thing about Drupal is that it has an extremely solid extension mechanism. Lots of good hooks, and thoughtful design.

          I write plugins for all 3 CMSes. I am extremely familiar with what it takes to extend each. Drupal and WP can be extended with a single file that allows me to provide a powerful administrative interface, content filter and module system.

          Joomla, on the other hand, requires -I am not exaggerating- ten times as much work as either Drupal or WP, and, subsequently, ten times as many "problem nodes," for juicy, fat bugs.

          For example, if I want to handle AJAX responses, Drupal and WP each offer a simple hook to intercept program execution at a point between CMS setup (authentication, module initialization, etc.) and HTTP output (I need to output prior to any headers being sent out). Since I can use the same module file, I can preserve object context. Also, they each have a very simple CSV options/preferences system that abstracts the database behind a basic functional interface.

          In Joomla, I am forced to write an entire system plugin, and use a pretty hairy database "semaphore" system to communicate context. I also need to write a content plugin in order to allow a shortcode ability. In both Drupal and WP, the content filter is simply another functional interface in the same context.

          However, for the kind of extensibility that Joomla offers, only Drupal can match it, and Drupal has that learning curve, so it tends to be popular amongst folks that want a heavily-customized site, with less knowledge, than Joomla.

          • Re:Navigation (Score:4, Informative)

            by ios and web coder ( 2552484 ) on Monday March 11, 2013 @05:44AM (#43136369) Journal

            However, for the kind of extensibility that Joomla offers, only Drupal can match it, and Drupal has that learning curve, so it tends to be popular amongst folks that want a heavily-customized site, with less knowledge, than Joomla.

            Whoops. Posting before coffee.

            Switch "Joomla" and "Drupal."

            As noted, there is no such thing as a "perfect" CMS. Much as I may grouse, Joomla is extremely popular, and I need to support it. For many folks, Joomla is the "perfect" CMS.

            • by Rhaban ( 987410 )

              I don't know how Joomla has evolved since I last used it several years ago (just after the introduction of joomla 1.5), but its flaws were blockers for me.

              It had almost no extensibility (new features had to be written almost like external applications, integrability with the core of the cms was minimal), no adaptability (you couldn't add a field to a content form without modifying half a dozen files, and there were no way to have different content types. Also you couldn't change the site structure: you had

              • Re:Navigation (Score:4, Informative)

                by ios and web coder ( 2552484 ) on Monday March 11, 2013 @07:29AM (#43136843) Journal

                And it used an MVC object structure that looked like the software architect had no idea of the goal of an mvc structure, but had read in a blog that mvc is good.

                I'm pretty sure that it was designed by fairly young JAVA folks. The patterns are extremely similar to many academic exercises in JAVA.

                Young folk are willing to work very hard, and hit the Kool-Aid like there's no tomorrow. It can be quite amusing to read some of the Joomla discussion forums.

                Also, I think that they switch architects fairly frequently, so they tend to rewrite the whole damn system on a regular basis. Keeping a plugin compatible between all the various Joomla versions is a nightmare. The fact that I have to provide four different modules to do what one single file can do in other CMSes means that my installer is a real Rube Goldberg machine.

          • It's been a while but try modx. Powerful event system, easy to extend. Good dev community. The maintainer is in Dallas and is a nice guy (more than one guy but he's the head honcho).

          • Re:Navigation (Score:5, Informative)

            by alreaud ( 2529304 ) <alreaud@happycattech.com> on Monday March 11, 2013 @09:37AM (#43138209)
            Drupal being "best" is in the eyes of the beholder. If you already are familiar with CMS and mySQL, then Drupal is the best. But if you have very little experience, Wordpress is by far the easiest. For my own sites, I use Drupal, but for client sites, I use Wordpress because it's easier for non-technicals to operate. That being said, Drupal has an upgrading catch. I'm running 6.28, I think, and find it impossible to port over to version 7 without manually porting over the database table by table. There should be a way to port content tables to new versions without a lot of pain and suffering...
            • Re:Navigation (Score:5, Informative)

              by jayteedee ( 211241 ) on Monday March 11, 2013 @10:55AM (#43139101)

              I think, and find it impossible to port over to version 7 without manually porting over the database table by table. There should be a way to port content tables to new versions without a lot of pain and suffering...

              Take a look at:
              http://fuerstnet.de/en/drupal-upgrade-easier [fuerstnet.de]
              if you are comfortable with the command line. I've done several 6 to 7 transitions (patch the 6 up to the latest before the 7 jump). SIGNIFICANTLY less pain than any other way I've found. It basically uses the Linux patch/diff mechanism. Make sure the 7 has the modules you need from 6 before the jump (some were never ported and have to be replaced in 7).

  • WordPress (Score:5, Informative)

    by gaspyy ( 514539 ) on Monday March 11, 2013 @02:48AM (#43135875)

    For better or worse, WordPress has more marketshare than all other CMS-es combined.
    See http://w3techs.com/technologies/details/cm-wordpress/all/all [w3techs.com] for an up-to-date look.

    Many people still think of WordPress as a blogging platform, but it's really so much more nowadays. Security is not worse than with other solutions, it's just that (like with Windows), popularity attracts attention (and attacks), and usually poorly-made plugins are the problem (the timthumb vulnerability was the most notorious one).

    I worked with many CMS solutions over the years - Allaire Spectra (anyone remember it?), DotNet Nuke, Typo3, CMS Made Simple, Joomla, Drupal, even hosted solutions like Squarespace and a bunch of others I can't even remember, but WordPress was the only one I could really develop for (functionality, themes, etc.)

  • Keeping track of that many webservers have to be very time consuming tasks.

  • by Serious Callers Only ( 1022605 ) on Monday March 11, 2013 @03:02AM (#43135909)

    I've worked with Drupal for cms websites and seen it used on other customer sites. You should never use it, seriously. It's remarkably similar to early php in being a fractal of bad design. [veekun.com] They are slowly trying to improve it, but their attempts at improvements are woeful. Some problems (which they've attempted to address, but many of which still plague users):

    Hundreds of tables with the most Byzantine schema you can imagine, even for incredibly simple needs
    Attempts to allow customers to define the db schema by adding fields etc
    Code in the db - that anyone ever thought this is a good idea is a huge red flag
    Upgrades are often incompatible
    A horribly broken plugin system and ecosystem, resulting in sites which load hundreds of plugins to support simple tasks, and therefore have a huge attack surface and a huge amount of unmaintained, scarily bad code. I've seen sites with hundreds of these modules loaded.the learning curve is huge and the code extremely fragile due to the above decisions
    Content is all stored in 'nodes' which are infinitely flexible, and therefore infinitely opaque and difficult to work with
    There are no pros or professionals working with Drupal - anyone who was a pro would have run a mile a long time ago, so don't listen when someone says 'oh well you just don't know drupal well enough'

    I dread to think what would happen if security professionals looked carefully at many drupal sites due to the above, particularly the modules situation. The closer you look at the code, the worse it gets

    If you're thinking of using it for a php cms, think again, look at Wordpress for example - the code is relatively clean (though it is still php of course), the plugins are better maintained and fewer are required, upgrades for security are no hassle, and they didn't come up with crazy ideas like code in the db in the first place. I'd personally choose other options/platforms, but at least with Wordpress the environment is pretty sane for a small time cms, easy to adapt and friendly for an end user.

    • Comment removed based on user account deletion
      • WordPress probably has the worst track record out there in terms of the number of hacked websites

        Wordpress has also had the most scrutiny by far - I suspect that and their installed base is the reason they've had more exploits, and that should make the code at the present time far more secure as they've had a trial by fire when becoming popular. I agree it's not my first choice for security but I wouldn't be so sure about Drupal.

        In contrast, many of the Drupal modules I've seen (and there are many on most s

    • I choose Byzantine schema over everything stored in two tables any day of the week. I pick allowing the customer to add fields via actual database tables rather than stuffing them into a "meta" table in a serialized form. If by code in the DB you mean having a rules/actions engine that is defined with data from the DBI pick that over hand coding anyday. Upgrades incompatible? I pick testing your upgrade rather than blindly upgrading a production site.

      • That to me is a big part of the problem with the Drupal ecosystem - unwillingness to listen (even in small part) to quite justified criticism and an insistence that anyone criticising is somehow to blame for the problems they have encountered.

        I choose Byzantine schema over everything stored in two tables any day of the week. I pick allowing the customer to add fields via actual database tables rather than stuffing them into a "meta" table in a serialized form. If by code in the DB you mean having a rules/ac

    • by Xest ( 935314 )

      It sounds like your complaints are mostly related to the thing that makes Drupal good - it's rather generic nature.

      The problem with a lot of other PHP CMS' like Joomla is that if you want anything other than a basic website with a fairly fixed layout, then, well, you can't.

      Drupal's generic nature may make it a bit more awkward to understand sometimes, but with that comes flexibility.

      I notice a lot of developers struggle with generic, reusable designs in this manner because the abstract nature of such design

      • I notice a lot of developers struggle with generic, reusable designs in this manner because the abstract nature of such designs make them a little harder to understand,

        Those benighted, simple developers who value simplicity in an API even have a phrase for those who live on a higher plane - Architecture Astronaut.

        http://www.joelonsoftware.com/articles/fog0000000018.html [joelonsoftware.com]

        If you're arguing that abstraction and the attendant complexity are usually good, I'm afraid a lot of smart people disagree. I've used syste

        • by Xest ( 935314 )

          The problem is you're assuming that a sane level of abstraction to provide a level of genericness for the task at hand is too much - you're taking a personal assertion that seemingly only you has made in this entire discussion, and then suggesting that this is what the likes of Joel would think of it too.

          I'm also not entirely sure what the point of the appeal to authority fallacy you made with "I'm afraid a lot of smart people disagree" was. That's great, that's all very well, but a lot of smart people also

          • This strongly suggests you have very little experience outside extremely fixed type of websites

            I'm sorry to tell you but your assumptions are entirely wrong, about me, and about other frameworks. Try not thinking of people who find drupal distasteful as automatically stupid, it might help. I'm just offering you suggestions re other frameworks, I do think rails, play, grails, django, revel, wp, all compete with drupal, not because I'm ignorant of what drupal can do, but because it tries to do too much, and d

        • by hazah ( 807503 )
          I would agree with you if we were both looking at a static codebase from which no lesson can be learned but I cannot attest to that being the case. One thing I've noticed is that Drupal is not a static platform. The maintainers of modules that are used most often than not are quite open to suggestion if the issue hits the nail on the head. One should not underestimate the need to keep a good reputation.
    • Quite so - the ecosystem is a mess.

      My experience has been related to patching up broken modules, finding out that there's no support for separate writing and reading databases (needed for scaling and load balancing), finding out that the core is database agnostic but modules regularly inline MySQL-specific code, etc.

      I actually read TFA to see if any of this is fixed. What I learned instead is that:

      1) Drupal 8 will be bold. That was oft-repeated.
      2) Drupal 8 will have a WYSIWYG editor in core.
      3) Drupal 8 wi

      • by hazah ( 807503 )
        I would love to know what modules do this at this point. You posted quite recently, and I deal with a lot of different modules. Care to provide a solid example? Otherwise I'd have to say your opinion is really dated.
        • It's from when I did an install about a year ago, but one should be able to grep a repository for SQL easily enough.

          • by hazah ( 807503 )
            I'm sorry, this is bullocks. There are literally tens of thousands of modules out there. Some are solid, others are not. I'm not about to do a grep of code a good 99% of people out there never even use. You've made a pretty wholistic claims about "modules". Well, I've been reading enough module code, specifically the ones that tend to linger on 100k+ sites or so (views, panels, context, ds, rules, to name a few), and you know what? One word for you. Bullshit. Go ahead, and please find that DB specific code
    • Your post reads like a mixture of trolling and ignorance. Maybe it's deliberate, or maybe it's a genuine lack of understanding. Let's deal with it point by point...

      You should never use it, seriously.

      Some users: The White House, The US Dept of Energy, NASA, Stanford Law School, the Grammies, as well as hundred's of thousands of less high-profile sites. Or we could believe you.

      It's remarkably similar to early php in being a fractal of bad design.

      At the heart of Drupal is a callback system, with registration by naming. This allows code written by different people to interact. Need to do something that nobody has

    • Code in the database, if it has errors in it, will cause the cron.php script to fail when it updates the search index for those pages... PHP input filter is a very bad way of doing things, you are better off writing a proper module.
  • It's probably a rather safe assumption that most of the Drupal implementations that give it a bad name were done by developers who "also use Drupal", and were rushed out the door due to limited budget.

    This is not a problem inherent in Drupal, necessarily, but rather these types of projects will tend to gravitate towards Drupal (and the sales departments that whore out their developers).

    I have no doubt that if you took a team of experienced Drupal developers, gave them a proper budget and appropriate sched

  • Drupal rocks! (Score:5, Interesting)

    by amoeba47 ( 882560 ) on Monday March 11, 2013 @04:33AM (#43136157)
    As a web developer with ~10 years professional experience, the last of 5 of which have been with Drupal, I say Drupal rocks.
    Drupal is a great fit for many web development projects. It's 100% GPL open-source software with a thriving development community.
    It has a solid a reliable core architecture extensible via a modular plugin system.
    Although there's a learning curve, it's worth it.
    Like every release, Drupal 8 is making taking steps to improve on the previous, for D8 these include.

    1. Integration with the Symfony PHP framework.
    This lowers the barrier to entry to Drupal by allowing developers familiar with the Symfony framework to easy transition to building Drupal websites, leveraging the power of both.
    2. Enforcing MVC architecture
    Drupal 8 includes a new, non-php, default templating engine called "Twig" ( http://twig.sensiolabs.org/ [sensiolabs.org] ). No more PHP code in templates.
    3. Pure core Drupal 8 includes more in core to achieve the functional requirements, without the need for additional plugins. For example, Panels style layout builders and the Views style report query builder as well as the ctools framework are now in core, along with the usual frameworks such as the Entity and Field API.

    I've used Drupal with a wide variety of government and corporate IT projects.
    Common server architecture includes, Linux, Nginx, Postgres/MySQL, PHP5, APC, Memcache and Varnish.
    If you're looking for a solution for your next web development project that's easy to set up, and supports and extensible and scalable architecture, checkout Drupal, it rocks!
    • 2. Enforcing MVC architecture
      Drupal 8 includes a new, non-php, default templating engine called "Twig" ( http://twig.sensiolabs.org/ [sensiolabs.org] ). No more PHP code in templates.

      Now how exactly does that enforce an MVC architecture? Anyway, PHP is a great templating language and I use it in MVC. Twig is also nice, they use that on Lemonstand. Plus Drupal shouldn't enforce a templating language; that's not core.

      With Drupal 7 I probably tried to make the mistake of attempting to understand how the system works. var_dump is not your friend here. The render array that gets dragged through each request is absolutely byzantine and fairly hopeless as a tool to understand the system.

      • by phyrz ( 669413 )

        re MVC - DBTNG is a pretty solid db layer, adding TWIG as a templating engine disallows adding PHP on the View layer. hook_menu has always been a controller of sorts, and the move to Symfony routing solidifies that.

        MVC is nothing special anyway.

      • by hazah ( 807503 )
        First, Drupal is not, and never was designed around MVC. It is a PAC system. Second, if you've made any real attemt at understanding how the system works (a task not impossible by any stretch of the imagination, else you're simply incapable of reading code), you'd soon realize that the function to use is non-other than dsm. You're basically saying that you haven't taken the first step to understand Drupal development, else you'd quickly would have found the "Devel" module that exposes those render arrays fo
  • What Dries say in this article:

    "The "sweet spot" for Drupal is larger sites rather than smaller ones. "I think when people think big websites, they usually think Drupal, and when they think small blogs or limited small websites in complexity then they think WordPress," Buytaert said.

    "At Acquia we never compete with WordPress. We don't see them ever. I'm sure the smaller Drupal shops run into them, but in the enterprise we never run into WordPress."

    "I think with small sites I'm not willing to give up on them but I think we just need to say we're more about big sites and less about small sites, but then the small sites are still very useful to get people into the community," Buytaert said."

    I would have liked to know that before... I moved from Slashcode to Drupal years ago on the advice of a few. While I can appreciate how Drupal is flexible and powerful, now I understand that what I really needed, as a non-expert and for my small website, was just WordPress. But too late, won't do another painful migration anytime soon...

    What annoys me most with Drupal: no straightforward way to update major versions (e.g. from 6.x to 7.x), especially since a lot of user-contributed modules doesn't exist in the new version or require a lot of work to do so. The admin interface is pretty bad. The user community is much much smaller than WordPress (thinking of mature/maintained user-contributed modules here). Etc.

    • by phyrz ( 669413 ) on Monday March 11, 2013 @06:42AM (#43136577)

      There's been a lot of discussion in the Drupal community recently about making major updates easier by offering backwards compatability, the consensus (best as I could tell) was that web technology is moving so fast that we need to be able to refactor quickly, though maybe in a few releases (6 years or so) Drupal will have completed the move to Symfony / OO and it will be worth looking at then.

      I love Drupal & its community - I've been working with it professionally for 8 years or so, and the constant improvement in the tools keeps things interesting for me. I spend most of my time working on edge cases where modules don't quite work together and I submit a lot of small patches to improve them. I've got a lot better at grokking other peoples code - a talent I think is more valuable than 'writing my own cms from scratch', though I've done that before too. I also dabble in various other techs after hours to keep up with new languages, and run my blog on Wordpress. Wordpress horrifies me from a technical perspective, but I just want to post content, and using it keeps me focused on that, as opposed to tweaking my Drupal install all the time.

      I used to freelance for smaller clients, but now i just refer them to Wordpress folks. They get better bang for their buck, and I don't have to deal with annoying budget overruns. Drupal is insanely good for big business who need complex workflows, asset management, community management, service integration and migration. Its really hard to build something that complex in a way that makes sense, stays stable and provides an upgrade path (however difficult that may be) and security support.

      I feel your pain though :)

  • The most depressing thing about Drupal is that http://lambda-the-ultimate.org/ [lambda-the-ultimate.org] , a website devoted to discussing the latest in programming languages research, is a drupal site. How on earth can a site that decries the unsoundess of C code, and can discuss the relationships of monads to any of three different effects calculi use PHP to run their site? Mind boggling.
    • by hazah ( 807503 )
      Perhaps non of those are actual issues other than what you've imagined for yourself? I've had a long relationship with PHP. I cannot say I love it, but I can say I can use it. That said, I'm more inclined to say that I do not *see* it. Why? Because it's a medium, and I'm focused on the expression. Any language can be used for expressing anything, and it's a bloody waste of time to fiddle over idealistic details of how one does it differently than another.
  • Probably every big piece of s...oftware is the same. Messy, overengineered, slow, uncomprehensible... Such is Liferay and such is Drupal, only Drupal is also written in the PH "fractal of bad design" P.
    • by hazah ( 807503 )
      I just love these unfounded claims of inconprehensibility. Thank you for letting us know that you didn't actually bother reading the code you don't understand. We now know why you found it incomprehensible. Unfortunately it's just because you keep yourself willfully ignorant. All I can say is, if you really can't read that code, you have no business programming. I say this as a nobody who took 10 minutes out of my day to understand what the hell I'm dealing with... you know, actually study it before saying
  • by howlinmonkey ( 548055 ) on Monday March 11, 2013 @10:05AM (#43138549)

    I have been using Drupal to do site development for 5 years now. I have developed small and medium sized sites for everyone from restaurants to professional membership organizations. I use it for sites of all sizes because eventually someone asks for a feature that isn't available or is painful to implement in WP. I have written custom modules and complex themes in relatively short timeframes because of the flexibility of the platform.

    You don't like Drupal - that's great, don't use it. I am not a big RoR fan. I tried it out for a new project at work and it just didn't "feel" right. I was able to get the Symfony2 framework up and running pretty quickly and we are developing a multi tiered app in house with it. I don't hate RoR and I don't need to bash it. Plenty of intelligent developers who know more than me are using it and developing kick-ass software. It just didn't fit for me.

    Nah - we can't have that kind of adult response. Quit liking what I don't like!

    • by hazah ( 807503 )
      I love both, to be honest Drupal and RoR. These arguments are asenine and have no merit in reality. I actually opened this thread for the shits and giggles of all the knee jerk reactions people seem to fall for every time. Most amusing is how quickly they are ready to show the flabbergasting ignorance on their parts about the reality of the platform. All this is said without an once of zealotry and with complete lack of praise, I actually do not even have to.
  • by sehryan ( 412731 ) on Monday March 11, 2013 @10:41AM (#43138941)

    Drupal has made huge inroads in running US government websites in the last few years. The White House, Departments of Commerce and Energy, and a bulk of the House of Representatives (most on one install, I believe) are all running Drupal, to name a few. As a former government contractor, we ended up selecting Drupal to run one of our sites for a couple of reasons.

    First, Drupal can run using SQL Server on the back end. I know that sounds horrible, but for us, spinning up MySQL/Postgres was not really an option, and the .Net management systems were either too expensive or a joke in terms of features. So we got the community of Drupal on the hardware we already ran.

    Second, its taxonomy features are really unparalleled, at least from what I have seen. Coupled with Views, you can create a page out of just about any combination of vocabularies. We used it to show a category of content, and then let users filter based on keywords. Think categories and tags from WordPress, but on steroids.

    Now, all that being said, I hated developing in Drupal. I was able to achieve the goals for the site, including letting non-developers handle content updates with minimal support. But getting there was the most excruciating three months of my career. People aren't kidding when they say the learning curve is enormous.

    Overall, I am happy to see Drupal making progress, and think it is fantastic in handling certain types of websites. But at the end of the day, I hope I never have to build another Drupal website again.

  • Our org created a wish-list of CMS features. It currently has about 50 items, and these items are often different than what other orgs seem to want. The total "known" potential features seems to hover around 100, if not more.

    And orgs want CMS's to be able to be a kind of application development platform to create lower-end CRUD systems, or at least half content management and half CRUD.

    It's all a tall order to get so many potential features to work together. Plug-ins are one approach: only plug in what you

  • My personal prejudice is that CMS's are a throwback to when HTML sites were serving 'documents' (and stitched together fragments thereof). But nowadays I use HTML more like a UI specification language, which is populated and driven by an AJAX backend. In other words, it's a client-server application with a free-form UI. If I need to use templates, I use jquery templates, SSI's, or a combination of both.

    Managing templates in a database as always struck my as cumbersome, with a lot of bookkeeping work (rea

Ocean: A body of water occupying about two-thirds of a world made for man -- who has no gills. -- Ambrose Bierce

Working...