B4-1

پیوندها

۵ مطلب با موضوع «متفرقه‌های مرتبط» ثبت شده است

چرا قرعه‌کشی‌های فعلی قابل اعتماد نیستند؟

چهارشنبه, ۲۸ ارديبهشت ۱۴۰۱، ۰۹:۴۲ ب.ظ

چیزهایی که می‌تونه یک قرعه‌کشی سالم رو شکل بده چیه؟

 

از نظر من یک قرعه‌کشی برای اینکه بتونه سالم برگزار بشه باید دو تا خصوصیت رو حتما داشته باشه:

  •  کسانی که توی فضای قرعه‌کشی حضور دارند و وزن‌هایی که قرعه‌هاشون دارند حقیقی باشند.
  • الگوریتمی که برای قرعه‌کشی استفاده میشه شانس برنده شدن رو برای هر واحد قرعه به یک اندازه اختصاص بده و درست کار کنه.

حالا سئوالی که مطرحه اینه که ما می‌تونیم به سایت‌ها و اپلیکیشن‌ها و بانک‌ها و … که دارن برای ترغیب کاربر قرعه‌کشی می‌کنند اطمینان کنیم؟ از نظر من به هیچ وجه! می‌دونین چرا؟

  • من نمی‌دونم الگوریتمی که داره قرعه‌کشی رو انجام میده درست کار می‌کنه یا نه. اصلا فضایی که کاربران حقیقی توش هستند رو لحاظ می‌کنه یا همینجوری برای اینکه بگه قرعه‌کشی کرده یک اسم الکی با یک شماره‌ی الکی مثلا اصغر اصغری با ردیف شانس ۲۰۳۴۲ تا ۳۲۴۳۱ بهم تحویل میده .
  • من نمی‌تونم مطمئن باشم کسی که داره قرعه کشی انجام میده هیچ پارتی بازی‌ای نکرده و وزن قرعه‌ی خودش یا هر کسی که دوست داره رو تغییر نداده.

حالا راهکار چیه؟ نمی‌دونم این چیزی که پیشنهاد می‌کنم چقدر ممکنه باگ داشته باشه و سوراخ‌های این راهکار کجاست ولی از وضعیت فعلی بهتره.هر چند که هیچ شرکت و اپلیکیشنی برای اثبات سالم بودن خودش این کار رو با هزینه‌هاش نخواهد کرد و این چیزی که من می‌گم به صورت تئوریه :D

ببینید فرضا ما بخوایم برای سایت آمازون یه قرعه‌کشی رو هندل کنیم. اولین کار اینه که یک شبکه‌ی یکپارچه باشه که شرکت‌کنندگان بتونن توش ثبت‌نام بکنن تا هویتشون بعنوان یک شخص در قرعه کشی ثبت بشه . این شبکه باید بی‌طرف باشه و کدی که شبکه داره روش اجرا میشه هم یه جای عمومی در دسترس باشه تا ببینیم که یه موقع فردی الکی اضافه نشه حالا این شبکه برای اینکه بتونه صحت افراد رو بسنجه می‌تونه چیکار کنه؟ از شبکه‌ای که در پاراگراف بعد آوردم استفاده کنه(کسی که تراکنش انجام میده بنا به اطلاعاتی که قبلا وارد کرده مجبوره حقیقی باشه)

حالا سایت آمازون می‌بایست برای اینکه ثابت کنه که ده امتیازی رو که بخاطر ۱۰۰ دلار خریدِ من بهم داده حقیقیه (یعنی وزن قرعه‌ی من واقعیه) باید کاری انجام بده و این چطور ممکنه؟ اینطور که شبکه‌ای که قراره روش قرعه‌کشی انجام بشه از طریق آمازون به ترکنش‌هایی که مربوط به آمازونه روی شبکه‌ی انتقال پولی دسترسی داشته باشه (این موضوع که تراکنشی با انصراف و بازگشت پول کنسل شده هم باید به شبکه‌ی قرعه‌کشی اطلاع داده بشه).

حالا با وجود این دو شبکه که می‌تونه مثل یک کتابخونه‌ی سراسری به هر سایت و اپلیکیشنی وصل بشه هم قرعه‌کشی تنها بین کسانی که تراکنش دارن اتفاق می‌افته هم می‌دونیم که هیچ کلکی توش نیست. چون شبکه‌ای که قرعه‌کشی رو انجام میده با حفظ حریم خصوصی آدم‌ها در انتهای تایم قرعه‌کشی شماره‌ی برنده رو با اسمش نشون میده و همه می‌دونیم که اون کیه.

 

البته هنوز برای چیزهایی که باعث افزایش امتیاز میشه مثلِ دعوت از دیگران و … چیزی به ذهنم نرسیده

  • محمد یاری

جبر خداگونه‌ی ماشین

سه شنبه, ۵ شهریور ۱۳۹۸، ۰۹:۱۱ ب.ظ

سئوالاتی هستند که هرگز به جوا ب نمی‌رسند فقط جنبه و صورت تازه‌ای پیدا می‌کنند. یکی از سئوالاتی که خیلی‌ها باهاش روبرو میشن مسئله جبر و اختیاره. این چیزهایی که در ادامه نوشتم چیزیه که خودم در این باره به نتیجه رسیدم. اگر نظری دارید خوشحال میشم با من به اشتراک بذارین.

 

بعد از اینکه نسبت به داده کاوی یک دید سطحی پیدا کردم و مختصر اطلاعاتی کسب کردم دنبال نمود عینی گشتم و چیزی رو نیافتم الا ماهواره‌های هواشناسی و پیش‌بینی‌هاشون که مربوط به آب و هوای آینده‌است.

ما در مورد طبیعت اطلاعاتی داریم که محدوده ولی برای پیش‌بینی با اطمینان صد در صد هر چیزی که قراره اتفاق بیافته لازمه که ما اطلاعات کامل داشته باشیم و خطا ؛ نتیجه‌ی نداشتن تمام اطلاعات یا نقص ساختار سیستم پیش‌بینی کننده‌ی ماست. برای مثال ما می‌تونیم با توجه به یک سری پارامترها حدس بزنیم دما در فلان روز به فلان درجه میرسه ولی یک آتش‌سوزی که یک رخداد غیرمنتظره‌است می‌تونه باعث غلط در  اومدن پیش‌بینی ما بشه. با این حال با درصد خوبی ، آینده ( هر چند کوتاه) از یک جهت قابل پیش‌بینیه. ولی این پیش‌بینی چیزی نیست که به طبیعت چیزی رو تحمیل کنه. چون بر اساس یک سری فرمول و داده و اطلاعات میشه گفت که فردا چی میشه و فردا از طرف سیستم هواشناسی ما دچار این جبر نشده. فردا از طرف فرموله شدن شرایطش دچار جبر میشه. از طرف ریاضیات و قوانین پیرامونش. 

ما انسان‌ها فکر می‌کنیم که خودمون تصمیم می‌گیریم ولی در حقیقت چیزهای زیادی هستند که در تصمیم‌گیری ما دخیلند. تصمیماتی که یک فرد در هنگام مستی می‌گیره با هنگام هوشیاری فرق داره. تصمیمات در هنگام ترس با تصمیماتی در شرایط عادی فرق داره. خیلی چیزها دخیلند. شاید دمای اتاقتون ، رنگ محیط ، غذایی که خوردین ، مقدار موادی که توی خونتون حضور داره ، شرایط ژنتیکی ، محیط و .... دخیل باشند و شما فکر کنین این کسی که توی مغزتون بهتون فرمان میده داره تصمیم می‌گیره.

