Pull to refresh
6
0
MIkhail Subbotin @mixailflash

Solution Architect

Send message

Возможности Грузии для айтишников

Reading time6 min
Views23K
Грузия – небольшая страна на Кавказе, которая успешно борется за мировое признание родиной вина, именно здесь еще 8 000 лет назад умели делать этот хмельной напиток. А еще Грузия известна своим гостеприимством, кухней и красивыми природными пейзажами. Чем же она может стать полезной для фрилансеров и компаний, работающих в сфере IT-технологий?

Льготные налоги для IT-компаний


image
Читать дальше →
Total votes 28: ↑15 and ↓13+2
Comments26

Компьютерная криминалистика (форензика): подборка полезных ссылок

Reading time4 min
Views46K
image

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

Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments8

«Паттерны» функционального программирования

Reading time10 min
Views70K

Многие люди представляют функциональное программирование как нечто очень сложное и «наукоемкое», а представителей ФП-сообщества – эстетствующими философами, живущими в башне из слоновой кости.

До недавнего времени такой взгляд на вещи действительно был недалек от истины: говорим ФП, подразумеваем Хаскель и теорию категорий. В последнее время ситуация изменилась и функциональная парадигма набирает обороты в web-разработке, не без помощи F#, Scala и React. Попробуем взглянуть на «паттерны» функционального программирования, полезные для решения повседневных задач с точки зрения ООП – парадигмы.

ООП широко распространено в разработке прикладного ПО не одно десятилетие. Все мы знакомы с SOLID и GOF. Что будет их функциональным эквивалентом?.. Функции! Функциональное программирование просто «другое» и предлагает другие решения.


Читать дальше →
Total votes 61: ↑56 and ↓5+51
Comments361

Введение в разработку умных контрактов Ethereum

Reading time9 min
Views46K

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

Механизм Initial Coin Offering не только способствовал новой волне интереса к краудфандингу, увеличив объем привлекаемых с его помощью инвестиций, но и подхлестнул интерес к криптовалютам и технологии блокчейн. Сегодня все чаще и чаще попадаются новые вакансии в этой области, а также просьбы о помощи в проведении ICO в целом и разработке смарт-контрактов в частности.

К сожалению, сегодня сильно ощущается нехватка специалистов в этой сфере, хотя в действительности процесс разработки умных контрактов гораздо проще, чем это может показаться на первый взгляд. Проблема нехватки специалистов напрямую проистекает из того, что технология блокчейн дошла до массового пользователя не так давно — в виде криптовалюты биткоин, а смарт-контракты в блокчейн пришли значительно позже. Так что лично у меня не вызвал большого удивления тот факт, что материалов по разработке смарт-контрактов все еще очень мало.
Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments43

Блокчейн как учебная дисциплина: магистерская программа Университета ИТМО

Reading time6 min
Views8.8K
Блокчейн и криптовалюты – одна из самых популярных тем этого года, которая заставила интересоваться технологиями даже тех, кто к ним раньше был совершенно равнодушен. В Университете ИТМО к этим вопросам относятся серьезно – и не только поддерживают и развивают проекты на блокчейне, но и преподают блокчейн-технологии в рамках одной из магистерских программ. Подробнее об этом – в сегодняшнем материале.

Total votes 14: ↑12 and ↓2+10
Comments3

Эти токсичные, токсичные собеседования

Reading time8 min
Views104K


Всё началось, когда автор Ruby on Rails признался миру:

Total votes 205: ↑197 and ↓8+189
Comments734

Как мы ищем (и почему находим) крутых разработчиков. Опыт HR и советы соискателям

Reading time6 min
Views24K


Команда Skyeng активно растет: за прошедший год только штат разработчиков увеличился почти в пять раз. Как и все другие высокотехнологичные компании, мы постоянно испытываем дефицит кадров – просто потому, что классных специалистов не хватает на рынке. Сегодня мы расскажем, как эту проблему решает наш HR отдел, где и как он ищет разработчиков, ну и поделимся парой советов для тех читателей, кто почему-то не может найти достойную работу в IT-индустрии.
Читать дальше →
Total votes 32: ↑21 and ↓11+10
Comments48

Функторы, аппликативные функторы и монады в картинках

Reading time5 min
Views190K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Total votes 184: ↑175 and ↓9+166
Comments60

Мифы о Spark, или Может ли пользоваться Spark обычный Java-разработчик

