Lazarus IDE

13 اردیبهشت 1387

Lazarus IDEقبل از اینکه به لینوکس سوئیچ کنم برای نوشتن برنامه های دسکتاپی از delphi استفاده میکردم. تو فکر بودم که kylix رو  روی ubuntu امتحانش کنم. kylix در واقع همون دلفی تحت لینوکس هست. که البته مدتهاست توسعه و ساپورتش متوقف شده. آخرین نسخه از kylix نسخه‌ی 3 هست که در واقع معادل دلفی 7 میشه. از اونجایی که kylix یک پروژه تجاری منسوخ شده است رقبتی به نصب کردنش نداشتم تا اینکه خیلی اتفاقی lazarus رو پیدا کردم.

lazarus در واقع یک کپی  open source از دلفی هست که از freepascal compiler استفاده میکنه. حتی مزایایی هم نسبت به دلفی داره، مثلا اینکه در اکثر پلت فرم ها اجرا میشه یعنی برنامه ای رو که با lazarus بنویسید رو میتونید بر روی سایر پلت فرم ها هم کامپایل کنید. از جمله پلات فرم هایی که پشتیبانی میشه linux و FreeBSD و Windows و Mac OS X هستند. اما به نظر من بهترین مزیتش اوپن سورس بودنش هست. یک پروژه اوپن سورس مادامی که طرفدار داشته باشه زنده و پویا می مونه ولی یک پروژه تجاری مثل kylix هرچند پر طرفدار باشه، ممکنه تحت تاثیرتصمیمات سیاسی و تجاری به سرنوشت kylix دچار بشه.

در ادامه نحوه نصبش رو توضیح دادم.

خواندن دنباله‌ی این نوشته »

از کرامات اینترنت اکسپلورر

18 بهمن 1386

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

<!--
   - Unfortunately, Microsoft has added a clever new
   - "feature" to Internet Explorer. If the text of
   - an error's message is "too small", specifically
   - less than 512 bytes, Internet Explorer returns
   - its own error message. You can turn that off,
   - but it's pretty tricky to find switch called
   - "smart error messages". That means, of course,
   - that short error messages are censored by default.
   - IIS always returns error messages that are long
   - enough to make Internet Explorer happy. The
   - workaround is pretty simple: pad the error
   - message with a big comment like this to push it
   - over the five hundred and twelve bytes minimum.
   - Of course, that's exactly what you're reading
   - right now.
   -->

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

یکی نیست به این مایکروسافت بگه ما اگه ویژگی هوشمندانه نخوایم کی رو باید ببینیم.

مروری بر HTML5

5 بهمن 1386

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

قبل از هر چیز بهتره فلسفه وجودی HTML رو بررسی کنیم.

جایگاه HTML در طراحی

در طراحی و پیاده سازی صفحات وب و application های تحت وب، تکنولوژی های متعددی مورد استفاده قرار می گیرند که هر کدام کاربرد خاص خودشون رو دارند. در این بین کاربردها و اهداف اصلی استفاده از HTML رو میشه در دو مورد زیر خلاصه کرد:

  1. توصیف ساختار معنایی اطلاعات
  2. تولید رابط کاربری و فرم های ورود اطلاعات

البته از HTML میشه برای توصیف ساختار ظاهری اطلاعات هم استفاده کرد که امروزه این کار تقریبا منسوخ شده و این وظیفه به CSS محول شده. به عبارت دیگه CSS برای جدا کردن ساختار ظاهری از ساختار معنایی ابداع شد. و بنابراین امروزه استفاده از تگهایی نظیر font و center و همچنین استفاده ازattribute هایی نظیر bgcolor و width داخل HTML تقریبا منسوخ شده. در راستای جدا کردن ساختار ظاهری از HTML حتی استفاده از table برای طراحی layout هم به نوعی قبیح دانسته شده و به جای آن از طراحی های مبتنی بر div و CSS استفاده میشه.

فرایند تکاملHTML5

HTML 4 در سال 1997 منتشر شد. با گذشت زمان نیاز به ایجاد تغییرات برای برآوردن نیازهای جدید شدیدا احساس میشد.

روند کند توسعه استانداردهای وب که تحت نظارت w3c انجام میشد باعث شد تا گروه whatwg متشکل از علاقمندان و نمایندگانی از شرکت های فعال در این عرصه نظیر موزیلا ، اپرا و اپل در سال 2004 تشکیل شود.

حاصل کار چند ساله این گروه در اواسط سال 2007 برای تدوین استاندارد HTML5 مورد قبول W3C واقع شد.

تغییرات HTML5

تغییرات HTML5 بیشتردر رابطه با هر چه بهتر برآوردن دو هدفی است که پیشتر گفته شد.

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

section , article , aside, header , footer , nav , dialog , figure

تغییرات جدید برای طراحی بهتر فرم های ورود اطلاعات :

افزوده شدن انواع جدیدی از input نظیر : datetime, datetime-local, date, month, week, time, number, range, email, url

تگ های جدید output و datalist

برخی از تگ های جدید برای پویا تر شدن محتوا و رابط کاربری:

audio, video, canvas, meter, progress, event-source, …

