closed

Joined 13 years ago

Karma
1,274
Submissions
466
Member since
Nov 19
Cognitive psychologist / data scientist!

Working on siuba, a data analysis tool for python:

https://github.com/machow/siuba

View on Hacker News

Recent submissions

Comment · 1 month ago
I suspect it does to at least some degree. One of the key mechanisms is that these mappings turn a sequential memory task from free recall (e.g. what's the next digit again?) into cued recall (e.g. what was orange interacting with? oh yeah, it was in a shoe). I would be surprised if people with aphantasia don't benefit from the contextual reinstatement of a cue (i.e. even reinstating non-visual context).

(caveat emptor: I have a phd in cognitive psychology but am unfamiliar with aphantasia research).

Comment · 4 months ago
Hey! I worked on the plotnine guide (https://plotnine.org/guide/). Always interested to hear what people find hard to understand about plotnine, or what they wish there were more of (e.g. examples, guide pages, api reference docs).

(Both has2k1 and I work for Posit, which supports plotnine work, but authoring its guide was mostly an act of passion for me :)

Comment · 1 year ago
I have used numpy, but don't understand what it has to do with dataframe apis

Take two examples of dataframe apis, dplyr and ibis. Both can run on a range of SQL backends because dataframe apis are very similar to SQL DML apis.

Moreover, the SQL translation for tools for pivot_longer in R are a good illustration of complex dynamics dataframe apis can support, that you'd use something like dbt to implement in your SQL models. duckdb allows dynamic column selection in unpivot. But in some SQL dialects this is impossible. dataframe apis -> SQL tools (or dbt) enable them in these dialects.

Comment · 1 year ago
I think it's often a syntax convenience. For example, Polars and Pandas both have DataFrame.pipe(...) methods, that create the same effect. But it's a bit cumbersome to write.

Here's a comparison:

* Method chaining: `df.pipe(f1, a=1, b=2).pipe(f2, c=1)`

* Pipe syntax: `df |> f1(a=1, b=2) |> f2(c=1)`

Comment · 1 year ago
I think piping and method chaining are a little bit different.

Piping generally chains functions, by passing the result of one call into the next (eg result is first argument to the next).

Method chaining, like in Python, can't do this via syntax. Methods live on an object. Pipes work on any function, not just an object's methods (which can only chain to other object methods, not any function whose eg first argument can take that object).

For example, if you access Polars.DataFrame.style it returns a great_tables.GT object. But in a piping world, we wouldn't have had to add a style property that just calls GT() on the data. With a pipe, people would just be able to pipe their DataFrame to GT().

Comment · 1 year ago
Comment · 1 year ago
Comment · 1 year ago
This is an interesting case, since the pigeon study is about what happens when the underlying process is random.

But if the shape drawing process isn't random, I think the author's experience of feeling unable to articulate the rules AND gravitating to a set of behaviors is a good example of procedural memory (implicit vs explicit).

Explicit rules would probably help speed things up, though!

Comment · 2 years ago
As someone who did statistics and psychology, I'm very surprised by this take, for a few reasons:

1. Many of the early pioneers in statistics were psychologists.

2. The econ x psych connection is strong (eg econometrics and psychometrics share a lot in common and know of each other)

3. Many of the people I see with math chops trying to do psychology are bad at the philosophy side (eg what is a construct; how do constructs like intelligence get established)

Comment · 2 years ago
From a more applied angle, a book like "10 steps to complex learning" might be helpful.

I come from a similar cog psych background as the Bjork Lab, so am a big fan of their research, but books like 10 steps come from instructional design, which is a bit more focused on the big picture (designing a whole course vs individual mechanisms).

Comment · 2 years ago
Hey one of the co-maintainers of Great Tables, along with Rich Iannone, here!

I just wanted to say that Rich is the only software developer I know, who when asked to lay out the philosophy of his package, would give you 5,000 years of history on the display of tables. :)

Comment · 2 years ago
I got into embroidery as a break from software engineering. Then, I got into machine embroidery and found myself running inkstitch in a docker container and submitting GitHub issues. Whoops!

Can't speak highly enough of the inkstitch maintainers, though--really welcoming community!

Comment · 2 years ago
Another hint that it's a deliberately lackluster example is that it violates a rule given in the article: don't use character names.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton