Архив за 20 мая 2019 - 4

Руководство «Коммерсанта» уволило замредактора отдела политики Максима Иванова и спецкора ИД Ивана Сафронова. Как стало известно в понедельник, уволенных поддержали коллеги, в результате увольняется весь политический блок газеты. Среди покидающих редакцию зам главреда Глеб Черкасов — а всего, на момент публикации, редакцию покидают 13 человек. Как рассказалЧитать полностью »

Источник утверждает, что европейские производители полупроводниковых изделий Infineon Technologies, AMS и STMicroelectronics пострадали от запрета США на поставку американской продукции китайской компании Huawei.

Акции STMicroelectronics подешевели на 4%, Infineon — на 3,4%, AMS — на 4,6%. Так проявились опасения рынка, что и европейские поставщики могут приостановить поставки своей продукции китайской компании.

Об авторе. Энди Томасон — ведущий программист Genomics PLC. Он с 70-х годов занимается графическими системами, играми и компиляторами; специализация — производительность кода.

Гены: краткое введение

Геном человека состоит из двух копий примерно по 3 миллиарда пар оснований ДНК, для кодирования которых используются буквы A, C, G и T. Это около двух бит на каждую пару оснований:

3 000 000 000 × 2 × 2 / 8 = 1 500 000 000 или около 1,5 ГБ данных.

На самом деле эти копии очень похожи, и ДНК всех людей практически одинаков: от торговцев с Уолл-Стрит до австралийских аборигенов.

Существует ряд «референсных геномов», таких как файлы Ensembl Fasta. Эталонные геномы помогают построить карту с конкретными характеристикам, которые присутствуют в ДНК человека, но не уникальны для конкретных людей.
Читать полностью »

Есть такое мнение, что всё многофункциональное — слабое. И правда, это утверждение выглядит логично: чем больше взаимосвязанных и взаимозависимых узлов, тем выше вероятность того, что с выходом из строя одного из них потеряет свои достоинства и всё устройство. Мы все неоднократно сталкивались с такими ситуациями в оргтехнике, автомобилях, гаджетах. Однако в случае с программным обеспечением ситуация обратная: чем больше задач покрывает корпоративный софт, тем быстрее и удобнее работа, привычнее интерфейс, проще бизнес-процессы. Унификация и сквозная автоматизация в компании решают проблему за проблемой. Но может ли таким «мультитулом» быть CRM-система, у которой давно сложился имидж программы для продаж и управления клиентской базой? Конечно, может. Более того, в идеальном мире — должна. Заглянем в анатомию софтверного организма?

CRM ++ - 1
Читать полностью »

Внимание: содержит системное программирование. Да, в сущности, ничего другого и не содержит.

Давайте представим, что вам дали задание написать фэнтезийно-фантастическую игру. Ну там про эльфов. И про виртуальную реальность. Вы с детства мечтали написать что-нибудь эдакое и, не раздумывая, соглашаетесь. Вскоре вы понимаете, что о мире эльфов вы знаете по большей части из анекдотов со старого башорга и прочих разрозненных источников. Упс, неувязочка. Ну, где наша не пропадала… Наученный богатым программистским опытом, вы отправляетесь в Гугл, вводите «Elf specification» и идёте по ссылкам. О! Вот эта ведёт на какую-то PDF-ку… так, что тут у нас… какой-то Elf32_Sword — эльфийские мечи — похоже, то что нужно. 32 — это, по-видимому, уровень персонажа, а две четвёрки в следующих столбцах — это урон, наверное. Точно то, что нужно, да к тому же как систематизировано!..

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

Язык JavaScript родом из раннего веба. Сначала на нём писали простые скрипты, которые «оживляли» страницы сайтов. Теперь же JS превратился в полноценный язык программирования, который можно использовать даже для разработки серверных проектов.

Современные веб-приложения сильно зависят от JavaScript. Особенно это касается одностраничных приложений (Single-Page Application, SPA). С появлением библиотек и фреймворков, таких как React, Angular и Vue, JavaScript стал одним из основных строительных блоков веб-приложений.

Пишем чистый и масштабируемый JavaScript-код: 12 советов - 1

Масштабирование подобных приложений, идёт ли речь об их клиентских или серверных частях, может оказаться весьма непростой задачей. Если в основе таких приложений лежит плохо продуманная архитектура, то их разработчики рано или поздно сталкиваются с определёнными ограничениями. Они тонут в море неприятных неожиданностей.

Автор статьи, перевод которой мы сегодня публикуем, хочет поделиться советами по написанию чистого JavaScript-кода. Он говорит, что статья рассчитана на JS-программистов с любым уровнем подготовки. Но особенно полезной она будет для тех, кто знаком с JavaScript хотя бы на среднем уровне.
Читать полностью »

Сегодня ночью стало известно, что Google приостановила бизнес с Huawei. Это означает, что смартфоны последней пока не будут получать обновлений Android, а грядущие аппараты Huawei и Honor не получат магазин приложений Google Play, то есть их выход за пределами Китая и вовсе под вопросом.

Чуть позже стало известно, что сотрудничество с Huawei прекращают также Intel, Qualcomm и Broadcom. Нужно понимать, что это не желание самих компаний, а требование властей США.

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

В этом посте описывается генератор уровней для моей игры-головоломки Linjat. Пост можно читать и без подготовки, но он легче усвоится, если сыграть в несколько уровней. Исходный код я выложил на github; всё обсуждаемое в статье находится в файле src/main.cc.

Примерный план поста:

  • Linjat — это логическая игра, в которой нужно закрыть все числа и точки в сетке линиями.
  • Головоломки процедурно генерируются при помощи комбинации из солвера, генератора и оптимизатора.
  • Солвер пытается решить головоломки так, как это делал бы человек, и присваивает каждой головоломке оценку интересности.
  • Генератор головоломок создан таким образом, чтобы можно было с лёгкостью менять одну часть головоломки (числа) и при этом все остальные части (точки) менялись таким образом, чтобы головоломка оставалась решаемой.
  • Оптимизатор головоломок многократно решает уровни и генерирует новые вариации из наиболее интересных, найденных на текущий момент.

Правила

Чтобы понять, как работает генератор уровней, нужно, к сожалению, разобраться с правилами игры. К счастью, они очень просты. Головоломка состоит из сетки, содержащей пустые квадраты, числа и точки. Пример:

Создание процедурного генератора головоломок - 1

Цель игрока — прочертить вертикальную или горизонтальную линию через каждое из чисел при соблюдении трёх условий:

  • Линия, идущая через число, должна иметь ту же длину, что и число.
  • Линии не могут пересекаться.
  • Все точки необходимо закрыть линиями.

Пример решения:

Создание процедурного генератора головоломок - 2

Ура! Дизайн игры готов, UI реализован, и теперь единственное, что осталось — найти несколько сотен хороших головоломок. А для подобных игр обычно не имеет смысла пытаться создавать такие головоломки вручную. Это работа для компьютера.
Читать полностью »

Компания E Ink Holdings (EIH), выпускающая электрофоретические экраны, начала выпуск полноцветных 26-дюймовых дисплеев Advanced Color ePaper (ACeP). Ранее, в первом квартале этого года, было начато производство 13-дюймовых дисплеев ACeP.

Несколько дней назад AMD заявила, что её продукты не подвержены уязвимостям RIDL и Fallout. Напомним, это две из трёх уязвимостей, входящих в группу Microarchitectural Data Sampling (MDS).

Теперь же AMD обновила своё заявление, добавив в него и третью уязвимость — ZombieLoad. Само заявление никак не изменилось, просто в него добавили ещё одно название.


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