Friday, March 30, 2007

Vim

شاید شما بر روی کامپیوتر خود یکی از این ویرایشگرهایی که با آن همه جور فایل متنی را می توانید edit کنید دارید. Notepad++، JEdit، Ultra Edit، Crimson Editor و ... شاید بتوان صد تای دیگر از این جور ویرایشگرها نام برد. این را هم بگویم که نمی دانم اگر چنین چیزی بر روی کامپیوترتان ندارید چطور زندگی می کنید!

از بین همه ویرایشگر های موجود، من شخصا علاقه خاصی به vim دارم. vim یکی از قدرتمند ترین و متداول ترین ویرایشگرهای موجود است، اگر با Linux کار کرده باشید حتما با آن مواجه شده اید. vim ویژگی های بسیار خوب و جالبی دارد، اول اینکه می توان با آن نزدیک 500 نوع فایل متنی را ویرایش کرد که تقریبا شامل همه زبان های برنامه نویسی و بقیه فایل های متنی می شود. دوم اینکه vim تقریبا تحت هر پلتفرمی که فکرش را بکنید کار می کند، از ویندوز و لینوکس و مک گرفته تا داس و آمیگا! این برای کسانی که با پلت فرم های مختلف کار می کنند ویژگی مثبتی است. سوم اینکه vim خیلی light weight هست و خیلی سریع load می شود. چهارم اینکه vim اپن سورس است(ویژگی که حداقل برای من خیلی مهم است).

آخرین نسخه این ویرایشگر را می توانید از اینجا دانلود کنید. اگر با ویندوز کار می کنید توصیه می کنم installer آن را دانلود کنید(self-installing executable) ولی اگر با لینوکس کار می کنید به احتمال زیاد این ویرایشگر قبلا بر روی سیستم عامل شما نصب شده.

در حالت پیش فرض vim یک ویرایشگر حرفه ای است و برای شروع به کار نیاز به کمی آموزش دارد ولی خوشبختانه آنقدر انعطاف پذیر هست که بتوان آن را همان طور که دوست داریم پیکر بندی کنیم. برای این کار اگر در محیط ویندوز هستید به پوشه نصب vim بروید(معمولا program files\vim) و فایل _vimrc را باز کنید(در لینوکس معمولا این فایل با نام .vimrc و در پوشه کاربر قرار دارد). سپس خطوط زیر را به انتهای این فایل اضافه کنید:

color blue

set nobackup

set guifont=Courier_New:h12

set encoding=utf-8

set insertmode

set spell

set nowrap

set guioptions+=r

set guioptions+=b

خط color blue رنگ های پیش زمینه و پس زمینه را به گونه ای که در colorschema ای با نام blue تعریف شده تغییر می دهد. به جای blue می توانید اسم هر کدام از فایل هایی را که در پوشه colors واقع در پوشه نصب vim موجود است استفاده کنید. توصیه می کنم colorschema را تغییر دهید تا یکی را که به نظرتان مناسب است پیدا کنید.

وقتی فایلی را تغییر می دهید، بصورت پیش فرض vim یک نسخه از فایل قدیمی را به عنوان backup نگه می دارد. این نسخه بطور پیش فرض در کنار همان فایل جدید نگه داشته می شود. این کار باعث شلوغ شدن دیسک می شود. خط set nobackup باعث می شود که دیگر backup نگه داشته نشود. اگر به جای این خط از set backupdir=c:\\backups استفاده کنید vip تمام backup ها را در پوشه ای که مشخص کرده اید ذخیره می کند.

همان طور که مشخص است set guifont=Courier_New:h12 فونت و اندازه متن را در ویرایشگر مشخص می کند.

خط set insertmode باعث می شود vim در مد insert شروع شود. vim از مدهای مختلفی پشتیبانی می کند که برای مقاصد مختلفی استفاده می شود ولی مد insert خیلی شبیه حالت عادی ویرایشگرهای دیگر است.

خط set spell، spell checking را در vim فعال می کند.

خطوط set guioptions+=r و set guioptions+=b باعث می شود vim در سمت راست و پایین scrollbar هایی را نشان دهد.

اگر در محیط ویندوز از installer استفاده کرده باشد، یک گزینه Edit with Vim به منوی Windows Explorer اضافه شده است. با استفاده از این گزینه بر روی هر فایلی که کلیک راست کنید می توانید آنرا توسط vim باز کنید.

Monday, March 05, 2007

حریم خصوصی

هیچ وقت به این مسئله توجه کرده اید که یک سایت اینترنتی چه اطلاعاتی از کاربران خود می تواند در اختیار داشته باشد؟ یا بهتر بگویم، هیچ وقت فکر کرده اید که چه اطلاعاتی از زندگی شخصی خود را در اختیار سایت های اینترنتی قرار می دهیم؟ در نگاه اول شاید به نظرتان بیاید که این اطلاعات در حد اسم و فامیل شما (یا برای بسیاری از افراد کمتر از این باشد) ولی اگر کمی با دقت بیشتری نگاه کنید پی می برید که اطلاعاتی را که در اختیار این سایت ها قرار می دهیم بسیار بیشتر از اسم و فامیل است. برای روشن تر شدن مسئله سایت یاهو یا گوگل را که استفاده از آنها در ایران خیلی متداول است در نظر بگیرید. تقریبا همه کاربران این سایت ها سعی می کنند حداقل دو نام کاربری متفاوت در این سایت ها داشته باشند. یکی نام کاربری که با نام و نام خانوادگی واقعی آن ها درست شده و معمولا اطلاعات درستی را برای گرفتن آن وارد کرده اند و یکی دیگر نام کاربری که با اطلاعات نادرست و صرفا برای جاهایی که دوست دارند شناخته نشوند و یا جاهایی که برای دانلود یک نرم افزار صرفا یک آدرس ایمیل لازم دارند استفاده می کنند. بسیاری از افراد هم که اصلا دوست ندارند شناخته شوند گاهی حتی برای نام کاربری اول خود نیز اطلاعات درستی وارد نمی کنند(پروفایل چند نفر از دوستان خود را ببینید، تقریبا هیچکس اطلاعات شخصی خود را بطور کامل و درست وارد نکرده) البته این یک امر طبیعی است و آدم ها معمولا خوششان نمی آید کسی از زندگی شخصی آن ها سر در بیاورد ولی نکته مهمی که می خواهم در موردش صحبت کنم این است که اصلا احساس نکنید اطلاعات سایت سرویس دهنده از شما به اطلاعاتی که شما در پروفایل خود وارد کرده اید محدود می شود.

سایتی مثل یاهو یا گوکل اجزای مختلفی از جمله موتور جستجو، ایمیل، گراف های دوستی(یاهو 360 و orkut) ، صفحه های شخصی، مسنجر و ... دارند. هر کدام از این اجزا برای پی بردن به اطلاعات زیادی از زندگی شخصی یک نفر کافی است. برای اینکه موضوع روشن شود، سعی می کنم روشهایی را که این سایت ها برای به دست آوردن اطلاعات شخصی افراد می توانند مورد استفاده قرار دهند را نام ببرم:

نام و نام خانوادگی شما چیست ؟

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

کجا زندگی می کنید، کجا کار می کنید؟

اینکه از کجا به سرور لاگین کرده اید به راحتی از روی آدرس IP شما قابل تشخیص است. اگر باور نمی کنید می توانید صفحه شخصی یا وبلاگ خود را به لیست Google Analytic اضافه کنید تا ببینید Google Analytic چه اطلاعات دقیقی را در مورد محل بازدید کنندگان از سایت شما در اختیارتان قرار میدهد. گرچه این اطلاعات ممکن است صد در صد درست نباشد اما تا حدود زیادی می توان به آنها اطمینان کرد.

دنبال چه چیزهایی می گردید؟

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

دوستان شما چه کسانی هستند؟

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

به چه چیزهایی علاقه دارید؟

قسمت عمده ای از چیزهایی که به آنها علاقه داریم را ما خودمان بصورت عمومی بر روی وبلاگ ها و سایت های شخصی مان منتشر می کنیم. قسمتی هم از روی تاریخچه جستجوی در یک موتور جستجو می تواند به دست آید. گروه هایی که بر روی وب قرار دارند هم تا حدود زیادی می توانند علاقه مندی های ما را بازگو کنند. مثلا وقتی یک نفر در گروه j2ee گوگل عضو باشد به احتمال بسیار بالا به j2ee علاقه خاصی داشته. حتی صفحاتی که از آنها بازدید می کنیم و خبر هایی که می خوانیم منعکس کننده علایق ما هستند.

دیگه چه خبر از زندگی؟

جدای از همه مطالبی که گفتم، مسلما تمام ایمیل های شما بر روی میل سروری که از آن استفاده می کنید ذخیره می شود. در بسیاری از موارد اطلاعات بسیار زیاد و گاهی بسیار مهم را بوسیله ایمیل ها جابجا می کنیم. وقتی یک نفر، به یک نفر دیگر ایمیل می زند احتمالا ارتباطی بین این دو نفر وجود دارد! هیچ وقت به این موضوع توجه می کنید که ایمیلی که برای شما آمده برای چه کسان دیگری هم فرستاده شده(فیلد CC

رمز عبورتان چیست ؟

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

در ماه اخیر تعداد سایت هایی که پسورد ایمیل یاهو ،گوگل یا Hotmail را به بهانه دسترسی به Contact List شما می گیرند بسیار زیاد شده. جالب اینکه در بعضی از این سایت ها (مثل tagged.com) اگر پسورد ایمیل خود را درست وارد نکنید اجازه ثبت نام به شما را نمی دهد.

کلام آخر:

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

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