HNHacker News
TopNewBestAskShowJobs

brunoc

525 karma · joined August 22, 2009

grokking some really weird junk http://js-montreal.org
submissionscomments
brunoc··on Why Most Unit Testing is Waste [pdf]
I love TDD, but that's classic No True Scotsman.
brunoc··on A Modest Proposal for Ethical Ad Blocking
Turning ads into a micropayment mechanism is a pretty clever idea.
brunoc··on Riot.js – A 1kb client-side MVP framework
That may be true, but Todo MVC is a minuscule "application"! It can be used as a way to compare libraries and frameworks in a very superficial way but when you're writing a large web application with many screens, a lot of state, many widgets, lots of routes, various persistence mechanism, etc.

It doesn't have enough features to require or demonstrate the abstractions needed to eliminate boilerplate.

That being said I like what you did with Riot which is basically use plain JavaScript as much as possible. And I also like to you bring attention to the fact that jQuery doesn't cause spaghetti: programmers cause spaghetti.

brunoc··on Canada's Start-up Visa
Toronto, Waterloo, Vancouver, Montreal

In Montreal: Founder Fuel http://founderfuel.com/en/

brunoc··on Hiring front-end developers
Why? It's a silly comment on ExtJS. It's a huge framework but in the right context, it can be exactly the right tool for the job.
brunoc··on Patterns for Managing Large Scale Backbone Applications
I recommend anyone getting into building web apps (regardless of framework) to read Mixu's "Single page apps in depth" http://singlepageappbook.com/single-page.html

It's a short read, it's opinionated and will make you think, especially if you're a novice / intermediate programmer. In particular, the "Writing maintainable code" chapter.

Focusing on things like namespacing is not necessarily a bad thing, but it doesn't address the real goal - writing modular, testable, maintainable code. If your components know where other components are in the namespace and depend on them internally, the namespace hierarchy does nothing to help your design.

The main difficulty in designing complex web applications is managing dependencies between objects, just like any large object-oriented piece of software (assuming that is the paradigm you choose).

brunoc··on Show HN: Soundkeep (Github for music)
Thanks for sharing this.

I'm a musician and while I think the idea is great, I think the mechanics in the demo are too limiting for most remixing work. Typically if I'm working on a remix I would change the tempo, change the song structure, etc. which doesn't really work well with the 'versions of the original stems' metaphor that is used in the application.

Then again it may be interesting to see how people get around those issues to get the results they want. Often times having limitations boosts creativity rather than hinder it.

brunoc··on Can Art be Games?
MoMA posted this a few days ago - they've acquired 14 games: http://www.moma.org/explore/inside_out/2012/11/29/video-game...

tldr:

• Pac-Man (1980) • Tetris (1984) • Another World (1991) • Myst (1993) • SimCity 2000 (1994) • vib-ribbon (1999) • The Sims (2000) • Katamari Damacy (2004) • EVE Online (2003) • Dwarf Fortress (2006) • Portal (2007) • flOw (2006) • Passage (2008) • Canabalt (2009)

brunoc··on Rendering Views in Backbone.js isn't Always Simple
Backbone.Marionette is a nice set of view classes (and a few other things) solving a lot of the typical use cases for Backbone in medium to large application. Amongst other things it provides a Layout view with a simple region manager to take care of 'full page' or large views with sub views.

https://github.com/derickbailey/backbone.marionette

brunoc··on Objectify: A Better Way to Build Rails Applications
No doubt - That's just good OOP. Looks like this gem will help people achieve that.
brunoc··on Objectify: A Better Way to Build Rails Applications
I don't get why these models get bloated. If there's a language that makes it east break up classes into any number of components, surely that's Ruby! Mixins, open classes, modules, etc..
brunoc··on Andro.js
Strings can work fine for event names, I think op is overstating the string hell factor. But say you wanted to eliminate them you could do something like:

  var firstTouchBehaviour = {
    touchCount: 0,
    events: {
      firstTouch: 'FirstTouch'
    }, 
    setup: function(owner) {
      andro.eventer(owner).bind(this, "touch", function(contact) {
        if(contact === "added") {
          if(this.touchCount === 0) {
            andro.eventer(owner).emit(this.events.firstTouch);
          }
          this.touchCount++;
        } else if(contact === "removed") {
          this.touchCount--;
        }
      });
    }
  };
and

  var soundBehaviour = {
    setup: function(owner) {
      andro.eventer(owner).bind(this, firstTouchBehaviour.events.firstTouch , function() {
        console.log("Rarrrrrwwwwwwwwwwwwwwww");
      });
    }
  };
