Two’s Complement

21 Aug

If you want to have a chance of winning one of this months books then please sign up on the Meetup page.  

At the end of July the lucky winner will get a physical copy with an ebook for the runner up.

Two’s Complement

Just getting code to work on your machine isn’t enough. There are many other vital skills that complement coding.

This month we are looking at books that address these important complementary. Tools and skills for operations, project management and web design.

Dev Ops

Gone are the days when developers threw their code over the wall for the operations teams to sort out. Continuous integration into virtualised environments requires close collabortaion and sophisticated tooling.

Implementing VMware Horizon View 5.2

by Jason Ventresco

VMware Horizon View helps you simplify desktop and application management while increasing security and control. This book will introduce you to all of the components of the VMware Horizon View suite, walk you through their deployment, and show how they are used. We will also discuss how to assess your virtual desktop resource requirements, and build an optimized virtual desktop.

“Implementing VMware Horizon View 5.2” will provide you the information needed to deploy and administer your own end-user computing infrastructure. This includes not only the View components themselves, but key topics such as assessing virtual desktop resource needs, and how to optimize your virtual desktop master image.

You will learn how to design and deploy a performant, flexible and powerful desktop virtualization solution using VMware Horizon View. You will implement important components and features, such as VMware View Connection Server, VMware View Composer, VMware View Transfer Server, and VMware View Security Server.

Puppet 3 Beginner’s Guide

by John Arundel

Everyone’s talking about Puppet, the open-source DevOps technology that lets you automate your server setups and manage websites, databases, and desktops. Puppet can build new servers in seconds, keep your systems constantly up to date, and automate daily maintenance tasks.

“Puppet 3 Beginner’s Guide” gets you up and running with Puppet straight away, with complete real world examples. Each chapter builds your skills, adding new Puppet features, always with a practical focus. You’ll learn everything you need to manage your whole infrastructure with Puppet.

“Puppet 3 Beginner’s Guide” takes you from complete beginner to confident Puppet user, through a series of clear, simple examples, with full explanations at every stage.

Through a series of worked examples introducing Puppet to a fictional web company, you’ll learn how to manage every aspect of your server setup. Switching to Puppet needn’t be a big, long-term project; this book will show you how to start by bringing one small part of your systems under Puppet control and, little by little, building to the point where Puppet is managing your whole infrastructure.

Jira

Projects are no longer managed in spreadsheets and GANT charts in locked rooms. The whole team takes responsibility for ensuring that everything gets done, and that needs the support of a good tool like Jira.

JIRA 5.2 Essentials

by Patrick Li

Atlassian’s JIRA provides issue tracking and project tracking for software development teams to aid speed of development and quality of code. This book will show you how to develop software more efficiently by planning, designing, and customizing your own JIRA implementation.

JIRA is a popular issue tracking product designed for better bug tracking, issue tracking, and project management. JIRA 5.2 Essentials provides a comprehensive guide covering everything you will need to plan, set up, design, customize, and manage your software development projects efficiently and to a professional standard.

In this practical book you will learn how to design and implement JIRA for project and issue tracking. You will jump into the installation and design of JIRA before going through the required techniques to effectively manage issues that threaten your software development project.

JIRA 5.x Development Cookbook

by Jobin Kuruvilla

JIRA provides issue tracking and project tracking for software development teams to improve code quality and the speed of development.

“JIRA 5.x Development Cookbook” is a one stop resource to master extensions and customizations in JIRA. You will learn how to create your own JIRA plugins, customize the look and feel of your JIRA UI, work with workflows, issues, custom fields, and much more.

“JIRA 5.x Development Cookbook” starts with recipes on simplifying the plugin development process followed by a complete chapter dedicated to the plugin framework to master plugins in JIRA.

Then we will move on to writing custom field plugins to create new field types or custom searchers. We then learn how to program and customize workflows to transform JIRA into a user friendly system.

Responsive Web Design

First there were desktops, then mobiles, then tablets, then mini tablets, then phablets…

Thankfully, responsible web design allows us to craft user interfaces that provide an optimal viewing experience across the every growing range of devices.

HTML5 and CSS3 Responsive Web Design Cookbook

by Benjamin LaGrone

The Internet is going mobile. Desktop computer sales keep falling as the mobile device marketplace burgeons. Web development methods are rapidly changing to adapt to this new trend. HTML5 and CSS3 Responsive Web Design Cookbook, for all of today’s wireless Internet devices, gives developers a new toolbox for staying connected with this on-the-run demographic.

HTML5 and CSS3 Responsive Web Design Cookbook is the programmer’s resource for generating websites that effortlessly interface with modern mobile devices. Using its clear instructions you can create responsive applications that make snappy connections for mobile browsers and give your website the latest design and development advantages for reaching mobile devices.

HTML5 and CSS3 Responsive Web Design Cookbook is full of how-to recipes for site enhancements and optimizing your sites for the latest devices and the mobile Web.

Responsive Web Design by Example

by Thoriq Firdaus

By following the detailed step-by-step instructions in this structured reference guide, you will learn how you can build engaging responsive websites. With coverage of Bootstrap, Skeleton, and Zurb Foundation you’ll learn about three of the most powerful responsive frameworks available today.

Leading you through by practical example, you’ll find that this essential reference develops your understanding by actually helping you create beautiful websites step by step in front of your very eyes. After going over the basics, you’ll be able to choose between creating your own responsive portfolio page with Skeleton, building a stunning product page with Bootstrap, or setting up your own professional business website with Zurb Foundation. Ultimately you’ll learn how to decide which framework is right for you, and how you can deploy and customize it to your exact specifications!

Skimmers Guide for Week 15 of Functional Programming for the Object-Oriented Programmer

21 Jul

“…today’s commonplaces of object-oriented programming were mysterious and brain-bending twenty or thirty years ago… Monads and other higher-higher-higher-order abstractions may follow the same trajectory. I hope they do.

What did we read about?

This was our fifteenth week of ‘Functional Programming for the Object-Oriented Programmer‘ by Brian Manick.

We start from Page 141 at section 10.10 Lifting Functions with Monads, finishing at Page 146 at the end of chapter 10!

Only 6 pages to read this week but they are absolutely rammed packed with information and examples.

What stood out?

  • Page 142 – The m-lift monad is introduced which is a concise way to do short-circuiting.
  • Page 144 – The sequence-m monad is introduced as a way of transparently doing looping.

If you read nothing else this week…

  • Page 146 – 10.13 Choose your own adventure – A succinct summary of monads, which bestow upon programmers both great power and great responsibility 😉

Skimmers Guide for Week 14 of Functional Programming for the Object-Oriented Programme

21 Jul

“…functional programming terminology is perhaps slightly less than optimal for novice understanding. That is the case with monad terminology.”

What did we read about?

This was our fourteenth week of ‘Functional Programming for the Object-Oriented Programmer‘ by Brian Manick.

We start from Page 132 at the start of section 10.6 Monads as Data-Driven Extended Continuation-Passing Style. Finish at Page 141 at the end of section 10.9 Exercises

We continue looking at monads and delve into them further. We work on a simplified version of the truth and gradually form a concrete appreciation of the complexity and power of monads!

What stood out?

  • Page 139 – 10.8 Cond is all about “a multi-way” if, appearing much like a switch statement.
  • The exercise at the end of our reading is amusing and gives us our first chance in writing our own monad!

If you read nothing else this week…

  • Page 133 – “The lie” gives you a working understanding of monads, which is absolutely critical.

Time To Play

19 Jul

If you want to have a chance of winning one of this months books then please sign up on the Meetup page.  

At the end of July the lucky winner will get a physical copy with an ebook for the runner up.

Summer Is Here

Its Time To Play

The summer is here. The sun is shining. The sky is blue and there isn’t a cloud to spoil the view.

That’s why there is no better time to stay indoors and play with your computer.

You work all day with Java, so there isn’t any this month. We have Javascript, Lua, Scala and hardware but no Java.

Write A Game To Play

HTML5 Game Development with ImpactJS

by Davy Cielen and Arno Meysman

ImpactJS is a JavaScript library specially geared towards building 2-dimensional games. It is intuitive and versatile and allows the game developer to get results in no time while keeping an easy overview when games grow more complex. Games built with ImpactJS can be published on websites and even as an app on both Android and iOS.

With “HTML5 Game Development with ImpactJS”, building games for the Web and app markets has never been so easy. Using the ImpactJS JavaScript engine, you only need this book and basic knowledge of JavaScript in order to build and publish your own game.

Developing Mobile Games with Moai SDK

by Francisco Tufró

Code mobile games in Lua using Moai.

Its a fast, minimalist, open-source Lua mobile framework for pro game developers. Moai is built around Lua, a common programming language for games, and offers a single open-source platform for both the front-end elements seen by consumers and the back-end infrastructure.

Developing Mobile Games with Moai SDK will guide you through the creation of two game prototypes in a step-by-step way, giving you the basic tools you need in order to create your own games.

Play With Some New Web Technologies

Learning Play! Framework 2

by Andy Petrella

What better technology is there better to play with than Play!

The Learning Play! Framework 2 has been created for web developers that are building web applications. The core idea is to focus on the HTTP features and to enable them through a simplification lens. Building a web application no longer requires a configuration phase, an environment setup, or a long development lifecycle – it’s integrated!

Learning Play! Framework 2 will enable any web developers to create amazing web applications taking advantage of the coolest features. It’s the fastest way to dive into Play!, focusing on the capabilities by using them in a sample application. Although essentially Java based code, a Scala version is presented as well – giving an opportunity to see some Scala in action.

Socket.IO Real-time Web Application Development

by Rohit Rai

The expectations of users for interactivity with web applications have changed over the past few years. No more does the user want to press the refresh button to check if new messages have arrived in their inbox; people expect to see updates in their applications in real-time. Mass multiplayer online games have given up the requirement of plugins and are built entirely in JavaScript. Socket.io enables you to build these highly interactive applications that work cross-browser.

“Socket.io Real-time Web Application Development” is a guide to building, deploying, and scaling highly interactive real-time web applications using socket.io. This book will guide you through the building of a chat system using Node.js and socket.io, helping you get familiar with various features of the framework. Going further it will empower you to deploy and scale your applications in production.

Play With Some Raspberry PI

Raspberry Pi Networking Cookbook

by Rick Golden

The Raspberry Pi is more than just a platform for teaching students how to program computers! The recipes in this book show you how this inexpensive computer can be used out of the box for a number of practical solutions that utilise existing networks and connectivity.

The Raspberry Pi Networking Cookbook is an essential reference full of practical solutions for use both at home and in the office. Beginning with step-by-step instructions for installation and configuration, this book can either be read from cover to cover or treated as an essential reference companion to your Raspberry Pi.

Raspberry Pi Media Center

by Sam Nazarko

Low-cost and high-performing, with a massively diverse range of uses and applications, the Raspberry Pi is set to revolutionise the way we think about computing and programming. Using it as a Media Centre allows everyone to have a low-cost device that is always on, attached to their TV.

Imagine controlling your TV with your smartphone, dynamically streaming content that you have on various devices across your home, as and when you want. Raspberry Pi Media Centre will show you how to configure the complete experience using readily available and accessible tools, so that you too will soon be enjoying your media from the comfort of your own sofa.

Skimmers Guide for Week 13 of Functional Programming for the Object-Oriented Programme

8 Jul

“A monad is a collection of functions that can be used to modify stepwise calculations.”

What did we read about?

This was our thirteenth week of ‘Functional Programming for the Object-Oriented Programmer‘ by Brian Manick.

We start from Page 121 “10 Branching and Looping in Dataflow Style” and read all the way through to Page 131 stopping at “10.5 Extending continuation-passing style”.

Going over the “->” and “let” functions again, we compare the linear/non-linear calculation of them both. We look at removing explicit branching through “monads”, which allow us to insert code after the computation steps in the normal flow of our code.

Finally we are introduced to the “continuation-passing style”, revolving around the idea of “flowing the result” of each step of our computation into the next. There are some Exercises to get you to grips with it and then we elaborate on how the style gets evaluated.

