هفت افزونه ی وردپرس برای حرفه ای ها
مهر ۱۳۸۷ - Wordpress - محمدعرفان شمسیدر این پست باهم به بررسی چند افزونه برای وردپرس می پردازیم.
AskApache RewriteRules Viewer:
دوستانی که از سرور های ویندوز استفاده می کنند حتمن متوجه مشکلی به نام وجود index.php در آدرس URL وبلاگشان شده اند. اگر خواهان زیباتر کردن آدرس لینک های وبلاگ خود هستید، می توانید از این افزونه برای رفع مشکلتان استفاده کنید.
Broken Link Checker:
وجود لینک های خراب در یک وبلاگ، در رتبه بندی و ایندکس گذاری ها توسط سایت ها و موتور های جست و جو تاثیر گذار است. به وسیله ی این افزونه شما می توانید به راحتی لینک های خراب کل وبلاگ خود را بیابید و آنها را ترمیم کنید.
Smart 404:
داشتن یک صفحه ی خطای زیبا خیلی اوقات موثر است. اما به نظر شما بهتر نیست اصلن بازدید کننده های شما با صفحه ی خطایی مواجه نشوند؟ شما در این وبلاگ بسیار کم با صفحه ی خطا روبه رو خواهید شد. علت آن هم استفاده از این افزونه است که به صورت اتوماتیک صفحاتی که لینک اشتباه دارند را به صفحات مشابه ریدایرکت می کند. مثل شما با کلیلک بر روی تمام لینک های زیر به یک صفحه خواهد رفت: 
http://it.myjigi.com/2008/09/itvillage_w
http://it.myjigi.com/2008/09/itvillage_was_hac
http://it.myjigi.com/2008/09/itvillage
WordPress Database Backup:
افزونه ای برای گرفتن نسخه ی پشتیبان از مطالب وبلاگ. باز هم بیشتر به درد دوستانی خواهد خورد که از سرور های ویندوز استفاده می کنند. ضمن اینکه وجود این افزونه، شما را تحریک خواهد کرد که منظم تر از دیتا بیس خود نسخه ی پشتیبان تهیه کنید.
WP Security Scan:
افزونه ای خوب برای غیر قابل نفوذ تر کردن وردپرستان. البته برای عمل کردن به توصیه های این افزونه، باید کمی دقت کنید.
Wordpress Mobile:
افزونه ای برای بهینه کردن وبلاگتان در موبایل. بسیار کاربردی و خوب عمل می کند و حتا تعداد زیادی بازدید کننده هم به سوی وبلاگتان از موبایل ها سرازیر می کند.
Fluency Admin:
افزونه ای برای تغییر محیط قسمت مدیریت وبلاگ. از شر طراحی غیر استاندارد وردپرس راحت خواهید شد.
پروتکل TCP/IP
مهر ۱۳۸۷ - Network - محمدعرفان شمسیدر چند مدت اخیر، عده ی زیادی از دوستان خواستار تخصصی تر شدن مطالب وبلاگ بودند. از این پست به بعد، این وبلاگ شاهد مطالب کاملن تخصصی هم خواهد بود تا دوستانی که در زمینه ی شبکه، اطلاعات دارند را هم راضی نگه دارد. به دلیل تخصصی شدن مطلب، ممکن است به یک موضوع بشود از زاویه های مختلفی نگاه کرد و نتایج مختلفی هم گرفت. بسیار بسیار خوشحال خواهم شد که دوستان متخصص، نظراتشونو از این وبلاگ دریغ نکنند. ضمن اینکه همان طور که بار ها گفته ام، ممکن است بنده هم در ارائه مطلب دچار اشتباه شوم. خواهشمندم اشتباهاتم را بیان کنید. در ضمن دوستانی که حاصل تلاش ما وبلاگ نویسان را کپی می کنند، لااقل یک لینک خشک و خالی را فراموش نکنند.
TCP/IP:
پروتکل های TCP/IP در سال 1970 برای استفاده در شبکه ی های Packet Switching وزارت دفاع امریکا توسعه پیدا کردند. این شبکه ها در آن زمان ARPANET نامیده می شدند که البته امروزه دیگر تبدیل به Internet شده است. این پروتکل ها از همان ابتدا با سیستم عامل های UNIX سازگار بودند. بر خلاف بسیاری از پروتکل ها، مانند (Novell’s Internetwork Packet Exchange(IPXکه وظایف مشابه ای دارند، پروتکل های TCP/IP توسط شرکت خاصی به وجود نیامده است و حاصل تلاش افراد و شرکت های زیادی است.
علاوه بر موضوعاتی که ذکر شد، هیچ گونه محدودیتی از جمله کپی رایت و یا Publishing restrictions از توسعه ی این پروتکل ها جلوگیری نمی کند. این ذات غیر مالکانه در استانداردTCP/IP، به این معنیست که که این مجموعه پروتکل ها محدود به هیچ پلت فرم، سیستم عامل و یا سخت افزاری نیستند. در واقع توسعه ی بخش های محتلف این پروتکل با این هدف صورت گرفته است که به کامپیوتر ها قابلیت ارتباط با هر شبکه ای را بدهد.
استاندارد TCP/IP توسط (Internet Engineering Task Force (IETF در اسناد (Request For Comments (RFCs منتشر شده است. لیست RFCs شامل اسنادی است که مراحل مختلف توسعه ی استاندار های پروتکل را توصیف می کند. البته علاوه بر این اطلاعات، این اسناد شامل تاریخچه و تجارب مراحل توسعه پروتکل هم هستند! این نکته را هم فراموش نکنید که هر سندی در این لیست، دارای یک شماره است. بنابراین برای پیدا کردن سند مورد نظرتان، باید شماره ی آن را داشته باشید.
TCP/IP Protocol Stack :
پروتکل های TCP/IP مدت ها قبل از توسعه ی مدل OSI به وجود آمدند. اما با این حال نحوه ی استفاده از لایه ها، در هر دو تقریبن یکسان است. اگر یادتان باشد، در این پست در مورد Protocol Stackصحبت کرده بودم و گفته بودم به محیطی که چند پروتکل همزمان با هم کار می کنند، گفته می شود. اگر توجه کرده باشید، در تمامی قسمت های این پست، از عبارت پروتکل های TCP/IP استفاده کردم. در واقع TCP/IP نیز یک Protocol Stack است و پروتکل های مختلفی در آن فعالیت می کنند. تقسیم کردن وظایف شبکه های کامپیوتری، به پشته ای از پروتکل های جداگانه، چند مزیت مهم نسبت به ایجاد یک پروتکل یکپارچه دارد که باهم به بررسی این مزیت ها می پردازیم:
- Platform independence: پروتکل های جدا گانه، پشتیبانی از پلت فرم های مختلف را ساده تر می کند. ضمن اینکه برای توسعه و یا ویرایش استاندارد ها و یا API ها نیاز به ویرایش کل پروتکل نخواهد بود.
- Quality of service: داشتن چندین پروتکل جداگانه که در یک لایه کار می کنند، به برنامه های کاربردی این اجازه را می دهد که تنها پروتکل هایی که سرویس مورد نیاز را فراهم می کنند، انتخاب کنند.
- Simultaneous development: به این دلیل که پشته ی پروتکل های TCP/IP به لایه ها و پروتکل های مختلفی تقسیم شده است، افرادی که بر عملکرد قسمت خاصی از لایه ها تخصص دارند، می توانند به صورت همزمان نسبت به توسعه پروتکل های TCP/IP اقدام کنند.
TCP/IP Layers:
TCP/IP دارای 4 لایه است که در RFC 1122 تعریف شده اند. این لایه ها تقریبن با لایه های مدل OSI قابل قیاس هستند. در شکل زیر این موضوع کاملن مفهوم است.

* لایه Link: مجموعه TCP/IP شامل لایه ی Physical مشخص و یا پروتکل LAN های پیچیده مانند اترنت نمی باشد. همچنین درست است از جهتی این لایه در راستای لایه ی Data-Link عمل می کند، اما با این حال، لایه ی Data-Link جزیی از مجموعه TCP/IP نمی باشد. پروتکل هایی مانند Serial Line Internet Protocol - SLIP ، Point-to-Point Protocol - PPP و یا Address Resolution Protocol - ARP در این لایه کار می کنند. فراموش نکنید که هر کدام از این پروتکل ها برای خودشان داستان بسیار مفصلی دارند!
* لایه Internet: ابتدا باید این نکته را ذکر کنم که اسم این لایه را با اینترنت معمول اشتباه نگیرید. این Internet به Internetwrok اشاره می کند. این لایه دقیقن عملکردی مشابه عملکرد لایه یNetwrok در مدل OSI دارد. پروتکل معروف IP در این لایه کار می کند. Data encapsulation ( به فرایند اضافه کردن Header و Footer به بسته های ارسالی encapsulation گفته می شود که مثل بیشتر کلمات بهتر است ترجمه نشود) ، آدرس دهی، مسیر یابی و یکپارچه سازی پروتکل ها برای لایه ی بالایی Transport، از جمله کار های این لایه است! پروتکل های Internet Control Message Protocol - ICMP و Internet Group Message Protocol - IGMP دو پروتکل دیگر هستند که در این لایه کار می کنند. خیلی دوست دارم در آینده دو پست جدا و مفصل در مورد ICMP و ARP بنویسم.
* لایه Transport: این لایه هم دقیقن عملکردی مشابه لایه ی همنام خودش در مدل OSI دارد. پروتکل های Transmission Control Protocol - TCP و User Datagram Protocol - UDP در این لایه کار می کنند.
* لایه Application: این لایه به واقع می تواند شکل های مختلفی به خود بگیرد. بعضی از پروتکل های این لایه، مانند File Transfer Protocol - FTP می توانند خودشان به صورت مستقل عمل کنند و بعضی از پروتکل های دیگر، مانند HyperText Transfer Protocol - HTTP می توانند سرویسی را برای سایر برنامه ها فراهم آورند.
مبحث TCP/IP بسیار بسیار وسیع است و امکان اینکه باز هم در این مورد مطلب تخصصی بنویسم، کم نیست. امیدوارم دوستان نهایت استفاده را از این پست ببرند.
تجربه من از هک شدن
مهر ۱۳۸۷ - Weblog - محمدعرفان شمسیدیروز صبح که اومدم سری به سایت بزنم با کمال تعجب دیدم با یک صفحه ی خطا مواجه میشم. یه مقداری بی خبر از همه جا ور رفتم باهاش اما دیدم نخیر قرار نیست درست شه. گفتم یه سر به دامین اصلی بزنم که با کمال تعجب دیدم بله! توسط یک گروه سنی مورد حمله واقع شدم و هک شدم! حالا از کجا پی بردن من شیعه و همچنین یک ایرانی هستم بماند، هک کردن یک سایتی که صاحبش غیر از یک مشت خزعبلات چیزی نمینویسه، چه سودی به حالشون داشت خدا می دونه. تازه میون این همه سایت چرا اینجا؟
بعد اینکه سورس index.html که رو سایتم گذاشته بودنو دیدم، کلی خوشحال شدم که خب مساله ی خاصی نیست. سریع درست میشه. از بس این سورس HTML خطا های بچه گانه داشت! اما حالا مگه درست میشد؟! هر کاری کردم دیشب مددی حاصل نشد. تمام ساب دامین ها آسیب دیده بود. امروز یه سر به شرکتی که هاست میگیرم زدم. از طریق سرور هک شده بودم. خلاصه با کلی بدبختی و پاک کردن همه چیز تونستم لااقل این ساب دامین رو ردیف کنم.(بقیه ساب دامین ها به همراه دامین اصلی همچنان مشکل دارن) حالا می خواستم مطالبمو برگردونم که باز با کمال تعجب دیدم وقتی بر می گردونم، سایت دوباره مشکل پیدا می کنه! نگو که دیتا بیس رو هم زده بودن نابود کرده بودن. خلاصه با کلی بدبختی، با کلی خون دل خوردن تونستم مطالب و نظرات رو برگردونم.
سایت فعلن در دسترس هست. آدرس ها همگی مشکل پیدا کردن و لینک های قبلی فعلن کار نمی کنند. قسمت های مختلف به مرور درست میشه. فعلن حدودن 120 مطلب کارشون مونده!!(اضافه کردن دسته بندی و تگ) از اینکه این دو روز سایت در دسترس نبود واقعن شرمندم. البته صفحه ی اول رو با کلی کلک سر پا نگه داشته بودم! اما خب فقط صفحه اول بود!
البته چند درس مهم داشت واسم این هک شدن:
اول اینکه وردپرس هک بشو نیست.
دوم اینکه سرور لینوکس اون قدرام امن نیست! درسته سرویس دهنده ی من باید بیشتر تدابیر امنیتی رو رعایت می کرد، اما خب در هر صورت در لینوکس هک شدم. از طریق پسورد و این چیزام هک نشدم. حالا از چه طریقی هک شدم تنها خدا داند و هکر های این کاره!
سوم اینکه باید هر چند روز یه بار از کل دیتا بیسم یک بک آپ سالم بگیرم.
چهارم اینکه سال بعد باید برم رو سرور های خارجی.
پنجم اینکه هک خیلی بده! این دو روز واقعن بی خوابیو بدبختی کشیدم.
فعلن همین موارد بسه! انشاالله دوباره پر انرژی شروع می کنم.
کروم را دوست دارم، چون…
مهر ۱۳۸۷ - Application - محمدعرفان شمسیمن به صورت حرفه ای اطلاعی از برنامه نویسی ندارم. بر خلاف دوستان، در جایگاهی هم نیستم که بخوام در مورد برنامه هایی که غول های نرم افزاری جهان روشون کار کردن، اظهار نظر کنم. این پست و پست های مشابه این پست، صرفن تجربه ی من به عنوان یک کاربر و استفاده کننده است.
کروم گوگل رو دوست دارم، چون:
چون با PC من که 256 مگابایت بیشتر رم نداره با سرعت خارق العاده ای بالا میاد. سرعتی مشابه سرعت باز کردن برنامه ی Notpad.
چون نوار آدرس فوق العاده ای داره. کافیه چند حرف اول سایت رو بنویسی و اینتر کنی. بدون اینکه نیاز باشه سایت مورد نظر رو از لیست ظاهر شده انتخاب کنی. می تونی یک کلمه بنویسی و بازم بدون اینکه کار خاصی کنی اینتر کنی تا این بار واست تو گوگل جست و جو کنه.
چون با اینکه نسخه ی اولش هست، اما به صورت آزار دهنده هنگ نمی کنه. در واقع یه صفحه هم اگه واسه چند ثانیه گیر کنه، می تونی به راحتی با بقیه صفحه ها کار کنی.
چون مدیریت فایل های دانلود شده و مدیریت صفحات بازدید شده ی بسیار کارامدی داره. خیلی کارامد.
چون تقریبن به اندازه ی مانیتورت، فضا برای مرور سایت ها در اختیارت میذاره. طوری که دیگه تو هر برنامه ای میری دوست داری نوار ابزار و نوار منو و این مزخرفات رو حذف کنی تا مثل کروم، یک صفحه ی بزرگ داشته باشی.
چون وقتی یه تب جدید باز می کنی، قسمت Most visited توپی داره. همیشه سایت هایی رو لیست می کنه که واقعن بهشون نیاز داری. تازه تو همون تب جدید می تونی راحت به سایت های بوک مارک شدت دسترسی پیدا کنی.
و نهایتن چون سادست. شاید مهمترین دلیل دوست داشتنش همین باشه.
این مرورگر، شاید خیلی خوبی های دیگم داشته باشه. اما اینایی که نوشتم چیزایی بودن که واقعن از استفاده کردنشون لذت بردم. دوستانی که تو این پست از اظهار علاقه ی من به کروم، تعحب کرده بودند، شاید تا حدی جوابشونو گرفته باشن. فایرفاکس باعث شد اینترنت اکسپلرر رو کنار بذارم، و کروم باعث شد فایر فاکس رو ترک کنم. امیدوارم مثل اینترنت اکسپلرر، این ترک همیشگی باشد. اگر روزی به فایرفاکس برگشتم، بی رودربایستی به شما دوستان خواهم گفت.
نحوه ی راه اندازی یک شبکه خانگی - قسمت دوم
شهریور ۱۳۸۷ - Network - محمدعرفان شمسیماه قبل که قسمت اول راه اندازی یک شبکه ی خانگی رو نوشتم، قول دادم بعد از تکمیل شدن مبحث IP ها، این مطلب را تکمیل کنم. حالا که به لطف خدا مبحث IP ها در سه قسمت(1، 2، 3) به صورت کامل و حرفه ای توضیح داده شد، شرایط برای تکمیل مطلب فراهم شده است. این پست پاداش دوستانی که مطالب این مدت رو پیگیری کردند، می دهد و دوستانی که از نوشته های اخیر اطلاعی ندارند، باید زحمت مطالعه ی مطالب گذشته رو بکشند.
در قسمت اول، شما با نحوه ی کار کابل ها و متصل کردن سخت افزاری کامپیوتر ها به یکدیگر آشنا شدید. بعد از این که کامپیوتر ها را به یکدیگر متصل کردید، باید برای هر کامپیوتر IP در نظر بگیرید. این کار را در پست های قبل به صورت کامل توضیح دادم اما با این حال چند نکته را ذکر خواهم کرد.
ابتدا از کارت شبکه ی خود Properties بگیرید. در صفحه ی باز شده، بر روی Internet Protocol - TCP/IP کلیک کنید. در این قسمت می توانید آی پی را وارد کنید. بهتر است از IP های رنج C استفاده کنید. به عنوان مثال:
IP: 192.168.0.2
Subnet Mask: 255.255.255.0
Default Gateway: 192.168.0.10
به همین ترتیب به کامپیوتر های دیگر هم IP بدهید. توجه کنید اگر بیش از دو کامپیوتر دارید، باید از یک عدد سوییچ هم استفاده کنید. استفاده از سوییچ برای یک شبکه ی خانگی کار خاصی ندارد اما باید به یک نکته مهم توجه کنید. برای اتصال کامپیوتر به سوییچ، شما باید کابل ها را به صورت Straight ببندید. به این معنا که هر دو سر کابل باید از یک استاندارد پیروی کنند. چون خود سوییچ توسط مدار های داخلی، سیم های کابل را معکوس می کند. در این پست توضیحات کاملی در این باب داده شده است.
بعد از اینکه IP ها را ست کردید، شبکه ی شما تقریبن کامل شده است. اشخاصی که اطلاعی از شبکه ندارند بعد از اینکه به این مرحله می رسند، نمی دادند چه کار باید کنند. درست مانند کسی که به اینترنت وصل می شود اما بعدش نمی داند باید کجا برود و چه کار کند!
در این پست در مورد شبکه های Work Group مفصلن صحبت کردم. در واقع شما باید یک تنظیمات منطقی هم برای شبکتان راه اندازی کنید. اگر بخواهید شبکتان، Domain باشد که نیاز به یک کامپیوتر با سیستم عامل سرور دارید. و این مورد برای یک شبکه ی خانگی اصلن نیاز هم نیست. بنابراین باید شبکه ی خود را به صورت Work Group راه اندازی کنید. 
برای این کار اگر User name شما در ویندوز( همان اکانت ویندوز شما) دارای رمز عبور نیست، یک رمز عبور برای آن تعریف کنید. سپس بر روی My Computer راست کلیلک کرده و گزینه ی Manage را انتخاب کنید. از سمت چپ، بر روی Local Users and Groups کلیلک کنید و از سمت راست گزینه ی Users را انتخاب کنید. در این صفحه شما باید راست کلیلک کنید و New user را انتخاب کنید. در این قسمت باید Username و Password کامپیوتر(ها)ی دیگر را وارد کنید. به این صورت باید در هر کامپیوتر، اطلاعات مربوط به کامپیوتر های دیگر را وارد کنید. اگر تعداد کامپیوتر زیاد است، می توانید برای همه ی کامپیوتر ها یک نام و یک رمز عبور در نظر بگیرید که کمی کارتان راحت تر شود. یکی از مشکلات این شبکه ها همین نبود مدیریت مرکزی است.
بعد از این کار به My network places که از My computer هم قابل دسترسی است بروید. منابع سایر کامپیوتر ها نمایان شد، مگه نه؟! خسته نباشید. اما حالا اگر بخواهید یکی از پوشه هایتان را به اشتراک بگذارید، باید چه کنید؟ فکر اینجایش را کردید؟!
ابتدا به Folder Option بروید. در تب View، به پایین صفحه بیایید و تیک گزینه ی Use simple file sharing را بردارید. سپس از هر پوشه یا درایوی که مایل به اشتراک گذاشتن آن هستید، Properties بگیرید و از تب Sharing، گزینه ی Share this folder را انتخاب کنید. به همین راحتی!
اگر یک بار این مسیر ها را طی کنید، پی خواهید برد که کاری ندارد. اگر بخواهیم به صورت کلی یک نگاه به مراحل ذکر شده بیاندازیم باید بگوییم:
ابتدا کامپیوتر ها را کابل به یکدیگر وصل کنید. به هر کامپیوتر یک آی پی بدهید. نام هر کامپیوتر به همراه رمز عبور آن را در تمامی کامپیوتر تک تک وارد کنید و سپس لذت ببرید!
هر چند اگر شخصی یک بار این کار ها را انجام دهد و شما ببینید، یاد خواهید گرفت، اما در این پست ها سعی کردم به صورت حرفه ای و با بیان تمام نکات ریز و درشت به همراه دلایل انجام هر کار، شما را با این کار آشنا کنم. امیدوارم مفید واقع شده باشد.

