Обновить
0
Алексей@0x414cread⁠-⁠only

Пользователь

Отправить сообщение

Наш опыт использования фотограмметрии при разработке компьютерной игры (Часть 2)

Время на прочтение5 мин
Охват и читатели17K
image

Сегодня мы продолжим рассказ о наших изысканиях в области фотограмметрии, но уже на примере создания материалов. Напомню, что в прошлый раз мы начали рассказывать вам об этой дисциплине и её опыте использовании при создании контента для трёхмерной компьютерной игры во вселенной Half-Life.
Читать дальше →

Стандарт ECMA-262 (JavaScript) в картинках, часть 3

Время на прочтение2 мин
Охват и читатели13K

В предыдущих частях рассматривались структуры execution context, объекты Function и указатель this. В третьей части речь пойдет о прототипном наследовании.
Читать дальше →

REM vs EM – Великий спор

Время на прочтение12 мин
Охват и читатели240K


Представляю вашему вниманию перевод достаточно большой и объемной статьи по поводу вечного спора, какие же единицы измерения использовать при верстке: em'ы или rem'ы. В каких случаях стоит использовать одни единицы, а в каких другие. Вас ожидает много кода, примеров и их объяснений.

Добро пожаловать в мир типографики и относительных единиц измерения =)
Читать дальше →

Qt для мобильной кросс-платформенной разработки

Время на прочтение2 мин
Охват и читатели19K
Хотелось бы представить размышления Ekke Gentz по применению Qt 5.6 в кросс-платформенной мобильной разработке. Также можно будет посмотреть видео с выступлением Ekke на MobileTechCon (на английском). Ниже идёт перевод заметки.

Возможно вы знаете, что моя основная деятельность это разработка бизнес приложений для BlackBerry 10. Но так как BlackBerry PRIV работает под управлением Android 5.1.1 (и ожидается 6.0), то пользователи просили меня выпустить кросс-платформенные приложения, работающие под BlackBerry 10, Android и iOS (а позже и Windows 10). Я не любитель веб- или гибридных приложений и предпочитаю разработку нативных программ. С другой стороны я не очень то хочу разрабатывать приложения для всех платформ нативным, но различным способом при помощи разных языков программирования, сред разработки и т.д.
Читать дальше →

Уличная грязь и симуляция движения пешеходов

Время на прочтение7 мин
Охват и читатели62K
С приходом весны и дождей на улице в глаза все чаще бросается одна проблема. Вот эта:



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

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

Шел я как-то по дорожке и вяло размышлял на тему того, что опять придется или тащиться в обход, или пачкать обувь. С возмущения типа «вот же дураки это проектируют» мысль плавно перетекла на слышанную когда-то байку про некий наукоград, где дорожки во дворах сперва не сделали вовсе, а потом просто заасфальтировали протоптанные людьми тропинки, получив сеть удобных жителям маршрутов. А оттуда мысль перекочевала к идее «а почему бы не сделать то же самое, но на компьютере?». Разработать программу, которая по заданной карте предскажет, где люди будут топтать газоны и где неплохо бы сделать асфальтовое покрытие?

Под катом — описание алгоритма и пара примеров его работы для реальных питерских дворов.
Читать дальше →

NPM и left-pad: мы разучились программировать?

Время на прочтение4 мин
Охват и читатели115K
Автор — Дэвид Хейни (David Haney), ведущий инженер-программист Stack Overflow

Итак, разработчики, время для серьёзного разговора. Вы уже наверное в курсе, что на этой неделе React, Babel и куча других популярных пакетов на NPM сломались. Причина довольно удивительная.

Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, имеет 11 звёзд на Github (сейчас 323 — прим.пер). Весь пакет состоит из 11 простых строчек, которые реализуют примитивную функцию вставки пробелов в левой части строк. Если какие-то из ссылок когда-нибудь умрут, вот его код:

module.exports = leftpad;
function leftpad (str, len, ch) {
  str = String(str);
  var i = -1;
  if (!ch && ch !== 0) ch = ' ';
  len = len - str.length;
  while (++i < len) {
    str = ch + str;
  }
  return str;
}
Что меня беспокоит, так это такое большое количество пакетов, где установлена зависимость от простой функции набивки строки пробелами, вместо того чтобы потратить 2 минуты и написать эту базовую функцию самому.
Читать дальше →

Fbi Detected: Как я обнаружил агентов ФБР

Время на прочтение3 мин
Охват и читатели53K
В новом выпуске «Черной археологии датамайнинга» мы немного поиграемся в шпионов. Увидим, что может узнать обычный Data Specialist на основе открытых в сети данных.

Всё началось со статьи на хабре, о том, что некий анонимный хакер делился слитыми в сеть данными агентов ФБР. Я получил эти данные, и стал смотреть, что с ними можно сделать? В данных есть только фамилия, имя, и служебные мейлы и телефон – немного информации.



Получив эти данные, я увидел, что они заканчиваются буквой J. То есть, датасет не полон. Интресено, каков его полный размер? Чтобы узнать его, надо построить статистику частоты встречаемости фамилий.

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

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

Один разработчик чуть не «сломал» пакетный менеджер NPM

Время на прочтение2 мин
Охват и читатели101K
Веб-разработчик Азер Кочулу (Azer Koçulu), автор более 250 модулей для Node.js, попал в неприятную ситуацию. В своём блоге он пишет, что несколько недель назад получил письмо от юриста компании Kik (мессенджер) с требованием отозвать модуль с аналогичным названием kik из пакетного менеджера NPM (Node Package Manager).

Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца kik без разрешения автора.

Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и left-pad — маленький модуль из 11 строк кода на JavaScript. Он используется при установке зависимостей между пакетами через NPM, в том числе в Node.js, JavaScript-транскомпиляторе Babel и огромном количестве других билдов. Только за прошлый месяц left-pad скачали 2 486 696 с сервера NPM, по их статистике.
Читать дальше →

Дружим Scala и Android с помощью Macroid

Время на прочтение11 мин
Охват и читатели6.4K
imageТак как на работе я пишу на старой доброй Enterprise Java, меня периодически тянет попробовать что-то новое и интересное. Так получилось, что в один момент этим новым и интересным оказалась Scala. И вот однажды, просматривая доклады со Scala Days, я наткнулся на доклад Ника Станченко о библиотеке под названием Macroid, которую он написал. В этой статье я попробую написать маленькое приложение для демонстрации её возможностей и рассказать об основных фишках этой библиотеки. Код приложения целиком доступен на Github.

Если вам захотелось узнать, как эта библиотека помогает подружить Scala и Android, добро пожаловать под кат.
Читать дальше →

BEM с человеческим лицом

Время на прочтение9 мин
Охват и читатели23K

Звучная аббревиатура BEM пришла к нам из лабораторий Яндекса. Там, как и в случае с XSLT, применение BEM решили возвести в абсолют: под BEM'ом в Яндексе понимают целое семейство утилит и подходов, объединенных единой идеологией блочной архитектуры веб-приложений. Как любая тоталитарная система, BEM требует соблюдения строгих правил при разработке, не редко вступающих в конфликт со здравым смыслом небольших проектов, не сравнимых по ресурсам с Яндексом. И да, то самое чувство, когда читаешь официальные доки по BEM.


Однако, как часто бывает в процессе эволюции больших систем, под давлением интеллекта и безлимитных сроков рождается технологический алмаз, настолько же маленький и самостоятельный, насколько и ценный, который огранят уже другие. Да, BEM с его спасительной строгостью — это явное откровение. Каждый, кто на моих глазах причащался, мгновенно становился счастливым. Однако, после первой волны наслаждения приходит осознание, что второй подход к этому снаряду может порвать ментальные связки по всему объему мозга. И вот уже слышны жалобы на слишком большую сложность освоения, на чрезмерную многословность, на (внимание!) увеличение количества мегабайт в HTML и CSS, и кто знает на что еще, не относящееся к делу.


Соглашусь, трудно взять и начать писать BEM без разбега: и нотация глаз колет, и старые трюки не проходят, и думать приходится системно. И вообще, писали как-то годами без BEM'а и писать будем! А ведь для легкого и непринужденного преодоления порога вхождения нужно сделать всего два движения. Во-первых, понизить сам порог, смягчив BEM. И во-вторых, немного подтянуться самим. Тогда переход будет ровненьким и мы мягко вкатимся в эру читабельного и поддерживаемого CSS.

