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

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

امسال هم همایش‌های روز آزادی نرم‌افزار بطور جدی در حال برگزاریه

اصفهان و تهران رو من خبر دارم ولی اگه تو شهرتون همایش برگزار میشه با بزرگواری بهم لینک بدید، خودم امسال هیچ هدف خاصی واسه شرکت تو همایش بچه‌های اصفهان ندارم، پس شرکت نمی‌کنم ولی اگه به شما نزدیکه یا هدف معلومی دارید حتماً شرکت کنید؛ در کل هم خیلی خوشحالم که ۲۱۸ نفر تا همین لحظه ثبت‌نام کردن.

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

۲۸ شهریور ۹۲ ، ۱۳:۳۴
مهدی غفاری

روز مهندس نرم‌افزار

خب واضحه

مطلب خاصی ندارم بگم

فقط امیدوارم به زودی به جمعشون بپیوندم

۰۳ مرداد ۹۲ ، ۱۸:۰۵
مهدی غفاری

تولد ۱۹ سالگی

آره دیگه امروز ۱۹ سالم تموم میشه :) حال و هوای خاصی جز درس خوندن واسه امتحان فردا (شبکه) نیست.

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

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

از واحد کنترل کیفیت شاتل هم که لطف میکنه زنگ میزنه ممنونم :)

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

مدیریت مسیریابی چند مسیره با استفاده از پیش‌بینی ترافیک بر مبنای شبکه‌های عصبی

اینم موضوع پروژه دوره کاردانی پیوسته اینجانب بود که ترجمه‌ی مقاله‌ی با همین عنوان در سومین کنفرانس بین المللی شبکههای اطلاعاتی در حال ظهور بود.

اصل مقاله و ترجمه رو می‌تونید از لینک زیر دانلود کنید:

 

دریافت
حجم: 6.14 مگابایت

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

ترجمه کتب لیبرآفیس - Getting Started

Getting Started with LibreOffice

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

خب انگار این قضیه بیشتر از این که تو نردها رواج داشته باشه تو گیک‌ها رواج داره

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

فعلا واسه نسخه ۴ فقط کتاب Getting Started به صورت کامل در دسترسه

بعد از خوندن نسبی کتاب خوندنش رو توصیه میکنم همچنین مشتاقانه منتظر کامل شدن کتاب Writer و Impress هستم

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

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

https://wiki.documentfoundation.org/Documentation/Publications

https://wiki.documentfoundation.org/Documentation/Other_Documentation_and_Resources

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

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

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

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

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

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 عوض کنید تا شکیل‌تر دیده بشه


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

دانلود پروژه

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