Telegram Web Link
Dev Jungles
Майже третина в першу добу! Ви круті! Збір на 3D принтер для друку буквально снарядів! Долучайтесь, хто ще не встиг. 🎯 Ціль: 62 000 ₴ 🔗Посилання на банку https://send.monobank.ua/jar/3oSG6BBWjZ 💳Номер картки банки 5375 4112 1254 0657
Мій збір на принтер потрапив в календар донатів:
https://donate-advent.web.app/
Тож долучайтесь і там)

Наступного тижня треба вже замовляти, тоді вийде ідеально по логістиці.

Вже 2/3 completed 🥳
Це неймовірно!

https://send.monobank.ua/jar/3oSG6BBWjZ

Намер карти банки:
5375 4112 1254 0657
16👍9🤡5🕊1
Я продовжую експериментувати з форматом. Цього разу може і не з власного бажання, а через зовнішні обставини, але я впевнений, що вийшло круто. Ще в часи масованих обстрілів і відключень світла, рік тому, регулярний випуск відео був для мене способом послати світ і зовнішні обставини до біса: почати відбирати контроль над власним життям у зовнішніх обставив і повертати його собі.

А про відео?
Це bird's eye view на сучасну архітектуру: вона вже така, що їх на одній схемі і не вмістиш, бо є різні аспекти/проекції. Да і просто багато усього.

Тож мерщій дивитись і пишіть фідбек: краще, звісно, на YouTube, але і сюди теж можна.

https://youtu.be/cY3x-10va2I?si=V_QxZEnwPauA1P60
👍473🙉3🤡2
Я тут готував дуже круте і веселе(але все одно корисне) відео до новорічних свят.

Воно структуроване так, що може стати справжньою грою на випивання для гіків.
Сьогодні була б ідеальна дата, щоб його випустити. Я планував десь о 16 викинути його, щоб саботувати останні пару рабочіх годин року і щоб ті, хто ходе до офісів могли як раз зібратись разом.
Але не встигаємо достатньо якісно зробити.

Тож питання:
Коли ви збираєтесь з друзями і колегами наступного разу, щоб під це глянути відос?)
26👍7🤡3
Всіх з наступаючим!
Дякую, що цей рік слідкували і підтримували мою творчість.
Було багато різних відео, змін і експериментів.

Всіх зі святами!)

🥳🥳🥳
95🎉19🎄9👍83🤡3🔥2🤝1
Поки ви ще зовсім не закінчили із новорічними святами я приготував для вас свій новий блокбастер: це топ 10, що побудований як гра! Тобто не тільки дізнатись нове, а ще й перевірити старе. Але оскільки це свята, але сьогодні наче робочий день. Хтось може навіть в офісі. Тож збирайтесь в мітінг-румі, доставайте із стола те міцне паливо, що в вас там є і врубайте відос. Або пишіть друзям і збирайтесь разом у барі ввечорі.

Буде 10 крутих ідей/алгоритмів/підходів. Про якісь ви знаєте, про якісь ні. Навряд хтось буде знати всі, тож щось нове точно дізнаєтесь.

Вперед!
https://youtu.be/5fHIW2UVdd4?si=-g-X4CoT-f90Qsa5
👍22🔥54🤡2
Хто ще не добрався до нового відео на каналі, то зараз добрий час!
Воно не таке хардкорне як іноді бувало, тож вечір суботи підійде!

Нумо дивитись, ато роботи було вбухано до біса, а переглядів і фідбеку не дуже.

https://youtu.be/5fHIW2UVdd4?si=-g-X4CoT-f90Qsa5
👍17🔥64🤡3
На каналі вже є 11 відео українською.
От їх список і нумо дивитись те, що пропустили:

1. Топ10/Гра я розповідаю про круті алгоритми і інші ідеї, а вам треба вгадати їх назву.
https://youtu.be/5fHIW2UVdd4

2. Думки про ти треба обрати легковісне рішення, коли є велике, що може теж саме і навіть більше.
+ З прикладами на EF

https://youtu.be/2sYD5jtj2ek

3. Обзор того що ми наворотили в сучасній архітектурі. Дуже допомогає в голові все до купи зібрати.

https://youtu.be/cY3x-10va2I

4. Федеративні системи, їх майбутнє, їх приклади.

https://youtu.be/zzSpSMmijNM

5. Думки про те як .NET опинився там де він є і чи хороше це місце?

https://youtu.be/xNgHVg-lD1A

6. І одразу туди ж: вектор розвитку платформи дотНет. Чого чекати в майбутніх версіях?

https://youtu.be/ZEL9sbu06Ic

7. Як відрізнити хорошу архітектуру від поганою і що на це впливає?

https://youtu.be/wE9gnqFyDW8

8. Що саме треба вивчати, чому і які знання найбільш цінні у час, коли все легко знайти.

https://youtu.be/5dMAMlpt6HU

9. Тестове інтерв'ю на мідла на мікросервісний проект:

https://youtube.com/live/dr9TZIow7K0?feature=share

10. Розбір однієї потужної підсистеми дотНет, що дозволила створити ОРМи, мапери і багато іншого.

https://youtube.com/live/8xwziONO3I4?feature=share

11. Розбір тестового завдання. Але це не найцікавіше: там є бенчмарки, векторізація і трошки вправ з архітектури.

https://youtube.com/live/xBdt7l-29Cc?feature=share

А сюди пишіть який ролик пропустили, або похвастайтесь, що бачили усі 11))
🔥55🤡86👍2❤‍🔥1👎1
17🔥5🤡3❤‍🔥2
Media is too big
VIEW IN TELEGRAM
Друзі, вас вітає монтажер і режисер документалки, яка скоро вийде на цьому каналі.
Я знаю як ви всі чекаєте нових відео і вже дуже дуже скоро вони також будуть!
Але зараз я звертаюсь до вас за допомогою!
Ми з Андрієм з Луганська і намагаємось максимально допомагати нашим хлопцям.
Покажіть донатами, як ви хочете нові відоси!

Для військовослужбовців
❗️луганської бойової бригади, які захищають незалежність України на Авдіївському напрямку
👉🏻потрібно 300 000 грн
для закупівлі матеріалів для дообладнання БРДМ противокумулятивним захистом від дронів.

🎯Ціль: 300 000.00 ₴

🔗Посилання на банку
https://send.monobank.ua/jar/Af4ztjkKYq

💳Номер картки банки
5375 4112 1674 8421
25🤡8👍3👎3
Я злочинно давно не робив нових відео і планую трохи виправитись: тобто в мене вже на руках сценарій нового невеликого відео про тему яка ще не була висвітлена на каналі. Сценарій готовий, це завжди найдовше: залишилось зняти і змонтувати.

Але поки до мене звернувся колега з одного з попередніх місць роботи і попросив допомоги зі збором, що в нього підвис. Сим він служить майже з самого початку повномасштабного вторгнення.

Він у ППО Харкова, тож думаю зрозуміло, що це важливо зараз навіть більше ніж будь коли.
Збирають на шини для кразів і то виявилась, на диво для мене, до біса дорога штука.

Тож долучайтесь.
Я вже закинув на це 5к грн.

🎯Ціль: 173 000.00 ₴

🔗Посилання на банку
https://send.monobank.ua/jar/28VxcUgNjA

💳Номер картки банки
5375 4112 1551 2612

Оригінальний пост Валентина (того самого колеги):
https://www.facebook.com/story.php?id=100001081793764&story_fbid=7393666907345962
32👍12🤡6🫡3👎1
Можете вірити, можете ні, але це нове відео на Dev Jungles!
А тема така, що його б треба було випускати на перше квітня, але насправді там все дуже серйозно.
Тож нумо дивитись, коли ще таке буде?

https://youtu.be/3nx_zThOBWo?si=NHWoC_4CAh1TaHcX
👍56🔥18🤡6💩1🙈1
Як і обіцяв в останньому відео викладаю для своїх любих спонсорів лекцію з далекого 2019 року, "Уроки контролостроения"
А хто ще не спонсор, але хоче подивитись, тож бігом підписуватись на новий рівень!
❤‍🔥20👍8🤡72🤔1😢1
Кому як не тим хто боронить Харківщину зараз закидати, вірно?

Це прохання від мого доброго друга і однокласника.

Сам вже долучився.
👍28🤡3🤔1
Forwarded from Mykhailo Chepel
Доброго дня, починаємо збір коштів на РЕБ для 127ї бригади ТрО Харкова, в котрій зараз служить мій вітчим.
РЕБи - занадто важлива річ для захисту особистого складу та автівок від FPV-дронів, збираємо на РЕБ сьогодні, щоб не збирати на нові корчі завтра.

Чепель Михайло
Банка:
https://send.monobank.ua/jar/6yw1jstqjq
Номер картки банки:
5375411218204712
👍44🤡4
Dev Jungles
Відзняли сьогодні останні пару сцен! Дякую бару Ukr'иття за те що дозволили у них зняти. Напишіть їм там щось добре в інсті, пліз! Було круто і важко, що капець. Пів терабайту сорсів, з котрих лише звуку на 100гб! Чекайте)
Віддивився перший драфт документалки.
Рома неймовірно попрацював, але я все одно викатив йому чи не пів сотні правок, хоча для 140 хвилин контенту це і непогано. А ще мені до біса подобається який він саундтрек до цього написав. Чорт забирай, в мене буде справжнє кіно з авторським саундтреком!
Все серйозно!
👍33❤‍🔥7👀4🤡31👏1🖕1
А і ще одне.
Жодного відео з каналу ніколи не було видалено: всі доступні в плейлістах.
👍2212🤡4🤩1
Не відкладай на "потім прочитати": там вже і так багато усього.

Зовсім трошки про хешфункції.

- Що це таке?
- Це такі функції, що:
1. Перетворюють одне значення будь якого розміру на інше значення фіксованого.
2. Для одного і того самого значення завжди повертають одне й те саме значення.
- Тобто це хеш фкнція?
int GetHash(object o) {
return 77;
}
- Так, але паршива
- Що таке гарні хеш функції?
- Це такі функції, що:
1. Що для різних значень частіше за все повертають різні значення
2. Значення в яких розподіленні рівномірно по всьому діапазону можливих значень
- Чому частіше за все?
- Не треба бути дуже розумним, щоб придумати таку хеш функцію для кожного з булєвих значень буде повертати різне ціле число(int).
- Чому?
- Тому що булєвих значень усього 2, а цілих чисел(int) ~4 мільярди.
- Так чому не повертати для всіх об'єктів завжди для різні значення?
- Тому що різних об'єктів може бути більше 4 мільярдів.
- Чому не обрати щось більше за int для хешу? Long чи decimal?
- Бо різних об'єктів ще більше. Що як ми обрали decimal як тип хешу, а нам прийшов об'єкт що може бути decimal, але ще й може бути null, або об'єкт з двох decimal, або decimal і bool?
- Гм.. І що робити?
- Змиритись. Нам не вистачить діапазону можливих значень, тож можуть існувати два різних значення для котрих хеш функція буде давати одні й ті самі результати. Це називають колізією.
- При наявності колізій зі 100% впевненостю ні. Уявимо, що в нас 256 можливих значень хеш функція і 65536 можливих значень. Кожному хешу відповідає 256 різних значень. Хтозна яке з них було орігінальним.
- Щось важко
- Ну давай уявимо, що наша хеш фкнкція просто складає розряди числа: на вхід отримали 12 345, то хешем буде 15. Але такий саме хеш і для 96 і 69 і 159 і купи ще інших чисел.
- Добре. Так і що з цим можна робити?
- Зробити систему, або дуже швидкою, або безпечною, чи навіть все разом, але то наступним разом.


#WrittenInTheJungle #HashSeries
75👍15🔥3🫡3🎉2🤡2😱1🖕1
Завдяки чому все може працювати швидко? (HashSet, HashTable, Dictionary)

- Так до чого хеші і перфоменс застосунка?!
- Спрва в тому, що в нас фундаментально усього два способи зробити щось швидше: або робити меньше обчислень, хоча б у більшості випадків, або ж залучити більше потужності для обчислень. Більше потужності, то краще залізо, більше грошей клауду за крутішу вірталку, чи навіть спробувати витиснути більше з того що є завдяки обробці у кілька потоків.
- Все ще не може второпати до чого тут хеші? Залізо додаткове вони не дадуть, а роботи наче як навпаки додають.
- Не без цього. Можна, якщо знати куди бити, навіть ушатати застосунок і покласти сервери когось, хто тобі не подобається, але здебільшого ми все ж таки виграємо.
- Як?
- Пам'ятаєш властивіть хеш функції: якщо хеш не співпав, то об'єкти точно різні, а якщо співпав, то імовірно однакові.
- Так. І?
- Тобто порівнявши хеші ми можемо уникнути порівняння самих об'єктів якщо вони не співпали.
- Це вже щось... Деякі об'єкти порівнювати довго і шукати по хешам було б значно швидше.
- Саме так. Навіть якщо ми просто додамо до об'єкту хеш як поле і будемо видавати FALSE, якщо вони не співпадають, то ми вже значно виграємо на складних об'єктах з купою полів.
- Звучить не погано, але для них і хеш треба прорахувати відносно всіх цих полів, тож це теж часу займе добряче.
- Ну звісно: якщо тобі треба пошукати усього лише пару разів, то це точно не стане в нагоді. Але уяви, що в тебе повно тих об'єктів і шукати по ним доводеться часто.
- Не погано, але все одно наче не так і багато де застосуєш: часто треба шукати по імейлу, логіну чи якомусь ID, що порівнюються може і довже за хеші, але не суттєво. А тут ще й треба десь заздалегіть всі хеші обрахувати, зберігати, та слідкувати, щоб додавати туди нові об'єкти та видаляти старі.
- Саме так. Все вірно, але є ще один трюк, що вирішує усе. Нам треба розкласти об'єкти, разом із хешами особливим чином, щоб ще значно скоротити пошук. Тобто робити суттєво меньше.
- Як саме розкласти?
- Давай уявимо, що в нас хеш це інт. Для простоти скажемо, що він не може мати від'ємних значень. Тобто від 0 і до 2х з гаком мільярдів. А тепер трохи поїдемо дахом і зробимо масив на ті самі два з гаком мільярди елементів. Всі за замовчуванням пусті, але обраховуючі хеш ми використаємо його як індекс у цьому масиві і покладемо сам елемент на його місто.
- І тоді ми можемо перевірити наявність елементу у колекції просто перевіривши відповидний елемент масиву на пустоту. Умовно на null. Це буде швидко, але що робити з колізіями?
- Щоб не сказати на алемент котрого насправді нема, що він є ми таки збережемо оригінальний елемент і порівняємо з ним перед тим як остаточно повернути TRUE.
- Ага. І це буде усього лише одне порівняння вне залежності від кількості елементів в масиві.
- Нууу... Майже. Колізії несуть дві загрози:
1. Можливість видати помилково TRUE, це ми вирішуємо збереженням елементу і порівнянням при пошуку.
2. Нам може буде потрібно зберігти два різних елементи з однаковим хешем.
- Ох
- Ага. Тому ми змушені зберігати у кожному елементі нашого велитенського масиву на два мільярди значень.
- Це ж скільки на це все пам'яті на це піде.
- До біса, якщо робити все неправильно і не так вже багато, якщо трохи потрюкачити. Наприклад ми можемо використати у якості типу нашого масиву щось таке:
record Entry(int Hash, object Value, Entry? Next);

- Типу зв'язаного списку?
- Так. Ми не будемо витрачати пам'ять, якщо елементу геть немає і не будмо одразу виділяти пам'ять під якусь там колекцію, якщо колізій так і не станеться. А якщо хеш функція добра, то вони не дуже й часті.
- Стоп... А якщо погана?
- Тоді буде цікаво. Це буде працювати хахливо, бо ми витратимо час на обчислювання хешів і нам все одно доведеться порівнювати всі елементи. Але це буде працювати. На цьому побудована одна з можливих атак: якщо знаєш багато колізій для якогось хеша і знаєш де він використовується, то можна спробувати змусити їх використовувати до біса обчислювальної потужності.
37👍12🤡3🤩1
- Почекай. Давай трохи назад. Масив на два мільярди значень звучить не дуже професійно... І якщо один такий на сучасному залізі ми ще можемо собі дозволити, то купу вже навряд.
- О да. Але ми вже навчились боротись з колізіями, тож давай просто скоротемо масив вдвічі, а замість того щоб в якості індексу використовувати сам хеш використаємо залишок від ділення на мільярд.
- А це спрацює. Плюс в нас вже збережений хеш, тож у випадку якщо хеші різні, але залишок однаковий, то ми зможемо не порівнювати самі елементи.
- В точку.
- І так само можна зменьшити масив наскільки завгодно.
- Саме так.
- А через те, що в нас вже є заздалегіть виділиний масив, а, навіть якщо трапляється колізія, то вставка в нього буде дуже швидка.
- Дуже швидка.

І тут я епічно ломаю п'яту стіну не гірше за Френка Андервуда і кажу, що саме так і працює велика політика HashSet у більшості мов програмування. Так само працюють і HashTable і Dictionary, тільки додають до Entry ще саме значення.

На знаю чи комусь корисно, чи всі це пом'ятають з курсів чи універу, але я точно пом'ятаю, що в той час мені було важко це зрозуміти і якесь таке пояснення стало б у нагоді.

Закиньте будь ласка, це комусь, кому це може бути корисним.

#WrittenInTheJungle #HashSeries
👍4219🤡3🤩1
2025/10/26 09:47:26
Back to Top
HTML Embed Code: