‫تجاربی از LibreOffice

به خاطر دلخوشی خودم و به خاطر کسب آمادگی برای سویچ احتمالی به لینوکس، مدتی است که سعی می‌کنم به جای MS Office از LibreOffice استفاده کنم. LibreOffice کاملاً مشابه Open Office بوده و توسط تعدادی از برنامه‌نویسان قبلی Open Office اداره می‌شود. بد ندیدم نکاتی را که به عنوان یک ویندوز کار به آن برخورد کردم را بیان کنم.

۱- مهم‌ترین مزیت استفاده از LibreOffice برای من رایگان بودن آن، رهایی از مشکلات کرک و آسوده خیالی ناشی از رعایت کپی رایت می‌باشد.
۲- مهم‌ترین مشکلی که با LibreOffice دارم عادت نداشتن به آن است. به عنوان کسی که از زمان ویندوز ۳٫۱ از MS Office استفاده می‌کرده برایم خیلی سخت بوده و هست که به LibreOffice عادت کنم.
۳- ظاهراً LibreOffice Writer با متون دو زبانه مشکل دارد. گاهی اوقات که در یک پاراگراف فارسی از چند کلمه انگلیسی و بعضی کاراکترها مثل خط تیره استفاده می‌کنم. کلمات انگلیسی فارسی توی هم فرو می‌روند و به هیچ وجه قابل اصلاح نیستند.
۴- در Writer مکان‌نما در جای صحیح نشان داده نمی‌شود. یعنی زیادی به حروف یا حاشیه پاراگراف چسبیده است.
۵- نمی‌توانم در Writer فونت پیش فرض را عوض کنم.
۶- در MS Word می‌توانستم با یک shortcut خاص سایز فونت همه نوشته را با هم یکی بالا ببرم یا یکی پایین بیاورم. انجام این کار در Writer برایم غیر ممکن است.
۷- Paste کردن حتی از notepad باعث به هم ریختگی فونت می‌شود.

البته ممکن است همه این مشکلات به خاطر نا آشنایی خودم یا اجرای LibreOffice در ویندوز باشد.

نرم‌افزارهای آزاد و متن‌باز

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

متن‌باز بودن نرم‌افزار به چه معنی است؟ تا آنجا که من می‌دانم هر نرم‌افزاری می‌تواند متن‌باز هم باشد. مثلاً یک نرم‌افزار پولی یا مجانی یا آزاد یا غیر آزاد می‌تواند متن‌باز هم باشد یا نباشد. دلیل این که همراه بیشتر نرم‌افزارهای پولی سورس آنها هم ارائه نمی‌شود آن است که سورس برنامه‌ها بسیار گرانقیمت‌تر از خود نرم‌افزارها هستند. مثلا ویندوز ایکس‌پی فرضاً ۱۰۰ دلار است ولی سورس کد آن ۱۰ میلیون دلار است.

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

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

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

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

روش رایج پول در آوردن از نرم‌افزارهای آزاد، پشتیبانی فنی و خدمات مشاوره است. مثلاً نرم‌افزار OTRS خودش آزاد، متن‌باز و مجانی است و هر کسی هر کار که دلش خواست می‌تواند با آن بکند. اما شرکت حامی آن خدمات hosting آن را به صورت پولی ارائه می‌کند، خدمات نصب و مشاوره و خدمات پشتیبانی آن را هم به صورت پولی ارائه می‌کند و پول خوبی از این راه به دست می‌آورد. البته راه‌های زیادی برای پول درآوردن از نرم‌افزارهای آزاد هست که بستگی به شرایط دارد.

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

جهت اطلاع بیشتر:
‫کپی‌لفت (Copyleft) چیست؟ 

‫چرا FOSS (و Open Source) برای ما خوب است؟‫حرکت به سمت FOSS
‫برنامه‌های من برای مهاجرت به FOSS 

ضمناً فکر می‌کنم سایت‌ها و انجمن‌های فارسی‌زبان زیادی باشند که روی این موضوعات کار می‌کنند.

‫مشارکت من در یک نرم‌افزار آزاد به نام OTRS

OTRS چیست؟
OTRS یک نرم‌افزار آزاد و کد باز (FOSS) است که در اصل یک نرم‌افزار مکانیزاسیون Help Desk می‌باشد ولی بعدها امکانات ITIL:ITSM هم به آن افزوده شد. از این نرم‌افزار در تیم‌های پشتیبانی محصول و خدمات IT در شرکت‌ها و ادارات استفاده شده و گاهی اوقات آن را CRM نیز می‌نامند، چون تعامل مشتریان را با سازمان مدیریت می‌کند. OTRS فعلاً در ایران بیشتر در ISPها استفاده می‌شود. این نرم‌افزار تحت وب با پرل نوشته شده و محیط اصلی اجرای آن LAMP می‌باشد ولی به راحتی در ویندوز، IIS و MS SQL Server هم قابل اجراست. این نرم‌افزار تحت مجوز GPL منتشر شده و هسته اولیه آن را یک آلمانی به نام Martin Edenhofer ایجاد کرده است. OTRS به طور مداوم در حال توسعه بوده و جامعه کاربری بسیار فعالی دارد.

