یک کتابخانهی گو که کمک میکنه structured concurrency داشته باشیم و کدهای موازی خواناتری بزنیم:
https://github.com/sourcegraph/conc
ایده کلی هم اینه که برای خودمون go routine پرتاب نکنیم، چون مشخص نیست این روتینه که تموم میشه کارش و اگه ارور بده چی؟
بلکه حتما بیایم هر روتین رو عضوی از یک wait group کنیم و اینطوری برای trace و فهمیدن برنامه کار راحت تری داریم.
https://github.com/sourcegraph/conc
ایده کلی هم اینه که برای خودمون go routine پرتاب نکنیم، چون مشخص نیست این روتینه که تموم میشه کارش و اگه ارور بده چی؟
بلکه حتما بیایم هر روتین رو عضوی از یک wait group کنیم و اینطوری برای trace و فهمیدن برنامه کار راحت تری داریم.
GitHub
GitHub - sourcegraph/conc: Better structured concurrency for go
Better structured concurrency for go. Contribute to sourcegraph/conc development by creating an account on GitHub.
👍5
#توصیهها
حتما سعی کنید برای برنامهنویسی جای نشستنتون مناسب و راحت باشه.
به چند تا دلیل:
+ تعمیر «کمر» اصلا آسون نیست
+ قراره سال های زیادی تو این حالت بشینید و اگر یکم هم بد باشه تأثیرات زیادی داره
+ اگه جاتون ناراحت باشه احتمالا زودتر خسته میشید، بازدهیتون کم میشه و حواسپرتیتون بیشتر میشه. در واقع ممکنه تو یه حالت نامناسب بشه سریال دید ولی نمیشه برنامه نویسی کرد چون تمرکز بیشتری لازم داره. :)
شمایی که میگی نه من از هفته دیگه درست میشینم پشت میز، با شما هم هستم.
@terminal_stuff
حتما سعی کنید برای برنامهنویسی جای نشستنتون مناسب و راحت باشه.
به چند تا دلیل:
+ تعمیر «کمر» اصلا آسون نیست
+ قراره سال های زیادی تو این حالت بشینید و اگر یکم هم بد باشه تأثیرات زیادی داره
+ اگه جاتون ناراحت باشه احتمالا زودتر خسته میشید، بازدهیتون کم میشه و حواسپرتیتون بیشتر میشه. در واقع ممکنه تو یه حالت نامناسب بشه سریال دید ولی نمیشه برنامه نویسی کرد چون تمرکز بیشتری لازم داره. :)
شمایی که میگی نه من از هفته دیگه درست میشینم پشت میز، با شما هم هستم.
@terminal_stuff
👏18👍3😢3🔥2🕊1
#توصیهها
سعی کنید لپتاپ (بدون لوازم جانبی) سیستم اصلیتون برای کار نباشه. برای اینکه حالت پشت لپتاپ نشستن برای سلامت خوب نیست. در واقع معمولا اینطوریه که دستاتون به هم نزدیکه. همچنین مانیتورش نزدیک سطح میزه و گردنتون هم اذیت میشه. حالا اگه بذارید روی پاتون که دیگه مشکلاتش زیاد گفته شده. صفحه نمایش کوچک هم میتونه برای چشماتون خوب نباشه.
برای بهبود وضعیت:
+ حداقل کاری که میتونید بکنید اینه که یه موس و کیبورد بگیرید و وصل کنید بهش. لپتاپ هم جای بالاتری بذارید تا گردنتون هم اذیت نشه. با ۳۰۰-۴۰۰ هزارتومن میتونید یه موس و کیبورد نسبتا خوب بگیرید.
+ اگر جای ثابتی هستید بهتره مانیتور هم داشته باشید. با حدود ۴ ملیون میتونید یه مانیتور IPS Full HD بگیرید. البته که عالی نیست ولی خب.
https://ergonomictoolbox.com/ergonomics/5-reasons-why-laptops-are-bad-for-your/
سعی کنید لپتاپ (بدون لوازم جانبی) سیستم اصلیتون برای کار نباشه. برای اینکه حالت پشت لپتاپ نشستن برای سلامت خوب نیست. در واقع معمولا اینطوریه که دستاتون به هم نزدیکه. همچنین مانیتورش نزدیک سطح میزه و گردنتون هم اذیت میشه. حالا اگه بذارید روی پاتون که دیگه مشکلاتش زیاد گفته شده. صفحه نمایش کوچک هم میتونه برای چشماتون خوب نباشه.
برای بهبود وضعیت:
+ حداقل کاری که میتونید بکنید اینه که یه موس و کیبورد بگیرید و وصل کنید بهش. لپتاپ هم جای بالاتری بذارید تا گردنتون هم اذیت نشه. با ۳۰۰-۴۰۰ هزارتومن میتونید یه موس و کیبورد نسبتا خوب بگیرید.
+ اگر جای ثابتی هستید بهتره مانیتور هم داشته باشید. با حدود ۴ ملیون میتونید یه مانیتور IPS Full HD بگیرید. البته که عالی نیست ولی خب.
https://ergonomictoolbox.com/ergonomics/5-reasons-why-laptops-are-bad-for-your/
ErgonomicToolbox.com
Laptops Are Bad For Your Health: 5 Reasons Why
👍10
یه مدل حملهی DDoSی که انجام میشه، SYN flood attack هست، به این شکل که تعداد زیادی کاربر کانکشن نیمه باز، باز میکنن و منابع سمت سرور درگیر میشه منتظره که تایید اخر رو بفرسته کاربر تا کانکشن کامل باش بشه.
این اتفاق یکیش به تنهایی مشکلی نیست ولی تعداد زیادی این اتفاق همزمان بیفته اون حالت خطرناکی رو برای سرور داره.
حالا کانکشن نیمه باز چیه؟ TCP از مکانیسم three way handshake استفاده میکنه، خلاصه یعنی اینکه:
+ کلاینت به سرور پیام SYN میفرسته.
+ سرور پیام SYN Ack میفرسته یعنی SYNت رو دیدم.
+ + کلاینت پیام ACK به سرور میفرسته که یعنی پیام قبلیتو دیدم و همه چی مرتبه.
حالا تو این حمله کلاینت پیام اخر رو نمیفرسته و سرور رو تو حالت بلاتکلیفی نگه میداره.
نه تنها این، بلکه بازم پیام SYN میفرسته که یعنی بازم کانکشن میخوام باز کنم.
https://www.cloudflare.com/learning/ddos/syn-flood-ddos-attack/
این اتفاق یکیش به تنهایی مشکلی نیست ولی تعداد زیادی این اتفاق همزمان بیفته اون حالت خطرناکی رو برای سرور داره.
حالا کانکشن نیمه باز چیه؟ TCP از مکانیسم three way handshake استفاده میکنه، خلاصه یعنی اینکه:
+ کلاینت به سرور پیام SYN میفرسته.
+ سرور پیام SYN Ack میفرسته یعنی SYNت رو دیدم.
+ + کلاینت پیام ACK به سرور میفرسته که یعنی پیام قبلیتو دیدم و همه چی مرتبه.
حالا تو این حمله کلاینت پیام اخر رو نمیفرسته و سرور رو تو حالت بلاتکلیفی نگه میداره.
نه تنها این، بلکه بازم پیام SYN میفرسته که یعنی بازم کانکشن میخوام باز کنم.
https://www.cloudflare.com/learning/ddos/syn-flood-ddos-attack/
Cloudflare
SYN flood DDoS attack | Cloudflare
A SYN flood (half-open attack) is a type of distributed denial-of-service (DDoS) attack which aims to make a server unavailable to legitimate traffic by consuming all available server resources.
👍6
Forwarded from Neuromancer (/dev/nvram)
https://wiki.osdev.org/Expanded_Main_Page
کسایی که علاقمند به سیستم عامل اند و به هرنحوی میخوان راجب سیستم عامل بدونن این سایت رفرنس خوبیه
کسایی که علاقمند به سیستم عامل اند و به هرنحوی میخوان راجب سیستم عامل بدونن این سایت رفرنس خوبیه
👏2🕊1
اگه میخواید با کمترین حجم کار یه ide معقول از neovim در بیارید این ویدیو kickstart رو معرفی میکنه که برای همینکاره
https://www.youtube.com/watch?v=stqUbv-5u2s
https://www.youtube.com/watch?v=stqUbv-5u2s
YouTube
Effective Neovim: Instant IDE
Going from no set up to instant IDE using kickstart.nvim in #nvim.
Check out the repo: https://github.com/nvim-lua/kickstart.nvim
PDE Video: https://youtu.be/QMVIJhC9Veg
### Twitch
We're always live streamin on twitch!Twitch : https://twitch.tv/teej_dv…
Check out the repo: https://github.com/nvim-lua/kickstart.nvim
PDE Video: https://youtu.be/QMVIJhC9Veg
### Twitch
We're always live streamin on twitch!Twitch : https://twitch.tv/teej_dv…
👍3
#توصیهها
برای editorتون ارزش قائل باشید و بهش مسلط باشید.
چرا:
+ ادیتور/IDE برای برنامهنویسها مثل آچاره. اگر کسی از دور نگاه کنه و ببینه که خوب استفاده نمیکنیم فکر میکنه آدم باسوادی نیستیم.
+ وقتی میخواید یه تغییری تو کد بدید و نتیجه رو ببینید بهتره که در کمترین زمان بتونید انجام بدید تا ایدهاش نپریده و خلاصه feedback loop رو کوتاه تر میکنه.
+ ابزارهایی که وجود دارن، برای همصنفها و همکارهای شما ساخته شده پس احتمال خیلی زیادی داره که شما هم بهش نیاز پیدا کنید. اگر بلد نباشید احتمالا مجبورید از یه راه سختتر برید. مثلا refactor یا دیباگ ممکنه خیلی براتون سادهتر باشه. ممکنه هم از یه سری چیزا چون جالب نیستن تصمیم بگیرید استفاده نکنید مثل version control
چطوری:
+ میتونید ویدیوی آموزشی ببینید. خیلیا تنظیم میکنن که کلیدهایی که میزنن رو تصویر نشون داده بشه، پس میتونید کامل یاد بگیرید.
+ یکسری cheat sheet هم وجود داره که میتونید استفاده کنید.
+ توی تنظیماتش بگردید و دستکاری کنید و سرچ کنید تا به بهترین شکل مناسب شما بشه.
+ اگر کاری میخواید انجام بدید که سخته یا باید از ادیتور خارج بشید، سرچ کنید «انجام این کار در ادیتور فلان» و ببینید راهی هست یا نه. مثلا edit remote file in YOUR_EDITOR
+ لیست پلاگینهای به درد بخور رو تو اینترنت سرچ کنید و با احتیاط نصب کنید. همچنین میتونید ببینید دوستاتون از چه پلاگینهایی استفاده میکنن. شاید حتی تو گیتهاب/وبلاگشون گذاشته باشن.
توصیهی آخر (برای اینکه تو این مطلب از vim هم اسمی آورده باشم)
ابزارتون آگاهانه انتخاب کنید. قرار نیست چون همه از ابزارهای Jetbrains یا VS code استفاده میکنن شما هم استفاده کنید. البته که احتمالا کیفیت خوبی هم داره ولی تنها انتخاب نیست. حتی اگه از اونا استفاده میکنید میتونید شخصیسازی کنید.
ادیتورهای دیگهای هم هستن که میتونید تا انتها شخصیسازیشون کنید و قابلیتهای مورد نیاز رو به شکل مورد نیازتون بهشون اضافه کنید. Vim و neovim و emacs نمونههای مهم هستن. شخصیسازی به شما کمک میکنه به بهرهوری بیشتری برسید. البته که باید دقت کنید خود شخصیسازی هم ازتون وقت میگیره.
کلیدواژهی lsp هم مدنظر داشته باشید. به کمک این استاندارد (که ٰVS Code استانداردش کرد) ابزارهای auto complete مختلف (در واقع language server) تحت این پروتکل با ادیتور صحبت میکنن و میتونید از موتور اتوکامپلیتی که برای ادیتور شما نیست هم به راحتی استفاده کنید. چون همگی از یک پروتکل واحد پشتیبانی میکنن.
برای editorتون ارزش قائل باشید و بهش مسلط باشید.
چرا:
+ ادیتور/IDE برای برنامهنویسها مثل آچاره. اگر کسی از دور نگاه کنه و ببینه که خوب استفاده نمیکنیم فکر میکنه آدم باسوادی نیستیم.
+ وقتی میخواید یه تغییری تو کد بدید و نتیجه رو ببینید بهتره که در کمترین زمان بتونید انجام بدید تا ایدهاش نپریده و خلاصه feedback loop رو کوتاه تر میکنه.
+ ابزارهایی که وجود دارن، برای همصنفها و همکارهای شما ساخته شده پس احتمال خیلی زیادی داره که شما هم بهش نیاز پیدا کنید. اگر بلد نباشید احتمالا مجبورید از یه راه سختتر برید. مثلا refactor یا دیباگ ممکنه خیلی براتون سادهتر باشه. ممکنه هم از یه سری چیزا چون جالب نیستن تصمیم بگیرید استفاده نکنید مثل version control
چطوری:
+ میتونید ویدیوی آموزشی ببینید. خیلیا تنظیم میکنن که کلیدهایی که میزنن رو تصویر نشون داده بشه، پس میتونید کامل یاد بگیرید.
+ یکسری cheat sheet هم وجود داره که میتونید استفاده کنید.
+ توی تنظیماتش بگردید و دستکاری کنید و سرچ کنید تا به بهترین شکل مناسب شما بشه.
+ اگر کاری میخواید انجام بدید که سخته یا باید از ادیتور خارج بشید، سرچ کنید «انجام این کار در ادیتور فلان» و ببینید راهی هست یا نه. مثلا edit remote file in YOUR_EDITOR
+ لیست پلاگینهای به درد بخور رو تو اینترنت سرچ کنید و با احتیاط نصب کنید. همچنین میتونید ببینید دوستاتون از چه پلاگینهایی استفاده میکنن. شاید حتی تو گیتهاب/وبلاگشون گذاشته باشن.
توصیهی آخر (برای اینکه تو این مطلب از vim هم اسمی آورده باشم)
ابزارتون آگاهانه انتخاب کنید. قرار نیست چون همه از ابزارهای Jetbrains یا VS code استفاده میکنن شما هم استفاده کنید. البته که احتمالا کیفیت خوبی هم داره ولی تنها انتخاب نیست. حتی اگه از اونا استفاده میکنید میتونید شخصیسازی کنید.
ادیتورهای دیگهای هم هستن که میتونید تا انتها شخصیسازیشون کنید و قابلیتهای مورد نیاز رو به شکل مورد نیازتون بهشون اضافه کنید. Vim و neovim و emacs نمونههای مهم هستن. شخصیسازی به شما کمک میکنه به بهرهوری بیشتری برسید. البته که باید دقت کنید خود شخصیسازی هم ازتون وقت میگیره.
کلیدواژهی lsp هم مدنظر داشته باشید. به کمک این استاندارد (که ٰVS Code استانداردش کرد) ابزارهای auto complete مختلف (در واقع language server) تحت این پروتکل با ادیتور صحبت میکنن و میتونید از موتور اتوکامپلیتی که برای ادیتور شما نیست هم به راحتی استفاده کنید. چون همگی از یک پروتکل واحد پشتیبانی میکنن.
👍9
معرفی چند ابزار کمک کننده برای کار در ترمینال
https://torhamdev.hashnode.dev/terminal-tools-for-programming-monsters
https://torhamdev.hashnode.dev/terminal-tools-for-programming-monsters
TorhamDev 👨💻
Terminal tools for programming monsters
Well, well, today I am going to introduce some tools. Some tools for programming monsters like you! Today's tools are for terminal lovers and programmers who like the terminal like me 🥸.
Maybe you know and use the tools I'm about to introduce, but w...
Maybe you know and use the tools I'm about to introduce, but w...
یه ویدیو در مورد ویدیو
از codecهای مختلف تا چطور برای خودمون Youtube بسازیم.
https://www.youtube.com/watch?v=ztYNir9BDoY
از codecهای مختلف تا چطور برای خودمون Youtube بسازیم.
https://www.youtube.com/watch?v=ztYNir9BDoY
YouTube
This is a video about video
Follow me on Mastodon: https://hachyderm.io/@fasterthanlime
Support me on Patreon or GitHub: https://fasterthanli.me/donate
What's in an MP4 file? How is video encoded? Who would build their own video streaming platform? And why?? Oh gosh why.
00:00 I'd…
Support me on Patreon or GitHub: https://fasterthanli.me/donate
What's in an MP4 file? How is video encoded? Who would build their own video streaming platform? And why?? Oh gosh why.
00:00 I'd…
👍1
#توصیهها
سعی کنید علمتون رو ترویج کنید. با فقط برای خودتون نگه داشتن یه مزایایی به دست میاد ولی ترویجش هم مزایایی داره.
+ برای بقیه مفید باشید: خودتون چقدر از Stackoverflow استفاده کردید؟ چقدر فیلم های جادی رو دیدید؟ (به طول مثال) همین چنل رو چرا دنبال میکنید؟
+ برای آینده شغلیتون مفید باشید: اگر به دیگران چیزی یاد بدید، برای خودتون برند شخصی ساختید. یه جور نمونه کار میشه. براتون موقعیتهای شغلی (نه فقط معلمی) هم میاره به زودی.
+ برای مشکلات بعدیتون مفید باشید: شاید به نظر بیاد احتمالش کمه ولی برای من که کم پیش نیومده که به یکی از مطالب قبلیم سر بزنم و مرور کنم. ما فراموشکاریم و اتفاقا چیزایی که یه زمانی خودتون نوشتیم بهترین چیز برای یادآوری اون موضوعه. چون به زبون خودمونه. به چشم جزوه نوشتن بهش نگاه کنید.
اما چه کارهایی میتونی بکنیم؟ اینا نظرات منه، قطعا میشه بهتر و کامل ترش کرد. استقبال میکنم.
+ وبلاگ فارسی بنویسید. مخاطب وبلاگ فارسی معمولا کسیه که دوست داره شروع کنه ولی زبان انگلیسی بلد نیست که مطالب انگلیسی رو بخونه یا کلا با موضوع آشنا نیست که خودش سرچ کرده باشه.
+ وبلاگ انگلیسی بنویسید. اگر زبانتون خوبه یا حتی معمولیه چرا که نه، اینطوری به آدمای بیشتری کمک کردید. اگر هرکس به زبان مادری خودش درس میداد چقدر علم ما کمتر بود؟
+ فیلم ضبط کنید.
+ منتور/معلم میتونید بشید.
+ تو فرومهای پرسش و پاسخ فعال باشید: اینجا خیلی باید دقت کرد. فروم منظورم جاییه که توش سوالات به درد بخور پرسیده میشه و جوابهای به درد بخوری داده میشه و برای عموم قابل دسترسی و سرچه.
نمونه چیزایی که مناسب نیست:
− گروههای تلگرام/هر پیامرسانی. چون چیزی که توش نوشته میشه برای همیشه دفن میشه و کسی که اون مشکل رو داره نمیتونه از اون وقتی که گذاشتید استفاده کنه.
− فروم/گروههای خیلی مبتدیها. معمولا اینجور جاها سوالات از «چطوری درایور گرافیک نصب کنم» یا «ویندوزم بالا نمیاد چیکار کنم» فراتر نمیره. جدا از اینکه مشکل قبلیو داره، عملا وقتتون رو دارید تلف میکنید چون اون شخص میتونه سرچ کنه یا اگه خیلی از موضوع پرته بره پیش تعمیرکاری که شغلش همینه.
− جایی که برای دیدن جواب سوال یا خلاصه خوندن موضوعات نیاز به اکانت داره. اینطوری هم احتمالا توی موتور جست و جو قابل دیدن نیست هم وقت آدما تلف میشه.
در کل به نظرم بهترین جا همون خانواده stack exchange ئه، هرچند که یه مقدار شروعش ترسناکه چون وقتشون و کیفیت کار براشون مهمه پس مهربون نیستن.
به عنوان نکته آخر هم سعی کنید تو کمک به دیگران، همچنان برای وقت خودتون ارزش قائل باشید و کار تکراری نکنید. اگر جواب سوالی جایی هست، شما دوباره جواب ندید. اگر با سرچ میتونه به مطالب قابل قبولی برسه شما دوباره وقت نگذارید.
شاید بگید تو همین چنل میذاری هم که مشخصات بالا رو نداره. کاملا درسته. احتمالا به یه تعداد توصیه که برسیم جمع و جور کنم و تبدیل به وبلاگ کنم که برای همه قابل دیدن باشه.
سعی کنید علمتون رو ترویج کنید. با فقط برای خودتون نگه داشتن یه مزایایی به دست میاد ولی ترویجش هم مزایایی داره.
+ برای بقیه مفید باشید: خودتون چقدر از Stackoverflow استفاده کردید؟ چقدر فیلم های جادی رو دیدید؟ (به طول مثال) همین چنل رو چرا دنبال میکنید؟
+ برای آینده شغلیتون مفید باشید: اگر به دیگران چیزی یاد بدید، برای خودتون برند شخصی ساختید. یه جور نمونه کار میشه. براتون موقعیتهای شغلی (نه فقط معلمی) هم میاره به زودی.
+ برای مشکلات بعدیتون مفید باشید: شاید به نظر بیاد احتمالش کمه ولی برای من که کم پیش نیومده که به یکی از مطالب قبلیم سر بزنم و مرور کنم. ما فراموشکاریم و اتفاقا چیزایی که یه زمانی خودتون نوشتیم بهترین چیز برای یادآوری اون موضوعه. چون به زبون خودمونه. به چشم جزوه نوشتن بهش نگاه کنید.
اما چه کارهایی میتونی بکنیم؟ اینا نظرات منه، قطعا میشه بهتر و کامل ترش کرد. استقبال میکنم.
+ وبلاگ فارسی بنویسید. مخاطب وبلاگ فارسی معمولا کسیه که دوست داره شروع کنه ولی زبان انگلیسی بلد نیست که مطالب انگلیسی رو بخونه یا کلا با موضوع آشنا نیست که خودش سرچ کرده باشه.
+ وبلاگ انگلیسی بنویسید. اگر زبانتون خوبه یا حتی معمولیه چرا که نه، اینطوری به آدمای بیشتری کمک کردید. اگر هرکس به زبان مادری خودش درس میداد چقدر علم ما کمتر بود؟
+ فیلم ضبط کنید.
+ منتور/معلم میتونید بشید.
+ تو فرومهای پرسش و پاسخ فعال باشید: اینجا خیلی باید دقت کرد. فروم منظورم جاییه که توش سوالات به درد بخور پرسیده میشه و جوابهای به درد بخوری داده میشه و برای عموم قابل دسترسی و سرچه.
نمونه چیزایی که مناسب نیست:
− گروههای تلگرام/هر پیامرسانی. چون چیزی که توش نوشته میشه برای همیشه دفن میشه و کسی که اون مشکل رو داره نمیتونه از اون وقتی که گذاشتید استفاده کنه.
− فروم/گروههای خیلی مبتدیها. معمولا اینجور جاها سوالات از «چطوری درایور گرافیک نصب کنم» یا «ویندوزم بالا نمیاد چیکار کنم» فراتر نمیره. جدا از اینکه مشکل قبلیو داره، عملا وقتتون رو دارید تلف میکنید چون اون شخص میتونه سرچ کنه یا اگه خیلی از موضوع پرته بره پیش تعمیرکاری که شغلش همینه.
− جایی که برای دیدن جواب سوال یا خلاصه خوندن موضوعات نیاز به اکانت داره. اینطوری هم احتمالا توی موتور جست و جو قابل دیدن نیست هم وقت آدما تلف میشه.
در کل به نظرم بهترین جا همون خانواده stack exchange ئه، هرچند که یه مقدار شروعش ترسناکه چون وقتشون و کیفیت کار براشون مهمه پس مهربون نیستن.
به عنوان نکته آخر هم سعی کنید تو کمک به دیگران، همچنان برای وقت خودتون ارزش قائل باشید و کار تکراری نکنید. اگر جواب سوالی جایی هست، شما دوباره جواب ندید. اگر با سرچ میتونه به مطالب قابل قبولی برسه شما دوباره وقت نگذارید.
شاید بگید تو همین چنل میذاری هم که مشخصات بالا رو نداره. کاملا درسته. احتمالا به یه تعداد توصیه که برسیم جمع و جور کنم و تبدیل به وبلاگ کنم که برای همه قابل دیدن باشه.
👍22
#توصیهها
مدام ایده بزنید
یه عبارتی به کار میبرن به اسم «ماهیچهی خلاقیت»، تعبیرش هم اینه که هرچی بیشتر از خلاقیتتون استفاده کنید مثل یه ماهیچه قویتر میشه. برای برنامهنویسی هم به این ماهیچه نیاز داریم که بتونیم مسائل رو حل کنیم. البته منظورم این نیست که باید خودمون ایده بزنیم که یه درخت باینری رو برعکس کنیم، برای همین کارهای روتین هم نیاز به ایده داریم.
حالا چطوری ایده بزنیم و تمرین خلاقیت کنیم؟
+ برای مسائل زندگی که حل نشده راه حل بدید، بعدا اگر حل شدن با راه حل خودتون مقایسه کنید و ایده بگیرید.
مثلا دارن دوربین زیر نمایشگر میسازن، فکر کنید که چطوری چنین چیزی ممکنه؟ یا چرا ممکن نیست؟
+ برای مسائلی که حل شدن ایده بزنید و خودتون سعی کنید اصلاحش کنید. بعد برید راه حل فعلی رو هم ببینید و اگه با مال شما تفاوت داشت به دلیل تفاوتش فکر کنید.
مثلا صفجه نمایش لمسی میسازن، بهش فکر کنید چطوری ساخته شده؟ بعد برید سرچ کنید که واقعا چطوری ساخته شده.
یا مثلا یه برنامه هست که مصرف جوهر پرینتر رو کم میکنه، اول فکر کنید چطوری کار میکنه بعد برید سرچ کنید.
+ مسائل زندگی خودتون رو به شکل متفاوتی حل کنید. مثلا اگه همیشه از یه مسیر میرید خونه، به مسیرهای جایگزین و نقاط ضعف و قوت هر کدوم فکر کنید. حتی چند تا مسیر رو امتحان کنید.
+ ایدهها رو ترکیب کنید. یه ایده که جای دیگه جواب داده یا نداده رو سعی کنید جای دیگه به کار بگیرید.
مثلا موتور هواپیما ایده کارکردش چطوریه؟ آیا میشه تو ماشین لباسشویی هم استفاده بشه؟ تو ابمیوه گیری چی؟ اگه بخواد بشه چطوری میشه؟ اگه قطعا نمیشه چرا قطعا نمیشه؟
+ ایدههاتون رو هرچند احمقانه با دیگران به اشتراک بگذارید. خیلی اوقات ایدههای خوب از پردازش یه ایده بد توسط یه آدم دیگه به وجود میاد. اینطوری خودتون هم یاد میگیرید ایده هاتون رو بهتر کنید.
+ اگه اعتماد به نفس ندارید، به این فکر کنید که قرار نیست این ایدهها به کسی آسیب بزنه. نهایتا تو ذهن خودتون یا برای کارهای خودتونه. همچنین به این فکر کنید که ایدههای خوبی که الان استفاده میشه هم یه زمانی تست نشده و آزمایشی بوده.
این دو تا مطلب هم جالب بودن. مثلا ایدهی ۶ کلاه رو مطرح کرده بود یکیش.
https://www.verywellmind.com/how-to-boost-your-creativity-2795046
https://www.gcu.edu/blog/performing-arts-digital-arts/7-tips-developing-creativity
مدام ایده بزنید
یه عبارتی به کار میبرن به اسم «ماهیچهی خلاقیت»، تعبیرش هم اینه که هرچی بیشتر از خلاقیتتون استفاده کنید مثل یه ماهیچه قویتر میشه. برای برنامهنویسی هم به این ماهیچه نیاز داریم که بتونیم مسائل رو حل کنیم. البته منظورم این نیست که باید خودمون ایده بزنیم که یه درخت باینری رو برعکس کنیم، برای همین کارهای روتین هم نیاز به ایده داریم.
حالا چطوری ایده بزنیم و تمرین خلاقیت کنیم؟
+ برای مسائل زندگی که حل نشده راه حل بدید، بعدا اگر حل شدن با راه حل خودتون مقایسه کنید و ایده بگیرید.
مثلا دارن دوربین زیر نمایشگر میسازن، فکر کنید که چطوری چنین چیزی ممکنه؟ یا چرا ممکن نیست؟
+ برای مسائلی که حل شدن ایده بزنید و خودتون سعی کنید اصلاحش کنید. بعد برید راه حل فعلی رو هم ببینید و اگه با مال شما تفاوت داشت به دلیل تفاوتش فکر کنید.
مثلا صفجه نمایش لمسی میسازن، بهش فکر کنید چطوری ساخته شده؟ بعد برید سرچ کنید که واقعا چطوری ساخته شده.
یا مثلا یه برنامه هست که مصرف جوهر پرینتر رو کم میکنه، اول فکر کنید چطوری کار میکنه بعد برید سرچ کنید.
+ مسائل زندگی خودتون رو به شکل متفاوتی حل کنید. مثلا اگه همیشه از یه مسیر میرید خونه، به مسیرهای جایگزین و نقاط ضعف و قوت هر کدوم فکر کنید. حتی چند تا مسیر رو امتحان کنید.
+ ایدهها رو ترکیب کنید. یه ایده که جای دیگه جواب داده یا نداده رو سعی کنید جای دیگه به کار بگیرید.
مثلا موتور هواپیما ایده کارکردش چطوریه؟ آیا میشه تو ماشین لباسشویی هم استفاده بشه؟ تو ابمیوه گیری چی؟ اگه بخواد بشه چطوری میشه؟ اگه قطعا نمیشه چرا قطعا نمیشه؟
+ ایدههاتون رو هرچند احمقانه با دیگران به اشتراک بگذارید. خیلی اوقات ایدههای خوب از پردازش یه ایده بد توسط یه آدم دیگه به وجود میاد. اینطوری خودتون هم یاد میگیرید ایده هاتون رو بهتر کنید.
+ اگه اعتماد به نفس ندارید، به این فکر کنید که قرار نیست این ایدهها به کسی آسیب بزنه. نهایتا تو ذهن خودتون یا برای کارهای خودتونه. همچنین به این فکر کنید که ایدههای خوبی که الان استفاده میشه هم یه زمانی تست نشده و آزمایشی بوده.
این دو تا مطلب هم جالب بودن. مثلا ایدهی ۶ کلاه رو مطرح کرده بود یکیش.
https://www.verywellmind.com/how-to-boost-your-creativity-2795046
https://www.gcu.edu/blog/performing-arts-digital-arts/7-tips-developing-creativity
Verywell Mind
17 Fun Ways to Boost Your Creativity
Creativity is a skill you can improve with practice. If you want to boost creativity, try these 17 fun and useful strategies to improve your creative skills.
👍10
نوشتههای ترمینالی
یک کتابخانهی گو که کمک میکنه structured concurrency داشته باشیم و کدهای موازی خواناتری بزنیم: https://github.com/sourcegraph/conc ایده کلی هم اینه که برای خودمون go routine پرتاب نکنیم، چون مشخص نیست این روتینه که تموم میشه کارش و اگه ارور بده چی؟ بلکه…
اصلا structured concurrency چی هست؟
اول بگم structured programming چیه:
دایجسترا یه مقاله معروف داره که میگه go-to خوب نیست. و اشاره میکنه که این امکان اگرچه نهایتا لازمه، اما استفاده مستقیم و کنترل نشده ازش باعث خطا و ناخوانایی کد میشه. پس بیایم استفاده نکنیم. که موفق هم شد و الان گوتو خیلی کمرنگه. اما چیکار کنیم؟ برنامه نویسی ساختارمند تعریف شد که یکسری کارها که قبلاً میکردیم رو دیگه اجازه نداریم بکنیم، مثلا به وسط یک تابع jump نمیکنیم. به جاش امکانات دیگری مثل for/if داریم که اگرچه در نهایت از go-to استفاده میکنن ولی به شکل کنترل شده.
حالا همین ماجرا برای threadها هم هست. تو مطلب پایین میگه عبارت go توی کولنگ که یه go routine رو به شما همروند اجرا میکنه ولی کلا منظور اجرای یک threadئه.
داستان هم اینه که میگه اینم تا حدی مشکلات go-to رو داره مثلا دیباگ سخت، ناخوانایی کد و ...
پیشنهادش هم اینه بیایم در استفاده از همروندی خودمون رو محدود کنیم، چطوری؟ با تعریف ساختارهای جدید.
اینم تعبیر جالبی بود:
Structured concurrency” refers to a way to structure async computations so that child operations are guaranteed to complete before their parents, just the way a function is guaranteed to complete before its caller.
مطلب طولانی و جذاب که بیشتر روی گو متمرکزه
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
با تمرکز روی کاتلین:
https://www.thedevtavern.com/blog/posts/structured-concurrency-explained/
با تمرکز روی C++:
https://ericniebler.com/2020/11/08/structured-concurrency/
با دید async/await
https://oleb.net/2021/structured-concurrency/
اول بگم structured programming چیه:
دایجسترا یه مقاله معروف داره که میگه go-to خوب نیست. و اشاره میکنه که این امکان اگرچه نهایتا لازمه، اما استفاده مستقیم و کنترل نشده ازش باعث خطا و ناخوانایی کد میشه. پس بیایم استفاده نکنیم. که موفق هم شد و الان گوتو خیلی کمرنگه. اما چیکار کنیم؟ برنامه نویسی ساختارمند تعریف شد که یکسری کارها که قبلاً میکردیم رو دیگه اجازه نداریم بکنیم، مثلا به وسط یک تابع jump نمیکنیم. به جاش امکانات دیگری مثل for/if داریم که اگرچه در نهایت از go-to استفاده میکنن ولی به شکل کنترل شده.
حالا همین ماجرا برای threadها هم هست. تو مطلب پایین میگه عبارت go توی کولنگ که یه go routine رو به شما همروند اجرا میکنه ولی کلا منظور اجرای یک threadئه.
داستان هم اینه که میگه اینم تا حدی مشکلات go-to رو داره مثلا دیباگ سخت، ناخوانایی کد و ...
پیشنهادش هم اینه بیایم در استفاده از همروندی خودمون رو محدود کنیم، چطوری؟ با تعریف ساختارهای جدید.
اینم تعبیر جالبی بود:
Structured concurrency” refers to a way to structure async computations so that child operations are guaranteed to complete before their parents, just the way a function is guaranteed to complete before its caller.
مطلب طولانی و جذاب که بیشتر روی گو متمرکزه
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
با تمرکز روی کاتلین:
https://www.thedevtavern.com/blog/posts/structured-concurrency-explained/
با تمرکز روی C++:
https://ericniebler.com/2020/11/08/structured-concurrency/
با دید async/await
https://oleb.net/2021/structured-concurrency/
vorpus.org
Notes on structured concurrency, or: Go statement considered harmful — njs blog
👍4
Forwarded from La3tKnight (Amir.)
👍3
دریافتی:
فرض کنید که یه ابزاری وجود داره که با دقت ۸۰ درصد میتونه این رو پیشبینی کنه که قیمت بیتکوین در هفتهی آتی صعودیه یا نزولی. (به صورت دقیقتر اینو پیشبینی میکنه که میانگین وزندار قیمت روزانهی بیتکوین از آخرین قیمت روزانهی بیتکوین پایینتر خواهد بود یا بالاتر.)
این ابزار قرار نیست به شما بگه که چند درصد صعود یا نزول خواهیم داشت، فقط قراره بگه که الآن زمان خریده یا فروش.
با استفاده از این ابزار میتونید توی هر هفته زمانهایی که قیمت بیتکوین صعود میکنه، از صعودش سود بگیرید و از نزول ارزش سرمایهتون جلوگیری کنید. درواقع برای نوسانگیری هفتگی قیمت قراره بشه ازش استفاده کرد.
افرادی که دوس دارن از نزول قیمت در بازار فیوچرز هم سود بگیرن میتونن از این ابزار استفاده کنن و از نزول قیمت هم استفاده کنن.
لطفاً به ما کمک کنید که چطوری این ابزار رو ارزشگذاری کنیم.
لطف کنید گوگل فرم زیر رو پر کنید، خیلی کوتاهه و زمانی ازتون نمیگیره:
https://forms.gle/74bXkNmW9CEYQi8G6
خیلی ممنونم بابت وقتی که میذارید. اگر بتونید این متن رو بهاشتراک بذارید خیلی ممنونتون میشم که اطلاعات بیشتری به دستمون برسه.
فرض کنید که یه ابزاری وجود داره که با دقت ۸۰ درصد میتونه این رو پیشبینی کنه که قیمت بیتکوین در هفتهی آتی صعودیه یا نزولی. (به صورت دقیقتر اینو پیشبینی میکنه که میانگین وزندار قیمت روزانهی بیتکوین از آخرین قیمت روزانهی بیتکوین پایینتر خواهد بود یا بالاتر.)
این ابزار قرار نیست به شما بگه که چند درصد صعود یا نزول خواهیم داشت، فقط قراره بگه که الآن زمان خریده یا فروش.
با استفاده از این ابزار میتونید توی هر هفته زمانهایی که قیمت بیتکوین صعود میکنه، از صعودش سود بگیرید و از نزول ارزش سرمایهتون جلوگیری کنید. درواقع برای نوسانگیری هفتگی قیمت قراره بشه ازش استفاده کرد.
افرادی که دوس دارن از نزول قیمت در بازار فیوچرز هم سود بگیرن میتونن از این ابزار استفاده کنن و از نزول قیمت هم استفاده کنن.
لطفاً به ما کمک کنید که چطوری این ابزار رو ارزشگذاری کنیم.
لطف کنید گوگل فرم زیر رو پر کنید، خیلی کوتاهه و زمانی ازتون نمیگیره:
https://forms.gle/74bXkNmW9CEYQi8G6
خیلی ممنونم بابت وقتی که میذارید. اگر بتونید این متن رو بهاشتراک بذارید خیلی ممنونتون میشم که اطلاعات بیشتری به دستمون برسه.
Google Docs
پیشنهاد قیمت برای محصول
فرض کنید که یه ابزاری وجود داره که با دقت ۸۰ درصد میتونه این رو پیشبینی کنه که قیمت بیتکوین در هفتهی آتی صعودیه یا نزولی. (به صورت دقیقتر اینو پیشبینی میکنه که میانگین وزندار قیمت روزانهی بیتکوین از آخرین قیمت روزانهی بیتکوین پایینتر خواهد بود…
⚡4🔥1
اموزش استفاده از xfce terminal به عنوان drop down terminal
https://averagelinuxuser.com/xfce-drop-down-terminal/
https://averagelinuxuser.com/xfce-drop-down-terminal/
Average Linux User
XFCE drop-down terminal
Did you know that XFCE terminal supports the drop-down mode? In this post, you will learn to enable the XFCE drop-down terminal. A drop-down terminal is very useful to have quick and easy access to a terminal.
🔥1
Forwarded from @yegor256 news (yegor256)
It took me 13 years and 3 months to grow my StackOverflow account from zero to 100k reputation points, which I reached today! This blog post, which I wrote five years ago, explains why I believe StackOverflow is a mandatory tool for any programmer. I still think so and I still use it, asking a few questions every month. Big thanks to SO!