whaack: diana_coman: EOD Report: Like I've done in previous weeks, I let the article I wrote eat up the entire day. (I reread An Outpost of Progress again before writing it.) With your permission, I would like a break from writing tomorrow so I can put hours into The Fleet. That would break the one-article-per-day assignment, but it will help keep this week's schedule more aligned in terms of hours distributed to different tasks.
whaack: diana_coman: As for TheFleet project, all I got done was getting irrsi setup so I can redirect the output of /list to a file. I still need to write a script that connects to each irc network and issus the /list command, putting the output in a file tied to the corresponding irc network.
DKordic: I will kick myself off the channel.
feedbot: http://younghands.club/2019/12/27/sr-the-write-off-from-the-logs/ << Young Hands Club -- SR - The Write Off from the Logs
diana_coman: whaack: how long did you spend on that article?
diana_coman: whaack: according to your current plan, there are already 8hr45 minutes on TheFleet today so there is no point in making it more than that really; just keep with the 1.5hour on writing or if you really must let it spill over, let it be into the 1 hour of Spanish and certainly not more than that.
whaack: diana_coman: i spent 1h rereading, another ~.5hour on the outline, and then about 4.5 hours on the body + .5 hours proofread after time
diana_coman: hm, so 1.5 hours that should have been on previous days and otherwise 5 hours instead of 1.5 on writing; do the 1.5 or max 2.5 instead of Spanish today but you can get back to it tomorrow ie publish every other day.
diana_coman: whaack: ^
whaack: diana_coman: okay so to clarify going forward 1.5hours or 2.5 hours HARD LIMIT (that also means no Spanish), and this now happens every other day
diana_coman: whaack: the publishing happens every other day; meaning: you can actually spend 5 hours of writing one single article if you really find you must, except those 5 hours will be spread over 2 days and eating up the Spanish.
whaack: diana_coman: got it
diana_coman: we'll review it at the end of next week.
diana_coman: whaack: what's on your reading list/do you still get to read other than yesterday's sort of had-to-re-read session?
whaack: diana_coman: i haven't been reading much. last time i read was waiting in line for the bank in Santa Cruz. I am about 60% through the second read of The Odyssey
diana_coman: whaack: but why not?
whaack: diana_coman: sorry only 40% through, i just checked. I haven't been reading because I've been pressed for time
diana_coman: hm; if it's the same by mid/end-January, it will have to be looked at as well; but ok for now.
whaack: diana_coman: okay, i'll use a 30 minute reading session before I go to sleep as a reward for an efficient day of no spinning.
diana_coman: sounds good to me.
diana_coman: whaack: btw, how's the 2nd read of the odyssey compared to the 1st?
whaack: diana_coman: it has been much more enjoyable on the second read
diana_coman: heh, quite as it goes indeed; good to hear it, too.
whaack: diana_coman: i can focus on other details cuz I know what damn island the man is on
diana_coman: it can take a while to get familiar with that whole other world indeed.
whaack: diana_coman: yes, i still couldn't tell you the names of the islands, i just have a better understanding of the chronology of events
diana_coman: whaack: maybe get/print a map, you know? I'm sure you can even find one online or something.
whaack: diana_coman: not a bad idea, i have no printer though
diana_coman: don't you need one at all otherwise?
whaack: the only need i've thought of for it is printing out some scores for the guitar, which i'm not really playing much anymore anyways. but yes i think it may be a good investment.
whaack: In other things I should mention, I've been getting slight pains in my pinky and ring finger. Interestingly, this has happened on both hands at the same time. The pain is not too bad at all and only lasts for a short time. But I am concerned about emacs eventually destroying my hands. I bought the https://ergodox-ez.com/ ergodox keyboard which in theory is more ergonomic. But I type / navigate so slowly with that keyboard that I wa
whaack: nt to wait until I am using it with my new pc. (I also want to wait because I currently can't install the software to update the keybinds on my mac)
whaack: (The pain does not occur at the exact same time on both hands, it just has recently started to occur occasionally on either hand)
diana_coman: whaack: there are some exercises against carpal tunnel syndrome, you might want to look those up; but at any rate, if it hurts...stop doing it, you know? find what works for you there, keyboard and setup included.
whaack: diana_coman: i know, i do not muscle through the pain. i take my hands off the keyboard and wait for it to subside or at least start typing slowly
whaack: i'll take a look into exercises against carpal tunnel syndrome
diana_coman: whaack: hm, if you just take a break and then get back to doing precisely the same thing, that's not "if it hurts, stop doing it".
diana_coman: figure out what's the cause and make the needed changes, don't just basically train to stop noticing it.
diana_coman: fwiw I haven't / don't have this sort of problem and I'm not even using any extraordinary keyboard.
whaack: diana_coman: alright i'll record myself typing and see if i can catch a particularly bad pattern. I've also been typing the same way for years on ordinary keyboards without ever having any issues. And even now the pain is quite subtle.
diana_coman: maybe it's just the change of pattern exactly.
whaack: diana_coman: it did start happening when i started using the new ergodox keyboard
diana_coman: whaack: so then give it some adjusting time and/or try to make the change more gradual if possible.
whaack: diana_coman: will do
BingoBoingo: I suspect the "theoretically more ergonomic" keyboards might only actually be more ergonomic for those with pre-wrecked hands/wrists.
diana_coman: BingoBoingo: I can see that angle tbh.
whaack: I buy the idea that a split keyboard is nicer because it lets you keep your chest open as you type. but i don't see the other benefits of this keyboard.
diana_coman: whaack: you can wear it around your neck from the images I saw at the link you gave - maybe that's the idea? :D
whaack: lolz damn i am doing it all wrong
whaack: thimbronion: you use this keyboard, how do you lay it out? do you put it at angle / what's the height of your desk / did you have keybindings you can post? etc.
whaack: do you have* keybindings
BingoBoingo: whaack: When jfw comes back you should ask him what my workstation looks like. It's seen all 2009 of my Qntra pieces (out of 2759 total) clacked out.
whaack: BingoBoingo: um..why would I ask him and not you?
BingoBoingo: whaack: Well he's seen it, and jfw has the advantage over me in being a thoughtful observer not that is not myself. It's a Lenovo X120e 11.6" notebook I keep on top of an aluminum wedge.
BingoBoingo: Over other laptops I've used... it has the great advantage of the keyboard going all the way to the edge of the body on both sides. Maybe I'm just maladapted, but I find it a very comfortable arrangement.
whaack: BingoBoingo: Do you have a separate monitor?
BingoBoingo: whaack: Not at this time.
whaack: BingoBoingo: that seems an easy way to have your neck always bending slightly downwards
BingoBoingo: Well, it's on a wedge, and it does help me to break gaze from the screen with some regularity.
diana_coman: whaack: it might be more important to actually take regular breaks for that matter; every hour move away, that sort of thing.
whaack: BingoBoingo: makes sense. i was scarred by seeing a 'master chef' in Japan whose neck looked permanently fixed downwards ostensibly from always bending over to look at what he was cooking.
diana_coman: dorion_road: you should add that talk re http://dorion-mode.com/2019/12/some-reasons-contributing-to-tmsr-os-is-ev/ to the comments there, where it belongs.
whaack: diana_coman: I usually get up with that frequency to get water or something, but i'll make a point to ensure i do.
BingoBoingo: whaack: I suppose ergonomically I use my workstation more like a typewriter that happens to have a screen than the way gamers or other "monitor immersed" folks do. There are times where I can stare at the screen, but normally I'm taking my eyes off the screen with some frequency.
whaack: diana_coman: I may return to scrapping netsplit.de for the channel names. I think that may be easier than connecting to all the networks and issuing the /list command. The problem with /list is that (1) i still need to find a way to format the output into files. I tried using irssi, setting it to log to a file, and then setting the startup script to issue the /list command
whaack: diana_coman: but there are a few headache with this. first, some networks require identification to issue /list, so i need to have my script do the entire registration dance, which afaik could be different for different channels
diana_coman: whaack: what do you mean by "format the output into files"?
diana_coman: I don't know how reliable/up to date the list on netsplit.de is and/or whether complete.
whaack: diana_coman: I need to issue the /list command for the 260 or so networks. I want a script that is going to connect to each network, issue the /list command, and save the output to a file.
diana_coman: that's the main issue with scrapping that: it's from a secondary source while direct source is entirely available so there has to be a very good reason for ditching direct source really.
diana_coman: whaack: isn't that file the logfile anyway?
diana_coman: and moreover, one of your bots can do that since it will have to connect to a network anyway, I don't see how is this different.
diana_coman: if you have a bot that will connect to the network to join channels 1-100, then that same bot can first simply connect and get the list.
whaack: diana_coman: the logbot doesn't have to issue commands. i tried for a second to have one of my bots issue the /list command and save the response, but i ran into a problem and then figured it would be easier to use irssi. but I have not had luck with irssi so I think I'm going to go back to using my bots + cl-irc, and anyways it will get me more familiar with the library.
diana_coman: whaack: ugh, ditching a problem because "that might be easier" is not a sound approach.
diana_coman: and yes, it tends to end up in this sort of back and forth over however many alternative "it might be easier" approaches you can imagine, with the overall net result that you spend actually more time and still have 0 to show for it.
diana_coman: whaack: also, I don't get how is it that the logbot doesn't have to issue commands; at the very least it has to issue "/join #chan" , doesn't it?
whaack: diana_coman: yes it does but that command is in the cl-irc library.. and now I realize I should be searching for the /list command wrapper
diana_coman: whaack: heh; listen, don't just go like that after "what seems easier"; at the very least bounce off the idea in here, can't hurt.
diana_coman: if anything, the optimisation should be about return (gain/effort), not about min(effort) even assuming that you evaluate that min(effort) properly in the first place.
whaack: diana_coman: as for the knowing when to back out of a strategy and try another one, i know that flip flopping between possible solutions without putting the effort to see one through to the end is a bad strategy. but there is some point where you need to back out of a strategy. for example, i spent 30mins trying to properly undo the zip ties holding the PSU cables. but they were too tiny and awkwardly placed, so i gave up and just
whaack: snipped them. i think that was the right call
diana_coman: whaack: certainly; but that example you give is quite a different sort (and your solution even has a well-known historical name - the Gordian Knot, as solved by Alexander).
diana_coman: it's also not just "flip flopping between possible solutions without putting the effort to see one through to the end"; it's mainly and firstly about *how you choose* which solution to try and for how long, that's the important part.
whaack: right, that is difficult
whaack: but i believe i should have stuck with trying to do it with my bots, because even while stuck i'm gaining more familiarity with CL and the codebase i'll be using. I don't know if i'll benefit from learning a bit of about setting up scripts with irssi
diana_coman: whaack: quite right, you should have stuck with trying to do it with your bots, yes.
diana_coman: see, you do know how to choose; you just need to actually... choose to choose :P
whaack: mhm makes sense. i ignored the fact that i would benefit regardless from struggling with the ircbot solution because I believe (incorrectly, in retrospect) that it would be easier to use irssi
diana_coman: easier != correct choice; for one thing indeed, you can't even truly know upfront for sure which one is easier and for the other, choose the right thing, not the easy thing, remember? (because "easy" in the moment has its own mid/long term costs really so there's no "easy" like that, no).
diana_coman: basically be more intelligently-lazy not stupidly-lazy :P
whaack: diana_coman: aha yes this was laziness-from-stupidness. it certainly wasn't avoidance going to irssi, i much prefer to be playing around in my slime repl then learning a scripting language of a command line tool.
whaack: than* learning
whaack: diana_coman: i got a channel list for freenode safe and sound in an sexpr via cl-irc, now to iterate through the other channels. First I need to get the list of all networks into an sexpr, then figure out how to connect to networks without registered nicks (logbot is config'd to require one), then I need to get as many chan lists for all of them as I did for freenode, then I need to see which networks failed to get a chan list (bec
whaack: ause some require a connection w/ a registered account to issue the /list command.) Then I will figure out a strategy to get a nick registered for every channel and then finally grab their channel lists as well.
diana_coman: whaack: do you mean to iterate through the other networks?
diana_coman: won't you need to register nicks anyway?
whaack: diana_coman: i was planning on using unregistered nicks
diana_coman: if in the end you *still* need to register a nick, what's the point in going now through connect-unregistered and then check fails and register?
diana_coman: well yes, but if that doesn't work for all, then you'll still need to figure out how to register, right?
diana_coman: sure, automate it but either it works unregistered for ~all or it has to be done.
whaack: well it is possible it's <10 or so, it did not take much time to get the randomize nick working
diana_coman: whaack: so then you should have said *that*; ok, run it with randomized and see on how many it fails, sure.
whaack: kk my current task is getting the list of servers/ports in an sexpr
diana_coman: ok.
whaack: i am trying to find another way to get the list, but it looks like i'm going to scrape netsplite.de with python again
whaack: diana_coman: http://paste.deedbot.org/?id=FeE0 Out of the 596 networks I found the server info for 495 of them on netsplit.de . I only looked for servers that did not require ssl. I only stored the first hostname/port I found. Further work including all information for the individual linknames. An example of the data I'm scraping can be seen here: https://netsplit.de/servers/?net=IRCnet
diana_coman: whaack: looks fine for a start, go ahead.
whaack: diana_coman: I have the function that adds the list of all channels to each entry in the list above containing network names, hosts, and ports. however each network has a chance of failing for some reason or another. so it seems a perfect time to go through CL's famous restart system which i'm reading about here http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html
diana_coman: whaack: you'll have to keep me up to date on whatever CL does or does not do; I'm not all that into CL really (I enjoyed functional programming sometime ~15 years ago but even at that time it was more Scheme and Haskell than Lisp anyway); so make sure you communicate clearly on this, please.
whaack: diana_coman: noted. i'm running my code that iterates through all networks grabbing their channel list. there is a function grab-all-channels-for-network that takes a hostname port pair as a parameter. It is supposed to return a list of channels obtained from the server, but for various reasons it can fail. CL has a system similar to a "try / catch" block, except the "catch" can be a template with various options. when the operator
whaack: hits the error while running the loop in their repl, evaluation freezes and the operator can pick from the various options (known as "restarts") to continue from. for my case, I want to create two options for when grab-channel-all-channels-for-network fails ~ "try again" and "return an empty list".