Pull to refresh
23
Karma
0
Rating

User

Что такое LLVM и зачем он нужен?

Reading time 9 min
Views 59K
Huawei corporate blog C++ *System Programming *Compilers *C *

Всем привет! Думаю, у многих сразу возник другой вопрос — а зачем вообще нужна ещё одна статья про LLVM, ведь на хабре их и так больше сотни? Моей задачей было написать "введение в тему" for the rest of us — профессиональных разработчиков, не планирующих создавать компиляторы и совершенно не интересующихся особенностями устройства LLVM IR. Насколько я знаю, подобного ещё не было.


Главное, что интересует практически всех — и о чём я планирую рассказать — вынесено в заголовок статьи. Зачем нужен LLVM, когда есть GCC и Visual C++? А если вы не программируете на C++, вам стоит беспокоиться? И вообще, LLVM это Clang? Или нет? И что эти четыре буквы на самом деле означают?

Читать дальше →
Total votes 129: ↑124 and ↓5 +119
Comments 136

«Правила роста: от джуниора до CTO», конспект вебинара Фёдора Борщёва

Reading time 6 min
Views 12K
IT career

Фёдор Борщёв — CTO в маркетплейсе стройматериалов «ГдеМатериал», сооснователь rumetr.com и популяризатор чистоты кода. Пишет в блог, телеграм-канал @pmdaily и в советы о разработке в Бюро Гобрунова.


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


За три часа Фёдор прошёлся по темам:


  • управление проектами;
  • общение с людьми;
  • продукт и бизнес;
  • личные цели.

Читать дальше →
Total votes 26: ↑18 and ↓8 +10
Comments 18

Шизотипическое расстройство: взгляд изнутри

Reading time 16 min
Views 271K
Brain Health


На Хабре уже писали о различных расстройствах, но как-то так получается, что тема шизотипического расстройства остается не раскрытой. Да и в сети сложно найти информацию для широкого круга людей по этой теме. Часто можно встретить много раз скопированные копирайтерами тексты со множеством неточностей и откровенными мифами, а еще чаще — полную противоположность, заумные тексты, написанные врачами для врачей. Так, согласно DSM, шизотипическое расстройство — это демонстрация пациентом первазивной модели социального и межличностного дефицита, отмеченного острым дискомфортом и сниженной способностью к формированию близких отношений, который испытывает когнитивное и перцептивное искажение, а также проявляет эксцентричность в поведении, начинающеюся с ранней юности и представленную в различных контекстах. Если вы ни слова из этого не поняли — добро пожаловать под кат. Сегодня мы посмотрим, как все это выглядит изнутри.

Читать дальше →
Total votes 168: ↑165 and ↓3 +162
Comments 284

Почему с ростом компании разработчики, стоявшие у истоков, оказываются «за бортом»

Reading time 6 min
Views 59K
Crossover corporate blog Project management *Personnel Management *IT career
Несколько недель назад мы подняли тему «эффективного» менеджмента, которая вызвала немало споров в комментариях. Но у любого массового корпоративного явления есть свои первопричины. В нашем случае — это рост компании.

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



Все это очень сильно бьет по эго и самооценке. Почему это происходит? Как с этим справиться? И надо ли справляться? Давайте разбираться вместе.
Читать дальше →
Total votes 91: ↑83 and ↓8 +75
Comments 198

Как стать датасайнтистом, если тебе за 40 и ты не программист

Reading time 8 min
Views 144K
QIWI corporate blog Data Mining *Machine learning *Studying in IT IT career
Бытует мнение, что стать датасайентистом можно только имея соответствующее высшее образование, а лучше ученую степень.

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

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



Сейчас я ведущий аналитик в группе больших данных в QIWI, но еще три года назад я был довольно далек от датасайнс и об искусственном интеллекте слышал только из новостей. Но потом все изменилось, во многом благодаря Coursera и Kaggle.

Итак, обо всем по порядку.
Читать дальше →
Total votes 124: ↑118 and ↓6 +112
Comments 98

Как правильно «фармить» Kaggle

Reading time 27 min
Views 139K
Open Data Science corporate blog Python *Data Mining *Mathematics *Machine learning *

image
*фарм — (от англ. farming) — долгое и занудное повторение определенных игровых действий с определенной целью (получение опыта, добыча ресурсов и др.).


Введение


Недавно (1 октября) стартовала новая сессия прекрасного курса по DS/ML (очень рекомендую в качестве начального курса всем, кто хочет, как это теперь называется, "войти" в DS). И, как обычно, после окончания любого курса у выпускников возникает вопрос — а где теперь получить практический опыт, чтобы закрепить пока еще сырые теоретические знания. Если вы зададите этот вопрос на любом профильном форуме, то ответ, скорее всего, будет один — иди решай Kaggle. Kaggle — это да, но с чего начать и как наиболее эффективно использовать эту платформу для прокачки практических навыков? В данной статье автор постарается на своем опыте дать ответы на эти вопросы, а также описать расположение основных грабель на поле соревновательного DS, чтобы ускорить процесс прокачки и получать от этого фан.

проверить глубину этой кроличьей норы
Total votes 87: ↑86 and ↓1 +85
Comments 15

Книга о «Параграфе» на Хабре. Первая глава: Ученый-вахтер

Reading time 13 min
Views 17K
Project management *Start-up development History of IT IT-companies
Пару недель назад я анонсировал книгу о «Параграфе», над которой работаю. Сегодня я решил в качестве эксперимента опубликовать тут первую главу.

О чем в ней идет речь? «Параграф» — первый стартап из России, покоривший мир. И он вряд ли вообще появился на свет, если бы Степан Пачиков вместе с Гарри Каспаровым не организовал первый в Москве детский компьютерный клуб.

Именно знания, связи и репутация, приобретенные на посту его директора, позволили Степану в Перестройку запустить собственный кооператив по продаже программного обеспечения. Так вся эта заваруха с «Параграфом» и началась.

imageКаспаров и Пачиков в детском клубе «Компьютер» — фото 1987 года (опубликовано на сайте Republic.ru)

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

image Фото клуба из статьи в журнале «Радио». 1987 г.

Поучительная история о том, как случайности и вера в лучшее могут радикально изменить жизнь и по сути предопределить судьбу. Ну и повод поностальгировать о компьютерах Z80 и флоппи-дисках для тех, кто застал те времена…
Читать дальше →
Total votes 100: ↑93 and ↓7 +86
Comments 454

Выбираемся из кроличей норы SPA при помощи современного Rails

Reading time 15 min
Views 10K
Website development *JavaScript *Ruby on Rails *
Translation
TL;DR: Тропа SPA темна и полна ужасов. Ты можешь бесстрашно сражаться с ними… или выбрать другой путь, который приведёт тебя к нужному месту: современный Rails.



Я вспоминаю, как думал, что Rails фокусируется на неправильной цели, когда DHH анонсировали Turbolinks в 2012 году. Тогда я был убеждён в том, что мгновенное время ответа во время взаимодействия с пользователем — это ключ к превосходному UX. Из-за возникающих задержек сети, такая интерактивность возможна, только если вы минимизируете зависимость от сети и вместо сетевых обращений поддерживаете большую часть состояния на клиенте.

Я думал, что это необходимо для приложений, над которыми я работал. И с таким мнением я перепробовал множество подходов и фреймворков для реализации одного и того же шаблона: Single-page applications (SPA). Я верил, что SPA — это будущее. Несколько лет спустя, я не уверен в том, каково же будущее, но я точно хочу найти альтернативу.
Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Comments 45

Курс о Deep Learning на пальцах

Reading time 2 min
Views 168K
Image processing *Machine learning *Robotics Artificial Intelligence
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


Читать дальше →
Total votes 117: ↑117 and ↓0 +117
Comments 31

5.94-метровый docker-образ с Telegram MTProxy

Reading time 12 min
Views 27K
Information Security *Instant Messaging *Open source *
Sandbox
Как все уже слышали, в конце мая Telegram зарелизил официальный MTProto Proxy (aka MTProxy) сервер, написанный на сях. В 2018 году без Docker мало куда, потому он сопровождается таким же «официальным» образом в формате zero-config. Все бы хорошо, но три «но» чуток испортили впечатление от релиза: image весит >130 Mb (там достаточно толстенький Debian, а не привычный Alpine), в силу «zero-config» оно не всегда удобно конфигурируется (только параметрами среды окружения) и ребята забыли, походу, выложить Dockerfile.



TL;DR Мы сделаем практически 1-в-1 официальный alpine-based docker image размером 5.94MB и положим его сюда (а Dockerfile сюда); попутно разберемся, как иногда можно подружить софт с Alpine с помощью кусачек и напильника, и чуток поиграемся размером, исключительно фана для.
Давайте исправим недоразумения.
Total votes 79: ↑78 and ↓1 +77
Comments 39

Путеводитель по Швейцарии

Reading time 42 min
Views 87K
IT-emigration IT career
Приветствую, товарищи!

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

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

Я решил не делить его на отдельные куски — так информацию искать будет проще. Надеюсь что не сильно нарушу тематику ресурса, пусть НЛО нас рассудит.


Flumserberg. Здесь и далее — обычно мои фотографии, которые мне показались более или менее приличными :)
Читать дальше →
Total votes 170: ↑167 and ↓3 +164
Comments 327

DevOps придумали разработчики, чтобы админы больше работали

Reading time 9 min
Views 42K
okmeter.io corporate blog Configuring Linux *System administration *Cloud computing *

Еще 4 года назад использование контейнеров в production было экзотикой, но сейчас это уже норма как для маленьких компаний, так и для больших корпораций. Давайте попробуем посмотреть на всю эту историю с devops/контейнерами/микросервисами ретроспективно, взглянуть еще раз свежим взглядом на то, какие задачи мы изначально пытались решить, какие решения у нас есть сейчас и чего не хватает для полного счастья?


Я буду в большей степени рассуждать про production окружение, так как основную массу нерешенных проблем я вижу именно там.

Читать дальше →
Total votes 95: ↑91 and ↓4 +87
Comments 62

Бот для Telegram. Rails way

Reading time 6 min
Views 23K
Website development *Ruby *Ruby on Rails *
Этот пост о библиотеке telegram-bot для написания ботов для Telegram. В числе основных целей при её создании были удобство разработки, отладки и тестирования ботов, сохранение интерфейсов минимальными, но с возможностью расширения, простота интеграции с Rails-приложением, и предоставление необходимых инструментов для написания бота. Вот что входит в состав:

  • Легковесный клиент для API ботов.
  • Базовый класс для контроллера обновлений с парсером сообщений. Сделан на основе AbstractController из ActionDispatch, предоставляет колбэки, сессии, сохранение контекста сообщений и прочее.
  • Rack-middleware для продакшена, чтобы принимать update-хуки, и поллер с автоматической загрузкой обновленного кода для удобной разработки.
  • Rake таски, хэлперы для рельсовых маршрутов и тестов.

Интересно? Для установки добавьте telegram-bot в Gemfile, подробности под катом.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 4

(Без)болезненный NGINX Ingress

Reading time 15 min
Views 36K
Southbridge corporate blog System administration *Server Administration *DevOps *
Translation


Итак, у вас есть кластер Kubernetes, а для проброса внешнего трафика сервисам внутри кластера вы уже настроили Ingress-контроллер NGINX, ну, или пока только собираетесь это сделать. Класс!


Я тоже через это прошел, и поначалу все выглядело очень просто: установленный NGINX Ingress-контроллер был на расстоянии одного helm install. А затем оставалось лишь подвязать DNS к балансировщику нагрузки и создать необходимые Ingress-ресурсы.


Спустя несколько месяцев весь внешний трафик для всех окружений (dev, staging, production) направлялся через Ingress-серверы. И все было хорошо. А потом стало плохо.


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

Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Comments 6

Почему нет русского Amazon, или где @ зарыта? Мифы, которые надо закрыть

Reading time 8 min
Views 44K
Research and forecasts in IT *Finance in IT


Много раз (с коллегами и без) изучал рынок e-commerce & онлайн-экономики в целом в России: и всякий раз поражался, на сколько же он переполнен артефактами (в значении — близком к этому).

И вот на прошлой-позапрошлой неделе стало известно сразу несколько важных вестей:

  1. ФАС дала «добро» на объединение «Техносилы» и «Эльдорадо»
  2. При этом сама Техносила опровергла перед этим слухи о своём (возможном) банкростве
  3. А СберБанк факторинг высудил у Юлмарта круглую сумму

Как связаны эти события?
Читать дальше →
Total votes 68: ↑63 and ↓5 +58
Comments 188

Сравнение производительности сетевых решений для Kubernetes

Reading time 7 min
Views 23K
Флант corporate blog System administration *Network technologies *DevOps *Kubernetes *
Translation


Kubernetes требует, чтобы каждый контейнер в кластере имел уникальный, маршрутизируемый IP. Kubernetes не назначает IP-адреса сам, оставляя эту задачу сторонним решениям.

Цель этого исследования — найти решение с наименьшими задержками, наибольшей пропускной способностью и самой небольшой стоимостью настройки. Поскольку наша нагрузка зависит от задержек, мы измеряем задержки высоких перцентилей при достаточно активной сетевой нагрузке. В частности, мы сфокусировались на производительности в районе 30-50 процентов от максимальной нагрузки, поскольку это лучше всего отражает типовые ситуации для неперегруженных систем.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 6

Изучите все языки программирования

