یک json parser ساده با c


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

یکی از اون کارها نوشتن یک json parser هست که بتونه همه ی حالت های json رو پردازش کنه و بشه از اون dump گرفت. مدیریت کردن Ram در زبان c کمی حوصله میخواد و اگر جایی رو حواست نباشه ممکنه memory leak داشته باشیم. برای همین تمام برنامه ها رو با valgrind چک میکنم که جایی memory leak نداشتم باشم.

لینک پروژه :

https://github.com/pejman-hkh/c-json-parser

نمونه dump :

[boolean : true]
[color : #82b92c]
[null : null]
[number : 123]
[object : 
[a : b]
[c : d]
[e : f]]
[string : HelloWorld]
[array : 
[0 : 1]
[1 : 2]
[2 : 3]]
[boolean1 : true]
[color1 : #82b92c]
[null1 : null]
[number1 : 123]
[object1 : 
[a : b]
[c : d]
[e : f]]
[string1 : HelloWorld]
[array1 : 
[0 : 1]
[1 : 2]
[2 : 3]]
دیدگاه بگذارید

یک 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 این رو اضافه نکرده ... به جای چرخوندن عکس و گذاشتن کلی وقت میشه یک تگ رو تغییر داد و به جاش عکس رو چرخوند ولی این استاندارد خیلی جاها هنوز اعمال نشده.

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