Reading time31 min
Views45K
Продолжаем расшифровывать и местами облагораживать хардкорные доклады спикеров JPoint 2016. Сегодня доклад поменьше, всего час с копейками, соответственно, концентрация пользы и отжига на одну минуту зашкаливает.

Итак, Евгений EvgenyBorisov Борисов о Spark, мифах и немного о том, дествительно ли тексты Pink Floyd адекватнее, чем у Кэти Пэрри.





Это будет необычный доклад о Spark.

Обычно много рассказывают про Spark, какой он крутой, показывают код на Scala. Но у меня немного другая цель. Во-первых, я поговорю о том, что такое Spark и зачем он нужен. Но основная цель — показать, что вы, как Java-девелоперы, можете прекрасно им пользоваться. В этом докладе мы развеем несколько мифов о Spark.
Total votes 34: ↑30 and ↓4+26
Comments8

Пишу как хочу, или Все на встречу с ruHaskell в «Лаборатории Касперского»

Reading time2 min
Views4.6K

6 апреля 2017 «Лаборатория Касперского» и сообщество RuHaskell вновь будут рады видеть всех, кто считает Haskell лучшим языком на свете. На этой второй по счету встрече (на первой прошлогодней мы тоже говорили о магии типов Haskell и сравнивали его с C++) обсудим наш язык и его “коллег по цеху” в функциональной парадигме, поделимся опытом применения в решении прикладных задач бизнеса, поднимем наболевшие вопросы и наконец, просто пообщаемся.

В программе — много полезного и ценного: если коротко, то узнаем как применять Haskell там, где его пока не используют — для GUI на десктопе и в браузере, как альтернативу базе данных, как «клей» для внешних сервисов, — и почему это хорошо и правильно. А если подробно, то вас ждут следующие доклады:
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments6

Геометрия машинного обучения. Разделяющие гиперплоскости или в чём геометрический смысл линейной комбинации?

Reading time13 min
Views45K
Во многих алгоритмах машинного обучения, в том числе в нейронных сетях, нам постоянно приходится иметь дело со взвешенной суммой или, иначе, линейной комбинацией компонент входного вектора. А в чём смысл получаемого скалярного значения?

В статье попробуем ответить на этот вопрос с примерами, формулами, а также множеством иллюстраций и кода на Python, чтобы вы могли легко всё воспроизвести и поставить свои собственные эксперименты.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments9

Java и Docker: это должен знать каждый

Reading time7 min
Views83K
Многие разработчики знают, или должны знать, что Java-процессы, исполняемые внутри контейнеров Linux (среди них — docker, rkt, runC, lxcfs, и другие), ведут себя не так, как ожидается. Происходит это тогда, когда механизму JVM ergonomics позволяют самостоятельно задавать параметры сборщика мусора и компилятора, управлять размером кучи. Когда Java-приложение запускают без ключа, указывающего на необходимость настройки параметров, скажем, командой java -jar myapplication-fat.jar, JVM самостоятельно настроит некоторые параметры, стремясь обеспечить наилучшую производительность приложения.

В этом материале мы поговорим о том, что необходимо знать разработчику перед тем, как он займётся упаковкой своих приложений, написанных на Java, в контейнеры Linux.
Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments18

90+ бесплатных ресурсов для самостоятельного обучения онлайн

Reading time6 min
Views677K

Хочу поделиться списком полезных образовательных ресурсов, среди которых каждый найдет для себя что-то интересное и новое. Главное рассмотрим в начале — IT и иностранные языки. А следом будет подборка сервисов и ютуб-каналов, связанных с наукой, образованием в целом, бизнесом и творчеством.


image
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments20

Работа с PostgreSQL: настройка и масштабирование. 5-е издание

Reading time1 min
Views16K


Добрый день, хаброжители. Прошло много времени с выпуска 4 версии книги по PostgreSQL — успела выйти версия 9.5 и 9.6 этой замечательной базы данных. Материалов по практическому использованию этой БД также накопилось немало, поэтому я решил выпустить обновление по книге. Итак, встречайте:«Работа с PostgreSQL: настройка и масштабирование», 5-е издание.

Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments11

Тёмный путь

Reading time6 min
Views19K

image


Предлагаю вашему вниманию перевод оригинальной статьи Роберта С. Мартина.


