?

Log in

No account? Create an account

Стой под стрелой

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

Категория: техника

Впечатления от iPhone после 6 лет Android/Windows телефонов
усы2
tonsky

Наконец вернулся к Apple. До этого отмотал три года на Nexus 5X, перед этим — Lumia 1520 и iPhone 4S. Последний до сих пор у меня лежит, я его даже включаю иногда, чисто поржать — современные приложения занимают примерно верхнюю половину экрана тулбарами, нижнюю — клавиатурой, а между ними остается места на 1-2 строки текста.

Так вот. iPhone 8. Пока свежи впечатления.

Очень маленький. Сильно меньше Nexus 5X, который и сам всего 5,2", мелочь по сегодняшним стандартам. iPhone 8 всего 4,7". Надо было брать плюс. И нет, десятка не спасет, потому что важна ширина экрана, а не высота (ну в кнопки я не попадаю, ну. Пальцы толстые).

Стекло и округлые формы — очень скользкий. Как обмылок. И нет, я не преувеличиваю. Чехлы я терпеть не могу, а без них телефон практически невозможно держать одной рукой, что-то нажимать и чувствовать себя уверенно, что он не выскользнет. Да что там, я даже из кармана каждый раз с опаской его достаю. Понимаю теперь людей, которые кольцо-держатель сзади клеят. Apple Pay вообще атас, по сути ты наклоняешь телефон ровно так, чтобы ему удобно было выскользнуть (от себя), и надеешься только на трение между большим пальцем и кнопкой home.

Лично у меня от одной этой картинки подкашиваются ноги

Кнопки громкости и включения с одной стороны (справа) были как-то удобнее. Наверное потому что большой палец сильнее сгиба указательного.

Приложения сильно веселее и вылизаннее. Тут никакого сравнения. Видно, что для iPhone стараются, даже одна и та же компания. Сбербанк, например, на голову красивее. Речь не о функциях, ничего принципиально нового они конечно не делают, но — анимации (да, не нужные, но приятные, satisfying, и небольшие), какие-то не знаю, переходы, взаимодействия, цвета, иконки. Твитбот, например, очень неожиданно удивил, как можно создать ощущение отзывчивости в условиях, когда Twitter API всем отвечает с одной скоростью.

1password работает прям лучше. Не знаю почему, я был уверен, что на iOS всё как раз анально огорожено и нормального менеджера паролей не сделаешь. Нет, он как раз лучше.

Интеграция с Маком, да, приятная. Сразу начинает какие-то звонки принимать, пароли шарить, использовать сеть телефона, показывать заряд телефона, наушников и т.д. AirDrop опять же.

Даже заряд показывает, лапочка. А ведь его никто этому не учил!

Можно фотки айФоном делать с Мака и сканировать документы. Всё без настроек, само заработало. Ну и приятно, что можно засинкать например контакты, не привлекая в процесс Гугл вообще. Экосистема, понимаешь.

Кнопки «взад» сильно не хватает. Многие приложения реализуют «свайп слева», многие, но не все. Гугл, например, этот жест интерпретирует как листание. Плюс иногда вылезет какой-то попап без очевидной кнопки закрытия и сиди думай, как убрать. Или клаву например схлопнуть как? 

Особенно бесит несимметричность камеры. Попасть в камеру — свайп влево, а выйти — по кнопке Home. Постоянно путаюсь.

Перегруженная кнопка Home. Там есть тап, двойной тап, длинный тап, и у них еще разные действия в зависимости от того, где ты находишься. Скажем, двойной тап это либо вызов Apple Pay, либо переключение между недавними приложениями.

А. Ну и иконки наконец все одного размера и формы.

Ну да, Андроид не мог выровнять даже размеры квадратов

Сам iOS тоже не без багов. То страничка не пролистнется, то настройки зависнут. Ну бывает.

Force touch я так и не распробовал. Предполагается что если ты сильно нажимаешь на экран, то это еще одно доп. действие, на которое навешаны какие-то дополнительные интеракции. Например, на Home Screen оно вызывает контекстные меню у приложений, в Сафари приближает картинки и т.п. Ну так вот, из-за того что этот жест в принципе есть, приходится нажимать long tap очень осторожно (т.к. чуть переборщил и уже force touch). А long tap это вещь более старая, более универсальная и как следствие более полезная (перестановка иконок на Home screen например). Одно толковое применение Force Touch все-таки есть — это превращение клавиатуры в трекпад чтобы двигать текстовый курсор.

