Архив за 01 ноября 2017 - 4

Привет. Больше года мы ничего не писали на Хабре, а сейчас решили возобновить активность — и рассказать про наш новый проект =)

Пару месяцев назад нам в голову пришла довольно простая идея. Все знают формат «Черной Пятницы» – массовых распродаж товаров в оффлайне или онлайне. А мы решили провести такой же формат, но в b2b-формате, для бизнеса и предпринимателей.

Так появилась Цифровая Пятница 2017 – первая в Рунете (аналогов найти не смогли) массовая распродажа онлайн-сервисов для бизнеса. Кстати, было удивительно, что эта концепция оказалась для нашего рынка новой – и никто за все время не проводил такой stand-alone истории, хотя сама идея явно лежит на поверхности.

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

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

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

//обновления данных, полученных с устройств ввода
cotrols->Update()
...
void Player::Move()
{
  if (controls->MouseButonPressed(0))
  {
     ...
  }

  if (controls->KeyPressed(KEY_SPACE))
  {
     ... 
  }

  if (controls->JoystickButtonPressed(0))
  {
     ...
  }
}

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

Что можно предложить для решения проблемы?
Читать полностью »

Примерно две недели назад сайт Nikon Rumors сообщил, что из ассортимента крупнейшего магазина фототехники и сопутствующих товаров B&H исчезли карты памяти XQD производства Lexar. Учитывая, что незадолго до этого марка Lexar была продана китайской компании Longsys, можно было предположить, что выпуск карт памяти XQD под маркой Lexar прекращен.

Вчера представитель Lexar ответил на это предположение, развеяв опасения. Выпуск карт памяти XQD будет продолжен. Что касается запасов B&H, они будут пополнены в ближайшие недели.

Давайте знакомиться

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

«Ближе к делу»

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

C модулем подсчета посетителей было все наоборот. Пользователи не просто покупали и устанавливали его, они им реально пользовались! И поэтому регулярно звонили с вопросами в техподдержку, писали свои пожелания, рассказывали о нестандартных способах использования и, конечно, делились сложностями в работе. Читать полностью »

Компания Best Buy решила продавать iPhone X только «традиционным способом»

В прошедшую пятницу, когда iPhone X стал доступным для предварительного заказа, потенциальные клиенты Best Buy обнаружили, покупая телефон через розничных продавцов, им придется заплатить на сто долларов больше.

Вместо $ 999 или $ 1,149 в зависимости от объема памяти, Best Buy взимала 1099 долларов и 1289 долларов США.

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

Создаём собственный блокчейн на Ethereum - 1

Как создать приватный блокчейн Ethereum с нуля?

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

Инструкция включает в себя следующее:

  • Создание приватного блокчейна Ethereum с помощью geth.
  • Создание кошелька MetaMask для работы с приватным блокчейном.
  • Перевод средств между несколькими аккаунтами.
  • Создание, развёртывание и вызов смарт-контракта в приватном блокчейне с помощью remix.
  • Создание обозревателя блоков Ethereum поверх приватного блокчейна.

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

Компания Google представила новую технологию быстрого сопряжения устройств Bluetooth со смартфонами, которые работают под управлением Android 6.0 Marshmallow и более поздних версий ОС. При этом требуется обновление сервисов Google Play до версии 11.7.

В данный момент технология под названием Fast Pair поддерживается беспроводными наушниками Google Pixel Buds и Libratone Q Adapt On-Ear. В ближайшее время поддержка будет добавлена в гарнитуру Plantronics Voyager 8200.

Компания Garmin, на днях сообщившая о покупке компании Navionics, опубликовала отчет за третий квартал 2017 финансового года.

Доход за отчетный период составил 743,077 млн долларов. Год назад он был равен 722,250 млн долларов. Другими словами, за год доход вырос на 3%. Операционная прибыль, выраженная в виде доли дохода, тоже выросла — с 22,1% до 22,8%. При этом показатель валовой прибыли увеличился с 56,2% до 58,4%.

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

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

Заметка: если ознакомительная информация вас не интересует, то можете смело переходить к примерам кода, приведенным ниже.

Бесконечный скроллинг на Firebase - 1
Читать полностью »


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