65 karma · joined July 17, 2014
GitHub: https://github.com/eliasdorneles
You are probably aware that there are these things called synthesizers, which exist both hardware and software, complex pieces of technology that can shape sound. There are people who are specialized in creating them (with code and/or electronics), people who are specialized in programming them (creating presets) and people who excel in using them to make music. And many more different profiles who are in between. Each will care about different aspects, they all contribute to making music.
Life is not black and white, and music neither. What is even "good music"? What is your mental model for "the crowd on this site"? In your questions, aren't you reducing the possibilities of learning by putting these into boxes?
The world is big, life is rich and people are much more diverse than what one typically perceives.
That's interesting, many friends of mine tested it and nobody reported an issue with loading. (Btw I wrote the audio loading code more than 10 years ago, it wasn't written by any LLM -- you're free to judge tho)
Yes, the +22 at the top means the remaining levels. I need to clarify that, you're the second person that seems confused by it.
Thank you again for the feedback.
I still think those estimates are off, because I think many of those projects would need significant research and learning time, possibly more than actually coding -- not to mention time spent troubleshooting when something goes wrong.
However, am I the only one finding those time estimates way too short?
I'm not the fastest programmer on Earth, but I'm not the slowest either, and I think most of those projects would take me a lot more time than those estimates, specially if I'd be working only 2-3 hours per day.
I feel most of those projects would take significant time researching and learning about the subjects, before even starting to code.
Example: recently I replaced my Pelican blog by my own hacky static site generator written in Odin, working 2-3h per day, it took me 2 weeks -- and this is a simpler project than many on that list.
For keyboard expression, it will be simpler to just use MIDI input.
Not just yet, MIDI input is the next big feature I want to add! =)
("dang it!" protested a voice "i wanted this to be a surprise!! now, you've ruined it, announcing on HN...", "rhoo, it will be fine!" reassured another)
Oh yeah, you can call some friends to login to the same server and play a concert over SSH!
> it hints at a latent desire for computing closer to how I enjoy it ;)
Agreed, same here!!
If you like this, you might also like my solitaire clone for the terminal: https://github.com/eliasdorneles/usolitaire =)
> Why insist on doing this inside a terminal... ?
Simple: because it's fun!
attrs seems lesser risk IMO, it's just a plain Python library, no other deps.
If you like Lombok, I'd expect you'll love attrs. :)
I'd suggest to market the "serious business aliases" more prominently. It's not about aesthetics, but expectations: people like me are immediately puzzled by "attr.ib()", thinking "why ib?".
The reason is because after reading a lot of Python code, our brain is already trained to recognize attributes and method names after the dot.
Also, it's a reasonable expectation to be able to import a function or submodule and the code still make sense, but this won't make sense:
from attr import s, ib
@s
class Thing(object):
x = ib()
I understand it looks such a small thing for you and others already used to this DSL, and also that it's not the most important technical aspect of the library. However, I do think it's an important human aspect of it.I have the feeling that by making the "no non-sense" alternative more prominent in the examples and documentation, it would reduce cognition steps for newbie users and maybe make your own life easier by not having to explain and paste this link every time someone finds it odd (which will probably continue to happen).
Cheers!
However, as you said, it'd be a major change and it would affect the whole ecosystem (plugins and extensions), so it's complicated. We'll see what happens. :)
1) site changes caused the items that were scraped to be incomplete (missing fields) -- for this, one approach is to use an Item Validation Pipeline in Scrapy, perhaps using a JSON schema or something similar, logging errors or rejecting an item if it doesn't pass the validation.
2) site changes caused the scraping the items itself to fail: one solution is to store the sources and monitor the spider errors -- and when there are errors, you can rescrape from the stored sources (it can get a bit expensive store sources for big crawlers). Scrapy doesn't have a complete solution for this out-of-the-box, you have to build your own. You could use the HTTP cache mechanism and build a custom cache policy: http://doc.scrapy.org/en/latest/topics/downloader-middleware...
3) site changed the navigation structure, and the pages to be scraped from were never reached: this is the worst one, it's similar to the previous one, but it's one that you want to detect earlier -- saving the sources doesn't help much, since it happens at an early time during the crawl, so you want to be monitoring it.
One good practice is to split the crawl in two: one spider does the navigation and push the links of the pages to be scraped into a queue or something, and another spider reads the URLs from that and just scrape the data.
It seems that dateutil has just not been receiving much love from its developers lately.
Can you elaborate what you mean by "proper grammar for singular values"?
>>> from dateutil import parser
>>> parser.parse('')
datetime.datetime(2014, 11, 24, 0, 0)
It gets worse with fuzzy parsing: >>> parser.parse('something meaningless', fuzzy=True)
datetime.datetime(2014, 11, 24, 0, 0)