Keyword Substitution

6 آبان 1387

در svn یک قابلیتی وجود داره که میتونه یکسری کلید واژه های خاص رو با متغییرهایی نظیر شماره revision و تاریخ ویرایش و … جایگزین کنه.

پرکاربردترین کلید واژه Id است که ترکیبی از سایر کلید واژه ها شامل نام فایل، شماره rev و تاریخ و مولف است.

برای مثال ممکن است قبلا چیزی شبیه خط زیر را در ابتدای فایلی دیده باشید :

$Id: calc.c 148 2006-07-28 21:30:43Z sally $

این همان قابلیت Keyword Substitution در svn است که عبارت $Id$ را با عبارت فوق جایگزین کرده است.

با استفاده از این قابلیت وقتی از پروژه export می گیرید در ابتدای هر فایل اطلاعات مولف ، تاریخ و شماره revision را دارید که ممکنه بعدها به دردتون بخوره.

و اما نحوه فعال کردن این قابلیت :

svn propset svn:keywords "Id" myfile.php

این دستور باعث میشه کلید واژه Id برای فایل myfile.php فعال بشه. و بنابراین هر جا در این فایل عبارت $Id$ قرار داشته باشه در هنگام کامیت با اطلاعات مربوطه جایگزین میشه و در کامیتهای بعدی هم به صورت خودکار آپدیت میشه.

در ضمن اگر از TortoiseSVN  استفاده می کنید از منوی TortoiseSVN قسمت properties می توانید از این قابلیت استفاده کنید.

اطلاعات بیشتر

آپدیت : برای فعال کردن این قابلیت روی تمام فایل های php موجود در یک شاخه (و زیر شاخه های آن) به مسیر مورد نظر رفته و دستور زیر را اجرا کنید:

find -type f -name "*.php" -exec svn propset svn:keywords "Id" {} \;

برای حذف این قابلیت از روی یک فایل دستور زیر را اجرا کنید:

svn propdel svn:keywords myfile.php

دومین جشن نصب لینوکس در مشهد

18 مهر 1387

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

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

اهداف و برنامه‌های این جشن عبارتند از:

  • آشنایی با آزادی نرم‌افزار، لینوکس، و نرم‌افزار آزاد
  • آشنایی با سیستم عامل لینوکس
  • نصب سیستم عامل لینوکس در کنار سیستم‌عامل فعلی علاقه‌مندان
  • آموزش اولیه لینوکس
  • رفع اشکالات مقدماتی کاربران

زمان و مکان:

  • زمان: روز جمعه، ۱۹ مهرماه، از ساعت ۲ الی ۸ شب
  • مکان: بلوار فروسی، میدان جانباز به سمت چهارراه مهدی، شمارهٔ ۱۴۱، مرکز انفورماتیک بین‌الملل

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


جستجو در گوگلِ 8 سال پیش

12 مهر 1387

گوگل به مناسبت جشن تولد ده سالگیش در یک اقدام جالب امکان جستجو در قدیمی ترین ایندکس موجود یعنی گوگل سال 2001 رو فراهم کرده.

در نتایج جستجو اگر روی لینک «view old version on the Internet archive» کلیک کنید می تونید با استفاده از سایت archive.org نسخه مربوط به سال 2001 رو ببینید.

با مقایسه نتایج جستجو های اون موقع با الان میشه به سیر سریع تحولات وب پی برد. مثلا کلمه blog فقط 76400 نتیجه رو بر میگردونه در حالی که الان حدود 3.5 میلیارد نتیجه رو بر میگردونه. کلمه ubuntu نتایج بی ربط بر میگردونه و کلمات youtube و BitTorrent هم اصلا هیچ نتیجه ای رو بر نمیگردونند.

پیشنهاداتی برای عملکرد بهتر مودم در 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 باشند.

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