پایتون روی گوشی!

18 04 2008


آقا به نظرتون چطوره یه زبون برنامه نویسی رو روی گوشی داشته باشیم؟ عالیه نه؟ اون هم زبونی مثل Python. امروز در حین وبگردی متوجه شدم یه برنامه‌ی آزاد هست که پایتون رو روی گوشی های سری ۶۰ میاره.

اول چک کنید که سیستم عامل موبایلتون از کدوم نسخه‌ی Symbian هستش. توی این لینک، به جای ۶۶۸۰ مدل گوشی خودتون رو بنویسید. بعد بر اساس مدل سیستم عامل گوشیتون به ترتیب PythonForS60 و PythonScriptShell رو از این لینک بگیرین و روی گوشیتون نصب کنید. شمایل پایتون به منوی شما اضافه می‌شه و می‌تونید اسکریپت‌های پایتون و برنامه‌های اون رو اجرا کنید. البته می‌تونید اسکریپت‌ها رو به صورت یک فایل به گوشی بفرستین و توی گوشی اون فایل رو باز کنید. البته پسوند فایل باید py باشه. برای مت یه منو باز می‌شه و توش دو تا گزینه هست. python script و python lib module و چون اون فایل یه پایتون اسکریپته، اون گزینه رو انتخاب می‌کنم. اسکریپت به برنامه اضافه می‌شه و من می‌تونم اون رو از منوی Run script برنامه اجرا کنم! به به!

یه برنامه هم برای آزمایش:


print "hello world"
print "i love ubunut gnu/linux"





لینوکس رو دوست دارم، چون…

20 01 2008

لینوکس رو دوست دارم، چون…

فکر کنم عنوان قشنگی نوشتم! تا این اواخر من همیشه توی لینوکس بودم به جز زمان هایی که باید می‌رفتم توWindows تا برای یکی از دوستام پروژه‌ی برنامه نویسیش که به زبون پاسکال بود رو انجام بدم. خب خیلی زجر آوره که از دنیای زیبای لینوکس پاشی بری لجن زار Windows رو ببینی! تصمیم گرفتم یه کامپایلر درست و حسابی برای پاسکال گیر بیارم تا توی لینوکس هم بتونم با پاسکال برنامه بنویسم.free pascsal compiler یه گوگل کردم: pascal compiler for linux و دقیقا اولین نتیجه جواب من بود: FreePascal.org. بله! خیلی راحت یه کامپایلر پاسکال خوب برای لینوکس پیدا کردم. عکسش رو ببینید.

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

چند روزی می‌شه که به یه جوون بر خوردم که سفت و سخت به ویندوز چسبیده، اون هم ویندوز XP و نه Vista و هرکاریش می‌کنم حتی برای یک بار هم که شده سعی نمی کنه که این لینوکس رو استفاده کنه. آخه چرا؟ چرا باید اینقدر سفت و سخت به یه ریسمان نازک چسبید برای بالا رفتن؟ چرا یک بار به جمع کاربر های لینوکس سر نمی‌زنید و وضع اون ها رو نمی‌بینید؟ شما برای ویندوز اگه پولی پرداخت می‌کنید (حتی 500 تومن) برای لینوکس اون رو هم پرداخت نمی‌کنید و یک سیدی اورجینال رایگان از تولید کننده می‌گیرید و حتی هزینه ی پستش رو هم تقبل نمی‌کنید؟!!

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





جاوا، قسمت دوم

14 01 2008

به قسمت دوم آموزش جاوا خوش اومدین. این بار در مورد مقادیر اولیه براتون می‌نویسم. البته با این تفکر جلو می‌ریم که برنامه‌نویسی رو بلدین و فقط با جاوا آشنا نیستین. اگه این طور نیست و برنامه نویسی بلد نیستین بهتره که برین یاد بگیرین! البته شاید یه مقدمه ای در آینده براتون نوشتم!

