نوشته هایی پیرامون برنامه نویسی و طراحی وب

۳ مطلب در آذر ۱۳۹۳ ثبت شده است

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

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

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

خوب، آیا در مورد اینکه فراخوانی های سیستمی چطور در لینوکس کار میکند کنجکاو هستید؟ آیا میخواهید نحوه ردگیری فراخوانی های سیستمی را یاد بگیرد؟ آیا کنجاوید که کدام فراخوانی های سیستمی باید مانیتور شوند و چرا؟

پس به خواندن متن ادامه دهید، این مطلب برای شماست.

۰ نظر موافقین ۰ مخالفین ۰
بهنام ایزدی

خودکار کردن فرآیند طراحی ظاهر وب سایت با استفاده از grunt.js

مشکل !

کارکردن روی چندین پروژه و محصول مرتبط با رابط کاربری و ظاهر وب سایت در چندین ماه گذشته، باعث شد که تصمیم بگیرم فرآیند توسعه front-end را در این پروژه ها بهینه کنم. قبلا در مورد فریمورکهایی مانند Bootstrap و پیش پردازشگرهای CSS مثل SASS و اینکه چگونه میتوانند سرعت ایجاد سایتهای زیبا و responsive را به نسبت روشهای سنتی انجام این کارها افزایش دهند، صحبت کرده بودم.

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

درخواست از اعضای تیم برای اینکه خود را  با روشهای جدید وفق دهند، در حالی که مشغول انجام پروژه های دیگر نیز بودند غیر عملی به نظر می رسید. بنابراین تصمیم گرفتم با همان روش قدیمی کارکنم در حالی که می دانستم راه حال بسیار موثرتری برای این کارها وجود دارند.

راه حل

Grunt.js وارد می شود! اخیرا یک اسکرین کست در مورد نکات CSS از Chris Coyier تماشا میکردم که در آن از فرآیند توسعه خود برپایه Jekyll, Grunt, SASS و SVG صحبت میکرد. ناگهان فهمیدم که Grunt پاسخ مشکل من است. 

۲ نظر موافقین ۰ مخالفین ۰
بهنام ایزدی

دیباگ کردن یک اپلیکیشن Flask با استفاده از PyCharm

پیش فرض :

پیش فرض ما این است که شما با زبان برنامه  نویسی Python و فریمورک Flask آشنایی دارید. همچنین از محیط PyCharm برای برنامه نویسی پروژه های تحت پایتون خود استفاده می کنید.

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

PyCharm

PyCharm یک IDE (محیط برنامه نویسی مجتمع) برای توسعه برنامه های تحت Python هست که توسط شرکت JetBrains نوشته شده. اگر از ویژوال استدیو استفاده میکنید حتما با پلاگین Resharper محصول این شرکت آشنایی دارد. در این آموزش من از نسخه comuinty این نرم افزار که رایگان و اپن سورس هست استفاده خواهم کرد.

محیط توسعه PyCharm این قابلیت رو دارد که کد برنامتون رو به پروسسهای در حال اجرا ضمیمه (Attach) کنید. به کمک این قابلیت میتونید روی کد breakpoint بذارید و برنامه رو دیباگ کنید.

مشکل کجاست؟

مشکل از اینجا شروع میشه که میخواهید برنامه تحت Flask خودتون رو دیباگ کنید. خود Flask یک دیباگر داره و میشه از خروجی اون برای دیباگ کردن کد استفاده کرد اما کار کردن با این دیباگر یه مقداری آزاردهنده ( حداقل برای من) است. خوب راه حل اینه که کد پروژه در حال اجرای خودتون را به پروسس در حال اجرای Python که داره اپلیکیشن فلسک رو اجرا میکنه ضمیمه کنید. این کار میتونید از منوی Tools>Attach To Proccess انجام بدهید. اما این کار در مورد برنامه های فلسک جواب نمیده.

چکار باید کرد؟

اولین گام برای اینکه فرآیند Attach کردن کد به پروسس به درستی انجام بشه اینه که PyCharm رو با دسترسی root اجرا کنید. برای این کار میتونید از دستور gksudo استفاده کنید.

۱ نظر موافقین ۰ مخالفین ۰
بهنام ایزدی