[00:22:21] * delvinj [delvinj!~Miranda@c-73-164-9-150.hsd1.mn.comcast.net] has quit (Read error: Connection reset by peer). [00:49:27] Neat. How did y'all find out about it? [01:30:54] cool calculator! [01:34:13] i found factor in 2005 [01:39:17] from a guy in a coffee shop. changed my life [01:46:20] * NB0X [NB0X!~discrttm@unaffiliated/discrttm] has quit (Quit: My MacBook has gone to sleep. ZZZzzz…). [02:00:28] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [02:40:58] * otoburb [otoburb!~otoburb@unaffiliated/otoburb] has joined the channel. [03:21:22] * pierpa [pierpa!50b5eb54@gateway/web/freenode/ip.80.181.235.84] has quit (Quit: Page closed). [03:41:46] * NB0X [NB0X!~discrttm@unaffiliated/discrttm] has joined the channel. [03:45:57] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has quit (Quit: Poof). [03:46:14] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [04:13:53] I haven't done much with the factor GUI library but it does look pretty good. [04:18:29] * NB0X is now known as NB0X-QRT [04:24:57] * raingloom [raingloom!~raingloom@C2267141.catv.pool.telekom.hu] has quit (Ping timeout: 240 seconds). [04:55:29] * NB0X-QRT is now known as NB0X [05:00:58] erg: thanks. How did it (finding factor) change your life? [05:03:23] doublec: I'd be interested in figuring out ways to provide more examples of GUI code as well. The current selection of easily discoverable ones seems kinda lean so far (through the help system is quite handy), and it would be kinda nice to be able to set up a dark theme, IMO [05:20:21] <^alex> oh hey [05:20:26] <^alex> there is a dark theme [05:20:36] <^alex> i also have my own theme based off wombat but [05:20:42] <^alex> haven't published it anywhere [05:25:56] ^alex: How do you change the factor GUI theme? [05:26:53] dang, it's kinda messed up. ``dark-theme theme set-global`` [05:27:09] <^alex> i use, ud [05:27:11] <^alex> uh [05:27:11] I found a theme-switcher, but it's not working so well? [05:27:22] <^alex> dark-theme switch-theme in factor-rc [05:27:42] <^alex> except i substitute `alex-theme` because that's my theme :p [05:27:58] yeah, that's way better. not sure why setting it the way i said is worse.. [05:28:11] Is there an `edit` command to get at the factor-rc? [05:28:46] USE: tools.scaffold scaffold-factor-boot-rc [05:28:52] Thanks [05:29:24] erg: How has factor changed your life since you found it in that coffee shop? [05:29:31] the boot rc only runs on bootstrap. there's also ~/.factor-rc but it costs startup time [05:29:46] so do ``run-bootstrap-init save`` after making a boot rc [05:30:37] yumaikas: well i started working on factor and havent really stopped since then [05:31:46] (Also, congrats on a release after Slava moved on, that's what has prompted me to dig into again after working on PISC for some years) [05:33:16] slava is making swift great again [05:34:08] erg: If factor was what he did before working on swift, I could see him being a great asset to that team [05:34:13] he hasnt touched factor since 2010 but he still knows the codebase better than me :p [05:35:08] I mean, my understanding is that he basically wrote up the whole thing in the space of 5 or so years? [05:35:33] (IIRC, Factor started out as an extension to Java for a game?) [05:35:38] 7 years i guess, but yeah [05:37:47] I've not looked deeply, but how big is the factor codebase? (I'd guess it at 50k, given what I've seen so far) [05:37:53] 50kloc, that is [05:38:45] no not really [05:38:48] find . -name *.factor | xargs wc -l [05:38:55] 425827 total [05:39:04] <^alex> erg, fwiw `switch-theme` is `theme set-global update-stylesheet`, which explains why your way is worse ;p [05:40:07] Dang. That's a lot of code (Slava must have done a *lot* of work on factor in those 7 years) [05:40:10] ahh makes sense [05:40:22] yumaikas: it's tests and docs too, but yes [05:40:59] erg: That's still 80kloc of writing in a year. I've never written that much except maybe at work? [05:42:02] <^alex> i'm glad it's still alive [05:42:11] indeed [05:42:21] Is there a command for clearing out errors? [05:42:32] <^alex> idk what it is but stack languages work well with how my brain works [05:42:40] huh [05:42:48] That's not a super common statement, IMO [05:42:55] <^alex> no it isn't [05:43:05] <^alex> but that's how we do [05:43:15] I basically had to spend 6 months implementing one before I got very comfortable [05:43:25] Especiall with things like bi and cleave [05:44:36] Though now they mostly make sense. [05:44:55] <^alex> yeah we just kinda threw ourselves at it until they clicked [05:45:40] ^alex: "we"? (I take that's your pronoun of choice?) [05:46:37] <^alex> mm, yeah, plural they/them [05:47:09] ^alex: Also, out of all of the programming languages, why factor? [05:47:26] Just the stack based stuffs? [05:48:21] <^alex> the deployable apps, image-based design, stack-oriented nature, object inspector [05:48:26] <^alex> it's all very well put together [05:49:06] Fair enough, I suppose. [05:49:32] (I've yet to do the deployable apps, but I've had a pretty good time with the listener so far) [05:49:58] <^alex> yeah, the listener is good for stream-of-consciousness nonsense [05:50:26] Well, and it has a good flow for taking code written out and getting it debugged [05:51:03] <^alex> yeah and it doesn't even break the flow [05:51:10] Yep [05:51:26] Do you happen to know how to clear out an rc error that's being sticky? [05:51:34] (Once the underlying code has been fixed) [05:53:49] <^alex> we just restart over and over until it's fixed [05:54:34] Yeah, this rcfile is fixed, but I think I accidetnally saved an error in the image [06:01:54] * discrttm [discrttm!~discrttm@unaffiliated/discrttm] has joined the channel. [06:03:45] <^alex> huh, does it go away after `run-bootstrap-init` [06:03:57] It hasn't been [06:03:57] * NB0X [NB0X!~discrttm@unaffiliated/discrttm] has quit (Ping timeout: 264 seconds). [06:04:50] yumaikas: nah it's a bug [06:05:18] erg: Thoughts on how to fix said bug? Is there a global vector or model I can poke? [06:05:40] yumaikas: probably, it's kind of hard to find/track down [06:07:18] Hrm........ [06:07:50] <^alex> https://hastebin.com/raw/umevukoyoy aforementioned discordian calendar [06:08:17] the royal "we" [06:08:36] o/ [06:08:48] ^alex: What is a discordian calender? [06:08:55] <^alex> oh, uh [06:09:31] haha [06:09:49] i wrote most of the calendar vocab, hope it was useful [06:11:05] <^alex> it's a joke religion [06:11:12] <^alex> discordianism is [06:11:41] Gotcha [06:12:02] <^alex> but it's a serious enough joke that it has its own calendar [06:12:13] <^alex> this converts between normal time and discordian time [06:12:22] Ok, cool enough [06:12:38] <^alex> and calls out the holydays [06:15:07] Gotcha. [06:15:18] * yumaikas is currently digging into why the sticky error is around [06:15:36] erg: You said it's a bug, do you know what leads to it? [06:16:06] I'm looking in errors.factor atm [06:16:18] havent looked much, i think it should forget-errors or whatever on the boot rc file [06:16:31] doh that's not a word [06:18:56] erg: So far, it looks like I'm finding a global error-types [06:19:05] I'm just trying to find if I have a way of poking the state [06:21:53] erg: Got it sorted [06:24:05] <^alex> so what was it [06:24:09] * ^alex curious [06:24:22] there's a global user-init-errors that is a hash of file-path strings to errors [06:25:14] and I was able to delete-at the path of the rc file to get it out of the hash, and use notify-error-observers to let the error list UI know what happened [06:25:37] nice! run-bootstrap-init should do that too [06:25:48] <^alex> another awesome thing about factor is you can just click on things and dig as deep as you want [06:26:10] erg: I think saving the image with the error intact kept that from refreshing? I'm not sure [06:26:40] * yumaikas moves factor more towards emacs in his mental model [06:26:41] it keeps its errors after you quit [06:26:49] <^alex> sort of terrified a coworker once, by doing the kind of json processing he'd do with curl and jq, entirely in factor [06:27:04] ^alex: What did you use to pull that off? [06:27:12] it should delete the errors before reloading the bootstrap file [06:27:16] (I've not seen anything in factor I'd consider as slick as jq) [06:27:52] erg: Hrm... It didn't this time, and restarting the listener didn't do it, and re-running the bootstrap didn't do it either. I should have copied the image [06:28:51] ^alex: That clicking around is quite nifty. In some ways, factor seems like a smalltalk that interoperates with the outside world like a normal program [06:29:08] yumaikas: USE: smalltalk heh [06:29:20] erg: heh, maybe [06:29:30] ``"smalltalk" load`` rather [06:29:39] i mean, there's a smallktalk compiler in factor [06:29:47] Yeah [06:29:50] So I've heard [06:30:07] (There was a lobste.rs post talking about it) [06:30:27] erg: How do you kick it off once you've loaded it, and does it have the standard factor tools? [06:32:06] nobody's ever used it, it was an april fool's joke [06:32:13] "smalltalk" test [06:32:15] try that [06:32:40] loool [06:32:49] When that's your notion of an April Fool's joke [06:32:54] it's fully functional [06:34:48] Right, just pointing out that most people would not think of a fully functional smalltalk compiler as an Apirl Fool's day joke [06:35:36] <^alex> yumaikas, soooo it was even better than that [06:36:19] <^alex> problem: there's 500+ emails, one for each machine failing its reinstall, where the subject line has the host and the third line of the body has the exception [06:37:21] Sounds like a job for JQ+Ruby, or for LinqPad+C# (That's what I'd reach for to fix that sort of thing atm, just because I happen to know C# the best atm) [06:38:05] <^alex> so everyone we posed this to was like, "uhm. I do a gmail query and, uh... fuck." [06:38:16] <^alex> but our email's in notmuch, because of course it is [06:38:21] <^alex> notmuch has json out [06:39:09] huh [06:39:44] <^alex> https://hastebin.com/raw/voqemaxuki [06:39:48] ^alex: What did you use for slicing though the JSON? (I'm not familiar with said tools in Factor) [06:40:09] <^alex> NB that was the old json library, i think the 0.98 has a nicer api [06:40:18] <^alex> just got it as a hash table and walked it [06:40:53] Is of current? [06:40:58] *`of` [06:41:19] <^alex> yeah, `of` is from the associative mapping protocol [06:41:34] <^alex> just the json stuff has changed [06:42:05] * yumaikas was thinking about at [06:42:09] `at` [06:42:33] Looks like they are swapped pairs of each other [06:43:29] (which is good to know about) [06:43:32] * discrttm is now known as NB0X-QRT [06:44:07] Is ! from forth? [06:44:24] derp [06:44:30] It's comments, I just forgot [06:49:25] ^alex: That looks pretty slick overall. The line and space splitting would have been mildly annoying with jq [06:49:49] Is does utf8 shell out? [06:52:55] s/Is// [07:19:01] <^alex> "with-process-reader" does [07:20:01] Ah [07:20:20] <^alex> or -stream [07:20:26] Yeah [07:20:44] So, I was browsing down slava's twitter, and found this: https://twitter.com/betsythemuffin/status/1015672996730679297 [07:20:56] <^alex> anyway, should probably let this meat sack rest [07:21:07] Night ^alex [07:47:45] * raingloom [raingloom!~raingloom@C2267141.catv.pool.telekom.hu] has joined the channel. [08:05:55] * raingloom [raingloom!~raingloom@C2267141.catv.pool.telekom.hu] has quit (Quit: WeeChat 2.2). [09:02:18] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has quit (Quit: Poof). [09:02:39] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [09:17:02] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has quit (Quit: Poof). [09:19:35] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [10:52:20] * werkin [werkin!~erkin@unaffiliated/erkin] has joined the channel. [11:02:35] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has quit (Quit: Poof). [11:02:55] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [11:40:28] * raingloom [raingloom!~raingloom@C2267141.catv.pool.telekom.hu] has joined the channel. [12:48:59] * maaku_ [maaku_!~maaku@173.234.25.100] has joined the channel. [12:50:46] * maaku [maaku!~maaku@173.234.25.100] has quit (Remote host closed the connection). [12:50:47] * abeaumont [abeaumont!~abeaumont@163.172.180.248] has quit (Ping timeout: 244 seconds). [12:51:01] * shachaf [shachaf!~shachaf@unaffiliated/shachaf] has quit (Ping timeout: 244 seconds). [13:50:48] * werkin [werkin!~erkin@unaffiliated/erkin] has quit (Quit: Leaving). [13:53:07] * dcRon [dcRon!~DcRon@c-24-125-0-177.hsd1.ga.comcast.net] has joined the channel. [14:01:52] * abeaumont [abeaumont!~abeaumont@163.172.180.248] has joined the channel. [14:29:12] * delvinj [delvinj!~Miranda@c-73-164-9-150.hsd1.mn.comcast.net] has joined the channel. [15:02:59] I've been programming Factor for about a week now and want to tackle a website. Is furnace the right web framework to use? if so, are there any examples you would recommend? [15:03:57] dcRon: furnace is the web framework, it's not bad but it's a little dated. xhtml templates [15:04:09] dcRon: what do you want the site to do? [15:04:57] just something simple. I'm going to hook up a simple database and send some JSON and HTML up to the client. Client will do most of the work but I figure Factor could do the backend. [15:05:32] dcRon: it should work for that. there's extra/webapps/* which is the webapp code, and basis/furnace/* which is the framework [15:06:03] maybe the extra/webapps/blogs is good? [15:06:07] erg: thanks - I didn't know about extra/webapps/* I'll poke around in there [15:06:29] another good tip - thanks! [15:06:38] you have to make responders and a database onto your responder [15:09:53] erg: ok. I'll give that a shot. [15:13:26] erg: The blog example looks like a good starting point - its pretty short which is nice. Thanks again! [15:13:46] dcRon: np. i'll try to remember to be around the channel :p have fun [15:56:01] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has quit (Quit: Poof). [15:56:20] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [16:18:56] * erkin [erkin!~erkin@unaffiliated/erkin] has joined the channel. [16:37:12] * NB0X-QRT [NB0X-QRT!~discrttm@unaffiliated/discrttm] has quit (Quit: My MacBook has gone to sleep. ZZZzzz…). [17:14:54] * yumaikas wonders what it would take to write a new templating engine, or something like the factor version of hiccup [17:29:40] * NB0X [NB0X!~discrttm@unaffiliated/discrttm] has joined the channel. [17:37:53] yumaikas: we have ``interpolate`` which does most of it. i think you could just relax the xhtml requirements, it might be pretty doable [17:39:07] erg: what I'm thinking of would be more like a set of function calls rather than a templating engine as such [17:44:34] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has quit (Quit: Poof). [17:44:50] * pierpal [pierpal!~pierpal@host84-235-dynamic.181-80-r.retail.telecomitalia.it] has joined the channel. [18:01:37] * NB0X is now known as NB0X-QRT [18:01:43] * NB0X-QRT is now known as NB0X [18:15:33] * shachaf [shachaf!~shachaf@unaffiliated/shachaf] has joined the channel. [18:30:31] * lfish [lfish!aa3321b6@gateway/web/freenode/ip.170.51.33.182] has joined the channel. [18:37:27] * lfish [lfish!aa3321b6@gateway/web/freenode/ip.170.51.33.182] has quit (Ping timeout: 252 seconds). [21:03:27] * niklasl [niklasl!~niklasl@c83-253-23-120.bredband.comhem.se] has quit (Ping timeout: 240 seconds). [21:04:38] * niklasl [niklasl!~niklasl@c83-253-23-120.bredband.comhem.se] has joined the channel. [22:35:02] * erkin [erkin!~erkin@unaffiliated/erkin] has quit (Quit: Ouch! Got SIGIRL, dying...). [22:41:27] dcRon: I have a small furnace example here https://bluishcoder.co.nz/2008/10/11/factor-web-framework-example.html [22:41:32] I don't think it's too out of date [22:59:41] doublec: i think Factor's Furnace is still the hottest Furnace in web development [23:33:10] * delvinj [delvinj!~Miranda@c-73-164-9-150.hsd1.mn.comcast.net] has quit (Read error: Connection reset by peer). [23:52:47] * nonlinear [nonlinear!~nonlinear@unaffiliated/discrttm] has joined the channel.