Salesforce Meetup – MavensMate

As my final days at EE come around, I’m starting to make some headway in getting to understand more about the architecture and nuances of frontend development and the associated frameworks. Hand in hand with this education also comes an implicit syllabus relating to the development workflow, and in particular the tooling that’s available. I wrote about a JS tooling workshop I attended in this post and this week I attended one of the Salesforce developer meetups and there we also covered tooling, specifically David Helmer talked about MavensMate and how that can be used in Salesforce development.

Like the previous events that I’ve attended the meetup was held at the Make Positive offices and once again they were great hosts and sponsors, supplying beer and pizza, just what the doctor ordered.

Mavensmate is a plugin for several IDEs, most commonly used with sublime but there are plans to also include support for atom.io too in the near future. Essentially it gives developers an open source, apex IDE.

Primarily built and supported by Joe Ferraro it’s a cross platform tool that gives Salesforce developers a tool to match those available to developers who are using other languages such as PHP and JavaScript.

David kicked off his talk by announcing that it’ll take the form of a live demo…. there was the inevitable feeling in the room that we could be in for some good-ol squirming. What followed though was anything but, thanks it seems to the wonderful features of, not only Sublime Text, but also Mavensmate itself.

Demonstrations of many features were presented. Key ones (read those that I made a note of and can remember) were;

  • It’s open source… pull it and contribute
  • Editing and compilation of apex code (via force.com platform)
  • Resource bundle handling and uploading
  • Templating
  • Auto completion of functions and variables
  • Apex Testing – And whilst your tests are running there’s a whole host of games you can play (pacman etc), genius
  • Anonymous apex (exec) – runs ad-hoc code platform.
  • Project meta data can be pulled down viewed
  • Fetching debug logs

See the MavensMate documentation pages for more information.

I had tried previously to get MavensMate running in Sublime Text 3 on Ubuntu, but without luck… but I’ll certainly be trying again and will contact Joe if I’m still having issues.

Sadly I was unable to hang around and chat with the other Salesforcers, they’re a good bunch and it was a shame not to catch  up with them… hopefully next time.

Do-Less JS Tooling Workshop

On my journey to beefing up my Frontend development skills (primarily Javascript) I’ve also been trying to get up to speed with some of the tools that are commonly being used to improve workflows and encourage development best practices. To a relative newcomer I feel that it was all a little overwhelming… the number of package managers, development and testing frameworks and task-automation tools was (is) just quite amazing… and to be honest it left me fairly confused as which tool I should be using to do which job.

I was relieved then to see an Embracing Javascript Tooling workshop date pop up in my twitter stream… looking at the details for the event I was please by the topics covered, which included npm and bower, grunt and gulp, these were tools I’d been playing with but was still unsure as to which to use and when. The workshop was the very first one being run by Jack Franklin and Ollie Jennings under the Do-Less banner and I was pleased to give them support so thought I’d put my name down.

The one-day workshop took place in Bath at The Guild co-working space, a really beautiful building that suited our needs just fine. On arrival I was treated to a small but welcoming goody-bag which included a bottle of pop and some haribo, an ideal sugar-rush or two for whenever I need it. The workshop essentially ran through a couple of small projects and tasks, with the morning session covering them using Grunt and the afternoon re-doing them with Gulp, with both sessions making use of npm and bower. The workshop really expected at least some minimal knowledge of JS. And being comfortable with git and the command prompt was certainly useful since the pace was quite stiff, thankfully this suited me just fine. As well as this we also briefly covered Yo and Yeoman and there was ample time for questions as we went.

All-in-all I was very pleased with what I got from the workshop and wish both Jack and Ollie well with any future events they hold. And personally it certainly helped clear up a few queries I had, although I think that perhaps coming to the workshop without any experience of at least some of the tools might give attendees a very steep learning curve.

As a small take-away, it does seem that to a frontend developer, every possible issue is a nail that and be bashed with a Javascript hammer (and perhaps they’re right?).

Easy coloured tail output

As part of my job I’m often watching the output of a tail -f <filename> command run down my terminal window… and on my development and quite testing machines this is all well and good.

But what if the system is a pretty busy one? Well here it can be hard to spot the messages that might be of interest to you. And that is why I use a little trick to highlight a specific word in the output.

