یک 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

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

دانلود فیلم


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

http://movie.peji.ir/

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

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 کنید تا به شما خروجی درست زیرنویس را بدهد.

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