25,766 reputation
25193
bio website thehungersite.com
location United Kingdom
age 46
visits member for 4 years
seen 1 hour ago
experienced software engineer with many years in the industry, mostly c++ for large-scale, high-reliability systems.

Mar
25
answered How would a one man team benefit from a continous integration setup?
Mar
24
comment Better to write your .NET library with COM limitations in mind, or separate your .NET library from Interop?
@MasonWheeler you mean like that legacy .NET stuff, aren't we supposed to be writing Universal Apps with the WinRT API nowadays? What I think: everything is legacy.
Mar
24
comment Better to write your .NET library with COM limitations in mind, or separate your .NET library from Interop?
+1. Whilst I love the beauty of black buttons on a black box practicalities are significantly more important.
Mar
24
comment Abstracting the data in a relational database.
The best way is to stick with the native access for DBs - SQL queries. Everything else is just trying to force a square hole to be round.
Mar
24
comment How “viral” is the Affero GPL?
now if only the AGPL made clear what is and is not a derived work, like mongodb guys have done, then maybe we'd see more adoption of AGPL as it'd replace GPL for people who use a service or library without having to 'taint' their own work.
Mar
24
comment How do tools facilitate writing functional specifications?
Quite true, but then we found a set of post-it notes were better than some really expensive requirements management tools we used :) I typically use a requirement 'bug' as a source that other implementation 'bugs' are associated with so they can be traced without directly being part of the workflow. Some tools are better than others in their reporting capabilities though, but if you cant afford the expensive tool then this is better than not tracing requirements at all. (and even if you can afford them, its still often better)
Mar
24
comment How do tools facilitate writing functional specifications?
My preference after having used DOORS and another, significantly worse one, is to put requirements in a bug tracker - these are very much geared to linking code, history and releases to 'bugs', so using a new type of bug called requirement is the easiest and most user-friendly way of handling them and getting really good traceability.
Mar
23
comment Getting to know my way around a database with hundreds of tables
Documentation? Its no different to any other large system. You just have to get in there and understand it, bit by bit, until you're an expert too.
Mar
23
comment how can i make a program written in c++ with qt to text and graphic mode?
Usually they're different executables, the GUI one wrapping either the command line app or a shared library that does the work.
Mar
17
comment Two Database Architecture : Operational and Historical
@Gudradain hence you have 2 sprocs for these 2 use-cases. They're typically not 'code', its more like relocating the SQL for the queries from client code to DB, instead of calling "select x" you call "exec sproc x". Effectively no difference in maintenance, especially in the context of your original question. I think, at this point, you need to try it to get a good understanding of the concept and use.
Mar
17
comment Two Database Architecture : Operational and Historical
@Gudradain yes it does as "many different applications" are happily using the same tables and data. Think of a sproc as a different form of table rather than client logic pasted into the DB layer. You can still call them via your ORM, and if you really want many different applications to use them, you use schemas to isolate them - making your DB application-specific which is really good for security and maintenance (as 1 app can then change its data API without affecting other applications). Sprocs are best practice, client code might forget to add "is deleted", sproc ensures it.
Mar
17
answered Why is there no Swap command?
Mar
17
answered Is creating the objects you think you will need ok in a first test in TDD
Mar
16
comment Evaluating productivity differences in different work stations
We literally spend 30 seconds to a minute just walking to the toilet, compared to at home where the toilet is right behind me - first world problems dude, I feel your pain, having to get up and walk for a minute to go for a piss.
Mar
16
comment Two Database Architecture : Operational and Historical
Limitations are good, its like saying "local variables in objects limit me from using globals". Restricting your data access surface means its more secure and you have to design better. These are good things. The links: views are limiting, they're not designed to be replacement tables. A sproc you can't join on means you need a different sproc. Writing your SQL in sprocs is no worse than writing them in client-side code, you maintain that perfectly well so you can maintain your sproc code just as easily.
Mar
16
answered Two Database Architecture : Operational and Historical
Mar
13
comment Experiences with C++ Async/actor model Library
Async Boost::Asio seems to work OK and is very easy to choose as a standard lib to use.
Mar
13
awarded  Enlightened
Mar
12
awarded  Nice Answer
Mar
12
comment how to nicely use constant std::string in c++
gettext is great, everyone should use it. Note that if you fail to provide a translated string, it will fall back to using the original English one, so everything will still work.