کسب درآمد از نرم‌افزار آزاد و متن‌باز – بررسی مدل‌های کسب و کار

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

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

من چند مدل برای کسب درآمد از نرم‌افزار آزاد، به ذهنم رسید که همه اونها رو در این مطلب برای شما موردی توضیح خواهم داد.

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

در این روش، افرادی که در جامعه فعالند، به سایر پروژه‌ها، نرم‌افزارها و یا کمپین‌ها کمک مادی و معنوی می‌کنند. برای مثال، برای افرادی که نیازمند تامین هزینه سرور هستند، پول واریز می‌کنند تا سرویس آزادشون نخوابه. برای افرادی که نرم‌افزاری رو توسعه میدند پول واریز می‌کنند که توسعه ادامه دار بشه. این روش، روش خوبیه و خیلی از نرم‌افزارها عمده درآمدشون از کمک‌هاییه که از طرف جامعه بهشون میشه.

اما یک مشکل بزرگی اینجا هست و اون اینه شاید جامعه دلش نخواد کمک کنه. و همیشه باید این فرض رو در ذهن خود داشته باشید. هیچ تعهدی از طرف جامعه برای شما نیست که بهتون پول بدند، در ترجمه اثرتون سهیم باشند یا براتون پول رکوئست بفرستند و … . بنابراین نمیشه این روش رو «مدل کسب و کار» دونست. اما میتونه یک روش خوب برای تامین حداقلی مالی یک پروژه باشه.

در ایران این روش چندین بار تست شده. بعضی پروژه‌ها به خوبی تونستن به درآمدی برسن اما اکثریت اونقدری که لایقشن، کمک دریافت نمی‌کنند. شاید مسائل شخصی و کلا حواشی جامعه میتونه در این قضیه دخیل باشه.

روش دوم : شرکت‌هایی که به صورت تخصصی در این حوزه کار می‌کنن

در دنیا شرکت‌هایی هستند که به صورت تخصصی روی نرم‌افزارهای آزاد و متن باز کار می‌کنند. نمونه خیلی در دسترسش، میتونه ردهت باشه. نمونه دیگرش هم کنونیکال. نمونه‌های زیادی داریم. این شرکتها از طریق فروش پشتیبانی، سرویس و راهکار مبتنی بر محصولات و استراتژی‌های خودشون و صدالبته سخت‌افزار (مثل iXSystems که سخت‌افزارهای NAS مبتنی بر BSD می‌فروشه) کسب درآمد می‌کنن.

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

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

روش سوم: کمک شرکت‌های بزرگ به پروژه‌های آزاد

ما یک سری شرکتی در هر فضایی داریم که اصطلاحا بهشون «تک‌شاخ» گفته می‌شه. تکشاخ‌ها در واقع همون غولهایین که شما هرروز اسمش رو می‌شنوید. اپل، مایکروسافت، گوگل، آی‌بی‌ام و … . این شرکتها، بعضا از پروژه‌های آزاد استفاده می‌کنند. برای مثال اپل برای هسته مک‌اواس و آی‌اواس از داروین استفاده می‌کنه که مبتنی بر FreeBSD عه. همیشه هم کامیت‌هایی روی این پروژه هست که ایمیل apple.com باشن.

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

این شرکتها، سیاستشون اینه که هم کمک جامعه کاربری رو دارند (یعنی پول کمتری خرج می‌کنند)، هم مشکلاتشون سریع‌تر رفع میشه و هم به موقعش مقدار زیادی پول و سرمایه وارد این قضیه می‌کنند.

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

روش آخر : یکی مجانی و آزاد، یکی پولی و بسته.

این هم یکی دیگر از روش‌هایی که به ذهنم رسید که بگم. در حال حاضر، خیلی از پروژه‌ها هستند که یک نسخه اوپن سورس دارند. مثل Metasploit یا NGINX . این‌ها کاری که میکنن اینه که نسخه اوپن رو رایگان ارائه میدن و کلی کمک هم از جامعه دریافت می‌کنند و یک نسخه با پشتیبانی تجاری و … دارند که معمولا کدش عمومی نیست (از اونجایی که شخصا هیچ نرم‌افزاری به این شکل نخریدم، نمی‌تونم بگم که آیا کد اون نسخه رو میدن به خریدار یا نه) و بابت دریافتش و همچنین دریافت پشتیبانیش، شما نیازمند پرداخت پول خواهید بود.

