HNHacker News
TopNewBestAskShowJobs

BFay

93 karma · joined September 5, 2014

https://github.com/brianfay
submissionscomments
BFay··on Dynamics.js, a JavaScript library to create physics-based animations
Since I'm aware of material design, I find myself constantly looking for the animations and trying to evaluate how they work on me, which kind of defeats the purpose. I keep seeing those circles everywhere!

I think it's the right direction, though; animating to subtly direct user attention to the right place.

BFay··on Why I dislike systemd
Don't you have to build every package from source with Gentoo? I can see where that would be useful, but isn't it really time-consuming (or punishing, if you prefer that word)?
BFay··on Beat Detection Algorithms, Part 2
You could probably split the song into frames, detect the BPM of each frame, and plot the changes in BPM over time. This sort of thing would be pretty for pre-rendering metadata about the tempo, which could be useful in DJ software, or big music databases, stuff like that.

The IRCAM research you link to looks really interesting, and I think it would be useful for other purposes, like real-time performance with automatic accompaniment.

BFay··on Simpler UI Reasoning with Unidirectional Dataflow and Immutable Data
Thanks, fluxible looks like it might be the best isomorphic solution available right now, and the fromJS() and toJS() functions are what I would need.

I guess I was initially hoping to use immutable data for the performance benefit; being able to implement a fast shouldComponentUpdate() with a simple equality check.

But I wonder how toJS() and fromJS() performance-wise... if they have to create new objects by deeply copying the objects, maybe that would be just as bad as doing no shouldComponentUpdate optimization.

I guess I'll just stick to the "premature optimization is the root of all evil" concept, and try to get something working with carefully mutable data first.

BFay··on What's the third most common element?
Did anybody else click on this expecting a DOM element? I was guessing <p>
BFay··on Apple Announces Mac OS X 10.11 El Capitan
"dragging windows to the sides of your desktop will auto-fill that side of the screen, saving time spent on re-sizing windows to fill unused space."

I've gotten so used to this feature from Windows and various Linux desktops, I think I would be pretty lost without it.

BFay··on Simpler UI Reasoning with Unidirectional Dataflow and Immutable Data
I really like the Om/Omniscient model of using immutable data to represent application state - deciding whether or not to rerender a component and all of its subcomponents only requires comparing a hash.

However, for the app I'm working on, I want most the single source of truth for most application state to be on the server. I'm passing data from server to client in JSON. Has anybody come up with a good way to serialize/deserialize immutable objects? I might try out transit-js, but I'm wondering if anybody has already gotten this working?

BFay··on Cleaning an Arch Linux installation
I know what you mean - I installed arch a month or two ago, and the hardest thing for me was setting up the boot partition (I wanted to dual-boot the laptop with windows).

My familiarity with grub and the UEFI boot-process was really limited. The beginner's guide and the rest of the Arch wiki are extremely useful, and I was able to get everything set up, but it did take several hours.

Then, a couple of weeks later, my system broke with a kernel update. I hadn't properly set up my fstab to point /boot to the correct partition, so I had a separate /boot directory in the same partition as my root system... stupid on my part.

It was a bit of a pain to fix, because I couldn't boot into the system. I ended up using the USB installer that I had setup Arch with. Now things seem to be running fine again (except that recently "suspend" and "hibernate" randomly disappeared from the shutdown options in my Cinnamon DE... weird).

But yeah, Arch forces you to learn the things that you can just overlook on something like Ubuntu. I takes time, but at least you learn how to fix them when they break. I've shot myself in the foot a few times, but it's been with a BB gun instead of a shotgun.

BFay··on Can your brain really be full?
Or maybe you can jam an SSD in your ear and use it as swap space?
BFay··on Show HN: Mockups fixed by making collaboration effortless, built with React
I'm really impressed with the visual design, and curious about what's being used to generate the CSS.

I'm also wondering, are there any difficulties that arise when working with canvas and svg using just Om, or in plain React?

BFay··on Is ReactJS really fast?
I think the bigger appeal of React isn't the "performance." It's the fact that you can reason about your app as if you are re-rendering the entire application with every change in state. That way you never have to think about mutating the DOM, and you have less places to screw up.

If you actually re-rendered the whole app with every state change, it wouldn't be performant, but with the virtual DOM, it's totally feasible. It is definitely unfortunate that developers take statistics for granted (I'm guilty of this), but it doesn't undermine the usefulness of the framework.

BFay··on Show HN: The first websynth that's 100% mappable to a MIDI controller
I think you really nailed that - OSC is a useful protocol, and it's definitely been used important in computer music (Supercollider for example uses OSC as the protocol for messages from the language to the server).

But the beautiful thing about MIDI is how plug-and-play it is, because of the one standard. You can plug one keyboard into another and boom, you have an instant controller. I can't see that functionality in OSC's future.

0-127 is really limiting though - I've tried using faders where 0 is no volume, and 127 is max volume, and it just doesn't feel like there is enough resolution to fine-tune things.

BFay··on Pixie Pi
Cool, I wanted to use Clojure on the Raspberry Pi, but the startup time is very slow, due more to loading the core Clojure libraries than the JVM.

It makes writing a Clojure web server really impractical on the Pi. I considered using clojurescript for the server, but ended up just going back to node for my project.

BFay··on Building an Infinite Procedurally-Generated World
I agree that using one technique for an infinite world is probably going to get boring pretty quickly, and you can probably get more leverage out of a finite world.

But even with an infinite landscape, I think you could improve the variety by using a generator at different scopes - if your landscape is just one constant type of terrain, like a field, things will get boring. You might have a wide variety of rivers and trees, but the basic idea is the same. But if you have another generator controlling the terrain type - going between plains, desert, mountains, etc., that would be really interesting. At the small scope, variation in trees and water is still the same level of change, but there is also a larger scope that changes the overall feel at a much larger radius.

BFay··on Vivaldi Browser Now Features Improved Support for Large Screens, Mouse Gestures
You actually can customize the size of the dock, and have it set up to hide/show based on mouse position or keyboard shortcuts. There's a lot of options if you install "unity-tweak-tool"

There are also some nice alternative icon sets, like the Numix icons. Overall, I really like Unity now compared to when I first tried it a few years ago, and I'd rather use it than Windows 7 or 8. But it probably does need a couple of tweaks to fit your needs.

BFay··on Vivaldi Browser Now Features Improved Support for Large Screens, Mouse Gestures
The most exciting thing I noticed playing around with the tech demo is that in the developer javascript console, Ctrl+U clears the line and Ctrl+L clears the screen (just like in a bash terminal).

The developer console is actually stripped straight out of Chrome, so I probably shouldn't be so excited about that...

It is a nice looking browser, too.

BFay··on Dogelang
I was expecting dogescript: https://dogescript.com/

Love the fake O'Reilly book and "NOT'REALLY®" joke.

BFay··on Ubuntu 15.04 released
I look forward to trying it! RhythmBox is okay, but there's something about the window behavior that bothers me - IIRC the application still plays in the background when I hit the close button, it always throws me off.
BFay··on Why don’t our brains explode at movie cuts?
Cool, I never knew there was a name for that. Watching lost, I would always know a flashback was coming up when I started to hear the ambient noise of the next scene. (Or maybe there was a special flashback sound effect? Some kind of swoosh? Having trouble remembering...)
BFay··on Android’s 10 Millisecond Problem explained
If you think about it, speed of sound is about 340.29 meters per second... also 0.34029 meters per millisecond... also 1.11644 feet per millisecond.

So 5ms vs 10ms latency is like the difference between having your amp 5 feet or 10 feet away.

BFay··on Android’s 10 Millisecond Problem explained
Pulseaudio has gotten a really bad rep, and I think there was at time where it was legitimately awful, but I think it's better than it was.

On mainstream distros with pulseaudio like Fedora or Ubuntu, audio just works, when you don't have low-latency requirements.

When you do have low-latency requirements, things are a bit tricky. You do pretty much need to get a low-latency or realtime kernel, and you definitely want to use Jack or ALSA. Maybe this setup is a little more frustrating than Windows, where you may just need to install one driver like ASIO4ALL.

But it's flexible, and you can actually get Pulseaudio and Jack working pretty well together after installing the pulseaudio-module-jack. You can turn on jack when you need it, turn it off when you don't, and all of the pulseaudio stuff will get routed through it so that you don't lose sound from your other applications. If you want, you can route audio from pulseaudio into whatever other audio applications you're using - sometimes I like taking Youtube videos and routing the audio through weird effects in Pure Data.

I toggle jack on and off with this little script, works pretty well for me right now: https://gist.github.com/YottaSecond/f0a1b515f95b2e791755

BFay··on What part of “No, Totally” don't you understand?
The different possible origins of this phrase are interesting. The article mentions a couple, and there's some in the comments here.

I've always seen it as I'm saying "no" to alleviate any doubt the other person had that I did not agree with their statement.

The conversation might go: A. I really think "OK Computer" is the best Radiohead album. B. No, totally!

But the implication is more like: A. I think "OK Computer" is the best Radiohead album. Am I crazy for not picking "Kid A" or "In Rainbows?" B. No, I don't think you're crazy for liking "OK Computer" the best. I totally agree with you.

Does anybody else see it this way? (Please respond with "No, totally!" (It's okay if you don't like "OK Computer"))

BFay··on Taming the asynchronous beast with ES7
Does this offer any benefits over building coroutine functions with generators? The "co" library (and probably some others) do this.

https://github.com/tj/co

It seems mostly like a syntactical difference to me - with coroutines you "yield" instead of "await." You can still wrap things nicely in try{} catch{} blocks.

But the readme for co does mention that it's a stepping stone towards async/await. I like that ES7 will allow us to write this style of function without including an additional library, but apart from that, is there a big gap in functionality between the different approaches?

BFay··on How I Taught My Computer to Write Its Own Music
That's how I feel - the tone of this writing irks me a bit. I don't want to detract at all from the work these authors did, I like it a lot. But the text here is fluffy and frankly somewhat narcissistic.

Lejaren Hiller showed that computers can compose competent music in 1957 with the Illiac Suite. Since then there have been countless other using computers doing things like the project in this article (Autechre is a PERFECT example).

I love that people are doing work like this and sharing it (full disclosure, this is a hobby of mine), but I wish it were presented in a less pretentious way (although admittedly this comment could probably also be a lot less pretentious).

BFay··on CrunchBang Linux: The end
Sound is such an annoying thing to troubleshoot on linux. I'm pretty happy with the way Pulseaudio handles on the mainstream distros, but sometimes I do more intensive audio work where I need to use Jack and the configuration can get confusing.

We can send pulse through jack now and everything works out pretty well, but setting this up seems like a slightly different process on every distro.

BFay··on Boot: Getting Started with Clojure
Ah, I guess you're right. I'm considering buying an Odroid, maybe startup will be a bit faster (hopefully it's not this bad for all ARM devices)
BFay··on Boot: Getting Started with Clojure
There's some mention of clojure being used as a scripting language here that can be invoked with a shebang - does anybody know if the way this is done is any different (performance-wise) than compiling a leiningen project to an uberjar?

When I've tried using clojure for really simple things, like a "Hello, World" program, and compiled this to a jar to run with something like "java -jar hello.jar," the time it takes to start up the program is pretty abysmal. I'd like to use clojure for something on the Raspberry Pi, but it can take about 30 seconds to run "Hello, World!"

Any secrets to getting it to start up faster, or am I just stuck?

BFay··on Scsh Reference Manual
0_o This might be amazing, but I think I'll stick with zsh or really any other shell where the author doesn't threaten murderous rampage ☠ ☠ ☠ ☠ ☠
BFay··on Java 8: No more loops
I welcome the functional features, but I have to agree that these specific examples are ugly compared to the more familiar alternatives.

Maybe this will look more readable after getting used to it, but I'd much rather be looking at Clojure or Scala for now.

BFay··on List of University Courses for Learning Computer Science
Do you have any recommendations for a good linear algebra course/book? I've studied some DSP coming from a pretty limited math background (High School + 2 years college calculus) Linear algebra is one of many topics that's kept me from digging into advanced material.
← PreviousPage 2 of 3Next →