How to highlight words in tail output?

1) Basically add the following lines to your .bashrc  file

ctail(){
  tail -f $1 | perl -pe 's/'$2'/\e[1;31;43m$&\e[0m/g'
}

This adds a function available to you in bash that can be then be used to do exactly what you want. Say for example you want to highlight all instances of Error when tailing a file called foo.txt you can run the following.

ctail foo.txt Error

Rebar/Git Error and Solution

Just a quick one… for my benefit as well as perhaps yours.

I was trying to use rebar to pull in the dependencies on one of my Erlang projects but it kept failing with the following type of output;

fatal: could not read Username for 'https://github.com': No such device or address

I believe rebar doesn’t know how to ask for github credentials and I solved this by using the git credentials helper.

git config --global credential.helper 'cache --timeout=3600'

WordPress London – March Meetup

It had been quite a long time since I last attended a WordPress  London meet-up, so I was very excited about going along again and getting a good fix of WordPress geekery (as well as chatting to folk and drinking beer of course). The event was held at Shoreditch Works Village Hall for the first time and it provided ample space and the required tech. The venue and pizza was sponsored by the following kind orgs;

The Talks

Joel Hughes – The Business of WordPress

Joel gave a passionate and honest account of his move from permanent employee, through contractor and freelancer and onto running his own agency. He covered some of the key mistakes that folk (including him) make when starting out in alone, and some notes on avoiding them (the second time perhaps). They include;

  • Undervaluing Yourself : On a personal level right through to pricing
  • Clients from Hell : Educate the good ones, they’ve probably not bought a website before. Fire the bad ones.
  • Business is Personal : If you’re a freelancer, BE a freelance; don’t pretend to be an agency if you’re not. If you do you won’t be authentic, and this will show.

Joel also did some shameless pimping of his The Business of Web Design conference, which I have to say has a nice looking line-up of speakers. I’d probably be going if we weren’t due a baby the week before.

He also asked for freelancers of all sorts to get in touch with him. Looks like business is good.

David Coveney - Let’s Move It

I have seen one or two of Dave’s talks before at various WordPress (un)conferences and after seeing his take on Baz Luhrmann’s “Everybody’s Free To Wear Sunscreen” I wasn’t sure what to expect next. He didn’t disappoint by starting the talk with some kind of body convulsions which, I think in popular culture, could be described as dance moves.

He then proceeded to talk us through some basics behind running a WordPress migration with as few hiccups as possible. He discussed various migration types (server to server, multisite to singlesite, domain swapping) and their various pitfalls. He also talked through a few tools which can make life easier. These included MySQL Workbench and his company’s Search/Replace plugin.

In true Coveney style he then plumped for a live demo of a site migration (server to server and domain swap)… the audience, of course, new the perils of live demos and were all waiting for the inevitable.

Don’t work with computers – Dave Coveney

And of course the inevitable happened. So much so infact that Dave’s new database that he was using in the demo ended up being named fuckit. He rode out all that the live demo-gods could throw at him with it finally succeeding. His parting words of advice were “Don’t work with computers”.

Stiofan O’Conner and Tim Clark  - GeoDirectory

Stiofan and Tim talked to us about GeoTheme and the move to a new GeoDirectory plugin that will be appearing on WordPress.org very soon.

They briefed us on the history and the direction they think the plugin is headed. How they want it to become and extendible product with multiple revenue streams. The plugin looks like it’ll be very powerful and is well worth looking at if you’re interested in building up any kind of location-based directory.

Parting words

The standard post-meetup beers were had in a hipster-filled pub just around the corner, and I had some lovely chats with old friends and new from the WordPress community. I heard from a couple of the guys and gals that there was a lot of work out there for a WordPress freelance dev… this is certainly good news with my resignation notice period winding down.

I certainly can’t wait for the next one.

Adding a mobile number to Twitter

For a side project I’m currently working on (codenamed Shedwina, more details to follow later) I wanted to set up a Twitter NodeJS bot. On logging into https://dev.twitter.com as my bot account and trying to create a new app I got the error message that the account needed to have a mobile number associated with it. This in itself shouldn’t have been an issue but to set up a mobile number you need to send an SMS to a shortcode… sadly there was no option for EE in the UK and the long number option failed to work even after a few attempts.

