وبلاگ سعید رسولی

بخور، بخواب، کد بزن

بخور، بخواب، کد بزن

گنو/لینوکس، پایتون، زندگی

مطالب پربحث‌تر

اگه یه مقدار ریاضی بلد باشید، فکر نکنم نیازی به توضیح داشته باشه:


نتیجه، توانایی، انگیزه

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ فروردين ۹۳ ، ۰۳:۴۱
سعید رسولی

سلام و تبریک عید نوروز و سال نو به همهٔ ایرانیان و هم‌زبانان خودم در داخل یا خارج ایران

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

به امید روزی که کشور ما پرچمدار دانش و فناوری باشه و بتونیم دوباره به ایرانی بودن‌مون افتخار کنیم.

البته حل مشکلات اقتصادی کشور و مردم هم که پیش‌نیاز اون هست، امیدوارم هر چه زودتر اتفاق بیفته.

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ فروردين ۹۳ ، ۰۸:۱۷
سعید رسولی

نسخهٔ 2.3.3 منتشر شد


افزونه‌های مربوط به مناسبت‌های ایران بر اساس تقویم رسمی ۱۳۹۳ به‌روزرسانی شد

یک باگ هم در تقویم هجری قمری به همراه یکی دو باگ جزئی برطرف شد


دانلود پکیج دبیان و اوبونتو

دانلود پکیج rpm برای اوپن‌سوزه 13.1


پیش‌پیش عید نوروز رو هم به همه تبریک می‌گم :)

۸ نظر موافقین ۰ مخالفین ۰ ۱۴ اسفند ۹۲ ، ۰۸:۰۳
سعید رسولی

در این صفحه

http://ilius.github.io/starcal/index#donate

که شاید یک روز بتونم به صفحهٔ خانگی پروژه تبدیل‌ش کنم، به کمک وبسایت زرین‌پال، یک قسمت اهدا یا Donation اضافه کردم که از طریق درگاه پرداخت الکترونیکی هر یک از بانک‌های عضو شتاب (با داشتن یک کارت شتاب و رمز پرداخت الکترونیکی) می‌تونید هر مبلغی که خواستید (حداقل ۱۰۰ تومان) به پروژه کمک کنید

در ضمن بعد از پرداخت، به وبسایت زرین‌پال منتقل می‌شید و اگه اونجا موفقیت‌آمیز نشون بده، یعنی مبلغ واریز شده. گرچه بعدش دوباره به ilius.github.io منتقل میشید و خطای ۴۰۵ نشون میده که این خطا هیچ اهمیتی نداره (فعلاً نمی‌تونم برطرفش کنم)

۵ نظر موافقین ۰ مخالفین ۰ ۳۰ بهمن ۹۲ ، ۲۲:۰۰
سعید رسولی
نسخهٔ 2.3.2 منتشر شد

علاوه بر پکیج سورس و پکیج دبیان، پکیج rpm هم برای openSUSE 13.1 تست و آپلود شد

تغییرات از نسخهٔ 2.3.0؛
اسکریپت‌های نصب openSUSE و Fedora اصلاح شدند
پکیج python-igraph اختیاری شد (recommend)
دو باگ دیگه هم برطرف شد

۶ نظر موافقین ۰ مخالفین ۰ ۲۵ بهمن ۹۲ ، ۰۱:۰۶
سعید رسولی

انتشار StarCalendar 2.3.0 


sourceforge.net/projects/starcal/files/starcal2/2.3

github.com/ilius/starcal


این نسخه احتمالاً خیلی پایدارتر از 2.1.0 و 2.2.0 باشه.


تغییرات قابل ذکر از نسخهٔ 2.2


۱- بهبود Tray Icon

احتمالاً اولین تغییری هست که به چشم میاد.




نکتهٔ اول: قبلاً از دو فایل png برای ساخت آیکون tray استفاده می‌کرد (یکی برای روزهای تعطیل و یکی هم روزهای معمولی). اما الآن از فایل‌های svg استفاده میشه. که هم راحت‌تر میشه ادیت‌شون کرد (توسط خودم یا کاربر) هم کیفیت‌شون بالاتره و حتی با زیاد کردن ارتفاع panel تا ۱۲۸ پیکسل هم، خود به خود اندازهٔ آیکون تغییر می‌کنه و کیفیت کم نمیشه. این از خاصیت‌های تصاویر برداری هست


نکتهٔ دوم: آیکون‌ها قبلاً زمینهٔ سفید داشت، ولی الآن آیکون‌های زمینه‌سفید دوباره با svg طراحی شدن، و آیکون‌های تیره یا dark هم اضافه شدن و بطور پیش‌فرض هم آیکون dark جدید جای آیکون سفید png رو می‌گیره.


نکتهٔ سوم: می‌تونید آیکون tray رو از داخل ترجیحات برنامه تغییر بدید، مثلاً آیکون‌های زمینه‌سفید رو دوباره بذارید، یا اینکه فایل svg آیکون‌ها رو توی پوشهٔ خانگی خودتون کپی کنید، با Inkscape ویرایش کنید و به برنامه معرفی کنید تا از اونا بجای آیکون‌های پیش‌فرض استفاده کنه.

کافیه برید به قسمت: ترجیحات -> ظاهر -> شمایل Tray

(شمایل معادل فارسی Icon هست)



۲- منطقهٔ زمانی

اگه از من می‌پرسید مهم‌ترین تغییر در این نسخه چیه، می‌گم اضافه شدن قابلیت Time Zone به رویدادها هست.

البته رویدادهای تمام-روز نیازی به منطقهٔ زمانی ندارند. پس فقط در این نوع رویدادها می‌تونید منطقهٔ زمانی مشخص کنید: کار - رویداد هفتگی - رویداد دلخواه

و از اونجایی که منطقهٔ زمانی یک رویداد، در هنگام اضافه شدن/تعریف شدن مشخص میشه، پس در اولین اجرای برنامه، رویدادهایی که قبلاً وجود داشتن باید منطقهٔ زمانی براشون تعریف بشه و ذخیره بشه. به همین منظور، اولین باری که نسخهٔ 2.3 رو اجرا می‌کنید، دیالوگی باز میشه و این کار رو انجام میده. بطور دقیق‌تر، اگه ورژنی که توی فایل

~/.starcal2/event/info.json

هست، قدیمی‌تر از 2.3.0 باشه، این دیالوگ باز میشه.



۳- تغییراتی دیگر در رویدادها


ویرایش گروه -> نمایش در تقویم -> [x]روز [x]ماه [x]سال

مثلاً گروه‌هایی که تعداد رویدادهاشون در هر روز زیاده، یا متن رویدادهاش طولانیه، ممکنه نخواید توی تقویم هفتگی و تقویم ماهیانه نشون داده بشه، بلکه فقط توی رویدادهای روز (زیر تقویم) نشون داده بشه.


رویدادهای لحظه‌ای که طول‌شون صفر بود (ابتدا و انتهاشون یکی بود) قبلاً باهاشون مشکل داشتیم، یعنی توی تقویم نشون داده نمی‌شدن. که در این نسخه این مشکل برطرف شده.


مدیریت رویدادها -> جستجوی رویدادها -> [ ]حساس به حروف بزرگ و کوچک


گروه رویدادهای سالیانه -> ویرایش -> نمایش تاریخ در خلاصهٔ رویدادها

گزینه‌ای که در پلاگین‌ها (مناسبت‌های سالیانه) وجود داشت، ولی توی رویدادهای سالیانه هم نیاز بود.



قاعدهٔ رویداد هفته-ماه -> اضافه شدن گزینهٔ «هر ماه»

حالا میشه رویدادی شبیه «اولین دوشنبهٔ هر ماه شمسی» (روز باشگاه فیزیک) رو هم تعریف کرد.

با تشکر از «امیرمسعود پورموسی‎» بخاطر پیشنهادش.


روز باشگاه فیزیک - استارکلندر


۴- خط زمان: بهبود فاحش الگوریتمی در رندر کردن رویدادها