حالا در مورد جبر یا اختیار یک شرایط فرضی رو در نظر می‌گیریم. ماشینی بدون خطا و فوق هوشمند که تونسته تمام اطلاعات ژنتیکی ، اطلاعات رفتاری ، اطلاعات محیطی و هر چیز دخیل رو جمع کنه با یک سیستم هوشمند با یک برنامه بدون خطا شما رو در یک تصمیم‌گیری قرار بده و انقدر از شما داده داشته باشه که با اطمینان صد درصد انتخاب شما رو حدس بزنه. اونوقت چی؟ اگه در مورد همه آدم‌ها همینقدر اطلاعات داشته باشه اونوقت چی؟ اونوقت میدونه که شما فردا قراره در ارتباط با یک آدم چه تصمیمی بگیری چون پیش‌بینی پذیری. اگه در مورد اکو سیستم ، انسان‌ها و  همه چی اطلاعات کامل داشته باشه اونوقت چی؟ اونوقت اون می‌دونه که ده سال دیگه در شهر شما چه اتفاقی خواهد افتاد و شما اونموقع چیکار می‌کنی.

اینها همه فرضیه‌ هستند امّا اگه یک روزی به حقیقت بپیونده یک دانای کل داریم که می‌تونه بگه شما کِی می‌میری ولی اون موجود خدا نیست و اختیار نداره که چیزی رو عوض کنه. اون تنها همه چیز رو می‌دونه. چیزی رو که شما هیچ راه فراری رو ازش نداری ، چیزهایی رو که شما بهش مجبوری. چون جبر چیزیه که اختیار تو رو جهت میده.

  • محمد یاری

پراکندگیِ شانس در سیستم‌های قرعه کشی

سه شنبه, ۱۳ آذر ۱۳۹۷، ۰۵:۴۵ ب.ظ

قبلا در مورد قرعه کشی نوشته بودم. باز هم می‌خوام در ادامه‌ی اون پست به یک سری باگ‌ها و نقص‌ها اشاره کنم و همین‌طور یک سری قواعد که به نظر من مسخره و زائده و تنها شیوه‌ای برای تحمیق مخاطبه.


در بعضی مسابقه‌ها و قرعه کشی‌ها مثلا میگن اگه فلان کار رو بکنید ۱۰۰۰ امتیاز کسب می‌کنید اگه بهمان کار رو بکنید ۲۰۰۰ امتیاز. هر بار مراجعه‌ی شما هم در هر روز ۳۰۰ امتیاز بهتون میده. که مجموع امتیاز شما میشه مقدار شانس شما!

چیزی که واضحه اینه که وقتی امتیازهای کوچک (مثلا ۱۲ امتیاز) نداریم و همه‌ی شانس‌ها مضربی از ۱۰۰ یا ۱۰۰۰ هستند در اون صورت فرقی نداره که صفرهای اضافه‌اش رو ورداریم یا نه! مثلا یک نفر ۱۶۰۰ امتیاز داره یک نفر ۴۰۰ و یک نفر ۴۳۰۰ .  اگه قرار به قرعه کشی بین این سه نفر باشه شخص اول شانزده شصت و سوم احتمال برد داره نفر دوم چار شصت و سوم و نفر سوم چهل و سه شصت و سوم و اگه ما دو صفر رو از شانس همشون برداریم هم فرقی نخواهد داشت!

نکته‌ی دوّمی که توی قرعه کشی باید رعایت بشه و من گهگداری خلافش رو می‌بینم اینه که شما باید شانستون توزیع بشه بین کلِّ فضا. این در قرعه‌کشی‌هایی که با گردونه و توپ انجام میشه به درستی صورت می‌گیره. شما در یک فضای بهم ریخته به ازای شانستون توپ دارین و احتمال اینکه توپ شما در بیاد با شانستون متناسبه. ولی توی قرعه کشی‌های کامپیوتری اینطور نیست.

در بعضی قرعه‌کشی‌ها (تو چند تا اپلیکیشن‌ دیدم) شما ردیف‌های شانستون بصورت خطّیه.برای نمونه اگه کل امتیازهایی که کاربران دارن  ۹٫۳۲۳٫۴۱۲ هست شما یک محدوده خطّی دارین. که مثلا ردیف شانستون از ۱٫۴۳۲ هست تا ۲٫۳۲۳ . و این دارای اشکاله. اونوقت می‌دونین چرا؟

بذارین براتون مثال بزنم.

اگه ما یک برنده رو با استفاده از انتخاب تصادفی عددهای یکان ، دهگان ، صدگان و .... انتخاب کنیم  در این صورت فرض کنید در مجموع ۴٫۰۰۰٫۱۲۳ امتیاز شانس برامون محتمل باشه.

شما که فَرد پیگیری بودین تونستین ۴٫۰۰۰٫۰۰۱ امتیاز کسب کنین.

فَرد دیگه‌ای هم بوده که مجموعا ۱۲۲ امتیاز کسب کرده. و ردیف شانس‌اش از ۴٫۰۰۰٫۰۰۲ شروع میشه و تا ۴٫۰۰۰٫۱۲۳ ادامه پیدا می‌کنه

برای اینکه سیستم بدرستی برای عددهای بعدی بهینه بشه باید از بزرگترین رقم شروع به قرعه کشی کنیم در این صورت شما که باید ۳۲ هزار برابر بیشتر شانس داشته باشید در عدد اول سه چهارم احتمال برنده شدن دارین. در ۳ رقم بعد جواب درست ۰۰۰ هست که از اونها کناره‌گیری می‌کنیم. در عدد بعد ۰ و ۱ وجود داره که شانس شما و نفر دوم ۵۰ درصد هست. در عدد بعدی شانس رقیبتون دو سوم شماست. در عدد آخر هم شانس شما دو چهارمه! و شما اگه به چنین شرایطی برسین می‌بینین بصورت ناعادلانه‌ای خواهید باخت.

امّا شاید هم پیش خودتون بگین سیستم قرعه کشی توی کامپیوتر به شیوه‌ی دیگه‌ای هست و بصورت تَک عدد نیست و چیزی که تو میگی در اون صدق نمی‌کنه. که من حق رو به شما می‌دم! امّا اگه به نسبت درصد شانستون در فضای قرعه کشی شانس شما رو پخش کنن باز هم هیچ چیزی رو از دست نمی‌دین :D

  • محمد یاری

سخنی چند در مورد متادیتای MP3

شنبه, ۲۴ شهریور ۱۳۹۷، ۱۱:۰۳ ب.ظ

تا سال ۸۸ که کاربر ویندوز بودم برای گوش دادن به آهنگ‌ها شیوه‌ی کارم اینطور بود که فولدرهای مختلف با اسامی خواننده‌‌ها داشتم و برای گوش کردن بهشون مجبور بودم یک مسیری رو طِی کنم و با انتخاب همه آهنگ‌های اون فولدر آهنگ گوش کنم. ولی بعد از اینکه به لینوکس مهاجرت کردم با  Rhythmbox آشنا شدم که چه چیز خفنیه. نحوه‌ی کارشم اینطور بود که با جستجوی متادیتای آهنگ اون‌ها رو دسته بندی می‌کرد. برای مثال در صورتی که متادیتا درست نوشته می‌شد می‌تونستیم خواننده‌ها رو بر اساس Artist ، Genre ، Album و .... مرتب کنیم. و این کار منو راحت می‌کرد. دلیل این قضیه هم این بود که من می‌تونستم به آهنگ‌های داخل مجموعه‌ام رتبه بدم (۰ ستاره تا ۵ ستاره) تا بر این اساس مرتب بشن. می‌تونستم پلی لیست‌ آهنگ‌هام رو بهتر سازماندهی کنم. می‌تونستم برای انتخاب یه خواننده‌ی دیگه سریع جابجا بشم. امّا اینجا چند مشکل وجود داشت ( و هنوز هم وجود داره).

۱- بخش عظیم آهنگ‌هایی که گوش می‌کنیم فارسیه و سایت‌های فارسی زبان متادیتا رو وسیله‌ی برای تبلیغ خودشون می‌دونن و از هر صد تا سایت شاید یک سایت رو ببینین که تگ‌های آهنگ رو تغییر نمی‌ده.

