Как стать автором
Обновить
17
0

Пользователь

Отправить сообщение

Водопровод в современной квартире

Время на прочтение11 мин
Количество просмотров79K

Здравствуйте! Тема ремонта актуальна для всех и во все времена. Я занимаюсь монтажом сантехники и знаю, что разобраться с нуля в этом деле довольно сложно. Но чтобы проконтролировать качество работ надо хоть немного разбираться в сантехнике. Я в краткой форме освятил ключевые моменты на которые нужно обращать внимание. Надеюсь, это будет полезная статья.

Читать далее
Всего голосов 190: ↑173 и ↓17+156
Комментарии366

Почему я перешёл с Python на Go: choose your fighter

Время на прочтение8 мин
Количество просмотров59K
Привет, Хабр! Меня зовут Саша, я бэкенд-разработчик в Ozon. Пишу платформу для контента, который генерят пользователи: отзывов, комментов, вопросов, ответов. Раньше я писал на Python. Выбрал его изначально из-за лёгкого синтаксиса и большого количества вакансий для Python-разработчиков — изи катка для входа в профессию. 

В один момент мне написали из Ozon: «П̶с̶с̶,̶ ̶п̶а̶р̶е̶н̶ь̶,̶ ̶п̶о̶к̶о̶д̶и̶т̶ь̶ ̶н̶а̶ ̶G̶o̶ ̶н̶е̶ ̶х̶о̶ч̶е̶ш̶ь̶?̶ Предлагаем переход на Golang с текущего стека, обучение за счёт компании».

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


Среди разработчиков бытует мнение, что язык вторичен. Мол, главное — уметь в computer science, а на чём писать — не так уж важно. Но так считают хардкорные разработчики, они вертят деревья, смотрят на всех свысока и зарабатывают 300кк в наносекунду. Я же программист-полукровка (без высшего технического образования, а ещё мои родители — маглы) и считаю, что смена языка — важный шаг и нужно хорошенько прикинуть, прежде чем в это вписываться. Будем откровенны, если у вас за плечами десять лет на плюсах, вряд ли вам предложат должность senior iOS-разработчика на Swift. Проблема в том, что каждый язык имеет свои особенности и на их изучение требуется время.
Читать дальше →
Всего голосов 61: ↑53 и ↓8+45
Комментарии131

До 11 и младше: вспомним предыдущие версии Windows

Время на прочтение14 мин
Количество просмотров26K

Выход Windows 11 — хороший повод вспомнить всю историю MS Windows длиной почти в 36 лет. Журналист PCMag Джон Дворак как-то пошутил, что когда Microsoft анонсировала Windows, у Стива Балмера еще были волосы (во что сложно поверить). 

Так что теперь, когда на Хабре уже обсудили новую версию, давайте вспомним предыдущие. Чтобы пост не вышел слишком длинным, пришлось описывать их кратко. Но если у вас есть что добавить, смело делайте это в комментариях.

А если текст вызовет прилив ностальгии, запустить первые версии Windows можно в эмуляторе на сайте PCjs Machines. Из-за пребывания на нём был немного сорван дедлайн сдачи этой статьи.

Ностальгировать
Всего голосов 31: ↑30 и ↓1+29
Комментарии45

Что же не так с ДЭГ в Москве?

Время на прочтение18 мин
Количество просмотров100K

Что же не так с ДЭГ в Москве


Последние три дня я занимался тем, что анализировал результаты ДЭГ в Москве по одномандатным округам в Госдуму. У меня есть некоторые результаты, которыми я бы хотел поделиться с общественностью. Однако основная цель этого поста — поделиться накопленными знаниями, чтобы кто-то ещё мог взглянуть на те данные, что лежат в блокчейне и перепроверить результаты.

Где лежат результаты и как их проверять


Часть исходного кода системы лежит в репозитории github.com/moscow-technologies/blockchain-voting_2021. Там лежит исходный код той части, которая про блокчейн, транзакции и тд, а также какой-то код фронтенда, написанный на JS. Отдельно отмечу некоторый забавный факт, что вместо общего репозитория со всем кодом там лежит несколько .tar.gz архивов, внутри которых уже есть код. В репозитории всего 4 коммита, сам код публиковали только 2 раза: 22 августа и 6 сентября. Никакой истории разработки у нас нет. Чтобы не приходилось распаковывать эти архивы — я залил распакованный репозиторий к себе на Github, можете читать код из браузера, если кому лень загружать и распаковывать самостоятельно: github.com/PeterZhizhin/blockchain-voting_2021_extracted

На сайте observer.mos.ru/all можно скачать дампы системы электронного голосования по одномандатным выборам, внутри которого будет лежать база с транзакциями, результаты расшифровки голосов и блоки в блокчейне. По кнопке “Скачать SQL дамп” загружается gz архив, внутри которого лежит один .sql файл.

