<pie_[bnc]>
<WilliamHamilton> hi, if there is someone here that has used minizinc in nixos, I'd like to know what the workflow is for executing `.mzn` files; I successfully used `mzn2fzn -> fzn-gecode`, but I wonder why there isn't a `minizinc` executable like it's hinted by tutorials and courses online. Pinging fpletz and infinisil for the github commits
<worldofpeace>
"As a terrible workaround I just remounted /nix/store and manually did chmod +rw for share subfolder."
<gchristensen>
actually tempted to hide that comment
<pie_[bnc]>
someone actually bothered to figure out how to fix things mutably, which i didnt :P
<worldofpeace>
gchristensen: anything could have been better 😁 like wrap the program with a script that chmod's the dir in home and then runs, and on exit does it again
* lovesegfault
has remounted the store as rw and manually edited his printer drivers
<worldofpeace>
😿 😿 😿 we're going to make eelco cry
<gchristensen>
already making graham cry
<MichaelRaskin>
Wait what? Isn't this a symlink to /var/cups by default???
<gchristensen>
infinisil: can you add "✨<nickname>" as an alias to "<3 <nickname>"
<MichaelRaskin>
Rumor has it, once ++«nickname» incremented karma and reports it just before the triggering message, but Freenode people said time paradoxes are bad for server stability.
slack1256 has quit [Remote host closed the connection]
<evanjs>
gchristensen: Tuition Reimbursement programs is the assigned topic
<evanjs>
Which I've been super grateful to have at work so I'm happy to write about them
<gchristensen>
ie: provided by work, or like "do civil service and they're forgiven" or?
<gchristensen>
aleph-: ldap is basically the devil. but a nice thing to have.
<evanjs>
gchristensen: ah good point, I didn't clarify :D -- specifically, if the fake company that is consulting you should implement an educational reimbursement benefit program for its employees
<gchristensen>
oh cool
<aleph->
Eyep. For some reason despite using a boilerplate ldif file it errors out on me. Ugh
<evanjs>
so yes, you get the classes approved at work, take them, submit your final grades, and get reimbursed accordingly
<evanjs>
Luckily, I've gotten 100% back so far. I think a 3.0 GPA (U.S.) / B is required for 100% where I work, and typically the cutoff (50% reimbursement) is a 2.0 GPA / C
<evanjs>
It's crazy to see how much this kind of benefits program has been exploited before, though :D
<gchristensen>
by students/employees?
<__monty__>
Exploited?
drakonis has joined #nixos-chat
<evanjs>
gchristensen: yes, and __monty__ yes
<gchristensen>
do go on!
<evanjs>
There have been cases where public service workers have filed for classes that exceed the limitations set by other districts (theirs didn't currently have limitations), filed for programs that happened far beyod what the programs allow (+1 year in the past) and people have even falsified grades to ensure they get money back
<evanjs>
This is in addition to hiding information regarding other financial assistance that has already been applied (such as grants and federal student aid), as the employer is typically only going to reimburse what the student owes _after_ such financial assistance has been applied
<evanjs>
In other cases, districts have lost upwards of $1,000,000 (USD) due to "ill-managed" funds :D
<gchristensen>
interesting
<evanjs>
and this is often with the public sector, so it's taxpayer money lol
<gchristensen>
$1,000,000. so like, 2 undergrad educations
<evanjs>
Right?!
<aleph->
Sounds like Philly
<gchristensen>
tbh sounds like they could get rid of a lot of fraud by just making it free eyes.jpg
<aleph->
Heh
<evanjs>
The one class that an employee had applied for that exceeded typical annual limits was a three week course at harvard that was $10,000 :D In addition, if the company does not enforce that the type of classes that are taken (e.g. directly related to the job, etc), people will take just about _anything_
<__monty__>
Yeah, definitely sounds like that's only a thing because education in the US is ridiculously expensive.
<__monty__>
evanjs: The latter isn't a form of exploitation imo.
<__monty__>
You can become better at your job by finding a skill that you can convert to a hobby for example.
<evanjs>
It gets even better when you realize the Employee Relations Department supervisor was one of the people involved in one of these cases
<__monty__>
Classes that are too closely related to your job are way more likely to just fel like work.
<evanjs>
which I guess makes sense
<evanjs>
__monty__: and yeah sure it's just that often these programs are geared towards increasing work-based proficiencies and retaining employees
<evanjs>
so often times the employer wants to make a stable investment in improving how an employee can function where they currently are
<MichaelRaskin>
Re: closeness to work — given the level of mismanagement, I would not expect skills people need to keep the stuff rolling and skills in their job descriptions to be too close anyway
<gchristensen>
isn't that the truth, MichaelRaskin
<evanjs>
right, in my case, "directly related to work" is applicable for all classes on my current degree, which has obviously been totally fine for me
<evanjs>
I just want to be done with college :D
<evanjs>
well, for real this time lol
<gchristensen>
in a lot of companies it can be hard enough to get literally any training even when your job responsibilities totally change
<evanjs>
yeah, here's the headline I saw earlier: "From law degrees to Bible studies, taxpayers foot bill: Miami-Dade County's employee tuition- reimbursement program is not capped, and county workers are using it to take courses in everything from law to acupuncture"
<gchristensen>
oh Miami
<evanjs>
gchristensen: for sure, yeah. it really depends on what is considered "directly related to work", but often I'll see it cited as an effort to increase employee mobility, so perhaps I described it poorly initially
<evanjs>
Often times it's to improve employee proficiences _and_/or get them ready for increased responsibilities
<gchristensen>
yeaoh
<gchristensen>
right on
<evanjs>
So more of a focus on the current workplace rather than their current position, explicitly
<__monty__>
My bad for assuming competent employees.
<aleph->
Curious, anyone here set up ldap on nixOS? Would love to see your config
<evanjs>
Really generic degree imo. Like computer science without the math? something like that haha
<__monty__>
Informatics? ICT?
<evanjs>
I've been employed as a software dev for 4 years now, though, and my supervisor (also a dev) says that's almost more valuable than the degree at this point
<evanjs>
But I'll be happy to get it for job security and just because
<gchristensen>
aleph- <-> ajs124
<MichaelRaskin>
Might be useful from random HR requirement point of view, indeed
<evanjs>
yeah that's typically what it looks like. "X years and bachelors degreee"
<evanjs>
With no mention of what kind, etc
<evanjs>
just checked the current opening at work
<ajs124>
gchristensen: what? who? why?
<evanjs>
" Position requires a four-year degree or equivalent experience."
<evanjs>
lol yep
<gchristensen>
useful for that (though pro tip, if you don't have a degree, just don't mention it on your resume)
<evanjs>
gchristensen: for sure haha
<gchristensen>
ajs124: aleph- is having ldap trouble and thought you might be able to help :)
<evanjs>
both Ferris and my local community college are still super in flux about their computer programs and getting them well established, though...
<MichaelRaskin>
gchristensen: I guess there are people for whom mentioning the lack of degree is the optimal choice… (who can get enough interviews even if they mention it, so signal/noise becomes more important than general amplification)
<evanjs>
recently, the local college switched from C#/MS -> Java, while Ferris went from Java->C#/MS.... idk it's all a big weird mess haha
<ajs124>
gchristensen: oh no
<gchristensen>
ajs124: cursed
<ajs124>
Someone contacted me on here the other day about some ERPNext stuff. I forgot I even mentioned that POS anywhere in public. Probably couldn't keep myself from ranting, knowing me.
<gchristensen>
hah
drakonis has quit [Ping timeout: 265 seconds]
<evanjs>
I get so many messages on LinkedIn now it's annoying. Mostly robots, mind you. Supervisor's advice is to just ignore them, as he gets the same thing lol
<evanjs>
Such low effort and annoying recruitment messages
<evanjs>
Hello {{name}}, I see you have experience in {{skill}} (like number #36 on my list). We would love to have you working ___ on ---
<__monty__>
Or you could just refuse to play the LinkedIn game.
drakonis has joined #nixos-chat
<ajs124>
LinkedIn are spammers and I refuse to be associated with them. Lets hope I'll never be desperate enough for a job to need them.
<MichaelRaskin>
Technology marches on! I have a suspicion that some pretty low-effort _and_ very vague (c-c-combo) recruiter spam was emailed by scaping the commit emails fom Nixpkgs repo
<evanjs>
__monty__: Oh I really don't now lol
<ajs124>
MichaelRaskin: git(hub) scraping is definitely a thing. although it might literally be people just scanning the internet for things that look like e-mail addresses.
<evanjs>
Am employeed so I nearly ignore it completely, save maybe accepting colleagues connection requests or adding a skill every now and then
<evanjs>
keeping it up to date just in case
<MichaelRaskin>
ajs124: it was _somewhat_ targeted and mentioned Nix etc.
<evanjs>
ajs124: you can do a small amount to at least reduce how much it shows up on google, but yeah. Scrapers will be scrapers
<ajs124>
e.g. I get e-mail spam to old xmpp addresses,
<ajs124>
MichaelRaskin: huh, I don't think I got that one
<MichaelRaskin>
It was some time ago, though.
* ajs124
is looking through spam he got to his git email
<MichaelRaskin>
I have heard that some person politely replied with request for more details to all the recruiter spam received, and the reaction rate to _replies_ was really low
<ajs124>
"Invitation #13552 for the top members of the Doge Coin community." ok
<gchristensen>
all this can be solved by discarding all the mail :)
<__monty__>
You don't read my love letter^Wemails, gchristensen? 💔
<ajs124>
some of us are getting paid not to discard all emails, just some of them
<MichaelRaskin>
__monty__: that's _one_ erase-word, not two?
<__monty__>
Yah.
<ajs124>
which leads to some of us knowing way more about how to configure exim than we would like to
<__monty__>
Who writes letters anymore/
<__monty__>
*?
<MichaelRaskin>
I do
<MichaelRaskin>
Sometimes
<ajs124>
I write postcards, not sure if that counts.
<gchristensen>
under the "email is like a postcard" analogy, me too
<ajs124>
The delivery rates and speeds can be kind of fascinating.
<MichaelRaskin>
Some formalities include something that is best described as a paper letter
drakonis has quit [Ping timeout: 246 seconds]
<MichaelRaskin>
I actually get surprisingly little spam I have not subscribed to.
<MichaelRaskin>
Some would say that receiving the notifications of every PR open in Nixpkgs is spam, but this was caused by my conscious actions
<ajs124>
And here I was thinking I get too many notification mails
drakonis_ has quit [Ping timeout: 260 seconds]
<__monty__>
Is it like a train-wreck fascination that compels you to do something like this?
<gchristensen>
anyone have an at-home espresso maker that works okay and doesn't take too much screwing with, but also doesn't cost an entire paycheck?
<aleph->
If the office having one counts then yes
<gchristensen>
that one probably costs > paycheck
<aleph->
ajs124: So you apparently use ldap on nixOS? Any chance I could see your config?
<ajs124>
Tbh, most of that was written by Janne Heß. I don't even remember most of the reasoning/architecture behind what we have and how it works. It does work, though.
<aleph->
Gotcha
drakonis_ has joined #nixos-chat
<ajs124>
I can paste you our slapd module, but not sure how useful that is.
<MichaelRaskin>
__monty__: I have learned to skim that pretty efficiently, and sometimes I find something that I even react to, which I would miss otherwise
<aleph->
If you want, please. Getting some odd problems when trying to set mine up
<gchristensen>
aleph-: I think Mic92 might also have ldap setup.
<andi->
Garr, I really get that we probably do not want a String -> Int conversion function in Nix (without JSON/TOML/… hacks) but I really want one right now :)
<gchristensen>
haha, what's up andi-
<andi->
I am rendering DNS records and trying to validate MX records..
<MichaelRaskin>
I think you can write ATOI in pure Nix…
<gchristensen>
uhoh
<gchristensen>
oh god
<MichaelRaskin>
But are you sure you do not want to validate them as a build step?
<andi->
MichaelRaskin: I rather resort to (builtins.readTOML (`builtins.toTOML "x = ${toString val}")).x again in that case :P
<ajs124>
even if you do, why not have proper tooling do it?
<ajs124>
why not just generate the zone files and have something check that? do you really want to do all of that in nix?
<andi->
I have records that are being generated based on some nixos module system settings
<MichaelRaskin>
I wonder if having a better way to make sure some things are built as early as feasible could be useufl for checks…
<MichaelRaskin>
I guess that hack for tests could help…
<andi->
that is another thing that bothers me.. I have a very ugly "assert (testMyLibFunctions); actualCode" right now..
<gchristensen>
heh I've got some of that too
<andi->
And I really do not want to have Make targets for my configuration because i need to do some kind of calculation outside of Nix before the run :/
<gchristensen>
+1
<andi->
Eventually I'll need that for some parts but that should be an exception and basically only be about fetching stateful stuff (e.g. IPs of deployed services that $provider gave me)
<ajs124>
which step is --option allow-unsafe-native-code-during-evaluation true?
<gchristensen>
ajs124: Step 9: just switch to chef
<andi->
good point, maybe I'll do step 10: reroll everything on OpenBSD with Ansible.
<ajs124>
Step 42: shell out to ansible from nix
<MichaelRaskin>
gchristensen: Come on! I think in Guix you can escape to full Guile for some parts that really need it.
* gchristensen
has left #nixos-chat
<ajs124>
user was banned for this post
<andi->
I am so sorry to have brought up that topic.. I'll just use that hack that I always use...
<gchristensen>
the nice thing about your hack is you can't look at it and think "oh this is a good idea"
<ajs124>
you just summed up half the code I ever wrote in one sentence
<MichaelRaskin>
The risk is that someone refactors it to a library function
<gchristensen>
MichaelRaskin: and that is a -1
<andi->
Good idea! I'll add `toInt` to lib!
<andi->
but it should probably be toNumberOrMaybeString
<gchristensen>
allow me to return back in to the dust I came from
<MichaelRaskin>
I do feel that tension that there _are_ things where giving Nix a full standard library (at least of pure functions) would be very useful. But there is also a push to streamline and properly position Nix as a restricted language…
<MichaelRaskin>
Hm. A Nix plugin providing a standard library…
<gchristensen>
definitely
rardiol has quit [Quit: No Ping reply in 180 seconds.]
<andi->
builtins.exec is very much the anti-thesis to a "restricted language". I think if someone were serious about that idea that should go first ;) And if consequent we would also remove more features (with, let, … as they can just be implemented using rec attrsets…)
<MichaelRaskin>
I doubt literally with can
<ajs124>
the ship of removing let and with has probably sailed a long time ago
slack1256 has quit [Ping timeout: 256 seconds]
<andi->
Not saying it is a good idea or ergonimic.
<gchristensen>
not sure "restricted language" = "ultraminimal"
<andi->
Just saying that I think it isn't very likely the current language is going to change much going forward.
rardiol has joined #nixos-chat
<MichaelRaskin>
exec is actually compatible with restricted language
<MichaelRaskin>
Don't do complicated things in Nix, and if you really really really need them, do them externally and get them via exec
<samueldr>
you can restrict every expressions to be ran through exec
<andi->
yeah!
<andi->
import (builtins.exec "code")
<MichaelRaskin>
andi: BTW, maybe validate zones via IFD?
<andi->
MichaelRaskin: I could do that.. I actually want meaningful error messages and not write yet another tool :/
<MichaelRaskin>
You want to say there is no command-line DNS helper tool that checks the things you care about? Pity
<andi->
There is probably but they'll just tell you "it's wrong!"
<MichaelRaskin>
Ouch
<MichaelRaskin>
I mean, writing such a tool and calling it via IFD might still be cheaper than maintaining such a tool in Nix
<andi->
I was going to have nice error messages on the Nix eval side that just tells me "Hey dummy, a AAAA record can only have IPv6 addresses (and those compatible) not $garbage`
<andi->
I'll have to deal with `zones."foo.com".TXT = [ "a very long string …" ]` already within Nix.. I could probably do that outside of Nix as well but then I've to deal with yet another software project and picking language that I am happy with is not something I currently want to dive into ;)
<ajs124>
what are you going to do with this data in the end? hand it over to some dns server? don't the have a validation tool, that gives useful errors?
<andi->
Ofc I check it with those tools. You could ask why we do any validation in the NixOS module system given that most tools just fail when the config is invalid. I want it to be independent of the DNS server during eval, without IFD and all that is missing is parsing a Number from a string :)
<aleph->
Yeah so my ldap config is here so far https://paste.rs/lBT Getting an error of: `line 9: <rootpw> can only be set when rootdn is under suffix`
<aleph->
Curious if someone sees something off with it.
<aleph->
Take that back, the error actually is: `slapadd: dn="dc=directory,dc=chatsubo,dc=cafe" (line=1): (64) value of single-valued naming attribute 'dc' conflicts with value present in entry`
<ottidmes>
gchristensen: "People see builtins.exec and think "ooooh!", and then nearly nothing persuades them against it." lol'ed at that, since I have to admit, that was pretty much my reaction when I heard about it and did immediately use it :P
<gchristensen>
:(
<ottidmes>
I have removed it since though ;)
<gchristensen>
<3
<ajs124>
did you replace it with lots of IFD?
<ottidmes>
nope, I simply do 2 calls to nix now and do the exec within my shell script
<ottidmes>
I do a lot of other shit though :P but obviously I am not going to tell :P
<ottidmes>
scopedImport...
<MichaelRaskin>
Arrrgh
<ajs124>
another "I'm not sure it _should_ be documented" feature
<infinisil>
builtins.exec should really be builtins.unsafeExec
<infinisil>
Or builtins.unsafeExecCommand
<MichaelRaskin>
scopedImport: just in case you thought there is a safe and reliable way to address builtins
<ottidmes>
well in the case of scopedImport I am happy it exists, or else I could not have implemented what I wanted
<ottidmes>
but I am well aware of its problems
__monty__ has quit [Quit: leaving]
<infinisil>
ottidmes: What is that?
<ottidmes>
nix-prefetch needs it to support some of the fetchers
<ottidmes>
it was a nice project to learn about the limitations of what you can achieve with just nix