What stood out?

  • “10.1 That pesky nil again” (Page 124) – A well worked example of doing nil checking automagically via the “with-monad” and “domonad”.
  • “10.2 Continuation-passing style” (Page 126) – An interesting use of the “->” function which actually makes computation steps clearer.

If you read nothing else this week…

  • Practice the continuation-passing style in Exercises 1 – 3 (Page 127).
  • “10.4 Expansions in Evaluation” (Page 128) gets under the covers of continuation-passing style and how it gets evaluated. We compare this to how the “domonad” gets evaluated and how understanding both is critical to understanding how monads in general work.

Skimmers Guide for Week 12 of Functional Programming for the Object-Oriented Programme

29 Jun

“With loosely-coupled objects that communicate only by passing behaviors (functions) around (rather than entire bundles of state and behavior in the form of objects), the early part of design may become easier.

What did we read about?

This was our twelfth week of ‘Functional Programming for the Object-Oriented Programmer‘ by Brian Manick.

We begin on Page 115 at the start of section 9.4, picking up the exercises from last week’s reading. We finish at Page 120 at the end of chapter 9.

The exercises revolve around putting into practice what we have learnt about “Point-Free Programming”. We are introduced to the new juxt function before being tasked with a diverse set of exercises to test understanding on various topics so far.

Finally we look at higher order functions from the perspective of object orientated programming and how we can decouple our design using “function passing” (either directly in Ruby or via single abstract method interfaces in Java).

What stood out?

  • Exercise 2 introduces the neat little function juxt, definitely a good tool to know about and not a bad exercise either.

If you read nothing else this week…

  • Exercise 7 – 10 are brilliant practice of the Clojure we have learnt so far. Highly recommend everyone gives it a try as they are great for working on your code style and thinking about reducing duplication.
  • “9.5 Higher-order functions from the object-oriented perspective” – only two pages but makes you think about how you should handle your dependencies (on functions or on objects).

Behaviour Driven Development with JavaScript Give Away

20 Jun

“BDD has many different aspects. Which of them are important depends on your perspective.”

We are teaming up again with developer.press, a fledgling book publisher that is changing the way books for software developers are produced.

They specialise in digital books, written by leading experts from across the software development ecosystem. The short format books they produce give you access to key technical know-how for less than the price of a cup of coffee!

This time around we are giving away a mature and enlightening insight into “Behaviour Driven Development with JavaScript” by Marco Emrich (winners will be able to request their desired e-format). Absolutely rammed full of excellent information, the book is nevertheless extremely well paced and reads very easily.

Behaviour Driven Development With JavaScript by Marco Emrich

TO WIN: Simply jump onto the competition section the LJC Book Club Google+ community and +1 the corresponding post!

2 lucky winners will then be picked on Thursday 27th June 2013!

This book is really rich with content (catch the Skimmer’s Guide here) and we are really excited for this and future give-aways with developer.press! Watch this space and check out more from this fantastic new publisher on FacebookGoogle+Twitter and their blog: http://developerpressebooks.wordpress.com/

Skimmers Guide for Week 11 of Functional Programming for the Object-Oriented Programme

20 Jun

Skimmers Guide for Week 11 of Functional Programming for the Object-Oriented Programme

8JUN

“A function that can close over external values is called a closure. I mention that because now you know why Clojure is called ‘Clojure’.  It’s a portmanteau word combining ‘closure’ and ‘Java’.

Higher Order FunctionsWhat did we read about?

This was our eleventh week of ‘Functional Programming for the Object-Oriented Programmer‘ by Brian Manick.

We began on Page 108, at the start of chapter 9 “Functions That Make Functions”. We read through to Page 114, leaving the exercises for next week.

We learn all about closures, and the important role they play in functional programming.  First of all we looked at how repetition can be avoided by creating a partial function, and the Clojure partial function.

We then read about lifting functions to a higher order.  Higher order functions are functions that act on other functions rather than plain values.

Then we looked at point free, or parameter-free, functions and took the Clojure comp function as an example.

To finish there was  a mild rant about style, looking at the different stylistic choices that are available.

What stood out?

  • This week we started to look at what really makes Functional programming different.  You may be familiar with the idea of a factory method creating objects, but functional programming takes it to a whole other level.  Personally I found it necessary to keep rereading paragraphs while I tried to understand what the author was trying to tell me.  Hopefully next weeks exercises will help to complete my understanding.
  • We also caught glimpses of the concepts that underpin functional programming.  The author makes light of the strange expressions in little asides like “No doubt the term ‘closing’ seemed perfectly apt to someone somewhere” and “no doubt the analogy of formal parameters to geometrical points seemed perfectly apt to someone somewhere.”  Personally I’d like to know more about the thinking behind these names.
  • The mild rant on style is revealing.  In Java we are used to having conventions that are followed by everybody so that there is a consistant style.  In Clojure there are so many ways of doing something it is no wonder that functional code can be so incomprehensible.

If you read nothing else this week…

  • If you already understand higher order functions then you can skip this week.  You may find the mild rant on style interesting.
  • If you are new to functional programming then you have to read all of it.  There are a lot of big concepts being introduced.

The Web Keeps Spinning

18 Jun

If you want to have a chance of winning one of this months books then please sign up on the Meetup page.  

At the end of June the lucky winner will get a physical copy with an ebook for the runner up.

The Web Keeps Spinning

It Just Won’t Stop Spinning

 

Web created by a spider exposed to caffeine

Next year the world wide web will be a quarter of a century old.  Since it’s birth at CERN back in 1989 it hasn’t stopped moving, changing, evolving or revolving.  From clunky desktops in labs to the phone in your pocket change has been the only constant.  This month we are looking at books that can help us get to grips with the web’s latest developments.

Scala Out Back

Scala promises to improve productivity by providing us with a rich, expressive language with strong domain specific support.  Frameworks are being built to deliver on that promise.

Learning Play! Framework 2

by Andy Petrella

The Play framework promises to make it faster and easier to build web applications that scale reliably while supporting both web and mobile clients.

Akka Essentials

by Munish K. Gupta

Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM.

HTML5 Up Front

HTML5 Enterprise Application Development

by Nehal Shah, Gabriel José Balda Ortíz

HTML5 has been a trending topic for a long time, but the lack of Flash support on iOS devices has sped up its penetration. New features in HTML5 come at a time when web developers are pushing the limits of what is achievable and HTML5, CSS3, and JavaScript have become an important alternative for building rich user interfaces.

HTML5 Canvas Cookbook

by Eric Rowell

The HTML5 canvas is revolutionizing graphics and visualizations on the Web. Powered by JavaScript, the HTML5 Canvas API enables web developers to create visualizations and animations right in the browser without Flash. Although the HTML5 Canvas is quickly becoming the standard for online graphics and interactivity, many developers fail to exercise all of the features that this powerful technology has to offer.

Getting the User Experience Right

Selenium Testing Tools Cookbook

by Unmesh Gundecha

Selenium automates browsers. That’s it. What you do with that power is entirely up to you. Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) also be automated as well.

Responsive Web Design by Example

by Thoriq Firdaus

Responsive web design is an explosive area of growth in modern web development due to the huge volume of different device sizes and resolutions that are now commercially available. You can now create your very own responsive website quickly and efficiently, allowing you to showcase your content in a format that will work on any device with an Internet browser.

Skimmers Guide for Week 10 of Functional Programming for the Object-Oriented Programmer

10 Jun

“…I think you could say “There is a thing that we’re justified in saying is an object-oriented architectural style.” We’re not at that point for the functional style yet, so far as I can tell.

What did we read about?

Our tenth week of ‘Functional Programming for the Object-Oriented Programmer‘ by Brian Manick.

We pick up on a new chapter on Page 99, “8 Embedding Functional Code in an OO Codebase”. No exercises this week and we blitz through until the end of the chapter on Page 107.

To be honest, a lot of this chapter is irrelevant or uninteresting, revolving around boilerplate code or SQL. Skimming/skipping through is recommended!

What stood out?

  • Concept of “functional nuggets” in OO code, Page 100. An interesting theory, sadly demonstrated in a rather tedious fashion.

If you read nothing else this week…

  • The big picture, Page 108.  Talking about the evolution of functional programming and looking forward to “Functional Patterns for Enterprise Application Architecture.”