بایگانی دسته: برنامه نویسی

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

یکی از مهم ترین شبهاتی که در مورد نرم افزار آزاد هست، اینه که میتونه پولی باشه یا نه؟ اصولا چون همیشه لفظ 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

رابط کاربری کادمیم، چیزی که جبیر را متفاوت میسازد!

رابط کادمیم، چیزی هست که با ایده گیری از رابط های کاربری HTML5 بیس ساختم، چیزی که جبیر رو به یک BSD منحصر به فرد تبدیل کنه. امیدوارم که بتونم یه چیز خوب ازش در بیارم تا کاربران بتونن به خوبی استفاده کنن :-).

البته هنوز کار داره، فعلا کلا استاتیک هست و با استفاده از impress ساخته شده، در صورتی که هدف من چیز دیگری هست (چیزی مثل Joil Cloud) که با داشتن اکانت بشه لاگین کرد و از این چیزا.

اگر اطلاعات تکمیلی نیاز دارید از اینجا بخونید.

Share

CSS فرشته نجات شماست.

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

میپرسید چرا؟ شما شخصا کدوم وبسایت رو بیشتر دوست دارید؟ وبسایتی که همه جاش منظم و مرتب هست یا وبسایتی که خیلی هردمبیل و بی ریخت همه چیزش سوار شده؟! مطمئنا وبسایت مرتب منظم رو.

امروزه، اسکریپتها و CMS هایی مثل وردپرس، نیوک، جوملا و … اومدن که برای ما وبسایت «پویا» (Dynamic) میسازن، و نیاز به PHP و دیتابیس و این جور چیزا دارن، به عبارت بهتر بگم که یک چارچوب آماده هستند برای ساخت وبسایت. خیلی کوتاه بگم، با نصبشون ، یک سری جدول توی دیتابیس ایجاد میشه. مثلا شما عبارت «فلسطین» (تا یادم نرفته، برای مردم فلسطین هم دعا کنید که زیر بمب و موشک هستن) ، میره در دیتابیسی که من به اسم blog درست کردم برای مثال، این عبارت رو سرچ میکنه و در جدولی به اسم wp_posts عبارت فلسطین رو پیدا میکنه و بعد براتون بر میگردونه.

یه سری ابزار هم مثل DocPad و Impress.js و اینا هم هستن که وبسایت «ایستا» (Static) براتون میسازن. این وبسایتها وبسایتهای کلاسیکن و من خیلی دوستشون دارم. ممکنه از لحاظ SEO و … مشکل داشته باشن اما راه برای شناسوندن اون ها به موتور های جست و جو و معروف کردنشون زیاده. هم اسکریپت هایی هست که میشه ران کرد و نتیجه گرفت ازشون و کلی راه دیگه. اما راه سنتی و کلاسیک برای ساخت وبسایت استاتیک، راه دهه ۹۰ میلادی هست، نوشتن وبسایت در یک فایل HTML و چسبوندن اجزا به هم دیگر. البته این راه امروزه هم استفاده میشه اما ما اومدیم تا مدرن ترین شکل ممکن رو کار کنیم.  در این پست، فقط و فقط و فقط قصدم این هست که ساده شدن کارتون با CSS رو به رختون بکشم اون هم بسیار ساده!

هر صفحه HTMLی ، از بخش هایی به اسم Division تشکیل شده که در تگ <div></div> قرار میگیرن. دیویژن در فارسی معنیش میشه «قسمت». در واقع ما با ساخت دیو ها (نه اون دیوی که در شاهنامه و … باهاش طرفیم! خلاصه دیويژن!) بخشهای سایت رو که میخوایم ویژگی های متفاوتی داشته باشن رو از هم دیگه جدا میکنیم. حالا میخوایم یه سری ویژگی بهش بدیم که برامون کار رو آسون کنه :-). اول ، میایم و ویژگی ها رو خودمون براش تعریف میکنیم در خود دیویژن، اول بزارید فرض کنیم میخوایم یک آموزش برنامه نویسی بسازیم و نیاز به این داریم که هم RTL داشته باشیم و هم LTR و چیزای دیگه!

۱. متن فارسی :

متن فارسی باید RTL (راست به چپ) باشه، چون این خاصیت زبان ماست و زبان ما ذاتا راست به چپ هست و نیاز به این خاصیت داریم. فرض هم میکنیم بکگراند این دیویژن زرد هست. پس من میام و یک دیویژن برای فصل نخست باز میکنم!

