Niall Douglas | s_jobs0002@nedprod.com | |
15 Hammond Place
Dromahane Mallow County Cork |
+353 (89) 447 5617 | Date of Birth: |
View Niall Douglas's profile on LinkedIn | rev. 6.6 (2020-06-18) xmlprofile: 'IT' |
std::filesystem::path_view
was approved by LEWG for entry into C++ 23. std::status_code
and std::error
is making good progress at
LEWG, and is hoped to become the new standard error object for
C++. move = bitcopies
has survived EWG-I, and would markedly improve the codegen
of a large class of move-only types (including most STL
containers). std::file_handle
and
std::mapped_file_handle
continue to
make good progress at LEWG-I, and would bring both very high
performance and concurrency safe file i/o to standard C++, as
well as providing a solid foundation for replacing iostreams
with a more modern alternative. errno
-setting
functions such as the C math functions, including providing
seamless interoperation between C code and any future C++ with
lightweight exceptions (see P0709 Zero overhead deterministic exceptions
.
P0709 currently awaits a reference compiler implementation,
expected to be funded by Microsoft.std::status_code
and std::error
standard error objects.I am a year 2000 graduate of Software Engineering at the University of Hull, England, with extensive experience of working prior to and during my degree, and where my final project was an Object Orientated Hardware Abstraction Layer with a port of the uC/OS II real time operating system. I am also a year 2008 Joint Honours Masters graduate in Economics & Management at the University of St. Andrews, Scotland, where my Masters dissertation topic was on Modelling the Costs of Climate Change and its Costs of Mitigation. In 2009 I graduated with a further Masters in Business Information Systems from NUI University College Cork, Ireland, with my team winning the prestigious 2009 Student Enterprise Awards held annually by Enterprise Ireland, the Irish Government organisation for entrepreneurship, for our Web 2.0 FIXatdl Financial Algorithmic Trading Definition Language Editor. In March 2013 I graduated with a PGCert in Educational and Social Research from the University of London, and in June 2013 I obtained a Certificate in Introduction to Complexity with the Santa Fe Institute. I completed in 2017 a Higher Certificate in Pure Mathematics with the Open University, having taken it part-time by distance over a five year period.
1996-06
1997-01
1997-07
1998-01
1998-07
1999-01
1999-07
2000-01
2000-07
2001-01
2001-07
2002-01
2002-07
2003-01
2003-07
2004-01
2004-07
2005-01
2005-07
2006-01
2006-07
2007-01
2007-07
2008-01
2008-07
2009-01
2009-07
2010-01
2010-07
2011-01
2011-07
2012-01
2012-07
2013-01
2013-07
2014-01
2014-07
2015-01
2015-07
2016-01
2016-07
2017-01
2017-07
2018-01
2018-07
2019-01
2019-07
2020-06
|
|
HE Cert Pure Maths: |
|
Certificate Introduction to Complexity: |
|
PGCert Educational and Social Research: |
|
MBS Business Information Systems: |
|
MA Joint Honours in Economics & Management: |
|
BSc Software Engineering: |
|
Capital Markets Platform Consultant: |
|
Modernisation Contractor: |
|
A C99 preprocessor written in pure Python: |
|
Contract Consultant on Audio C++ library: |
|
Principal Architect Consultant on Boost, C++, thread safety and reliable UDP: |
|
Primary Boost C++ Libraries Admin for annual Google funding: |
|
Mentor for Boost.AFIO and Boost.Trie C++ libraries: |
|
Owner Representative: |
|
Affiliate Researcher: |
|
Senior Software Developer, Platform Development: |
|
Coauthor of Book "Economists and the Powerful — Convenient Theories, Distorted Facts, Ample Rewards": |
|
Implemented reliable wave buoy data collection solution: |
|
Appointed to International Standards Committees: |
|
Appointed to the Conference Committee: |
|
BEurtle BE distributed issue tracker GUI plugin for the TortoiseXXX family of SCMs: |
|
Appointed Social Networking Coordinator: |
|
The Luxubrations Οξυδέρκεα Startup Project: |
|
Business Lecturer: |
|
Made presentation and submitted N-notes: |
|
Wrote academic paper on user mode page allocation: |
|
Further optimisation of US DoD Planning Project gaining a further 10% performance improvement: |
|
Contributed EU VAT support to Plone's Easyshop eCommerce Product: |
|
Debugging and 13% performance improvement of US DoD Planning Project: |
|
Implemented Radio Over IP via Voice Over IP (Asterisk): |
|
ned Productions Limited IT Consultancy: |
|
Tutor in Economics, Business, Stats, Management and Web Programming: |
|
Economics Lecturer: |
|
Author of Book "Freeing Growth": |
|
Substantially improved the Brook GPU stream computing runtime, increasing performance forty-fold: |
|
The Future Society: |
|
nedmalloc Thread Caching Memory Allocator: |
|
Secretary of Senior Residents Committee: |
|
TnFOX template metaprogrammed C++ portability layer: |
|
The Tn Revolution Project: |
|
Chief Software Architect for EuroFighter Fuel & Hydraulic Test Benches: |
|
nedHAL object-orientated Hardware Abstraction Layer for ARM microprocessors: |
|
Performance Optimisation of ARM7 GPS firmware for Guidance Systems: |
|
Wrote i/o driver, EEPROM programmer and refactored DEC's StrongARM uHAL port: |
|
Year, Student and Science Faculty Student Representative: |
|
Language Compiler: |
|
Implemented distributed Post Office Address network query service over TCP/IP: |
|
Customer Support & Upgrading of PipeDream Office Software for Acorn RISC-OS: |
|
1996-06
1997-01
1997-07
1998-01
1998-07
1999-01
1999-07
2000-01
2000-07
2001-01
2001-07
2002-01
2002-07
2003-01
2003-07
2004-01
2004-07
2005-01
2005-07
2006-01
2006-07
2007-01
2007-07
2008-01
2008-07
2009-01
2009-07
2010-01
2010-07
2011-01
2011-07
2012-01
2012-07
2013-01
2013-07
2014-01
2014-07
2015-01
2015-07
2016-01
2016-07
2017-01
2017-07
2018-01
2018-07
2019-01
2019-07
2020-06
|
Assemblers | ARM [expert] | x64 [expert] | x86 [expert] | |||||
---|---|---|---|---|---|---|---|---|
Programming Languages | C [expert] | C++ [expert] | C# [competent] | GLSL [competent] | HLSL [competent] | Javascript [competent] | OpenCL [competent] | PHP [competent] |
Python [expert] | SQL [expert] | VBA [competent] | XSL [proficient] | |||||
Programming Libraries | Boost [expert] | DirectX [competent] | jQuery [proficient] | .NET [competent] | OpenGL [competent] | OpenSSL [expert] | Qt [competent] | X11 [proficient] |
Platforms | Google Android [competent] | Apple Mac OS X [competent] | POSIX Unix (Linux, FreeBSD) [expert] | Windows [expert] | ||||
General | embedded systems (kernel and driver development) [expert] | multiprocessor & multithreaded systems [expert] | object orientation [expert] | stream and GPU high performance computing [expert] | performance tuning [expert] | generic programming [expert] | functional programming [proficient] | distributed programming [expert] |
project management [proficient] | ||||||||
Spanish | Passable Conversational Spanish [competent] |
---|---|
[ISCED level 5 code 4.46 (Mathematics and statistics)] | ||
---|---|---|
Higher Certificate (HE Cert) Pure Maths | Pass | — |
Open University | Cork, IRELAND | |
[ISCED level 4 code 4.46 (Mathematics and statistics)] | ||
Certificate (Certificate) Introduction to Complexity | Pass (95%) | — |
The Santa Fe Institute | Waterloo, Ontario, CANADA | |
[ISCED level 6 code 1.14 (Teacher training and education science)] | ||
Post-graduate Certificate (PGCert) Educational and Social Research | Merit | — |
University of London | Cork, IRELAND | |
[ISCED level 6 code 3.34 (Business and administration)] | ||
Master of Business Systems (MBS) Business Information Systems | 2H2 | — |
National University of Ireland Cork | Cork, IRELAND | |
Dissertation topic was: WebATDL – a Web 2.0 FIXatdl Financial Algorithmic Trading Definition Language Editor | ||
[ISCED level 5 code 3.31 (Social and behavioural science)] | ||
Master of Arts (MA) Joint Honours in Economics & Management | 2H1 | — |
University of St. Andrews | St. Andrews, Fife, UNITED KINGDOM | |
Dissertation topic was: Modelling the Costs of Climate Change and its Costs of Mitigation – A Scientific Approach | ||
[ISCED level 5 code 4.48 (Computing)] | ||
Bachelor of Science (BSc) Software Engineering | — | |
University of Hull | Hull, Yorkshire, UNITED KINGDOM | |
Dissertation topic was: NedHAL – a modular, architecture-independent, multiprocessing-capable Hardware Abstraction Layer | ||
[ISCED level 3 code 0.01 (Basic / broad general programmes)] | ||
Irish Leaving Certificate (Seven Honours) | 1 A, 5 B's, 1 C | — |
Presentation Brothers College | Cork, IRELAND | |
[ISCED level 2 code 0.01 (Basic / broad general programmes)] | ||
Irish Junior Certificate (Ten Honours) | — | |
Presentation Brothers College | Cork, IRELAND | |
College of Teachers | Member no. 008996 | — |
World Economics Association (formerly Post-Autistic Economics Network) | Member | — |
British Computing Society | Ordinary Member | — |
Mensa Ireland | Member | — |
Dublin C++ Users group | Presented | Sep 2018 |
Deterministic Disappointment | ||
Boost C++ Libraries | Underwent peer review of proposed Boost.Outcome C++ library (2nd time) | Jan 2018 |
Peer Review Report for proposed Boost.Outcome v2 Jan 19th - 28th | ||
The 2017 Meeting C++ conference | Presented | Nov 2017 |
Introduction to proposed std::expected<T, E> | ||
Boost C++ Libraries | Underwent peer review of proposed Boost.Outcome C++ library (1st time) | May 2017 |
Peer Review Report for proposed Boost.Outcome v1 May 19th - June 2nd | ||
Google Summer of Code 2017 | Mentor for proposed Boost.StaticViews C++ library | Jun 2017 |
https://svn.boost.org/trac10/wiki/SoC2017 | ||
The 2017 ACCU conference | Presented | Apr 2017 |
Mongrel Monads, Dirty, Dirty, Dirty | ||
Boost C++ Libraries | Peer Review managed proposed Boost.Stacktrace C++ library (2nd time) | Mar 2017 |
Peer Review Report for proposed Boost.Stacktrace v2 Mar 17th - 26th | ||
Boost C++ Libraries | Peer Review managed proposed Boost.Stacktrace C++ library (1st time) | Dec 2016 |
Peer Review Report for proposed Boost.Stacktrace v1 Dec 14th - 23rd | ||
The 2016 CppCon conference | Presented | Sep 2016 |
Better Mutual Exclusion on the filesystem using Boost.AFIO | ||
The 2016 ACCU conference | Presented | Apr 2016 |
Distributed Mutual Exclusion using Proposed Boost.AFIO | ||
The 2015 CppCon conference | Presented | Sep 2015 |
Racing the File System | ||
The 2015 C++ Now conference | Presented | May 2015 |
A review of C++ 11/14 only Boost libraries - Fiber, AFIO, DI and APIBind | ||
The 2014 C++ Now conference | Presented | May 2014 |
My Thoughts on Large Code Base Change Ripple Management in C++ | ||
Boost C++ Libraries | Peer Review managed proposed Boost.TypeIndex C++ library | Nov 2013 |
Peer Review Report for proposed Boost.TypeIndex v2.1 Nov 12th – 21st 2013 | ||
Google Summer of Code 2013 | Mentor for proposed Boost.AFIO and Boost.Trie C++ libraries | Jun 2013 |
http://www.google-melange.com/gsoc/org/google/gsoc2013/boost | ||
All Ireland Student Enterprise Awards Competition | Winner of 'Export Capability' Award | Jun 2009 |
G-One Trading for WebATDL (group project of MBS BIS above): http://www.ucc.ie/en/news/newsarchive/2009pressreleases/fullstory-76744-en.html | ||
Google Summer of Code 2009 | Nominated as Mentor for the Boost C++ libraries | Jun 2009 |
Aer Lingus Young Scientist's Competition | Came second in group | Dec 1994 |
Motorola Software in Schools Competition | Came second | Dec 1993 |
International Logo Programming Competition | Came second in Ireland and fourth in the world | Jun 1989 |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Capital Markets Platform Consultant | (ref: https://maystreet.com/) | — |
MayStreet Inc. | Earnings (excl. stocks): €270000 per annum. | Cork, IRELAND |
Led out the design and implementation of the custom database part of MayStreet’s replacement for the SEC’s MIDAS platform, which captures all trades in the US including futures and options, and provides live and historical querying of that data to regulatory authorities. This was a challenging project, requiring extreme attention to detail and correctness in order to handle the volumes of data involved, whilst keeping latencies within tens of milliseconds no matter market volatility, and very high uptime and redundancy. Some features:
Contracted through ned Productions Ltd. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Deterministic Disappointment | (ref: https://www.youtube.com/watch?v=cbUTAoHy6Ls) | |
Dublin C++ users group | Earnings: Unpaid | Dublin, IRELAND |
Literature review of the WG21 papers relating to deterministically handling failure, and using libraries such as Outcome to implement the same. |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Modernisation Contractor | (ref: https://www.verizonwireless.com/) | — |
Verizon Wireless | Earnings: €400 per day. | Dublin, IRELAND |
Helped the Public Key Infrastructure group modernise their twenty-five year old C++ codebase of approx. two million lines of code. Contributions:
Contracted through ned Productions Ltd. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
My proposed Boost library Outcome peer reviewed by experts (2nd time) | (ref: https://lists.boost.org/boost-announce/2018/02/0536.php) | |
Boost C++ Libraries | Earnings: Open Source | Cork, IRELAND |
Submitted a second attempt, incorporating the ample feedback from the first peer review, at a library intended for C++ standardisation which implements fixed latency failure handling as a predictable latency alternative to C++ exception throws. This was accepted into the Boost libraries, and it began almost immediately the process to become standardised into ISO C++. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Introduction to proposed std::expected<T, E> | (ref: https://www.youtube.com/watch?v=JfMBLx7qE0I) | |
Meeting C++ conference | Earnings: Unpaid | Berlin, GERMANY |
Literature review of the several WG21 papers relating to std::expected<T, E> |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
My proposed Boost library Outcome peer reviewed by experts (1st time) | (ref: https://lists.boost.org/boost-announce/2017/06/0510.php) | |
Boost C++ Libraries | Earnings: Open Source | Cork, IRELAND |
Submitted a first attempt at a library intended for C++ standardisation which implements fixed latency failure handling as a predictable latency alternative to C++ exception throws. As a vocabulary type expected to enter standardisation, this review attracted enormous interest from across the C++ ecosystem. It was rejected, but with plenty of feedback on what to design for v2 Outcome. |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Contract Consultant on Market Data over TCP scalability | (ref: https://www.quanthouse.com/) | |
Quant House | Earnings: €600 per day. | Cork, IRELAND |
This was a 100% remote working contract with an onsite visit. Performed one month of feasibility testing on QuantHouse's main ultra low latency market data supply product FeedOS, producing a report on their future options for reducing latency and increasing density of clients served. Contracted through ned Productions Ltd. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
A C99 preprocessor written in pure Python | (ref: https://pypi.org/project/pcpp/) | — |
A pure universal Python C (pre-)preprocessor implementation very useful for pre-preprocessing header only C++ libraries into single file includes and other such build or packaging stage malarky. The implementation can be used as a Python module (see API reference) or as a command line tool pcpp which can stand in for a conventional C preprocessor (i.e. it’ll accept similar arguments). |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Mongrel Monads, Dirty, Dirty, Dirty - Niall Douglas [ACCU 2017] - YouTube | (ref: https://youtu.be/XVofgKH-uu4) | |
ACCU conference | Earnings: Unpaid | Bristol, UNITED KINGDOM |
Are you using enums to return error states from functions (or even an int or bool!)? Do you find writing exception safe C++ a poor return on coding investment, and end up avoiding using most of the STL entirely because it could throw exceptions in all sorts of unhelpful places? Have you ever wondered what on earth the C++ 11’s system_error header is actually useful for? One might think that after thirty years C++ would have decided upon a canonical way of handling errors, but it is very clear the jury remains out with heavy fragmentation in the C++ user base as to how best to handle errors. The new systems programming languages Rust and Swift have chosen a canonical error handling system based on immediate stack unwinding returns of integer error codes in a monadic wrapper e.g. Rust’s ResultT and OptionT. Efforts are underway to standardise something similar for C++ with optional T and soon WG21 LEWG’s expected T, E which recently lost its monadic operations as it gets pared ever further down to its essentials for standardisation. This talk reviews these four standardised error handling techniques in C++, and how well the three major compilers and library implementations implement these techniques into overhead. I will also be introducing for the first time my own solution to this problem called outcomes (implemented by a proposed Boost.Outcome library) which implement a very impure and dirty - but very lightweight on compile and runtime overhead – simple “mongrel monad” outcome T, result T and option T transport factory specifically targeted at extending C++ 11’s std::exception_ptr and std::error_code in a more convenient to use form, thus providing a unified lossless error handling system for C++. I am hoping these will eventually form part of SG14 (games/low latency)’s recommendations for maximum performance C++ as a lighter weight and more convenient to use for error handling alternative to the LEWG expected T, E. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
CppCon 2016: Niall Douglas “Better mutual exclusion on the filesystem using Boost.AFIO" | (ref: https://www.youtube.com/watch?v=9l28ax3Zq0w) | |
CppCon conference | Earnings: Unpaid | Seattle, UNITED STATES |
This is the third and likely final part of a surprisingly popular "from first principles" series of beginner's workshops based on developing the v2 post-peer-review rewrite of proposed Boost.AFIO, a C++ library wrapping the advanced features of the filesystem intended for eventual ISO C++ standardisation. If you're the kind of library developer who likes building unusual low level concurrent algorithms using the very latest C++ 14-17 (proposed) features and testing them for time and space complexities, this is definitely your kind of talk. At CppCon 2015 we studied the concurrency fundamentals of the filing system, and how it can have the acquire/release semantics of memory atomics but also differs in many ways from memory. At ACCU 2016, using those fundamentals we built from first principles a novel distributed mutual exclusion implementation boost::afio::algorithm::atomic_append which doesn't suffer from the "scalability holes" found in the OS kernel provided facilities boost::afio::algorithm::byte_ranges and boost::afio::algorithm::lock_files. At this third workshop we shall continue the "from first principles" theme by building a fourth and probably last distributed mutual exclusion algorithm for the AFIO algorithms library boost::afio::algorithm, with this one making use of shared memory maps for superior performance when only a single machine is doing the locking. Is it possible to portably detect the arrival of a networked drive user (SMB, NFS) and safely disable using shared memory maps such that we can automatically race free downgrade our implementation to a networked drive compatible technique? It turns out that the answer is yes. It has superb performance and scalability, but also comes with many interesting preconditions, tradeoffs and caveats, the most important being that this is an anti-social mutual exclusion algorithm. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
'Distributed Mutual Exclusion using Proposed Boost.AFIO' - Niall Douglas [ ACCU 2016 ] | (ref: https://www.youtube.com/watch?v=elegewDwm64) | |
ACCU conference | Earnings: Unpaid | Bristol, UNITED KINGDOM |
Developing from the surprisingly popular CppCon 2015 tutorial “Racing the filesystem” (https://www.youtube.com/watch?v=uhRWM...) on the concurrency fundamentals of the file system, this workshop takes the audience from the fundamental first principles of the file system through to a working and high performance distributed mutual exclusion implementation exclusively using atomic file append messaging based on a modified Maekawa-Suzuki-Kasami distributed voting and mutual consensus algorithm. Along the way the portable asynchronous file system model supplied by proposed Boost.AFIO will be explained and how such a standardised programming model makes implementing write-once run-anywhere file system algorithms much more tractable. Empirical benchmarks will be shown comparing the scalability of our algorithm to other forms of file system based mutual exclusion such as lock files and byte range locking across Microsoft Windows (NTFS and ReFS), Linux (ext4) and FreeBSD (ZFS). One of the major advantages of our algorithm is that it works perfectly over SMB networked file systems, including mixed POSIX and Microsoft Windows endpoints, and it will be explained how this is not always the case with other mutual exclusion techniques. With a live demonstration of the working algorithm, the likely audience for this workshop would be similar to that for lock free programming using memory atomics, however the file system exposes a much richer suite of fundamental primitive operations – and unexpected surprises! |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Contract Consultant on Audio C++ library | (ref: http://dts.com/) | — |
DTS | Earnings: €500 per day. | Cork, IRELAND |
This was a 100% remote working contract with a 100% remote working team each member distributed from the US to Continental Europe. The team I was contracted to was one of many teams working on DTS's (now Tessera) binaural 3D spatialisation technology which provides superior quality rendering at very low CPU cost on the platforms Windows 7 to 10, XBox One, OS X, Android, Linux, and other platforms. It was optimised for the x86, x64, ARM v7a and AArch64 targets via extensive SIMD and micro cache tuning. During this contract, I helped to very substantially refactor the implementation to bring it from an R&D/experimental quality level into state of the art production quality C++ 14/17 with the very latest in C++ best practice. Contracted through ned Productions Ltd. |
||
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
CppCon 2015: Niall Douglas “Racing The File System" | (ref: https://www.youtube.com/watch?v=uhRWMGBjlO8) | |
CppCon conference | Earnings: Unpaid | Seattle, UNITED STATES |
Almost every programmer knows about and fears race conditions on memory where one strand of execution may concurrently update data in use by another strand of execution, leading to an inconsistent and usually dangerous inconsistent read of program state. Almost every programmer therefore is aware of mutexes, memory ordering, semaphores and the other techniques used to serialise access to memory. Interestingly, most programmers are but vaguely aware of potential race conditions on the filing system, and as a result write code which assumes that the filing system does not suddenly change out from underneath you when you are working on it. This assumption of a static filing system introduces many potential security bugs never mind ways of crashing your program, and of course creating data loss and corruption. This workshop will cover some of the ways in which filing system races can confound, and what portable idioms and patterns you should employ to prevent misoperation, even across networked Samba shares. Finally, an introduction of the proposed Boost library AFIO will be made which can help application developers writing filing system race free code portably. |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Principal Architect Consultant on Boost, C++, thread safety and reliable UDP | (ref: http://maidsafe.net/) | — |
MaidSafe Ltd | Earnings: €45 per hour. | Cork, IRELAND |
Work-from-home off-site contracted (with
two extensions) by MaidSafe to help them launch the next generation of
decentralised secure internet advising on architecture, Boost, C++ 14, continuous
integration, recruitment, economics, management and the other topics in which I
have formal academic qualifications.
Contracted through ned Productions Ltd. |
||
Contract specifications (in order):
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Primary Boost C++ Libraries Admin for annual Google funding | (ref: http://lists.boost.org/boost-announce/2014/02/0394.php) | — |
Boost C++ Libraries | Earnings: Open Source | Cork, IRELAND |
Appointed as primary Google Summer of Code admin for the Boost C++ Libraries. Boost petitions Google annually for student-mentor funding worth US$5,000 per student, and is typically awarded between US$40,000 and US$50,000 in grants per year. | ||
One of the largest single chunks of income for many open source projects is the Google Summer of Code program which pays students to work under mentors to achieve a predeclared set of work items during the annual university summer recess. Mentors receive no compensation, and the main responsibilities of this team management position are as follows:
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Peer Review Managed Boost.TypeIndex C++ library | (ref: https://groups.google.com/d/msg/boost-list/TeiSdkRkUF0/eA8u8gqsHnwJ) | |
Boost C++ Libraries | Earnings: Open Source | Waterloo, Ontario, CANADA |
Selected as Peer Review Manager for the community peer review of proposed Boost.TypeIndex in the highly esteemed peer reviewed Boost C++ Libraries. Peer review report can be viewed at Peer Review Report for proposed Boost.TypeIndex v2.1 Nov 12th – 21st 2013. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Mentor for Boost.AFIO and Boost.Trie C++ libraries | (ref: http://www.google-melange.com/gsoc/org/google/gsoc2013/boost) | — |
Google Summer of Code 2013 | Earnings: Open Source | Waterloo, Ontario, CANADA |
Selected as mentor for two Google Summer of Code 2013 projects in the highly esteemed peer reviewed Boost C++ Libraries, Boost.AFIO and Boost.Trie. | ||
The first project, proposed Boost.AFIO, is a linear scalable, batch, chainable, asynchronous closure execution engine extending Boost.ASIO and Boost.Thread specialised as a portable asynchronous file i/o implementation library with the student, Paul Kirth, porting an existing pure C++ 11 codebase written and designed by me to Boost and the last three generations of the compilers GCC 4.6, 4.7 and 4.8, Microsoft Visual Studio 2010, 2012 and 2013, and clang/LLVM 3.1, 3.2 and 3.3 on the operating systems Linux, FreeBSD 10 and Microsoft Windows. Proposed Boost.AFIO is an alternative solution to Google's WG21 N3731 (Executors and schedulers v2) proposal, or indeed Microsoft's WG21 N3721 (Improvements to std::future<T> and Related APIs), and it is hoped that AFIO will be the pattern chosen instead for ISO standardisation. Despite being less than 1000 active LOC, the effort involved in readying this library for peer review has been substantial, and included the configuration of our own custom Jenkins CI running a series of snapshotting VMs and a very extensive automated unit and functional test suite, which runs inside my own personal cloud compute mash up platform based on the Proxmox VE virtualisation solution with three nodes in France, Quebec and in my own home. AFIO now exceeds 20,000 lines of text, most of which is extensive testing and documentation. You may find the official Boost documentation on proposed Boost.AFIO of interest. The second project, Boost.Trie, implements a STL trie (prefix tree) container for C++. I was selected as one of three mentors for this project due to my domain experience with the popular nedtries open source bitwise tries algorithm library. |
[NACE sector code K64.9. (Other financial service activities, except insurance and pension funding)] | ||
---|---|---|
[ISCO code 2419 (Business professional not elsewhere classified)] | ||
Owner Representative | (ref: https://www.libro.ca/) | — |
Libro Credit Union | Earnings: CDN$1600 per annum. | Waterloo, Ontario, CANADA |
I serve on the board of owner representatives for the Beechwood branch, Waterloo, Ontario. We disperse around $30k per annum on community youth investment projects. |
[NACE sector code M72.2.0 (Research and experimental development on social sciences and humanities)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
Affiliate Researcher | (ref: http://wici.ca/2012/11/niall-douglas/) | — |
Institute for Complexity and Innovation, University of Waterloo | Earnings: Unpaid | Waterloo, Ontario, CANADA |
The Waterloo Institute for Complexity and Innovation (WICI) facilitates transdisciplinary and collaborative research promoting innovation and resilience within - and beneficial transformation of - the complex adaptive systems at the core of human well being in the 21st century. | ||
Under this overarching mission, WICI aims to:
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Senior Software Developer, Platform Development | (ref: http://www.blackberry.com/) | — |
BlackBerry Inc. | Earnings: CDN$120735 per annum. | Waterloo, Ontario, CANADA |
Working in part with Principal BlackBerry Architect Gary Klassen's Performance and Advanced UI Groups, and with VP of Systems Optimisation Sean Simmons, researched and prototyped and wrote internal white papers on solutions to systemic, ecosystemic and performance concerns surrounding the BB10 mobile device platform. | ||
Some of my main projects at BlackBerry involved:
|
[NACE sector code R90.0.3 (Artistic creation)] | ||
---|---|---|
[ISCO code 2451 (Author, journalist and other writer)] | ||
Coauthor of Book "Economists and the Powerful — Convenient Theories, Distorted Facts, Ample Rewards" | (ref: http://www.anthempress.com/index.php/economists-and-the-powerful.html) | — |
Together with Handelsblatt (German equivalent of The Financial Times) Economics correspondent and co-founder of the World Economics Association Dr. Norbert Häring, coauthored a novel 100,000 word account of the inner workings of our capitalist economy, in which competition is imperfect and influence of power is ubiquitous. Unlike the Freeing Growth series of books, this book contained no original economics research and consisted of a critical literature review combined with a fairly robust critique of the Economics profession, particularly how many of its leading figures advocate policies favourable to their research funding interests, often for cash payments, rather than pursuing objectivity or truth. Published across the English speaking world by Anthem Press. |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Implemented reliable wave buoy data collection solution | (ref: http://www.hydrodata.ie/) | — |
Irish Hydrodata | Earnings: €1500 | Cork, IRELAND |
Contracted by Irish Hydrodata to implement a software solution which reliably transmitted wave data collected by buoys in the Atlantic Ocean to their head office. | ||
|
[NACE sector code M71.1. (Architectural and engineering activities and related technical consultancy)] | ||
---|---|---|
[ISCO code 2139 (Computing professionals not elsewhere classified)] | ||
Appointed to International Standards Committees | (ref: http://www.nsai.ie/) | — |
National Standards Authority of Ireland ISO/IEC mirror committees | Earnings: Unpaid | |
Appointed to the National Standards Authority of Ireland (NSAI) ISO/IEC JTC1/SC22 (Programming languages, their environments and system software interfaces) and JTC1/SC38 (Distributed application platforms and services) mirror committees. Appointed Irish convenor of JTC1/SC22. Joined Austin Common Standards Revision Group responsible for development of POSIX. |
[NACE sector code P85.4.2 (Tertiary education)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
Appointed to the Conference Committee | (ref: http://www.worldeconomicsassociation.org/) | — |
World Economics Association Conference Committee | Earnings: Unpaid | |
Appointed to the Conference Committee of the World Economics Association, an international association of pluralist Economists. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
BEurtle BE distributed issue tracker GUI plugin for the TortoiseXXX family of SCMs | (ref: https://github.com/ned14/BEurtle) | — |
Implemented a user interface plugin in C# and .NET 3.5/2.0 for the Bugs Everywhere distributed issue tracker for the TortoiseXXX family of source control management user interfaces for Microsoft Windows. This GUI used WiX, the Windows Installer XML abstraction toolkit, to generate a fully compliant Windows Installer package. |
[NACE sector code P85.4.2 (Tertiary education)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
Appointed Social Networking Coordinator | (ref: http://www.worldeconomicsassociation.org/) | — |
World Economics Association | Earnings: Unpaid | |
Appointed Social Networking Coordinator of the World Economics Association, an international association of pluralist Economists. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2131 (Computer systems designer and analyst)] | ||
The Luxubrations Οξυδέρκεα Startup Project | (ref: http://www.oxyderkeia.net/) | — |
Luxubrations Οξυδέρκεα (Luxubrations Oxydérkeia) was a startup project aimed at bringing deep, penetrating insight (oxyderkis) to academic studies performed under artificial light (luxubrations). Originally intended as a Master of Research thesis project with the Institute of Education in the University of London, this software performed real-time cloud and client analysis of how students went about writing academic work outputs. Unfortunately due to the loss of access to students with which to test the software, it had to be abandoned after six months of development. | ||
|
[NACE sector code P85.4.2 (Tertiary education)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
Business Lecturer | (ref: http://www.lah.ie/) | — |
Cork English College | Earnings: €18 per hour. | Cork, IRELAND |
Gave seventy-five hours of lectures in Business and Management to undergraduate students from l’Ecole Supérieure de Commerce IDRAC Lyon, France as part of their semester abroad studying in a native English speaking country. | ||
|
[NACE sector code M71.1. (Architectural and engineering activities and related technical consultancy)] | ||
---|---|---|
[ISCO code 2139 (Computing professionals not elsewhere classified)] | ||
Made presentation and submitted N-notes | (ref: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1527.pdf) | — |
International Standards Organisation (ISO) Working Group 14 committee | Earnings: Unpaid | |
Also stemming from the previous works on user mode page allocation, wrote and submitted proposal N1527 to modify the dynamic memory allocation API to improve memory allocation and deallocation latencies of the ISO C programming language standard. Along with N1527, also wrote two library implementations of the N1527 proposal which are available at http://github.com/ned14/C1X_N1527. | ||
|
[NACE sector code M72.1. (Research and experimental development on natural sciences and engineering)] | ||
---|---|---|
[ISCO code 2451 (Author, journalist and other writer)] | ||
Wrote academic paper on user mode page allocation | (ref: http://arxiv.org/abs/1105.1811) | — |
Wrote an academic treatise on the topic of user mode page allocation which stemmed from the work performed in the previous two experiences. This paper presents a large number of empirical test results comparing kernel page allocator performance on Microsoft Windows and Linux with the user mode page allocator as implemented below in a wide variety of synthetic and real world scenarios using the binary patching process injection feature of nedmalloc. The paper has been submitted for presentation to the 2011 Federated Computing Research Conference to be held in San Jose, U.S.A. | ||
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
nedtries Portable Bitwise Fredkin Trie Library | (ref: http://github.com/ned14/nedtries) | |
Repackaged work done as part of implementing the user mode page allocator for nedmalloc (see last experience) into a standalone C and C++ architecture independent library called nedtries. This library implements an in-place bitwise Fredkin trie algorithm which allows for near constant time insertions, deletions, finds, closest fit finds and iteration as well as being of equal speed in each of these operations (a very unusual characteristic in search algorithms). Benchmarking shows it to be approximately 50-100% faster than red-black trees and up to 20% faster than O(1) hash tables. Also added a C++ STL std::map<> and std::unordered_map<> compatible container called nedtries::trie_map<> which allows very easy usage from C++. Full API and source documentation is provided as a Microsoft Compiled Help format file. |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Further optimisation of US DoD Planning Project gaining a further 10% performance improvement | (ref: http://www.ara.com/) | — |
Applied Research Associates | Earnings: €550 per day. | Cork, IRELAND |
Further contracted by ARA to help them
significantly improve the performance of one of their major projects for the US
Department of Defence, a planning solver application which constructs large
trees of interrelated objects occupying multiple gigabytes of RAM. Through the
benchmarking and analysis performed during the previous contract with ARA, we
realised that there ought to be a > 10% performance improvement
realisable through implementing a user mode memory page allocator.
Provided through ned Productions Ltd. |
||
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Contributed EU VAT support to Plone's Easyshop eCommerce Product | (ref: http://plone.org/products/easyshop/) | — |
When searching for an e-Commerce solution for the ned Productions Ltd. website capable of handling intra-EU B2B and B2C VAT, it was realised that very few open source e-Commerce solutions are capable of this without purchasing additional components (and usually at a high monthly cost). As the company's primary web application platform is Plone, a complete configurable intra-EU VAT solution was developed and contributed to Easyshop. |
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Debugging and 13% performance improvement of US DoD Planning Project | (ref: http://www.ara.com/) | — |
Applied Research Associates | Earnings: €75 per hour. | Cork, IRELAND |
Contracted by ARA to help them solve
performance problems being experienced by one of their major projects for the US
Department of Defence, a planning solver application which constructs large
trees of interrelated objects occupying multiple gigabytes of RAM. Work focused
around the incorporation of my memory allocator, nedmalloc, into their project.
Provided through ned Productions Ltd. |
||
|
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Implemented Radio Over IP via Voice Over IP (Asterisk) | (ref: http://www.kestrelcomms.com/) | — |
Kestrel Communications | Earnings: €50 per hour. | Cork, IRELAND |
Developed a low cost software based
application to link disparate radio installation sites via VoIP transmitted over
the internet. This project is intended to be initially deployed at Blackpool
Shopping Centre where it will allow a person located anywhere in the world to
log into the Centre's internal radio system and participate in its dialogue.
Provided through ned Productions Ltd. |
||
|
[NACE sector code J62.0.2 (Computer consultancy activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
ned Productions Limited IT Consultancy | (ref: http://www.nedproductions.biz/) | — |
Set up a limited company to provide consultancy services in the field of computer information technology to fee-paying clients. |
[NACE sector code P85.4.2 (Tertiary education)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
Tutor in Economics, Business, Stats, Management and Web Programming | (ref: http://www.ucc.ie/) | — |
National University of Ireland Cork | Earnings: €18 per hour. | Cork, IRELAND |
Tutored the “Masters in E-Business” class of 2009 in XHTML, Javascript and PHP web services programming. Also tutored students suffering from disabilities in Economics, Business Studies, Statistics, IT and Management. |
[NACE sector code P85.4.2 (Tertiary education)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
Economics Lecturer | (ref: http://www.nedprod.com/studystuff/) | — |
National University of Ireland Cork | Earnings: €65 per hour. | Cork, IRELAND |
Gave twenty-one hours of Economics lectures for the Adult Education Department in their interdisciplinary Social Studies degree programme, during which I achieved an excellent 87.2% class attendance, an 82.8% Interestingness and an 81.2% Clearness rating in the weekly feedback form evaluations. | ||
|
[NACE sector code R90.0.3 (Artistic creation)] | ||
---|---|---|
[ISCO code 2451 (Author, journalist and other writer)] | ||
Author of Book "Freeing Growth" | (ref: http://www.freeinggrowth.org/) | — |
Wrote a two hundred thousand word, five hundred page book consisting of my thoughts on a range of topics including Accounting, Agricultural, Corporate, Educational, Financial, Health, Legal, Moral, Political, Spiritual & Religious matters with a strong grounding in mathematical logic, based on an application of the principles of the Tn project (below) to wider society. After receiving feedback from others, I intend to expand this book into a series of many books from 2009 onwards. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2131 (Computer systems designer and analyst)] | ||
Substantially improved the Brook GPU stream computing runtime, increasing performance forty-fold | (ref: http://sourceforge.net/projects/brook/) | — |
Significantly upgraded the open source software Brook GPU which is a streaming computation language for graphics processors. A 2007 era GPU can achieve 250 GFLOPs with good data partitioning, and performance roughly doubles annually. | ||
|
[NACE sector code P85.4.2 (Tertiary education)] | ||
---|---|---|
[ISCO code 2310 (College, university and higher education teaching professionals)] | ||
The Future Society | (ref: http://www.futuresociety.org.uk/) | — |
University of St. Andrews Student Societies | Earnings: Unpaid | |
Formed a student society called “The Future Society” which held a lecture series called “Creating The Future” given by invited guest lecturers speaking upon the future. | ||
These lectures were given by world
leaders in their fields such as:
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
nedmalloc Thread Caching Memory Allocator | (ref: http://sourceforge.net/projects/nedmalloc/) | — |
Finding that ptmalloc2 did not scale as well with extra processor cores as it could, reimplemented ptmalloc2 by basing a new allocator, nedmalloc, on dlmalloc but with an added thread cache for smaller allocations. Still remains to this day the fastest fully-portable memory allocator in the world, including commercial offerings and is in use by root DNS servers and some of the world’s largest corporations such as the Royal Bank of Scotland, SAP AG, Applied Research Associates Inc. and CSC. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Added void * support to the C++ Boost.Python library | (ref: http://mail.python.org/pipermail/cplusplus-sig/2005-November/009486.html) | |
Due to further requirements of the TnFOX Python bindings, as Boost.Python did not previously support void *, most C & C++ code had to resort to some nasty hacks to work around it. As of v1.33.1 this is no longer necessary. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Added symbol visibility support to the GNU Compiler Collection | (ref: http://gcc.gnu.org/ml/gcc-patches/2004-07/msg02620.html) | |
Patched in the GCC 4.0 feature to set per-symbol ELF visibility (using __attribute__ and –fvisibility) in a MSVC compatible syntax. This was required by the TnFOX Python bindings exceeding exported symbol limits and a need to contain the number to only those necessary. This patch proved to be one of the most popular new features in GCC 4.x and use of it has been widely adopted by many projects including OpenOffice, KDE, Boost and Qt. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2131 (Computer systems designer and analyst)] | ||
TnFOX template metaprogrammed C++ portability layer | (ref: http://sourceforge.net/projects/tnfox/) | — |
Forked the LGPL C++ GUI toolkit FOX for building a portable library providing the necessary core functionality for Tn which is a commercial implementation of my previous research. It continues to grow in popularity and features, recently exceeding 40,000 lines of code. | ||
It provides:
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2131 (Computer systems designer and analyst)] | ||
The Tn Revolution Project | (ref: http://www.tnrev.org/) |
—
— |
My third and fourth attempts at reimplementing computer software structure from the ground-up, with the primary goal of creating a 10x or greater productivity improvement for skilled workers (Brookes’ Silver Bullet). Implemented in C++ & Python using TnFOX (previously Qt) and multithreading throughout, it is designed for 64 bit NUMA architectures and can run on Win32/64, POSIX Unix (e.g. Linux, FreeBSD) and Mac OS X but with low resource requirements for eventual transition to mobile phones. | ||
The major sub-goals of this project include:
|
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
nedHAL object-orientated Hardware Abstraction Layer for ARM microprocessors | (ref: http://www.nedprod.com/NedHAL/) | — |
Designed and implemented a technically superior Hardware Abstraction Layer (HAL) called NedHAL for generic ARM architectures in ARM assembler and ANSI C. It was an object orientated modular framework with multiprocessor capability. Also ported the uC/OS II RTOS onto my project (now freeware). Some of this code has been since incorporated into the primary car operating system firmware Micrium which is used by many major car manufacturers. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Implemented a Preemptive Multitasker for Acorn RISC-OS | (ref: http://www.nedprod.com/programs/RISC-OS/Wimp2/) | |
Wrote a fully featured preemptive multitasker called Wimp2 for the Acorn RISC-OS operating system in fully hand-coded ARM assembler. |
[NACE sector code J62.0.1 (Computer programming activities)] | ||
---|---|---|
[ISCO code 2132 (Computer programmer)] | ||
Wrote i/o driver, EEPROM programmer and refactored DEC's StrongARM uHAL port | (ref: http://www.arm.com/) | — |
Advanced RISC Machines (ARM) | Earnings: £14000 per annum. | Cambridge, UNITED KINGDOM |
Performed a number of "odd jobs" involving the writing of several small computer programs in C and ARM Assembler. | ||
|
Douglas N.E., (2020-Jan), 'P2069: Stackable, thread local, signal guards', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P2069. |
Douglas N.E., (2020-Jan), 'P2052: Making modern C++ i/o a consistent API experience from bottom to top', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P2052. |
Douglas N.E., (2019-Oct), 'P1883: file_handle and mapped_file_handle', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1883. |
Douglas N.E., Gustedt J., (2019-Sep), 'N2429: Function failure annotation', ISO JTC1/SC22/WG14 C programming language standards committee, openstd.org. URL: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2429.pdf. |
Douglas N.E., Steagall B., (2019-Jul), 'P1631: Object attachment and detachment', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1631. |
Douglas N.E., (2018-Aug), 'P1095/N2290: Zero overhead deterministic failure - A unified mechanism for C and C++', ISO JTC1/SC22/WG14 C programming language standards committee and ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2289.pdf. |
Douglas N.E., (2018-May), 'P1031: Low level file i/o library', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1031. |
Douglas N.E., (2018-May), 'P1030: std::filesystem::path_view', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1030. |
Douglas N.E., (2018-May), 'P1029: SG14 [[move_relocates]]', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1029. |
Douglas N.E., (2018-May), 'P1028: SG14 status_code and standard error object for P0709 Zero-overhead deterministic exceptions', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1028. |
Douglas N.E., (2018-May), 'P1026: A call for an 'Elsewhere Memory' study group', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P1026. |
Douglas N.E., (2018-Feb), 'P0824: Summary of SG14 discussion on <system_error>', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P0824. |
Douglas N.E., (2017-Oct), 'P0762: Concerns about expected<T, E> from the Boost.Outcome peer review', ISO JTC1/SC22/WG21 C++ programming language standards committee, openstd.org. URL: https://wg21.link/P0762. |
Douglas N.E., (2015-May), 'Handbook of Best Practices in C++ 11/14 libraries', Wiki, The Boost C++ Libraries. URL: https://svn.boost.org/trac/boost/wiki/BestPracticeHandbook. |
Douglas N.E., (2014-May), 'Large Code Base Change Ripple Management in C++: My thoughts on how a new Boost C++ Library could help', ArXiv e-prints no. 1405.3323, ArXiv e-prints. Citation key: arXiv:1405.3323. URL: http://arxiv.org/abs/1405.3323. |
Douglas N.E., (2013-May), 'BB10.0-BB10.1 Memory Footprint Analysis: How do we compare?', Internal white paper, BlackBerry. |
Douglas N.E., (2013-Mar), 'Object Components Revisited: Helping to solve the BB10 complexity & scalability problem', Internal white paper, BlackBerry. |
Douglas N.E., (2013-Jan), 'BB10.0 Memory Footprint Analysis: How do we compare?', Internal white paper, BlackBerry. |
Häring N., Douglas N.E., (2012-Sept), Economists and the Powerful: Convenient Theories, Distorted Facts, Ample Rewards, Anthem Press. ISBN: 978-0-8572-8459-4. |
Douglas N.E., (2011-Sept), Freeing Growth: A Neo-Capitalist Manifesto, ned Productions. ISBN: 978-1-4478-7962-6. |
Douglas N.E., (2011-June), 'Combining reliability and validity in assessment: Can auditing create the Golden Goose in assessment quality?', Proceedings of the Doctoral School Summer Conference 2011, Institute of Education, University of London. URL: http://www.educatejournal.org/online/ds/2011/. |
Douglas N.E., (2011-May), 'User Mode Memory Page Management: An old idea applied anew to the memory wall problem', ArXiv e-prints no. 1105.1815, ArXiv e-prints. Citation key: ArXiv:2011arXiv1105.1815D. URL: http://arxiv.org/abs/1105.1815. |
Douglas N.E., (2011-May), 'User Mode Memory Page Allocation: A Silver Bullet For Memory Allocation?', ArXiv e-prints no. 1105.1811, ArXiv e-prints. Citation key: ArXiv:2011arXiv1105.1811D. URL: http://arxiv.org/abs/1105.1811. |
Douglas N.E., (2010-Nov), 'Choosing a distance TESOL/TEFL: A Personal Report', Submitted to Education Today (rejected as unsuitable material), College of Teachers. URL: http://www.nedprod.com/studystuff/Choosing%20a%20distance%20TESOL-TEFL%20-%20A%20Personal%20Report.pdf. |
Douglas N.E., (2010-Oct), 'ISO JTC1/SC22/WG14 (The C programming language) - N1527: Latency Reducing Memory Allocation', open-std.org no. N1527, International Standards Organisation. Citation key: ISO/IEC JTC1/SC22/WG14/N1527. URL: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1527.pdf. |
Douglas N.E., (2009-Feb), Freeing Growth: A Neo-Capitalist Manifesto, Google Books. URL: http://books.google.com/books?id=tJO0fZycXvQC. |
Douglas N.E., (2008-Dec), Freeing Growth: How The World Can Grow Four Times Faster Sustained, Working Manuscript. |
Douglas N.E., (2008-May), 'Modelling the Costs of Climate Change and its Costs of Mitigation: A Scientific Approach', MPRA Working Papers no. 13650, University Library of Munich, Germany. Citation key: RePEc:pra:mprapa:13650. URL: http://ideas.repec.org/p/pra/mprapa/13650.html. |
Douglas N.E., (2006-Dec), 'Explain "conjectural variation" in Cournot duopoly, evaluate its impacts and discuss the policy implication', MPRA Working Papers no. 13652, University Library of Munich, Germany. Citation key: RePEc:pra:mprapa:13652. URL: http://ideas.repec.org/p/pra/mprapa/13652.html. |
Douglas N.E., (2006-Apr), 'What is the evidence on the role of foreign direct investment in economics growth, and on the determinants of foreign direct investment flows?', MPRA Working Papers no. 13651, University Library of Munich, Germany. Citation key: RePEc:pra:mprapa:13651. URL: http://ideas.repec.org/p/pra/mprapa/13651.html. |