6 ms·
Mongrel2
- lsb 16y agoI like that the configuration language is a sqlite database; sounds far easier than parsing ini files, for example.
- rincewind 16y agoini files are 1. a straw man. The Format is very generic, only sections and key-value-pairs. A fairer comparison would be against httpd.conf, or other languages actually used for web server config. 2. Easy to parse, because there are tony of implementations already. 3. Static, like a SQL database, although Zed[1] and others[2] argued we need Turing-complete extension and configuration languages like Ruby. [1] http://vimeo.com/2723800 http://vimeo.com/2723800 [2] http://lambda-the-ultimate.org/node/3606 http://lambda-the-ultimate.org/node/3606
- awt 16y agoAn even fairer example would be ngnix.conf
- rlpb 16y agoHe says that a config file is half-turing, but an sqlite database can have no turing. Won't this make the configuration far more complex?
- mdg 16y agoJust wait till someone uses an ORM library for configuration.
- rlpb 16y agoBut how would one represent a configuration like "don't require auth for /, but do require auth for /foo/*.jpeg" in a table? It would be great to just use a row for each possible URL, but with overlapping wildcards, folder hierarchies and multiple levels of allow/deny it gets very complicated very quickly. Granted, the allow/deny and order that Apache uses isn't great, but at least a configuration is understandable by reading it because the admin can lay out the configuration file with whitespace and comments in a way that makes sense. The equivalent might be achievable in sqlite, but it would be very challenging. It's basically a step backwards towards a poorly featured, confusing GUI configuration mechanism like the old IIS configuration used to be.
- grandalf 16y agowell you could always just represent it as: insert into rules (rule) values('don\'t require auth for /, but do require auth for /foo/*.jpg') The use of a db is more to create a standard networkable interface for other clients to read/modify the config than a statement about the semantics of the config syntax.
- rlpb 16y agoYou could do that, but would it really be much different from this? data = config_file.read() "insert into config (config) values ('%s')" % data
- rue 16y ago> But how would one represent a configuration like "don't require auth for /, but do require auth for /foo/.jpeg" in a table?* Are you confusing offline representation with a runtime structure?
- mdg 16y agoI was only being half serious (or half joking, depending on how you look at it).
- viraptor 16y agoI don't like that idea, because of one simple limit. You cannot diff databases (easily). Of course you can dump them, make sure the linebreaks are there between records, make sure they're sorted, etc. etc. But checking the whole config in or out of a VCS is much more useful in general. It also provides an easy to browse record of changes.
- stcredzero 16y agoIf diffing is important, why not use Git as the repository back-end, then?
- viraptor 16y agoIt doesn't matter which VCS. If you check in text, you can review the changes. If you checkin databases, all you get is a blob. Git is not magic and will not solve this problem.
- wizard_2 16y agoThe sqlite database might get stored as a blob, but a json, xml, or sql dump of the database would be just as plain text as anything else.
- adamtj 16y agoThink of it like this. Zed is combining Apache's nonstandard configuration language with it's internal runtime representation of such. He's doing it in a way that's standard and manipulable at runtime. So changes to the runtime configuration are persistent. You can fix that. That's the beauty of it. It's an incredibly simple and flexible idea that builds upon existing, robust, and standard software. If you want to diff config files, then you could slap together an XML, JSON, or any other representation of your config data and write a loader for it.
- stesch 16y agoIsn't reading from sqlite all the time a bit bad for the performance?
- gsiener 16y agoZed is a busy guy!
- KERMIT 16y agoThat page says that Mongrel2 will be written in C. Maybe it won't be as goddamn slow as Mongrel is.
- dminor 16y agoSo is this a rebranding of NoNoSql, or something new?
- kanwisher 16y agoUmm it's a webserver
- dminor 16y agoYikes, -4 for an honest question. Looks like he renamed NoNoSQL to MulletDB: http://mulletdb.com/index http://mulletdb.com/index MulletDB uses ZeroMQ and sqlite, and communicates with JSON, so I thought maybe this was the same project heading in a new direction.
- drats 16y agoIt's not really an honest question because he didn't bother to click on the link.
- mpk 16y agoUsually when people announce a product and give you little else but a future feature list, I'm sceptical. Not with Zed, though.
- tel 16y agoThis is the exact sentiment that makes me respect the guy. He's an asshole and loves to complain REALLY LOUD to eat up the attention. But he's dead sincere when it comes to making things. He's like _why's evil twin.
- batasrki 16y agoAgreed, but for one thing. He IS NOT an asshole, not in real life. He's actually super-nice. Online he has the asshole persona, but that's it.
- petercooper 16y agoThe Internet is real life.
- tel 16y agoI'm with petercooper. If you act differently online, you're still responsible. His recent attack on Giles Bowkett was an assholey thing to do even before considering whether either one of them had a point. That said, I'm not too worried considering his history with the Ruby community. I'd still have a better opinion of him if he didn't antagonize them though. I'm absolutely certain he's a great guy in person. Asshole doesn't preclude you from being nice, personable, and even entertaining. Instead I take it to mean that when the bad side does come out it's nasty.
- mcantelon 16y agoGiles Bowkett has never shrunk from attacking others (like his blog post "Chad Fowler is a Vampire", which was a long personal attack against Chad Fowler that Bowkett seems to have since deleted) so it doesn't seem that asshole-y to treat Bowkett as he treats others. I once participated in a thread in which Bowkett swore at and belittled a number of participants who criticized a blog post of his (he subsequently deleted his postings so the recipients wouldn't be able to respond).
- moxiemk1 16y agoI'm surprised that he's doing this... after so much vitriol about the Ruby (and Rails) community and being "ripped off" with Mongrel, I would have expected him to never touch it again. Granted, it's written in C, but I'd expect it to be heavily used with Rails. That said, its good that he is writing it. The more software is written, the higher the likelihood that _something_ will be great, and when Zed Shaw's writing it, it's probably pretty good.
- chuhnk 16y agoHis primary use case is different for mongrel2 compared to mongrel however its based off the same HTTP parser and is a webserver so I guess the continuation seemed appropriate. Being completely written in C its going to be blindingly fast. I have a feeling it'll surge past unicorn, thin, passenger and everything else out there once its refactored and past beta.
- icey 16y agoDon't you think AGPL licensing will slow adoption? Nobody seems to be able to clearly define what you have to open source if you use AGPL'ed code.
- mark_l_watson 16y agoI think that you simply need to buy an alternative license. This is also the way neo4j is monetized.
- stesch 16y agoAFIK you just have to publish the source to the changes you made to mongrel2 itself if your server is public. And mongrel2 is not embedded. You connect to it. No linking. It's a server.
- cmelbye 16y agoUnicorn, Thin, and Passenger are all mainly written with C/C++ as far as I know.
- sailormoon 16y agoLooks like the project web site also has a custom ticketing system and repo browser. Why not.
- subwindow 16y agoI believe that all comes free with the scm he is using, fossil.
- sailormoon 16y agoOh. Right you are. I hadn't heard of it, but it looks interesting. Certainly a big time-saver to get all that for free.
- jherdman 16y agoZed loves Fossil SCM: http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki
- experimentor 16y agoFossil SCM is written by D. Richard Hipp. The same great guy behind SQLite.
- hello_moto 16y agoThis is a pattern I'm seeing from Zed: 1) loves small software (do one thing do it right) 2) loves C + glue code (perf in C, everything else script) 3) loves solid code Some examples: SQLite3, Fossil SCM, Mongrel1/2, Merb (hinted by him), etc. Wouldn't be surprised if he uses the tools developed by Dr. Hipps. Perhaps he prefers tools written by like-minded people. What can I say, UNIX philosophy at its best? Note: I like Dr. Hipp's software too (and OpenBSD). These tools are strong, solid, high quality, and represents everything that's good about software product. Unfortunately they're not the most "popular" thing out there.
- papachito 16y ago
- wazoox 16y agoBonus point, it's licensed under AGPL.
- stesch 16y agoAGPL is always good for misunderstandings and flame wars. Nice show. ;-)
- deleted 16y ago[deleted]
- Kilimanjaro 16y agobody{margin:0 6em;} There, ftfy
- stesch 16y agoDon't forget font-family: sans-serif; Instead of "sans serif".