I then come up with an idea… and it worked. Basically I installed the official Twitter client on my phone and checked the box which allowed the use of my phone number in the set-up phase. This has the desired affect and upon the next attempt at creating the app over at https://dev.twitter.com all worked like a dream.

From a Problem to 100,000 Downloads

It was 1054 days ago that I first wanted to place a WordPress widget into a post I was writing. Whether it was for a client site or personal one I can’t remember… the important thing is that out of the solution I came up with emerged the Widgets On Pages WordPress plugin.

The plugin has undergone very little change since it’s 0.0.1 check-in to the WordPress.org plugin repository but since then it’s had very favourable reviews and been included in several blog posts and conference talks. But more importantly, for today at least, it’s now been downloaded over 100,000 times!

It has a current rating of 4.7/5 and at the time of writing sits as the 105th most highest rated plugin on the WordPress.org repository. 105th might not seem too good but it should be noted there are over 23,800 plugins in the repo.

Goals for 2013

Well 2012 was a good year I’d say… in fact with the birth of little Rafferty I’d say it was a great year. But onto 2013; what am I hoping to achieve this year…

Lose a little weight

As per every year I’d really like to be lose a tad more weight. I seem to fluctuate between 11.5 stone and 12.5 stone but I’d to make this more a 11-12 stone window. Hopefully with the Badja being given the all-clear to start excercising again from the doctors in a couple of weeks we’ll start back on with our fitness DVDs. Doing these together is great fun and should hopefully help with this goal.

Give Blood

I know, I know… this has been on my list for the past Lord-knows-how-many years… I must really try to get the ball rolling on this. Bad Todd!

Release a Side Project

Having a couple of side-projects partially designed and developed I really should focus on one and get it released. I already know which one to work on, I just need to spend my time on that rather than being beat by American and French kids on COD Black-Ops II. The side-project I have in mind is an Android app to pair with an existing web service which will also require a web site. This will have a free lite version as well as a paid version so hopefully this’ll actually give me some insight into what to expect from paid apps in terms of revenue, marketing, support etc.

Run a Code Club

I have been meeting with my local Junior school Cunningham Hill about starting an after-school Code Club. They are very receptive to the idea and hopefully this will all kick-off in the first term or two. I’ve already attended a Code Club workhsop on Scratch and have starting the CRB process by registering as a STEMnet ambassador.

Ubuntu 2d – Some tweaks

Recently my install of Ubuntu on my work desktop started complaining about now being out of support… so I decided to upgarde to the latest LTS version (Ubuntu 12.04). Overall the install went fine apart from a couple of little things that I needed to address

Desktop size to big for Unity 3D

Sadly my graphics card did not support running Unity 3D across my dual-head setup (2 x 24 inch monitors). This, I didn’t feel, would be too much of an issue as I wasn’t too interested in all the desktop eye-candy. All I did here was then choose the Unity 2D option at the login prompt.

The 2D setup itself was not hassle free though;

Quick Synergy, Very Laggy

I noticed that for some reason the usually great Quick Synergy (which I highly recommend if you want to share mouse/keyboard across multiple PCs… including different OS) was very laggy. This was not the case if I used Unity 3D in mirrored monitor mode or if I used any of the other Gnome desktops at login. I had no luck in finding a solution to this… that was until I decided to solve my next issue… read on for the Quick Synergy lag issue solution.

Terminal Window Always on Top

I found that the Terminal windows always remainded on top (in front of) other windows I had opened. Now I’m the kind of guy that uses the Terminal a lot, so this was going to be a show-stopper if I couldn’t find an answer.

After a brief search I came across this link which details a solution. In essence it just tells you to disable metacity from being the composting manager (and how to do it too).

I’m not sure what adverse side-affects might be suffered from this… so far I’ve not noticed any. One good bi-product of this chnage though was that Quick Synergy sped right back up again and became super-responsive once more… WIN!

Web Celebs and Sasquatches

Since my first forays into the world of Web design and development I was actutely aware of what seemed to be a circle of folk who were everywhere. There were those that were involved in The List Apart empire, those that contributed to .net, those that had authored books on the subject, those who spoke at conferences and so on. It was very common for those who were involved in one of the above to be actually involved in many.

Bigfoot Sighting by JD Hancock, on Flickr