اول از همه در مورد مقادیر حقیقی بگم. مقادیری که اعداد اعشاری رو میزبانه. در جاوا استاندارد IEEE-754 (استاندارد عملیات حسابی اعداد ممیز شناور و باینری) و این متغیر ها رو float و double نام گذاری می کنن. هر کدومشون به ترتیب 32 و 64 بیت از حافظه رو می‌خورن (لفظ می خورن معادل قورت دادنه! یه جورایی کنار گذاشتن معنی می‌ده.) 4 نوع داده‌ی دیگه byte و short و int و long هستن که به ترتیب 8 و 16 و 32 و 64 بیت از حافظه کنار می‌ذارن. این 4 نوع همگی صحیح هستن و اعداد منفی رو هم شامل می‌شن. نوع بعدی boolean هستش که فقط مقادیر صحیح (true) و غلط (false) رو می‌پذیره. و نوع آخر هم char که هستش. در مورد char باید گفت که مثل زبان c وهم دست هاش فقط یک کاراکتر جا می‌شه اما نکته داره! اون کاراکتر یونی‌کُد و 16 بیتیه. لازم به ذکره که جاوا متغیری از نوع string نداره و اون رو به صورت کلاس پیاده سازی کرده (بعداً مفصل توضیح می‌دم).

شاید گفتن نحوه‌ی نام گذاری در جاوا هم لازم باشه، قواعد نام‌گذاری متغیر‌ها (بعداً خواهم گفت که بقیه‌ی نام گذاری ها هم مثل متغیر هاست!) در جاوا از قواعد زیر پیروی می‌کنه. البته نیازی به حفظ کردن قواعد نیست فقط کافیه وقتی که می‌خواین متغیر تعریف کنید، خودتون رو جای کامپایلر بیچاره بذارین و به نام متغیر نگاه کنید! مثلاً اگه 3 تا متغیر به نام های saar و blog و saar-blog تعریفکنید (که البته نمی‌شه) و یه جایی تو برنامه بنویسین saar=saar-blog+blog برنامه از کجا بفهمه که منظورتون از saar-blog متغیره یا تفریق دو متغیر! دیدین بیچاره حق داره؟!

  • نام می‌تونه با یک حرف یا خط زیر (همون آندرلاین خودمون«_») یا علامت دلار (همون دالرساین خودمون «$») شرو بشه.
  • نام ترکیبی از حروف و اعداد و خط زیر و علامت دلاره.
  • کلمات رزرو نمی‌تونن به عنوان نام متغیر باشن. (کلماتی که تو جاوا معنی خاصی می‌دن، کلمات رزرو شده ان.)
  • برای طول نام هم هیچ محدودیتی نیست.

لیست کلمات رزرو شده رو می‌تونید اینجا ببینید. البته یه سری مرام نامه‌ها (من از این کلمه‌ی «مرام‌نامه» خیلی خوشم میاد!) هم هست که برای این که مرام جاوایی داشته باشی باید رعایتشون کنی! مثلاً این که متغیر ها با حروف کوچیک شرو می‌شن یا اسم های ترکیبی باید شتری باشن! یعنی این که هر کلمه بعد از کلمه‌ی اول با حروف بزرگ شرو می‌شه مثلاً saarBlog. البته اگه این مرام نامه رو رعایت نکنید باز برنامتون اجرا می‌شه ها! فقط در این صورت مرام جاوایی ندارین!

اما اصل ماجرا! چطور یه متغیر تعریف کنیم؟! یه نکته بگم که متغیر توی کلاس ها تعریف می‌شه (بعدا بحث می‌کنیم). برای تعریف کافیه که اول نوع متغیر رو بگیم (همین ها که بالا گفتم) بعد اسمشون و اگر حال کردین! مقدارشون! مثلا من شونصدتا متغیر این پایین تعریف می‌کنم:

int anIntValue;
int firstInt, secondInt;
char aCharValue;
float floatNumber = 69.108;
double pi=3.14;
short short1= -10, short2=7;
boolean aBooleanValue, aFalseValue=false, aTrueValue=true;

می‌بینید چقدر آسونه؟! بذارین حرف‌هام رو کامل کنم. متغیر ها با کاما از هم جدا می‌شن وقت تعریف. برای مقدار دادن به متغیر های کاراکتری، کاراکتر ها رو بین علامت نقل قول تکی «’» (SingleQuote) قرار می‌دیم. و اما مقدار دادن به متغیر ها! کار سختی نیست! رایج ترینش استفاده از عملگر = یه که همتون بلدین، اگه بلد نیستین بگم که در برنامه نویسی متغیر ها رو باید فضایی ار حافظه در نظر گرفت. مثل یه کاسه! وقتی می‌خوایم مقداری رو به اون نسبت بدیم، اول اسم متغیر رو می‌نویسیم و بعد علامت مساوی و در آخر هم مقدار (که البته می‌تونه یک متغیر دیگه یا نتیجه‌ی یه عمل باشه!) باز شونصد تا مثال:

anIntValue=1367;
aCharValue='S';
floatNumber = 69.108;
pi=3.14;
short1= -10;
aBooleanValue=true;

و می‌رسیم به ثابت‌ها! آماده‌ی تعجب بشین! ثابت ها متغیر هایی هستن که در برنامه تغییر نمی‌کنن! نمونه‌ی بارز یک پارادوکس! همه چیز ثابت ها مثل متغیر هاست ولی با این تفاوت که اول تعریفشون واژه‌ی «final» میاد. البته بدیهیه که در متن برنامه نمی‌تونیم به ثابت ها مقدار بدیم (این با تعریف تضاد داره!!!) و فقد می‌تونیم وقت تعریف متغیر ثابت به اون ها مقدار بدیم. شاید بدرسیم به چه درد می‌خوره حالا! بعضی از اعداد هیچ وقت تغییر نمی‌کنن، مثل عدد پی یا e می‌تونیم این ها رو به عنوان ثابت در نظر بگیریم. من دو نمونه مثال بزنم

final float pi=3.142857; //3+1/7
final double e =2.718281828;

من تو مثال بالادوتا علامت // زدم و بعدش یه چیزی نوشتم، اون چیز! ی راهنماست و کار خاصی رو انجام نمی‌ده! برای اینه که اگه یه آدم (احتمالاً) برنامه رو دید بفهمه که من چکار کردم. یعنی مترجم (کامپایلر) اون را نادیده می‌گیره. من عدد پی رو از جمع 3 و 1/7 بدست آوردم.

تا اینجا بسه. جلسه بعدی بقیش رو می‌گم. البته به خاطر این بسه که منخسته شدم! اما یک سری نکته که دونستنش لازمه:

  • بعد از هر خط برنامه باید یه «;» بذارید البته دلیل داره و اون هم این که مترجم بفهمه که به پایان یک دستور رسیده. البته این شیوه رو تو زبون های دیگه مثل c و pascal و هم خانواده‌هاشون هم می‌بینید.
  • جاوا به بزرگ یا کوچیک بودن حروف حساسه. متغیر Ramin و ramin با هم تفاوت دارن.
  • جاوا نسبت به فاصله حساس نیست، به آخرین کد که نوشتم دقت کنید: برای pi مساوی رو از دو طرف چسبوندم به pi و 3.142857 ولی برای e این کار رو نکردم و البته تفاوتی هم ندارن. البته توی همه‌ی زبون ها اینطوریه (البته تقریباً)

خسته نباشید! تا جلسه‌ی بعد سعی کنید بیشتر بخونید! (و کلی از این زرد نوشته ها!)





جاوا، قسمت اول

11 01 2008

سلام.
می‌خوام آموخته‌های خودم رو به اشتراک بذارم. مایلین؟ با جاوا شرو می‌کنیم!

