Chifi
Published in

Chifi

Chifi Source Community Update — Holidays 2021

An update on all the fun Chifi Source projects that are being worked on — Happy Holidays!

Hello again

Welcome back, it has been a while since I have done an update on all my packages and the various other works I am in the process of doing. It is also the holiday season, which gives me a chance to wish everyone a happy holidays, I had a nice Christmas — on Christmas I did some work on OddFrames.jl that I would consider quite awesome. I hope all of my readers are enjoying the Christmas season, and in the spirit of Christmas, there will be 1 free article each day this week available on Chifi Media. Thank you very much for reading, and if you would like to get closer to my hobby software, then you can either follow me on here,

Also, I am on twitter!

or you can view some of the Github repositories in the next section and view the source for a given project.

Roadmap

However, before we dive into these packages and what is coming to them, which I plan to all have 1.0 releases by mid next year (June 2022), I want to lay out a road-map for their development. Another important note is that this is only currently for the core packages I am developing as of right now:

That is right, all of those. For now the focus is primarily on OddFrames. To put it simply, the data framework needs to be a lot more robust — and given that OddFrames.jl, like Jockey, is not even a registered Julia package, nor is Hone.jl, it might be a good idea to take up steam on these packages. I also would like to get a good universal documentation system down for my packages that both follow Julian convention but also stray slightly away in order to provide a bit more information.

All of this is a lot of work, and is going to take place on a by-package basis. The order is chosen for a specific reason. Jockey.jl is going to be continually developed alongside the rest of this small ecosystem I have enchanted myself with. The first package I want to get an awesome release from is OddFrames.jl. After which I will be working on Lathe, working on Jockey.jl at the same time. I want to have a robust version of OddFrames.jl available so that Lathe can support OddFrame inputs. Once Lathe’s new version is released I need to work on TopLoader, which the new idea behind is going to be quite intense — and it might end up making a whole package development video and extra long article for next week. The results are going to be great, I think. Hone.jl and Prrty.jl are both going to be on the back-burner until after all of those have valid candidates for release.

Don’t worry, I have it all under control.

Jockey.jl

Now that my Julia package dynasty insanity has passed, I consider it an ample time to introduce you to the “ kind of” latest project. The original Jockey.jl project was actually a much different type of project, although it had the same desire of creating notebook sessions. However, these were meant to be local-oriented notebook sessions that took place in the Julia REPL. Needless to say, all of that was really hard to work with, and there was little to no documentation.

Most of the work I have done so far on Jockey.jl has been getting the basics of the back-end done. Creating quirky file readers, creating types — that sort of thing. I like to write articles as I write out portions of packages just to demonstrate my thought processes and also just let people know what I am working on. Jockey is a new in-browser notebook server that has a focus on administrative capability, extend-ability, and deployability. Of course, as of now it is more of a server with some structural things around it, more like a blob of back-end code for the time being. This is still a project I am very excited for, there are a few questions in there I am going to need to answer before getting a 1.0 release out of this, or even a 0.1.0 working release at the least.

In case you missed some of the blogging on developing this package, here are the links to all the components I have built out on my blog for Jockey.jl, as well as an introduction to the package itself:

Those are also in chronological order. As you can see, only some very basic things have been done, the package needs a lot of work — and there are a few questions about tech-stack I desire to answer myself. For example, I am considering writing my own server client instead of building atop the Genie web-development framework. If this were to become the case, then I might even go into starting a new project to do all of this. Why would I build a web-development framework to only use it once, after-all?

Ideally, I will NOT have to do any of that, but it seems like when it comes to web-development in Julia, most people either use Genie.jl or write their own web-server. In the case of Pluto.jl, just that was done. I am sure the correct answer will fall on me soon.

OddFrames.jl

OddFrames.jl is probably the package I am most excited for. What I really like about OddFrames.jl is that it turns the conventional data-frame perspectives on their heads with a specific way to work with every sort of data, and a focus on memory and speed. There is a lot to do with this package, but the results can already be seen inside of the smaller structure that the package has already become. One very noteable thing is going to be documentation, which there is none up until this point, partially because of some intersecting plans with The Comprehensive Julia Tutorial. I will certainly keep updates coming on this package, and probably some development articles about approaching a component of it and solving the problem, and then having all of the components combine to create something awesome. OddFrames.jl is already coming along quite nicely, and I think it might become a pretty significant package for odd people like me to manage their data with.

TopLoader!!!

Surprise!

We are also talking about TopLoader! You might remember TopLoader from a long time ago, most likely this article:

I had to go into the VAULT for that one…

(Published almost two years ago)

I just wanted to talk about the TopLoader reboot I am going to be working on. I have some ideas for how TopLoader could be a lot more useful as a package, and some great things it might be capable of for handling environments of both Julia and Python.

My plan is to have both packages inside of the same repo, a Julia and Python equivalent. Whenever Python needs Julia packages inside of it, it will use the classic TopLoader way of loading packages (see article above.) It will also be capable of doing this on a large scale, i.e. managing virtual environment sessions across multiple machines for Jockey. In other words, one thing I thought would be really cool would be to have the cells be able to change language on the go, if desired. This would mean that TopLoader could be used as a virtualization tool for just Julia, just Python, or both together. Once loaded, however, each can be cross-referenced back and forth — making for fluidity between the languages, even when it comes to working with modules.

Conclusion

I am excited for these packages, and that is what makes me happy. I hope everyone else found something that made them happy this year. You all have helped to make me happier every step of the way, and I appreciate that. Thank you so very much for reading, hope to talk again soon!

--

--

--

an open source software blog

Recommended from Medium

Building complete NodeJS web server application with Typescript, Mocha and more: Introduction #1

Gotcha!! — How to Access Other Gameobjects Components

Generating an automatic breadcrumb in React Router

Form Cu

Build A Bot (DiscordJS) — Better Logging And A Persistent Bot Config

Deploy simple nestJs application on Server

How to create a pull request

Spread operator […] in Javascript ES6

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Emmett Boudreau

Emmett Boudreau

Computer nerd, Science and Journalism fanatic. https://twitter.com/emmettboudgie https://github.com/emmettgb https://ems.computer/

More from Medium

Metaprogramming in Julia: A Full Overview

How to call Julia code from Python

Getting Introduced to SML: A Weird Polymorphic Language Originated in 1983

Introspection And Meta In The Julia Language