Класне інтерв'ю з розробником софту для війська https://www.youtube.com/watch?v=FauHsTVBdmQ
YouTube
Як рососіянци ламають укр. військовий софт? Ярослав Шерстюк (MyGun, TacticMap, MilChat, Кропива)
Стати спонсором каналу:
https://www.youtube.com/@hackyourmom-hackyoumom6166
Сьогодні у гостях — пан Ярослав Шерстюк: розробник софту для військових MyGun, TacticMap, MilChat, Ukrop, співрозробник Кропива. Через Ярослава знищили до 30% української артилерії?…
https://www.youtube.com/@hackyourmom-hackyoumom6166
Сьогодні у гостях — пан Ярослав Шерстюк: розробник софту для військових MyGun, TacticMap, MilChat, Ukrop, співрозробник Кропива. Через Ярослава знищили до 30% української артилерії?…
🔥11
This media is not supported in your browser
VIEW IN TELEGRAM
Тільки мене тригерить оце плаваюче меню поверх стрічки? Наче і не заважає, але створюється відчуття перекритого контенту.
Я так розумію це те, що нас чекає коли всі підтягнуться під дизайн iOS 26
Я так розумію це те, що нас чекає коли всі підтягнуться під дизайн iOS 26
💯34👍4😁4
This media is not supported in your browser
VIEW IN TELEGRAM
нарешті fpv каміки в новій батлі
❤9👍4🤩1
господи поможи, у фронтенді революція, люди дивляться на Remix 3, і не викупають шо ми повертаємось в часи бекбону
чювакі не роздуплили сигнали походу
https://frantic.im/remix-3/
function Counter(this: Remix.Handle) {
// State is just a closure
let count = 0;
return () => (
<div>
<div>{count}</div>
<button
class="p-2 text-green-500"
on={dom.click((event, signal) => {
count++;
this.update();
})}
>
Inc
</button>
</div>
);
}this.update() ви шо серйозно?чювакі не роздуплили сигнали походу
https://frantic.im/remix-3/
frantic.im
Thoughts on Remix 3
The pendulum is about to swing the other direction
🤔4🤮2💯2
Ладно, напишу шо думаю. Як на мене, то це все виглядає так, що більшості проєктам треба HTML і трохи JS. Але тому шо за роки досягнень та маркетингу всі пересіли на React, плюс Vercel пушить непотрібну складність, то є запит на щось модернове і просте.
Але люди вже звикли к отаким типу фулстек фреймворкам, де в тебе і бекенд з серверним рендерингом і роутер і дата фетчинг і клієнт і все це інтегровано. Тому хочеться щоби було комплексне і просте рішення.
Тому повертаючись до React. Keep calm і продовжуйте робити на ньому те, для чого він був створений — виключно клієнтські високо-інтерактивні застосунки. Саме в таких проєктах декларативність UI допомагає не загрузнути у складності. А для лендосів і конструкторів з формочками воно не треба.
В моїй роботі мало що змінилось за роки використання реакту, хіба що хуки прийшли, але і ними я мало користуюсь, бо для нетривіальних проєктів краще підходить стейт менеджер. З усіх апішок доданих за останні роки я майже нічого не використовую. І це не заважає будувати такі апки як https://pitch.com/ та https://whimsical.com/
Найкраще що дав реакт — це декларативний UI
Але люди вже звикли к отаким типу фулстек фреймворкам, де в тебе і бекенд з серверним рендерингом і роутер і дата фетчинг і клієнт і все це інтегровано. Тому хочеться щоби було комплексне і просте рішення.
Тому повертаючись до React. Keep calm і продовжуйте робити на ньому те, для чого він був створений — виключно клієнтські високо-інтерактивні застосунки. Саме в таких проєктах декларативність UI допомагає не загрузнути у складності. А для лендосів і конструкторів з формочками воно не треба.
В моїй роботі мало що змінилось за роки використання реакту, хіба що хуки прийшли, але і ними я мало користуюсь, бо для нетривіальних проєктів краще підходить стейт менеджер. З усіх апішок доданих за останні роки я майже нічого не використовую. І це не заважає будувати такі апки як https://pitch.com/ та https://whimsical.com/
Найкраще що дав реакт — це декларативний UI
👍16❤2
Давайте розкажу вам про всілякі performance штуки.
Нещодавно дивився як в ClojureScript прискорити деякі операції в іммутабельних векторах. Вектор це типу масив, але усі операції на ньому створюють новий вектор і під капотом він імплементований як дерево з 32 нодами в кожній гілці. Отут можна більш детально почитати про імплементацію векторів https://hypirion.com/musings/understanding-persistent-vector-pt-1
Як порівняти два таких вектори? Типу зробити
Замість того, щоб використовувати загальний механізм (тут це ітератор), можна спеціалізувати код для порівняння двох векторів і використати деталі імплементації вектору щоб прискорити операцію порівняння. По суті можна пройтись по дереву, порівнюючи його гілки (масиви по 32 елементи). Так як вектор імутабельний, його гілки теж імутабельні. Тому порівняння пари гілок в більшості випадків можна робити по посиланню, а коли гілки відмінні по посиланню, то перевірити їх глибоким обходом.
Таким чином worst case виграш по швидкості виходить близько 30%, що дуже непогано.
Ще одна штука. Є в нас вектор
У реальному коді конвертація векторів у chunked seq відбувається доволі часто. Я помітив, що порівняння вектору з chunked seq повільніше ніж порівняння двох векторів між собою. Виявилось що як і у випадку з векторами, порівняння відбувається лінійниим перебором. А так як chunked seq тримає в собі оригінальний вектор, то задача оптимізації цього випадку по суті зводиться знов до порівняння двох векторів через спеціалізацію коду під цей випадок.
Тут результати бенчмарку показали приріст у швидкості операції від 300% до 500%.
Здавалося б що це непотрібні мікро оптимізації, але коли вони робляться у самій мові програмування чи її стандартній бібліотеці, то всі користувачі мови автоматично отримують покращення при цьому не сплачуючи за це ні центу.
Також це хороший приклад того, як на перших порах можна зробити працююче рішення на абстракціях і пізніше покращити конкретні кейси через спеціалізацію алгоритму на більш низькому рівні. В таких випадках точкове ускладнення коду цілком виправдане.
Нещодавно дивився як в ClojureScript прискорити деякі операції в іммутабельних векторах. Вектор це типу масив, але усі операції на ньому створюють новий вектор і під капотом він імплементований як дерево з 32 нодами в кожній гілці. Отут можна більш детально почитати про імплементацію векторів https://hypirion.com/musings/understanding-persistent-vector-pt-1
Як порівняти два таких вектори? Типу зробити
[1 2 3] == [1 2 3]. По класиці — це пройтись по кожному елементу і порівняти їх. Це реалізовано через ітератор, порівнюємо кожні наступні значення поки не знайдемо пару відмінних значень it1.next() == it2.next(). Аллокація ітератору і виклик його методів займає час і пам'ять. Але є інший спосіб.Замість того, щоб використовувати загальний механізм (тут це ітератор), можна спеціалізувати код для порівняння двох векторів і використати деталі імплементації вектору щоб прискорити операцію порівняння. По суті можна пройтись по дереву, порівнюючи його гілки (масиви по 32 елементи). Так як вектор імутабельний, його гілки теж імутабельні. Тому порівняння пари гілок в більшості випадків можна робити по посиланню, а коли гілки відмінні по посиланню, то перевірити їх глибоким обходом.
Таким чином worst case виграш по швидкості виходить близько 30%, що дуже непогано.
Ще одна штука. Є в нас вектор
[1 2 3 4 5 6 7 8], і ми робимо йому (drop v 4) щоб видалити перші 4 значення. Під капотом насправді оригінальний вектор не змінюється, а огортається в тип даних ChunkedSeq (послідовність значень розбита на групи) і трекає позицію з якою ця послідовність починається. Якщо ми дропнули перші 4 значення у векторі, то chunked seq буде починати вичитувати значення з індексу 4 у оригінальному векторі.У реальному коді конвертація векторів у chunked seq відбувається доволі часто. Я помітив, що порівняння вектору з chunked seq повільніше ніж порівняння двох векторів між собою. Виявилось що як і у випадку з векторами, порівняння відбувається лінійниим перебором. А так як chunked seq тримає в собі оригінальний вектор, то задача оптимізації цього випадку по суті зводиться знов до порівняння двох векторів через спеціалізацію коду під цей випадок.
Тут результати бенчмарку показали приріст у швидкості операції від 300% до 500%.
Здавалося б що це непотрібні мікро оптимізації, але коли вони робляться у самій мові програмування чи її стандартній бібліотеці, то всі користувачі мови автоматично отримують покращення при цьому не сплачуючи за це ні центу.
Також це хороший приклад того, як на перших порах можна зробити працююче рішення на абстракціях і пізніше покращити конкретні кейси через спеціалізацію алгоритму на більш низькому рівні. В таких випадках точкове ускладнення коду цілком виправдане.
Hypirion
Understanding Clojure's Persistent Vectors, pt. 1
Ever wondered how Clojure's persistent vector actually works? This is part 1 of a blog series which aims to explain them.
👍21🤯2
Прийшов час збирати ваші донати на пластик для друку бімб для ЗСУ. За останні три місяці ми надрукували виробів на 750кг
Гроші на банці закінчуються, а вже треба купляти пластик. Цього місяця ми ще й розширили команду друкарів.
Тому як завжди, буду вдячний за допомогу та поширення 👉 https://send.monobank.ua/jar/8TTMjgaRFy
Гроші на банці закінчуються, а вже треба купляти пластик. Цього місяця ми ще й розширили команду друкарів.
Тому як завжди, буду вдячний за допомогу та поширення 👉 https://send.monobank.ua/jar/8TTMjgaRFy
🔥20❤4👏1
Хтось шукає роботу розробником (веб та/або мобайл)? Знайомим у медичний стартап треба людина для розробки mvp. Пишіть в коментах, передам контакт.
доречі класна штука за кермом — це включити chatgpt у голосовому режимі і обговорювати свої штуки з ним поки кудись їдеш, працює дуже класно в дорозі
я іноді використовую його як туристичний гайд, питаю про населені пункти які проїзжаю
кльово було б інтегрувати в нього геолокацію та камеру переднього/заднього виду )
я іноді використовую його як туристичний гайд, питаю про населені пункти які проїзжаю
кльово було б інтегрувати в нього геолокацію та камеру переднього/заднього виду )
❤18🔥14👍6
Записав вам відосік про хату в селі і роботи за перший місяць після придбання. Поки шо там все на етапі розгрібання наслідків житя минулих власників за останні 50 років.
https://www.youtube.com/watch?v=fVyLALBLuUc
https://www.youtube.com/watch?v=fVyLALBLuUc
YouTube
Шось про хату в селі, ч.1, про хату та ділянку
- 00:00 про хату
- 02:22 стан даху
- 03:43 опалення
- 04:04 про бур'ян та сміття
- 06:33 свердловина на воду
- 07:27 комунікації
- 09:33 стан фундаменту
- 02:22 стан даху
- 03:43 опалення
- 04:04 про бур'ян та сміття
- 06:33 свердловина на воду
- 07:27 комунікації
- 09:33 стан фундаменту
🔥26👍7👏1
якщо ще не купили хату, можете пограти в симулятор реставрації мазанки ))
https://store.steampowered.com/app/2642760/Back_to_Hearth/?l=ukrainian
https://store.steampowered.com/app/2642760/Back_to_Hearth/?l=ukrainian
Steampowered
Back to Hearth on Steam
Step into a quiet, abandoned Ukrainian village, left empty after the Calamity. In this short, meditative, and melancholic journey, you’ll rekindle the hearths of deserted homes, restoring warmth and hope to the families who once lived here.
😁8🔥4👍1
Так, а кого ви по будівництву дивитесь? Я поки шо вивчаю відоси оцього пана https://www.youtube.com/@TerekhovO
👍7