4,648 reputation
1028
bio website wiki.tcl.tk/73
location Manchester, United Kingdom
age 40
visits member for 3 years, 7 months
seen Jul 9 at 12:06

I'm a software engineer at the University of Manchester, working on Taverna Server, Grids and Clouds, and the standardization thereof. I'm also a member of the Tcl Core Team.

ORCID, Ohloh


Jul
9
comment Early attempt to remove Python GIL resulted in bad performance: Why?
+1 It took about that sort of time to multi-thread Tcl with a fairly small team of developers. The code was MT-safe before that, but had nasty performance problems, mostly in the memory management (which I suspect is a very hot area for dynamic languages). The experience doesn't really carry over to Python in anything other than the most general of terms though; the two languages have completely different threading models. Just… expect a slog and expect weird bugs…
Jul
5
awarded  Nice Answer
Jun
18
comment How to avoid downcasting?
@Barthelomeus No need; it wouldn't improve the question significantly and would invalidate lots of answers.
Jun
8
comment calling methods if previous call success
That's the way I'd do it in Java for sure; I'm less certain about C# idioms, but it is at least clearer and easier to write given that C# has proper exceptions in the first place.
Jun
8
answered calling methods if previous call success
Jun
8
answered What alternative is better to diagram this scenario?
Jun
8
answered Why Beta versions have so many bugs?
Jun
2
comment How can Swift be so much faster than Objective-C in these comparisons?
@MathewFoscarini Obj-C goes to assembler, but it's got an expensive object message dispatch mechanism. For most GUI work that doesn't matter, but for sorting it matters a lot.
Jun
1
comment Is this simple XOR encrypted communication absolutely secure?
The other thing about an OTP is that the key is (at least) as long as the message to encrypt, and needs a very high quality random number source.
May
26
answered Is it important to obfuscate C++ application code?
May
26
comment Programming Language vs Markup Language vs Scripting Language
Scripting languages are formally a subclass of programming languages. (I've also seen languages like C and Java being fully interpreted, with a REPL; the barrier is leaky both ways…)
May
19
comment Correct way to inject dependencies in Business logic service?
Unless your project is teeny-weeny, doing it properly won't take very long. Asking a question here about what to do instead probably took you longer.
May
16
comment How robust are Git commits when the power goes out?
If you don't push your branches, don't keep backups and don't a UPS, you've only got yourself to blame if hardware problems wipe it all. You've got the tools…
May
16
answered How robust are Git commits when the power goes out?
May
16
comment What language do companies like NASA use to create their applications?
You want to code? Code! Just try to do it lots of different ways. The more ways you know to do things, the more likely it is you'll know a really good way. Knowing lots of languages helps a lot. Don't worry too much about whether you end up at NASA; there's lots of other cool places to work too and all that stuff is lots of years away. Get Good first, and learning lots of stuff helps a lot (as does lots of practice; nobody gets good without practicing, 'cos that's the way human brains work).
May
15
comment Theoretically bug-free programs
You can get a bit further with a full mathematical characterisation of the intended program behaviour and known-safe transformations to convert that mathematics into a concrete program. However, that's definitely the route less travelled outside the safety critical area; getting the initial setup right is very difficult indeed and applying the transformations — even with computer support — is really quite awkward. I vaguely remember VDM, Z and B-method as being relevant to this sort of thing; it's been the best part of 20 years since I worked in the area…
May
15
comment Theoretically bug-free programs
Yes. The key is really that types are intended to be less complex than the program that they characterise (so as to be tractable) and that this in turn means that they cannot possibly characterise all interesting properties about the correctness of the program; it's indeed just taking us back to Gödel and Turing.
May
15
comment Theoretically bug-free programs
Consider the totally type-correct function: int add(int a, int b) { return a - b; }
May
14
comment Advantage of Tagging a Release in SVN versus Only Leaving a Comment for the Commit
Precisely this. The point of a tag (which is in many ways just a formalised comment in source control systems other than Subversion; SVN's a bit weird under the covers) is to allow you to see the exact state of the code at a precise moment.
May
14
comment Why can't a server continue to act on a request after sending the response?
Your final paragraph is perilously close to something that you should not ask; software recommendations are off-topic pretty much everywhere on the Stack Exchange system because they're too open-ended.