یک threadpool ساده با c


ایجاد کردن تعداد زیادی thread باعث اشغال شدن ظرفیت کل cpu میشود. برای همین باید ایجاد کردن thread به صورت سازمندهی شده انجام بشه و تنها از ظرفیتی که سیستم داره استفاده کرد. برای همین از استخر thread استفاده میکنیم که پیاده سازی اون هم مستلزم ایجاد Queue و Task هست. قبل از اینکه thread ها رو ایجاد کنم یک Queue و Task خیلی ساده نوشتم که میشه داخل Queue مون Task هامون رو اضافه کنیم و بعد هر جایی خواستیم اون رو فراخونی کنیم.

https://github.com/pejman-hkh/c-queue-task

حالا میشه تمام Task ها رو به Queue اضافه کنیم و داخل چند Thread مجزا از Queue مون یک Task رو برداریم و اون رو اجرا کنیم. برای اینکه بشه از Queue مون همزمان توی چند تا Thread مختلف Task ئی رو برداریم از Mutex استفاده کردم و همچنین اگر صفمون خالی بود با Condition صف رو نگه داشتم که به رم و سی پیو فشاری نیاد...

https://github.com/pejman-hkh/c-threadpool-worker-job

لینک پروژه ها :

https://github.com/pejman-hkh/c-queue-task

https://github.com/pejman-hkh/c-threadpool-worker-job

دیدگاه بگذارید

phpoop


https://github.com/pejman-hkh/phpOop

این ایده به ذهنم رسید که بهتره توابع php همشون توی یک کلاس باشن و بشه ازشون پشت سر هم استفاده کرد. در این روش شیوه کد نویسی هم راحتتر میشه. به جای نوشتن تابع های تو در تو میشه پشت سر هم عملیات رو روی متغییرمون که میتونه آرایه و یا هر چیزی باشه انجام داد.

پروژه رو با Zephir lang هم بازنویسی کردم. ( برای Performance بهتر و ... )

دیدگاه بگذارید

مشکل زیرنویس فارسی


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

http://www.peji.ir/subtitle.html

دانلود فایل :

https://github.com/pejman-hkh/persian-subtitle

متن زیرنویس رو داخل اون Paste کنید و یا اینکه فایل رو Browse کنید تا به شما خروجی درست زیرنویس را بدهد.

دیدگاه بگذارید

Chrome bug orientation


مرورگر کروم برای عکس ها از تگهای Exif Data تگ Orientatoin رو در نظر نمیگیره. البته این باگی هست که همه ی مرورگرها دارن. فایر فاکس خاصیت image-orientation رو به Css اضافه کرده :

img {
    image-orientation: from-image;
}

ولی هنوز Chrome این رو اضافه نکرده ... به جای چرخوندن عکس و گذاشتن کلی وقت میشه یک تگ رو تغییر داد و به جاش عکس رو چرخوند ولی این استاندارد خیلی جاها هنوز اعمال نشده.

دیدگاه بگذارید

جمع با jit قسمت دوم


لینک پروژه :

https://github.com/pejman-hkh/tiny-jit-compiler

قسمت قبل را خیلی وقت پیش نوشتم و وقت نشد که آنرا ادامه دهم. جمع با jit که تنها یک قسمت کوچک از کامپایل هست را اینبار با nodejs انجام دادم که خروجی assembly به ما میدهد. (کد را حذف کردم ) در جلسه قبل ما توابع کوچکی برای اسمبل کردن نوشتیم که به جای print از آن توابع استفاده میکنیم تا جمع و ضرب و تقسیم ما به صورت jit انجام شود.

دیدگاه بگذارید