Web-based software projects are becoming increasingly complicated, with a range of dependencies, requirements and interlinking components. Swapping between projects which require different versions of the same software, becomes troublesome, and getting team members up and running on new projects becomes time-consuming.
Over at Ground Six the development team each run a number of virtual machines hosting their development environment. We also have an internal ESXi server which hosts a number of projects and staging areas.
As developers, it’s sometimes tempting to reinvent the wheel. You need some code, a tool, an API, a CMS or framework that works in a specific way. You find tools out there that do most of what you want, but not quite everything. And so, we give in to temptation. Before you know it, you have spent more time reinventing things that you need just so that you can start developing your product - but you haven’t yet started on the product!
Over at Ground Six last week we put Own My IP online. This was our first product as a development team. Alongside this we have worked on some other projects, including ShareScribe, our first team Hack-Day and the redevelopment of a high-traffic news service - more on those another day.
I’m currently working on a project which has been split into a number of distinct parts, and as a result we have a number of seperate Git repositories of code for the project. We decided to use submodules to manage these dependencies, and set it up so that the four repositories were nested, one inside the other, inside the other, inside the other.
Full Disclosure: I’m a full time member of the Ground Six team (more on that in a future post), so this review is slightly biased, however its a great milestone for us so I felt the need to share it.
he automotive industry makes extensive use of a standard called CAN bus, a Controller Area Network which allows the various components of a vehicle to talk to each other without the need for a host. Typically, messages sent on the CAN bus are short 16 character hexadecimal words, with an identifier associated with them. To get from these 16 character words to meaningful information you need two things: a CAN specification provided by the relevant component manufacturer, and a way to process the information and decode it as per the specification.