--- Log opened Mon Jul 01 00:00:10 2019 |
00:05 | | Kindamoody is now known as Kindamoody[zZz] |
02:09 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
02:10 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
02:15 | | Netsplit Traal.Nightstar.Net <-> Krikkit.Nightstar.Net quits: @PinkFreud |
02:22 | | Netsplit over, joins: @PinkFreud |
02:51 | < Yossarian> | Hello! I've had the pleasure of being invited by [R] to this network to join this channel. |
02:56 | <&ToxicFrog> | 'evening |
03:00 | | Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has joined #code |
03:01 | | mode/#code [+qo Vorntastic Vorntastic] by ChanServ |
03:07 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds] |
03:22 | <&McMartin> | Hello |
03:22 | | * Vorntastic gives McM a cheese |
03:25 | < Yossarian> | I used to like coding but then I stopped writing code but now I'm trying to, well... the expression: "If you fall off that horse, you get up, try again, and you EAT that horse!" -- trying to write code again |
03:29 | <@Reiv> | Worth a shot |
03:30 | <@Reiv> | Step 1 for a lot of folks in that scenario is to pick a toy problem you want to solve, then go solve it |
03:30 | <@Reiv> | Or a new language that looks interesting, or etc |
03:30 | | * Reiv shrugs. Isn't the best example, given he's fallen off the horse so often he no longer has bones :p |
03:33 | < Yossarian> | I was studying Computer Science and transferred to a good STEM university but then life happened, responsibilites, human dramas, you know? |
03:38 | <@Reiv> | Sure. |
03:39 | <@Reiv> | So what're you here for? Advice on languages, help on finding tutorials, assistance with a particular line of code, or just joining now so you have the channel on hand later? |
03:48 | < Yossarian> | All of the above. |
03:49 | < Yossarian> | I simply heard this was a great community and I'd like to join it. |
03:49 | <&[R]> | Yoss is currently playing with lua |
03:50 | <&[R]> | Or at least tables in lua |
03:50 | < Yossarian> | My older community on another IRC server is kinda dying, too. Or they work real hard in industry they don't have the enthusiasm even for coding projects of their own. |
03:50 | < Yossarian> | working full time + family with kids = no time, which is understandable |
03:53 | < Yossarian> | But yeah I've been looking at Lua lately, played with some yesterday. The concept of metatables and metaevents is strange to me. I come from a C, C++, Java background. |
03:55 | < Yossarian> | I understand the more popular option is Python and lately Ruby but I dunno. [R] were you able to do anything neat in Minecraft w/ ComputerCraft & the lua scripting? Making combat turtle go on patrols or anything? |
03:56 | <&ToxicFrog> | I am a big fan of lua and am in the middle of doing a bunch of lua-related hacking right now, as it turns out |
03:56 | <&ToxicFrog> | (But I'm also heading to bed soon) |
03:56 | < Yossarian> | It's okay. I'll be here tomorrow. And the next day. And the next day. |
03:56 | <&ToxicFrog> | (also: python and ruby are more popular for standalone programs, but lua is still really common for embedded scripting, and with good reason) |
03:57 | <&ToxicFrog> | Re metatables, if you're familiar with operator overloads in C++ they are conceptually similar, although there are some important (and, if you're used to C++, surprising) differences. |
03:57 | < Yossarian> | I really need to set up vim internally to compile / interpret scripts and then eventually maybe tie debugging in there. |
03:58 | < Yossarian> | Yeah __index and some others are strange, they change behavior and syntaxtic sugar depending on how they're used I see. |
03:58 | <&ToxicFrog> | The syntax/sugar doesn't change. Lua doesn't have macros or any other way to modify lexing/parsing inside lua. __index just changes how table lookups work. |
03:59 | <&ToxicFrog> | It's just that foo[bar], foo.bar and foo:bar() are all table lookups under the hood and thus can potentially trigger __index. |
03:59 | <&McMartin> | Meanwhile, I'm mostly C/C++/ObjC professionally, C/Asm/Exotics for hobby stuff. |
03:59 | <&McMartin> | Where "exotics" tend to things like Haskell or Rust. |
04:00 | < Yossarian> | or the __call metaevent |
04:00 | <&[R]> | Nah, I'm working on a kind of remote API, where you can have one computer just do raw API calls to a turtle over rednet |
04:00 | <&ToxicFrog> | Yeah, professionally I'm mostly C++/python with a bit of Go these days, which I'm honestly not super happy about, although I do occasionally get a chance to use bash. |
04:00 | <@Reiv> | ... you code in assembler for your time off McMartin, don't sell yourself short :p |
04:00 | < Yossarian> | I think I need more time to step away from the REPL and interpret my scripts after modification in my editor/vim |
04:01 | <@Reiv> | I guess the only qualifier I'd have regarding 'community' is that this channel is pretty dedicated to coding - it's a deliberately created side-channel to a whole bunch of other groups on the network, so that way The Coders Can Talk Code without flooding the channels elsechan as a whole. |
04:01 | <&ToxicFrog> | For hobby stuff it's Lua, Clojure, occasionally C. |
04:01 | <&ToxicFrog> | Very occasionally Rust. |
04:02 | <&ToxicFrog> | Yossarian: __call is pretty much exclusively used to make tables and userdata that look like functions; it doesn't see much use otherwise. |
04:03 | <&ToxicFrog> | (Although I'm a fan of setting getmetatable('').__call = string.sub, which makes s(...) equivalent to string.sub(s, ...), so you can index into strings more easily) |
04:03 | <&McMartin> | Reiv: I listed that in the list |
04:04 | < Yossarian> | Yeah that stuff at a C/C++ person is a bit confusing to me. I'll continue to play with it and if I have any questions and you're around ToxicFrog, I'll ask in here. :) |
04:04 | <&ToxicFrog> | But its main use is to go "I'm in C and I need to pass something to Lua that is not a function but that lua needs to be able to pretend is one", or "I'm in Lua and I want to store a function + a bunch of data, which is easier by making a table callable than by trying to attach data to a function" |
04:05 | <&ToxicFrog> | Yossarian: __call is basically just operator(), the call operator; as a C++ person I honestly would have expected it to be one of the more familiar ones :) |
04:05 | <@Reiv> | Feel free to ask around in general on that one, plenty of folks know C/C++ |
04:05 | <&ToxicFrog> | (unless you meant the string.sub stuff, in which case I can break it down in more detail tomorrow if you like!) |
04:05 | <&ToxicFrog> | (but for now it is time for sleep) |
04:05 | < Yossarian> | Don't know if I've overridden operator () before |
04:06 | <&ToxicFrog> | Yossarian: I'm pretty much always connected, even if I'm not at-keyboard, so anything you say with my name in it will eventually get my attention -- feel free to ask me questions any time and I'll get to them next time I'm on IRC. |
04:06 | <@Reiv> | night, ToxicFrog! |
04:06 | < Yossarian> | Sounds good. Thank you. Goodnight! |
04:07 | <&ToxicFrog> | (also, if you aren't already reading it, and you have prior programming experience, I cannot recommend highly enough just reading through the Lua reference manual, or at least having it open in another window while you experiment) |
04:07 | <&ToxicFrog> | (it's very clearly written and not very long, especially if you skip the parts on Lua/C interfacing to start with) |
04:07 | < Yossarian> | Yeah, I think I do better making changes to a chunk and then re-running the chunk, like in vim I'll set the built-in compile option to interpret the file. |
04:08 | < Yossarian> | In other words, the REPL and having to retype stuff really messes with my flow. |
04:08 | <&[R]> | Up arrow works |
04:08 | <&[R]> | Unless you're using some god-awful ancient version of lua? |
04:08 | <&[R]> | 10.0.10.14 has 5.3.5 as I mentioned though |
04:10 | <&ToxicFrog> | [R]: even with readline built in to modern luas, for anything more than a few lines long a real editor is generally a lot more comfy. |
04:10 | <&ToxicFrog> | And with the right editor setup you can e.g. write your script and then have a keystroke that feeds it into `lua -i` so you can get a REPL with all your stuff loaded. |
04:10 | <&ToxicFrog> | Anyways. Actual sleep time now. Goodnight! |
04:11 | <&[R]> | Night |
04:11 | <&[R]> | I just cram a shit-ton of stuff on one line, then copy it to my editor and format it properly |
04:11 | <&[R]> | At least when doing JS, I usually only need to change the last few bits of it |
04:15 | <&[R]> | <[R]> I just cram a shit-ton of stuff on one line, then copy it to my editor and format it properly <-- once I have it working properly |
05:06 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
05:44 | | himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds] |
05:53 | <@celticminstrel> | Heh, I do that too. >_> |
05:53 | <@celticminstrel> | With Python, or JS. Maybe with Lua sometimes. |
05:54 | <@celticminstrel> | Not always on one line, mind you. Python doesn't really like one-liners. so I often have to copy-paste and then delete the prompts from each line. |
05:54 | <&[R]> | D: |
05:54 | <&[R]> | Yeah, python's whitespaceness and REPLs never really mixed well |
05:55 | <@celticminstrel> | It may be my imagination, but ISTR a time when "if x: y" worked in Python as a one-liner. |
05:55 | <&[R]> | It's slightly better now with that funky if-inside-array-slices now |
05:56 | <@celticminstrel> | You mean the [x for y in z] syntax? |
05:56 | <&[R]> | Definately not when I started... in 2008, that's one of the first things I tried |
05:56 | <&[R]> | yes |
05:56 | <@celticminstrel> | Which IIRC also supports if. |
05:56 | <@celticminstrel> | I dunno, maybe making it a one-liner requires a semicolon somewhere. I thought I got it to work once upon a time, but never since. |
05:57 | <@celticminstrel> | But maybe I imagined it. |
05:57 | <@celticminstrel> | Or dreamed it, even. |
05:58 | <@celticminstrel> | When writing Python in the REPL I usually indent with one space. >_> |
05:58 | <&[R]> | Hmm, python2 now supports it, you have to hit enter an extra time though |
05:58 | <@celticminstrel> | I see... |
05:58 | <&[R]> | >>> if True: print('true') |
05:58 | <&[R]> | ... |
05:58 | <&[R]> | true |
05:58 | <&[R]> | >>> |
05:59 | <@celticminstrel> | Maybe I didn't imagine it then... |
05:59 | <&[R]> | Same thing in python3 |
05:59 | <@celticminstrel> | Well anyway it's 1 am and I need to sleep. |
05:59 | <&[R]> | Python 3.6.0 |
05:59 | <&[R]> | Python 2.7.14 |
05:59 | <&[R]> | :p |
05:59 | | celticminstrel [celticminst@Nightstar-6an2qt.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:09 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
08:54 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code |
08:54 | | mode/#code [+o himi] by ChanServ |
08:57 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds] |
09:04 | | Kindamoody[zZz] is now known as Kindamoody |
10:05 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] |
10:06 | | Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
10:09 | | Kindamoody is now known as Kindamoody|out |
10:39 | | * abudhabi just thought of a silly thing. |
10:39 | <@abudhabi> | Set up cron to run a script file. |
10:39 | <@abudhabi> | Make that file sync across devices with syncthing. |
10:41 | <@abudhabi> | Would probably be easier to set up than trying to figure out how to get SSH through my routers. |
10:47 | | * TheWatcher blink |
10:47 | <@TheWatcher> | wat |
12:48 | <@sshine> | I've got a Map<String, List<Foo>> and I want to get N samples of Foo; statistical distribution does not matter for now. the Map is potentially huge, so creating a set and subtracting random elements from it while N-- is memory heavy. but adding random elements to a set as long as they're not already in the set is potentially infinite. |
12:48 | <@sshine> | is there any middle ground here? |
12:51 | <~Vorntastic> | Um, what was it called |
12:54 | <~Vorntastic> | Reservoir sampling |
12:57 | <~Vorntastic> | Chain iterate the lists; keep the first N, then with probability N/(i+1) replace a random element of the keep list with the new item. |
12:57 | <@sshine> | ahhh, cool. |
12:58 | <~Vorntastic> | Where i is the 0-indexed iteration index, a la python's enumerate |
13:01 | <@sshine> | using that method I can even get a uniform distribution over Foos in spite of the asymmetry provided by the Map. |
13:03 | <~Vorntastic> | Yep |
13:09 | | Degi [Degi@Nightstar-nqmkvp.pia.fu-berlin.de] has joined #code |
13:10 | | * Reiver ponders https://www.pbtech.co.nz/product/NBPOEM19407/Samsung-OEM-Monitor-Power-AdapterCharger-14v-214a |
13:10 | <&Reiver> | On the one hand, fifty bucks to get my second monitor going again. |
13:11 | <&Reiver> | On the other hand, I'm sure I have the cable around here somewhere... |
13:11 | <&Reiver> | Blowing fifty bucks on a power brick that I theoretically already have will really annoy me when I find the original >_> |
13:13 | | Degi [Degi@Nightstar-nqmkvp.pia.fu-berlin.de] has quit [Operation timed out] |
13:13 | | Degi [Degi@Nightstar-nqmkvp.pia.fu-berlin.de] has joined #code |
14:32 | | celticminstrel [celticminst@Nightstar-6an2qt.dsl.bell.ca] has joined #code |
14:32 | | mode/#code [+o celticminstrel] by ChanServ |
15:05 | | Degi [Degi@Nightstar-nqmkvp.pia.fu-berlin.de] has quit [Ping timeout: 121 seconds] |
15:16 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
15:16 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
15:23 | | Kindamoody|out [Kindamoody@Nightstar-680urk.mobileonline.telia.com] has quit [Connection closed] |
15:24 | | Kindamoody|out [Kindamoody@Nightstar-680urk.mobileonline.telia.com] has joined #code |
15:24 | | mode/#code [+o Kindamoody|out] by ChanServ |
15:44 | | KiMo|autorejoin [Kindamoody@Nightstar-huope1.mobileonline.telia.com] has joined #code |
15:46 | | Kindamoody|out [Kindamoody@Nightstar-680urk.mobileonline.telia.com] has quit [Ping timeout: 121 seconds] |
15:52 | <@sshine> | https://gist.github.com/sshine/6678b8ecad0eeaaac2304321236a3b74 -- would anyone care to throw a comment at how I'm doing Java wrong? |
15:53 | <@sshine> | the biggest thing I ever did in Java was a chess game in Java 6 in 2009. :-) |
15:54 | <@sshine> | whoops, one.getTime() can be null. |
15:55 | <@sshine> | I really don't like that I can have objects with null values. I realized that some of the emails that I parse have missing headers. |
15:55 | <@sshine> | maybe this is a good place for Optional? java programmers seem to not like Optional if you ask on IRC. |
15:56 | <&ToxicFrog> | In the process of writing this thing, I've discovered two bugs in the game itself and one in the lua runtime I'm using. @.@ |
15:56 | <~Vornicus> | Nice |
15:58 | <@sshine> | ToxicFrog, ha. |
16:00 | <&ToxicFrog> | sshine: without actually reading the code (because my Java is mercifully rusty), this does seem like a good place for Optional. |
16:00 | <&ToxicFrog> | But I also have never used Java Optionals, maybe they're (even more of) a gigantic pain in the ass. |
16:01 | <@sshine> | ToxicFrog, they seem to be... reading and asking Java programmers, they seem to rather be without it. |
16:01 | <@sshine> | I'd think that having an Optional<T> in a model class field would be neat, because callers of the model class'es getters are forced to deal with missing values explicitly. |
16:02 | <@sshine> | so no "forgetting null checks". |
16:02 | <@sshine> | but I just don't have any experience with them, so yeah, maybe they're more pain than gain. |
16:02 | <@sshine> | also, I realize, I'm restricted to an interface that just returns String, so no Optional here. |
16:02 | <@celticminstrel> | Java has optionals? |
16:03 | <&ToxicFrog> | celticminstrel: they're relatively recent, IIRC |
16:03 | <@celticminstrel> | Huh. |
16:03 | <@sshine> | celticminstrel, Java 8 has. |
16:03 | <@celticminstrel> | But does it really solve the problem? If Optional<T> is a class, then surely it can still be assigned null, right? |
16:03 | <@celticminstrel> | Or does it have some kind of special language support? |
16:03 | <&ToxicFrog> | sshine: I mean, in general I'm pretty happy with Optionals, but I'm also using them in languages that unlike Java don't make even trivial tasks a gigantic pain in the ass. |
16:04 | <@celticminstrel> | (I'm using optionals in C++ for some things) |
16:06 | <@sshine> | I'm only using them in Haskell. -_- |
16:07 | <&ToxicFrog> | sshine: also, for email headers in particular, since the set of email headers isn't completely enumerable I'd just make it a Map<String,String> and call it a day~ |
16:11 | <@sshine> | ToxicFrog, but I am making it a Map<String, String> when scanning headers, aren't I? |
16:11 | <@sshine> | ToxicFrog, the Map<String, List<MailInfo>> is a map from email address to sorted list of MailInfo objects (containing selected headers, if present). |
16:14 | <&ToxicFrog> | Ok, in that case I'm not going to understand where the null/optional comes in without actually reading the whole thing, which I don't have time for right now. Sorry. |
16:18 | <@sshine> | ah, no worries. |
16:48 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
17:31 | | KiMo|autorejoin [Kindamoody@Nightstar-huope1.mobileonline.telia.com] has quit [Ping timeout: 121 seconds] |
18:27 | < Yossarian> | Why do I have a PDF datasheet on Intel's 440MX (north bridge + south bridge)? |
18:29 | < Yossarian> | I must of had sleep delirium when I obtained that. |
18:56 | | Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity] |
19:05 | <&jeroud> | Oh, github. Why must I find the "show desktop version" link on my phone to make a gist viewable in a way that is at all useful? |
19:07 | <&jeroud> | Yes, I appreciate getting rid of some of the surrounding fluff in the mobile view. I do *not* appreciate being forced into a single predetermined text size that requires horizontal scrolling for multiple screen widths to read a line of code. |
19:10 | <&[R]> | I love how mobile web is still shit |
19:11 | <&[R]> | It started out with "oh you hit some rando link on our main site? Well here's the front page of our mobile site. Find where you were from there." |
19:17 | <&jeroud> | To be fair, most *modern* mobile web is shit because webdevs deliberately make it shit. |
19:18 | <&jeroud> | I'm pretty sure it takes extra effort to not allow me to to zoom the text. |
19:18 | <&[R]> | Oh yeah, webdevs have been disabling browser functions forever |
19:20 | <&jeroud> | That said, non-mobile web is also pretty shit. |
19:20 | <&[R]> | Also because webdevs have been disabling browser functions forver |
19:21 | <&jeroud> | Medium is the thing I swear at most in this regard these days. |
19:22 | <&[R]> | Pintrest and Zoosk were pretty good a fucking up browsing |
19:22 | <~Vornicus> | I do not understand any part of how pinterest works |
19:22 | <&[R]> | Zoosk just disables middle and ctrl+clicking |
19:22 | <~Vornicus> | SOmeone will give me a pinterest link and it will show me, uh, things that are not the thing they tried to show me |
19:22 | <&jeroud> | In order to actually read anything published on the platform I need to apply browser tools to delete half a dozen DOM subtrees whose entire reason for existence is getting in the way of the content. |
19:22 | <&[R]> | Yeah, you need to be logged in to see the single picture they wanted to show |
19:23 | <&[R]> | That giant fucking list of images is their "you need to sign up retard" page |
19:23 | <&jeroud> | Vornicus: Pinterest is a social network, which means they want to tightly control everything for everyone and thus having it be useful at all to people who are not logged in is bad for them. |
19:24 | <~Vornicus> | FUckin' Nutri-Matic website |
19:25 | <&jeroud> | The primary problem I have with Medium is that half the random blog stuff I need to read for work purposes is published on it, so I can't actually avoid it. |
19:27 | <&jeroud> | One day I'll get around to writing a browser extension that will decrapify Medium posts for me. |
19:28 | <&[R]> | Do they have an RSS feed? |
19:28 | <&jeroud> | But since that presumably requires writing JavaScript code that rummage through someone else's DOM, that day won't be any time soon. |
19:29 | <&jeroud> | I very much doubt it, considering they go out of their way to make any kind of directed navigation extremely difficult. |
19:31 | <&jeroud> | Each article has a few algorithmically selected "suggestions" at the end, and trying to find other things written by the same person is a disaster. |
19:31 | | * McMartin reads the documents for java.util.Optional |
19:32 | <&McMartin> | The only reason to ever use this class is as part of chains of functional composition transforms. |
19:32 | <&McMartin> | Otherwise it is just as unsafe as a raw Java pointer and less convenient to use (viz. == does not work) |
19:40 | <&jeroud> | Having written a bunch of Python again recently, I really really miss being able to do simple functional-style things easily. |
19:40 | <&McMartin> | Well |
19:40 | <&McMartin> | You still don't get to do *that* |
19:41 | <&McMartin> | Optional<T> seems to mostly just have the various (static?) methods for interfacing with flatMap() and friends, which are not clean or easy to use. |
19:41 | <&McMartin> | Maybe there's syntactic sugar over *those*. |
19:42 | | * Tamber adds syntactic sugar-cubes. |
19:43 | <&jeroud> | At least 3.something added {**dict1, **dict2} so I don't have to write five lines of dict_merge() function in every project. |
19:44 | <&jeroud> | As long as I don't have to care about last month's version of the interpreter, at least. |
19:44 | <&jeroud> | But since the framework I'm using is only tested on 3.7, that's fine. |
19:45 | <&McMartin> | 3.7 came out over a year ago |
19:47 | <&jeroud> | Yeah, I was being a bit hyperbolic there. |
19:48 | <&McMartin> | That's also "the last four releases" if you want to make it look nice on your project description |
19:48 | <&jeroud> | I usually prefer to write code that supports at least the releases likely to be in major OS distros, which generally means at least the previous and often the one before. |
19:49 | <&jeroud> | Unless there's some specific reason not to, that is. |
19:51 | | * McMartin nods |
19:51 | <&McMartin> | A dance I've done with both GTK and SDL. |
19:52 | <&McMartin> | Though in the SDL case a generic Linux distro never had to care |
19:52 | <&McMartin> | GTK... either does not use semantic versioning, or *does* use semantic versioning in the form where you cheat |
19:53 | <&McMartin> | But be that as it may, a lot of the APIs added late in GTK3's lifecycle were quite important to us and those were often not carried in LTS releases until 2018. |
19:53 | <~Vornicus> | argh I have been too concentrated on these ... 30 or so lines of code I wanted to cut vegetables |
19:56 | <&jeroud> | Is it C-sharp code? |
19:56 | <~Vornicus> | no it is lua |
19:56 | <&jeroud> | I can't imagine any other language being suitable for vegetable cutting. |
19:56 | <~Vornicus> | gonna make me a language called feemster |
19:57 | <~Vornicus> | WHich you can still get for eight bucks, this amazes me |
19:58 | <&jeroud> | All I get when I search that name is the music dude. |
19:58 | <~Vornicus> | "feemsters famous vegetable slicer" |
19:59 | <~Vornicus> | It is so 70s I thought they stopped making them before i was born and that the one my parents had was a relic from another age of culinary arts |
21:32 | | Degi [Degi@Nightstar-uhn735.dyn.telefonica.de] has joined #code |
21:59 | | Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has joined #code |
21:59 | | mode/#code [+qo Vorntastic Vorntastic] by ChanServ |
22:26 | | Degi [Degi@Nightstar-uhn735.dyn.telefonica.de] has quit [Connection reset by peer] |
22:28 | | Degi [Degi@Nightstar-uhn735.dyn.telefonica.de] has joined #code |
22:46 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
22:55 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds] |
23:16 | | catalyst [Jessikat@Nightstar-q2i6uf.dab.02.net] has joined #code |
23:17 | < Yossarian> | how are the bantz here? |
23:18 | <&McMartin> | I'm afraid you're going to need to rephrase that question |
23:18 | <&McMartin> | (Which is to say: it is possible I can answer that question but I have no idea what you just said) |
23:19 | < Yossarian> | banter |
23:19 | <&McMartin> | This is *mostly* not a general social channel, as part of the "low bandwidth high signal" goal |
23:20 | <&McMartin> | But there are occasional digressions, as seen by the previous bout into vegetable slicers |
23:20 | < Yossarian> | Rants and monologues are encouraged; many cores, no waiting |
23:20 | <&ToxicFrog> | This channel gets used as a rubber duck a lot. |
23:21 | <&McMartin> | Yeah, that's for rubber ducking, not railing against whatever group of undesireables you think should be validly subject to violence from passersby |
23:21 | <&ToxicFrog> | Railing against API/language misfeatures is on topic, though :PO |
23:22 | < Mahal> | Yeah, #code stays relatively on-topic |
23:22 | < Yossarian> | systemd should be subject to violence |
23:22 | <&McMartin> | More how-to-do-the-necessary-violence |
23:22 | < Yossarian> | by stripping out out |
23:22 | < Yossarian> | Out! Out! Out! |
23:22 | <&ToxicFrog> | I have no opinion on systemd as a programmer or package maintainer, but as a system administrator and end user it's such a massive improvement over sysVinit it's not even funny |
23:23 | <&McMartin> | I have zero fond memories of initd, yes |
23:23 | <~Vornicus> | If elected, I promise training dummies on every corner! |
23:23 | < Yossarian> | they should call it services.msc though |
23:25 | < Yossarian> | https://suckless.org/sucks/ |
23:26 | < Yossarian> | not sure I agree with gcc but I don't know much about interworkings |
23:26 | <&McMartin> | Welp, sucks to be them |
23:27 | <&McMartin> | If gcc and clang are both garbage, they can stick with cl.exe I guess, since that's the only C compiler left |
23:27 | <&ToxicFrog> | McMartin: there's icc too, if you hate yourself |
23:27 | <&McMartin> | And its C99 support is garbage and will never be completed, so it probably also sucks |
23:27 | <&McMartin> | If they're complaining about gcc being non-interoperable, then this list may, as a whole, be completely discarded because they are paying no attention to the march of history |
23:28 | <&McMartin> | gcc spent a long time being a horrific monolithic blob on the grounds that if it were capable of producing usable intermediate representations then proprietary tools might be able to interoperate with it and thus freedom would die forever |
23:28 | <&McMartin> | the GCC committee schismed over this, producing the egcs project on the side of "actually interop is pretty OK" |
23:28 | <&ToxicFrog> | Meanwhile, I have learned something beautifully horrible about Bitburner's process API |
23:28 | <&McMartin> | We now call egcs "gcc" because they won |
23:29 | <&ToxicFrog> | To wit, while you can only pass strings in argv when running something from the command line, if you run it using the API you can fill argv with anything you want |
23:29 | <&McMartin> | (Likewise, about 75% of the complaints about subversion boil down to "I last looked at at Subversion in 2003 and assume that literally nothing at all has changed about it since then") |
23:29 | <&ToxicFrog> | Including, say, pending futures that give the parent access to the child's bitburner API context once resolved, allowing the parent to make API calls that use the resources and execute in the game context of the child |
23:30 | <&McMartin> | But their list of "code that sucks" is "literally anything that is written in C++" |
23:30 | <&McMartin> | That ship sailed a long, long, long, long, long time ago. |
23:31 | <&McMartin> | So long ago that people now ask why anyone would ever write anything that compiles to native code at all besides the javascript interpreters that you would use to run your actual software stack |
23:31 | <&McMartin> | And even those can mostly be transpiled into the older forms of JS so you don't have to touch anything icky that actually *exists* |
23:32 | <&McMartin> | Then, in the other direction, https://volt-app.com/ |
23:32 | <&McMartin> | Which is cheating for a variety of reasons but still a useful proof of concept |
23:32 | <&McMartin> | (Reason 1: it dynamically links system libraries that add up to 100MB or more on non-windows systems) |
23:34 | < Yossarian> | is Subversion (SVN) any better? |
23:34 | <&McMartin> | Uh, what's our start point |
23:35 | < Yossarian> | When I interned at IBM / Ricoh Inforpint the build process for the product was craaaaazy |
23:35 | <&McMartin> | Branch semantics spent some time in svn being wrong to the point of "using these features will corrupt your data and possibly your repository" |
23:35 | <&McMartin> | That hasn't been true for a while |
23:36 | <&McMartin> | It also has spent many years only producing a single .svn directory at the top of your checkout, instead of there and every subdirectory the way earlier versions did |
23:36 | <&McMartin> | However, it is still a centralized VCS and it does still store changes between revisions, fundamentally, as deltas |
23:36 | | Degi [Degi@Nightstar-uhn735.dyn.telefonica.de] has quit [Ping timeout: 121 seconds] |
23:37 | <&McMartin> | If your actual problem space does not want those, then it will not solve your problems. |
23:37 | <&McMartin> | Unlock certain other systems, which are so easy to use that seasoned developers generally recommend that you start by learning its data structures and then work your way up to actually issuing commands... |
23:37 | <&McMartin> | *unlike |
23:37 | <&McMartin> | ... if svn doesn't meet one's needs, the response is to say "so don't use svn for this" as opposed to "you are clearly trying to solve the wrong problem if my preferred tool is bad at solving it" |
23:38 | < Yossarian> | Makes sense. |
23:38 | <&McMartin> | In particular |
23:38 | <&[R]> | <McMartin> If gcc and clang are both garbage, they can stick with cl.exe I guess, since that's the only C compiler left <-- there's the plan9 one |
23:39 | <&McMartin> | If you like Git enough to refuse to directly touch anything else |
23:39 | <&McMartin> | If you have to version somebody else's binary blobs, you are far better off having the actual server be an svn server and work with it through git-svn than you are trying to get git annex to actually behave correctly in your entire organization's variegated development environments |
23:40 | <&McMartin> | Which is to say "if you have an art department" |
23:46 | < Yossarian> | I have to configure my .vimrc some more |
23:53 | | * Vornicus has an intense dislike for teasing out a single loop from a data structure that has loops in it |
23:54 | <&[R]> | ? |
23:55 | <~Vornicus> | I have an array `edges` that is full of structures that include an index into this array called `next`. I have one index into this array, and I need to extract one field `vertex` from each entry in the array that I get by following the `next` indexes around |
23:57 | <~Vornicus> | but every time I try to do this I end up with a loop where i have to, uh, prime it? I have to have a thing before the loop which also does the action of the loop |
23:58 | <&[R]> | What's why do...while exists, no? |
23:58 | <~Vornicus> | In languages where it exists, yes |
23:59 | <&McMartin> | while True: (thing); if (condition) break; |
23:59 | <&[R]> | ^ |
23:59 | <~Vornicus> | aha of course |
--- Log closed Tue Jul 02 00:00:11 2019 |