اولین چیزی که بهش نیاز داریم، یک تبدیل کننده‌ی زبون آدمی‌زاد به زبون ماشینه، ما بهش می‌گیم کامپایلر، پس باید این مترجم رو روی کامپیوترمون نصب کنیم. به این مترجم JDK می‌گن. مخفف Java Development Kit هستش! اما چطور این چلنگر رو روی کامپیوترمون نصب کنیم؟ اگه کاربر لینوکس هستین (مثل من) که می تونید از تو مخازن نصبش کنید ولی اگه ویندوزی هستین! چون گناه دارین توضیح می‌دم. اما باید قول بدین به لینوکس مهاجرت کنید!

زد حال از اونجا شرو می‌شه که شرکت سان اجازه‌ی دانلود رو به ایرانی ها نمی‌ده! حالا این یعنی چی؟! من هم مثل شما! از اونجا که کار نشد نداره! ما هم میایم ملیت خودمون رو عوض می‌کنیم! (کی به کیه؟!) نرم افزار فری‌گیت (فارسی نوشتم تا غیلترش نکنن!) کارش اینه که شما رو به یه کامپیوتر دیگه که خارج از کش‌وره وصل می‌کنه و از اونجا کار رو ادامه می‌ده (به این می‌گن پـــــراکــــســـی). نرم افزار رو از اینجا دانلود کنید و بعد اجرا. اگه مرورگر شما Internet Explorer اِ که هیچ! خود به خود باز می‌شه ولی اگه از مرورگری مثل فایرفاکس استفاده می کنی، از منوی Tools گزینه‌ی Preferences رو بزنید و بعد در قسمت Advanced تب Network گزینه‌ی Setting رو بزنید ومثل عکس زیر تغییرات رو انجام بدین:

Connection Settings

خب! برای مرورگر های دیگه هم همین طوره، با یکم تغییر. از این به بعد هویت شما دیگه هویت یک ایرانی نیست. به این لینک برین و آخرین نسخه‌ی JDK رو دانلود کنید. بعد هم یادتون باشه که اگه از نرم افزار مدیریت دانلود استفاده می کنید، به تنظیماتش برید و Pr0xy رو مطابق شکل بالا تنظیم کنید.

بعد از دانلود بدیهیه که باید این مترجم رو نصب کنید! ولی کلا من پیشنهاد می‌کنم همون لینوکس رو بچسبین، خودش همه‌ی کار ها رو انجام می‌ده!

حالا می تونید اولین برنامه‌ی خودتون به زبون جاوا را بنویسید، برنامه‌ی معروف «سلام! دنیا». یک ویرایشگر متن باز کنید (برای ویندوزی ها Notepad) و بعد کد های زیر رو توش بنویسید، به کوچیک یا بزرگ بودن حروف دقت کنید (خداییش Copy-Paste نکنید! حالش می‌ره!):

public class helloWorld
{
public static void main(String[] args)
{
System.out.println("Hello!World");
}
}

بعد فایل رو به اسم helloWorld.java ذخیره کنید. بعد خط فرمان (Command-Line بهش داس یا ترمینال یا کنسول هم می‌گن (ویندوزی ها: داسDos)) رو باز کنید و با دستور cd به پوشه ای که این رو توش ذخیره کردین بری و بعد با دستور javac helloWorld.java برنامه رو ترجمه کنید، اگه خطایی نباشه فایل helloWorld.class کنارش درست می‌شه. بعد با دستور java helloWorld برنامه رو اجرا کنید و حتماً نتیجه‌ی کارتون رو به من بگین. در آموزش بعدی مباحث رو جدی تر توضیح می‌دم.

پی‌نوشت: چلنگر همون مترجم تیم ملی فوتبال بود که خیلی معروف شد!








دنبال‌کردن

هر نوشتهٔ تازه‌ای را در نامه‌دان خود دریافت نمایید.