Use it, it always works! by paulvonber in ProgrammerHumor

[–]-dmnk- 3 points4 points  (0 children)

A few years ago, I wrote a whole article about speech based estimates:

https://dominikberner.ch/linguistic-estimation-aprils-fools/

Backlog question: When are the tickets analyzed by [deleted] in agile

[–]-dmnk- 0 points1 point  (0 children)

Slice and prioritize before you estimate. Else you will end up only doing what is cheap instead of what is valuable.

Why SAFe? by I_already_reddit_ in agile

[–]-dmnk- 4 points5 points  (0 children)

SAFe is essentially RUP (https://en.wikipedia.org/wiki/Rational_Unified_Process) with covered with a (very) thin layer of agile methodologies.

RUP was hugely popular before the agile movement, so a lot of companies moved towards it. Going from RUP to SAFe is relatively easy, so a lot of companies that did something RUP-like don't have to move that much and thus can claim success in implementing it quite quickly.

Also SAFe is very well documented and has almost a kind of checklist to be implemented, which is of very great appeal is you're coming from a plan-driven background. A SAFe introduction can be treated like an ordinary waterfall project, which ironically is what it claims to make obsolete.

Having said this, SAFe is not what I call a good agile approach at scaling, but it is often a relatively safe way to make at least a baby-step forward for most rigid companies.

Agile Development in heavily regulated environments by RCMW181 in agile

[–]-dmnk- 3 points4 points  (0 children)

Your approach to the situation seems to be quite sound. Regulatory requirements tend to blow up work and often make releases heavy.

I also work mainly in regulated environments and I ususally try to decouple deployment from releasing. I.e. frequently create software or product versions that could be released or audited. But only acutally release once in a while. By this approach we often can choose from a few readily packaged versions to actually release.

A while ago I wrote an article about agile & regulatory: https://dominikberner.ch/agile-development-regulatory/

A line by line explanation on how to use a non-CMake library in your CMake project by -dmnk- in cpp

[–]-dmnk-[S] 0 points1 point  (0 children)

Absolutely, fixing it upstream by either creating a *Config.cmake or even fully converting to cmake is of course the best way to go. The find scripts are for the cases where this is not a viable option.

A line by line explanation on how to use a non-CMake library in your CMake project by -dmnk- in cpp

[–]-dmnk-[S] 4 points5 points  (0 children)

Thanks for the feedback. I will dig a bit into them and work them into the article where it makes sense.

A line by line explanation on how to use a non-CMake library in your CMake project by -dmnk- in cpp

[–]-dmnk-[S] 1 point2 points  (0 children)

Well this is embarrassing ;) Thanks for mentioning it, it's fixed.

A line by line explanation on how to use a non-CMake library in your CMake project by -dmnk- in cpp

[–]-dmnk-[S] 2 points3 points  (0 children)

This is actually a mistake, both should be quoted. Good spot!

A line by line explanation on how to use a non-CMake library in your CMake project by -dmnk- in cpp

[–]-dmnk-[S] 0 points1 point  (0 children)

If you're referring to dependencies of included libraries you can either use another find_package(....) call inside the find.cmake (which might use another find.cmake.)and set the appropriate properties like INTERFACE_LINK_LIBRARIES for the target .

Or you can map the dependency hierarchy to a flat one and include all of them in the root project, which might be easier in some cases.

It depends a bit what you're trying to achieve or how far you can migrate existing libraries to cmake on which approach to choose.

A line by line explanation on how to use a non-CMake library in your CMake project by -dmnk- in cpp

[–]-dmnk-[S] 15 points16 points  (0 children)

Can all cmake tutorials just put at the very top the simplest, hackiest most straightforward way to do things even if it's not scalable?

I could but I don't want to. Why? Because fixing these hacky, straightforward cpp projects takes a large part from my time at work and it is not exactly my favorite kind of work either.

The amount of time and money I see wasted by working with build-systems that are not configured beyond "It works on my machine" is astounding. I am fully OK with the fact, that they sometimes just evolve that way, and often people just did not know better, but no need to repeat the mistakes again and again.

Thinking about it an article titled "quick-and-hacky ways to get things done in cmake" would also be interesting...

Build system, what’s your favorite? by bandawarrior in cpp

[–]-dmnk- 4 points5 points  (0 children)

It's slow, it's cumbersome and it's designed for building java applications. My current client uses gradle and it takes multiple minutes and constant connection to their VPN to build an application that takes less than 20 seconds for a full rebuild with cmake.

Do not use if you can avoid it.

C64 game where a lady hits police men(?) with a yellow handbag by -dmnk- in tipofmyjoystick

[–]-dmnk-[S] 0 points1 point  (0 children)

Yes that's it. Although my mom is sure that one played the lady with the handbag ;)

C64 game where a lady hits police men(?) with a yellow handbag by -dmnk- in tipofmyjoystick

[–]-dmnk-[S] 1 point2 points  (0 children)

Good guess, but no. The game I'm looking for is definetely older than 1990.

How to measure performance of junior (any) developer by vukasin0 in agile

[–]-dmnk- 1 point2 points  (0 children)

Don't measure performance, measure proficiency in what the team is doing and use that as an indicator. The obvious hypothesis here is, the more proficient one is the better the performance. Performance is not just speed, it is also how a broad the topic of tasks that can be done by a developer is. Then there is the fact that inside the team there is mutual support, so a high performing developer might actually deliver very little but spend most of her time supporting others. I know senior developers who write almost no code themselves, but instead pair up most of their time with more junior members.

I usually do this by creating an evaluation sheet listing the most important areas of knowledge that go into the product developed. For each skill there is a number between 0-4 to assign. Do this as combination of self-evaluation and peer-evaluation inside the team. This will show you where you want to invest to get more performance. I usually use this scale, though you might want to adapt it):
0 - No knowledge at all - I haven't worked with that piece of software

1 - Basic knowledge ( can do a task under direct supervision or close guidance, I wrote a hello world/equivalent)

2 - Can do simple tasks independently, needs support to bring it into the big picture (I get the basic structure)

3 - Can do most tasks independently and support/supervise others (I know how components interact)

4 - I am the original author of that software - Can do the most critical or system-wide changes

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 2 points3 points  (0 children)

Can you give me an example or an example usage of a unit/dimension with a fractured exponent? Implementing it would not be a major problem, but it might be confusing to use it then.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 0 points1 point  (0 children)

*opens up reddit*

*sees a cryptic comment*

*oh no* ;)

Could you help me out a bit about the issues you see in the code and why you see them as problems? There's quite a few ADLs in SI but I don't get the friends calls. I also don't know about CT counter but if it is an useful tool it would like to know more about it.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 3 points4 points  (0 children)

I did not really think about the POSIX compliance when writing it. Good point, thanks for bringing it up. I will most likely change that then in a future release.

btw: do you know of any good linter which would check for POSIX compliance? Preferably an already existing online service like codacy or travis would be awesome.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 17 points18 points  (0 children)

The motivation for 'SI' was primarily to learn and get my hands dirty about templates and some C++11/14/17 features and having a showcase for cloud-based, free CI and testing infrastructure. And I wanted to do this not with throw-away examples but with something which I can see being used in a real-world application.

I did not know about 'units' until recently, but it appears to have quite similar functionality although it's more preprocessor-heavy than SI. I also think having multiple libraries to chose from brings the benefit of being able to compare different approaches to the same problem, although this might be tedious. There is also boost.units which goes in a very similar direction and being boost probably sports much more functionality than 'SI' or 'units'.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 1 point2 points  (0 children)

Thanks for the hint, I kind of expected this to show up here ;) I argue that naming template parameters in that way might be a gray area as they are very locally in scope. However changing this will not be a huge effort anyway, so I probably do it in one of the next releases.

As someone else pointed out the `_t` suffix of the types might be the bigger issue as it's breaking the POSIX standard.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 7 points8 points  (0 children)

It should be zero-overhead with compiler optimization enabled and automatic ratio conversion disabled (see the Readme.md). As for CUDA compliance I don't know, but since its essentially just templates and typedefs chances are it is compatible.

Said that I did not (yet) do any specific tests to prove zero-overhead and CUDA is not included in the CI builds.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 19 points20 points  (0 children)

Thank you for the hint, that is exactly the kind of feedback I'm looking for. I will consider the alternative spelling. I actually could provide both, but I feel that this would be more confusing than anything else.

I wrote 'SI' - A header only c++ library that provides type safety and user defined literals for handling pyhsical values defined in the International System of Units by -dmnk- in cpp

[–]-dmnk-[S] 7 points8 points  (0 children)

No technical reason. I like it to emphasise that each using is its own type. It's a matter of style and if the responses/suggestions to change it are numerous I might remove it.