Как стать автором
Обновить

Комментарии 65

А проблема на самом деле не только в iCloud, а в механизме обработки часовых поясов. Заметил такую штуку на прошлой неделе в JavaScript, разбирая такое же поведение одной библиотеки (дата на год в прошлом). А дело вот в чём:
alert(new Date(2014,0,1));
выдаёт в Chrome: Tue Dec 31 2013 23:00:00 GMT+0300 (RTZ 2 (зима)), а в Firefox: Wed Jan 01 2014 01:00:00 GMT+0400 и только в IE 9 — Wed Jan 1 00:00:00 UTC+0300 2014
Причем у меня это всплыло в куске, который парсит дату в ISO8601, возможно у Apple алгоритм похож.
Спасибо нашему правительству за очередную головную боль. Кто знает, где это ещё всплывет.
Разница в год, и разница в час — это две большие разницы. А так да, правительство во всем виновато, кто ж еще.
Там алгоритм был такого плана: парсится текстовая строка с датой. Сначала берётся год — 2014, создаётся объект дата 01.01.2014 00:00:00 (new date(2014,0,1)), чтобы потом распарсить месяц, число, время и добавить в дату, а Хром вместо этого создаёт дату: 31.12.2013 23:00:00. Оп, и мы уже год назад.
Я понимаю о чем вы, но и вы поймите: date(01.01.2014 00:00:00) — date(31.12.2013 23:00:00) = interval(1 hour). Никак не год. В статье же автор говорит, что создал заметку сегодня (не 1 января в 00:00), а на выходе получил дату 5 октября 2013, то есть ровно год назад. Мне кажется, чтобы ТАК ошибиться с часовым поясом, эппл нужно было нанять очень «правильного» индуса с очень «правильным» ПХП-скиллом.
Давайте рассмотрим пример с 5 октября 2014. Имеем строку «2014-10-5 12:00».
1. Парсим год: 2014
2. Создаём объект дата 01.01.2014 — получаем дату: 31.12.2013 23:00:00
3. Парсим месяц — 10 — меняем месяц в нашей дате: 31.10.2013 23:00:00
4. Парсим число — 5 — меняем число в нашей дате 5.10.2013 23:00:00
5. Парсим время — 12:00, в нашей дате 5.10.2013 12:00:00

Вот мы и год назад. Не пытаюсь оправдять Apple. Просто вариант причины такого поведения
Эмм… Прям немного особой уличной математики от Девида Блейна :) Боюсь спросить, а вы всегда так с датами жестоки? Все это очень клево и захватывающе, но… зачем? Не проще ли сразу отпарсить и создать готовую дату, чем создавать 01.01.2014 и потом к ней прибавлять число и меяц? Хотя, индус с ПХП и оплатой за количество символов в коде апплодировал бы стоя за вашу находку, это факт.
Библиотека не моя, я просто разместил объяву :-) Сам удивился, когда такое увидел, а тут и симптомы похожие, дай, думаю, поделюсь.
Ну значит точно индус писал ))
Это баг в Chrome (https://code.google.com/p/chromium/issues/detail?id=417640), наложившийся на кривой апдейт винды (http://support2.microsoft.com/kb/2998527/en-us) с исправленными для РФ часовыми поясами (ведь 26.10 произойдет переход на новые таймзоны)

Firefox ведет себя правильно.
Странно вообще-то, что дата создания записи берется с клиента, а не сервера.
Да я понял про что вы.

Просто все в один голос говорят, что виноваты винда + хром. Не преуменьшаю их косяка.
Но никто не задумался, что при создании заметки использовать дату с клиента это как-то «попахивает».
Да, здесь вся большая троица засветилась: Microsoft, Google, Apple. Все молодцы.
С датой в iCloud, видимо, решится, но исчезнувшие заметки, к сожалению, не вернутся.
для защиты от минусов: support.microsoft.com/kb/2998527/en-us привносит баг: new Date(2014,0,1) — Tue Dec 31 2013 23:00:00 GMT+0300 (RTZ 2 (зима))
31 декабря 2013 никак не было зоны +3
Про это обновление я сразу подумал, пришлось найти вариант обхода проблемы для тех у кого обновление стоит, и тех у кого нет
Вариант обхода: new Date(Date.UTC(2014,0,1))
А хороший вариант. Спасибо!
Это НЕ вариант обхода.
Создается дата 04:00:00 по Москве. Если попытаться сместить ее в 00:00:00 будет тот де глюк — прыгнем на час назад в 2013 год.
С тем же успехом можно чинить через new Date(2014, 0, 1, 1, 0, 0, 0)
хорошо, часы и минуты можно обнулить потом
В том и дело, что нельзя.

С точки зрения Windows НЕ СУЩЕСТВУЕТ времени между 2014-01-01 00:00:00.0 и 2014-01-01 01:00:00.0 не включая правый конец интервала.
После обновления не существует???
что выдаёт следующий код?

var d = new Date(Date.UTC(2014,0,1))
d.setHours(0);
console.log(d);
После обновления чего? Винды? Если после установки апдейта 2998527 — выдает 31 декабря 2013 года, 23:00
Дело в том, что MS решили что для перехода на новые часовые пояса они сперва введут с 1 января какбы летнее время, а потом 26 октября переключат его на зимнее…
Ищите год назад
Пишите напрямую в Apple, там обычно помогают
Присоединяюсь. Но у меня не дата сбилась, а просто часть (!) заметок исчезла. Синхронизация была между mac-ом и iphone.
После этого храню все в 1Password в виде заметок.
Так у меня тоже заметки все исчезли. Про дату я узнал уже только когда пытался найти хоть где-нибудь исчезнувшие заметки.
Решил проблему с Evernote — заменила мне и заметки и напоминания.
Плюс, синхронизируется не только с Apple.
Может дело в другом? Ранее заметки синхронизировались не с iCloud, а с Гуглом, а потом вы поменяли на iCloud и «гугловские» уплыли…?
Я во времена iOS 6 таким путем чуть сам заметок не лишился, еле восстановил. Но это было из-за непонимания принципов работы синхронизации всего добра в облако…
Нет. С гуглом не синхронизировались.
НЛО прилетело и опубликовало эту надпись здесь
Обновил iOS.
Обновил iOS. Не удалял ничего. Учёткой никто не пользуется. Гуглил — итог: если есть резервная копия, то доставайте оттуда разными путями. Если нет резервной копии, то делать особо нечего.
НЛО прилетело и опубликовало эту надпись здесь
Так я сделал бекап. Просто потом он затерся автоматом новыми. А потеря заметок обнаружилась не сразу.
НЛО прилетело и опубликовало эту надпись здесь
Я раньше тоже так думал. Но на сколько я понял, он как раз перезаписывает последнюю всегда. По крайней мере я не нашёл старых копий.
Пожалуй, самый надёжный носитель информации — флешка/жёсткий диск, лежащий на полочке, дублированный другой флешкой / другим жёстким диском с той же информацией, лежащим на другой полочке, подальше от первой.
где-то на хабре это уже обсуждалось. пожар — и капут обеим флешкам. лучше их географически разносить прям вот совсем подальше друг от друга. я уже давно подумываю регулярно закачивать свои бэкапы на жеский диск/флэшку и возить в ячейку банка. но лень побеждает благие намерения :)
Можно просто использовать одновременно 2-3 облачных провайдера для хранения важных бэкапов. Например, AWS S3 + Dropbox + GDrive.
плюс флешка в банке, плюс флешка дома, и плюс все это закриптовано, чтоб паранойя спала спокойно. видимо, я к этому все же приду в конце концов, когда «победю» свою лень. проблема с флешкой в банке еще в том, что если данные регулярно обновляются и бэкапить надо хотя бы раз в неделю — то нужно быть законченным педантом, чтоб заствалять себя еженедельно наведываться в банк с новой порцией бэкапов. тут уж, безусловно, криптование + несколько облачных провайдеров однозначно побеждают.
> еженедельно наведываться в банк с новой порцией бэкапов

Это одна из причин, по которым я и не дошел до стадии «арендовать ячейку в банке».
А так — лежит себе контейнер на трех разных провайдерах + еще и на своем сервачке, быстро и удобно.
Руки все не дойдут совсем все это дело автоматизировать, чтобы положил в каталог локально — а оно сразу засунулось в контейнер, удалилось локально и залилось везде.
А, ну еще есть локальная флешка, на случай если вдруг не будет интернетов, а инфа из контейнера срочно понадобится.
Dropbox исспользовал раньше AWS S3 раньше для хранения данных и был одним из самых больших их клиентов, не думаю что сейчас что-то изменилось.
НЛО прилетело и опубликовало эту надпись здесь
можете пояснить, причем тут Chrome? (я так понимаю, речь про Google Chrome на Windows)
В Chrome на Windows в веб-версии iCloud показываются неверные даты создания заметок. В firefox при этом показывается нормально.
но как это связано с пропаданием заметок с айфона?
пропадают ли заметки, если не пользоваться web-версией iCloud в Chrome?
Изначально у меня была версия, что из-за проблем с датой и могли пропасть все заметки за 2014 год (может оно так и есть). И проявляется эта проблема в Хроме. Точно выявить проблему сложно — репорт в Apple написан, может найдут в чем проблема именно пропажи заметок.
НЛО прилетело и опубликовало эту надпись здесь
Да. Год правильный.
Проверил еще раз, в chrome неправильно показывается, в firefox правильно. Это именно с заметками.
НЛО прилетело и опубликовало эту надпись здесь
Судя по комментариям выше, виноваты Chrome + апдейт Windows
Храню заметки в Google, при настройке учетных записей почты можно выбрать, что бы там и заметки сохранялись, а для приложения «Заметки» хранилищем по-умолчанию выбрана учетная запись Google. Из дополнительных плюсов — заметки можно посмотреть в веб интерфейсе Gmail или просто в десктопном почтовом клиенте.
Мне вот только не нравится, что в гугле сохраняются и черновики заметок в гигантском количестве (в AllMail)
А у меня iPad на iOS 8 стал несколько раз в день выдавать сообщение «SIM-карта не вставлена», хотя ее в нем никогда не было. Раньше сообщение появлялось, но только при включении устройства. Сейчас же каждые несколько часов выскакивает. Раздражает жутко.

image

Никто не знает чем это лечится?
У меня на iPad mini Retina такая же проблема. Пока думаю что дело в обильно насыщенной багами iOS 8. У вас есть аккаунт разработчика? Не тестировали 8.1 beta 1? Вдруг в этой версии проблема решена.
Вас в Гугле всех забанили? У меня и iPad'а-то нет, но первый же запрос подсказал ответ: включить Airplane mode, затем активировать обратно WiFi. И не гадить в статьях на другую тему.
Возможно, у вас совсем другой случай. Но для того, чтобы начинать ругаться на заметки, нужно понять, как они работают при синхронизации.
Заметки можно синхронизировать практически с любым почтовым ящиком( gmail, icloud etc). Технически заметка при синхронизации — это письмо.

Теперь можно рассмотреть варианты потери заметок:
1. можно грохнуть почту за период и заметки тоже пропадут.
2. можно подключить новую почтовую учетку к айфону, поставить галку о том, что на нее синхронизируются заметки. Не заметить, что они стали синхронизироваться не в icloud, а в новый ящик, а затем отключить в айфоне эту почту. Опять же останутся заметки только за старый период.
И еще куча возможных вариантов, но все они крутятся вокруг добавления учетных записей почтовых ящиков и синхронизации заметок с ними.
С тем, как работает синхронизация заметок, я знаком. На другом телефоне (и другом аккаунте iCloud) висит несколько аккаунтов на заметках. И уже разбирался с тем, как оно там при этом работает.

Но на этом устройстве:
1. Заметки использовались исключительно в приложении Заметки на одном устройстве.
2. Как почта не юзались, соответственно, и не удалялись пачками за период.
3. С другими аккаунтами заметки не синхронизировались.

Хотя, конечно, помутнения памяти никто не отменял. Но все равно после обновления синхронизация осталась бы, либо остались бы заметки.
Сегодня в Pages произошли очень странные баги: было 4 документа и включена опция «Войти в iCloud» (постоянная синхронизация документов при наличии интернета), при написании одного из документов появилось сообщение что-то вроде «этот документ был удалён» и он действительно удалился и потом снова неожиданным образом появился. Когда закончил писать 5 документ, ни осталось ни одного, но решил проверить icloud.com и все они оказались там загруженными, но на устройстве ничего до сих пор нет.

Подумал на iOS 8 и на не очень хорошую версию Pages (при длительной работе нашлись разные мелкие баги в приложении), но прочитав статью теперь тоже думаю что, возможно, дело в синхронизации.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий