Profile cover photo
Profile photo
Toumani Bagayoko

Cover-before-pushing driven development :-)

... The great thing is then you can write your tests when you feel like it; just before pushing.
Add a comment...

Post has shared content
Hehe ...
This totally nails it on the.... OOOHHH SHINY!
Add a comment...

My Makeshift Standing Desk ... Not that Awesome so Far

Still working on the experiment but so far my makeshift standing-desk setup at the office doesn't seem so ergonomic. I don't this is at all a problem with standing per se, yet rather with using a laptop; once the keyboard is at the right height with respect to my elbows the monitor is then naturally too low. Looking straight ahead seems more natural, yet I of course have to look down at my screen. Hence my neck gets angled and my torso angled forward slightly unless I'm very careful to avoid this (which is tricky). (Also the shelf is about a foot away from the lip of the desk, so I also tend to lean forward just to be close to the keyboard; but maybe training not to do that is a good exercise.) Unfortunately the makeshift nature of my setup doesn't afford many options - the "standing desk" is a shallow metal cube shelf; so no room for a monitor which would either by too close to my face or to the side (which I think presents some other posture problems) ... Meh ... maybe I just need to be selfish and convince my employer to buy me and others interested a real standing desk. Or not: sitting in a chair and lying back while typing always feels great to me, actually. The only back/neck problems I get when sitting are when I'm in a chair that tends to make me lean forward in a hunched position.

[DISCLAIMER: I'm entirely uninformed on ergonomics, so consider everything in this post unscientific, casual anecdote. Personally, I'm not completely sold on standing all day. I think this presents a range of other problems. I think the real strategy for eliminating bones problems, etc, is changing your posture continuously and interspersing some activity throughout the day: not sitting for too long, keep yourself active by fidgeting some even when you're sitting, get up and break dance (if your office mates are cool with that) every 20 minutes, etc.]
Add a comment...

Post has attachment

Post has shared content
The Beatlounge is now open sourced.

Make music with Python. Now that it's opened, we will surely be shamed into cleaning it up, making nice documentation, getting superfluous stuff out of the core, working on the extensibility, etc. Hopefully have it all nice and clear by PyCon. Will be some sprinting on it this weekend. +Drew Smathers
Add a comment...

Post has attachment
The BeatLounge

A computer music project +Skylar Saveland and I have been working on in our spare time (like much of that exists anymore) called the BeatLounge is now ... [drumroll] ... open source. Scratched our initial plan of global domination (which included acquiring Roland and Yamaha [1]) and just went for the community appeal. Rather than perfect it, we decided to release as is (well sort of, there's no downloadable versioned release as of yet).

So there's a lot of things that will be refactored, deleted etc in coming months so expect some instability until there's a release (if ever).

Note also, we have a plethora of compositions which are in a separate private repository and unfortunately require some sound fonts whose licensing won't permit us to share ... yet (acquisition of Roland and Yamaha isn't necessarily off the table [2]). We're looking at finding/making some sound fonts etc that will work under fair use or can be downloaded separately so the project can include some actuall examples!! Yeah, those would help. ;^)

In shorter time, look forward to some intro docs sans actual sound fonts ...

BeatLounge Features

* Isochronous scheduler with configurable tempo and meter
* Pluggable clock synchronization (System Time and Midi Beat Clock)
* Pluggable backends for virtual instruments (current implementations are pyfluidsynth and generic)
* A high-level interface for virtual instrument players
* Arpeggiators, drum sequencers, and general pattern generators
* Constants mapping musical notes/chords/scales to MIDI note values and some fun-loving functions over those things: chord inversions, and some crazy (as in crazy awesome) thing we've dubbed grasshoppers
* A python console-based live-coding environment (beatlounge)
* Beginnings of near plug-and-play integration with MIDI and OSC devices
* Some OSC utilities leveraging txosc and mappings to popular embedded OSC applications (touchosc, andosc, wiimote - via osculator)
* A (malas palabras)y beat slicing algorithm that can almost sound boss given the right conditions
* A grab bag of almost good things that are about to get tossed and completely rewritten with a different API.
* Unit tests! Did I say they run fast?
* Some things we'd rather not talk about.

Get The Code

bitbucket: (might be stale)

[1] Not really ...
[2] Again ... not really ...
Add a comment...

Post has shared content
Add a comment...

Post has attachment
Hold that typing sir ... We don't need some unreadable, inefficient code to deal with SHA-1 collisions!

It kind of disturbs me when someone expresses concerns about uuid or sha-1 collisions in a typical application ... Had to stare at a piece of code in the guts of an app I'm maintaining that treated collisions as a real problem when saving objects to the database. Eek.

"... you should be aware of how ridiculously unlikely this scenario is. The SHA-1 digest is 20 bytes or 160 bits. The number of randomly hashed objects needed to ensure a 50% probability of a single collision is about 2^80 (the formula for determining collision probability is p = (n(n-1)/2) * (1/2^160)). 2^80 is 1.2 x 10^24 or 1 million billion billion. That’s 1,200 times the number of grains of sand on the earth.

Here’s an example to give you an idea of what it would take to get a SHA-1 collision. If all 6.5 billion humans on Earth were programming, and every second, each one was producing code that was the equivalent of the entire Linux kernel history (1 million Git objects) and pushing it into one enormous Git repository, it would take 5 years until that repository contained enough objects to have a 50% probability of a single SHA-1 object collision. A higher probability exists that every member of your programming team will be attacked and killed by wolves in unrelated incidents on the same night."
Add a comment...

Post has shared content
Before you speak.... THINK

T - is it TRUE?
H - is it HELPFUL?
I - is it INSPIRING?
N - is it NECESSARY?
K - is it KIND?

Stolen from my sister-in-law's Facebook page
Add a comment...

Post has attachment
The Web might be too Self-Referential

Why is it all the new technology seems to center around technology itself? A translation system for translating technical documentation [1]? Awesome! But ... I actually want an application (#lazyweb) for translating postmodern Japanese poetry with an emphasis on typography, æsthetics of typographical ligatures, ... Also, I don't really want free online coursework from MIT or Stanford on computer science topics more than some courses on the history of North American Indigenous Cultures, Molecular Biology, Green Architecture, Experimental Neurology, Folk Theorem ...

I hope to play some part in enabling the next phase in technology: making some of the self-referential aspects an oddity rather than the norm.

Add a comment...
Wait while more posts are being loaded