Pull to refresh
0
0

Разработчик

Send message

FrontEnd разработка в Docker

Reading time5 min
Views28K

Когда приходит новый разработчик, то перед ним встает задача запустить окружение для разработки. И до недавнего времени - это часто становилось похожим на танцы с бубном. Поставь 10 разных пакетов определенных версий, а еще окажется что твой собственный pet-проект требует другие версии или это даже может быть другой проект в рамках той же работы. Каждый раз из этой ситуации специалист выходил по своему, но основной проблемой помимо временных затрат на эту конфигурацию - оставалось, то что работоспособность от разработчика к разработчику или runner не гарантировалась.

К счастью - эта проблема решена в современном мире разработки, если не полностью, то в большей мере. Нам на выручку пришел Docker.

Read more
Total votes 9: ↑9 and ↓0+9
Comments6

Почему язык Go стал стандартом для DevOps-инженеров

Reading time6 min
Views49K

Иногда вещи находят себе применение неожиданно и не в том, для чего их задумывали. 

В 1960-е годы Кен Томпсон — легенда программирования — написал компьютерную игру Space Travel для операционной системы Multics. Система была проектом компании Bell Lab, где он работал вместе с Денисом Ритчи. Позже проект закрыли, и чтобы продолжать играть в свою Space Travel, Томпсон решил портировать ее на компьютер PDP-7. Инструменты, которые он создал для порта, затем легли в основу операционной системы Unix. 

Томпсон написал в одиночку первые три версии. Для Unix был нужен системный язык — так появился B. Позже Денис Ритчи, коллега и друг Томпсона, подхватил разработку и написал язык C. Вот так в основе почти всего, на чем построены современные технологии, лежало желание поиграть в компьютерную игру и пет-проекты для забавы.

Кен Томпсон построил блестящую карьеру исследователя в области computer science. В середине 2000-х он устроился в Google, где вместе с Робом Пайком и Робертом Грейсмером создал Golang — один из самых популярных языков последнего времени.

Читать далее
Total votes 59: ↑51 and ↓8+59
Comments320

Что вам нужно знать, если вы поменяете nginx на envoy: впечатления спустя два года

Reading time4 min
Views14K


Мы используем envoy как front edge proxy, который перенаправляет входящий трафик в несколько кластеров kubernetes (для новых сервисов) и в бэкенды legacy-архитектуры исторического наследия. Т.е. там сочетаются функции как обычного балансировщика и ssl termination point, так и api gateway.

До envoy у нас там был nginx, как и у многих. Классный софт, мне нравится. Вся история с envoy началась в тот момент, когда начались микросервисы в большом количестве и даже шаблоны ansible не спасали от увеличивающегося времени на управление nginx-конфигом. Долго выкатывалось, плюс админы приунывали от однообразных заявок вида «заведите мне домен для нового сервиса». Явно была нужна более лучшая™ автоматизация. В идеале, чтобы тот, кому нужно что-то завести, мог сам это сделать и желательно в том же месте, где настраивал прочие параметры своего сервиса. Вдобавок хотелось побольше прозрачности в том, что происходит внутри front proxy и на отрезке между ним и апстримами, и больше нативных возможностей для балансировки (переповторы запросов разных типов, исключение нездоровых хостов по определённым условиям, хелсчеки). И привлекла edge-технология, конечно же.
Читать дальше →
Total votes 22: ↑20 and ↓2+26
Comments12

Создание пайплайнов CI с помощью Tekton (внутри Kubernetes). Часть 1/2

Reading time6 min
Views2.1K

В этой статье мы собираемся создать пайплайн непрерывной интеграции (CI) с Tekton, фреймворком с открытым исходным кодом для создания конвейеров CI / CD в Kubernetes.


Мы собираемся подготовить локальный кластер Kubernetes через kind и установить на нем Tekton. После этого мы создадим пайплайн, состоящий из двух шагов, который будет запускать модульные тесты приложения, создавать образ Docker и отправлять его в DockerHub.


Это 1 из 2 частей, в которой мы установим Tekton и создадим задачу, запускающую тест нашего приложения. Вторая часть доступна здесь.

Читать дальше →
Total votes 9: ↑8 and ↓1+9
Comments0

Основы отладки клиентских JS-приложений

Reading time18 min
Views20K

Процесс написания и выполнения программного кода почти всегда сопряжён с необходимостью искать и исправлять ошибки. И в целом процесс отладки приложений выглядит несложно.

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments5

Букварь по F# для любопытствующих C#-разработчиков

Reading time13 min
Views9.9K

Предисловие


Мой переход на F# в качестве излюбленного языка был слегка усеян препятствиями. Примерно через десять лет почти постоянного использования C# у меня пробудилось любопытство, когда я услышал об этом другом #-языке. Моя первая реакция была той, которую с тех пор видел у других C#-разработчиков — отрицание, — C# является хорошим языком, и мне с ним комфортно, так зачем тратить силы на изучение другого? Но любопытство осталось — и, по крайней мере, несколько раз выделил вечер, чтобы прочитать базовый вводный пост и попытаться написать каких-нибудь ката на F#. Это не прижилось, потому что я просто чувствовал себя потерянным и не мог воплотить свой опыт использования C# в ощущение даже отдаленного комфорта с F#. Достаточно легко опустить фигурные скобки, немного замяться, чтобы не забыть let вместо var — но как сделать то, что я хотел?


Тогда я этого не осознавал, но, на мой взгляд, наблюдал потенциальный недостаток в том, как F#-разработчики говорят, описывают и представляют свой язык внешнему миру. Существует обширная база материалов обо всех возможностях и функциональности F#: Algebraic Data Types, Exhaustive Matching, Type Inference и т.д. Есть много статей, посвященных тому, как решать широкий спектр задач с помощью F#. Но, как мне кажется, не хватает чего-то вроде следующего: некоторых указаний о том, как взять то, что вам уже удобно в C#, и перевести их на F#. Так что мне интересно, можем ли мы как-то закрыть этот недостаток.

Читать дальше →
Total votes 24: ↑23 and ↓1+31
Comments13

Что такое Windows PowerShell и с чем его едят? Часть 5: Доступ к внешним объектам

Reading time10 min
Views17K


В операционных системах Windows поддерживаются различные объектные инфраструктуры. Для доступа к ним можно использовать интерфейсы прикладного программирования (API), но разработка полноценных приложений не всегда оправдана. В PowerShell существуют специальные командлеты, позволяющие обращаться к объектам .NET, COM, WMI (CIM) и ADSI в интерактивном режиме. В четвертой части цикла мы изучили основы с упором на классы .NET Core, а сейчас хотим углубить тему и разобрать особенности взаимодействия PowerShell с внешними объектами.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments11

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

Reading time4 min
Views125K


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

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →
Total votes 81: ↑77 and ↓4+91
Comments62

Девелопишь на .NET Core? Го в Ubuntu, я создал

Reading time3 min
Views36K
image
Photo by Kevin Horvat
Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Но, спасибо Microsoft, .NET Core все изменил и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. Дело за малым — перетащить на Core свои проекты. Не так давно я решил и этот вопрос и завел трактор для полного переезда на Ubuntu.

Результат очень понравился — все взлетело, разрабатывать легко, а Docker и Kubernetes сделали процесс переезда намного легче. Но из-за слабого знания ОС, bash и запутанности вариантов установки некоторых инструментов (например, того же Docker) изначальная настройка заняла больше дня. То есть процесс довольно долгий и местами запутанный.

Дабы сэкономить время будущему себе и тем, кто также планирует попробовать разработку под Linux, я оформил все в виде скриптов. Их можно запустить на чистой Ubuntu и они все настроят пока ты сидишь и пьешь чаек. Также, при желании, их легко допилить под свои нужды.

Если для вас это звучит полезно — добро пожаловать под кат.
Читать дальше →
Total votes 19: ↑14 and ↓5+16
Comments40

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

Reading time7 min
Views327K

Введение


В статье рассматривается «Y-метод» сборки кубика Рубика — его легко понять и запомнить. Он основан всего на одной последовательности, которая называется «Y-движение». Поняв этот алгоритм, вы навряд ли забудете как собрать кубик самостоятельно.
Читать дальше →
Total votes 86: ↑85 and ↓1+116
Comments78

[в закладки] 9 инструментов, повышающих продуктивность веб-разработчика

Reading time4 min
Views32K
Интернет — это не только то место, где можно научиться программировать. Тут имеется множество полезных онлайновых инструментов, способных помочь разработчику на разных этапах работы над проектом и таким образом сэкономить немного времени.



Автор статьи, перевод которой мы сегодня публикуем, отобрал 9 таких инструментов.
Читать дальше →
Total votes 31: ↑23 and ↓8+30
Comments12

Аудиофильский смартфон: критерии выбора и несколько типичных представителей класса

Reading time7 min
Views66K
Музыкальные смартфоны для меломанов выдумывали с незапамятных времен. Тогда память мобильных устройств связи не превышала сотни мегабайт, а аппаратные возможности были намного скромнее чем сейчас. Это приводило к необходимости наращивать вычислительную мощность и объем памяти для полноценного выполнения функции плеера. Сегодня полиморфных кнопочных мамонтов сменило однообразие сенсорных прямоугольников, а музыкальный смартфон стал несколько другим гаджетом. У пользователей появилось желание не просто сносного портативного звука, который есть в любом современном телефоне, но максимальной верности воспроизведения в карманном форм-факторе и без применения дополнительных устройств.



К сожалению, спрос на HI-FI-смартфоны привел к маркетологическим манипуляциям. “Благодаря” этому сегодня практически любой мало мальски приличный смартфон можно увидеть в обзорах из серии “лучшие аудиосмартфоны сезона” и т.п. Несмотря на расхожее убеждение о том, что качество звука в смартфонах не имеет отличий и все смартфоны звучат одинаково, разница таки есть. Как ни странно качество отличается и во многом зависит от аппаратных возможностей устройств. Под катом о критериях качества музыкальных смартфонов и о некоторых моделях, которые, по моему мнению, заслуживают внимания.

Термин “аудиофильский” в статье используется не как ругательство, но для упрощения и, возможно, с легким сарказмом.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments12

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

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

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments1

Большая Философская Мысль: топ-10 докладов DotNext 2019 Piter

Reading time5 min
Views7.7K


Здравствуй, Хабр! В мае прошла наша большая .NET-конференция, где нашлось место и хардкору, и трендам, и архитектуре, и просто хорошим практикам.

А теперь делимся лучшими докладами (по оценкам зрителей конференции), из которых вы:

  • узнаете, почему (скорее всего) пишете функциональный код, даже не подозревая об этом;
  • погрузитесь в асинхронное программирование;
  • услышите в доступной форме про уязвимости десериализаторов;
  • получите комплексную информацию о кардинальных изменениях, которые принёс C# 8 с non-nullable reference types;
  • захотите купить Raspberry Pi;
  • узнаете о «настоящей» стоимости кода.

Есть нюанс: в этот раз возникла особая ситуация с докладом-лидером. Во-первых, он посвящён не .NET, а во-вторых, вот его видеозаписью мы поделиться не можем (согласно условиям выступления). Чтобы компенсировать это, мы добавили в пост 11-е место — так что под катом вы всё равно сможете увидеть видеозаписи 10 отличных докладов про .NET-разработку. Поехали!
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments4

Увеличь это! Современное увеличение разрешения

Reading time21 min
Views182K

Я уже перестал вздрагивать и удивляться, когда звонит телефон и в трубке раздается жесткий уверенный голос: «Вас беспокоит капитан такой-то (майор такой-то), вы можете ответить на пару вопросов?» Почему бы не поговорить с родной полицией…

Вопросы всегда одни и те же. «У нас есть видео с подозреваемым, пожалуйста, помогите восстановить лицо»… «Помогите увеличить номер с видеорегистратора»… «Здесь не видно рук человека, пожалуйста, помогите увеличить»… И так далее в том же духе.

Чтобы было понятно о чем речь — вот реальный пример присланного сильно сжатого видео, где просят восстановить размытое лицо (размер которого эквивалентен примерно 8 пикселям):


И ладно бы только русские дяди Степы беспокоили, пишут и западные Пинкертоны.
Читать дальше →
Total votes 377: ↑376 and ↓1+375
Comments262

Лучшие работодатели в ИТ 2018: ежегодный рейтинг «Моего круга»

Reading time11 min
Views77K
image

В середине 2018 года мы на «Моём круге» запустили сервис оценки работодателей, с помощью которого каждый сможет узнать, что думают о компании как о работодателе её сотрудники. И сегодня рады представить первый ежегодный рейтинг компаний «Лучшие работодатели в ИТ 2018, по версии «Моего круга». Этот рейтинг мы хотим сделать доброй традицией и выпускать ежегодно.

С момента запуска сервиса порядка 5000 сотрудников поставили свои оценки более чем 900 компаниям. В итоге, на данный момент публичную оценку получили 150 компаний, собравших мнения о себе от 10 и более сотрудников. Именно эти компании и стали участниками нашего нынешнего рейтинга.

Сотрудники оценивают своих работодателей по 12 качествам, по каждому ставят оценку от 1 (полностью не согласен) до 5 (полностью согласен). Из оценок сотрудников вычисляется средняя оценка каждого качества (как среднее взвешенное), а из оценок качеств — средняя оценка компании в целом (как среднее арифметическое). Эти средние оценки компании в целом мы и сравниваем, чтобы построить рейтинг. Подробнее о системе оценок и правилах их расчёта.