Как мы дошли до жизни такой?

C++17, который мы потеряли

Время на прочтение6 мин
Охват и читатели63K

5-го марта 2016-го года в городе Джэксонвилл закончился очередной съезд комитета ISO C++. Люди собирались предварительно-окончательно решать, что же войдёт, а что не войдёт в стандарт С++17. Конечно, ещё не 2017-ый год и кое-что ещё, возможно, переиграется. Тем не менее, есть мнение, что именно данное мероприятие очертило С++17 в его будущем виде.

Я не буду тут тянуть кота за хвост и искать толерантные выражения: нас ждёт катастрофа. Стандарты С++11/14 были очень значительным скачком вперёд, но на этом всё закончилось. С++17, обещанный когда-то «мажорным» релизом, по факту не несёт в себе ничего существенного. Немного синтаксического сахара, пару мелочей в стандартную библиотеку — и на этом всё. Отголоски данной трагедии уже звучали некоторым эхо на Хабре, но я всё-таки решил обобщить информацию и понять, куда мы катимся.
Читать дальше →

Ферроэлектрическая (сегнетоэлектрическая) память и электронные чернила — идеальное сочетание для батарейного питания

Время на прочтение7 мин
Охват и читатели16K
Когда Texas Instruments оснастил свою знаменитую низким энергопотреблением серию MSP430 ферроэлектрической памятью, работать с ней стало еще легче и приятней, ведь такая память совмещает преимущества флэша и оперативной памяти. А новые лончпады с сегментным индикатором — просто готовая платформа для какой нибудь домашней автоматизации. А что если нужен графический дисплей? Тут на помощь приходят электронные чернила, ведь они потребляют энергию только при обновлении и способны годами радовать красивой контрастной картинкой, питаясь от одного комплекта батарей. Если вам интересен опыт программирования подобного устройства — добро пожаловать под кат. Я расскажу о том, что такое ферроэлектрическая память, и зачем она нужна, как добиться максимально низкого энергопотребления и получить красивую картинку на электронной бумаге и при этом воспользоваться на техасе кодом, написанным под ардуино.


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

JetBrains C++ night: впечатления и записи докладов

Время на прочтение3 мин
Охват и читатели11K
Привет, Хабр!

Буквально на днях мы выпустили очередной релиз CLion 2016.1, нашей кросс-платформенной IDE для разработки на C и C++. Передохнув от релизной суматохи, хотим поделиться впечатлениями о проведенном недавно нами мероприятии, посвященному разработке на C++.

24 февраля этого года в офисе компании JetBrains собралось более 50 человек на мероприятие JetBrains C++ night. Основную часть аудитории составляли C++ разработчики из питерских и не только IT-компаний.

Хотя большую часть времени заняли доклады наших разработчиков, видеозаписи которых опубликованы на нашем канале (см. ссылки ниже), нашей основной целью было неформальное общение с C++ сообществом, которое есть в Питере или приехало поучаствовать в конференции C++ Russia.

В целом, нам кажется, что первый блин вышел не комом, хотя нам есть над чем работать. Главное, нам удалось пообщаться, узнать много интересного, услышать множество пожеланий и вопросов к нашим продуктам, да и просто понять, какой же разработкой занимаются в C++ мире в Питере и в России вообще. Так, например, мы неожиданно для себя получили запрос на поддержку Android проектов на CMake (Android Studio, в которую включена поддержка C++ на базе CLion, CMake не поддерживает; а CLion в свою очередь не имеет сейчас Android поддержки).
Читать дальше →

Автоматическое дополнение JS-кода из базы Stack Overflow

Время на прочтение1 мин
Охват и читатели24K
Пару недель назад Stack Overflow выложил в открытый доступ дамп всего контента, опубликованного на сайтах в сети Stack Exchange за 2014-2016 гг, в формате XML. Там все вопросы и ответы, комментарии и оценки: всего 33,8 ГБ в архиве.

Разработчик веб-приложений Эмиль Шутте (Emil Schutte) нашёл полезное применение этому дампу. Он извлёк оттуда фрагменты кода, которые соответствуют критериям (одобренные ответы с более 50 голосов и тегом "javascript") и проиндексировал их.



Так появилась программка Autocomplete from Stack Overflow. Если написать что-то в форме, то она ищет подходящий фрагмент в базе Stack Overflow — и автоматически его предлагает.
Читать дальше →

1 000 000 жилых домов России

Время на прочтение2 мин
Охват и читатели69K
Есть прекрасный сайт www.reformagkh.ru. На нём можно найти, управляющую компанию, закреплённую за домом, сколько денег, на что тратится и всё такое. Но кроме этого можно узнать разные интересные вещи о нашей стране в целом, например, для каждого дома на сайте указана дата его постройки, поэтому можно посмотреть, как строилась Москва с 1900 года:



Ещё более эпичная картинка получается, если посмотреть на Россию целиком:


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

Изучаем дерево исходников Windows 10: от телеметрии до open source

Время на прочтение8 мин
Охват и читатели51K
image

Насколько бы закрытым ни было программное обеспечение Microsoft, информации о своем внутреннем устройстве оно выдает предостаточно. К примеру, экспорт функций из библиотеки по именам дает представление о ее интерфейсах. В свободном доступе есть и отладочные символы, которые повсеместно используются для диагностики ошибок в ОС. Однако на руках у нас все равно имеются только скомпилированные бинарные модули. Становится интересно: а какими они были до компиляции? Давайте попробуем разобраться, как вытащить побольше информации об исходных кодах, не делая ничего незаконного.
Читать дальше →

Emacs таинственный: Путешествие в калькулятор

Время на прочтение11 мин
Охват и читатели10K


Ничто так не скрыто от нас, как то, что лежит на поверхности.
Сунь Цзы и Чжугэ Лян (вольный перевод)


Предисловие



Случилось сие в одном из роликов на YouTube. При просмотре программистского урока нужно было срочно перевести 377 в десятичную систему. Мы не стали раскладывать это на тройки бит, представлять степени восьмёрки или просто не обращать на это внимание и пропустить этот неважный момент. Мы запустили калькулятор в операционной системе, пододвинули его окно к центру экрана и там всё выяснили. Да, это оно — число 255.

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

Первый контакт



Как и следовало ожидать, при использовании Emacs на протяжении месяцев или просто многих лет наступает Emacs головного мозга. Поэтому такие случаи не проходят даром и среди ночи в голове возникает вопрос: «Как же всё-таки в Emacs'е перевести 377? Он хотя бы это умеет? Ну, хотя бы 8 возведёт в степень?».

Наутро, зарядившись энергией в виде чая с горстью шоколадных конфет, мы открываем Emacs и начинаем его исследование.

Перевод из одной системы в другую

Потокобезопасные сигналы, которыми действительно удобно пользоваться

Время на прочтение15 мин
Охват и читатели20K
В мире существует множество библиотек, реализующих сигналы в C++. К сожалению, у всех реализаций, с которыми я сталкивался, есть несколько проблем, которые не позволяют писать простой многопоточный код с использованием этих библиотек. Здесь я расскажу об этих проблемах, и о том, как их можно решить.
Читать дальше →

Суперскалярный стековый процессор: продолжаем скрещивать ужа и ежа

Время на прочтение6 мин
Охват и читатели8.5K

Продолжение статьи, где удалось продемонстрировать, что фронтенд стековой машины вполне позволяет спрятать за ним суперскалярный процессор с OoO.
Тема данной статьи — вызов функций.
Читать дальше →

Как обнаружить переполнение 32-битных переменной в длинных циклах в 64-битной программе

Время на прочтение5 мин
Охват и читатели9.1K
Одна из проблем, с которой сталкиваются разработчики 64-битных приложений, это переполнение 32-битных переменных в очень длинных циклах. С этой задачей хорошо справляется анализатор кода PVS-Studio (набор диагностик Viva64). На тему переполнения переменных в циклах есть ряд вопросов на сайте StackOverflow.com. Но поскольку мои ответы могут счесть исключительно рекламными, а не как полезную информацию, я решил описать возможности PVS-Studio в статье.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Ярославль, Ярославская обл., Россия
Дата рождения
Зарегистрирован
Активность