Starting out, these were the folk I kept an eye out for; if they were doing something new with JS then I should take a look too… and if they had a view on clients then I should probably read up on what they were saying. They were our leaders, our chiefs.

Slowly it dawned on me (perhaps I’m not the sharpest tool in the box after all) that these chaps and chapesses were all quite well acquainted with each other.  After some time I formed the opinion that this smallish circle were actually very tight-knit. It appeared to be like some kind of site-cross-linking that had managed to manifest itself out of the virtual web. If one of the members had written a book then others of the group would be very quick to back it up… and sometimes this support seemed to be there regardless of how poor the material was. The pat on the back was always there… even for the most mundane insight or mediocre execution.

I remember one Boagworld podcast (a Christmas special I think) when some dude came on and started talking about a new approach to building sites. He was shouting about it like he’d had some crazy dream and now he had to teach the world. He was, however, just regurgitating the well-known verses of Graceful Degradation and Progressive Enhancement but trying to re-sell it. I was bemused at this.

Please excuse me if you think I’m saying that everything I received from this Web Celeb group was all drivel, it most definitely wasn’t. It was through these dabblers that I first learnt of media queries; it was this circle that brought the wonderful Silverback parallax affect to my attention… and it was these guys and gals who introduced me to cheese and Marmite on toast. I have a lot to thank them for.

And so it was that yesterday, the Responsive Day Out was mentioned on twitter by Jeremy Keith. An instant backlash of “it’s the same folk as at every other conf” appeared… and thus ensued a lovely conversation between Jeremy Keith and Zack Inglis. It was this conversation that sparked me to write my thoughts on the Web Celeb (non)existence.

Having been to a few conferences (note, not a lot) I can say that I’ve enjoyed the whole experience of meeting new folk, chatting about geekyness and drinking beers just as much as I’ve enjoyed the talks. And in general the talks have been good too. I was pleased to catch Jeremy at DIBI as I was initially sure it was he who had babbled on about re-inventing Progressive Enhancement… though I was proven to have made a mistake and loved his talk. I have also enjoyed talks by other Web Celebs but equally have been bored by some. In the same way I have very much been grateful to be in the audience for non-Web Celeb’s talks… as I have also been sad to be for others.

I suppose I should try and bring some clarity to my ramblings (too late, I hear you cry)… and I think it comes down to a couple of points;

What do we mean by Web Celebs?

Are these just anyone who’ll get a retweet by Elliot Jay Stocks or Jeffrey Zeldman. Are these people who we’ve seen on a handful of conference line-ups? Are these the people who appear on Boagworld or have A Book Apart published?

Why are the Conferences full of them?

The answer to this question, although is an easy answer, isn’t the one we all want. Surely a conference organiser wants to break-even if not make money, so why not get a Web Celeb on the line-up? It was these people I wanted to hear from when I was starting out… so surely these folk now starting off on their journey into web design and dev also want to see them too… and are more than happy to part with some cash to see them.

What makes a Web Celeb?

So a Web Celeb probably needs to be good at speaking and getting their point across. Those that don’t will probably fall out of the higher tier quite quickly.

Are they the best at what they do? If we mean designing, writing, developing, etc then the answer is “Probably not”… but that doesn’t mean they’re not good at selling their knowledge and experiecnce.

They also appear to need to work hard on getting where they are. I’ve never written a book (though I was a technical reviewer on Rachel McCollin’s WordPress Mobile Web Dev) but have been told by all who have that it’s very hard work. I’ve also never spent the time writing an article for .net or a tutorial for Smashing Mag. And I’ve never put in the hours needed to record a Podcast. But these Web Celebs have.

The Bottom Line

Do Web Celebs exist? Damn straight they do… but they’re there because in general they’ve grafted away. Perhaps they’re lucky to have a good personality or to know someone on the inside as well… but I can’t knock them for that

What about these conferences full of them? Try not to begrudge the organisers for this. It’s what a lot of people want. If you don’t then perhaps look to attend the smaller conferences… or get involved in organising one.

Do I like it? Nah, but that’s life… and to be honest that’s why I really like the Build It  track at the DIBI conferences. Full of folk who really know they stuff.

So Web Celebs and Sasquatch… let’s just say I believe in one of them.