مشورت کامپیوتری‌ها – Telegram
مشورت کامپیوتری‌ها
628 subscribers
33 photos
16 videos
2 files
48 links
از دانشگاه تا صنعت، سفری پر چالش!

پادکست مشورت کامپیوتری‌ها به میزبانی محمد حقیقت
ورودی 94 کارشناسی مهندسی کامپیوتر و 99 ارشد مهندسی نرم افزار دانشگاه صنعتی شریف

هدف کانال:
https://news.1rj.ru/str/coaching_ce/4

لینک صفحات اجتماعی:
https://zil.ink/coaching_ce
Download Telegram
مشورت کامپیوتری‌ها
Audio
وویس این جلسه رو گوش بدین، خیلی به درد بخوره، شکری از رفقای خوب من و از بچه های ورودی ۹۵ دانشکده کامپیوتر شریف هست

اگر کسی می تونه مثل پست های قبلی تیتر ها و ثانیه های مهم رو استخراج کنه و در راستای #دسترس_پذیر_کردن_اطلاعات و #open_source_contribution برامون بفرسته یا زیر همین پست کامنت بگذاره خیلی ممنون میشم 🙏


🔰مشورت من به کامپیوتری ها
@coaching_ce
مشورت کامپیوتری‌ها
وویس این جلسه رو گوش بدین، خیلی به درد بخوره، شکری از رفقای خوب من و از بچه های ورودی ۹۵ دانشکده کامپیوتر شریف هست اگر کسی می تونه مثل پست های قبلی تیتر ها و ثانیه های مهم رو استخراج کنه و در راستای #دسترس_پذیر_کردن_اطلاعات و #open_source_contribution برامون…
علاوه بر این که این وویس خیلی به درد کار های دانشجویی می خوره، به شدت برای تیم لید ها و دانشجو هایی که کار می کنن (پوزیشن های مهندسی نرم افزار/HR و ...) هم مفیده

کلا هر چی سطح کار تیمی عمیق تر و مهم تری دارید، بیشتر به این ها نیاز پیدا می کنید


🔰مشورت من به کامپیوتری ها
@coaching_ce
مشورت کامپیوتری‌ها
کاربرد عملی کدام درس بررسی شود؟
امروز ساعت ۱۷، لایو صوتی تلگرام داریم با موضوع بررسی مفاهیم و کاربرد درس نظریه زبان ها و ماشین ها

سعی می کنم اتفاقات هیجان انگیزی که آلن تورینگ و ماشین تورینگ در جنگ جهانی دوم رقم زد رو براتون بگم

جالبه بدونین یک تیم در دانشکده کامپیوتر شریف از جمله یکی از اساتید دانشکده (اسمشون رو توی جلسه میگم) هم مشابه آلن تورینگ، رمزکننده های ارتش عراق رو شکستن و ده ها حمله شیمیایی عراق به ایران رو کم اثر کردن (جزئیاتش در جلسه بررسی میشه)

همچنین به تاثیر کامپایلر ها به عنوان فرزندان اتوماتا در صنعت نرم افزار آمریکا و پدیده انفجار دات کام خواهیم پرداخت


#اثرگذاری_با_مهندسی
#مواجهه_مسئولانه کامپیوتری های نسل های قبل با جنگ و کمک به کاهش رنج مردم


🔰مشورت کامپیوتری ها
@coaching_ce
🔥11
Live stream scheduled for
Live stream finished (1 hour)
مشورت ۳ - درس اتوماتا
مشورت من به کامپیوتری ها
#مشورت_3
#نگاهی_نو
«صحبت در مورد کاربرد درس نظریه زبان‎‌ها و ماشین‌ها»

((در این مشورت قراره نگاهی نو در مورد درس نظریه زبان‌ها و ماشین‌ها داشته باشیم. از جنگ جهانی دوم تا جنگ 8 ساله ایران و عراق تا خنثی کردن عملیات‌های تروریستی در تهران.))

🟡بخش‌های این مشورت



🔹مرور هدف کانال
00:00
🔹مقده‌ای بر درس نظریه‌ ماشین‌ها
6:20
🔹آلن تورینگ و تاریخچه ساخت اولین کامپیوتر
10:10
🔹ماشین تورینگ چیست؟
25:01
🔹گریزی به درس سیستم‌عامل
32:45
🔹معرفی کتاب الگوریتم‌هایی برای زندگی
35:30
🔹جنگ و تکنولوژی
36:48
🔹معادل آلن تورینگ در ایران
39:15
🔹باگ دستگاه رمزکننده‌
53:30
🔹کامپایلر‌ها
57:50



🔰مشورت کامپیوتری‌ها
@coaching_ce
7👍2🤡2🙏1
امروز ساعت ۱۷، لایو صوتی تلگرام داریم با موضوع بررسی مفاهیم و کاربرد درس طراحی پایگاه داده یا همون DB خودمون

با توجه به نتایج رای گیری، بخشی از چالش های هیجان انگیز دیتابیس در backend تلگرام که پاول دورف و تیم اون در این سال ها حل کرده رو با هم بررسی می کنیم

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

#اثرگذاری_با_مهندسی
#مواجهه_مسئولانه کامپیوتری ها (تیم پاول دورف) با نیاز مردم به ارتباط سریع و ایمن


🔰مشورت من به کامپیوتری ها
@coaching_ce
👍21🔥1
Live stream scheduled for
Live stream finished (2 hours)
مشورت ۴ بخش اول
مشورت من به کامپیوتری ها
#مشورت_4
«دیتابیس و کاربردهای آن_قسمت اول»


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

🟡بخش‌های این مشورت:


🔹فرهنگ اوپن سورس
01:00
🔹کاربرد درس دیتابیس و اپلکیشن‌هایی که نیازمند دیتابیس خوب هستند
08:00
🔹کاربرد دیتابیس در instant messaging apps مانند تلگرام
14:00
🔹چالش های موجود مرتبط با دیتابیس در پیام رسان ها
19:10
🔹قدرت بالای سرچ با Elasticsearch
22:00
🔹مزایا و معایب Elasticsearch
24:30
🔹مثال های واقعی مرتبط با انواع دیتابیس
26:15
🔹مبحث caching در دیتابیس برای سرعت بخشیدن به کوئری ها
28:15
🔹بررسی سامانه‌هایی با تعداد رکوئست بسیار بالا
37:45
🔹تخمین تعداد پیام‌های رد و بدل شده در تلگرام و پاسخگویی دیتابیس
38:30
🔹ترفند نگه داری اطلاعات سین زدن و ری اکشن ها در تلگرام
46:00
🔹لود بالانسرها
1:10:00
🔹ایندکسینگ در دیتابیس‌ها
1:24:00
🔹داستان حل مشکل انتخاب واحد توسط یک پروژه دانشجویی در دانشگاه شریف
1:30:00


🔰مشورت من به کامپیوتری ها
@coaching_ce
9
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#database
#elasticsearch

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


