تبليغاتX
برنامه نویس کوچولو

برنامه نویس کوچولو

یادداشتهای یه برنامه نویس خیلی ^ 100 کوچولو

سال نو مبارک


سلام
سال نو رو به همه دوستان تبریک میگم و امیدوارم که ساله خوبی داشته باشند.
+ نوشته شده در  دوشنبه بیست و هفتم اسفند 1386ساعت 22:12  توسط علیرضا مسکین ملک  | 

extension نویسی برای php

با سلام به همگی

اگه تو منوال پی اچ پی دیده باشید واسه نوشتن یه ماژول خیلی ساده بایستی کلی کدهای اضافی هم بنویسیم امروز می خوام یه ابزاری رو معرفی کنم بنام swig که توسط آقای David Beazley طراحی شده و می توانید از آدرس http://www.swig.org/ دانلود کنید به ما این امکان رو میده که فقط قسمت اصلی تابع مورد نظر را بنویسید و شما رو از نوشتن کدهای اضافی دیگر راحت می کنه.
البته من این مطلب رو چند وقت پیش تو سایت Iranphp.net توضیح داده بودم ولی چون تو وبلاگ نبود گفتم شاید بدرد کسی بخوره بهر حال اگه دوستان قبلاً دیدن نگن آقا مطلب مطلب تکراریه.

این ابزار کار خود را از طریق خواندن یک فایل رابط که شامل تعاریف متد ها و توابع می باشد انجام می دهد ، سپس بصورت خودکار تبدیل نوع داده ها ، چک کردن ایرادات کد ، ایجاد فایل C ، کامپایل فایل و ایجاد فایل ماژول را انجام می دهد .
این ابزار بسیار مفید و کاری بوده چون از طریق آن می توان کد های مختلف نوشته شده را به راحتی به ماژولهایی نه تنها برای PHP بلکه برای زبانهایی مثل C# , Java , modula3 , perl , php , pike , python , ruby , tcl و ... تبدیل کرد .

خب برای شروع ابتدا فایلی بنام hellomodule.c را ایجاد و برنامه زیر را در اون می نویسیم

#include
void say_hello(const char* name) {
printf("Hello %s!\n", name);
}

یه نکته مهم این که این برنامه ها چون تبدیل به یک library میشن نیاز به تابع main ندارند سپس یک فایل دیگه به اسم hello.I ایجاد کرده و کد زیر را توی اون می نویسیم :

%module hello
extern void say_hello(const char* name);
اکنون دستور زیر را در ترمینال وارد کنید :

swig -php hello.I
ین دستور دو فایل بنامهای hello.php و hello_warp.c به ما میده که حالا نوبت کامپایل این ماژوله ابتدا باید php-devel رو نصب کرده باشید تا بتونیم اونو کامپایل کنیم البته اگه اگه از روی سورس کامپایل کرده باشید نیازی به نصب این بسته نیست
شما باید مسیر قرار گرفتن فایلهای include مرتبط با phpرو بدونید که میتونید از دستور زیر برای بدست آوردن این اطلاعات استفاده کنید

php-config --includes
خروجی این دستور را که مشابه کد زیر است به جای $PHPINCLUDE در دستور کامپایل که در زیر آمده جایگذاری کنید

-I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib

دستور کامپایل :

gcc -fpic -c hellomodule.c hello_wrap.c $PHPINCLUDES

gcc -shared hellomodule.o hello_wrap.o -o php_hello.so

حالا ماژول بدست اومده رو می بایست تو مسیر extension_dir کپی کنید و بعد از restart کردن PHP کد زیر را درون یک فایل PHP قرار داده و اجرا کنید :

	if(!extension_loaded('hellomodule'))
dl("hellomodule.so");
say_hello("Alireza meskin malek");
?>

حال باید این فایل رو اجرا کرد من که از طریق کنسول اجرا می کنم :

php -f hello.php

خروجی به صورت زیر خواهد بود که نشان دهنده اینست که ماژول به درستی نصب شده و کار می کند

Alireza meskin malek

این مثالی کوچک از ابزاری بزرگ بنام swig است . البته در منوال خود ابزار مثالهایی یرای نوشتن کلاس وجود داره.
امیدوارم که مفید بوده باشه.
+ نوشته شده در  سه شنبه هفتم اسفند 1386ساعت 18:19  توسط علیرضا مسکین ملک  | 

سان MySQL را مي‌خرد!

شرکت معظم سان (Sun) روز چهارشنبه گذشته (27 دي 86، 16 ژانويه 2008) پيشنهادي يک ميليارد دلاري به شرکت سوئدي MySQL براي خريد اين پايگاه داده متن‌باز ارايه کرد. در صورت توافق و انجام اين خريد، سان خود را وارد بازار 15 ميليارد دلاري پايگاه داده خواهد کرد. MySQL چند سالي است که به عنوان يک پايگاه داده متن‌باز سبک، کارآمد و سريع، و همچنين يک ستون از چهار ستون LAMP (Linux-Apache-MySQL-Perl/Python/PHP) بازاري چند ميليون دلاري براي خود ايجاد کرده است. اين معامله بزرگ‌ترين معامله متن‌باز تا به امروز خواهد بود و سان را به يکي از بازيگران اصلي مجموعه LAMP بدل خواهد کرد. مسئولان سان عقيده دارند که با اين کار، مشتريان MySQL از پشتيباني سازمان بزرگ‌تري برخوردار خواهند شد و اين نرم‌افزار نيز قدرت رقابت بيشتري با محصولاتي چون Oracle و MS SQL Server خواهد داشت.
+ نوشته شده در  جمعه سوم اسفند 1386ساعت 18:50  توسط علیرضا مسکین ملک  | 

مايکروسافت کد دات‌نت را منتشر مي‌کند!

مايکروسافت با انتشار کد بخش‌هايي از دات‌نت به جامعه متن‌باز نزديک مي‌شود.

هفته گذشته مايکروسافت به وعده خود مبني بر منتشر کردن کد بخش‌هايي از دات‌نت فريم‌ورک (.Net Framework) و فراهم آوردن امکان خطايابي (debug) در Visual Studio 2008 عمل کرد. روز پنج‌شنبه (17 ژانويه 2008 - 27 دي 1386) اسکات گاثري (Scott Guthrie)، مدير بخش برنامه‌نويسي مايکروسافت، در وب‌لاگ خود اعلام کرد که بخش‌هايي از اين کد در دسترس عموم قرار خواهد گرفت. کتاب‌خانه‌هايي که قرار است کدشان منتشر شود، عبارت‌اند از .NET Base Class Libraries ، Windows Forms ، Windows Presentation Foundation ، ASP.NET ، ADO.NET و XML . وي همچنين اعلام کرد که کتابخانه‌هاي بيشتري، از جمله LINQ, WCF  و  Workflowنيز طي هفته‌ها و ماه‌هاي آتي در اختيار برنامه‌نويسان قرار خواهد گرفت.

در ضمن، مايکروسافت مجوز مرجع (Reference License) خود را به نحوي تغيير خواهد داد که مشمول برنامه‌نويساني نشود که نرم‌افزارهاي غيرمبتني بر ويندوزي مي‌نويسند که ويژگي‌ها و عملکرد کم‌وبيش مشابهي با دات‌نت فريم‌ورک ارايه مي‌کنند.


+ نوشته شده در  جمعه سوم اسفند 1386ساعت 18:46  توسط علیرضا مسکین ملک  |