Рубрика «Программирование» - 651

«Если вы пашет поле, что вы предпочтете: двух сильных быков или 1024 курицы?»
— Сеймур Крэй

В туннеле под моим домом я встречаюсь с эльфами. Они мне и дают советы, как сделать суперкомпьютеры лучше - 1

Сеймур Крэй, отец «суперкомпьютеров», создатель индустрии суперкомпьютеров, инженер-электронщик и математик.

Ачивки Сеймура Крэя:

  • 1958 — За год собрал прототип 6-битного суперкомпьютера из бракованных транзисторов.
  • 1960 — Первая машина на германиевых транзисторах вместо ламп (CDC 1604).
  • 1963 — Обошел IBM в 3 раза по производительности и на 40% по цене (CDC 6600).
  • 1971 — Чтобы не увольнять 4 инженеров отказался от своей зарплаты.
  • 1975 — Первый коммерчески успешный векторный суперкомпьютер. Применение архитектуры команд «регистр-регистр» (Cray-1).
  • Дизайн суперкомпьютера в виде дивана (Cray-1).
  • 1988 — 500 MHz (Cray 3)
  • Нашел замену кремнию — арсенид галлия (GaAs) — в шесть раз быстрее кремниевых микросхем
  • 1994 — 1 GHz (Cray-4)
  • Чтобы не отвлекаться на посещение Белого Дома и встречу с Президентом США, он отказался от чести быть удостоенным Национальной медалью США в области технологий и инноваций.
  • Выкопал собственный противоядерный Vault13 c запасом топлива и воды на 4 года.

С днем рождения, Сеймур Крэй!

Читать полностью »

Как мы проверяем работоспособность серверного кода без мобильных клиентов - 1

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

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

Читать полностью »

Занимаясь музыкальным творчеством, я часто делаю аранжировки и записи на компьютере — используя кучу всяких VST плагинов и инструментов. Стыдно признаться — я никогда не понимал, как "накручивают" звуки в синтезаторах. Программирование позволило мне написать свой синтезатор, "пропустить через себя" процесс создания звука.

Я планирую несколько статей, в которых будет пошагово рассказано, как написать свой VST плагин/инструмент: программирование осциллятора, частотного фильтра, различных эффектов и модуляции параметров. Упор будет сделан на практику, объяснение программисту простым языком, как же все это работает. Теорию (суровые выводы и доказательства) обойдем стороной (естественно, будут ссылки на статьи и книги).

Обычно плагины пишутся на C++ (кроссплатформенность, возможность эффективно реализовать алгоритмы), но я решил выбрать более подходящий для меня язык — C#; сфокусироваться на изучении самого синтезатора, алгоритмов, а не технических деталей программирования. Для создания красивого интерфейса я использовал WPF. Возможность использования архитектуры .NET дала возможность библиотека-обертка VST. NET.

Ниже представлен обзорный ролик моего простого синтезатора, полученных интересных звучаний.

Предстоит нелегкий путь, если вы готовы — добро пожаловать под кат.

Читать полностью »

После того, как в предыдущих статьях данной серии обзоров распределённого Java-фреймворка Apache Ignite мы сделали первые шаги, познакомились с основными принципами построения топологии и даже сделали стартер для Spring Boot, неизбежно встаёт вопрос о кэшировании, которое является одной из основных функций Ignite. Прежде всего, хотелось бы понять, нужно ли оно, когда библиотек для кэширования на Java и так полным-полно. Тем, что предоставляется реализация стандарта JCache (JSR 107) и возможность распределённого кэширования в наше время удивить сложно. Поэтому прежде чем (или вместо того чтобы) рассматривать функциональные возможности кэша Apache Ignite, мне бы хотелось посмотреть, насколько он быстр.

Измеряем производительность кэша Apache Ignite - 1

Для исследования применялся бенчмарк cache2k-benchmark, разработанный с целью доказательства того, что у библиотеки cache2k кэш самый быстрый. Вот заодно и проверим. Настоящая статья не преследует цель всеобъемлющего тестирования производительности, или хотя бы научно достоверного, пусть этим занимаются разработчики Apache Ignite. Мы просто посмотрим на порядок величин, основные особенности и взаимное расположение в рейтинге, в котором будут ещё cache2k и нативный кэш на ConcurrentHashMap.
Читать полностью »

Микросервисы: пожалуйста, не нужно - 1
Иллюстрация @alvaro_sanchez

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

Естественно, в реальности все оказалось совсем наоборот. Когда смотришь назад, на произошедшее, то зрение оказывается ближе к 100%, чем когда смотришь с надеждой в будущее.

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

Когда я был начинающим программистом, – а впрочем, и позднее, когда я был начинающим ведущим разработчиком, – я думал, что спрогнозировать сроки, в которые ты что-то сделаешь, абсолютно невозможно. Или же, что хороший прогноз требует очень детальных проектирования и подготовки, примерно таких же по длительности, как и сама задача.

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

