Code Monkey home page Code Monkey logo

spiel's Introduction

Hello Worlds!

I'm Josh Karpel!

Interests:

  • 🐍 Python
  • πŸ¦€ Rust
  • 🦺 Typescript
  • πŸ§ͺ Testing
  • ⌨️ CLI Tools
  • πŸ•ΈοΈ Distributed Systems

I'm currently a Software Engineer in Machine Learning at Workday. I design and develop systems for serving machine learning models.

Before that, I was a postdoc at the Morgridge Institute for Research / Center for High-Throughput Computing. I facilitated high-throughput computing projects that involved machine learning, image processing, and Python. I also helped maintain the HTCondor Python Bindings and worked on projects like HTMap. Before that, I got a PhD in Physics at the University of Wisconsin-Madison in the Yavuz Group, working on simulating interactions between quantum systems and high-power lasers.

spiel's People

Contributors

dependabot[bot] avatar e-staats avatar edrogers avatar joshkarpel avatar pre-commit-ci[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

spiel's Issues

Center image inside panel in demo deck

Noticed this while looking at the README

image

Should be as easy as adding an extra Align.center, though perhaps the Panel needs expand=False as well?

End goal: panel should be centered on the right half of the slide, and should snugly fit the image.

Improve `get_function_body`

get_function_body is pretty inflexible and I'm sure it fails on a wide variety of ways of writing functions. It should be tested on a variety of functions, including ones that are not e.g. black-compliant.

Support IPython as an alternate REPL

Right now, spiel has built-in support for dropping into a REPL, but it's the standard library REPL. It would be nice to support other REPLs, particularly the popular IPython REPL, out-of-the-box.

This might be a little tricky because I don't think I want to make IPython the default REPL, or installed by default. Maybe there will need to be a new entry in the CI matrix for installing and testing with extras?

Use `watchfiles` instead of `watchdog`

https://watchfiles.helpmanual.io/ is a more modern take on file-watching and looks like it has a much more convenient interface. It also supports async, which will be helpful for the inevitable textual migration.

Since the code will be changing anyway, we should probably watch the cwd by default, not just the deck file. That should produce more consistent and obvious behavior.

Are there plans (and a design in mind) to add custom slide layout

Hi Josh

Spiel looks like fun. I'm wondering whether there are plans to support custom slide layouts to speed up the writing of presentations and remove some of the need to producing the rich content by hand?

I can think of a few different ways to do that, but you may (and probably) already have a design in mind if it is even meant to be added.

Regards Kenneth

First-class mechanism for executable examples

For https://github.com/JoshKarpel/pytest-its-whats-for-testing I needed to have editable and executable code examples (stored as separate files) in the presentation.

To get that talk out the door, I did this "outside the library".

It would be nice for there to be some kind of first-class mechanism for this inside spiel so that people don't need to reinvent the wheel. The problem is that this mechanism needs to be highly customizable:

  • Code examples may or may not need to be editable, and there might be multiple files involved in a given example.
  • Code examples might not be Python code, so the executable needs to be customizable (but sys.executable is probably a reasonable default). There might even be multiple things to execute!
  • The slide contents need to be totally customizable. I'm not even sure I feel comfortable providing a default...

... but it might also be worth making a "drop dead simple" version that is not very customizable, and then letting users build more complex versions if they want one - the primitives are all there, of course. Being too proscriptive is not the goal, and building something that can please everyone isn't possible either.

Use `pydantic` for `Options`

Options is a dataclass right now, which is fine for its current simplicity, but using a Pydantic model would make it much more flexible for future growth.

Fix `nbterm` integration

Trying to start a notebook currently fails with

ValueError: '/tmp/spiel-ngzd063k/140051478698256.ipynb' is not in the subpath of '/mnt/c/Users/joshk/projects/spiel' OR one path is relative and the other is absolute.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.