Ещё мы сравниваем оценки компаний по каждому из 12 качеств, и если компания вошла в тройку лидеров по данному качеству, мы присваиваем ей соответствующую номинацию.

Компании в рейтинге соревнуются в 4 «весовых» категориях:


  • Огромные компании (xbig). Для компаний численностью более 5000 сотрудников, «нормальной» (средней медианной) является оценка 3.6.
  • Большие компании (big). Для компаний от 1000 до 5000 сотрудников — 4.2.
  • Средние компании (medium). Для компаний от 100 до 1000 сотрудников — 4.5
  • Небольшие компании (small). Для компаний от 10 до 100 сотрудников — 4.6.
Смотреть рейтинг компаний
Total votes 77: ↑68 and ↓9+59
Comments56

Infer.NET: мощная система машинного обучения теперь OpenSource

Reading time2 min
Views13K
Система машинного обучения, которая настолько крута, что помогла медикам углубить знания о детской астме, теперь стала доступна для всех. Исходный код разработанной Microsoft системы Infer.NET опубликован на GitHub, и теперь кто угодно может использовать эту интеллектуальную технологию машинного обучения в своих приложениях.

Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments7

Двадцать задачек (по безумной, восхитительной геометрии)

Reading time6 min
Views130K
Предупреждение врача. Остерегайтесь этих головоломок. Побочные эффекты могут включать потерянное послеобеденное время, скомканные волосы и восклицания «А-а-а-х, вот как это делается» настолько громкие, что могут треснуть оконные стёкла.

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

Катриона разрешила мне подвесить вас на эти задачки — и поделилась 20 своими любимыми головоломками. Она даже удовлетворила моё любопытство и восхищение, дав интервью (см. в конце статьи).

Наслаждайтесь. И не говорите, что врач не предупреждал.
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments65

Зачем выступать на айтишных конференциях и митапах?

Reading time7 min
Views25K
С осенью нас, коллеги. Летняя спячка подошла к концу, и осень начала радовать нас айтишными выставками, анонсами и конференциями разных форм и размеров. Последние несколько лет я плотно занимаюсь хакатонами и конференциями и очень часто слышу вопросы об аудитории и докладчиках — зачем все эти люди собираются, что они хотят друг от друга и какая практическая польза кроме пиццы? В рамках этого поста я собрал немного информации по предмету и мои собственные наблюдения, как проще всего подготовить и провести выступление на айтишной конференции или митапе. Под катом — мои ответы на странные вопросы и несколько практических приемов, накопленных за годы борьбы с ленью и здравым смыслом.
Читать дальше →
Total votes 69: ↑51 and ↓18+33
Comments35

ASP.NET Core: Механизмы предотвращения атак 2.0

Reading time20 min
Views25K

По встроенным механизмам безопасности ASP .NET Core написано мало статей. Даже официальная документация имеет пробелы. В этой статье мы пройдём по всем основным компонентам, имеющим отношение к безопасности, и разберём, как это работает внутри.


Если вы используете старый добрый ASP .NET, то для вас будет полезна информация по внутреннему устройству компонентов безопасности и лучшим практикам их использования. Здесь вы найдёте ответы на следующие вопросы: как реализованы современные анти-XSS механизмы и как их правильно использовать в ASP .NET Core? Как правильно работать с cookies и какие подводные камни там могут встретиться? Как был переписан механизм защиты от CSRF? Как правильно работать с криптографическими алгоритмами? Кроме того, рассказывается про опыт участия в Bug Bounty по поиску уязвимостей в ASP .NET Core.


Перед чтением рекомендуется освежить в памяти атаки из списка OWASP Top 10.


Прототипом статьи является доклад Михаила Щербакова на конференции DotNext 2017 Moscow. Михаил — Microsoft .NET MVP, участник .NET Core Bug Bounty Program, соорганизатор сообщества .NET программистов (Московское комьюнити называется MskDotNet, питерское — SpbDotNet). По работе последние 5 лет занимается безопасностью. Работал в Positive Technologies, в Cezurity, сейчас как консультант работает напрямую с заказчиками, по большей части в этой же сфере. Профессиональные интересы: статический и динамический анализ кода, информационная безопасность, автоматизация отладки кода, исследование внутреннего устройства .NET CLR.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments2

Information

Rating
Does not participate
Registered
Activity

Specialization

Specialist
Lead
From 280,000 ₽