Pull to refresh
3
0
Roman Zabaluev @Haarolean

Software developer, engineer and a cat enthusiast

Send message

Шесть типов облаков, которые нужно знать – и что они рассказывают о погоде

Reading time4 min
Views488K


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

Но вам не нужен суперкомпьютер для предсказания того, как изменится погода у вас над головой в ближайшие несколько часов – подобные приметы известны в разных культурах уже много тысяч лет. Следя за небом и обладая некоторыми знаниями по формированию облаков, можно предсказать, будет ли дождь.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments19

Справочная. Роскомнадзор, что ты такое?

Reading time4 min
Views61K


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

Сегодня я предлагаю совершить небольшой экскурс в историю и вспомнить, кто, когда и почему создал Роскомнадзор и понять, что представляет собой организация сейчас. Кстати, этот пост — первый в новой рубрике “Справочная”. Цель создания рубрики — относительно коротко рассказывать обо всем, что может быть интересно всем нам (если есть желание, предлагайте темы в личку). Что же, поехали.
Читать дальше →
Total votes 107: ↑100 and ↓7+93
Comments87

Безумие дотфайлов

Reading time4 min
Views55K
Мы больше не контролируем свои домашние каталоги.

В моём собственном 25 обычных файлов и 144 скрытых. В дотфайлах хранятся данные, которые не принадлежат мне: они принадлежат программистам, чьи программы решили захватить моё пространство, предназначенное для хранения моих личных файлов.

Я не могу убрать эти файлы в другое место. Если я попытаюсь их удалить, они появятся снова. Всё, что я могу сделать — это сидеть и знать, что в темноте, за кулисами, они есть. Ожидание в тишине. Некоторые из этих программистов решили дополнительно разместить здесь несколько обычных файлов и каталогов. Они хорошо видны каждый раз, когда я выполняю ls. Понятия не имею, как в мою личную папку попали каталог node_modules, файлы package-lock.json, yarn.lock (я никогда сознательно даже не ставил yarn!), какие-то два странных лог-файла от какой-то Java-программы, явно использующей СУБД H2, и папка Desktop. Последнюю создал Steam, что довольно неудачно, поскольку на моей машине просто нет рабочего стола или какого-то десктопа. Боюсь того дня, когда услышу громкий стук в дверь — и один из этих программистов ворвётся и сообщит, что собирается хранить часть своей мебели посреди моей гостиной, если я не возражаю.
Читать дальше →
Total votes 186: ↑178 and ↓8+170
Comments339

Пространство генерации и пространство возможностей

Reading time10 min
Views14K
В этом туториале я расскажу о двух терминах, которые используются мной для описания процедурных генераторов: пространство генерации (generative space) и пространство возможностей (possibility space). Мы дадим определения этим двум терминам, а затем рассмотрим интерактивные примеры, чтобы понять разницу между ними. Эти термины действительно полезны для описания процедурного генератора и для того, чтобы понимать разницу между двумя генераторами. Давайте приступим!


Представьте огромную книгу, в которой представлен скриншот каждого отдельного мира Minecraft. Каждый скриншот помечен случайным seed, уникальным числом, которое можно ввести в Minecraft и сгенерировать этот мир. На первой странице представлен мир, порождённый из seed = 0, на следующей — мир из seed = 1, и так далее. В целом генератор миров Minecraft содержит 264 случайных порождающих значений, и это огромное число: игра может сгенерировать 18 446 744 073 709 551 616 миров. Каждый раз, когда вы нажимаете на «New World», на основе одного из этих seed создаётся мир. Число 264 — это размер пространства генерации Minecraft, множество всего, что игра может сгенерировать.


Теперь представьте, что мир Minecraft состоит только из обычной травы, бесконечно распространяющейся во всех направлениях. Под ней нет ни пещер, ни камня, нет деревьев и холмов, нет животных. Просто один слой тайлов травы. Кроме того, что это очень скучно, такой мир никогда не будет сгенерирован в Minecraft (если не использовать моддинг). Мы можем представить его, можем описать его, даже открыть Minecraft и создать его сами вручную — но Minecraft не может сгенерировать его.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments10

Как и зачем красть деревья в git

Reading time15 min
Views26K

trees


В этой статье я расскажу об одном полезном, но малоизвестном приеме работы с git — как можно легко создать коммит, используя дерево из другого коммита. Проще говоря, как получить нужное состояние проекта на какой-либо ветке, если это состояние уже когда-то и где-то было в репозитории раньше. Будет приведено несколько примеров того, как это позволяет элегантно решать некоторые практические задачи. И в частности я расскажу о найденном мной методе, который позволяет значительно упростить исправление множественных конфликтов при rebase. Кроме того, эта статья — отличный способ понять на практике, что из себя представляет коммит в git-е.

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

11 лучших шрифтов для программирования

Reading time3 min
Views255K
Много статей и сайтов сравнивают шрифты для программирования — всё это отличные ресурсы. Так зачем я опять поднимаю эту тему? Потому что сам всегда терялся в десятках шрифтов и не мог понять, какой лучше. Так что я опробовал много шрифтов и выбрал следующие для вас. Они довольно популярны и их легко получить. И самое главное, все эти шрифты бесплатны!

Я ранжировал шрифты по следующим показателям:

  • Насколько различимы схожие символы, такие как 0O, 1lI.
  • Легко ли читается шрифт (ширина строк, ширина/высота символов).
  • И мои личные предпочтения!

Все скриншоты сделаны в VSCode на одном фрагменте кода. Если не обозначено иное, то везде установлен размер "editor.fontSize": 14.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments117

Профессия: кибердетектив

Reading time9 min
Views20K
Веста Матвеева — эксперт в области информационной безопасности компании Group-IB, признанной изданием Business Insider UK одной из 7 самых влиятельных мировых организаций в индустрии кибербезопасности. За 6 лет она провела десятки экспертиз — технических разборов инцидентов в роли криминалиста, после чего перешла в отдел расследования и раскрыла несколько дел.

Веста приехала в Университет Иннополис по приглашению преподавателей и студентов программы магистратуры Разработка безопасных систем и сетей в рамках курса CyberCrime and Forensics. Гостья прочла лекцию о том, как глобализируется киберпреступность, какие тактики и инструменты используются для атак на финансовые и промышленные организации и какими методами пользуются киберкриминалисты для борьбы с хакерами.

image
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments15

Красный, белый, голубой: восемь правил подбора цветовой палитры, которые должны знать все

Reading time10 min
Views80K
Взаимодействие человека с компьютером во многом опирается на графические элементы интерфейса, и цвет играет в этом процессе не последнюю роль. Как однажды сказал Pierre Bonnard: «Цвет не просто делает дизайн приятным для глаз, но и подкрепляет его».

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


Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments10

Герман Клименко: «Нам всего-навсего осталась одна большая история — это деанонимизация»

Reading time16 min
Views64K
В начале июня я приехал на конференцию РИТ++, чтобы провести время с коллегами, которые организовали хабрастудию, а вечером отметить 11-й день рождения «Хабра». Мы вели прямую трансляцию с мероприятия и брали интервью у спикеров. Когда мне предложили взять интервью у Германа Клименко, советника президента РФ по вопросам развития интернета, я сразу согласился, потому что, во-первых, давно с ним знаком, ещё с начала 2000-х годов, а во-вторых, давно не видел, лет 10, наверное. Ну а в-третьих, у меня накопилось достаточно вопросов к людям, которые в том числе имеют отношение к развитию интернета в России. Поскольку формат интервью предполагал всего 10 минут общения, а Герман за время интервью ответил всего на несколько вопросов, я предложил отдельно встретиться и поговорить более обстоятельно. Мы беседовали 1,5 часа, ниже я предлагаю вашему вниманию текстовую версию интервью с небольшими сокращениями там, где они были возможны.


 
Читать дальше →
Total votes 113: ↑107 and ↓6+101
Comments497

UNIX-подобные системы содержат кучу костылей. Крах «философии UNIX»

Reading time29 min
Views106K
UPD от 2017-03-04: кто-то выполнил английский перевод. Обсуждение на Hacker News.

В первой части статьи перечислю кучу костылей UNIX, и вообще разных недостатков. Во второй — про «философию UNIX». Статья написана наскоро, «полировать» дальше не хочу, скажите спасибо, что написал. Поэтому многие факты привожу без ссылок.

Костыли в UNIX начали возникать ещё с момента появления UNIX, а это было ещё раньше появления не только Windows, но даже вроде бы Microsoft DOS (вроде бы, мне лень проверять, проверяйте сами). Если лень читать, хотя бы просмотрите все пункты, что-нибудь интересное найдёте. Это далеко не полный список, это просто те косяки, который я захотел упомянуть.
Читать дальше →
Total votes 455: ↑297 and ↓158+139
Comments700

Log in или Log on? Front-end или Frontend? Продолжаем разбираться

Reading time2 min
Views27K


В прошлый раз мы говорили о разнице между login и log in. В продолжение темы — ещё несколько нюансов, о которых вы просили рассказать в комментариях.

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

7 сервисов для мониторинга сайтов

Reading time4 min
Views121K
Здравствуйте! Часто перебои в работе сайта могут привести к потере клиентов, репутации, минусам в карму и прочим неприятностям. После покупки виртуального или выделенного сервера важно вовремя получать информацию о недоступности, поэтому сегодня я хочу рассказать о нескольких сервисах мониторинга сайтов/серверов и провести их сравнение.

image

На обозрение представлены следующие сервисы:
  1. host-tracker.com
  2. monitis.com
  3. monitorus.ru
  4. pingup.ru
  5. site24x7.com
  6. uptimerobot.com
  7. webopulsar.ru

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

5 вещей, которых вы не знали о многопоточности

Reading time10 min
Views291K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →
Total votes 86: ↑77 and ↓9+68
Comments40

10 вещей, которых вы не знали о Java

Reading time8 min
Views105K
Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?

Держу пари, что вы не знали как минимум половину из того, что я собираюсь вам рассказать. Давайте откроем для себя несколько удивительных фактов о внутренних особенностях Java.
Читать дальше →
Total votes 93: ↑91 and ↓2+89
Comments55

Исключения в Java, Часть II (checked/unchecked)

Reading time9 min
Views285K
Это вторая часть статьи (первая часть — try-catch-finally), посвященной такому языковому механизму Java как исключения. Она имеет вводный характер и рассчитана на начинающих разработчиков или тех, кто только приступает к изучению языка.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

1. Магия checked/unchecked
2. Пессимистичный механизм
3. throws с непроверяемым (unckecked) исключением
4. Множественные исключения
5. Или catch, или throws
6. Поведение компилятора/JVM
7. Overriding и throws
8. Передача свойства по наследству


1. «Магия» checked/unchecked



Механизм исключительных ситуация в Java связан с двумя элементами «магии», т.е. поведения, которое никак не отражено в исходном коде:
1. «Магию» java.lang.Throwable — в throw, catch и throws могут стоять исключительно Throwable или его наследники (мы уже разбирали в предыдущей лекции). Это «право» находиться в throw, catch и throws никак не отражено в исходном коде.
2. Все исключительные ситуации делятся на «проверяемые» (checked) и «непроверяемые» (unchecked). Это свойство присуще «корневищу» (Throwable, Error, Exception, RuntimeException) и передается по наследству. Никак не видимо в исходном коде класса исключения.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments12

Как указывать диапазоны дат в интерфейсах?

Reading time5 min
Views33K
Однозначного и исчерпывающего ответа на вопрос поверхностный поиск не дал, справочники академического характера чаще всего выдают результаты для изданий (в т.ч. с вариантами использования римских цифр, что не очень подходит для интерфейсов), поэтому хочется понять, как лучше указывать именно диапазоны именно дат и именно в интерфейсах и попробовать сформулировать правило или выявить закономерности. Для этого я вспомнил все, какие мог, кейсы, и упорядочил их в таблице — кейс, числовой пример, формат полный и сокращенный, для дней, недель, месяцев, кварталов, полугодий и лет (внутри поста).

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

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

Например, получаются вот такие странные штуки:


Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments28

Исследование результатов ЕГЭ, ГИА и олимпиад для московских школ. Из каких школ в какие ВУЗы поступают

Reading time4 min
Views33K
Месяц назад я писал про наше участие в хакатоне по открытым данным.

После хакатона мы не остановились на достигнутом, как это обычно бывает, а продолжили работу. У нас на руках оказались данные, к которым раньше имели доступ, наверное, только сотрудники Министерства образования: результаты ГИА и победы на олимпиадах за 2014-2015 год для 90% московских школ. Для 55% школ удалось собрать данные по ЕГЭ за 2015 год. Прокачали все аккаунты московских школьников в Контакте, посмотрели, какие ВУЗы они указывают у себя в профайлах после окончания.

Естественно, было интересно поизучать такой датасет. Сначала тривиальные вещи, о которых люди из образования, наверное, хорошо знают:
  • Баллы по ЕГЭ по гуманитарным предметам выше, чем по техническим. История — исключение;
  • Естественно-научные дисциплины посередине.


Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments31

Сетевые технологии в высшем образовании. Печальный опыт поиска молодых специалистов

Reading time4 min
Views88K
Думаю ни для кого не секрет, что последние несколько лет востребованность IT специалистов на рынке труда неумолимо увеличивается. Многие учебные заведения пытаются адаптироваться к этим требованиям и стараются вводить новые специальности либо увеличить кол-во мест для поступающих на уже существующие факультеты.

Несмотря на все эти старания, дефицит квалифицированных IT специалистов только увеличивается.

Данная статья является своеобразным криком души после нескольких десятков собеседований с различными молодыми кандидатами на должность “Сетевого/Системного инженера” в компанию, которая занимается системной интеграцией.

image

Началось все, когда компании понадобилось резко увеличить штат системных инженеров из-за больших объемов грядущих работ. Времени было с запасом, поэтому приняли решение нанимать молодых перспективных специалистов — выпускников факультета телекоммуникаций и тому подобных. Я сейчас не буду называть конкретные имена университетов, институтов или колледжей, но в нашем городе их предостаточно. Естественно мы понимали, что квалификация выпускников не позволит сразу использовать их в проектах и планировали организовывать внутрикорпоративное обучение, уже по конкретным областям (cisco, checkpoint, s-terra). Таким образом мы бы получили “заточенных” под наши нужды специалистов при весьма незначительных затратах.

Есть конечно очень много мнений и споров о том, каких лучше специалистов нанимать, опытных, не опытных, до 30 или старше, статья не об этом. Я бы хотел поговорить об уровне подготовки наших выпускников. Если кто-то заинтересовался этой историей, добро пожаловать под кат…
Читать дальше →
Total votes 55: ↑47 and ↓8+39
Comments486

Задача о 64 монетах, двух заключённых и одной шахматной доске

Reading time6 min
Views153K


Примечание переводчика: я заменил оригинальные обозначения сторон монеты head/tail на аверс/реверс, чтобы не вносить путаницу русскоязычными орёл/решка. На иллюстрации выше слева аверс (head), справа реверс (tail).

Спасение невозможно?


Это одна из тех типичных загадок о заключённых, в которых вы приговорены к смерти и можете спастись, только если докажете свои умственные способности тюремщику. Вы и ваш друг были заключены в тюрьму. Ваш тюремщик предлагает вам испытание. Если вы его выполните, вы оба будете освобождены.
Читать дальше →
Total votes 113: ↑111 and ↓2+109
Comments65

Справочник по Java Collections Framework

Reading time6 min
Views739K
Данная публикация не является полным разбором или анализом (не покрывает пакет java.util.concurrent). Это, скорее, справочник, который поможет начинающим разработчикам понять ключевые отличия одних коллекций от других, а более опытным разработчикам просто освежить материал в памяти.

Что такое Java Collections Framework?


Java Collection Framework — иерархия интерфейсов и их реализаций, которая является частью JDK и позволяет разработчику пользоваться большим количесвом структур данных из «коробки».

Базовые понятия


На вершине иерархии в Java Collection Framework располагаются 2 интерфейса: Collection и Map. Эти интерфейсы разделяют все коллекции, входящие во фреймворк на две части по типу хранения данных: простые последовательные наборы элементов и наборы пар «ключ — значение» (словари).

image
Читать дальше →
Total votes 36: ↑27 and ↓9+18
Comments21
1

Information

Rating
Does not participate
Date of birth
Registered
Activity