اموزشی

ساخت یک اینترفیس تحت وب برای کارهای سیستمی با php و python

یکشنبه, مرداد ۲۴م, ۱۳۸۹ | php, python, اموزشی, لینوکس | ۱ نظر

مدتها پیش مقاله ای نوشته بودم در باب اجرای دستورات خط فرمان درphp تو اون اشاره کرده بودم که در php توابعی وجود داره که میشه دستورات سیستمی مثل ls,pwd,.. رو اجرا کرد .
اما امروز بر اون شدم که با راهنمایی های استادم، اقای مقدم یه رابط کاربری تحت وب برای کارهای سیستمی بسازم!
اول رفتم سراغ php که مثلا بلدمش!و از اونجایی که حسو حال ساختن فرم ورود اطلاعات رو نداشتم از سایت http://www.phpform.org استفاده کردم و یه اینترفیس برای یه دیوار اتش ساده ساختم به شکل زیر:

و بعد از اون امدم خروجی فرم بالا رو گرفتم و تبدیل کردم به دستور موردنظر با کمک آرایه های انجمنی:

› ادامه مطلب

  • Share/Bookmark

Tags: , ,

مقاله آشنایی با فریم ورک CodeIgniter ارائه شده در همایش سراسری لمپ در ایران :: زنجان

شنبه, مرداد ۱۶م, ۱۳۸۹ | code igniter, اموزشی | ۲ نظر

خوب از آقای نبی زاده اجازه گرفتم قبل از اینکه رو سایت اصلی همایش  http://www.conference.phpdevelopers.ir مقاله ها آپلود بشن من مقاله خودمو رو وبلاگم منتشر کنم!

بهرحال یه پستم یه پسته!

خلاصه تو این همایش فرصتی شد تا در مورد قالب کاری فعلیم که همون code igniter هست مقاله بنویسم  ، و سعی کردم مقاله یه جوری باشه که بشه به عنوان مرجع اولیه و وسیله آشنایی استفاده کرد ازش!

خلاصه اینجا مقدمه و فهرستشو میارم و بعد فایلو برا دانلود میزارم:

فهرست

  • مقدمه
  • CodeIgniter چیست؟
  • CI برای چه کسانی هست؟
  • معرفی کوتاه MVC
  • روند اجرای برنامه (Application Flow Chart )
  • آدرس‌های اینترنتی در کد اگنایتر(Code Igniter URLS)

بخش‌های آدرس (URI Segment )

حذف فایل ایندکس از آدرس (Removing the index.Php file )

اضافه کردن پسوند به آدرس(Adding a URL Suffix )

Enabling Query String

  • کنتـرل کننده ­ها (controller)

پاس دادن مقادیر uri به توابع( Passing URI segment to your funition )

Remapping

توابع خصوصی (Private function )

مشخص کردن سازنده کلاس (Class constructors )

اسامی رزرو شده در توابع(Reserved Function Name)

  • Views
  • کتابخانه‌ها (Libraries )
  • کمک کننده ها (Helper Files )

توسعه کمک کننده ها (Extending Helper )

پیشوند خود را برای کمک کننده ها انتخاب کنید(Setting your own prefix )

Using code igniter library

  • Plugins

Loading a Plugin

  • فایل تنظیمات شخصی (Custom Config File )
  • Language File

ساختن فایل­های زبان

Loading a Language File

  • مباحث مرتبط به کار با پایگاه داده در CI

وصل شدن به دیتابیس

Automatically connection

Manually connection

Models

ساختار Model ها

Loading a model

وصل شدن به پایگاه داده در یک مدل

آشنایی با ابزار Scaffolding

انجام عملیات CRUD در CI

Active Record Class

SELECT

INSERT

UPDATE

DELETE

  • Web page caching

کش چگونه کار می کند؟

فعال سازی کش

Deleting Caches

  • اجرای یک مثال عملی در CI

دستورات نصب CI

ایجاد صفحه درج اطلاعات

ایجاد صفحه خواندن اطلاعات

ایجاد صفحه حذف مطالب

  • کد های مثال

مقدمه

سالهاست php در ایران یک زبان شناخته شده برای طراحی وب است اما متاسفانه قالب‌های کاری (framework ) آن در ایران شناخته شده نیستند و بعضا ما شاهد مقایسه‌های اشتباه بین ASP.NET که یه زبان طراحی وب بعلاوه یک قالب کاری هست، با زبان php بدون هیچ کدام از قالب‌های کاریش هستیم . این نشان دهنده تصور قالب در اکثر دانشگاهیان ما هست.

در این نوشته سعی دارم یکی از ساده‌ترین و سریعترین قالب‌های کاری php را معرفی کنم و آن چیزی نیس جز Code Igniter

این نوشته در قسمت اول به مفاهیم بنیادی میپردازد سپس سعی میکند اجزای اصلی این قالب را معرفی کرده و در آخر با آوردن یک مثال عملی ساده ، سعی بر اتمام هدف خود کند.

در جای جای این نوشته از مستندات خود Code Igniter به صورت ترجمه آزاد استفاده شده و در قسمت‌هایی از تجارب شخصیم استفاده کردم ،بدیهی است برای اطلاعات بیشتر و آشنایایی با دیگر مباحث این قالب توصیه می‌شود حتماً از مستندات رسمی آن استفاده شود :

http://codeigniter.com/user_guide/

به امید اینکه این مقاله گامی کوچک در فرهنگ سازی در مورد قالب‌های کاری آزاد باشد.

همچنین توجه به این نکته را لازم میدانم که فرض ما بر تسلط خواننده بر php و html و آشنایی کوچکی با مفاهیمی چون قالب کاری ، MVC و ORM است.


دانلود مقاله آشنایی با code igniter

  • Share/Bookmark

Tags: , ,

معرفی Irssi

سه شنبه, مرداد ۵م, ۱۳۸۹ | اموزشی, لینوکس | ۱ نظر

خوب بعد مدتها ، یه حسو حال و وقتی پیدا کردم بنویسم ! تا دوهفته پیش درگیر امتحانای دانشگاه بودم و بعد اونم کارای لینوکس اف ام و جشنو زنجان لاگ مسافرتم مجال خاصی برام نزاشت! البته به قول جادی اینا همش بهانس و اگه آدم بخواد یه کاری رو بکنه اون کارو میکنه حالا تو هر شرایطی!

امروز دوس دارم با یه نرم افزار لینوکسی که تو خط فرمان کار میکنه و کلاینت (سرویس گیرنده! ) IRC هست آشناتون کنم و طی این آشنایی با مباحث زیر روبرو میشیم:

  • irc چیست
  • دستورات irc
  • آشنایی با دستورات اولیه Irssi
  • نام های مستعار خود را بسازید
  • اجرای برنامه ها و چاپ خروجی آنها از داخل irssi
  • به کاربرانی که به شما msg/ میدهند بگویید نیستید
  • کارهای تکراری را در irssi خودکار کنید
  • چند ترفند برای مقابله با افراد/کانالهای شلوغ
  • تهیه گزارش از لاگهای irssi
  • برای irssi خود برنامه بنویسیم

irssi

› ادامه مطلب

  • Share/Bookmark

Tags: , ,

ساخت راه انداز بدون محدودیت برای مودم‌های Conexant

یکشنبه, بهمن ۴م, ۱۳۸۸ | اموزشی, لینوکس | بدون نظر

یکی از دوستان تو زنجان لاگ مقاله بسیار خود و گام به گامی درباره نصب مودم ها تو لینوکس نوشته بود که اتفاقا من هم تونستم به کمکش مودممو نصب کنم دیدم سایت زنجان لاگ محدوده به اعضای خودی گفتم اینجا هم مطرح کنم! اخه هر چی باشه من پدر زنجان لاگم :D

اگه نظری ، انقادی ، چیزی دارید خواهشا تو سایت زنجان لاگ مطرح کنید

به نام خدا

یکی از مشکلاتی که کاربران لینوکس با آن مواجه هستند شناخته نشدن مودم داخلی رایانه آن‌ها توسط این سیستم عامل می‌باشد البته دلیل اصلی این امر آن است که اکثر مودم‌های داخلی از نوع winmodem بوده و همانطور که از نام آن پیداست برای سیستم عامل Microsoft Windows طراحی شده است. بیشترین سهم از این نوع مودم‌ها متعلق به شرکت Conexant می‌باشد که متأسفانه این شرکت هیچ راه‌اندازی را برای چیپ‌های خود جهت استفاده در لینوکس ارائه نکرده است. این مقاله به نحوه نصب راه‌اندازاین نوع مودم‌ها می‌پردازد. › ادامه مطلب

  • Share/Bookmark

خاطرات کار با مدیا ویکی!

جمعه, آبان ۱م, ۱۳۸۸ | اموزشی | ۵ نظر

 

چند روز پیش دوسته خوبم اقای مهدی مشتاقی از بروبچه های بسیار خوب گرگان که از مسئولین سایت کاربران ایرانیه سوزی فارسیه ، افتخار کمک کردن به این پروژه رو به من داد و اولین مسئولیتم ، در اوردن تر توی سیستم media wiki  

برای استفاده در سایته.

منم دیدم با توجه به اینکه در طول هفته برنامه فشرده ای دارم بهتره کل زمان امروزمو بزارم پاش تا اون چند تا درخواست اقا مهدی رو ردیف کنم ، و اما قرض از نوشتن این مطلب سه تا چیزه:

اولیش مستند سازی یافته هامه و دومیش به اشتراک گزاری دانسته هام و سومیش جون دادن دوباره به وبلاگمه

;)

و اما بعد:

خوب برای دوستانی که نمیدونن mediawiki چی هست باید بگم یک سیستم ویکیه که در در اصل برای استفاده در معروفترین سیستم ویکی دنیا یعنی ویکی پدیا ساخته شده ! http://wikipedia.org/

ولی شاید برای بعضی ها سوال پیش بیاد که اصلا ویکی چیه ؟

› ادامه مطلب

  • Share/Bookmark

Tags: ,

اموزش Qt قسمت چهارم

چهارشنبه, مرداد ۲۸م, ۱۳۸۸ | QT, اموزشی | ۲ نظر

خوب به لطف خدا پس از برخورد با چند تا مشکل وحل اونها قسمت چهارم اموزش هم اماده شد.
توجه : قبل از خوندن مقاله زیر به این نکته اشاره میکنم که این نوشته ها برداشت های شخصی خودم هست و ممکن هست از نظر فنی توضیحاتم درست نباشه!
در این قسمت ما برناممون رو که تا قسمت قبل پنجرشو ساختیم و تنظیمش کردیم کاملتر میکنیم و بهش یه سری کنترل اضافه میکنیم و بعد اون کنترل ها رو در لایه میزایم تا نظمشون حفظ شه!

اما سوال اول اینه که کنترل چیه؟
کنترل ها اجزای قابل تعریف برای استفاده در برنامه های گرافیکی هستند به تعبیر ساده تر اجزایی که ما در برنامه هامون میبینیم مثل دکمه ها و منو ها و … کنترل محسوب میشه!
یکی از خوبی های کیوت هم داشتن تعداد وسیعی از کنترل هاست که به راحتی با ترکیب این کنترل ها میتونیم برناممون رو بسازیم .
نکته : در دنیای کیوت به کنترل ، widget (ابزارک) میگن!
ما در این برنامه از دو نوع کنترل یکی برچسب یا Label و دومی دکمه یا Button استفاده میکنیم.
خوب مثل هر چیز دیگه ای برای استفاده از اینها باید اول کتابخانه مربوطشون رو در برنامه درج کنیم.

› ادامه مطلب
  • Share/Bookmark

اموزش QT جلسه سوم

پنجشنبه, مرداد ۲۲م, ۱۳۸۸ | QT, اموزشی | ۵ نظر

خوب امروز میخوام برنامه قبلی رو کمی کاملتر کنم و مقداری از خصوصیاتشو تنظیم کنم !
برنامه قبلی رو به این صورت بازنویسی میکنیم:

#include <QApplication>

#include <QDesktopWidget>

#include <QWidget>

#include <QIcon>

int main(int argc, char *argv[])

{

int WIDTH = 250;

int HEIGHT = 150;

int screenWidth;

int screenHeight;

int x, y;

QApplication app(argc, argv);

QWidget window;

QDesktopWidget *desktop =
QApplication::desktop();

screenWidth = desktop->width();

screenHeight = desktop->height();

x = (screenWidth – WIDTH) / 2;

y = (screenHeight – HEIGHT) / 2;

window.resize(WIDTH, HEIGHT);

window.move( x, y );

window.setWindowTitle(“Center”);

window.setToolTip(“Center
window”);

window.setWindowIcon(QIcon(“icon.jpg”));

window.show();

return app.exec();

}

#include <QdesktopWidget>

توسط این کتابخانه ما به مقادیر خصوصیات دسکتاپمان دسترسی پیدا میکنیم! در این مثال برای فهمیدم طول و عرض مانیتور!

#include
<QIcon>

برای اینکه بتوانیم به برنامه خودمون یک icon بدیم باید این کتابخونه رو استفاده کنیم.

int
WIDTH = 250;

int HEIGHT = 150;

int screenWidth;

int screenHeight;

int x, y;

› ادامه مطلب

  • Share/Bookmark

اموزش QT جلسه دوم

سه شنبه, مرداد ۲۰م, ۱۳۸۸ | QT, اموزشی | ۳ نظر

خوب در این قسمت میخوام نمونه کدی رو که در قسمت قبل کامپایل و اجرا کردیم بیشتر تشریح کنم:

کدمون اینطوری بود:

#include <QApplication>

#include <QWidget>

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QWidget window;

window.resize(250, 150);

window.setWindowTitle(“Simple example”);

window.show();

return app.exec();

}

#include <QApplication>

#include <Qwidget>

این دو قطعه کد کتابخونه های ضروری برای اجرای برناممون رو در کدمون درج میکنه

QApplication app(argc, argv);

این قطعه کد در تمام برنامه های QT البته بجز کنسولیاش باید باشه و شیع کلی برنامه رو مشخص میکنه

QWidget window;

این قطعه کد ابزارک (Widget) اصلی برناممون رو به اسم window تعریف میکنه.

window.resize(250, 150);

window.setWindowTitle(“Simple example”);

window.show();

کدهای بالا اول ابزارکمون رو ریساز میکنه و عرض و ارتفاشو تنظیم میکنه بعد عنوان ابزارکمون که در اینجا همون پنجره اصلیمون رو تنظیم میکنه و بعد اونو نمایش میده.

return app.exec();

و در اخر توسط این کد حلقه اصلی برنامه شروع میشه.دوستانی که برنامه های c حساس به رویداد نوشتن میدونن که برای اینکه برنامه مدام رخ دادن رویدادها رو چک کنه باید در یک حلقه بی نهایت قرار بدیمش ، من فکر میکنم قطعه کد بالا یه همچین روالی رو شروع میکنه!

› ادامه مطلب

  • Share/Bookmark

چگونگی اجرای فایل های bin و sh در لینوکس

سه شنبه, مرداد ۲۰م, ۱۳۸۸ | اموزشی, لینوکس | ۵ نظر

چگونگی اجرای فایل های bin و sh در لینوکس
چند وقت پیش به فایلی با پسوند bin بر خوردم که نتونستم اجراش کنم با کمی جستجو راه حل رو پیدا کردم و تونستم اجراش کنم گفتم تجربمو با شما مشترک شم:

برای اجرای فایل ها با پسوند bin اول باید مجوزشو تغییر بدین البته با دستور زیر:

chmod +x file.bin

و سپس خیلی راحت اجراش کنید:

./file.bin

مثلا برای اجرای برنامه jre-1_5_0-linux-i586.bin :

chmod +x jre-1_5_0-linux-i586.bin
./jre-1_5_0-linux-i586.bin

و اما برای استفاده از فایل هایی با پسوند sh هم کافیه در خط فرمان اول بنویسیم sh بنویسیم و بعد با فاصله اسم فایلرو به اینصورت:

sh packageName.sh

مثلا من برای اجرای firefox این کدو در ترمینال میزنم:

sh firefox.sh
  • Share/Bookmark

برنامه نویسی مولتی پلتفرم با QT

سه شنبه, مرداد ۲۰م, ۱۳۸۸ | QT, اموزشی, لینوکس | ۹ نظر

چند وقتیه که حرکت زنجان لاگ رو شروع کردیم و خیلی مشتاق بودم که در لینوکس تخصصی تر کار کنم.
خیلیا سراغ شبکه در لینوکس میرن و خیلیای دیگه دنبال برنامه نویسی و …
من جزو دسته دومم و خیلی دوست دارم برنامه ای که مینویسم تو همه ی سیستم عامل ها اجرا شه چون موعتقدم در نهایت در بهترین حالت سیستم عامل های تجاری در کنار سیستم عامل های اپن سورس در کنار هم به خوبی و خوشی زندگی خواهند کرد و کسانی برنده اند که برنامه هاشون رو هر دو پلتفرم اجرا شه! ( البته این نظر منه)
خوب در مقام تحقیق میشه گفت چند تا گزینه خوب برای این کار پیدا کردم :

java
c
c++
Python

تمام زبانهای بالا زبانهای خوبی هستن که بسته به شرایط باید استفاده شن اما به نظر خودم زبانی که تا حد ممکن قوی باشه و ساده و در تمام پلتفرم ها یکسان باشه و کتابهای فارسی زیادی داشته باشه و استادشم گیر بیاد java بوده و سعیم کردم که یه کلاس بزارم ولی فعلا بچه های زیادی اعلام امادگی نکردن!
خود من مقداری باهاش کار کردم و شاید تنها بدیشو این بدونم که کاربر قبل از استفاده از برنامه جاوای شما JVM رو باید نصب کنه و این برای کاربران عادی جامعه ما یه نمه سخته!
البته چیزای دیگه مثل سرعت کمتر برنامه های جاوا نسبت به دیگران و … هست که برا من مهم نبوده!
و اما شایددر گزینه بعدی زبان نام اشنای c و c++ باشه اما خوب برای ایجاد برنامه های اپلیکیشن اگر فقط از اینا بخواهیم استفاده کنیم بابامون در میاد چون برا هر چیزی باید کد بنویسیم برای همین ،قالب های کاری (framework) برای این زبان ها ساخته شدن که کارها رو خیلی ساده تر کردن ، در تحقیقاتم به سه موردشون بر خوردم:

wxWidgets
GTK
QT

و باز هم باید بر اساس شرایط و نیازتون یکی رو انتخاب کنید که با یه خورده گوگل کردن نام های بالا اطاعات زیادی رو راجبشون پیدا کنید و انتخابتون رو اگاهانه انجام بدین.
به هزارو یه دلیل شخصی من qt رو انتخاب کردم و سعی دارم هر چیزیو که یاد میگیرم اینجا هم بنویسم!

› ادامه مطلب

  • Share/Bookmark

StatPress

Visits today: 37 top browser: Firefox 3 users online: 0

جستجو