توی این پست میخوایم یه اشاره ای به elasticsearch بکنیم و یکسری قابلیت‌های اون رو بررسی و برای ادامه مسیر چند تا منبع معرفی کنیم.
اگه elasticsearch رو توی دسته دیتابیس‌ها قرار بدیم می‌تونیم بهش بگیم یه دیتابیس NoSql هست ولی معمولا از اون به عنوان یک search engine یاد می‌کنند و خب دلیلش هم اینه که مهارت اصلیش توی سرچ‌ کردن سریع و برگردوندن داده مورد نیاز در کمترین زمان ممکنه. از کاربردش بخوام بگم یه جورایی الان دیگه توی هر سایتی که یه سرچ‌ باکسی میبینین که داره روی تعداد زیادی دیتا سرچ میزنه و نتیجه رو باسرعت براتون میاره، به احتمال زیاد اون پشت داده‌ها رو داره از elasticsearch واکشی می‌کنه.
خب حالا به نظرتون لازمه اینکه elasticsearch بتونه جست‌وجوی سریع داشته باشه‌ چیه؟ آفرین. اینه که بتونه یه جوری داده رو ذخیره و ایندکس‌گذاری کنه که با اون نوع ذخیره سازی، با اون ساختمان داده، بتونه بالاترین سرعت واکشی داده رو داشته باشه. elasticsearch برای اینکار از Inverted Index استفاده می‌کنه که می‌تونین جزییاتش رو از این لینک بخونین. با همین روش‌ هست که elasticsearch سرعت جست‌وجوی خودش رو نزدیک به realtime معرفی می‌کنه و خب بیراه هم نیست!
یکی از ویژگی‌های elasticsearch مقیاس‌پذیری بالای اون و قابلیت horizontal scalability هست که باعث میشه از این ابزار توی داده‌ها با اسکیل بالا، به راحتی استفاده بشه و ...
برای آشنایی بیشتر می‌تونین این لینک‌ها رو مطالعه کنین:
لینک ۱
لینک ۲

🔰مشورت من به کامپیوتری ها
@coaching_ce
1👍1🔥1🥰1
#database
#sql
#oracle
#index


خب توی این پست می‌خوایم با چند تا از اصطلاح‌هایی که توی دیتابیس‌های sql ای به گوش می‌خوره مخصوصا indexها(با محوریت Oracle البته)، آشنا بشیم. از موارد ساده شروع میکنیم تا ...

توی دیتابیس‌های sql، ما یه table داریم که توی اون table تعدادی column با type مشخص ایجاد می‌شه که می‌تونیم داده‌هامون رو به صورت rowدر اون table ذخیره کنیم. این مقدمه ریز رو گفتم تا بتونیم بهتر index رو تعریف کنیم. index یه ساختمان داده آپشنال هست که اگه بخوایم، میشه روی یک یا چند ستون از جدولا تعریف کرد. ما وقتی روی یکسری ستون‌ها، index تعریف می‌کنیم، می‌تونیم با پرفورمنس بالایی، اون دیتا‌ها رو از دیتابیس واکشی کنیم. تعریف ‌index زمانی برای ما مفید می‌شه که برای یه کاربرد خاص، تعداد درخواست‌های نسبتا زیادی بر روی یکسری داده‌ها داریم، در این صورت می‌تونیم سرعت کل برنامه رو به کمک indexها افزایش بدیم.
نکته قابل توجهش اینه که تعریف index ها کاملا مستقل از داده اصلی هست و صرفا با استفاده از ساختمان‌داده مناسب، دسترسی به داده‌های index شده رو افزایش می‌ده. گفتم ساختمان‌داده‌های مناسب، بخوام یه اشاره‌ای بکنم، توی Oracle یکی از ساختمان داده‌‌هایی که برای این منظور استفاده میشه، B-Tree هست. (احتمالا جزو اون درختایی بوده که توی درس ساختمان‌داده خوندین و با خودتون گفتین خب به چه دردی می‌خوره🙂) همچنین متد‌های Reverse key indexes، Bitmap indexes و Function-based indexes هم در Oracle قابل استفاده هستند که برای مطالعه بیشتر می‌تونین به این لینک یه سر بزنین:)
یکی دیگه از دلایلی که استفاده از indexباعث افزایش سرعت واکشی میشه، اینه که باعث میشه دسترسی کمتری به بلوک‌های حافظه و I/O disk داشته‌باشه و این دسترسی رو به لطف همون ساختمان‌داده‌ها، به حداقل می‌رسونه.

در آخر هم درخواست ساختن index رو صرفا برای اینکه بفهمیم چقدر سادس(!) ببینیم:
CREATE INDEX index_name
ON table_name (column1, column2, ...columnN);


و در نهایت:)
برای اینکه اطلاعات بیشتر درباره index‌ها و نوع‌هاش و چگونگی کارکردش بدونین خوندن بخش Indexes and Index-Organized Tables از این داکیومنت که مال Oracle هست پیشنهاد میشه:)


🔰مشورت من به کامپیوتری ها
@coaching_ce
🥰2🔥1
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
❗️اعداد و ارقام گفته شده در #مشورت_4 که ممکنه شما رو به فکر برو ببره..!

🔹دیتابیس تلگرام باید توان مدیریت بیش از 900 میلیون کاربر فعال ماهانه را داشته باشد.
13:25

🔹چالش دیتابیس و شیوه هندل بیش از 760.000 ریکوئست به سایت دیجیکالا در نیم ساعت اول بلک‌فرایدی(سیستم هایی با تعداد رکورد کم اما با تعداد ریکوئست بالا)
28:10

🔹سیستم دیتابیس سامانه های تراکنش های بانکی که گاها باید بعضی از ریکوئست‌ ها را زیر 10ms پردازش کرده و جواب بدهند!
34:35

🔹اپلیکیشن دیوار با آمار بیش از 500.000 آگهی در روز و 19میلیون کاربر، باید بتواند به بهترین نحو ریکوئست های دیتابیس خود را مدیریت کند(سیستم هایی با تعداد رکورد و ریکوئست بالا)
37:40

🔹در زمان های بحرانی که پیام‌رسان ها نقش بسزایی در اطلاع رسانی دارند، دیتابیس زیر حجم تعداد بالای ریکوئست هایی اعم از زمان سین، ری‌اکشن و... چگونه عمل می‌کند؟
58:50
#دیتابیس

🔰مشورت من به کامپیوتری ها
@coaching_ce
🔥1
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#مشورت_4
#database
#partitioning

🔷بریم سراغ یکی از قابلیت‌های دیتابیس‌ها که تو حجم بالای داده، خیلی به دردمون می‌خوره. پارتیشنینگ.
پارتیشنینگ میاد برامون جدول‌ها و ایندکس های خیلی بزرگ رو میشکنه به قسمت‌های کوچیک‌تر تا بتونیم مدیریت بهتری روشون داشته باشیم و کارایی رو ببریم بالا.
با یه مثال ادامه بدیم. فرض کنین مدیر یه کتابخونه هستین و تعداد زیاااادی کتاب زیر دستتون هست که باید با سرعت بالایی کتاب مورد نظرتون رو پیدا کنین و بدین به درخواست کننده. خب برای این کار یکی از راه‌هاش اینه که یه قفسه بزررررگ داشته باشین که همه کتاب‌ها توی اون قفسه باشه و هر بار که میخواین یه کتابی رو پیدا کنین از اول تا آخر بگردین که بتونین اون کتاب رو پیدا کنین و برش دارین. ولی خب همونطور که دیدین هیچ کتابدار عاقلی این حرکت رو نمیزنه!:) یکی از راه‌هایی که می‌تونیم این کار رو به صورت بهینه تر انجام بدیم و بهمون کمک می‌کنه که بتونیم مدیریت بهتری روی کتاب‌ها داشته باشیم، اینه که بیایم اون قفسه بزررررگ رو به قفسه‌های کوچک‌تری بشکنیم و توی هر قفسه یه سری کتاب خاص رو قرار بدیم که وقتی نیاز داشتیم به اون نوع کتاب‌های خاص بدونیم باید بریم سراغ کدوم قفسه. مثلا بیایم کتاب‌ها رو بر اساس سال چاپ بذاریم توی قفسه‌های مختلف. یا اینکه بر اساس موضوع بذاریم توی قفسه‌های مختلف یا ... . به این کار کتابدار توی دیتابیس میگن پارتیشنینگ. حالا همین چطوری جدا کردن این قفسه‌ها خودش می‌تونه روش‌های مختلفی داشته باشه که باعث می‌شه پارتیشنینگ‌های مختلفی داشته باشیم:
Range Partitioning
Interval Partitioning
List Partitioning
Hash Partitioning
Refrence Partitioning
Composite Partitioning

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


🔰مشورت من به کامپیوتری ها
@coaching_ce
👍2