Reading time 9 min
Views 84K
Инфопульс Украина corporate blog Abnormal programming *Programming *Perfect code *Compilers *
Translation
Когда я был ещё первокурсником, то познакомился с другим студентом, который утверждал, что может писать код на любом языке программирования, который я смогу назвать. Я был несколько шокирован и ответил подначкой:

— Что, даже на том нечитаемом эзотерическом языке, где есть всего пара команд, которые едва-едва симулируют машину Тьюринга?
— Да, этот язык называется brainfuck. Я знаю brainfuck.

И это был не трюк — мы проверили. Я называл известный мне язык программирования, он тратил пару минут в Интернете на то, чтобы освежить свои знания по нему — и был способен писать на этом языке работающие алгоритмы. Я никак не мог понять этого. Ему, как и мне, было тогда около 18 лет — как он мог в этом возрасте знать все эти языки?

image
Интерпретатор brainfuck, написанный на brainfuck

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

Сегодня я советую своим студентам «постараться изучить все языки программирования». Подумайте сами — ведь эта идея лучше, чем все вот эти «В этом году я выучу Go! Ой, нет, теперь говорят что в моде Rust — выучу лучше Rust! Или Swift ...». Просто выучите все — не ошибётесь. А эта статья, возможно, вам в этом немного поможет.
Читать дальше →
Total votes 89: ↑81 and ↓8 +73
Comments 94

Каково это — быть разработчиком в России, когда тебе сорок

Reading time 37 min
Views 159K
Programming *
Привет всем, я — сорокалетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
Читать дальше →
Total votes 353: ↑338 and ↓15 +323
Comments 788

Базовые принципы машинного обучения на примере линейной регрессии

Reading time 20 min
Views 157K
Open Data Science corporate blog Python *Algorithms *Mathematics *Machine learning *
Здравствуйте, коллеги! Это блог открытой русскоговорящей дата саентологической ложи. Нас уже легион, точнее 2500+ человек в слаке. За полтора года мы нагенерили 800к+ сообщений (ради этого слак выделил нам корпоративный аккаунт). Наши люди есть везде и, может, даже в вашей организации. Если вы интересуетесь машинным обучением, но по каким-то причинам не знаете про Open Data Science, то возможно вы в курсе мероприятий, которые организовывает сообщество. Самым масштабным из них является DataFest, который проходил недавно в офисе Mail.Ru Group, за два дня его посетило 1700 человек. Мы растем, наши ложи открываются в городах России, а также в Нью-Йорке, Дубае и даже во Львове, да, мы не воюем, а иногда даже и употребляем горячительные напитки вместе. И да, мы некоммерческая организация, наша цель — просвещение. Мы делаем все ради искусства. (пс: на фотографии вы можете наблюдать заседание ложи в одном из тайных храмов в Москве).

Мне выпала честь сделать первый пост, и я, пожалуй, отклонюсь от своей привычной нейросетевой тематики и сделаю пост о базовых понятиях машинного обучения на примере одной из самых простых и самых полезных моделей — линейной регрессии. Я буду использовать язык питон для демонстрации экспериментов и отрисовки графиков, все это вы с легкостью сможете повторить на своем компьютере. Поехали.
Читать дальше →
Total votes 89: ↑82 and ↓7 +75
Comments 22

С помощью LAMP я создал SaaS-сервис приносящий $3700 в месяц. Моя история

Reading time 11 min
Views 69K
Freelance Start-up development IT career
Translation
В этой статье я хотел бы поделиться своим опытом создания SaaS-сервиса на базе LAMP стека, Postio и доведения сервиса до состояния, когда он стал приносить 3 700 долларов ежемесячно (до обрушения рубля было почти 7 000). Сразу надо сказать, что эта история не имеет ничего общего с инвесторами, с золотой лихорадкой Кремниевой долины и с какой-то сверхсовременной технологией. Просто незамысловатая история от независимого разработчика о создании прибыльного SaaS-сервиса, который может сделать любой. Этот веб-сервис был сделан для внутреннего рынка России, поэтому я перевёл всё на английский и в доллары для удобства (пожалуйста, обратите внимание, что это перевод моей статьи, которая изначально была написана для англоязычной аудитории). Но, с другой стороны, этот опыт является довольно универсальным и может быть применён везде. По сути, это инструкция по созданию проектов такого рода.

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

Наверное, я должен немного отвлечься и сказать, что VK.com имел и до сих пор имеет процветающую «экосистему» таких групп, которая приносит прибыль их владельцам. Это — своеобразный рынок, который Facebook прикрыл уже давно. И этот базар является прекрасной средой для обучения и экспериментов.
Total votes 106: ↑95 and ↓11 +84
Comments 101

Information

Rating
Does not participate
Registered
Activity