• Максимальное количество значений в enum Часть II

    Часть первая, теоретическая | Часть вторая, практическая



    Продолжаем поиск максимального возможного количества значений в перечислении.
    На этот раз сосредоточимся на практической стороне вопроса и посмотрим, как на наши достижения будут реагировать IDE, компилятор и JVM.
    Читать дальше →
    • +11
    • 2,1k
    • 7
  • Хабрастатистика: как Хабр пережил самоизоляцию

      Привет, Хабр.

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



      Для тех, кому интересно, что получилось, продолжение под катом.
      Читать дальше →
    • Пост хвастовства домашними офисами

        image

        Привет, это ваша дорогая редакция. Мы тут все на удаленке, а к вечеру стало немного грустненько. Поэтому этот материал мы объявляем постом хвастовства домашними рабочими местами. Начать предлагаем с хоум-офисов команды Хабра — попробуйте по должности, хобби и увлечениям угадать, кто где работает. А потом заходите в комментарии и оставляйте свои фотки.
        Читать дальше →
      • 10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

        • Перевод

        Кроме огромных репозиториев с источниками для подготовки к интервью, здесь много чего интересного


        Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.


        image


        А я его перевел, т.к. показалось, что пост многим будет интересен. Перевод очень вольный: я опустил нерелевантные промо-ссылки и гипер эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, перейдем к списку.
        Читать дальше →
        • +62
        • 73,2k
        • 8
      • «Яндекс» отчитался о выручке за 2019 год, которая составила почти 175,4 млрд рублей



          14 февраля 2020 года российская поисковая система и интернет-портал «Яндекс» обнародовал неаудированные финансовые результаты за четвертый квартал 2019 года и 2019 год.

          Выручка «Яндекса» в четвертом квартале 2019 года составила 51,7 млрд рублей и выросла на 33% по сравнению с аналогичным показателем за четвертый квартал 2018 года. Консолидированная выручка «Яндекса», без учета сервиса «Яндекс.Маркет», выросла по сравнению с 2018 годом на 39% и составила 175,4 млрд рублей.

          Размер скорректированной чистой прибыли компании за 2019 год составил 23,5 млрд рублей, что на 6% больше, чем за 2018 год.
          Читать дальше →
        • Простые числа — насколько велико наше бессилие?

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

            image

            Эту метафору будет проще понять, если провести аналогию с черной дырой: мы не знаем, что находится под ее горизонтом событий, и чтобы это узнать нам нужно придумать способ, как туда добраться. Нечто подобное существует в мире математики. Данное уравнение — это настоящая «формула» простого числа, но чтобы ею пользоваться, нам нужно придумать, как искать подходящие {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, w, v, x, y, z}.

            Черная дыра и данное уравнение — это предельные состояния чего-то реального и абстрактного. И, если о первом существует достаточно догадок и представлений, то о втором, практически ничего не известно. Но, что если это действительно «математическая» черная дыра? Разве вам не интересно что может произойти, если мы попадем под горизонт?
            Под горизонт.
          • Заметка о void в JavaScript и TypeScript

            • Перевод
            Если вы, до того, как заинтересовались JavaScript, писали на традиционных языках с сильной типизацией, то вы, возможно, знакомы с концепцией void. Это — тип, использование которого сообщает программисту о том, что соответствующие функции и методы при их вызове ничего не возвращают.



            Сущность void имеется также в JavaScript и TypeScript. В JS это — оператор. В TS это примитивный тип данных. И там и там void ведёт себя не так, как могли бы ожидать многие из тех, кто сталкивался с void в других языках.
            Читать дальше →
          • Huawei начала устанавливать Deepin Linux вместо Windows 10 на ноутбуки


              Некоторые обозреватели называют Deepin DE «самой прекрасной средой рабочего стола на рынке»

              Несмотря на внесение в «чёрный список» (entity list) правительства США и сообщения о сбоях поставок комплектующих в июне, подразделение ноутбуков Huawei ещё работает.

              Сейчас компания начала продажу со своей торговой площадки VMALL моделей ноутбуков MateBook 13, MateBook 14, MateBook X Pro с предустановленной ОС Deepin Linux. Это дистрибутив с собственной средой рабочего стола Deepin DE, которую некоторые западные обозреватели называют «самой прекрасной средой рабочего стола на рынке» (single most beautiful desktop on the market). Дистрибутив занимает первое место в рейтинге дистрибутивов, наиболее похожих на macOS. Хотя интерфейс можно настроить и в стиле Windows, как показано на скриншоте выше, а также в стиле GNOME Dash, KDE Plasma, Budgie Desktop.
              Читать дальше →
            • Жизнь на частицах

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

              Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!

              Под катом много мегабайт гифок.

              Читать дальше →
            • Как я создавал прибыльный глобальный SaaS проект, от разработки до продаж

              • Tutorial
              Некоторые люди здесь знают меня как основателя двух прибыльных SaaS проектов и автора популярных статей о них (статья про Postio, статья про Menumake). В этом тьюториале я расскажу о том как я, обыкновенный разработчик, в одиночку создавал свой первый глобальный проект и что из этого получилось (TL;DR: хеппи-энд и первые продажи). Ну и заодно пробежимся по всем проблемным вопросам, начиная о том как найти неконкурентную и гарантированно прибыльную идею (оставим создание следующего Гугла более амбициозным и умным людям), и заканчивая тем, как принимать платежи глобально, находясь при этом в России. Летс гоу.

              Ищем идею


              Я всегда был сторонником правила, что поиск хорошей идеи — это не случайность, а обычный аналитический процесс. Есть много мест и способов найти проверенную реальностью идею, но поскольку однажды я твитнул это…
              Читать дальше →
            • Чистая прагматичная архитектура. Мозговой штурм

                Закрадывалась ли вам в голову идея переписать своё жирное энтерпрайзное приложение с нуля? Если с нуля, то это ж ого-го. Как минимум кода будет раза в два меньше, верно? Но ведь пройдёт пара лет, и оно тоже обрастёт, станет легаси… времени и денег на переписывание не так много, чтобы делать идеально.

                Успокойтесь, начальство всё равно не даст ничего переписать. Остаётся рефакторить. На что лучше всего потратить свои невеликие ресурсы? Как именно рефакторить, где проводить чистки?

                Название этой статьи — в том числе отсылка к книге Дяди Боба «Чистая Архитектура», а сделана она на основе замечательного доклада Victor Rentea (твиттер, сайт) на JPoint (под катом он начнёт говорить от первого лица, но пока дочитайте вводную). Чтения умных книжек эта статья не заменит, но для такого короткого описания изложено весьма хорошо.

                Идея в том, что популярные в народе вещи вроде «Clean Architecture» действительно являются полезными. Сюрприз. Если нужно решить вполне конкретную задачу, простой изящный код не требует сверхусилий и оверинжиниринга. Чистая архитектура говорит, что нужно защищать свою доменную модель от внешних эффектов, и подсказывает, как именно это можно сделать. Эволюционный подход к наращиванию объема микросервисов. Тесты, которые делают рефакторинг менее страшным. Вы ведь уже знаете всё это? Или знаете, но боитесь даже подумать об этом, ведь это же ужас что тогда делать придётся?

                Кто хочет получить волшебную анти-прокрастинационную таблетку, которая поможет перестать трястись и начать рефакторить — добро пожаловать на видеозапись доклада или под кат.



                Читать дальше →
              • Создаем своих криптокотиков (Часть 1)

                • Перевод
                • Tutorial
                В первых числах декабря 2017 года, пользователи блокчейн-проекта Ethereum столкнулись с неприятным открытием — любые их транзакции просто перестали подтверждаться. Фактически, вся сеть перестала функционировать из-за неожиданно разросшегося в размерах мемпула.

                Совсем скоро стало понятно в чем же дело — во всем виноват оказался проект CryptoKitties. Это забавная игрушка, работающая на блокчейне Ethereum и позволяющая пользователям разводить «котят», скрещивать их и продавать как обычные критовалютные токены. В какой-то момент 15% всех транзакций в Ethereum приходились на криптокотят! А к моменту написания этой статьи, игроки потратили на котят уже 23 миллиона долларов!

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

                cryptocat
                Хочу криптокотика
              • 61 способ улучшить SEO вашего сайта

                • Tutorial


                Недавно мы закончили курс по SEO в Нетологии и составили для себя чек-лист того, что обязательно нужно сделать на сайте «Я люблю ИП» для поисковой оптимизации. Но эти советы универсальны для любого проекта. В статье вы найдёте список практических рекомендаций со всего курса из 13 лекций от 8 разных специалистов, а также полезные ссылки и сервисы, которые помогут вам улучшить SEO вашего сайта.


                Для кого эта статья:


                • для веб-дизайнеров и разработчиков, которые хотят создавать сайты, изначально оптимизированные под SEO,
                • для владельцев интернет-ресурсов, которые хотят самостоятельно разобраться в SEO, чтобы увеличить поисковый траффик.

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


                Читать дальше →
              • Магия SSH

                  С SSH многие знакомы давно, но, как и я, не все подозревают о том, какие возможности таятся за этими магическими тремя буквами. Хотел бы поделиться своим небольшим опытом использования SSH для решения различных административных задач.

                  Оглавление:

                  1) Local TCP forwarding
                  2) Remote TCP forwarding
                  3) TCP forwarding chain через несколько узлов
                  4) TCP forwarding ssh-соединения
                  5) SSH VPN Tunnel
                  6) Коротко о беспарольном доступе
                  7) Спасибо (ссылки)
                  Читать дальше →
                • Основы Docker за Х часов и Y дней

                  0. Вступление


                  Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.
                  Читать дальше →
                • Лекция Виталия Харисова «10k»

                    Виталий vithar Харисов — один из ключевых разработчиков и руководителей Яндекса. На московском Я.Субботнике по фронтенду Виталий рассказал про лёгкую версию поиска для медленных соединений и способы оптимизации кода, позволяющие уложиться в 10 килобайт.


                    Читать дальше →
                  • Погружение в разработку на Ethereum. Часть 1

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

                    Читать дальше →
                  • Публикация артефакта в Maven Central через Sonatype OSS Repository Hosting Service

                    На написание этой статьи меня сподвигла некоторая разрозненность источников информации по такой
                    важной, на мой взгляд, теме, как публикация своих артефактов в Maven Central. Конечно, следует
                    отдать должное сотрудникам Sonatype: их официальный гайд (ссылка в конце статьи) достаточно полно
                    описывает весь процесс. Но в нём нет некоторых неочевидных тонкостей (вроде проблемы хранения
                    паролей), и он сам выглядит немного неряшливо. На русском же языке на эту тему ресурсов я не нашёл в
                    принципе. Лично для меня это не страшно, но многих это может остановить.

                    Внимание, много текста
                  • Malware + Blockchain = ❤️

                    • Tutorial

                    Эта статья является продолжением цикла о написании умных контрактов на платформе Ethereum. В первой части я пообещал показать, как создать новую криптовалюту на Solidity (в мире блокчейна это является чем-то вроде аналога "Hello, world!"). Но на самом деле в этом нет смысла, так как об этом уже написано несколько хороших статей (пример из доков Solidity, пример с главной страницы Ethereum).


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


                    BTW все написанное ниже имеет чисто образовательный характер.


                    Читать дальше →
                    • +22
                    • 25,5k
                    • 5
                  • Пишем умный контракт на Solidity. Часть 1 — установка и «Hello world»

                    Люди, интересующиеся темой блокчейна, уже не раз слышали о проекте российско-канадского программиста Виталика Бутерина — Ethereum, а в вместе с ним и о так называемых умных контрактах. В данном цикле статей я постараюсь максимально просто описать суть Ethereum, умных контрактов, концепцию газа и показать, как пишутся умные контракты.


                    Smart Contract & Gas


                    Если на пальцах, "умный контракт" — это некоторый код, живущий внутри блокчейна. Любой участник сети может его вызвать за небольшую плату. Эта плата и называется Gas, дословно "топливо". Зачем это нужно? Для защиты майнера от злоупотребления мошенником его ресурсов.


                    Немногие знают, но даже в биткоине есть возможность писать эти самые контракты, но в силу некоторых причин этим мало кто занимается. Одна из главных проблем — язык Script не Тьюринг-полный и написать что-то более менее серьезное непросто (чтобы вы понимали масштаб проблемы — нет даже возможности добавить цикл). В случае с Ethereum все чуть по другому, языки Тьюринг-полные, и есть риск, что кто-то напишет контракт вида


                    // Это псевдокод
                    foo = 0;
                    while (True) {
                        foo++;
                    }

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

                    Читать дальше →