Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>OpenBSD with the simple, obvious solution, that everyone else kinda overlooked

Systemd Timers have had this for a while.



They said simple and obvious, which much of systemd is not.

Personally I find the OpenBSD solution far more elegant and UNIXy than the systemd one, but to each their own.


Why does the complexity of the rest of systemd matter when comparing the implementation of this feature?

What would you say is wrong with RandomizedDelaySec?


UI is too complicated to type some word concatenated keyword than being visually intuitive.


On the other hand I wouldn't be able to understand what the hell is this cron string. I actually have no idea about cron format despite the fact that I used it multiple times. I have to read man every time I use it. Also different software implements it differently.

  [Timer]
  OnCalendar=daily
  RandomizedDelaySec=12h
might take few more seconds to type, but it's definitely readable without any additional documentation.


The option says Sec but the value says h? What does that mean?


> The arguments to the directives are time spans configured in seconds. Example: "OnBootSec=50" means 50s after boot-up. The argument may also include time units. Example: "OnBootSec=5h 30min" means 5 hours and 30 minutes after boot-up.

https://www.freedesktop.org/software/systemd/man/systemd.tim...

Ie seconds if no units specified.


Sec is a standard suffix for time values, anything ending with Sec accepts a value in seconds. 12h is shorthand for 'the number of seconds in 12 hours'


It's standard to say 12h and expect this to read as 43200?

Sounds like a lousy standard if the correct way to use it is to say "I want to delay by 12 hour seconds". What is even "12 hour seconds"?


Makes sense once you know it.

"Sec" suffix indicates time and implements a default of seconds, where a suffix to the value indicates a change in unit.

It would be like Asking "Memory Allocation(MB)" but accepting "12G" for 12 GB.


In our code at work we have constants like HOUR=3600 and RESTART_TIME_SECS = 6 * HOUR. It makes sense to me. If it doesn't for you, feel free to use something else I guess.


Standard where? I have never seen this before and I’ve been reading *nix configuration files for 20+ years


Standard within systemd (i.e. consistent).


What's more simple than an ini file?


Reinventing the same features many times over in many different places, of course.


    RandomizedDelaySec=


But, see, a number of people hate systemd, so that Doesn't Count.

Even if their cron does...


Even when discussing OpenBSD somehow we end up debating systemd...


Yeah, but with systemd timers it's just another ad hoc hack.


I'm not hot for systemd but this https://www.freedesktop.org/software/systemd/man/systemd.tim... looks robust, far from ad-hoc hack.


How does it look robust? Because someone wrote a man page and there's lots of boilerplate in it?

Proper design reduces complexity. The above adds a lot of complexity, and thus it's a hack. Not the appearance.


That's not a hack though, a hack is gluing things together to fix a certain specific bug that is not easily solved because the bug is related to the design instead of a mere mistake.

Otherwise with your standard of hack anything beyond hello world and baby's first input are hacks because everything else requires boilerplate.


It's not a hack because of the boilerplate - it's a hack because it's functionality implemented in a wrong place. I think the boilerplate made you believe it's not a hack by making it look professional(ish), ie someone spend time putting a lot of lipstick on that pig, man page and all.


How is it functionality implemented in the wrong place?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: