Forwarded from محتوای آزاد سهراب (Sohrab)
تفاوت اساسی بین Qt و GTK توی معماری و زبون پیادهسازیشونه. GTK از همون اول با C خالص و GObject نوشته شده. GObject یه سیستم شیگراییه که روی C ساخته شده و این باعث شده GTK به صورت ذاتی قابلیت بازنگری داشته باشه. یعنی فرادادهی کامل کلاسها، متدها و ویژگیها توی زمان اجرا در دسترسه.
وقتی میخوای برای پایتون یا روبی یا هر زبون دیگهای بایندینگ GTK بنویسی، کافیه به بازنگری GObject وصل بشی و تموم اطلاعات لازم رو استخراج کنی. به همین خاطره که PyGObject میتونه به صورت خودکار تموم رابطهای GTK رو نمایش بده بدون اینکه نیازی باشه هر تابع رو دستی بپیچونی.
Qt اما ماجرای متفاوتی داره. Qt با سیپلاسپلاس نوشته شده و خیلی شدید به ویژگیهای پیچیدهی سیپلاسپلاس وابستهست. کامپایلر فراشیء که قلب سیستم فراشیء Qt هست، قبل از کامپایل اصلی اجرا میشه و کد سیپلاسپلاس اضافی تولید میکنه. این کدها برای پشتیبانی از سیگنالها، شکافها، ویژگیهای پویا و بازنگری محدود Qt لازم هستن.
حالا وقتی میخوای Qt رو از پایتون صدا بزنی، با چندتا مشکل روبرو میشی. اولش اینکه باید رابط دوتایی سیپلاسپلاس رو مدیریت کنی که خودش یه کابوسه چون استاندارد نشده و بین کامپایلرها فرق میکنه. دومش اینکه Qt از قالبهای سنگین، بارگذاری عملگر، وراثت چندگانه و یه عالمه ویژگی دیگهی سیپلاسپلاس استفاده میکنه که مستقیم به زبونهای دیگه نگاشت نمیشن.
به همین دلیل پروژههایی مثل PyQt و PySide نیاز به ابزارهایی مثل SIP و Shiboken دارن. این ابزارها عملاً یه لایهی کامل از کد پوششی تولید میکنن که بین دنیای پایتون و دنیای سیپلاسپلاس پل میزنن. این پوششها باید تبدیل نوع انجام بدن، مدیریت حافظه رو هندل کنن، و تموم خصوصیات عجیب غریب سیپلاسپلاس رو به یه چیز پایتونی تبدیل کنن.
GTK چون از اول با C نوشته شده، این مشکلات رو نداره. C یه رابط دوتایی ساده و پایدار داره و تقریباً هر زبون برنامهنویسی مدرنی میتونه مستقیم با C حرف بزنه. رابط تابع خارجی برای C خیلی سادهتر از سیپلاسپلاسه.
جالبش اینه که این "محدودیت" Qt در عین حال یکی از قدرتهاشم هست.
Qt رابطهای خیلی غنیتر و پیچیدهتری نسبت به GTK داره و این پیچیدگی بعضی وقتا به نفع توسعهدهنده تموم میشه. ولی قیمتش همین پیشنیازی به پلها و پوششهای پیچیدهست :)
@SohrabContents
وقتی میخوای برای پایتون یا روبی یا هر زبون دیگهای بایندینگ GTK بنویسی، کافیه به بازنگری GObject وصل بشی و تموم اطلاعات لازم رو استخراج کنی. به همین خاطره که PyGObject میتونه به صورت خودکار تموم رابطهای GTK رو نمایش بده بدون اینکه نیازی باشه هر تابع رو دستی بپیچونی.
Qt اما ماجرای متفاوتی داره. Qt با سیپلاسپلاس نوشته شده و خیلی شدید به ویژگیهای پیچیدهی سیپلاسپلاس وابستهست. کامپایلر فراشیء که قلب سیستم فراشیء Qt هست، قبل از کامپایل اصلی اجرا میشه و کد سیپلاسپلاس اضافی تولید میکنه. این کدها برای پشتیبانی از سیگنالها، شکافها، ویژگیهای پویا و بازنگری محدود Qt لازم هستن.
حالا وقتی میخوای Qt رو از پایتون صدا بزنی، با چندتا مشکل روبرو میشی. اولش اینکه باید رابط دوتایی سیپلاسپلاس رو مدیریت کنی که خودش یه کابوسه چون استاندارد نشده و بین کامپایلرها فرق میکنه. دومش اینکه Qt از قالبهای سنگین، بارگذاری عملگر، وراثت چندگانه و یه عالمه ویژگی دیگهی سیپلاسپلاس استفاده میکنه که مستقیم به زبونهای دیگه نگاشت نمیشن.
به همین دلیل پروژههایی مثل PyQt و PySide نیاز به ابزارهایی مثل SIP و Shiboken دارن. این ابزارها عملاً یه لایهی کامل از کد پوششی تولید میکنن که بین دنیای پایتون و دنیای سیپلاسپلاس پل میزنن. این پوششها باید تبدیل نوع انجام بدن، مدیریت حافظه رو هندل کنن، و تموم خصوصیات عجیب غریب سیپلاسپلاس رو به یه چیز پایتونی تبدیل کنن.
GTK چون از اول با C نوشته شده، این مشکلات رو نداره. C یه رابط دوتایی ساده و پایدار داره و تقریباً هر زبون برنامهنویسی مدرنی میتونه مستقیم با C حرف بزنه. رابط تابع خارجی برای C خیلی سادهتر از سیپلاسپلاسه.
جالبش اینه که این "محدودیت" Qt در عین حال یکی از قدرتهاشم هست.
Qt رابطهای خیلی غنیتر و پیچیدهتری نسبت به GTK داره و این پیچیدگی بعضی وقتا به نفع توسعهدهنده تموم میشه. ولی قیمتش همین پیشنیازی به پلها و پوششهای پیچیدهست :)
@SohrabContents
👾2⚡1
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
لازم نیست ساعتها گوگل کنی برای پیدا کردن APIهای رایگان!
یه ریپازیتوری که هر دولوپری باید تو بوکمارکهاش داشته باشه:
https://github.com/public-apis/public-apis
لیست کاملاً مرتبشده و بهروز از صدها API عمومی و رایگان در همه حوزهها: Weather - Finance - Music - Animals - Jokes - Crypto Maps و صدها مورد دیگه.
@DevTwitter | <POURYA/>
یه ریپازیتوری که هر دولوپری باید تو بوکمارکهاش داشته باشه:
https://github.com/public-apis/public-apis
لیست کاملاً مرتبشده و بهروز از صدها API عمومی و رایگان در همه حوزهها: Weather - Finance - Music - Animals - Jokes - Crypto Maps و صدها مورد دیگه.
@DevTwitter | <POURYA/>
https://youtu.be/V89oD_HgSbE?si=_XoujLl3HkrFzNS9
بسیار مفید و ساده
بسیار مفید و ساده
YouTube
دیباگ کردن با ابزارهای گیت: blame و bisect
گیت ابزاری بسیار مفیده و قابلیتهایی هم داره که گاهی ازشون خبر نداریم ولی اگر پیش بیاد بسیار به درد می خورن؛ از جمله bisect برای کشف جایی که باعث یه باگ شده (و کسی که باعث تولید باگ شده). توی این ویدئو در موردش توضیح می دم.
برای حمایت:
پتریان: https://…
برای حمایت:
پتریان: https://…
🔥3
Forwarded from Linuxor ?
یکی اومده مشابه گوگل کلندر رو ساخته و بهش هوش مصنوعی اضافه کرده، اوپن سورس هم هست میتونید کداشو ببینید :
github.com/ephraimduncan/weekday
@Linuxor
github.com/ephraimduncan/weekday
@Linuxor
⚡3
Forwarded from Linuxor ?
اکستنشن هوش مصنوعی claude توی مرورگر کروم که امروز ریلیز شده رو اضافه کنید. به صورت sidebar باز میشه و دسترسی read/write به همه تبها به صورت همزمان داره و می تونه کد JavaScript در صفحات مرورگر تون اجرا کنه. برای شروع کلیک کنید
@Linuxor ~ shamshiri
@Linuxor ~ shamshiri
بزرگترین شب سال و یکی از قدیمیترین جشنهای ایرانی رو بهتون تبریک میگم امیدوارم هرجایی که هستین اول از همه تنتون سالم جیبتون پرپول و حال دلتون خوب باشه.
میدونم سفره ها کوچیک شده میدونم چقدر گرفتاری و مشکل داریم میدونم دلار شده 133 هزار تومن و حکومت دستش تو جیب مردمه ؛ ولی یه امشب رو بیخیال از همهی این مسائل بگذرونید و جشن بگیریدش.
یلداتون مبارک 🍉❤️
میدونم سفره ها کوچیک شده میدونم چقدر گرفتاری و مشکل داریم میدونم دلار شده 133 هزار تومن و حکومت دستش تو جیب مردمه ؛ ولی یه امشب رو بیخیال از همهی این مسائل بگذرونید و جشن بگیریدش.
یلداتون مبارک 🍉❤️
❤6
Forwarded from اطلاعرسانی لاگ بیرجند
جلسه ۴۵ لاگ بیرجند
- مقدمهای بر رادیو آماتوری
ارائه دهنده: ارسلان سفیدگر
- مسابقه تایپ (و اهدای جوایز)
📅 پنجشنبه ۴ دی ۱۴۰۴ - ساعت ۱۶:۰۰
📍خیابان غفاری، پارک علم و فناوری (دانشگاه آزاد قدیم)
❕ظرفیت محدود
ثبت نام رایگان و اطلاعات بیشتر:
- https://evand.com/events/birjandlug-45
- https://birlug.ir/events/45/info
- مقدمهای بر رادیو آماتوری
ارائه دهنده: ارسلان سفیدگر
- مسابقه تایپ (و اهدای جوایز)
📅 پنجشنبه ۴ دی ۱۴۰۴ - ساعت ۱۶:۰۰
📍خیابان غفاری، پارک علم و فناوری (دانشگاه آزاد قدیم)
❕ظرفیت محدود
ثبت نام رایگان و اطلاعات بیشتر:
- https://evand.com/events/birjandlug-45
- https://birlug.ir/events/45/info
Forwarded from Linuxor ?
یه مجموعه عظیم از آیکون ها، که برای هر پروژه ای میتونید ازش استفاده کنید و خوبیشون اینه که کامپوننت ری اکتین و میتونید هرکدومشون رو کاستوم کنید:
react-icons.github.io/react-icons
@Linuxor
react-icons.github.io/react-icons
@Linuxor
FouXi
روز بخیر جوان ایرانی بانک مرکزی ریده توی بخت و اقبال و زندگی و اقتصادت روزت بخیر
هر خبری دارین از قیمت دلار میخونین عقب تر از نرخ واقعیه
و این یعنی اقتصاد مقاومتیه بانک مرکزی (پول چاپ میشه با سرعت نور)
و این یعنی اقتصاد مقاومتیه بانک مرکزی (پول چاپ میشه با سرعت نور)
Forwarded from Hossein Mohseni
با سلام و احترام
تیم پازلی برای تکمیل تیم محصول و فنی خود نیاز به جذب نیروی تمام وقت دارد.
👨🏻💻 موقعیت های شغلی:
Senior Frontend Developer
Junior Frontend Developer
👨🏻💼 شرایط فردی:
✔️ علاقه مند به یادگیری، باانگیزه و دارای پشتکار
✔️ توانایی کار تیمی
✔️ ساکن بیرجند
🔹مزایای و شرایط شغلی:
✔️ امکان بهکارگیری به صورت نیروی امریه دانش بنیان
✔️ حقوق با توجه به توانایی فردی
✔️ بیمه
✔️ ساعت کاری انعطاف پذیر
✔️ همکاری با تیم حرفهای در فضای کاری صمیمی
ــــــــ
افراد علاقهمند به همکاری جهت تعیین وقت فرم زیر را تکمیل نمایند👇
https://forms.gle/QmKUv9P8M9SWbn8Y7
تیم پازلی برای تکمیل تیم محصول و فنی خود نیاز به جذب نیروی تمام وقت دارد.
👨🏻💻 موقعیت های شغلی:
Senior Frontend Developer
Junior Frontend Developer
👨🏻💼 شرایط فردی:
✔️ علاقه مند به یادگیری، باانگیزه و دارای پشتکار
✔️ توانایی کار تیمی
✔️ ساکن بیرجند
🔹مزایای و شرایط شغلی:
✔️ امکان بهکارگیری به صورت نیروی امریه دانش بنیان
✔️ حقوق با توجه به توانایی فردی
✔️ بیمه
✔️ ساعت کاری انعطاف پذیر
✔️ همکاری با تیم حرفهای در فضای کاری صمیمی
ــــــــ
افراد علاقهمند به همکاری جهت تعیین وقت فرم زیر را تکمیل نمایند👇
https://forms.gle/QmKUv9P8M9SWbn8Y7