مقاله : شروعی برای JSP در گنو/لینوکس

در این پست می‌خواهم مقاله‌ای با نام «شروعی برای JSP» رو که حاصل کار بنده هست معرفی کنم. این مقاله حاصل بیش از ۲ ماه کار بر روی JSP و بیشتر از ۴ روز تمام بر روی نگارش مقاله است. امیدوارم این مقاله بتواند شروعی برای کسانی باشد که می‌خواهند آزادی در نرم‌افزار را با زبان برنامه‌نویسی زیبای جاوا ترکیب کنند.

از همه‌ی شما خواهش می‌کنم همان طور که بنده حاصل پروژه‌های دانشجویی خودم را بی کم و کاست در اختیار شما قرار می‌دهم ، شما هم در نقل مطلب و منبع آن کوتاهی نکرده و هرجایی که آن را نقل می‌کنید ، منبع آن را ذکر کنید.

در این مقاله ابتدا به مقدمه‌ای در مورد JSP پرداخته شده و سپس به مقایسه‌ای مفصل بین سه زبان رقیب سمت سرور ( یعنی PHP ، JSP و ASP ) پرداخته شده است. بعد از آن سعی کرده‌ام تا به بررسی مختصری از سرولت (Servlet) در جاوا بپردازم. پس از بررسی سرولت که پیش نیاز ، JSP است به ورود به JSP پرداخته‌ام.

بعد از آن به بررسی قواعد JSP مانند موارد زیر پرداخته‌ام :

Directives -۱

۲- تعاریف (Declarations)

۳- عبارات (Expressions)

۴- Scriptlets

۵- توضیحات (Comments)

سپس به بحث مهم محدوده‌ی عملکرد اشیا پرداخته‌ام که امکان دستیابی به شیء‌های مختلف JSP در مناطق مختلف را مشخص می‌کند.

سپس بحث زیبای Beanهای جاوا مطرح شده است. با استفاده از Beanهای جاوا شما می‌توانید برنامه‌نویسی با استفاده از عناصر از قبل تولید شده را در واقع تجربه کنید. در این مقاله چندین مثال با استفاده از Java Beans بررسی شده مانند نحوه‌ی گرفتن عناصر فرم‌ها و مقداردهی آن‌ها.

» ادامه مطلب

حل مشکل Ubuntu 10.04 با لپ‌تاپ‌های VAIO دارای کارت گرافیک انویدیا

دیروز ابونتو رو دانلود کردم. با VirtualBox یه تست زدم ، بد نبود. گفتم مستقیم هم یه تستی بزنم. دیدم که بعد از بوت به صورت Live اصلا خروجی روی نمایشگر نداشتم. این مشکل ، مشکلی جدید با لپ‌تاپ‌های سونی و کارت گرافیک Nvidia نیست. این مشکل به خاطر وجود درایور اوپن سورس انویدیا در این نسخه از ابونتو هست. شما باید قبل از بوت در GRUB گزینه‌ی زیر رو وارد کنید تا به صورت موقتی درایور اوپن سورس انویدیا غیرقعال بشه :

nouveau.blacklist=true

برای اضافه کردن این گزینه وقتی سیستم رو با CD اوبونتو بالا میارید قبل از زدن Try Ubuntu Without Any change دکمه‌ی (فکر کنم ) F6 رو بزنید ( یعنی همون Other Options ) حالا دکمه‌ی ESC رو بزنید و در انتهای مکان‌نما خط بالا رو اضافه کنید. و حالا اینتر بزنید.

حالا می‌تونید سیستم رو نصب کنید و البته دقت کنید باید بعد از نصب مراحلی رو که من در اینجا متحمل (!) شدم رو انجام بدید. یا اینکه این پست رو ببینید.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

پ.ن: ولی خداییش این نسخه‌ی اوبونتو زیاد هم قشنگ نشده. مثلا یه صفحه مثلا OOo Writer رو باز کنید و Full Screen کنید. ( اصلا ترسناکه !! :D )

۶ ترفند در PHP که ممکن است تا حالا انجام نداده باشید !

با وجود اینکه خودم سال‌هاست PHP کار می‌کنم اما مطالب کمی در مورد PHP در این وبلاگ می‌نویسم. دلیلش رو نمی‌دونم ولی شاید این ترجمه بتونه من رو در نوشتن دوباره‌ی مطالب در مورد

PHP

PHP کمک کنه.
این ترفندها رو شاید تا حالا دیده باشید ولی برای کاربرانی که می‌خواهند تازه شروع کنند به یادگیری PHP می‌تونه خیلی مفید و جذاب باشه. خوب شروع می‌کنیم.

ترفند ۱ : شمارش کاراکترهای یک رشته

اغلب برنامه‌نویسان برای این کار از تابع strlen() استفاده می‌کنند اما یک راه حل راحت‌تر وجود داره. البته در این روش بایستی تعداد کاراکتری که می‌خواهید کنترل کنید را داشته باشید.

<?php
$string = ‘testing’;

if(isset($string[6]))
echo “The string ‘$string’ is at least 7 characters long.”;
else
echo “The string ‘$string’ is less than 7 characters long.”;
?>

ترفند ۲ : استفاده از Echo به عنوان یک تابع

همیشه برای اتصال رشته‌ها در PHP معمول شده است که از نقطه (.) استفاده شود. اما شما در تابع echo می‌توانید رشته‌هایتان را به صورت کاما (,) از هم جدا کنید.

» ادامه مطلب

چرا گذاشتن رمز بر روی GRUB در سیستم‌های عمومی ضروری است ؟!

یادش بخیر وقتی بچه بودیم و بحث رمز و این مسائل پیش می‌اومد همه سعی می‌کردن یاد بگیرن و به کسی هم یاد ندن! بزرگتر که شدیم ، فهمیدیم دنیایی وجود داره که در اون هرکسی هر چیزی می‌دونه به دیگری میگه و همه از همدیگه یاد می‌گیرن و اون دنیایی نیست جز گنو.

Linux Security

حالا بحث من با دوستانی هست که می‌خوان کافی‌نت یا حتی در دانشگاه به صورت گنو/لینوکسی راه‌اندازی کنند. اگه تا حالا بر روی GRUB خودتون رمز نگذاشتید همین الان این کار رو بکنید. برای چی ؟! خوب برای اینکه یک از خدا بی‌خبری ( مثل بنده ! :D ) میاد و به راحتی با همین گراب شما دست به هر کاری که دلش می‌خواد میزنه.

حالا قبل از اینکه بدونید چطوری بر روی گراب رمز بگذارید ببینید مهاجم (!) چطوری میتونه سیستم شما رو در اختیار خودش بگیره ؟!

وقتی که BIOS گراب رو اجرا می‌کنه و منو رو ظاهر می‌کنه ( اگه ظاهر نشد بوسیله‌ی کلید شیفت سمت راست این کار رو بکنید ) کلید e رو بر روی صفحه‌کلید بزنید ( بعضی از توزیع‌ها مثل اوپن سوزه به صورت پیشفرض در حالت edit قرار دارن ) و حالا خطی که شامل kernel هست رو پیدا کنید بازم e رو بزنید. حالا در انتهای این خط اضافه کنید :

init=/bin/sh

و کلید ESC رو بزنید و حالا b رو بزنید تا با این تغییرات بوت انجام بشه. اگه این کارها رو درست انجام داده باشید بایستی بدون رمز هم اکنون در محیط شل باشید. اما هنوز در سیستم اصلی قرار ندارید. باید سیستم اصلی خودتون رو پیدا کنید. این کار رو کافیه با زدن دستور fdisk -l و مشخص کردن اینکه در چه پارتیشنی قرار گرفته بکنید. ( مثلا مال من /dev/sda3 هست )

» ادامه مطلب

معرفی کتاب رسمی آموزش برنامه‌نویسی کیوت (Qt) با سی‌پلاس‌پلاس

