code logs -> 2019 -> Mon, 01 Jul 2019< code.20190630.log - code.20190702.log >
--- 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
code logs -> 2019 -> Mon, 01 Jul 2019< code.20190630.log - code.20190702.log >

[ Latest log file ]