Мы уже начали, залетайте на обсуждение https://www.joinclubhouse.com/event/M4BQnyyA
Вчера неплохо посидели, пообсуждали и накинули небольшой роадмап на тему того, «куда дальше развиваться senior-разработчику». Записи к сожалению не было, хотя я и сам не понимаю, будут ли вообще слушать (в записи) вот такие подпивасные посиделки.
Рубрику будем продолжать, однако записи скорее всего появятся, правда обрабатывать я их не буду, иначе будет выходить одна запись в месяц, вместо четырех... Зато у вас будет отличная возможность ездить в автобусе и слушать про разработку прямо тут в телеграмчике.
Посты по разработке тоже в процессе, на повестке дня будут atomic операции, кое-что про крипту и нейронки от читателя, ну и многое другое, до чего руки дотянутся, как закончу аппку допиливать, а она в целом почти готова. Наклинкодим и в продакшен.
#devtalks #roadmap
by @hw_code
Рубрику будем продолжать, однако записи скорее всего появятся, правда обрабатывать я их не буду, иначе будет выходить одна запись в месяц, вместо четырех... Зато у вас будет отличная возможность ездить в автобусе и слушать про разработку прямо тут в телеграмчике.
Посты по разработке тоже в процессе, на повестке дня будут atomic операции, кое-что про крипту и нейронки от читателя, ну и многое другое, до чего руки дотянутся, как закончу аппку допиливать, а она в целом почти готова. Наклинкодим и в продакшен.
#devtalks #roadmap
by @hw_code
Помню просили тут в комментах про неоморфизм немножко написать, решил заделиться парой полезных ссылочек. От него потихоньку уходят, в силу его неюзабельности, хотя он и красивый.
📌 Что такое неоморфизм с точки зрения доступности?
📌 Фундаментальные принципы дизайна мобильных приложений
Ну и немножко 🐓, ой то есть я имел в виду 🐍
🔈 Конвертируем .pdf файл в .mp3 аудио книгу
👉 Гитхаб репозитории для улучшения твоих скилов
🎙У нас тут завтра ещё одно событие намечается, вот ссылочка. Кто сможет – приходите, ̶о̶̶̶с̶̶̶т̶̶̶а̶̶̶л̶̶̶ь̶̶̶н̶̶̶ы̶̶̶м̶̶̶ ̶̶̶с̶̶̶о̶̶̶б̶̶̶о̶̶̶л̶̶̶е̶̶̶з̶̶̶н̶̶̶у̶̶̶ю̶ для остальных скорее всего будет запись. Если получится, закину сюда и мб в сервисы подкастов какие-нибудь.
upd: возникли некоторые накладки, подкаст перенесён на 2 недели вперёд, ближе к дате сообщу подробности.
📌 Что такое неоморфизм с точки зрения доступности?
📌 Фундаментальные принципы дизайна мобильных приложений
Ну и немножко 🐓, ой то есть я имел в виду 🐍
🔈 Конвертируем .pdf файл в .mp3 аудио книгу
👉 Гитхаб репозитории для улучшения твоих скилов
🎙У нас тут завтра ещё одно событие намечается, вот ссылочка. Кто сможет – приходите, ̶о̶̶̶с̶̶̶т̶̶̶а̶̶̶л̶̶̶ь̶̶̶н̶̶̶ы̶̶̶м̶̶̶ ̶̶̶с̶̶̶о̶̶̶б̶̶̶о̶̶̶л̶̶̶е̶̶̶з̶̶̶н̶̶̶у̶̶̶ю̶ для остальных скорее всего будет запись. Если получится, закину сюда и мб в сервисы подкастов какие-нибудь.
upd: возникли некоторые накладки, подкаст перенесён на 2 недели вперёд, ближе к дате сообщу подробности.
🎙Сегодня в 19:00 по МСК обсуждаем последние новости мобильной разработки. Кто сможет – заходите, будет весело! У нас в гостях будут лиды iOS разработки в Яндекс.Еде и Кошельке.
Для остальных, запись скорее всего будет. Но если хотите задать вопрос по разработке, лучше присутствовать!
Ссылка: https://www.joinclubhouse.com/event/PAY0d71P
Для остальных, запись скорее всего будет. Но если хотите задать вопрос по разработке, лучше присутствовать!
Ссылка: https://www.joinclubhouse.com/event/PAY0d71P
Aggregation vs Composition
Вчера пока сидел чилил под лекцию о теории струн, накидал быстренько вам статейку о разнице между агрегацией и композицией. Enjoy!
Хотя я и стараюсь придерживаться функционального и реактивного подхода, данная тема меня уже давно заинтересовала, и висела в у меня в закрепе тех тем, которые стоит разобрать на канале.
Читать статью хз ну там 5 минут, может 7...
@hw_code
Вчера пока сидел чилил под лекцию о теории струн, накидал быстренько вам статейку о разнице между агрегацией и композицией. Enjoy!
Хотя я и стараюсь придерживаться функционального и реактивного подхода, данная тема меня уже давно заинтересовала, и висела в у меня в закрепе тех тем, которые стоит разобрать на канале.
Читать статью хз ну там 5 минут, может 7...
@hw_code
Teletype
Агрегация vs Композиция
Решил набросать небольшой пост по ООП... Вот пример композиции и агрегирования с точки зрения кода, написанного на Swift (на Python...
Flat map в Python 🐍
Некоторое время назад, мы касались вопросов функционального программирования на Swift в контексте монад и функторов (
Читать статью
@hw_code
Некоторое время назад, мы касались вопросов функционального программирования на Swift в контексте монад и функторов (
flatMap там тоже был). Теперь давайте рассмотрим концепцию flat_map в языке Python.Читать статью
@hw_code
Teletype
Flat map в Python 🐍
Некоторое время назад мы касались вопросов функционального программирования на Swift в контексте монад и функторов (flatMap там тоже...
🔥1
Квантовые выч и ФП. tlgm it_boooks 2015.pdf
4.5 MB
📖 Квантовые вычисления
Решил тут вам немного подкинуть пищи для ума (хе-хе) и поделиться книгой о квантовых вычислениях (в контексте функционального программирования). Если вам вдруг всегда хотелось заняться чем-то высоким на стыке науки и программирования, это отличный повод вкатиться.
Данная книга позволит подтянуть (ну или приобрести) знания о квантовых алгоритмах, функциональном подходе и о фундаментальной связи между описательным подходом функциональных языков и физической реальностью.
Написано оно именно для программистов, а не для физиков-теоретиков. Я вообще считаю, что начинать надо именно с функционального подхода. Сейчас поясню почему.
Во-первых, квантовая механика сама по себе вещь довольно контринтуитивная, если вы считаете функциональный подход чем-то сложным, у меня для вас определённо плохие новости...
Во-вторых, именно функциональное программирование наиболее близко из других способов программирования к парадигме квантовых вычислений. Почему так? Читайте книгу.
@hw_code
Решил тут вам немного подкинуть пищи для ума (хе-хе) и поделиться книгой о квантовых вычислениях (в контексте функционального программирования). Если вам вдруг всегда хотелось заняться чем-то высоким на стыке науки и программирования, это отличный повод вкатиться.
Данная книга позволит подтянуть (ну или приобрести) знания о квантовых алгоритмах, функциональном подходе и о фундаментальной связи между описательным подходом функциональных языков и физической реальностью.
Написано оно именно для программистов, а не для физиков-теоретиков. Я вообще считаю, что начинать надо именно с функционального подхода. Сейчас поясню почему.
Во-первых, квантовая механика сама по себе вещь довольно контринтуитивная, если вы считаете функциональный подход чем-то сложным, у меня для вас определённо плохие новости...
Во-вторых, именно функциональное программирование наиболее близко из других способов программирования к парадигме квантовых вычислений. Почему так? Читайте книгу.
@hw_code
😎 Fortran возвращается в топ-20
Может помнит кто, был такой язык для научных вычислений, там еще 6 отступов надо было делать, и всё писать заглавными буквами... Хотя, почему «был»? Недавно он вернулся в топ-20 языков по версии TIOBE (он замеряет популярность языков по количеству запросов с их упоминанием в различных поисковиках).
Возросшую популярность Fortran можно объяснить резко возросшей потребностью в серьёзных научных расчётах, в которых ему практически нет равных. Да и сам язык не такой уж старичок, хотя ему и стукнет 65 лет в этом году, он постоянно совершенствовался, и сейчас это достаточно современный язык, в котором практически отсутствуют недостатки из более ранних его версий.
Помню, давненько я писал на нём и на C, и сравнивая производительность, я ахренел. В отдельных задачах Fortran был чуть ли не в 20 раз быстрее. Отдельной вишенкой на торте был user-friendly синтаксис, позволяющий, например, без труда засунуть матрицу в функцию в качестве аргумента (попробуйте это сделать на чистом C).
Забавно, что Objective-C утратил свой статус главного языка разработки приложений для iOS и macOS, и выбыл из двадцатки самых популярных языков программирования. Да и Swift слегка сдает позиции.
@hw_code
Может помнит кто, был такой язык для научных вычислений, там еще 6 отступов надо было делать, и всё писать заглавными буквами... Хотя, почему «был»? Недавно он вернулся в топ-20 языков по версии TIOBE (он замеряет популярность языков по количеству запросов с их упоминанием в различных поисковиках).
Возросшую популярность Fortran можно объяснить резко возросшей потребностью в серьёзных научных расчётах, в которых ему практически нет равных. Да и сам язык не такой уж старичок, хотя ему и стукнет 65 лет в этом году, он постоянно совершенствовался, и сейчас это достаточно современный язык, в котором практически отсутствуют недостатки из более ранних его версий.
Помню, давненько я писал на нём и на C, и сравнивая производительность, я ахренел. В отдельных задачах Fortran был чуть ли не в 20 раз быстрее. Отдельной вишенкой на торте был user-friendly синтаксис, позволяющий, например, без труда засунуть матрицу в функцию в качестве аргумента (попробуйте это сделать на чистом C).
Забавно, что Objective-C утратил свой статус главного языка разработки приложений для iOS и macOS, и выбыл из двадцатки самых популярных языков программирования. Да и Swift слегка сдает позиции.
@hw_code
Пост ни о чём, так сказать. Или дикий бомбёж по айти в телеграме. 👍🏻
Почему так долго не было постов? У меня пропала мотивация делать что-либо связанное с телеграмом. Сейчас объясню, а вы постарайтесь проследить за моей мыслью. Собственно, как вы уже успели заметить, айти сектор сейчас в диком тренде, и им занимается практически каждая собака. Везде курсы, бабки, машинное обучение и прочее.
Что я имею в виду под этим? Существует огромное количество каналов от псевдокодеров, назовём их так, каналы эти совсем немаленькие, а их авторы преследуют цели не научить вас чему либо, а просто выпустить пост «ни о чем», чтобы был актив, продать побольше реклам, сделать закупы и так далее по кругу.
Причем грешат этим даже самые крупные сети, в основном по вашему любимому питону (простой язык, и писать посты по нему может любой школьник). Не будем показывать пальцами, потому что мы здесь не для этого. Данные люди не являются программистами (и даже физиками-теоретиками, чего я никогда не скрывал), а скорее этакими телеграмными мамкиными бизнесменами, зарабатывающими бабки на школьниках и дурачках и перезаливающие людей со всяких телеграм помоек.
Может в их глазах они и занимаются благим делом, но на мой взгляд то, что они делают попросту мерзко, и участвовать в этом я не желаю. Делать контент фигового качества я не хочу, а делать качественный контент я не могу, в силу тех обстоятельств, что этот труд попросту никому не нужен, канал сам по себе не растёт, репостов нет, люди отписываются, а просмотры падают.
Новых подписчиков на канале нет, в силу отсутствия тут какой-либо рекомендательной системы. А тратить деньги на постоянные вливания в рекламу, люди, не рассматривающие свои каналы как «бизнес», не станут. Слишком уж дорогое выходит хобби, отжирающее не только силы и время, но еще и деньги. Для обычного человека, не рассматривающего канал как основной источник заработка, основное желание это делиться хорошим контентом и видеть как канал растет. А этого не происходит.
Что со всем этим делать я пока не знаю, да и не хочу знать, наверное. Хотя ваше мнение в комментариях всегда приветствуется. Это не означает что писать сюда я вообще перестану. Скорее всего пропаду на время, а потом будет еще контент по свифту, физике и численным штукам, но это неточно. Даже всерьез сейчас рассматриваю возможность пойти снимать видео на ютуб.
P.S. И вот не надо сейчас резко бежать и отписываться. На каналы всяких школьников всяко успеете еще подписаться.
by @hw_code
Почему так долго не было постов? У меня пропала мотивация делать что-либо связанное с телеграмом. Сейчас объясню, а вы постарайтесь проследить за моей мыслью. Собственно, как вы уже успели заметить, айти сектор сейчас в диком тренде, и им занимается практически каждая собака. Везде курсы, бабки, машинное обучение и прочее.
Что я имею в виду под этим? Существует огромное количество каналов от псевдокодеров, назовём их так, каналы эти совсем немаленькие, а их авторы преследуют цели не научить вас чему либо, а просто выпустить пост «ни о чем», чтобы был актив, продать побольше реклам, сделать закупы и так далее по кругу.
Причем грешат этим даже самые крупные сети, в основном по вашему любимому питону (простой язык, и писать посты по нему может любой школьник). Не будем показывать пальцами, потому что мы здесь не для этого. Данные люди не являются программистами (и даже физиками-теоретиками, чего я никогда не скрывал), а скорее этакими телеграмными мамкиными бизнесменами, зарабатывающими бабки на школьниках и дурачках и перезаливающие людей со всяких телеграм помоек.
Может в их глазах они и занимаются благим делом, но на мой взгляд то, что они делают попросту мерзко, и участвовать в этом я не желаю. Делать контент фигового качества я не хочу, а делать качественный контент я не могу, в силу тех обстоятельств, что этот труд попросту никому не нужен, канал сам по себе не растёт, репостов нет, люди отписываются, а просмотры падают.
Новых подписчиков на канале нет, в силу отсутствия тут какой-либо рекомендательной системы. А тратить деньги на постоянные вливания в рекламу, люди, не рассматривающие свои каналы как «бизнес», не станут. Слишком уж дорогое выходит хобби, отжирающее не только силы и время, но еще и деньги. Для обычного человека, не рассматривающего канал как основной источник заработка, основное желание это делиться хорошим контентом и видеть как канал растет. А этого не происходит.
Что со всем этим делать я пока не знаю, да и не хочу знать, наверное. Хотя ваше мнение в комментариях всегда приветствуется. Это не означает что писать сюда я вообще перестану. Скорее всего пропаду на время, а потом будет еще контент по свифту, физике и численным штукам, но это неточно. Даже всерьез сейчас рассматриваю возможность пойти снимать видео на ютуб.
P.S. И вот не надо сейчас резко бежать и отписываться. На каналы всяких школьников всяко успеете еще подписаться.
by @hw_code
10 правил программирования NASA 🌎
1️⃣ Избегать сложных конструкций ветвления, таких как
2️⃣ Все циклы должны иметь фиксированные границы (во избежание бесконтрольного разрастания кода).
3️⃣ Не использовать динамическое распределение памяти после инициализации.
4️⃣ Каждая функция должна располагаться максимум на одной печатной странице стандартного формата. Как правило, это означает не более 60 строк кода на функцию.
5️⃣ Использовать не более двух ассертов на функцию. Эти ассерты используются для проверки аномальных условий, которые никогда не должны возникать в реальных условиях.
6️⃣ Ограничивать область видимости объектов с данными до минимально возможной.
7️⃣ Проверять возвращаемое значение всех не-void функций или приводить их к типу void. Валидность параметров должна проверяться внутри каждой функции.
8️⃣ Ограничить использование препроцессора.
9️⃣ Ограничить использование указателей: достаточно одного разыменовывания, а указатели на функции вообще не применять.
🔟 Компилировать со всеми возможными включёнными предупреждениями.
Эти правила были созданы в 2006 году Джерардом Дж. Хольцманном в Лаборатории реактивного движения (ЛРД) NASA. Они были направлены на то, чтобы искоренить те приёмы программирования на языке С, которые затрудняют проведение контроля и статического анализа кода.
Источник
by @hw_code
1️⃣ Избегать сложных конструкций ветвления, таких как
goto или рекурсия.2️⃣ Все циклы должны иметь фиксированные границы (во избежание бесконтрольного разрастания кода).
3️⃣ Не использовать динамическое распределение памяти после инициализации.
4️⃣ Каждая функция должна располагаться максимум на одной печатной странице стандартного формата. Как правило, это означает не более 60 строк кода на функцию.
5️⃣ Использовать не более двух ассертов на функцию. Эти ассерты используются для проверки аномальных условий, которые никогда не должны возникать в реальных условиях.
6️⃣ Ограничивать область видимости объектов с данными до минимально возможной.
7️⃣ Проверять возвращаемое значение всех не-void функций или приводить их к типу void. Валидность параметров должна проверяться внутри каждой функции.
8️⃣ Ограничить использование препроцессора.
9️⃣ Ограничить использование указателей: достаточно одного разыменовывания, а указатели на функции вообще не применять.
🔟 Компилировать со всеми возможными включёнными предупреждениями.
Эти правила были созданы в 2006 году Джерардом Дж. Хольцманном в Лаборатории реактивного движения (ЛРД) NASA. Они были направлены на то, чтобы искоренить те приёмы программирования на языке С, которые затрудняют проведение контроля и статического анализа кода.
Источник
by @hw_code
Набор наиболее полезных ссылок на блоги по Swift 🐤
• https://github.com/raywenderlich/swift-algorithm-club
• https://sarunw.com
• https://vadimbulavin.com
• https://swiftbysundell.com
• https://avanderlee.com
• https://fivestars.blog
• https://clean-swift.com
• https://swiftwithmajid.com
• https://hackingwithswift.com
• https://swiftrocks.com
• https://donnywals.com
• https://artyom.space/swift-roadmap/
• https://holyswift.app
• https://martinmitrevski.com
• https://khawerkhaliq.com
• https://blog.swiftpackageindex.com
• https://peterfriese.dev
• https://fewlinesofcode.com
• https://serialcoder.dev
• https://www.simpleswiftguide.com
• https://www.swiftlyrush.com
Это конечно не самый полный список, я уверен что их существует гораздо больше, но наиболее полезные и/или известные присутствуют.
upd: дополняется
by @hw_code
• https://github.com/raywenderlich/swift-algorithm-club
• https://sarunw.com
• https://vadimbulavin.com
• https://swiftbysundell.com
• https://avanderlee.com
• https://fivestars.blog
• https://clean-swift.com
• https://swiftwithmajid.com
• https://hackingwithswift.com
• https://swiftrocks.com
• https://donnywals.com
• https://artyom.space/swift-roadmap/
• https://holyswift.app
• https://martinmitrevski.com
• https://khawerkhaliq.com
• https://blog.swiftpackageindex.com
• https://peterfriese.dev
• https://fewlinesofcode.com
• https://serialcoder.dev
• https://www.simpleswiftguide.com
• https://www.swiftlyrush.com
Это конечно не самый полный список, я уверен что их существует гораздо больше, но наиболее полезные и/или известные присутствуют.
upd: дополняется
by @hw_code
5 Безумных симуляций, которые ранее были бы невозможны ⛓
Наткнулся тут на интересную и залипательную штуку по типу тех симуляций жидкости и песка с помощью нейросетей, о которых уже писал ранее. Только вот это "честные" симуляции, путем решения нелинейной эластодинамической модели с помощью минимизации интеграла действия. Вы только зацените, как же круто!
💻 Ссылка на видео: видео
📝 Ссылка на статью: "Incremental Potential Contact: Intersection- and Inversion-free Large Deformation Dynamics"
Что самое занятное, все это можно собрать и затестить самому, поскольку у статьи есть открытый репо на гитхабе.
Ждем теперь такую физику в играх через пару тройку лет? Интересно почему раньше не могли так, ведь симуляции выполнены всего-то на Intel Core i7 (4 ядра) и Intel Xeon (8 ядер).
by @hw_code
Наткнулся тут на интересную и залипательную штуку по типу тех симуляций жидкости и песка с помощью нейросетей, о которых уже писал ранее. Только вот это "честные" симуляции, путем решения нелинейной эластодинамической модели с помощью минимизации интеграла действия. Вы только зацените, как же круто!
💻 Ссылка на видео: видео
📝 Ссылка на статью: "Incremental Potential Contact: Intersection- and Inversion-free Large Deformation Dynamics"
Что самое занятное, все это можно собрать и затестить самому, поскольку у статьи есть открытый репо на гитхабе.
Ждем теперь такую физику в играх через пару тройку лет? Интересно почему раньше не могли так, ведь симуляции выполнены всего-то на Intel Core i7 (4 ядра) и Intel Xeon (8 ядер).
by @hw_code
Finally, differentiable programming!
Здесь бы картинку прикрепить, где чувак пробирку держит, но к сожалению я уже прикрепил другую снизу... Недавно наткнулся на еще один классный пример компьютерной графики, использующий дифференцируемое программирование.
Дифференцируемое программирование, это такая парадигма, в рамках которой любая программа может быть продифференцирована. И здесь мой дружок пирожок, тебе безусловно потребуется знание calculus. Хотя, конечно в рамках этой парадигмы язык обычно содержит т.н. автоматическое дифференцирование (это когда достаточно бахнуть
А речь пойдет о такой прекрасной численной схеме, позволяющей симулировать упругие тела... ммм... Сама по себе идея Material Point Method не нова, например вот тут есть прекрасная реализация данного метода в 2D на c++. Подобный метод, к слову, использовала студия Дисней в создании своих мультиков. Да и в принципе в компьютерной графике это всё очень часто используется.
Заметили ведь что примеры в ссылке выше слегка всратые? Отметим этот немаловажный пункт, чтобы вернуться к нему немного позже.
Так вот, данный метод позволяет оперировать частицами с некоторыми заданными положениями и скоростями, и отслеживать их эволюцию во времени. Из этих частиц можно создавать различные "материалы", например песок или воду, задав некоторые констреинты (например коэффициенты жесткости или связи между двумя соседними частицами).
Но китайцы в своей статье пошли еще дальше и запилили Moving Least Squares Material Point Method, принцип работы которого вы и можете наблюдать на гифке ниже. Кроме того, они еще и умудрились уместить данную симуляцию в 88 строк кода (спрятав под ковер еще 10к строк в хедере в инклудах).
Здесь внимательный читатель спросит, собсна, а причем тут дифференциальное че то там? Теперь вспомним пример выше. Изначальный метод содержал некоторые неприятные особенности, например тела в таких симуляциях нельзя было разрезать, да и сам метод плохо работал, если поле скоростей частиц содержало разрывы.
А дифференцируемость моделей позволила задействовать процедуры оптимизации вроде градиентного спуска, так что все начало сходиться к нормальному результату уже спустя всего лишь десяток итераций. Китайцы к слову бахнули свой собственный "язык" DiffTaichi (на самом деле считай "бэкенд" на с++ а "фронтэнд" на вашем любимом языке 🐍). А в Swift for TensorFlow, который я использую для работы, так и вообще автодифференцирование встроено по умолчанию.
Данный пример (ниже на гифке) кстати не требует установки всего языка, достаточно скачать их пример и собрать его с помощью g++.
by @hw_code
Здесь бы картинку прикрепить, где чувак пробирку держит, но к сожалению я уже прикрепил другую снизу... Недавно наткнулся на еще один классный пример компьютерной графики, использующий дифференцируемое программирование.
Дифференцируемое программирование, это такая парадигма, в рамках которой любая программа может быть продифференцирована. И здесь мой дружок пирожок, тебе безусловно потребуется знание calculus. Хотя, конечно в рамках этой парадигмы язык обычно содержит т.н. автоматическое дифференцирование (это когда достаточно бахнуть
gradient(of: ...)). Но всегда приятно примерно представлять о чем вообще речь то идет.А речь пойдет о такой прекрасной численной схеме, позволяющей симулировать упругие тела... ммм... Сама по себе идея Material Point Method не нова, например вот тут есть прекрасная реализация данного метода в 2D на c++. Подобный метод, к слову, использовала студия Дисней в создании своих мультиков. Да и в принципе в компьютерной графике это всё очень часто используется.
Заметили ведь что примеры в ссылке выше слегка всратые? Отметим этот немаловажный пункт, чтобы вернуться к нему немного позже.
Так вот, данный метод позволяет оперировать частицами с некоторыми заданными положениями и скоростями, и отслеживать их эволюцию во времени. Из этих частиц можно создавать различные "материалы", например песок или воду, задав некоторые констреинты (например коэффициенты жесткости или связи между двумя соседними частицами).
Но китайцы в своей статье пошли еще дальше и запилили Moving Least Squares Material Point Method, принцип работы которого вы и можете наблюдать на гифке ниже. Кроме того, они еще и умудрились уместить данную симуляцию в 88 строк кода (спрятав под ковер еще 10к строк в хедере в инклудах).
Здесь внимательный читатель спросит, собсна, а причем тут дифференциальное че то там? Теперь вспомним пример выше. Изначальный метод содержал некоторые неприятные особенности, например тела в таких симуляциях нельзя было разрезать, да и сам метод плохо работал, если поле скоростей частиц содержало разрывы.
А дифференцируемость моделей позволила задействовать процедуры оптимизации вроде градиентного спуска, так что все начало сходиться к нормальному результату уже спустя всего лишь десяток итераций. Китайцы к слову бахнули свой собственный "язык" DiffTaichi (на самом деле считай "бэкенд" на с++ а "фронтэнд" на вашем любимом языке 🐍). А в Swift for TensorFlow, который я использую для работы, так и вообще автодифференцирование встроено по умолчанию.
Данный пример (ниже на гифке) кстати не требует установки всего языка, достаточно скачать их пример и собрать его с помощью g++.
by @hw_code
Имплементация тригонометрических функций для программы «Аполлон 11»
Нижеприведенный код был написан Маргарет Хэмильтон в марте 1969, и использовался для вычисления тригонометрических функций, существенных для навигации командного и лунного посадочного модулей, первым высадивших людей на Луну.
Да, это та самая женщина, работавшая в НАСА и часто изображаемая с листингом её программного кода величиной в её рост 😎.
Кстати говоря, её строгий подход к программированию оказался настолько успешным, что неизвестно ни об одной программной ошибке, случавшейся во время пилотируемых миссий «Аполлон».
📌 Подробнее про код
👉 Также на гитхабе
by @hw_code
Нижеприведенный код был написан Маргарет Хэмильтон в марте 1969, и использовался для вычисления тригонометрических функций, существенных для навигации командного и лунного посадочного модулей, первым высадивших людей на Луну.
Да, это та самая женщина, работавшая в НАСА и часто изображаемая с листингом её программного кода величиной в её рост 😎.
Кстати говоря, её строгий подход к программированию оказался настолько успешным, что неизвестно ни об одной программной ошибке, случавшейся во время пилотируемых миссий «Аполлон».
📌 Подробнее про код
👉 Также на гитхабе
by @hw_code
Краткий обзор языков квантового программирования
Исторически первым таким языком стал язык QCL, или Quantum Computation Language (язык квантовых вычислений). Далее были попытки сделать ещё некоторые языки программирования для квантовых вычислений. На сегодняшний день глубокое развитие при поддержке государственных институтов Канады и США получил язык программирования Quipper, который основан на языке Haskell, дополняя его всем необходимым для решения специфических задач модели квантовых вычислений.
Как это ни странно, всё их множество также можно разделить на языки с императивной основой и на языки функциональные. Так, к императивным языкам квантового программирования относятся: квантовый псевдокод (это вообще был первый формализованный язык для квантового программирования, который, однако, остался только на бумаге), уже упомянутый QCL, затем язык Q и, наконец, язык qGCL (Quantum Guarded Command Language).
С другой стороны, к функциональным языкам квантового программирования относятся следующие: QFC и QPL (оба разработаны П. Селинджером, различаются только синтаксисом – первый является языком квантовых схем), QML (тоже, как ни странно, основан на языке Haskell), квантовое лямбда-исчисление и, собственно, язык Quipper.
Вся информация представлена также на таблице ниже. Однако, сюда не включены квантовые фреймворки на Python по типу [ссылка] или прочие изыски на других языках программирования, не получившие достаточного распространения.
by @hw_code
Исторически первым таким языком стал язык QCL, или Quantum Computation Language (язык квантовых вычислений). Далее были попытки сделать ещё некоторые языки программирования для квантовых вычислений. На сегодняшний день глубокое развитие при поддержке государственных институтов Канады и США получил язык программирования Quipper, который основан на языке Haskell, дополняя его всем необходимым для решения специфических задач модели квантовых вычислений.
Как это ни странно, всё их множество также можно разделить на языки с императивной основой и на языки функциональные. Так, к императивным языкам квантового программирования относятся: квантовый псевдокод (это вообще был первый формализованный язык для квантового программирования, который, однако, остался только на бумаге), уже упомянутый QCL, затем язык Q и, наконец, язык qGCL (Quantum Guarded Command Language).
С другой стороны, к функциональным языкам квантового программирования относятся следующие: QFC и QPL (оба разработаны П. Селинджером, различаются только синтаксисом – первый является языком квантовых схем), QML (тоже, как ни странно, основан на языке Haskell), квантовое лямбда-исчисление и, собственно, язык Quipper.
Вся информация представлена также на таблице ниже. Однако, сюда не включены квантовые фреймворки на Python по типу [ссылка] или прочие изыски на других языках программирования, не получившие достаточного распространения.
by @hw_code
Отсутствие одного «&» вызвало сбой в работе хромбуков
Из-за недавней ошибки в выпуске ChromeOS часть пользователей не смогла использовать свои хромбуки (вот интересно, их вообще кто-то использует, лол?).
В частности, как отметили в треде на Reddit, проблема, похоже, сводилась к отсутствию одного амперсанда в коде:
вместо
Это привело к тому, что обновленный ChromeOS не смог проверить пароли пользователей. Вот интересно, как данная «фича» вообще в прод попала в обход тестирования? Комментарии, как говорится, излишни.
ChromeOS обычно автоматически загружает обновления и затем переключается на новую версию после перезагрузки, вот поэтому пользователи, перезагрузившие свои устройства, внезапно столкнулись с их блокировкой.
Источник
@hw_code
Из-за недавней ошибки в выпуске ChromeOS часть пользователей не смогла использовать свои хромбуки (вот интересно, их вообще кто-то использует, лол?).
В частности, как отметили в треде на Reddit, проблема, похоже, сводилась к отсутствию одного амперсанда в коде:
if (key_data_.has_value() & !key_data_->label().empty()) {вместо
if (key_data_.has_value() && !key_data_->label().empty()) {Это привело к тому, что обновленный ChromeOS не смог проверить пароли пользователей. Вот интересно, как данная «фича» вообще в прод попала в обход тестирования? Комментарии, как говорится, излишни.
ChromeOS обычно автоматически загружает обновления и затем переключается на новую версию после перезагрузки, вот поэтому пользователи, перезагрузившие свои устройства, внезапно столкнулись с их блокировкой.
Источник
@hw_code
Лично для меня очень странно спрашивать такое у программиста, но допустим… Знакомы ли вы с комплексными числами?
Anonymous Poll
66%
Да, знаком с определением
17%
Да, знаю и применяю на практике
17%
Нет, я только про обеды знаю
Технологично и прогрессивно
увольняет сотрудников пермский стартап «Xsolla». На фото скрин письма СЕО данной «шарашки» – Александра Агапитова. Таким образом уволили уже 150 человек. Компания кстати работает в 200 странах и делает по 67 млн $ в год. Данный скрин кстати уже поднял кучу говна в этих ваших интернетах, от Пикабу и до каналов в телеграме.
И вот вроде бы что такого то? Людей увольняют постоянно, а тут хоть и уволили непонятно за что, но СЕО в другом сообщении уже обещал максимальный уровень поддержки: от компенсационных пакетов до привлечения кадровых агентств, чтобы следующий карьерный шаг уволенных был крутым и успешным.
Но осадочек какой-то все равно имеется, наверняка ведь никто не хотел выкладывать список уволенных в открытый доступ (который всё равно там оказался), чтобы никому репутацию не портить? Или это обиженный сотрудник всё слил? Что опять же нелогично, потому что данного сотрудника потом никто на работу не возьмет, по причине «нейронка сказала что ты лодырь и лентяй».
@hw_code
увольняет сотрудников пермский стартап «Xsolla». На фото скрин письма СЕО данной «шарашки» – Александра Агапитова. Таким образом уволили уже 150 человек. Компания кстати работает в 200 странах и делает по 67 млн $ в год. Данный скрин кстати уже поднял кучу говна в этих ваших интернетах, от Пикабу и до каналов в телеграме.
И вот вроде бы что такого то? Людей увольняют постоянно, а тут хоть и уволили непонятно за что, но СЕО в другом сообщении уже обещал максимальный уровень поддержки: от компенсационных пакетов до привлечения кадровых агентств, чтобы следующий карьерный шаг уволенных был крутым и успешным.
Но осадочек какой-то все равно имеется, наверняка ведь никто не хотел выкладывать список уволенных в открытый доступ (который всё равно там оказался), чтобы никому репутацию не портить? Или это обиженный сотрудник всё слил? Что опять же нелогично, потому что данного сотрудника потом никто на работу не возьмет, по причине «нейронка сказала что ты лодырь и лентяй».
@hw_code
Меня вынудили написать пост
Ну вынудили и вынудили... Так, о чем это я. А, вот. Помните тут недавно один иностранный ресурс стал доступен только по инвайтам. Многим в принципе всё равно на него, но я давно заметил что если хочешь нормально запускаться, то все эти ваши вц.ру или хабры это совсем не то что нужно.
Почему так? Главный минус ру комьюнити, а точнее их два, это неплатежеспособность и токсичность. Идею обосрут (даже, возможно, хорошую), да и смысла вообще покупать, если ломанут и выложат на какой нибудь 4пда. Стабильно, опять же, на канале со стартапами "тут" наблюдаю как минусуют питчи нормальных продуктов.
Я в принципе планировал там свои аппки продвигать ("когда" они выйдут, ха-ха), да и в целом никогда не знаешь потребуется ли тебе сообщество или нет, поэтому решил просто написать создателю на почту и попросить инвайт. И да, это работает, так просто. Вообще в принципе так и задумано, если ты адекватный, тебя пускают.
Поэтому вот совет, учите английский и постите свои продукты на нормальных площадках, реддит, индихакерс, продактхант и т.д. Там и советом помогут нормально, и позитивно встретят ваш продукт, а может даже и затраты окупите. И нервов будет меньше потрачено.
P.S. картинка просто в подтверждение моих слов, не хвастаюсь. Постов там все равно нет пока что.
by @hw_code
Ну вынудили и вынудили... Так, о чем это я. А, вот. Помните тут недавно один иностранный ресурс стал доступен только по инвайтам. Многим в принципе всё равно на него, но я давно заметил что если хочешь нормально запускаться, то все эти ваши вц.ру или хабры это совсем не то что нужно.
Почему так? Главный минус ру комьюнити, а точнее их два, это неплатежеспособность и токсичность. Идею обосрут (даже, возможно, хорошую), да и смысла вообще покупать, если ломанут и выложат на какой нибудь 4пда. Стабильно, опять же, на канале со стартапами "тут" наблюдаю как минусуют питчи нормальных продуктов.
Я в принципе планировал там свои аппки продвигать ("когда" они выйдут, ха-ха), да и в целом никогда не знаешь потребуется ли тебе сообщество или нет, поэтому решил просто написать создателю на почту и попросить инвайт. И да, это работает, так просто. Вообще в принципе так и задумано, если ты адекватный, тебя пускают.
Поэтому вот совет, учите английский и постите свои продукты на нормальных площадках, реддит, индихакерс, продактхант и т.д. Там и советом помогут нормально, и позитивно встретят ваш продукт, а может даже и затраты окупите. И нервов будет меньше потрачено.
P.S. картинка просто в подтверждение моих слов, не хвастаюсь. Постов там все равно нет пока что.
by @hw_code
Fileprivate vs private в Swift 5
Ключевые слова
Когда использовать fileprivate
Хотя данные ключевые слова практически идентичны, есть явная разница в вариантах их использования.
Когда использовать private
Ключевое слово
Как видно на картинке ниже, представление image view, объявленное
📝 Статья
@hw_code
Ключевые слова
fileprivate и private являются модификаторами доступа в Swift (наряду с internal, public, и open). Эти ключевые слова позволяют ограничить доступ к частям вашего проекта из кода в других исходных файлах и модулях.Когда использовать fileprivate
Хотя данные ключевые слова практически идентичны, есть явная разница в вариантах их использования.
Fileprivate ограничивает использование объекта в одном и том же исходном файле. Единственная причина, по которой вы будете использовать fileprivate – это когда вам нужно получить доступ к своему объекту в одном файле из разных классов или структур.Когда использовать private
Ключевое слово
private используется гораздо чаще и ограничивает использование объекта его объявлением и расширениями. Однако, расширения должны быть определены в одном файле. Другими словами, private объекты не будут видны вне файла. Вы можете использовать это ключевое слово, чтобы предоставить минимальный код, необходимый для взаимодействия с объектом.Как видно на картинке ниже, представление image view, объявленное
fileprivate, доступно в том же файле. Однако private image view недоступен, поскольку он виден только внутри самого объекта.📝 Статья
@hw_code