-
Habits of Highly Effective Engineering Managers
Read more: Habits of Highly Effective Engineering ManagersI finished reading the books “The Making of a Manager” by Juklie Zhuo, “The 7 Habits of Highly Effective People” by Stephen Covey, and “The 21 Irrefutable Laws of Leadership” by John Maxwell. Here are my notes: Management Metrics Leadership Relationships
-
Intercepting class method invocations using metaclass programming in Python
Read more: Intercepting class method invocations using metaclass programming in PythonIn Ruby, objects have a handy method called method_missing which allows one to handle method calls for methods that have not been defined. Most examples out there explain how to implement this in Python using __getattr__, however, none of them (honestly, none) explain how to intercept class method (@classmethod) invocations using __metaclass__. And this is…
-
API Development Tips
Read more: API Development TipsOrganisations who are paying attention already know they need to have an open web API, and many already have under development or in the wild. Make sure you haven’t been caught by the pitfalls of many early API releases. Multiple points of failure: The 5 tips Test it all Plan for future versions Embrace standards…
-
Collective Wisdom from the Experts
Read more: Collective Wisdom from the ExpertsI’ve finally had a chance to read a book I bought a while ago called “97 Things Every Software Architect Should Know – Collective Wisdom from the Experts“. Not the shortest title for a book, but very descriptive. I bought this book at the OSCON Conference in Portland last year. It’s an interesting book and…
-
How to create a Data Container Component in React
Read more: How to create a Data Container Component in ReactOne pattern I’ve used quite a lot while working with React at the BBC and Discovery Channel is the Data Container pattern. It became popular in the last couple of years thanks to libraries like Redux and Komposer. The idea is simple. When you build UI components in React you feed data into them via…
-
How to pass variables to a Docker container when building a Node app
Read more: How to pass variables to a Docker container when building a Node appEnvironment variables are declared with the ENV statement and are notated in the Dockerfile either with $VARIABLE_NAME or ${VARIABLE_NAME}. Passing variables at build-time The ENV instruction sets the environment variable to the value. The environment variables set using ENV will persist when a container is run from the resulting image. For example: The Dockerfile allows you to specify arguments…
-
Website performance monitoring tool
Read more: Website performance monitoring toolMonitoring systems allow you to monitor changes to your front-end code base over time, catching any regression issues and monitoring the ongoing effects of any performance optimisation changes. Easy to use dashboards are a must when it comes to monitoring the state of your web apps. Companies like Calibre or SpeedCurve offer this as a…
-
Node.js: How to mock the imports of an ES6 module
Read more: Node.js: How to mock the imports of an ES6 moduleThe package mock-require is useful if you want to mock require statements in Node.js. It has a simple API that allows you to mock anything, from a single exported function to a standard library. Here’s an example: app/config.js app/services/content.js test/services/content_spec.js
-
Recommender Systems: Content-based, Social recommendations and Collaborative filtering
Read more: Recommender Systems: Content-based, Social recommendations and Collaborative filteringWith the proliferation of video on-demand streaming services, viewers face a big challenge: finding content across multiple screens and apps. There may be quality information available online but it may be difficult to find. Traditionally, viewers resort to “app switching” which can be frustrating when it comes to finding quality content. With the emergence of…
-
Geo Proximity Search: The Haversine Equation
Read more: Geo Proximity Search: The Haversine EquationI’m working on a project that requires Geo proximity search. Basically, what I’m doing is plotting a radius around a point on a map, which is defined by the distance between two points on the map given their latitudes and longitudes. To achieve this I’m using the Haversine formula (spherical trigonometry). This equation is important…
-
Installing multiple versions of Ruby using RVM
Read more: Installing multiple versions of Ruby using RVMRuby Version Manager (RVM) is a tool that allows you to install multiple versions of Ruby and have multiple versions of the same interpreter. Very handy for those who have to maintain different applications using different versions of Ruby. To start, download RVM and install the latest stable version of Ruby: $ echo insecure >>…
-
MySQL Split String Function
Read more: MySQL Split String FunctionMySQL does not include a function to split a delimited string. However, it’s very easy to create your own function. Create function syntax A user-defined function is a way to extend MySQL with a new function that works like a native MySQL function. To create a function, you must have the INSERT privilege for the…
-
Software Architecture Document Guidelines
Read more: Software Architecture Document GuidelinesRegardless of the development process that you use, a description of the software architecture can be essential for any project, big or small. If software architecture is about the structure of a system and is the vehicle for satisfying the requirements, then the software architecture document is a written description of this. The Software Architecture…
-
Check whether your web server is correctly configured
Read more: Check whether your web server is correctly configuredLast year Zone-H reported a record number of 1.5 million websites defacements. 1 million of those websites where running Apache. When it comes to configuring a web server, some people tend to turn everything on by default. Developers are happy because the functionality that they wanted is available without any extra configuration, and there is…
-
TDD: Checking the return value of a Stub
Read more: TDD: Checking the return value of a StubState verification is used to ensure that after a method is run, the returned value of the SUT is as expected. Of course, you may need to use Stubs on a test double or a real object to tell the object to return a value in response to a given message. In Java, you declare…
-
OSCON 2010, The O’Reilly Open Source Convention
Read more: OSCON 2010, The O’Reilly Open Source ConventionA couple of weeks ago I attended the O’Reilly Open Source Convention (OSCON) in Portland. OSCON has hundreds of sessions and activities focused on all aspects of open source software. I met some great people, the talks were good and I saw some promising ideas and technologies. Workshops attended Android for Java Developers Marko Gargenta…
-
Implementing Dynamic Finders and Parsing Method Expressions
Read more: Implementing Dynamic Finders and Parsing Method ExpressionsMost ORMs support the concept of dynamic finders. A dynamic finder looks like a normal method invocation, but the method itself doesn’t exist, instead, it’s generated dynamically and processed via another method at runtime. A good example of this is Ruby. When you invoke a method that doesn’t exist, it raises a NoMethodError exception, unless…
-
Command-line memcached stat reporter
Read more: Command-line memcached stat reporterNicholas Tang wrote a nice little perl script that shows a basic memcached top display for a list of servers. You can specify thresholds, for instance, and it’ll change color to red if you exceed the thresholds. You can also choose the refresh/sleep time, and whether to show immediate (per second) stats, or lifetime stats.…
-
Database Replication Adapter for Zend Framework Applications
Read more: Database Replication Adapter for Zend Framework ApplicationsLast updated: 21 Feb, 2010 Database replication is an option that allows the content of one database to be replicated to another database or databases, providing a mechanism to scale out the database. Scaling out the database allows more activities to be processed and more users to access the database by running multiple copies of…
-
Zend Framework DAL: DAOs and DataMappers
Read more: Zend Framework DAL: DAOs and DataMappersA Data Access Layer (DAL) is the layer of your application that provides simplified access to data stored in persistent storage of some kind. For example, the DAL might return a reference to an object complete with its attributes instead of a row of fields from a database table. A Data Access Objects (DAO) is…