Чтобы загрузить этот файл вам необходимо поднять у себя PostgreSQL базу. Я сделал это как-то вот так:
Читать дальше →
Всего голосов 380: ↑378 и ↓2+376
Комментарии321

Как посчитать синус быстро

Время на прочтение13 мин
Количество просмотров21K

... и точно. Точнее, с заданной точностью, простите за каламбур.

Под катом я расскажу, как сделать это с использованием школьного курса алгебры и целочисленной арифметики, при чём здесь полиномы Чебышёва I-го рода, и дам ссылки на примеры реализаций для ПК и Cortex-M3.

Читать далее
Всего голосов 54: ↑52 и ↓2+50
Комментарии53

Различные типы инвесторов и их мотивации

Время на прочтение9 мин
Количество просмотров23K
image

Автор: Аарон Харрис — инвестор, основатель Tutorspree, главный по раунду А в Y Combinator.

Если вы хотите привлечь деньги в ваш стартап, чрезвычайно важно понимать мотивации инвесторов. Раньше все было довольно просто — вы получали деньги от венчурных капиталистов (VC), а они взамен — крупный возврат инвестиционных затрат. Лучшие из инвесторов сосредотачивались на том, что делали по-настоящему успешно: инвестициях в технологические компании.

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

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

Одно большое различие в мотивации инвесторов, которое я решил в этой статье не рассматривать — это различие привилегированных и обыкновенных акционеров. Из этого вытекает целый ряд других вопросов, выходящих за рамки темы этой статьи, поэтому давайте предположим, что указанные ниже инвесторы владеют привилегированными акциями.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии2

Power-line communication. Часть 2 — Основные блоки устройства

Время на прочтение12 мин
Количество просмотров8.3K

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

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

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии26

Кому индивидуальных тренировок на основе ИИ?

Время на прочтение8 мин
Количество просмотров18K


Привет, Хабр! Мы тут заморочились вопросом о тренировках дома и погрузились в разработку фитнесс приложения (приложение для ios. P.S. После скачивания приложения и регистрации, для читателей habr есть возможность воспользоваться промо-кодом для 20 кратной скидки на годовую подписку).

Для начала давайте разберемся, что обычно прячется за маркетингом фитнесс приложений? Мы все чаще встречаем рекламу с главным предложением — скачай апп или пройди тест и получи персонализированный план тренировок. Но действительно ли эти тренировки будут соответствовать вашим параметрам? Неужели искусственный интеллект (ИИ) уже во всю используется в приложениях для фитнеса?

Давайте разбираться, как это работает.

Если вам когда-нибудь приходилось пользоваться фитнес приложением, то наверняка вы столкнулись с одним из следующих сценариев (постарайтесь вспомнить):

  1. Самый простой вариант. Вы регистрируетесь и просто выбираете один из трех уровней сложности: новичок, средний или продвинутый. Потом начинаете тренироваться и оказывается, что тренировки в целом не то чтобы хорошо вам подходят. В начале, конечно, вы рады, что вообще начали тренироваться и кажется даже потеете :) Но уже через недельку тренировки оказываются слишком легкими или слишком скучными. Да, можно перейти на следующий уровень сложности — но надолго ли хватит такой истории? Вы сами все понимаете.

    Ну и часто бывает, что вы выбрали уровень новичок (а вы последний раз приседали в школе на физкультуре, и то на скамейку запасных) — и вам прилетело 20 отжиманий… на одной руке… кхм (я почти не утрирую)



Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии62

До свидания, Google Fonts. Последний аргумент

Время на прочтение6 мин
Количество просмотров78K


Шрифты Google Fonts страшно популярны. Их загружают более 42,8 миллиона сайтов, в том числе Хабр. Библиотека Google Fonts содержит 1023 свободных шрифта и программные интерфейсы для их внедрения через CSS. Очень удобно, казалось бы.

Во многих статьях отмечалось, в какую цену обходятся многочисленные запросы через API. Совет самостоятельно хостить шрифты дают много лет. Даже сама Google давала такой совет на конференции Google I/O 2018 года в выступлении на тему веб-производительности.

Так почему же многие до сих пор загружают шрифты через Google Fonts API? Ну, был последний аргумент — кэширование. Мол, благодаря общему CDN пользователю не нужно скачивать шрифт заново с каждого сайта. Однако в октябре 2020 года этот аргумент перестал работать. Теперь шрифты Google Fonts больше не кэшируются!
Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии65

Мигель де Икаса: от Midnight Commander до Mono в .NET 5

Время на прочтение8 мин
Количество просмотров9.7K


Мигель де Икаса создал целый ряд громких проектов: GNOME, Mono, Xamarin, Midnight Commander… Для одних айтишников это человек-легенда, сделавший поразительно много для опенсорса и .NET-экосистемы. Другие ничего не знают о нём, но постоянно пользуются плодами его трудов.


На Хабре есть множество постов с его упоминанием, но не было поста о нём самом. А завтра Мигель выступит на нашей конференции DotNext, и я решил, что это отличный повод исправить ситуацию.


Как человек, создавший GNOME, мог оказаться в Microsoft? СЕО какого ключевого IT-проекта современности долго был его главным сподвижником? Почему Ричард Столлман назвал Мигеля «предателем сообщества свободного ПО», а некоторые другие говорят, что он всю жизнь занимается клонированием?

Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии12

И руки превращаются в VR-дисплей: изображение проецируется прямо на ладонь

Время на прочтение2 мин
Количество просмотров3.7K

Швейцарские и израильские ученые создали новый тип интерфейса для VR. Новый шлем виртуальной реальности позволяет увидеть изображение на ладони, используемой в качестве контроллера. Управлять элементами VR-приложения можно управлять простыми жестами — поворачиванием руки, сжиманием пальцев и т.п.
Всего голосов 18: ↑18 и ↓0+18
Комментарии3

В каких городах России нет карантина для приезжих

Время на прочтение5 мин
Количество просмотров43K

Зелёный — можно спокойно ехать, красный — нужно готовиться заранее (например, пропуск или анкета), чёрный — есть карантин или самоизоляция для приезжих, синий — есть нюансы. Изображение: Максим Яскевич, мой коллега в Туту.

В каких городах не нужно сидеть на карантине 14 дней, если вы хотите поехать на поезде или полететь на самолёте в гости к друзьям или родственникам. Ну или в командировку, но там обычно чуть более понятна ситуация до решения о поездке. Актуально на 5 июня и будет примерно до 8 июня 2020.

UPD: материал устарел, вот актуальный.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии31

Графический интерфейс на Python за 5 минут

Время на прочтение4 мин
Количество просмотров291K
image

Python легко использовать. В нем вы можете найти огромное количество библиотек для чего угодно. И это его основное преимущество. Из нескольких строк кода вы ничего не сделаете. Если вам нужны скрипты для личного пользования или для технически подкованной аудитории, то вам даже не придется думать о графическом интерфейсе.

Однако иногда ваша целевая аудитория не сильно подкована технически. Люди не против использовать ваши скрипты на Python до тех пор пока им не нужно смотреть на одну строку кода. В таком случае скриптов командной строки будет недостаточно. В идеале вам нужен графический интерфейс. Цель этого поста использовать только Python.

Библиотеки Python, которые можно использовать для графического интерфейса


По сути, есть 3 большие библиотеки Python для графического интерфейса; Tkinter, wxPython и PyQT. Рассматривая их, я не нашел там ничего из того, что мне нравится в Python. Библиотеки Python, как правило, очень хорошо абстрагируются от супер-технических моментов. Если бы мне нужно было работать с объектно-ориентированным программированием, я мог бы с таким же успехом загрузить Java или .Net.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии9

Python: коллекции, часть 4/4: Все о выражениях-генераторах, генераторах списков, множеств и словарей

Время на прочтение17 мин
Количество просмотров180K
Часть 1 Часть 2 Часть 3 Часть 4
imageЗаключительная часть моего цикла, посещенного работе с коллекциями. Данная статья самостоятельная, может изучаться и без предварительного изучения предыдущих.

Эта статья глубже и детальней предыдущих и поэтому может быть интересна не только новичкам, но и достаточно опытным Python-разработчикам.

imageБудут рассмотрены: выражения-генераторы, генераторы списка, словаря и множества, вложенные генераторы (5 вариантов), работа с enumerate(), range().
А также: классификация и терминология, синтаксис, аналоги в виде циклов и примеры применения.

Я постарался рассмотреть тонкости и нюансы, которые освещаются далеко не во всех книгах и курсах, и, в том числе, отсутствуют в уже опубликованных на Habrahabr статьях на эту тему.

Оглавление:


1. Определения и классификация.
2. Синтаксис.
3. Аналоги в виде цикла for и в виде функций.
4. Выражения-генераторы.
5. Генерация стандартных коллекций.
6. Периодичность и частичный перебор.
7. Вложенные циклы и генераторы.
8. Использование range().
9. Приложение 1. Дополнительные примеры.
10. Приложение 2. Ссылки по теме.
Изучаем детали, иллюстрации и примеры
Всего голосов 22: ↑21 и ↓1+20
Комментарии45

Сборка pgModeler

Время на прочтение3 мин
Количество просмотров16K
Однажды в студёную зимнюю... день понадобился мне бесплатный инструмент для проектирования баз данных. Такой, который бы ещё и скрипты умел генерировать. Очень нравится Visual Paradigm, но стоит он, конечно, как самолёт. Поэтому, вооружившись гуглом и советами знакомых разработчиков, отправился я на поиски.

В итоге набрёл на весьма неплохой инструмент pgModeler. Единственное, не очень понравилось, что sql-скрипты он умеет генерировать только для PostgreSQL. Но т.к. на тот момент (да и сейчас, а то и потом) использовалась эта база данных, то этого инструмента было вполне достаточно.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

Первые впечатления от перехода с Ubuntu 16.04 LTS на Ubuntu 18.04 LTS

Время на прочтение5 мин
Количество просмотров20K
Как известно, основное визуальное изменение в релизе 18 — это отказ от Unity и переход на Gnome 3. Здесь хочу поделиться своими впечатлениями от перехода с 16 на 18
Читать дальше →
Всего голосов 51: ↑20 и ↓31-11
Комментарии45

Митап SPB .NET Community #9

Время на прочтение2 мин
Количество просмотров4.5K
Хочу рассказать вам о первом в новом году митапе SPB .NET Community. Мы, отдохнув после праздников, снова взялись за подготовку интересных докладов по .NET темам и 9 февраля идем в гости к JetBrains, где парни будут рассказывать про архитектуру нового проекта Rider – кроссплатформенной C# IDE и трюки использования unmanaged памяти, реализованные в ReSharper 10.



Сразу приятная новость, если вы не из Санкт-Петербурга, но хотите послушать доклады, в этот раз мы организуем online-трансляцию. За подробностями и анонсами докладов прошу под кат.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Рекомендации по написанию кода на C# от Aviva Solutions

Время на прочтение40 мин
Количество просмотров79K
Представляю вашему вниманию перевод документа "Coding Guidelines for C# 3.0, 4.0 and 5.0".

Целью создания этого списка правил является попытка установить стандарты написания кода на C#, которые были бы удобными и практичными одновременно. Само собой, мы практикуем то, что создали. Эти правила являются одним из тех стандартов, которые лежат в основе нашей ежедневной работы в AvivaSolutions. Не все эти правила имеют четкое обоснование. Некоторые из них просто приняты у нас в качестве стандартов.

Статический анализатор кода VisualStudio (который также известен как FxComp) и StyleCop могут автоматически применять многие из правил кодирования и оформления путем анализа скомпилированных сборок. Вы можете сконфигурировать их таким образом, чтобы анализ производился во время компиляции или был неотъемлемой частью непрерывной или ежедневной сборки. Этот документ просто добавляет дополнительные правила и рекомендации, но его вспомогательный сайт www.csharpcodingguidelines.com предоставляет список правил анализа кода, необходимых в зависимости от того, с какой базой кода вы работаете.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии36

Анализ резюме с HeadHunter. Кто сколько зарабатывает и в каких отраслях работает

Время на прочтение11 мин
Количество просмотров98K
Недавно, на хакатоне от Petamelon нам в руки попал датасет с ~6 000 000 резюме с НН. Там, естественно, не было никаких персональных данных и контактов, но было много других интересных вещей: ожидаемая зарплата, возраст, пол, примерный адрес, образование и индустрии, в которых человек ищет работу. Было решено попробовать использовать эти данные в нашем проекте про выбор школ. Идея заключалась в том, чтобы определить в каких индустриях работают выпускники школ и сколько примерно зарабатывают. Но я, конечно, не удержался и построил кучу других бесполезных, но прикольных таблиц и графиков.

Распределение резюме по возрасту имеет интересную форму и как будто разделено на две части: до окончания института и после:


В Москве с возрастом ожидаемая зарплата выходит на плато в ~50 000 рублей:

Читать дальше →
Всего голосов 119: ↑106 и ↓13+93
Комментарии66

Типичные грабли на пути программиста от Junior'а к Senior'у

Время на прочтение6 мин
Количество просмотров98K
Молодой программист, едва закончивший или ещё даже не закончивший ВУЗ, готов свернуть горы, учиться, учиться и ещё раз учиться и ему близлежащее будущее кажется таким:



Но более опытные товарищи знают, что на самом деле на его пути давно уже заботливо разложены грабли и путь от Junior'а к Senior'у выглядит как-то так:



Давайте вспомним некоторые типичные грабли, на которые мы все (ну или большинство) наступали сами того не замечая. Конечно, для опытных разработчиков многое покажется очевидным капитанством, однако молодых специалистов такие ловушки могут легко увести на темную сторону силы.
Читать дальше →
Всего голосов 68: ↑55 и ↓13+42
Комментарии73
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность