Новое

страница 102 из 176

Впечатляющая ежегодная презентация Apple WWDC. Формально для разработчиков, на самом деле смотрят, конечно, все. Презентовали новые iOS и macOS, которые выйдут публично осенью.

То, что заметят все:
- потерянные макбуки можно будет искать при помощи Bluetooth через сеть всех айфонов на планете;
- activation lock для макбуков, наконец-то. Украденный макбук перестанет работать и превратится в тыкву (читай запчасти);
- Sign in with Apple — регистрация и вход в приложения одной кнопкой (все стартапы дружно пошли программировать). Для каждого приложения генерируется уникальный почтовый ящик, так что можно легко отписаться и приложения никак не смогут вас затрекать. Google, FB и прочие маркетологи сильно недовольны сейчас;
- новое приложение для фото с использованием ML;
- переделали карты, но как и раньше, только для избранных стран, продолжаем пользоваться Google maps и maps.me :(
- клавиатура со свайпами (да, как в андроиде уже много лет);
- подкасты не забыты — тоже, как гугл, распознают тексты и позволяют по ним искать. Интересно, будет ли работать с русским?
- поработали над скоростью, обещают, что всё станет быстрее, а FaceID ускорится аж на треть;
- системник мак про за 6 тысяч баксов и гигантский (и кажется, очень хороший) ретина монитор от Apple за 5 тысяч долларов (за 6 тысяч матовый). Стойка к монитору ещё тысяча. Готовьте денежки, богачи! 💸

Для разработчиков:
- iPad-приложения можно перекомпилировать для маков чуть ли ни одной клавишей; для демо на сцену выпустили подозрительно улыбчивого разработчика Jira 🙈
- новая система верстки интерфейсов в Swift, простая прямо как в Keynote. Кажется, я смогу наконец сделать приложение, которое не осилил заверстать через сonstraints!
- новая платформа для AR, кажется хорошая (то, что обещает Magic leap, только без очков). Классная презентация майнкрафта с AR;
- голосовое управление сделали классное (нет, это не Voice Over, чуть другое, для видящих).

В целом: бодренько, ждем ускорения айфонов осенью и издеваемся над ценой за стойку монитора. Каноническая текстовая трансляция MacRumors.

Перевёл сегодня интерфейс одного проекта с одного языка на другой с помощью Google Cloud Translation API.

Сделать сначала грубый машинный перевод, посмотреть его «в живую» и потом писать нормальный перевод — классный способ. Сразу видно, какие интерфейсные элементы вообще не заведены в систему локализации.

Я попробовал несколько разных систем машинного перевода для этой задачи, самая хорошая - Google Translate. Она даже теги span и переменные в фигурных скобках не корёжит, переводит только тексты. Учитывая бесплатные полмиллиона символов перевода - даже с настройкой биллинга не придётся заморачиваться, скорее всего. Регистрируетесь в Google Cloud Platform, пишете небольшой питоновский скрипт и вперёд. Можете взять мой за основу.

Конечно, локализация (l10n) и интернационализация (i18n) проекта (разница между ними) — гораздо больше, чем просто перевод; а даже организация перевода для большого проекта с несколькими переводчиками — то ещё развлечение. Но это тема для гораздо более длинного поста.

Прошлой ночью по Москве у гугла прилегла сеть в Штатах. 4 с половиной часа, с 12 до 17 PT. Проблемы затронули как собственные сервисы Gmail, YouTube и прочие так и клиентов облака: Snapchat и другие.

Гугл потерял «три девятки» (99.99% доступности сервисов) в этом квартале.

С нетерпением ждём постмортем. Ожидаемо, что надёжность сети - последняя нерешенная проблема облаков. Интересно, как они её в результате решат и решат ли в принципе.

Мои сочувствия ребятам из России, у которых пользователи/клиенты в штатах (обычно я им завидую:). У вас была горячая ночь.

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

Вчера в Яндексе выступал Вадик Мармеладов, космический русский дизайнер, рассказывал (ютуб) про свои недавние работы [1, 2] и текущий проект LOT2046.

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

Побольше бы таких сумасшедших.

На алгоритме Диффи-Хеллмана держатся современная криптография и интернет.

Он позволяет двум незнакомым сторонам создать общий секрет по незащищенному каналу. То есть вы разговариваете без утайки, но при этом в результате разговора оба владеете информацией, которой точно нет ни у кого подслушивающего. Обычно говорят, что алгоритм позволяет «обменяться секретом», но это не совсем правда, речь всё-таки о создании нового секрета.

Вот одна картинка, которая помогла мне понять принцип работы алгоритма. Перевод мой специально для мамы. Мама, ты поймешь 100%.

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

Не корите себя, если очень стараетесь понять что-то в разработке и не получается. Скорее всего, часть ответственности на учителе. Если речь о вашем разработчике — просите объяснить яснее, вы имеете право понимать.

Эти три поста — мини-ода серверу Nginx и его создателю Игорю Сысоеву. Я не написал о покупке компании NGINX американским гигантом F5 за 670 миллионов долларов в феврале (профайл в Ведомостях и в Форбсе), исправляюсь.

Nginx — это скотч веб-разработчика. Вы ведь знаете, что именно с помощью скотча астронавты починили свой автомобиль на луне? С помощью Nginx можно скрепить разные части сайта между собой (микросервисы, ау), ускорить сайт с помощью кеширования (скорость работы Медузы и RAWG), серьезно сэкономить на хостинге и даже защититься от DDoS-атак. Nginx поддерживает и простейшие одностраничные сайты и гигантские корпорации. Это сервер, который вобрал в себя лучшее от таможни, DHL и завода.

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

Во-первых, перевели один очень старый сайт с http на https (это улучшает позиции в гугле), по пути убрали www из всех адресов и добавили кеширование, так что сайт стал открываться раз в 10 быстрее.

Интересная часть в том, что на сайте было много хардкод-адресов http://www..., и поменять исходный код было решительно невозможно (старый perl), так что мы использовали модуль ngx_http_sub_module, который позволяет переписать содержимое ответа на лету.

Мы не поменяли ни одной строки кода в движке сайта, все изменения — через настройки nginx.

Во-вторых, добавили щепотку динамического контента в кешированные nginx'ом страницы. Под нагрузкой наш django + react сервер отвечает не очень быстро. Для того, чтобы сайт отвечал мгновенно — мы кешируем странички для анонимов, то есть регулярно пересчитываем их, а при запросах мгновенно отдаем последнюю сохраненную версию.

Для проверки одной SEO-гипотезы нам потребовалось добавить несколько случайных ссылок на каждую страницу. Казалось, nginx-кеширование и динамический контент не сочетаются. Но нет, выручил SSI — технология родом из 1993, когда писали статический html-код страниц, а динамику добавляли маааленькими кусочками. Мы добавили в код своих страниц <include>, так что основная страница кешируется как и раньше, а блок со ссылками быстро отдается отдельным быстрым микросервисом.

Да здравствует nginx и инженеры, умеющие с ним управляться!

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

В ответ на предыдущий пост все пишут про очень красивый калькулятор Numi под Мак. Спасибо что пишете, это очень классно! Numi очень красивый и умеет кучу всего, но не умеет главного — переиспользовать результаты вычислений по-человечески (только через переменные).

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

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