Monthly Archives: November 2011

You are browsing the site archives by month.

The Truth of Libertarian-ism..

The point of libertarian-ism is not forgo care, but to encourage people to volunteer care.

When 911 struck I didn’t know what to do, I was scared, and everyone was in shock, and things were closing down. The best idea I had at the time was to go to the hospital and to donate blood. It took 6 hours for them to finally get to me, but, while I was there people came in and brought food to the hospital workers working late, and to the people donating blood. As we where all there together it had a sort of healing effect to just give blood.

After that day I gave blood every 2 months for 6 years while I lived in Milwaukee. But one day, I went in and I was in a bad mood and I made a joke that the Vampires were coming to take my blood, and one of the nurses stopped me and said. Justin, we appreciate your gift, but we do want you to give cheerfully, and if you can’t do that then you should find something else you can do.

That’s the point of Libertarian-ism, we just want people to give cheerfully, rather than by the force of the Law.

The problem with forcing people is that they will fight it, and then we spend time fighting the people who fight it. In the end we end up spending all of our efforts fighting and not caring.

On the other hand, people who give with a cheerful heart, are those that will go an extra mile to care for someone.

I want to live in a world where people want to help each other out, and not say, hey here is a government that can take care of the sick and the homeless and I don’t have to. That’s what my taxes do.

The reality is that everything is in decay because we are leaving it to someone else to fix. What if you started fixing things you saw were wrong on your own?

JSLint-Feature – Error Severity

Hi Douglas,
I have been to a good number of your talks, and I love the idea behind JSLint. I even don’t mind it when JSLint makes me cry every now and then, however, I feel like the priority of JSLint should be around launch successful code early and often.

Here at Kabam we build games that run as HMTL5 apps, and recently we have started to use JSLint as part of our build process. In a few cases it has caught some minor errors and we were later able to resolve them.

Our build process uses Jenkins, which is an open source version of Hanson. These continuous build automation tools make use of another wrapper library you might be familiar with.

So in this sense let’s say a develop wants to add a new piece of code, and this code causes a problem.

JSLint reacts in the following ways,
– it has a an error limit and stops reporting erros after a certain amount
– errors are not prioritized based on ‘newness’ – because that would be hard
– errors are not prioritized based on priority.

The end result is that a team must fix all errors to get the maximum value out of JSLint.

I propose a 2 part solution.
1. JSLint should not set error priority, unless it sets sensible defaults
2. JSLint should report an error code so that a wrapper like jslint4java could use a config file set an error priority.

This would allow teams to triage error types as part of their build/ development process.

On line 1326 you have a function warn() defined I propose it’s written something like so, including a new warning property, defining an error.type property using the bundle[] accessor name as the error code.

If you think of some other change that could get to the spirit of what I am looking for that would be great too. If I get the time I might try to implement a prototype. Hudson and Jenkins have 3 levels of errors, High, Medium, and Low.

Would you have some suggestions as to what would make good defaults for each of the error.types?

I feel like this change would better support agile development and continuous integration, and would allow teams to prioritize their development efforts.

Thank you for being a beacon and leader in the community.

function warn(message, offender, a, b, c, d) {

        var character, line, warning;

        offender  = offender || next_token;  // `~
        line      = offender.line || 0;
        character = offender.from || 0;

        warning = {
            id: '(error)',
            raw: bundle[message] || message,
            type: message,
            evidence: lines[line - 1] || '',
            line: line,
            character: character,
            a: a || ( === '(number)'
                ? String(offender.number)
                : offender.string),
            b: b,
            c: c,
            d: d

        warning.reason = warning.raw.supplant(warning);


        if (option.passfail) {
            quit(bundle.stopping, line, character);

        warnings += 1;

        if (warnings >= option.maxerr) {
            quit(bundle.too_many, line, character);

        return warning;