Update: the times reported by the Bench utility are CPU times, i.e. they represent the time spent working by your various CPUs. The “real/wall” time, i.e. the time you effectively have to wait as a user, is usually a third less than that. So the “real” time for my blog went roughly from 7 seconds to 5 seconds.
In a previous blog post about PieCrust performance, I mentioned how static site generators are dependent on the performance of their formatting and templating libraries. One of the most common formatters are Markdown formatters and, by default, PieCrust uses Python Markdown. It’s the easiest one to install and use, but it’s far from the fastest one.
As far as I know, the fastest one that’s still maintained is Hoedown, for which some Python bindings exist. And if you have a recent enough version of PieCrust, there will be support for a Hoedown formatter, as long as you install Hoedown. You can do that by running
pip install hoedown.
Once installed, you can make replace Markdown with Hoedown by writing this in your
config.yml, or in a config variant:
Any extensions you have declared for the Markdown formatter generally also translate directly to Hoedown:
extensions: [fenced_code, footnotes, smartypants]
The performance increase can be pretty noticeable. For instance, on my ancient MacBook Pro (2.4GHz Core 2 Duo), this blog takes almost 9 seconds to bake:
With Hoedown, the time goes down to 7.2 seconds:
Pretty worth it if you ask me! Now most of the time spend baking happens during templating with Jinja2… time to look for a faster alternative?
The “Apple removing the headphone jack plug” story is warming up again.
The 2 best arguments against removing the jack plug in favor of a digital port, in my opinion, have been put forward by Patel and Streza in the previously linked articles:
- Opportunities for audio DRM.
- Necessity to move the DAC and amp into the headphones – which will most probably sound worse than before on average, or raise the price of headphones in general.
I can add one more that I haven’t seen yet:
- A shared connector like Lightning or USB (as opposed to a port dedicated for headphones) means a connector that will change in a few years. Some of us buy expensive headphones that we expect to last for 10 or 20 years – well below the life expectancy of those digital ports.
The interesting thing though is that pro-removal people often make a weird logical leap. For instance, Gruber:
Should the analog headphone jack remain on our devices forever? If you think so, you can stop reading. If not, when?
He does his best to compare the jack plug to floppy disk drives, and how eventually it will all work out and Apple will once again be proven right in their forward thinking awesomeness… but the floppy disk drives weren’t replaced with a proprietary Apple device. They were replaced with USB sticks and downloads, all of which are superior in every way to floppy disks. It’s definitely not the case for the Lightning port – to quote OSNews’ Thom Holwerda: “as far as I can tell, there are only downsides”.
The whole point isn’t whether the jack plug is up for grabs or not – it’s debatable whether it should be right now, but nothing is sacred in technology. The whole point is that the replacement needs to fulfill the basic requirements that we expect from something to use headphones with. The Lightning port fails so many of those requirements (“standard” being probably the most important one) that it’s a really bad and, yes, user-hostile choice.
It’s a great choice for Apple however. It grows their accessories revenue, strengthen their hold on their users, and generally speaking puts them even more in control. It’s such a great idea for Apple that I can actually totally see them doing it. A lot of people will complain, but pretty much everybody will put up with it, as the cost of switching is much higher than the cost of tagging along. And what does it matter if it splits the audio market in two because of the proprietary port? It’s not like Gruber and other Apple bloggers are very sensitive about life outside of the walled garden anyway.
PieCrust 2.0rc1 is now out! The last piece of the puzzle (or should I say the
pie?), page generators, is now in place.
You can run
pip install piecrust --pre -U to update from PyPi, or grab it from
BitBucket or GitHub.
More details after the break.
These past couple days most of the video games development community was set on fire by some pretty bad article written by some pretty famous guy on some pretty high traffic website. I’m not going to comment on it – other people like Rami Ismail did that very well already. Interestingly enough, it revived the old debate about “passion” and “crunch”, and we’ve seen a fair number of interesting articles about it as a result. This is not one of those articles either.
What this is is just a simple look at what’s going in my team, Frostbite Cinematics, which I think is interesting because Frostbite is in a fairly unique position in the industry, and that translates to a fairly different approach to overtime.
Spoiler alert: there’s pretty much none.
PieCrust 2.0 beta 5 is now live on PyPi, so you can go ahead and
install --pre piecrust -U to get it.
The 2 big new features in that release are the last reasons I switched to Python
for PieCrust 2 after packaging and multi-core support: better ways to launch
and manage sub-processes. This lets me do:
- Publishing support, because baking your site is only the beginning, and you
actually need to upload that stuff somewhere.
- “FoodTruck”, an optional administration panel to work on your site(s) the
same way you would with a traditional system like WordPress.
More after the break.