OTRS چطور پول در می‌آورد؟
توسعه‌دهندگان اولیه OTRS کارشان را با تاسیس یک شرکت ادامه دادند. خدماتی که این شرکت ارائه می‌دهد عبارت است از توسعه OTRS و ماژول‌های آن و افزودن امکانات خاص به آن بر مبنای درخواست مشتری (با دریافت پول)، مشاوره و استقرار OTRS در سازمان مشتری، قراردادهای پشتیبانی و مشاوره و خدمات hosting.
در عین حال توسعه دهنده اصلی OTRS بر خلاف خیلی از نرم‌افزارهای کدباز معروف عمدتاً خود اعضای این شرکت هستند نه جامعه برنامه‌نویسان داوطلب. البته OTRS توسعه‌ها و patchهای کاربران را نیز قبول کرده و به CVS خود می‌افزاید. بعضی افراد هم ماژول‌های خاص خود را برای OTRS توسعه داده‌اند اما با وجود همه این حرف‌ها باز هم عمده توسعه توسط خود شرکت انجام می‌پذیرد. همان طور که در بالا اشاره شد سود شرکت OTRS از خدمات جانبی که ارائه می‌دهد آنقدر هست که حالا حالاها به توسعه OTRS و انتشار مجانی و آزاد آن ادامه دهد و حتی به فکر افزایش سرمایه هم باشد.

OTRS چطور مشارکت افراد را به خود جلب می‌کند؟
پروژه OTRS (نه شرکت OTRS) هیچ چیزی برای پنهان کردن ندارد. آنها صداقت فوق‌العاده‌ای دارند و مانند هر پروژه کدباز موفق دیگری همه موارد مورد نیاز را در اختیار افراد قرار می‌دهند:
۱- تمام سورس کد بدون هیچ مخفی کاری شامل نسخه‌های جاری و تمام نسخ قبلی (CVS) ++
۲- چند mailing-list فعال همراه با آرشیوهای قبلی. ++
۳- مرجع خیلی دقیقی برای ثبت و پیگیری bugها به اسم Bugzilla. آنها تک تک باگ‌های ثبت شده را مورد بررسی قرار داده و در صورت لزوم ترتیب اثر می‌دهند. ++
۴- documentation همه بخش‌ها به طور کامل. ++
۵- پشتیبانی کامل از زبان‌های غیر انگلیسی از جمله زبان فارسی (به جز تقویم)
۶- همکاری و راهنمایی به کاربران و رسیدگی به مشکلات و باگ‌های ارائه شده توسط آنها

چطور با OTRS آشنا شدم و چه کارهایی با انجام دادم؟
پاییز ۸۶ وقتی که در یک مرکز دولتی کار می‌کردیم OTRS به عنوان یک نرم‌افزار مدیریت Trouble Ticket به ما معرفی و از ما خواسته شد ضمن بررسی و نصب آن در صورت امکان آن را برای زبان فارسی و محیط ایران محلی‌سازی کرده و گزارشاتی به آن بیفزاییم. پاییز ۸۷ همین کار را یک شرکت نیمه خصوصی انجام دادیم. با این تفاوت که این بار قرار شد از ماژول ITSM به طور کامل استفاده کرده و بخشی از فرایند ITIL یعنی Service Managment را با استفاده از OTRS پیاده‌سازی کنیم. ما در بهار ۸۸ برای بار سوم OTRS را در یک شرکت خصوصی نرم‌افزاری مورد بهره‌برداری قرار دادیم اما این بار بدون توجه به ITIL و به عنوان یک نرم‌افزار صرفاً Ticket Management. این شرکت از OTRS برای ثبت و پیگیری درخواست‌های رفع مشکل (Ticket) مشتری‌ها و در واقع به عنوان نرم‌افزاری برای پیاده‌سازی مفهوم CRM استفاده می‌کند.

من چه کارهایی برای OTRS انجام دادم؟
۱- ترجمه بعضی ماژول‌ها و به روز رسانی ترجمه‌های قبلی نرم‌افزار ++ ++ ++ ++ ++
۲- همکاری جهت رفع مشکلات مربوط به زبان فارسی ++ ++ ++  ++ ++
۳- تهیه راهنمای نصب OTRS در ویندوز ++ ++ ++ ++
۴- تحریر بعضی مطالب جهت بررسی و تبلیغ OTRS ++ ++ ++ ++
۵- مشارکت‌های هر چند خیلی کوچک در جوابگویی به سوالات کاربران در mailing listهای مربوطه.

من چه چیزهایی از OTRS یاد گرفتم؟
من علاوه بر این که همیشه حق‌الزحمه کارهای خودم را از کارفرماهایم گرفته‌ام چیزهای زیادی در حین مشارکت در OTRS یاد گرفته‌ام:
۱- تجربه‌ی کار با یک تیم حرفه‌ای توسعه نرم‌افزار در آن سوی مرزها، هر چند خیلی کوتاه و مختصر.
۲- سورس کنترل، Bug Tracking، پایگاه خبری و مدیریت نسخه‌های (منتشر شده) در موفقیت یک پروژه نقش خیلی حیاتی بازی می‌کنند و هیچ وقت نباید هیچ کدام از آنها را دست کم گرفت و یا کنار گذاشت.
۳- چطور می‌شود یک پروژه کدباز و کاملاً آزاد ایجاد کرد و از آن حتی بدون donation پول در آورد، شرکت موفقی تاسیس کرد و حسابی هم معروف شد.
۴- چطور می‌توان طعم شیرین مشارکت در یک پروژه کدباز را چشید، به آن کمک کرد و بی پول هم نماند. قرارداد با یک شرکت ایرانی از یک سو و به اشتراک گذاشتن کارهای انجام شده و مفاهیم یاد گرفته شده با جامعه کاربری پروژه از دیگر سو.
۵- چطور فرایند پشتیبانی از یک نرم‌افزار در یک شرکت نرم‌افزاری را با استفاده از OTRS مکانیزه و منظم کرده و به اصطلاح یک CRM (مدیریت ارتباط با مشتری) به وجود آورد.

پیوندهای مرتبط:
۱- پروژه OTRS
۲- شرکت OTRS
۳- مطالب وبلاگ خودم راجع به OTRS
۴- شرکت امپیکو

‫مایکروسافت با بنیاد کدپلکس کدبازتر می‌شود!

همان طور که می‌شد حدس زد مایکروسافت بعد از راه‌اندازی سایت نگهداری پروژه‌های کدباز کدپلکس (codeplex.com)، در حرکتی دیگر با تاسیس بنیاد کدپلکس (codeplex.org) یک گام دیگر به سوی نهضت کدباز برداشت. هدف بنیاد کدپلکس ارتباط دادن جوامع کدباز و شرکت‌های تجاری است. قرار است شرکت‌های تجاری از این طریق یاد بگیرند و عادت کنند از پروژه‌های کدباز در برنامه‌هایشان استفاده کنند و قرار است جوامع و تیم‌های کدباز هم از همین طریق منافعی کسب کنند. بنیاد کدپلکس (codeplex.org) چیزی جدا از سایت کدپلکس (codeplex.com) است. هدف سایت کدپلکس (codeplex.com) تنها نگهداری پروژه‌های کدباز (سورس، اسناد، issue tracking و…) است.
به نظر می‌رسد بنیاد کدپلکس (codeplex.org) از سر تجربه استفاده از jQuery در ASP.NET MVC و دیگر محصولات مایکروسافت به وجود آمده باشد. مایکروسافت در اوایل مهر ۱۳۸۷ تصمیم گرفت برای اولین بار از یک پروژه کدباز غیر مایکروسافتی به طور کاملا دست نخورده استفاده کند و همچنین به طور غیر تجاری در بهبود آن کمک کند.

چه کسانی پشت بنیاد کدپلکس هستند؟
در این بنیاد دو گروه آدم را می‌توان یافت، دسته اول هیئت مدیره (Board of Directors) و دسته دوم هیئت مشاوره (Advisory Board). در هر دو هیئت آدم‌های معروف و جالبی را می‌توان پیدا کرد. در هیئت مدیره: «سام رامجی» کسی که می‌خواهد (می‌خواسته) Microsoft Linux را منتشر کند! «میگوئل ایکازا» کارمند ناول، خالق میز کار گنوم، توسعه دهنده مونو و موون‌لایت، برنده جایزه نرم‌افزار آزاد از بنیاد نرم‌افزار آزاد (fsf) در سال ۱۹۹۹، «شان واکر» معروف خالق یکی از اولین پروژه‌های فراگیر کدباز مایکروسافتی یعنی DotNetNuke و «مارک استون» ار کارمندان قدیمی سورس فورژ! چیزی که تقریباٌ در همه اعضای هیئت مدیره مشترک است تجربه آنها در لینوکس، آپاچی و دیگر حوزه‌های کدباز غیر مایکروسافتی است. به نظر می‌آید مایکروسافت با جمع کردن این افراد می‌خواهد جبهه جدیدی را در جنبش کدباز بگشاید. در هیئت مشاوره هم آدم‌های معروفی از مایکروسافت و دیگر جاها عضویت دارند. از جمله «لری آگوستین» از دست‌اندرکاران پروژه کدباز ولی ظاهراً پولی SugarCRM، «سارا فورد» که ظاهراً دستی هم در l10n و i18n دارد، «اسکات هنزلمن» که در یکی از نوشته‌هایش نشان داده چقدر از ابزارهای کدباز استفاده می‌کند و به آنها علاقه دارد و نهایتاً «فیل هک».

پ. ن. ۱: اگر شما هم مثل من خیلی به بنیاد کدپلکس علاقه پیدا کرده‌اید خیلی عجله نکنید چون این بنیاد دقیقا دو روز پیش (۱۹ شهریور ۱۳۸۸) تاسیس شده و هنوز خیلی از قسمت‌ها به سایتش اضافه نشده. حتماً بعداً هم به سایت سر بزنید.
پ. ن. ۲: بنیاد کدپلکس در تعدادی کنفرانس هم شرکت دارد از جمله: O’Reilly Conferences، ApacheCon US 2009 و OPENSOURCE BUSINESS CONFERENCE.
پ. ن. ۳: به نظرات نوشته شده در انتهای مطلب «اسکات هنزلمن» درباره بنیاد کدپلکس نگاهی بیندازید. پر است از بحث مخالفان و موافقان بنیاد کدپلکس و مایکروسافت.

پیوندها:
اصل خبر در وبلاگ «اسکات هنزلمن»
پایگاه بنیاد کدپلکس
فهرست اعضای هیئت مدیره
ویدیوهای مربوط به بنیاد کدپلکس

مراسم روز آزادی نرم‌افزار در تهران

جشن روز آزادی نرم‌افزار برای ارج نهادن به آزادی نرم‌افزار و برای ترویج استفاده از آن از سال ۱۳۸۳ برگزار می‌شود. این مراسم در حال حاضر در سومین شنبه ماه سپتامبر که تقریباً برابر اواخر شهریور است برگزار می‌گردد. خوشبختانه امسال این جشن به همت «انجمن صنفی کاربران نرم‌افزارهای آزاد/متن باز» و با کمک «فرهنگسرای فناوری اطلاعات شهرداری» و «مرکز تحقیقاتی فناوری اطلاعات و ارتباطات پیشرفته دانشگاه صنعتی شریف» در تهران برگزار می‌شود. ظاهراً این جشن سال‌های گذشته نیز در تهران و اصفهان برگزار شده است.

قاعدتاً این مراسم بر روی لینوکس تمرکز خواهد داشت ولی من هم به عنوان یک ویندوز کار دلایلی برای شرکت خودم در این مراسم دارم:
۱- من هم تا اندازه زیادی از نرم‌افزارهای آزاد و کدباز مثل فایرفاکس، NHibernate  و… استفاده می‌کنم.
۲- دوست دارم با نرم‌افزارهای آزاد دیگر و خود لینوکس بیشتر آشنا بشوم. چون حتی مایکروسافت هم با همه تعصبش تصمیم گرفته در جنبش کدباز شرکت کند.
۳- این مراسم از معدود مراسماتی که کامپیوتربازهای حرفه‌ای و احیاناً برنامه‌نویسان در آن شرکت می‌کنند. پس باید فرصت را غنیمت شمرد و به این بهانه هم که شده با دیگر دوستان دور هم جمع شد.

مراسم امسال در روز چهارشنبه ۲۵ شهریور ۱۳۸۸ در فرهنگسرای فناوری اطلاعات واقع در تهران – خ کارگر جنوبی – کمی پایین‌تر از میدان انقلاب – تقاطع جمهوری و از ساعت ۱۷ الی اذان مغرب برگزار می‌گردد. به امید دیدار همه دوستان در مراسم!

پیوندها:
۱- خبر برگزاری جشن در سایت انجمن صنفی کاربران نرم‌افزارهای آزاد/متن باز، اطلاعات تکمیلی و لینک ثبت نام
۲- سایت مراسم جهانی روز آزادی نرم افزار Software Freedom Day – SFD
۳- ‫FOSS چیست؟
۴- دیگر نوشته‌های من راجع به FOSS

‫برنامه‌های من برای مهاجرت به FOSS

love foss اینجانب بعد از آن که به صف عشاق سینه‌چاک Open Source و FOSS پیوستم تصمیم گرفتم که به عنوان یک برنامه‌نویس و یک کاربر روزمره برنامه‌ای برای این مهاجرت بزرگ تدوین کنم. FOSS که گاهی اوقات آن را به نام Open Source هم می‌شناسند از یک طرف باعث می‌شود که کیفیت کار من به عنوان یک برنامه‌نویس افزایش یابد و از طرفی دیگر باعث کاهش عمده هزینه‌های (مالی/اخلاقی) نرم‌افزاری خودم و شرکت/اداره استخدام کننده‌ام می‌شود. درست است که ما در ایران هزینه‌ای بابت خرید یک نرم‌افزار خارجی نمی‌پردازیم ولی این کار به هر صورت غیر اخلاقی است و البته کار با نسخه‌های نایاب Crack هم دردسرهای فراوان خودش را دارد. البته فراموش نشود که عوض کردن عمده نرم‌افزارها و روش‌ها به نرم‌افزارهای آزاد کار چندان راحت و سریعی نیست. انجام این کار به صبر و حوصله زیاد و زمانی بین ۲ الی ۱۰ سال نیاز دارد. بنده برنامه این مهاجرت را اجالتاً به صورت یک لیست ۲۹تایی در آورده‌ام که در ادامه می‌آید:

مطالعاتی
۱- مطالعه چند کتاب در مورد FOSS و اجازه‌نامه‌های مرتبط با آن.
۲- مطالعه عمیق‌تر سی‌شارپ و مقایسه آن با جاوا به عنوان یکی از معروف‌ترین زبان‌های برنامه‌نویسی آزاد ولی مشابه سی‌شارپ.
۳- تمرکز بر روی روش‌ها و فناوری‌های برنامه‌نویسی بدون توجه خیلی زیاد به platform مثل ORMها و AJAX.
۴- مطالعه روش‌های SOA خصوصاً SCA به عنوان یک نمونه آزاد از معماری SOA.
۵- تمرکز بیشتر بر روی مسائلی که در همه Platformها کاربرد دارد مثل XML و XPath.
۶- تقویت هر چه بیشتر زبان انگلیسی به عنوان یک زبان بین‌المللی
۷- شناسایی Communityهای فعال برنامه‌نویسان آزاد سراسر دنیا.
۸- مطالعه استانداردهایی که مستقل از Platform هستند و سعی در اجرای دقیق آنها. اگر برنامه‌ای با استفاده از استانداردها و پروتکل‌های دقیق و درست نوشته شده باشد با دردسر کمتری در Platformهای دیگر اجرا می‌شود.
۹- نیم نگاهی به زبان‌های آزاد نوظهور مثل PHP و Ruby.
۱۰- آشنایی با دیگر فناوری‌ها و روش‌های رایج برنامه‌نویسی دنیای جاوا و استفاده از آنها در دات‌نت و سی‌شارپ.
۱۱- مطالعه Design Patternها. چون مهارتی است که در همه زبان‌های برنامه‌نویسی قابل استفاده است.
۱۲- هدف گرفتن زبان جاوا به عنوان زبان برنامه‌نویسی احتمالی بعدی.

تمرینی – عملی
۱۳- مشارکت در چند پروژه کدباز مثل کایوهوگا، اکالیپتوس و NHibernate
۱۴- با Source Controlهای بیشتری کار کنم. فقط MS Source Safe کافی نیست. باید آنهایی که بین بقیه برنامه‌نویسان رایج است را هم بشناسم.
۱۵- با سایت‌های نگهداری پروژه‌های FOSS مثل SourceForge و CodePlex بیشتر آشنا شوم.
۱۶- سعی در استقلال از IDE با کمک برنامه‌های خط فرمانی چون csc.exe
۱۷- با ابزارهای IssueTracker مثل JIRA و آن چه که در دل سایت‌ها و نرم‌افزارهایی مثل SourceForge، CodePlex و MS TFS به اسم Work Item یا چیزهای دیگری وجود دارند هم آشنا شوم.
۱۸- نیم نگاهی به Apache Web Server به عنوان یک Web Server آزاد که حتی می‌تواند ASP.NET را هم اجرا کند.
۱۹- تطبیق برنامه‌های تحت وب فعلی به نحوی که به جز IE در Firefox هم اجرا شوند. به این طریق می‌توان برنامه‌های فعلی را از طریق لینوکس هم اجرا کرد.
۲۰- برنامه‌هایی که می‌نویسم را حتی‌الامکان تحت وب پیاده‌سازی کنم نه به صورت Desktop زیر که اصولاً Desktop یعنی Cross-Dependent.