تا الان در کشور خودمون ندیدم که سرویسی چنین کنه. اما به نظر، ایده جالبی میاد برای کار کردن در این حوزه.

جمع‌بندی

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

Share

کاپریس لینوکس نسخه ۱.۰ پایدار «اتمورا» ریلیز شد.

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

در اسفند ۹۸، دوست خوبی به نام دانیال بهزادی (که اسمی آشنا برای اهالی نرم‌افزار آزاد و همچنین دوستان لینوکسیه) با من تماس گرفت و پیشنهاد کاری رو داد. اون کار، تهیه یک توزیع لینوکس با حمایت یک شرکت بود و خب من اولش یکم نسبت بهش تردید داشتم اما بعدتر، قبول کردم و سراغ کار رفتیم. در حین این کار، من فهمیدم به یک «زمین بازی» نیاز دارم. همون پروسه‌ای که برای تولید توزیع لینوکسی که شرکت بابتش هزینه می‌کرد رو بابت یک پروژه شخصی طی کردم و هرچی به نظرم این وسط ممکن بود مشکل‌ساز شده باشه رو یه جا یادداشت می‌کردم که باگها دربیان.

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

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

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

بعد از اون، به سرم زد که کمی به BSD ها نزدیکش کنم. به همین خاطر APT که سیستم نصب بسته‌های دبیانه رو نگه داشتم، سیستم pkgsrc که یک سیستم مدیریت پورت در NetBSD عه (و تقریبا روی هر سیستم‌عامل دیگری هم امکان اجرا شدن داره، البته با کمی انگولک شدن) رو برای این توزیع پیاده‌سازی کردم.

تا اینجا همه چی خوب بود، به سرم زد که systemd هم یه جوری ازش حذف کنم! کمی تحقیق و بررسی کردم و دیدم به همین سادگی‌ها نیست و یه سری ملزومات خاص داره. اما به سرم زد که سیستم rc.d رو از همون NetBSD حداقل برای سرویس‌هایی که از طریق pkgsrc نصب میشن پیاده کنم.

و خب به همین شکل، این قضیه پیشرفته و پیشرفته‌تر شد تا رسید به کاپریسی که ۱ آگوست ۲۰۲۰ معادل ۱۰ مرداد ۱۳۹۹ منتشر شد.

لینک در وبگاه خبری اصلی

از اونجایی که احتمالا شما هم کنجکاو شدید بیشتر ازش بدونید، دیگه توضیحات اضافه رو اینجا نمی‌دم. بلکه شما رو به وبسایت خود پروژه کاپریس راهنمایی می‌کنم :

http://capricelinux.org/2020/08/01/Caprice-Linux-1.0-STABLE-release-notes.html

 

Share

به روز رسانی اوبونتو از نسخه های LTS به STS

توزیع اوبونتو، معمولا در دونسخه ارائه میشه. نسخه های «پشتیبانی طولانی مدت» یا همون LTS (مخفف Long Term Support ) که اگر اشتباه نکنم هر کدوم تا پنج سال، پشتیبانی دریافت میکنند. این پشتیبانی به معنای پشتیبانی از سمت کنونیکال (شرکت سازنده این توزیع)، دریافت آپدیت های امنیتی و همچنین به روز شدن مستندات توزیع است.

نسخه های STS که طبق روتین ارائه اوبونتو هر شش ماه یه بار میان، قبلا دو سال پشتیبانی می‌شدند ولی مثل این که الان این پشتیبانی کمتر شده و همون شش ماه (یا یک سال، دقیقا نمیدونم و یادم نیست) پشتیبانی رو دریافت میکنن. این نسخه ها به قول معروف «روی لبه تکنولوژی حرکت میکنند» و معمولا تکنولوژی های جدیدی رو در خودشون جای دادن.

