peterhil
It is nowadays actually easier to install Ubuntu Linux than a Windows. Just be sure to back up your data to an external hard drive, and restore it from there after the install.
Here is my setup, written in Fennel Lisp: peterhil/awesome-ultraviolet: Awesome WM theme with dark violet colours https://github.com/peterhil/awesome-ultraviolet
Peter Pan on Twitter: "@app4soft @probonopd @MX_Linux Screenshot of my #AwesomeWM setup. https://t.co/2XMnDEdJfN" / X https://twitter.com/peterhil/status/1463914949491761164/phot...
Lately I’ve been writing a CLI application in Python to analyse and generally handle possibly megabytes of DNA data.
At first I wrote the code quickly and in haste of inspiration using some Numpy constructs, some functional maps (with list) and an occasional list comprehension. It has took WAY too long to convert to code to use iterators, because the syntax and semantics are so different.
In Lisp I could usually just switch the kind of map function to be lazy, iterative, or whatever I would like without changing and carefully thinking about the rest of the code.
I think this is the kind of glue the article points to.
Trying top keep a Pygame/Numpy/Scipy project working has been a real struggle. I started it with Python 2 and ported to Python 3 some years ago. The whole Python 3 transition is a huge mess with every Python 3 point release breaking some things. No other interpreted language’s packaging system is so fucked up.
On a positive note: Lately I've liked using pdm instead of pip, and things seem to work quite a lot better. I evaluated Poetry, Flit and something else also.
I just commented about this on Twitter, when someone asked “Which programming language do you consider beginner's friendly?” https://twitter.com/peterhil/status/1633793218411126789
Troy Hunt: Here's Why Your Static Website Needs HTTPS https://www.troyhunt.com/heres-why-your-static-website-needs...
Unfortunately my web pages are not online, I have some video samples of Björk, Gotan Project and some classical and electronic music samples.
In the analytical audio signal, the musical intervals can sometimes be easily seen, and it is mesmerizing to look at.
On this video demo by OP, when the waveform appears stationary with loops, there are intervals in (at least close to) just intonation – meaning the frequencies have integer ratio relationships.
- Add download links with download attribute:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download
- Make the grid responsive with CSS minmax (and media queries):
https://developer.mozilla.org/en-US/docs/Web/CSS/minmax
- Display a (visual?) score for closeness of match
- Add link to similar sounds (by the vector database closeness)
- Add query parameter so the results can be bookmarked
- Use HTML5 History API
- Show tags from freesound.org (and allow to filter by tags from search results)
- Generate visual previews for the sounds (like in Soundcloud)peterhil/spellbook: Spellbook is a bookmark extension for Chrome and Firefox https://github.com/peterhil/spellbook
The library is tiny, under 5 kb.
I wrote one app with Uncommon Web framework on Common Lisp around 2009, with it you could similarly render the HTML from Lisp functions, and use continuations for multi part form submissions.
I have also used Fennel recently, and if Janet is anything as good, I'll try Joy on my next suitable project!
Update: The bug was related with integrated Bluetooth card on some Dell laptops and is fixed on Ubuntu 22.04: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/17598...
https://github.com/peterhil/spellbook/commit/d3dd9626ef59792...
* Throw useless errors on getter or has methods!
I recently gave up on using MapboxGL.js because of this.
Rosegarden (1.7kb): Cross browser Promise based WebExtension development
## Rationale
I know Mozilla provides webextension-polyfill, but I find even that too complicated.
With my Spellbook bookmark browser extension I promisified the required callback based methods from Chrome API and checked the chrome.runtime.lastError. Eventually I promisified the whole API, while planning on writing another cross platform browser extension.
I have used only bookmarks and tabs APIs, so beware when using other APIs, in case they differ between Firefox and Chrome.
## Usage
import { browser } from 'rosegarden'
Then just use that browser object as you would use the Mozilla's promise based WebExtension API!
It just gives the global object on Firefox, but on Chrome it gives a promisified version of the chrome global object. The browser object has chrome as prototype, so everything should work as expected as long as the APIs work in a similar way.
- Pattern matching in switch statements (done horribly wrong)
- If, while, and switch expressions
- Inferred type system
- Consistent array method argument order
- Actually usable higher order functions and reflection
Big reminder: Php is a fractal of bad design, and I intensely hated using it at work for many years. The only good thing in Php is Symfony2 framework.