Work has me doing a lot of stuff with REST services developed using the Spring framework. We’re using REST Assured to do the testing of the services even before we get a UI layered on top so I’ve been learning quite a bit.
Spring provide a handy set of guides and seems to be a nice, out of the box solution to all your RESTful needs. Granted, I don’t know if it’s the best solution to my problem., but it’s something I work with day to day and I’m familiar with it. I’ll use Gradle to build the project (because omfg it’s so much better than maven) and then layer on a front end once I can get the service playing back and storing data.
I wrote this while I was getting the hang of using git in my current role. Over time I’ve added to it but to be honest, I rarely have to refer to it now.
If you’re wondering at the shorthand ‘g’ rather than ‘git’ it’s because I use oh-my-zsh with the git plugin (the dev VM I use at work runs Ubuntu and it also plays nice with OS X. Windows users can suck it). You can get a similar result by aliasing git commands.
If you don’t know those two, stop reading now.
You need to be a bit careful with these as adding lots of them can really slow Sublime Text down.
I found this list of handy addons while looking around for a way to get grunt running from within ST. It starts off with installing the excellent Package Control which makes installing and managing addon packages sooooo much easier. Trust me on this. I found it only after an annoying process of manually installing an addon. With Package Control those days are gone for good.
Now that was a weird sentence to write.
Handy guide full of Git goodness.
If you’ve never used Git before, this is a great intro. Codeschool runs a course where you can try git out if you want to learn some basics.
Lots more to write about this tool, but I was looking to get a VM up and running with Jira on it, mainly to trial some workflows and customisations.
In the search for installation gotchas, I found this handy github project: jira-vagrant-install.
A guy at work put me on to yoeman which gives your node package manager the ability to quickly deploy a scaffold for building lots of other stuff. Mainly because I want to learn some JS (using CucumberJS at work) but also so I can start building a simple web based application for a hobby of mine.
Some stuff that was installed:
- Sublime Text 2 – an excellent editor
- Java for Mac – I was prompted to install this at some point, can’t remember when
- nodejs – download from http://nodejs.org/download/
- github – so it doesn’t matter where I am, I have access to the code
- yoeman – With node installed, just:
npm install -g yo bower grunt-cli. This installs bower (dependency management) and grunt (a JS task runner) as well
- CucumberJS Easy with node:
npm install -g cucumber for any BDD testing needs
Then added yoeman generators: –
npm install -g generator-webapp followed by
The last step creates a scaffold on which to build your web app. Or whatever it is you’re doing. There are heaps of generators available.
I needed to manually install some grunt components due to permission issues with sudo on
Seems that the bower install done as part of the yo install didn’t quite work (on linux; worked fine on OS X). The previous post is all about fixing that.
Once that’s done, cd into the app directory and
grunt serve to start.
Grunt is pretty nifty. It’ll watch your application directory for any changes and automatically update the site. No need to run anything every time you save a change; grunt takes care of everything for you.
Found this problem while trying to get Bower to work with yeoman on Ubuntu. Turns out it’s the fun corporate proxy here but the problem isn’t insurmountable.
After installing jumping into the application directory and installing Bower with
sudo npm install bower -g
attempting to run
produces a bunch of connection related errors.
Find the port you’re proxying through by
env | grep -i proxy
Now that the port is known, edit .bowerrc in the application directory
and add the following
"proxy" : "http://localhost:<port>",
"https-proxy" : "http://localhost:<port>",
Save the .bowerrc file, close it and re-run the bower install.
If you ever need a readily accessible web dev environment, give cloud9.io a try. I’ve been looking at building a VM that I can use for dev work but this seems to do what I need.
Or, if building your own is what you want to do (practice makes perfect) try this guide at Zynga.
Names? Who needs names?
Three days here so far and I’m having a blast. Not honeymooning (too cynical now) but there’s a lot to like:
- Practical use of git
- New tools like Gradle (whatever happened to Maven?)
- New concepts e.g. contracts testing
- More technical testing than I’ve ever been able to do: automation, BDD, security, API’s
- Many things being implemented and trialed
- Angular and Protractor
- Little “a” agility
- Walls with cards, stories being progressed, get togethers around whiteboards to clarify things, developers, testers, designers and BA’s excited about what they’re doing and enthusiastic about overcoming challenges
In short, much more to learn in an environment I’m more comfortable in (agile) which makes me a happy tester :)
Any PM – or anyone else for that matter – telling you just how awesome waterfall is as a development methodology clearly isn’t paying attention. Experience of the last 50 or 60 years in software development aside, one only needs to look at the paper that supposedly proposed waterfall as a working model to know that the process was a pile of suck from the beginning.
See, a guy by the name of Winston Royce wrote a paper titled “Managing the Development of Large Software Systems“. Go read it. It’s worth it. In the paper he describes exactly why this process is complete balls. Even though he never actually names it as waterfall, it can be clearly seen as such from the diagram.
I find it funny that there has been industry wide adoption of a process that was demonstrably inadequate to the task of building software.