markus.pfeiffer
2019-7-30 10:22:55

that sounds like a clean solution. lets try that!


mathew.vijay
2019-7-30 10:53:48

@mathew.vijay has joined the channel


soegaard2
2019-7-30 12:16:14

Is it possible to make spotlight preview rkt files? It would be convenient to see the contents of the file.


soegaard2
2019-7-30 12:17:14

Spotlight -> QuickLook


plragde
2019-7-30 12:25:44

This works for me on both my Mac laptops, but I remember having to wrestle with QuickLook to get it to treat text files with arbitrary extensions in a sensible fashion. However, I don’t remember what I did. That at least tells you it’s possible! Sorry to not be more helpful.


soegaard2
2019-7-30 12:26:42

Thanks. So far I have figured out it has something to do with Info.plist


sorawee
2019-7-30 12:27:12

sorawee
2019-7-30 12:27:46

Seems like an easy adaptation of either QLStephen or QLMarkdown


plragde
2019-7-30 12:31:04

Ah, QLMarkdown sounds familiar. And there’s a .qlgenerator for it in my ~/Library/QuickLook folder.


soegaard2
2019-7-30 12:32:21

I must have played with QuickLook previously - I have a SQStephen in that folder.


soegaard2
2019-7-30 12:33:24

It would be better if could find a way to make this work automatically (when installing Racket).


soegaard2
2019-7-30 12:40:59

It seems iBooksAuthor is in the way (?!) mbp:Contents soegaard$ qlmanage -d1 -p ~/Downloads/test.rkt Testing Quick Look preview with files: /Users/soegaard/Downloads/test.rkt [DEBUG] file:///Applications/iBooks%20Author.app/Contents/Library/QuickLook/iBooksAuthor.qlgenerator/ might shadow a plug-in with the same identifier and version (<QLGenerator /Library/QuickLook/iBooksAuthor.qlgenerator>) [DEBUG] Preview test for file:///Users/soegaard/Downloads/test.rkt. Content type UTI: org.racket-lang.source ...


soegaard2
2019-7-30 13:02:04

The preview now works. I had a drawing application Krita that somehow interfered. Deleting it makes QuickLook use the previously installed QLStephen.


spdegabrielle
2019-7-30 13:14:04

What does it use to interpret the racket code?


soegaard2
2019-7-30 13:14:33

It just show the plain text.


soegaard2
2019-7-30 13:21:59

Btw - today is an easter egg day (restart DrRacket to see it).


markus.pfeiffer
2019-7-30 13:25:41

huh


markus.pfeiffer
2019-7-30 13:26:11

for today 2019-07-30?


spdegabrielle
2019-7-30 13:27:00

I’m six miles from my laptop:sob:


jerome.martin.dev
2019-7-30 13:28:43

Wow, that splash animation is gorgeous :laughing:


spdegabrielle
2019-7-30 13:29:01

If you don’t want to restart I think you can (require drracket/drracket) from the DrRacket interactions


markus.pfeiffer
2019-7-30 13:31:26

doesn’t get a special splash Oo


spdegabrielle
2019-7-30 13:31:35

I’m jealous


soegaard2
2019-7-30 13:32:52

@markus.pfeiffer FWIW I am using DrRacket 7.3 (but maybe it is a time zone thing?)


jerome.martin.dev
2019-7-30 13:33:03

mark.warren
2019-7-30 13:34:55

I just get the usual splash. (7.3)


soegaard2
2019-7-30 13:35:22

Fear not - I remember there is a way to test the easter egs.



spdegabrielle
2019-7-30 13:42:58

@jerome.martin.dev @soegaard2 nice I launched via https://www.rollapp.com/app/drracket (I’m surprised it worked!) Now I’m not sure what I was looking at…


gknauth
2019-7-30 17:31:29

Happy to say I’ve been been able to process an 80MB JSON file full of weather data in 12 seconds using Racket.


gknauth
2019-7-30 19:49:08

If anyone was wondering what I was doing with that 80MB file (actually there are many GB of them per day), it is analyzing them to see which of the 8000+ things could be in them that actually are in them, so we can build database tables to store the values we need.


notjack
2019-7-30 19:54:10

@gknauth how many times do you read in a single file? like, once to process metadata, once to extract data into table A, once to extract into table B, etc.? Or do you do everything in one pass?


gknauth
2019-7-30 19:58:41

@notjack One pass. (My mentor Ken Anderson at BBN, d. 2005 R.I.P., drilled “one-pass” into me back in the day, actually he phrased it as “never read a character more than once.“) Usually I read a BUFR file (which is binary and compressed, highly structured, heavily dependent on lookup tables, Fortran data…) but in this case I decided to read the JSON expansion of it (which is many many times bigger), just because I was curious how fast the JSON parser was, and the answer was, plenty fast enough for my needs.


notjack
2019-7-30 19:59:57

Ah so this is indeed BUFR data :) I remember that talk you gave about it at one of the racketcons


gknauth
2019-7-30 20:01:00

Yeah, WMO has mandated countries issue observations in BUFR format, so BUFR is making a comeback, and so is my pet project. I’m rewriting everything, hoping to get it to WMO / ECMWF at some point.


spdegabrielle
2019-7-30 20:01:05

‘Summer standard fish competition 2019’

Make a picture with @racketlang racket & win stickers. Details at: https://github.com/standard-fish/summer-competititon-2019/blob/master/README.md


notjack
2019-7-30 20:02:48

The transducers I’m working on are intended to make it easier to write single-pass stream transformations. If you’ve got examples of things that are currently hard for you to write in a single-pass way, I’d be very interested in hearing about them.


gknauth
2019-7-30 20:08:16

That’s interesting. We do lots of things with streams of data, reading in TBs of data from around the world every day. In production, it’s mostly in Scala, but I will definitely keep an eye on your transducers, maybe they are better than our existing workflows. The main requirement for most of what we do is we have to be able to re-run things if something goes wrong.


notjack
2019-7-30 20:10:01

like, retry some IO operation if it fails due to transient stuff? or rerun a stream pipeline starting from the point where things went wrong instead of restarting the whole stream?


gknauth
2019-7-30 20:18:20

As in, the NOC calls me at 1AM. Some count is off. I investigate, I find some country sent some bad data. If that country is 12 hours ahead of us, we call them and say “why did you do that?” they say “We’re sorry, we re-send”, we get corrected data, reprocess, NOC is happy, counts match, we go back to sleep. If country that sent something bad is sleeping (as I was), maybe we have a few hours of coping to do until they wake up, then we are groggy the next day. It’s a bit like a chaotic system, a little perturbation can cause ripple effects, so we try to smooth those out ASAP, and in the best case, we want our processing logic to smooth things out automatically. Having bad data is a bit like having a newborn and trying to work toward being able to sleep through the night. Or bad data is like living in a bad neighborhood where fistfights and gunshots erupt as soon as the bars close. Maybe what we do is keep the bars open to keep the bad dudes/data where we know where they are. Bars or no bars, we need to get the bad dudes/data to sober up before re-entering the traffic flow.


notjack
2019-7-30 20:19:24

That is fascinating


gknauth
2019-7-30 20:23:00

Actually, when the NOC calls me at 1AM, it usually ends up being a [Slack] discussion involving the NOC, my boss, some of my coworkers, maybe some people in another country, all trying to figure out what caused the hiccup in the stream and how to get it fixed so we can all go back to bed. For some reason I just had this image of the engine room of Star Trek’s Enterprise and the energy flow and the containment field and how much people sweat when there’s been an interruption or breach. Luckily we aren’t dealing with matter/antimatter.


notjack
2019-7-30 20:24:01

“I’m givin’ it all the data validation she’s got captain!”


notjack
2019-7-30 20:31:43

How do they usually send the data? BUFR files over http or something?


samdphillips
2019-7-30 20:32:32

I worked briefly in the NOC for a payment processor, it’s sounds similar except with money involved you escalate the problems immediately.


notjack
2019-7-30 20:33:08

also, what does NOC stand for


samdphillips
2019-7-30 20:33:38

Network Operations Center


notjack
2019-7-30 20:33:42

ahh


samdphillips
2019-7-30 20:34:35

They’re the people up all night who take the call from the support people, and either fix the simple problems or escalate to a higher level on call engineer.


samdphillips
2019-7-30 20:34:42

In most companies.


tim816
2019-7-30 23:25:00

@tim816 has joined the channel


jab
2019-7-30 23:37:50

In DrRacket, I can type (<first-few-letters-of-a-word>Cmd-/ to get a menu of matching completions. Once I choose a completion, when that completion is a procedure in function position, DrRacket should show a tooltip with a summary of the docs for that procedure, including the parameters it takes, like other IDEs do, but DrRacket doesn’t do this. I searched the Active Keybindings window for some shortcut I could bind to manually request a docs summary tooltip, but I didn’t find one. Am I missing something?


markus.pfeiffer
2019-7-30 23:42:15

did you ever notice the little round thing in the top right corner of drracket?


markus.pfeiffer
2019-7-30 23:43:03

I believe it shows exctly what you want


markus.pfeiffer
2019-7-30 23:44:27

F2 locks it open


markus.pfeiffer
2019-7-30 23:45:04

F1 also opens the help page; admittedly that opens the browser


jab
2019-7-30 23:56:39

Thanks @markus.pfeiffer, great to know about this! Bit of an unusual design compared to other IDEs, but I’ll take it.