هر کدوم از این نسخه ها، مزایای خودش رو داره. خیلی از افراد رو دیدم که با هر آپدیتی، سریعا سیستم عامل خودشون رو آپدیت میکنند و خیلی ها هم ترجیح میدند دو سال یک بار، نسخه های LTS رو آپدیت کنند و یا حتی کل پنج سالی که برای LTS ها پشتیبانی در نظر گرفته شده، روی اون بمونن. اما برگردیم به دسته اول!

فرض کنیم شما آخرین اوبونتوی LTS (در حال حاضر ۱۸.۰۴ ) رو نصب کردید و میخواهید به STS جدید (در حال حاضر ۱۹.۰۴) به‌روز رسانی کنید. برای این کار، نیاز به چند مرحله داریم. اول لازمه که update-manager رو نصب کنیم :

sudo apt install update-manager-core

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

گام دوم، اینه که به آپدیت منیجر، بگیم که به جای lts در نسخه های normal برامون دنبال ریلیز جدید بگرده. فقط کافیه این فایل رو با یک ویرایشگر متن باز کنیم (البته ترجیحا ویرایشگرهای خط فرمان؛ چون دسترسی ریشه نیاز داریم) :

/etc/update-manager/release-upgrades

سپس در این فایل، شما احتمالا این خط رو می‌بینید :

Prompt=lts

با تغییر مقدار متغیر prompt به normal ، شما به آپدیت منیجر گفتید که در نسخه های STS به دنبال ریلیز جدید بگرده. بعد از این که عبارت lts رو با normal جایگزین کردید، کافیه فایل رو ذخیره کرده، ببندید و در ترمینال تایپ کنید :

do-release-upgrade

و جایی هم نیاز به پسورد داشته باشید، این دستور ازتون دریافتش خواهد کرد.

این راه حلی بود که خودم دقیقا استفاده کردم برای آپدیت به ۱۹.۰۴. نمیدونم قبلتر کسی در وب فارسی توضیحش داده یا نه، ولی خب امیدوارم که به کارتون بیاد 🙂

Share

دوستی با محصول جدید اتودسک

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

شرکت اتودسک که پیش تر با محصولاتی مثل اتوکد و مایا شناخته شده بود، الان اومده محصولی به اسم 123D Circuits رو ارائه کرده که با ساختن یک اکانت و عضویت درش، میتونید به راحتی آزمایشات الکترونیکی خودتون رو انجام بدید.

این هم نمونه مداری که بستم، یک آی سی 7408 هست که داره دو ورودی رو با هم AND میکنه :

کافیه روی start simulation کلیک کنید و بعد با کلید ها بازی کنید تا تغییرات توی ولت متر و LED قرمز رنگ روی برد بورد رو شاهد باشید.

Share

نوشتن یک سیستم عامل ساده – قسمت اول

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

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

خیلی خوب، بذارید اول ببینیم چه چیزهایی باید نصب کنیم؟

  1. یک ادیتور متنی، که معمولا همراه سیستم عاملتون نصب میشه. من خودم از nano و gedit و atom استفاده میکنم، و توصیه میکنم شما هم یکی از این ادیتورهای ساده رو انتخاب کنید تا درگیر پیچیدگی های vim و … نشید.
  2. یک اسمبلر که من اینجا از nasm استفاده میکنم، و nasm توی مخازن اوبونتو و دبیان و … موجوده. اگر هم نبود هم باینری و هم سورسش موجوده.
  3. یک مجازی فوق العاده ساده هم نیاز داریم. در واقع مجازی سازی که برای راه انداختن و بوت کردن یه باینری ساده، اذیتمون نکنه. من از qemu استفاده میکنم. حالا شما میتونید از bochs یا VirtualBox یا هرچیز دیگری استفاده کنید  و انتخاب خودتونه.

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

الان کافیه که با اراده قوی، یک فایل به اسم my16bitos.asm باز کنید و شروع کنید کد زدن. خب باید چی بنویسیم؟ یکی از نکات مهمی که اینجا هست اینه که ما نمیتونیم از روتین ها یا وقفه های سیستم عامل استفاده کنیم و نیاز داریم از بایوس استفاده کنیم! دقیقا چون بایوس MBR رو میخونه و از این داستانا که موقع بوت شدن داریم. پس کد ما چنین چیزی میشه :

کد   
MOV AH, 0x0e
MOV AL, 'A'
INT 0x10
JMP $
times 510-($-$$) db 0
DW 0xaa55

خب این شد کد ما. در واقع ما یک سیستم عامل (یا بهتر بگم بوت سکتور) ۱۶ بیتی نوشتیم. که البته این خیلی سادست و در قسمت بعدی پیچیده ترش خواهیم کرد. این سیستم عامل ۶ خطی (شاید به خاطر پیشرفت علوم کامپیوتر و اسمبلر ها و پردازنده ها، الان این کد شش خطه، و ممکن بوده زمانی یه مهندس کامپیوتر یا صرفا یک علاقمند به علوم رایانه رویاش نوشتن چنین چیزی بوده!)، وقتی بوت شه حرف A رو به ما نمایش میده. حالا با چه اتفاقاتی؟

خط اول که میگه عدد شانزده شانزدهی 0x0e رو در هشت بیت بالایی رجیستر AX قرار بده، یکی از روتین های بایوسه. در واقع بایوس میفهمه که بوت سکتور، این برنامه ست. خط دوم میگه کرکتر A رو در هشت بیت پایینی همون رجیستر قرار بده. در خط سوم ما یک وقفه (توجه کنید INT توی اسمبلی مخفف Interrupt یا «وقفه» است نه Integer .) ایجاد کردیم. وقفه 0x10 در بایوس برای نمایش کرکتر ها به کار میره (البته توی روتین 0x0e). در خط چهارم با استفاده از دستور پرش، برنامه رو تا ابد باز نگه داشتیم، که وقتی سیستم عامل بوت میشه همچنان روشن بمونه. یکی از سخت ترین خط ها از نظر درک، خط پنجمه. خط پنجم چی کار میکنه؟ ۵۱۰ بایت اول دیسک (این سیستم عامل میتونه از روی یک فلاپی یا هارد دیسک یا هر دیوایس دیگری بوت شه) رو با صفر پر میکنه و حالا چرا؟ چون ما میخوایم در دوبایت نهایی، عدد جادویی 0xaa55 رو قرار بدیم که بوت سیستم عامل بهش وابسته است.

بسیار خوب، تا اینجای کار فهمیدیم که این کد چی کار میکنه. حالا با nasm کد رو اسمبل میکنیم تا به یه فایل قابل بوت شدن برسیم :

کد   
nasm -f bin -o my16bitos.bin my16bitos.asm

اکنون در دایرکتوری جاریتون، باید فایل my16bitos.bin رو ببینید. کافیه تا با qemu اجراش کنید به این شکل :

کد   
qemu-system-i386 my16bitos.bin

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

پس تا مطلب بعدی خداحافظ!

Share

ساخت توزیع لینوکس غیرمستقل بدون نیاز به اسکریپت

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

کد   
(CD ROOT)
|-------+casper
|	|-------filesystem.${FORMAT}	
|	|-------filesystem.manifest
|	|-------filesystem.manifest-desktop
|	|-------vmlinuz
|	|-------initrd.img
|
|-------+boot
|	|--------+grub
|	|	 |--------grub.cfg
|	|
|	|-------memtest86+
|
|--------md5sum.txt

 

توی دیسک اوبونتو، همه چیز به شکل بالا چیده شده! همه برنامه ها و کتابخانه ها (و به طور کلی کل سیستم عامل) داخل پوشه کسپر قرار دارند، و همچنین ملزومات بوت شدن سیستم عامل، توی boot . برای لایو بوت شدن هم از تکنولوژی AuFS استفاده میشه (بعدا در موردش مطلبی خواهم نوشت). اما اگر بخوایم ریز تر شیم، بازهم بهتره به توضیحاتی که سازنده های اوبونتو دادن توجه کنیم :

