Giter Club home page Giter Club logo

apeiron's Introduction

apeiron

a simple text editor in python, based on this tutorial : https://viewsourcecode.org/snaptoken/kilo/

Nov 2020 note: this project is a personal project that is currently shelved. do not expect any changes soon.

in short

In July 2020, I was using a text editor that had too many features for what I was doing - and it was keeping me from being able to focus.

I had the idea to write a text editor that would do just that - and shortly went on finding ways to do this. The apeiron project is the result of this idea.

in long

After having that idea and starting my search, I discovered the snaptoken tutorial where the antirez' kilo text editor is implemented. Given the extensive comments made in the tutorial, I thought it would be a good learning opportunity and soon started that project, with the hope to finish it and include it in my data-analyst-to-dev portfolio.

I decided to programm in Python instead of C, because I wanted to keep myself from doing too much copy-pasting code along the tutorial, instead of really taking the time to understand what that code was doing.

I was halfway through doing that project when I started the Recurse Center in late September 2020. I decided to keep working on this project - and so did, for the best part of the first half of my batch. I gave at least 3 talks on things I learned about computers while writing a text editor: the history of the control characters! the difference between canonical and raw mode! how a screen refreshes! That last one paved the way to one of my current project (writing an OS for a Raspberry Pi), also based on a tutorial.

improving the code

After writing the first version of apeiron, with absolutely no classes as a way to keep the code as close as possible to the tutorial, I decided to do a first refactor (this is the code in the try_it_here folder, in the main.py) to make the code clearer for the programmer - and easier to update.

That went well, and I wanted to improve the code again - and to get rid of the too-many bugs - and to make it easy to add a small set of features.

So I am now in the wip (work in progress) folder, working on improving the boundaries of my classes.

... and now ? you said you were shelving this ?

Yes - I would love to finish this project and start using it, but I also want to finish the montréal public library project and there is only so much time left to my RC batch!

I know I will make good mileage on the apeiron in the future though, so I wanted to take the time to properly archives this for now, as to make it easy to pick it up again in the future.

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.