وقتی صحبت از فریم‌ورکی با این قدرت و عظمت می‌شود بنده و امثال بنده توانایی گفتن حتی قسمتی از اون رو نخواهیم داشت. اما کسانی که علاقه به KDE داشته باشن امکان نداره که با Qt ( بخوانید کیوت ) آشنا نباشند. کیوت یکی از چندین فریم‌ورک قدرتمندی است که محصول دنیای گنو/لینوکس ( و قبلا یونیکس) هستند. ( محصولات دیگری مانند +GTK و wxWidgets و چیزای دیگه که نمی‌دونم ! )

QtLogo

تعطیلات امسال خیلی برام مفید بود. چون کتاب بسیار قوی به‌نام «C++ GUI Programming Using Qt» رو در پشته‌ی (!) مطالعات آزادم داشتم و عید امسال وقتش رسیده بود. باور کنید حتی وقتی که فقط ۸-۷ فصل این کتاب رو بخونید از این ملت تعجب خواهید کرد که چرا این ملت به سراغ چیزهایی مثل محصولات ویژیوال مایکروسافت میرن ؟!

Qt علاوه بر اینکه وابسته به محیطی که در اون برنامه‌نویسی می‌کنید نیست بلکه به شما امکان استفاده از کتابخانه‌های بسیار وسیعی رو میده که حتی به فکرتون هم خطور نمی‌کنه. به خصوص اینکه با پشتیبانی خوب شرکت نوکیا از Qt هم اکنون محیط مجتمع برنامه‌نویسی کیوت برای هرسه سیستم‌عامل محبوب ویندوز ، گنو/لینوکس و مک‌او‌اس از محیط‌های ویژوال مایکروسافت خیلی خیلی بهتره.

در طول این تعطیلات هم برنامه‌های فصل‌های ۱ تا ۵ رو تک به تک نوشتم و از لحظه-لحظه‌ی نوشتن کدهام لذت می‌بردم. به خصوص اینکه کدها رو با بدون تغییرات روی کامپیوتر دیگه‌ای که نزدیکم بود و روی ویندوزش تست می‌کردم. البته شروع یه مقدار سخته چون در این کتاب از SDK استفاده نشده و فقط از Qt Designer استفاده شده و ارتباط بین فایل‌های UI و کدهای CPP به صورت دستی برقرار شده.

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

» ادامه مطلب

حل مشکل nVidia Audio Device در openSUSE 11.2 بوسیله‌ی نصب ALSA 1.0.22

اگه الان دارید از openSUSE 11.2 روی لپ‌تاپ‌تون استفاده می‌کنید داخل کنسول شده و su بزنید و دستور زیر رو وارد کنید

lspci -v | grep Audio

اگه چیزی شبیه «Audio device: nVidia Corporation Device» پیدا کردید و توی آخرین خط همین Device خطی به صورت «Kernel Driver In use» وجود نداشت بدونید که از شما از ابزار صوتی بسیار عالی nVidia در لینوکس خود بی‌بهره هستید. ( در کل باید همه‌ی PCI های شما بوسیله‌ی یک درایور کرنل مورد استفاده بگیره در غیر اینصورت شما از همه‌ی قابلیت‌های سیستمتون بهره نمی‌گیرید. )

nVAudio

مشکل نصب نبودن درایور این کارت برای خود من نبود صدا برای میکروفون لپ‌تاپم بود. اما بعد از حل این مشکل دیدم که واقعا روی خروجی صدام خیلی تاثیر گذاشته.

برای حل این مشکل و نصب درایور nVidia Audio یا به اختصار nvaudio باید ALSA رو به آخرین نسخه آپگرید کنید. قبل از هرچیزی بگم که در صورتی که اینترنت پرسرعت ندارید بیخیال این آپگرید بشید ! ( چون نیاز دارید تا حدود ۲۵۰ مگابایت برای نصب texlive دانلود کنید – یا حداقل اینکه اگه توی DVD اوپن سوزه پیدا کردید ، از روی اون نصب کنید ) نسخه‌ی ALSAیی که در openSUSE 11.2 هست قدیمیه (۱٫۰٫۲۰) و برای لپ‌تاپ‌های جدید خوب جواب نمیده !

برای آپگرید ALSA در openSUSE 11.2 مراحل زیر رو باید انجام بدید :

۱. بایستی برای کامپایل بسته‌های ALSA 1.0.22.1 یک‌سری پکیج نصب کنید. ترمینال رو باز کرده به su برید و بزنید :

zypper install make automake checkinstall makedev
zypper install gettext-runtime xmlto libasound2
zypper install libncurses5 libncurses6 ncurses-devel ncurses-utils linux-kernel-headers

» ادامه مطلب

هماهنگ‌سازی بهتر Firefox با تم Oxygen محیط KDE4

نسخه‌ی ۱.۹ قالب Oxygen KDE برای هماهنگی بهتر و زیباتر تم Oxygen در محیط دسکتاپ KDE4 منتشر شده است. برای کسانی که از این قالب اطلاع ندارند ، بگم که بدلیل اینکه فایرفاکس بر مبنای کتابخانه‌ی +GTK نوشته شده ولی KDE بر مبنای کتابخانه‌ی Qt طبعا نمیشه قالب‌های دقیقا یکسانی برای برنامه‌هایی که بوسیله‌ی جی.تی.کا نوشته شده‌اند در محیط KDE ارائه کرد. البته یک قالب عمومی برای تطبیق قالب این برنامه‌ها در KDE به نام QtCurve ارائه شده که زیبایی برنامه‌های Native در KDE4 رو اصلا نداره.

از اونجایی که Firefox جزء جدایی ناپذیر زندگی خیلی از افراد ( از جمله خودم ! ) هست، زیبا نبودن قالب فایرفاکس ( البته بیشتر هماهنگ نبودن اون ) واقعا آزار دهنده هست.

برای این منظور شما می‌توانید در صورتی که از Firefox در KDE4 استفاده می‌کنید با نصب قالب Oxygen KDE تجربه‌ی استفاده از Qt Firefox رو داشته باشید. ( چنین پروژه‌ای هنوز در مراحل ابتدایی هست پس فعلا انتظار استفاده از اون رو نداشته باشید. برای اطلاع بیشتر اینجا رو ببینید )

Oxygen KDE

» ادامه مطلب

قالب جدید و Blogilo جدید !

از همه‌ی دوستان عزیزم به خاطر اینکه یه مدت نبودم ، معذرت می‌خوام. امروز یه مقدار روی قالب twilight وردپرس کار کردم و یه قالب تر و تازه روی وبلاگ بزارم که انگیزم برای نوشتن دوباره بیشتر بشه. و همچنین مشکلم با Blogilo هم کاملا حل شده !!

به زودی نوشتن رو در سال جدید ۱۳۸۹ شروع می‌کنم.

پس فعلا …

انتشار بروزرسانی ITLPoll 3.0.3 و تبریک سال نو

عرض سلام دوباره

توی آپدیت‌های openSUSE 11.2 دیدم که آخرین نسخه‌ی PHP یعنی ۵٫۳ وجود داره و توی این نسخه یه سری توابع به عنوان Deprecated شناخته می‌شوند و وقتی ITLPoll رو اجرا کردم دیدم که یک دوجین خطا گرفتم که بیشترش مربوط بود به تابع Date که می‌گفت باید حتما از TimeZone استفاده کنم ( و این طوری شرم‌آوره !! :D ) و اینکه در این نسخه از PHP تابع eregi و eregi_replace که برای پارس کردن template ها ازشون زیاد استفاده می‌کنم به عنوان deprecated شناخته می‌شن و باید از معادل قوی‌تر اونها ( یعنی preg_match ) استفاده بشه.
متاسفانه وقت کافی برای جایگرین کردن این معادل‌ها نداشتم و فقط مجبور شدم که error_reporting رو برای خطاهای زمان کامپایل و جدی تغییر بدم و دیگه این خطاها رو نگیرم. ولی حتما این موارد رو برای نسخه‌ی ۳٫۱ برطرف خواهم کرد. به هر حال این بروزرسانی مشکل اجرا در آخرین نسخه‌ی PHP یعنی ۵٫۳ رو برطرف می‌کنه.

هرچند که بنده اصلا IE رو به عنوان یه مرورگر استاندارد نمی‌شناسم ولی خوب به دلیل اینکه تعداد کاربران زیادی ازش استفاده می‌کنند مجبوریم که سازگاری با اون رو مد نظر داشته باشیم. قالب‌های قسمت مدیریت رو وقتی با IE مرور می‌کردم ناهماهنگی تقریبا زیادی وجود داشت ( نه از جهت کد بلکه از جهت هوشمند نبودن IE‌!!). مثلا یه چیز جالب این بود که دو تا table تو در تو وجود داشته باشه ، جدول داخلی حتما می‌بایست کمتر از ۹۲ درصد عرض داشته باشه وگرنه از جدول اولی میزنه بیرون !!! برای خودمم خیلی جالب بود که اینقدر خنگ تشریف دارن. به هر حال شاید مشکل از نوع قالب سیستم بنده باشه ولی IE همیشه خودش رو این جوری به همگان اثبات کرده. در نهایت اینکه همه‌ی ناهماهنگی‌ها رو با آخرین نسخه‌ی IE برطرف کردم.

ویژگی Redirect برای برگشت به قسمتی که مدیران سیستم بوده‌اند ( البته بعد از لاگین ). مثلا یه کاربر Admin در قسمت مدیریت قرار داره و مدت بیکاریش بیشتر از ۲۰ دقیقه باشه ، کوکی‌اش منقضی میشه و صفحه‌ی لاگین براش ظاهر می‌شه. حالا باید اگه خواست دوباره وارد بشه به همون صفحه‌ی قبلی وارد بشه که در این نسخه اضافه‌ش کردم !
قسمت NoScript قالب‌ها هم قالب جالبی نداشت که اون رو هم تغییر دادم.

و یه سری تغییرات جزیی در کد نصاب و تغییر آدرس‌های HomePage موجود به http://www.itlpoll.com
برای دریافت : این نسخه به سایت رسمی اون مراجعه کنید.
برای بروزرسانی : کافیه فقط فایل‌های موجود رو Overwrite کنید.

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

در نهایت : پیشاپیش نوروز ۱۳۸۹ هجری شمسی رو به همه‌ی عزیزان هموطنم تبریک میگم. آرزوی بهترین‌ها رو براتون دارم.

درایور پرینترهای کانن Canon LBP برای openSUSE x86_64

من به شخصه پرینترهای Canon رو خیلی دوست دارم. به خاطر اینکه اولا خیلی با کیفیت هستن و دیگه اینکه برای پرینترهاش درایور اوپن سورس رو منتشر می‌کنه. شما هر سیستمی داشته باشید می‌تونید روی اون کامپایل کنید.

مثلا در این آدرس درایور لینوکس برای پرینترهای نوع LBP موجود هست. اما وقتی پکیج رو ببینید ، بسته‌ی باینری فقط برای معماری‌های i386 اینتل وجود داره. اگه شما یک سیستم ۶۴ بیتی اینتل ( و یا AMD ) داشته باشید این درایور اصلا کار نمی‌کنه !! ولی مشکلی نیست. در همین پکیج سورس درایور هم موجوده و می‌تونید کامپایل کنید.

در این پست خیلی عالی نحوه‌ی کامپایل این درایور رو توضیح داده. با نصب تعدادی بسته‌های glib2-devel و cups-devel این سورس به راحتی کامپایل میشه و می‌تونید براش RPM درست کنید.

اگه کامپایل کردنش براتون خیلی سخته ، من این کار رو براتون کردم و می‌تونید دانلود کنید.

دانلود درایور ۶۴ بیتی پرینترهای Canon سری LBP

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

موفق باشید.

پ.ن : عکسی که گذاشتم همین پرینتری هست که دارم استفاده می‌کنم (LBP2900)