کد   
/casper/filesystem.${FORMAT}: This is the container of the linux filesystem we are going to copy from our harddisk. It is usually a compressed filesystem like squahsfs.
 
 
 
    /casper/filesystem.manifest: This file is optional. You only need it if you decide to include the Ubuntu installer in the CD. The purpose of this file will be explained later.
 
 
 
    /casper/filesystem.manifest-desktop: This file is optional. You only need it if you decide to include the Ubuntu installer in the CD. The purpose of this file will be explained later.
 
 
 
    /casper/vmlinuz: The linux kernel. This is copied form the linux filesystem.
 
 
 
    /casper/initrd.img: the initramfs that contain the customizations necessary for the live CD/DVD.
 
 
 
    /boot/grub/grub.cfg: File containing boot options for the live CD/DVD.
 
 
 
    /boot/memtest86+: Optional file used to test the RAM of the machine form the live CD/DVD.
 
 
 
    /md5sum.txt: Optional file containing checksums for all the files in the CD.

پس اسکریپت هایی که برای «ریمسترینگ» استفاده میشن، این کارها رو میکنند و چنین برنچی رو برای ما میسازند. خب برای ساخت چنین چیزی باید چه کار کنیم؟ قبل تر در مورد ساخت توزیع مطلب نسبتا زیادی نوشتم، چه تو وبلاگ قبلی که روی بلاگفا بود و چه توی این وبلاگ. اما اگر واقعا میخواید کار مشابه اسکریپتی مثل ReLinux انجام بدید، به این لینک سر بزنید.

این روش روی چه توزیع هایی کار میده؟!

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

موفق باشید!

 

Share

نخستین دیدار با تکشاخ کنونیکال

Screenshot from 2014-10-25 22:16:00

خب، نسخه ۱۴.۱۰ از سیستم عامل گنو/لینوکس، توزیع اوبونتو، که توزیع محبوب و مورد  استفاده من هست هم منتشر شد. نام این نسخه Utopic Unicorn یا «تکشاخ اتوپیایی» گذاشته شده. شاید چون قراره که اوبونتو در این نسخش، به اتوپیای خودش برسه، این نام رو براش انتخاب کردن.

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

Screenshot from 2014-10-25 22:14:05

تصویر بالا، اولین سکانسی هست که هر اوبونتو کاری مشاهده میکنه!!! محیط اصلی یونیتی به اضافه والپیپر چند رنگ اوبونتو که تم بنفش داره 🙂

Screenshot from 2014-10-25 22:14:13خب، این صحنه هم آشناست، Dash که بعد از فشردن کلید سوپر (که روی اکثر کیبرد ها با لوگوی ویندوز مشخص شده) ، باز میشه و میتونید آخرین فایلها و اپلیکیشن های باز شده، موزیک ها، ویدئوها و … رو از این طریق ببینید.

Screenshot from 2014-10-25 22:14:36با این که عمدتا ترجیح میدم از ترمینال برای دانلود و نصب برنامه ها استفاده کنم، اما این هم مرکز نرم افزار محترم، یعنی همون Software Center هست که در تمامی نسخه های اوبونتو عمدتاً با همین شکل و قیافه ظاهر میشه.

Screenshot from 2014-10-25 22:15:18و در آخر، مرورگر فایرفاکس که ذهن زیبا رو باهاش باز کردم. این هم به نوبه خودش جالبه، نه؟! مرورگر فایرفاکس هم در اوبونتو، حق آب و گل داره و از ابتدا باهاش بوده. البته فایرفاکس در توزیع های دیگری هم مرورگر پیشفرض هست، اما اوبونتو و فایرفاکس دو یار دیرینه هستند.

در پایان، باید بگم که این نسخه هم در ابتدای امر بسیار خوب و روان اجرا شده و هیچ مشکلی برای شخص من نداره، فقط باید دوباره طبق معمول برم سراغ اوکی کردن بوت ویندوز ۸.۱ که همراه این سیستم عامل، روی لپتاپ Lenovo G510 من نصب شده. راستی، تا یادم نرفته بگم که با کلید های ترکیبی Super + Space میتونید زبان رو عوض کنید. سعی کردم به Alt + Shift تغییرش بدم، اما نشد.

موفق باشید 🙂

Share

مدل تجاری نرم افزار آزاد

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

اصلا نرم افزار آزاد چی هست؟

به نقل از ویکیپدیا :

نرم‌افزار آزاد (به انگلیسی: Free software) نرم‌افزاری است که به‌همراه کد منبع توزیع شده و با قوانینی منتشر می‌شود که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین می‌کند.[۱][۲] نرم‌افزارهای آزاد معمولاً با همکاریبرنامه‌نویس‌های داوطلب به‌عنوان یک پروژه به‌وجود می‌آیند.

نرم‌افزارهای آزاد با نرم‌افزارهای مالکیتی (مانند مایکروسافت ویندوز) که آزادی کاربر در استفاده، مطالعه، ویرایش یا انتشار مجدد را در درجه‌های مختلف محدود می‌کنند، متفاوت است. این محدودیت‌ها با در نظر گرفتن مجازات‌هایی قانونی برای کاربرانی که قوانین آن‌ها را نقض می‌کنند، به‌وجود می‌آیند. نرم‌افزارهای مالکیتی عموماً به صورت بسته‌های اجراپذیرباینری و بدون دسترسی به کد منبع فروخته می‌شوند که جلوی ویرایش و وصله‌کردن نرم‌افزار توسط کاربر را می‌گیرد و او را برای به‌روزرسانی و پشتیبانی به شرکت نرم‌افزاری تولید کننده وابسته می‌کنند. نرم‌افزارهای آزاد از نرم‌افزاری‌های رایگان که برای استفاده، از کاربر پولی دریافت نمی‌کنند، نیز متفاوت‌اند. این نوع نرم‌افزارها نیز معمولاً تمامی حقوق نرم‌افزار را برای تولیدکنندهٔ آن محفوظ داشته و جلوی مهندسی معکوس، ویرایش و یا توزیع مجدد توسط کاربر را می‌گیرند.[۳] بنابراین موضوع اصلی نرم‌افزار آزاد، موضوع آزادی است و نه قیمت آن: کاربران آزادند که هر چه می‌خواهند با نرم‌افزار انجام دهند. این آزادی شامل انتشار مجدد نرم‌افزار به‌صورت رایگان و یا با سود نیز می‌شود.[۴] یعنی نرم‌افزار آزاد می‌تواند به صورت رایگان و یا در ازای دریافت مبلغی پول در اختیار کاربر قرار بگیرد.

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

آیا میتونیم نرم افزار آزاد رو بفروشیم؟

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

آیا میشه یک فورک از یک نرم افزار آزاد رو تجاری کرد؟

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

درآمد نرم افزار آزاد چگونه هست و از چه راه هایی میشه درآمد کسب کرد؟

درامد شما، بسته به نوع نرم افزاری که ساختید، میتونه متغیر باشه. مثلا ممکنه یک نفر سالی یک ریال هم درنیاره، ولی کسی روزی صد هزار تومان، درامد خالصش از همین «نرم افزار آزاد» محترم باشه! اما عمده راه های کسب در آمد :

  • دونیشن
  • فروش پشتیبانی
  • فروش محصول بصورت فیزیکی

هستند.

من حرفم کاملا تموم شده، البته اینجا این بحث رو تموم نمیکنم و بعدها هم در موردش مینویسم.

Share

چالش توسعه و سهم من

از معرفی چالشی موسوم به IranDevChallenge که در واقع چالش توسعه ایران یا به صورت دقیق تر، چالش توسعه دهنده های ایرانی هست، مدت نسبتا زیادی میگذره. این رو بگم که آغازگر این چالش آرش بود، و آرش خودش رو به چالش کشید. من گفته بودم که باید مدتی فکر کنم و بعد بگم که چه چیزی میخوام عرضه کنم. در این چالش قرار هست که یک سرویس تحت وب یا به عبارتی همون Web Application رو طراحی و تولید کنیم  و شش ماه وقت داریم. یعنی اگر از امروز، یکم مهر 1393 شروع کنیم، یکم فروردین 1394 پروژه باید آماده باشه. البته میشه طور دیگه به قضیه نگاه کرد، پروژه ممکنه بیش تر از شش ماه طول بکشه، ولی با کیفیت بیشتر انجام بشه.

من خودم رو در حوزه موبایل به چالش میکشم. مدتها پیش، من دامنه پاسارگاد موبایل رو تهیه کردم. تا شاید بتونم یه فروم موبایلی روش نصب کنم. چیزی که بسیار کم هست 😀 . خب، حتما از اسمایلی به کار رفته فهمیدید که نه، اصلا هم کم نیست و خب چه کاریه؟ از طرفی مدیریت ایران بی اس دی هست، و در چند فروم دیگر هم فعالیت زیادی دارم و تگ های متنوع. پس چرا یک فروم جدید؟ اواسط بهمن ماه 1392 بود که تصمیم گرفتم یک اپ استور آنلاین برای iOS درست کنم، که تبلیغ شدن سیبچه در تلویزیون باعث شد که از این کار هم پشیمون بشم. آخرش که چی؟ یک رقیب سرسخت که پر از نرم افزار کرک هست و ادعا میکنه قانونی داره اپلیکیشن ها رو توزیع میکنه (البته در مورد اون دسته اپ هایی که برنامه نویس ها میفرستن، قانونیه ولی بعید میدونم OpenVPN یا Instagram خودشون اپلیکشن رو در سیبچه گذاشته باشن). و پشتیبانی هم داره.

پس نتیجه چی شد؟

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

بیشتر توضیح بده، متوجه منظورت نشدم!

خب، F-Droid میگرده نرم افزارهایی که مجوز آزاد دارند، مثل GPL, Apache, LGPL, … رو پیدا میکنه، و درون مارکت خودش قرار میده. یا برنامه نویسی که اپلیکشن رو نوشته، اپ رو درون اف-دروید قرار میده تا دوستانی که نیاز دارند، دانلودش کنن و لذت ببرن. حالا، من تصمیم دارم همین رو بصورت فارسی ایجاد کنم ولی با تفاوت عمده 🙂

چه تفاوتی؟

خب، پاسارگاد موبایل، روی تلفن همراه شما نصب نمیشه. شما بواسطه مرورگرتون بازش میکنید. همچنین، برنامه نویس ملزم به قرار دادن لینکی به سورس برنامش خواهد بود، احتمالا درخواست میکنیم تا برنامه ها روی GitHub قرار بگیرن و لینکی به گیتهاب داده بشه. در پاسارگاد، برنامه نویس برنامه رو میفروشه و من هم یک سهمی از برنامه نویس دریافت میکنم (البته میشه سیستم اپلی کرد که برنامه نویس حق عضویت پرداخت کنه، ولی ترجیح میدم درصدی از هر فروش رو بردارم). و این ها تفاوتهای پاسارگاد موبایل با F-Droid هست.

آیا سرویس های جانبی هم راه اندازی خواهی شد؟

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

من سعی میکنم هر از گاهی در مورد پاسارگاد موبایل و عمل کردش، مطلبی بنویسم و شما رو در جریان پیشرفت کار قرار بدم :).

موفق باشید.

Share

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

خب، خیلی از خوانندگان این وبلاگ میدونن اوبونتو چیه و چی کار میکنه. اوبونتو در کل سیستم عامل ساده ای هست، ولی همین سادگی باعث میشه که خیلی ویژگی های این سیستم عامل قدرتمند، به چشم نیاد. بچه های وبسایت آزاد راه که یکی از بهترین منابع لینوکسی و در کل اوپن سورس فارسی هم محسوب میشه، کتابی تحت عنوان «اوبونتو برای تازه واردها» منتشر کردند. این کتاب الکترونیکی هست و به صورت PDF قابل دریافت و خواندن هست. همچنین به گفته وبسایت خود کتاب، نسخه ePub هم در حال انتشار هست (یک امتیاز مثبت برای ساسان، نوا و احمد، چرا که ePub به خوبی با اکثر دستگاه های هندست، مثل اکثر گوشی های موبایل و تبلت ها سازگار هست).

خب، من این کتاب رو دانلود کردم و فهرستش رو خوندم، هنوز خودش رو نخوندم (یه بار یه کتاب فروش به من گفت که کتاب خوب از فهرستش مشخص میشه). در این کتاب همه چیز به خوبی آموزش داده شده (با توجه به فهرستش + کتاب اوبونتو ۱۲.۰۴) پس مشکلی برای تازه کار ها نخواهد بود.

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

 

Share