Hello, guest. Welcome!

News and thoughts from the people at EllisLab.

Real Time Communication Tools for Distributed Companies

Posted by Lisa Wess on April 19, 2012    Comments

From day one, EllisLab has been a distributed company. I oft-times get asked how we handle daily communication when we are not co-located.  In an office, there are many ways that people connect - both planned and spontaneous.  We’re not in an office, so how do we have those connections?  How do we handle daily communication needs such as organizing our work, that ‘water-cooler’ socializing, brainstorming, peer coding, and most importantly, staving off isolation?  How do we keep that vital human connection going?

Communication is a broad topic and communication in a distributed company gets complex quickly. We’ve learned a lot over the years about how to do this (and how not to do this). Today I’m just going to focus on the tools we use at EllisLab to stay connected with each other in real time (vs. intranets, forums, private blogs).

GoToMeeting: Company wide pow-wow

We use GoToMeeting for a few key meetings. These include meetings where we need full staff attendance, and especially when we wish to bring in third-parties to gather feedback. 

GoToMeeting allows offers us several features that help, including the ability to dial in to meetings, use a variety of mobile devices, share webcams, and other collaboration tools.

GoToMeeting does require that the “Organizer” be present, which isn’t always possible when random staff need to collaborate.  So enters Sococo…

Sococo: The “Virtual” office

The EllisLab staff gather in the virtual courtyard

Sococo is a GUI based interface that gives us the look and feel of an office.

Each of our team members has their own individual offices, plus we have two conference rooms and the courtyards for socializing. We hang out in our offices while working and use it for daily stand-ups, impromptu meetings, and general socializing.

Sococo’s strengths include a push to talk option, which can be invaluable in our sometimes pet and/or child filled homes, and super easy screen sharing.  Because it is an office concept, there is no need for a single organizer, and our team can use it as needed without asking for a particular person to be present to keep the meeting space open.

HipChat: “The Watercooler”

Our entire team uses HipChat, staying online while working, for all instant messenger needs. This gives us an easy way to talk with each other, see if we’re in a “do not disturb” mode or whatever else we might be up to.

It’s also really easy to setup “rooms” and get group chat discussions going quickly. Here are the current list of “rooms” in the EllisLab HipChat.

  • Board Games: Yes, we play board games together!
  • Dev Robots: Where our development team come together to discuss any coding issues, gain peer support, rant about missing semi-colons and commas, and communicate as needed.
  • EllisLab Lobby:  We use this for attending Apple events.  No kidding!  We come together as a company, hang out in the Lobby, and chatter about whatever live blogging for that Apple Event has just said.
  • Thunder Cats:  This is where our Support Team hangs out.  In here they share threads to avoid doubling responses, get assistance with threads when floundering, and generally socialize

HipChat has excellent mobile applications, and can work through XMPP/Jabber to allow our staff to choose the application of their choice to connect.

HipChat and Sococo especially are important parts of our team feeling connected to one another, sharing space, and having someone to vent at or soundboard new ideas.  Essentially, HipChat and Sococo function as our ‘water cooler’ for those small, impromptu, but often critical connections and communication needs.

Planes, Trains, and Automobiles

Last, but not least, we use “old fashion” methods to get together 1-2 times a year, most often at EECI.

All of us look forward to these trips.  We get away from our homes and join our other family - EllisLab.  These often include work sessions, but of far more importance is the downtime, socializing, and bonding that getting together bring.  Yes, the in-person element is absolutely critical, and the team getting together for a few days is invigorating, exciting, and FUN!

The danger in working in such a distributed manner is always the lack of connection and communication, the distance, and the feeling of isolation.  This makes a commitment to each other, to honesty, and being geniune humans the most critical tool. Each member of our team has to make a special effort to reach out to each other and say “hi” for no reason other than we just like each other and enjoy working together.

Comments

Speaking on Respect

Posted by James Mathias on April 03, 2012    Comments

Recently, I was asked to speak at an industry conference.

I was honored beyond words to have been asked. I said yes immediately. The conference, Made By Few, took place in Little Rock, Arkansas, on the 24th of March 2012. Little Rock is close enough to Nashville to make driving an option, so that is exactly what we did. I said we, because I took my lovely and supportive family along with me. We drove down on the 23rd, getting into Little Rock just in time to attend the delicious speaker dinner.

The next day I took my family to the Little Rock Discovery Museum, where we all had a super fun time, had lunch and walked down to the venue, where I took the podium at 2pm.

I spoke on Respect and how it relates to everything I do in this industry. The team at Made by Few filmed the whole thing, and posted it to the internet, so now you too can hear every word I said.

James Mathias - Made By Few from Made by Few on Vimeo.

I want to thank Arlton Lowry, Made By Few organizer and visionary for giving me the opportunity to speak at his wonderful conference. I have nothing but respect for the man and what he accomplished. I want to thank the Made by Few audience for being so welcoming and gracious to this first time speaker, and hearing me out. I appreciate it beyond words.

Comments

Plugging In

Posted by Shane Eckert on March 28, 2012    Comments

Hi! My name is Shane, and I am the newest addition to the EllisLab family! I would like to share how you can get plugged into this great community of ours. Getting plugged in can be of great benefit to you. Not only will it allow you to keep up to date on the latest releases and functionality with our products, in my case, being plugged in paved the way for joining the EllisLab team. See, in October 2011 I had been unemployed for almost a year. I was supporting my wife and four children by taking on web development projects, and was getting frustrated at the amount of time and energy that it took to develop PHP from scratch. So I asked a friend, Noah Stokes (@motherfuton), how he was able to turn out high quality sites so often. Noah pointed me in the direction of EllisLab’s Open Source PHP Framework called CodeIgniter. A quick download and I hit the ground running.

Getting Connected
The community means a lot to me and has so much to offer! I would like to share with you a few different ways to get plugged into the community.

The first way to get connected, and one of the most fun in my opinion, is through Twitter.  You can start by following @EllisLab. Please note that while there are several accounts you can follow @EE, @CodeIgniter and @MojoMotor most of the tweets will be coming from @EllisLab. I also found that keeping an eye on a few hashtags, like #eecms, #codeigniter, and #ExpressionEngine to be extremely helpful. Conversations in the community often happen around these three hashtags, the most popular one being #eecms.

After coming on board with EllisLab, I found that a fellow Customer Advocate, @KyleCotter, runs EE Hash. One of the nice things about EE Hash is that it shows you a one page view of all the conversations on twitter for the more popular hashtags. I also like visiting it as it aggregates news from some of the top EE websites. So I can stay up to date on EE news by visiting this one site.

What hashtags do you find helpful for staying connected in the community? Who do you follow on Twitter that helps you feel a part of the community? Tell me in the comments and be sure to check the end of this post for a list of ElliLab folks on Twitter.

Twitter is not the only way to join in the discussion. The ExpressionEngine forums and the CodeIgniter Forums are a great place to meet other talented web professionals. You can get help with code and questions, as well as gather around your favorite EllisLab products and discuss new ways of approaching web design and development. The members of our community have a lot in common, this becomes evident as you read through the threads. So, if you are not a member of the community, I invite you to join us! The cost for joining our forums is NOTHING. It’s free! I think you’ll find a community of helpful and respectful people passionate about making the web better. If you are new, you can expect more experienced users to come alongside and help you. If you are experienced, we would love to have your input and expertise!

Speaking of expertise, another way for those of you with a passion for ExpressionEngine and PHP to get involved in our community is to become an ExpressionEngine developer! We actually encourage the development community surrounding EE to build and charge for their commercial add-ons. There are several Feature Requests in the forums that could be modules! And I hear new ideas everyday in the forums and on twitter that I wish users would turn into reality! Make sure to check out Devot:ee to see the bustling activity of the developer community around ExpressionEngine. We have some documentation to help get you started.

In addition to Twitter and the forums, we’ve recently started to notice quite a bit of discussion taking place on Quora. Both CodeIgniter and ExpressionEngine are popular topics! It’s a great community and as fellow Customer Advocate @dan_decker pointed out to me, we are seeing some people over at Quora that we do not see in the other gathering places (Twitter and the Forums). It’s an opportunity to flex your ExpressionEngine and CodeIgniter muscles in a different dynamic. Have I mentioned that teaching is a great way to learn?

Lastly, I want to thank you all for letting me serve you. I wake up every morning looking forward to logging in because of our awesome community. I would love to see more of you join the conversation as I know you have much to offer. At EllisLab, we want to help you succeed!

In closing, I had a user tell me the other day that for every question he asked about CodeIgniter or ExpressionEngine on the forums, he made it a point to answer or chime in on three different threads. Just another example of how you guys rock!

Happy Coding!

Tweeting from EllisLab
@RickEllis - Rick Ellis
@Knight777 - Leslie Camacho
@jmathias - James Mathias
@Wesbaker - Wes Baker
@_KevinSmith - Kevin Smith
@Marcusneto - Marcus Neto
@KyleCotter - Kyle Cotter
@amnotsam - Sam Wilson
@pkriete - Pascal Kriete
@KevinCupp - Kevin Cupp
@brandon_h_jones - Brandon Jones
@dan_decker - Dan Decker
@shaneeckert - Shane Eckert

Comments

EllisLab and Gippy’s Internet Solutions Sever Ties

Posted by Leslie Camacho on March 08, 2012    Comments

After ten years, EllisLab, Inc. and Gippy’s Internet Solutions, LLC (the company that has powered the services provided at EngineHosting) are parting ways, giving both companies the freedom to pursue independent business goals.

On a number of occasions, including at EECI 2011 New York, the principals at Gippy’s expressed a desire to move on from our current relationship, freeing them to pursue business goals that would not be permissible within our current contract. So while EllisLab is saddened to see the relationship end, today we are officially ending our association with Gippy’s.

The ten year relationship has been so seamless that most are not even aware that there were two different companies behind EngineHosting. That experience is difficult to craft and both companies succeeded, which was a huge win for all of the ExpressionEngine clients that have enjoyed rock solid hosting over the years. We are proud of what both companies were able to accomplish in that regard.

Gippy’s has always been an excellent hosting provider and upstanding contributor to the Community and we have every reason to believe that will continue far into the future.

The only practical change for the Community is that ExpressionEngine is now available exclusively through ExpressionEngine.com. If you previously purchased your ExpressionEngine license through Gippy’s, it will of course remain valid.

The Intelligent and Good Looking PixelBuzz #5 EE Winners

Posted by Leslie Camacho on February 23, 2012    Comments

In the last issue of PixelBuzz I decided to do an impromptu contest at the very end of the email just to get an idea of how many people actually read all the way to the bottom.

The contest was simple. The first reader to correctly identify a comic strip reference would receive a free ExpressionEngine license. Of course, that’s hardly fair for a thousand reasons, so I’ve expanded the winner pool.

We have a three way tie for “first reader.” Congratulations to Travis Smith, Natalia Ventre, and Michael Rog! You all win an ExpressionEngine license (you’ll be emailed shortly).

They won the contest within 120 seconds of the newsletter being sent. So I decided to give away three more licenses at random to anyone who answered within the next 24 hours.

Additional congratulations go to Jack Tse, Mike Foate, and Joe!

Not signed up for the newsletter? Distinguish yourself as being of “superior intelligence and good looks”* by signing up now.

*This is the reference that had to be identified to win the license. Much love to all fellow DNRC members out there.

Comments

EllisLab 2012, From the Desk of the CEO

Posted by Leslie Camacho on January 20, 2012    Comments

EllisLab turns ten today, January 20, 2012. We have officially been in the “helping web professionals” business for ten years.

I’m proud of what we’ve accomplished in the past ten years but to a large extent its meaningless. That’s not how our industry and our Community works. What follows is not a list of amazing accomplishments and back slaps. It doesn’t matter what we did last year or the year before. What matters is what we’re doing right now and where we’re going next. I am proud of what we did last year (more growth, expansion, hiring, building, shipping). But I am not satisfied, not even close.

I have a very clear picture of where I want EllisLab to be and we’re getting there, but we’re not there yet. I want to go faster. A few days ago Greg Storey wrote:

Lets conquer 2012 together and make it a point in time when we can all look back and agree that’s when it all really began.

That tone resonates deep inside my soul.

I’ve initiated Phase Two of my plan for EllisLab, “Irrevocable Change.” As a team we’ve committed ourselves to the sort of change from which there is no going back. It puts front and center that what we’ve done won’t take us where we want to go. Every single person at EllisLab is working on building and creating better products and services to make your lives and the lives of your clients better.

Here’s what we’re doing for you right now and what’s next.

ExpressionEngine 2.4 will ship this month, most likely early next week (the team is doing its final checks today). This is the first release with EE Reactor contributions and we’re very excited to get it out to you.

ExpressionEngine 2.5 will ship 6-8 weeks after EE 2.4 ships. Yes, that’s two major releases fairly close together. We decided to take this approach because EE 2.5 will ship with a default Editor. We just code reviewed the Editor last week but haven’t had the chance to give it full testing or review. We don’t want to delay EE 2.4 but neither do we want you to have to wait any longer than necessary for the Editor. The solution is to give you EE 2.5 sooner rather than waiting out ExpressionEngine’s full twelve week release cycle.

In February EllisLab is sending Pascal Kriete to CodeIgniter Conference in London. We’ve always wanted to have an official presence at a CI event over the pond and we’re happy we can finally make that happen this year. If you’re going to be there, make Pascal buy you a drink and then talk his ear off about what you want in CodeIgniter. CI is Pascal’s passion and he leads CI development at EllisLab. Between Pascal, Phil Sturgeon, and the impressive CI Community, you’ll have plenty of opportunity to influence what’s next for CI.

MojoMotor 1.2 will be released in February. Brandon Jones worked extra hard over the holidays to get it ready and is working with the team to prep the release. If you want a preview of it (along with EE’s forth coming Editor) sign up for the newsletter if you haven’t already.

There’s a whole lot more in the works, but I think this covers enough ground to get the year started. Here’s to 2012! It’s going to be an epic adventure.

Comments

CodeIgniter OSL 3.0 Compliance Examples

Posted by Derek Jones on January 12, 2012    Comments

December’s PHP framework survey helped us to see how you were using CodeIgniter so we could provide concrete examples of how easy it is to use Open Software License 3.0. We discovered that 95% of the respondents use CodeIgniter in one of three ways.  We are providing an OSL 3.0 compliance example for each scenario to show how easy the obligations (and EllisLab) are to satisfy.

Also, keep in mind that CodeIgniter’s OSL 3.0 license does not apply to your own code (the application folder) unless you have chosen to license that as OSL 3.0 as well.

The content in this article is neither legal advice nor a legally binding interpretation of OSL 3.0. We are sharing our opinions, thoughts and conclusions which we hope are helpful to you. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.

Web Sites and Services for Myself

My name is Webb Tinkerer, and I use CodeIgniter to build web sites and services mostly for myself.  I use it for my personal site, for instance.  I have built sites for my friends and some coworkers, but I’ve not yet billed anyone as a client, as I’m still learning and have a full-time job that’s unrelated to the web.

My use of CodeIgniter is an unmodified stock installation, in fact I update it nearly daily from GitHub’s develop branch.  My application folder is a hodge-podge of my own code, and all kinds of libraries and classes I’ve found around the web.  Some are MIT licensed, some are BSD, there are a couple LGPL, and I even have one commercial script with a proprietary license.  I don’t share my application folder with anyone.

How did I decide to reasonably make the source code of the OSL 3.0 licensed CodeIgniter files on my site available for those who want it?  I have a Powered by CodeIgniter link in my footer that points to the official GitHub repo.  CodeIgniter rocks!

Self-Employed, Powering Sites and Services for Small to Medium-sized Businesses

My name is S. E. Owens, and I am a self-employed web developer.  Most of my clients are small to medium-sized business either looking to improve their web presence, or to execute their idea for the next great tool or service on the web.  Some of them even come to me because they’ve chosen CodeIgniter already so they can ensure that it’s easy to find a skilled developer down the road, and they found me via the CodeIgniter community.

Most of the time I use CodeIgniter off-the-shelf, but every once in awhile I apply a simple hack here or there to change the system to how I prefer things to work.  For instance, there’s this hack that I make to the Session library every single time, and rather than maintain a MY_ class, I have a fork on GitHub that includes my improvements, so that when I make changes to it, it’s super easy to deploy to all of my clients.

How did I decide to reasonably make the source code of the OSL 3.0 licensed CodeIgniter files that I’m distributing available for those who want it?  Well, as I mentioned, I forked CodeIgniter at GitHub, and my fork is public.  My hack to system/library/Session.php keeps EllisLab’s Attribution Notice, but also includes mine:

Modifications to this file by S. E. Owens are Licensed under the Open Software License 3.0 and Copyright (c) 2012, S. E. Owens.  Questions regarding the modifications or the license should be directed to .(JavaScript must be enabled to view this email address)

And though OSL 3.0 doesn’t burden me with doing so, on my online portfolio, I highlight that I am an top-notch CodeIgniter developer and link to the technologies that my client sites were built with, including CodeIgniter.  I have a lot of PHP projects and CodeIgniter related work at GitHub that I also link to from my web site, including my fork mentioned previously with my Session improvements.

Agency Building Sites for Medium to Large Businesses

My name is Joey Bloggs and I’m the CEO of Fake Foo Creative.  We build sites for many large organizations: Fortune 500 companies, universities, government agencies, and non-profits.  We use a variety of technologies in our work, and typically our clients do not allow us to disclose the technologies nor the source code used to build their sites.

A few projects are for distributable open source applications, so we just licensed the whole shebang as OSL 3.0 and the source code is available from those products’ web sites.  However our client work is largely unshareable, so when we use CodeIgniter, we are careful to make the changes only within the application folder, either with new libraries or by extending CodeIgniter’s classes. This way, we are sure that all of the code that relates to our clients is under whatever license we or they desire, even if we are modifying or extending CodeIgniter significantly.

How did we decide to reasonably make the source code of the OSL 3.0 licensed CodeIgniter files that we’re distributing available for those who want it?  On our company web site, we link to our official presence on GitHub, and one of our repositories is an unmodified fork of the official CodeIgniter repository.  We have separate repositories for our open source OSL 3.0 licensed CodeIgniter applications since those are not linked dynamically to the official CodeIgniter repository.

Conclusion

These scenarios were hypothetical examples that encompass nearly all of the reported use cases of CodeIgniter.  Hopefully you were able to identify yourself somewhere along the way and if you were previously unsure what CodeIgniter’s upcoming use of OSL 3.0 means for you, we hope you’ve gained some clarity.  These examples do not limit your options either.  Remember that the license’s wording is as follows (emphasis ours):

Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work.

We used GitHub in the examples not because that’s required - OSL 3.0 doesn’t allow us to demand that specific methods are used - but because for most, it will be the most obvious and the simplest.  You could:

  • host downloads on your own sites
  • use other public source code repositories (BitBucket, Sourceforge, Google Code, etc.)
  • mail physical copies to people who call you asking for it
  • ...

The interpretation is broad because what OSL 3.0 (and EllisLab) asks is essentially to use good judgment.  If you are using CodeIgniter, acknowledge and share the original or modified work in some way under the same terms you received it in a location and method that is reasonably determined to be inexpensive and convenient.

Comments

The Conference for Students, By Students.

Posted by Kyle Cotter on January 11, 2012    Comments

It’s Future of Web Design ‘09. Zac Gordon was crazy enough to drive four high school students to New York for this event. This is where I met Dan Philibin, the dedicated, passionate, high school student, making his way in the web industry. After listening to presentations and talking to the likes of Dan Cederholm, Mike Kus, and Elliot Jay Stocks, all of us were on a nerd high. It was at this point in time that the idea for a student based conference crossed our minds. We wanted a conference geared towards high school students that would make them want to join the industry. A conference to show them why the internet rocks.

We hit the ground running and planned a conference for April 9th, 2010. We attended Future of Web Design back in November. That left five months to plan, organize, and do something none of us had ever dreamed of doing. Somehow, we got David DeSandro to speak. Somehow, we got Dan to come down from Pennsylvania to be the keynote. Somehow, we pulled this off. That’s not to say it was without flaws. It was full of issues. But, I get to say I organized a conference at age 15. The event was successful enough that we went back and did it again the next year. And the next year. Which brings us to Friday, January 6th, 2012.

The third annual Student Web Conference. Now a senior in high school, I had one more shot at doing this. No doubt doing this the past two years taught me a lot. I was ready to go out with a bang. There was a major difference between this year’s conference and those of the past; Zac Gordon was no longer my teacher. With that being the case, I hadn’t even envisioned a conference happening this year. I thought it had run its course. Well, apparently, I was wrong. I found a faculty member to be my liaison between the administration and myself, and we were going to make this event happen. At this point it’s October, and we had established the conference to be January 6th. This left three months to organize everything, by myself.

View of the audience from the 2011 Student Web Confernece

