/usr/share/php/tests/Horde_Feed/Horde/Feed/fixtures/lexicon/http-suraski.net-blog-index.php%2F-feeds-index.rss2 is in php-horde-feed 2.0.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 | <?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:admin="http://webns.net/mvcb/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
>
<channel>
<title>Zeev Suraski</title>
<link>http://suraski.net/blog/</link>
<description>Random thoughts</description>
<dc:language>en</dc:language>
<admin:errorReportsTo rdf:resource="mailto:" />
<generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
<image>
<url>http://suraski.net/blog/templates/default/img/s9y_banner_small.png</url>
<title>RSS: Zeev Suraski - Random thoughts</title>
<link>http://suraski.net/blog/</link>
<width>100</width>
<height>21</height>
</image>
<item>
<title>Photo Contest (not quite PHP related)</title>
<link>http://suraski.net/blog/index.php?/archives/18-Photo-Contest-not-quite-PHP-related.html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/18-Photo-Contest-not-quite-PHP-related.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=18</wfw:comment>
<slash:comments>6</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=18</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
Two of my photos are finalists in a local (Israeli) pets+owners photo contest.<br />
You can find them at <a href="http://tinyurl.com/2oodug">http://tinyurl.com/2oodug</a><br />
While it's in Hebrew, the photos are pretty universal so you can still appreciate them.<br />
If you feel like voting for one of mine - one is on the fourth row on the left column (Anya &amp; white dog), and the other is on the last row in the right column (me + kitten). One vote per person (or at least per browser <img src="http://suraski.net/blog/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" />). Click on the arrow icon on the bottom left once you've made your choice. The pets thank you <img src="http://suraski.net/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />
</content:encoded>
<pubDate>Mon, 17 Dec 2007 22:52:32 -0500</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/18-guid.html</guid>
</item>
<item>
<title>PHP Security</title>
<link>http://suraski.net/blog/index.php?/archives/17-PHP-Security.html</link>
<comments>http://suraski.net/blog/index.php?/archives/17-PHP-Security.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=17</wfw:comment>
<slash:comments>5</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=17</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
I've just been <a href="http://it.slashdot.org/it/06/12/14/0410240.shtml">misquoted on Slashdot</a>, as if I said there are no security problems in PHP itself, and that I instead point my finger only at inexperienced developers.<br />
<br />
If you read the original article on <a href="http://www.heise-security.co.uk/news/82500">Heise Security</a>, you'll see that I have not said anything of the sort. While I hope Slashdot fixes this story, I thought I'd make my stand on this clearer. I believe this is the belief of most others on the security team, but I'm only speaking on behalf of myself and do not represent them.<br />
<br />
1. Fact is most security problems that are published that have to do with PHP, have to do with problems at the user level, i.e., bugs in the application written in PHP. There's no point arguing about this one, it can be proven by simply looking at the number of published advisories that had to do with PHP itself, vs. the number of advisories that had to do with applications written in PHP.<br />
<br />
2. There are many reasons for the fact there's a large number of security problems in PHP Web apps. First and foremost, it's the fact PHP is by far the most popular platform for building Web apps, and I believe it's also the language with the largest number of opensource ready-to-use Web apps out there. If PHP accounts for, say, 50% of the opensource Web apps deployed on the net (a reasonably conservative assumption), half of the problems in Web apps would have been in PHP apps just from a statistical point of view. Also remember that it's much easier to create a Web app that's exploitable than a desktop/backend app that's exploitable, if only for the fact that Web apps are (almost) by definition remotely accessible, turning even minor glitches to problems with real security implications.<br />
<br />
3. Another reason for certain classes of security problems in PHP can be blamed on the language itself. Two such examples are register_globals (handled in PHP 4.2 several years ago) and the default support for URL include()'s (fixed as of PHP 5.2 a couple of months ago). These are not strictly language bugs, but instead, features (or misfeatures) that make it all too easy for novice developers (and sometimes even advanced ones not paying attention) to fall into security pitfalls. While not a language problem from a strict "computer science" point of view, I think everyone on the PHP dev team perceives those as problems that need to be addressed, and contrary to the misquote on slashdot, nobody, or at least not me, is pointing the finger at inexperienced developers. It's their fault, but our responsibility, if you will.<br />
Yes, we could have handled the remote URL inclusion faster, but saying we don't care about such issues is just false.<br />
<br />
4. And now for the scoop. YES, there ARE security problems in PHP. PHP itself, as in the code in C that implements the language. If you didn't get a stroke from reading this scoop and you're still with me, I'd like to point out that I can hardly think of any other project in such a scope and of a similar nature that doesn't have security problems in it, at the same rate (give or take) as PHP. I've never said anything to the contrary in the past, and I don't expect to ever say something else in the future. I do mention, whenever I'm asked about PHP's security, that most of the problems happen at the user level - but it doesn't mean that PHP doesn't have security bugs in it as well.<br />
<br />
5. I believe we've had an excellent track record at fixing remotely exploitable problems and coming out with fixes immediately, and there haven't been that many of them either.<br />
<br />
Stefan's talk about being considered "persona non grata" because he 'had the guts to stand against us' is completely false, too. I'm not going to get into the details of what brought Stefan to call it quits, but suffice to say that it had nothing to do with the published reason, and more to the interaction between Stefan and other members of the security team, and the dev team in general.<br />
<br />
Finally, I'd like to take the opportunity, again, and ask Stefan to come to come back to security@ team, and work with the project and not against it. As any project that has hundreds of people contributing to it, you never find yourself in agreement with everyone at any given time; It doesn't mean that those who don't think exactly like you are your 'enemies', and it certainly doesn't mean you should quit and turn to the 'other side'.<br />
<br />
Zeev<br />
</content:encoded>
<pubDate>Thu, 14 Dec 2006 16:31:14 -0500</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/17-guid.html</guid>
</item>
<item>
<title>hebrev() and friends</title>
<link>http://suraski.net/blog/index.php?/archives/16-hebrev-and-friends.html</link>
<comments>http://suraski.net/blog/index.php?/archives/16-hebrev-and-friends.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=16</wfw:comment>
<slash:comments>4</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=16</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
Recently Andrei approached me and asked what I think should be done with hebrev() and hebrevc() in the context of the Unicode-enabled PHP 6. For those of you who don't know, hebrev() (which stands for Hebrew Reverse) and hebrevc() (which stands for Hebrew Reverse &amp; Convert) are remnants from the early days of the Web - where browsers could not handle Right-to-Left langauges properly. For those of you who don't know what Right-to-Left languages are, they're simply enough languages that are written from right to left, such as Hebrew and Arabic.<br />
<br />
In those dark ages - if you wanted your text to render properly on a browser that's completely ignorant of the fact your text should be going from right to left - in addition to right alignment, you also had to write your text in reverse. Kind of like, in order to type "Hello World", you had to type "dlroW olleH" (or rather, instead of "&#1513;&#1500;&#1493;&#1501; &#1506;&#1493;&#1500;&#1501;" one had to type "&#1501;&#1500;&#1493;&#1506; &#1501;&#1493;&#1500;&#1513;"). This concept was named "Visual displaying", or in short just plain "Visual". Since most other systems (other than browsers) were generally saving their data in the correct first-char-comes-first order (simply enough called "Logical"), and since input coming from users using browsers also came in the correct 'logical' order, there was a gap between the data Web apps were working with, and the data they had to display. hebrev() and hebrevc() were created to bridge that gap, and reverse Visual hebrew into Logical and vice versa. Doing that is probably much more complicated than you think as you have to make sure not to reverse numbers or non-Hebrew text, break lines properly if wrapping was requested, etc.<br />
<br />
As time passed by - more and more browsers got the ability to handle Logical text, and automatically display it properly and render it from right to left. My belief is that most of the R2L web today is already using Logical - which brings me back to Andrei's query, where I'd like to ask your feedback.<br />
<br />
Do you think we need to update hebrev() to support Unicode, or should we just let it rest in peace? Should we may be expose the more powerful ICU bidirectional conversion API under new names for those who wish to still reverse Unicode text from Visual to Logical and vice versa? I realize this is probably not very interesting to most of the crowd here, but those of you that do have an opinion - your feedback is welcome!<br />
</content:encoded>
<pubDate>Mon, 11 Dec 2006 10:47:02 -0500</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/16-guid.html</guid>
</item>
<item>
<title>Stefan Esser quits security@php.net</title>
<link>http://suraski.net/blog/index.php?/archives/15-Stefan-Esser-quits-securityphp.net.html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/15-Stefan-Esser-quits-securityphp.net.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=15</wfw:comment>
<slash:comments>6</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=15</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
Yesterday, I had a heated debate with Stefan Esser, one of the most active people (if not the most active person) in the field of PHP security. I told him that I, as well as a lot of other contributors to the PHP project, are at odds with the way he's behaving; While at the same time appreciating the highly skilled job he's doing for PHP.<br />
<br />
Unfortunately, Stefan decided to call it quits and from a blog post on his web site, it appears he'll now attempt to become even more aggressive, do his best to ignore the best interests of PHP by disclosing unpatched holes, and in general trying to expose as many security holes in PHP. That was not my intention when I truthfully told him what I (and many more) feel about the style of his involvement.<br />
<br />
Since Stefan is obviously not listening to me, I think it may help if people who feel his behavior is inappropriate go to his blog and submit their thoughts, or send him emails. Do that in a responsible and appropriate language, though. Maybe if he sees it's not just me he'll reconsider.<br />
<br />
<br />
</content:encoded>
<pubDate>Sat, 09 Dec 2006 11:54:34 -0500</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/15-guid.html</guid>
</item>
<item>
<title>Zend wins IVA and Red Herring's Best Software Startup award</title>
<link>http://suraski.net/blog/index.php?/archives/14-Zend-wins-IVA-and-Red-Herrings-Best-Software-Startup-award.html</link>
<comments>http://suraski.net/blog/index.php?/archives/14-Zend-wins-IVA-and-Red-Herrings-Best-Software-Startup-award.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=14</wfw:comment>
<slash:comments>3</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=14</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
<a href='http://suraski.net/gallery/IVA2006'><img width='73' height='110' border='0' hspace='5' align='right' src='http://suraski.net/blog/uploads/IMG_2942.thumb.serendipityThumb.jpg' alt='' /></a><br />
<br />
Yesterday, Zend won Israel Venture Association (IVA) and Red Herring's Best Software Startup award for the year 2006. Those of you who know the Israeli hitech landscape can understand what an amazing feat this is; For those who don't, Zend (and two other startups in other hitech areas) won out of a list of 400 nominees, which in turn are only a small fraction of the startups in the country. Israel has the highest concentration of startups in the world, second only to the Silicon Valley. So, the fact Zend won is pretty amazing and a great honor for all of the team.<br />
<br />
I believe that PHP, the opensource movement and its ability to create a 1st class contender in the Web development space played a major role in the judges' decision, so I also see this as a win for the entire PHP community. We've definitely all come a long way...<br />
<br />
Great job, Zenders and PHPers!<br />
<br />
Links:<br />
<a href='http://redherring.com/Article.aspx?a=17308&hed=VCs+Name+Hot+Israeli+Startups'>Red Herring</a><br />
<a href='http://www.ynet.co.il/articles/0,7340,L-3265305,00.html'>Ynet</a> (Hebrew)<br />
<a href='http://suraski.net/gallery/IVA2006'>Some pictures</a>
</content:encoded>
<pubDate>Wed, 21 Jun 2006 13:34:57 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/14-guid.html</guid>
</item>
<item>
<title>Government-Organized PHP Seminar in France</title>
<link>http://suraski.net/blog/index.php?/archives/13-Government-Organized-PHP-Seminar-in-France.html</link>
<comments>http://suraski.net/blog/index.php?/archives/13-Government-Organized-PHP-Seminar-in-France.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=13</wfw:comment>
<slash:comments>3</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=13</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
<a href='http://suraski.net/gallery/FranceSeminarDGME2006/IMG_1326'><img width='110' height='83' border='0' hspace='5' align='right' src='http://suraski.net/blog/uploads/IMG_1326.thumb.serendipityThumb.jpg' alt='' /></a><br />
<br />
Yesterday in Paris, I spoke in a one day seminar about PHP, that was organized by DGME, a French governmental agency. It was held in a conference room in one of the Minefi (Ministry of Finance) buildings, no less. Most of the attendees were coming from various governmental agencies and ministries, to learn more about PHP success stories and best practices. Presenters came from Oracle, alapage.com, DGME, Zend and others.<br />
<br />
<br />
<a href="http://www.adele.gouv.fr/synergies/article.php3?id_article=45">The seminar</a> was the first seminar of its kind in France, and to the best of my knowledge - it was the first one of its kind around the world as well. Personally, I found it quite amazing - although I guess we'll have to start getting used to PHP being regularly adopted by an ever-growing number of entities, for which it used to be completely off-limits until not too long ago. At long last, the perception about PHP is finally showing some true signs of changing, and finally synchronizing with reality; People and organizations perceiving PHP for what it is - the best Web development platform out there.<br />
<br />
I believe this is just the beginning - and we'll see more events like this in France and elsewhere, and more and more people attending them.
</content:encoded>
<pubDate>Tue, 20 Jun 2006 16:44:58 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/13-guid.html</guid>
</item>
<item>
<title>Guy Harpaz opens a new blog!</title>
<link>http://suraski.net/blog/index.php?/archives/12-Guy-Harpaz-opens-a-new-blog!.html</link>
<comments>http://suraski.net/blog/index.php?/archives/12-Guy-Harpaz-opens-a-new-blog!.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=12</wfw:comment>
<slash:comments>1</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=12</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
Guy Harpaz, the product manager for Zend Studio (and its former development team leader), has opened a new <a href="http://guyharpaz.blogspot.com">blog</a>. His likely topics for blogging would revolve around the Eclipse PHP IDE project, and upcoming versions of Studio, so it should be quite interesting.<br />
<br />
<a href="http://guyharpaz.blogspot.com">Check it out!</a>
</content:encoded>
<pubDate>Thu, 11 May 2006 10:48:13 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/12-guid.html</guid>
</item>
<item>
<title>Zend Studio 5.0 Beta available!</title>
<link>http://suraski.net/blog/index.php?/archives/10-Zend-Studio-5.0-Beta-available!.html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/10-Zend-Studio-5.0-Beta-available!.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=10</wfw:comment>
<slash:comments>7</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=10</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
It's been a while since I personally contributed code to this project, but a bunch of my most-wanted features are now in there, most notably multilevel code completion and native web services support.<br />
<br />
Multilevel code completion means that almost always you'd get code completion for objects, even if they're return values from functions (as long as you phpdocument them!) or a 10th level indirection, $foo->bar->baz->.... As a code-completion addict, that's great news.<br />
<br />
Native web services support means I no longer have to start writing web services by taking an existing WSDL file (a.k.a. scrolls of magic) and change it, but can instead use the WSDL generator now built into the system. Not to mention the code completion for SoapClient objects (did I mention I'm a code completion addict?)<br />
<br />
The beta is available for free download on <a href="http://www.zend.com/store/products/zend-studio/beta.php?bz=712">zend.com</a>. Free T-shirts will be given to the most valuable reporters so start smashing it today <img src="http://suraski.net/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
</content:encoded>
<pubDate>Mon, 12 Sep 2005 15:41:24 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/10-guid.html</guid>
</item>
<item>
<title>Following up...</title>
<link>http://suraski.net/blog/index.php?/archives/9-Following-up....html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/9-Following-up....html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=9</wfw:comment>
<slash:comments>11</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=9</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
Can anybody spot the new sponsor <a href="http://zend.kbconferences.com/">here</a>? You have to admit it wouldn't be the first on your guess list.
</content:encoded>
<pubDate>Thu, 08 Sep 2005 17:58:32 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/9-guid.html</guid>
</item>
<item>
<title>Selling PHP to your boss? A piece of cake.</title>
<link>http://suraski.net/blog/index.php?/archives/8-Selling-PHP-to-your-boss-A-piece-of-cake..html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/8-Selling-PHP-to-your-boss-A-piece-of-cake..html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=8</wfw:comment>
<slash:comments>0</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=8</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
I'm not sure how many of you have been to the <a href="http://zend.kbconferences.com/">Z/PC&E2005 (*)</a> as of late, but it's definitely an interesting visit. While it's not the first PHP conference to feature some pretty impressive sponsors, I think it would be fair to say that it's the first PHP event that is backed by the leading technology companies in the world today. Including some you'd never suspect would be interested (will update tomorrow, stay tuned).<br />
<br />
Needless to say, that reflects greatly on PHP.<br />
<br />
It's no secret PHP was (and to a large degree still is) a grassroots phenomenon. Most of the companies using PHP today chose to use it based on a developer's decision, as opposed to a management (CIO/CTO) decision. However, in many companies, especially the larger ones - PHP's penetration ended as soon as the developer(s) tried to sell the concept of using opensource in general, and PHP in particular to their boss, and sometimes to their customers.<br />
<br />
"How do I sell PHP to my boss?" was one of the key questions that I had to deal with personally in the past. As a proliferator of PHP, this was one of the key challenges Zend faced as well. It has also been the topic of numerous presentations in various PHP conferences. The answer that was always given was based purely on technological merit - it was clear that nothing we (community, Zend, or both) can do can match the mammoth marketing power that was pushing the commercial or even free (Java based) alternatives. Years and years of relentless work to change the world's perception have finally paid off. Today, the same powers are now beginning to push PHP itself, especially into places where it stood no chance to penetrate in the past. And it's not just marketing either - the <a href="http://andigutmans.blogspot.com/2005/09/php-oci8-driver-updated.html">OCI8 extension</a> and the <a href="http://www.zend.com/pecl/tutorials/sdo.php">new SDO extension</a> are just two initial examples of how this involvement is going to translate into additional 'tangible' benefits for the PHP community.<br />
<br />
2005 definitely signifies a turning point in the history of PHP. From an underdog that is technologically superior but lacks industry backing, to an overdog(**) - still technologically superior, but an accepted industry standard as well.<br />
<br />
I'll see you all at the conference!<br />
<br />
---<br />
<br />
(*) Zend PHP Conference &amp; Expo 2005<br />
(**) Improvements to this word welcome! <img src="http://suraski.net/blog/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" />
</content:encoded>
<pubDate>Wed, 07 Sep 2005 23:09:52 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/8-guid.html</guid>
</item>
<item>
<title>PHP and Oracle</title>
<link>http://suraski.net/blog/index.php?/archives/7-PHP-and-Oracle.html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/7-PHP-and-Oracle.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=7</wfw:comment>
<slash:comments>6</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=7</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
As some people may have noticed, <a href="http://www.zend.com/core/oracle/">Zend Core for Oracle</a> went into a public beta stage a couple of days ago. This free product is excellent news for anybody using PHP and Oracle together, since the OCI8 extension was vastly improved to bring it on par with (and sometimes better than) other database extensions, both in terms of stability and performance.<br />
<br />
It's actually good news even for people who won't be using Zend Core - since like with any other fixes made to PHP in the course of the work on Core (and in general), these will be committed to the PHP CVS as soon as they're tested (probably a couple of days' time).
</content:encoded>
<pubDate>Wed, 31 Aug 2005 08:10:05 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/7-guid.html</guid>
</item>
<item>
<title>Scotch is gone</title>
<link>http://suraski.net/blog/index.php?/archives/6-Scotch-is-gone.html</link>
<category>Life</category>
<comments>http://suraski.net/blog/index.php?/archives/6-Scotch-is-gone.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=6</wfw:comment>
<slash:comments>6</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=6</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
My beloved dog, which was adopted by my parents when I went to the army, has passed away yesterday, when I was on my way to the US. She died of cancer at the age of 13.5. It's amazingly sad that those magnificent creatures live so little. This makes you wonder how just one thing is certain in life. Sad, sad entry for the Life category.<br />
<br />
From the PHP angle, in a way, Scotch affected a bunch of parts in PHP - since she was the only one I could consult with when I developed certain parts of the language, in the middle of the night many years ago... She was definitely a PHP dog.<br />
<br />
May you rest in peace, Scottie!<br />
<br />
<a href="http://suraski.net/gallery/Scotch">Picture Gallery<img src="http://suraski.net/albums/Bath/104_0445_IMG.thumb.jpg" alt="Scotch" align="right" /></a><br />
</content:encoded>
<pubDate>Tue, 30 Aug 2005 08:00:20 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/6-guid.html</guid>
</item>
<item>
<title>PHP 5's SOAP extension and SalesForce</title>
<link>http://suraski.net/blog/index.php?/archives/5-PHP-5s-SOAP-extension-and-SalesForce.html</link>
<comments>http://suraski.net/blog/index.php?/archives/5-PHP-5s-SOAP-extension-and-SalesForce.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=5</wfw:comment>
<slash:comments>28</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=5</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
In the last few days I've been working on a piece of code in PHP that had to integrate with SalesForce. During the course of this work I bumped into some minor annoyances (or rather, a minor annoyance) with ext/soap, which I was able to quickly fix thanks to Dmitry's excellently structured code. For those who are interested, you can now set custom SOAP headers using SoapClient::__setSoapHeaders(). This will cause SoapClient to send the headers on every subsequent access to a web service, conducted through the relevant SoapClient object. While you could specify custom SOAP headers before - it required overloading __call() and doing this work in userland, and now it's no longer necessary.<br />
<br />
On a slightly related note, I wanted to take this opportunity to ask how many of you have actually used ext/soap, and what's your feedback about it. Is it working well? Is there anything missing? As in the past, success stories are also interesting, they're equally interesting to "it's broken!" responses.<br />
<br />
As a special bonus, for those of you who integrate with SalesForce, and are still using the old SOAP APIs (or God forbid, are using a language other than PHP to do it), here's a code snippet that demos how to connect to SalesForce. Note that because it uses the new SoapClient::__setSoapHeaders(), you'd need a fairly recent snapshot/CVS in order for that to work.<br />
<br />
---<br />
<div class="bb-php-title">PHP:</div><div class="bb-php"><code><span style="color: #000000"><br />
<span style="color: #0000BB">&lt;?php<br />
</span><span style="color: #FF8000">//&#160;Connect<br />
</span><span style="color: #0000BB">$sforce&#160;</span><span style="color: #007700">=&#160;new&#160;</span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"sforce.wsdl"</span><span style="color: #007700">);&#160;&#160;</span><span style="color: #FF8000">//&#160;obtain&#160;your&#160;own&#160;customized&#160;sforce.wsdl&#160;from&#160;sforce.com<br />
</span><span style="color: #0000BB">$loginResult&#160;</span><span style="color: #007700">=&#160;</span><span style="color: #0000BB">$sforce</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">login</span><span style="color: #007700">(array(</span><span style="color: #DD0000">"username"&#160;</span><span style="color: #007700">=&gt;&#160;</span><span style="color: #DD0000">"joe@doe.com"</span><span style="color: #007700">,&#160;</span><span style="color: #DD0000">"password"&#160;</span><span style="color: #007700">=&gt;&#160;</span><span style="color: #DD0000">"xyz"</span><span style="color: #007700">));<br />
</span><span style="color: #0000BB">$loginResult</span><span style="color: #007700">=&#160;</span><span style="color: #0000BB">$loginResult</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">result</span><span style="color: #007700">;<br />
<br />
</span><span style="color: #FF8000">//&#160;Set&#160;connection&#160;data<br />
</span><span style="color: #0000BB">$sforce</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">__setLocation</span><span style="color: #007700">(</span><span style="color: #0000BB">$loginResult</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">serverUrl</span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">$sforce_header&#160;</span><span style="color: #007700">=&#160;new&#160;</span><span style="color: #0000BB">SoapHeader</span><span style="color: #007700">(</span><span style="color: #DD0000">'urn:enterprise.soap.sforce.com'</span><span style="color: #007700">,&#160;</span><span style="color: #DD0000">'SessionHeader'</span><span style="color: #007700">,&#160;array(</span><span style="color: #DD0000">'sessionId'&#160;</span><span style="color: #007700">=&gt;&#160;</span><span style="color: #0000BB">$loginResult</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">sessionId</span><span style="color: #007700">));<br />
</span><span style="color: #0000BB">$sforce</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">__setSoapHeaders</span><span style="color: #007700">(array(</span><span style="color: #0000BB">$sforce_header</span><span style="color: #007700">));<br />
<br />
</span><span style="color: #FF8000">//&#160;Query&#160;SalesForce&#160;for&#160;Leads&#160;whose&#160;first&#160;name&#160;is&#160;Bill<br />
</span><span style="color: #007700">try&#160;{<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">$result&#160;</span><span style="color: #007700">=&#160;</span><span style="color: #0000BB">$sforce</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(array(</span><span style="color: #DD0000">"queryString"&#160;</span><span style="color: #007700">=&gt;&#160;</span><span style="color: #DD0000">"select&#160;Id,&#160;FirstName,&#160;LastName&#160;from&#160;Lead&#160;where&#160;Lead.FirstName='Bill'"</span><span style="color: #007700">));<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />
}&#160;catch&#160;(</span><span style="color: #0000BB">Exception&#160;$e</span><span style="color: #007700">)&#160;{<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">);<br />
}<br />
<br />
</span><span style="color: #FF8000">//&#160;Change&#160;a&#160;lead<br />
</span><span style="color: #007700">try&#160;{<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">$lead</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">LastName&#160;</span><span style="color: #007700">=&#160;</span><span style="color: #DD0000">"Gates"</span><span style="color: #007700">;<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">$lead</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Id&#160;</span><span style="color: #007700">=&#160;</span><span style="color: #DD0000">"..."</span><span style="color: #007700">;&#160;&#160;</span><span style="color: #FF8000">//&#160;needs&#160;to&#160;be&#160;a&#160;valid&#160;id<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">$arg</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">sObjects&#160;</span><span style="color: #007700">=&#160;new&#160;</span><span style="color: #0000BB">SoapVar</span><span style="color: #007700">(</span><span style="color: #0000BB">$lead</span><span style="color: #007700">,&#160;</span><span style="color: #0000BB">SOAP_ENC_OBJECT</span><span style="color: #007700">,&#160;</span><span style="color: #DD0000">"Lead"</span><span style="color: #007700">,&#160;</span><span style="color: #DD0000">"http://soapinterop.org/xsd"</span><span style="color: #007700">);<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$sforce</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update</span><span style="color: #007700">(</span><span style="color: #0000BB">$arg</span><span style="color: #007700">));<br />
&#160;&#160;&#160;&#160;print&#160;</span><span style="color: #DD0000">"SUCCESS!"</span><span style="color: #007700">;<br />
}&#160;catch&#160;(</span><span style="color: #0000BB">Exception&#160;$e</span><span style="color: #007700">)&#160;{<br />
&#160;&#160;&#160;&#160;</span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">);<br />
}<br />
<br />
</span><span style="color: #0000BB">?&gt;</span><br />
</span><br />
</code></div><br />
---<br />
<br />
During the course of writing this blog I came across a blog post from <a href="http://www.schlossnagle.org/~george/blog/index.php?/archives/235-Salesforce.com-and-PHP.html">George Schlossnagle</a> which may also be interesting. Even though I didn't bump into the same issue, it may be that I just didn't get far enough - so you may still need the workaround in there.<br />
<br />
</content:encoded>
<pubDate>Wed, 17 Aug 2005 17:29:05 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/5-guid.html</guid>
</item>
<item>
<title>PHP History Gem found!</title>
<link>http://suraski.net/blog/index.php?/archives/4-PHP-History-Gem-found!.html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/4-PHP-History-Gem-found!.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=4</wfw:comment>
<slash:comments>7</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=4</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
While deleting old files to save some space on my homedir, I stumbled upon a PHP history gem - David Axmark's photos of what was the first PHP conference ever - the <a href="http://suraski.net/gallery/PDM2000">PHP Developers' Meeting</a>, or PDM, held in Tel Aviv, Israel, January 2000. That's more than 5 years ago, the days where men were men, <a href="http://www.dpreview.com/news/9904/99042602olyimagingresource.asp">2 megapixel digicams</a> were cutting edge, and the entire PHP development team (almost) could easily fit in a fairly small room.<br />
<br />
In addition to the <a href="http://suraski.net/gallery/PDM2000Conference">conference pics themselves</a>, the galleries also include photos of the trip we took to <a href="http://suraski.net/gallery/PDM2000Jerusalem">Jerusalem</a> as well as some random pictures of <a href="http://suraski.net/gallery/PDM2000DavidMontyTA">Tel Aviv</a>.<br />
<br />
<a href="http://suraski.net/gallery/PDM2000">Enjoy!</a>
</content:encoded>
<pubDate>Fri, 06 May 2005 19:57:29 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/4-guid.html</guid>
</item>
<item>
<title>New Zend Studio plugins released</title>
<link>http://suraski.net/blog/index.php?/archives/2-New-Zend-Studio-plugins-released.html</link>
<category>PHP</category>
<comments>http://suraski.net/blog/index.php?/archives/2-New-Zend-Studio-plugins-released.html#comments</comments>
<wfw:comment>http://suraski.net/blog/wfwcomment.php?cid=2</wfw:comment>
<slash:comments>3</slash:comments>
<wfw:commentRss>http://suraski.net/blog/rss.php?version=2.0&type=comments&cid=2</wfw:commentRss>
<author>zeev@zend.com (Zeev Suraski)</author>
<content:encoded>
Two <a href="http://www.zend.com/store/products/zend-studio/plug-ins.php">new plugins</a> were officially released today by Zend.<br />
<br />
First, a plugin that allows integration of PHP code snippets from zend.com's code gallery, directly into Adobe GoLive. That replicates a feature that's built into Zend Studio 4.0, and makes it available (for free) in Adobe's HTML WYSIWIG editor, quite a nice addition for advanced PHP-aware designers.<br />
<br />
And more interestingly from my point of view - a <a href="http://suraski.net/blog_pics/firefox_plugin.jpg">FireFox plugin that provides full Zend Studio integration with the browser</a> (actually, the plugin is also available separately for Mozilla, so I guess you can count them as three).<br />
<br />
The idea of integrating PHP debugging and profiling capabilities directly into the browser was introduced in Zend Studio 3.0, in the form of the Internet Explorer toolbar. Even though I'm far from being objective about the brilliance of this toolbar (...), it was very pleasing to see the tremendous feedback that it generated. Finally, it was possible to debug even the most annoying forms and most complicated pages, at a simple click of a button.<br />
<br />
Internally at Zend, where a lot (not to say most) of the developers use Linux, it actually generated some angry "grr, when will it support Mozilla?#!$" feedback, which I silently ignored. Back then, I had very little faith in Mozilla, and I have to admit I dismissed it as a noble effort that will never actually be fruitful. Nonetheless, I wrote a simple XUL version of the toolbar that was used internally for quite some time.<br />
<br />
Times have changed. Firefox has become the browser of choice for many users, including myself, and for the first time in years, a challenger is posing some serious competition to the IE monopoly. It was clearly time to take the Firefox userbase more seriously. A recent <a href="http://pixelated-dreams.com/archives/116-Debugging-using-Zend-Server-from-Firefox.html">blog post by Davey Shafik</a> made the need for a good Firefox plugin bluntly clear. Thankfully, by now we already had a rewritten plugin for Firefox, that arguably has more functionality than its IE cousin. Today it was finally officially <a href="http://www.zend.com/store/products/zend-studio/plug-ins.php">released to the public</a>.<br />
<br />
One final interesting note about these plugins - they're all written as scripts. Is the end of compiled languages for daily use nearing?
</content:encoded>
<pubDate>Thu, 07 Apr 2005 03:51:42 -0400</pubDate>
<guid isPermaLink="false">http://suraski.net/blog/index.php?/archives/2-guid.html</guid>
</item>
</channel>
</rss>
|