Обновить
24
Лев Рычковский@devlev

web-программист

3
Подписчики
Отправить сообщение

Моделируем вселенную: небесная механика наглядно

Время на прочтение8 мин
Охват и читатели23K


Давайте представим, что нам нужно запустить футбольный мяч на орбиту Земли. Никакие ракеты не нужны! Хватит горы, высотой 100 километров и недюжинной силы. Но насколько сильно нужно пнуть мяч, чтобы он никогда больше не вернулся на Землю? Как отправить мяч в путешествие к звёздам, имея только грубую силу и знание небесной механики?

Сегодня в программе:

  • Бесконечные возможности одной формулы
  • Как взять энергию у Юпитера
  • Откуда у планет берутся кольца
  • Как математика помогла открыть Нептун

Благо, мы живём в век компьютерных технологий. Нам не нужно забираться на высокую гору и пинать мяч со всей силы, всё можно смоделировать! Давайте приступим.
Читать дальше →

Пишем простой WYSIWYG-редактор с помощью ProseMirror

Время на прочтение7 мин
Охват и читатели10K
Когда в Sports.ru понадобился свой WYSIWYG-редактор, мы решили сделать его на основе библиотеки ProseMirror. Одной из ключевых особенностей этого инструмента является модульность и широкие возможности кастомизации, поэтому с его помощью можно очень тонко подогнать редактор под любой проект. В частности, ProseMirror уже используют в The New York Times и The Guardian. В этой статье мы расскажем о том, как с помощью ProseMirror написать свой WYSIWYG-редактор.

Пишем простой WYSIWYG-редактор с помощью ProseMirror
Читать дальше →

Async programming in .NET: Best practices

Время на прочтение24 мин
Охват и читатели39K
Появление async/await в C# привело к пересмотру того, как писать простой и корректный параллельный код. Зачастую, используя асинхронное программирование, программисты не только не решают проблемы, которые были с потоками, но и привносят новые. Дедлоки и рейсы никуда не пропадают — их просто становится труднее диагностировать.



Дмитрий Иванов — Software Analysis TeamLead в Huawei, в прошлом техлид JetBrains Rider и разработчик ядра ReSharper: структур данных, кэшей, многопоточности, регулярный спикер конференции DotNext.

Под катом — видеозапись и текстовая расшифровка доклада Дмитрия с конференции DotNext 2019 Piter.

Zip-файлы: история, объяснение и реализация

Время на прочтение76 мин
Охват и читатели122K


Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →

Самодельная подводная лодка с надводной wi-fi антенной

Время на прочтение8 мин
Охват и читатели69K

Как всё начиналось


Всех приветствую. Я Максим и хочу поделиться информацией о том, как собирал радиоуправляемую подводную лодку без каких-либо знаний об электронике в начале своего пути.



Сам я по образованию художник анимации и компьютерной графики — программированием или электроникой никогда не занимался. У меня имелся только небольшой запас знаний о пайке, которые передал мне мой дед, когда я еще был школьником начальных классов.

Всю жизнь меня интересовала тема подводных исследований, началось всё тогда же, в детстве, с Ж.И. Кусто, а закончилось разработкой игры про подледные океаны Европы. Но, впрочем, сейчас не об этом.

Решив, что пора увлечения перевести в плоскость практики — я отправился на Youtube. Получил горсть самых базовых знаний и дальше мой путь лежал уже на AliExpress, как и у многих. Закончилось всё покупкой 27-ми наименований различных модулей и прочих компонентов.



Сотрудник почтового отделения был очень недоволен когда искал 27 посылок…

Создание CI/CD-цепочки и автоматизация работы с Docker

Время на прочтение15 мин
Охват и читатели62K
Я написала мои первые сайты в конце 90-х. Тогда приводить их в рабочее состояние было очень просто. Был Apache-сервер на каком-нибудь общем хостинге, на этот сервер можно было войти по FTP, написав в браузерной строке нечто вроде ftp://ftp.example.com. Потом надо было ввести имя и пароль и выгрузить файлы на сервер. Другие были времена, всё тогда было проще, чем сейчас.



За прошедшие с тех пор два десятилетия всё изрядно изменилось. Сайты стали сложнее, их, перед выпуском в продакшн, надо собирать. Один единственный сервер стал множеством серверов, работающих за балансировщиками нагрузки, обычным делом стало использование систем контроля версий.

Для моего персонального проекта у меня была особая конфигурация. И я знала, что мне нужна возможность разворачивать сайт в продакшне, выполняя всего одно действие: запись кода в ветку master на GitHub. Я, кроме того, знала, что мне, для обеспечения работы моего маленького веб-приложения, не хочется заниматься управлением огромным кластером Kubernetes, или пользоваться технологией Docker Swarm, или поддерживать парк серверов с подами, агентами и всякими другими сложностями. Для того чтобы достичь цели по максимальному упрощению работы, мне понадобилось познакомиться с CI/CD.

