Имеет ли смысл 80-символьная длина строки в 2020 году?
Одна из самых старых практик кодирования – поддерживать 80-символьную длину строки, и многие из нас следуют ей вслепую. Однако, задумывались ли вы когда-нибудь, почему мы ставим это правило на первое место?
#совершенный_код
Одна из самых старых практик кодирования – поддерживать 80-символьную длину строки, и многие из нас следуют ей вслепую. Однако, задумывались ли вы когда-нибудь, почему мы ставим это правило на первое место?
#совершенный_код
Метод бисекции
Не так давно мы рассматривали один из численных методов решения нелинейных алгебраических уравнений, а именно, метод касательных. Сегодня рассмотрим еще один метод.
Метод бисекции, или метод деления отрезка пополам – один из наиболее простых методов решения уравнений вида
Это не обязательно должны быть точные предположения, но они обязательно должны быть по обе стороны от корня. Пусть стартовая точка с левой стороны будет
Сравним знаки
Теперь точки
by @hw_code
Не так давно мы рассматривали один из численных методов решения нелинейных алгебраических уравнений, а именно, метод касательных. Сегодня рассмотрим еще один метод.
Метод бисекции, или метод деления отрезка пополам – один из наиболее простых методов решения уравнений вида
f(x) = 0. Чтобы использовать этот метод для поиска корня, следует начать с двух стартовых точек по обе стороны от предполагаемого корня.Это не обязательно должны быть точные предположения, но они обязательно должны быть по обе стороны от корня. Пусть стартовая точка с левой стороны будет
a, а с правой b. Затем найдем значение функции в средней точке x между a и b.Сравним знаки
f(x) и f(a): если знаки разные, то корень должен находиться между a и x, поэтому пусть b = x. Если знаки одинаковые, то корень должен находиться между x и b, поэтому пусть a = x.Теперь точки
a и b таковы, что решение по-прежнему находится между ними, но они вдвое меньше! Повторим эту процедуру до тех пор, пока разность между a и b не будет меньше заданной точности eps.by @hw_code
Пятничная подборка полезных статей
В эту подборку попали не только русскоязычные статьи, но и некоторые англоязычные, но не менее интересные. Старался сильно по темам не прыгать, собирая самое релевантное.
1️⃣ Интересная статья на тему сжатия с потерями – попробуйте реализовать свой собственный JPEG!
2️⃣ Пространство имен и local/global в Python, полезная штука для начинающих.
3️⃣ Разница между передачей по ссылке и по значению.
4️⃣ Лекции по численному Python: NumPy, SciPy, SymPy.
5️⃣ Немножко работы с telethon по этой ссылке.
6️⃣ О дата саенсе можно почитать, например, в заметках дата саентиста.
Кстати, если вы еще не в курсе, сейчас идет одна интересная игра для хакеров, о которой все только и говорят.
Hello World 💻
В эту подборку попали не только русскоязычные статьи, но и некоторые англоязычные, но не менее интересные. Старался сильно по темам не прыгать, собирая самое релевантное.
1️⃣ Интересная статья на тему сжатия с потерями – попробуйте реализовать свой собственный JPEG!
2️⃣ Пространство имен и local/global в Python, полезная штука для начинающих.
3️⃣ Разница между передачей по ссылке и по значению.
4️⃣ Лекции по численному Python: NumPy, SciPy, SymPy.
5️⃣ Немножко работы с telethon по этой ссылке.
6️⃣ О дата саенсе можно почитать, например, в заметках дата саентиста.
Кстати, если вы еще не в курсе, сейчас идет одна интересная игра для хакеров, о которой все только и говорят.
Hello World 💻
Forwarded from Russian Hackers | Хакатоны
Build For Belarus
• Описание: онлайн-хакатон в поддержку Беларуси. Прими участие в разработке технологических решений для коммуникации, безопасности, медицины и поддержки пострадавших.
• Ссылка: http://rhck.me/buildforbelarus
• Даты проведения: 14 - 16 августа
• Место проведения: online
#BuildforBelarus #hackathon @RussianHackers_Channel
• Описание: онлайн-хакатон в поддержку Беларуси. Прими участие в разработке технологических решений для коммуникации, безопасности, медицины и поддержки пострадавших.
• Ссылка: http://rhck.me/buildforbelarus
• Даты проведения: 14 - 16 августа
• Место проведения: online
#BuildforBelarus #hackathon @RussianHackers_Channel
Russian Hackers | Хакатоны
Build For Belarus • Описание: онлайн-хакатон в поддержку Беларуси. Прими участие в разработке технологических решений для коммуникации, безопасности, медицины и поддержки пострадавших. • Ссылка: http://rhck.me/buildforbelarus • Даты проведения: 14 - 16…
Это не реклама, выражаю слова поддержки всем протестующим. Жыве Беларусь!
Понедельничный лонгрид
Сегодня поговорим о такой вещи как криотроника.
Сразу после Второй мировой войны инженеры столкнулись с фундаментальным, но все еще открытым вопросом: как строить электронные цифровые компьютеры? Какой тип переключателей лучше всего подходит для логических схем? А что использовать для основной памяти?
К чему они все таки пришли, мы уже знаем: сначала использовали транзисторы, а уже затем – интегральные схемы, как для реализации логики, так и для памяти. Но в 1950-1960-х гг. различные группы инженеров искали принципиально новые пути для создания цифровых компьютеров.
Одним из самых оригинальных исследователей был Дадли Аллен Бак, который работал в Массачусетском технологическом институте с 1950 года до своей внезапной смерти в 1959 году в возрасте 32 лет. Он сделал важный вклад в области создания микросхем, а также он изобрел «криотрон», сверхпроводящий переключатель.
Бак надеялся что криотрон станет фундаментальным строительным блоком для цифровых компьютеров будущего. Вдохновленные видением Бака, GE, IBM, RCA и военные США в конце 1950-х - начале 1960-х годов развернули крупные исследовательские программы по криотронам, прежде чем переключиться на кремниевые микрочипы для компьютерной логики и памяти.
К 1954 году Бак обратил внимание на еще более интересное свойство электромагнетизма, обнаруженное при низких температурах: сверхпроводимость. Это явление, в принципе, уже было изучено ранее. С начала XX века физикам было известно, что при охлаждении до температур, близких к температуре кипения жидкого гелия, некоторые металлы полностью теряют свое электрическое сопротивление.
В явлении сверхпроводимости существует т.н. эффект Мейснера. Сверхпроводник, помещенный в магнитное поле, начинает это поле выталкивать (поэтому магнит и левитирует в видосиках на ютубе) – но лишь до определенного момента. Если приложить достаточно сильное магнитное поле, материал почти мгновенно переходит в резистивное состояние. А если магнитное поле убрать, материал возвращается обратно в сверхпроводящее состояние.
Бак увидел потенциал этого явления для электронных цифровых компьютеров: можно создать сверхпроводящий переключатель с магнитным управлением. Подобный сверхпроводящий переключатель может быть очень компактным, быстрым и энергоэффективным.
В духе футуризма 1950-х он и назвал свое изобретение криотроном — смесь слов cryo (ϰρύος, греч. «ледяной холод, мороз») и electronics.
Несмотря на все эти исследования, быстрое развитие кремниевых микрочипов — в частности, их удешевление — в 1960-х годах перекрыло прогресс в изучении криотронов. Новые компьютеры строились на кремниевых логических схемах с памятью на магнитных сердечниках. К середине 1960-х большинство исследователей криотронов окончательно переключили свое внимание на кремний.
Однако, изобретение Бака на самом деле пережило своего творца, и элементы криотрона используются например при создании сверхпроводящих кубитов в квантовых компьютерах.
А модифицированные криотроны, известные науке как «джозефсоновские переходы», до сих пор являются краеугольным камнем современных исследований IBM и других компаний в области квантовых вычислений.
Оригинальная статья
На фото для сравнения изображены вакуумная лампа, транзистор и прототип криотрона тех времен.
Hello World 💻
Сегодня поговорим о такой вещи как криотроника.
Сразу после Второй мировой войны инженеры столкнулись с фундаментальным, но все еще открытым вопросом: как строить электронные цифровые компьютеры? Какой тип переключателей лучше всего подходит для логических схем? А что использовать для основной памяти?
К чему они все таки пришли, мы уже знаем: сначала использовали транзисторы, а уже затем – интегральные схемы, как для реализации логики, так и для памяти. Но в 1950-1960-х гг. различные группы инженеров искали принципиально новые пути для создания цифровых компьютеров.
Одним из самых оригинальных исследователей был Дадли Аллен Бак, который работал в Массачусетском технологическом институте с 1950 года до своей внезапной смерти в 1959 году в возрасте 32 лет. Он сделал важный вклад в области создания микросхем, а также он изобрел «криотрон», сверхпроводящий переключатель.
Бак надеялся что криотрон станет фундаментальным строительным блоком для цифровых компьютеров будущего. Вдохновленные видением Бака, GE, IBM, RCA и военные США в конце 1950-х - начале 1960-х годов развернули крупные исследовательские программы по криотронам, прежде чем переключиться на кремниевые микрочипы для компьютерной логики и памяти.
К 1954 году Бак обратил внимание на еще более интересное свойство электромагнетизма, обнаруженное при низких температурах: сверхпроводимость. Это явление, в принципе, уже было изучено ранее. С начала XX века физикам было известно, что при охлаждении до температур, близких к температуре кипения жидкого гелия, некоторые металлы полностью теряют свое электрическое сопротивление.
В явлении сверхпроводимости существует т.н. эффект Мейснера. Сверхпроводник, помещенный в магнитное поле, начинает это поле выталкивать (поэтому магнит и левитирует в видосиках на ютубе) – но лишь до определенного момента. Если приложить достаточно сильное магнитное поле, материал почти мгновенно переходит в резистивное состояние. А если магнитное поле убрать, материал возвращается обратно в сверхпроводящее состояние.
Бак увидел потенциал этого явления для электронных цифровых компьютеров: можно создать сверхпроводящий переключатель с магнитным управлением. Подобный сверхпроводящий переключатель может быть очень компактным, быстрым и энергоэффективным.
В духе футуризма 1950-х он и назвал свое изобретение криотроном — смесь слов cryo (ϰρύος, греч. «ледяной холод, мороз») и electronics.
Несмотря на все эти исследования, быстрое развитие кремниевых микрочипов — в частности, их удешевление — в 1960-х годах перекрыло прогресс в изучении криотронов. Новые компьютеры строились на кремниевых логических схемах с памятью на магнитных сердечниках. К середине 1960-х большинство исследователей криотронов окончательно переключили свое внимание на кремний.
Однако, изобретение Бака на самом деле пережило своего творца, и элементы криотрона используются например при создании сверхпроводящих кубитов в квантовых компьютерах.
А модифицированные криотроны, известные науке как «джозефсоновские переходы», до сих пор являются краеугольным камнем современных исследований IBM и других компаний в области квантовых вычислений.
Оригинальная статья
На фото для сравнения изображены вакуумная лампа, транзистор и прототип криотрона тех времен.
Hello World 💻
Мы уже давно, всей админкой, угораем с мемов на профункторе, а у них так же относительно недавно появился канал, @profunctor_jobs, с самыми годными вакухами для разрабов!
Все вакансии проходят тщательный отбор а описание не сожержит ничего лишнего, только должность, стэк технологий и зп (всегда только 10к+$/с.).
Так что подписывайтесь на @profunctor_jobs, там действительно много годных вакансий, которых нет ни на одной другой площадке, а если хотите разместить свою, то это можно сделать бесплатно, но пройдя тщательную модерацию!
Все вакансии проходят тщательный отбор а описание не сожержит ничего лишнего, только должность, стэк технологий и зп (всегда только 10к+$/с.).
Так что подписывайтесь на @profunctor_jobs, там действительно много годных вакансий, которых нет ни на одной другой площадке, а если хотите разместить свою, то это можно сделать бесплатно, но пройдя тщательную модерацию!
SymPy
SymPy — это библиотека, которую следует использовать при работе с символьной математикой в Python. Она полностью написана на Python и имеет опциональные расширения для ускорения работы, а также построения графиков и интерактивных сессий.
Символьные функции SymPy работают с объектами SymPy, такими как символы, функции и выражения, для создания других символьных выражений, например так:
Их можно интегрировать как символьно, так и численно:
#sympy
SymPy — это библиотека, которую следует использовать при работе с символьной математикой в Python. Она полностью написана на Python и имеет опциональные расширения для ускорения работы, а также построения графиков и интерактивных сессий.
Символьные функции SymPy работают с объектами SymPy, такими как символы, функции и выражения, для создания других символьных выражений, например так:
>>> import sympy as sym>>> x = sym.Symbol('x')>>> f = sym.exp(-x**2/2) / sym.sqrt(2 * sym.pi)>>> fsqrt(2)*exp(-x**2/2)/(2*sqrt(pi))Их можно интегрировать как символьно, так и численно:
>>> sym.integrate(f, x)erf(sqrt(2)*x/2)/2>>> sym.integrate(f, (x, -1, 1))erf(sqrt(2)/2)>>> sym.N(_)0.682689492137086#sympy
Насколько хорошо нейросети могут "воспроизводить" физику?
Это действительно интересный вопрос. В честной симуляции физики жидкости вам бы потребовалось решать уравнения Навье-Стокса (вязкая, сжимаемая жидкость), которые в наиболее полном своем виде конечно довольно сложны.
Для их решения требуется бóльшая вычислительная мощность, нежели для вычисления предсказания в машинном обучении, с которым справится любой GPU с достаточным количеством ядер.
Возвращаясь к исходному вопросу, отвечу: достаточно хорошо. С помощью модели "Graph Network-based Simulators" (GNS) можно симулировать жидкость, песок, и даже вязкое тело. Более того, обучив модель на небольшом числе частиц, можно потом делать предсказания и для бóльшего числа частиц!
🌊 Ссылка на видео:
Смотреть видео
📝 Исходная статья "Learning to Simulate Complex Physics with Graph Networks" вместе с примерами работы алгоритма доступна по ссылкам:
Статья
Примеры работы алгоритма
@hw_code
Это действительно интересный вопрос. В честной симуляции физики жидкости вам бы потребовалось решать уравнения Навье-Стокса (вязкая, сжимаемая жидкость), которые в наиболее полном своем виде конечно довольно сложны.
Для их решения требуется бóльшая вычислительная мощность, нежели для вычисления предсказания в машинном обучении, с которым справится любой GPU с достаточным количеством ядер.
Возвращаясь к исходному вопросу, отвечу: достаточно хорошо. С помощью модели "Graph Network-based Simulators" (GNS) можно симулировать жидкость, песок, и даже вязкое тело. Более того, обучив модель на небольшом числе частиц, можно потом делать предсказания и для бóльшего числа частиц!
🌊 Ссылка на видео:
Смотреть видео
📝 Исходная статья "Learning to Simulate Complex Physics with Graph Networks" вместе с примерами работы алгоритма доступна по ссылкам:
Статья
Примеры работы алгоритма
@hw_code
Сегодня у нас на повестке дня один довольно таки интересный сниппет и одна полезная либа. Начнем по порядку.
📌 У многих людей, которые переходят с какого нибудь компилируемого языка на Python возникает этот вопрос: а как же все таки реализовать
📌 Недавно наткнулся на либу для преобразования формул в привычный для человека вид (работает в среде jupyter с помощью магического слова %%render). Теперь можно писать формулы на Python и сразу же выводить их в jupyter в человеческом виде. Либо даже оборачивать целые функции. Есть возможность вывода формул в latex, что может быть особенно полезно людям, занимающимся научными расчетами.
Теперь можно накатить SymPy, handcalcs и кайфовать от мысли что Mathematica больше не нужна. Ура.
📌 У многих людей, которые переходят с какого нибудь компилируемого языка на Python возникает этот вопрос: а как же все таки реализовать
switch case? Так вот, один мой знакомый любитель языка Rust недавно поделился в группе своей реализацией switch case для языка Python. Надеюсь будет полезно.📌 Недавно наткнулся на либу для преобразования формул в привычный для человека вид (работает в среде jupyter с помощью магического слова %%render). Теперь можно писать формулы на Python и сразу же выводить их в jupyter в человеческом виде. Либо даже оборачивать целые функции. Есть возможность вывода формул в latex, что может быть особенно полезно людям, занимающимся научными расчетами.
Теперь можно накатить SymPy, handcalcs и кайфовать от мысли что Mathematica больше не нужна. Ура.
master vs main
В Github решили отказаться от названия
Таким образом, с 1 октября 2020 года любые новые репозитории, которые создаются, будут использовать в качестве ветки по умолчанию
Непонятно правда, как вообще это поможет бороться с расизмом... Что думаете по поводу этих изменений?
В Github решили отказаться от названия
master в пользу "менее расистского" main. Говорят, что таким образом хотят избежать ненужных ассоциаций с рабством на волне black lives matter.Таким образом, с 1 октября 2020 года любые новые репозитории, которые создаются, будут использовать в качестве ветки по умолчанию
main вместо master.Непонятно правда, как вообще это поможет бороться с расизмом... Что думаете по поводу этих изменений?
📝 Подготовил для вас специальный ноутбук
Сделал все чисто по доброте душевной (никакой рекламы или курсов) заодно подтянув основы языка. Предлагаю теперь и вам. Для полноценного погружения рекомендую залогиниться в сам колаб через сервисы гугла, хотя это и не обязательно, по ссылке можно сразу изучать код и выполнять ячейки:
Смотреть ноутбук
Кстати, создать подобный ноутбук самостоятельно можно например с помощью ссылки:
Создать ноутбук
@hw_code
.ipynb по Swift. Будем изучать так сказать "платформонезависимую" часть языка. Да, может кого-то из вас это удивит, но google colab имеет свой Swift kernel. Даже есть tensorflow под него.Сделал все чисто по доброте душевной (никакой рекламы или курсов) заодно подтянув основы языка. Предлагаю теперь и вам. Для полноценного погружения рекомендую залогиниться в сам колаб через сервисы гугла, хотя это и не обязательно, по ссылке можно сразу изучать код и выполнять ячейки:
Смотреть ноутбук
Кстати, создать подобный ноутбук самостоятельно можно например с помощью ссылки:
Создать ноутбук
@hw_code
И тут эти ваши лазеры засветились...
Наткнулся тут на интересную статью о фотолитографии в глубоком ультрафиолете (EUV). Каждый такой аппарат – это технологическое чудо. Внутри него каждую секунду 50 000 капель расплавленного олова падают через камеру в её основании. Мощный лазер взрывает каждую каплю дважды. Первый импульс формирует необходимую форму капельки, а второй превращает его в плазму.
Плазма испускает глубокое ультрафиолетовое (EUV) излучение, которое фокусируется в пучок и отражается через серию зеркал. Зеркала отшлифованы настолько гладко, что, если их расширить до размера Германии, то на поверхности не будет выпуклостей больше миллиметра.
Наконец, EUV попадает на кремниевую подложку с точностью, эквивалентной выстрелу с Земли стрелой в яблоко, расположенное на Луне. Это позволяет создавать транзисторы размером всего пять нанометров.
Эта подложка с миллиардами или триллионами транзисторов в конечном итоге превращается в известные вам компьютерные чипы, например intel или amd.
@hw_code
Наткнулся тут на интересную статью о фотолитографии в глубоком ультрафиолете (EUV). Каждый такой аппарат – это технологическое чудо. Внутри него каждую секунду 50 000 капель расплавленного олова падают через камеру в её основании. Мощный лазер взрывает каждую каплю дважды. Первый импульс формирует необходимую форму капельки, а второй превращает его в плазму.
Плазма испускает глубокое ультрафиолетовое (EUV) излучение, которое фокусируется в пучок и отражается через серию зеркал. Зеркала отшлифованы настолько гладко, что, если их расширить до размера Германии, то на поверхности не будет выпуклостей больше миллиметра.
Наконец, EUV попадает на кремниевую подложку с точностью, эквивалентной выстрелу с Земли стрелой в яблоко, расположенное на Луне. Это позволяет создавать транзисторы размером всего пять нанометров.
Эта подложка с миллиардами или триллионами транзисторов в конечном итоге превращается в известные вам компьютерные чипы, например intel или amd.
@hw_code
Программируя, я чаще всего пользуюсь:
Anonymous Poll
21%
Декларативным стилем
20%
Императивным стилем
59%
Лол что