Forwarded from یادداشتهای شخصی علی میرجمالی
میتینگ دولوپرهای نرمافزار آزاد و متن باز اروپا یا FOSDEM، رویدادی است که هر ساله در بروکسل برگزار میشود. بدون شک FOSDEM یکی از بزرگترین و شاخصترین گردهمآییها برای افراد علاقمند است که توسط افراد داوطلب برگزار میشود. در چند سال گذشته بیش از ۵۰۰۰ نفر در آن شرکت میکردند. امسال نیز همانند پارسال، به خاطر همهگیری کرونا، این رویداد به شکل مجازی برگزار خواهد شد.
دبیان، openSUSE، بنیاد Eclipse، فدورا، Free Software Foundation Europe (بنیادی مستقل از FSF آمریکا)، eeBSD، GNOME، گوگل، KDE, LibreOffice, MariaDB, ماتریس، NextCloud، PostgreSQL، اوبونتو، بنیاد آپاچی و چندین پروژه و شرکت دیگر در آن استند و جایگاه مجازی دارند. امکان چت و گپ زدن آنلاین وجود دارد.
رویداد FOSDEM 2022 امروز و فردا در جریان خواهد بود. ۶۵۵ نفر در آن ۷۳۳ ارائه خواهند داد. که در ۱۰۳ خط زمانی موازی انجام خواهد شد و به شکل آنلاین در دسترس خواهد بود. زبان بیشتر ارائهها انگلیسی است. از پایتون، Golang، جاوااسکریپت، Virtualization و کانتینرها گرفته تا FPGA و Free Software Radio و موارد بسیار زیاد دیگر. خوشبختانه همه این ارائهها به شکل ویدیویی در دسترس همگان قرار دارد و فرصت عالی برای افرادی است که علاقمند به یادگیری هستند. FOSDEM از پشتیبانی مالی شرکتهای گوگل، سیسکو، هوآوی، ردهت و چندین اسپانسر دیگر برای برگزاری این رویداد بزرگ برخوردار است.
دبیان، openSUSE، بنیاد Eclipse، فدورا، Free Software Foundation Europe (بنیادی مستقل از FSF آمریکا)، eeBSD، GNOME، گوگل، KDE, LibreOffice, MariaDB, ماتریس، NextCloud، PostgreSQL، اوبونتو، بنیاد آپاچی و چندین پروژه و شرکت دیگر در آن استند و جایگاه مجازی دارند. امکان چت و گپ زدن آنلاین وجود دارد.
رویداد FOSDEM 2022 امروز و فردا در جریان خواهد بود. ۶۵۵ نفر در آن ۷۳۳ ارائه خواهند داد. که در ۱۰۳ خط زمانی موازی انجام خواهد شد و به شکل آنلاین در دسترس خواهد بود. زبان بیشتر ارائهها انگلیسی است. از پایتون، Golang، جاوااسکریپت، Virtualization و کانتینرها گرفته تا FPGA و Free Software Radio و موارد بسیار زیاد دیگر. خوشبختانه همه این ارائهها به شکل ویدیویی در دسترس همگان قرار دارد و فرصت عالی برای افرادی است که علاقمند به یادگیری هستند. FOSDEM از پشتیبانی مالی شرکتهای گوگل، سیسکو، هوآوی، ردهت و چندین اسپانسر دیگر برای برگزاری این رویداد بزرگ برخوردار است.
اختلاف بین time of check و time of use میتونه باعث باگ های عجیبی بشه.
فرض کنید یه فایل رو میخواید باز کنید، بعد میگین اوکی من اول چکش میکنم، بعد اگه وجود داشت بازش میکنم. حالا تست هم میکنید برنامه رو و همه چی خوبه.
اما یه حالت ممکنه پیش بیاد که دقیقا بین اینکه شما چک کردید فایل وجود داره و بازش کنید، یه برنامه/ترد دیگه دستور بده که این فایل پاک بشه.
خب در این صورت چی میشه؟ شما چک کردن اولیه تون موفق بوده، اما باز کردن فایل ناموفقه،
حالا اینجا صرفا یه اکسپشنه که احتمالا هندلش نکردید چون فکر میکردید unreachable باشه اما ممکنه اتفاق های عجیب تری هم بیفته.
حالا دو تا چیز رو بررسی کنیم، اول اینکه چرا چنین چیزی پیش اومد؟ برای اینکه ما فرض میکنیم برنامه ما تنها برنامه موجود تو سیستمه، که خب اکثر موارد فرض صحیحی نیست، اما کجا خودش رو نشون میده؟ وقتی به منابع مشترک با برنامه های دیگه (IO و فایل ها و ...) نیاز پیدا کنیم. اینها چیزهایی هستید که در اختیار موجودات دیگر سیستم هم هستند.
حالا چطوری حل کنیم مشکل رو؟ دقت کنیم که تو یه محیط concurrent داریم کار میکنیم. حتی وقتی برنامه ما ترد نداره، چون برنامه های دیگری در حال اجرا هستند. و به عنوان راه حل، چون عملا استفاده از یه قفل سخت میشه، بیایم از عملیات هایی استفاده کنیم که اتمیک باشن. یکم حرفم نادقیق شد اما خلاصه که چرا اول چک کنیم بعد باز کنیم؟ یه بار اقدام میکنیم که باز بشه، اگه شد که عالیه اگه نه هم میفهمیم چرا باز نشده دیگه. در این صورت همش تو یه مرحله بوده (و اگه سیستم عامل خوبی باشه) همه چی مطابق انتظار پیش رفته و ریس کاندیشن توسط سیستم عامل هندل شده.
در نهایت هم یه قاعده هست که میگه عذرخواهی کردن راحت تر از اجازه گرفتنه. خلاصه که اشکال نداره اول چک نکنیم و یهو کارمون رو انجام بدیم.
نهایتش به اکسپشن پرت میشه که حلش میکنیم (عذرخواهی)
چک کردن قبل کار: اجازه گرفتن
"It is easier to ask for forgiveness than permission"
https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use
فرض کنید یه فایل رو میخواید باز کنید، بعد میگین اوکی من اول چکش میکنم، بعد اگه وجود داشت بازش میکنم. حالا تست هم میکنید برنامه رو و همه چی خوبه.
اما یه حالت ممکنه پیش بیاد که دقیقا بین اینکه شما چک کردید فایل وجود داره و بازش کنید، یه برنامه/ترد دیگه دستور بده که این فایل پاک بشه.
خب در این صورت چی میشه؟ شما چک کردن اولیه تون موفق بوده، اما باز کردن فایل ناموفقه،
حالا اینجا صرفا یه اکسپشنه که احتمالا هندلش نکردید چون فکر میکردید unreachable باشه اما ممکنه اتفاق های عجیب تری هم بیفته.
حالا دو تا چیز رو بررسی کنیم، اول اینکه چرا چنین چیزی پیش اومد؟ برای اینکه ما فرض میکنیم برنامه ما تنها برنامه موجود تو سیستمه، که خب اکثر موارد فرض صحیحی نیست، اما کجا خودش رو نشون میده؟ وقتی به منابع مشترک با برنامه های دیگه (IO و فایل ها و ...) نیاز پیدا کنیم. اینها چیزهایی هستید که در اختیار موجودات دیگر سیستم هم هستند.
حالا چطوری حل کنیم مشکل رو؟ دقت کنیم که تو یه محیط concurrent داریم کار میکنیم. حتی وقتی برنامه ما ترد نداره، چون برنامه های دیگری در حال اجرا هستند. و به عنوان راه حل، چون عملا استفاده از یه قفل سخت میشه، بیایم از عملیات هایی استفاده کنیم که اتمیک باشن. یکم حرفم نادقیق شد اما خلاصه که چرا اول چک کنیم بعد باز کنیم؟ یه بار اقدام میکنیم که باز بشه، اگه شد که عالیه اگه نه هم میفهمیم چرا باز نشده دیگه. در این صورت همش تو یه مرحله بوده (و اگه سیستم عامل خوبی باشه) همه چی مطابق انتظار پیش رفته و ریس کاندیشن توسط سیستم عامل هندل شده.
در نهایت هم یه قاعده هست که میگه عذرخواهی کردن راحت تر از اجازه گرفتنه. خلاصه که اشکال نداره اول چک نکنیم و یهو کارمون رو انجام بدیم.
نهایتش به اکسپشن پرت میشه که حلش میکنیم (عذرخواهی)
چک کردن قبل کار: اجازه گرفتن
"It is easier to ask for forgiveness than permission"
https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use
👍8
باید قسمت های مرتبط کد به هم رو کنار هم نگه داریم.
https://koenvangilst.nl/blog/code-colocation-is-king
https://koenvangilst.nl/blog/code-colocation-is-king
koenvangilst.nl
Code Colocation is King
A simple principle to help structure code better
چرا همه زبانهای به جز پایتون بد هستند؟
در واقع این مطلب داره میگه که چرا پرفورمنس اونقدر مهم نیست و بهتره به سرعت بالای توسعه بچسبیم. اگرم نهایتا خواستیم پرفورمنس کد فعلی پایتون رو زیاد کنیم راهکارهایی داده.
https://snarky.ca/programming-language-selection-is-a-form-of-premature-optimization/
در واقع این مطلب داره میگه که چرا پرفورمنس اونقدر مهم نیست و بهتره به سرعت بالای توسعه بچسبیم. اگرم نهایتا خواستیم پرفورمنس کد فعلی پایتون رو زیاد کنیم راهکارهایی داده.
https://snarky.ca/programming-language-selection-is-a-form-of-premature-optimization/
Tall, Snarky Canadian
Selecting a programming language can be a form of premature optimization
Have you ever been told that Python couldn't be used for a project because it
wouldn't be fast enough? I have, and I find it a bit frustrating as big banks,
YouTube, Instagram, and plenty of other places that are performance-sensitive
still manage to select…
wouldn't be fast enough? I have, and I find it a bit frustrating as big banks,
YouTube, Instagram, and plenty of other places that are performance-sensitive
still manage to select…
چرا نباید از ویم استفاده کرد.
https://gist.github.com/romainl/6b952db7a6138b48657ba0fbb9d65370
Your next recruiter, your next colleagues, your next crush won't care about Vim. Vim is not cool and you are not cool for using Vim.
https://gist.github.com/romainl/6b952db7a6138b48657ba0fbb9d65370
Your next recruiter, your next colleagues, your next crush won't care about Vim. Vim is not cool and you are not cool for using Vim.
Gist
Don't use Vim for the wrong reasons
Don't use Vim for the wrong reasons. GitHub Gist: instantly share code, notes, and snippets.
Forwarded from @yegor256 news (yegor256)
Media is too big
VIEW IN TELEGRAM
M187: Two months ago I bought a new MacBook Pro. After a month of waiting, I received it. My frustration was huge. I returned it to Apple and got the money back. Here is why. Watch it!
https://youtu.be/5paRz4xRWQ4
توضیح برخی اصطلاحات ناآشنای لینوکس برای تازه کارها
توضیح برخی اصطلاحات ناآشنای لینوکس برای تازه کارها
YouTube
New To Linux? Learn The Jargon!
Are you new to Linux or thinking about switching to Linux from Windows or Mac? If so, you may find some of the Linux terminology kind of confusing. So today, I'm going to demystify a few of the common terms within Linux jargon:
0:00 Intro
0:25 GNU & Linux…
0:00 Intro
0:25 GNU & Linux…
سیستم عامل sanos یه سیستم عامل مینیماله که با C نوشته شده و برنامه های کاربردی ساده ای هم داره که همه با سی نوشته شدن.
https://www.jbox.dk/sanos/index.htm
قسمت های مختلفی داره مثلا یه ادیتور تحت ترمینال داره که به راحتی کامپایل و اجرا میشه.
(لینک زیر)
https://www.jbox.dk/sanos/editor.htm
https://www.jbox.dk/sanos/index.htm
قسمت های مختلفی داره مثلا یه ادیتور تحت ترمینال داره که به راحتی کامپایل و اجرا میشه.
(لینک زیر)
https://www.jbox.dk/sanos/editor.htm
www.jbox.dk
Sanos
نوشتههای ترمینالی
سیستم عامل sanos یه سیستم عامل مینیماله که با C نوشته شده و برنامه های کاربردی ساده ای هم داره که همه با سی نوشته شدن. https://www.jbox.dk/sanos/index.htm قسمت های مختلفی داره مثلا یه ادیتور تحت ترمینال داره که به راحتی کامپایل و اجرا میشه. (لینک زیر) ht…
داستان از اونجا شروع شده که میخواسته یه سیستمعامل حداقلی داشته باشه که فقط jvm رو اجرا کنه. چون jvm خودش بیشتر کارها رو انجام میده. نتیجه میشه این.
https://www.jbox.dk/sanos/experiment.htm
هرچند که ایده بدیه. بهتر بود که توزیع کرنل خیلی مینیمال میخواست.
https://www.jbox.dk/sanos/experiment.htm
هرچند که ایده بدیه. بهتر بود که توزیع کرنل خیلی مینیمال میخواست.
نوشتههای ترمینالی
جمع بندی از lua: زبان ساده و سریعیه و حتما باید بعد از پایتون و bash بلدش باشیم. ارایه هاش از ۱ شروع میشه، همه چیز رو با table هندل میکنه که جالب و سادهس
YouTube
Lua in 100 Seconds
Lua is a lightweight dynamic scripting language often embedded into other programs like World of Warcraft and Roblox. It's minimal syntax makes it easier to learn than Python, while being much more performant than other interpreted languages.
#programming…
#programming…
👍1
نوشتههای ترمینالی
قسمت ۱ منتشر شد https://vrgl.ir/5aABU کامیپوتر با صفر و یک کار میکند، چطور همهی چیزهای زیبا با صفر و یک ساخته میشوند؟ تیتر مطلب بلندتر از تیترهای معمول شد اما همچنان آنقدر که باید گویا نیست، بنابراین پاراگراف اول را به این اختصاص میدهم که قرار است…
چرا خیلی از چیزهایی که درمورد کامپیوتر میدونیم، قانون یا fact نیستن، بلکه convention هستن.
https://www.youtube.com/watch?v=nKyf4gVE5n0
خیلی به این مطلبی که نوشتم شبیهه و کلا جالب بود.
https://www.youtube.com/watch?v=nKyf4gVE5n0
خیلی به این مطلبی که نوشتم شبیهه و کلا جالب بود.
YouTube
Computers as a social construct
Follow me on Mastodon: https://hachyderm.io/@fasterthanlime
Support me on Patreon or GitHub: https://fasterthanli.me/donate
Those who learn from history are doomed to repeat that fucking proverb.
Contents
00:00 Things we discover vs things we decide
02:30…
Support me on Patreon or GitHub: https://fasterthanli.me/donate
Those who learn from history are doomed to repeat that fucking proverb.
Contents
00:00 Things we discover vs things we decide
02:30…
👍2
بیاید با rust و اسمبلر کلی چیز یاد بگیریم و cat رو هک کنیم.
https://www.youtube.com/watch?v=m902hm3fK7Q
https://www.youtube.com/watch?v=m902hm3fK7Q
YouTube
Messing With The Recipe
Follow me on Mastodon: https://hachyderm.io/@fasterthanlime
Support me on Patreon or GitHub: https://fasterthanli.me/donate
What if we learned just enough to be a little dangerous?
Contents
00:00 Intro
01:15 Computers programs crash course
03:54 Time for…
Support me on Patreon or GitHub: https://fasterthanli.me/donate
What if we learned just enough to be a little dangerous?
Contents
00:00 Intro
01:15 Computers programs crash course
03:54 Time for…
👍2
درمورد اینکه memory allocatorها چطوری کار میکنند و با چه مشکلاتی مواجه هستند
و کمی در مورد memory map
https://www.youtube.com/watch?v=553luW-0eZw
و کمی در مورد memory map
https://www.youtube.com/watch?v=553luW-0eZw
YouTube
The Ten Million Room Hotel
Follow me on Mastodon: https://hachyderm.io/@fasterthanlime
Support me on Patreon or GitHub: https://fasterthanli.me/donate
We must think of the computer... as a friend.
Contents:
00:00 Getting to know your computer friend
03:28 The fault is on humans really…
Support me on Patreon or GitHub: https://fasterthanli.me/donate
We must think of the computer... as a friend.
Contents:
00:00 Getting to know your computer friend
03:28 The fault is on humans really…
👍2
درمورد mechanical sympathy:
You don't have to be an engineer to be be a racing driver, but you do have to have Mechanical Sympathy.
- Jackie Stewart, racing driver
به طور خلاصه یعنی برای استفاده از یه چیز، باید یه درک خوبی نسبت به جوری که کار میکنه داشته باشید. هرچند لزوما نمیتونید مثل اون رو بسازید.
https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/wat.concept.iss.onechanical-sympathy.en.html
You don't have to be an engineer to be be a racing driver, but you do have to have Mechanical Sympathy.
- Jackie Stewart, racing driver
به طور خلاصه یعنی برای استفاده از یه چیز، باید یه درک خوبی نسبت به جوری که کار میکنه داشته باشید. هرچند لزوما نمیتونید مثل اون رو بسازید.
https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/wat.concept.iss.onechanical-sympathy.en.html
Forwarded from Deweloopers (Ehsan Ghorbani)
اگر کارِتون طوری هست که باید مدت زیادی تایپ کنید خیلی به ۱- شیوه نشستن و قرارگرفتن مچ دست نسبت به کیبورد و ۲- مکان کیبورد در میز اهمیت بدید ، یکی از خطرات خاموشی که اینجور شغلها دارند، ابتلا به سندروم تونل کارپال هست. توصیه میکنم مقاله زیر رو هرچند طولانی هست، کامل بخونید، توضیحات مفیدی راجع به این موضوع داده.
https://www.mycarpaltunnel.com/carpal-tunnel-computer-programming/
Kode with us @Deweloopers
https://www.mycarpaltunnel.com/carpal-tunnel-computer-programming/
Kode with us @Deweloopers