<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: rasmus-lerdorf</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/rasmus-lerdorf.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2021-11-22T19:23:27+00:00</updated><author><name>Simon Willison</name></author><entry><title>Quoting Rasmus Lerdorf</title><link href="https://simonwillison.net/2021/Nov/22/rasmus-lerdorf/#atom-tag" rel="alternate"/><published>2021-11-22T19:23:27+00:00</published><updated>2021-11-22T19:23:27+00:00</updated><id>https://simonwillison.net/2021/Nov/22/rasmus-lerdorf/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://news-web.php.net/php.internals/70691"&gt;&lt;p&gt;htmlspecialchars was a very early function. Back when PHP had less than 100 functions and the function hashing mechanism was strlen(). In order to get a nice hash distribution of function names across the various function name lengths names were picked specifically to make them fit into a specific length bucket. This was circa late 1994 when PHP was a tool just for my own personal use and I wasn't too worried about not being able to remember the few function names.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://news-web.php.net/php.internals/70691"&gt;Rasmus Lerdorf&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rasmus-lerdorf"&gt;rasmus-lerdorf&lt;/a&gt;&lt;/p&gt;



</summary><category term="php"/><category term="rasmus-lerdorf"/></entry><entry><title>Easy installers for PHP scripts</title><link href="https://simonwillison.net/2003/Nov/13/easyInstallers/#atom-tag" rel="alternate"/><published>2003-11-13T02:33:08+00:00</published><updated>2003-11-13T02:33:08+00:00</updated><id>https://simonwillison.net/2003/Nov/13/easyInstallers/#atom-tag</id><summary type="html">
    &lt;p&gt;I tried out &lt;a href="http://fud.prohost.org/"&gt;FUDforum&lt;/a&gt; last night, after Rasmus Lerdorf recommended it in &lt;a href="http://jeremy.zawodny.com/blog/archives/001065.html#comments" title="Wanted: Web Discussion Board Software That Doesn&amp;apos;t Suck (and groks RSS)"&gt;a comment&lt;/a&gt; on Jeremy Zawodny's blog. Feature wise, it's pretty impressive but still doesn't quite do it for me - I want something that's trivial to integrate with an existing authentication system and outputs valid &lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt; (or &lt;acronym title="eXtensible HyperText Markup Language"&gt;XHTML&lt;/acronym&gt;) out of the box. Rasmus says it's the only board he's seen that doesn't have obvious security holes though so it's probably worth checking out if you need to set up a forum of that kind.&lt;/p&gt;

&lt;p&gt;That said, what impressed me about FUDforum more than anything else was the installation process. The forum is distributed as a zipped archive, but when you extract it the only file you need to copy to your web server is a single 4.5 MB file called "install.php".  You drop that in to a web facing directory and access it from your browser. It then steps you through the rest of the install, telling you which directories to chmod 777 so that the installation process can access them, asking for your database settings and automatically creating all of the scripts, database tables and configuration files it needs to run. It even refuses to let you in to the admin panel at the end until you've deleted the install.php file from the server. Pretty slick.&lt;/p&gt;

&lt;p&gt;Of course, the need to chmod anything 777 in a shared hosting environment is a little bit worrying, but that's been a common problem with server side web development for as long as I can remember.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/jeremy-zawodny"&gt;jeremy-zawodny&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rasmus-lerdorf"&gt;rasmus-lerdorf&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="jeremy-zawodny"/><category term="php"/><category term="rasmus-lerdorf"/></entry><entry><title>PHP philosophy, and bundling SQLite</title><link href="https://simonwillison.net/2003/Jun/24/philosophy/#atom-tag" rel="alternate"/><published>2003-06-24T20:11:24+00:00</published><updated>2003-06-24T20:11:24+00:00</updated><id>https://simonwillison.net/2003/Jun/24/philosophy/#atom-tag</id><summary type="html">
    &lt;p&gt;Here's a &lt;a href="http://news.php.net/article.php?group=php.internals&amp;amp;article=2715" title="Re: enabling sqlite by default"&gt;great quote&lt;/a&gt; from Rasmus Lerdorf (the creator of &lt;acronym title="PHP: Hypertext Preprocessor"&gt;PHP&lt;/acronym&gt;) for people who have become disheartened with &lt;acronym title="PHP: Hypertext Preprocessor"&gt;PHP&lt;/acronym&gt;'s lack of elegance when compared to other languages such as Python:&lt;/p&gt;

&lt;blockquote cite="http://news.php.net/article.php?group=php.internals&amp;amp;article=2715"&gt;&lt;p&gt;
PHP has never been just a scripting engine with some
cool add-ons.  PHP has always been the solution to the Web problem with
even more bonus add-ons.  And as I have said so many times, PHP is not
about purity in CS principles or architecture, it is about solving the
ugly web problem with an admittedly ugly, but extremely functional and
convenient solution.  If you are looking for purity you are in the wrong
boat.  Get out now before you get hit by a wet cat!
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I've seen this point of view a few times before, but I've never seen it summarised in quite such a concise way. For me, it brings a lot of common &lt;acronym title="PHP: Hypertext Preprocessor"&gt;PHP&lt;/acronym&gt; development issues in to perspective.&lt;/p&gt;

