Posted on August 14th, 2010 at 1:47pm in
Business,
Code,
Rambling -
3 comments
As one of the developers of MojoAddons, along with Zack Kitzmiller, Phil Sturgeon, Dan Horrigan and Tom Myer, we’ve banded together to provide much-needed functionality to extend the MojoMotor platform.
I’ve noticed two threads of discussion happening surrounding the addons we’re creating, selling and supporting, and I’m finding both of these discussions to be a bit discouraging. So I write this post- a rationale of why and how we do what we as well as a plea for your support.
The first discussion revolves around the question, “Why do you charge for all of your addons?”
From my perspective, commercial addons are the ideal solution for a commercial product such as MojoMotor. While it may come across that we just want to cash in on a new market, for me at least the rationale is deeper than that.
As a web developer using ExpressionEngine for my clients, I often need the functionality provided by addons. I am given a choice when I start the project, either I can build all of the functionality myself, or I can purchase someone else’s addon and use it. There is also the third option of finding a free alternative.
I normally choose to purchase a commercial addon. Why?
In either the case of building my own or using someone’s free alternative, I lose support for the addon. If I build it myself, I have to support it. A free addon may have support, but there’s no guarantee of how long it will be available, how attentive the developer will be, etc.
When I’m charging customers thousands of dollars for a website, I don’t want to be taking that kind of risk to my credibility. If something isn’t working, I need to be able to get in contact with someone who knows what they’re doing. Sure I could dig through the code and figure it out myself, but that’s a waste of both my time and the customer’s money. That’s why I use a commercial CMS like ExpressionEngine, and stick with commercial addons to add functionality.
In the same vein, the addons I and other MojoAddons developers are selling come with support. That’s where the price comes into play. Most of us wouldn’t mind contributing a small piece of code to the community to help people out, and both Dan and Phil have done this, but the influx of support requests makes it unreasonable to do this for our larger and more complicated products. It just comes down to a matter of time—donating maybe two or three hours to the cause is one thing, but the unending hours of e-mail support add up and take us away from our other priorities.
Support is the main reason why we charge for our addons.
Along this same line of thinking, I just want to remind our customers that you shouldn’t hesitate to contact us for support. In the MojoAddons download center, and e-mail is provided for support of each of the products you’ve purchased. You’ve paid for our support, so please don’t hesitate to use it.
We’ve had a lot of great reactions to our addons, and we’re excited about that. But a few bugs have cropped up here and there, and I’d encourage you to contact us for help when you do find a problem, rather than trying to fix it yourself. In the end it’ll help make our products better, and it’ll help us help other users of our addons.
The second discussion I’ve become aware of surrounds the development of free alternatives to the addons we’re selling.
Firstly, I’m all about supporting the community. EllisLab is known for fostering active, friendly and helpful communities of users surrounding its products. It’s one of the reasons it’s so great to work with CodeIgniter, ExpressionEngine and now MojoMotor. I just want to get that out of the way to begin with. In no way do I condemn the creation of community code and addons for the good of everyone.
What I do condemn is blatant imitation of commercial addons. I’m certainly no intellectual property expert, and I don’t really want to dive into legal battles. But the reality is, there have been several free addons released that clearly have a basis in the functionality my colleagues and I have envisioned and built.
It’s discouraging to see this, tearing down the hard work we’ve done and the support which we’ve committed to offer.
A lot of thinking, preparation, development time and testing has gone into creating the products we sell. And we’re proud of what we’ve done, creating, hopefully, easy-to-use tools for MojoMotor users.
I totally support the creation of free alternatives, as long as they don’t duplicate the functionality of our addons with nearly-identical syntax, etc.
While I don’t have any recourse for this situation, I want to try and turn this around to have a positive outcome. There are GREAT developers out there now, working hard and fast to create everything the MojoMotor users wish and hope for in addon software. So, instead of condemning these actions I’m going to call them to a greater cause:
As software developers in a great community with a brand new product, I encourage every developer to INNOVATE. Sure the other MojoAddons developers and I have had some pretty awesome ideas thus far, but the community can no move forward if we simply continue to rebuild the same addons in small iterations. The MojoMotor users are calling out for the features they want to see.
Regardless of whether you choose to release your addons for free or commercially, we developers are problem solvers. And trust me, there are plenty of problems out there to solve. So get out there, do it. Don’t let the ideas I or my colleagues have created hold you back to an idea of how your addons should work.
We are a community, and I am glad that EllisLab is committed to organizing its users in this way. I encourage everyone here to respect the creations others have come up with, continue to build up the products we love with equally awesome addons and lastly to work together, not against each other, to bring MojoMotor to new levels of functionality that will benefit everyone.
Posted on July 31st, 2010 at 6:45pm in
Code,
Site News,
Web -
1 comment
This week an exciting thing happened. MojoMotor, the brand new content management system from EllisLab, makers of ExpressionEngine, was released.
I had been testing MojoMotor along with several other developers in the beta program and got a head start into working with the code. As a result Zack Kitzmiller and I set off on a path to build several much-needed addons for the new CMS. Along the way, we also built a really cool little site to show them off and sell them, as well as help to sell third-party addons from other developers. In the future we’ll also be adding third-party packaged themes for MojoMotor users.
So, with that, I’m happy to introduce MojoAddons.com.
If you’re trying out MojoAddons and using it for a project, I think you’ll find our addons are a great fit for making MojoMotor just a bit more powerful.
Posted on July 6th, 2010 at 9:34pm in
Code,
Reviews -
4 comments
I was recently asked to review Packt Publishing’s new book, CodeIgniter 1.7: Professional Development, by fellow CodeIgniter community member, Adam Griffiths. Adam is a well-known developer in the CI community, who, despite his young age, has become well-known among the ranks of CodeIgniter developers with his open source contributions.
I’m always excited to see new CodeIgniter books published, as the framework is growing in popularity and credibility among PHP developers, with applications springing up across the Internet. The framework is known for its excellent user guide and a strong community backing. But sometimes the resources available aren’t quite enough to make the concepts click in a new developer’s mind.
For me, the process involved viewing some of the available screencasts and looking at code that other had written in their applications. It wasn’t hard, but Adam’s new book would have been helpful to me in those early days of development with CodeIgniter. A selection of other CI-focused books have been published in the past, but I haven’t found many to be as practical as Adam’s. In previous books, often a single sample project is selected and used throughout the book to explain all of the concepts.
Adam’s approach is quite different and takes a look at various pieces of functionality that application developers might find very useful, while not walking them through the entire process of building an example application.
Specifically, Adam’s examples of using Twitter and Facebook authentication as well as accessing RESTful web services prove very useful, as these functions are increasingly at the core of many applications being built today.
The book also spends a bit of time talking about the basics of style in PHP coding. A guide like this would have helped to alleviate the evolution of coding style I’ve experienced as I’ve spent more and more time building web applications. It provides a solid baseline, referencing the CodeIgniter documentation’s style guide as a resource for maintaining code consistency.
Overall, I think that CodeIgniter 1.7: Professional Development fills a void in the market for CodeIgniter resources. I’d certainly recommend it to someone just starting out with the framework as an additional resource to use alongside the various other community resources.
The new book is not without its flaws though. As good as it is at helping a new developer get started at building all parts of an application: models, views, controllers and libraries, the one piece that’s lacking is advice on how to integrate with other people’s code. There a wealth of pre-written code out there, which though it may not be built to work with CodeIgniter, can save developers a ton of time as they build applications—if they know how to properly connect with third-party libraries from within the CodeIgniter framework. It can be a little bit tricky at first, so a primer in that area would be ideal.
Additionally, opening up the book with a bit of prior PHP experience is advised. Sometimes the examples don’t fully explain what’s going on in the code, so it could be a little complicated for a complete beginner.
Overall, though, I’m impressed with the direction this book goes. The angle is good, with a focus outside of the typical ‘build a blog in 20 minutes’ example.
Posted on May 9th, 2010 at 5:35pm in
Uncategorized -
No comments
Using social media for your business is always a challenge. There’s a delicate balance between using it as a broadcast marketing tool, which totally erodes your credibility, and using it just for personal interactions with friends, etc.
Somewhere in between those two extremes lies a perfect blend of the two, characterized by a combination of personality and professionalism.
Recently the marketing department at the company where I work has been working on some branding materials to share with the entire staff, including a set of tips for social media. Since I contributed some of the ideas, and thought the rest were really good, I thought I’d share a modified and annotated list of those tips here:
Use good judgment and common sense
Think about what you’re posting. Think about all the people who may see it. Is there anyone who you don’t want to see it? Yes? Then don’t click the post button.
Use language that reflects core values and key attributes
This one’s a particular challenge. As a communicator for a company, you need to make sure you’re communicating the same message as others who are also communicating for your company. Consistency is key. This does not mean that you should spew marketing speak. That’d definitely be a no no.
Avoid posting anything that reflects badly on the brand, yourself or another staff member
Disparaging remarks about anything can harm the reputation of your company. This includes comments about your coworkers, partners, vendors, clients, competitors, etc. And, it applies to both your company social media accounts and your personal accounts. If you go around bashing people, it’s eventually going to come back around and reflect on your company. Really, this rule applies for social media in general, even without the company aspect. It’s a big Internet world out there. We’ve got to all play nice.
Do not share private or confidential information
This may seem obvious, but sometimes people just don’t think. Talking about that deal you closed prematurely in a public space.. not so good. There’s a lot of information that you may be privy to, or that your company may hold, and that should not be the subject of your latest tweet.
Do share news about the great things that are happening at your company with your circle of friends
Have something to say! The whole reason your business is using social media is to let others see what’s going on, so share what’s happening. Are you working on an exciting new project (that isn’t overly confidential, of course)? Then talk about it. People love to hear about new and exciting things. Even better, include some links, photos or other media so readers can truly get their hands on it. Your followers can be your best marketers if you get them excited about what you’re doing.
This goes for your personal accounts too. You can generate a lot of interest in your business by telling your personal friends and followers what you’re working on.
Avoid posting anything that may indicate endorsement, unless an official relationship exists.
This is simply a case of thinking through what you’re going to say before you say it. How might a post be read by others that you have a relationship with? For instance, if you have some sort of partnership with one vendor, you might not want to post a link touting the great benefits of their competitor.
This isn’t to say you shouldn’t share some of the great content you find out on the Internet, but try to keep it limited to useful, informational content with very little bias toward specific companies or products.
On a similar note, try not to sound like a marketing broken record when talking about those companies and products you do work with. You don’t want to sound like you were paid off to say what you’re saying.
Have some personality
When you have the power to send a tweet or post out to thousands of users, it can be so easy to fall into the trap of carefully crafting some nifty marketing speak to sell whatever you’re about to post. Don’t do it.
Social media is about connecting PEOPLE together. Your friends and followers want to see a glimmer of that personality of yours show through in everything you post. I really like the idea of using ^CoTags to tag every post with the identity of the person who posted it. This goes a long way in removing that corporate veil from your posts, which can mean the difference between a lively and responsive follower-ship and a dead one.
Anyway. I hope these tips help you as you’re starting to think through using social media for your company. If you’ve got any more ideas, feel free to post them in the comments section.
Posted on April 9th, 2010 at 10:17pm in
Code -
No comments
In my last post, I talked about my thoughts on moving API output in CodeIgniter to the View. Well, here’s the code for it. It’s fairly simple.
A couple little notes:
- Using this view requires the PEAR XML Serializer library. Assuming your PEAR libraries are in your path settings, the view should work. You may need to adjust the path to the libary, though, on line 56.
- This code isn’t meant to be pretty. In most cases, your views get laid out with as little PHP code as possible, making it easy to style them. This is a different kind of view. It’s only purpose is to make API output use the same syntax as loading any other view. Because of this, this view does lots of nasty things that you should NEVER do in a normal view. This is your disclaimer. I created this for my own purposes to work the way I wanted it to, and if you have objections, it’s certainly understandable, but I don’t really care.
Anyway, without further ado, if I haven’t scared you away, why don’t you give it a try?
Download the API View