ابزارها – فناوری‌ها
۲۱- استفاده از MySql به جای MS Sql Server
۲۲- استفاده از NHibernate به جای LINQ و ADO
۲۳- استفاده از log4net به جای Entlib
۲۴- استفاده از Nant برای Build پروژه‌ها (در جهت استقلال از VS)
۲۵ – استفاده از Lucene.NET به عنوان موتور جستجو.

کاربردهای روزمره
۲۶- استفاده از Firefox و Chrome به جای IE. چون هر دو FOSS و Cross-Platform هستند.
۲۷- استفاده از Thunderbird به جای Outlook Express.
۲۸- تمرینات گهگاهی با لینوکس، لازم نیست فوراً ویندوز را کنار بگذارم.
۲۹- هر جا که بین یک نرم‌افزار FOSS و یک نرم‌افزار غیر FOSS حق انتخاب داشتم، از معادل FOSS یک نرم‌افزار استفاده کنم. مثلاً به جای DAP از FDM استفاده کنم، یا به جای Windows Media Player از VLC Player استفاده کنم.

‫حرکت به سمت FOSS

mig1 برای خیلی از افراد که از ۱۲ سالگی با DOS و  Windows کرک شده خو گرفته‌اند حرکت به سمت Free/Open Source Software کار چندان راحتی نیست. سال‌ها کار و برنامه‌نویسی در platform ویندوز کاری نیست که بشود در عرض چند ماه آن را کنار گذاشت. حال اگر ما هم بخواهیم مهاجرتمان را به سمت FOSS آغاز کنیم چه باید کرد؟ روش من به عنوان یک توسعه‌دهنده نرم افزار (برنامه‌نویس) این است که کاربران کامپیوتر را به ۴ دسته تقسیم کرده و هر کدام را جداگانه بررسی کنم. این دسته‌ها عبارتند از:

۱- کاربران روزمره
۲- کاربران اداری
۳- برنامه‌نویس‌ها
۴- کاربران خاص‌منظوره

 

۱- کاربران روزمره
افرادی هستند که از نرم‌افزارهای رایج و معمولی برای انجام کارهای شخصی یا اداری روزمره‌شان استفاده می‌کنند. این نرم‌افزارها عمدتا شامل ویندوز، مجموعه Office، نرم‌افزارهای جانبی مثل نرم‌افزارهای پخش موسیقی، نرم‌افزارهای کار با اینترنت، رایت CD/DVD و… می‌شوند. این گروه از افراد در مهاجرت به FOSS کمترین دردسر را خواهند داشت. چون همه نرم‌افزارهای مورد استفاده آنها معادل FOSS دارند و اتفاقاً همه آنها خیلی هم شبیه به نسخه ویندوزی‌شان هستند. تنها زحمتی که افراد این دسته باید بکشند کمی تغییر عادت و مختصری یادگیری نرم‌افزار جدید است.

۲- کاربران اداری
منظور از کاربران اداری، افرادی هستند که از کامپیوتر برای انجام امور اصلی ادارات و سازمان‌ها استفاده می‌کنند. یعنی امور حسابداری، کارگزینی، پرسنلی و… یک اداره/کارخانه را از طریق کامپیوتر انجام می‌دهند. نرم‌افزارهای مورد استفاده این دسته عمدتاً نرم‌افزارهای تولید داخل و سفارش مشتری (Customized) هستند. این طور نرم‌افزارها امروزه عمدتاً به دو دسته Client و Server تقسیم می‌شوند. در Server بخش‌های اصلی برنامه قرار دارد. هر چند که گاهی اوقات این «بخش‌های اصلی» به صرفاً یک SQL Server تقلیل پیدا می‌کند. نرم‌افزار کلاینت هم به آن بخش از نرم‌افزار گفته می‌شود که در کامپیوتر کاربران نهایی مورد بهره‌برداری قرار می‌گیرد. مهاجرت دادن همه این نرم‌افزارها به FOSS را نمی‌توان ناگهانی انجام داد. این کار به زمانی طولانی (به عقیده شخصی من) در حد ۱۰ الی ۲۰ سال نیاز دارد. دلیلش هم این است که هنوز هم می‌شود در بعضی ادارات و سازمان‌ها برنامه‌های FoxPro را دید!
به علت مقاومت ادارات و کارمندان آنها در برابر تغییر باید مهاجرت را در مرحله به مرحله انجام داد. نخستین گام به عقیده من تبدیل بخش کلاینت همین نرم‌افزارهای موجود از تحت ویندوز (Desktop) به تحت وب (Web Application) است. با این کار کلاینت‌ها از قید سیستم عامل آزاد می‌شوند. آنها می‌توانند به راحتی ویندوزها را پاک کرده و جای آنها Linux نصب کنند. چون کاربران کارشان را فقط از طریق مرورگر انجام خواهند داد.
گام دوم، مهاجرت آن بخشی از نرم‌افزارهای Server است که به عنوان سرویس‌دهنده هسته اصلی برنامه عمل می‌کنند. بیشتر وقت‌ها MS SQL Server و IIS هستند که این نقش را بازی می‌کنند. عوض کردن این تیکه در هسته اصلی نرم‌افزار در بیشتر موارد اگر برنامه به شیوه‌ای چندان غیر معمول نوشته نشده باشد، کار چندان سختی نیست. مثلاً خیلی وقت‌ها به راحتی می‌توان از My SQL به جای MS SQL Server یا از Apache (با نصب یک mod مخصوص) به جای IIS استفاده کرد.
گام آخر در این مهاجرت مربوط به برنامه اصلی است. منظور از برنامه همان برنامه‌ای است که توسط پیمانکار به سفارش کارفرما نوشته شده است. در مورد این هسته اجبار خیلی زیادی برای تعویض و ارتقا وجود ندارد. همین که زبان برنامه‌نویسی مورد استفاده، در platform مورد نظر قابل اجرا باشد کفایت می‌کند. در واقع ملاحظات این بخش بیشتر به برنامه‌نویس‌های آن برمی‌گردد. اگر آنها بتوانند برنامه را طوری بنویسند که در یک platform آزاد قابل اجرا باشد مثلاً حتی اگر زبان مورد استفاده آنها ‭C#‬ است تا وقتی که می‌توانند از MONO در اجرای آن استفاده کنند مشکل خاصی وجود ندارد. البته بهتر است برنامه‌نویسان محترم و شرکت‌های استخدام کننده آرام آرام خود را به زبان‌هایی عادت دهند که در محیط‌های FOSS هم به راحتی قابل اجرا باشد مثل JAVA و PHP.
هنوز دو مسئله دیگر در مورد کاربران اداری وجود دارد. اول آن که کابران اداری عموماً کاربران روزمره (دسته اول) هم محسوب می‌شوند. پس همه موارد مطرح شده برای کاربران روزمره، برای کاربران اداری هم مصداق دارد. ثانیاً کاربران اداری خیلی به شبکه‌های ویندوزی و امکانات آن وابسته هستند. آنها هر روز از File Sharing ویندوز و چاپگرهای share شده تحت شبکه استفاده زیادی می‌کنند. بنابراین باید فکری هم به حال این موضوع کرد. برای file sharing به عنوان یک راه اولیه ولی استاندارد که بین platformهای مختلف به راحتی قابل استفاده باشد راه حل ftp پیشنهاد می‌گردد که البته ظاهراً امنیت بیشتری هم نسبت به file sharing ویندوز دارد.

