گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

دسترسی به فایل‌های iphone از طریق اوبونتو (لینوکس)

نویسنده:
2 ژوئن 18

امروز چک کردم و حجم فایل‌های گوشیم زیاد شده بود و میخواستم بریزمشون روی هارد اکسترنال ، خیلی شیک USB گوشی را زدم به لپ تاپ و یک دیالوگ اومد که به این کامپیوتر اعتماد داری ؟! بعد از زدن Trust از توی Filemanaer اومدم Monted Device که به نام IPhone بود را باز کنم و در نهایت تعجب خالی بود.

بعد از بررسی LOG ها و مطالعه روی اینترنت متوجه شدم یک ابزاری هست به نام ifuse که به فایل سیستم fuse روی IOS Device ها دسترسی میده. خودش و ملحقات روی Repository بود و با خوشحالی نصبش کردم و با دستوراتی که در ادامه میگم Pair هم شد ولی تا اومدم Mount بگیرم خطای زیر را میداد:

Failed to connect to lockdownd service on the device.Try again. If it still fails try rebooting your device.

بعد از بررسی بیشتر متوجه شدم نرم افزار‌های مورد نیاز نصب شده از روی Repository بروز نیستن و تغییراتی از نسخه ۱۰ IOS به بالا بوده که نرم‌افزار نصب شده امکان برقراری ارتباط را پیدا نمیکنه و باید از Source نصب کنم !!!

خوب یکی دو تا برنامه نبود و باید کلی زمان میگذاشتم که خوشبختانه با کمی جستجو متوجه شدم یک انسان با فرهنگ کل پروسه را توی Github توضیح داده (نسخه PDF آموزش) و با انجام دادن کل مراحل از جمله بخش bashrc. که خیلی مهمه (به زحمت ۵ دقیقه طول میکشه) به راحتی با چند تا دستور زیر کار راه افتاد.

حتماً یادتون نره وقتی گوشی را به Usb میزنید خود IOS ازتون میپرسه به این سیستم اعتماد دارین که باید Trust را بزنین.

حالا با دستورات زیر گوشی را pair و mount میکنیم :

idevicepair pair
mkdir -p ~/usr/mnt
ifuse ~/usr/mnt/

حالا میتونین با Filemanager محبوبتون فایل‌ها را منتقل کنین و برای unmount بزنین:

fusermount -u ~/usr/mnt

به همین راحتی بدون نیاز به ویندوز Storage گوشی iphone شما قابل دسترس هست.

اخطار جدید در apt-get update که بهش بر نخورده بودم

نویسنده:
8 جولای 15

بر خلاف ویندوز که من هیچ‌وقت سیستم را Update نمیکردم حالا یا کلاً مایکروسافت به خاطر Crack ی بودن ویندوز اجازه نمیداد یا کلاً Update های سنگین و در مواردی همراه با Bug و دردسر داشت اما توی لینوکس خیلی کم اتفاق میفته که بیش از ۳ روز بگذره و من مخازن را Update و Upgrade نکنم.

امروز که داشتم درخواست Update مخازن را میدادم در انتها با یک اخطاری مواجه شدم که مربوط به PPA نرم‌افزار Opera بود :

W: GPG error: http://deb.opera.com stable Release: The following signatures were invalid: KEYEXPIRED 1435908620 KEYEXPIRED 1435908620 KEYEXPIRED 1435908620 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 63F7D4AFF6D61D45

از خطا پیداتست که مشکلی برای رمزگشایی این Package به وجود اومده و کلید مورد نظر منقضی شده. بعد از کمی جستجو متوجه میشم که باید کلید جدید را برای ۶۳F7D4AFF6D61D45 با استفاده از دستور زیر بگیرم :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 63F7D4AFF6D61D45

بعد از واردسازی موفقیت آمیز کلید حالا میتونم دوباره مخازن را بروز کنم.

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

تبریک سال نو میلادی و مروری بر مهمترین خبرهای دنیای سورس باز و لینوکس

نویسنده:
1 ژانویه 15

