Media is too big
VIEW IN TELEGRAM
нарешті хтось додумався зробити гру з міксом різних епох
https://store.steampowered.com/app/2109770/Kingmakers/
https://store.steampowered.com/app/2109770/Kingmakers/
😁17🔥3🤮2
о 20:00 буде стрім четверговий чіло-код, спокійно шось покодимо, хочу зробити собі плейграунд для експериментів з графікою https://www.youtube.com/watch?v=9eeSh3k0f_E
YouTube
Четверговий чіло-код
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
🔥5
Новий збір. Вчора говорив з однокласником, просить зібрати на балістичний захист для саперів. Щоб мінімізувати можливі поранення при спорядженні боєвої частини fpv.
Буду вдячний за допомогу донатом та поширенням 👉 https://send.monobank.ua/jar/A1dgM457ky
Буду вдячний за допомогу донатом та поширенням 👉 https://send.monobank.ua/jar/A1dgM457ky
❤4💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Десь отак виглядає політ літачка на швидкості 250 км/год
всім гарного початку тижня)
всім гарного початку тижня)
🔥30🥰10
Forwarded from Розробка третьої хвилі
This media is not supported in your browser
VIEW IN TELEGRAM
В Твіттері хвиля геніальних ідей — схоже, після відео ютубера Theo, який показав, як він у Next-проєкті використовує React Router тільки в декількох місцях.
Але, схоже, з цього роздули велику бульку і давай штампувати потужні рішення.
Люди беруть Next.js-проєкт, створюють єдиний ентрі-поінт для Next-роутера, а далі все переходить у владу React Router. А чому? Бо Next-роутер має затримку в підвантаженні сторінок, SSR і т.д. Людей це, звісно ж, напрягає. Але це просто так працює той роутер — це певною мірою плата за інший функціонал, який дає Next.
На мою думку, це дуже тупе рішення. Воно може бути виправданим лише якщо ви мігруєте з одного роутера на інший і це тимчасово. Якщо не користуватись роутером Next, то що лишається? Мало, бо роутер — це велика частина фреймворку.
Хтось може сказати, що це все одно зручно, бо Next дає ще вбудований API. Але я вважаю, що це занадто. Для таких задач є суттєво простіші підходи. Та й Next сам по собі має чимало інших проблем, а в більшості випадків буде достатньо Vite.
Загалом — не робіть так. Не змішуйте підходи, які роблять плюс-мінус те саме, але в різний спосіб, бо це точно призведе до багів.
Спершу думав не писати про це, але бачу що є однодумці: https://x.com/letstri/status/1929463573127831666
Але, схоже, з цього роздули велику бульку і давай штампувати потужні рішення.
Люди беруть Next.js-проєкт, створюють єдиний ентрі-поінт для Next-роутера, а далі все переходить у владу React Router. А чому? Бо Next-роутер має затримку в підвантаженні сторінок, SSR і т.д. Людей це, звісно ж, напрягає. Але це просто так працює той роутер — це певною мірою плата за інший функціонал, який дає Next.
На мою думку, це дуже тупе рішення. Воно може бути виправданим лише якщо ви мігруєте з одного роутера на інший і це тимчасово. Якщо не користуватись роутером Next, то що лишається? Мало, бо роутер — це велика частина фреймворку.
Хтось може сказати, що це все одно зручно, бо Next дає ще вбудований API. Але я вважаю, що це занадто. Для таких задач є суттєво простіші підходи. Та й Next сам по собі має чимало інших проблем, а в більшості випадків буде достатньо Vite.
Загалом — не робіть так. Не змішуйте підходи, які роблять плюс-мінус те саме, але в різний спосіб, бо це точно призведе до багів.
Спершу думав не писати про це, але бачу що є однодумці: https://x.com/letstri/status/1929463573127831666
👍16
This media is not supported in your browser
VIEW IN TELEGRAM
коли колєга доїбався на код рев'ю (зі звуком)
😁16👍3🥰2
Написав апдейт по імплементації серверних компонентів у Clojure. Цього разу про мутації через форми, завантаження даних, батчинг та кешування, і обробку помилок.
https://romanliutikov.com/blog/towards-react-server-components-in-clojure-part-3
https://romanliutikov.com/blog/towards-react-server-components-in-clojure-part-3
Romanliutikov
Towards React Server Components in Clojure, Part 3 | Roman Liutikov, Software Engineer
A journey on bringing React Server Components to Clojure JVM, as a part of UIx library
👏8👍3
Хто ще не заповнив зарплатне опитування DOU, йдіть зробіть це, там є цікаві питання, потім будемо дивитись статистику https://dou.ua/goto/ikMs
DOU
Зарплатне опитування DOU і портрет айтівця. Долучайтеся!
Запускаємо літнє зарплатне опитування DOU. На анкету знадобиться не більше як 10 хв. Чекаємо всіх айтівців - тих, хто живе в Україні та за кордоном. І спеціалістів усіх напрямів: розробників, QA, менеджерів, DevOps, маркетологів, сапорт, сейлз, HR тощо. Результати…
👍10❤3💯2🤮1
Кльовий відос про нове дослідження в якому довели, що комп'ютери можуть використовувати значно менше пам'яті за рахунок збільшеної кількості операцій, тобто довшого часу виконання
Уся ідея заснована на тому, що числа можна зберігати в одній області пам'яті за допомогою побітових операцій.
Ось приклад як свапнути місцями два числа за допомогою XOR, не використовуючи додаткову змінну, тобто додаткову пам'ять.
https://www.youtube.com/watch?v=8JuWdXrCmWg
Уся ідея заснована на тому, що числа можна зберігати в одній області пам'яті за допомогою побітових операцій.
Ось приклад як свапнути місцями два числа за допомогою XOR, не використовуючи додаткову змінну, тобто додаткову пам'ять.
a = 9
b = 59
a = a ^ b
b = a ^ b
a = a ^ b
a // 59
b // 9
https://www.youtube.com/watch?v=8JuWdXrCmWg
YouTube
Astonishing discovery by computer scientist: how to squeeze space into time
This year, computer scientist Ryan Williams showed an astounding connection between space and time. He thought it was too strange to be true. But, it is.
It’s about space, time, fundamental constraints, a 50-year-old mystery, and magical pebbles that resolved…
It’s about space, time, fundamental constraints, a 50-year-old mystery, and magical pebbles that resolved…
❤14🤔2😱1
Media is too big
VIEW IN TELEGRAM
а я вам напам'ятовую про збір на балістичний захист сапера FPV для мого товариша, буду вдячний за кожну гривню, залишилось всього 25 тис https://send.monobank.ua/jar/A1dgM457ky
тіки шо з ним бачився, навідували побратима який отримав поранення від фпв, сильно побитий, але живий
відос їхнього підрозділу, з курської операції
тіки шо з ним бачився, навідували побратима який отримав поранення від фпв, сильно побитий, але живий
відос їхнього підрозділу, з курської операції
🔥3
отут (по таймкоду) добре сказано про те, шо люди собі чомусь уявляють шо в мілтех проєктах треба мегамозок і якийсь супер скілсет по с++, коли насправді для багатьох чи навіть більшості штук треба вміти підбирати конкретні інструменти під конкретні молотки і не зайобуватись ідеальними рішеннями https://youtu.be/-ZT2AU9aZgM?t=4535
звичайно шо є проєкти різної складності, але основний поінт у тому, шо не треба собі придумувати рішення неіснуючих проблем
та і проєктів є більше ніж охочих людей, аби була мотивація
звичайно шо є проєкти різної складності, але основний поінт у тому, шо не треба собі придумувати рішення неіснуючих проблем
та і проєктів є більше ніж охочих людей, аби була мотивація
YouTube
Апдейт по оптоволокну, кишеньковий КАБ, чому айтівці не йдуть у мілтех. fpv #12
🤝 Підтримати УТ-2: https://yt-2.com/donate
🎙️ УТ-2 Фольклор: https://yt-2.com/folklore
Школа від Vyriy Drone: [посилання буде у наступному випуску]
Технології війни обговорювали:
👤 Олексій Бабенко: https://www.instagram.com/babenko_burn
Vyriy Drone: …
🎙️ УТ-2 Фольклор: https://yt-2.com/folklore
Школа від Vyriy Drone: [посилання буде у наступному випуску]
Технології війни обговорювали:
👤 Олексій Бабенко: https://www.instagram.com/babenko_burn
Vyriy Drone: …
👍13🤔2❤1
Доречі якщо хтось має, накидайте під цей пост ресурсів для вивчення по отакому опису вакансії:
- Впевнене володіння мовами програмування C та C++;
- Наявність досвід роботи з мікроконтролерами STM32, ESP32 та їх аналогами;
- Знання інтерфейсів UART, SPI, I2C, CAN, USB, PWM, ADC/DAC;
- Наявність досвіду роботи з RTOS (FreeRTOS або аналоги);
- Навички низькорівневого програмування: регістри, переривання, DMA;
- Наявність досвід роботи з інструментами Keil, STM32CubeIDE, VS Code + PlatformIO, CMake;
- Розуміння принципів роботи з протоколами Modbus, MQTT, TCP/IP, BLE, LoRa, Wi-Fi;
- Вміння читати електронні схеми, працювати з осцилографом і логічним аналізатором;
- Впевнене користування Git (GitHub, GitLab);
Від себе додам, шо реально більша частина цього списку вивчається через ChatGPT
- Впевнене володіння мовами програмування C та C++;
- Наявність досвід роботи з мікроконтролерами STM32, ESP32 та їх аналогами;
- Знання інтерфейсів UART, SPI, I2C, CAN, USB, PWM, ADC/DAC;
- Наявність досвіду роботи з RTOS (FreeRTOS або аналоги);
- Навички низькорівневого програмування: регістри, переривання, DMA;
- Наявність досвід роботи з інструментами Keil, STM32CubeIDE, VS Code + PlatformIO, CMake;
- Розуміння принципів роботи з протоколами Modbus, MQTT, TCP/IP, BLE, LoRa, Wi-Fi;
- Вміння читати електронні схеми, працювати з осцилографом і логічним аналізатором;
- Впевнене користування Git (GitHub, GitLab);
Від себе додам, шо реально більша частина цього списку вивчається через ChatGPT
🔥10
Сьогодні якраз була задачка куди можна припхати RTOS. Значить дано: датчик, шось він ловить і має дьорнути якусь іншу залізяку.
Найпростіший і найтупіший спосіб це зробити — забити на RTOS, і постійно перевіряти датчик на наявність показників, тобто:
while (1)
{
if (data_ready())
{
// read data do stuff
}
}
Аднааака, ходити туди сюди по дротам 100500 разів на секунду це теж недешева забава, може зайняти десь 100 мікросекунд. Тобто потенційно затримка на отримування показників може бути 100+ мкс.
Сенсор віддає дані наприклад з частотою в 60Гц, тому нема сенсу перевіряти його частіше ніж кожні 16.666мс. Отже можна скористатись FreeRTOS і винести функцію яка працює з показниками у окремий таск який буде викликатись 60 разів на секунду. Таким чином ми ще й розвантажуємо ядро, щоб можна було робити іншу роботу, за потреби. Кількість вказаних мілісекунд конвертується в кроки процесору, таким чином досягається приблизна точність в часі.
Тепер виходить, що в нас і сенсор і контроллер працюють на 60Гц, але вони при цьому не синхронізовані. Тобто є дві доріжки, на кожній шось відбувається приблизно кожні 16.666мс, але зі зсувом. Це як два годинники які запустили неодночасно. Таким чином все одно маємо затримку, яка ще і гуляє по часу.
Покращити це можна використавши приривання, якщо в сенсорі є такий інтерфейс. По суті, замість того щоб перевірять датчик на наявність даних, ми чекаємо від нього сигналу. А щоб впевнитись, що реакція на сигнал буде якомога швидшою, функція реєструється як обробник преривання, тобто такою що буде викликана з високим пріорітетом. Тут все одно буде якась затримка, але хоча б стабільна, бо тепер контролер синхронізований з датчиком.
Далі є DMA (direct memory access), але для моїх задач навіть вищеописаного забагато, достатньо безкінченого циклу)
Найпростіший і найтупіший спосіб це зробити — забити на RTOS, і постійно перевіряти датчик на наявність показників, тобто:
while (1)
{
if (data_ready())
{
// read data do stuff
}
}
Аднааака, ходити туди сюди по дротам 100500 разів на секунду це теж недешева забава, може зайняти десь 100 мікросекунд. Тобто потенційно затримка на отримування показників може бути 100+ мкс.
Сенсор віддає дані наприклад з частотою в 60Гц, тому нема сенсу перевіряти його частіше ніж кожні 16.666мс. Отже можна скористатись FreeRTOS і винести функцію яка працює з показниками у окремий таск який буде викликатись 60 разів на секунду. Таким чином ми ще й розвантажуємо ядро, щоб можна було робити іншу роботу, за потреби. Кількість вказаних мілісекунд конвертується в кроки процесору, таким чином досягається приблизна точність в часі.
Тепер виходить, що в нас і сенсор і контроллер працюють на 60Гц, але вони при цьому не синхронізовані. Тобто є дві доріжки, на кожній шось відбувається приблизно кожні 16.666мс, але зі зсувом. Це як два годинники які запустили неодночасно. Таким чином все одно маємо затримку, яка ще і гуляє по часу.
Покращити це можна використавши приривання, якщо в сенсорі є такий інтерфейс. По суті, замість того щоб перевірять датчик на наявність даних, ми чекаємо від нього сигналу. А щоб впевнитись, що реакція на сигнал буде якомога швидшою, функція реєструється як обробник преривання, тобто такою що буде викликана з високим пріорітетом. Тут все одно буде якась затримка, але хоча б стабільна, бо тепер контролер синхронізований з датчиком.
Далі є DMA (direct memory access), але для моїх задач навіть вищеописаного забагато, достатньо безкінченого циклу)
👍12
В когось може є серед знайомих людина яка вміє працювати в solid works? Шукаю людей на позицію помічника головного конструктора, на виробництво літаків
Шановні. Збираю собі на новий айфон, не вистачає буквально 13 тис ваших гривень. Як завжди, буду вдячний за допомогу https://send.monobank.ua/jar/A1dgM457ky
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
😁41👍6😱4❤1🤮1