برای مشاهده لیست کل تغییرات به اینجا مراجعه کنید.

سازگاری مرورگرها با HTML5

اکثر مرورگر ها به غیر از IE همگام با استاندارد ها پیش میروند و کم و بیش از استاندارد های جدید پشتیبانی میکنند.

هم اکنون نسخه های بتای firefox3 و opera9.5 تا حدودی از HTML5 پشتیبانی میکنند. قطعا زمانیکه HTML5 از پیش نویس خارج شده و recommendation شود این مرورگر ها هم از نسخه بتا خارج شوند، میتوان انتظار داشت تا از HTML5 و CSS3 پشتیبانی قابل قبولی داشته باشند. و با توجه به این که اکثر کاربران این مرورگرها از نسخه های آپدیت استفاده میکنند در آینده نزدیک مشکل خاصی با این مرورگرها وجود نخواهد داشت.

و اما IE که متاسفانه حدود 75 درصد از کاربران وب از آن استفاده میکنند. بعید به نظر میرسد که در آینده نزدیک (و یا حتی دور) پشتیبانی قابل قبولی از HTML5 و CSS3 داشته باشد.

IE6 در سال 2001 منتشر شد و در سال 2005 نسخه ی 7 این مرورگر در حالی منتشر شد که پیشرفت چشمگیری نسبت به نسخه قبل نداشت و حتی هنوز از CSS2 هم پشتیبانی خوبی نداشت. و اگر مایکروسافت این روند را در پیش بگیرد نمیتوان به IE8 امیدوار بود.

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

با این وجود باز هم نمیتوان به IE8 امیدوار بود چون اولا هنوز نسخه بتای این مرورگر هم وارد بازار نشده ثانیا تجربه نشون داده که بعد از گذشت 3 سال از انتشار IE7 هنوز نیمی از کاربران IE از نسخه 6 استفاده میکنند.

برای مشاهده جزئیات بیشتر در رابطه با میزان سازگاری مرورگر ها با HTML5 اینجا را ببینید.

سازگاری طراحان وب با مرورگرها

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

برای مثال برای پشتیبانی از canvas در IE میتوان از explorercanvas استفاده کرد که در واقع canvas شبیه سازی شده با استفاده از جاوااسکریپت و vml است.
نمونه ی دیگری از استفاده از روش های سرخ پوستی را میتوانید در اینجا ببینید.

اینجا یک سئوال فلسفی پیش میاد و اون اینکه HTML5 و CSS3 برای راحت تر و بهتر شدن طراحی بوجود آمده اند ولی با توصیفاتی که ذکرش رفت، طراحی با تکنولوژی های جدید و در عین حال سازگار بودن با تمام مرورگرها کار را دشوار تر میکند. اما چاره ای نیست چون گذر از این مراحل برای پیشرفت لازم است حتی اگر دشوار باشد و حتی اگر موانعی نظیر IE بر سر راه باشد.

آپدیت:

در رابطه با کامنتی هایی که دوستان در این مطلب و مطلب قبلی در مورد XHTML گذاشتند اون طور که من فهمیدم XHTML5 در واقع همون HTML5 با رعایت قوانین XML هست. ولی در مورد XHTML2.0 بر خلاف XHTML1 که بر اساس HTML4 توسعه یافته، XHTML 2.0 کاملا مستقل از HTML5 هست و حتی با XHTML 1.1 هم سازگاری نداره. و حتی بعضی ها نظیر apple زیاد با توسعه آن موافق نیستند.

انتشار رسمی پیش نویس HTML5

3 بهمن 1386

دیروز W3C اولین پیش نویس رسمی HTML5 رو منتشر کرد:

http://www.w3.org/TR/html5/

این هم تفاوت های HTML5 با HTML4 :

http://www.w3.org/TR/html5-diff/

سایتتان را در مرورگرهای مختلف ببینید

27 دی 1386

اگر میخواهید سایت خود را در مرورگرها و سیستم عامل های مختلف امتحان کنید سایت browsershots.org این کار رو براتون انجام میده. به این صورت که آدرس سایت مورد نظر رو می گیره و screenshot از مرورگرهای مورد نظرتون رو نمایش میده. سرویس خیلی جالبیه فقط عیبش اینه که برای بعضی از مرورگرها باید حدود یک ساعت تو صف منتظر بمونید تا نوبتتون بشه.

آزمون html در 5 دقیقه

25 دی 1386

چند تا از element های html رو میتونید در 5 دقیقه نام ببرید؟

به نظر کار آسونی میاد ولی من که فقط 43 تا رو تونستم بگم.

شما هم حضور ذهن خودتون رو محک بزنید :

http://www.justsayhi.com/bb/html_quiz

API جدید گوگل برای رسم نمودار

23 دی 1386

اخیرا گوگل API جدیدی برای تولید انواع نمودار معرفی کرده که میتونین بصورت رایگان توی کارهاتون برای رسم نمودار ازش استفاده کنین.

استفاده از این API دو تا مزیت داره و دو تا عیب.
از مزایاش یک اینکه در پهنای باند صرفه جویی میشه، دو اینکه دیگه روی سرور شما تولید نمیشه و منابع سرور رو مصرف نمی‌کنه.
و از معایبش اینکه فقط تا سقف پنجاه هزار بازدید در روز رایگانه. و عیب دیگه اینکه شما رو به گوگل وابسته میکنه.
در کل چیز بدرد بخور و کار راه اندازیه.

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

البته راهکارهای دیگه ای هم برای تولید نمودار هست. مثلا استفاده از jpgraph که یکسری مجموعه کلاس به زبان php هست که رایگان هم هست.
یک راه حل مقرون به صرفه دیگه هم استفاده از فلش هست (مثل fusioncharts). عیبش اینه که همه فلش ندارند.
بهترین راه هم استفاده از canvas هست. که مشکلش اینه که IE ساپورتش نمیکنه. البته این مشکل هم با explorercanvas قابل حله. برای مثال plotkit و یا ejschart از canvas برای رسم نمودار استفاده میکنند.

HTML5 و Comet

23 دی 1386

امروزه تکنولوژی های قدیمی وب دیگر پاسخگوی نیازهای جدید application های تحت وب نیست. البته با استفاده از ajax بخشی از این نیازها برآورده شده. اما بزرگترین محدودیت برای application های تحت وب عدم امکان دریافت event از سرور هست که برای رفع این مشکل از روش comet استفاده میشه. comet در واقع یک جور «هک» محسوب میشه (منظور از هک در اینجا، استفاده از امکانات موجود برای رفع مشکلاتیست که راهکاری از قبل برایش اندیشیده نشده. یا به عبارتی هک یکجور راه حل سرخ پوستی برای مشکلات جدیده.). و comet هم در واقع یک راه حل سرخ پوستی برای حل مشکل دریافت event از سرور هست. راه حل های سرخ پوستی(هک ها) معمولا مشکلات خاص خودشون رو دارند چون در واقع می‌خواهیم کاری رو انجام بدیم که استاندارد و پروتکلی از قبل برایش تعریف نشده و مرورگر برای اون کار بهینه نشده.

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

در حال حاضر فقط opera از این تکنولوژی جدید پشتیبانی میکنه، البته نه به طور کامل. جالبه که بدونید پشتیبانی اولیه opera از این تکنولوژی از opera 8.5 شروع شده. اگر این تکنولوژی تصویب بشه در آینده نزدیک در firefox3 هم ازش بهره مند خواهیم بود. و اگر عمری باشه و خدا بخواد حدود چند ده سال بعد هم در IE پشتیبانی میشه.
آپدیت : همونطور که آقای کرمعلی زاده گفتند بهینه بودن سرور برای پشتیبانی از این تکنولوژی هم از اهمیت زیادی برخورداره. اما دغدغه اصلی شرکت های بزرگ نیست. چون این شرکت ها مشکل اصلیشون مرورگره و برای سمت سرور از هر چیزی که خودشون بخواهند میتونن استفاده کنند. به عنوان مثال jetty یک وبسرور هست که برای این تکنولوژی بهینه شده. ولی برای اینکه هر کسی بتونه از این تکنولوژی استفاده کنه باید منتظر بهینه شدن apache بمونیم.

منبع: Comet Daily

Opera Developer Tools

22 دی 1386

قبلا ابزارهایی برای توسعه وب برای فایرفاکس و IE معرفی کرده بودم (Firebug و IEDevToolbar). گفتم ابزارهای توسعه وب برای opera رو هم معرفی کنم تا این مجموعه کامل بشه. والبته بهانه ای بشه برای آپدیت کردن وبلاگ.

البته این ابزار نه widget محسوب میشه و نه toolbar بلکه فقط یک فایل جاوا اسکریپت هست که روی هر صفحه ای که بخواهید اجرا میشه و یک پنجره popup باز میکنه که امکاناتی مشابه firebug رو فراهم میکنه. البته به کاملی فایرباگ نیست ولی از IEDevToolbar خیلی کاملتره.

این هم آدرسش :
http://dev.opera.com/tools

برنامه نویسی برای Android

19 آذر 1386

android_robot.gifحتما اسم android به گوشتون خورده، سیستم عامل گوگل برای تلفن همراه.

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

من هم گرچه جاوا کار نیستم ولی تصمیم گرفتم امتحانش کنم. این شد که فایلهاش رو دانلود کردم و نصبش کردم. البته از اونجایی که گوگل ایران رو تحریم کرده برای دانلودش مجبور شدم از روش های سرخپوستی استفاده کنم.

فایل هاش رو گذاشتم رو هاستم تا اگر قصد امتحان کردنش رو داشتید برای دانلودش دچار درد سر نشید.

android_sdk_linux_m3-rc22a.zip

android_sdk_windows_m3-rc22a.zip

این هم پلاگینش برای eclipse

ADT-0.3.1.zip

راستی اگر android هم مثل بقیه کارهای گوگل همه گیر بشه دیگه جایی تو زندگی آدمها باقی نمی مونه که گوگل توش نباشه.

وای به روزی که گوگل بد بشه. شایدم هست !!

آپدیت(18-03-87): به دلیل کمبود جا فایل ها رو از رو هاستم پاک کردم.