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

Безблокировочная хеш-таблица — это медаль о двух сторонах. В некоторых случаях они позволяют достигать такой производительности, которой не получить другими способами. С другой стороны, они довольно сложны.
Читать полностью »
Однажды я писал о том, что отступы можно считать показателем сложности кода (хотя и довольно грубым). Сами по себе отступы нейтральны, так как они – лишь средство форматирования текста, но всё дело в том, что они используются для выделения особых блоков программ, например – управляющих конструкций. Читая код и натыкаясь на отступ, программист вынужден принимать во внимание то, на что указывает отступ, держать в памяти контекст, в котором существует выделенный блок. Это, естественно, повторяется, если в выделенном отступами участке кода появляется ещё один особый фрагмент.
Если не обращать внимание на содержание текстов, то вот как обычно выглядит сложный код, участки которого похожи на лежащие на боку буквы «V», и простой код, блок которого, если не учитывать разную длину строк, похож на прямоугольник.
Чем больше отступов – тем сложнее обычно и код
Читать полностью »
С началом работы над Java 9 было анонсировано удаление критически важных классов из пакетов sun.* (понятное дело Sun, а в последствии и Oracle заявляли, что их использование является собственным риском компаний и проектов), что вызвало шквал критики и недовольства со стороны сообщества (ибо highload решения для которых производительность это все, используют скрытые возможности sun.*). Предыстория началась 15 лет назад с выходом версии языка 1.4, за это время большое количество библиотек, фреймворков, приложений успели внедрить закрытый код в свой.

Вот только не полный перечень проектов, которые у всех на слуху: Scala, Kafka, Akka, Hadoop, Cassandra, Hazlecast и прочие…
Читать полностью »
Здравствуйте, дорогие читатели. Сегодня мы публикуем внеочередной перевод — это будет обзорная статья блистательного Ноэля Уэлша о принципах вероятностного программирования. Статья публикуется по заявкам читателей, которые задают нашему блогу все более высокую планку — и это, безусловно, здорово!
Читать полностью »

На Хабре много статей. Но не каждая показывает, как размышлял автор, его грабли и действия.
Здесь я хочу вам рассказать, как я делал пасхалку для логотипа веб-студии в которой я работал.
Читать полностью »

Функциональный язык программирования Elixir набирает популярность, а один из последних фреймворков для создания одностраничных приложений — Angular 2 — недавно вышел в релиз. Давайте познакомимся с ними в паре статей, создав с нуля полноценный back-end на Elixir и Phoenix Framework, снабжающий данными клиентское приложение-frontend на базе Angular 2.
Hello, world — не наш вариант, поэтому сделанное при необходимости можно будет применить в реальных проектах: весь представленный код выложен под лицензией MIT.
Объем статьи большой огромный! Надеюсь на столь же огромное количество комментариев — любых. Не раз замечал, что из комментариев получаешь не меньше, чем от основной статьи, а иногда и больше.
В первой статье будет несколько вступительных слов и работа над back-end. Поехали!
15 лет назад не было Хабрахабра, не было фейсбука, и что характерно, не было компилятора С++, с выводом диагностических сообщений на русском. С тех пор, вышло несколько новых стандартов С++, технологии разработки сделали гигантский скачек, а для написания своего языка программирования или анализатора кода может потребоваться в разы меньше времени, используя существующие фреймворки. Пост о том, как я начинал свою карьеру и путем самообразования и написания компилятора С++, пришел к экспертному уровню. Общие детали реализации, сколько времени это заняло, что получилось в итоге и смысл затеи — тоже внутри.


Условная матрица неточностей для нейросети и тестового набора из 500 программ длиной в 3 строчки. Каждая ячейка содержит среднюю вероятность ложно-положительного результата (крупным шрифтом) и количество тестовых программ, из которых это значение выведено (меньшим шрифтом, в скобках). Насыщенность цвета коррелирует с вероятностью ложно-положительного результата
У программистов скоро появится хороший помощник: умная нейросеть, которая способна выполнять рутинные задачи. Более того, с помощью такой нейросети люди могут создавать программы, даже не зная синтаксиса конкретного языка и фактически не умея программировать. Нужно составить алгоритм и поставить задачи — а нейросеть напишет код для их решения.
Читать полностью »

Мы продолжаем публиковать лекции легендарного Гарвардского курса CS50, которые мы переводим и озвучиваем специально для JavaRush. Сегодня представляем вам сразу три лекции — семнадцатая продолжает знакомить с базами данных SQL, а восемнадцатая и девятнадцатая лекции — о JavaScript.
Все три лекции под катом, там же список всех переведённых на сегодняшний день лекций (напомним, что в курсе их 24).
Что вы узнаете, прослушав этот курс: