> anything from elaborate ASCII art generators to programs that solve imaginary problems
I did a little of both with https://asciitabs.com/random - trying to learn some basic music theory and improvisation with guitar and thought maybe this would be a good way to help out.
Actually WRITING the program did indeed help memorize the spacing of notes and general pattern of scales. But it was one of those "write it to throw away" moments where now that I have written it... well it's fun to look back at and click a few times!
But I have to chuckle in hindsight to think that the way to "improvise on a guitar in a way that sounds good" is anything other than just hours and hours of practice
Good point on this too. I think there's value in allowing and exploring one-off / alternative views into Wikipedia especially where the data isn't accessible already - but long term any serious effort should be merged back into (or at least offered) to the official source.
> What I like most about it is how easy it is to achieve something useful with a very moderate amount of code.
100%. One of the best things about both Wikipedia and Python IMO, neither may deliver perfect results but they get you WORKABLE results very quickly.
I was also delighted reading this article about writing a Python parser for Wikipedia on a Jekyll blog... because I did an eerily similar thing ~5 years ago and it's still my most starred repo - https://roche.io/2016/05/scrape-wikipedia-with-python. Small world :)
Best of luck with the project! On one hand it seems impossible with all the irregularities in article structure and being able to QA the long-tail of niche topics. But on the other if you can manage to wrangle 99% of it into a reliable query language... that can mean a lot to many other side projects!
I helped bridge the gap in my own guitar playing from “can play tabs” to “can vamp and improvise from a scale” by making / using a random tab generator: https://www.asciitabs.com/random
I think building the site helped more than using it... breaking the concepts down into code helped me to see the broader patterns and abstractions more than just reading about it.
I also like forcing arbitrary constraints during practice. Can you make a simple song from only firsts and fifths in one key? Now add in sevens. Then do a key change every 8 measures (but same pattern). Now invert part of the pattern during the key change. Etc...
That kind of practice helped me intuitively understand what sounded good and what didn’t, which helped me finally grok the theory / vocab i was reading online but didn’t really get before then
Thanks for sharing - lots of detail on the process and the pictures look really helpful, although honestly I have no familiarity with pizza dough making to judge by. Great read regardless.
I love the idea of Github becoming a more popular place for recipes. I translate many of the recipes I end up cooking into Markdown files[1], and love that Github renders them in a way that I can still share with my relatives.
The real win though is that with git for VC, you can update these recipes with the smallest changes and notes each time you cook it, knowing that each time you're getting closer to the perfect version of each meal. I hope this idea catches on enough that people might one day submit issues / PRs for each others recipes much like we do with open-source code.
May try this dough out myself soon since I'm still on a baking kick from all the Christmas cookies. Will open a PR / issue if I have any suggestions from the experience!
I've been storing recipes in git for years, also in markdown so I can edit/view on pretty much any device with a markdown viewer/editor. This post has made me interested in using a markdown rendered to display them on my personal site!
Is there an open recipe format? There really should be, if you think about it, a recipe is basically a program: pragmatic, universally interpretable and should produce identical output (provided similar input and execution...)
I would be satisfied with any recipe format that doesn't include several paragraphs of text about how the author feels about the food, what they did the last time they made it, why they are writing about it, etc. Ingredients, steps, period.
He. That's one of the things I love most about seriouseats. They separate in different pages the recipe, as terse as it can be, and the "how it works", that includes all the other fluff, and I read if I'm in the mood.
Philadelphia is a really great city to live and work in my opinion. Good city density but not overcrowded, walkable, affordable, good public transit, diverse. Public schools aren't the best currently so many families with young children do end up moving to the immediate suburbs where schools are some of the best. Lots of colleges (UPenn, Drexel, Temple) to recruit from as you expand.
I'm not sure Philly would rank highest on the "could be helped" aspect since it has a decent business sector already, but the tech (especially startup) scene is just getting started compared to the tons of healthcare and finance firms.
Very nice! Love the large collection of scales you have (750!) Do you have them all hardcoded or does the site generate them from base principles / interval patterns?
For those that may want a more random experience while practicing, I made asciitabs.com a few months ago. Not as polished or full-featured as machak's site but would likely appeal to the same audience
Would be nice to increase the time to a minute, I tried a few times but only got two lines back and forth before having to guess. It was always a human in my tests though so perhaps the bot would respond quicker?
Love the idea though! Hope you can share the results and analysis with us when completed
I made this site to help myself practice guitar / music theory and learn the basics of music composition.
It's all written in Go and hosted on an AWS t2.micro instance right now. I haven't implemented any caching yet so we'll see what happens if it gets any traction...
This is a cool tool...but, as a musician of more than three decades, I would discourage new players from spending too much time on tablature.
I'd recommend you jump to traditional music notation for your learning process, ASAP. You're learning new things, anyway, you might as well learn a tool that is generally much more useful. There's a wealth of music and exercises in standard notation available to practice with.
I'm not saying this to be preachy or holier-than-though, or to suggest you can't be a good musician without knowing how to read music. But, standard notation is technically superior to tabs, on nearly every dimension. It provides more information in a smaller space, it is transferable to other instruments and other musicians, it is much faster/easier to read once you are proficient with it, and it provides visual cues about the things that you're currently trying to learn that tablature does not (e.g. you can usually readily discern keys and chords from traditional notation, while it is not at all obvious from tabs until you've read quite a bit of it and mentally or physically applied it to the guitar).
I wish I'd learned traditional notation sooner and with more gusto. I would have been a better musician more quickly if I had.
Thank you for this advice. You make a strong case for standard notation and I'll keep that in mind as I try and advance as a musician. I've found the 'Masters in Tab' series to offer tabs / standard notation interlaced, so perhaps that would be a good way to transition from one to the other (https://www.amazon.com/Spanish-Guitar-Masters-TAB-Intermedia...).
This also makes me think I should focus the website on where ASCIItab excels over standard notation -- editability as opposed to being a precise blueprint for how to play complex compositions. I think offering an in-browser editor would still make this a good tool for novice composers to get a feel for enhancing / creating music before they advance to standard notation.
Fixed! Thanks. I just ditched the <meta name="viewport"> tag altogether and now pinch + zoom works as expected. That's what I get for copying + pasting HTML templates from old projects.
I did a little of both with https://asciitabs.com/random - trying to learn some basic music theory and improvisation with guitar and thought maybe this would be a good way to help out.
Actually WRITING the program did indeed help memorize the spacing of notes and general pattern of scales. But it was one of those "write it to throw away" moments where now that I have written it... well it's fun to look back at and click a few times!
But I have to chuckle in hindsight to think that the way to "improvise on a guitar in a way that sounds good" is anything other than just hours and hours of practice