HNHacker News
TopNewBestAskShowJobs

jeremiecoullon

110 karma · joined August 18, 2015

Computational stats / ML researcher. https://www.jeremiecoullon.com/
submissionscomments
jeremiecoullon··on Randomised numerical linear algebra: foundations and algorithms
I just discovered this field; I needed an algorithm to compute a low rank approximation of a large covariance matrix without first building the matrix. I'm using algorithm 16 in this paper which is simple but very good!
jeremiecoullon··on Test for lists in Cython
Nice to know that numba has these features; I'll have to check it out at some point!
jeremiecoullon··on Test for lists in Cython
I haven't tried numba but I've heard good things about it! Nice linked tutorial. If I understand correctly, you pass in jitted functions (using numba, and jax) into iminuit which does the optimisation?

With Jax you can write native for loops that can also be jitted (I imagine you can also do this in numba?); this can then be really fast. Though in that case you would have to write the optimisation algorithm yourself which is not always practical!

Another big speedup in Jax is due to vmap/pmap, which allow to vectorise/parallelise computation. For example you can build a massive gram matrix really quickly using vmap.

Another point: Jax can also run on GPU (like numba :) ) without having to rewrite anything.

jeremiecoullon··on Test for lists in Cython
I've been using JAX (https://jax.readthedocs.io/en/latest/) for scientific computing in general (in particular MCMC algorithms), as it's really fast. Even on a CPU you get massive speedups compared to numpy (can be up to 2 or 3 orders of magnitude faster in some cases).

The main selling point of the library is automatic differential and compilation to XLA, but I've been using it even when I don't need gradients, as it's really fast (due to compilation). I also really like the random number generator as it's very good for reproducibility.

I've played around with Julia in the past and really liked it, but in terms speed Jax has pretty much solved that problem for me

jeremiecoullon··on Why has no one made a better Goodreads
I hadn't seen that; thanks!
jeremiecoullon··on Why has no one made a better Goodreads
There are probably a bunch of alternatives for this. For example a friend built Reading List which I've heard is good (https://apps.apple.com/us/app/reading-list-book-log/id121713...) (iOS app)
jeremiecoullon··on The MANIAC 1 documentation (1954) [pdf]
The way to represent negative numbers (page 3 of the manual) is really cool: to do "a - b" you add a to the complement of b (with the complement of b being 2 - |b|).

It feels really similar to modular arithmetic: -3 = 7 (modulo 10)

jeremiecoullon··on Saving the World with Bayesian Modeling
Perhaps an alternative to look into: Numpyro [1] has a JAX backend so can be really fast when compiled; and it can run on GPUs. So that might be helpful for your problem with loads of data.

[1] https://github.com/pyro-ppl/numpyro

jeremiecoullon··on Bill Evans – The Creative Process and Self-Teaching (2007) [video]
I guess (good) podcasts are the modern equivalent!
jeremiecoullon··on Traffic Simulator
The author used the "intelligent driver model" (IDM): https://traffic-simulation.de/info/info_IDM.html

It's a system of ODEs that describes the dynamics of each driver. So the inputs are: the parameters of the model and the inflow of cars in the section of road

jeremiecoullon··on Ask HN: Does anyone do Scientific Coding?
Sounds cool! What's the company? I haven't heard of many companies needing CFD
jeremiecoullon··on Ask HN: Does anyone do Scientific Coding?
I’m doing a postdoc in stats/ML and mainly writing MCMC algorithms. Background: phd in computational statistics. I’ve used a lot of Python and a bit of Julia.

I’ve recently started using JAX and I’m really into it! It’s really fast even on my laptop (cpu) and can run even faster on GPU. I’m now using jax even for random scripts as well as I prefer the random number generator to numpy’s one. This is because you pass the random keys explicitly to all random functions so everything is reproducible.

I really like programming side the research; especially trying to get algorithms to be fast! So Jax is really great for that

jeremiecoullon··on JazzKeys: Type to improvise Jazz music
this is great. The Kohl concert is hard to type at the right pace though :)
jeremiecoullon··on Ask HN: What did you make during lockdown?
Cool! Yeah I tried a pdf and it generated a bunch of URLs ;)
jeremiecoullon··on Ask HN: What did you make during lockdown?
This is really cool! How did you do the encoding though?
jeremiecoullon··on Ask HN: What's your quarantine side project?
Really cool idea!
jeremiecoullon··on Why it's great to write blog posts
Your website is http://www.oliverpeat.com/, right? I couldn't find your medium profile from there (though I may have missed it). Could you maybe have your posts also on your website?
jeremiecoullon··on Ask HN: What is your blog and why should I read it?
https://www.jeremiecoullon.com/

I’ve started it recently and I’m writing about computational statistics and programming-related stuff. The idea is to write things that I would have liked to read about (I do computational stats, and also like web development).

So far I’ve written about a goodness of fit test for MCMC code, a D3 visualisation for the gypsy jazz scene around the world, and a classic “how to implement natural numbers from scratch” in OCaml.

jeremiecoullon··on Ask HN: First time working from home; what to do or not do?
A lot of the advice here is good!

For me: what helped was easing into it: I would only work a bit from home for an hour or 2 in the morning before going into the office (it was during my PhD so no one was monitoring my time).

When I got more comfortable working from home I started doing entire days, but not the entire week. Eventually, I started working only from home. This way meant that I could set up good habits (they'll be different for everyone) before doing it all the time.

jeremiecoullon··on Ask HN: What did you build in 2019?
I built a 3D graph visualisation of the Gypsy Jazz scene around the world called the DjangoVerse ( https://www.londondjangocollective.com/djangoverse/). I used Django (obviously..), D3, and React.

It shows which players gigged together, and colours the players based on the country they live in. It's a wiki, so anyone can add themselves or other players, as well as add a link to a YouTube video to promote their music.

A bunch of people (Gypsy jazz a pretty small world!) added themselves (there are over 200 players on it now) then it died down.

I also wrote a blog post about the design process: https://www.jeremiecoullon.com/2019/11/27/djangoverse/

It was fun and meant I got to learn a bit of React and D3 !

jeremiecoullon··on Ask HN: What decision has made the largest impact on your life?
Nice one!

How many email addresses did you try for each CEO ? I'm guessing the most common one is firstname.lastname@company.com ?

jeremiecoullon··on Ask HN: What is your job role and what are the side projects you are working on?
PhD student in applied Math at UCL in London. Side project is public engagement: short documentaries about academic research (http://knowitwall.com ); My role is web developer (starting learning web dev from scratch which was and still is overwhelming but fun :) )
jeremiecoullon··on An open source 3D printable acoustic violin
I went on the comment section purely to see if someone had posted this. Nice one.
jeremiecoullon··on Intermediate Python
Thanks for this! It's really good to have intermediate stuff all in one place, rather than tutorials on a specific topic