Newly Minted: JavaCC/JJTree Plugin for Gradle

I used to have a hackish JavaCC plugin under my Gradle-Plugins project, but I have ported it over to the Compiler plugins infrastructure that I announced before, and also added JJTree as part of the mix. This new approach solves a myriad of annoying edge cases in the old JavaCC plugin. The biggest benefit of the new version is that the process now integrates seamlessly into the normal Java compile, so you don’t have to split up your Java code into multiple different places. The second biggest benefit is that you can have more than one JavaCC per project (you now get one per source set, like in all the other languages).

Relevant pages with hopefully obvious URLs:

This is probably it for compilers for the moment. Left to my own devices, I’ll be releasing compilers for Ashlar (my own language) and BiteScript next, but they’re going to be a while into the future. An update to the Mirah one will be forthcoming when Mirah hits a slightly more stable point.

Posted in Gradle | Tagged , , , , | Leave a comment

Nuclear Rationality

In the wake of Fukushima, an awful lot of irrationality has been going around about nuclear power. Some of it, I’ll grant, is on the anti-nuclear side of things. Especially with people thousands of miles away being terrified of radiation. But, at least from what I’ve seen, far more of it has been on the pro-nuclear side of the debate. I keep seeing the same fallacious arguments tossed around, the same straw man attacks, and I have to rebut them.

Read More »

Posted in Politics | 4 Comments

“Chillcast” 5th Anniversary Compilation

If you haven’t discovered Anji Bee and the Chillcast, your life is now better. If you know Anji Bee and the Chillcast, then you should probably know she’s pulled together a one hour music compilation to celebrate the 5th anniversary of her excellent Chillcast. It’s one of these name-your-price deals (and “free” is acceptable), so go check it out. I’m a big fan of the Chillcast (along with Dave’s Lounge) for coding background music.

Play
Posted in Sample Podcasts | Leave a comment

I officially hate Apple

So Apple announced it’s new rules for apps on their iPhones and iPads accessing paid content. The rules are pretty simple, albeit it evil:

  1. If you provide an app to view your paid content on the iPhone/iPad, you have to be able to register for the paid content via the app,
  2. If you register for the content from the app, Apple gets 30% of what you pay,
  3. The cost of registering via the app can not be higher than the cost of registering elsewhere.

So now, let’s look at the situation from, say, Amazon’s perspective. The online videos, music, ebooks, etc. they sell on line don’t have a 30% profit margin to give to Apple, so to pay the Apple extortion, they need to raise prices. But they can’t just whack the iPhone users- that violates rule 3. So they have to raise prices on everybody. In other words, even if I don’t own an Apple iPhone or iPad, I’m going to have to pay higher prices for my online content, to subsidize you iPhone/iPad users. You using an iPhone or iPad has now become my problem.

If the government as levied a, say, 10% tax on internet transactions, we’d all be up in arms. But Apple pulls the same damned stunt, and we’re all like “well, that’s OK then”? Spending money to provide for the common defense and promote the general welfare is bad, but subsidizing a greedy corporation is kosher?

Even if Apple backs away from this, I’m done with them. My philosophy is simple: Fuck Apple. And fuck all the black beret wearing “Think Different” drones who still support Apple.

Posted in Software Business | 12 Comments

New Gradle Plugin: DepNames

I just released the DepNames plugin for Gradle. It’s part of my gradle-plugins collection, appearing in version 0.6.6. You can read the description with an example from the README, but the basic idea is that you can create “keywords” for your common external dependencies.

So this line:

dependencies {
  compile "org.apache.felix:org.apache.felix.framework:3.0.1"
}

Becomes this line:

dependencies {
  compile felix
}

And if you can upgrade your definition of felix in one place and all your projects get the same upgrade. The dependency keywords can be defined in either the root project or globally (with the root project definitions trumping the global ones).

Posted in Gradle | Leave a comment
  • Categories