۳- برنامه‌نویس‌ها
مهاجرت این دسته سخت‌تر از بقیه انجام می‌شود چون باید موارد زیادی در نظر گرفته شود از جمله:
۳-۱- تغییر احتمالی زبان برنامه‌نویسی. مثلاً دلفی یا VB.NET یا در لینوکس وجود ندارند یا به طور ضعیفی پشتیبانی می‌شوند.
۳-۲- IDE (محیط توسعه و برنامه‌نویسی): بیشتر برنامه‌نویسان به خصوص آنها که از ویندوز می‌آیند به شدت به IDE وابسته هستند. حتی اگر IDE مشابهی در محیط مقصد وجود داشته باشد معلوم نیست که همین امکانات را داشته باشد یا نه و حتی هیچ تضمینی وجود ندارد که عادت‌های کاربرانش از جمله shortcutها را حفظ کرده باشد. به عنوان مثال معلوم نیست که MONO تحت لینوکس همان عادات و امکانات Visual Studio تحت ویندوز را داشته باشد یا نه.
۳-۳- ابزارهای کمکی اصلی مثل Database و Web Server: خوشبختانه هم در ویندوز و هم در لینوکس، Database و Web Serverهای قدرتمند و معروفی وجود دارند. در مورد Database اگر بعضی موارد از قبل رعایت شده باشد، مسئله انتقال اطلاعات و برنامه‌های قبلی و یادگیری خود برنامه‌نویسان راحت انجام می‌پذیرد. مثلا این که از دستورات استاندارد SQL که در همه جا پیاده سازی شده استفاده شود نه از آن دستوراتی که فقط در یک محصول خاص پیاده‌سازی شده است و یا استفاده از روش و ابزارهایی که نرم‌افزار را مستقل از Database می‌کند استفاده شود مثل OR-Mapperهایی مثل Nhibernate. در مورد Web Serverها باید گشت و گشت تا Add-inهایی که پشیبانی زبان مورد نظر را به Web Server اضافه می‌کند پیدا کرد. مثلاً برای IIS می‌شود Add-inهایی برای اجرای Perl و PHP پیدا کرد و قاعدتاً برای Web-Serverهایی مثل Apache هم باید بشود Add-inهای مشابهی پیدا کرد. مثلا می‌توان از Mod_AspDotNet برای اجرای صفحات ASP.NET در Apache استفاده کرد.
۳-۴- موارد متفرقه: گاهی اوقات مواردی وجود دارد که نمی‌دانیم در platform جدید چطور می‌شود با آنها کار کرد. مثل نحوه مسیردهی فایل‌ها، حق دسترسی‌ها، ارتباط با سخت‌افزار و… در چنین اوقاتی به نظر من باید هر مورد را جداگانه بررسی کرده و برایش راه حل ارائه کرد.

۴- کاربران خاص منظوره
تنها وجه تمایز کاربران خاص منظور نرم‌افزارهایی هستند که مورد استفاده قرار می‌دهند. مثلاً Photoshop، Autocad، Mathlab، CATIA یا هر کدام از نرم‌افزارهای دیگری که در زمینه عکاسی، ریاضی، عمران، صنایع، فیزیک، شیمی، برق، پزشکی، انیمیشن، طراحی و غیره مورد استفاده قرار می‌گیرد. استفاده این افراد از کامپیوتر مختص به همین کاربرد خاص‌شان است. متاسفانه به نظر می‌رسد این طور نرم‌افزارها در بیشتر موارد هیچ معادلی در GNU/LINUX ندارند و کاربر مجبور است به خاطر کاربرد خاصش برای همیشه در ویندوز بماند.

 

مطالعه بیشتر:

‫چرا FOSS (و Open Source) برای ما خوب است؟