&lt;p&gt;Incidentally, Rasmus' comment comes as part of a thread about the bundling of the full SQLite database engine with &lt;acronym title="PHP: Hypertext Preprocessor"&gt;PHP&lt;/acronym&gt;5. I've &lt;a href="/2003/Mar/12/moreLightweightSoftware" title="More lightweight software"&gt;talked about SQLite&lt;/a&gt; before: it's a remarkably powerful (and fast) relational database engine designed for embedding in other applications. See &lt;a href="http://www.edwardbear.org/blog/archives/000206.html" title="Bundling and Enabling SQLite"&gt;Sterling's blog&lt;/a&gt; for more links relating to the conversation.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rasmus-lerdorf"&gt;rasmus-lerdorf&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sqlite"&gt;sqlite&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="php"/><category term="rasmus-lerdorf"/><category term="sqlite"/></entry><entry><title>Funky caching explained</title><link href="https://simonwillison.net/2002/Nov/16/funkyCachingExplained/#atom-tag" rel="alternate"/><published>2002-11-16T13:54:21+00:00</published><updated>2002-11-16T13:54:21+00:00</updated><id>https://simonwillison.net/2002/Nov/16/funkyCachingExplained/#atom-tag</id><summary type="html">
    &lt;p&gt;I didn't take much notice of "funky caching" while reading through Rasmus Lerdorf's &lt;a href="http://www.lerdorf.com/tips.pdf"&gt;PHP tips and tricks&lt;/a&gt; presentation - I saw that it was talking about using custom 404 pages to serve up dynamic content depending on the URL and wrote it off as a hack that, while useful, was fundamentally flawed in that it would add an error log entry whenever a page was served.&lt;/p&gt;

&lt;p&gt;It seems I was mistaken. Phil Ringnalda has &lt;a href="http://philringnalda.com/archives/002388.php" title="Half-baked, and a little fried"&gt;explained the concept&lt;/a&gt; in more detail, and it's actually a very clever angle on the caching problem. Rather than building content in advanced (the "baked" method, used by Moveable Type) or generating the page dynamically each time (the "fried" method, used by my weblog) you set up a custom 404 script which decides whether or not the requested content should exist when it is called. If the content is meant to be there, it creates the content, serves it up and saves it to the file system (so future requests will get the file rather than a 404). To regenerate content you just delete the static file and wait for someone to request it, at which point it will be rebuilt by the 404 script. Clever stuff.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/caching"&gt;caching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/phil-ringnalda"&gt;phil-ringnalda&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rasmus-lerdorf"&gt;rasmus-lerdorf&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="caching"/><category term="phil-ringnalda"/><category term="php"/><category term="rasmus-lerdorf"/></entry><entry><title>PHP tips and tricks from Rasmus</title><link href="https://simonwillison.net/2002/Nov/9/phpTipsAndTricksFromRasmus/#atom-tag" rel="alternate"/><published>2002-11-09T21:37:28+00:00</published><updated>2002-11-09T21:37:28+00:00</updated><id>https://simonwillison.net/2002/Nov/9/phpTipsAndTricksFromRasmus/#atom-tag</id><summary type="html">
    &lt;p&gt;Rasmus Lerdorf has published a &lt;a href="http://www.lerdorf.com/tips.pdf"&gt;PHP Tips and Tricks&lt;/a&gt; PDF based on a presentation given at the recent PHPCon2002. The file is a veritable goldmine of useful information, covering topics including optimisation, sessions, security, dynamic image/flash/PDF generation and using Squid and MySQL replication to increase the performance of a high traffic site. Spotted on &lt;a href="http://www.phpdeveloper.org/index.php?id=1056" title="Tips and Tricks from the Master: a PDF"&gt;PHPDeveloper.org&lt;/a&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rasmus-lerdorf"&gt;rasmus-lerdorf&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="php"/><category term="rasmus-lerdorf"/></entry><entry><title>Rasmus Lerdorf's blog</title><link href="https://simonwillison.net/2002/Jul/5/rasmusLerdorfsBlog/#atom-tag" rel="alternate"/><published>2002-07-05T13:45:35+00:00</published><updated>2002-07-05T13:45:35+00:00</updated><id>https://simonwillison.net/2002/Jul/5/rasmusLerdorfsBlog/#atom-tag</id><summary type="html">
    &lt;p&gt;Rasmus Lerdorf (the creator of &lt;acronym title="PHP: Hypertext Preprocessor"&gt;PHP&lt;/acronym&gt;) has a &lt;a href="http://www.oreillynet.com/weblogs/author/85" title="Weblogs by Rasmus Lerdorf"&gt;blog&lt;/a&gt;. His &lt;a href="http://www.oreillynet.com/pub/wlg/1642" title="TCPA Opportunity?"&gt;latest entry discusses Palladium&lt;/a&gt;, and asks if it will actually help build up the alternative market of non wintel users.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/blogging"&gt;blogging&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rasmus-lerdorf"&gt;rasmus-lerdorf&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="blogging"/><category term="php"/><category term="rasmus-lerdorf"/></entry></feed>