<rss version="0.92">
  <channel>
    <title>.:PHP Mystery:.</title>
    <link>http://www.phpmystery.com</link>
    <description>If PHP can do it, you can do it to...</description>
    <item>
      <title>سرويس نقشه تهران</title>
      <description>&lt;img src=&quot;http://www.ketabeavval.ir/images/logo.gif&quot; align=&quot;left&quot; alt=&quot;Book1&quot; /&gt; امروز سرويس نقشه تهران سايت  &lt;a href=&quot;http://www.ketabeavval.ir/map/&quot; target=&quot;_blank&quot;&gt;کتاب اول&lt;/a&gt; در دسترس عموم قرار گرفت. اين سرويس،  بخشی از خدمات ارائه شده در  &lt;a href=&quot;http://www.ketabeavval.ir/ebook/&quot; target=&quot;_blank&quot;&gt;نرم افزار نقشه تهران&lt;/a&gt; است که برنامه نویسی فلش آن توسط دوست خوبم  &lt;a href=&quot;http://www.cubny.com&quot; target=&quot;_blank&quot;&gt;علیرضا الیادرانی&lt;/a&gt; بطور کاملا حرفه ای انجام شده است. امکان جستجو و نمایش موقعیت مکانی معابر تهران و برخی مشاغل و پیمایش روی نقشه با امکان بزرگنمایی و کوچک نمایی از جمله امکانات این سرویس فوق العاده است. سرویس حاضر توسط دوست عزیزم  &lt;a href=&quot;http://www.mohsentaleb.com&quot; target=&quot;_blank&quot;&gt;محسن طالب&lt;/a&gt; و کاملا با جاوااسکريپت بصورت OO برنامه نويسی شده است. همچنین طراحی واسط کاربری نرم افزار و سرویس آنلاین کاملا بر عهده محسن بوده که بی نظیر است.&lt;br /&gt;
لازم می دونم يک خسته نباشيد اساسی بگویم به دوستان خوبم به خاطر پديدآوردن اين محصول و سرويس.</description>
      <link>http://www.phpmystery.com/?plink=90</link>
    </item>
    <item>
      <title>اولين سيستم وبلاگ نويسی آذری زبان</title>
      <description> &lt;img src=&quot;http://azeriblog.com/public/images/logo/logo.gif&quot; align=&quot;left&quot; alt=&quot;AzeriBlog.com&quot; /&gt; امروز خوشحالم از اينکه با حمايت آقای  &lt;a href=&quot;http://www.asgharzadeh.com/&quot; target=&quot;_blank&quot;&gt;اصغرزاده&lt;/a&gt; تونستم برنامه نويسی سرويس وبلاگ  &lt;a href=&quot;http://www.azeriblog.com&quot; target=&quot;_blank&quot;&gt;آذری بلاگ&lt;/a&gt; رو به اتمام برسونم و خدمتی برای هموطنان آذری زبان که خودم هم جزئی از اونهام انجام بدم.&lt;br /&gt;
اين سيستم مسلما شروع حرفه ای يک سيستم وبلاگ نويسی هست و امکاناتی به اون اضافه خواهد شد که خود وردپرس و ديگر سرويسهای بلاگ معروف هم در حال حاضر ندارند.&lt;br /&gt;
از نظر فنی با کيفيتی بالاتر از سايت کلوب از نظر هسته فريم ورک کار شده و مفاهيم جديدی در اون بکار بردم که سر فرصت توضيح خواهم داد. اما امکانات اين سيستم بطور کلی:&lt;br /&gt;
۱) اختصاص آدرس وبلاگ به صورت Subdomain&lt;br /&gt;
۲) امکان دسته بندی مطالب و اختصاص هر مطلب به بيش از يک گروه&lt;br /&gt;
۳) اديتور حرفه ای جهت مديريت راحتر مطالب (متن اصلی و ادامه متن)&lt;br /&gt;
۴) امکان پست به آينده&lt;br /&gt;
۵) امکان تعريف وضعيت نظرسنجی و متن نظرسنجی برای هر پست&lt;br /&gt;
۶) امکان ذخیره سازی پست به صورت چرک نویس&lt;br /&gt;
۷) امکان آپلود نامحدود فایلهای تصویری و درج در ادیتور&lt;br /&gt;
۸) امکان مشاهده پیش نمایش پست&lt;br /&gt;
۹) امکان جستجوی تمام متن و فیلتر نوشته ها بر اساس معیارهای مختلف&lt;br /&gt;
۱۰) امکان تعریف کاربر با تعیین سطح دسترسی جهت همکاری در ویلاگ&lt;br /&gt;
۱۱) امکان ایجاد وبلاگ جدید و سوئیچ سریع بین وبلاگها&lt;br /&gt;
۱۲) امکان تعریف لینک به تعداد نامحدود&lt;br /&gt;
۱۳) امکان تعیین قالب ویلاگ از میان قالبهای از پیش تعریف شده&lt;br /&gt;
۱۴) امکان سفارشی نمودن وبلاگ با کدهای مخصوص آذری بلاگ&lt;br /&gt;
۱۵) امکان رونویسی CSS تم انتخابی&lt;br /&gt;
۱۶)  امکان جستجوی تمام متن بر روی مطالب وبلاگ&lt;br /&gt;
۱۷) دسته بندی ماهیانه مطالب&lt;br /&gt;
۱۸) امکان مشخص نمودن لینک ثابت مطالب و معادلسازی خودکار کاراکترهای آذری لاتین به انگلیسی&lt;br /&gt;
۱۹) صفحات وبلاگ کاملا Search Engine Friendly&lt;br /&gt;
۲۰) عدم نمایش تبلیغات&lt;br /&gt;
و موارد دیگر که باید خودتون عضو شوید و ببینید.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://azeriblog.com/register&quot; target=&quot;_blank&quot;&gt;هم اکنون به جمع وبلاگ نویسان آذری زبان بپیوندید!&lt;/a&gt;  :)  </description>
      <link>http://www.phpmystery.com/?plink=88</link>
    </item>
    <item>
      <title>کار جدید</title>
      <description> &lt;img src=&quot;http://www.cloob.com/public/public/images/logo/header.gif&quot; align=&quot;left&quot; alt=&quot;Cloob&quot; /&gt; ۴ ماه کار مداوم با تیم کلوب بعنوان مشاور پروژه (آموزش، همکاری و نظارت) حدود ۲ هفته ای است که به ثمر نشسته و نسخه ۳ وب سایت جامعه مجازی ایرانیان،  &lt;a href=&quot;http://cloob.com&quot; target=&quot;_blank&quot;&gt;کلوب&lt;/a&gt; در تاریخ ۶ خردادماه lunch شد. کلا از روند اجرای پروژه راضی هستم ولی همواره گفته و می گم که جای بیشتری برای کار داره و امکانات خیلی بهتری هم میشه بهش اضافه کرد. اما زمان و بودجه دو اصل مهم از کیفیت اجرای یک پروژه هست که همیشه محدودند. از دوستان حرفه ای خودم که اینجا رو میخونن تقاضا می کنم هر نقص یا مشکلی که دیدن بهم تذکر بدن تا سریعا اصلاح بشه. به هر حال این پروژه هم تموم شد و تجربه خوبی برای من بود تا تمام تحقیقاتی که در زمینه توسعه وب اپلیکیشنهایی با مقیاس پذیری بالا انجام داده بودم رو عملی اجرا کنم، چنانچه با توجه به وسعت این نسخه و امکانات جدید، بار سرویس دهنده یک سوم نسخه قبل است. از جناب آقای شکوری تشکر میکنم که با بنده همکاری لازم رو در همه زمینه ها داشتند. از دوستان خوبم &lt;a href=&quot;http://zoup.org/plog/&quot; target=&quot;_blank&quot;&gt;آرمین&lt;/a&gt; و &lt;a href=&quot;http://www.mohsentaleb.com/&quot; target=&quot;_blank&quot;&gt;محسن&lt;/a&gt; هم تشکر می کنم که هر کدام سهم بزرگی در موفقیت این پروژه داشتند.&lt;br /&gt;
&lt;br /&gt;
توصیه میکنم برای دیدن این سایت از مرورگر غیر IE استفاده کنید! &lt;br /&gt;
&lt;br /&gt;
اگر حوصله دارید، کمی هم بحث فنی:&lt;br /&gt;
فریم ورک بر اساس نسخه 0.2 (Preview Release) فریم ورک Zend توسعه پیدا کرده که دوستانی که آشنایی دارند می دونند که اون موقع چقدر خام بود. من کلا از ساختار Routing و Dispatching اون خیلی خوشم اومد چون کاملا OO پیاده سازی شده بود. ما صرفا همین بخش MVC رو از فریم ورک Zend قرض گرفتیم و الان چیزی شد که به جرئت می تونم اونو فریم ورک اختصاصی کلوب بنامم. خیلی از شاخ و برگهای کامپوننت MVC فریم ورک Zend رو زدم و بعضی جاها را کاملا Customize کردم مخصوصا بخش On-demand Loading و Dispatching. هر کنترلر در این فریم ورک سه سطح وراثت داره برای مقداردهی متغیرهای مختلف هر ماجول، بخش View کاملا تغییر کرد، بخش Routing کاملا بازنویسی شد تا حداقل Overhead رو داشته باشیم. در بخش Controller تغییرات زیادی صورت گرفت که هر Action سه نوع مختلف می تواند فراخوانی شود و Viewخود را render کند، تمام کدهای برنامه بصورت OO توسعه یافته و اساس Error Handling در این فریم ورک Exception هست که در Classهایی که توسعه دادیم این مورد لحاظ شد. دامنه این حساسیت تا Cron Jobهایی که توسط Cli اجرا میشن هم گسترده شد!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
موارد شاخص در اجرای این پروژه:&lt;br /&gt;
استفاده از آخرین نسخه های Stable و امکانات جدید بانک MySQL و زبان PHP و حتی Extensionهای PECL&lt;br /&gt;
عدم استفاده از Class های آماده چون معتقد بودیم برای App.ای که بطور متوسط در هر ثانیه 50 هیت روی صفحه Index(Front Controller) هست، خط به خط کد باید Optimize باشه. &lt;br /&gt;
کلا Data Tier توسط Stored Procedureها و Triggerها در سطح بانک MySQL پیاده سازی شد که واقعا برای همچین پروژه ای راه رفتن روی بند بود! (اما خوشبختانه مثل اینکه میشه بهش اعتماد کرد!)&lt;br /&gt;
توسعه DBAL بر اساس MySQLi، مشکل MySQLi در هندل کردن Output Parameterهای SP هم یه جوری تو یک کوئری حل کردیم!&lt;br /&gt;
استفاده از Replication و Load Balancing بین Master و Slave در سطح App با استفاده از Shared Memory متدولوژی System V و سمافورها جهت مقابله با Race Condition&lt;br /&gt;
ما از Shared Memory برای ذخیره خیلی چیزهای دیگه هم استفاده کردیم البته چیزهایی که در صورت بروز Segmentation Fault مشکل ایجاد نشه.&lt;br /&gt;
توسعه سیستم ACL پیشرفته با قابلیت تعریف مجوزها در سطح Actionها و بصورت کاملا Atomic همراه با سرعت و کارایی بالا و حداقل Overhead در لایه Dispatching (این قسمت انصافا ایده جالبی بود و خیلی خوب پیاده شد) در این سیستم امکان تعریف مجوز بصورت Per Action، Per Session و Time-based وجود دارد و می توان مجوزها رو بصورت نفر به نفر (فلانی نتونه یادداشت من رو ببینه)، نفر نسبت به همه (این نفر نتونه به کسی یادداشت بفرسته) و همه نسبت به نفر (هیچ کس نتونه برای من یادداشت بفرسته) تعیین کرد. البته این مجوزها سطوح اولویت خاصی دارند که از هم پیشی می گیرند!&lt;br /&gt;
مجموعه Class، Helper و Shortcutهای جاوا اسکریپتی و پیاده سازی اسکریپتهای Client Side بصورت OO &lt;br /&gt;
پیاده سازی پیشرفته Caching بر اساس Result set توسط DBAL فریو ورک بر اساس قواعد نامگذاری Stored Procedureها و همچنین در سمت کلاینت جهت به حداقل رساندن Load&lt;br /&gt;
پیاده سازی بخش View منطبق بر آخرین استاندارهای وب و بصورت Tableless و CSS Based، کوچک سازی Markup صفحات و استفاده از توان پردازشی Client side در صورت نیاز جهت به حداقل رساندن Cycle پردازنده Server&lt;br /&gt;
در این فریم ورک که توسعه پیدا کرد کلا همه Requestها در Trap یک متد خاص می افتند که اونجا هر بلایی سر اونها ممکنه اتفاق بیفته و سپس Dispatch میشه.&lt;br /&gt;
فریم ورک طوری طراحی شده که اگر JavaScript کلاینت Disable باشه هم می تونه صفحات رو ببینه. یعنی همون Graceful Degradation بدین ترتیب که یک روش جالب جهت Render کردن Viewهای تودرتو درست کردیم. و همه متدها والد خودشون رو می شناسن!&lt;br /&gt;
و خیلی موارد دیگه که دوست داشتم بگم ولی بنا به دلایلی نمیشه گفت.</description>
      <link>http://www.phpmystery.com/?plink=87</link>
    </item>
    <item>
      <title>تخم مرغ شانسی PHP</title>
      <description>اين &lt;a href=&quot;http://suraski.net/blog/index.php?/archives/6-Scotch-is-gone.html&quot; target=&quot;_blank&quot;&gt;هاپوی&lt;/a&gt; آقای Zeev Suraski خدمات شايانی در توسعه PHP داشته اند و مرگ ایشان احتمالا اثر قابل ملاحظه ای در روند توسعه اين زبان اسکريپت نويسی محبوب خواهد گذاشت. [&lt;a href=&quot;http://blog.phpmystery.com/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42&quot; target=&quot;_blank&quot;&gt;...&lt;/a&gt;]&lt;br /&gt;
اسکاچ جان جای تو در قلبهای تک تک ماست.&lt;br /&gt;
Kevin در وبلاگ &lt;a href=&quot;http://www.sitepoint.com/blogs/2006/01/08/phps-doggie-easter-egg/&quot; target=&quot;_blank&quot;&gt;PHP&lt;/a&gt; سایت SitePoint در مورد تخم مرغهای شانسی PHP نوشته که خواندنش خالی از لطف نيست. </description>
      <link>http://www.phpmystery.com/?plink=85</link>
    </item>
    <item>
      <title>زنده باد GROUP_CONCAT</title>
      <description>بدون شرح!&lt;br /&gt;
[code]&lt;br /&gt;
mysql&gt; CREATE TABLE group_concat_test (&lt;br /&gt;
-&gt;id INT UNSIGNED NOT NULL auto_increment &lt;br /&gt;
-&gt;PRIMARY KEY,&lt;br /&gt;
-&gt;_key INT UNSIGNED NOT NULL,&lt;br /&gt;
-&gt;_value CHAR(1) NOT NULL);&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&gt; INSERT INTO group_concat_test&lt;br /&gt;
-&gt;(_key, _value) VALUES&lt;br /&gt;
-&gt;(1, 'b'),&lt;br /&gt;
-&gt;(1, 'c'),&lt;br /&gt;
-&gt;(2, 'a'),&lt;br /&gt;
-&gt;(2, 'd'),&lt;br /&gt;
-&gt;(2, 'c'),&lt;br /&gt;
-&gt;(3, 'b'),&lt;br /&gt;
-&gt;(3, 'e');&lt;br /&gt;
Query OK, 7 rows affected (0.01 sec)&lt;br /&gt;
Records: 7  Duplicates: 0  Warnings: 0&lt;br /&gt;
&lt;br /&gt;
mysql&gt; SELECT _key,    &lt;br /&gt;
-&gt;COUNT(*) as cnt,&lt;br /&gt;
-&gt;GROUP_CONCAT(_value ORDER BY _value &lt;br /&gt;
-&gt;SEPARATOR ', ')&lt;br /&gt;
-&gt;as value_list&lt;br /&gt;
-&gt;FROM group_concat_test&lt;br /&gt;
-&gt;GROUP BY _key&lt;br /&gt;
-&gt;ORDER BY _key;&lt;br /&gt;
+------+-----+------------+&lt;br /&gt;
| _key | cnt | value_list |&lt;br /&gt;
+------+-----+------------+&lt;br /&gt;
|    1 |   2 | b, c       |&lt;br /&gt;
|    2 |   3 | a, c, d    |&lt;br /&gt;
|    3 |   2 | b, e       |&lt;br /&gt;
+------+-----+------------+&lt;br /&gt;
3 rows in set (0.00 sec)&lt;br /&gt;
[/code]</description>
      <link>http://www.phpmystery.com/?plink=84</link>
    </item>
  </channel>
</rss>