foss FOSS یا Free/Open Source Software همان چیزی است که در ایران آن را عمدتاً به نام Open Source یا کد باز می‌شناسند. خیلی‌ها FOSS را به دلیل غیر انحصاری بودن و فلسفه‌ای که پشت آن است به نرم افزارهای تجاری/انحصاری مثل نرم افزارهای مایکروسافت ترجیح می‌دهند. اما من FOSS را جدا از سلیقه شخصی خودم از دیدگاه دیگری برای بازار نرم افزار ایران بهتر می‌دانم که دلایل آن در ادامه آمده است.

۱- عمده نرم افزارهای FOSS یا حداقل آنهایی که می‌توانند کار ما را راه بیندازند مثل Ubuntu Linux، Firefox، Nhibernate و PHP مجانی هستند. پس مجبور نیستیم پولی بابت آنها بدهیم یا با عذاب وجدانی هر چه تمام‌تر از crack آنها استفاده کنیم. عذاب وجدان crack هیچ وقت از بین نمی‌رود چون دزدی دزدی است چه دزدی نرم افزار چه دزدی و بالا رفتن از دیوار مردم و چه دزدی از یک ایرانی/مسلمان و چه دزدی از یک آمریکایی/مسیحی. البته استفاده از نرم افزارهای غیر آزاد ولی مجانی مثل MS SQL Express هم می‌تواند ما را از شر crack و مشکلات اخلاقی آن رها کند.

۲- شاید بتوانیم با کمک FOSS و Customize کردن آنها از شر نرم افزارهای مالی/اداری مزخرفی که هر روزه به نام نرم افزار تولید وطن به شرکت‌ها و ادارات قالب می‌شوند خلاص شویم. به علت وضع خیلی بد بازار و کیفیت خیلی پایین فارغ التحصیلان نرم افزار کشور، برنامه‌های مالی اداری تولید داخل مثل انواع نرم افزارهای حسابداری، حقوق و دستمزد، انبار و… که گاهاً عناوینی مثل ERP، سیستم جامع و غیره و غیره را به یدک می‌کشند سطح کارکرد بسیار پایینی دارند. این نرم افزارها با باگ‌های بی‌پایان و انعطاف پذیری خیلی کمی که دارند نه تنها نمی‌توانند امورات ادارات و سازمان‌ها را به درستی رتق و فتق کنند بلکه باعث شده‌اند عوام الناس و صاحبان مشاغل هیچ اعتمادی به یک سیستم مکانیزه/کامپیوتری نداشته باشند. در حال حاضر تعداد زیادی نرم افزار مالی اداری و حتی ERPهای FOSS در بازارهای جهانی وجود دارد که امید است با custom کردن آن برای قوانین داخلی ایران و محلی سازی و فارسی سازی آنها بتوان موجی از نرم افزار با کیفیت را در داخل کشور ایجاد کرد. فارسی سازی، محلی سازی و customize نرم افزارهای بزرگی مثل Compiere و Open Bravo که از چند وقت پیش شروع شده می‌تواند الگوی خوبی برای این حرکت باشد.

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

۴- نرم افزارهای FOSS باعث کاهش هزینه‌ها و مشکلات قانونی host و hosting می‌شود. اگر در برنامه‌ای که می‌نویسید به جای MS SQL Server و IIS از MySQL و Apache استفاده کنید می‌توانید از سرورهای ارزان قیمت‌تری برای host برنامه‌تان استفاده کنید. ضمنا هیچ وقت هم سرور شما به دلیل استفاده از نرم افزارهای غیر قانونی تعطیل نمی‌شود.
۵- بقیه مزایایی که FOSS برای ما دارد همان‌هایی هستند که FOSS برای بقیه دارند از جمله کاهش دوباره‌کاری‌ها و انجام پروژه‌های تکراری، جامعه بزرگ پشتیبانی، به روز رسانی‌های بیشتر و سریع‌تر، ایجاد رقابت در صنعت نرم افزار، افزایش دوستی بین ملل دنیا و…

 

پ.ن. ۱: بعضی افراد معتقدند حرکت ما به سمت FOSS می‌تواند خطرات و مشکلات تحریم آمریکا علیه کشور را کم کند. بعضی دیگر هم معتقدند که FOSS ما را از وابستگی به شرکت‌های بزرگ دنیا مثل مایکروسافت رها می‌کند. به نظر من هیچ کدام از این دو نظر درست نیستند چون در ایران هیچ پولی بابت نرم افزارهای خارجی پرداخت نمی‌شود و همه نسخه‌ها غیر قانونی است پس تحریم یا وابستگی خطری برای خلافکاران دنیای نرم افزار ایجاد نمی‌کند!

پ. ن. ۲: یک بحث قدیمی در انجمن برنامه نویس راجع به Open Source، مدل تجاری و فلسفه آن وجود دارد که در آن نکات ارزشمندی برای فهم FOSS وجود دارد. توصیه می‌شود حتما مطالعه بفرمایید.

 

مطالعه بیشتر:

‫‫FOSS در ایران

