4 ms·
Congrats! This is fantastic. If you can write code, I highly recommend taking a stab at writing yourself the tools that you use the most (whether that is a mus
by GuiA 13y ago
Congrats! This is fantastic.
If you can write code, I highly recommend taking a stab at writing yourself the tools that you use the most (whether that is a music player, chat client, text editor, etc.).
Sure, it isn't trivial - but modern languages and libraries (I'm a big fan of Python, both for the language and its ecosystem) make it a very reasonable project. You can get an MVP working in a few weeks of work (if you spend 5-10 hours a week on it), and then you can add features and tweak the thing over the months and years as you use it.
And in the end, you get a piece of software that you deeply know, to which you can add any feature you want, that is customized to fit perfectly in your workflow, etc. It's a bit of work, but it's really cool and IMO one of the neatest things you can do for yourself as a programmer. Additionally, if it's something that works well for you, chances are that other people will like it- open sourcing it and getting other people to use it is a high of its own.
I'm working on a few such apps myself (todo list, mail client, and a few others), as console applications using ncurses to make something with a responsive, smart, effective and efficient style of UI that I don't think has been done before (mostly because no one has been trying to innovate in the domain of console applications in the past 20 years- but I think interesting things can be done). When I'm at an interesting point, I'll open source it and write a few posts about it.
I hear the naysayers saying that it's a waste of time, that there are already 8000 different open source mail clients and music players and todo lists apps and that it's better to contribute to old open source projects than create your own, etc... those arguments aren't wrong, but IMO they don't outweigh the pros I outlined above.
This talk by Gary Bernhardt is relevant: https://www.destroyallsoftware.com/talks/a-whole-new-world https://www.destroyallsoftware.com/talks/a-whole-new-world
- phaylon 13y agoIf it is just for a first try to experiment with structuring those kinds of application, or if your needs aren't even that complicated, it can even be quite close to trivial sometimes. But it's hard to know what is out there, and how useful it would be. Things that I've done on the side that weren't too hard and even more fun than I imagined beforehand: * Media Players (Video and Audio) with GStreamer (0.10 can be okay'ish, 1.0 is very nice so far) * Text Editors (via Gtk-Source or embedded GVim) * I've tried building a specialized browser with WebKit. Was also quite easily used, except that I gave up when trying to get the Flash plugin to run turned out to be not-fun. Others may have more motivation. Note that I mostly try these things in Gtk2/3 with either Perl 5 or Vala. Python seems to have very good Gtk/GObject bindings as well, so that should mostly apply the same way. And I'm sure if you look at the Qt and Wx ecosystems there will also be many preexisting useful components, or ways to plug them in.
- jfreedom 13y agoI really like this kind of solution for android stuff. There are some very specific things that I end up doing all of the time and it's relatively easy to write the thing that solves my exact problem in the fewest number of screen taps. I'm not sure if it saves me time overall, but I also enjoy solving the problem.
- stevekemp 13y ago> I'm working on a few such apps myself (todo list, mail client, and a few others), as console applications using ncurses to make something with a responsive, smart, effective and efficient style of UI that I don't think has been done before I'd love to see what you're doing there, as I've spent the past few months working on a console mail-client, and reached a point where I have to decide to leave it alone or start v2 now I've learned more about how I handle email.
- spotco 13y agoThis is absolutely true. You'll come to love the tools you make (and hopefully other people will too!) I'd love to write my own text editor, though I imagine that I'd want a whole lot more features than my "optimal" music player (probably some sort of autocomplete, syntax checking, heck just make it a full-blown multi-language IDE). By random coincidence, I've been writing (and using for the past year) my own super minimalist ncurses music player (https://github.com/spotco/ScrapePlayerDESKTOP https://github.com/spotco/ScrapePlayerDESKTOP , one python file, powered by sox and most likely only works on OSX). My needs were definitely very different from the OP (I just wanted the ability to play music by all folder, and all folder recursively), but it's really interesting to see other people's versions of their "optimal" player.