2022-10-03 11:41:00 does anyone know Daniel of etherforth? 2022-10-03 13:09:31 I'm playing with a trial license for a program called PixInsight this afternoon. 2022-10-03 13:09:40 It's used for stacking astrophotography frames. 2022-10-03 13:09:50 a stack, you say 2022-10-03 13:09:56 Looks like quite a learning curve, but it also looks very powerful. 2022-10-03 13:10:03 :-) Yes - different usage of the word. 2022-10-03 13:10:19 Stacking is combining a large number of similar frames. 2022-10-03 13:10:28 The "signal" adds up, but the "noise" averages down. 2022-10-03 13:10:35 Raises the signal to noise ratio. 2022-10-03 13:10:39 sounds like a stellar plan 2022-10-03 13:11:01 There are several steps involved, each designed to compensate for some particular imperfection in camera sensors. 2022-10-03 13:11:42 All the individual pixel sensors are a little different, and you make special frames called darks, flats, and biases that you use to equalize all that. 2022-10-03 13:12:05 Then the "lights" are your actual sky shots. 2022-10-03 13:12:12 Each type gets stacked. 2022-10-03 13:12:40 Supposedly they have a batch script that will just "auto-do" all this, but I'm working through it by hand just to get familiar with the flow. 2022-10-03 13:13:23 I'm using files I downloaded from a YouTube guy's website, just so I know I've got usable data to begin with. 2022-10-03 13:13:39 Orion nebula. 2022-10-03 13:14:34 If you really push this method, you can take astrophotos without fancy sky tracking gear - you just stack up hundreds or thousands of short exposures. Each one short enough that Earth's rotation doesn't make the stars trail. 2022-10-03 13:15:04 I've got a little gadget for my tripod, though, that will rotate the camera, and it has a 15 degree per hour setting. 2022-10-03 13:15:13 That's "almost' right - that would give a full rotation in 24 hours. 2022-10-03 13:15:38 But what you really want is a full rotation every 23 hours 56 minutes, which is how long it takes Earth to rotate with respect to the *stars*. 2022-10-03 13:15:49 The extra four minutes in our day comes from our orbit around the sun. 2022-10-03 13:16:18 But that's 99.7% right, so I think I can use it to increase my exposure times by a fairly good factor. I'll have to test to see. 2022-10-03 13:16:47 I'll be pretty happy if I can get to 30-second or 1 minute exposures. 2022-10-03 13:17:26 in theory if I aimed the thing perfectly at the north pole (which I won't, of course), it would buy me a factor of 360. 2022-10-03 13:17:55 So that would be order of six minute exposures. I'm sure inaccurate aiming will steal some of that away, but I may make it to minute-ish. 2022-10-03 13:18:48 That "close enough" rotation will also make all of the frames really similar - I won't have to re-aim the camera every couple dozen short frames. 2022-10-03 13:19:23 I'm going to mount a little "red dot" polar finder on the side of the rotation gadget to use to aim it. 2022-10-03 13:20:13 And I bought a little $10 gadget called an "intervalometer" for my camera - you can program it with an interval, an exposure time, and a picture count and it will just run the camera through that sequence. 2022-10-03 13:20:50 So hopefully I'll be able to just aim the thing, frame the target, and hit "go" on the intervalometer and have it grap a couple hundred shots. 2022-10-03 14:33:11 KipIngram; yeah, PI is my goto for processing data. 2022-10-03 14:33:47 It takes a little bit of time to grok the basics, but you'll find yourself going back to the same tools time and again for your pipeline. 2022-10-03 17:10:00 Yeah, I'm pretty impressed. A little pricey, but given all it seems capable of doing it feels worth it. 2022-10-03 17:21:50 I'm now trying the automated script - that's really quite low labor. Just load the files and hit "go." 2022-10-03 18:21:08 remexre: My idea for typesetting was to generate either GNU troff's intermediate language or PDF 2022-10-03 18:21:16 Do it with as much FORTH as possible 2022-10-03 18:21:40 I can give more instruction if you want or explain myself more if there are specific questions 2022-10-03 18:23:52 Looking into esperanto atm what am I doing with my life 2022-10-03 18:24:37 why is the ATM set to use esperanto? 2022-10-03 18:24:40 It's the metric system of languages but I have this sick curiosity and the promise of it making it easier to understand Spanish 2022-10-03 18:25:00 thrig: I would have said ATM machine if I meant ATM, don't worry ;) 2022-10-03 18:25:34 It's the little touches I know you all have come to love from me 2022-10-03 18:31:00 veltas: ah, okay; I was gonna roll my own forthy-troff -> DVI-ish -> PDF pipeline, since I don't particularly want to be tied to a c-compatible foundation 2022-10-03 18:31:58 isn't postscript a stack language 2022-10-03 18:32:29 Go straight to PDF in Forth and don't use "C-compatible" stuff? 2022-10-03 18:32:36 yeah 2022-10-03 18:33:10 I seem to remember there is a PDF generation library written in Python that's relatively light, you should look that up because it's probably easier to read than the PDF spec 2022-10-03 18:33:16 v1 would probably just be to something like TeX's DVI, because I'd like to do my thesis in this :) 2022-10-03 18:33:16 But get the PDF spec as well of course 2022-10-03 18:33:29 oh, yeah, I spent a while looking for a free copy of the pdf 2.0 spec, to little avail 2022-10-03 18:33:33 Okay your project, your decision 2022-10-03 18:33:34 adobe republishes 1.7 tho 2022-10-03 18:34:12 hah, yeah, to my surprise, my advisor is totally down with the idea of me implementing my own typesetter, and his only suspicion is "isn't forth memory-unsafe" 2022-10-03 18:34:15 PDF is essentially the modern day "printer language" "document transmitting language" and a few other things that are less relevant 2022-10-03 18:34:36 He probably wants you to use Rust lol 2022-10-03 18:35:04 I actually really like Rust by the looks of it, I'll never be interested in writing a nice type-safe language because it already pretty much does what I would do 2022-10-03 18:35:25 Not that I've used it, but based on looking at it seems like they made a lot of good choices 2022-10-03 18:35:47 I know that might be very surprising to people who know how cynical I am, but it is what it is.... 2022-10-03 18:36:02 I'm actually teaching him Rust this term, heh 2022-10-03 18:36:23 Maybe you can pass me your notes some time lol 2022-10-03 18:36:42 C -> 4 second compile time; Rust -> 4 minute compile time and worse security 2022-10-03 18:37:00 Or replace Rust with Forth there 2022-10-03 18:37:08 I've been professionally writing it for a few years; we're mostly going thru the book ( https://doc.rust-lang.org/book/ ) with some extra discussion of PL-researcher-relevant topics 2022-10-03 18:37:15 e.g. strict provenance 2022-10-03 18:37:28 I suppose I could try to write a gemini server in forth 2022-10-03 18:37:37 remexre: Okay never mind then 2022-10-03 18:38:03 What are you doing professionally with Rust? 2022-10-03 18:38:43 I personally think it's ready to replace C++ wherever it's used. And hopefully it getting into Linux kernel will catapult it into embedded which needs a shakeup 2022-10-03 18:38:45 "anything that needs to be in an unsafe language that doesn't have to be in C++ to link to important libraries" 2022-10-03 18:39:18 And Linus' extreme hate should hopefully galvanise the community a bit against some of the creeping utopianism that C++ contracted 2022-10-03 18:39:37 mostly stuff involving binary-level instrumentation and analysis, but that's b/c of the sort of work I do in general 2022-10-03 18:40:31 "binary-level" what sort of binary? 2022-10-03 18:40:42 usually amd64, tragically 2022-10-03 18:40:50 I am confused, because from my perspective everything is binary lol 2022-10-03 18:40:53 we might be doing something with ARM Morello sometime next year, which should be fun 2022-10-03 18:41:03 ah, binary analysis as opposed to analysis of source code 2022-10-03 18:41:21 Okay what sort of instrumentation and analysis? Like performance stuff for running programs? 2022-10-03 18:41:56 mostly security-relevant stuff; "what control-/data-flow is happening in response to what" 2022-10-03 18:43:26 Is this for profit? 2022-10-03 18:43:48 yyyyyyyyeea this is a question that gets a more specific answer lol 2022-10-03 18:44:32 I work for a private research lab, so it's usually publically funded projects, but my employer is a private company with private ownership (we're an ESOP, actually) 2022-10-03 18:45:16 I did some aviation work and one of the things needed for CERT-ified software is some way to demonstrate that the binary you get actually matches the source you reviewed 2022-10-03 18:45:24 i installed rust long enough to compile one project I was interested in and it was 600mb. i think it would be 200k or less in C. is that normal in Rust and is there a different way to compile to avoid that? 2022-10-03 18:45:54 yeah, research lab == our code can be utter crap, the deliverable in the contract is a paper describing our discoveries :) 2022-10-03 18:46:15 Guess what aviation code is utter crap 2022-10-03 18:46:16 but better approaches for certifying programs is exactly the sorta work I do 2022-10-03 18:46:47 Just giving you an idea, not sure if it's worth anything to you, you probably have your own ideas already.... 2022-10-03 18:47:18 Probably a hard market to break into 2022-10-03 18:47:24 MrMobius: depends heavily on what it's linking to; it's way easier to depend on stuff in Rust than in C, so most projects have way more dependencies (and statically link to them); the standard library is also getting statically linked, so that's probably a decent chunk of it 2022-10-03 18:48:01 so enormous file sizes but nothing to worry about once you have the program? 2022-10-03 18:48:09 supply chain attacks would be one reason why a 4 minute rust compile is less secure than a 4 second C compile 2022-10-03 18:48:54 yeah, ^^ is a real thing; "don't depend on random crap without looking over it" remains necessary for secure software development no matter what environment you're in 2022-10-03 18:49:01 MrMobius: Given that they're integrating it into the Linux kernel, any embedded concerns (as this is) are probably solvable 2022-10-03 18:49:30 (the other reason being the C code has a nice pledge and unveil policy, and the only pledge in the rust code is for a code of conduct) 2022-10-03 18:49:32 yeah, I would also suggest double-checking that you compiled it with optimizations; cargo build --release for that, vs cargo build with no --release for the default build (faster, debuginfo) 2022-10-03 18:49:49 I doubt debuginfo weighs 600MB 2022-10-03 18:49:55 somehow 2022-10-03 18:50:12 yeah, no opts + debuginfo + static linking + lots of dependencies feel like they _could_, in sum, plausibly be the cause 2022-10-03 18:50:33 but without seeing it, can't say for sure 2022-10-03 18:50:37 I feel like the last in that list is the single factor of consideration 2022-10-03 18:50:55 Well actually static linking as well 2022-10-03 18:51:04 Both of those combined 2022-10-03 18:51:22 oh, having monomorphized generics (i.e. like C++ templates instead of like Java/Haskell/etc generics) also doesn't help 2022-10-03 18:51:38 Fanfuckingtastic my dudes 2022-10-03 18:51:49 though that you can do either way (which you can in C++ too, but it's a bigger refactor than in Rust; not my favorite thing to do either way) 2022-10-03 18:52:03 Is it 'supported' though? 2022-10-03 18:52:15 And by that I mean can it exist in industry 2022-10-03 18:52:19 doing non-monomorphized generics? Yeah, that's trait objects 2022-10-03 18:52:24 Okay nice 2022-10-03 18:52:52 they're a core feature of the language, but it's not like a --dont-monomorphize flag, it's a refactor to the code that may be annoying, depending on the code in question 2022-10-03 18:53:21 I suppose the C analog would be writing your data structures against void* vs using the BSD list macros 2022-10-03 18:53:33 the latter leading to better perf (usually) and a bigger binary 2022-10-03 18:53:34 At work once we had GCC building a small C project running to like 40GB of RAM usage 2022-10-03 18:53:49 yikes 2022-10-03 18:54:07 Because we had a (say it quietly) exponentially expanding macro that we started using with like 7 arguments instead of 5 2022-10-03 18:54:17 OOF 2022-10-03 18:54:29 Or 4 levels of nesting instead of 3, something that silly 2022-10-03 18:54:45 last I tried to build gforth gcc started taking more and more memory until I killed it 2022-10-03 18:55:01 I saw this and said to the project lead "okay this is really funny but no let's actually fix this now" and he agreed 2022-10-03 18:55:23 He had been putting it off before then, it was also making the build really slow 2022-10-03 18:57:48 I think it was actually my fault this even happened 2022-10-03 18:58:12 the 7 arguments or the exponential time? 2022-10-03 18:58:18 The exponential space usage 2022-10-03 18:58:35 It was also time usage but space seemed to diminish first 2022-10-03 18:58:44 ah, yeah 2022-10-03 18:59:24 seems like that's the tradeoff for most of my work stuff too -- we actually have less parallelism permitted for link jobs than for compile jobs because they can have a peak memory usage of nearly 5G for some of our programs... 2022-10-03 18:59:41 (I think this is largely LLVM's fault though, it's huge) 2022-10-03 19:00:43 oop, i've gotta go cook dinner; be back in 30min or so! 2022-10-03 19:02:47 I think I was doing something like #define ARR(...) .arr = (T[]){__VA_ARGS__}, .size = DIM((T[]){__VA_ARGS__}) 2022-10-03 19:02:56 With nesting of ARR 2022-10-03 19:03:28 Looking at it, I probably should have used null termination instead, could have put that in the macro too 2022-10-03 19:03:43 The whole point of the macro was that it was too easy to forget to put the null terminator in manually 2022-10-03 19:03:54 Funny how things are obvious in hindsight 2022-10-03 19:04:10 Insight to save 40GB of RAM 2022-10-03 19:09:46 remexre: Does it do whole program optimisation or something? 2022-10-03 19:10:24 I shot myself in the foot too with assembly macros. I had a system set up where you could call functions with macros and it would handle passing arguments on 6502 using a python script to do flow analysis and allocate zero page efficiently. turns out it expands the entire macro every time you use it so a program of 20kb or so generated a 28MB listing every time :/ 2022-10-03 19:12:56 for some reason memoization got invented 2022-10-03 19:14:56 Macros are never ideal 2022-10-03 19:37:13 veltas: we do LTO within our stuff but this is just for statically linking LLVM (without LTOing with it) 2022-10-03 19:53:09 Oh right linking LLVM