#авто_для_21омбр
Товариство, оголошую мобілізацію ваших гривень!
Потрібно оплатити авто Hyundai Tucson для взводу забезпечення 21 ОМБр (Сумський напрямок).
Збір дещо незвичний — авто вже у підрозділі та виконує бойові задачі, а наша задача тепер — якомога швидше віддати за нього кошти волонтерам, які це авто надали.
Сума збору — 4700$ за саме авто та 60 000 грн за його ремонт. Якщо рахувати по 45, то разом це 271 500 грн, але віддавати треба в долярах, тому тут буде залежати від курсу.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
Дякую за кожну гривню!
P.S. Обличчя дозволили показувати
Товариство, оголошую мобілізацію ваших гривень!
Потрібно оплатити авто Hyundai Tucson для взводу забезпечення 21 ОМБр (Сумський напрямок).
Збір дещо незвичний — авто вже у підрозділі та виконує бойові задачі, а наша задача тепер — якомога швидше віддати за нього кошти волонтерам, які це авто надали.
Сума збору — 4700$ за саме авто та 60 000 грн за його ремонт. Якщо рахувати по 45, то разом це 271 500 грн, але віддавати треба в долярах, тому тут буде залежати від курсу.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
Дякую за кожну гривню!
P.S. Обличчя дозволили показувати
❤16
#партнерський_допис
Товариство, запрошую вас цієї пʼятниці, 18 вересня, на найкулуарнішу конфу України — Party Hard #12.
Цього року конфа буде про стартапи, ШІ, продукти, найм та, звичайно ж — про спілкування. Нетворкінг на цій конфі просто шальоний.
Особисто я теж дуже-дуже постараюсь там бути, бо пора б вибратись зі свого лісу і вийти до людей.
Я прям дуже рекомендую відвідати Party Hard, тим паче маю для вас знижку у 7%.
Деталі події за посиланням:
https://yoy.events/lviv-12-promo-babich
Товариство, запрошую вас цієї пʼятниці, 18 вересня, на найкулуарнішу конфу України — Party Hard #12.
Цього року конфа буде про стартапи, ШІ, продукти, найм та, звичайно ж — про спілкування. Нетворкінг на цій конфі просто шальоний.
Особисто я теж дуже-дуже постараюсь там бути, бо пора б вибратись зі свого лісу і вийти до людей.
Я прям дуже рекомендую відвідати Party Hard, тим паче маю для вас знижку у 7%.
Деталі події за посиланням:
https://yoy.events/lviv-12-promo-babich
йой!
Party Hard #12 - Львів. Найкулуарніша конфа для АйТівців
Запрошуємо на 12-ту найкулуарнішу конфу Party Hard. Тематика цієї конфи - це інженери та люди, що будують свої продукти. Бо в теперішній час краще…
🔥10❤3
Дивовижний світ веброзробки
#партнерський_допис Товариство, запрошую вас цієї пʼятниці, 18 вересня, на найкулуарнішу конфу України — Party Hard #12. Цього року конфа буде про стартапи, ШІ, продукти, найм та, звичайно ж — про спілкування. Нетворкінг на цій конфі просто шальоний. Особисто…
Оце я, канєшна, провтикав.
Конфа завтра, 19 вересня.
Ще встигаєте взяти квиточок.
Конфа завтра, 19 вересня.
Ще встигаєте взяти квиточок.
❤7😁4🤔1
Який ШІ найкращий для навчання?
Відповідь проста — той, з яким ви чогось навчились. ШІ це лише інструмент. Якщо дуже сильно спростити, це система для перетворення одного масиву тексту в інший. З певною імовірністю смішних (або не дуже) галюцинацій.
Жоден інструмент не замінить вам вашу здатність до навчання. Жоден інструмент не замінить вашу мотивацію до нових знань. Він не замінить вам вас. Якщо ви можете навчитися чогось без ШІ, то з ним ви це зможете робити дещо швидше і структурованіше. Бо ви знатимете, з йкого боку підходити до навчання, і розумітимете, де він вам поможе, а де лише завадить.
Якщо ж з якихось причин без ШІ ви губитесь в потоці інформації, не вмієте структурувати її, не можете розставляти пріоритети і сахаєтесь, ніби білка по гілках, стрибаючи від теми до теми — ШІ лише погіршить ситуацію.
Якщо ви хочете вчитися — навчіться вчитися. Отака проста тавтологічна мудрість. Маючи під рукою ШІ, ви однозначно кратно збільшите кількість вхідної інформації, а от обробляти її доведеться вже вам.
І я навмисно кажу "інформації", а не знань, бо знання — це коли ви знаєте і вмієте застосувати те, що дізналися.
І тут неважливо, що у вас — ChatGPT, Perplexity, Claude чи ще якась китайська модель. Важливо те, що ви з нею робите.
В принципі, це стосується буквально усього, куди зараз можна притягнути ШІ — якщо ви вміли це робити до того, то у вас зʼявляється неймовірний підсилювач ваших навичок, а як ні — що ж, це працюватиме в зворотню сторону.
Особисто я активно використовую ШІ для пошуку нової інформації — від нових рецептів і білдів в Diablo IV до абсолютно нових для себе проблем в розробці, програмуванні чи якихось інших професійних аспектах. Про самі підходи до того, яку інформацію шукати, і як навчитись їй не довіряти — це, певно, тема для двогодинного монологу.
Чому ШІ мені помічний? Бо я знаю чого від нього хочу. Якщо чогось не розумію — прошу простіших пояснень, прикладів, джерел, розкладаю своє незнання на складові і перетворюю їх на знання в якомога менших масштабах.
До речі, один приклад я таки наведу. На так давно я почав активно працювати над Python задачами на проєкті, проте сам Python я знаю на рівні "ну, це пайтон, ну, я плюс-мінус здатний осягнути що тут написано". Але далеко не на 100%. І от коли я зустрічав в згенерованому коді не зовсім зрозумілі фрагменти, я часто просив ШІ пояснити їх мені на прикладі JavaScript. Тобто я брав конкретну необізнаність і накладав її на свою обізнаність. І це було прям дуже помічне.
Тому, знову ж таки — несуттєво, який ШІ носить вам з інтернету цитати (чи галюцинації). Це ваш особистий підхід до навчання важливий.
В першу чергу вчіться вчитися.
***
До речі, нагадую, що збір на авто для 21 ОМБр нікуди не дівся, тож буду дуже вдячний за кожну вашу гривню.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
Відповідь проста — той, з яким ви чогось навчились. ШІ це лише інструмент. Якщо дуже сильно спростити, це система для перетворення одного масиву тексту в інший. З певною імовірністю смішних (або не дуже) галюцинацій.
Жоден інструмент не замінить вам вашу здатність до навчання. Жоден інструмент не замінить вашу мотивацію до нових знань. Він не замінить вам вас. Якщо ви можете навчитися чогось без ШІ, то з ним ви це зможете робити дещо швидше і структурованіше. Бо ви знатимете, з йкого боку підходити до навчання, і розумітимете, де він вам поможе, а де лише завадить.
Якщо ж з якихось причин без ШІ ви губитесь в потоці інформації, не вмієте структурувати її, не можете розставляти пріоритети і сахаєтесь, ніби білка по гілках, стрибаючи від теми до теми — ШІ лише погіршить ситуацію.
Якщо ви хочете вчитися — навчіться вчитися. Отака проста тавтологічна мудрість. Маючи під рукою ШІ, ви однозначно кратно збільшите кількість вхідної інформації, а от обробляти її доведеться вже вам.
І я навмисно кажу "інформації", а не знань, бо знання — це коли ви знаєте і вмієте застосувати те, що дізналися.
І тут неважливо, що у вас — ChatGPT, Perplexity, Claude чи ще якась китайська модель. Важливо те, що ви з нею робите.
В принципі, це стосується буквально усього, куди зараз можна притягнути ШІ — якщо ви вміли це робити до того, то у вас зʼявляється неймовірний підсилювач ваших навичок, а як ні — що ж, це працюватиме в зворотню сторону.
Особисто я активно використовую ШІ для пошуку нової інформації — від нових рецептів і білдів в Diablo IV до абсолютно нових для себе проблем в розробці, програмуванні чи якихось інших професійних аспектах. Про самі підходи до того, яку інформацію шукати, і як навчитись їй не довіряти — це, певно, тема для двогодинного монологу.
Чому ШІ мені помічний? Бо я знаю чого від нього хочу. Якщо чогось не розумію — прошу простіших пояснень, прикладів, джерел, розкладаю своє незнання на складові і перетворюю їх на знання в якомога менших масштабах.
До речі, один приклад я таки наведу. На так давно я почав активно працювати над Python задачами на проєкті, проте сам Python я знаю на рівні "ну, це пайтон, ну, я плюс-мінус здатний осягнути що тут написано". Але далеко не на 100%. І от коли я зустрічав в згенерованому коді не зовсім зрозумілі фрагменти, я часто просив ШІ пояснити їх мені на прикладі JavaScript. Тобто я брав конкретну необізнаність і накладав її на свою обізнаність. І це було прям дуже помічне.
Тому, знову ж таки — несуттєво, який ШІ носить вам з інтернету цитати (чи галюцинації). Це ваш особистий підхід до навчання важливий.
В першу чергу вчіться вчитися.
***
До речі, нагадую, що збір на авто для 21 ОМБр нікуди не дівся, тож буду дуже вдячний за кожну вашу гривню.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
❤36👍4
Днями на редіті побачив допис, в якому автор питав, чому його лічильник часу на сторінці за пів години активності відстає аж на 30 секунд.
Задача, здавалось би, одна з найпростіших — запускай таймер, рахуй секунди, виводь і буде тобі щастя. Але річ в тому, що багато хто досі вважає таймери в JS точними.
На ділі що
Давайте ліпше розберемо, як уникнути такого дрифта або хоча б зменшити відхилення до меж статистичної похибки.
Перше, що прийде нам в голову для такого лічильника, — запустити
Це найнаївніший спосіб.
Кращим підходом буде запускати лічильник, коли попередня ітерація точно відпрацювала. Але просто переробляти на рекурсивний
Краще розраховувати наступний таймаут як залишок до бажаного моменту в майбутньому:
Оцей
Це працює в ідеальних умовах, коли основний потік нічим суттєво не зайнятий. Але
А оскільки нам зрештою треба не просто щось порахувати, а намалювати нове значення, можна передати останній крок
Тут
Такий підхід дозволяє максимально точно рахувати "тіки". Але є одне але, якого ну ніяк не уникнути — якщо ваш UI таки важкий, то іноді лічильник буде прострибувати значення не через рівні проміжки часу, наприклад 0.5с > 1с > 3с. Але при цьому показуватиме точний час. Це вимушений трейдоф через завантажений основний потік. Але це вже проблема не лічильника, а ваша — бо чого це у вас така важка сторінка, га?
Що почитати:
MDN — setTimeout()
MDN — requestAnimationFrame()
Що почитати душнілам:
HTML Living Standard — Timers
---
Збір на авто для 21 ОМБр триває, зібрано 22 200грн з необхідних 271 500грн.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
Задача, здавалось би, одна з найпростіших — запускай таймер, рахуй секунди, виводь і буде тобі щастя. Але річ в тому, що багато хто досі вважає таймери в JS точними.
На ділі що
setTimeout, що setInterval не виконують ваш код через заданий проміжок часу. Вони ставлять його в чергу. Це суттєва різниця. Тобто це не "виконай через точно 1000ms", а радше "я тут вам задачку залишив, запусти за нагоди, але не раніше ніж 1000ms". Це якщо прям дуже приблизно. Я не буду вдаватися в деталі, там вам і улюблений event loop, і черги, і так звана однопоточність.Давайте ліпше розберемо, як уникнути такого дрифта або хоча б зменшити відхилення до меж статистичної похибки.
Перше, що прийде нам в голову для такого лічильника, — запустити
setInterval:setInterval(() => doMagic(), 1000);
Це найнаївніший спосіб.
setInterval намагається запускати callback із заданою періодичністю, але не гарантує момент його фактичного виконання. Якщо main thread зайнятий, виклик відбудеться пізніше. Якщо ж ми просто робимо seconds++, то починаємо вимірювати не час, а кількість викликів — і рано чи пізно ці дві величини можуть розійтися.Кращим підходом буде запускати лічильник, коли попередня ітерація точно відпрацювала. Але просто переробляти на рекурсивний
setTimeout не треба, бо він так само накопичуватиме затримку:const tick = () => {
…
setTimeout(() => tick(), 1000);
}
tick();Краще розраховувати наступний таймаут як залишок до бажаного моменту в майбутньому:
let next = performance.now() + 1000;
const tick = () => {
next += 1000;
const delay = Math.max(0, next - performance.now());
setTimeout(tick, delay);
}
setTimeout(tick, 1000);
Оцей
delay буде трошки менше за 1000ms, бо враховує похибку попередньої ітерації.Це працює в ідеальних умовах, коли основний потік нічим суттєво не зайнятий. Але
setTimeout не гарантує, що callback виконається саме в заданий момент. Якщо main thread зайнятий JavaScript, layout, rendering чи іншою роботою, callback чекатиме. Якщо потік буде заблокований більше секунди, ми можемо взагалі проскочити момент оновлення інтерфейсу.А оскільки нам зрештою треба не просто щось порахувати, а намалювати нове значення, можна передати останній крок
requestAnimationFrame. Він не робить таймер точнішим і не обходить заблокований main thread — він просить браузер виконати оновлення перед наступним repaint.let next = performance.now() + 1000;
const tick = () => {
console.log('tick');
next += 1000;
const delay = Math.max(0, next - performance.now());
setTimeout(() => requestAnimationFrame(tick), delay);
};
setTimeout(() => requestAnimationFrame(tick), 1000);
Тут
requestAnimationFrame розвʼязує не проблему точності, а іншу: якщо результат треба показати користувачу, ми можемо синхронізувати DOM-update з наступним кадром браузера. Аби не перескакувати секунди, варто ще знати, скільки часу пройшло з останнього виконання:let previous = performance.now();
let seconds = 0;
const tick = (now) => {
// Ось тут визначаємо, скільки реально минуло секунд
// і на скільки нам треба "стрибнути" вперед
const elapsed = now - previous;
previous = now;
seconds += elapsed / 1000;
…
setTimeout(() => requestAnimationFrame(tick), 1000);
};
requestAnimationFrame(tick);
Такий підхід дозволяє максимально точно рахувати "тіки". Але є одне але, якого ну ніяк не уникнути — якщо ваш UI таки важкий, то іноді лічильник буде прострибувати значення не через рівні проміжки часу, наприклад 0.5с > 1с > 3с. Але при цьому показуватиме точний час. Це вимушений трейдоф через завантажений основний потік. Але це вже проблема не лічильника, а ваша — бо чого це у вас така важка сторінка, га?
Що почитати:
MDN — setTimeout()
MDN — requestAnimationFrame()
Що почитати душнілам:
HTML Living Standard — Timers
---
Збір на авто для 21 ОМБр триває, зібрано 22 200грн з необхідних 271 500грн.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
❤24🔥9👍6
Знайшов своє старезне резюме. Аж пустив скупу сльозу за тими часами, коли навіть з таким можна було знайти роботу.
Збір на авто для 21 ОМБр триває, зібрано 22 524грн з необхідних 271 500грн.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
Збір на авто для 21 ОМБр триває, зібрано 22 524грн з необхідних 271 500грн.
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
🔥30👏19😁9🤔3❤1
#збір_на_авто_для_21
Товариство, почнімо тиждень з доброго діла.
Я би дуже хотів, аби ми цього тижня змогли довести суму хоча б до 45 000, аби віддати бодай 1к$ за авто для 21 ОМБр. Тому кожна, буквально кожна гривня надзвичайно важлива.
Зібрано 22 625 з 271 500 грн
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
Товариство, почнімо тиждень з доброго діла.
Я би дуже хотів, аби ми цього тижня змогли довести суму хоча б до 45 000, аби віддати бодай 1к$ за авто для 21 ОМБр. Тому кожна, буквально кожна гривня надзвичайно важлива.
Зібрано 22 625 з 271 500 грн
🔗 send.monobank.ua/jar/AeXQ6YRf2X
💳 5375411202918178
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
❤5
Товариство, запрошую вас цієї суботи, 3 жовтня, на Fwdays Tech Summit — онлайн конференцію про те, як стягувати це життя в епоху ШІ.
Я особисто планую поділитися тим, як створив цілу зграю ШІбізян, аби вони робили мою роботу за мене. Як то кажуть, не можеш здолати — очолюй. Що з того вийшло, з якими складнощами я стикався (і стикаюсь) — дізнаєтесь в суботу ;)
Очевидно, що будуть й інші, не менш цікаві й корисні доповіді, наприклад:
– Олександр Савченко (Мінцифра) розповість про інфру та безпеку для мільйонів.
– Олександр Денисюк (Укрпошта) поділиться досвідом переходу архітектури на 24/7.
– Ілля Клімов (GitLab) рознесе хайпові графи і self-improving loops.
– В’ячеслав Колдовський (Dev AI) прийде до вас із мануалом по Agentic Software Factories.
🎟 Квитки тут: https://bit.ly/47p9Nrt
Промокод для своїх на знижку 15% –
Я особисто планую поділитися тим, як створив цілу зграю ШІбізян, аби вони робили мою роботу за мене. Як то кажуть, не можеш здолати — очолюй. Що з того вийшло, з якими складнощами я стикався (і стикаюсь) — дізнаєтесь в суботу ;)
Очевидно, що будуть й інші, не менш цікаві й корисні доповіді, наприклад:
– Олександр Савченко (Мінцифра) розповість про інфру та безпеку для мільйонів.
– Олександр Денисюк (Укрпошта) поділиться досвідом переходу архітектури на 24/7.
– Ілля Клімов (GitLab) рознесе хайпові графи і self-improving loops.
– В’ячеслав Колдовський (Dev AI) прийде до вас із мануалом по Agentic Software Factories.
🎟 Квитки тут: https://bit.ly/47p9Nrt
Промокод для своїх на знижку 15% –
0B522A86D8🔥13👍1