thecedarprince | 1 year ago | on: Thoughts on Forester: A Scientist's Zettelkasten
thecedarprince's comments
thecedarprince | 3 years ago
thecedarprince | 3 years ago | on: Building Observational Health Research Capacity in JuliaHealth
thecedarprince | 4 years ago | on: Manim – Python library for creating mathematical animations
Co-creator of Javis.jl here! As adgjlsfhk1 said, there is an implicit global scope here! This comes from a historic artifact from Cairo (which is what Javis is using deep within its tooling stack) which utilizes this sort of approach.
Here is an ELI5 that may help about the flow of a Javis animation: imagine Javis as a magical artist sitting at a table. The artist is a bit peculiar as they can draw anything you want but will not draw anything until you finish telling them everything you want to see. When you create a `Video` object, the artist grabs an empty notebook and opens it up. If you create a `Background` object, basically you are telling the artist that you want the background of each page in the notebook to be, in this case, black for pages 1 - 200. As you keep telling the artist what you want, the artist listens to how you want it ordered, how objects should appear and animate, etc. Finally, when you tell the artist to `render` this animation, Javis springs to work and flips through all the different pages, drawing backgrounds, objects, etc. to match what you asked. Then, when Javis is all done, the artist gives you the notebook that when you open it up, it will magically flip through all the pages (i.e. at a given frame rate) showing you your requested animation.
I know this ELI5 doesn't really get into the internals, but at a high level, that is what is happening with the start of the `Video` object. Happy to give more details if desired. We are trying to move to a v1.0.0 release very soon and in v2.0.0 we want to experiment with different syntax - perhaps a more implicit syntax similar to manim and Processing. Out of curiosity, for you, do you find it necessary to know more about Javis's approach to use Javis or was this more of a question that you had? Reason why I ask is perhaps we could add a "How Javis Works" section to the documentation if that could help more folks.
Thanks!
thecedarprince | 4 years ago | on: Crash Course Category Theory – C3T
Author of C3T here! [1] This is very much a work in progress project focused on creating accessible materials on Category Theory to get started, fast! My perspective comes from a non-maths background and making this approachable for folks in similar positions but are curious about what Category Theory is.
The website is made using Literate Programming tools [2, 3, 4] and utilizes both the Julia and Haskell programming language. Currently, I am working on putting together notes for the following resources:
1. Category Theory for Programmers by Bartosz Milewski
2. Category Theory for the Science by David Spivak
3. Catlab.jl: https://github.com/AlgebraicJulia/Catlab.jl
4. Semagrams.jl: https://github.com/AlgebraicJulia/Semagrams.jl
Feel free to star or follow this repository here: https://github.com/TheCedarPrince/C3T To keep track of what happens to it.
Please open issues, suggestions or thoughts on it!
~ tcp
[1] More about me: http://jacobzelko.com/
[2] Franklin.jl: https://github.com/tlienart/Franklin.jl
[3] Weave.jl: https://github.com/JunoLab/Weave.jl
[4] Julia Markdown: http://weavejl.mpastell.com/stable/chunk_options/
thecedarprince | 4 years ago | on: Crash Course Category Theory – C3T
I work with Evan - his stuff is great. :) This was designed to give more of a hands-on approach to category theory with the idea of Catlab.jl being used where applicable.
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
Best of luck with your research endeavors!
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
1. Distractionless editing - not fiddling with formatting or things like that is quite nice. Especially since I work with markdown and LaTeX, it is easy to convert over to a word file once I get the draft of the version done thanks to pandoc. From there, then I can really worry about the formatting - if I need to as pandoc is great!
2. I like the speed and lightness of a text editor for writing. Don't have to wait for boot, can easily grep and replace, and jump to where I need to go.
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
thecedarprince | 5 years ago | on: A terminal-based workflow for research, writing, and programming
Further, it makes my heart so so happy to see so many people being either inspired, interested, or curious about my workflow! I think the best workflow is the one that works for you. If my article played some part in that, then I am jubilant. Have a wonderful day!
thecedarprince | 5 years ago | on: Javis v0.2 and the Future
Our goal is to rather become a generic package people can use to make whatever animation or visualization in whichever domain they see fit. We are slowly building out our own showcase of animations based on tutorials we provide the user (see link here for tutorials: https://wikunia.github.io/Javis.jl/stable/tutorials/)
We are also currently seeking contributions to our examples section here: https://wikunia.github.io/Javis.jl/stable/examples/ If you want to contribute, happy to support!
thecedarprince | 5 years ago | on: Javis v0.2 and the Future
In manim, one could do something like this:
from manimlib.imports import *
class ReplacementTransformExhibit(Scene):
def construct(self):
square = Square().shift(LEFT)
circle = Circle().shift(RIGHT)
self.play(ReplacementTransform(square, circle))
To have a square morph to a circle. Currently in Javis, one could do something like this: using Javis
astar(args...) = star(O, 50)
acirc(args...) = circle(Point(100,100), 50)
function ground(args...)
background("white")
sethue("black")
end
video = Video(500, 500)
javis(video, [
Action(1:100, ground),
Action(1:50, morph(astar, acirc)),
Action(51:100, morph(acirc, astar))
], creategif=true, tempdirectory="images",
pathname="star2circle.gif", deletetemp=true)
As you can see, Javis is, at this stage, a little more verbose. However, for v0.3.0 we are moving away from Action syntax to something more generic and user friendly (this shift based on user feedback).
How do you like it? Do you have a wiki up somewhere?
Cheers!