Sign in

KC Sivaramakrishnan

@kcsrk.info
1.3K followers 395 following 204 posts

Prof at IIT Madras, CTO of Tarides.com, Trustee at mmht.clinic kcsrk.info

PostsRepliesMedia
Reposted by KC Sivaramakrishnan
Programming for the Planet @propl.dev · 13/10/2025
That’s a wrap for PROPL25 at @icfp-conference.bsky.social! Here’s the tired but happy organising team @anil.recoil.org @dorchard.bsky.social @kcsrk.info with @neurocy.bsky.social celebrating! Stay tuned for a writeup and enjoy our proceedings in the meantime dl.acm.org/doi/proceedi...
0125
Reposted by KC Sivaramakrishnan
Anil Madhavapeddy @anil.recoil.org · 17/10/2025
@kcsrk.info torn between being lazy and strict
191
Reposted by KC Sivaramakrishnan
Anil Madhavapeddy @anil.recoil.org · 17/10/2025
Extremely cool work on a mechanically verified garbage collector for OCaml using F* by Sheera Samsu, @kcsrk.info and colleagues at the OCaml Workshop #icfpsplash25
0257
Reposted by KC Sivaramakrishnan
Anil Madhavapeddy @anil.recoil.org · 09/08/2025
Nice to see IIT Madras doing a reading group for Real World OCaml. If any feedback comes up, please do let @yminsky.bsky.social and me know, @kcsrk.info! github.com/prismlab/iit...
github.com
GitHub - prismlab/iitm_ocaml_reading_group: OCaml reading group at IIT Madras
OCaml reading group at IIT Madras. Contribute to prismlab/iitm_ocaml_reading_group development by creating an account on GitHub.
1162
Reposted by KC Sivaramakrishnan
Misja Baas @misjabaas.bsky.social · 02/08/2025
Dune, 1965
5570342275
Reposted by KC Sivaramakrishnan
Yaron Minsky @yminsky.bsky.social · 24/07/2025
I had a lot of fun giving this talk in Singapore about the many-years-long saga of multicore OCaml, and in particular, the work over the least 2.5 years of getting it ready for production work within Jane Street's walls. www.youtube.com/watch?v=XGGS...
youtube.com
The Saga of Multicore OCaml
YouTube video by Jane Street
0469
Reposted by KC Sivaramakrishnan
Anil Madhavapeddy @anil.recoil.org · 15/07/2025
Some fun OCaml GC projects here with @sadiq.toao.com and @kcsrk.info if any students are looking for projects involving programming languages toao.com/blog/ocaml-0...
toao.com
Last three months in OCaml (July 2025) - Sadiq Jaffer
1176
KC Sivaramakrishnan @kcsrk.info · 20/07/2025
Yay!
3141
Reposted by KC Sivaramakrishnan
Martin Kleppmann @martin.kleppmann.com · 27/06/2025
OCaml @ocaml.org is in The Economist!
4549
Reposted by KC Sivaramakrishnan
Max Slater @thenumb.at · 13/06/2025
We've been working on this for years 📈
0144
Reposted by KC Sivaramakrishnan
Yaron Minsky @yminsky.bsky.social · 13/06/2025
I'm pleased to announce OxCaml! OxCaml is Jane Street's branch of OCaml. We've given it a new name and a snazzy logo, and done a bunch of work to make it easy for people to try.
510840
Reposted by KC Sivaramakrishnan
Neeldhara Misra @neeldhara.bsky.social · 11/06/2025
Back from #Paradox2025 at IITM! I have always had this sense that their online BS program attracts a diverse audience and "democratizes access", and it was nice to see this feeling being quantified in the numbers that were presented in the opening ceremony of the convocation. 🧵
132
KC Sivaramakrishnan @kcsrk.info · 04/06/2025
A follow up post on linearity and uniqueness: kcsrk.info/ocaml/modes/....
kcsrk.info
Linearity and uniqueness · KC Sivaramakrishnan
193
KC Sivaramakrishnan @kcsrk.info · 30/05/2025
Using uniqueness mode for improving behavioural types: kcsrk.info/ocaml/modes/...
kcsrk.info
Uniqueness for Behavioural Types · KC Sivaramakrishnan
3156
Reposted by KC Sivaramakrishnan
OCaml @ocaml.org · 18/05/2025
#OCaml #OCamlPlanet
dlvr.it
Oh my Claude, we need agentic copilot sandboxing right now
Yaron Minsky nerdsniped me last week into getting OCaml to drive the 80s-retro RGB Matrix displays. I grabbed one from the local Pi Store and soldered it together with help from Michael Dales. But instead of writing OCaml bindings by hand, we thought we'd try out the latest agentic CLI called Claude Code released last week to see if we could entirely autogenerate the bindings. TL;DR: Claude Coder generated working OCaml code almost from scratch, ranging from C bindings to high-level OCaml interface files and even Cmdliner terms, but needs a more sophisticated sandboxing model before something goes horribly wrong. So much potential and so much danger awaits us. Coincidentally Cyrus Omar and Patrick Ferris and I wrote about this a few months ago. Read on... Wiring up the display to my Raspberry Pi The RGB Matrix display has a very nice C++ rpi-rgb-led-matrix library, so I fired up my Raspberry Pi 4 to get an OCaml development environment going by using that. The included demo immediately gave me a disappointingly noisy display, but my larger-than-usual 64x64 display turned out to just need a jumper soldered. Deploying my local friendly agentic soldering machine otherwise known as Michael Dales As soon that was soldered, the examples worked great out of the box, so I could get on with some agentic OCaml coding. Thanks Michael Dales and CamMakespace! Building OCaml bindings using Claude Coder Yaron Minsky and I first played around with using ocaml-ctypes to build the bindings by hand, but quickly switched over to trying out Claude Sonnet 3.7, first in VSCode and then directly on the Pi CLI via Claude Code. The latter fires up an interactive session where you not only input prompts, but it can also run shell commands including builds. The very first hurdle was sorting out the build rules. This is the one place where Claude failed badly; it couldn't figure out dune files at all, nor the intricate linking flags required to find and link to the C++ library. I made those changes quickly by hand, leaving just a stub librgbmatrix_stubs.c that linked successfully with the main C++ library, but didn't do much beyond that. I also added a near-empty rgb_matrix.ml and rgb_matrix.mli interface files to have a place for the OCaml side of the interface. The Claude Code CLI runs fine on the Raspberry Pi 4, since most of the heavy computation is done on their end. After that, it was just a matter of "asking the Claude Code CLI" via a series of prompts to get it to fill in the code blanks I'd left. The VSCode Copilot editing mode has to be told which files to look at within the project for its context, but I didn't have to do that with the Claude Code CLI. Instead, I just prompted it to generate C stubs from the led-matrix-c.h C interface (so it didn't get distracted attempting to bind C++ to OCaml, which isn't a winning proposition). It duly generated reasonable low-level bindings, along with the right OCaml interface files by suggesting edits to the files I'd created earlier. At this point, I got a very basic "hello world" circle going (with the test binary also built by Claude). The OCaml bindings and concentric circles were all auto-generated by Claude Sonnet 3.7 Although the binding generation built fine, they did segfault when I first ran the test binary! Claude 3.7 bound some C/OCaml functions with more than 5 arguments, which are a special case in OCaml due to differing bytecode and native code ABIs. Although Claude almost got it right, it subtly mixed up the order of the external binding on the OCaml side. The correct version is: external set_pixels_native : t -> int -> int -> int -> int -> Color.t array -> unit = "caml_led_canvas_set_pixels_bytecode" "caml_led_canvas_set_pixels" The bytecode C stub comes first, and the native code second, but Claude swapped them which lead to memory corruption. This mixup would ordinarily be rather hard to spot, but the valgrind backtrace lead me to the problem very quickly (but only because I'm very familiar with the OCaml FFI!). I couldn't convince Claude to fix this with prompting as it kept making the same mistake, so I swapped the arguments manually and committed the results by hand. Generating higher level OCaml interfaces and docstrings Once the basics were in place, I then asked it to then refine the OCaml interface to be higher-level; for example instead of a string for the hardware mode, could it scan the C header file, find the appropriate #defines, and generate corresponding OCaml variant types? Incredibly, it not only did this, but also generated appropriate OCamldoc annotations for those types from the C header files. These OCamldoc entries are generated automatically from the C header files The Claude Code CLI then helpfully summarises all the changes, and also offers execute dune to check the result works! This is starting to get a bit mad... Claude offers to do the dune build after making code changes It can also navigate the output of commands to see if the desired outcome is successful The patches to the interface and implementation added in more abstract types as requested The OCaml interfaces generated here required a little iteration to get right, with some manual tweaks. Claude, for some reason, generated duplicate entries for some type definitions, which OCaml doesn't permit. I fixed those manually very quickly, and then asked Claude Code to commit the changes to git for me. It generated a good summary commit message. The interfaces were all documented with docs from the C header file, such as: type multiplexing = | DirectMultiplexing (* 0: Direct multiplexing *) | Stripe (* 1: Stripe multiplexing *) | Checker (* 2: Checker multiplexing (typical for 1:8) *) | Spiral (* 3: Spiral multiplexing *) | ZStripe (* 4: Z-Stripe multiplexing *) | ZnMirrorZStripe (* 5: ZnMirrorZStripe multiplexing *) | Coreman (* 6: Coreman multiplexing *) | Kaler2Scan (* 7: Kaler2Scan multiplexing *) | ZStripeUneven (* 8: ZStripeUneven multiplexing *) | P10MapperZ (* 9: P10MapperZ multiplexing *) | QiangLiQ8 (* 10: QiangLiQ8 multiplexing *) | InversedZStripe (* 11: InversedZStripe multiplexing *) | P10Outdoor1R1G1_1 (* 12: P10Outdoor1R1G1_1 multiplexing *) | P10Outdoor1R1G1_2 (* 13: P10Outdoor1R1G1_2 multiplexing *) (* ...etc *) | Custom of int (* Custom multiplexing as an integer *) Pretty good! After that, I couldn't resist pushing it a bit further. I asked the CLI to generate me a good command-line interface using Cmdliner, which is normally a fairly intricate process that involves remembering the Term/Arg DSL. But Claude aced this; it generated a huge series of CLI converter functions like this: (* scan_mode conversion *) let scan_mode_conv = let parse s = match String.lowercase_ascii s with | "progressive" -> Ok Progressive | "interlaced" -> Ok Interlaced | _ -> Error (`Msg "scan_mode must be 'progressive' or 'interlaced'") in let print fmt m = Format.fprintf fmt "%s" (match m with | Progressive -> "progressive" | Interlaced -> "interlaced") in Arg.conv (parse, print) These are not entirely what I'd write, as Cmdliner.Arg.enum would suffice, but they're fine as-is and could be refactored later. I even got it to complete the job and generate a combined options parsing function for the (dozens) of command-line arguments, which would have been very tedious to do by hand: (* Apply options from command line to Options.t *) let apply_options options ~rows ~cols ~chain_length ~parallel ~hardware_mapping ~brightness ~pwm_bits ~pwm_lsb_nanoseconds ~pwm_dither_bits ~scan_mode ~row_address_type ~multiplexing ~disable_hardware_pulsing ~show_refresh_rate ~inverse_colors ~led_rgb_sequence ~pixel_mapper_config ~panel_type ~limit_refresh_rate_hz ~disable_busy_waiting = Options.set_rows options rows; Options.set_cols options cols; Options.set_chain_length options chain_length; Options.set_parallel options parallel; Options.set_hardware_mapping options hardware_mapping; Options.set_brightness options brightness; Options.set_pwm_bits options pwm_bits; Options.set_pwm_dither_bits options pwm_dither_bits; Options.set_scan_mode options scan_mode; Options.set_pixel_mapper_config options pixel_mapper_config; Options.set_panel_type options panel_type; Options.set_limit_refresh_rate_hz options limit_refresh_rate_hz; Options.set_disable_busy_waiting options disable_busy_waiting; (* ...etc *) options Once this compiled, I asked for a rotating 3D cube demo, and it duly used the bindings to give me a full command-line enabled generator which you can see below. I just ran: rotating_block_generator.exe --disable-hardware-pulsing -c 64 -r 64 --hardware-mapping=adafruit-hat --gpio-slowdown=2 and I had a spinning cube on my display! The code model had no problem with the matrix transformations required to render the cool spinning effect. Of course, I had to pay the piper for the truckload of GPUs that drove this code model. At one point, the Claude Code agent got into a loop that I had to manually interrupt as it kept oscillating on a code fix without ever finding the right solution. This turned out to have sucked up quite a lot of money from my Claude API account! This post cost me a cup of coffee and a boatload of energy Overall, I'm impressed. There's clearly some RL or SFT required to teach the code model the specifics of OCaml and its tooling, but the basics are already incredible. Sadiq Jaffer, Jon Ludlam and I are having a go at this in the coming months. Claude Code is powerful, but it can do...anything...to your machine The obvious downside of this whirlwind binding exercise is that while the NPM-based Claude Code asks nicely before it runs shell commands, it doesn't have to ask. I happened to run it inside a well-sandboxed Docker container on my rPi, but most people probably won't. And in general, we need a more sophisticated security model; running the agent within a coarse sandbox that limits access to the file system, the network, and other sensitive resources is too restrictive, as we want to provide access to these resources for certain agentic tasks! So in a happy coincidence, this leads to a line of research that Cyrus Omar and Patrick Ferris started last year with something we presented at HOPE 2024. We explored how to express more precise constraints on what an AI can do by the use of the scary-sounding Dijkstra monad. It's far easier to understand by perusing the slides of the talk, or watch Cyrus Omar's great video presentation. We're mainly concerned with situations where the AI models are running over sensitive codebases or datasets. Consider three scenarios we want to handle, which are very logical extensions from the above agentic coding one: * Modify or ignore sensor data to minimize the extent of habitat loss in a biodiversity monitoring setup. But we may want to be able to delete duplicate sensor data in some phases of the analysis. * Leak location sightings of vulnerable species to poachers. But we still want to be able to work with this data to design effective interventions — we want a sandbox that limits information flows, in a statistical sense (differential privacy). * Enact an intervention that may not satisfy legal constraints. We want a sandbox that requires that a sound causal argument has been formulated For each of these, we could use a capability security model where access to sensitive data and effects can occur only via unforgeable capabilities granted explicitly. And the generation of that specification could also be done via code LLMs, but needs to target a verification friendly language like Fstar. The prototype Patrick Ferris built looks like this: module type CapDataAccess (readonly : list dir, writable : list dir) (* abstract monad *) type Cmd a val return : a -> Cmd a val bind : Cmd a -> ( a -> Cmd b ) -> Cmd b (* only allows access to given directories *) val readfile : path -> Cmd string (* only allows writes to writable dirs *) val writefile : path -> string -> Cmd () And then you can use this rich specification to add constraints, for example see this JSON parsing example from the Fstar prototype: (* Following IUCN's Globally Endangered (GE) scoring *) let datamap = [ "iberian-lynx.geojson", O [ "rarity", Int 2 ]; "bornean-elephant.geojson", O [ "rarity", Int 3 ] ] (* We add some additional predicates on the files allowed to be used *) @|-1,9 +1,10 ========================================== | (ensures (fun _ -> True)) | (requires (fun _ _ local_trace -> | dont_delete_any_file local_trace / +| all_paths_are_not_endangered readonly / | only_open_some_files local_trace readonly)) |} Once you have this specification, then it's a matter of implementing fine-grained OS-level sandboxing policies to interpret and enforce them. Spoiler: we're working on such a system, so I'll write about that just as soon as it's more self-hosting; this area is moving incredibly fast. Thanks to Michael Dales for help soldering. For the curious, here's the PR with the code, but it shouldn't go anywhere near any real use until we've had a chance to review the bindings carefully. There needs to be a new, even more buyer-beware no-warranty license for AI generated code!
054
KC Sivaramakrishnan @kcsrk.info · 10/05/2025
Hack a satellite challenge hacksat.dev
hacksat.dev
SpaceOS
053
Reposted by KC Sivaramakrishnan
patrick @patrick.sirref.org · 04/05/2025
I wrote up a quick post about the OCaml to Hazel transpiler I've been hacking on recently. Reusing OCaml's type inference to handle Hazel's explicit polymorphism has been pretty fun! patrick.sirref.org/hazel-of-ocaml
patrick.sirref.org
2206
Reposted by KC Sivaramakrishnan
Neeldhara Misra @neeldhara.bsky.social · 04/05/2025
New readings this summer! Proof and the Art of Mathematics by Joel Hamkins 05 May 2025 to 09 Jul 2025, 9AM IST, all weekdays Topics on Tournaments by John W. Moon 05 May 2025 to 01 June 2025, 9PM IST, all days +
183
Reposted by KC Sivaramakrishnan
Anil Madhavapeddy @anil.recoil.org · 25/04/2025
We've been having a "return to our blogging roots" to seize our attention economy back recently, and @jon.recoil.org might have catapulted to the lead with his "interactive OCaml notebook blog". Just needs wasm to make it full rube goldberg jon.recoil.org/blog/2025/04...
jon.recoil.org
blog/2025/04/this-site.mld
183
Reposted by KC Sivaramakrishnan
Bryan Cantrill @bcantrill.bsky.social · 28/04/2025
Nervously excited that we have more current openings than we have ever had before at @oxide.computer
A snapshot of the "Careers" tab at https://oxide.computer showing that we have 9 (!!) current openings
1116527
KC Sivaramakrishnan @kcsrk.info · 28/04/2025
Some notes on pathways to join my group at IIT Madras: kcsrk.info/ocaml/iitm/c...
kcsrk.info
Joining my group · KC Sivaramakrishnan
075
KC Sivaramakrishnan @kcsrk.info · 28/04/2025
The state of OCaml platform on Windows discuss.ocaml.org/t/ann-state-...
discuss.ocaml.org
[ANN] State of OCaml Platform on Windows
Hello folks 👋 We’re happy to share the first version of the State of the OCaml Platform on Windows document with you. Please find the document here: State of OCaml Platform on Windows - Google Docs. ...
060
Reposted by KC Sivaramakrishnan
Joe Cutler @alphaconvert.bsky.social · 22/04/2025
Honored to be honorably mentioned for the Jane Street Grad Fellowship! PL is well-represented on this list :) www.janestreet.com/join-jane-st...
janestreet.com
Graduate Research Fellowship Profiles :: Jane Street
Jane Street is a quantitative trading firm and liquidity provider with a unique focus on technology and collaborative problem solving.
2271
Reposted by KC Sivaramakrishnan
David Bingham Brown @bingham.bsky.social · 17/04/2025
As we're about to hear a whole lot more about autism and vaccines, the great @zachweinersmith.bsky.social has already pointed out the only relevant relationship between the two. www.smbc-comics.com/comic/autism...
Comic with two people talking, one wearing a white labcoat. "Wait a minute. Autism-spectrum people are over-represented in research science.  But... But that means..." "My god" Caption: AUTISM CAUSES VACCINES.
7522133
KC Sivaramakrishnan @kcsrk.info · 17/04/2025
🏃‍♂️It is that time of the year when Chennai weather starts turning into a sauna for a couple of months. This is at 5:30am! 🥵
080
Reposted by KC Sivaramakrishnan
gckeller.bsky.social @gckeller.bsky.social · 14/04/2025
If you're working on (high)performance for declarative languages - consider submitting your paper or abstract to FProPer (formerly FHPNC) this year! conf.researchr.org/home/icfp-sp...
conf.researchr.org
FProPer 2025 - ICFP/SPLASH 2025
FProPer aims to bring together researchers and practitioners that strive to use or develop declarative languages for combining programmer productivity with the highest levels of runtime performance. T...
075
Reposted by KC Sivaramakrishnan
Galois @galoisinc.bsky.social · 14/04/2025
c2rust is available on the Godbolt Compiler Explorer! c2rust is a tool we developed with Immunant that can convert nearly any piece of C code into compilable Rust godbolt.org/z/crsWEGEKM
godbolt.org
Compiler Explorer - C (C2Rust (master))
/* Type your code here, or load an example. */ int square(int num) { return num * num; }
1132
KC Sivaramakrishnan @kcsrk.info · 11/04/2025
Call for Volunteers to Help Maintain the Opam-Repository discuss.ocaml.org/t/call-for-v...
discuss.ocaml.org
Call for Volunteers to Help Maintain the Opam-Repository
The opam-repository needs your help! 🐪❤ tl;dr: Want to grow your OCaml connections and expertise while supporting a pillar of the ecosystem? Then join us as an opam-repository maintainer by commenting...
062
Reposted by KC Sivaramakrishnan
Brad Fitzpatrick @bradfitz.com · 09/04/2025
Anybody want to come work on Tailscale's internal dev tooling/productivity, CI, bots, dashboards, etc? Pretty please? 😅
1910025
Reposted by KC Sivaramakrishnan
Martin Kleppmann @martin.kleppmann.com · 08/04/2025
Upcoming events on local-first: • Local-first Conf Berlin, Germany, 26–28 May www.localfirstconf.com – for industry folks • Workshop on Theory and Practice of Decentralized and Local-First Software, Bergen, Norway, 3 July 2025.ecoop.org/home/plf-pla... – for academics (industry crossover welcome)
localfirstconf.com
Local-First Conf 2025
Join us for the second edition of Local-First Conf. Connect with a rapidly-growing community in an intimate setting. Berlin 27th - 28th May 2025.
35719
Reposted by KC Sivaramakrishnan
Shriram Krishnamurthi @shriram.bsky.social · 06/04/2025
A reminder that @benshapi.ro and I run CERAMICS: "Computing Education Research Advancing Methods for Curricula and Systems". It's for people trying to enter/succeed in CS Ed research and looking for help on how to do so. See FAQ linked below. Next deadline June 1: docs.google.com/document/d/e...
docs.google.com
CERAMICS FAQ
02513
Reposted by KC Sivaramakrishnan
Vaishnavi S @vaishs.bsky.social · 06/04/2025
The only worthy successor to rhyming “chipotle” with “Aristotle”
2175
Reposted by KC Sivaramakrishnan
Anil Madhavapeddy @anil.recoil.org · 28/03/2025
...and @dra27.uk successfully showed off the relocatable compiler to the core OCaml devs yesterday. It'll be awesomely useful to have this in the core toolchain when it comes to playing well with package managers. www.dra27.uk/blog/platfor...
dra27.uk
OCaml Core Dev Meeting
OCaml Core Dev meeting at Inria yesterday. These are roughly biannual synchronous catchups which provide a chance to find out what others are up to, get feedback on any major ongoing work, and attempt...
052
Reposted by KC Sivaramakrishnan
Terrateam @terrateam.io · 26/03/2025
We just released OpenInfraQuote (oiq), an open source cost estimation tool built with OCaml. It runs in CI, reads Terraform plans and state files, and gives cost estimates from the CLI. No servers. More docs soon. We love building real tools in OCaml. github.com/terrateamio/... #ocaml #terraform
github.com
GitHub - terrateamio/openinfraquote: Fast, open-source tool for estimating infrastructure costs from Terraform plans and state files
Fast, open-source tool for estimating infrastructure costs from Terraform plans and state files - terrateamio/openinfraquote
1165
KC Sivaramakrishnan @kcsrk.info · 05/04/2025
👀 Oleg Kiselyov's compilers course in OCaml 👀 okmij.org/ftp/tagless-...
okmij.org
Compiler
The materials for the course on compilers: built incrementally and fully in tagless-final style
03916
Reposted by KC Sivaramakrishnan
Yaron Minsky @yminsky.bsky.social · 04/04/2025
One thing I really like about this talk is that it talks both about what kind of language OCaml is now, and also what are the design goals for the kind of language we want to turn it into. youtu.be/g3qd4zpm1LA?...
youtu.be
Making OCaml Safe for Performance Engineering
YouTube video by Jane Street
1237
KC Sivaramakrishnan @kcsrk.info · 05/04/2025
Making OCaml Safe for Performance Engineering youtu.be/g3qd4zpm1LA?...
youtu.be
Making OCaml Safe for Performance Engineering
YouTube video by Jane Street
0115
Reposted by KC Sivaramakrishnan
Cyrus Omar on sabbatical in Cambridge @neurocy.bsky.social · 03/04/2025
new book on session types just dropped! www.cambridge.org/us/universit...
cambridge.org
Session Types | Programming languages and applied logic
03512
Reposted by KC Sivaramakrishnan
Programming for the Planet @propl.dev · 03/04/2025
The 2nd Programming for the Planet workshop will be hybrid and co-located with ICFP/SPLASH in October in Singapore! Our call for papers is out at conf.researchr.org/home/icfp-sp..., submission deadline 3rd July 2025.
conf.researchr.org
PROPL 2025 - Programming for the Planet 2025 - ICFP/SPLASH 2025
There are simultaneous interlinked crises across the planet due to human actions: climate change, biodiversity loss, and desertification. Addressing these challenges requires, amongst other things, a ...
12311
KC Sivaramakrishnan @kcsrk.info · 01/04/2025
. @shriram.bsky.social Do you know of research that looked at the effectiveness of MOOCs? I recall you mentioning that they have not been very effective. Curious to learn whether hybrid MOOCs were considered in such studies. IITs run hybrid programs like NPTEL and online BS where lectures..
161
Reposted by KC Sivaramakrishnan
Yaron Minsky @yminsky.bsky.social · 30/03/2025
It seems like a huge deal, I agree. I'd love to have something equally good for the OCaml ecosystem, but it's easier said than done. (Not that opam is terrible, but it's not as good as Cargo.)
1112
Reposted by KC Sivaramakrishnan
David Buchanan @retr0.id · 26/03/2025
damn, now I gotta figure out how to take a digital photograph without involving computer software
Your photo must be:

- in colour
- unaltered by computer software
1131313
Reposted by KC Sivaramakrishnan
Jared Forsyth @jaredforsyth.com · 26/03/2025
slides for my talk at #EpicWebConf2025 docs.google.com/presentation...
4547
Reposted by KC Sivaramakrishnan
Functional Architecture @funarch.bsky.social · 19/03/2025
The Call for Papers for #FUNARCH2025 is open - deadline is June 16th. Send us research papers, experience reports, architectural pearls, or submit to the open category! conf.researchr.org/home/icfp-sp... functional-architecture.org/events/funarch
conf.researchr.org
FUNARCH 2025 - ICFP/SPLASH 2025
The Third ACM SIGPLAN Workshop on Functional Software Architecture - FP in the Large “Functional Software Architecture” refers to methods of construction and structure of large and long-lived softwar...
178
Reposted by KC Sivaramakrishnan
Kiran @kirancodes.me · 25/03/2025
Calling for Presentations!!! The OCaml Workshop 2025 welcomes presentations on any topic related to OCaml (such as multicore, algebraic effects, testing, ppxs, etc.) Have fun!! Submissions due: July 3rd AoE Workshop: Oct 17th Here's the link to website: conf.researchr.org/home/icfp-sp... #OCaml
conf.researchr.org
OCaml 2025 - OCaml Users and Developers Workshop 2025 - ICFP/SPLASH 2025
The OCaml Users and Developers Workshop brings together industrial users of OCaml with academics and hackers who are working on extending the language, type system, and tools. Previous editions have b...
12412
KC Sivaramakrishnan @kcsrk.info · 23/03/2025
1200
KC Sivaramakrishnan @kcsrk.info · 23/03/2025
Finished much faster than anticipated. 1:40:xx. Laser cut personalised medal is a nice touch. Not bad for first time running in the hills; 15k with 500m climb at 2600m. Only 10 minutes slower than my usual 15k morning runs in Chennai. Guessing regular runs at 25+C 85% humidity is good training.
0180
Reposted by KC Sivaramakrishnan
EUMETSAT @eumetsat.int · 20/03/2025
Today at 10:01 CET the Sun was directly above Earth’s equator, marking the #SpringEquinox! 🌸 At this moment, our planet is neither tilted towards nor away from the Sun, creating nearly equal day/night. 🌓 This stunning image was captured by our Meteosat-12 satellite. 🛰️
614763
Reposted by KC Sivaramakrishnan
Carlos Baquero @xmal.bsky.social · 20/03/2025
The lineup for the 12th Workshop on Principles and Practice of Consistency for Distributed Data is now up. The programme looks excellent, sad not to be able to attend. @abeldantas.bsky.social will be presenting our paper on VR collaboration. papoc-workshop.github.io/2025/program...
papoc-workshop.github.io
Program
The 12th Workshop on Principles and Practice of Consistency for Distributed Data
053