В одной из команд, где я работал, мы придумали оригинальный метод для предварительной оценки задач. Метод синтезирует некоторые известные из литературы приёмы, но в приведённой форме, пожалуй, никем не описан. Концепция была следующей: объективность (связь с измеримыми показателями); интегрируемость с Agile; повторяемость; быстрота оценки (меньше 0.5% от объема задачи); доступность для начинающих разработчиков. Я буду рад обсудить нашу идею и не исключаю, что кому-то из Хабрааудитории она придётся по душе.
Читать полностью »

Персона: создатель Perl Ларри Уолл — «великодушный пожизненный диктатор» - 1

Сегодня на «Хабре» уже был пост, посвященный дню рождения создателя языка Perl. Здесь хотелось бы подробнее поговорить о биографии и взглядах Ларри Уолла, о его мотивации к созданию языка программирования, а также привести несколько фрагментов из недавнего интервью.

Ларри Уолл – американский программист, лингвист и создатель языка программирования Perl, один из лидеров движения за бесплатный доступ к программному обеспечению.Читать полностью »

Во время своего доклада на второй день конференции Build 2014 евангелисты Microsoft Стивен Гуггенхаймер и Джон Шевчук рассказали о реализации поддержки Babylon.js для Oculus Rift. Одним из ключевых пунктов их демонстрации было упоминание разработанной нами технологии имитации линз:

Создание шейдеров на основе Babylon.js и WebGL: теория и примеры - 1

Я также присутствовал на докладе Фрэнка Оливье и Бена Констебля на тему использования графики в IE с применением Babylon.js.

Эти доклады напомнили мне об одном вопросе, который мне часто задают в отношении Babylon.js: «Что вы подразумеваете под шейдерами?» Я решил посвятить этому вопросу целую статью с целью объяснить принцип работы шейдеров и привести несколько примеров их основных типов. Читать полностью »

«Мне кажется, я иногда вижу сны на Perl`e»
— Ларри Уолл

  1. Ларри всегда по определению прав по поводу того, как Perl должен себя вести. Это значит, что у него финальное право вето на основные функциональные возможности.
  2. Ларри позволительно менять свое мнение по любому вопросу спустя какое-то время, независимо от того, использовал ли он Правило 1.

Уяснили? Ларри всегда прав, даже когда ошибается.

Лень, нетерпение и самомнение — три главных добродетели программиста. С днем рождения, Ларри Уолл - 1

Компактная биография Ларри выглядит вот так (Geek-код): GC/CS/E/H/IT/L/M/MU/PA/P/S/SS/TW/O d(+++)>+ s: a+>++>+++$ C++++$ UBAHS*++++$ P+++++(--)$ L !E? W+>++ N+++@ K+++>++++++@ w$ !O M->+ V--() PS+(-) PE(++) Y+ PGP->+ t+() 5 X? R>* tv@ b++>+++ DI+++ D? G(-) e++>+++@ h----() r+++ y++++ (расшифровка)

Ларри, как потомственный пастор, в детстве мечтал стать служителем церкви. Но пришлось идти в ИТ. Студетнтом он 3 годаработал в компьютерном центре университета. После универа, вместе с женой работали переводчиками Библии, изучали лингвистику, в надежде на то, что где-нибудь в Африке обнаружется племя со своим языком, но без письменности, и они разработают под этот язык письменность и одарят туземцев. В роли туземцев, спустя годы, оказались программисты.

Из-за денег, Ларри успел поработать в Unisys, NASA (JPL) и O'Reilly.

Из-за лени, нетерпения и самомнения Ларри написал rn (популярный клиент для Usenet) и утилиту patch (под UNIX). Чтобы стать пожизненным великодушным диктаторм, он написал язык Perl.

Ларри верит в типологию Майерс-Бриггс (INFP), а еще он двукратный мировой чемпион по запутанному коду на С.
Читать полностью »

Голос и видео для программистов. Как мы создаем конференцию, посвященную realtime communications - 1Идея ничего не стоит. Реализация, если о ней не говорить, тоже. Популярно рассказывать о платформе для разработчиков не очень легко, особенно если занимаешься магией с телефонными и видеозвонками. Но мы стараемся! И приглашаем вас 6 октября на конференцию о коммуникациях в реальном времени INTERCOM. В центре ВДНХ, хакспейс "СТАЛЬ". Зачем? Сейчас тема коммуникаций в реальном времени разбита на кусочки, которые мы обсуждаем на отдельных конференциях. Где-то про ботов и мессенджеры, где-то про работу с голосовыми звонками, где-то про видеосвязь. На INTERCOM мы впервые в России собрали кусочки вместе и пригласили интересных спикеров, которые расскажут нам, как все это работает вместе.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js