Archive
16 years, 337 posts
Everything from the WordPress era of abou-kone.com (formerly
chiefmercenary.wordpress.com), preserved verbatim. JavaScript, AngularJS, NodeJS,
ExtJS, mobile, and a long arc of writing on the African tech ecosystem from 2009 to 2020.
Total: 337 posts. Use Cmd+F or browse by year.
2020
2019
2018
2017
- 11-22 A story of ngUpgrade: Bringing an AngularJS application from 1.6 to Angular 4
- 10-31 Reverse Proxying an angular-cli SPA with Apache and Tomcat
- 07-27 Going Mobile: Wrapping an existing web application in Cordova/Phonegap ★
- 01-18 Dragons when upgrading from Angular 2.1.x to 2.4.x
- 01-09 Angular2: A couple of months in
2016
2015
2014
- 11-29 Prerender Your AngularJS Apps To Boost SEO
- 11-10 Closure in JavaScript & its effects
- 10-25 Registering static methods are remote methods in Loopback 2.0
- 10-09 Loading webfonts with high performance on responsive websites
- 10-05 Notification bar for Angular.js applications
- 10-03 Automatically Start Development Servers with Katon
- 10-03 Enable Geolocation in your apps with Node.js and just a few clicks
- 09-22 Protect Your Node App’s Noggin With Helmet
- 09-16 D3.js Step by Step
- 09-15 10 Free Books for Learning JavaScript
- 09-14 An Introduction to Data Visualization in JavaScript: How to Use Data-Joins in D3
- 09-13 Gravit – Open-source design tool
- 09-10 Developer Tools for PhoneGap, Cordova and Ionic in IntelliJ IDEA 14
- 09-05 4 Simple Steps to Secure Your Express Node Application
- 09-05 Chartist – Simple responsive charts
- 09-05 M.E.A.N Workshop
- 09-01 Build a Cordova hook to setup enviroment specific constants
- 08-30 Google Get MEAN
- 08-30 grunt-file : a command to quickly create, save and reuse gruntfiles
- 08-26 Angular Best Practices Seed/Template
- 08-16 SEO for your Single Page App (Screencast)
- 08-10 Agile in a Remote Workplace World
- 08-10 Getting Started with MEAN Stack
- 08-10 Speeding up AngularJS with simple optimizations
- 08-05 Handling timeout issues with AngularJS and Spring Security
- 08-03 A curated list of Angular-js Directives
- 07-31 Sublime Text packages for Front-end web development
- 07-31 Sublime Text packages for Front-end web development
- 07-29 Discussing Coders4Africa and its Cote d’Ivoire chapter opening ★
- 07-29 JavaScript Promises Are Cool
- 07-26 5 big security mistakes coders make | Security – InfoWorld
- 07-26 The roles of AngularJS and Polymer
- 07-25 Javascript Comma Operator
- 07-24 Opinionated AngularJS styleguide for teams
- 07-23 Protractor 1.0 has been released (end to end testing for AngularJS)
- 07-22 The Refactoring Tales: an ebook on refactoring and system design
- 07-19 Deprecating the switch statement for Object literals
- 07-18 Great JavaScript Interview Questions and Answers
- 07-18 Nested animations in AngularJS using ui-router
- 07-16 Getting Started with Modern Web Development
- 07-16 Model Driven Development
- 07-15 Google Offers A Free Crash Course In Android Development
- 07-15 New Node.js Infographic: Big brands using it, developers in demand and perfect for APIs
- 07-15 Requiring vs Browserifying Angular
- 07-14 Leverage Scope Creep! An in-depth tutorial on Angular.js Scope
- 07-14 The Cordova Plugin Ecosystem Is a Mess — This Is What We’re Doing About It
- 07-14 What is DevOps? Even the Thought Leaders Can’t Agree!
- 07-13 Must Read Technical Books for Programmers
- 07-04 Choose: Grunt, Gulp, or npm?
- 06-18 Ionic directive for an autocomplete location field
- 05-02 DIY AngularJS SEO with PhantomJS
- 04-19 The Birth and Death of Javascript
- 04-19 What’s a full-stack developer?
- 03-19 Scaling Javascript Applications, By Addy Osmani
- 03-18 Build Your Own Yeoman Generator
- 03-13 Techniques for authentication in AngularJS applications
- 03-13 What You Need To Know About AngularJS Data Binding
- 03-11 Habits of a Happy Node Hacker
- 03-11 How can I test my responsive (hybrid) mobile app – Part 3
- 03-11 Using AngularJS to build iPhone and Android apps with PhoneGap
- 03-10 The Web Platform : Building a Solid Stack of HTML, CSS, and JavaScript (Free ebook)
- 02-20 JavaScript Promises … In Wicked Detail
- 01-31 Yo Polymer – A Whirlwind Tour Of Web Component Tooling
- 01-30 Bootstrap 3.1.0 released
- 01-26 Testing in Node.js
- 01-26 Yo Polymer – A Quick Tour Of Web Component Tooling
- 01-20 ng-conf 2014: the world’s first AngularJS conference
- 01-19 Patterns For Large-Scale JavaScript Application Architecture
- 01-11 Dev Gigs: Mastering Node.js Logging
- 01-11 This Startup Thinks It Can Help Save The Legal Profession From Its Utter Implosion
2013
- 12-15 AngularJS 1.3: a new release approaches
- 12-15 The Etymology of ‘Shorty’ in Hip hop
- 12-01 Generator Angular Fullstack 1.0.0 available now
- 11-26 Data Visualization with JavaScript without D3
- 11-26 How to do Authorization and Role based permissions in AngularJs
- 11-26 Testing Grails Applications
- 11-24 Handling Oauth2 with Node.js and Angular.js
- 11-14 9 killer uses for WebSockets
- 11-12 AngularJS Security, XSS and CSP Bypasses
- 11-12 Power up Angular’s $http service with caching
- 11-08 DevFest Building Scalable JavaScript Apps Slide Deck and Demos | .NET Zone
- 11-01 Introducing Yeoman + AngularJS + Express: Full Stack Generator
- 11-01 Unit and Integration Testing Best Practices in AngularJS
- 10-20 Amazon Web Services vs Microsoft Windows Azure
- 10-20 Bootstrap 3 – the definitive guide for web designers
- 10-18 AngularJS 1.2 out next week
- 10-16 The Definitive Guide to Angular on Mobile
- 09-22 Getting started with web components and polymer.js
- 09-09 AngularJS Extensive Tutorial: Learn to Build Modern Web Apps
- 09-09 Do Not Use bodyParser with Express.js
- 09-09 In the Play Store: AngularJS Pocket Reference
- 08-26 Preparing for Animations in Angular 1.2.0
- 08-21 Bootstrap 3 Grid Introduction
- 08-21 Creating an Android App Using Apache Cordova 3.x.x
- 08-20 Bootstrap 3 released
- 08-14 AngularJS 1.2.0 RC1 is out!
- 08-10 How to write a command line application in Node.js
- 08-05 Baucis : build and document REST APIs quickly using Node.js and MongoDB
- 08-05 How to host a private bower registry
- 08-02 AngularJS in 60 Minutes
- 07-29 Bootstrap 3 Goes Mobile-First, Now Reportedly Powers 1% Of The Web
- 07-29 Writing a Command Line Utility using Node
- 07-28 Sencha Touch vs jQuery Mobile
- 07-24 Eight Cool Features Coming in ES6
- 07-22 Differences between Java and Groovy
- 07-22 jString.js – Light Javascript String Library | HMKCode
- 07-21 VerbalExpressions : JavaScript Regular expressions made easy
- 07-20 Adobe PhoneGap 3.0 Released
- 07-20 How yield will transform Node.js
- 07-17 Developing a mobile app with Phonegap, AngularJS and ExpressJS Part I
- 07-16 What’s a (Good) REST API? | Burnside Digital Blog
- 07-08 So You Wanna Build a Crowdfunding Site? (Node.js + MongoDB)
- 07-05 A Better Way to Learn AngularJS
- 07-05 Understand JavaScript’s “this” With Clarity, and Master It
- 07-05 Using bootstrap for Complex design systems
- 07-01 AngularJS: Watch out for HTML comments in those templates!
- 06-27 What Polymer and Angular tell us about the future success of the web platform and JavaScript frameworks
- 06-24 Advanced Grunt Tooling
- 06-24 AngularJS: Unit testing that involves HTML templates
- 06-16 AngularJS vs Ember – Evil Trout’s Blog
- 06-14 Angular.js announces port for Dart
- 06-13 Facebook authentication in your AngularJS web app
- 06-10 Javascript Tips
- 06-10 OnScroll event issues on mobile browsers
- 06-08 Creating a Basic Node.js API with Restify and Save
- 06-03 Automagic Removal of JavaScript Logging
- 06-02 Understanding Express.js
- 05-25 AngularJS: Service v. Factory
- 05-19 Google’s Polymer and the future of web UI frameworks
- 05-17 AngularJS: Tests
- 05-17 NG-Mongo, an AngularJS-powered MongoDB Explorer
- 05-14 GoF Design patterns and JavaScript: The Builder pattern
- 05-13 Crawling AJAX Web sites using HTML5 pushState support – Lately in JavaScript podcast episode 30
- 05-07 Building a Spreadsheet in 20 Minutes with Angular.js
- 05-06 AngularJS State Management with ui-router
- 05-06 Docular – Document your JS code in Angular style
- 04-29 AngularJS: 6 Common Pitfalls Using Scopes
- 04-27 JavaScript Best Practices
- 04-24 Code Organization in Large AngularJS and JavaScript Applications — Cliff Meyers
- 04-20 Responsive Multi-Level Menu
- 04-19 AngularJS: Let’s Make a Feed Reader
- 04-19 Secure Your REST API… The Right Way
- 04-16 Grunt: A build tool for front-end projects
- 04-15 Groovy & Grails for Java Developers
- 04-15 Groovy & Grails Understanding – Part2
- 04-13 Yeoman Update: announcing 1.0 beta 4, Windows support, Refreshed Angular, Backbone, Ember generators and more
- 04-12 Google, Twitter, and AngularJS
- 04-10 Using AngularJS at Localytics (Switching from Backbone)
- 04-09 How Much Does Google Know about You – Infographic
- 04-08 Backbone Tips: Rendering Views and Their ChildViews
- 04-08 Ubuntu 13.04 goes beta
- 04-06 AngularJS – Where To Start?
- 04-05 Understanding AngularJS transclude in directives
- 04-02 Groovy & Grails Design Best Practices
- 04-01 Debug Javascript right in the Sublime Text editor
- 04-01 Host your Website with Google Drive in 4 Steps
- 03-29 Unit Testing Backbone.js Applications
- 03-26 10 Tips for Designing Mobile APIs ★
- 03-26 DevTools Extensions For Web App Developers
- 03-26 Information Hiding in JavaScript
- 03-26 JavaScript encapsulation & the module pattern
- 03-25 Data mining user behaviors in web apps
- 03-24 A JavaScript refresh
- 03-24 African tech startups raise $1 million in crowdfunding effort ★
- 03-24 JavaScript Functions that Return Functions
- 03-23 Fun with AngularJS!
- 03-22 Grails 2.1 to 2.2 Upgrade command error
- 03-20 CSS practices that shouldn’t be overlooked by beginners
- 03-20 Having/Eating your Cake with Backbone Templating
- 03-19 Chart.js – Easy, object orientated client side graphs for designers and developers
- 03-19 JavaScript Patterns
- 03-17 A Complete Guide of jQuery Mobile for Beginners
- 03-17 Comparison of CSS Frontend Frameworks
- 03-16 AngularJS for jQuery Developers
- 03-15 African YouTube use grows 90 per cent ★
- 03-15 Highcharts – Interactive JavaScript charts for your webpage
- 03-15 Interview: The man behind Nigeria’s answer to the iPad ★
- 03-15 Laughter: A Key to Successful Project Management
- 03-13 Strategy pattern in Javascript
- 03-08 Rethinking Backbone.js View Rendering
- 03-08 Start testing your app with CasperJS
- 03-07 Grunt – The Basics (Screencast)
- 03-06 EmberJS Confuses Me
- 03-06 4 Tips for the Student Programmer
- 03-06 Simple integration of AngularJS and ThreeJS
- 03-05 Building Backbone.js apps with Backlift Part 2: Collections and Forms
- 03-05 Unit Testing Backbone.js Applications
- 01-23 AngularJS: the beauty of concision
- 01-16 JavaScript encapsulation & the module pattern
- 01-15 Backbone.js v0.9.10 Released
- 01-13 Common JavaScript Gotchas
2012
- 12-27 ExtJS 4.0: Keeping a row at the top position in a GridPanel
- 12-27 Quilt.js – A JavaScript Library For Backbone.js Declarative Views
- 12-17 How to start with Backbone.js: A simple skeleton app
- 12-16 Tweet from Smashing Magazine (@smashingmag)
- 12-11 Africa on the Rise ★
- 12-11 Best Practices When Working With JavaScript Templates
- 12-10 From The Server To The Client: Client-Side Templating
- 12-09 Script Junkie | Building Mobile JavaScript WebApps With Backbone.js & jQuery: Part I
- 12-02 No Exceptions For Tech Industry: High Skilled Visas Now Tied To Comprehensive Reform
- 11-16 NodeJS & NPM access error
- 11-05 Africa Gathering 2012 – The Wrap-Up ★
- 11-01 Africa Gathering 2013 in Washington DC ★
- 10-24 So, what’s new?
- 08-17 CakePHP 2.0: AjaxHelper does not implement a link() method, it is incompatible with PaginatorHelper error message
- 08-11 African Tech News Tidbits – Week of August 12th 2012 ★
- 08-03 African Tech News Tidbits – Week of August 5th 2012 ★
- 07-28 African Tech News Tidbits – Week of July 29th 2012 ★
- 07-21 African Tech News Tidbits – Week of July 22nd 2012 ★
- 07-15 African Tech News Tidbits – Week of July 15th 2012 ★
- 07-10 Get Test-Infected With Selenium
- 07-08 African Tech News Tidbits: Week of July 8th 2012 ★
- 07-07 Preparing Yourself for Modern JavaScript Development
- 06-29 Automation with Git Hooks
- 06-28 African Tech News Tidbits – Week of June 28th 2012 ★
- 06-26 CakePHP: Permission denied error when trying to execute cake console command
- 06-20 African Tech News Tidbits: Week of June 20th 2012 ★
- 06-20 Why Nigerian Scammers Say They’re From Nigeria [Scams]
- 06-13 African Tech News Tidbits – Week of June 13th 2012 ★
- 06-10 The first people using your product are an amazing breed ★
- 06-09 The African Tech News Tidbits Week of June 7th ★
- 06-02 Infinite redirect loop when using CakePHP
- 05-29 African Tech News Tidbits: Week of May 30th ★
- 05-27 The top 5 startup trends in Africa ★
- 05-24 Africa developing its first supercomputer outside South Africa ★
- 05-24 Ernst & Young’s West Africa Entrepreneur Awards opens for local Ghanaians entrepreneurs | Business ★
- 04-24 The Africa Tech News Tidbits: Week of April 25th ★
- 04-20 Titanium Studio: package org.appcelerator.titanium does not exist
- 04-18 African Tech News Tidbits: Week of April 17th ★
- 04-11 Kenyan startups: As real businesses or social impact projects? ★
- 04-10 African Tech News Tidbits: Week of April 10th ★
- 04-09 Social Entrepreneurship: Make a difference ★
- 03-26 Africa Tech News Tidbits: Week of March 25th ★
- 03-26 The Problematic Developer/Programmer Interview Process
- 03-09 A list of West African brilliant startups? ★
- 03-07 Africa Tech News Tidbits, Week of March 5 ★
- 03-07 Cardiopad: A Cameroonian Medical Tablet ★
- 03-07 Update an array property in MongoDB with multiple values
- 02-27 E-Learning Africa 2012 to happen in Benin ★
- 02-27 Lessons in unsuccessful African startup creation ★
- 02-23 Code Hero: A video game gun that shoots Javascript?
- 02-16 African Tech Tidbits: Week of February 13th 2012 ★
- 02-13 Speed up your CakePHP application by using Memcached
- 02-12 Rails console not starting up in Ubuntu 11.10
- 02-09 Installing MongoDB on Ubuntu 11.10
- 02-04 Heroku setup: “git push heroku master” permission denied ssh issue
- 02-02 Speak Chic: Luxurious pronunciation has no price!
- 01-27 E-Book: App Design help for design-averse developers from Afriapps ★
- 01-25 Website design rules for the African market ★
- 01-24 Time localization in CakePHP
- 01-18 Kenyan startup Mocality Vs Google ★
- 01-18 The Breakdown – Google Vs Mocality
- 01-13 CakePHP Facebook Plugin: API Error Description: The specified URL is not owned by the application.
- 01-12 Git Merge/Git Difftool: Compare a file between two different branches
2011
- 12-26 Titanium Mobile: java.net.UnknownHostException error when using the AVD emulator
- 12-25 A new African middle class ★
- 12-19 “Driving a Rolls Royce on a dirt road”: How not to create African software ★
- 12-19 West Africa and the push for E-Government ★
- 12-13 E-Book: African Apps in The Global Marketplace ★
- 12-13 Have you heard about Konza City? ★
- 12-12 A good primer on Javascript
- 12-12 Mobile: Comparative View Between Kenya and South Africa. ★
- 12-08 African Mobile Tablets: A Reality ★
- 12-07 .africa Domain Name? Soon Come… ★
- 12-07 Meet Ingenious Labs, mobile and web development startup in Togo ★
- 12-07 Mobile App Highlight: Dropifi from Ghana ★
- 12-06 An overview of the App and Mobile Market in Africa ★
- 12-06 System D or how informal economy profits the mobile market ★
- 12-02 U-Mo another mobile money solution in Nigeria ★
- 11-30 Lion’s Lair, A $1500 Youth Entrepreneurship Contest by MakingAfricaWork ★
- 11-30 Paga: A mobile payment startup in Nigeria ★
- 11-30 “Why Africa May Never Produce a Facebook” – A Valid Argument? ★
- 11-15 DCWEEK 2011 Core Conference: Mobile Sessions Wrap-Up
- 11-15 Self Starters: Disruptive Entrepreneurs at DCWEEK 2011 Core Conference ★
- 11-08 10 “Best” Code Comments
- 11-06 Africa Gathering Washington DC Wrapup ★
- 10-17 My first mobile Hackathon experience
- 10-12 On expertise, self confidence and job hunting
- 10-04 Set up JSON action output in CakePHP 1.3
- 09-28 Beginning Entrepreneurship
- 08-25 Sencha Touch MVC Application Tutorial
- 08-24 The First Rule Of Development: Nothing will work as expected!
- 08-09 How to create site thumbnail images
- 08-09 Installing SSH2 manually on Debian Linux
- 08-08 ExtJS: Show a loading mask during Ajax calls
- 08-02 Leverage your web developer skills for mobile development
- 07-20 Debugging: joy or necessary evil?
- 07-20 Update on Programming: “It pays the bills” vs “It satisfies me”
- 07-07 Google Music Beta: A couple of months later…
- 07-07 Have Ghanaian migrants killed their dream?
- 07-07 Programming mistakes and how to avoid them
- 07-05 Programming: “It pays the bills” vs “It satisfies me”
- 06-15 Visual Editor Tool for CSS 3 Gradients
- 06-06 Download phpssh2.dll extension for PHP 5.3 compatible with WAMP Server 2.1
- 06-01 Mysql: Remove Duplicate Values on Creating A New Table
- 05-01 Visual tool for creating CSS gradient properties
- 04-28 An Overview of the new ExtJS 4 Javascript framework
- 04-27 Deleting a file or folder monitored by TortoiseSVN
- 04-27 How to easily delete Subversion Folders in Windows
- 04-27 Zend Framework: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
- 04-25 WAMP Apache Error: “You don’t have permission to access / on this server”
- 02-04 How to POST cross domain and access the returned data using ExtJS
- 01-27 ExtJS: Printing Panels and Grids
- 01-25 Android Development: PhoneGap’s “No such file or directory” Error
- 01-24 Cross Domain Form Post (XDM) in ExtJS with returned data
- 01-07 Invalid Argument Error using ScriptTagProxy and IE6
- 01-07 Of ExtJS’s ScriptTagProxy, Spring Actions, TreePanels and JsonStores
2010
- 12-19 ExtJS: Reloading a Combobox’s Store using OnTriggerClick
- 12-19 Popup Window in IE6: Window appears behind or below the main or parent window
- 11-23 ExtJS JSON Date Serializer: TimeZones and Format
- 10-29 IE6: Invalid Argument Error
- 09-28 Maven WAR plugin: Copying resources to another folder
- 09-08 Disappearing Ext JS RadioGroup and CheckboxGroup inputs in IE6
- 09-08 ExtJS: ComboBox display issues
- 09-03 Disappearing ExtJS buttons in IE 6