I started thinking about speakers. Having networked with enough people in the area at various events, I had an idea of who I wanted. ExpressionEngine community member Trevor Davis was cool enough to be a speaker. Brian Talbot, User Experience designer at ThinkGeek also came. Yeah, I said someone from ThinkGeek came and spoke. Dan Philibin came again and reflected on what he’s done over the past few years. And for the keynote, the amazingly talented Martin Ringlein agreed to speak. The fact that the people I wanted to speak, agreed to do it, really pumped me up. Also the fact that David DeSandro, Russell Heimlich, and John Croston came just to come, made it worth my while.

The audience was going to be a group of high school students who were interested in computer programming and art. Though a select few knew about the web, the majority were mainly there out of curiosity. For the talks, I wanted to cover as much of the industry as possible. I wanted to hit on design, code, and business. And that’s exactly what we accomplished with the variety of speakers we had coming.

This event being a web conference, I wanted to make it relevant, fun, and interesting. EllisLab was kind enough to donate an ExpressionEngine license for me to give away. So, to enter into the drawing for the license, one would have to tweet something they learned during the event and tag it with a hashtag. This kept them engaged in the event all day, and was a great way to get them involved.

Getting ready for the big day!

So, the day of the event came. By this point, I was fueled only by caffeine the past 72 hours. Everyone filed in, the speakers presented, everything was perfect. Having done this the past three years, this was the smoothest it had ever gone. Technical difficulties were minimal to non-existent. The speakers connected with the audience. The audience was attentive. I couldn’t have asked for it to have happened any better. I genuinely feel that the students learned something, or at least, a curiosity was sparked about what we all do everyday.

We had five speakers in total. Five people certainly can’t represent an entire industry, which is where my next crazy idea came from. As a finale to the event, I wanted to show a broader, more diverse, concept of the web industry. So, I turned to all the professionals I knew, and asked for a simple clip in Photo Booth having them say why they love this industry. The final result was amazing, and I think the students really benefited from seeing this.

 

What a way to end the event right? The entire day was surreal, and goes down as a success in my book. I really enjoyed hosting this the past three years, and honestly, planning it, though stressful, was a lot of fun. Perhaps one day I’ll try this type of thing again, but on a larger scale. We all love what we do, and there is no other industry who is as passionate as we are. If the students walked away with anything that day, that was it.

For those interested in reading a more in-depth view of this event, I wrote up a reflection on my blog.

Comments

PHP Framework Usage Survey

Posted by Derek Jones on December 09, 2011    Comments

A PHP framework usage survey has been created with our community in mind.  Though not strictly limited to CodeIgniter and ExpressionEngine developers, the questions are particularly relevant to you.  The anonymous survey is very brief—just seven questions—and should take no more than five minutes or so to complete.  The survey is open immediately and will remain open over the weekend.  Thanks for participating!

Take the survey.

Update (11:40am Pacific): as we quickly discovered, I forgot to check a box on the multiple choice drop-down form questions that have “Other” that includes “Other” as a drop-down option.  Unfortunately, I cannot edit the survey since it’s already collected responses.  Go ahead and select an item from the list in addition to your answer for “Other”, and we will remove the selected item from the results.  Sorry for the inconvenience!

Comments

Please Take the ALA Web Design Survey

Posted by Leslie Camacho on November 18, 2011    Comments

Understanding how we’re growing as a professional community is critical to helping identify where we can help each other be more successful. This, in turn, changes the world for the better. This is something we believe with all our hearts at EllisLab. Sappy, perhaps. True, yes.

The A List Apart Web Design Survey is one of the most important tools we have for doing the above. It helps us all measure how we’ve grown as a Community.

Please take a few minutes and take the ALA Web Design Survey.

To get an idea of how important this information is, take a look at the ALA 2010 Web Design Survey results.

Comments

New Job Opening: Customer Advocate

Posted by Kevin Smith on November 14, 2011    Comments

EllisLab is a web application company devoted to making our users’ online lives better with powerful software that solves real-world problems. Our Customer Advocates are a team of friendly, customer-focused people who help our Community succeed with our world-class web publishing platforms ExpressionEngine and MojoMotor.

We’re the part of EllisLab with whom our users most often engage, so we set the bar for their experience with us. We understand that it’s often the small details in a person’s experience that matter the most. And we’re looking to add another full-time Customer Advocate to our team.

You will be interacting with the best of web professionals on a daily basis, helping them troubleshoot and solve issues related to building, developing, and maintaining websites using ExpressionEngine and MojoMotor. Though experience with our software isn’t required, you do need to be familiar with basic concepts behind CMS software and understand how websites are built.

We need someone with the following traits:

  • Focused on an excellent customer experience for each customer.
  • Learns quickly and is generally self-sufficient in finding resources and understanding difficult concepts.
  • Experience in stressful customer service and technical support environments.
  • Skilled in communicating clearly through written mediums, especially concerning technical concepts.
  • Experience with HTML, CSS, and other web technologies used in web design.

Experience with ExpressionEngine and MojoMotor are preferred.

Perks: Work from your favorite Internet connection, medical stipend/benefits, computer/software allowance, and absolutely no being micro-managed by cubicle super-villians.

If that sounds like your kind of gig, and you want to join a team that’s changing the world every day, get in touch with us. Just send an email to .(JavaScript must be enabled to view this email address) with your resume and several URLs to your recent sites, with preference to sites powered by ExpressionEngine and MojoMotor.

This is an entry-level position, and salary is dependent on experience. Individuals who can legally work in the United States (citizen, work visa) are welcome to apply. Third-party contractors, agencies, recruiters, etc. will not receive a response.

Comments

Software License Wrap-Up and OSL 3.0

Posted by Derek Jones on November 04, 2011    Comments

The content in this article is neither legal advice nor a legally binding interpretation of the licenses discussed, including those distributed with EllisLab products. We are sharing our opinions, thoughts and conclusions which we hope are helpful and spark meaningful discussion. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.

Software License Awareness Week draws to a close today at EllisLab.  The purpose of our articles this week was to reveal our thought processes and our conclusions, and to raise awareness about the need for every developer to do due diligence to reach their own conclusions.

We know that there are many that simply want to know “why OSL 3.0?”, and we could have answered that on the first day.  However, the articles were intentionally structured and ordered to represent the general flow and conclusions that we drew during the months-long process of research for a new license for CodeIgniter.  In this way, you get to see a snapshot of this long process as perhaps a template for your own steps in researching a software license, and also to see that we have not thoughtlessly jumped on a license.

So now we can touch on the results, and answer more directly some of the questions that have been raised.

Why A New License?

CodeIgniter has always had what we viewed as a highly permissive license that also ensured that EllisLab got credit for its work.  Part Artistic License, part BSD, it allowed you to do almost anything so long as you told people what you had changed, didn’t use “CodeIgniter” as part of your product name, and you credited that your work was based on CodeIgniter.  It was, and is, a good license in our opinion.

But as a non-certified license which is used by only our product, a developer had nothing else to go on if a lawyer had some basic questions like “is it GPL compatible, BSD friendly, etc.”  And it also prompted a semi-regular stream of questions from community members in the form of “does the license allow me to do X with CodeIgniter?”  The reality in this industry is that lawyers don’t make the daily decisions about what software to use, developers do.  This makes lawyers squirm, but it is what it is.  And as simply as the CodeIgniter license was written, it prompted skepticism among users and made it difficult for developers to answer questions when asked by their employers.  Surely there were more strings attached.

We decided we had two options: we could either adopt an OSD-compliant OSI certified license, or we could submit the CodeIgniter license to the OSI board for certification.  As desirable as it was to keep the old license, simply having it certified would not satisfy the legal teams who are concerned with there being no other body where the license was in use, and users would still be skeptical if we were really giving away what we said we were.  So…

The Search Began

As highlighted by this week’s articles, our search basically took the following order, narrowing each step:

  1. Pool the OSD-compliant and OSI certified licenses
  2. Determine whether or not GPL compatibility was a deciding factor
  3. Eliminate licenses that would restrict types of use
  4. Decide what EllisLab wants in terms of sharing and protecting our intellectual property
  5. Look into what would be needed to change licenses, and how the license might have a bearing on accepting contributions
  6. Select a license

Most of the open source licenses do not restrict usage, so that became less of a factor, particularly when we were able to see that GPL was not for us and not a compatibility requirement either.  This meant that throughout our search, there were two prevailing details that stood at the fore, the two provisions from the original license that we hold dear:

  • EllisLab would like for people to know that a work is based on CodeIgniter, and
  • we want to make sure that the CodeIgniter trademark is not inadvertently licensed for use by third parties.

The MIT license is popular, though as the Free Software Foundation (FSF) points out, you should be specific as to whether you’re referring to the Expat license or the X11 license.  We like the X11 license, and in fact chose to use it for our first party free ExpressionEngine add-ons.  The two are essentially the same except the X11 reminds that the name EllisLab cannot be used in advertising or promotion of any resulting software.  However, it does not contain provisions for restricting the use of the CodeIgniter trademark, and does not require that you disclose that the work is based on CodeIgniter.  The OSI certified MIT license is the Expat version, and doesn’t even restrict the use of EllisLab’s name in advertising and promotion.  So the MIT licenses were out.

The BSD-3-Clause license is practically identical to the X11, and was ruled out for the same reason.  The Simplified BSD license is a fair match to the MIT/Expat license, and therefore also ruled out.

These were the first two licenses we looked at, and like many in our community, we’re fond of them.  However we decided that our trademark protection and right to have our work acknowledged were too important to let go of.  We could simply add those as two simple restrictions, but we’d be right back where we were with our original license: having a modified license not in use by anyone else, nor certified by the OSI as being OSD-compliant.

Open Software License v. 3.0 (OSL 3.0)

Eventually this led us to the Open Software License v. 3.0.  Before we dive in here, we request that if you haven’t already, that you take the time to stop and read both the OSL 3.0 itself, and the official FAQ written by its creator, Lawrence Rosen.  Please.

http://www.opensource.org/licenses/OSL-3.0
http://rosenlaw.com/OSL3.0-explained.htm

OSL 3.0 appealed to us because of the OSD-compliant certified licenses, it closely retained our two most important provisions from the original license.  It excludes our trademarks from being included in the license, and it makes people aware that a particular work is based on CodeIgniter.  Well, sort of.  That’s where the copyleft provision comes into play.

None of the licenses allow us to say that you “must include an acknowledgment that they are derived from CodeIgniter” as our original license states.  But a copyleft license at least ensures that anyone who receives copies or modifications of CodeIgniter will receive them under the same terms that we ourselves licensed, including attribution notices and the like.  It’s the closest provision we can find to requiring a small tip of the hat to EllisLab for creating and sharing CodeIgniter with the world, and ensuring that what we distribute for free continues to improve and remains free. 

The answers to all of your questions regarding OSL 3.0 are contained in those two documents, but the mixing of programming concepts with similar terms in copyright law, along with a heaping spoonful of FUD from the FSF may leave you with additional questions or reaching the wrong conclusions entirely.  Let’s cover the three biggest questions:

Derivative Work

The Linux Journal published an article in 2003 that sets some reasonable definitions for derivative works as follows:

  1. The primary indication of whether a new program is a derivative work is whether the source code of the original program was used, modified, translated or otherwise changed in any way to create the new program. If not, then I would argue that it is not a derivative work.
  2. The meaning of derivative work will not be broadened to include software created by linking to library programs that were designed and intended to be used as library programs. When a company releases a scientific subroutine library, or a library of objects, for example, people who merely use the library, unmodified, perhaps without even looking at the source code, are not thereby creating derivative works of the library.
  3. Derivative works are not going to encompass plugins and device drivers that are designed to be linked from off-the-shelf, unmodified, programs. If a GPL-covered program is designed to accept separately designed plugin programs, you don’t create a derivative work by merely running such a plugin under it, even if you have to look at the source code to learn how.
  4. In most cases we shouldn’t care how the linkage between separate programs was technically done, unless that fact helps determine whether the creators of the programs designed them with some apparent common understanding of what a derivative work would look like. We should consider subtle market-based factors as indicators of intent, such as whether the resulting program is being sold as an “enhanced” version of the original, or whether the original was designed and advertised to be improvable “like a library”.

Points number 2 and 3 are particularly salient in the context of a programming framework like CodeIgniter, which is little more than a collection of libraries and functions with a hint of context, enabling you to create web applications without ever looking at the source code.  But do these definitions carry through in the legal terms of the software license?  Well, that article was written by Lawrence Rosen, the author of OSL 3.0, so undoubtedly that informed how he decided to frame the definition of derivative works.

As explained by Rosen, the verbs used to define a derivative work in OSL 3.0 (which it does more clearly than any license we could find) reflect the “kinds of activities that we generally do to create derivative literary or other expressive works.”  Functional linking has nothing to do with it.  Whether or not a copyrighted work of PHP code could operate with or without an OSL 3.0 piece of software has nothing to do with it.  “...linking an unchanged Original Work with another independently-written work does not, absent more, create a Derivative Work…such an act is merely the incorporation of a copy of that Original Work into a collective work” (emphasis ours).

While OSL 3.0 is a copyleft license with a reciprocal licensing requirement, it is not a viral “copy-forward” license, so using OSL 3.0 software as part of a collective work does not affect the licensing requirements for any of the other parts of the collective work.  Short version: your code really is your code, and you can license it however you like.

As a comparable example, Magento Commerce community edition is distributed with OSL 3.0.  The code that you use to build the application though is not.  To quote Rosen from the Magento forums:

“Only if you make changes to the Core folder [of Magento Commerce]—and if you distribute those changes—must you license that code under OSL 3.0 and make its source available.”

CodeIgniter is similar.  None of the files in the application folder are licensed as OSL 3.0, so there is no derivative work created by the addition of your own controllers, libraries, helpers, views, etc.  Only if you make changes to the CodeIgniter core system files that are OSL 3.0 licensed—and if you distribute those changes—must you license that code under OSL 3.0 and make its source available.  And those files are easily identified because a clear attribution notice is included at the top of every file.

When then does the reciprocal licensing and source code disclosure kick in?

Distributions

Physically delivering copies of software to third parties is obviously a distribution

There’s an old adage that if something is obvious you don’t have to say that it’s obvious, and that’s the case here.  If you are letting people download your derivative works, sharing it on GitHub, etc. you are distributing, and these modifications must be licensed as OSL 3.0 and the source code disclosed.

Enter the Application Service Provider (ASP) Loophole

One problem of open source licenses that treat distributions only in the traditional physical sense is that very large organizations with a lot of engineering muscle (read: Google, Microsoft, Apple) can benefit greatly from the software without ever giving back.  They can take that free software, modify it significantly, perhaps with amazing improvements given their resources, deploy it as a service on their network, and never have to share those improvements with anyone else.

With CodeIgniter, we’re not talking about building web sites, we’re talking again about derivative works - modifications to the OSL 3.0 licensed files in the framework.  We think that plugging that ASP loophole is in the best interests of every CodeIgniter user as it ensures that the copyleft provision is triggered even if the derivative is deployed only as a web service.

Interestingly, the FSF feels the same way, that software which is commonly run over a network should be licensed in a way that accounts for such usage.  Their solution is the AGPLv3, since the GPLv3 does not plug this loophole.

Reciprocal Obligations

So let’s say that you have modified and are distributing CodeIgniter per the definitions above.  What’s your obligation?  As a reciprocal license, such affected files must be licensed as OSL 3.0.  That makes you the Licensor, distributing to Licensees.  As an obligation that we share since we are also a Licensor of OSL 3.0 licensed source code, §3 states:

Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work.

Reasonably calculated to be inexpensive and convenient (to the licensee), for as long as you are distributing CodeIgniter.

We love GitHub.  It has been a great boon for CodeIgniter’s development, and the features make it a joy to work with.  It happens to also be free for anyone to access a read-only copy of source code who has an internet connection, even if it’s only their mobile phone.  You’d be hard pressed to find a less expensive and more convenient way for licensees to access your source code, though it’s certainly not the only option.  Also you can fork our repository for free, even if you have no intention of creating a derivative work.

See how reasonable that is?  As a contrast, here are some things that OSL 3.0 does not place as obligations on Licensors:

  • Placing a prominent download link to your independently written code or even CodeIgniter on a web site you build with CodeIgniter.
  • Demanding the location or method that you use to disclose the source code.
  • Making your users and site visitors click anything to acknowledge that they’re using an application written on CodeIgniter.
  • Disclosing and licensing any of your independently written code with OSL 3.0 because it only functions with some derivative work you have made in CodeIgniter by copying and modifying OSL 3.0 licensed code from a default library in a new library that you’ve created and reciprocally licensed with OSL 3.0.
  • Distributing CodeIgniter at all with a software package that is comprised solely of your independently written code (your application folder) and its contents even though it requires CodeIgniter to function.

Think about that last one for a minute.  We happen to know a place that anyone in the world can download CodeIgniter for free, even downloading a specific revision.  We’re not making any specific recommendations here, but it demonstrates how important it is to do deep research on these topics.  It would seem that the GPLv3 only requires packaged and distributed works to be encompassed and compatible with the GPLv3.  Since that license does not consider transmission over a network as a deployment, that usage is still private, and no copyleft or copy-forward action is triggered.  And as stated before, OSL 3.0 has no quarrel with GPL.

Hopefully we’ve answered your questions as thoroughly as possible and demonstrated how we arrived at our conclusions.  We chose OSL 3.0 because it allows you to do all of the wonderful things you’ve ever been able to do with CodeIgniter, it protects our trademarks, it ensures that CodeIgniter and its improvements will always be free, that downstream licensees will get CodeIgniter under the same terms we gave them, and it provides CodeIgniter with an OSD-compliant OSI certified license that developers can point to to satisfy their employer’s and their attorney’s questions.

We’ve created a very brief summary of how future versions of CodeIgniter are impacted in this CodeIgniter License FAQ.

We can tell from our analytics that people are spending a lot of time on reading these articles, which we greatly appreciate.  Armed with additional knowledge, and understanding the importance of researching these topics whatever your personal conclusions, we are confident that we have contributed towards helping you succeed on the web, which has been and always will be our primary goal.

Thanks to all for reading and joining the conversation during EllisLab’s Software License Awareness Week!

References and Further Reading

https://github.com/EllisLab/
http://www.opensource.org/licenses/alphabetical
http://codeigniter.com/user_guide/license.html
http://www.opensource.org/licenses/OSL-3.0
http://rosenlaw.com/OSL3.0-explained.htm
http://www.linuxjournal.com/article/6366
http://www.magentocommerce.com/boards/viewthread/13938/P15/
http://www.sitepoint.com/podcast-29-roy-rubin-magento/
http://www.itbusinessedge.com/cm/community/features/articles/blog/rosen-says-his-open-software-license-solves-gpl-v3s-problems/?cs=17204
http://www.gnu.org/licenses/agpl.html

 

Comments

EECI 2011 Wrap Up

Posted by Kyle Cotter on November 04, 2011    Comments

The impact EECI 2011 had on me is hard to put into words. I was in the same room with all the people I looked up to in this community. That surreal moment, when you realize the software I contribute to, has an impact on people’s daily lives is just amazing. What better feeling can one have than realizing that they make a difference.

The conference was fantastic! Robert and his wife Loise did an amazing job hosting the event. It was fun, educational, and overall, just nice to take a break from the day job.

For those who attended, we really had fun meeting and hanging out with all of you!

Dev Day

Talk about hard core geeking out! A room full of nerds, coding to their heart’s content, learning from each other. The best part about this community is how willing everyone is to share their knowledge with you.

The turnout was great and we think people really learned new techniques in ExpressionEngine!

The task of the day was to build a web site for a fictitious band. Everyone was separated into groups, and each group had to come up with a working site at the end of the day.

People took their work very seriously, to the point where they made a real site for it. Check out Team 14’s site.

All in all, everyone had a blast building their site, and it was a great opportunity to chat and meet new people.

The Conference

The amount of people that showed up was outstanding! The place was packed!

The topics presented were timely and informative. From how to be successfully self-employed to making your sites more efficient, EECI was the place to get educated.

Did you not have a chance to get in on all the action? Would you like to see the slides from the speakers? Well, then this is the list for you:

Speakers and Slides

  • Leslie Camacho – Opening Keynote
    Learn about how EllisLab has empowered all of you to change the world. Read up on our plan for the next few releases of ExpressionEngine and more.
  • Paul Burton – Don’t Call Me A Freelancer
    “Freelance is not a business”. Learn what it takes to be successfully self-employed, and how to get the respect you deserve.
  • David Dexter – Powerful E-commerce with BrilliantRetail and ExpressionEngine
    Have an upcoming e-commerce site? Check out the features BrilliantRetail has to offer.
  • Lowell Kitchen – How to Install, Manage, and Host over 250 Expression Engine installations
    Learn Blue State Digital’s method for managing and updating over 250, yes 250 EE sites.
  • Lodewijk Schutte – Parse Order Pro
    Why isn’t my page rendering correctly? Because the parse order matters you say? Low gives the lowdown on the EE parse order.
  • Aaron Gustafson – Progressive EEnhancement
    Progressive enhancement is something we all need to think about. Check out Aaron’s talk on how we should be progressively enhancing our sites.
  • Travis Schmeisser – The Business of Add-ons
    ExpressionEngine enables developers to make a living off selling add-ons. Travis goes over the basics of being successful in selling your add-ons.
  • Matt Weinberg – 10 Ways to Rock ExpressionEngine
    A top 10 list from an EE expert. Definitely worth checking out.
  • Erik Reagan – Debugging Site Problems (Workshop), Environments & Version Control: The Why & How
    Erik did a workshop at Dev Day on how to debug site issues. For his talk, he talks version control, and how you can git it on.
  • Jacob Russell – EE, Faster
    Want to make ExpressionEngine run like a beast? Check out Jacob’s tips for being the most productive with your system.
  • Brian Warren – Happy Clients
    Brian goes over steps you can take while setting up your ExpressionEngine site to make it easier for your clients to use.
  • Fred Boyle – EE + Mobile
    Fred goes over how to create a great mobile experience for your ExpressionEngine site.
  • Mark Huot – Add-on Development
    Ever want to build your own add-on? Mark walks through each type of add-on, and walks through the process of building an add-on.
  • Rob Sanchez – The Beast Within
    Ready to dive head first into the core of EE? Well, Rob will help you get started.
  • Ruthie BenDor – No Guessing: Prototyping Interaction For EE
    Ruthie goes over why you should start working directly in EE from the beginning. (Slides currently unavailable)
  • Greg Aker – His Slides
    When things go wrong, handle it like a professional. Greg had an open mic discussion on how to handle different situations.

Wow! That is one list full of awesome!

EllisLab

Most of EllisLab was present at EECI. (Which was super cool!) We hope you came up and said hi. (I heard James personally thanked and shook people’s hands as they were leaving the conference. How sweet is that!?)

We had the amazing Nate Croft take pictures for us which you can check out here.

Aside from the EL team having the times of their lives, what news did they share about us as a company?

Check out our fearless leader’s keynote presentation:

EECI was a huge success. We all had a blast. We look forward to seeing all of you again next year! We’re truly thankful for the wonderful community we’re apart of.

Over the next few weeks, we’ll be posting some more specific information from the keynote, such as end of life for EE 1, EE Reactor, and more. If you haven’t read it already, you should check out our post on CodeIgniter’s new license.

Comments

Contributor License Agreements

Posted by Derek Jones on November 03, 2011    Comments

The content in this article is neither legal advice nor a legally binding interpretation of the licenses discussed, including those distributed with EllisLab products. We are sharing our opinions, thoughts and conclusions which we hope are helpful and spark meaningful discussion. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.

This article will discuss Contributor License Agreements, their relationship to ExpressionEngine Reactor and CodeIgniter, as well as make a proposal to the CodeIgniter community for contributions moving forward.

CLAs and Their Use

A Contributor License Agreement (CLA) is a mechanism that defines the terms under which a work is contributed to another company or project. They are most often used for open source software, but they can be used for commercial software as well. The purpose is to allow contributions to be made with no strings attached - or clearly defined strings, as the case may be.

OSS Watch strongly recommends the use of a CLA when accepting third party contributions, in order to ensure that the organizer of the project has the necessary rights to redistribute, modify, relicense, defend, etc. the resulting work. While they are typically light-weight agreements compared to other contractual agreements, they can still be a hassle.

This need becomes immediately clear when you consider situations like our ExpressionEngine Reactor program, where commercial entities would like to freely contribute to the project of another commercial entity. For example, Barrett Newton’s contributions to ExpressionEngine will certainly directly benefit Barrett Newton, but for EllisLab to ensure that they retain the rights to redistribute, sell, alter, and defend that code, it is wise to have a legally binding agreement stating what Barrett Newton is and isn’t relinquishing.

Open source software projects often view this a little differently, particularly on GitHub, where it could be easily argued that a pull request to a project with an existing copyright is an implicit grant of rights to that project. Also, bug fixes and corrections are rarely able to even be copyrighted works by law because they are too insubstantial. These types of contributions are by far the most common to occur outside of the core project team.

The table below shows some popular projects and the type of CLA they use:

Symfony2 CakePHP Zend Apache
None* Three page PDF, snail mailed† Two page PDF, snail mailed‡ Two page PDF, snail mailed§

* http://symfony.com/doc/2.0/contributing/index.html
http://cakefoundation.org/files/cla.pdf
http://framework.zend.com/cla
§ http://www.apache.org/licenses/icla.pdf

The details of each CLA differ slightly, but the gist is that copyright and patents are granted freely and in perpetuity to the organization. Some projects like Joomla even have a different agreement for minors. Symfony2 doesn’t employ one at all, which is not an uncommon decision, as browsing GitHub can easily show.

Alternative to a CLA

There is an interesting alternative to a CLA that is employed by perhaps the largest open source project on the planet in terms of contributors: the Linux kernel. Supposedly, somewhere near 4000 developers have contributed to the Linux kernel, so it’s easy to see how collecting and maintaining CLAs would be unwieldy. So what Linus Torvalds implemented instead is a Developer Certificate of Origin (COO).

Developer’s Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
  have the right to submit it under the open source license
  indicated in the file; or

(b) The contribution is based upon previous work that, to the best
  of my knowledge, is covered under an appropriate open source
  license and I have the right under that license to submit that
  work with modifications, whether created in whole or in part
  by me, under the same open source license (unless I am
  permitted to submit under a different license), as indicated
  in the file; or

(c) The contribution was provided directly to me by some other
  person who certified (a), (b) or (c) and I have not modified
  it.

(d) I understand and agree that this project and the contribution
  are public and that a record of the contribution (including all
  personal information I submit with it, including my sign-off) is
  maintained indefinitely and may be redistributed consistent with
  this project or the open source license(s) involved.

A COO basically states that the author of the patch has the rights to submit the code under the copyright and license associated with the file and project. Rather than requiring each of the thousands of developers to sign and submit a CLA, they sign their patch in their commit message with their name and email address:

Signed-off-by: Random J Developer <random@developer.example.org>

Git even introduced this as an automatic feature with the —signoff (or just simply -s) flag of the commit command.

git commit --"This is my commit message, and it will automatically be signed" 

The sign-off indicates that they confirm that their contribution conforms to the COO. Simple, and has been effective for the Linux kernel community for the past seven years.

Proposal for CodeIgniter

CodeIgniter currently does not have a CLA or other formal mechanism in place for contributions. Like Symfony2 and many others, grant of rights for contributions have been assumed to be implicit. Contributions have been made to CodeIgniter because the contributors want those improvements to be included in CodeIgniter for everyone and all uses that CodeIgniter allows.

The law also makes a distinction between copyrighted work and registered copyrighted work, only the latter of which would have a standing to file a lawsuit if a dispute ever arose. There also has to be proof of financial loss as a result of the misapplication of the registered copyright. There aren’t any contributions to CodeIgniter under registered copyright, and even if there were, it doesn’t seem likely that such a person would file a law suit against every individual who has ever earned money as a result of using CodeIgniter. A nightmare to file and a bigger nightmare to prove damages. I mean, it’s free software and the contributions were made freely.

Legal burden or not, something we have been highlighting recently at EllisLab is the need for respect in the community. We want to honor and respect contributors by making sure that they understand what a contribution to CodeIgniter means, as well as ensure that existing contributors have the option to retroactively make that determination. We’d also like to make a prominent contributor page on the CodeIgniter.com web site so contributors have some well-deserved recognition. We would like to propose that this occur with three steps:

Adopt a COO for New Contributions

Rather than mess with a slow and cumbersome CLA we are proposing the adoption of a COO akin to the Linux kernel community. Since CodeIgniter source is maintained with Git, the burden on contributors should be minimal: remembering to use the -s flag when committing. If you’re using Tower, there is even a "Sign-Off" checkbox in the commit window. You could even alias git commit to use the -s flag so you don’t have to think about it.

The COO would be prominent on the GitHub home page for CodeIgniter as well as in the documentation, so it would be clear and easy for all to read. Pull requests that come in without a sign-off would be gently pointed to the COO by the Reactor team or EllisLab, and the commit messages can be easily modified by the submitter to include their sign-off.

Allow Historical Contributors a way to Opt-out

There are currently about 71 contributors to CodeIgniter, with maybe a half dozen or so with substantial, copyrightable contributions. We would like to send a message to existing contributors regardless of the scope of their contribution, thanking them and outlining what the inclusion of their contribution means for CodeIgniter. And if they decide that they do not want their work to remain in CodeIgniter, we will happily remove it.

What would it mean if contributions were removed? Well, as mentioned, most contributions are not copyrightable works. We would revert the changeset, noting the original contributor’s objection, and likely immediately recommit the same or similar bug fix / correction by a contributor who signs off on the COO. Contributions of major changes or large sets of functionality would be trickier; we’d have to revert, acknowledge their objection, and decide whether or not the functionality needed to stay in CodeIgniter. If so, it would need to be reimplemented from scratch by a developer who acknowledges the COO.

Since the contributions were made freely, we’re hopeful that we won’t have any who decide to remove their contributions, but rather than stick with the legal theory that it’s not necessary, we want to take the high road, the ethical road, the one that respects the community, and let each one decide.

Prominently Acknowledge Contributors

The last step would be to create a Contributors page on the web site, perhaps in the documentation. Something like the MODX wall of fame but recognizing code contributions rather than financial contributions.

The more substantial the size and frequency of contributions, the more prominent the recognition. Such a page would accurately reflect the worldwide nature of the CodeIgniter team beyond the core contributor, EllisLab.

Summary

We only recently educated ourselves on CLAs, as contributions to CodeIgniter were fairly sparse and minimal until we moved to GitHub a few months back. That dramatic influx and the beginning of the ExpressionEngine Reactor program brought the issue to our attention.

Now that we have educated ourselves, we agree with the OSS that they are important. We see that using a CLA or COO demonstrates respect for those who freely contribute to a project and therefore it is the right thing to do.

For ExpressionEngine Reactor which is a handful of contributors with more corporate-to-corporate IP sharing, a CLA is probably more appropriate. For CodeIgniter, we think that means a COO.

Lastly, we’d like to hear from the CodeIgniter community on our three part proposal for handling contributions and recognizing contributors.

References and Further Reading

http://www.oss-watch.ac.uk/resources/cla.xml
http://elinux.org/Developer_Certificate_Of_Origin
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingPatches
http://www.garfieldtech.com/drupal-symfony2
http://forge.mysql.com/wiki/ContributingFAQ
https://www.djangoproject.com/foundation/cla/
http://developer.joomla.org/contributor-agreements.html

 

Comments

Seeking Customer Focused Designer

Posted by James Mathias on November 03, 2011    Comments

EllisLab is looking for a full-time production designer and developer to work on a wide variety of amazing projects, from ExpressionEngine to the EllisLab family of websites, and a bunch of fun things in between. The position provides variety and experience to help you grow and hone your craft.

We need someone with the following traits.

  • Customer Focused.
  • Solid Front End Development skills.
  • Solid Visual Design skills.
  • Desire to help make the web better.

Sound like you? Good, let’s talk.

Send your cover letter to James Mathias (Chief Creative Officer), along with a URL to your online portfolio and a PDF attachment or URL to your resume, and let’s talk.

EllisLab makes ExpressionEngine, CodeIgniter and MojoMotor. We make online lives better, and we all get to work from home.

Salary is dependent on experience.

Individuals that can legally work in the United States (citizen, work visa) are welcome to apply. Third-party contractors, agencies, recruiters, etc… will not receive a response.

.(JavaScript must be enabled to view this email address)

Comments

Four Dirty Words: Intellectual Property, Trademarks, and Patents

Posted by Derek Jones on November 02, 2011    Comments

The content in this article is neither legal advice nor a legally binding interpretation of the licenses discussed, including those distributed with EllisLab products. We are sharing our opinions, thoughts and conclusions which we hope are helpful and spark meaningful discussion. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.

Dirty words in the sense that the connotation is often in taking and restricting rather than giving and creating.  The truth lies somewhere in-between.  This article seeks to discuss trademarks and patents in very general terms, and inform on how intellectual property interacts with your choice of software license.

Intellectual Property

Intellectual Property (IP).  If you ask most people, they would say that IP is comprised of the intangible ideas that a company claims ownership to, and the tangible works that stem from those ideas.  The meaning of the term itself is debated, especially by companies who would like to broaden the scope of ideas and works that they desire to claim sole access to.

And it’s easy to see why some don’t like it.  It seems, particularly in the United States, to be an umbrella term that continues to grow in size and scope (most of the information in this article pertains to the United States; each country governs most of these issues independently).  The concept of IP sparks issues like DRM, registration call-backs in software, and some claim it even threatens free speech.

On the other hand, there is some truth to the assertion that people need to have incentive to create and release their work, namely, being entitled to benefit socially, monetarily, or otherwise from their own creation.

Obviously EllisLab has some “intellectual property” that it wants to retain rights to benefit from.  As does any commercial software company.  So for the most part we think it’s a good thing for healthy enterprise and economy, but boy is it easy to begin overreaching.

One important point is that copyright, trademarks, patents, etc. all have their own laws and regulations, so you have to be careful when talking about IP that you don’t cross over concepts from one to the other, as the rules are typically different for each.

Trademarks

Trademarks are a way of identifying the source of a good or service of one party from that of others.  It’s not about owning content, it’s about owning identification and association with a particular word, phrase, symbol, design, etc.

We regularly see in the PHP community the execution of good ideas with bad names.  Meaning, the developer did not perform due diligence before choosing a name to see if they were free to use it.  For this reason, we recommend doing adequate research ahead of time when coming up with a name for your product.  Check to make sure the name has clearance, and is not already used by someone in your industry.  That it is not such a common word (i.e. ‘paper’, ‘application’) that is impossible to use as a trademark.  That includes domain names.

Can this be frustrating?  Absolutely.  We have countless times rejected clever, witty, or desirable names because of prior use and identification with something else.  It’s a bummer every time.  But doing so is worth it, because you are demonstrating respect for that other person, and also for your own work, taking adequate steps to ensure you aren’t inviting trouble for yourself at a later date.

Patents

We don’t have a lot to say about patents, as to date we haven’t engaged in the business of patent writing.  Conceptually, the good part of patents is that it allows inventive works to be shared publicly, while allowing the creator to have sole benefit (a temporary monopoly) for a short period of time.  It’s an incentive to create.

The bad part is easy to see though, especially with companies who exist and make money not by creating but by filing or buying patents that they have no intention to use, solely for the purpose of extracting royalties from people who are “infringing”.  That is in quotes because in many cases it seems that there is no real infringement, but a very large company with deep pockets extorting small companies or individuals who even if they were not infringing, would bankrupt themselves trying to fight it.

Relation to Software Licenses

These topics all relate to software licenses in that you want to choose a software license that reflects your conclusions about all aspects of IP.  Like code, all of these things—copyrights, trademarks, patents, etc.—can legally be licensed for use to third parties under any terms the owner wants.

So when choosing a software license, you’ll want to make sure that you are only licensing the things that you want to license to others, and under terms that you accept.

As highlighted yesterday, one example is when choosing the GPL.  If you include trademarks embodied in the original work, you could potentially be licensing the trademarks under the same terms as the GPL unless you supplement the terms of the license (see §7).  Other licenses might even put your trademarks into the public domain.

Some software licenses explicitly exclude the use of contributors’ names and trademarks, and it’s possible that these exclusions aren’t even necessary.  If you assign value to your trademarks, though, you’ll probably want to err on the side of caution.  How much would you be hurt financially and emotionally if others were somehow allowed to use your trademark or patent because of your choice of software license?

For us, OSL 3.0 has good provisions for both trademarks and patents and is free of a political agenda with respect to either.  It ensures that licensees know that trademarks do not come free with the license, but a license for all included patents does.  And if anyone invokes a lawsuit over a patent, their rights granted by the license are immediately terminated.

All in all, these can also be complex issues to navigate when choosing a software license.  An overly-paranoid view is probably not healthy, but neither is one that pays no heed, so we hope that we have at minimum raised some awareness that might otherwise not have been there with how IP comes into play with your software and how software licenses in turn can impact your IP.

References

Further reading on the topics discussed.

http://www.gnu.org/philosophy/not-ipr.html
https://www.eff.org/issues/intellectual-property
http://www.uspto.gov/faq/trademarks.jsp
http://www.uspto.gov/web/offices/ac/qs/ope/fee092611.htm#tm
http://lahserpatent.com/tm-symbol/

Comments

GPL or not to GPL

Posted by Derek Jones on November 01, 2011    Comments

In the free software world, that is often the question.

The content in this article is neither legal advice nor a legally binding interpretation of the licenses discussed, including those distributed with EllisLab products. We are sharing our opinions, thoughts and conclusions which we hope are helpful and spark meaningful discussion. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.

The GPL is typically a very polarizing software license. It has promoters and detractors, with few who are non-committal. Full disclosure, EllisLab is not a fan of GPL, and this article is going to reflect that opinion. That said, we respect every copyright holder’s right to choose the license that they want to use for their work. So the purpose of this article is not to persuade you to adopt our view of the GPL, but to explain our conclusions, and perhaps even educate our communities on the proper use of the GPL, as it is often misapplied and misunderstood.

Ambiguity

This is one of the problems we see with the GPL - its loose wording and use of technical jargon gives the appearance of being developer friendly. But in actuality, both of these are problematic because of one of the conclusions we shared yesterday: "...it will be a judge or ruling copyright authority…that will interpret and render a judgement".

Copyright lawyers and judges who hear copyright cases often aren’t familiar with the technical jargon employed in our industry, and combined with the loose wording it seems to serve to leave room for a wider range of interpretation by legal authorities.

For instance, there is much ambiguity surrounding when code of independently written software relating to GPL code must be disclosed or not. Many paragraphs are spent in the GPL regarding source code obligations, and debates crop up continually over details of static and dynamic linking, whether linking is at issue at all, and how software works with other software.

Looking at the lawsuits that crop up regarding GPL is a testament to that fact, including some with outrageous conclusions, like the one reached by some lawyers in Mauritius that GPL software has no copyright restrictions and that derivative works transfer the full copyright and ownership of the code to the one making the derivative work.

Obviously, we don’t believe that the GPL does that, but the fact that lawsuits are reaching Supreme Courts with such extreme claims intact draws into question whether or not the GPL is actually effective at accomplishing its noble goals.

Speaking of those goals, note the GPL Preamble, which lays out the philosophy of the license, but is itself not included in any of the legally binding portion of the license (Terms and Conditions). This can add to the confusion of the license, particularly if people quote GPL restrictions from the preamble.

As an addendum to yesterday’s post, it’s noteworthy to point out that the Licensor’s and Licensee’s understanding of a license between themselves will carry weight in a courtroom. The opinions of the author of the license have no bearing, unless he also owns the copyright to the software in question. This is why we saw it unwise to rely on the Free Software Foundation (FSF) to interpret the GPL, and certainly not other licenses. Unless you’ve yielded your copyright to them (they recommend that you do!), they do not have a stake in the application of the license between you and your licensees.

Copy-Forward

Another aspect of the GPL that we find onerous is what is commonly referred to by developers as the "viral" nature of the license. Let’s call it "copy-forward". That when you incorporate GPL software into a package, the whole package must be distributed as GPL. This goes beyond copyright law in that forming collective works from copyrighted material normally does not constitute a new, derivative work.

Copyleft is helpful. Copyleft is a term used to describe a method for making some work free, in this case software, and requiring that all modified versions of that work be free as well. It works to ensure that free software remains free as it grows and gets patched. This is an area that we agree with the philosophy of the GPL.

Copy-forward, though seems less helpful. It creates an "island of software" whose reach goes beyond simply keeping that software free. Why should free software care what license other free software uses so long as both are guaranteed to remain free?

Commercial Limitation

It is technically true that the GPL does not forbid the sale of GPL software, but it undoubtedly limits the options a company has to monetize their own endeavors. GPL software does not work well in a product based model whereas it more easily can in a service model. There’s no problem with the latter if that’s the type of business you want to build, but why limit enterprise in such a restrictive way?

This is a good time to interject an answer to the question that has come up of whether or not ExpressionEngine or MojoMotor would be OSL because CI is OSL. The same question could be raised of whether or not a copyright holder of GPL code could use that code in a commercial application without applying GPL to the commercial application.

The answer goes back to a conclusion brought out yesterday: "...the copyright holder still owns the work, and retains a right to license it how they choose". Your granting of certain rights to others does not take away your own rights to your own works. In practical terms it means that even if OSL were a viral license (it’s not) that latched on to a licensee’s independently written code, the licensor still owns his own code and can use or license it however he/she sees fit. The Licensor is not bound by the license granted to licensees. Even if CodeIgniter were GPL, EllisLab, as the copyright owner of CodeIgniter could still use CodeIgniter without the GPL license as part of ExpressionEngine, MojoMotor, etc.

The same is true with your own code. You own the copyright, and you decide how your code is licensed in a CodeIgniter application. Unlike the GPL, OSL does not demand that you license your code in any specific way, nor that you even disclose your own source code. So you can sell or give away your CodeIgniter applications without any conflict with OSL. In fact, you could choose to license your independently written code as OSL, give it away for free, and turn around and sell that same code with a closed commercial license. It’s yours. The popular ecommerce platform Magento is in fact licensed this way. The community version is OSL, and the editions you pay for are licensed differently. They can do that because it’s their copyright, their code. So can you. You can always choose who you grant rights to your code, and under what terms.

The only thing you are obligated to license and make available under OSL are modifications you have made to the OSL-licensed CodeIgniter files, which can be clearly identified in their attribution notices (more on this in a bit).

Patents

GPL also seeks to restrict the use of software that contains patents. Here is one area where we again agree with the GPL’s basic philosophy (patent proliferation and litigation is bad) but disagree with how it attempts to solve it. §11 of the GPL is all about patents and is 8 paragraphs long. Compare that to OSL 3.0 which contains two sections dealing with patents, but in a total of four sentences.

Instead of restricting patent use, we prefer the OSL 3.0’s take - that like it or not, we live in a world of patents, so we need to make sure that licensees have rights to use any included patents, and that everyone should have a measure of protection against patent lawsuits. OSL 3.0 handles this with an explicit grant of patents embodied in the original work to the licensee, and an immediate termination of the rights granted by the license when a lawsuit is initiated over a patent.

We will touch again on our conclusions regarding patents on Wednesday.

Trademarks

In order to retain strong protection of your name and trademarks, you must supplement the terms of the GPL as it states in §7d and §7e:

...you may…supplement the terms of this License with terms…

d) Limiting the use for publicity purposes of names of licensors or authors of the material; or

e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

You would need to provide in a clearly documented way that you are declining to grant rights to your trademark names, otherwise these are not expressly protected by the GPL.

Which raises an interesting question. If you do not supplement these terms for §7e, what happens if one of your licensees does? Did you inadvertently pass your trademarks on to them, suddenly making them the owner? Would you then have to change your own product’s name because someone downline asserted that right? It doesn’t seem logical, but with the GPL, again, look at what absurd claims have already made it before the courts. Just the thought of being embroiled in such an entanglement should be motivation enough for someone adopting GPL to put forth appropriate effort ahead of time to protect their trademarks.

So you can see why we are attracted to the importance that OSL places on warning licensees that your brand names and your reputations are not included for free with your copyright licenses.

Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior permission of the Licensor…No license is granted to the trademarks of Licensor even if such marks are included in the Original Work.

FSF and FUD

Only related to the GPL in terms of the reach of its politics, the Free Software Foundation itself has a heavy-handed stance on other copy-left licenses, particularly OSL. Their website even contributes directly to some particularly strong fear-mongering (notice the name of the anchor link “OSLRant” when you click through):

Recent versions of the Open Software License have a term which requires distributors to try to obtain explicit assent to the license. This means that distributing OSL software on ordinary FTP sites, sending patches to ordinary mailing lists, or storing the software in an ordinary version control system, is arguably a violation of the license and would subject you to possible termination of the license. Thus, the Open Software License makes it very difficult to develop software using the ordinary tools of free software development.

This statement by the FSF has led many to conclude that OSL software cannot be developed in an open way, and that even hosting the project on GitHub or using source control immediately terminates the license. This is flatly not true. Larry Rosen, the lawyer who wrote OSL went as far as to say that "this is more hogwash from the FSF".

It’s not fully clear why the FSF would make such a strong assertion when the OSL obviously doesn’t contain anything of the sort. It asks for "reasonable efforts" to obtain express assent. It does not demand a particular mechanism, there is no requirement to click-wrap, shrink-wrap, or obtain signatures. Having the license in the README, as a file in the main directory of the repo, in the product’s documentation, and on the GitHub homepage all seem like reasonable efforts to alert developers that use of the software constitutes agreement to the conditions given in the grant of license.

The fact that the change in license garnered as much attention as it did shows that developers do at least look at licensing and documentation. How someone could fork a repo on GitHub, see all of the files in their own account, make a meaningful change, and submit a pull request, all without having any idea that they are using licensed software seems a bit far fetched. If everyone were that negligent, no one would have noticed or paid any heed to the license change.

Compatibility

Ok, this section is going to be a little painful, so please know that our goal is to educate and not to cause trouble for anyone. If you learn something from this section that impacts your work, we encourage you to take steps to assure that you and your licensees have a valid agreement.

The CodeIgniter license is not compatible with the GPL. We’re not talking about OSL 3.0 here, we are talking about the simple license we have used for CodeIgniter from the very beginning. §5 alone:

Products derived from the Software must include an acknowledgment that they are derived from CodeIgniter in their documentation and/or other materials provided with the distribution.

The GPL does not allow any additional restrictions beyond those placed in the GPL itself. The FSF refers to clauses like the above as an "obnoxious…advertising clause".

So for everyone who has been tweeting or posting that the license change is going to prevent their product from upgrading / existing / or moving forward: I’m sorry to inform you that you have probably been in violation of GPL this entire time.

In addition to revealing a large misunderstanding of the terms that the GPL places on your code, looking at some of the products that have been mentioned revealed that there’s also an apparent lack of understanding of how to clearly apply a software license in general. So we’ll take some time to help out there. After performing due diligence in researching which software license you want to use, make sure that you have actually granted the rights to your licensees that you want them to have, and have established that you have the right to do so as copyright holder.

  1. Two separate elements must be added to each source file of your program: a copyright notice, and a statement of copying permission, i.e. the license you are distributing that file under.
  2. You must include an unmodified copy of the license itself somewhere in the distribution of your program.
  3. If your code includes code copied from other programs, include their copyright noticies too.
  4. Include contact information for how to reach you.

The above list is condensed from GNU.org’s How to use GNU licenses for your own software and is echoed on their GPL violation page. But in a broad sense, these points fairly apply to any software license.

  • If you are distributing software under license Foo, and are missing a Foo license file in your distribution, you need to add it.
  • If you have source files within your package that are missing a copyright notice and/or a license notice, you need to add them.
  • Don’t remove other people’s copyright and license notices unless they have given you express permission to do so.
  • Make sure people know how to find you if they have questions.

As an example, here is the attribution notice that EllisLab has chosen for CodeIgniter using OSL 3.0:

/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.1.6 or newer
 *
 * NOTICE OF LICENSE
 * 
 * Licensed under the Open Software License version 3.0
 * 
 * This source file is subject to the Open Software License (OSL 3.0) that is
 * bundled with this package in the files license.txt / license.rst.  It is
 * also available through the world wide web at this URL:
 * http://opensource.org/licenses/OSL-3.0
 * If you did not receive a copy of the license and are unable to obtain it
 * through the world wide web, please send an email to
 * licensing@ellislab.com so we can send you a copy immediately.
 *
 * @package     CodeIgniter
 * @author      EllisLab Dev Team
 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc. (http://ellislab.com/)
 * @license     http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
 * @link        http://codeigniter.com
 * @since       Version 1.0
 * @filesource
 */ 

Additionally, we include full text of the OSL in a license file in the distribution (as indicated in the attribution notice), and it is also copied verbatim in the product documentation.

Make it obvious, and make sure you have applied the copyright and license grant to each source file that you mean for it to have.

Wrap Up

To sum it up, EllisLab is not a fan of GPL because of its ambiguity, viral nature, limitation of commercial opportunities, its political agenda, and its lack of respect for other software licenses.

As you can probably tell, we are not going to choose GPL for any of our own works. But we don’t hold it against anyone who chooses to do so. It’s your work, your copyright, you have the right to license it however you choose. And we respect that.

For works that we are extremely fond of we’d likely not even choose a license that allows relicensing as GPL as that could create the potential that a downstream licensee might distribute a derivative of our original work that inherits all of the problems that we see above. And we do of course realize that as lengthy as this article has been, it only scratches the surface of the issues it raises, and likely oversimplifies some issues and gets some things wrong.

We hope that regardless of your own conclusions this article has impressed upon you the importance of doing research and not being casual when selecting a license. And once you select a license, please make sure that you apply it visibly and responsibly, and in harmony with the terms of the license you’ve chosen. Any contradictions or violations you have just hurt your licensees, and perhaps yourself.

References and Further Reading

This is by no means an exhaustive list, as there are volumes of information devoted to the topic. Below are links to sources used to help form our opinions of the GPL and whether or not to use it (as well as whether or not it can be used with CodeIgniter).

http://codeigniter.com/user_guide/license.html
http://www.itbusinessedge.com/cm/community/features/interviews/blog/rosen-gpl-is-good-but-osl-is-better/?cs=22541
http://www.rosenlaw.com/Rosen_Ch06.pdf
http://rosenlaw.com/OSL3.0-explained.htm
http://www.gnu.org/licenses/gpl-howto.html
http://www.gnu.org/licenses/gpl-violation.html
http://mail-archives.apache.org/mod_mbox/www-legal-discuss/200710.mbox/%3C047101c81328$b1affee0$6401a8c0@LROSENTOSHIBA%3E
http://www.mail-archive.com/license-discuss@opensource.org/msg06069.html
http://www.oss-watch.ac.uk/resources/duallicence2.xml

 

Comments

Software License Awareness Week

Posted by Derek Jones on October 31, 2011    Comments

Our recent announcement at EECI 2011 of adopting a new license for CodeIgniter has sparked a flurry of conversations and debates. We anticipated that it would, and are glad that it has gotten so much attention from developers and the community as a whole. Our initial plan following EECI was that of simply trying to communicate and explain our reasons behind choosing a new license and how we think it will benefit the community. Because of the attention it has received, we’ve decided to go in another direction to help educate and enrich the community.

So in its place, we are devoting a week’s worth of blog entries here at EllisLab.com to software licensing. We thought this would be especially helpful to our community of add-on developers since we have heard of many of your struggles in figuring out how to best license your software.

Each day a new topic related to software licensing will be commented on, sharing our perspective, and hopefully generating meaningful conversation among developers inside and outside of our community. Most people don’t put a lot of thought into licensing, whether accepting the terms of a license granted to them, or in choosing and carefully applying a license to their own work. And licenses can be confusing and easily misinterpreted.

But the reality is that developers are called upon daily to make decisions about using others’ software and licensing their own, yet software licenses were not made with the common developer in mind. They are the purview of copyright lawyers and legal teams. Most of you don’t work in firms that employ such a team nor perhaps do you feel that you have the money or desire to hire one. But these are legally binding agreements or contracts, so consulting an attorney is a basic requirement. As such, you will find plentiful disclaimers like the one below in this series of posts:

The content in this article is neither legal advice nor a legally binding interpretation of the licenses discussed, including those distributed with EllisLab products. We are sharing our opinions, thoughts and conclusions which we hope are helpful and spark meaningful discussion. You should consult an attorney with questions regarding your specific legal needs and the terms or interpretation of any software license.

This first post covers some basic conclusions about software licenses that when misunderstood, lead to speculation and FUD for any license or use of code. After discussing a few of these basic points, we’ll outline the topics coming later in the week.

If a software license is ever brought into question, it will be a judge or ruling copyright authority in the location you reside (or the one bound to the license agreement) that will interpret and render a judgement, not the copyright holder or author of the license.

This is profound. This means that regardless of the intent, even EllisLab could not interpret its proprietary, simple license used for CodeIgniter. Well, we could, but in the end, it’s a judge that would decide how it applied. This basic conclusion extends to the Open Source Initiative (OSI) and the Free Software Foundation (FSF). The FSF can make statements about the GPL, for instance, and they may be called as witnesses if a lawsuit ever came about dealing with GPL code. But they cannot form the legal basis for the application of the license. A license author is bound by the legal verbiage they chose to use when creating the software license.

So while a license my be written with a particular intent to allow or disallow X, Y, or Z, the intent rarely matters, rather the interpretation of the wording of the license as it compares to local and international copyright law by the ruling authority (commonly a judge).

Software license agreements can grant additional rights to a licensee beyond what copyright law allows, but the copyright holder still owns the work, and retains a right to license it how they choose.

The author, you, always has whatever rights are granted to you (or protected, depending on your point of view) by copyright law. While there are no “take-backs” to the application and release of your work with a liberal license, you still own the original work. Unless you have legally transferred copyright to a third party (which some licenses may do!), nothing would prevent you from doing what you like with your own work, including modifying it and keeping the modifications your own, or providing a different license for a different purpose.

In the software world, that means that once applied to code, licensees benefit from whatever grants you have given them in receiving that specific work under that license. You do not need to license your own copyrighted works to yourself.

Which brings us to another conclusion:

Code should contain a clear notification of the license it is distributed under. In absence of such a notification, code comes with no additional grants beyond that given by copyright law.

This sounds obvious once read, but particularly in the PHP community, developers are extremely negligent in this regard. Simply putting on your website that a download is licensed as Foo does not necessarily extend the rights granted in Foo to people who download that software. The license and notice should be in the code itself, otherwise there is no means to prove under what license a person received the software.

This is why you will find in EllisLab products a license notification in each file. In fact, many common licenses include this as an obligation of the Licensor.

Here’s the last conclusion we’ll leave you with in today’s post:

When dealing with free software communities, it is extremely rare that anyone would ever want to sue another party over licensing, much less go through the trouble, time, and expense of filing such a lawsuit.

Typical software license lawsuits occur in commercial software involving patents, trademarks, and the like. In the case of free open-source products, the likely sources of lawsuits would be people or entities claiming prior copyright or patent on works that are included in it. That would be the case regardless of what license the open-source product was using.

Incidentally, this is one of the many reasons we chose the Open Software License v3.0 (OSL 3.0), because at least such a lawsuit would come at a cost: termination of the rights granted by the license in the first place. You can’t take away someone’s right to sue you, but such a clause (§10 of OSL 3.0) at least takes away their right to use the product the moment they initiate a patent lawsuit. If they’re using and benefiting from the product, that’s typically a good deterrent to a lawsuit, encouraging trying to solve any problems they have without litigation.

For the rest of us in the free open source world - who wants to sue? Certainly we don’t. For us it’s about respect.

Respect for your own work and the work of others.

Respect for the individual or company using your product and making a living with it.

Respect for the individual or company who freely gave you the tools you use to make a living.

All in all, we hope this series generates a larger awareness of software licensing issues and answers as best we can the questions that people have of EllisLab’s decisions regarding licensing. But we also hope it impresses on every developer the importance of due diligence in license research, which includes consulting an attorney. Whether free or commercial, make sure that the license you choose respects you and your own work, as well as those who end up using your software. Don’t turn licensing into a casual decision, or you are doing yourself and your users a great disservice.

Here is what’s coming up later in the week:

  • Tuesday: GPL or not to GPL
  • Wednesday: Four Dirty Words—Intellectual Property, Trademarks, and Patents
  • Thursday: Contributor Licensing Agreements

Friday we are leaving flexible in case discussion raises interesting topics that we haven’t planned for. If nothing specific catches our attention, we will end Software License Awareness Week with an overview of the process we used for settling on OSL 3.0 for CodeIgniter, and attempt to answer any remaining questions encountered in the forums, Twitter, Uservoice, etc.

Software License Awareness Week onward!

Comments

EECI & Content in Presentations

Posted by Leslie Camacho on October 26, 2011    Comments

Given the purpose of EECI and that it costs time and money to attend, it is unfair and unprofessional to ask someone to make a choice on whether they want to attend based on whether or not they might have to deal with sexual content in presentations.

Sexuality is complex and it is naive to say “get over it” or to presume to know why someone doesn’t want to encounter it. To boil the argument down to “morality” or “conservative vs. liberal” (or whatever) is to disrespect the individual (presenter and attendees) and their stories.

We want EECI to be a professional event that is inclusive, family friendly (we want to bring our kids next year), and inviting to those out to make the internet and the world a better place through web development.

Events that uplift people from all walks of life and help them be professionally successful are few. They require sacrifice to get to, and the last thing we need is to have inadvertently created yet another place to fight about what is “offensive content” versus how to change the world and make it better as web professionals.

So, what do we do?

It is EllisLab’s stance that censorship is not the answer, but neither is “anything goes.” What we need is to champion the level of professional respect that our community has always had for each other.

For EECI2012, we won’t be vetting presentations for “offensive content,” but we will have a set of presenter guidelines that assume little, enable a lot, give power and flexibility, respect your “code,” and that ulitmately help you succeed in a way that makes you smile. Sound familiar? We hope so.

I’m sorry to all that were offended. It was naive of us to assume that - without guidelines - all presenters would share the same definition of “professional” at a sponsored event. This doesn’t just apply to sexual content, but anything that is likely to be polarizing in a large and diverse community.

It’s important to me that you understand this apology isn’t lip service. I invite you to read my personal take here.

As always, I have an open inbox policy and comments are open on this post. Feel free to let know what you think.

Sincerely,
Leslie Camacho, CEO
EllisLab Inc.

Comments

Ghost in the Machine: Steve Jobs, 1955-2011

Posted by Kevin Smith on October 06, 2011    Comments

Steve Jobs, 1955-2011
(credit: Dylan Roscover)

I was writing a rememberence for Steve this morning trying to capture how much Steve, through his work at Apple, inspired us at EllisLab (and continues to do so). Everything we’ve built was made on a Mac. Macs come with a guiding philosophy etched in every detail, a ghost in the machine if you will, that influenced and inspired us daily. I took a break, logged onto our intranet, and discovered that Kevin Smith, one of our Customer Advocates, had already written a beautiful eulogy that perfectly captures that influence and what it means to EllisLab. I encouraged him to share it here. – Leslie Camacho, CEO, EllisLab, Inc.

When I went to work for Apple, first in 2006 and again in 2008, it was honestly like a dream come true. I tried to find a more clever, less cliche way to get that across, but I’m not sure there is one. Apple is a company that time and again releases mind-blowingly innovative products, so many of which enable me to do nearly everything I do. Even in 2006, after only owning a Power PC Mac Mini that ran Tiger, my life was already substantially enriched by Apple.

The company’s history and Steve’s story were inspiring, too. Steve was at the forefront of a new industry back in the 70’s, and literally launched what would become one of the most valuable companies in the world from his garage with little more than his vision, some computer parts, and a few guys to help out.

The culture at Apple, even at the retail level, is real, honest excitement about the company and the products because we know how the things Apple produces truly enrich the lives of our customers. Even on the toughest days — people weren’t afraid to physically get in our faces to tell us how we’d let them down — we knew we were part of something truly unique. We worked for a company that was literally changing the world year after year. And it was all started by a man unwilling to bow to the status quo, who made risk-taking his modus operandi, and who obsessed over the quality of every little thing his company would present its customer.

Believe it or not, coming to work for EllisLab was a very similar experience for me. In the spring of 2008, I was set to go on a year-and-a-half long tour with a famous singer as part of her crew. But she got sick. Sick enough where it looked like she might not get well at all. The first leg of the tour was canceled, and we were all thanked for our time and laid off. That happened only a day after closing on my new house.

I was completely heartbroken and desperate. After licking my wounds for about 45 minutes, I started brainstorming to find a way out of this brand-new hole. The bottom of the job market had just dropped, and I knew I wasn’t going to find something immediately. The only marketable skill I had was from years of building websites as a hobby and to promote the few artists I’d picked up for my own fledgling record label.

I had gone from static websites to using all the well-known CMS platforms on various sites, but I knew I couldn’t rely on any of those to support a client. Coming from a web designer background, I didn’t like the idea of having to bend my design to a rigid theming system. I read an article that talked about ExpressionEngine’s flexibility; it raved on and on about how this was “The Designer’s CMS”. Having waded through the theming process of Joomla!, Drupal, and Wordpress, ExpressionEngine seemed like a drink of water in the desert.

To get to the point, I was able to hit the ground running with ExpressionEngine. I started a web design shop and started taking clients right away. EllisLab and ExpressionEngine saved my house.

Pretty soon after I started using ExpressionEngine, I began to see the invested, helpful community that surrounds it. I read about the story of EllisLab’s founding, began to learn the names and personalities of those of you who worked here, and learned how to write PHP applications thanks to CodeIgniter. I can do what I do today thanks to EllisLab.

Joining EllisLab was like being asked to join your favorite band. I couldn’t believe I was joining the ranks of all these people who made software products I use every day. I applied on a whim; knowing what kind of reach EllisLab has, I didn’t even expect to get a callback. Being asked to join EllisLab was a dream come true.

We’re a small, relatively new company, on the forefront of a new industry that is changing the world every day. Not as many people may know the names EllisLab, ExpressionEngine, or CodeIgniter, but every day millions of people’s lives are enriched by what we do. And while we’re experiencing some very public growing pains, we’re surrounded by a passionate community filled with people and businesses whose paths in history we have changed for the better. Companies could only dream of such a thing.

We change lives. What we do every single day matters. We don’t forget that, even on the toughest days.

If the legacy of Steve Jobs means anything to me and to all of us at EllisLab, it’s this: “The people who are crazy enough to think they can change the world… are the ones who do.”

Comments

EllisLab Products and Services

Copyright 2002-2012 · EllisLab, Inc. · All rights Reserved

Powered by ExpressionEngine, of course!