Еще не понял до конца что делать с нотификациями. На Андроиде нотификации работали четко как инбокс с задачами. То есть они копились, а потом я их разгребал. В связи с этим очень важный жест «разделаться с нотификацией, т.е. убрать ее, отметить как обработанную». Так вот, на iOS как будто чтобы их выкинуть надо ДВА раза смахивать влево, а это капец как муторно. Если смахивать вправо, то оно откроет приложение с этой нотификацией, если влево — меню. А как быстро избавиться? И когда нотификация приходит баннером сверху, тоже непонятно, как ее сразу удалить, а не просто убрать с экрана.

После свайпа нужно либо жмакать Clear, либо свайпать влево еще раз

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

Видишь нотификации? А они есть (надо потянуть снизу, чтобы увидеть)

Неоднозначная навигация. Я люблю как — каждый экран живет ровно в одном месте. А тут допустим экран с виджетами можно вытащить на заблокированном экране слева, в нотификациях сверху или на нулевом экране home screen. То есть три места. Поиск — два (виджеты и любой home screen). Нотификации — два (заблокированный и сверху). Камера снизу из контрол центра, справа на заблокированном экране, сверху из нотификаций и еще просто из иконки. То есть четыре места. Путает короче. На андроиде как было? Два раза нажал питание — камера. Я только этим шорткатом и пользовался, у меня даже иконки нигде не было.

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

скролль прицельно, %username%!

Но в целом все равно iOS приятнее Android. Приложений больше, они качественнее, Cocoa (или как он у них называется) сильно веселее Material, по совокупности всё более причесано и меньше совсем очевидной тупни. Лучше, но всё равно даже близко не «совершенный, идеальный интерфейс», вполне такой себе продукт своего века, с плюсами и минусами, насколько это вообще в человеческих силах.


КПД веба
усы2
tonsky

Я тут выбрался на природу, а интернет тут только мобильный и только на букву Х (H, в смысле, ну прям не очень). И вот приспичило мне Ютуб-видосик посмотреть, где-то час в 720p.

Вы думаете что это было тяжело и больно? Как раз нет, средствами en.savefrom.net сам видеофайл, 600Mb в итоге скачался за интервал в пару-тройку часов. Мне норм, потому что я получил результат, примерно соответствующий физическим ограничениям и ситуации.

А вот что я не смог, так это открыть youtube.com на ноутбуке (через тот же мобильный интернет). То есть оно пыжилось очень сильно и долго, но максимум, что удалось увидеть — skeleton screen один раз (видимо, был закеширован где-то) и частичный лого в левом верхнем углу в другой раз с буквами «o» и «e» (серьезно, не знаю, как так, но вот так — реально только две буквы загрузились, и именно эти). При этом в network tab девтулов конечно много всякого происходило, что-то передавалось, запрашивалось, тянулось, ломалось, сервисворкеры че-то там шуршали, но результат — пустой экран, сколько не жди.

Ну как бы — а чего ты ожидал, без интернета-то? — но на самом деле чего я ожидал это веб-страницы с несколькими картинками. Просто подумайте — ну насколько сложно это должно быть, и насколько сложно это на самом деле сейчас? В вебе сегодня вообще общее место, каждый первый сайт жирный переросток, собранный из миллиона технологий, работающий только в предположении, что у тебя всё хорошо, тратящий на это в миллионы (106) больше ресурсов, и серверных, и сетевых, и клиентских, чем того требует задача, чем того требует получаемый результат вообще, и все делают вид, что это окей, потому что это поддерживает экономику видимо? Есть повод улучшать сети, покупать разработчикам новые мощные ноутбуки (в mbp mid 2018 можно воткнуть 32Гб RAM и запустить Atom и Slack одновременно!), переобучать их?

