Одной из отличительных особенностей языка F#, по сравнению с более распространёнными языками программирования, является мощный и всеобъемлющий автоматический вывод типов. Благодаря ему в программах на F# вы почти никогда не указываете типы явно, набираете меньше текста, и получаете в итоге более краткий, фантастически элегантный код.
Для разработки под микроконтроллер nRF51822 существует несколько комплектов от Nordic Semiconductor, все они достаточно дороги зато обеспечивают возможность удобной работы без возни с программаторами. При этом у китайских производителей можно обнаружить платы облегчающие отладку контроллеров за смешные деньги. Статья посвящена работе с клоном платы от Waveshare которая продаётся под названием BLE400. Читать дальше →
Мы решили продолжить вести блог и будем в нем рассказывать о своей работе. Начнем с того, что расскажем о том, что нами было нами сделано в 2017 году. За прошедший год нами были разработаны несколько антиспам модулей для CMS, о которых я расскажу подробнее.
Статья является набором простых, понятных инструкций и советов для пользователей Docker под Windows. Статья поможет разработчикам на PHP быстро поднять проект. Описываются проблемы и их решения. Статья полезна тем, кто не обладает бесконечным ресурсом времени, чтобы глубоко копаться в проблемах докера под Windows. Автор был бы бесконечно признателен, если бы ему ранее встретилась подобная статья и автор бы съэкономил бы много сил и времени. Текст может содержать ошибки и неточности.
Когда несколько лет работаешь на одном проекте, в одной команде, то выходить из него больно и это больше похож на уход из семьи, чем рядовое увольнение рядового сотрудника. Если приводить метафору — когда начинаешь, то думаешь «вот она, моя единственная, одна и на всю жизнь», а когда заканчиваешь — «все женщины одинаковы».
Здесь явно не формат и отличается от моих предыдущих заметок, но где еще найти такое количество программистов, у которых можно узнать мнение?
В понедельник мне пришлось, несмотря на беременность жены, закрыть контракт и уйти с позиции технического директора проекта. Добро пожаловать в клуб безработных, Валера! Теперь, пролистывая вакансии на hh/мойкруг, трудно поверить в них и кажется, что за ними скрываются похожие проблемы и вернуть веру довольно трудно.
Под катом будут ретроспективные пару причин о том, как я докатился до жизни такой, хоть и через неделю платить арендную плату/нужно покупать хлеб. Здесь лично моя боль, не совсем формат, но вдруг этот натолкнет кого-то на какие-то мысли. В любом случае каждый воспринимает этот мир через свои собственные цветные очки. Читать дальше ->
Предлагаю вниманию статью, объединяющую вещи, на первый взгляд, не имеющих между собой ничего общего: должностные обязанности работников, инвентаризация (бизнес-*)процессов и информационной безопасности.
Всем привет! Немного затянул с написанием третьей части (почти полгода аж прошло), но на то были свои причины. И сегодня пришло время завершить мой обзор про жизнь и работу в Болгарии с освещением самых свежих данных про рынок IT, оформление рабочей визы, собеседований и многое другое. Читать дальше ->
В прошлой статье мы рассмотрели разработанное приложение на Ethereum. Но обошли стороной вопрос как происходит процесс разработки. Ясно, что это не просто написание кода, который сразу работает. Большую часть времени придется потратить на то, чтобы доводить код, который “почти готов”, до рабочего состояния. Деплой, тестирование, отладка — все это в той или иной мере уже затрагивалось здесь например в этих неплохих статьях: раз, два, три (список не полный). В этой статье мы дадим небольшой обзор и возможно в чем-то повторимся, но постараемся сфокусироваться на тех моментах, которые нам показались важными или недосказанными. Плюс за последнее время некоторые штуки изменились, и огромное количество инструкций оказалось устаревшим. Постараемся немного подправить ситуацию.
В очередном разговоре у кофеварки всплыла тема: Профессионалы vs Любители.
Каждый из нас сталкивался и с теми и с другими в своей жизни. Нам доводилось где-то и самим выступать Профессионалами, а где-то Любителями. Каждый из нас имел свой негативный и позитивный опыт.
Обсуждали, как и любую другую неоднозначную тему бурно и долго. В итоге родилась некая табличка, примерно описывающая реакции Профессионалов и Любителей на различные ситуации.
Описание улучшений в производительности существует на стыке математики и лингвистики. Очень часто математика используется некорректно, употребляются неверные, вводящие в заблуждение или просто неоптимальные термины.
Рассмотрим условный пресс-релиз:
Компания AirTrain Inc. с гордостью представляет новый самолёт AirTrain-8000. Революционный новый самолёт летит из Лондона в Нью-Йорк на средней скорости 7700 км/ч — гигантский прогресс по сравнению с 770 км/ч у других самолётов. Это уменьшает скорость перелёта с десяти часов всего до одного часа, что делает AirTrain-8000 на 90% быстрее, чем наши конкуренты.
Такой пресс-релиз никогда не будет опубликован. Новый самолёт в десять раз быстрее, чем другие (7700 км/ч разделить на 770 км/ч) и никакой отдел маркетинга не позволит называть это «на 90% быстрее», что звучит словно «почти вдвое быстрее». И всё же, когда речь идёт о компьютерах — где десятикратное увеличение скорости случается довольно часто — люди нередко делают такую ошибку.
Подобное злоупотребление процентами сделало их практически бесполезными для описания оптимизаций. Нужно прекратить использовать проценты. Самолёт AirTrain-8000 в десять раз быстрее, точка. Читать дальше ->
В C# throw всегда был оператором. Поскольку throw — это оператор, а не выражение, существуют конструкции в C#, в которых нельзя использовать его.
в операторе Null-Coalescing (??)
в лямбда выражении
в условном операторе (?:)
в теле выражений (expression-bodied)
Чтобы исправить данные проблемы, C# 7 вводит выражения throws. Синтаксис остался таким же, как всегда использовался для операторов throw. Единственное различие заключается в том, что теперь их можно использовать в большом количестве случаев.
Давайте рассмотрим, в каких местах throw выражения будет лучше использовать. Поехали! Читать дальше ->
Как выбрать исполнителя по бюджету и задачам? Рассказываем, чем отличаются друг от друга фрилансеры, дизайн-студии и брендинговые агентства. Читать дальше ->
При тестировании сайтов или мобильных приложений иногда возникает необходимость не только отловить трафик между клиентом и сервером, но и модифицировать его, чтобы посмотреть, как это обработает бэкенд и что поменяется на UI.
В таких случаях можно использовать прокси-сервер Fiddler — промежуточное звено между клиентом (браузер, мобильное приложение и т. д.) и целевым сервером. Скорее всего, этот инструмент вам известен, но обычно говорят о нем вскользь. Мы по шагам разберем, как проверить с помощью Fiddler, что отобразится на UI при изменении запроса к серверу или возвращаемого ответа. Читать дальше ->
В этом году Андроиду стукнет 10 лет, но разработка приложений не превратилась в закостеневшую рутину, а продолжает активно меняться: достаточно посмотреть, насколько за год изменилась ситуация с Kotlin. Значит, Android-разработчику надо держать руку на пульсе, следя и за происходящими событиями, и за полезными блог-постами.
А где именно в интернете это делать? Мы собрали вместе ссылки на самые разные полезные интернет-ресурсы, включая наш собственный. Читать дальше ->
Привет, Хабр! Меня зовут Святослав Кулаков, я VP of Engineering в Aurea Software. Вся моя жизнь прошла в Питере: я родился и вырос на улице Союза Печатников напротив Мариинского театра, учился во второй гимназии с углублённым изучением английского языка и физмата, поступил в Университет аэрокосмического приборостроения (ГУАП). После учёбы я работал в нескольких софтверных компаниях в России и США, но в итоге всё вернулся в Санкт-Петербург и оставался тут даже когда это казалось верной дорогой к карьерному болоту.
На основании своего личного опыта я расскажу о том, почему многим IT-специалистам нереально найти в Санкт-Петербурге работу по своему уровню, как работает механизм перетягивания лучших специалистов — как минимум, в Москву, а то и сразу в США или другие страны. И о том, как мне всё-таки удалось найти в родном городе свою лучшую работу на данный момент. Но обо всём по порядку.
Из Санкт-Петербурга в Санкт-Петербург через Санкт-Петербург
Моя трудовая биография началась с позиции Java-разработчика в небольшой софтверной компании. Кризис 2008 года сбил нас на взлёте, и моей следующей записью в трудовой стала должность Lead IT Process Manager в московском отделении Deutsche Bank. Полтора года спустя мне поступило заманчивое предложение из США: консультировать бизнес-клиентов компании Grid Dynamics в вопросах оптимизации процессов разработки. Читать дальше ->
Продолжаю цикл статей про SLA, публикуя то, что не уместилось в основную статью Как написать хороший SLA.
Не секрет, что начиная с определённого уровня зрелости в ИТ компании начинают регистрировать запросы в специальных системах, трекерах. Это позволяет понимать, кто и чем занимается, анализировать текущую ситуацию и уже проделанную работу и ещё массу полезного — при правильной постановке дела выгоды заметно перевешивают бюрократию. Очерёдность исполнения запросов регулируется приоритетами.
За много-много лет работы в поддержке самых разных ИТ-систем, мне очень понравилась система из четырёх приоритетов, о которой речь и пойдёт ниже. Эта система настолько хорошо показала себя на практике в самых разных проектах, что я искренне удивляюсь, встречаясь с другими подходами к приоритетам. Так что я готов приложить определённое количество усилий для популяризации таких определений приоритетов. Чтобы они чаще всеми использовались и чаще встречались в жизни.
Привет, Хабр! Центр развития ИТ-образования МФТИ приглашает тебя на международный студенческий чемпионат по спортивному программированию MosCode Festival. Это хорошая возможность потренироваться на задачах уровня финала ACM ICPC вместе с участниками из других стран. Контест пройдёт 31 марта (личный тур) и 1 апреля (командный тур) в технопарке «Сколково». Пока вы думаете о регистрации, рассказываем подробности и делимся двумя задачами прошлого года с разбором. Читать дальше ->
Мы в Puzzle English всегда делаем акцент на полезности и качестве нашего контента. Технологии — это лишь инструмент, который позволяет претворять все наши задумки в жизнь. Сегодня хотим поделиться кейсом, как мы организуем потоковое создание видео- и аудиоконтента на нашем сайте: каждый день сайт пополняется свежим материалом, и все это делает совсем не сотня человек. А еще сделаем небольшой “экскурс в историю” и покажем, как мы росли и повышали качество производимого контента. Читать дальше ->
Ну что ж. Первый поток курса DevOps выпущен, второй обучается вовсю и вот на подходе третий. Курс усовершенствуется, проект тоже, остаётся неизменным пока что одно: интересные статьи, которые мы пока что только переводим для вас, но на носу уже и срывы покровов с тех вещей, что у нас просили :)
Поехали!
Мы используем Kubernetes для исследования в области deep learning уже более двух лет. В то время, как наши самые масштабные нагрузки управляют облачными ВМ напрямую, Kubernetes обеспечивает быстрый итерационный цикл и масштабируемость, что делает его идеальным для наших экспериментов. Сейчас мы управляем несколькими Kubernetes кластерами (как облачными, так и на физическом оборудовании), самый крупный из них состоит из более 2500 нод — это кластер в Azure на комбинации виртуальных машин D15v2 и NC24.
Многие системные компоненты отказывали в процессе масштабирования, включая etcd, Kube мастеров, загрузки образов Docker, сети, KubeDNS и даже ARP кэши наших машин. Поэтому мы решили, что будет полезным поделиться, с какими проблемами мы столкнулись и как с ними справились.