Pull to refresh
17
0.2

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

Send message

Программирование — искусство?

Level of difficultyEasy
Reading time3 min
Views1.9K

Спойлер: да. Потому что искусство, на мой взгляд, это что-то искусственное. То есть рукотворное. Соответственно, искусством можно назвать как мазню на стенах, так и сами стены.

А всё же поразмышляем обо всём этом
Total votes 11: ↑5 and ↓6+3
Comments38

Как я постепенно избавляюсь от контроля Google

Level of difficultyEasy
Reading time9 min
Views60K

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

Мне кажется, прежде, чем приступать, нужно дать важное предисловие. Во-первых, эти заметки сделаны по личному опыту, это не подробный обзор альтернатив сервисам Google, сравнения альтернативных решений можете поискать где-нибудь ещё. Во-вторых, для использования некоторых из упомянутых в статье альтернатив требуется настройка своего сервера, что для многих людей станет ограничивающим требованием.
Читать дальше →
Total votes 68: ↑58 and ↓10+69
Comments201

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

Reading time11 min
Views87K

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

Читать далее
Total votes 147: ↑130 and ↓17+156
Comments366

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

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

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

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


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

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

Reading time14 min
Views29K

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

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

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

Ностальгировать
Total votes 23: ↑22 and ↓1+29
Comments45

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

Reading time18 min
Views101K

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


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

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


Часть исходного кода системы лежит в репозитории 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 базу. Я сделал это как-то вот так:
Читать дальше →
Total votes 297: ↑295 and ↓2+376
Comments321

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

Reading time13 min
Views22K

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

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

Читать далее
Total votes 38: ↑36 and ↓2+50
Comments53

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

Reading time9 min
Views23K
image

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

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

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

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

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

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

Reading time12 min
Views8.7K

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

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

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments26

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

Reading time8 min
Views19K


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

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

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

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

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

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



Читать дальше →
Total votes 10: ↑7 and ↓3+7
Comments62

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

Reading time6 min
Views81K


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

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

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

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

Reading time8 min
Views9.8K


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


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


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

Читать дальше →
Total votes 71: ↑71 and ↓0+71
Comments12

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

Reading time2 min
Views3.9K

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

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

Reading time5 min
Views44K

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

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

UPD: материал устарел, вот актуальный.
Читать дальше →
Total votes 24: ↑21 and ↓3+26
Comments31

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

Reading time4 min
Views301K
image

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

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

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


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

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

Reading time17 min
Views188K
Часть 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. Ссылки по теме.
Изучаем детали, иллюстрации и примеры
Total votes 22: ↑21 and ↓1+20
Comments45

Сборка pgModeler

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

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

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

Reading time5 min
Views20K
Как известно, основное визуальное изменение в релизе 18 — это отказ от Unity и переход на Gnome 3. Здесь хочу поделиться своими впечатлениями от перехода с 16 на 18
Читать дальше →
Total votes 51: ↑20 and ↓31-11
Comments45

Митап SPB .NET Community #9

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



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

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

Reading time40 min
Views81K
Представляю вашему вниманию перевод документа "Coding Guidelines for C# 3.0, 4.0 and 5.0".

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

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

Information

Rating
2,698-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity