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

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

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

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

آخرین مطالب
مطالب پربحث‌تر

انتشار StarCalendar 2.2.0

پنجشنبه, ۲۶ ارديبهشت ۱۳۹۲، ۱۰:۲۷ ب.ظ


تغییرات قابل ذکر از نسخهٔ 2.1.2
  1. یکپارچگی با سیستم‌های کنترل ورژن 
    از این پس می‌توانید کامیت‌ها و تگ‌های یک مخزن محلی git یا hg یا bzr را در تقویم ببینید 
    بصورت دو نوع گروه جدید:
    • VCS Repository (Commits)
    • VCS Repository (Tags)
    نکات:
    • این شامل مخازن remote نمی‌شود. فقط مخازن محلی که در یک پوشه (احتمالاً بر روی هارد شما، یا یک mount point در شبکه یا وسیلهٔ خارجی) قرار دارند.
    • به این گروه‌ها نمی‌توانید هیچ رویدادی اضافه کنید. آن‌ها فقط شامل رویدادهای مجازی هستند (کامیت‌ها یا تگ‌های مخزن) که در استارکلندر فقط-خواندنی هستند
    • در پنجرهٔ مدیریت رویدادها، اگر این گروه را انتخاب کنید، تعداد رخدادهای گروه در نوار وضعیت نشان داده میشود(اگر گروه فعال باشد)، که تعداد کامیت‌ها یا تگ‌هایی است که در بازهٔ تاریخ مشخص شده در گروه (ویرایش گروه ← شروع و پایان) وجود دارد
    • شما نمی‌توانید هیچ تغییری در مخزن خود (مثل کامیت کردن یا تعریف تگ جدید) از طریق استارکلندر انجام دهید
    • کامیت‌ها و تگ‌ها فعلاً در پنجرهٔ خط زمان قابل مشاهده نیستند (از آنجا که زمان کامیت/تگ فقط یک لحظه است نه یک بازهٔ زمانی)، اما امیدوارم در نسخه‌های بعدی راه مناسبی برای پیاده‌سازی آن پیدا کنم (احتمالاً از طریق تعداد خطهای اضافه و حذف شده از کد)
    نکتهٔ فنی: پیاده‌سازی git با فراخوانی دستور git بصورت خارجی کار می‌کند. اما از آنجا که hg و bzr خودشان با زبان پایتون نوشته شده‌اند، کد استارکلندر به ماژول‌های پایتون کد آن‌ها لینک شده، تا بازدهی و سرعت بیشتری داشته باشد.

  2. رویداد هفتگی اضافه شده است

  3. قاعدهٔ رویداد هفته-ماه اضافه شده است 
    از این پس، می‌توانید رویدادهای کاربردی مثل این‌ها را تعریف کنید:که ترکیبی از روز هفته، و ماه هستند 
    کافی‌است یک «رویداد دلخواه» اضافه کنید، و قاعدهٔ «هفته-ماه» را به آن بیفزایید.

  4. رفع تعداد باگ مهم در رویدادها (مربوط به الگوریتم‌های زیرپایه‌ای)

  5. بهینه‌سازی‌هایی در تقویم هفته
    • می‌تواند خطهای جدول‌بندی (افقی و عمودی) را رسم کند، اگر آن را فعال کنید
    • یک ستون جدید به نام «جعبهٔ رویدادها» اضافه شده، که رویدادها را بصورت بصری و گرافیکی نشان می‌دهد، مانند پنجرهٔ خط زمان(اما بصورت عمودی)
    • یک ستون جدید به نام «تعداد رویدادها» اضافه شده، که تعداد رویدادها (یا بصورت دقیق‌تر، تعداد رخدادها) را برای هر روز نشان می‌دهد 
      نکته: یک رویداد (event) می‌تواند چندین رخداد (occurrence) داشته باشد، در این صورت به آن یک رویداد تناوب یا تکرار شونده می‌گویند، مثل رویدادهای سالیانه، ماهیانه و هفتگی.
    • در ستون «متن رویدادها»، یک گزینهٔ «رنگی کردن» اضافه شده، که در صورت فعال کردن، از رنگی که که در گروه رویدادها تعریف شده، برای نمایش رویدادها درون تقویم هفتگی استفاده می‌کند. این گزینه بطور پیش‌فرض فعال است.
    • برای دیدن تغییرات بالا به شخصی‌سازی ← تقویم هفتگی مراجعه کنید 
    • کلید منو (در کیبورد، کنار کلید کنترل راست) در تقویم هفتگی هم مثل تقویم ماه کار می‌کند (برای باز کردن منوی مربوط به روز انتخاب‌شده)

  6. بهینه‌سازی‌هایی در خط زمان 
    بعنوان مثال:
    • رویدادهای «زیست‌زمان» با دست قابل ویرایش هستن (با کشیدن و رها کردن حاشیهٔ مستطیل)، همانند رویدادهای از نوع «کار»
    • الگوریتم رسم جعبه‌های رویدادها بهبود داده شده (وقتی که بطور پیچیده‌ای با هم تلاقی و تداخل پیدا کنند)

  7. به‌روزرسانی افزونه‌های فارسی و ماه‌های قمری، بر اساس تقویم رسمی سال ۱۳۹۲ ایران 
    همچنین، افزونه‌های فارسی تغییر نام پیدا کرده‌اند، بنابراین لیست افزونه‌های فعال/غیرفعال، به حالت پیش‌فرض برمی‌گردد

  8. چند تغییر جزئی مانند: 
    • گروه رویدادها ← مرتب کردن رویدادها ← بر اساس «زمان اولین رخداد»، اگر گروه فعال باشد
    • کپی تاریخ با کلیک-وسط روی آیکون tray
    • شخصی‌سازی ← رویدادهای روز ← اضافه شدن گزینهٔ «حداکثر ارتفاع»
    • نمایش گزینهٔ «اطلاعات روز» در منوی اصلی

  9. و طبق معمول، برطرف شدن تعدادی باگ، بهینه‌سازی‌ها و تمیزکاری
  • نکاتی در مورد مخزن github و روند فعلی توسعه: 
    اگر می‌خواهید همیشه آخرین کدها را داشته باشید، باید از برنچ next بگیرید، نه برنچ master 
    تغییراتی که قرار است در ورژن minor بعدی (مثل 2.2.0 و 2.3.0) منتشر شوند، در برنچ next انجام می‌شوند. و درست قبل از انتشار هر ورژن minor (مثل همین الآن)، برنچ next داخل برنچ master اعمال می‌شود. و بعد از آن، معمولاً رفع باگ‌ها (که قرار است در ورژن پچ بعدی مثل 2.2.1 باشند) در برنچ master انجام می‌شوند. بعد از مدتی (احتمالاً چند ماه) که برنچ master نسبتاً پایدار شد(و مثلاً به 2.2.5 رسید)، بیشتر یا همهٔ تغییرات در برنچ next انجام می‌شوند (مثل چند ماه اخیر) تا زمانی که آمادهٔ انتشار شوند و وارد سیکل بعدی شود.

چند اسکرین‌شات:
البته با تم و تنظیمات شخصی خودم(نه پیش‌فرض)

تقویم هفتگی (2.2.0)

رویدادها در خط زمان و تقویم هفتگی


و زندگی‌نامهٔ خودم در خط زمان:
زندگی‌نامهٔ خودم در خط زمان (StarCalendar 2.2.0)


موافقین ۲ مخالفین ۰ ۹۲/۰۲/۲۶
سعید رسولی

نظرات  (۱۲)

بالأخره بعد از ماه‌ها تأخیر...
قبل از عید می‌خواستم این کار رو انجام بدم ولی به دلایلی نشد...
بازم دم شما گرم
سلام،

خوشحالم که هنوز این پروژه رو داری ادامه میدی. خیلی خوبه :)
سلام و خسته نباشید.

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

میشه نسخه آندروید هم داشته باشه یا اصلا کلا داستان فرق میکنه و باید از نو همه کدها نوشته بشه!!
پاسخ:
سلام و ممنون
گزینهٔ دوم صحیح است :D پایتون و مخصوصا gtk و qt توی اندروید جایی ندارن. باید با جاوا نوشته بشه.
۱۴ تیر ۹۲ ، ۱۴:۲۷ حامد بخشیان
سلام
بسیار ممنون از زحمت شما. آیا هیچ راهی هست که برنامه رو از روی یک repository توی اوبونتو نصب کنیم و خودش خود به خود به روز بشه ؟ اگه نیست، چرا ؟
پاسخ:
چون هیچ‌کس داوطلب نیست که پکیج اوبونتو رو maintain کنه
اوبونتو این پیام رو میده در هنگام نصب:
https://docs.google.com/file/d/0BwZPb9q5FzaqZlZ5bU42OEtOaDQ/edit?usp=sharing
پاسخ:
چطوری نصب کردید؟ با اسکریپت install-debian ساختید پکیج رو؟
اگه بله، خروجی ترمینال رو توی
بذارید
آقا دمت گرم با این تقویم. خیلی قشنگ و شیکه

با سلام و ارادت
از نسخه یک، تنها برنامه موثر و موفق تقویم بر روی کامپیوتر بنده همین starcal می باشد. ضمن تشکر و عرض خسته نباشید سوالی را هم با اجازه از محضر حضرتعالی می پرسم:
در نسخه پیشین یعنی ۲.۱ ، اوقات شرعی را به نوعی فعال کرده بودم که به محض نصب نسخه جدید آن مورد غیر فعال گردید و متاسفانه به خاطر نمی آورم آن امر چگونه محقق شده بود که در این نسخه نیز به همان منوال عمل نمایم.
آیا امکان فعال سازی مجدد اوقات شرعی در این نسخه وجود دارد؟ چگونه؟
پاسخ:
بله. به دلیل بعضی تغییرات، توی بعضی از انتشارها امکان غیرفعال شدن بعضی پلاگین‌ها وجود داره.
برای فعال کردن مجددش:
ترجیحات -> افزونه‌ها -> و تیک فعال رو بزنید
من کاربر آرچ لینوکس هستم.تا ورژن 2.2.0 نرم افزار جالب starcal2 روی سیستم من اجرا نمیشد(تو خط فرمان که نرم افزار اجرا میشد مشخص بود که یه متغیر درست مقداردهی نمیشه و به طور متوالی پیغام خطای تو خروجی نوشته میشد)
الان ورژن 2.2.3 اجرا میشه و gui بالا میاد اما اگر از طریق شل نرم افزار رو اجرا کنم خطای زیر داده میشه گرچه واسط گرافیکی بدون مشکل کار میکنه :

/usr/share/starcal2
Traceback (most recent call last):
File "/usr/share/starcal2/scal2/ui.py", line 532, in
__import__('scal2.accounts.%s'%name)
File "/usr/share/starcal2/scal2/accounts/google_starcal.py", line 42, in
from oauth2client.file import Storage
File "/usr/share/starcal2/google_api_client/oauth2client/file.py", line 37, in
from client import Storage as BaseStorage
File "/usr/share/starcal2/google_api_client/oauth2client/client.py", line 63, in
CACHED_HTTP = httplib2.Http('.cache')
File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1175, in __init__
self.cache = FileCache(cache)
File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 700, in __init__
os.makedirs(self.cache)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '.cache'

بعد از تغییر فونت پیشفرض در ترجیحات هم ارور خط فرمان به صورت زیر شد :

Traceback (most recent call last):
File "/usr/share/starcal2/scal2/ui.py", line 532, in
__import__('scal2.accounts.%s'%name)
File "/usr/share/starcal2/scal2/accounts/google_starcal.py", line 42, in
from oauth2client.file import Storage
File "/usr/share/starcal2/google_api_client/oauth2client/file.py", line 37, in
from client import Storage as BaseStorage
File "/usr/share/starcal2/google_api_client/oauth2client/client.py", line 63, in
CACHED_HTTP = httplib2.Http('.cache')
File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1175, in __init__
self.cache = FileCache(cache)
File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 700, in __init__
os.makedirs(self.cache)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '.cache'

^CTraceback (most recent call last):
File "/usr/share/starcal2/scal2/ui_gtk/starcal2.py", line 1216, in
sys.exit(main())
File "/usr/share/starcal2/scal2/ui_gtk/starcal2.py", line 1202, in main
mainWin = MainWin(trayMode=trayMode)
File "/usr/share/starcal2/scal2/ui_gtk/starcal2.py", line 575, in __init__
WeekCal(),
File "/usr/share/starcal2/scal2/ui_gtk/weekcal.py", line 687, in __init__
PluginsTextColumn(self),
File "/usr/share/starcal2/scal2/ui_gtk/weekcal.py", line 285, in __init__
Column.__init__(self, wcal)
File "/usr/share/starcal2/scal2/ui_gtk/weekcal.py", line 130, in __init__
self.initVars()
File "/usr/share/starcal2/scal2/ui_gtk/weekcal.py", line 115, in initVars
combo = FontFamilyCombo(hasAuto=True)
File "/usr/share/starcal2/scal2/ui_gtk/mywidgets/font_family_combo.py", line 21, in __init__
ls.append((fontName, _(fontName)))## translate font name in GUI? FIXME
KeyboardInterrupt


من قبل از نصب اسکریپت update-perm رو اجرا کردم و بعد نصب کردم.
پاسخ:
ممنون بابت فیدبک

۱- کاش  متن ارور قبل از آپدیت به 2.2.3 رو می‌ذاشتید (البته چندین باگ توی این ورژن برطرف شده ولی فکر نمی‌کنم هیچ کدومش مختص آرچ باشه)
۲- کدوم فایل رو دانلود کردید؟ و آیا با دستور install-archlinux نصب می‌کردید؟
۲- ارور اول  (Permission denied) مربوط به اکانت گوگل هست که فعلاً استفاده نمیشه. اکانت رو حذف کنید فعلاً. باز من بررسی می‌کنم ببینم علتش چیه (چون توی کتابخانهٔ رسمی گوگل ارور میده)
۳- توی ارور دوم، به نظر میاد خودتون کنترل + سی زدید (KeyboardInterrupt) یه بار دیگه تست کنید، ببینید آیا فقط موقع تغییر فونت ارور میده یا هر بار میده و ارورش چی هست (غیر از KeyboardInterrupt)


من از sourceforge آخرین ورژن zip شده رو دانلود و اکسترکت میکنم.نصب هم با اسکریپت install-archlinux انجام میدم.
من ctrl+c رو تو هر دو حالت گفته شده در پست بالا زدم(قبل از تغییر فونت و بعدش).تنها بعد از تغییر فونت خروجی ارور دوم مشاهده شد.
علت ارور permission denied رو متوجه شدم.starcal2 وقتی از ترمینال اجرا بشه تو مسیر جاری سعی میکنه به محتویات پوشه cache. دسترسی پیدا کنه و در صورت نبود این پوشه سعی میکنه با تابع mkdir موجود در ماژول os.py اونو ایجاد کنه.ترمینال من به صورتی که تنظیم کردم از دایرکتوری etc/ به عنوان initial directory استفاده میکنه و طبیعتا با مجوز کاربر عادی امکان ایجاد پوشه وجود نداره.
من برنامه نویس نیستم ولی میتونید برنامه رو مقید کنید طبق عرف برنامه های گنو صرفا از cache./~ برای تنظیمات شخصی و پیکربندی استفاده کنه.
اگر تیک فونت برنامه رو تو ترجیحات بردارم(یعنی با فونت پیشفرض لود بشه) ارور دوم ظاهر نمیشه.
اجرا نشدن ورژن 2.2.0 هم به احتمال زیاد یه باگ تو پکیج python آرچ بوده که با بروزرسانیهای بعدی رفع شده.چون من مجددا این ورژن رو از sourceforge گرفتم و نصب کردم و اجرا شد.
پاسخ:
اون ارور فونت که گذاشتید مربوط به تقویم هفتگی (توی شخصی‌سازی) میشه، نه پنجرهٔ تریجیحات. علتش هم همون کنترل + سی هست. من نتونستم باگی پیدا کنم. اگه ارور دیگه‌ای نشون داد بذارید
اون باگ cache رو برطرف کردم (گرچه مربوط به کتابخونهٔ گوگل میشه و باید به اونا هم گزارش کنیم)
سلام
بابت نرم افزار خوبتون تشکر می‌کنم :)
البته یک مشکل کوچک در قسمت تعیین مکان در افزونه‌ی اوقات شرعی هست. وقتی دکمه ادیت را فشار می‌دهم پنجره باز شده هر متنی را می‌پذیرد! یعنی قاعدتا باید از توی دیتا بیس انتخاب کنم ولی هر چیزی رو به عنوان شهر می‌توانم بنویسم. برای همین نمی‌دانم شهری که انتخاب کرده ام درست است یا نه!
پاسخ:
سلام
پس نباید دکمهٔ ادیت رو بزنید. فقط از توی لیست انتخاب کنید و اوکی کنید
در صورتی دکمهٔ ادیت رو بزنید که شهر مورد نظر شما توی لیست نباشه، یا بخواهید مختصاتش رو بصورت دقیق‌تر تعیین کنید و تغییر بدید. یعنی وقتی ادیت رو بزنید، دیگه کاری به دیتابیس نداره، همون اسم و مختصاتی که وارد/ویرایش می‌کنید رو در نظر می‌گیره.
درسته! نه مشکل من این بود که لیست رو نمی‌دیدم!
بعد تا شما این رو گفتید به ذهنم رسید پنجره رو ماکسیمایز کنم! دیدم اوووووووو کلی شهر هست! خلاصه که فکر کنم
layout
خوبی نداشته باشه ... موفق باشید :)
ممنون
پاسخ:
شما لازم نیست لیست کل شهرها رو نگاه کنی. یه قسمت از اسم شهر رو تایپ می‌کنی، یکی یا فوقش سه چهار تا شهر لیست می‌کنه، یکی‌ش رو انتخاب می‌کنی. در صورت دلخواه ادیتش می‌کنی (که مثلاً مختصات دقیق خونه‌تون یا مثلاً روستایی که نزدیک اون شهر هست رو بهش بدی)
اگه پیشنهادی در مورد چیدمان‌ش دارید خوشحال میشم بگید. ترجیحاً بصورت ویژوال (mockup یا چیزی شبیه اون)

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">