این به نظر خودم جذاب‌ترین کار در توسعهٔ این نسخه بود.

با استفاده از گراف (به مفهوم ریاضیاتی نظریهٔ گراف)، رندر کردن اون مستطیل‌های رویدادها، هم سریع‌تر شده (هر چی تعداد رویدادها بیشتر بشه، این تفاوت سرعت بیشتر خودش رو نشون میده) و هم موقعیت و ترکیب‌شون در رندر شدن خیلی بهبود پیدا کرد و هم کدش خیلی تمیزتر شده. امیدوارم در آینده بتونم این رو بصورت یک کتابخانهٔ جدا در زبانی مثل سی پیاده‌سازی کنم. چون کاملاً ابداع خودم بوده و معادلش رو جایی ندیدم.

به هر حال، اگه مثل خودم، تعداد زیادی رویداد توی خط زمان داشته باشید، این یک تغییر مهم به حساب میاد.

اگه هم هنوز از خط زمان زیاد استفاده نمی‌کنید، توصیه می‌کنم از امروز استفاده کنید.


البته این باعث شده برنامه به پکیج python-igraph وابسته بشه (که با وابستگی‌هاش کمتر از ۲ مگ هست)

اگه از پکیج‌های deb و rpm استفاده کنید خود به خود این پکیج نصب میشه.

اگه همpython-igraph رو نصب نکنید و برنامه رو از پکیج سورس اجرا کنید، برنامه اجرا میشه (ارور نمیده) ولی رویدادها در خط زمان نشون داده نمیشه.

دو اسکرین‌شات از خط زمان در نسخهٔ 2.2 و 2.3 گذاشتم تا تفاوت رو ببینید

تاریخ ایران رو بعنوان مثال در نظر گرفتم (مثال بهتری نداشتم)




۵- تغییراتی در پنجرهٔ اصلی


در پنجرهٔ اصلی، اگه تقویم ماه فعال باشه و روی یک قسمتش راست-کلیک کنید، یک گزینهٔ «تغییر به تقویم هفتگی» اضافه شده که با کلیک کردن روش، خیلی سریع تقویم ماه پنهان میشه و تقویم هفتگی جاش رو می‌گیره.

همینطور در منوی راست-کلیک تقویم هفتگی هم گزینهٔ «تغییر به تقویم ماه» اضافه شده.

قبلاً برای این کار باید پنجرهٔ شخصی‌سازی رو باز می‌کردید، یک تیک رو برمی‌داشتید و یک تیک رو می‌زدید و پنجرهٔ شخصی‌سازی رو می‌بستید. یعنی قبلاً با ۴ کلیک انجام میشد، الآن با ۲ کلیک.



شخصی‌سازی -> نوار پیش‌روی فصل‌ها

که همیشه بهتون نشون میده چند درصد از فصلی که توش هستید، طی شده.


شخصی‌سازی -> تقویم هفتگی -> نوارابزار -> منوی اصلی

آیکونی که با کلیک کردن روش، منوی اصلی باز میشه.

در ضمن با دکمهٔ F10 هم می‌تونید منوی اصلی رو باز کنید.


همینطور در نوارابزار تقویم هفتگی، اگه شمارهٔ هفته (در سال) فعال باشه، با کلیک کردن روی این عدد، تبدیل به یک عدد منفی میشه (یعنی چند هفته تا انتهای سال باقی مونده). با کلیک کردن مجدد تبدیل به عدد مثبت میشه.




۶- پخش صدای اذان توسط افزونهٔ اوقات شرعی


کافیه به قسمت تنظیمات پلاگین اوقات شرعی برید و فایل صوتی اذان رو بهش معرفی کنید.


در ضمن امکان پخش «صوت پیش‌اذان» هم وجود داره، مثلاً پخش قرآن، از ۱۰ دقیقه قبل از اذان.

که موقع اذان، این فایل متوقف میشه و فایل اذان پخش میشه (پس لازم نیست نگران طول صوت پیش‌اذان باشید، با اذان تداخل پیدا نمی‌کنه)


موقع اذان، این فایلی که مشخص کردید (که لزوما هم نباید صوتی باشه) با برنامهٔ پیش‌فرض‌ش باز میشه (انگار که روی اون فایل دبل‌کلیک کرده باشید). اگه می‌خواید این برنامهٔ پیش‌فرض عوض بشه، باید توسط File Manager سیستم، در قسمت Open with اون رو تغییر بدید.

این فایل اذان می‌تونه mp3 یا wav یا mpeg یا حتی اسکریپت bash و پایتون هم باشه.




۷- ماه‌های قمری


ماه‌های قمری برای سال ۱۳۹۳ شمسی هم طبق تقویم رسمی ایران، آپدیت شده. که البته در نسخهٔ 2.2.6 هم این تغییر اعمال شده بود.


همینطور در قسمت:

ترجیحات -> پیشرفته -> تنظیم ماه‌های قمری

دکمه‌های افزودن و حذف در سمت چپ اضافه شده.

ولی احتمالاً تا انتهای رمضان سال آینده به این «تنظیم ماه‌های قمری» نیاز پیدا نخواهید کرد.


۸- سایر تغییرات


کدهای مربوط رابط Qt هم از پکیج برنامه حذف شدن.

به دلیل اینکه خیلی وقت بود دست بهشون نزده بودم و عملاً out of date شده بود.

در مخزن git هم این کدها رو به یک branch جدا منتقل کردم. اگه تونستم دوباره آپدیت و تکمیل‌ش کنم، دوباره به برنامه اضافه می‌کنم.


و خب طبق معمول هم کلی رفع باگ و تمیزکاری انجام شده.

البته رفع باگ‌ها رو تا جایی که می‌تونستم در نسخهٔ پایدار برنامه (نسخه‌های 2.2.1 تا 2.2.7) اعمال کردم.

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


برنامه در حال حاضر حدود ۳۰ هزار خط کد پایتون داره.

میزان تغییرات کد از نسخهٔ 2.2 رو هم گیت بهمون نشون میده:

$ git diff --shortstat 2.2.0 2.3.0

194 files changed, 8175 insertions(+), 4350 deletions(-)




از نظرات شما استقبال می‌کنیم

موفق باشید


۶ نظر موافقین ۰ مخالفین ۰ ۲۷ دی ۹۲ ، ۲۳:۲۱
سعید رسولی

2.2.6 StarCalendar منتشر شد

با رفع چند باگ نسبت به 2.2.5

بروزرسانی ماه‌های قمری برای سال آینده (۱۳۹۳)

و حجم آرشیو tar.gz برنامه هم حدود ۷۰ کیلوبایت کاهش پیدا کرد (به دلیل حذف فایل‌های بلااستفاده)

https://sourceforge.net/projects/starcal/files/starcal2/2.2

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۲ ، ۱۴:۳۷
سعید رسولی

فایل ارائه‌ای که دیروز (۷ آبان) در تهران‌لاگ دادم با عنوان «بین‌المللی‌سازی و بومی‌سازی»

ODP (حجم: 1.03 مگابایت)

PDF (حجم: 1.13 مگابایت)

۳ نظر موافقین ۰ مخالفین ۰ ۰۸ آبان ۹۲ ، ۱۵:۱۴
سعید رسولی

تبدیل عدد به حروف، هم فارسی و هم انگلیسی

https://github.com/ilius/num2words

به زبان پایتون هست

اصل کدش رو خیلی وقت پیش نوشته بودم

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

۲ نظر موافقین ۰ مخالفین ۰ ۲۹ مهر ۹۲ ، ۰۰:۳۰
سعید رسولی

استارکلندر 2.2.4 منتشر شد

sourceforge.net/projects/starcal/files


حدود ۸ رفع باگ از ورژن 2.2.3 انجام شده.

و حدود ۲۲ باگ از ورژن 2.2.0 تا بحال برطرف شده.

برای دیدن لوگ تغییرات:

https://github.com/ilius/starcal

۴ نظر موافقین ۰ مخالفین ۰ ۱۹ مهر ۹۲ ، ۱۴:۱۳
سعید رسولی