Архив за 13 августа 2019 - 2

Porsche выпустила самый мощный Cayenne

Полное название флагманского «Кайена» теперь звучит как Porsche Cayenne Turbo S E-Hybrid. Как и на топовой модификации Panamera, которая в нынешнем поколении тоже стала гибридной, под капотом кроссовера остался четырёхлитровый битурбомотор V8 мощностью 550 лошадиных сил, однако в помощь ему добавили 136-сильный электромотор. В результате суммарная мощность силовой установки достигает 680 лошадиных сил, крутящий момент — 900 Н·м.

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

Tumblr снова продают, но порно останется под запретом - 1

Verizon, американский сотовый оператор, согласился продать блоговый сервис Tumblr компании Automattic Inc, которая владеет системой управления сайтами WordPress. Условия сделки не разглашаются, но, как пишет новостной сервис Axios со ссылкой на собственные источники, Tumblr продали «намного меньше» $20 млн.

Как заявил генеральный директор Automattic Мэтт Мюлленвег, в результате продажи Tumblr станет «дополнением» к WordPress.

«Tumblr — один из самых знаковых брендов в Интернете, — отметил Мэтт Мюлленвег. — Это важное место для обмена новыми идеями, культурой и опытом, которое помогает миллионам создавать сообщества с учетом их общих интересов. Мы рады добавить его в нашу линейку, которая уже включает WordPress.com, WooCommerce, Jetpack, Simplenote, Longreads и многое другое».
Читать полностью »

В своей практике я часто встречаю, в различном окружении, код вроде того, что приведен ниже:

[1] var x = FooWithResultAsync(/*...*/).Result;

//или
[2] FooAsync(/*...*/).Wait();

//или
[3] FooAsync(/*...*/).GetAwaiter().GetResult();

//или
[4] FooAsync(/*...*/)
    .ConfigureAwait(false)
    .GetAwaiter()
    .GetResult();

//или
[5] await FooAsync(/*...*/).ConfigureAwait(false)

//или просто
[6] awiat FooAsync(/*...*/)

Из общения с авторами таких строк, стало ясно, что все они делятся на три группы:

  • Первая группа, это те, кому ничего не известно о возможных проблемах с вызовом Result/Wait/GetResult. Примеры (1-3) и, иногда, (6), типичны для программистов из этой группы;
  • Ко второй группе относятся программисты, которым известно о возможных проблемах, но они не знают причин их возникновения. Разработчики из этой группы, с одной стороны, стараются избегать строк вроде (1-3 и 6), но, с другой, злоупотребляют кодом вроде (4-5);
  • Третья группа, по моему опыту самая малочисленная, это те программисты, которые знают о том, как код (1-6) работает, и, поэтому, могут сделать осознанный выбор.

Возможен ли риск, и на сколько он велик, при использовании кода, как в приведенных выше примерах, зависит, как я отмечал ранее, от окружения.

ConfigureAwait, кто виноват и что делать? - 1

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

Разбираем возможности конвертирования HTML в PDF браузером Google Chrome - 1

Недавно в одном стартапе я решал задачу генерации билетов в формате PDF. На тот момент уже был готов сайт с устоявшимся стеком технологий, поэтому я искал подход, который бы не потребовал использования дополнительных инструментов. В итоге я предложил сперва создавать билеты в формате HTML, а затем конвертировать в PDF с помощью браузера Chrome. Как оказалось, данным способом можно генерировать не только билеты, богато декорированные CSS, но и самые разные отчеты с графиками на JavaScript. В этой статье я расскажу о том, как для этих целей запустить Chrome, дам несколько советов по настройке CSS, а так же обсужу недостатки данного решения.

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

Анализируя статистику сайта, мы получаем представление о том, что происходит с ним. Результаты мы сопоставляем с другими знаниями о продукте или сервисе и этим улучшаем наш опыт.

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

На этом этапе есть ограничения инструментов анализа. Это одна из причин, почему мне было недостаточно инструмента Google Analytics, а именно, из-за ограниченной возможности видеть свои данные и манипулировать ими.

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

Это легко сделать в своём маленьком хранилище на основе файла access.log и для этого достаточно языка SQL.Читать полностью »

США отложили введение 10-процентной пошлины на китайские товары, акции Apple выросли

Акции Apple выросли примерно на 5 % после того, как торговое представительство Соединённых Штатов (USTR) объявило о том, что введение дополнительной пошлины в размере 10 % на приблизительно $300 млрд китайского импорта будет отложено до 15 декабря для таких продуктов, как сотовые телефоны, ноутбуки и мониторы, сообщает ресурс CNBC.

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

В сети появились более-менее официальные подробности о смартфоне Redmi с поддержкой сотовых сетей пятого поколения 5G. Вице-президент Xiaomi и глава бренда Redmi Лу Вейбинг (Lu Weibing) поделился информацией в китайской социальной сети Weibo. 

В Помпеях найдены «сокровища ведьмы»

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

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

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

Аналитики IDC подвели итоги второго квартала 2019 года на индийском рынке смартфонов. За отчетный период в этой стране было отгружено 36,9 млн смартфонов. Это рекордно высокий показатель для второго квартала года. Он на 14,8% больше показателя за предшествующий квартал и 9,9% больше показателя за второй квартал 2018 года. Кстати, сотовых телефонов в Индии за квартал было реализовано 69,3 млн штук.

На прошлой неделе стартовали продажи нового серверного процессора AMD EPYC 7002 на базе микроархитектуры Zen 2. О планах использовать его в своих WJL уже объявили Google и Twitter.

Первый чип для дата-центров на базе архитектуры Zen 2 - 1Читать полностью »


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