Если у вас имеется маленький проект (в нашем случае речь идёт о Node.js-проекте) и вам хотелось бы узнать о том, как автоматизировать развёртывание этого проекта, сделав при этом так, чтобы то, что хранится в репозитории, в точности соответствовало бы тому, что работает в продакшне, то, полагаю, вас может заинтересовать эта статья.
Читать дальше →

Ошибки при работе с датой и временем в SQL Server

Время на прочтение24 мин
Охват и читатели102K

Какие английские слова IT-лексикона мы неправильно произносим чаще всего

Время на прочтение5 мин
Охват и читатели175K
Пока пара новых статей на технические темы еще в процессе написания, я решил опубликовать небольшой лингвистический материал. Достаточно часто замечаю, что коллеги, у которых английский язык — не родной, неправильно произносят некоторые характерные для IT сферы слова. И дело здесь не в том, насколько аутентично произносятся отдельные звуки, а именно в транскрипции. Регулярно встречал ситуации при общении с носителями, когда неправильно произносимое слово приводило к недопониманиям.

Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
Читать дальше →

Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

Время на прочтение19 мин
Охват и читатели842K

Как я пришел к покупке приточной вентиляции для квартиры с готовым ремонтом. Как купил ее за 150к и чуть не потратил деньги зря. Статья будет полезна тем, кто планирует купить очиститель воздуха, бризер или приточку.


Читать дальше →

Вентиляция с рекуперацией в квартире. Без воздуховодов и СМС

Время на прочтение7 мин
Охват и читатели123K
Написать этот пост меня подтолкнула недавняя статья о приточной вентиляции в квартире. Я было хотел оставить развёрнутый комментарий, но понял что правильнее будет написать статью, т.к. мой опыт использования комнатных рекуператоров в качестве основной системы вентиляции может быть интересен многим.


Это КДПВ блок рекуперации/регенерации. Надеюсь, ни у кого нет трипофобии?

Итак, всё началось с духоты. Точнее, с утепления квартиры слоем экструзионного пенополистирола по всему периметру (панельная 9-этажка родом из 80-х, с кучей сквозящих углов). В результате чего, квартира стала условно герметичной и вопрос свежего воздуха встал в полный рост.
Читать дальше →

Презумпция ума

Время на прочтение2 мин
Охват и читатели44K
Новое место работы. Все собеседования позади. Первый рабочий день. Тебя проводят к рабочему месту. Там уже стоит готовый к работе ноутбук. Ты открываешь крышку. Все, ты готов к работе. Твоя первая задача. К тебе подходит человек, который должен ввести тебя в курс дела. Он объясняет тебе, что нужно сделать: баг с фиксом в 3 строчки кода. Попутно тебе помогают настроить рабочий комп. И вот ты уже приступаешь к задаче и понимаешь, что как-то все не так…

Во-первых, для сборки фронтенда у нормальных людей давно уже используется Webapck, на худой конец Gulp. Неужели они ничего не слышали про Docker?! Они вообще не умеют писать на Python!? Да и зачем здесь в принципе Python, и почему он еще 2й версии!? Вот дебилы! (Здесь может быть любой WTF на ваш вкус).

Мысли свои озвучиваешь вслух. Но про дебилов молчишь, конечно, все-таки культурный человек. Но на лице все написано. А вообще должны и сами понимать. И вроде все правильно. И все по делу. Но…
Читать дальше →

Вредные советы или причины продолжить изучать английский после уровня Intermediate

Время на прочтение7 мин
Охват и читатели33K
Вчерашняя статья от worksolutions породила волну обсуждений, а мне хотелось бы поговорить немного о том почему все же не стоит останавливаться на уровне Intermediate и как побороть языковую «импотенцию» если вы уперлись в пределы своих возможностей и больше не прогрессируете.

Эта тема волнует меня в том числе и из-за моего бэкграунда — я сам начинал когда-то со школьной двойки в четверти по английскому языку, однако сейчас живу в Великобритании и смог, как мне кажется, помочь нескольким моим знакомым преодолеть языковые барьеры и поднять свой английский до вполне приличного разговорного уровня. Я также учу сейчас уже 6-й иностранный язык и ежедневно сталкиваюсь с проблемами «я не могу говорить», «мне не хватает словарного запаса» и «сколько можно заниматься чтобы наконец был прорыв».

КДПВ
Читать дальше →

Как оценить уровень владения английским языком

Время на прочтение4 мин
Охват и читатели133K


На Хабре много статей о том, как самостоятельно изучать английский язык. Но вот вопрос, а как оценить свой уровень при самостоятельном изучении? Понятно, что есть IELTS и TOEFL, но эти тесты почти никто не сдает без дополнительной подготовки и эти тесты, как говорят, оценивают не сколько уровень владения языком, а скорее умение проходить эти самые тесты. Да и использовать их для контроля самообучения будет накладно.

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →

Y-метод — действительно простой способ собрать кубик Рубика

Время на прочтение7 мин
Охват и читатели358K

Введение


В статье рассматривается «Y-метод» сборки кубика Рубика — его легко понять и запомнить. Он основан всего на одной последовательности, которая называется «Y-движение». Поняв этот алгоритм, вы навряд ли забудете как собрать кубик самостоятельно.
Читать дальше →

Запоминать, но не зубрить — учеба «по карточкам»

Время на прочтение4 мин
Охват и читатели44K
Метод изучения различных дисциплин «по карточкам», который еще называют системой Лейтнера, известен уже около 40 лет. Несмотря на то, что чаще всего он применяются, чтобы пополнить лексический запас, выучить формулы, определения или даты, сам метод — не просто очередной способ «зубрежки», а инструмент поддержки учебного процесса. Он позволяет сэкономить время, требующееся для запоминания большого объема информации.

Читать дальше →

Инструменты для разработчиков ПО: открытые фреймворки и библиотеки машинного обучения

Время на прочтение3 мин
Охват и читатели10K
Продолжаем нашу серию материалов, посвященных открытым инструментам для разработчиков. Сегодня рассказываем о фреймворках и библиотеках для МО — Transformers, Accord.NET и MLflow.

Читать дальше →

Выбираем платформу email-маркетинга: на что обращать внимание российским компаниям

Время на прочтение4 мин
Охват и читатели3.4K


Email-маркетинг – эффективный инструмент привлечения клиентов, и сегодня существует большое количество сервисов для почтовых рассылок. Проблема в том, что многие из них не подходят российским компаниям. Причин этого может быть много, так что сегодня мы поговорим о том, на что нужно обращать внимание при выборе инструмента email-маркетинга для российской компании.
Читать дальше →

Задача о трех горах, неуловимая теория ума и проблема периодизации детского развития

Время на прочтение6 мин
Охват и читатели67K


В прошлый раз мы немного затронули эгоцентрическую позицию ребенка в дошкольном детстве. Жан Пиаже в свое время выдвинул тезис, что ребенку дошкольного возраста в принципе свойственен эгоцентризм мышления – то есть он по умолчанию считает, что в голове у другого человека все происходит точно так же, как у него самого. Пользуясь более современным термином, Пиаже считал, что дошкольник не имеет теории ума, поэтому не способен учесть или принять чужую точку зрения. В обоснование этого он приводил результаты следующего эксперимента:

Ребенку предъявляется макет с тремя горами. Он имеет возможность рассмотреть его со всех сторон. Потом ребенка сажают на стул с одной стороны от макета, с другой стороны усаживается кукла. Экспериментатор показывает ребенку фотографии макета в четырех разных ракурсах и спрашивает, что видит кукла.

Примерно до семи лет испытуемые в этом эксперименте выбирали картинку с тем ракурсом, который видели сами.

Впоследствии Жана Пиаже немало ругали за то, как сильно он недооценил возможности детей дошкольного возраста – и как сильно переоценил продолжительность периода эгоцентрического мышления.

Откуда взялась эта ошибка?
Читать дальше →

RE: Боль и слёзы в Svelte 3

Время на прочтение9 мин
Охват и читатели20K

Вместо предисловия


Данный пост является ответом на вчерашнюю статью «Боль и слёзы в Svelte 3» и появился как следствие сильно «располневшего» комментария к оригинальной статье, который я решил оформить в виде поста. Ниже я буду использовать слово автор для отсылки к автору оригинальной статьи и позволю себе сделать некоторые уточнения по всем пунктам. Поехали!


Читать дальше →

Как этика стала самой дорогой проблемой Кремниевой долины, а философия — её самым практичным решением

Время на прочтение16 мин
Охват и читатели21K
Увлёкшись скоростью технического прогресса, люди совершили ошибку неопытного военачальника, чрезмерно растянувшего свои войска на марше: к авангарду цивилизации вопросов нет, но то, что осталось столь далеко позади, словно приколочено к прошлому — ненужное нужно выбрасывать, а нужное — поддерживать актуальным. Какой из этих вариантов следует применить к этике — разделу философии, посвящённому осмыслению вопросов нравственности?

Задвинутая, наряду с философией, под тегами «брехня, бесполезное», этика по важности не значимее этикета, и поэтому не рассматривается ни как фактор, оказывающий влияние на реальность, ни как источник поиска решений ряда весьма актуальных проблем — проблем, которые в чистом являются проблемами этики, но из-за отсутствия этики в публичном дискурсе, они остаются недовыявленными, недопонятыми и нерешёнными, пока издержки продолжают нарастать.



Само слово и понятие «этика» придумали древние греки для обозначения философии морали. Думаю, можно даже не касаясь природы самой морали согласиться с тем, что каждый дееспособный человек, так или иначе, обладает некой моралью, проявляющейся в его поведении и поступках даже если он этого не осознаёт. Иными словами, мораль — это не идея и не абстракция, мораль — это вполне реальный поведенческий феномен, наблюдаемый в каждом человеке; что делает вещественной и понятие общественной морали — основанной на совпадающих проявлениях морали в поведении большинства.

Поддержите новые публикации пожертвованием по ссылке money.yandex.ru/to/41001178171050 (карта, ЯД) или через кнопку «Отправить деньги» ниже (ЯД, PayPal)
Читать дальше →

Информация

В рейтинге
5 723-й
Откуда
Тула, Тульская обл., Россия
Зарегистрирован
Активность