brunoc··on MusicForProgramming();
Is this not the perfect use case for a torrent?
brunoc··on How Basecamp Next got to be so damn fast without using much client-side UI
Not with Rails, afaik. Assuming the routes are consistent, you simply add a 'respond' for JSON and send the relevant chunk of the model. Easy as pie.
brunoc··on If you're using Node.js, you're doing life wrong
If you like Node for system level scripting, you're gonna love this: http://www.jsdb.org/

Don't let the name fool you, it's not only for databases. I would say that it's probably more suitable for general purpose scripts than Node, though some of the APIs are a bit clumsy.

It's not open source, but it's free and cross platform and actually pretty good for a lot of general purpose scripting. Seems that it is developed by a single guy. I found out about it a few years ago and used it to get some things quickly done.

brunoc··on Javascript Best Practices
Perhaps it implies that you've extracted those names into some kind of constant or configuration object or view model that you're using throughout the system; if they change, you change them in one place and the square bracket version keeps working.

I personally find it more useful to deal with forms using some kind of abstraction on top so I doubt I'd use either variations in anything other than a very simple page.

brunoc··on Show HN: HackPad is the best wiki ever
Github does this perfectly. You get a VM, fire it up and you're good to go.
brunoc··on I am afraid to succeed. Help.
Take some time to think about this:

> I've worked hard. I haven't had a vacation or day off in years. (...) My life is wake up, code, sleep.

> When she's done with her day, she goes to play cards with her other friends.

In order of importance, I feel that that you would benefit the most from speaking to your wife, a psychiatrist, a marriage counselor and possibly a lawyer.

Not knowing you personally it is difficult to ascertain your mental state but if your writeup is any indication, you really, really need some time off; not a new startup.

brunoc··on Sinatra::Synchrony - Evented, fast, concurrent Ruby web apps with no callbacks
The beautiful thing about Sinatra is that it is ridiculously easy to pick up and go. With even a small amount of Ruby knowledge you're up and running in no time.
brunoc··on The pros and cons of developing a complete Javascript UI
There are ways around that.

One of the easy ways is to simply in-line your JSON model when you generate the initial page.

So essentially your webpage contains the html structure you need, followed by something like

    <script>
        Myapp.start( { tasks: [ { id: 1, title: 'do something' } ]) 

    </script>
So essentially you bootstrap your application in order to avoid a large AJAX call right off the bat.
brunoc··on Designing command-line interfaces
I'm working on a CLI right now that's rather "complex" in Ruby and i'm seeing the other extreme: CLI frameworks and DSLs. I don't know about other languages but in Ruby your library options range from the minimal (DIY with OptsParser, Trollop) to the gigantic (Thor, Rubicon) and everything in between...
brunoc··on I am an HFT Programmer
Is there any way to play "quant dev" with representative mock data (or historical data even) with similar constraint, etc? I doubt I have the constitution to do this for real but it would surely be a fun game.
brunoc··on Turntable.fm Hits 140,000 Users in Its First Month
I think you're underestimating the 'curating' aspect of DJing. There's no skills involved on turntable.fm other than song selection. Picking the right song at the right time or something new that people find exciting is the biggest payoff in DJing for a lot of people.
brunoc··on Does anyone else think that Apple made terrible decision hiding scrollbars?
You can try it on the latest Ubuntu - it works in a similar way. I haven't had any issues with it.
brunoc··on Reducing Map: jQuery vs jQuery vs JavaScript
Why exactly do you have to do that? Because some other unknown party could have overwritten the prototype with a new map function?

If that's the case, none of the basic objects are safe, not just Array..

brunoc··on Conway's Game of Life Extrusion
Yeah I thought the same thing too - on a larger scale with a couple of smoothing algorithms one could end up with some interesting city landscapes.
brunoc··on ASCII Pronunciation Rules for Programmers [2008]
It is pronounced almost exactly the same way (deux-points, point point) in french Canada. "Double-point" is valid according to Wikipedia, but I've never heard it before.
brunoc··on Save your Cleverness
Usually, it's a phase. Right after one acquires what could be called "mastery" of a language there's a period where even the most complex (or obtuse) ways to use the language seem simple.

After a while that high subsides and one starts seeing the elegance of simple solutions for most things and complex ones where it's warranted.

brunoc··on A Simple Filter to Weed Out Non-technical Co-founders
Or read The Soul of a New Machine.
brunoc··on Ask HN: Does anyone actually code at a hackathon?
Same thing happens in Montreal.
← PreviousPage 2 of 4Next →