<div id=”chapter1″ style=”dir:rtl; background:yellow;”>

 

بله! حالا فرض کنیم ۴۵ تا فصل داریم و برای یکی یکی شون بخوایم همچین چیزی بنویسیم! چه شود! باید بنشینیم یکی یکی و استایل بنویسیم! خیلی سخت و وحشتناک!

۲. کدها :

برای کدها هم ما نیاز داریم تا LTR باشه، بکگراندش آبی باشه و نوشته هاش سفید! خب پس دیویژن مورد نظر ما این خواهد شد

<div style=”dir:rtl; background:blue; color:white;>

پس نتیجه اخلاقی ماجرا این میشه که بریم سراغ CSS و استایل بنویسیم و بعدش فراخوانی کنیم! در این پست من براتون CSS رو مینویسم و بعدش میریم سراغ فراخوانیش!

کد CSS را چگونه بنویسیم؟! سادست، یک فایل به اسم style.css روی هاست (یا روی سیستم خودمون ) ایجاد میکنیم. حالا کلاسهای لازم رو مینویسیم ولی قبلش یاد داشته باشیم، برای تگهای عادی که بخوایم ویژگی ایجاد کنیم، بدون نیاز به نقطه اول اسم، کار رو شروع میکنیم ولی برای کلاس ها نیاز به نقطه اول اسم کلاس هست (ر.ک آموزشهای موجود CSS روی اینترنت) :

.chapter { 
 background:yellow;
 dir:rtl; 
 }

این برای کلاس Chapter 🙂 همین رو میتونیم برای کلاس کد هم اجرا کنیم. خب، حالا برای فراخوانیش کافیه از <div class=”chapter”> استفاده کنیم!

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

موفق باشید، خدا قوت 🙂

Share

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

اولش که جادی اسلایدهایی که برای ریلیز پارتی اوبونتو منتشر کرده بود با عنوان «چه خبر؟ از این اوبونتو تا اون اوبونتو» از خلاقیتش خوشم اومد، چون اولین باری بود که میدیدم پرزنتشن ها به شکل کهنه و قدیمی (و شاید هم منسوخ!) پاورپوینت (یا لیبر آفیس ایمپرس) نیستند و یک سری کد HTML هستند که خیلی قشنگ حرکت میکنن. بعدش، ویدئو کست جادی رو دیدم که در مورد لایبرری impress.js توضیح داد و متقاعد شدم که سایت های استاتیک هم میتونن این شکلی باشن!

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

خوبی ایمپرس از نظر من، کم حجم بودنشه و تنها نیازش یک مرورگر مدرن هست، مثلا فایرفاکس ۲۶ یا آخرین نسخه کروم! و همین پیش نیاز ساده، باعث حل خیلی مشکلات میشه. ضمنا، اگر به اینترنت دسترسی ندارید تا فونت ها رو لود کنه (چون یه سری فونت گوگل رو لود میکنه برای خودش) میتونید فونت هاتون رو بهش اضافه کنید. میتونید شکل های عجیب و باحال بهش بدید. تنها چیزی که نیاز دارید اینه «به سورس نگاه کنید». به سورس html نگاه کنید و ازش ایده بگیرید و بعدش ایدتون رو به ایمپرس منتقل کنید. برای html نویسی هم فقط و فقط و فقط نیاز دارید تا فایل های جاوااسکریپت و CSS رو توی فایل HTML لود کنید تا بتونید بهترین اسلاید ممکن رو بسازید.

 

Share

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

سلام.

همونطور که در پست قبلی توضیح داده بودم، دستگاههای نهفته هم جزئی از برنامه های جبیر محسوب میشن. خب ، من هم فرصت رو غنیمت شمردم و سیستم عامل رو برای کوبی برد کامپایل کردم. بعد دیدم که اینطوری نمیشه، حرف اول رو در زمینه دستگاههای نهفته (Embedded) ، رزبری پای میزنه و خب کار کامپایل رو براش انجام دادم (ایمیج تولید شده فاقد uBoot هست) :

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

Share

جبیر هم اکنون بصورت رسمی برای کوبی برد هم آماده است!

با سلام.

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

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

Share