Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Mongrel Shortcuts

samzenpus posted more than 7 years ago | from the serve-it-up dept.

Book Reviews 53

Simon P. Chappell writes "I'm not normally much of a one for reading and learning out of eBooks, but after a little gentle persuading from my regular contact at the publisher, I agreed to take a look at their Mongrel Shortcut eBook. Mongrel is a pure Ruby web server, and while it is normally associated in most people's minds with Ruby on Rails, it is actually possible to run it standalone, anywhere that you have Ruby. As one who is very firmly in the "dead tree" camp for my choice of reading media, I was surprised to find myself impressed with Addison Wesley's range of Shortcut ebooks; they really are close to the readability of regular books." Read the rest of Simon's review.

The obvious market segment for this book is the Ruby on Rails developer who wants to understand more about the server that their application is running on and who would like to take more responsibility for it's installation and ongoing maintenance. A second target audience would be those who are looking for a small, efficient and robust web server. Mongrel, through strict adherence to the HTTP 1.1 specification has stayed small and very resistant to many forms of Internet attacks. There is a demand for that kind of server and this book will help those who need it.

Interestingly, these shortcut books are not available through the normal online bookstores. They are currently only available through www.awprofessional.com/ruby or www.informit.com/shortcuts. I'm not sure of the logic behind this and I wonder if that isn't going to hamper sales efforts.

At the risk of pointing out the obvious, this is an eBook and as such is supplied as a Portable Document Format (PDF) file. There are two big positives for me with this book. The first is that the file has no Digital Rights Management technology. This means that you are free to copy it to your computer, but you cannot share the file with anyone else. This is very reasonable approach for Addison Wesley to take and I applaud them for this. Now that they've shown their trust in us, I just hope that those who purchase this book will abide by those conditions. (Apparently, they don't trust me as much as they trust you, because my copy has "Review Copy Only" on the top of each page! :-)

The second positive with this book is that it's formatted with landscape orientation. This means that the long side of the page runs horizontally and thereby allows the whole page to fit nicely on a standard laptop screen with a very readable text size. Landscape orientation makes for very a clean page layout, a matter of vital importance if you're expecting folks to read it from a computer screen.

As far as the structure of the content, this book eschews chapters in favor of sections. Of course, with no section more than twenty pages long, calling them chapters would have been stretching a point. The nine sections cover about every aspect of using Mongrel that you could hope for in a short book.

The first section introduces the book and explains the formatting used as well as the special little sidebars called "Zed Sez". These are highly opinionated, but very insightful, asides on aspects of Mongrel; they cover reasons for writing it and why it was written the way it was. Section two is an introduction to Mongrel itself, the benefits of using it and the license that it is made available under. Section three works through everything you need to know to get started with Mongrel. Naturally, this includes installing it and basic usage.

Section four covers configuration and the array of command-line options available to the developer or administrator running Mongrel. Section five looks at production deployment and examines a typical deployment. Now, production deployments are an art in themselves, so not every aspect can be covered in a section like this, but it does get you started and presents a not unreasonable approach. Section six explores the options for extending Mongrel. Write your own commands, handlers and plugins; this section will show you how.

Section seven shows how to debug your Mongrel configuration and applications. Section eight looks at performance, another thing that's hard to generalize. Here the emphasis is mostly on gathering data so that you can make meaningful decisions for your own situation. Finally, there is a collection of resources; links for Mongrel, and frameworks that run on it.

In addition to the reasons to like the book that I mentioned back at the start of the review, the book is very authoritative. Having Zed Shaw, the primary author of Mongrel, as the co-author is a powerful help of course. Speaking of Zed, I very much enjoyed his little "Zed Sez" sidebars. To describe his style as "pithy" might be an understatement, but they are certainly very informative and they give interesting insight into the writing of a rising star open-source software package.

For all of the positives, there is no hiding the fact that this Shortcut eBook is only 106 pages long. One of the consequences of this is that there is reduced depth. The material that is in the book is very good, but I know that there were a couple of places where more material would have been very useful. So, if you normally look for vast tomes of ultimate completeness, this might not be a good selection for you.

In conclusion, this seems like a very useful guide for anyone who is starting out to configure and use the Mongrel web server for their Ruby projects.


Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×

53 comments

Sorry! There are no comments related to the filter you selected.

Is this a commercial? (-1, Troll)

Anonymous Coward | more than 7 years ago | (#17291286)

or is this a commercial?

I can't decide

Nice examply of Irony (2, Funny)

DigitalReverend (901909) | more than 7 years ago | (#17291328)


Slashdotter writes eBook giving opinion of eBooks.

+1 on the "Zed says" notes (2, Insightful)

tcopeland (32225) | more than 7 years ago | (#17291358)

They are indeed one of the nicer parts of the book. One of them says, more or less, "if you're SSH'ing into your server more than once a week, you haven't automated things well enough." So true!

Positive Reviews (3, Interesting)

Anonymous Coward | more than 7 years ago | (#17291364)

If you take a look at the reviews Simon has done at http://techbook.info/ [techbook.info] you will see there isn't a negative review among them. So take whatever you read with a grain of salt. This is probably why the publishers keep bugging him to review their books.

Re:Positive Reviews (1)

Russ Nelson (33911) | more than 7 years ago | (#17291874)

On the other hand, maybe he just can't get through more than a few pages of books he doesn't like?

Re:Positive Reviews (0)

Anonymous Coward | more than 7 years ago | (#17292114)

Slashdot book reviewers are volunteers. Not many people read sucky books more than a few pages. Although occasionally someone does [slashdot.org] .

Re:Positive Reviews (0)

Anonymous Coward | more than 7 years ago | (#17292290)

Or maybe he declines to take an authoritative "do read, or don't read" approach to his reviews. This review in particular, he does mention a few shortcomings to the book, and based on those, recommends it only for a particular type/level of administrator. It sounds like he keeps an open mind about how different people may find different types and depths of information useful. It seems to me that in giving this book a good rating, he's merely saying it's good at what it does, and he defines what it does in the review.

Re:Positive Reviews (3, Informative)

The Masked Rat Fink (68826) | more than 7 years ago | (#17292362)

Actually, I trashed Will Iverson's book on Jakarta Commons and I have the hate mail from the author to prove it!

http://techbook.info/reviews/IversonApacheJakartaC ommons.html [techbook.info]

Actually, the reason that most of my reviews are positive is that I get a very large amount of choice over what I review. When the publisher sends me a copy of their catalog and asks what looks interesting, you can bet that I'm going to pick something that I think I'll like. I'm only human.

That said, I actually did not want to review the Mongrel eBook, but after more than a little persuasion (but no money) from the publicist I did it as a favour.

Simon

Re:Positive Reviews (1)

Paradise Pete (33184) | more than 7 years ago | (#17294362)

If I might make a small suggestion - consider reducing the frequency of the word actually in your writing.

Re:Positive Reviews (1)

The Masked Rat Fink (68826) | more than 7 years ago | (#17301206)

Actually, that's a good point. :-)

Who is Paying for All of This? (0, Offtopic)

Anonymous Coward | more than 7 years ago | (#17291378)

Seriously, who is behind Ruby on Rails and how big is their budget for Slashvertistments? I want to know this so I can avoid Slashdot until the budget is empty and I can be comfortable in knowing that there won't be some obfuscated headline trying to dupe me into reading yet another Ruby on Rails article.

I know this stuff is being piped in from a professional marketing department somewhere because the editors are not doing any of their usual stupid editorializing, nor do the submissions themselves bear the usual Slashdotter trademarks of mispellings and gammar errors. That and every single mention of Ruby on Rails has is capitalized to ensure that Ruby on Rails is burned into your mind like an EEPROM which is right where the Ruby on Rails corporation wants Ruby on Rails to reside. Ruby on Rails.

So anyway, fess up. How many more ads for Ruby on Rails can we expect?

Re:Who is Paying for All of This? (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17291564)

Holy Ruby on Rails screwup, batman:

s/mispellings/misspellings/
s/gammar/grammar/

Re:Who is Paying for All of This? (1)

Timesprout (579035) | more than 7 years ago | (#17291744)

Quite a few unfortunately if the experience of TheServerSide.com is anything to go by. Also you can expect to see rails enthusiasts injecting comments like 'This is so much easier in Rails, I only had to think about it and the scaffolding automatically provided an implementation using only two variables, a semi colon and 3 whitespaces.' in any discussion of web development technology.

Re:Who is Paying for All of This? (1, Informative)

Anonymous Coward | more than 7 years ago | (#17296160)

Yeah, because anyone that uses Rails framework professional relies solely on its scaffolding features.

I think you're confusing Ruby with Python regarding the white-spacing.. no semi-colons either. (though you can use them if you _really_ want.)

You aren't Joel Spolsky are you?

If you don't like reading book reviews you can make the stories not show up in the preferences of your Slashdot account.

Re:Who is Paying for All of This? (2, Interesting)

Almahtar (991773) | more than 7 years ago | (#17297514)

Have you ever actually used Rails? Just try Rails with the Goldberg generator once and you'll never go back. I've neverseen a site that one could customize so easily just by using it, including access permissions, view configuration, content, you name it. This is just one of very many powerful generators available for Rails.

Aside from all its technical merit, the fact that it's open source alone should tell you there's probably not much (if any) commercial backing to it. Businessmen, not generally (and I emphasize that I know I'm making a generalization) tech savvy, tend to look at open source projects and doubt them simply because the project is free and businessmen tend to think money always runs every part of the world. It makes them feel they can't trust it as an investment in any way.

As far as complaints about correct capitalization: most of the time I respect the intelligence of a person more when their spelling and grammar is correct. The words Ruby and Rails are proper nouns, and thus should be capitalized. When you're complaining that people aren't picking on capitalization, then saying it's a problem that peoples' capitalization is correct, should you be questioning whether or not you're making truly rational judgment?

Re:Who is Paying for All of This? (-1, Flamebait)

Anonymous Coward | more than 7 years ago | (#17297778)

Or if you do actual web development, you will laugh when you realize that "this pile of shit is what those idiots are creaming themselves over?!", and then you will delete it and go back to work. Rails is all about marketing and lies. When MS is more honest about their software than you are, you need to consider a job more suitable for your skills, like politics or child molesting.

Re:Who is Paying for All of This? (1)

Black Perl (12686) | more than 7 years ago | (#17300198)

That's what I thought too. I was VERY skeptical of all the hype. Until I tried it, and found that I like it. Not necessarily Rails specifically (ActiveRecord rocks though!), but the whole idea of quick-to-implement best-practice MVC web apps that are flexible enough to build anything you want with. I'm going to try Django now too. One cannot deny that Rails is an inspiration for a whole new genre of tools in many languages (Catalyst, Django, Grails, Trails, Seaside, etc). I believe that Rails is a disruptive technology [wikipedia.org] because whether or not Ruby and/or Rails survives, web application development will never be the same.

Re:Who is Paying for All of This? (1)

jimjamjoh (207342) | more than 7 years ago | (#17303340)

"people" is a plural noun, and thus it's correctly "people's" rather than your "peoples'" when using the possessive. i'd respect your intelligence more if your grammar was correct.

Re:Who is Paying for All of This? (1)

Almahtar (991773) | more than 7 years ago | (#17304190)

The noun "people" takes an irregular plural form. This makes it an exception to general grammar rules. I'd respect your integrity more if you didn't make the petty move of intentionally ignoring the fact that grammar mistakes on irregular plural possessives are something people do quite commonly and are often even typos. You're clearly using that intentional denial of reason as an ad-hominem attack to discredit my reason and believe what you want to.

Oh, and I'd respect your intelligence more if you realized that ad-hominem attacks don't even address the issues being discussed. If you'd like to debate an issue, debate the issue, not the opponent.

Re:Who is Paying for All of This? (1)

jimjamjoh (207342) | more than 7 years ago | (#17304344)

the ad-hominem attack was not used to discredit your argument (such a claim is nowhere in my post, explicitly or implicitly), it was used to personally discredit you by way of illuminating the irony of your debasing the intelligence of others based upon poor grammar while making a grammatical error yourself.

i stand by the personal attack while fully respecting your argument. goldberg looks neat.

Re:Who is Paying for All of This? (1)

Almahtar (991773) | more than 7 years ago | (#17306434)

I see where the misunderstanding is, then. The direct quote from me is "most of the time I respect the intelligence of a person more when their spelling and grammar is correct". This only states that I get a positive impression of people with correct grammar. You implicitly assumed the inverse, which is a reasonable thing to do most of the time, but this time it wasn't correct. To me, correct grammar is evidence of intelligence, but I don't believe incorrect grammar is evidence against it: it's no evidence at all. It confused me when you said I was "debasing the intelligence of others based upon poor grammar" because that's something I make a pointed effort not to do: it didn't sound like something I'd say.

Re:Who is Paying for All of This? (1)

jimjamjoh (207342) | more than 7 years ago | (#17314362)

point taken. there's an annoying culture of "grammar nazi-ism" here on slashdot, and while your post content was informative enough, it then seemed as though you took the opportunity of your writing to affiliate yourself therewith.

but you're right, i can't assume that poor grammer is met with a poor impression on your part just because you claim to gain a positive impression from good grammer (& capitalization), and my error in this assumption is awknowledged.

sorry for the trouble...the zeal with which i campaign against elitism, as with any zeal, can sometimes rob reason.

Mongrel is not _pure_ ruby (2, Informative)

CableModemSniper (556285) | more than 7 years ago | (#17291396)

Its HTTP request parser is C, generated by the Ragel state machine compiler.

Re:Mongrel is not _pure_ ruby (2, Funny)

Timesprout (579035) | more than 7 years ago | (#17291488)

Maybe thats why they called it Mongrel.

Re:Mongrel is not _pure_ ruby (1)

Almahtar (991773) | more than 7 years ago | (#17297538)

Nothing can be _pure_ Ruby. Ruby binds itself to the lowest level architecture it can through C. Hey - it's better than assembler. That'd just create maintenance headaches up the yin-yang: they'd have to write their own implementation on every hardware platform rather than using the standard C ones, and every time the C implementations got an update they'd have to update their stuff by hand.

C is a language that is low enough level that I see no significant performance hits in abstracting to it over assembly.

Re:Mongrel is not _pure_ ruby (1)

CableModemSniper (556285) | more than 7 years ago | (#17298568)

Mongrel does the ruby equivalent of "dropping down to assembly for the speed critical parts". This makes a difference for some people. For instance it means you need a C compiler or pre-compiled binary for your architechture to install mongrel. This is in contrast to a "pure" ruby lib in which all the lib's source files are in ruby.

Re:Mongrel is not _pure_ ruby (1)

Almahtar (991773) | more than 7 years ago | (#17302920)

My misconception. Thank you for clearing that up.

Re:Mongrel is not _pure_ ruby (1)

Slashdot Parent (995749) | more than 7 years ago | (#17300318)

That's because any sentence that includes the words "ruby interpreter" and "performance" by law must also include the words "dog slow".

Maybe that's why it's called "Mongrel".

Mongrel itself is pretty sweet (4, Interesting)

tcopeland (32225) | more than 7 years ago | (#17291420)

It's supplanted Apache+FastCGI as the preferred way of deploying Rails apps in a very short time and seems to be a much better solution all around. "gem install mongrel mongrel_cluster" sure beats the steps necessary to get FCGI running.

I wonder how many people have upgraded to Apache 2.2 [blogs.com] in order to get mod_proxy_balancer to balance between Mongrel instances... that's why I did it for indi [getindi.com] .

Re:Mongrel itself is pretty sweet (1)

secolactico (519805) | more than 7 years ago | (#17291830)

I wonder how many people have upgraded to Apache 2.2 in order to get mod_proxy_balancer to balance between Mongrel instances... that's why I did it for indi.

You might want to have your site check for the availability of javascript, otherwise, you get a rather uninformative code dump in the screen.

Re:Mongrel itself is pretty sweet (1)

tcopeland (32225) | more than 7 years ago | (#17292012)

Yeah, true... OK, I've passed it on to our guy [urthmen.com] .

Re:Mongrel itself is pretty sweet (1)

marcello_dl (667940) | more than 7 years ago | (#17292094)

Don't forget lighttpd+fcgi if you deploy ROR on linux. For a single ROR app it's trivial to set up, didn't try running more. I don't know how it compares to mongrel.

Re:Mongrel itself is pretty sweet (0)

Anonymous Coward | more than 7 years ago | (#17294414)

The nice thing about using Mongrel instead of FCGI is that it's easier to debug - if you use fastcgi, it can be tough to figure out exactly what's broken - if you're using Mongrel behind a proxy, you just connect directly to the port mongrel is running on with your browser - if things are working there, your problem is in your proxy config, if they aren't, then it's in mongrel's configuration. With fastcgi, you can't just use a browser to see if the fastcgi process is running correctly.

I prefered nginx + mongrel cluster (1)

Numen (244707) | more than 7 years ago | (#17294638)

Nginx gets my vote for a http server facing onto Mongrel. http://nginx.net/ [nginx.net]

I'm a .NET dev so having to set up web servers on a Linux box aint my favourite passtime... leave the politics outside, it's my paycheck not yours... but I had a need to test a RoR app I'm working on for both Windows and Linux, which quickly became a decision to make it Linux only... anyhow, pretty much all the options I was chewing my way through were driving me nuts, with nginx being last on the list before saying "screw it".

Took me 20 min to find, download, build, and configure nginx facing onto a mongrel cluster as a complete Linux muppet. The benchmarks for nginx are also pretty impressive and there's not a long list of scare stories associated with memory leaks.

Over the holidays I'll be seeing if there's any virtue in nginx facing onto a mono/xsp cluster. I don't like the Apache support for xsp 2.

As a side note, Ruby on Rails desperately needs to clean up it's act on deploying apps for anything other than the trivial. It very quickly turns into a minefield.

I'll also sign off by saying I'm a potentially naive source for a recommendation on how to best set up a RoR app on Linux. Do read around yourself if you take a gander at nginx. I'm potentially missing the virtues of several alternatives (most of which I have tried and rejected as flaky).

Re:I prefered nginx + mongrel cluster (1)

marcello_dl (667940) | more than 7 years ago | (#17295298)

>I'm a .NET dev so having to set up web servers on a Linux box aint my favourite passtime... leave the politics outside, it's my paycheck not yours... but I had a need to test a RoR app I'm working on for both Windows and Linux, which quickly became a decision to make it Linux only...

see, it's not a matter of politics :D
Thanks for the comment, I hope i'll have never to discuss ror+mongrel+nginx vs lighttpd-fcgi: the tongue's gonna end all knotted up.

Re:Mongrel itself is pretty sweet (1)

thrills33ker (740062) | more than 7 years ago | (#17294860)

Indeed, if you're interested in the lighttpd+fcgi approach you might want to check out this article on my blog [wilf.me.uk] which covers virtual hosting multiple Rails apps with lighttpd and also how to make it co-exist with Apache on the same server by using 2 IP addresses.

Re:Mongrel itself is pretty sweet (1)

marcello_dl (667940) | more than 7 years ago | (#17295166)

I find your blog entry very interesting, I'll install apache and tinker a little :) thank you

mongols (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17291836)

I thought that said "Mongol Shortcuts". (Q: Where can the Mongol hordes go when taking a shortcut? A: Anywhere they want to.)

Web Server Primitives (2, Interesting)

Doc Ruby (173196) | more than 7 years ago | (#17291916)

There's a difference between a mere httpd (HTTP protocol server) and a "Web Server" that must include one. I wish there were a truly minimal httpd written in very portable code like Ruby, Perl or Java, that could use existing webserver plugins like Apache's and, say, WebSphere's, without modification. Just install (perhaps recompile cross-platform), and get the incremental features. With the same data formats, APIs and even typical bug behavior.

Why do we have to reinvent the wheel every time we reinvent the car?

Re:Web Server Primitives (1)

nuzak (959558) | more than 7 years ago | (#17292028)

A "truly minimal" httpd that can use Apache modules is hardly going to be minimal. In fact it would pretty much be Apache.

> Why do we have to reinvent the wheel every time we reinvent the car?

Because they're web servers, not cars, and frankly the existing standards are either too dinky to provide a common base, or the bigger standards are confined to some other language (like Java) or just are too bureacratic for most uses (virtually anything SOA-related). But I don't see anyone reinventing HTTP, Javascript, or HTML (excepting perhaps using XML+CSS). There's your wheels.

Re:Web Server Primitives (1)

Doc Ruby (173196) | more than 7 years ago | (#17292206)

Can you back that up? Is the current Apache without modules (but with interfaces) truly factored to nothing but the required HTTP/1.1 responder? I haven't looked at the code since I distributed one of the early patches (before it was even called "Apache"), but I think it includes more than just the minimum.

The point of a minimal HTTP server would be to factor out all standards support except TCP/IP (if that) - even HTTP could be a module. I didn't say people are reinventing HTTP/Javascript/HTML, though they do. I just want to know why new HTTP servers nearly always require rewriting new code to support those standards, when there are existing modules that could be reused - if the interfaces were reused by the new servers.

Re:Web Server Primitives (0)

Anonymous Coward | more than 7 years ago | (#17293200)

I find it hard to reconcile "truly minimal httpd" and "could use existing webserver plugins like Apache's and, say, WebSphere's, without modification"

"I'd just wish there were a really bare bones OS ... that runs every application ever"

The fact is: mogrel IS a bare bones http server :-P

Re:Web Server Primitives (1)

Doc Ruby (173196) | more than 7 years ago | (#17293322)

In fact, I'm asking for an httpd built on an archtecture like a microkernel OS. Just enough code to offer "plugin" (subprocess) interfaces, and access HW properly.

The fact is, mongrel does not run any existing modules that make HTTP worth running, which is the whole point.

Re:Web Server Primitives (1)

douthat (568842) | more than 7 years ago | (#17295678)

(this is the same AC as above) the core apache server is pretty small, and most things are modules that are loaded in. there is also lighttpd, which doesn't load apache modules, but is a pretty lean & mean webserver h

I was confused (1)

slapout (93640) | more than 7 years ago | (#17291988)

I first I thought that it was some kind of platform (written in ruby) for reading ebooks!

Almost, but not quite all the way.. (1)

Peter Cooper (660482) | more than 7 years ago | (#17291990)

In conclusion, this seems like a very useful guide for anyone who is starting out to configure and use the Mongrel web server for their Ruby projects.

Intriguingly, though, the book doesn't appear to cover using Mongrel as a library from Ruby at all. The closest it gets is in "Handlers" in Section 6, but this is still working with the regular Mongrel application rather than Mongrel as a library. Admittedly, many people don't want to use Mongrel as a library, but it makes a great replacement for the slow WEBrick, and can be used as an HTTP server library just fine.. so it's weird it wasn't covered (at least, not in my review copy).

what about the O'Reilly shortcut? (1)

stuartrobinson (1003887) | more than 7 years ago | (#17292746)

I wonder how this one compares to its O'Reilly equivalent: http://www.oreilly.com/catalog/mongrelpdf/ [oreilly.com]

Re:what about the O'Reilly shortcut? (0)

Anonymous Coward | more than 7 years ago | (#17293372)

Well, this one was written by the author of Mongrel. The O'Reilly one was written by someone I've never heard of. I know which one I'd choose.

Not 100% Ruby (1)

chroot_james (833654) | more than 7 years ago | (#17293112)

From http://rubyforge.org/projects/mongrel/ [rubyforge.org]
A small fast HTTP server written in (mostly) Ruby that can be used to host web frameworks directly with HTTP rather than FastCGI or SCGI.

"Not normally much of a one"?!? (0)

Anonymous Coward | more than 7 years ago | (#17296004)

"I'm not normally much of a one for reading and learning out of eBooks..."


Or traditional books I'll wager.
Goes without saying though, doesn't it?

Re:"Not normally much of a one"?!? (1)

mabinogi (74033) | more than 7 years ago | (#17297104)

Whilst I'm sure it may break at least three or four contrived grammar "rules" that someone made up at some point in history, it's a common usage that has existed for probably longer than any of those rules.

Just like to point out other options... (1)

Lodragandraoidh (639696) | more than 7 years ago | (#17296700)

Mongrel --> Ruby (Rails)

Medusa --> Python (Zope)
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>