Tag: language-learning

  • The Future of LWT-fork and LUTE

    The Future of LWT-fork and LUTE

    As announced in a GitHub post, I’ve had contributed enough to the current version of LWT to consider that it was time to roll over a new project, namely LUTE. In this blog I’m detailing the reasons for this change and it’s implications.

    LWT logo
    LUTE main logo

    A Bit of History

    After one year of contributing to my fork of LWT, I felt that I had done most of the reasonable housekeeping and small feature insertions. It was quite fun, but the more I worked, the more I felt that I had to stop contributing to the app at some point.

    The original LWT stems from a great concept: learning by reading in your target language. However, the app had a chaotic development: it dates back to 2011, was made by a single person who is not a professional software developer, and never received contributions. The app expanded iteratively and was never intended to be production-ready. It has no test cases, no clean access to the database, etc.

    Those were feature I struggled to import, but at some point I had to admit that there were too many things to do, and that a refactoring was no longer the solution. I started posting about a new app and discussing with the community, until a very motivated person came and saved the day: jzohrab.

    He is an experienced software developer who decided to rebuild LWT from scratch at a time when I had my hands full fixing current LWT bugs. His intervention enabled me to pack up things with LWT while he was working on his software, enabling a smooth transition. As of May 2023, I consider both programs worth using.

    LUTE + LWT-fork Era

    LWT-fork is not a goner though. LUTE is a nice piece of software, but it hasn’t included all the features of LWT yet. More importantly, LUTE is jz’s software, and while we often collaborate together, our views can be diverging on some points. The organization we came into was that while he continues working on LUTE, I can freely solve problems on LWT, try new features, and import things I consider important to LUTE. With things as this, projects can benefit from each other, and users are free to use either of the two.

    As a personal ambition for LWT, I now try to keep backward compatibility at a maximum while experimenting with new features that can be ported to LUTE, as stated in a previous discussion. LWT is still a nice playground for me because it deals with the basics of full-stack engineering (good to get experience), while LUTE relies on frameworks. Both are very nice to contribute to, and I hope you will find them useful.

    If you liked any of these projects, please leave a star (LWT/LUTE stargazers) or fork them; that is our only reward as open-source developers!

  • Maintaining LWT

    Maintaining LWT

    Hi there!

    In this post I’ll delve into a project which has taken a big part of my time for the last few months, the maintenance of an open-source language learning app: LWT.

    Original LWT logo

    LWT, standing for Learning With Texts, is a wonderful tool to learn text in your web browser, but it was quite abandoned 10 years ago, and it has not reached a larger audience since it was a bit difficult to use. So, I decided to blow the dust out of it, and started working on the GitHub community-maintained version. For those interested, the original project was posted at SourceForge.net.

    Basically, the target was to give the tool the audience it deserved. The main targets were:

    • Easy installation
    • Mobile compatibility
    • More secure

    Of course, many subquests came along the way, and I finished by doing much more than expected. In the end, it was a good introduction to full-stack development and project management as many things were to be done in a very short time. Now, I think that the project is much easier to maintain, so that independent developers can figure out how to do their own stuff without having a hard time understanding the code.

    Let’s talk a bit about the reason for which I started maintaining LWT. After I discovered LingQ, I found the tool very good, but also very expensive as many language learners are children. So, I decided to work on his open-source alter ego, LWT. Moreover, after spending time studying Japanese, I needed a robust tool to master the writing system, and reading books can turn out to be a pain if you cannot read words, let alone get the meaning.

    Another motivation was a personal challenge. I mostly did front-side development, and this was a much more ambitious full-stack project. I had no previous experience in PHP, or more generally, how a server internally works, so it was a good introduction to the domain. I could also try a new set of tools and utilities, which is why in my first commits things were a bit confused.

    Finally, I have been working on this project for almost a year now, and things are much better. I think I could tackle most of the urgent problems, and for the rest of the work, it will diverge from what LWT originally was and is much more related to where I want to go next. So stay tuned, as I may start on a successor for LWT from now on!