مشاوره و پشتیبانی #پایگاه داده #هوش تجاری

ترجمه فلاکس بی‌بی ۱.۵.۳

یه زحمت گروهی:

http://fluxbb.org/resources/translations

۱۴ فروردين ۹۲ ، ۱۴:۲۱ ۰ نظر
مهدی غفاری

Mir ، Wayland و X - پروژه‌هایی متفاوت

جدا از تفاوت‌های معماری بین Mir(میر) و Wayland(ویلند)، Mir و Wayland اهداف کاملاً متفاوتی برای پروژهایشان دارند. از آن جایی که Wayland برای بعضی‌ها گیج کننده به نظر میرسد (که بی‌دلیل هم نیست؛ چون ویلند اندکی پیچیده است) من توضیحی درباره این پروژه‌های متفاوت و اهدافشان با در نظر گرفتن X11 به عنوان یک نقطه مرجع میدهم.

X11 و X.org

هر کسی با سرور محلی و کاربر‌پسند X خوب آشناست. این چیزی است که ما در حال حاضر به عنوان سرور نمایش پیش‌فرض لینوکس در اختیار داریم. اهداف این مطلب درباره تکنولوژی‌های تشکیل دهنده X است:

پروتوکل X11

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

کتابخانه‌های کلاینت X11

هیچ کس حقیقتاً با فرستادن داده‌های پردازش نشده از یک سوکت با X ور نمی‌رود؛ کاربران معمولاً از کتابخانه‌های کلاینت استفاده می‌کنند - XCB امروزی، یا Xlib قدیمی کسل کننده(همچنین شناخته شده با نام libX11.so.6). آن‌ها کار کسل‌کننده در اختیار گذاشتن داده‌های دو-دویی به سرور را انجام می‌دهند و سرور X را از دید گسترده‌تری بهرمند می‌کنند؛ دیدی که XOpenDisplay را قادر میسازد انجام کارها را بهتر شروع کند.

آن چه که در بالا گفته شد در حقیقت کمی تا نسبتی دروغ است، تقریباً بیشتر وقت‌ها کاربران حتی از XCB یا Xlib هم استفاده نمی‌کنند. آن‌ها از تولکیت‌هایی نظیر +GTK یا QT استفاده می‌کنند و آن‌ها از Xlib یا XCB استفاده می‌کنند.

سرور Xorg

این قسمتی است که مشخصاً بیش از همه به X ارتباط دارد - تک، بی‌همتا، Xorg سرور X! این سرور نمایش از /usr/bin/X اجرا می‌شود که همه آن را می‌شناسیم و دوستش داریم. اگر چه کارهای دیگری هم توسط X11 انجام می‌شوند، اما این تمام چیزی است که شما بر روی میزکاری آزاد خواهید دید، یا بر روی OSX. پس اینها مبنای کار ما رو تشکیل میدن؛ یه پروتوکل، یه کتابخونه کلاینت یا بیشتر و یه پیاده‌سازی سرور نمایش. نظرتون درباره mir و wayland چیه؟

پروتوکل Wayland

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

تفاوت‌ دیگر با X11 این است که با همه چیز همانند یک افزونه رفتار می‌شود - شما با همه اینترفیس‌های پروتکل مرکزی به همان شکلی برخورد میکنید که با افزونه‌هایی که خودتان نوشته‌اید. و شما افزونه‌های زیادی می‌نویسید - برای مثال، پروتکا مرکزی هیچ ساز و کاری برای انتقال بافر به غیر از SHM ندارد، به همین دلیل یک افزونه برای بافرهای drm در mesa وجود دارد.

 کتابخانه کلاینت wayland

یا libwayland. کتابخانه کلاینت Wayland اساساً تنها یک کتابخانه IPC است؛ اندکی شبیه به Xlib و XCB. همچنین برخلاف XCB و Xlib کتابخانه کلاینت Wayland به شکلی وابسته به برنامه از تعریف پروتکل به وجود آمده است. این کتابخنه واقعاً کتابخانه IPC خوبی است.