۲- یک ساختار یکپارچه و منسجم برای نوشتن متادیتا وجود نداره (برای مثال بعضی سایت‌ها سال انتشار اثر رو به میلادی درج می‌کنن بعضی‌ها به هجری شمسی)

۳ - دسته‌بندی‌هایی که بر اساس‌اش آهنگ‌ها مرتب می‌شن ایراد داره. یعنی در ابتدا که قرار شد برای این سیستم قانون نانوشته‌ای وضع بشه به بعضی موارد دقّت نشد.


حالا برای این ۳ مورد ۳ راهکار وجود داره. البته که هیچ کسی به حرف من گوش نمی‌کنه ولی این چیزیه که بصورت آرمانی بهش فکر می‌کنم. و هر مورد رو به تفضیل توضیح می‌دم :D


۱- به نظر من بهترین تبلیغ برای هر سایت عملکرد حرفه‌ای اونه. مطمئنا خیلی‌های دیگه مثلِ من، سایتِ موزیکی رو برای مراجعه دوباره بوکمارک می‌کنن که بدونن تگ‌های موسیقی رو جهت تبلیغ ویرایش نکرده و خیلی‌های دیگه مثل من به افرادِ دیگه سایتی رو معرفی می‌کنن که موزیک رو به هرزنامه‌ی خودش بدل نکرده باشه.

۲- اکثر خواننده‌ها و کسانی که توی کار موسیقی هستند قطعاتی رو به صورت تکّی منتشر می‌کنند که جدایِ از آلبومه. راهی که میشه اینها رو دسته بندی کرد اینه که بعنوان قطعات «تکی» به عنوان یه آلبوم در نظرش گرفت. خیلی اوقات می‌بینیم که توی متادیتا این قطعات رو به عنوان یک قطعه از آلبوم Singles برای دانلود قرار می‌دن. مشکل این کار اینه که توی نرم‌افزارهای پخش، هر آهنگی که تگِ آلبومش Singles باشه رو بعنوان یک قطعه از آلبوم Singles در نظر میگیره. برای مثال شما ۱۰ قطعه تکی از داریوش اقبالی دارید و ده قطعه تکی از دمیس روسس ؛ در هنگام ایندکس کردن متادیتا نرم‌افزار پخش این بیست تا آهنگ رو توی یه آلبوم نشون میده. برای حل این مشکل بنظر من باید یا نرم‌افزارهای پخش هوشمند عمل کنند و آلبوم رو به صورت تگ (خواننده+Singles) جدا نشون بدن یا ما خودمون باید این کار رو انجام بدیم. برای مثال برای اینکه این دو «تکی» ها قاطی نشن باید توی تگ آلبوم مثلا بنویسیم: Dariush Singles

۳- کسانی که در ساخت یک اثر مشارکت دارند گاهی وقتا بیش از یک نفرن. بعضی وقت‌ها یکی از این افراد به عنوان هم‌خوانِ حضور داره گاهی هم به خودش جداگونه توی این آهنگ یا قطعه می‌خونه :D

راهی که پیش روی ما هست اینه که یا جفتشون رو به عنوان آرتیست توی تگ اضافه کنیم یا اینکه یکی از این دو نفر رو ثبت کنیم.

ایرادِ ثبت کردن اسم هر دو نفر ( یا چند نفر) اینه که نرم‌افزارهای پخش این چیزی رو که ثبت کردیم به عنوان یک آرتیست می‌شناسه. و این موضوع باعث میشه تعداد آرتیست‌های مجموعه‌‌ی ما توی نرم‌افزار پخش به طور دروغین زیاد بشه. برای مثال شما یک کار مشترک از ابی و داریوش داری اگه توی قسمت Artist متادیتا بنویسی Ebi , Dariush اونوقت موقع شناسایی آرتیست آهنگ‌ها خواهید دید که این اسم به عنوان یک آرتیست جدا از ابی و داریوش شناخته شده که شامل یک آهنگه!

به نظر من برای رفع این مشکل هم می‌بایست این طور عمل می‌شد که ما با «,» آرتیست‌ها رو جدا می‌کردیم و نرم‌افزار پخش می‌فهمید که این اثر بیش از یک آرتیست داره. و بعد بر همین اساس این آهنگ رو توی دسته بندی کردن به لیست آهنگ‌های هر دو اضافه می‌کرد. مثلا آهنگ نون و پنیر و سبزی هم به آهنگ‌های داریوش اضافه بشه هم به آهنگ‌های ابی.


و در آخر پیشنهادم به شمایی که آثار خواننده‌هایِ وطنی رو اورجینال تهیه می‌کنین:


نرم‌افزار Rhythmbox یا خیلی نرم‌افزارهای دیگه در هنگام RIP کردن گزینه‌ای برای نوشتن متادیتا دارن. این متادیتا علاوه بر اینکه برای نوشته شدن روی خودِ آهنگ کاربرد داره بلکه به سایت موزیک برینز هم فرستاده میشه. این کار بوسیله Acoustic Fingerprint یا همون شناسایی هویت موسیقی انجام می‌گیره. و مزیت این کار اینه که اگه شما اطلاعات یک اثر رو به این سایت بفرستین نفر بعدی که با یک نرم‌افزار از موزیک برینز برای پیدا کردن متادیتای آهنگ بهره می‌بره بدون هیچ زحمتی فقط با ریپ کردن اطلاعات اثر براش کپی میشه، بدون هیچ زحمتی!

برای مثال شما امروز آلبوم «ایران من» همایون شجریان رو خریدین و می‌خواین به فایل‌های MP3 تبدیلش کنین. اگه کسی قبل از شما اونو ریپ کرده باشه و اطلاعاتشو فرستاده باشه موزیک برینز شما نیاز نیست وقتی رو برای وارد کردن دوباره‌ی این اطلاعات صرف کنین. :)


تصویری از محیط Rhythmbox

  • محمد یاری

سیستم‌های نامطمئن قرعه کشی

پنجشنبه, ۱۱ مرداد ۱۳۹۷، ۰۱:۳۱ ق.ظ
تمام قرعه‌کشی‌هایی که با زرق و برق «زنده» به خورد بیننده داده میشه ساختاری این چنینی داره.

یک گردونه که بصورت تصادفی توپ‌هایی ازش خارج می‌شه یا یک مهمان که باید عددی بین یک تا ایکس رو انتخاب کنه. و در مرحله بعد از روی دیتابیسی که موجوده یک شماره تلفن ، اسم یا اطلاعات شخصی به ما نشون داده میشه.

اما این سیستم قابل اطمینان نیست. اون هم تا موقعی که خیال بیننده رو از بابت وجود یک دیتابیس واقعی راحت نکنند. در اصل ما در این شیوه از قرعه کشی تنها در مورد اتفاقی بودن عدد اطمینان داریم و نه شخصی که به صورت تصادفی اون عدد ، عدد شانس‌اش بوده! علاوه بر این وقتی ریش و قیچی دست شخصیه که خودش قرعه‌کشی رو انجام می‌ده باید نسبت به عدم دخل و تصرف در دیتابیس(در صورت وجود) بدبین بود.

بنظر من بهترین راهکار اینه که شرکتی معتبر بعنوان شخص ثالث (یک بخش از گوگل به اسمِ Google Ghor'e Keshi  مثلن :D )  دیتابیس رو  در اختیار داشته باشه و با هویّت سنجی بتونه کاربرانی که شانس قرعه‌کشی دارن رو تائید کنه و یک درصد بالا (مثلا ۹۰ درصد) از کاربران تائید شده شاخصی بر ساختگی نبودن دیتابیس باشه.  و این شرکت دیتابیس رو برای شفاف سازی با یک سری اطلاعات که حریم شخصی فرد رو به خطر نندازه بصورت پابلیک با «عدد و وزن شانس» منتشر کنه.

در این وضعیت عددی که قراره بعنوان برنده از گردونه خارج بشه از پیش مشخّصه که برای چه کسیه. ولی استفاده از میهمان نامطمئنه و نمی‌شه کاریش کرد :D
  • محمد یاری