Forwarded from Babak Ghadiri Links
GitLab
Arvancloud · GitLab
ArvanCloud Public Repositories
💩10👍1👎1
خیلی وقت بود پست نذاشتم، لذا این پست رو به عنوان یه دیلی نوت و یه متن تِک ترکیبی مینویسم.
دیلی نوت:
در ۴۸ ساعت گذشته، بالای ۳۰ساعت کار کردم. توی شرکت درگیر یه کار خیلی بزرگ و باحال شدم که بالاخره بعد از چند روز کار ممتد و دوشبانه روز کامل کار تموم شد. حقیقتا پشمای خودمم ریخت. حقیقتا تیم ورکی که تجربه کردم از جذابترینا بود. همچنین یک فرصتی محیا کرد که مجددا هرچند خیلی کم، ولی باز دست به کد شدم. چیزیش که برام جذاب بود و منو ارضا میکرد، فشار کار سنگین، لود زیاد، زمان کم و سختی بود. دقیقا یاد شریف انداخت منو. یاد پروژه اواس و ایپی و که پاشون اشک میریختم تا تستا پاس شن و هیچچیز و هیچ حالی برام قشنگتر از اون عذابا نیست.
کار درنهایت بدون failure و هیچ مشکلی دان شد. و چقدر واقعا دوست دارم من این شرکت و آدماش و کاراش رو.
متن تِک:
مشکلی که باهاش برخوردیم و ساعتها دیباگی که کردیم، crontabها بودن. قضیه این بود که یک کد جنگویی بود که با django-crontab میاد یه سری کرانجاب اضافه میکنه به crontab خود اواس کف کانتینر. این کرانجابها به صورت پریودیک میرفتن دستور
python manage.py cron run id
رو اجرا میکردن. مشکل این بود ما نمیفهمیدیم که کرانها اجرا میشن یا نه. توی کانتینر هیچ syslogای نبود که بشه خروجیشو دید و همچنین printهایی هم که کف کد بود اثری نداشت چون خروجیش توی stdout نمیومد.
ولی وقتی دستی کرانها رو اجرا میکردیم اوکی بود.
ما برای دیباگ که آیا واقعا اجرا میشن یا نه اومدیم ps aux رو واچ کردیم هر یک ثانیه تا ببینیم پراسس کران اجرا میشه یا نه.
نکته اول اینکه ما یه باینری توی sbin داریم به اسم cron و یه باینری توی bin داریم به اسم crontab. نکته اینه که crontab اون چیزیه که ما باهاش کار میکنیم ولی cron اون سرویس اواسه که میره کرانهای توی crontab رو ران میکنه.
https://stackoverflow.com/questions/21615673/difference-between-cron-crontab-and-cronjob
درواقع شما میزنید
crontab -e
یا
crontab -l
و یا هر آرگی ولی کرانی که توی crontab اضافه میکنید رو cron ران میکنه.
نکته دوم اینکه اگر شما تعریف کنید که پریود کرانتون هر ۸ ساعت باشه مثلا، این به لحظهای که کران رو اضافه میکنید برنمیگرده و بر اساس مبدا سیستمه. مثلا اگر شما ساعت ۶ صبح یه کرانی با پریود ۸ ساعته اضافه کنید، اولین باری که ران میشه ۸ صبحه و نه ۲ ظهر.
نکته این بود که کران واقعا ران میشد، ولی توی کد خطا میخورد. از طرفی چون لاگی هم نبود نمیفهمیدیم. در نهایت با همون ps aux فهمیدیم. مشکل چی بود ولی؟ ما متغیرهای محیطی رو (env) ها رو داده بودیم به کانتینر و جنگو با os.getenv میخوند و یک کد ormای بور که اوکی بود. ولی وقتی کران میرفت رانش کنه مشکل psql میخورد. در واقع envها هم درست بود و وقتی دستور env رو میزدیم همه بودن ولی همچنان پراسس کران که کد جنگو رو ران میکرد به مشکل میخورد. دلیلش چی بود؟ پراسس اصلی cron این envها رو نمیده به بچهش. در واقع چایلد پراسسی که پرنتش پراسس cron هست، env ها رو ازش به ارث نمیبره و سر همین ارور psql میاد که نمیتونه وصل شه. راهحل؟ باید توی فایلی که crontabها نوشته میشه، envهایی از کانتینر که میخوای به چایلد پراسس کران پاس داده شه مشخص شه.
دیلی نوت:
در ۴۸ ساعت گذشته، بالای ۳۰ساعت کار کردم. توی شرکت درگیر یه کار خیلی بزرگ و باحال شدم که بالاخره بعد از چند روز کار ممتد و دوشبانه روز کامل کار تموم شد. حقیقتا پشمای خودمم ریخت. حقیقتا تیم ورکی که تجربه کردم از جذابترینا بود. همچنین یک فرصتی محیا کرد که مجددا هرچند خیلی کم، ولی باز دست به کد شدم. چیزیش که برام جذاب بود و منو ارضا میکرد، فشار کار سنگین، لود زیاد، زمان کم و سختی بود. دقیقا یاد شریف انداخت منو. یاد پروژه اواس و ایپی و که پاشون اشک میریختم تا تستا پاس شن و هیچچیز و هیچ حالی برام قشنگتر از اون عذابا نیست.
کار درنهایت بدون failure و هیچ مشکلی دان شد. و چقدر واقعا دوست دارم من این شرکت و آدماش و کاراش رو.
متن تِک:
مشکلی که باهاش برخوردیم و ساعتها دیباگی که کردیم، crontabها بودن. قضیه این بود که یک کد جنگویی بود که با django-crontab میاد یه سری کرانجاب اضافه میکنه به crontab خود اواس کف کانتینر. این کرانجابها به صورت پریودیک میرفتن دستور
python manage.py cron run id
رو اجرا میکردن. مشکل این بود ما نمیفهمیدیم که کرانها اجرا میشن یا نه. توی کانتینر هیچ syslogای نبود که بشه خروجیشو دید و همچنین printهایی هم که کف کد بود اثری نداشت چون خروجیش توی stdout نمیومد.
ولی وقتی دستی کرانها رو اجرا میکردیم اوکی بود.
ما برای دیباگ که آیا واقعا اجرا میشن یا نه اومدیم ps aux رو واچ کردیم هر یک ثانیه تا ببینیم پراسس کران اجرا میشه یا نه.
نکته اول اینکه ما یه باینری توی sbin داریم به اسم cron و یه باینری توی bin داریم به اسم crontab. نکته اینه که crontab اون چیزیه که ما باهاش کار میکنیم ولی cron اون سرویس اواسه که میره کرانهای توی crontab رو ران میکنه.
https://stackoverflow.com/questions/21615673/difference-between-cron-crontab-and-cronjob
درواقع شما میزنید
crontab -e
یا
crontab -l
و یا هر آرگی ولی کرانی که توی crontab اضافه میکنید رو cron ران میکنه.
نکته دوم اینکه اگر شما تعریف کنید که پریود کرانتون هر ۸ ساعت باشه مثلا، این به لحظهای که کران رو اضافه میکنید برنمیگرده و بر اساس مبدا سیستمه. مثلا اگر شما ساعت ۶ صبح یه کرانی با پریود ۸ ساعته اضافه کنید، اولین باری که ران میشه ۸ صبحه و نه ۲ ظهر.
نکته این بود که کران واقعا ران میشد، ولی توی کد خطا میخورد. از طرفی چون لاگی هم نبود نمیفهمیدیم. در نهایت با همون ps aux فهمیدیم. مشکل چی بود ولی؟ ما متغیرهای محیطی رو (env) ها رو داده بودیم به کانتینر و جنگو با os.getenv میخوند و یک کد ormای بور که اوکی بود. ولی وقتی کران میرفت رانش کنه مشکل psql میخورد. در واقع envها هم درست بود و وقتی دستور env رو میزدیم همه بودن ولی همچنان پراسس کران که کد جنگو رو ران میکرد به مشکل میخورد. دلیلش چی بود؟ پراسس اصلی cron این envها رو نمیده به بچهش. در واقع چایلد پراسسی که پرنتش پراسس cron هست، env ها رو ازش به ارث نمیبره و سر همین ارور psql میاد که نمیتونه وصل شه. راهحل؟ باید توی فایلی که crontabها نوشته میشه، envهایی از کانتینر که میخوای به چایلد پراسس کران پاس داده شه مشخص شه.
Stack Overflow
Difference between cron, crontab, and cronjob?
Technically speaking, what is the difference between a cron, crontab, and cronjob?
From what I can gather, cron is the utility on the server, crontab is a file which contains the time intervals and
From what I can gather, cron is the utility on the server, crontab is a file which contains the time intervals and
🔥22👍1
احتمالا خودتونم در جریانید، ولی خب پاک کردن یک فایل در لینوکس یا ویندوز به معنی پاک کردنش از دیسک نیست. صرفا به معنی نمایش ندادنش در فهرست هست. اگر فایل مهمی دارید که پاک کردنش براتون به معنی لیترالی پاک کردنش از دیسک هست، پیشنهاد میکنم اگر از لینوکس استفاده میکنید از دستور shred استفاده کنید و اگر ویندوز هستید از eraser استفاده کنید. اینها میان روی قسمتی از دیسک که مال این فایل هست چندین بار دیتا مینویسن و پاک میکنن که مطمئن شن که دیتای اولیه خیلی خیلی سخت قابل بازگشته.
اگرم مک استفاده میکنید بندازید بیرون و لینوکس بگیرید.
https://www.geeksforgeeks.org/shred-command-in-linux-with-examples/
https://eraser.heidi.ie/
اگرم مک استفاده میکنید بندازید بیرون و لینوکس بگیرید.
https://www.geeksforgeeks.org/shred-command-in-linux-with-examples/
https://eraser.heidi.ie/
GeeksforGeeks
shred Command in Linux with Examples - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
🤣38👍3👏1
🎉 مسابقه Nowruz 1404 بزودی برگزار میشه!
🌟 مسابقه فتح پرچم (CTF) چیست؟
فتح پرچم یک رقابت در حوزه امنیت سایبری است که شما را با سوالات حوزه امنیت سایبری به چالش میکشد. 🎯
چالشهای این مسابقه شامل حوزه های زیر میشه:
🌐 وب
🔁 مهندسی معکوس
🔑 رمزنگاری
🔍 جرم یابی دیجیتال
📡 تحلیل ترافیک شبکه
🛠 pwn
👨💻 این مسابقه مناسب چه کسانی است؟
- علاقهمندان به امنیت سایبری و فناوری اطلاعات 💻
- کسانی که میخواهند مهارتهای عملی خود را در محیطی چالشی تقویت کنند 🚀
📥 پلتفرم مسابقه
https://1404.fmc.tf
🗨 سرور دیسکورد مسابقه
https://discord.fmc.tf
🌟 مسابقه فتح پرچم (CTF) چیست؟
فتح پرچم یک رقابت در حوزه امنیت سایبری است که شما را با سوالات حوزه امنیت سایبری به چالش میکشد. 🎯
چالشهای این مسابقه شامل حوزه های زیر میشه:
🌐 وب
🔁 مهندسی معکوس
🔑 رمزنگاری
🔍 جرم یابی دیجیتال
📡 تحلیل ترافیک شبکه
🛠 pwn
👨💻 این مسابقه مناسب چه کسانی است؟
- علاقهمندان به امنیت سایبری و فناوری اطلاعات 💻
- کسانی که میخواهند مهارتهای عملی خود را در محیطی چالشی تقویت کنند 🚀
📥 پلتفرم مسابقه
https://1404.fmc.tf
🗨 سرور دیسکورد مسابقه
https://discord.fmc.tf
🔥15
کار جالب چیا دارید توی عید بکنیم؟ مثلا من توی ذهنم بود مثل سگ اینقدر ctf بدم تا بمیرم ولی خب بنظرم پوینتلسه مقداری. کار خفن و جالب اگر چیزی داشتید بگید.
👍6
الان تقریبا سه چهار ترمه که تیای امنیتم و صرفا واسه تمرین یک که سوالات pwn هست سوال طرح میکنم. حقیقتا وقتی میبینم ملت سوالای تمرین یک رو حل میکنن و عشق میکنن بعد از حلش خیلی ذوق میکنم. همینکه بشه علاقه یه نفرو به این فیلد جذب کرد واقعا برام کار با ارزشیه.
ولی خب مسئله اصلی اینه که اینقدر دانشکده دیگه شده فقط هوش، اصلا کسی نیست توی امنیت که مثلا اون بیاد سال بعد وایسه سوال طرح کنه یا ملت رو route کنه که ببینید بابا این فیلد هم هست. از طرفی هم یک حرکت گلهای شکل گرفته توی همه که عه بریم هوش بریم هوش چرا چون همه دارن میرن هوش.
حقیقتا ایرانی درست نمیشه. یعنی ایرانم درست شه ایرانی درست نمیشه.
ولی خب مسئله اصلی اینه که اینقدر دانشکده دیگه شده فقط هوش، اصلا کسی نیست توی امنیت که مثلا اون بیاد سال بعد وایسه سوال طرح کنه یا ملت رو route کنه که ببینید بابا این فیلد هم هست. از طرفی هم یک حرکت گلهای شکل گرفته توی همه که عه بریم هوش بریم هوش چرا چون همه دارن میرن هوش.
حقیقتا ایرانی درست نمیشه. یعنی ایرانم درست شه ایرانی درست نمیشه.
💔35👍14👎7🤣3
یک سال برای کنکور من اینجا درس خوندم. دقیقا زیر همین پرده. و الان از اون موضوع تقریبا ۶ سال میگذره و من دیگه از دانشگاه هم حتی فارغ شدم و اینجا هم شد انباری :(
❤43🙏2👍1
shadPS4 is an early PlayStation 4 emulator for Windows, Linux and macOS written in C++.
https://github.com/shadps4-emu/shadPS4
https://github.com/shadps4-emu/shadPS4
GitHub
GitHub - shadps4-emu/shadPS4: PlayStation 4 emulator for Windows, Linux and macOS written in C++
PlayStation 4 emulator for Windows, Linux and macOS written in C++ - shadps4-emu/shadPS4
❤1
Dutchman Daily
shadPS4 is an early PlayStation 4 emulator for Windows, Linux and macOS written in C++. https://github.com/shadps4-emu/shadPS4
اینها رو میبینم و با خودم میگم که هرگز اینقدر خفن نخواهم شد در زندگیم.
👍8👎3😨3
یکی از راههایی که میشه جلوی حملهی DNS Cache Poisoning رو گرفت، دادن درخواست با ترکیب بزرگ و کوچک حروف هست. مثلا به جای درخواست google.com بدیم GoOGle.cOm.
توی این لینک توضیح داده شده که این عمل چجوری جلوی این حمله رو میگیره:
https://hypothetical.me/short/dns-0x20/
توی این لینک توضیح داده شده که این عمل چجوری جلوی این حمله رو میگیره:
https://hypothetical.me/short/dns-0x20/
Hypothetical Me
DNS and The Bit 0x20 – Hypothetical Me
Short note on a clever hack that makes everyones DNS just a bit more secure.
🔥9❤2
چجوری کلادفلر آنالیز ۱ میلیون درخواست بر ثانیه رو هندل میکنه؟
https://blog.cloudflare.com/how-cloudflare-analyzes-1m-dns-queries-per-second/
https://blog.cloudflare.com/how-cloudflare-analyzes-1m-dns-queries-per-second/
The Cloudflare Blog
How Cloudflare analyzes 1M DNS queries per second
On Friday, we announced DNS analytics for all Cloudflare customers. Because of our scale –– by the time you’ve finished reading this, Cloudflare DNS will have handled millions of DNS queries –– we had to be creative in our implementation.
👍2❤1
Forwarded from As I Was Moving Ahead Occasionally I Saw Brief Glimpses of Beauty (Soroush Sherafat)
Barry Schwartz - Why We Work.pdf
1.7 MB
Barry Schwartz - Why We Work
بهنظرم کتاب خیلی مناسبی برای خوندن توی بازهی سنی ماست. بعضی جاها مخاطبهاش مستقیما مدیرها بودن و بعضی جاها هم انگار خیلی شعارزده بود اما درکل خیلی پیشنهاد میکنم. سه فصل اولش ۴۰ صفحه هم نمیشه.
بهنظرم کتاب خیلی مناسبی برای خوندن توی بازهی سنی ماست. بعضی جاها مخاطبهاش مستقیما مدیرها بودن و بعضی جاها هم انگار خیلی شعارزده بود اما درکل خیلی پیشنهاد میکنم. سه فصل اولش ۴۰ صفحه هم نمیشه.
👍5
اگر خواستید بدونید که AS یک آدرس IP چه کسی یا سازمانی هست:
https://bgp.tools/
https://bgp.tools/
❤2👍1
امروز یه مسئله بامزه raise شد.
شما فرض کنید که یک کمپانی هست که حدود ۲ ۳ ترا دیتا داره روی mysql. زجری که این کمپانی میکشه اینه که با هر آپدیت گندهای که میخواد روی دیتابیسش بره، چیزی حدود ۱ ساعت down عه. چون حجم دیتا زیاده و مثلا یه تغییر جنس یه فیلد روی چندتا تیبل یه downtime یک ساعتی داره براشون. چرا؟ چون برای اپدیت تیبلها، اون تیبلها لاک میشن و کوئریهای write بسته میشن. حتی بعضا توی mysql، کوئریهای read هم بسته میشن. دغدغه اینجاس که چجوری این کمپانی میتونه بدون هیچ downtimeای، دیتابیسشو آپدیت کنه.
این ما رو به این داشت که شرکتهای بزرگ چکار میکنن؟ مثلا گوگل که نمیاد بگه عزیزان لطفا امروز سرچ نکنید ما downاین تا ما این تیبلهامونو اپدیت کنیم که. حالا در ادامه (نه دقیقا همین الان) یه سری چیز میز که چجوری شرکتای گنده بدون downtime میتونم دیتابیس و تیبلها و دادههای گنده رو آپدیت کنن رو میگم. خیلی بامزهن.
شما فرض کنید که یک کمپانی هست که حدود ۲ ۳ ترا دیتا داره روی mysql. زجری که این کمپانی میکشه اینه که با هر آپدیت گندهای که میخواد روی دیتابیسش بره، چیزی حدود ۱ ساعت down عه. چون حجم دیتا زیاده و مثلا یه تغییر جنس یه فیلد روی چندتا تیبل یه downtime یک ساعتی داره براشون. چرا؟ چون برای اپدیت تیبلها، اون تیبلها لاک میشن و کوئریهای write بسته میشن. حتی بعضا توی mysql، کوئریهای read هم بسته میشن. دغدغه اینجاس که چجوری این کمپانی میتونه بدون هیچ downtimeای، دیتابیسشو آپدیت کنه.
این ما رو به این داشت که شرکتهای بزرگ چکار میکنن؟ مثلا گوگل که نمیاد بگه عزیزان لطفا امروز سرچ نکنید ما downاین تا ما این تیبلهامونو اپدیت کنیم که. حالا در ادامه (نه دقیقا همین الان) یه سری چیز میز که چجوری شرکتای گنده بدون downtime میتونم دیتابیس و تیبلها و دادههای گنده رو آپدیت کنن رو میگم. خیلی بامزهن.
👍13
Dutchman Daily
امروز یه مسئله بامزه raise شد. شما فرض کنید که یک کمپانی هست که حدود ۲ ۳ ترا دیتا داره روی mysql. زجری که این کمپانی میکشه اینه که با هر آپدیت گندهای که میخواد روی دیتابیسش بره، چیزی حدود ۱ ساعت down عه. چون حجم دیتا زیاده و مثلا یه تغییر جنس یه فیلد روی…
این یه نمونه واسه دیتابیسهای schemeless عه.
https://www.cockroachlabs.com/blog/how-to-update-database-schema/
https://www.cockroachlabs.com/blog/how-to-update-database-schema/
Cockroachlabs
How to change your database schema with no downtime
Traditionally, updating your SQL database schema once the database is in production has been a pain. But it doesn't have to be. There's a better way!