I’m using the default Emacs 23 on Ubuntu 11.10 and both the HTML and Haskell flymake modes seem to be broken. For the HTML mode the problem seems to be that the version of
xmlstarlet installed on Ubuntu needs another command line switch to make it print out the information that flymake needs, like line numbers. Here is some elisp code to fix that:
(defun flymake-xml-init ()
(list "val" "-e" "-q"
Strictly speaking I don’t think the
-q argument is actually needed, but it suppresses a superfluous line in the output.
For the Haskell mode, as far as I can tell it simply doesn’t work quite right and the elisp code is broken. Maybe I’m just not setting it up right, but out of the box it does not work. This makes it work using the
(defun haskell-flymake-init ()
(list "hlint" (list (flymake-init-create-temp-buffer-copy
Cheng Luo has translated an additional portion of the Twisted Introduction into Chinese. You can find it on github. Thank you, Cheng Luo!
A gentle introduction to specifying concurrent systems with the Temporal Logic of Actions, and the use of the TLC model checker to test them out.
Piotr Dobrogost has converted the entire series into complete html and pdf versions. Thank you, Piotr!
Yang Xiaowei has translated a large portion of the Twisted Introduction into Chinese. Thank you, Yang!
Nina Evseenko has kindly translated the Twisted Introduction into Russian.
Thank you Nina!
The index page also has links to earlier translations into Japanese and Estonian by Shigeru Kitazaki and Tim Gluz respectively.
Part 22: The End
This concludes the introduction started here. You can find an index to the entire series here.
Whew! Thank you for sticking with me. When I started this series I didn’t realize it was going to be this long, or take this much time to make. But I have enjoyed creating it and hope you have enjoyed reading it.
Now that I have finished, I will look into the possibility of generating a PDF format. No promises, though.
I would like to conclude with a few suggestions on how to continue your Twisted education.
First, I would recommend reading the Twisted online documentation. Although it is much-maligned, I think it’s better than it is often given credit for.
If you want to use Twisted for web programming, then Jean-Paul Calderone has a well-regarded series called “Twisted Web in 60 Seconds“. I suspect it will take a little longer than that to read, though.
There is also a Twisted Book, which I can’t say much about as I haven’t read it.
But more important than any of those, I think, is to read the Twisted source code. Since that code is written by people who know Twisted very well, it is an excellent source of examples for how do to things the “Twisted Way”.
- Port a synchronous program you wrote to Twisted.
- Write a new Twisted program from scratch.
- Pick a bug from the Twisted bug database and fix it. Submit a patch to the Twisted developers. Don’t forget to read about the process for making your contribution.
The End, Really
Figure 47: The End