امروز یکم ژانویه ۲۰۱۵ میلادی هست و من سال نو میلادی را به همه هموطنان مسیحی کشورم تبریک میگم و امیدوارم سال بسیار خوبی را در پیش داشته باشند و فراموش نکنند که ایران با همه قومیت ها ، مذاهب و فرهنگ هاش زیبا و دوست داشتنیه.

سال میلادی ۲۰۱۵

اما در ادامه قصد دارم به برخی از مهم‌ترین خبر های دنیای سورس باز و لینوکس در سال میلادی که گذشت اشاره کنم :

۱. شاید یکی از شک آور ترین اتفاقات دنیای سورس باز مشکل امنیتی OpenSSL به نام Heartbleed بود که سایت‌های بسیاری را درگیر خودش کرد از جمله سایت خیلی از بانک های کشور خودمون و نشون داد فقط چون یک محصول سورس باز هست معنیش این نیست که امنه و حتماً باید توسط افراد متخصص بیشتری مورد بررسی قرار بگیره.

۲. همونطور که میدونیم GPL یا مجوز استفاده عمومی که کپی نرم‌افزار های رایگان را در چارچوب یکسری قوانین آزاد کرده یکی از شناخته ترین و پر استفاده ترین مجوز های حقوق کپی رایت هست. در سال ۲۰۱۳ شاهد بودیم که بیش از ۷۷ درصد از پروژه های GitHub بدون هیچ مجوزی به صورت رایگان منتشر شده‌اند و این روند در سال ۲۰۱۴ هم ادامه پیدا کرد که نتیجه‌ای جز بروز شکایات حقوق در بر نخواهد داشت.

۳. در سال ۲۰۱۴ همه منتظر حضور گوشی های هوشمند با سیستم عامل اوبونتو و کنسول بازی قدرت گرفته از موتور بازی Steam بودند که محقق نشد. گوشی های هوشمند اوبونتو در فوریه ۲۰۱۵ به بازر عرضه می‌شوند ولی گویا نباید انتظار عرضه کنسول های بازی Steam را در سال ۲۰۱۵ داشته باشیم.

۴. ساخت و انتشار نرم‌افزار های آزاد در سال ۲۰۱۴ رشد بسیار خوبی داشته. از پروژه های ابری مثل Docker و OpenStack گرفته تا نسخه سورس باز MySQL که توسط Facebook عرضه شده ، کد های متن باز پروژه های ناسا ، ویرایشگر Atom تحت مجوز MIT توسط GitHub ، ابزار Encrypt کردن ایمیل و موتور PDF مرورگر Chrome توسط گوگل و از همه شُک آور تر مربوط به سورس باز شدن Net. توسط مایکروسافت بود.

۵. در سالی که گذشت شاهد اولین قدم کشور انگلستان برای مهاجرت از MS Office به نرم‌افزار های سورس باز با اعلام کردن ODF به عنوان فرمت استاندارد اسناد بودیم. فرانسه هم به Open Government Partnership پیوست و شهر های ژنو ، تولوز و لس آنجلس گام های خوبی را در مهاجرت به سیستم‌ عامل ها و نرم‌افزار های سورس باز برداشتند.

۶. سخت‌افزار های باز هم از دو سال پیش با تولد Raspberry PI که تا الان ۲٫۵ میلیون قطعه در قالب Credit-Card Sized Computer ازش فروخته شده و امسال هم مدل +B عرضه شده و فعالیت‌های گسترده Kano و Arduino و غیره مژده آینده خوبی را برای Open Hardware میده.

۷. در آخر هم به سالگرد های مهم میپردازیم. امسال چهار سالگرد ده سالگی برای پروژه OpenStreetMap ، سرویس دهنده وب NGINX ، سیستم عامل محبوب Ubuntu و مرورگر خوب Firefox داشتیم که امیدوارم با قدرت بیشتر به کارشون ادامه بدهند. Creative Commons دوازده سالگیش را جشن گرفت و بنیاد نرم‌افزار آپاچی هم ۱۵ سال رهبری و نو آوری در جامعه سورس باز را گذراند.

نصب و حذف برنامه ها در Ubuntu

نویسنده:
18 سپتامبر 14

معمولاً خیلی‌ها که در Ubuntu تازه کار هستند برنامه‌ها را از Software Center نصب و حذف میکنند و شاید خیلی در مورد دستورات نصب و حذف برنامه‌ها یا پکیج ها نمیدونند. اما مواقعی پیش میاد که ما میخوایم برنامه‌ها را با دستوارت نصب یا حذف کنیم که از apt یا Advanced Package Tool استفاده میکنیم ، توی این پست از دو تا دستور این پکیج یعنی apt-cache و apt-get استفاده میکنیم.

Ubuntu و دیگر توزیع‌های لینوکسی از Repository ها یا مخازن برای نگهداری برنامه‌ها و در اشتراک گذاری اونها برای کاربران استفاده میکنند. نمیخواهم در مورد مخازن صحبت کنم ولی مثلاً اگه بخواهیم توی مخازنی که سیستم ما میشناسه دنبال برنامه یا package ی بگردیم از دستور زیر استفاده میکنیم :

apt-cache search [regex]

مثلاً میشه دنبال پکیج های مرتبط با php گشت :

apt-cache search php

حالا که پکیج مورد نظر را پیدا کردیم و میخوایم نصبش کنیم از دستور apt-get استفاده میکنیم :

apt-get install [package name]

پس جستجوی پکیج ها و نصبشون اصلاً کار سختی نیست. اما ممکنه پس از مدتی بخواهیم پکیجی را حذف کنیم. این را باید بدونیم که هر پکیجی شامل سه وابستگی هست ، خودش ، فایل‌های تنظیمات یا همون config و dependency ها یا پکیج های وابسته. پس ما دستوری نیاز داریم که خود پکیج و تنظیماتش را حذف کنه و dependency های اضافه نصب شده یا همون Orphaned Package ها را هم حذف کنه. شما با این دستور میتونید این کار را انجام بدین :

sudo apt-get --purge autoremove [package name]

این اطلاعات برای کسی که در جستجوی این مطلب باشه مفید هست ولی باید در مورد دستورات بیشتر بخونید تا بتونین در جای درست ازشون استفاده کنین. همیشه از دستور man برای اطلاعات بیشتر در مورد دستورات استفاده کنید.

فریز (Freeze) شدن یا هنگ (Hang) کردن اوبونتو (Ubuntu)

نویسنده:
28 ژوئن 14

یکی از موضوعاتی که کاربران لینوکس همیشه تبلیغ میکنند این هست که Linux مثل ویندوز هنگ نمیکنه و فریز نمیشه. اما وقتی شما از لینوکس استفاده میکنید متوجه میشین که مثلاً برنامه‌ای که داشتین باهاش کار میکردین از کار افتاد یا علاوه بر از کار افتادن برنامه ، Launcher یا همون نوار ابزار Desktop هم جواب نمیده و فقط Mouse کار میکنه و یا فقط keyboard کار میکنه یا در حالتی که تا حالا برای من توی لینوکس پیش نیومده کلاً سیستم هنگ کرده ! در اکثر موارد غیر از مورد آخر میشه سیستم را به حالت فعال و سلامت بر گردوند چون بر خلاف ویندوز در اینجا خود سیستم عامل هنگ نکرده و یک یا چند برنامه براشون مشکل پیش اومده و سیستم عامل دستورات ما را اجرا میکنه.

حالا میخوام توضیح بدم برای هر کدوم از این حالت‌ها توی ubuntu چیکار کنیم :

از کار افتادن پنجره برنامه‌ای که باهاش کار میکنیم
در این حالت اول از علامت X روی پنجره استفاده کنید که در بهترین نتیجه خود Ubuntu یک پیام مبنی بر Force Quit میده و با کلیک بر روی اون برنامه بسته میشه. اگه نتیجه نداد باید از دستورات ترمینال استفاده کنیم. در این حالت با استفاده از Ctrl+Alt+T ترمینال را باز میکنیم و با استفاده از دستور top شماره proccess id برنامه مورد نظر را پیدا میکنیم و با دستور :

kill [process id] 

برنامه را متوقف میکنیم در صورت عدم موفقیت از دستور زیر استفاده کنید :

kill -HUP [process id]

و در صورت عدم بسته شدن از دستور :

kill -9 [process id]

استفاده کنید.

از کار افتادن desktop و کار کردن کیبورد
در این حالت یک یا چند برنامه با استفاده از cpu و ram بالا باعث از کار افتادن رابط کاربری شده‌اند که با زدن کلید Ctrl+Alt+F1 (و Login در صوت لزوم) میتونیم با دستور top همه proccess ها را ببینیم و proccess هایی که استفاده زیادی از منابع میکنند را با همون دستورات kill از بین ببریم. ولی اگه باز هم نتیجه نداد با دستور زیر به صفحه Login بر میگردیم :

sudo service lightdm restart 

از کار افتادن همه چیز از جمله Keyboard
در این حالت کلید های زیر را پشت سر هم میزنیم :

Alt + SysReq(PrintScr) + REISUB

توجه : لازم نیست REISUB را با حروف بزرگ تایپ کنید و اصلاً شما چیزی روی صفحه نمیبینید. در برخی کیبورد ها هم SysReq را روی کلید Print Screen نمینویسه.

اگه این کار هم نتیجه نداد باید با دکمه power یا reset کامپیوتر را سخت افزاری دوباره راه اندازی کنید.

افزایش سرعت بروز رسانی بسته ها در اوبونتو (Ubuntu)

نویسنده:
10 آوریل 14

یکی از موضوعاتی که از ابتدای نصب ubuntu من را اذیت میکرد مشکل سرعت پایین update manager بود. سرعت دانلود بسته ها خیلی خیلی پایین بود. به خاطر اینکه من زندگیم پشت کامپیوترم میگذره و هر روز چند تا بسته را بروز میکردم این موضوع خیلی هم روی اعصاب نبود تا اینکه امروز بعد از تعطیلات عید و حجم بالای update که توی این ۲۰ روز برای سیستم به وجود اومده بود تصمیم گرفتم بررسی کنم که چطور میشه سرعت بروزرسانی را بالا برد.

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

با یک جستجوی ساده به جواب میرسیم و اون هیچ چیز نیست غیر از apt-fast که یک Shellscript Wrapper برای apt-get هست و دانلود ها را با aria2c یا axel انجام میده.

از اونجا که این اسکریپت برای افزایش سرعت از aria2c یا axel و … استفاده میکنه ، بهتره که خودتون aria2c را قبلش (یا حتی بعدش) نصب کنین :

sudo apt-get install aria2c

برای نصب خود apt-fast از دستورات زیر استفاده میکنیم :

sudo add-apt-repository ppa:apt-fast/stable
sudo apt-get update
sudo apt-get install apt-fast

نکته : در زمان نصب ممکنه یک دیالوگ براتون باز بشه و بپرسه مثلاً با چند slot دانلود کنه که میتونید پیش‌فرض را قبول کنید یا خودتون یک عدد بدین. یا ممکنه بپرسه از aria2c استفاده کنه یا از axel که خوب انتخاب میکنید. یا حتی ممکنه بپرسه apt-get را استفاده کنه (کاربران ubuntu) یا aptitude (کاربران دبیان) که باید درست انتخاب کنید ! (البته من توی ۱۲٫۰۴ که نصب کردم فقط تعداد دانلود را پرسید). اگه به هر دلیلی خواستین دوباره این دیالوگ را از ابتدا باز و تنظیمات را انتخاب کنین از دستور زیر استفاده کنید :

sudo dpkg-reconfigure apt-fast

حالا که نصب شد به راحتی با دستورات زیر ابتدا update و سپس upgrade میکنیم :

sudo apt-fast update
sudo apt-fast upgrade -y

نکته : y- به این معنی هست که همه را بدون سؤال از شما دانلود کنه.

توجه داشته باشین که upgrade کرنل شما را به روز نمیکنه و برای این کار باید از دستور زیر استفاده کنید :

sudo apt-fast dist-upgrade

نکته : y- نزدم چون این دستور ریسک داره و میخوام بدونم داره چی کار میکنه. معمولاً فقط برای به روز رسانی کرنل استفاده میکنم (البته اگه با دستور man apt-fast دستور استفاده را بخونید بهتر متوجه میشین).

پی‌نوشت: از اونجا که ممکنه آدرس های مخازن (مخصوصا غیر رسمی ها) تغییر کنند. اگه به مشکل خوردین از github منتشر کننده کمک بگیرید.

مهاجرت من از ویندوز به لینوکس

نویسنده:
14 مارس 14

من از زمانی کامپیوتر داشتم که سیستم عامل اصلی Dos 6.22 بود و Windows 3.1 هم گاه مورد استفاده قرار میگرفت و البته نه به عنوان سیستم عامل اصلی ، به این خاطر که از توی Dos اجرا میشد. اولین باری که با ویندوز ۹۵ آشنا شدم هم بر میگرده به یک مهمانی خانوادگی و کلاس گذاشتن یکی از اقوام که جایی براش ویندوز ۹۵ نصب کرده بودند. از اونجا که آدم تجربی و چالشی هستم تصمیم به نصب ویندوز ۹۵ گرفتم و با هر مصیبتی بود اون را نصب کردم و تفاوتش با Windows 3.1 مانند تفاوت ژیان با بنز بود. این اتفاق سال ۹۷ برای من افتاد و به مرور زمان هم با آمدن نسخه های جدید تر ویندوز به اون ها کوچ میکردم.

مهاجرت از ویندوز به لینوکس

رغبت من به استفاده از لینوکس از اونجا شروع شد که دو سالی بود از Php بجای Asp .Net استفاده میکردم. به اندازه‌ای Php و تنظیمات htaccess و سرور Apache و MySQL در بستر سرویس دهنده های لینوکسی در افزایش کیفیت و بهره وری و پشتیبانی از پروژه ها نسبت به ترکیب ویندوز و IIS و Asp .NET نمایان، آشکار و غیر قابل انکار بود که تصمیم گرفتم در کنار ویندوز یک سیستم عامل لینوکس نصب کنم.

با تحقیقاتی که توی گوگل انجام دادم تصمیم به نصبت Ubuntu در کنار ویندوز گرفتم و با توجه به سابقه وحشتناکی که از نصب Red Hat در سال‌های دور تر داشتم به صورت قدم به قدم و از روی توضیحات یک وبلاگ خوب ، نصب را انجام دادم و شروع به کار کردم. شاید اگه قصد از نصب لینوکس برای من اینترنت گردی ، فیلم دیدن ، گوش دادن به موسیقی و تایپ اسناد متنی بود Ubuntu به شدت راحت و ابتدایی بود. بدون نیاز به استفاده از Terminal و آشنایی با مفاهیم لینوکس و سیستم عامل های مبتنی بر POSIX. اما مشکل اینجا بود که من یک Developer بودم و باید سرویس دهنده های مورد نیازم را نصب و راه اندازی میکردم و یک محیط توسعه هم برای کد نویسی انتخاب میکردم و قطعاً Gedit در قیاس با Dreamweaver گزینه مناسبی نبود. در ضمن باید نرم افزاری هم برای جایگزین کردن Photoshop پیدا میکردم تا بتونم طراحی های سایت‌ها را انجام بدهم.

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

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

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

تاریخ دقیق اون روز خاص در نظرم نیست (البته در اسفند ماه بود) ولی امروز جشن یک سالگی استفاده از Ubuntu و سیستم عامل لینوکسی را خواهم گرفت و تلاش خواهم کرد این سیستم عامل را از طریق این وبلاگ و در مراوده های کاری و خانوادگی به همه معرفی کنم.