iran2  بعضی از بحث‌های FOSS در ایران قابل فهم نیستند مثل آن قسمت مربوط به نرم افزارهای Proprietary که در آن کاربران حق دستکاری نرم افزار یا استفاده در مقاصد از قبل مشخص نشده را ندارند. آن هم به این دلیل که چنین قوانین سفت و سختی در ایران وجود ندارد و همین معدود قوانین مربوط به نرم افزار و حق تالیف هم با اما و اگرهای فراوان اجرا می‌شود.
خیلی از قوانین اجازه‌نامه‌های نرم افزارهای FOSS به علت عدم رعایت قوانین بین المللی در ایران هیچ محلی از اعراب ندارد. هیچ کس توجهی به این قوانین ندارد و صحبت در این باره متاسفانه برای خیلی از افراد خنده آور است. مثلا بعضی شرکت‌های محترم ایرانی یک نرم افزار FOSS را که تحت یک اجازه‌نامه سهو تالیف (کپی‌لفت) قرار دارد را پیدا کرده و پس از اعمال تغییراتی به صورت کد بسته (بدون دادن کد منبع آن به بقیه) و با حذف نام تولید کننده اصلی به نام خودشان می‌فروشند!
یکی از قوانین مهمی که در مورد تعداد زیادی از نرم افزارهای کد باز وجود دارد این است که شما حق دستکاری و توزیع مجدد یک نرم افزار و کد منبع آن را دارید و حتی می‌توانید آن را تغییر داده یا در نرم افزار خودتان استفاده کنید و حتی می‌توانید نسخه تغییر یافته را به فروش برسانید ولی حق ندارید اجازه‌نامه (license) آن را عوض کنید. یعنی قانوناً مجبور هستید نرم افزار خودتان که در واقع تغییر یافته همان نرم افزار قبلی است را به صورت کدباز منتشر کرده و به دیگران هم اجازه بدهید نرم افزار شما را دستکاری کرده و مجددا به صورت آزادانه توزیع نمایید.

مطالب مرتبط:

FOSS چیست؟
کمی درباره GFDL (‫اجازه‌نامه مستندات آزاد گنو)
کپی‌لفت (Copyleft) چیست؟

‫FOSS چیست؟

FOSS مقدمه
FOSS یا Free/Open Source Software یعنی نرم افزارهای آزاد و نرم افزارهای کد باز. به عبارتی FOSS نمایانگر دو نوع نرم افزار می‌باشد یکی نرم افزارهای آزاد (Free) و دیگری نرم افزارهای کد باز (Open Source).

نرم افزارهای آزاد
در مقابل نرم افزارهای آزاد (Free)، نرم افزارهای Proprietary قرار دارند. نرم افزارهای Proprietary آن گونه که در ممالک متمدن رایج است بر اساس اجازه‌نامه‌های (License) خاصی منتشر می‌شوند که این اجازه‌نامه‌ها کاربر را از هر گونه تغییر در نرم افزار و یا استفاده از آن در مقاصدی به غیر از مقاصد تعریف شده در اجازه‌نامه آن منع کرده است. مثلا ویندوز ویستا یک نرم افزار Proprietary است. در نتیجه مطابق اجازه‌نامه ویندوز ویستا حق ندارید بعضی dllهای خاص آن را دستکاری کنید. علاوه بر این حق استفاده از ویندوز ویستا را مثلا در سرور شبکه‌ای با بیش از ۱۰ کاربر ندارید. از طرفی دیگر، نرم افزارهای آزاد را هر طور که دلتان خواست می‌توانید دستکاری کرده و به هر منظوری که خواستید می‌توانید استفاده کنید. نرم افزارهای آزاد هم می‌توانند همچون نرم افزارهای Proprietary پولی باشند. در واقع تنها تفاوت نرم افزار آزاد و نرم افزار Proprietary در آزادی نحوه استفاده از آن است و الا هر دو می‌توانند پولی بوده و لزومی ندارد که هیچ کدام از این دو کد باز (Open Source) هم باشند. مثلا مایکروسافت می‌تواند MS Office را یک نرم افزار آزاد اعلام کرده ولی همچنان در قبال هر نسخه از آن همان پولی قبلی را دریافت کرده، کاربران را از توزیع مجدد آن منع و کد منبع (Source Code) آن را هم به هیچ کسی ندهد. معادل واژه آزاد در انگلیسی یعنی Free واژه‌ای با دو معنا است که یک معنی آن آزاد و آزادی و معنی دیگر آن رایگان است. که البته در اصطلاح Free Software از معنای اول آن یعنی آزادی استفاده شده است. خوشبختانه واژه آزادی در فارسی فقط یک معنی و آن هم معنی درست آن را می‌رساند.

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

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

FOSS در ایران
بعضی از بحث‌های FOSS در ایران قابل فهم نیستند مثل آن قسمت مربوط به نرم افزارهای Proprietary که راجع به منع کاربران از دستکاری نرم افزار یا منع استفاده از نرم افزار در مقاصد از پیش گفته نشده است. این موضوع به این دلیل است که چنین قوانین سفت و سختی در ایران وجود ندارد و همین معدود قوانین مربوط به نرم افزار و حق تالیف هم با اما و اگرهای فراوان اجرا می‌شود.
خیلی از قوانین مصروحه در اجازه‌نامه‌های نرم افزارهای FOSS مثل GPL به علت عدم رعایت قوانین بین المللی در ایران هیچ محلی از اعراب ندارند. هیچ کس توجهی به این قوانین ندارد و متاسفانه صحبت در این باره برای خیلی از افراد خنده‌دار است.  مثلا بعضی شرکت‌های محترم ایرانی یک نرم افزار FOSS را که تحت یک اجازه‌نامه کپی‌لفت قرار دارد را پیدا کرده و پس از اعمال تغییراتی به صورت کد بسته (بدون دادن کد منبع آن به بقیه) و با حذف نام تولید کننده اصلی آن به نام خودشان می‌فروشند! یکی از قوانین مهمی که در مورد تعداد خیلی زیادی از نرم افزارهای آزاد/کدباز وجود دارد این است که شما حق دستکاری و توزیع مجدد یک نرم افزار و کد منبع آن را دارید و حتی می‌توانید نسخه تغییر یافته را به فروش برسانید ولی حق ندارید اجازه‌نامه آن را عوض کنید. یعنی قانونا مجبور هستید نرم افزار خودتان را هم که در واقع تغییر یافته همان نرم افزار قبلی است را تحت همان اجازه‌نامه و به صورت کد باز منتشر کرده و به دیگران هم اجازه بدهید نرم افزار شما را دستکاری کرده و یا مجددا به صورت آزادانه توزیع نمایند.

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

 

منابع