<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5419827648531828838</id><updated>2011-07-31T06:17:29.129+04:30</updated><category term='linux'/><category term='وب ۲'/><category term='شبکه‌های اجتماعی'/><category term='فیس‌بوک'/><category term='cloud computing'/><category term='gentoo'/><category term='awesome'/><category term='tsocks'/><category term='spidermonkey'/><category term='open source'/><category term='ccache'/><category term='bash'/><category term='http'/><category term='lua'/><category term='firefox'/><category term='comet'/><category term='android'/><category term='tracemonkey'/><category term='g1'/><category term='proxychains'/><category term='kernel'/><category term='t-mobile'/><category term='ext4'/><category term='mozilla'/><category term='vim'/><category term='android 1.5'/><category term='widget'/><category term='OpenSSH'/><category term='google'/><title type='text'>یاوه‌گویی</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-8316252592468922827</id><published>2009-11-07T12:54:00.002+03:30</published><updated>2009-11-07T13:17:08.634+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='proxychains'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tsocks'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSH'/><title type='text'>چگونه یک برنامه را ساکسیفای کنیم؟</title><content type='html'>&lt;div dir="rtl"&gt;با توجه به مشکلات متعددی که ما در دسترسی به منابع مختلف در اینترنت داریم این فرض که همگی با SOCKS پراکسی موجود در کلاینت OpenSSH آشنا باشیم چندان دور از ذهن نیست. خیلی ساده می‌توان با استفاده از کلاینت OpenSSH یک سرور SOCKS راه اندازی کرد:&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;ssh -D 9999 user@remotehost&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;نسخه های اخیر OpenSSH همگی از SOCKSv5 هم پشتیبانی می کنند، پس شما محدود به فقط TCP (مشکل v4) نیستید، چون v5 از UDP نیز پشتیبانی می کند.&lt;/div&gt;&lt;div dir="rtl"&gt;اگر تمامی منابعی که دسترسی شما به هردلیلی به آنها مسدود شده محدود به منابع موجود در وب می باشد، خوب همین حالا هم مشکل شما برطرف شده، چون اکثر مرورگرهای وب جدید از SOCKS Proxy به خوبی پشتیبانی می کنند.&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;اما اگر مثلا قصد Check out کردن یک Subversion repository موجود برروی Google Code را داشته باشید چکار می کنید؟&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;به برنامه هایی که از SOCKS Proxy پشتیبانی نمی کنند باید به زور این امکان را اضافه کرد!&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;هنگامی که شما برنامه ایی را اجرا می کنید بخشی از سیستم عامل شما به نام «پیوندده پویا» تمامی Shared Libraries مورد نیاز برای اجرای آن برنامه را بارگیری کرده و آنها را پیوند می دهد. متداول ترین Shared library مورد استفاده در لینوکس ld-linux.so هست. با استفاده از دستور زیر مشاهده می کنید که svn نیز از آن استفاده می کند:&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;ldd `which svn`&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;یکی از خصوصیات این Shared library این هست که می تواند با توجه به یک سری متغیرهای محیطی عملکرد خود را تغییر دهد، یکی از این متغیرهای محیطی LD_PRELOAD هست. LD_PRELOAD به بارگیر دستور میدهد که کتابخانه هایی دیگر علاوه بر آنها که هنگام کامپایل برنامه مشخص شده اند را نیز بارگیری کند.&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;پس ساده ترین راه برای اینکه برنامه ها را مجبور به استفاده از SOCKS Proxy کنید، این است که یک کتابخانه خاص را از طریق LD_PRELOAD بارگیری کرده و به آن کتابخانه اجازه دهید تمامی سیستم کالهای مربوط به شبکه را مدیریت کند.&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;در اینجا دو کتابخانه متداول و نحوه پیکربندی آنها را بررسی می کنیم:&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;۱) tsocks - &lt;a href="http://tsocks.sourceforge.net/"&gt;http://tsocks.sourceforge.net/&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;نحوه‌ی پیکربندی:&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;/etc/socks/tsocks.conf:&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;server = 127.0.0.1&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;server_port = 9999&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;حالا تنها کافیست که در ابتدای فرمانی که قصد اجرای آن را دارید یک tsocks اضافه کنید، همین! مثلا:&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;tsocks wget http://www.example.com/foo/bar.tgz&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;یکی از مهمترین مشکلات tsocks اینه که آخرین به روزرسانیش مربوط میشه به ۷ سال قبل. در آخرین نسخه tsocks امکان استفاده از DNS های Tor هم وجود دارد، پیشنهاد من این است که این امکان را غیرفعال کنید.&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;۲) proxychains - &lt;a href="http://proxychains.sourceforge.net/"&gt;http://proxychains.sourceforge.net/&lt;/a&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;نحوه‌ی پیکربندی:&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;~/.proxychains/proxychains.conf:&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;[ProxyList]&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;socks5 127.0.0.1 9999&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;حالا تنها کافیست که در ابتدای فرمانی که قصد اجرای آن را دارید یک proxychains اضافه کنید، همین! مثلا:&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;proxychains svn checkout http://closure-library.googlecode.com/svn/trunk/ closure-library&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;من به شخصه proxychains را به tsocks ترجیح میدهم.&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;فقط یک نکته دیگر:&lt;/div&gt;&lt;div dir="rtl"&gt;با توجه به توضیحاتی که در مورد متغیرهای محیطی و اثر آنها بر ld-linux.so در ابتدا داده شد، حدس این موضوع که اضافه کردن tsocks یا proxychains به ابتدای فرامین تنها LD_PRELOAD را برابر مقداری مناسب قرار می دهند چندان سخت نیست. پس اگر می خواهید تمامی فرامین بدون اضافه کردن tsocks یا proxychains از سرور SOCKS شما استفاده کنند، تنها کافیست در ابتدای نشست مقادیر مناسب را به LD_PRELOAD بدهید، مثلا:&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;export LD_PRELOAD=/usr/lib/libproxychains.so&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;از حالا تا پایان نشست نیازی به اضافه کردن proxychains به ابتدای فرامین ندارید.&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;توجه داشته باشید هم tsocks و هم proxychains امکانات مدیریتی بسیار زیادی را ازطریق فایل پیکربندی در اختیار شما قرار می دهند، اینکه مثلا تنها ارتباطات به مکانهایی مشخص از سرور SOCKS استفاده کنند و ...  فایل پیکربندی نمونه همراه با این بسته ها  را مشاهده کنید.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-8316252592468922827?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/8316252592468922827/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2009/11/blog-post.html#comment-form' title='3 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8316252592468922827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8316252592468922827'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2009/11/blog-post.html' title='چگونه یک برنامه را ساکسیفای کنیم؟'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-8110705246404949968</id><published>2009-05-31T16:52:00.005+04:30</published><updated>2009-06-02T00:33:24.755+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='android 1.5'/><category scheme='http://www.blogger.com/atom/ns#' term='widget'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>اولین Widget من برای Android</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gluegadget.com/android/device.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 267px; height: 400px;" src="http://gluegadget.com/android/device.png" alt="" border="0" /&gt;&lt;/a&gt;می‌دونم، می‌دونم، باور کنید که خودم می‌دونم. ما ایرانیها هروقت که یک پلتفرم جدید برای برنامه‌نوشتن یا ویجت‌نوشتن پیدا می‌کنیم، اولین کاری که می‌کنیم نوشتن یک برنامه تقویم جلالی (هجری شمسی) هست. باور کنید منم به اندازه شما از این واقعیت ناراحتم و حتی بدم میاد، اما خوب چه‌کار میشه کرد؟ بعد از نوشتن "!Hello, World" ساده‌ترین کاریه که میشه کرد (و از حق هم که نگذریم یکم به درد بخوره). به‌هرحال من اولین Widget رو برای Android نوشتم، هرچند که از خیلی قبل از این روی یه پروژه دیگه کار می‌کردم، اما خوب اون هنوز آماده نشده.&lt;br /&gt;&lt;br /&gt;این ویجت خیلی سادست، فقط تاریخ امروز رو نشون میده، همین! و ذکر این نکته که این ویجت فقط برای اندروید ۱.۵ هست هم ضروری به نظر میرسه.&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;br /&gt;هرچند که این پروژه خیلی ساده‌ایی بود، اما خوب یکم هم بحث فنی در موردش شاید بد نباشه.&lt;br /&gt;&lt;br /&gt;مهمترین تفاوتی که برنامه‌هایی که روی موبایلها اجرا می‌شوند با برنامه‌های عادی دسکتاپ در کمبود منابع سیستمی و از اون مهمتر عمر کم باتری آنهاست، پس یکی از مهمترین دغدغه‌های یک برنامه‌نویس برنامه‌هایی که قرار برروی این نوع دیوایسها اجرا بشند، حداقل استفاده از منابع هست.&lt;br /&gt;&lt;br /&gt;در چارچوب AppWidget اندروید شما می‌توانید خیلی ساده یک وقفه مشخص کنید و پس از آن اندروید به‌طور مرتب در آن بازه‌های زمانی ویجت را به‌روز می‌کند، برای ویجتی مثل این خیلی ساده یک برنامه‌نویس بی‌وجدان! می‌تونست بازه‌های زمانی ۱ثانیه را مشخص کند و اصلا دغدغه اینکه ممکنه کاربر روز/ساعت/منطقه‌زمانی رو تغییر بده و یا حتی اینکه کی ساعت ۰۰:۰۰ میشه و روز بعد فرا‌ می‌رسد را نداشته باشد. اما خوب با توجه به میزان اندک وجدانی که من دارم این برنامه یکم بهتر کار می‌کنه. این ویجت یک BroadcastReceiver داره که به تغییراتی که ممکنه کاربر در تنظیمات دستگاهش بده گوش می‌کنه و در مواقع نیاز تمام ویجتهای نصب شده را به‌روز می‌کند. همچنین یک AlarmManager هم برای این ویجت پیش‌بینی شده که در صورتی که تاریخ خود دستگاه عوض شد (ساعت ۰۰:۰۰) تمام ویجتها را به‌روز می‌کنه.&lt;br /&gt;&lt;br /&gt;با توجه به بحث همیشگی و تکراری تحریم و ... نمیشه که این برنامه رو به Android Market اضافه کرد (حتی اگر هم که می‌تونستم، کسی نمی‌تونست از Android Market نصبش کنه ;))  اگر کسی علاقه‌منده که نصبش کنه می‌تونه از &lt;a href="http://gluegadget.com/android/Jalali.apk"&gt;اینجا&lt;/a&gt; بارگذاری کنه.&lt;br /&gt;&lt;br /&gt;نکته: از یکی مثل من (با توجه به باورها و عقاید) منتشر نکردن کد یکم بعیده، اما مطمئنا کدش رو (هرچند که خیلی سادست) به زودی ریلیز می‌کنم، مشکل اینه که فکر می‌کنم یه مشکل لایسنس کوچیک وجود داره که تا رفع نشده بهتره که کد ریلیز نشه.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-8110705246404949968?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/8110705246404949968/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2009/05/widget-android.html#comment-form' title='7 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8110705246404949968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8110705246404949968'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2009/05/widget-android.html' title='اولین Widget من برای Android'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-6376420746326334504</id><published>2009-03-31T13:57:00.004+04:30</published><updated>2009-03-31T14:10:28.893+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>من و T-Mobile G1</title><content type='html'>&lt;div dir="rtl" style="text-align: right;"&gt;بالاخره پریروز گوشیم رو عوض کردم، خیلی وقت بود منتظر بودم تا یه‌دونه &lt;a href="http://wiki.openmoko.org/wiki/Neo_FreeRunner"&gt;OpenMoko Freerunner&lt;/a&gt; به دستم برسه، بعد از یه‌عالمه صبر نهایتا بهم گفتن که گوشی رو توی گمرک یا فرودگاه یا همچین جایی دزدیدند.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;من برطبق یک عادت چندین ساله، هرسال برای خودم یه‌دونه Gadget می‌خرم که سرم باهاش گرم باشه و یکم از کارای تکراری توی شرکت و خونه راحت بشم. وقتی که مطمئن شدم در آینده‌ایی نزدیک دستم به OpenMoko نخواهد رسید تصمیم گرفتم که یه‌دونه هارد SSD بخرم (یک &lt;a href="http://www.intel.com/design/flash/nand/mainstream/index.htm"&gt;Intel X25-M&lt;/a&gt;). تمام تهران رو گشتم اما پیدا نشد که نشد، و از اونجا که نمی‌شد این رسم چند‌ساله خریدن یه Gadget رو زیرپا گذاشت، تصمیم گرفتم نزدیک‌ترین چیز به Freerunner رو بخرم، یک &lt;a href="http://www.t-mobileg1.com/"&gt;T-Mobile G1&lt;/a&gt;، با &lt;a href="http://www.kernel.org/"&gt;کرنل لینوکس&lt;/a&gt; و سیستم عامل &lt;a href="http://code.google.com/android/"&gt;اندروید گوگل&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;درمورد مشخصات فنی خیلی صحبت نمی‌کنم، چون همه‌جا نوشته شده، اما ترجیح میدم یکم در مورد مشکلاتی که باهاش داشتم بگم، مشکلاتی که عمدتا به خاطر اینکه مشتری T-Mobile نیستم و شاید از اون مهمتر به این دلیل که در ایران دارم ازش استفاده می‌کنم باهاش مواجه شدم.&lt;br /&gt;&lt;br /&gt;وقتی که گوشی رو خریدم، فروشنده بهم گفت که این گوشی چون برای قابل استفاده بودن باید حتما با یک حساب‌کاربری Google ثبت بشه، ما این رو به اسم یه‌نفر دیگه رجیستر کردیم، گوشی الان کاملا قابل استفاده هست، اما با یک حساب‌کاربری دیگه! یکی از مهمترین خصوصیات این گوشی اینه که کاملا با سرویسهای Google هم‌پارچه شده، لیست‌تماس، ای‌-میلها، تقویم و ... خوب مسلما که این حالت برای من غیر‌قابل‌تحمل بود. هنوز ۳-۲ ساعت از گوشی استفاده نکرده‌بودم که تصمیم گرفتم گوشی رو کلا ریست کنم. بعد از تکمیل شدن ریست، گوشی اجازه هیچ‌کاری رو بهم نمی‌داد، صفحه اول یک Wizard مونده بود و تا اون فرایند رجیستر رو تکمیل نمی‌کردم اجازه هیچ‌کاری رو نمی‌داد، حتی اجازه نمی‌داد تنظیمات WiFi رو انجام بدم تا گوشی یه‌جوری به اینترنت وصل شه! در عرض ۳-۲ ساعت یک Gadget هشتصد‌هزار تومانی رو به یک تکه‌آجر تبدیل کرده بودم.&lt;br /&gt;&lt;br /&gt;خود گوشی یه عالمه APN به‌صورت پیش‌فرض داشت و سعی می‌کرد به اونا وصل بشه تا بتونه فرایند رجیستر رو تکمیل کنه، و جای هیچ تعجب نیست که اگر بگم اون APNها همه ماله T-Mobile بودند. اول سعی کردم یه APN جدید بسازم و با یک SIM Card ایرانسل سعی کنم که رجیسترش کنم، اما موفق نشدم. حدس زدم مشکل باید از MCC،‌ MNC ایرانسل باشه.&lt;br /&gt;&lt;br /&gt;راه بعدی که به ذهنم رسید این بود که یه‌جوری صفحه تنظیمات WiFi رو باز کنم تا بتونم فعالش کنم و به یه AP وصلش کنم. بعد از یکم جستجو متوجه شدم که در Android SDK یه ابزار دیباگ به اسم &lt;a href="http://developer.android.com/guide/developing/tools/adb.html"&gt;Android Debug Bridge&lt;/a&gt; وجود داره، SDK رو دانلود کردم (حجیم، و البته اون صفحه گوگل که میگه حق نداری با این IP چیزی دانلود کنی رو هم رؤیت کردم)، بعد از یکم سروکله زدن با udev، یه شل گرفتم از گوشی و بالاخره موفق شدم که گوشی رو مجبور کنم صفحه مربوط به تنظیمات WiFi رو بیاره، WiFi رو فعال کردم به یه AP وصل شدم و با خیالی راحت برگشتم به اون Wizard تا گوشی رو رجیستر کنم، اما بازم نشد!‌ :(&lt;br /&gt;&lt;br /&gt;دیگه تقریبا مطمئن شدم که مشکل MNC و MCC نیست و احتمالا گوگل درخواست منو چون از ایران هست بلاک می‌کنه. راه‌حل بعدی این بود که گوشی از اینترنت پروکسی شده استفاده ‌کنه، در تنظیمات گوشی هیچ راهی برای تنظیم پروکسی نبود (بازم شکست). رفتم پیش &lt;a href="http://freemind.ir/"&gt;یکی از دوستام&lt;/a&gt; که چندتا کانکشن VPN داشت، سعی کردم لپ‌تاپ اونو به ‌VPN وصل کنیم و گوشی از اینترنتی که لپ‌تاپ روی wireless network interface شیر می‌کنه استفاده کنه، بازم در کمال تعجب متوجه شدم که این گوشی هیچ راهی برای ست کردن اینکه این کانکشن Ad-hoc هست نداره (در حالی که گوشی قبلیم که یک SE P1i هست به‌راحتی این‌چیزا رو می‌فهمید). دیگه داشتم نگران و عصبی می‌شدم. تنها راه این بود که یه NIC دیگه برای کامپیوتر خونه بخرم، اینترنت رو بدم به اون و بعد از اینکه به یه VPN وصل شدم اینترنت رو بدم به یه AP که گوشی بهش وصل بشه.&lt;br /&gt;&lt;br /&gt;اصلا از نگرانی خواب نمی‌رفتم، تصمیم گرفتم که بلندشم و هرجور که شده با همون ADB کارشو یک‌سره کنم. با ADB فایل کانفیگ اصلیه گوشی رو pull کردم روی لپ‌تاپ و به دقت خوندمش، و جایی که اون Wizard Component مقدار‌دهی می‌شد رو پیدا کردم، بعد از یکم جستجو و پیدا کردن داکیومنتهای namespace یه راه برای غیرفعال کردنش پیدا کردم! خیلی خوشحال سعی کردم که همون ADB فایل جدید رو push کنم روی گوشی و ریستارت!‌اما نه، مثل اینکه مشکل یکی‌-دوتا نیست، گوشی Permission Denied میداد و su هم Permission Denied میداد.&lt;br /&gt;&lt;br /&gt;اولین چیزی که به ذهنم رسید این بود که یه‌جوری یه‌دونه telnetd روی گوشی اجرا کنم، بعد از یکم جستجو معلوم شد که گوشی خودش یه‌دونه telnetd داره، فقط باید اجراش کرد، اما مشکل بعدی این بود که گوشی خودش هیچ Terminal Emulator ایی نداره در حالت پیش‌فرض و باید ازیه‌جا دانلود و نصب می‌کردم که تقریبا بدون رجیستر کردن گوشی محال بود. یه‌دفعه یادم اومد که در اولین ریویوهایی که از این گوشی خوندم یه باگ جالب توی Firmware RC29 بود، و اون این بود که هرچیزی که تایپ می‌کردی توی یه‌دونه hidden terminal با کاربر root اجرا می‌شد! اما مطمئن نبودم که آیا گوشی من هم این باگ رو داره یا نه. نوشتم reboot و در کمال نا‌امیدی Enter رو زدم ... بله! گوشی ریبوت شد!‌ (اولین شانسی که آوردم).&lt;br /&gt;&lt;br /&gt;بعد از اینکه گوشی بوت شد، تایپ کردم telnetd و Enter. با لپ‌تاپ به IP که گوشی از AP گرفته بود telnet کردم، و بله، با تشکر ویژه از بامزه بودن بالذات telnet من root بودم. با ADB فایل رو push کردم یه جاروی گوشی که کاربر عادی حق نوشتن داشت و خیلی خوشحال رفتم به اسکرین telnet و سعی کردم با cp فایل رو کپی کنم جای اصلیش، اما نه، مثله اینکه این شل حتی cp هم نداشت :(&lt;br /&gt;&lt;br /&gt;واقعا دیگه مستاصل شده‌‌بودم و داشتم به فروختن گوشی فکر می‌کردم. اما هی! مگه نه اینکه من اینجا یه کرنل لینوکس دارم؟ آخرین تیر ترکش push کردن &lt;a href="http://www.busybox.net/"&gt;busybox&lt;/a&gt; روی گوشی بود و بعد هم busybox cp.&lt;br /&gt;&lt;br /&gt;گوشی رو ریبوت کردم و ... بله! گوشی کار کرد! اومد بالا بدون هیچ مشکلی و من راحت باهاش اولین تماسم رو گرفتم. اما خوب هنوز یه مشکل وجود داشت، دقیقا همون مشکلی که اصلا به‌خاطرش گوشی رو فکتوری-ریست کرده بودم و اون این که گوشی به اسم من رجیستر نشده بود :(&lt;br /&gt;&lt;br /&gt;مونده بودم که این یکی رو دیگه چی‌کار کنم، برنامه Gmail رو باز کردم، یه پیغام خطا داد که «این گوشی ثبت‌نشده است، خیلی از امکانات را از دست داده‌اید، امیدوارم که یک برنامه‌نویس باشید». خیلی بد بود، خیلی بد. اما به اون آخرش که گفت امیدوارم برنامه‌نویس باشید مشکوک شدم، برنامه Android Market رو باز کردم، اونم گفت که گوشی رجیستر نیست، اما این امکان رو بهم می‌داد که Login کنم، اطلاعات حساب GMail رو وارد کردم و ... بله! تموم شد، گوشی شروع کرد به Sync کردن اطلاعات، بهم گفت که Email جدید داری، دفترچه تلفنم تمامش به گوشی منتقل شد و چندتا notice هم از identi.ca گرفتم! فوق‌العاده بود، فوق‌العاده!&lt;br /&gt;&lt;br /&gt;اگر این مشکلات اولیه رو نادیده بگیرم، گوشی فوق‌العاده‌ایی هست، با توجه به تجربه یک‌روزه‌ایی که با این گوشی داشتم (و قبلا هم تقریبا یک‌روز با یک iPhone کار کرده بودم)، به هرکسی که ازمن بپرسه تو این محدوده قیمت کدوم‌یکی رو انتخاب کنم، پیشنهاده من مطمئنا که G1 است.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-6376420746326334504?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/6376420746326334504/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2009/03/t-mobile-g1.html#comment-form' title='4 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/6376420746326334504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/6376420746326334504'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2009/03/t-mobile-g1.html' title='من و T-Mobile G1'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-3537795626431989694</id><published>2009-01-19T22:09:00.008+03:30</published><updated>2009-01-19T22:36:30.079+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>vimrc. من</title><content type='html'>&lt;div style="text-align: right;"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;تقریبا تمام مدتی که به صورت جدی برنامه‌نویسی کردم از Vim استفاده کردم، توی این مدت خیلی چیزا در مورد Vim یاد گرفتم، فهمیدم که بعضی از امکاناتش رو دوست دارم و میخوام نگه دارم، بعضی‌ها رو کلا نمی‌خوام و بعضی‌ها رو اگه یجور دیگه بودن دوست داشتم. تا حالا چندین بار دوستام ازم خواستن که فایل تنظیمات Vim خودم رو بهشون بدم، تصمیم گرفتم که یه پست در موردش بنویسم (همراه با کمی توضیح) که اگر vimrc. رو گم کردم، یه کپی اینجا داشته باشم (هرچند که این همش نیست، بعضی از تنظیماتی که استفاده می‌کنم خیلی احمقانه هستن و بعضی‌ها کاملا اختصاصی، مثل مسیر tag های یه پروژه)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;script src="http://gist.github.com/49100.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱. غیرفعال کردن سازگاری با vi (اگر می‌خواستم از vi استفاده کنم، که Vim رو اجرا نمی‌‌کردم ;)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;نکته: ۴ (۲ تا ۵) نکته زیر کاملا به Coding Styles شما و پروژه‌ایی که در اون مشارکت می‌کنید وابسته هست، مثلا من ترجیح میدم که به‌جای Tab، از Space استفاده کنم، اینجوری کد من که مثلا برای طول هر خط ۷۸ کاراکتر نوشته شده، روی دستگاه من که هر Tab معادل ۴ تا Space هست همونجوری نشون داده میشه که روی یه Vim که هر Tab معادل ۸تا کاراکتر هست. اما بعضی از پروژه‌ها (مثل کرنل لینوکس) استفاده از Tab رو ترجیح میدن، پس قبل از فرستادن Patch به Upstream حتما Coding Styles اون پروژه رو مطالعه کنید.&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۲. با استفاده از expandtab، هر Tab رو با استفاده از تعدادی Space جایگزین میکنید، مثلا با یکبار زدن Tab به جای اینکه یه tab در مد insert اضافه بشه، چندین Space اضافه میشه. (در حالت پیش‌فرض این خصوصیت غیرفعال هست، با توجه به نکته نوشته شده در بالا، انتخاب کنید که آیا این تنظیم را نیاز دارید یا نه)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۳. تعداد Space هایی که برای هر مرحله از indent استفاده میشه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۴. تعداد Space هایی که در هنگامی که در مد insert قرار دارید، به ازای هربار فشردن Tab، یا Backspace اضافه یا کم میشه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۵. هرچند Space یک Tab محسوب بشه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۶. اینکه Backspace در مد insert چجوری کار کنه، حالتی که من استفاده میکنم کاملترین حالته، اینکه هم در انتها و ابتدای خط (eol و start) و هم در حالت indent کار میکنه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۷. تعداد رنگهای مورد استفاده در Vim (کاملا بسته به نوع شبیه‌ساز ترمینال و colorscheme مورد استفاده است).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۸. نمایش شماره خطوط&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۹. وضعیت indent خط فعلی به خط بعد نیز کپی می‌شود (یعنی خط بعد متاثر از وضعیت خط قبل از خود باشد)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۰. در هنگامی که به زبانهای برنامه‌نویسی شبه C کد می‌نویسید، به صورت هوشمندانه خطوط را مرتب می‌کند (مثلا یک مرحله indent بیشتر بعد از })&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۱. همزمان با کامل شدن مورد جستجو، جستجو رو انجام میده، در حالت پیش‌فرض پس از کامل شدن متن مورد جستجو و وارد کردن آن موارد پیدا شده نمایشن داده می‌‌شوند.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۲. من دوست ندارم موارد پیدا شده بر اساس جستجوی انجام شده های‌لایت بشه (کاملا سلیقه‌ایی)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۳. نمایش سطر و ستون محل فعلی کرسر.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۴. پنهان کردن (نه کشتن!) Bufferایی که بسته میشه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۵ و ۱۶. من نه دوست دارم در مواقع خطا صدای بوق بشنوم، نه اینکه صفحه نمایش flash کنه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۷. نحوه folding، که من استفاده از markerهای خود Vim برای folding رو ترجیح میدم.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۸. وقتی که با Vim کار می‌کنید، خیلی از متون وارد register میشن، فایلهای مورد استفاده در bufferها لیست میشن، یه‌سری خطوط مارک میشن و ... که همگی مفیدن، اما متاسفانه همه این موارد پس از بسته شدن Vim از دست میرن، اگر که دوست دارید این موارد هنگامی که مجددا Vim رو باز می‌کنید همچنان در دسترس باشند، باید از امکانات viminfo. استفاده کنید. این خط به vim میگه که ۱۰ فایل ویرایش شده آخر را به همراه مارکهای آنها نگه دارد، ۱۰۰خط آخر را در register نگه دارد، ۲۰ دستور آخر را که در مد دستور وارد شده‌اند حفظ کند، اگر که در هنگام فراخوانی Vim فایل خاصی مشخص نشده باشد، کل بافر قبلی را بارگذاری کند و در نهایت نام فایلی که تمامی این اطلاعات باید در آن ذخیره شوند و در هنگام فراخوانی مجدد Vim اطلاعات این فایل بازیابی شوند.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۱۹ و ۲۰. تکمیل فرامین در مد فرمان (با استفاده از Tab) و درصورتی که چندین مورد یافت شد، همگی نمایش داده شوند و تا هنگام تکمیل طولانی‌ترین گزینه فعال باشد.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۲۱ و ۲۲. کوچک یا بزرگ بودن حروف در هنگام جستجو نادیده گرفته می‌شوند مگر اینکه عبارت جستجو حاوی یک کاراکتر با حروف بزرگ باشد.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۲۳. Vim میتونه عنوان پنجره terminal باز شده رو بازنویسی کنه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۲۴. غیرفعال کردن خیلی از promptهایی که شما مجبورید برای رهایی از دستشون Enter رو فشار بدید، مثلا پیغامی که در هربار اجرای Vim نمایش داده میشه (توجه: اون a خیلی چیزا رو غیرفعال می‌کنه!).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;۲۶ تا ۲۹. استفاده از امکانات بسیار مفید Vim در هنگام ویرایش فایلهایی که افزونه‌های مرتبط به آنها نصب شده باشد، مثلا رنگ کردن کد، auto-completion و ....&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-3537795626431989694?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/3537795626431989694/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2009/01/vimrc.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/3537795626431989694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/3537795626431989694'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2009/01/vimrc.html' title='vimrc. من'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-7969722570640412523</id><published>2009-01-01T13:15:00.000+03:30</published><updated>2009-01-01T13:41:10.201+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ext4'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>مهاجرت به Ext4</title><content type='html'>&lt;div dir="rtl" style="text-align: right;"&gt;همونطور که احتمالا میدونید لینوس &lt;a href="http://lkml.org/lkml/2008/12/24/105"&gt;به عنوان هدیه کریسمس، کرنل ۲.۶.۲۸ رو منتشر کرد&lt;/a&gt;. در بین امکانات جدید اضافه شده، پایدار شدن فایل سیستم سازگار با قبل و جانشین Ext3، یعنی Ext4 برای ما کاربران معمولی شاید مهمترین اتفاق باشه.&lt;br /&gt;&lt;br /&gt;از مهمترین خصوصیات Ext4 میشه به فایل‌سیستم/فایلهای بزرگتر، تخصیص متاخر (delayed allocation)، تطبیق سریعتر فایل‌سیستم (faster fsck)، قابلیت تخصیص چند بلوکی (multiblock allocation) و ... اشاره کرد.&lt;br /&gt;&lt;br /&gt;روزی (در واقع شبی) که من لپ‌تاپم رو خریدم و اومدم خونه که جنتو روش نصب کنم، دو تا اشتباه بزرگ (باور کنید به‌خاطر خواب‌آلودگی بود!) کردم:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;home رو جدا نکردم&lt;/li&gt;&lt;li&gt; درایوها رو Ext3 فرمت کردم (XFS رو ترجیح میدادم)&lt;/li&gt;&lt;/ul&gt;بعد از انتشار کرنل جدید، تصمیم گرفتم که هر دوی این اشتباهات رو جبران کنم (fsck های طولانی روی لپ‌تاپ واقعا اعصاب خورد کنه)، اگر که شما هم این اشتباهات رو انجام دادید و می‌خواهید که جبران کنید، شاید بد نباشه که بدونید من چجوری این کار رو انجام دادم:&lt;br /&gt;اول از همه شما مطمئنا باید کرنل خودتون رو به ۲.۶.۲۸ ارتقا بدید (هر چند که پشتیبانی از Ext4 در کرنل‌های قدیمی‌تر هم وجود دارد، اما Ext4 در ۲.۶.۲۸ پایدار شد).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;علاوه بر اینکه باید Ext4 رو در کرنل جدید فعال کنید، باید CONFIG_LSF رو هم فعال کنید، هر چند که در حالت عادی روی هارددرایو یک لپ‌‌تاپ به چنین چیزی احتیاج ندارید، اما چون پشتیبانی از فایلهای بزرگ یک خصیصه مهم در Ext4 هست، فعال نبودنش باعث میشه که نتونید درایو رو mount کنید.&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;بعد من با استفاده از یک LiveCD، صد گیگابایت از هارد رو آزاد کردم و یک درایو جدید فرمت نشده به‌جاش ساختم.&lt;br /&gt;حالا به کرنل جدید بوت کنید و درایو جدید ساخته شده رو فرمت کنید.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;شما به یک نسخه جدید (مثلا ۱.۴۱.۳) از e2fsprogs برای فرمت کردن به Ext4 احتیاج دارید.&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: left;"&gt;mkfs.ext4 /dev/XXX&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;(XXX رو با اسم درایو جدیدی که ساختید عوض کنید)&lt;br /&gt;&lt;br /&gt;یک شاخه جدید بسازید و درایو جدید رو اونجا mount کنید:&lt;br /&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: left;"&gt;mkdir /mnt/new-home&lt;br /&gt;mount -t ext4 /dev/XXX /mnt/new-home&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;حالا وقتشه که بریم در حالت تک‌کاربر و محتویات home قبلی رو منتقل کنیم به درایو جدید:&lt;br /&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: left;"&gt;init 1&lt;br /&gt;cd /home&lt;br /&gt;cp -ax * /mnt/new-home&lt;br /&gt;cd /&lt;br /&gt;mv /home /home.old&lt;br /&gt;mount /dev/XXX /home&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;حالا با زدن Ctrl-D از حالت تک‌کاربر خارج بشید و ... تموم شد!&lt;br /&gt;&lt;br /&gt;برای اینکه بعد از هر ریبوت مجبور نباشید home رو mount کنید، این خط رو به فایل fstab اضافه کنید:&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;"&gt;/dev/XXX    /home    ext4    defaults    0 2&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="rtl" style="text-align: right;"&gt;اگر همه چیز مرتب بود، می‌تونید با خیال راحت home.old/ رو پاک کنید.&lt;br /&gt;&lt;br /&gt;اگر از نتیجه راضی هستید، میتونید / رو هم به Ext4 تبدیل کنید، اما یادتون نره که چنین کاری رو با boot/ نکنید، چون هیچ نسخه منتشرشده‌ایی از GRUB وجود نداره که از Ext4 پشتیبانی کنه‌ (هرچند که اگر هم که وجود داشت، دلیلی برای اینکار وجود نداره، چون هیچ چیز عایدتون نخواهد شد!)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-7969722570640412523?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/7969722570640412523/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2009/01/ext4.html#comment-form' title='1 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/7969722570640412523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/7969722570640412523'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2009/01/ext4.html' title='مهاجرت به Ext4'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-7968507327491971526</id><published>2008-10-30T10:32:00.009+03:30</published><updated>2008-11-14T10:26:29.025+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='awesome'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><title type='text'>وضعیت باطری</title><content type='html'>&lt;div dir="ltr" style="text-align: right;"&gt;&lt;div dir="ltr" style="text-align: right;"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;تقریبا ۲ ماهی میشه که یه لپ‌تاپ جدید خریدم، اولین کاری که انجام دادم نصب &lt;a href="http://gentoo.org/"&gt;جنتو&lt;/a&gt; بود و بعدش هم نصب یک Tiling window manager، بین گزینه‌های موجود من &lt;a href="http://awesome.naquadah.org/"&gt;awesome&lt;/a&gt; رو انتخاب کردم.&lt;br /&gt;اون موقع هنوز awesome 3 منتشر نشده بود و من با بتاهاش کار می‌کردم. یکی از چیزهایی که من خیلی در مورد awesome 3 دوست دارم اینه که کلا فایلهای پیکربندیش رو با &lt;a href="http://lua.org/"&gt;Lua&lt;/a&gt; باید نوشت، و همچنین یک API خیلی خوب و قدرتمند هم براتون فراهمه تا هرکاری که فکرشو بکنید بتونید با awesome انجام بدید.&lt;br /&gt;چندین library دیگه هم همراه با awesome میان که کار با awesome رو خیلی راحت‌تر می‌کنن، یکی از اونا &lt;a href="http://awesome.naquadah.org/wiki/index.php?title=Wicked"&gt;wicked&lt;/a&gt; هست، معمولا از wicked برای ساختن widget ها استفاده میشه و خودش هم یک سری widget برای نشون دادن وضعیت CPU, RAM و شبکه در اختیار میذاره، اما یه‌چیزه لازم برای هر لپ‌تاپ که توی wicked نبود widget ایی از نوع باطری بود. اما خوب با استفاده از wicked خیلی راحت میشه خروجی یه برنامه دیگه رو توی widget ها نشون داد و با استفاده از &lt;a href="http://library.gnome.org/devel/pango/stable/PangoMarkupFormat.html"&gt;Pango markups&lt;/a&gt; به شکل دلخواه درش آورد ... و چی راحت‌تر از نوشتن یه bash script؟ :-)&lt;br /&gt;این یه bash script خیلی سادست برای اینکه وضعیت باطری رو برگردونه، وقتی که AC Adaptor وصله یه‌دونه + به اول درصد باقیمانده از ظرفیت کل اضافه می‌شه، و اگر که وصل نباشه، یه - اضافه میشه، و من خیلی ساده در قسمتی که با Lua می‌نویسم، بهش میگم اگر مثبت بود،‌ وضعیت سبز، اگر منفی بود وضعیت زرد و اگر که زیر ۱۰ درصد بود، وضعیت قرمزه!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="ltr" style="text-align: left;"&gt;&lt;script src="http://gist.github.com/24805.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-7968507327491971526?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/7968507327491971526/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2008/10/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/7968507327491971526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/7968507327491971526'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2008/10/blog-post.html' title='وضعیت باطری'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-8839454087040014195</id><published>2008-08-24T13:08:00.006+04:30</published><updated>2008-10-02T06:49:40.994+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tracemonkey'/><category scheme='http://www.blogger.com/atom/ns#' term='spidermonkey'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>TraceMonkey، یک اتفاق میمون</title><content type='html'>&lt;div dir="rtl" style="text-align: right;"&gt;&lt;div dir="rtl" style="text-align: right;"&gt;اخیرا بنیاد موزیلا خبر از پیشرفتی قابل توجه در نسخه بعدی مرورگر فایرفاکس (نسخه ۳.۱) داده.&lt;br /&gt;&lt;/div&gt;این امکان جدید در حقیقت پیشرفتی برای &lt;a href="http://developer.mozilla.org/en/docs/Gecko"&gt;Gecko&lt;/a&gt; (موتور طرح‌بندی توسعه یافته توسط موزیلا) محسوب می‌شود، و اگر بخواهیم دقیقتر صحبت کنیم، پیشرفتی برای &lt;a href="http://www.mozilla.org/js/spidermonkey/"&gt;SpiderMonkey&lt;/a&gt; (موتور جاوا‌اسکریپت به کار گرفته شده در Gecko). بنیاد موزیلا دو پیاده سازی مختلف از JavaScript دارد، یکی SpiderMonkey هست که با زبان برنامه نویسی C نوشته شده و در Gecko مورد استفاده قرار گرفته، و دیگری &lt;a href="http://www.mozilla.org/rhino/"&gt;Rhino&lt;/a&gt; می‌باشد که با Java نوشته شده است.&lt;br /&gt;موزیلا نام این تحول جدید SpiderMonkey را &lt;a href="https://wiki.mozilla.org/JavaScript:TraceMonkey"&gt;TraceMonkey&lt;/a&gt; گذاشته. در واقع TraceMonkey یک JIT Compiler برای SpiderMonkey هست که باعث افزایش سرعت اجرای جاوااسکریپت می‌شود، و این بدین معنی می‌باشد که کارهایی که به شدت از منابع سیستمی استفاده می‌کردند و برای اجرا نیاز به Plugin های اختصاصی داشتند، از این به بعد می‌توانند به قدرت و سرعت اجرای JavaScript اتکا کنند.&lt;br /&gt;&lt;br /&gt;در واقع TraceMonkey اولین اقدام برای افزایش کارایی یک موتور JavaScript محسوب نمی‌شود. کمی پیشتر Apple خبر از موتور JavaScript جدید به کار رفته در &lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt; (موتور طرح بندی استفاده شده در &lt;a href="http://www.apple.com/safari/"&gt;Safari&lt;/a&gt;) با نام &lt;a href="http://trac.webkit.org/wiki/SquirrelFish"&gt;SquirrelFish&lt;/a&gt; داد (SquirrelFish در واقع یک مفسر bytecode محسوب می‌شود تا یک JIT Compiler)، و یا &lt;a href="http://www.mozilla.org/projects/tamarin/"&gt;Tamarin&lt;/a&gt; که موتور JavaScript استفاده شده در نسخه ۹ فلش می‌باشد.&lt;br /&gt;&lt;br /&gt;کاری که یک JIT Compiler انجام می‌دهد‌ در واقع تبدیل کردن «کد زمان اجرا» است پیش از آنکه آنرا به صورت native اجرا کند. مثلا تبدیل bytecode به کد native ماشین. تفاوت TraceMonkey با SquirrelFish در واقع در همین مرحله است، SquirrelFish (هنوز) bytecode ماشین مجازی خود رو به کد native تبدیل نمی‌کند، در حالی که این اتفاق در مورد TraceMonkey رخ می‌دهد، و همین باعث افزایش کارایی TraceMonkey در مقابل SquirrelFish هست.&lt;br /&gt;&lt;br /&gt;همچنین، قبل از اینکه Mike نتایج کار Brendan و Andreas رو وارد repositry اصلی Mozilla کنه، Gecko شاهد تغییرات جدیدی برای افزایش اجرای جاوااسکریپت بوده، مواردی مثل اضافه کردن Cache برای صفات چندریختی که باعث پیدا کردن سریعتر خصوصیات می‌شود و دیگر نیازی نیست کل اشیا یک زنجیره از prototype تا آخر برای پیدا کردن یک صفت بررسی شوند.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-8839454087040014195?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/8839454087040014195/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2008/08/tracemonkey.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8839454087040014195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8839454087040014195'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2008/08/tracemonkey.html' title='TraceMonkey، یک اتفاق میمون'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-1349277427823600822</id><published>2008-08-23T12:46:00.004+04:30</published><updated>2008-08-24T13:41:42.575+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud Computing و متن‌باز</title><content type='html'>&lt;div style="text-align: right;" dir="rtl"&gt;با گسترش مفاهیمی چون نرم‌افزار به عنوان سرویس یا Software as a Service یا SaaS مفهوم جدیدی مثل Cloud Computing بیشتر و بیشتر رایج می‌شود.&lt;br /&gt;به طور کل Cloud Computing یعنی محاسباتی که با استفاده از کامپیوتر انجام می‌شود (Computing)  بر پایه اینترنت (Cloud). به بیان ساده‌تر Cloud Computing یعنی در اختیار قراردادن قدرت محاسبات رایانه‌ایی در هرجایی که دسترسی به اینترنت وجود دارد.&lt;br /&gt;شرکتهای ارائه دهنده خدمات Cloud Computing معمولا شما را بر اساس میزان استفاده‌ایی که از منابع سیستمی کرده‌اید شارژ خواهند کرد، چیزی مثل یک قبض برق. بدین‌ترتیب تقریبا تمامی نگرانیهای Scale up و حتی Scale Down هم رفع می‌شوند، دیگر نیازی نیست که برای در دسترس بودن برنامه تحت‌وب خود در اوقات اوج ترافیک، سخت افزارهایی را خریداری کنید که درمواقع ترافیک پائین بیکار باشند، و یا چون بودجه کافی ندارید، با نذر و دعا برنامه خود را در ساعات اوج ترافیک سرپا نگه دارید.&lt;br /&gt;شرکتهای بزرگی مثل Google و Amazon خیلی پیشتر از آنکه این نیاز واقعا توسط شرکتهای کوچکتر احساس شود معماری خود را بر چنین پایه و اساسی بنا نهادند. وحالا که این نیاز واقعا توسط شرکتهای کوچکتر و بازهم کوچکتر احساس می‌شود، امکان دسترسی عموم را به چنین سرویسهایی فراهم آورده‌اند. هرچند که تکنولوژیهای متن‌بازی نیز وجود دارد که به شرکتهای متوسط این اجازه را می‌دهد که برپایه سخت‌افزارهای موجود خود، در دسترس بودن Computing را جهت رفع نیازهای خود بهبود بخشند.&lt;br /&gt;با توجه به آنچه که گفته شد، ۳ روش متفاوت برای بهره‌مند شدن از امکانات Cloud Computing وجود دارد:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;استفاده و مدیریت کامل محیط Computing که به صورت مجازی (در Cloud) در اختیار شما قرار داده شده&lt;/li&gt;&lt;li&gt;توسعه و ارائه برنامه‌ها بر روی محیطی که هیچ‌گونه کنترلی روی آن ندارید&lt;/li&gt;&lt;li&gt;ساخت یک Cloud از پایه&lt;/li&gt;&lt;/ul&gt;روش نخست بنا به دلایل متعدد بهترین گزینه می‌باشد، نیازی به تهیه سخت‌افزارهای گرانقیمت، امکانات پیشرفته نگه‌داری و مراقبت، دغدغه‌های پهنای باند و ...، هیچکدام وجود ندارند. و در عین حال به شما این اجازه داده می‌شود که محیط را همانگونه که می‌خواهید و با توجه به نیازها و بودجه خود بسازید. معروفترین شرکت ارائه کننده چنین راهکارهایی Amazon با سرویس EC2 هست.&lt;br /&gt;&lt;br /&gt;روش دوم مناسب شرکتها و افرادی می‌باشد که نمی‌خواهند حتی دغدغه مدیریت منابع تخصیص داده شده را داشته باشند، ترجیح می‌دهند همه چیز برای اجرا شدن هرچه سریعتر و بهتر برنامه‌های آنها فراهم باشد. بدیهی است که در چنین شرایطی خود شرکت ارائه کننده خدمات اقدام به محدود کردن منابع می‌کند. معروفترین چنین راهکارهایی Google App Engine می‌باشد. در سرویس Google حتی یک چارچوب برنامه‌نویسی مشخص وجود دارد که شما ملزم با پیروی از آن هستید، در چنین شرایطی شما حتی نباید نگران مسائل امنیتی باشید. بهای پرداخت شده به ازای تمامی این امکانات محدود شدن شما می‌باشد.&lt;br /&gt;&lt;br /&gt;و در نهایت روش آخر که پیچیده‌ترین و هزینه‌برترین گزینه می‌باشد. در این شیوه بعد از فراهم کردن تمامی امکانات سخت‌افزاری مورد نیاز،‌شما نیاز به یک نرم‌افزار مدیریت کننده دارید. نرم‌افزارهای متن‌باز متعددی جوابگوی این نیاز هستند که بهترین آنها در حال حاضر &lt;a href="http://hadoop.apache.org/core/"&gt;Hadoop&lt;/a&gt; به نظر می‌رسد. &lt;a href="http://eucalyptus.cs.ucsb.edu/"&gt;Eucalyptus&lt;/a&gt; و &lt;a href="http://www.10gen.com/"&gt;10gen&lt;/a&gt; گزینه‌های مطرح بعدی هستند.&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl"&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-1349277427823600822?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/1349277427823600822/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2008/08/cloud-computing.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/1349277427823600822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/1349277427823600822'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2008/08/cloud-computing.html' title='Cloud Computing و متن‌باز'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-4766398516275668774</id><published>2008-07-11T20:52:00.003+04:30</published><updated>2008-07-11T21:24:49.822+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='ccache'/><title type='text'>واقعیتهای ccache</title><content type='html'>بسیاری از کاربران فکر می‌کنند که &lt;a href="http://ccache.samba.org/"&gt;ccache&lt;/a&gt; باعث افزایش سرعت کامپایل تحت هر شرایطی می‌شود.&lt;br /&gt;&lt;br /&gt;قبل از هرچیز فکر می‌کنم توضیح نحوه عملکرد ccache ما را در درک بهتر شرایط یاری خواهد داد.&lt;br /&gt;ccache در واقع یک MD5 hash از محتوی قبل از پردازش فایل درست می‌کند، سپس cache tree را بررسی می‌کند، و اگر مورد مشابهی پیدا نکرد آن فایل را کامپایل می‌کند و محتوی آنرا دوبار (یک‌بار موقع build کردن و یک‌بار هم در فایل cache) می‌نویسد.&lt;br /&gt;آز آنچه که تا اینجا درباره نحوه عملکرد ccache گفته شد، اینچنین برمی‌آید که چنانچه شما همواره فایلهای غیریکسان را کامپایل می‌کنید، ccache نه تنها به شما کمکی نمی‌کند بلکه در واقع بار اضافی برروی سیستم می‌گذارد.&lt;br /&gt;&lt;br /&gt;پس فایده ccache چیست؟ اگر که شما یک source را بیش از یکبار کامپایل کنید، مدت زمانی را که ccache احتیاج دارد تا MD5 hash را ساخته و cache tree را برای یافتن موردی مشابه پیدا کند کمتر از زمان یک build می‌باشد.&lt;br /&gt;&lt;br /&gt;پس ccache عموما نه در زمانی که CFLAGS را عوض کنید، نه در زمانی که USE flags را عوض کنید و نه در زمانی که نسخه جدیدتری از source را کامپایل می‌کنید کمک چندانی نخواهد کرد.&lt;br /&gt;&lt;br /&gt;ccache معجزه نمی‌کند!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-4766398516275668774?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/4766398516275668774/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2008/07/ccache.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/4766398516275668774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/4766398516275668774'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2008/07/ccache.html' title='واقعیتهای ccache'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-6266206549063008851</id><published>2008-07-01T22:06:00.004+04:30</published><updated>2008-07-11T21:25:05.623+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='comet'/><title type='text'>Comet</title><content type='html'>&lt;blockquote class="tr_bq"&gt;Comet درباره اتصالات HTTP با عمر طولانی نیست، بلکه درباره اتصالات HTTP ایی است که برای طولانی مدت نگه‌داشته می‌شوند.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-6266206549063008851?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/6266206549063008851/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2008/07/comet.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/6266206549063008851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/6266206549063008851'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2008/07/comet.html' title='Comet'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5419827648531828838.post-8994905149711295240</id><published>2008-06-28T02:36:00.005+04:30</published><updated>2008-07-11T21:21:16.926+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='فیس‌بوک'/><category scheme='http://www.blogger.com/atom/ns#' term='وب ۲'/><category scheme='http://www.blogger.com/atom/ns#' term='شبکه‌های اجتماعی'/><title type='text'>وب، شرکتها و برندها</title><content type='html'>مدتی بود که منتظر تغییر و تحولی در نحوه حضور شرکتها و مارکها و محصولات آنها در وب بودم، دقیقا مطمئن نبودم که چه‌چیز باید تغییر کند، اما به‌‌هرحال مطمئن بودم که روند فعلی دیگر جوابگو نخواهد بود، روندی که ریشه در روزهای اولیه پیدایش وب دارد، و با اندک تغییری (اگر اصلا تغییری صورت گرفته باشد) تا امروز (دیروز؟) ادامه داشته است.&lt;br /&gt;&lt;br /&gt;از روزهای اولیه اقبال شرکتها به وب، نحوه حضور به این صورت بوده که چندین برنامه‌نویس و طراح استخدام می‌شدند تا یک سری محتوای مشخص و ثابت که دلخواه صاحبان شرکتها و مشاوران تبلیغاتی آنها بود بر روی وب‌ قرار گیرد و سپس با صرف هزینه‌های تبلیغاتی (در وب‌سایتهای پربیننده‌تر، تبلیغات تلویزیونی، کارتهای ویزیت ...) کاربران را به سمت وب‌سایت خود بکشند.&lt;br /&gt;کاربر بعد از وارد شدن به وب‌سایت شرکت موردنظر به جز چند عکس و توضیحاتی که همگی دلخواه صاحبان وب‌سایت بوده چیز دیگری نمی‌دید. این شیوه برای کاربر دوران طفولیت وب، روشی کاملا قابل‌قبول و منطقی بوده است، اما آیا می‌توان کاربر امروز وب را که می‌خواهد «بخواند و خوانده‌شود» (وکمتر با وب‌سایتی که نتواند در تولید محتوای آن مشارکت داشته باشد ارتباط برقرار می‌کند) را به همین شیوه راضی نگاه داشت؟&lt;br /&gt;&lt;br /&gt;در راستای پاسخ‌گویی به این نیاز جدید شرکتهای مختلف راهکارهای متفاوتی را برگزیدند، بعضی‌ها به صرف اضافه کردن یک فرم ساده نظرسنجی و یا امکان ثبت دیدگاهها بسنده کردند، و اما بعضی‌ پا را به مراتب فراتر نهاده و شبکه‌های اجتماعی در مقیاس بسیار‌ کوچک با محوریت محصولات خود ایجاد کردند، اما با گسترش این سرویسها دو مشکل بزرگ خود را نشان دادند:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;بزرگ شدن و حریص شدن دپارتمان IT شرکتها به پول و منابع انسانی&lt;/li&gt;&lt;li&gt;سر برآوردن تعداد بسیار زیادی سرویس اینچنینی که همگی نیاز به ترغیب کاربر به ثبت‌نام و مشارکت نیز دارند (بله،‌ درست است که تمامی این کارها برای خود کاربر و در راستای ارضای نیاز به مشارکت وی صورت پذیرفته، اما اگر کاربر مجبور باشد برای تنها تائید یک محصول کوچک روند ثبت‌نام و ورود به سرویس را برای تک‌تک وب‌سایتها انجام دهد، آیا همچنان مشتاق باقی خواهد ماند؟)&lt;/li&gt;&lt;/ul&gt;آیا می‌شود سرویسی را تصور کرد که پیش از این تمامی این هزینه‌ها را انجام داده، و همچنین تعداد بسیار زیادی کاربر را راضی به استفاده کردن از سرویس خود کرده باشد، ودر عین حال به راحتی به شما این اجازه را  بدهد تا از شرایط ایجاد شده در راستای تبلیغ محصولات خود استفاده کنید؟&lt;br /&gt;&lt;br /&gt;بله! حالا مطمئن هستم که آن تغییرچیست، تغییری که همین حالا در حال رخ دادن است.&lt;br /&gt;&lt;br /&gt;بارزترین نمونه آن صفحات  مربوط به شرکتها و محصولات آنهاست که در facebook ساخته می‌شوند، کاربران به محصولات شما امتیاز می‌دهند، نظر می‌نویسند، نظرات دیگران را می‌خوانند، با محصولات شما عکس می‌گیرند و آنرا با دیگران به اشتراک می‌گذارند  و احیانا از برنامه‌هایی که شما با استفاده از پلتفرم facebook برای آنها نوشته‌اید سرگرم می‌شوند.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5419827648531828838-8994905149711295240?l=mybabblebox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybabblebox.blogspot.com/feeds/8994905149711295240/comments/default' title='نظرات پيام'/><link rel='replies' type='text/html' href='http://mybabblebox.blogspot.com/2008/06/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8994905149711295240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5419827648531828838/posts/default/8994905149711295240'/><link rel='alternate' type='text/html' href='http://mybabblebox.blogspot.com/2008/06/blog-post.html' title='وب، شرکتها و برندها'/><author><name>Amir Mohammad Saied</name><uri>http://www.blogger.com/profile/02093022128794806795</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