به هر حال انتظار نمی‌رود که شما از این کتابخانه هم همانند XCB و Xlib استفاده کنید. شما قرار است از یک تولکیت مثل QT یا +GTK، و یا از EGL به همراه انتخاب‌های شما از API (واسط توسعه) های طراحی محور Khronos اگر می‌خواهید متفاوت باشید. آن‌جا همچنین کتابخانه‌ای هم برای خواندن پوسته‌های اشاره‌گر X وجود دارد.

سرور Wayland

اینجا جایی است که مسیرها از هم جدا می‌شوند. هیچ سرور Wayland ای به معنی این که سرور Xorg ای هم باشد وجود ندارد. البته weston وجود دارد، اما weston عمیقاً به قصد محیطی آزمایشی برای حصول اطمینان از عملکرد پروتکل طراحی شده است.

بنابراین محیط‌های میزکار، سرور Wayland خودشان را، خود با استفاده از پروتکل و کتابخانه‌های کلاینت می‌نویسند.

پروتکل Mir؟

ما کمابیش یک پروتکل IPC مشخص داریم، اما نه حقیقتاً. ما قرار نیست که از عملکردهای دگرباره‌ی کتابخانه‌های کلاینت Mir پشتیبانی کنیم، و اگر کسی بخواهد آن‌ها را متلاشی کند هم زحمتی به خرج نمی‌دهیم. جدا از آن ما از  Google Protobuf برای فرمت IPC خودمان استفاده می‌کنیم.

کتابخانه‌های کلاینت Mir

چیزی که تولکیت‌ نویس‌ها استفاده می‌کنند؛ حتی به آن  mir_toolkit هم گفته می‌شود. دوباره تکرار می‌کنم شما احتمالاً نمی‌خواهید که مستقیماً از این استفاده کنید. شما قرار است که از یک تولکیت شل +GTK یا QT استفاده کنید؛ و همانند Wayland اگر می‌خواهید که مستقیماً طراحی کنید، شما از EGL به همراه GL/GLES/OpenVG استفاده خواهید کرد.

سرور Mir؟

کمابیش. در حالی که کتابخانه‌های Wayland همگی درباره IPC هستند، Mir در رابطه با به وجود آوردن کتابخانه‌ای برای انجام دادن کار طاقت فرسای یک کامپوزیتور سرور نمایش است، پس با این حساب بیشتر از Wayland شبیه Xorg است.

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

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

شاید ما آن‌قدر خارق‌العاده شویم که دلیلی شود برای گنوم یا کی‌دی‌ای که کامپوزیتورهای خود را بر مبنای Mir دوباره پایه‌ریزی کنند، اما راه درازی برای پیمودن تا آن موقع وجود دارد.

آخرین باری که من کسی را دیدم که چنین رویکردی را روی Wayland امتحان می‌کرد، مشکلاتی پیرامون ارتباط با پلتفرم mesa EGL داشت، بدین معنی که شما قادر نبودید پروتکل را بدون استفاده از کتابخانه موجود C به راه بیاندازید. مطمئن نیستم که این مشکل تا به این لحظه حل شده باشد.

۱۳ فروردين ۹۲ ، ۱۷:۱۷ ۰ نظر
مهدی غفاری

پروژه آلفا

یه ایده‌ که به ذهنم رسید بعد از خوندن مطلب چرا گنو/لینوکس را دوست دارم – تئوری بیگ بنگ  نوشتن یه برنامه تو همین موضوعه

تئوری بیگ بنگ بیگی مشکلات زیادی داره و ماژولار نیست

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

یه برنامه قبلا با جاوا نوشتم که به داده بانک اینترنی فیلم‌ها (imdb) وصل میشد و جستجو میکرد و رکوردها رو ذخیره و یه حالت درست کردن آرشیو از اطلاعات برام داشت

اگه بتونم باز این ایده رو گسترش بدم و روی سرور به صورت ترکیبی با تورنت تا گرفتن و هماهنگ کردن زیرنویس با یه رابط وب راه بندازم

۱۲ فروردين ۹۲ ، ۲۲:۰۱ ۰ نظر
مهدی غفاری

شبکه‌های عصبی - موجی از آینده

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

Neural network example

ادامه مطلب...
۱۲ فروردين ۹۲ ، ۱۲:۱۳ ۰ نظر
مهدی غفاری

جایی برای کد زدن - پروژه درس ساختمان داده

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

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

secure-coding

ترم سوم بود که واسه درس ساختمان‌داده یه سری پروژه بهمون دادن که من بی‌خودی انگار نشستم همشون رو انجام دادم و وقتم رو گذاشتم روش تا استاد آخرش پروژه‌ها رو نگاه نکنه و دادن دیسک خالی هم بهش کفایت کنه

البته این داستان چندین سالی هست که با منه(تقریبا از همون اول زندگی) ولی همیشه اشتیاق زیادی به انجام دادن کارها داشتم به هر حال

پروژه شامل این موارد میشد که یکیش واسه هر نفر کفایت میکرد ولی دیگه ذهن کنجکاو نمیذاره شب خوابت ببره :)

 

بستر پروژه ویندوز ۷ و رابط Visual CPP 2010 32bit:

۱- برنامه‌ای بنویسید که یک عبارت ریاضی را از کاربر گرفته و با تشخیص نوع عبارت ۲ نمایش دیگر آن را برایمان چاپ کند.
(ابتدا باید بررسی شود که عبارت معتبر است یا خیر)

prefix-infix
infix-posifix

۲- پیاده سازی لیست ۲ پیوندی
اعمال اضافه کردن
اعمال حذف کردن
عمل جستجو
و ...

۳- پیاده‌سازی گرافیکی هانوی

تعداد میله ها همواره ثابت است و تنها تعداد دیسک ها برای کاربر تا یک سقفی قابل تعیین باشد

۴- مطلب و مقاله درباره صف و پشته و درخت و موارد کاربرد در شبکه و علم کامپیوتر در چند صفحه (مثال غیر درسی)

 

توضیحات پیرامون برنامه‌ها:

تابع main: فقط یکی از فایل‌ها باید تابع main داشته باشه باقی فایل‌ها باید اسم تابع main شون عوض بشه تا برنامه مورد نظر کار کنه و تداخل ایجاد نشه


برج هانوی: خروجی توی یه فایل هم ذخیره میشه تا قابل دیدن باشه خروجی توی فولدر test به نام output.txt ذخیره میشه؛ فونت نوت پد رو به Courier New عوض کنید تا شکیل‌تر دیده بشه


عبارت‌ها: از درخت استفاده شده؛ از پشته هم می‌شد استفاده کرد ولی با درخت کاملتر پیاده سازی می‌شد

دانلود پروژه

۰۹ فروردين ۹۲ ، ۱۸:۱۶ ۰ نظر
مهدی غفاری

دسکشات آرچ با یونیتی

deskshot

Arch + Ubuntu

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

این دسکشات به صورت ترکیبی از پکیج‌ها، پچ‌ها و شخصی‌سازی‌های مختلف استفاده میکنه تا بهترین تجربه رو به من تو کارایی بالا بده :)

۰۵ فروردين ۹۲ ، ۱۳:۰۲ ۳ نظر
مهدی غفاری

کتاب آرچ

 دقیقا پارسال تو همچین روزهایی بود که نسخه اول کتاب آرچ رو همراه با آقای ایمان امینی منتشر کردیم

پارسال رو به یاد میارم که تازه ترم اول دانشگاه بودم و تازه از موسسه IT به خاطر ثبت‌نام و کارهای دانشگاه بیرون اومده بودم

یادمه از zconf ۸۹ به بعد بود که مقاله روزبه (دانلود) رو بارها و بارها شب و روز میخوندم؛ شیفته آرچ و فلسفه‌اش شده بودم

اوبونتو و سایر توزیع‌های مناسب دسکتاپ که تا اون موقع تست کرده بودم نتونسته بودن ذهن کنجکاو منو ارضا کنن، پس به فکر یه تغییر اساسی بودم ...

تجربه دوساله‌ کار با آرچ و جامعه بی‌نظیر اون منو تشویق میکرد که این رویه رو تو ایران ادامه بدم

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

تو این یکسال تیم توسعه اصلی آرچ تغییرات بنیادی زیادی رو با هدف کلی، ساده‌تر شدن و توسعه سریعتر به کار گرفت

که عملا باعث میشد راهنمای نصب احتیاج به تغییرات وسیعی داشته باشه

با این که تو این یکسال حاشیه‌هایی در این باره ایجاد شد، ولی من از ایمان به خاطر این قدم همواره تقدیر میکنم

خوندن هر ۲ نسخه کتاب رو به همه پیشنهاد میکنم 

کتاب آرچ ۲۰۱۳.۱ :

http://emanlog.com/?p=324

:: ::

 odt :: http://bayanbox.ir/id/7747204992221635721

 pdf :: http://bayanbox.ir/id/1193804289256045765

Md5sum::3017abc333ecc6a08cc6875043b179f8

Md5sum::c534d6ae7ca5e57d6e0723253d593dd4

کتاب آرچ ۲۰۱۲.۱ :

http://emanlog.com/?p=167

:: :: 

 odt :: http://bayanbox.ir/id/1748915407162108966

 pdf :: http://bayanbox.ir/id/5253336925030648562

Md5sum::25e184464b46be1c1e5aeb4468b65c8b

Md5sum::1ddbbe27afaba3346ef7da73b2594253

۲۵ اسفند ۹۱ ، ۱۸:۵۴ ۰ نظر
مهدی غفاری

زیرنویس فیلم "پوچی حق انحصاری ثبت اختراع"

Patently_Absurd

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

برای دانلود فیلم همراه با زیرنویس فارسی، به وبسایت پروژه مراجعه کنید:

http://patentabsurdity.com/download.html

یا به طور مستقیم از این لینک دانلود کنید.

Md5sum::f0e03c2973f33bd3fbd973b6f1ded7e7

۱۴ اسفند ۹۱ ، ۰۸:۵۶ ۲ نظر
مهدی غفاری

بام تهران - پرش اول

اوبنتو لوکو بام تهران

دیروز رفته بودم بام تهران که تو اولین همایش loco اوبنتو شرکت کنم

با این که leader(دانیال) خودش با ۲ ساعت تاخیر به جلسه رسید ولی جمع خوب و گرمی بود، از بحث‌ها گرفته تا عکس‌ها تا من

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

حس عجیبی داره، بالا رفتن از یه دکل ۴۰ متری تو اوج سرما :)

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

بالاخره "ورزشکار شجاع ما مهدی غفاری برای پرش آماده میشه"

۵ ثانیه اول خیلی خوب و سریع میگذره اصلا این قسمت رو از دست ندید

چند ثانیه بعدی که فشار باعث کشش طناب میشه از بهترین لحظاته

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

فکر میکنم دقیقاً مثل شناست هر چه قدر خودت رو سفت‌تر کنی احساس خفگی و ترس بیشتری داری، نباید به چیزی جز لحظه و کلمه فکر کنی

تو بار سوم چرخش احساس ترس و خطر سقوط عجیبی رو داشتم

بعد از ۳-۴ بار چرخش، آروم آروم میای پایین و همه چی تموم میشه

در کل تجربه خوبی بود، یه حال اساسی داشت فقط باید ازش لذت ببری ;)

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

http://www.youtube.com/watch?v=6jzsOPM_EOw

۱۲ اسفند ۹۱ ، ۱۰:۰۰ ۰ نظر
مهدی غفاری

سرآغاز

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

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

 

امیدوارم بلاگیدن خوبی بشه

۰۱ اسفند ۹۱ ، ۱۵:۵۲
مهدی غفاری