Forwarded from Yasha
تلگرام ادعا میکنه که تا به امروز حتی یک بایت داده هم به دولتها یا شخص ثالثی نداده. اما این گزارشی که ۲ سال پیش منتشر شده میگه تلگرام توی سال ۲۰۲۱ به دولت آلمان چندین بار اطلاعات محدودی از کاربران رو داده، درحالی که حتی هیچ دیتاسنتری توی کشور آلمان نداره.
درادامه میگه که این همکاری در زمینه مبارزه با تروریسم و تعرض به کودکان بوده و حتی ۵۵ میلیون دلار هم جریمه مالی شده اما چیزی رو پرداخت نکرده. حالا من که خودم طرفدار تلگرام و پاول دروف هستم ولی خب نقص عجیبی بود چون تلگرام خیلی سفت ادعا میکنه که هیچ دادهای رو به هیچ دولتی نداده.
🔗 https://restoreprivacy.com/telegram-sharing-user-data/
@Yasha
درادامه میگه که این همکاری در زمینه مبارزه با تروریسم و تعرض به کودکان بوده و حتی ۵۵ میلیون دلار هم جریمه مالی شده اما چیزی رو پرداخت نکرده. حالا من که خودم طرفدار تلگرام و پاول دروف هستم ولی خب نقص عجیبی بود چون تلگرام خیلی سفت ادعا میکنه که هیچ دادهای رو به هیچ دولتی نداده.
🔗 https://restoreprivacy.com/telegram-sharing-user-data/
@Yasha
CyberInsider
Is Telegram Sharing User Data with Government Agencies?
Telegram’s website states that a disclosure of user data to government agencies “has never happened.” However, a recent investigation in Germany claims that Telegram is actively sharing user data with government agencies and also censoring content. Telegram…
Forwarded from محتوای آزاد سهراب
چون بحث خودمیزبانی داغ بود، یک پست کوتاه و مفید توی بلاگم از آماده کردم که چرا باید خودمیزبانی بکنیم؟
https://sohrabbehdani.ir/blogfa/whyselfhosting/
@SohrabContents
https://sohrabbehdani.ir/blogfa/whyselfhosting/
@SohrabContents
Forwarded from Linuxor ?
دوره #فوق_لینوکسه_ها قسمت 8
توی این قسمت با شبکه بیشتر آشنا میشید درباره ایپی ورژن 4 و 6 باهم صبحت میکنیم و بعضی از تجهیزات و مفاهیم شبکه رو باهم میبینیم که چی هستن و DNS ، DHCP و Web Server رو یه برسی کلی میکنیم.
https://youtu.be/T92McwTcgrw?si=zh1wM0A47FTB2osB
🐧 @Linuxor
توی این قسمت با شبکه بیشتر آشنا میشید درباره ایپی ورژن 4 و 6 باهم صبحت میکنیم و بعضی از تجهیزات و مفاهیم شبکه رو باهم میبینیم که چی هستن و DNS ، DHCP و Web Server رو یه برسی کلی میکنیم.
https://youtu.be/T92McwTcgrw?si=zh1wM0A47FTB2osB
🐧 @Linuxor
Forwarded from محتوای آزاد سهراب
میترا، یک شبکهاجتماعی فدیورسی نوشته شده با راست هستش که یک Gui خوب و همینطور فیچرای خوبی هم داره :))
از همه مهمتر، برای اجرا رم مینیمالی که میخواد حداقل ۲۵۶ مگابایته!
https://codeberg.org/silverpill/mitra
@SohrabContents
از همه مهمتر، برای اجرا رم مینیمالی که میخواد حداقل ۲۵۶ مگابایته!
https://codeberg.org/silverpill/mitra
@SohrabContents
Codeberg.org
mitra
Federated social network
Forwarded from Yasha
الان که داشتم درباره تلگرام میخوندم متوجه یه چیزی شدم. تلگرام یه زیرساخت غیرمتمرکز خیلی جالبی داره، دیتاسنترهاش رو توی کشورهای مختلفی که قوانین قضایی متفاوتی داره پخش کرده. تمام دیتایی که نگهداری میکنه رمز میشن و کلیدهای رمزگذاری هم به بخشهای مختلفی تیکه تیکه شده و توی دیتاسنترها پخش شده. تلگرام میگه هیچ کدوم از دیتاسنترها کلید رو به شکل کامل نداره و حالا یه تحت یه پروتکلی اینا دیتاسنترهای توزیعشده باهمدیگه کار میکنن. حالا چرا اینکار رو انجام داده؟ جالبیش اینجاست. این باعث میشه که یه کشور واحد نتونه به تنهایی تلگرام رو مجبور به دادن دیتا کنه، یعنی فرانسه چیزی رو از تلگرام بخواد باید هر کشوری که دیتاسنتر تلگرام داخلش هست هم بخواد و توافق جمعی و جهانی صورت بگیره که یه چیز خیلی سخت و نشدنیه درحال حاضر. این باعث میشه حتی دو یا سه تا کشور همپیمان (مثل ایران، روسیه، چین) هم باز نتونن از تلگرام دیتا بگیرن، چون کشورهای زیادی در درگیر جریان قضایی با قوانین مختلف میکنه. توی این حالت حتی اگه یکی با تانک هم وارد دیتاسنتر تلگرام بشه نمیتونه دیتای کسی رو بخونه :) تا وقتی که خود پاول دروف و تیم تلگرام بخوان.
من اینو توی منابع زیادی خوندم ولی خود تلگرام هم توی مستندات رسمی خودش اینجا ذکر میکنه.
@Yasha
من اینو توی منابع زیادی خوندم ولی خود تلگرام هم توی مستندات رسمی خودش اینجا ذکر میکنه.
@Yasha
Forwarded from Golden Code (@lix)
در لاراول میتونید دیسکهای ذخیرهسازی custome شده رو بدون نیاز به تغییر دادن فایل config/filesystems ایجاد کنید.
کاربردش؟
این قابلیت برای مواردی که ممکنه مسیر ذخیرهسازی تغییر کنه یا به صورت داینامیک تعیین میشه میتونه خیلی کار راه انداز باشه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/laravelbackpack/status/1828394539867930675?t=uPya--8IeMfyqPo3nHWD2A&s=35
کاربردش؟
این قابلیت برای مواردی که ممکنه مسیر ذخیرهسازی تغییر کنه یا به صورت داینامیک تعیین میشه میتونه خیلی کار راه انداز باشه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/laravelbackpack/status/1828394539867930675?t=uPya--8IeMfyqPo3nHWD2A&s=35
X (formerly Twitter)
Backpack for Laravel (@laravelbackpack) on X
#Laravel Tip
You can create custom disks at runtime without the need to have the config in your config/filesystems file.
This can be handy to manage files in custom paths.
You can create custom disks at runtime without the need to have the config in your config/filesystems file.
This can be handy to manage files in custom paths.
❤1👍1
Forwarded from محمد لرنینگ (آموزش برنامه نویسی)
لینک ویدیوی جلسه 31 :
https://youtu.be/74Z5saE4FqM
هک گوگل و استفاده از قابلیت های مخفی اون، مهارتهای جستجو و حل مسئله در مورد برنامه نویسی و هوش مصنوعی - جلسه ۳۱ ام آموزش رایگان برنامه نویسی
برنامهنویسی رو از صفر تا صد یاد بگیر و وارد بازار کار شو!
تو این ویدیو، یکسری ترفند برای هک کردن گوگل یاد گرفتیم 😈، بهترین روش های سرچ کردن رو برای برنامه نویس ها توضیح دادیم و نحوه استفاده از سایت هایی مثل استک اور فلو رو توضیح دادیم، یاد گرفتیم که چطوری سوال بپرسیم از هوش مصنوعی و به جواب خوب برسیم
@SEYED_BAX | @MakeDeveloper
https://youtu.be/74Z5saE4FqM
هک گوگل و استفاده از قابلیت های مخفی اون، مهارتهای جستجو و حل مسئله در مورد برنامه نویسی و هوش مصنوعی - جلسه ۳۱ ام آموزش رایگان برنامه نویسی
برنامهنویسی رو از صفر تا صد یاد بگیر و وارد بازار کار شو!
تو این ویدیو، یکسری ترفند برای هک کردن گوگل یاد گرفتیم 😈، بهترین روش های سرچ کردن رو برای برنامه نویس ها توضیح دادیم و نحوه استفاده از سایت هایی مثل استک اور فلو رو توضیح دادیم، یاد گرفتیم که چطوری سوال بپرسیم از هوش مصنوعی و به جواب خوب برسیم
@SEYED_BAX | @MakeDeveloper
Forwarded from CleverDevs (Mammad)
Named Arguments توی php چیه و چه کاربردی داره ؟
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
function createNewUser($name , $city = "Tehran" , $age = "18", $gender = ""){
$user = new User();
$user->name = $name;
$user->city = $city;
$user->age = $age;
$user->gender = $gender;
$user->save();
}یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
createNewUser(name : "Mammad" , gender : "male");
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 هاستینگر ارائه دهنده خدمات هاستینگ آمریکایی اعلام کرده از تاریخ September 30, 2024 دسترسی سایت به کشورهای ذکرشده مسدود می کند و ارائه خدمات به این کشورها متوقف می شود.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Forwarded from Code Module | کد ماژول (genix)
با انواع دسترسی کاربر (RBCD و RBAC) آشنا بشید! 🔥
Role-Based Access Control و Resource-Based Conditional Access، این مدلها برای تنظیم دسترسی کاربر به منابع درون یک سازمان وب سایت و... طراحی شدن و تضمین میکنن که دادههای حساس محافظت میشن و تنها پرسنل مجاز، میتونن اقدامات خاصی رو انجام بدن.
RBAC: کنترل دسترسی مبتنی بر نقش
RBAC یکی از پرکاربردترین مدل های کنترل دسترسی هست. بر اساس اصل تخصیص مجوزها بر اساس نقش های درون یک سازمان عمل میکنه. در یک سیستم RBAC، به هر کاربر یک یا چند نقش اختصاص داده میشه و هر نقش دارای مجوزهای خاصی هست. برای مثال، در یک محیط شرکتی، ممکنه نقشهایی مثل Manager یا مدیر IT داشته باشید، که هرکدوم به دادهها یا سیستمهای خاصی دسترسی از پیش تعریف شده دارن.
RBCD: دسترسی مشروط مبتنی بر منابع
دسترسی مشروط مبتنی بر منابع (RBCD) یک رویکرد پویاتر و دقیق تر برای کنترل دسترسی هست. برخلاف RBAC که مجوزها رو بر اساس نقش های کاربر اختصاص میده، RBCD شرایط رو در سطح منبع ارزیابی میکنه تا حقوق دسترسی رو تعیین کنه. این به این معنی هست که تصمیمات دسترسی در زمان واقعی و بر اساس ویژگی هایی مثل مکان کاربر، دستگاه مورد استفاده، زمان دسترسی و حتی حساسیت داده های مورد دسترسی گرفته میشه.
به صورت کلی RBAC و RBCD هر کدوم بسته به نیازهای خاص یک سازمان، مزایای مشخصی رو ارائه میده. RBAC برای محیطهایی با نقشها و مسئولیتهای کاملاً تعریفشده ایدهآل هست و سادگی و سهولت مدیریت رو ارائه میده. اون طرف RBCD رویکردی پویاتر و آگاه به زمینه رو برای کنترل دسترسی ارائه میکنه و اون رو برای محیطهای پیچیده با شرایط دسترسی متفاوت مناسبتر میسازه🚀
#rbcd #rbac
@CodeModule
Role-Based Access Control و Resource-Based Conditional Access، این مدلها برای تنظیم دسترسی کاربر به منابع درون یک سازمان وب سایت و... طراحی شدن و تضمین میکنن که دادههای حساس محافظت میشن و تنها پرسنل مجاز، میتونن اقدامات خاصی رو انجام بدن.
RBAC: کنترل دسترسی مبتنی بر نقش
RBAC یکی از پرکاربردترین مدل های کنترل دسترسی هست. بر اساس اصل تخصیص مجوزها بر اساس نقش های درون یک سازمان عمل میکنه. در یک سیستم RBAC، به هر کاربر یک یا چند نقش اختصاص داده میشه و هر نقش دارای مجوزهای خاصی هست. برای مثال، در یک محیط شرکتی، ممکنه نقشهایی مثل Manager یا مدیر IT داشته باشید، که هرکدوم به دادهها یا سیستمهای خاصی دسترسی از پیش تعریف شده دارن.
RBAC با گروهبندی مجوزها به نقشها، مدیریت دسترسی رو سادهتر میکنه، که مدیریت اون ها رو راحتتر از تخصیص مجوزها به صورت جداگانه به کاربران هست. این مدل به ویژه در محیط هایی که کارکردهای شغلی به خوبی تعریف شده و ثابت هستن، مؤثر هست، زیرا تضمین میکنه که کاربرا فقط به منابع لازم برای مسئولیت های شغلی خود دسترسی دارن.
RBCD: دسترسی مشروط مبتنی بر منابع
دسترسی مشروط مبتنی بر منابع (RBCD) یک رویکرد پویاتر و دقیق تر برای کنترل دسترسی هست. برخلاف RBAC که مجوزها رو بر اساس نقش های کاربر اختصاص میده، RBCD شرایط رو در سطح منبع ارزیابی میکنه تا حقوق دسترسی رو تعیین کنه. این به این معنی هست که تصمیمات دسترسی در زمان واقعی و بر اساس ویژگی هایی مثل مکان کاربر، دستگاه مورد استفاده، زمان دسترسی و حتی حساسیت داده های مورد دسترسی گرفته میشه.
RBCD سطح بالاتری از انعطاف پذیری و امنیت رو فراهم میکنه، چون میتونه با شرایط و زمینه های متغیر سازگار بشه. به عنوان مثال، ممکنه به یک کارمند اجازه داده بشه که تنها زمانی به یک سند محرمانه دسترسی داشته باشه که در شبکه شرکت باشه و از دستگاه مورد تایید شرکت استفاده کنه. این رویکرد به ویژه در محیطهای مدرن که در اون منابع از مکانها و دستگاههای مختلف قابل دسترسی هستن، مفیده.
به صورت کلی RBAC و RBCD هر کدوم بسته به نیازهای خاص یک سازمان، مزایای مشخصی رو ارائه میده. RBAC برای محیطهایی با نقشها و مسئولیتهای کاملاً تعریفشده ایدهآل هست و سادگی و سهولت مدیریت رو ارائه میده. اون طرف RBCD رویکردی پویاتر و آگاه به زمینه رو برای کنترل دسترسی ارائه میکنه و اون رو برای محیطهای پیچیده با شرایط دسترسی متفاوت مناسبتر میسازه
#rbcd #rbac
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ⚝
GitHub
GitHub - mathdroid/crop-github-images-cli: Crop image/gif into swag for your Github profile
Crop image/gif into swag for your Github profile. Contribute to mathdroid/crop-github-images-cli development by creating an account on GitHub.
GitHub.com/mathdroid/crop-github-images-cli
ابزار انجامش:
باهاش میتونید یه گیف/عکس رو ببرید و عملاً بچسبونید به صفحهٔ گیتهابتون:
#fun #FLOSS
@amiria703_channel
ابزار انجامش:
باهاش میتونید یه گیف/عکس رو ببرید و عملاً بچسبونید به صفحهٔ گیتهابتون:
#fun #FLOSS
@amiria703_channel
Forwarded from Anophel | آنوفل
تو جاوا اسکریپت ما سه نوع کد داریم :
1. کد Synchronous
2. کد macrotask
3. کد Microtask
نکته کلیدی سوال این سه مورد هستند.
در اولی که پیش فرض جاوااسکریپت هست کد لاین به لاین اجرا می شود و تا لاین قبلی تمام نشد لاین جدید اجرا نمیشه.
دومی : بعد از اجرای کد های Synchronou و قبل میکروتسک ها اجرا می شود مثل setTimeout و setInterval و ..
.
سومی :این بخش نیز بعد از اجرای کد های ماکروتسک اجرا می شوند. مثلا : promiseها.
بررسی مثال:
بخش Synchronous :
console.log(1); بلافاصله اجرا میشود و مقدار 1 در کنسول چاپ میشود
setTimeout یک ماکروتسک تعریف میکند، اما چون setTimeout تنها تنظیم کنندهی تاخیر است، این عملیات به تعویق میافتد. پس setTimeout هنوز چیزی چاپ نمیکند
console.log(2); نیز بلافاصله اجرا میشود و مقدار 2 در کنسول چاپ میشود
console.log(4) بلافاصله بعد از promise.then فراخوانی میشود و مقدار 4 در کنسول چاپ میشود
پس از اتمام اجرای کدهایSynchrono نیز setTimeout که یک ماکروتسک است، اجرا میشود.ابتدا مقدار "timerStart" را در کنسول چاپ میکند.سپس success فراخوانی میشود که باعث میشود promise به حالت fulfilled برسد و یک میکروتسک (یعنی promise.then) به صف میکروتسکها اضافه شود.سپس مقدار "timerEnd" را چاپ میکند.
دراخرم میکروتسک اجرا می شود. success
خروجی نهایی :
1
2
4
timerStart
timerEnd
success
آنوفل
#javanoscript #js #نکته #جاوااسکریپت
1. کد Synchronous
2. کد macrotask
3. کد Microtask
نکته کلیدی سوال این سه مورد هستند.
در اولی که پیش فرض جاوااسکریپت هست کد لاین به لاین اجرا می شود و تا لاین قبلی تمام نشد لاین جدید اجرا نمیشه.
دومی : بعد از اجرای کد های Synchronou و قبل میکروتسک ها اجرا می شود مثل setTimeout و setInterval و ..
.
سومی :این بخش نیز بعد از اجرای کد های ماکروتسک اجرا می شوند. مثلا : promiseها.
بررسی مثال:
بخش Synchronous :
console.log(1); بلافاصله اجرا میشود و مقدار 1 در کنسول چاپ میشود
setTimeout یک ماکروتسک تعریف میکند، اما چون setTimeout تنها تنظیم کنندهی تاخیر است، این عملیات به تعویق میافتد. پس setTimeout هنوز چیزی چاپ نمیکند
console.log(2); نیز بلافاصله اجرا میشود و مقدار 2 در کنسول چاپ میشود
console.log(4) بلافاصله بعد از promise.then فراخوانی میشود و مقدار 4 در کنسول چاپ میشود
پس از اتمام اجرای کدهایSynchrono نیز setTimeout که یک ماکروتسک است، اجرا میشود.ابتدا مقدار "timerStart" را در کنسول چاپ میکند.سپس success فراخوانی میشود که باعث میشود promise به حالت fulfilled برسد و یک میکروتسک (یعنی promise.then) به صف میکروتسکها اضافه شود.سپس مقدار "timerEnd" را چاپ میکند.
دراخرم میکروتسک اجرا می شود. success
خروجی نهایی :
1
2
4
timerStart
timerEnd
success
آنوفل
#javanoscript #js #نکته #جاوااسکریپت
Anophel
Anophel | Where Developers Create Their Own Path
Anophel is an ecosystem for developers—a place for those who prefer building over consuming. If you want to create tools, think differently, and forge your own path in coding, Anophel is with you.
Forwarded from ⚝
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب
https://milkv.io/ruyibook
متاسفانه اگر شرایط اینطوری نبود، میشد از توی ایران این رو پیشخرید کرد :)
ولی باید رفت یوتوب و حسرت خورد.......
@SohrabContents
متاسفانه اگر شرایط اینطوری نبود، میشد از توی ایران این رو پیشخرید کرد :)
ولی باید رفت یوتوب و حسرت خورد.......
@SohrabContents
Forwarded from محتوای آزاد سهراب
اگر بتونم فردا یک ویدئو ضبط میکنم، با این محتوا:
نصب و راهاندازی یک سرور دبیان
احتمالا دو بخش باشه، توی بخش اول راهاندازی به صورت لوکاله و بخش دوم با داکر.
@SohrabContents
نصب و راهاندازی یک سرور دبیان
احتمالا دو بخش باشه، توی بخش اول راهاندازی به صورت لوکاله و بخش دوم با داکر.
@SohrabContents
Forwarded from ⚝
Forwarded from Python BackendHub (Mani)
دیشب تو گروه بحث بود که من اینترن هستم و چیکار کنم که شغل پیدا کنم یا رزومهام بیشتر دیده بشه. تو پیوی هم خیلیا سوال میپرسن که چطور بدون تجربه کاری اولین شغلشون رو بگیرن. ببین، همه شرکتا دنبال کسی میگردن که واقعاً یک مهارت رو بلده. حالا شاید بگی من ۴ سال دانشگاه رفتم، ۱۰ تا پروژه تمرینی هم تو گیتهاب گذاشتم، پس چرا قبولم نمیکنن؟ ولی باید بدونی که تعریف "بلد بودن" اینجا متفاوته.
یه پروژه مثل فروشگاه اینترنتی شاید کمک کنه چیزای پایهای یاد بگیری، ولی نمیشه گفت واقعاً بلدی. چرا؟ چون یه نرمافزار ساده ساختی که خیلی پیچیده نیست، یه مشکلی رو حل نکردی، شاید فقط چندتا کد رو کپی پیست کردی. "بلد بودن" یعنی این که بتونی از دانشت بهصورت عملی استفاده کنی و یه مشکل واقعی رو حل کنی، اونم جوری که بفهمی چه اتفاقی داره میفته. این اتفاق تو پروژههای تمرینی که یه بار میزنی و میذاریش کنار، نمیفته.
مثلاً یه بازی بود قدیما تو ایران به اسم "تراوین". یه نقشه ۴۰۰ در ۴۰۰ داشت (مختصات منفی هم داشت) یعنی ۱۶۰۰۰ خونه. هر کاربر که ثبتنام میکرد، یه خونه تو نقشه میگرفت که میشد دهکده اصلیش. اولین شرط بازی این بود که دو دهکده نمیتونن تو یه مختصات باشن. خب، اینجا میتونستی یه تیبل با ۱۶۰۰۰ خونه بسازی و هر بار که کاربر ثبتنام کرد، یه مختصات خالی بهش بدی. به این روش میگن whitenoise sampling
تا اینجا پروژه تمرینی تموم میشه. ولی پیچیدگی از اینجا شروع میشه که بیزنس متوجه میشه کاربرا تو کل نقشه پخش شدن، بعضیا چسبیدن به هم، بعضیا دورن. حالا بیزنس میگه برای بیشتر کردن هیجان بازی، باید کاربرا رو نزدیک هم نگه داری. برای همین، مثلاً به جای ۱۶۰۰۰ خونه، ۴۰۰ خونه مرکزی رو در نظر میگیری و وقتی نصفش پر شد، میری سراغ ۱۶۰۰ خونه. به این روش میگن progressive sampling.
مشکل بعدی اینه که کاربرا خیلی بهم چسبیدن و این باعث میشه هیجان بازی زیادی زیاد شه و اول بازی همه به هم حمله کنن، که این خودش باعث میشه خیلیا همون اول بازی رو ول کنن. حالا بیزنس میخواد یه فاصله حداقلی بین دهکدهها بذاری. اینجا به روش blue sampling میرسی.
میبینی؟ یه سیستم ساده چطور با دوتا نیاز بیزنسی که اول مشخص نبود، پیچیده شد؟ این مثال رو زدم که بگم یه پروژه مثل فروشگاه زدن اصلاً چشمگیر نیست. با همونم شاید شغل بگیری، ولی اگه میخوای سریعتر شغل پیدا کنی، برو یه پروژه استارت بزن که واقعاً به دردت بخوره و یه مشکلی که داری رو حل کنه.
پس من میگم طبق قانون gall سیستم complex ای که کار کنه به دنیا نمیاد, بلکه سیستم ساده ای بود که کار میکرد و به سیستم complex بلوغ پیدا کرده. یک مقاله خیلی قشنگ راجب همین قانون.
مثال؟ یه نگاه به گیتهاب من بنداز. همه پروژههام اینطوریه. از لینکدین کراولر گرفته تا کلودفلیر کراولر و aioclock. همه برای این ساخته شدن که یه مشکلی که داشتم رو حل کنن.
@PyBackendHub
یه پروژه مثل فروشگاه اینترنتی شاید کمک کنه چیزای پایهای یاد بگیری، ولی نمیشه گفت واقعاً بلدی. چرا؟ چون یه نرمافزار ساده ساختی که خیلی پیچیده نیست، یه مشکلی رو حل نکردی، شاید فقط چندتا کد رو کپی پیست کردی. "بلد بودن" یعنی این که بتونی از دانشت بهصورت عملی استفاده کنی و یه مشکل واقعی رو حل کنی، اونم جوری که بفهمی چه اتفاقی داره میفته. این اتفاق تو پروژههای تمرینی که یه بار میزنی و میذاریش کنار، نمیفته.
مثلاً یه بازی بود قدیما تو ایران به اسم "تراوین". یه نقشه ۴۰۰ در ۴۰۰ داشت (مختصات منفی هم داشت) یعنی ۱۶۰۰۰ خونه. هر کاربر که ثبتنام میکرد، یه خونه تو نقشه میگرفت که میشد دهکده اصلیش. اولین شرط بازی این بود که دو دهکده نمیتونن تو یه مختصات باشن. خب، اینجا میتونستی یه تیبل با ۱۶۰۰۰ خونه بسازی و هر بار که کاربر ثبتنام کرد، یه مختصات خالی بهش بدی. به این روش میگن whitenoise sampling
تا اینجا پروژه تمرینی تموم میشه. ولی پیچیدگی از اینجا شروع میشه که بیزنس متوجه میشه کاربرا تو کل نقشه پخش شدن، بعضیا چسبیدن به هم، بعضیا دورن. حالا بیزنس میگه برای بیشتر کردن هیجان بازی، باید کاربرا رو نزدیک هم نگه داری. برای همین، مثلاً به جای ۱۶۰۰۰ خونه، ۴۰۰ خونه مرکزی رو در نظر میگیری و وقتی نصفش پر شد، میری سراغ ۱۶۰۰ خونه. به این روش میگن progressive sampling.
مشکل بعدی اینه که کاربرا خیلی بهم چسبیدن و این باعث میشه هیجان بازی زیادی زیاد شه و اول بازی همه به هم حمله کنن، که این خودش باعث میشه خیلیا همون اول بازی رو ول کنن. حالا بیزنس میخواد یه فاصله حداقلی بین دهکدهها بذاری. اینجا به روش blue sampling میرسی.
میبینی؟ یه سیستم ساده چطور با دوتا نیاز بیزنسی که اول مشخص نبود، پیچیده شد؟ این مثال رو زدم که بگم یه پروژه مثل فروشگاه زدن اصلاً چشمگیر نیست. با همونم شاید شغل بگیری، ولی اگه میخوای سریعتر شغل پیدا کنی، برو یه پروژه استارت بزن که واقعاً به دردت بخوره و یه مشکلی که داری رو حل کنه.
پس من میگم طبق قانون gall سیستم complex ای که کار کنه به دنیا نمیاد, بلکه سیستم ساده ای بود که کار میکرد و به سیستم complex بلوغ پیدا کرده. یک مقاله خیلی قشنگ راجب همین قانون.
مثال؟ یه نگاه به گیتهاب من بنداز. همه پروژههام اینطوریه. از لینکدین کراولر گرفته تا کلودفلیر کراولر و aioclock. همه برای این ساخته شدن که یه مشکلی که داشتم رو حل کنن.
@PyBackendHub
Signal Processing Stack Exchange
Sampling of band-limited white noise
The context is communication where we have a front-end that samples a signal and a noise (but here we focus only on the noise). My goal is to determine the noise power that I should use to simulate...