پیشنهاداتی برای عملکرد بهتر مودم در ubuntu

5 مهر 1387

دو تا پیشنهاد توی brainstorm در مورد مودم دادم. اگر شما هم مثل من هنوز مجبورید از dialup استفاده کنید به این پیشنهادات رای بدین.

به این آدرس برین (برای رای دادن باید عضو بشید):

http://brainstorm.ubuntu.com/contributor/farhadi/ideas/

addon domain در plesk

2 مهر 1387

cpanel یک امکانی داره به نام addon domain که این امکان رو به شما میده که با یک اکانت هاستینگ چند تا هاست جداگانه راه بیاندازید. اخیرا به دلیل تحریم cpanel خیلی از هاست های ایرانی (از جمله ما) سوئیچ کردند به plesk که این امکان رو نداره. و باعث شده مشتری ها شاکی بشن.

برای رفع این معضل یک راه سرخ پوستی پیدا کردم با استفاده از htaccess و ماژول mod_rewrite :

  1. دامنه مورد نظر (مثلا addon.com) رو پارک می کنید روی هاست (توی plesk به جای پارک میگن domain alias)
  2. یک شاخه با نام addon.com توی فولدر httpdocs می سازید.
  3. یک فایل .htaccess در شاخه httpdocs با محتوای زیر ایجاد میکنید:
# addon.com addon domain.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^addon\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.addon\.com
RewriteCond %{REQUEST_URI} !^/addon\.com/
RewriteRule ^(.*) /addon.com/$1 [L]

ubuntu را سفارشی کنید

1 مهر 1387

اگر ubuntu اون چیزی رو که شما میخواهید نداره و اگر ایده یا فکر بکری برای ubuntu دارید، می تونید به brainstorm.ubuntu.com مراجعه کنید.

در brainstorm هر کس میتونه پیشنهاد و ایده خودش رو ثبت کنه و به ایده ها و پیشنهادات دیگران رای بده. پیشنهاداتی که بیشترین رای رو کسب کنند توسط تیم اوبونتو بررسی میشن و در صورت امکان در ورژن های بعدی پیاده سازی می شوند.

با توجه به اینکه حدود یک ماه دیگه تا انتشار 8.10 ubuntu مونده اگر ایده ای دارید بجنبید و گرنه به این نسخه نمی رسه.

خداییش سیستم عامل به این با حالی دیده بودید؟

ubuntu با آخرین نسخه‌ی php

29 شهریور 1387

چند روز پیش به یک مشکل عجیب توی php برخوردم. یک کدی بود که وقتی اجراش میکردم پنجره دانلود می اومد. بررسی که کردم دیدم هیچ هدر و خروجی ارسال نمیشه و از اونجایی که هدر نداره پنجره دانلود میاد. ظاهرا یک جایی وسط کار php کرش میکنه. خلاصه trace کردم تا رسیدم به اون قسمتی که مشکل رو ایجاد کرده بود. اونقدر سر و ته کد ها رو زدم تا به خط مورد نظر رسیدم. و حدس زدم که باگ از php باشه. جالب اینجا بود که روی لوکال این مشکل رو نداشتم بعد فهمیدم که این مشکل فقط توی php 5.2.6 هست و از اونجایی که php که همراه ubuntu 8.04 هست php 5.2.4 هست، من متوجه این مشکل نشده بودم.
توی قسمت باگ های php که سرچ کردم دیدم حدود 4 ماه پیش یک نفر این باگ رو گزارش داده و حدود 2 ماه هم هست که توی CVS رفع شده.  فعلا تا اومدن نسخه جدید php مجبور شدم به یک روش سرخ پوستی این باگ رو دور بزنم.

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

حال و حوصله نصب php از سورس رو نداشتم، تازه هر موقع نسخه جدید میومد باید دوباره کامپایل میکردم. این apt هم بد جوری ما رو بد عادت کرده.

یه سرچ کردم سایت dotdeb.org رو پیدا کردم. به لطف apt به سه سوت php آپگرید شد و هر موقع هم که آپدیت جدید بیاد به یک سوت میتونم آپگریدش کنم.

به قول جادی به نظر شما این سیستم عامل زیبا نیست؟

مزایای سرور ایرانی

20 شهریور 1387

خیلی وقت بود که چیزی ننوشته بودم. تغییر سرور سایت بهانه ای شد برای نوشتن.

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

با یک traceroute و ping گرفتن و مقایسه با سرور قبلی همه چیز روشن شد. نتیجه traceroute به سرور ایرانی فقط 5 تاhop بود در حالی که این تعداد برای سرور قبلی 22 تا بود و این یعنی کاهش تعداد روترهای بین من و سرور از 22 تا به 5 تا که باعث شده زمان ping از حدود 700 میلی ثانیه به 100 میلی ثانیه برسه.

اینجاست که میشه به اهمیت اون جمله معروف پی برد که میگه :
“these days, bandwidth is cheap, latency expensive”

اکثر کشورهای خارجی به لحاظ پهنای باند مشکلی ندارند و مشکل اصلی اونها latency (تاخیر) هست . حالا ما که مشکل پهنای باند داریم و نمیتونیم بیشتر از 128Kb برای مصرف خانگی داشته باشیم لااقل میتونیم با انتقال سایت‌ها به سرورهای ایرانی زمان تاخیر(latency)  رو کم کنیم. اینکار چند تا فایده اخلاقی هم داره. یک اینکه وابستگی مون به خارج کم میشه. دو اینکه امکان تحریم سرورها دیگه وجود نداره. و سوم اینکه از خروج ارز جلوگیری میشه.

ارسال کیک از طرف مایکروسافت برای فایرفاکس

2 تیر 1387

msie-cake-fx3.jpgتیم اینترنت اکسپلورر برای تبریک انتشار فایرفاکس 3 یک کیک برای موزیلا فرستاد. قبلا هم برای انتشار فایرفاکس 2 اینکار رو کرده بود. نظرهای مختلف درباره قصد و غرض مایکروسافت از اینکار وجود داره. بعضی ها میگن هنوز هم آدمهای با مرام و معرفت تو مایکروسافت پیدا میشن. بعضی میگن کیکش مسمومه! یکی گفته بود استاندارد های کیک پزی رو رعایت نکردند!

به نظر من شاید مایکروسافت میخواسته یک کاری کنه که موزیلایی ها حتی تو روز انتشار فایرفاکس هم خوش نباشند و با دیدن این e آبی گنده دوباره یاد IE بیافتن و حالشون بد بشه.

در هر صورت امیدوارم فایرفاکس باعث بشه که IE یک تکونی به خودش بده.

منابع:

http://fredericiana.com/2008/06/17/from-redmond-with-love-part-2/
http://fredericiana.com/2006/10/24/from-redmond-with-love/

تقویم جلالی (هجری شمسی) جاوا اسکریپتی

18 خرداد 1387

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

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

در راستای اشاعه فرهنگ open source من این پروژه رو با لایسنس GPL منتشر کردم. به عبارتی شما در استفاده ، توزیع و تغییر این پروژه آزاد هستید ولی به این شرط که لایسنس این پروژه ، پروژه هایی که از این پروژه منشعب شده اند و پروژه هایی که از این پروژه در آنها استفاده شده است GPL باشند.

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

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 زیاد با توسعه آن موافق نیستند.