Я не разбираюсь, да мне и не очень интересны причины, но это всё чудовищное, просто ненормально гигантское несоответствие между задачами, средствами и результатом, делает меня грустным. Конечный пользователь, я, ничего не получает от того факта, что YouTube сделан на чем он там сделан — Polymer? Angular? — я получаю ту же самую простую веб-страничку с сеткой картинок и подписями-гиперлинками к ним. Еще раз: насколько это сложно? 1 HTML, 1 CSS? Я готов согласиться, что плеер, да, ему там требуется некое количество JS, все-таки нетривиальная задача, и какое-никакое кастомное взаимодействие, но всё остальное-то, боже мой? Зачем? Куда уходят эти тысячи человеко-лет, потраченные на достижение тривиального в общем-то результата непропорционально сложным и обходным путем? Ведь это всё зря, зря, мимо и низачем. Адское трение и чудовищный уход энергии в тепло вместо полезной работы. И тренд на то, чтобы делать хуже. Никто не заинтересован делать лучше. Когда это прекратится? (Никогда, я знаю, но отказываюсь в это верить)

https://twitter.com/cmuratori/status/1018985856843968512

Me: Everyone's web site is way slower than it should be.
Web: That's because they have to scale!
Me: But it seems like things still go down under load.
Web: ...
Me: Amazon runs AWS, and _their_ site didn't even stay up!
Web: Oooh look! Someone released a new JavaScript framework!



Зуб за зуб
усы2
tonsky

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

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

Дома у нас беспроводная колонка, которая умеет два одновременных устройства, и это вообще песня: «устройств» как минимум 4, поэтому чтобы послушать музыку откуда ты хочешь, надо как-то их спаривать, а на колонке, разумеется, «одна кнопка™» (с логотипом bluetooth, ни больше ни меньше) и что происходит вообще не очевидно.

Ну и эти веселые ситуации, когда проигрывание музыки/фильма прерывается секунд на 5, чтобы второе подключенное устройство (не специально, конечно, просто отспарить их еще сложнее, чем спарить) произвело какой-нибудь «пук» на нотификацию и отключилось обратно. Короче, колонка эта у нас проходит по категории «самый ненавистный предмет» и сейчас подключена проводом к стационарному компу. Двумя проводами даже: аудио и зарядкой.

Эппл-трекпад радует меня тем, что на каком-то расстоянии (ноут взял в соседнюю комнату) или по таймауту неактивности намертво отконнекчивается от макбука. Намертво — это не значит, что устройство пропадает, нет, устройства как раз друг друга видят, но разговаривать категорически отказываются. И никакое количество включений/выключений/сбросов/передобавлений это не лечит. Только перезагрузка ноута. Что характерно, после перезагрузки коннектится он легко и непринужденно. То есть всё в целом было в порядке, просто не хотели разговаривать. (видимо, какой-то драйвер в компе дохнет и не рестартует)

Или как я ночью перед конференцией пытался минут 20 заставить айпад и макбук увидеть друг друга по AirDrop, чтобы перекинуть слайды (макбук видел айпад, а мне надо было в обратном направлении гг). В итоге сделал через шнур и iTunes. И это всё эппловское, а не разных китайских производителей! Экосистема проявляется, разве что, в том, что Nexus 5X с макбуком соединить по bluetooth я в принципе не смог. Нерешаемая задача. Не хотят, и всё тут.

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

Я не знаю, но наверняка есть какая-то техническая причина, почему нельзя сделать нормально? Почему этот вот discovery такой ад? Почему устройства не хотят говорить? Из всего bluetooth-зоопарка у меня не было ни одного беспроблемного устройства. Ни одного! Единственно 100% надежно работающее беспроводное у меня дома — это микрософтовская клавиатура с USB-ресивером. Втыкаю/перетыкаю его по десять раз на дню, и всегда всё подхватывается мгновенно. Вот они как-то добиваются беспроблемной работы?

И в целом я был только рад, когда эппл выкинул CD-ROM — интернет и флешки тогда уже работали. Когда убрали Ethernet порт, уже был WiFi и он работал. А вот с блутусом как-то до сих пор не полетело.

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


AnyBar: OS X menubar status indicator
усы2
tonsky


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



Использую лично я для индикации состояния билда (вот плагин для boot-clj). Билд крутится в терминале, а так как экранчик у ноутбука маленький, то терминал на заднем плане где-то. Если сломалось — сразу видно по статус-бару. Вот видик, показывающий, как это работает, на старой версии.

Исходники и ссылка на скачивание на гитхабе:

https://github.com/tonsky/AnyBar

Вступайте в фан-клуб, в общем.

Ну и похвастаться:


без темы
tonsky
Наверняка, многим серьезным веб-программистом преходилось испытать неприязнь, когда они узнавали, что чтобы выложить веб-сайт надо еще изучать пхп. Все соглашаются (и в интернете я тоже читал) что это очень, очень плохой язык. Это на самом деле глупость и когда я прочитал я долго не мог поверить ходил спрашивал и оказалось не зря. Тепер ьвеб-сайты можно писать на самом популярном в мире языке джаваскрипте. Это революционный переворот и он происходит прямо на наших глазах. Что это значит для нас, ребята? Что мы уже знаем, как писать сйты по сути. Я был шокирован, как там все организовано, но похоже они все вопросы продумали с самого начала и договорились что это будет очень востребованный проект.Более того, умные C++ перцы из гугл которые по утрам ездят в автобусах набитых баскетбольными мечами уже работают над тем, чтобы джаваскрипт работал быстрее С++, потому что он комплируется сразу в результат, минуя стадию вычисления! Вы наверняка заметили это по тому, что gmail.com открывается за 5 секунд, а не 20 как это было в до-интернетную эпоху, может хотя бы самые древние. Его кстати тоже делали в гугл. Что это если не порыв я не знаю. То есть, если вы напишете свой сайт на nodejs, он автоматически будет бытсрым и будет масштабироватсья (обрабатывать столько клиентов, сколько пришло, это настоящая проблема в пхп была и некто не знал как с ней быть). Например, данные между разными запросами не изолированны и вообще можно использовать одни и те же глобальные переменные для всех клиентов и экономить память. В том же пхп это в принципе не возмонжно и засчет этого у ноды такая гиганская производительность. Там даже продумано если вы будете работать с другом или кто-то допустим, то я зык специально за счет очень удобной типизации можно писать так что вы не будете знать что и как вам передает ваш друг. Это очень удобно потому что позволяет меняь програму в одном месте и вообще не парится о том же друге что там у него програма все равно запустится.Только представьте! Любой кусок кода можно насать один раз. Например, функцию, переворачивающущю строку, и вызывать ее из браузера или включать музыку с телефона. Особенно если заморочиться совместимостью северного кода и особеностей разных браузеров. Также они добавили возможность создавать внутри функции другие функции и это очень круто, но я пока не понял как потом вернуться в первую функцию. Но самое главное, что над нодой сейчас работает туча народу просто, они переписывают все что было до них написано на ноду и у них получается лучше потому что они сразу заточились на производительность и чтобы было лучше а так же просто использовать. Например нужно сходить в базу данных создал проект на гитхабе сразу набежали форкнули завтра только пуллреквесты принять и можно заливать в продакшн на свой ноутбук. Сообщество очень дружелюбное, если кому-то удается сделать что-то работающее на ноде его обязательно хвалят и подбадревают потому что это правда успех. Я пока не понял как допустим считать файл но говорят эт из-за безопасности,там все очень надежно, ведь если к тебе вдруг идет миллион клиентов и вы облажаетесь в 10% случаев ты облажаешься перед 100 000 человек. Поэтому например если где-то произошла ошибка лучше сразу аккуратненько завершиться чем пазориться перед остальными, тем более если перезапустить сервер то там и память лишняя освободится и бегать начнет пошустрее, да и перезапускается он очнь бытсро. Иногда бывает быстрее перезапустить сервер чем дождаться окончания сборки мусора. Ктому же nodejs так оптимизирован что никогда не займет больше одного ядра а это значит что базу данных например можно поставить на тот же ноут на другое ядро для экономии ресурсов и надежности (иметь что-то на той же машине всегда надежнее, много ли что, все у кого есть дома интернет вы это итак знаете) и все будет быстро бегать и даже можно во что-нибудь пошпилить или дальше форум по nodejs почитать но тогда надо побольше ядер купить. Но в серверы как раз много ядер и ставят и как видите nodejs прекрасно справляется с этой задачей. Правда что бы писать на ноде нужно купить макбук потому что все примеры в интернете написаны на мак буке но я думаю если выделаете высокопроизводительный веб-сервис, вам всеравно прийдется пройти раунд финансирования у родителей чтобы потом его запускать. Вообщем я в восторге хотя немного напрягает что гдето должны быть проблемы но я пока не понял не столкнулся ая уже очнь долго с ней разбираюсь и пока не понял.