Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the pue-sales domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/staging-poc/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the better-click-to-tweet domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/staging-poc/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the pue-amazon domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/staging-poc/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the pue-stats domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/staging-poc/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/staging-poc/public_html/wp-includes/functions.php on line 6114
development Archives | Event Espresso - Staging Server

Posts Tagged ‘development’

Questions from Eric to Event Espresso

Eric asked Event Espresso some questions to answer on the Espresso Bar hangout. If you watched this morning’s hangout you would have heard some of them. Here are everyone’s complete responses:

1. What has been the biggest challenge for you personally at Event Espresso? (could be programming, staffing, customers, support, infrastructure, etc.)

Darren: Being a distributed team rocks and Google Hangouts has worked well. However, I still think our team would benefit from at least a once a year in person meet up where we can strategize and spend time together (which is another challenge b/c of costs for getting everyone together). That to me has been one of the bigger challenges.

Another challenge has been the time its taken to develop 4.0. Frankly, its taken so long because of the amount of change happening in the core code and its frustrating that for the majority of our customers they wont’ be able to really appreciate the changes right away because MOST of it is the actual way the code is structured. Developers will grok it but the average customer won’t. Customers won’t see the benefits until they start seeing the awesome things we can build now on top of this new codebase.

Finally, there just isn’t enough time in the day. We need 48 hour days :)

Michael: Trying to code as one. As one of the developers, it’s tough to stay coordinated with the other developers. We each naturally have our own strengths and styles, and it’s hard to keep that from creating a mass of messy, inconsistent, and buggy code. For example, we recently had an issue with deciding how we would be recording payments and payment attempts in EE4. I had written code that records all payment attempts, (for example, even failed payment attempts from paypal), and record whether they were successful, pending, or failed, etc. Another developer, Brent, had envisioned that payments basically only get recorded on successful receipt of funds, and had written a bunch of code around this concept. Basically, I was treating “payments” as attempts-to-pay, but Brent was treating them as real money received. We discussed it for several hours, asked a bunch of other team members’ opinions, etc. At the end of the day, however, Brent took the higher ground and simply decided to roll with my way of doing it, despite still not being in agreement. So not only was it difficult have our code play nicely together, but it was also difficult to not spend all our working day debating it (which is never a problem if you’re working on your own).

Having said how difficult it is trying to stay coordinated with the rest of the developers, it’s also a huge bonus. I’m learning lots from the other developers that I never would otherwise.

Dean: Most definitely it has been getting to grips with the internals of the plugin. Whilst support doesnt need the depth of knowledge that dev does, working for the most part alone it really benefits having a broader knowledge, but as the plugin is so big and complicated it has (and still is) taking some time.

Seth: From the very beginning, I think keeping up with everything that is going on, has been my biggest challenge. It was extremely hard to keep up with the feature requests, customizations, customer support, etc. when I first released the plugin and was working on everything by myself. That and Chris stepping back over the last few months :)

Chris: People-wrangling. As our team started growing beyond the early days 2 years or so ago — when it was mostly Seth, Garth and I — it’s been a constant challenge to go from the point of “okay, this is a great idea, let’s do it” to actually making that happen, and a lot of that involves checking in on people, making sure there are deadlines, the kinds of things that would be taken care of by a project manager which, at the time, we didn’t have. And then when that became my job I learned just how difficult it is to be a project manager and how much you need to be involved in just about everything. On the flip side, I’ve learned a lot from getting tired of trying to wrangle people and just said “fine, I’ll do it myself” and dug into the code to look at whatever was going on because no one else had time to do so.

Jonathan: Trying to transition from a corporate job to working with a software startup brings many challenges. But, my biggest challenge has been, obviously, getting up to speed with how the software works. I have to accept that I still have much more to learn. Learning something new everyday is what keeps it exciting for me.

Brent: I had joined Event Espresso somewhat spontaneously simply because I had used the product for a site I was developing for a client of my web design company, and really liked Event Espresso. I thought it would be a really great program to work on ( I was right ). However, I still had a fairly successful business rolling a long with work contracts in place to keep me going for a good portion of a year. I have been working full time for Event Espresso for about a year and a half now, while handling work from my other business on evenings and weekends. So basically working at least 60 hours a week. This has been very hard on my family and I as I do not get to spend enough time with them as I would like. It’s also beginning to take a nasty toll on my body in terms of back and arm pain. Who would have thought that too much mouse could cause so much pain!?!?! I’m currently on the edge of having my other business work significantly reduced as I finish off some long term contracts and pass off clients to other web development firms. It’s ALL EE from now on baby.

2. If you had it to do over again, how would your approach have changed.

Darren: Do what over again? I think maybe the biggest thing that might have changed from the perspective of EE, is our processes. We’ve implemented a lot of great systems and processes in the last 6 months that would have been a real benefit from the get go.

Dean: I honestly don’t know, maybe a more systematic approach on working out which bit connects to where.

Seth: I was a novice programmer when I started, and everything I have learned over the years, is a direct result of diving head first into the very early stages of Event Espresso. If I could start over, I would have learned how to be a better programmer, and learned how to do stuff the right way, including learning how to do things the “WordPress way”.

Chris: I think when I started at Event Espresso, I sort of assumed that Seth and Garth knew what they were doing. :) So there were a lot of times where maybe I didn’t agree with something, but I assumed things were fine and they had figured it out already so I just kept quiet. I think taking initiative and getting involved earlier, and asking hard questions that demand answers could have helped us and the plugin overall. The truth is, when you start a business like this, particularly a plugin (or theme) business, you’re pretty much just making it up as you go. Sure there are things you can bring to the table that can help guide the trajectory — Garth’s a business school major, so, you know, there’s that, I go dizzy looking at spreadsheets with acronyms like ROI — and you can look at what other plugin and theme studios are doing, but really, you’re just guessing unless you’ve really had an in-depth conversation with those other guys.

Jonathan: I think I would change my learning approach. Instead of trying to learn bits and pieces of the plugin and add-ons, I would start with the core plugin and work my way out to the add-ons.

Brent: Hmmm.. for starters, I wish I could have joined the Event Espresso tEEm earlier, I wish I hadn’t had to work 60+ hours / week, and I wish I had been more knowledgeable about working with a distributed software development team and could have earlier affected some of the procedural changes we have now. As the EE tEEm grew, we learned (often the hard way) better ways to work on the product and to implement procedural policies that help to maintain the quality and robustness of our work. It would have been nice to have those policies in place without having to have experienced the problems that fostered their creation. But regardless, we have a great tEEm now and a methodology that is really allowing us to churn through the code, identify bugs and issues, and correct things before releasing anything to our customers.

3. What upcoming or new features are you most excited about?

Darren: I’m most excited about 4.0 of course! If I had to pick two systems I’m really keen on seeing come with 4.0 it would have to be:

a. Messages Framework (of course!) – I’m really excited about the potential for this framework to make possible a lot of cool features for EE users.
b. New Model structure. Brent initially worked on this but Michael has been ramping up some cool additions to the model codebase. These models provide some really efficient and easy way for interacting with EE data in the database.

Another thing that is a ways off yet, but I’m really looking forward to when we get there is the launch of a 3rd party marketplace for EE. I think this will bring some real value for our customers (and developers building on top of EE!) and I can’t wait to see what people build for EE on our new codebase.

Dean: 4.0 (of course!), there are just so many changes to the underlying code that will make Event Espresso a much more flexible and extendible product. It will be a bit of a system shock for most users, but once that has passed I believe strongly that everyone will benefit.

Seth: I am most excited about Event Espresso Arabica and all of the new features we have planned in the coming months.

Chris: I’ll say the same thing as everyone else in that I’m excited for Arabica. I’m excited to see the direction it goes, and I’m excited to see what people do with it, and I’m excited to start digging in and seeing what I can do with it, too. I really haven’t done much testing or digging into the code yet, so whenever Brent or Darren start talking about the cool stuff they’re working on, or I read what they’re talking about on IRC I get that sort of “lemme see lemme see” kid in a candy shop reaction.

Jonathan: Arabica, of course! It is where we are focusing our attention the most right now, so it’s on everyone’s mind constantly. Cleaner code, hooks, filters, etc. It will definitely be a breath of fresh air for the community.

Brent: I have been spearheading a rewrite of Event Espresso to convert it to an Object Oriented Programming (OOP) codebase that will better allows us to develop new functionality and features as we move forward. As well, we are converting most of the main elements that our system deals with (events, venues, people, etc) into WordPress Custom Post Types to make Event Espresso even more accessible to the general WordPress community. So far, the road has been long and hard, but when this is done, there is going to be an explosion of new possibilities with Event Espresso. New features, new addons, new third party development, and hopefully new markets and new uses of Event Espresso that we hadn’t even thought of. Can’t wait.

If you didn’t catch us live, you missed a great show. You can watch the replay on our Espresso Bar Archive page.

Tags: , , , , ,
Posted in Hangouts | 1 Comment »

Developers wanted!

Are you a WordPress theme or plugin developer? Have you worked with WordPress or Event Espresso enough that you feel comfortable making customizations for clients? Do you want more clients?

If the answer to those questions was “Yes”, we want to hear from you! We’re looking to partner with experienced WordPress developers who are familiar with Event Espresso that want new clients. We get a lot of requests for customization projects that we just aren’t able to work on due to our regular plugin development workload.

Think you fit the bill? Let us know what you specialize in, what your average rates are, and give us an example site that you’ve worked on (preferably a site that’s running Event Espresso). We’ll be adding developers to a Third Party Developers page where we will refer our customers who are requesting custom development projects that we are unable to take on within their timeline. Fill out our Third Party Developer application to get listed in our directory.

Tags: , , , ,
Posted in WordPress, Development | 2 Comments »

Behind the scenes: the tools we use at Event Espresso

We’ve been at this for over 3 years and in that time, we’ve used a ton of different tools to get the job done. Event Espresso has gone from being a one-man show to a team of 10+ and in that time we’ve learned, largely through trial and error, ways to effectively communicate to each other and our users. Here are a few of the tools we use internally and for EventEspresso.com.

Operating Systems

operating systemsWe’re predominantly Mac users with a few holdouts running Windows 7 and Linux. The apps covered here will be a mix of the popular votes from across all three platforms as well as web-based apps or systems.

IRC

ircWe’ve been using IRC internally for the past year. It has successfully enabled us to communicate better as a team and respond to issues that come up in the forums and as we are developing code much faster. It’s hard to imagine how we managed to do things before we were using IRC. We have one closed channel we use for internal and development communication and another channel we’re planning on opening up to VIP members soon. To keep our private channel closed, we’re using IRC access restrictions. We also have a bot running Phergie that is able to do helpful things like pass messages to other team members who are away from their computers and Google searches, or not so helpful things like tossing each other a cookie, beer, wine or cocktail.

MrEspresso

Phergie is also feeding posts from our P2 site (mentioned below) to keep the team updated on new comments and discussions happening there.

As far as apps go, for Mac, most of us started off with Colloquy before moving on to other things like LimeChat and Adium. For the Windows users among us, we’re predominantly using mIRC, and Xchat is the most commonly used client for Linux, though a Windows version also exists.

Twitter

TwitterIn the last month we’ve started trying to use Twitter for both internal and external communications. Everyone at Event Espresso was already on Twitter, and Event Espresso has it’s own Twitter account. On our personal accounts, we use the #EventEspresso hashtag for general Event Espresso-related tweets and #eesupport or #eedev for support or development-related tweets. Not only can we keep each other in the loop with what we’re doing, but this gives our users a level of transparency about what we’re up to as well. So, what are we using to manage Twitter? For OSX, there’s the native Twitter app in the App Store or, for everyone, the cross-platform web app TweetDeck.

Browser

BrowserTo the developers out there, it should come as no surprise that Chrome and Firefox are our browsers-of-choice. The powerful tools of Chrome’s built-in inspector and Firefox’s Firebug extension are invaluable to developing and testing markup. For the Mac users among us there’s Parallels and Oracle’s VirtualBox for Windows virtualization for testing Internet Explorer.

Screenshots & annotations

ScreenshotsFormerly, the popular favorite for screenshots with annotations was Skitch. Recent changes to the platform have been universally less well received by our team, and some of us have begun looking elsewhere. The Awesome Screenshot extension for Chrome is…awesome…for browser-based screenshots and Droplr and Screencast.com have also been used by some of us for sharing screenshots. I wrote up an Alfred* extension to replace the timed screenshot feature that Skitch dropped from their app.

* covered later…

Email

EmailEvent Espresso uses Google Apps extensively, so many of us just use the Gmail interface for mail. However, the Sparrow for Mac is hands-down the best desktop email client and also has an iOS app replacement for Apple Mail. Speaking personally, Sparrow makes me actually enjoy looking at my email inbox. It’s definitely worth downloading the free (ad supported) version and convincing yourself it’s worth the ten bucks to use it without the ads.

FTP

FTPWhile the cross-platform workhorse of FileZilla is definitely a favorite, some of the Mac users among us cling to Transmit, by Panic (who also make Coda), which also allows file transfers to Amazon S3 buckets (which we’re using as our CDN).

IDE

IDEA good IDE is important when you’re spending all day staring at it. Sublime Text 2 gets our popular vote with some runners up being Coda and NetBeans. (If you’re looking for a good IDE or have just gotten started with Sublime, this is a great resource that goes through a lot of the amazing built-in features of the program as well as the plugins that can be added.) Windows users (that don’t want to deal with NetBeans) can either grab a copy of Sublime as well, or take a look at the free Notepad++.

Version Control

Version ControlVersion control is essential for any development project, large or small. Even if you aren’t part of a team of developers, version control is invaluable in being able to “roll back” changes to an earlier version when something breaks. Having a solid, reliable version control system (and app) is a required part of ensuring that everyone on the team is looking at the same — and the correct — version of the code. Event Espresso currently uses Subversion for our version control (though we plan to eventually move to Git). Most of us Mac folk started out using Versions but have since migrated to Cornerstone. For Windows, there’s TortoiseSVN and for Linux, we recommend RapidSVN (if you’re not just more comfortable using the commandline). For Git, we recommend Tower (for Mac), the GitHub Git client (for Mac/Windows) or TortoiseGit (for Windows). Alternately, if you’ve already started using Sublime, there are excellent Git and Subversion extensions for Sublime, and NetBeans also has integrated SVN support as well as a plugin for Git support.

Other tools

other toolsWhat other programs and apps are we using? Here are a few of our favorites:

  • P2 – we have an internal P2 blog that we use to announce and discuss issues with the entire team
  • Codebase – where all our SVN repositories are stored and for internal issue tracking
  • Asana – for support issues and other non-coding-related task- and project management
  • Google Drive and Dropbox – cloud storage
  • Codebox, Gist, Piratepad, jsfiddle (and, recently Koding) – storing and sharing code snippets
  • Alfred (Mac) – all-purpose productivity app (some of the automation features of Alfred — such as the previously-mentioned timed screenshot extension) are simply amazing and well worth the cost of the Power Pack add-on)
  • Textexpander (Mac) – keyboard shortcuts for commonly-used text (or code) blocks
  • TotalFinder (Mac) – Finder add-on/replacement that enables tabs in Finder windows

WordPress Plugins

WordPressBut what about the plugins we use for WordPress, you ask? We use a combination of custom-built plugins, premium plugins and free plugins from WordPress.org. Here are the ones that are most frequently used or most essential to the site:

…as well as custom-built plugins handling the 404 pages, new bbPress topic notifications, testimonials, showcase sites, product features, and various Plugin Update Engine tweaks and add-ons. We’re also using a Google Custom Site Search for our search pages with a custom template and modified searchform so searches go to the Google search.

What are your favorite tools to use in your business or on your website? Let us know in the comments!

Tags: , , , , ,
Posted in Website | No Comments »

Event Espresso - Staging Server