Как стать автором
Обновить
6
0
MIkhail Subbotin @mixailflash

Solution Architect

Отправить сообщение

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

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

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


image
Читать дальше →
Всего голосов 28: ↑15 и ↓13+2
Комментарии26

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

Время на прочтение4 мин
Количество просмотров46K
image

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

Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии8

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

Время на прочтение10 мин
Количество просмотров70K

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

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

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


Читать дальше →
Всего голосов 61: ↑56 и ↓5+51
Комментарии361

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

Время на прочтение9 мин
Количество просмотров46K

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

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

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

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

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

Всего голосов 14: ↑12 и ↓2+10
Комментарии3

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

Время на прочтение8 мин
Количество просмотров104K


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

Всего голосов 205: ↑197 и ↓8+189
Комментарии734

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

Время на прочтение6 мин
Количество просмотров24K


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

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

Время на прочтение5 мин
Количество просмотров190K
Вот некое простое значение:


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


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


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


data Maybe a = Nothing | Just a

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

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

Время на прочтение31 мин
Количество просмотров45K
Продолжаем расшифровывать и местами облагораживать хардкорные доклады спикеров JPoint 2016. Сегодня доклад поменьше, всего час с копейками, соответственно, концентрация пользы и отжига на одну минуту зашкаливает.

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





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

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

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

Время на прочтение2 мин
Количество просмотров4.6K

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

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

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

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

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

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

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

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

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

Время на прочтение6 мин
Количество просмотров677K

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


image
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии20

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

Время на прочтение1 мин
Количество просмотров16K


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

Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии11

Тёмный путь

Время на прочтение6 мин
Количество просмотров19K

image


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


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


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


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


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


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

Погрузиться в пучину тьмы
Всего голосов 51: ↑36 и ↓15+21
Комментарии77

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

Время на прочтение2 мин
Количество просмотров55K
В данной заметке я хочу показать каким образом можно определять и устранять утечки памяти в Java на примере из моей повседневной работы. Мы не будем здесь рассматривать возможные причины появления утечек, об этом будет отдельная статья, так как тема достаточно обширная. Стоит заметить, что речь пойдет о диагностике именно Heap Memory, об утечках в других областях памяти будет отдельная статья.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии22

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

Время на прочтение4 мин
Количество просмотров31K

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


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



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

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


Читать дальше →
Всего голосов 85: ↑83 и ↓2+81
Комментарии64

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

Время на прочтение6 мин
Количество просмотров11K


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

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

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

Время на прочтение14 мин
Количество просмотров13K

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

Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии12

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

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

Информация

В рейтинге
4 319-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность