234 reputation
213
bio website plus.google.com/u/0/…
location London, United Kingdom
age
visits member for 2 years, 4 months
seen Dec 15 at 12:53

I'm an applied mathematician & engineer, living & working just outside the London metro area.

Over the years and on both sides of the Atlantic, I've led a variety of quantitative & operational challenges across intelligent systems & software engineering, sonar, defense, environmental technology, robotics, and most recently the complex world of multi-channel retail.

The common thread that links passion, profession, and play is applying technology, good design, and quantitative modelling and simulation, to build better products, enable better decisions, and optimise performance.

I'm always experimenting and tinkering, so feel free to get in touch with ideas.

My Google+ profile, Google+ posts (active), and blog (older)


Mar
25
comment Assembly as a First Programming Language?
Very well said -- I agree. The first course needs to get to the point, show the end-to-end usefulness of the skills being learned, and fire the imagination: "Gosh! I can program? Now what else can I do with this new skill..." Agree also that the best time for assembly language is after one higher level language. That motivates looking "under the hood" at how the computer is actually understanding the higher level stuff. Seeing assembly language for the first time after a higher level language leaves another powerful impact: the student encounters electronics, chips, sensors, etc.
Feb
25
comment Introducing Programming To a Mathematician
I have to disagree. Why would a young kid, interesting in maths, be attracted to Machine code? And why C? Assembly presumes far too much knowledge about processors. C likewise makes many requirements that are best left to someone wanting to learning serious programming: pointers, registers, scoping, types. For a first introduction to programming for such a person, something that focuses on algorithms or on applications of mathematical ideas (probability, randomness, simulations), is much better. Python, Lisp/Forth, Basic even. Bourne-shell?? Why?...
Jan
21
comment Genetic Algorithm - solving a matrix with hard and soft constraints
This would be better posted in Computational Science or Cross Validated (Statistics).
Nov
5
comment Should comments say WHY the program is doing what it is doing? (opinion on a dictum by the inventor of Forth)
But at what higher level? Seems that documents outside of the code often get disconnected over time so that a different maintainer coming back to the code 10 years on may not know that a document even exists which has relevant background material like algorithm selection. Somehow information that is not linked to code seems to be at high risk of being forgotten. Which then suggests comments in the code itself.
Nov
1
comment Why would a company develop an atmosphere which discourage code comments?
+1 -- Like this. This tells WHAT the program does, but not HOW. The HOW is obvious -- it's the lines that follow the comment. The WHAT succinctly describes the section's intent / objective. And that, I think, is quite valuable later when scanning a large quantity of code looking for the section that does a particular task.
Nov
1
comment Should comments say WHY the program is doing what it is doing? (opinion on a dictum by the inventor of Forth)
Thanks for the response. So in your opinion then, should comments include justifications for design choices, e.g. the reasons why a particular design was chosen over reasonable alternatives?
Sep
16
comment Mercurial release management. Rejecting changes that fail testing
To the OP: you're clearly on this site reasonably regularly. Is there any reason why you seem to ask questions but accept no answers? It's usually good practice on these sites to reward good answers with feedback in recognition for the time they've invested in your question. You've got a few very good answers below... (nudge nudge)
Sep
16
comment Mercurial release management. Rejecting changes that fail testing
(+1) very clear description -- and very helpful. Thanks for this! (It's a pity the OP hasn't returned to officially review the responses.)
Sep
10
comment Learning OO for a C Programmer
You may find this easier than you expect. Obj-C will reduce the language gap since it is quite similar to C -- the differences will naturally emphasise the key concepts you'll need to master. My suggestion is more around choosing some fruitful toy problems / exercises. I expect you'll already have a strong intuition for OO design because anyone coding solutions for as long as you will intrinsically appreciate the cleanliness and elegance of wrapping functions and data structures within their own package (class). [PS I went from C to OO first via Obj-C, then Ruby, now Python -- Good luck!]