За последние несколько месяцев я попробовал два новых языка. Swift и Kotlin. У этих двух языков есть ряд общих особенностей. Действительно, сходство настолько сильное, что мне стало интересно, не является ли это новой тенденцией в нашей языкомешалке. Если это действительно так, то это тёмный путь.


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


Проблема в том, что оба языка сделали ставку на сильную статическую типизацию. Кажется, оба намерены заткнуть каждую дыру в своём родном языке. В случае со Swift – это странный гибрид C и Smalltalk, который называется Objective-C; поэтому, возможно, упор на типизацию понятен. Что касается Kotlin – его предком является уже довольно строго типизированная Java.


Я не хочу, чтобы вы думали, что я против статически типизированных языков. Я не против. Есть определенные преимущества как для динамических, так и для статических языков; и я с удовольствием пользуюсь обоими видами. Я предпочитаю динамическую типизацию, и поэтому я иногда использую Clojure. С другой стороны, я, вероятно, пишу больше Java, чем Clojure. Поэтому вы можете считать меня би-типичным. Я иду по обеим сторонам улицы — если так можно выразиться.


Дело не в том, что меня беспокоит статическая типизация Swift и Kotlin. Скорее меня беспокоит глубина статической типизации.

Погрузиться в пучину тьмы
Total votes 51: ↑36 and ↓15+21
Comments77

Диагностика утечек памяти в Java

Reading time2 min
Views55K
В данной заметке я хочу показать каким образом можно определять и устранять утечки памяти в Java на примере из моей повседневной работы. Мы не будем здесь рассматривать возможные причины появления утечек, об этом будет отдельная статья, так как тема достаточно обширная. Стоит заметить, что речь пойдет о диагностике именно Heap Memory, об утечках в других областях памяти будет отдельная статья.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments22

Считаем до трёх

Reading time4 min
Views31K

Троичные вычисления


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



Я выбрал сбалансированную троичную систему, в которой один трит может представлять одно из трёх значений -1, 0 или 1. Весьма подробно о ней можно почитать тут.

На любые вопросы из разряда «зачем?!» я отвечаю заранее: «Because I can».


Читать дальше →
Total votes 85: ↑83 and ↓2+81
Comments64

Резюме, которые нас продают

Reading time6 min
Views11K


Друзья, сегодня мы поднимем тему не из мира цифр, багов и кодов, но при этом очень важную для каждого из нас. Каким бы простым этот вопрос не казался на первый взгляд, именно в этой области многие допускают «вредные» ошибки.

Итак, предлагаем вам взглянуть на предмет создания продающего резюме глазами службы персонала, которая оценивает вас на первом этапе отбора дистанционно и нуждается в некоем наборе информации, помогающей сделать верные выводы о вас, как о специалисте. Наш директор по административным и кадровым вопросам – Оксана Ткачева, дает рекомендации по созданию резюме, на которое рекрутеры обратят своё внимание в первую очередь. Итак, передаем слово автору.
Читать дальше →
Total votes 22: ↑12 and ↓10+2
Comments22

От моноидов к алгебрам де Моргана. Строим абстракции на Haskell

Reading time14 min
Views13K

Что общего у нормального распределения, конечных автоматов, хеш-таблиц, произвольных предикатов, строк, выпуклых оболочек, афинных преобразований, файлов конфигураций и стилей CSS? А что объединяет целые числа, типы в Haskell, произвольные графы, альтернативные функторы, матрицы, регулярные выражения и статистические выборки? Наконец, можно ли как-то связать между собой булеву алгебру, электрические цепи, прямоугольные таблицы, теплоизоляцию труб или зданий и изображения на плоскости? На эти вопросы есть два важных ответа: 1) со всеми этими объектами работают программисты, 2) эти объекты имеют сходную алгебраическую структуру: первые являются моноидами, вторые — полукольцами, третьи — алгебрами де Моргана.

Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments12

Универсальный грамматический анализатор естественных языков с нуля. Выпуск 1

Reading time13 min
Views13K
Компиляторы, интерпретаторы… Сколько им посвещено книг и проектов! Баста, надоело! А вот сунешся в область анализа естественных языков, и никакой информации! А все что есть как-то очень сложно, непонятно и не универсально. Была у меня идея создать средневековую лингвистическую новеллу. Чтобы можно было разговаривать с персонажами на каком нибудь древнем естественном или вымышленном языке. На Латыни например? И на Квенья. И чтобы они понимали. А почему бы и нет?
Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments5

Information

Rating
4,316-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity