First, my latest music addiction. I’ll just leave that there.
Writing for school is nowhere near as fun as writing for you guys, and a lot slower. For you guys, I still do a lot of editing and so on… but I also don’t have to worry about sounding formal or making sure you understand basic concepts. For school papers, I write for a “common denominator” sort of audience. I imagine it’s less this way at four-year colleges, where it’s implied that your readers know a little bit about your topic at least. I guess part of it is that I’m supposed to pretend I don’t know anything about my topic and that’s why I’m supposed to be researching it.
I feel like the paper I published last night was not among the best I’ve written. There’s nothing really wrong with it, and by the standards of the class I’m writing for it’s probably above what was asked. It’s just that I knew so much about the topic already, I felt the need to cover everything I knew, and it was too big to put in the proper organization within the time I have. Maybe I’ll polish it up later, but I think I’ll probably be busy with something else by the time I have the option to.
A week ago or so I cloned a set of scripts from GitHub meant to help one set up a Mac as a dev machine. The idea was that one would customize and run the scripts and could walk away from the machine, and you could save your script for the next machine you needed to configure. I didn’t spend long reading them–scripts like this are not generally that interesting–but it seemed to me like it was solving slightly the wrong problem. The scripts assumed that you knew what you were doing, as you were supposed to modify them by hand, but it strikes me that cloning, sifting through, and modifying them is actually more work than writing your own script. Whereas if it had an interface of some sort–whether a simple command-line menu or a little GUI that asked you what you wanted (it may be that it had this and I didn’t find it in my poking around; I didn’t run it because I have what I need already installed on my computer).
Basically… nice thought, but it solved the wrong thing, or solved a sort of right thing not very well.
But there is a more useful idea in there: what if you’re a beginner? What if you don’t know what tools to install, or the proper commands to install them? What if your toolkit doesn’t need to be big or diverse–maybe just tools for Python or Ruby and nothing else? Some of Python’s tools are really hard to install properly if you don’t know what you’re doing. (At least they are on Mac, but I think they are on Linux too.) What if you don’t even know what all the tools you need are supposed to do?
The ideal program to solve that problem, which obviously exists if you look at StackOverflow questions about pip, is to have a friendly little GUI or at least some CLI menus that:
- Ask what sort of dev environment you’re trying to install (e.g., Python)
- Tell you all about the tools it thinks you should install–and these should be sane defaults–but give you the option to uncheck them if you really want to.
- Generate a script based on Step 2. Save it somewhere sensible, like the home directory.
- Give you the option to read the script generated before running it, or to close the program and run it by hand from the terminal, or to auto-run the script and walk away until it’s done.
- Provide a text file with current links to documentation on all the stuff it installed.
Kivy would be a great tool for making the GUI. It doesn’t need to be fast, just quick and simple, and Kivy would be a great way to temporarily save myself the pain of, um, learning to make GUIs by hand. Sorry, not into that struggle right now; real front-end dev skills will have to wait.
Basically, this program would be more documentation and tutorial than actual code. As much as I like writing guides and so on, it’ll be a while before I tackle this one. And if/when I do, it’ll be for Linux systems, not Mac. It’s good to encourage the use of Linux, especially among new devs, and it’s easier to test with virtual machines.