16:06:50 <smichel17> #startmeeting 16:06:51 <hcoop-meetbot> smichel17: Meeting started at 2024-07-07T16:06+0000 16:06:54 <hcoop-meetbot> smichel17: Current chairs: smichel17 16:06:58 <hcoop-meetbot> smichel17: Useful commands: #action #info #idea #link #topic #motion #vote #close #endmeeting 16:07:01 <hcoop-meetbot> smichel17: See also: https://hcoop-meetbot.readthedocs.io/en/stable/ 16:07:33 <smichel17> #topic Role Call 16:07:44 <unknown_lamer> #info clinton 16:07:47 <robin> #here 16:07:50 <unknown_lamer> #here 16:07:53 <smichel17> #here 16:07:55 <unknown_lamer> forgot we added the command 16:08:09 <keverets[hc]> #here 16:08:17 <smichel17> Yeah you can do #here clinton if you want your name to show up as clinton in the meeting notes instead of unknown_lamer 16:08:27 <unknown_lamer> #here clinton 16:08:31 <unknown_lamer> hopefully didn't break the bot there 16:08:40 <keverets[hc]> New test case 16:08:43 <unknown_lamer> (ideally have our coop usernames in the transcript but no big deal really) 16:08:45 <smichel17> we'll see :) 16:08:53 <robin> and aliases it for actions etc. (not sure what that does exactly) 16:09:00 <smichel17> #topic agenda 16:09:10 <smichel17> I should do a financial update 16:09:30 <smichel17> We should also discuss kicking inactive members 16:09:37 <unknown_lamer> *sigh* the wiki spam is back in full force 16:09:44 <keverets[hc]> :/ 16:09:47 <robin> yeah :( 16:09:49 <unknown_lamer> I wonder if anything can be done other than requiring account registration with manual approval 16:10:11 <smichel17> We get new members infrequently enough, it seems like that's a reasonable solution? 16:10:19 <keverets[hc]> Not a bad idea. Could it use LDAP for author and just allow coop members to edit? 16:10:25 <unknown_lamer> The idea back when was to allow anyone to edit... 16:10:38 <keverets[hc]> Back in a more innocent time 16:10:41 <smichel17> But anyway, I think we can discuss that later unless you want to make it part of the board meeting 16:10:44 <unknown_lamer> I wouldn't put more effort into auth infrastructure with moin 1.x since it's long deprecated (moin2 might actually becoming stable lately too) 16:11:11 <smichel17> Anyone have other topics? 16:11:13 <keverets[hc]> Can discuss wiki replacement after the meeting, I think 16:11:17 <unknown_lamer> yeah it's more admin stuff, I'll see what we need to do to require accounts or if anyone else has had similar textcha spam issues and send a message to -discuss 16:11:30 <smichel17> felt like he had one more, but doesn't remember it now :( 16:11:45 <keverets[hc]> Decision points are really just about kicking delinquent members I think 16:12:08 <keverets[hc]> unknown_lamer: did you have a topic about getting another VPS? 16:12:13 <robin> filing annual report, also gmail forwarding but that may not be board-level 16:12:24 <smichel17> Maybe appoint someone to try harder to contact kzootech, too 16:12:29 <robin> probably me 16:12:51 <unknown_lamer> we have a budget that lets the admins spin up new machines without approval, although we are near or at that budget 16:13:25 <unknown_lamer> https://wiki.hcoop.net/HcoopBudget 16:13:41 <unknown_lamer> fixed expenses this year also went up because gandi's new owners suck 16:13:53 <keverets[hc]> Ok, budget extension might be a topic, but if it's good enough for now it can be handled later 16:14:29 <unknown_lamer> yes, the polcy we adopted just says the sysadmins have to ask for approval to go past $400/mo and we're at $365.10/mo 16:14:40 <smichel17> #topic financial updates 16:14:46 <unknown_lamer> I will ask for a budget change once I work out the specs for the new servers then 16:14:54 <keverets[hc]> The total for 2023 on that page looks wrong 16:15:14 <keverets[hc]> Copy & paste error 16:15:44 <smichel17> Currently on paper we are receiving $525 per month in dues, but in practice it's significantly lower than that because of many deliquent members 16:16:09 <keverets[hc]> Should we get on to that topic then? 16:16:21 <smichel17> In a moment 16:16:25 <unknown_lamer> This has been an issue since before I was treasurer last, apologies for kicking the can down the road 16:16:47 <smichel17> Bank account balance is currently at $8991 16:17:23 <keverets[hc]> That should probably be an info to get into the summary 16:17:28 <smichel17> From a rough estimate, I think we're holding approximately steady there. It jumps between 8k and 9k because members tend to top off balances in larger amounts 16:18:24 <smichel17> On https://members.hcoop.net/portal/money "Sum of all active balances" is $940.68, but I don't really know what that means, it doesn't seem to change ever 16:18:44 <unknown_lamer> That number should be (member balances) - (hcoop balance) 16:19:05 <smichel17> I just retroactively added all our digitalocean bills for last year and the number did not change 16:19:54 <unknown_lamer> fun sumOwnedBalances () = 16:19:57 <unknown_lamer> case C.oneRow (getDb ()) ($`SELECT SUM(amount) 16:19:59 <unknown_lamer> FROM Balance JOIN WebUser 16:20:02 <unknown_lamer> ON Balance.name = WebUser.name 16:20:06 <unknown_lamer> AND WebUser.bal = Balance.id 16:20:10 <unknown_lamer> JOIN Membership 16:20:13 <unknown_lamer> ON Membership.usr = WebUser.id 16:20:16 <unknown_lamer> AND Membership.grp = 1`) of 16:20:19 <unknown_lamer> [amt] => C.realFromSql amt 16:20:22 <unknown_lamer> | _ => raise Fail "sumOwnedBalance: no rows" 16:20:25 <unknown_lamer> not sure 16:20:55 <smichel17> I want to find the page where I can just see the balance for the `hcoop` user, to check how it compares to our bank balance, but havne't found time to do that yet 16:20:59 <smichel17> Do you know it off hand? 16:21:11 <smichel17> (portal is kind of confusingly laid out) 16:21:24 <unknown_lamer> negative balances also go into that so that probably explains the number 16:21:46 <unknown_lamer> https://members.hcoop.net/portal/balances then go down to hcoop 16:22:14 <unknown_lamer> yes, the portal is custom software written forever ago... also can't rebuild now because mlt broke with new sml again but that is usually a quick fix 16:22:36 <unknown_lamer> I argued about whether it was single or double entry when we first had the portal and got shot down but I was right, it's all single entry and annoying 16:22:50 <smichel17> Alright, so that balance is 7983.16 16:22:53 <robin> /portal/balances blocked for me fwiw ("Authorization error: You aren't a member of group #0") 16:23:12 <unknown_lamer> Have to be an admin to access, it should be checking the treasurer group instead 16:23:17 <robin> ah 16:23:25 <unknown_lamer> but that's technical todo and not entirely relevant to the topic at hand 16:23:29 <robin> yeah 16:23:45 <unknown_lamer> board || financial is what it should check 16:23:47 <smichel17> Anyway, good news is it's not too far off from the bank balance 16:24:14 <smichel17> (correctly lower because of member balances, which are in our bank account but still belong to members) 16:24:28 <smichel17> So we might need some minor reconciliation but nothing significant 16:24:35 <unknown_lamer> https://bugzilla.hcoop.net/show_bug.cgi?id=1052 may be related, I identified some discrepancies but that's around when my burn out got critical and all that... but it's all recorded 16:24:59 <unknown_lamer> also all of the members who haven't been paying but whose dues count toward the hcoop balance 16:25:43 <smichel17> I think we're relatively healthy financially, though not as much in the black as I'd prefer. So I'm up to move on to delinquent members and revisit this next quarter when we've straightened that out 16:25:57 <unknown_lamer> Sure 16:26:20 <keverets[hc]> ๐ 16:26:32 <robin> +1 16:27:13 <smichel17> #info finances are healthy, approximately equal dues and expenses 16:27:22 <smichel17> #agreed Revisit finances/budget in next quarterly meeting 16:27:23 <hcoop-meetbot> smichel17: Unknown command: #agreed 16:27:37 <smichel17> :rolling_eyes: 16:27:58 <smichel17> #topic Delinquent Members 16:29:50 <unknown_lamer> https://members.hcoop.net/portal/money?cmd=bootworthy (I'm on there but only because I paid for the ssl renewal and didn't submit reimbursement until today) 16:30:13 <unknown_lamer> https://bugzilla.hcoop.net/buglist.cgi?component=Financial&list_id=1975&product=HCoop&resolution=--- some of these members asked to have their accounts closed, but not many 16:30:18 <smichel17> We discussed this in the last meeting, trying to find the notes link 16:30:45 <smichel17> side note, why doesn't https://wiki.hcoop.net/IrcMeetings/20240707 appear in https://wiki.hcoop.net/IrcMeetings?action=LocalSiteMap 16:30:48 <unknown_lamer> my inclination is to bring up anyone who only paid dues once after joining for expulsion and then zeroing their balances and closing their accounts 16:31:20 <unknown_lamer> LocalSiteMap IIRC only shows what links to the page, you have to add it manually to IrcMeetings (there's some way to get a listing of subpages onto a page but I can't remember offhand) 16:31:23 <keverets[hc]> I'm good with that plan 16:31:33 <robin> https://hcoop.net/board/meetings/2023/hcoop.20230428.0017.html ? 16:31:45 <unknown_lamer> Then after the easy expulsions are done, contact any longer term members one final time using every address we have for them before doing the same 16:31:53 <smichel17> https://hcoop.net/board/meetings/2024/hcoop.20240429.2300.html 16:32:05 <smichel17> Last time we agreed, " notify members that are 6 months delinquent (~17) of impending termination, and if they don't pay dues to get in good standing within 2 weeks, be expelled" 16:32:45 <smichel17> But we didn't appoint anyone specific to do that, and it hasn't happened yet 16:33:03 <smichel17> (Also outside of that agreement there was chatter of being more lenient for longtime members) 16:33:25 <smichel17> And a note that rvbc (kzootech) is one of the delinquent members.. 16:33:46 <keverets[hc]> robin: can you update https://wiki.hcoop.net/IrcMeetings with the links to the previous and this one? 16:34:00 <robin> keverets[hc], yeah, will do afterwards 16:34:38 <keverets[hc]> robin: thanks! 16:34:48 <keverets[hc]> smichel17: probably a treasurer task. I'll do it 16:35:24 <robin> for people with huge debts who basically haven't used hcoop for years (and, presumably, haven't really used coop resources), i'd suggest offering to zero their balance 16:36:15 <keverets[hc]> To encourage them to remain members? 16:36:49 <robin> yeah, friendlier than kicking them out and requiring re-application 16:36:55 <smichel17> FYI, you can use #action if you want to capture those todos more prominently in the notes e.g. #action keverets will contact delinquent members 16:37:57 <keverets[hc]> robin: not a bad idea, but if they don't respond at all (which I assume will be the common case), then that adds work and delays action quite a bit 16:38:00 <smichel17> (also thanks, and I know it's been a slow handoff, slower than unknown_lamer to me even :sweat_smile: 16:38:22 <unknown_lamer> If someone has been using services and has a large unpaid balance IMO they should pay it (and be inelgible to reapply if they don't) 16:38:55 <unknown_lamer> whether or not any member with a negative balance has been using services is another question. We should be able to tell based on file mtimes, whether their domains are current, etc. 16:38:59 <keverets[hc]> Is there a convenient way to tell who has been using services and who hasn't? 16:39:12 <unknown_lamer> pretty much have they logged in and do they actually have anything actively hosted 16:39:15 <keverets[hc]> Ah, you answered it there 16:39:39 <smichel17> Yeah it seems like a lot of manual work but not too difficult 16:40:09 <unknown_lamer> most of that list is either members who joined and paid initial dues and left or folks who asked to leave at least 16:40:25 <unknown_lamer> so only a few special cases like meowfaceman and nevetski I think 16:41:15 <smichel17> I think it's reasonable to offer one-time forgiveness to folks who have been with the coop a long time, especially if they are using minimal resources. But yeah let's not bother for one-time payments or many-years-overdue 16:41:30 <robin> btr is an example (i know them from other projects), their homepage was on hcoop for a few years, at some point it started showing the default "unconfigured virtual host" page, also they had a severe motorcycle accident a few years back which might've been a factor 16:42:04 <robin> (i assume they don't have other domains actively hosted) 16:42:33 <robin> but we could set a short-ish deadline and do the normal expulsion process if there's no response 16:42:58 <smichel17> e.g. at my (nonprofit) aikido dojo we have a 'pay what you can afford' policy, which I like as long as it doesn't put financial hardship on the org 16:43:45 <keverets[hc]> I don't think we should change the payment structure at this time, but we can discuss more later 16:44:18 <smichel17> That's reasonable too. I'm okay either way. E.g. revisiting after expulsions 16:45:10 <smichel17> How about we proceed with expulsions along the lines of "we assume you're not using hcoop anymore, you'll be expelled soon if you don't reply" and then we can discuss what to do about people who do reply at the next meeting? 16:45:46 <unknown_lamer> I really think we can just summarily remove people who paid only once and simplify the task 16:46:08 <smichel17> Fair, agreed on "paid once". 16:46:12 <unknown_lamer> or maybe, paid once and any domains they control are inactive or they have no domtool config 16:46:23 <robin> one-time payers, sure 16:46:29 <keverets[hc]> Yup 16:47:00 <unknown_lamer> Then longer-term members I don't see harm in keeping a list and handling actual expulsion after the next meeting 16:47:26 <robin> smichel17, frame it more as "we'll zero out your debt if you'd like to start using hcoop again (otherwise...)" maybe, but basically yes :) 16:47:42 <unknown_lamer> The treasurer can create a list and admins can check for activity and a full quarter gives us plenty of time to handle that 16:47:47 <robin> and i can ping some old-time members via social media and whatnot 16:47:53 <smichel17> ๐ 16:47:56 <smichel17> notes that all delinquent members have been recieving monthly automated emails about their negative balance 16:48:16 <smichel17> possible they don't check their hcoop email or gmail has been sending them to spam, etc though 16:48:44 <keverets[hc]> Freezing their accounts should encourage them to figure it out 16:49:01 <keverets[hc]> Part of being a member of the coop is receiving and responding to communication 16:49:09 <robin> is looking forward to mwl's Run Yr Own Mail Server coming out in august (re: gmail) 16:49:15 <keverets[hc]> Failure to do so puts the coop at financial risk 16:49:18 <smichel17> ๐ 16:49:23 <robin> +1 16:49:47 <smichel17> Can we get a #info and/or #action to summarize outcomes and move on to next topic? 16:50:52 <keverets[hc]> #info there are several members who paid a single time and then stopped paying without using services 16:51:06 <keverets[hc]> #info there are long time users who are delinquent 16:51:46 <keverets[hc]> #action the treasurer will provide admins a list of users who paid a single time to check for activity 16:52:10 <unknown_lamer> Account freezing is ... very broken. 16:52:15 <keverets[hc]> #action admins will take that list, and provide the subset that are no longer active 16:52:20 <unknown_lamer> I think there's a bug detailing the issues but no one ever fixed it 16:52:41 <unknown_lamer> I think the #1 issue is that it doesn't record their pts id and everything has incorrect ownership on restoration 16:52:47 <keverets[hc]> #action admins to find and fix bug with freezing accounts 16:52:53 <unknown_lamer> Which is why we stopped freezing people basically... 16:53:10 <unknown_lamer> I am not going to fix it in a reasonable time, and the script is written in perl which I can only kind of half fake competence in 16:53:40 <smichel17> notes #undo will remove the most recent #thing from the summary) 16:54:14 <keverets[hc]> #action treasurer to notify all delinquent users that they are scheduled for expulsion if no action is taken. Included will be a one-time offer to reset balance to 0 if they make at least a one-month payment by the deadline 16:54:35 <smichel17> I think it's not critical that freezing doesn't work, we've been getting along without it for years 16:54:52 <unknown_lamer> actually maybe that's the only bug so perhaps I could fix it 16:55:03 <unknown_lamer> but I dunno, depends on what I end up doing today I guess 16:55:06 <keverets[hc]> Yeah, but it's nice to have a soft cutoff 16:55:26 <keverets[hc]> Any other info or action you want to add, smichel17 ? 16:55:29 <unknown_lamer> Right, if we had freezing members might notice before we have to boot them 16:56:12 <unknown_lamer> I am not sure we can unilaterally offer to forgive balances, although we have been zeroing out delinquent balances (partially because we have no ability to collect debt, partially because we have not followed our own suspension procedures in a very long time) 16:56:37 <unknown_lamer> Section 205. Members shall be charged monthly dues and any other expenses delineated in the Corporation's policies as determined by the board. 16:56:39 <robin> unknown_lamer, bylaws change required maybe? 16:56:42 <unknown_lamer> Section 208. The board may, by majority vote, expel any member who maintains outstanding debt to the Corporation for three consecutive months or more. This means that the member has paid less than the total dues owed to date. 16:56:44 <robin> aha 16:56:47 <unknown_lamer> so I think 16:56:55 <keverets[hc]> unknown_lamer: if the majority of the board approves (and we should vote), what other agency is needed? 16:57:06 <unknown_lamer> we could actually forgive balances? policies as determined by... 16:57:36 <unknown_lamer> just want to be sure we're not agreeing to do something that will violate the bylaws or member control of the coop 16:58:02 <unknown_lamer> I can be ok with this as long as it is very clear it's a one-time thing only relating to expulsions not being handled properly for several years 16:58:21 <keverets[hc]> That's fair 16:58:36 <smichel17> I guess in that case I think we do actually needd to fix the freezing bug in order to offer one time zeroing 16:58:46 <smichel17> Otherwise it will likely happen again, if we can't freeze at 0 16:58:57 <unknown_lamer> and once we're back to normal procedures then we won't do it again except as circumstances require (e.g. if a member falls into financial hardship). And the normal leniency we offer when a member notifies us they can't pay temporarily, although that hasn't happened in ages it has before. 17:00:28 <robin> maybe vote now on a one-time debt jubilee for bootworthy members? or propose it on a list for any member disagreements then do a board poll? 17:00:46 <unknown_lamer> /afs/hcoop.net/common/etc/scripts/freeze is the script if anyone else wants to take a look at it. We need to save the pts id for the user and $user.daemon and then recreate the user with those ids, AFAIK everything else... might work. 17:00:52 <keverets[hc]> We should add a repeating board meeting agenda item to vote on expulsion of delinquent members. That would keep it to a roughly every-3-month thing 17:00:55 <unknown_lamer> maybe some issues with how domains are removed 17:01:23 <unknown_lamer> keverets[hc]: the treasurer is supposed to just bring up delinquent members for expulsion using a poll each months 17:01:44 <keverets[hc]> unknown_lamer: each month? 17:01:58 <keverets[hc]> Or each meeting? 17:02:04 <unknown_lamer> e.g. https://members.hcoop.net/portal/poll?id=42 17:02:28 <unknown_lamer> Recurring official business like that can be handled over email and with official polls 17:02:30 <keverets[hc]> Poll per-member? 17:02:36 <keverets[hc]> Ok 17:02:59 <unknown_lamer> https://members.hcoop.net/portal/poll?id=43 we've done more than one in a poll if we have multiple delinquent 17:03:33 <smichel17> unknown_lamer: We ought to add a note about that to https://wiki.hcoop.net/TreasurerInstructions 17:03:37 <unknown_lamer> freezing is intended to be done without board approval since it just disables services (but has the issue) 17:04:29 <unknown_lamer> didn't realize it wasn't in there, whoops 17:04:58 <unknown_lamer> But before the very long interruption in expulsions that's how we did it 17:06:50 <keverets[hc]> Can you take the action to update the treasurer duties page with the proper way to handle this going forward (after the one-time purge)? 17:07:47 <robin> #action robin will update IrcMeetings links on the wiki post-meeting 17:09:19 <smichel17> #action smichel17 will update https://wiki.hcoop.net/TreasurerInstructions to mention polls for expelling members 17:09:55 <keverets[hc]> Any other decisions or actions? 17:10:46 <smichel17> Not that I can think of 17:10:59 <keverets[hc]> Ok, should we adjourn then? 17:11:02 <robin> action to enact whatever policy we decide for the bootworthy expulsions? 17:11:35 <unknown_lamer> is someone else editing the treasurer page 17:11:38 <robin> or determine it later or whatever 17:11:42 <unknown_lamer> ah I see 17:11:46 <unknown_lamer> I cancelled my edit then 17:11:48 <keverets[hc]> I am not 17:11:51 <robin> not i 17:11:53 <unknown_lamer> smichel17 is 17:12:21 <smichel17> I just fixed the section about transferring paypal balance to bank account, which was outdated 17:13:10 <robin> last item, annual report (and finding kzootech) 17:13:24 <smichel17> #topic annual report 17:13:52 <robin> #info PA annual report has not been submitted yet and is one week late 17:14:07 <robin> #action robin will file a provisional report 17:14:24 <robin> #action robin will attempt to contact kzootech before the next board meeting 17:14:31 <robin> that's it i think 17:16:27 <smichel17> Anything else to discuss today? 17:16:55 <keverets[hc]> No 17:16:58 <smichel17> I noticed https://rvbc.coop/ doesn't have ssl cert up to date eitherโฆ 17:17:07 <robin> nope 17:18:35 <smichel17> Though interestingly on https://members.hcoop.net/portal/balances I see https://members.hcoop.net/portal/user?id=321 still has a positive balance which is weird 17:19:43 <smichel17> Created back in 2015, I didn't realize kzootech had been a member for that long before joining on behalf of rvbc 17:21:07 <robin> oh that's kzootech? huh 17:21:34 <smichel17> Same real name as https://members.hcoop.net/portal/user?id=360 17:22:34 <smichel17> Ending meeting in 20s unless someone raises a new topic 17:23:04 <smichel17> #endmeeting