Tags: it

smile

юбилей

Десять лет моему лэптопу (Dell Latitude). До сих пор живёт и работает на WinXP.

Восемь лет назад переустановил XP. Три с половиной года назад полетела видеокарта, и пришлось поменять всю материнскую плату. Полгода назад полетела звуковая карта, и я уже решил не заморачиваться. Несколько раз менял батареи.

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

This entry was originally posted at https://glav.dreamwidth.org/685103.html. Please comment there using OpenID.
smile

c++ undefined behavior

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

Тот, что попроще, выглядел примерно так, как описано тут: при удалении массива программа "зависает" и, судя по отладчику, количество выделенной памяти не уменьшается. Увидев схожее поведение, я обнаружил и ошибку: действительно, при работе с массивом я обращаюсь к памяти за его пределами. То, что обращение к "не своей" памяти приводит к непредсказуемым эффектам в момент обращения, это я знаю. А вот то, что такое обращение может повлиять на процесс освобождения этой памяти гораздо позже этого обращения, оказалось неожиданным. Я так понимаю, как конкретно хранить размер массива - это compiler-specific поведение, и в моём случае массив просто завершается неким стоп-символом, типа '\0'. Обращаясь к следующему за последним элементом массива я затираю этот стоп-символ, так что оператор delete[] либо пытается освободить вообще всю доступную память, либо просто начинает грустить.

Второй баг связан с тем, что я использовал метод std::sort вместе с дефолтным оператором сравнения для сортировки пары std::pair<double,MyClass>. Число double - не уникальный идентификатор, но случайное число в достаточно широком диапазоне. Каким-то образом так сложились звёзды, что два случайных числа оказалсь одинаковыми, а std::sort не гарантирует сохранения порядка элементов в этом случае. Если бы сортировались просто числа, это не имело бы никакого значения, но я сортирую пары, которые содержат объект MyClass, каждый из которых уникальный. Из-за этого примерно в половине случаев после сортировки я получал список (..., object1, object2, ...), а в другой половине случаев - (..., object2, object1, ...), что создавало две альтернативные timelines. В нормальной ситуации это должно было бы обнаружиться сразу в момент расщепления timelines. Но меня интересует поведение не отдельных объектов, а их статистические свойства. В течение некоторого времени после расщепления timelines каждый из объектов продолжал жить своей жизнью, не оказывая никакого влияния на общую статистику, - до тех пока пока две timelines не разошлись достаточно далеко. Место и время, в которых эта разница проявилась, никак не указывали на настоящую локацию расщепления timelines, тем более на причину этого расщепления, так что пришлось повозиться. В итоге переключился на std::stable_sort и собственный оператор сравнения, что и решило исходную проблему.

This entry was originally posted at https://glav.dreamwidth.org/678892.html. Please comment there using OpenID.
smile

Adobe, аренда и обновления

Интересная история как наличие государственных регуляций способствует развитию облачных сервисов:

https://prodesigntools.com/adobe-ends-cs6-sales.html
https://prodesigntools.com/why-creative-cloud-gets-exclusive-features.html

Компания Adobe, известная своим Photoshop, а также набором инструментов для профессональных редакторов фото и видео, распространяла свои программы "как все": на дисках в "коробках". Последний пакет софта известен под названием Creative Suite, который включает, помимо фотошопа, тот самый набор профессиональных фото-видео инструментов. В 2012 Adobe выпустила параллельный продукт, Creative Cloud. В отличие от Creative Suite, который стоил от 1000 долларов и сразу, Creative Cloud предлагал ежемесячную "подписку" по цене в несколько десятков долларов. Такая себе аренда-рассрочка. С 2012 под 2015 оба продукта существовали параллельно, а в 2015 Adobe прекратила выпуск Creative Suite (а с 2017 и продажу), сконцентрировашись только на Creative Cloud. А в 2019 Photoshop исчез из ритейлеров типа Amazon и B&H.

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

Почему так произошло? Всё дело в тех самых обновлениях. Согласно американскому Software revenue recognition, если человек заплатил за товар, то его основная фукциональность должна присутствовать на момент оплаты. При регулярных (и значительных) апдейтах купленного единоразово софта это правило может нарушаться: функциональность продукта расширяется после его покупки. При "аренде" же этого не происходит: пользователь пользуется софтом лишь тогда, когда оплатил подписку. При этом он всегда имеет доступ к новейшему функционалу.

Интересно, что эта регуляция действует с 1997 г. и, судя по словам сотрудников Adobe, является общей проблемой для всех производителей софта. Тем не менее, сервис "подписок" появился относительно недавно, лишь в последние лет 10. Интересно, связано ли с этим повальное распространение "облачных сервисов"?

This entry was originally posted at https://glav.dreamwidth.org/672432.html. Please comment there using OpenID.
smile

электронные деньги

Внезапно обнаружил, что в PayPal нельзя поменять страну проживания:
The laws applicable to PayPal accounts differ by country, so you can't change your address to a country that is different from the country you used when you opened your account. If you're moving abroad, you’ll need to close your existing account and open a new account. If you maintain residences in 2 countries, you can have 2 PayPal accounts as long as only one is a Business account.
Страна проживания, по идее, нужна для указания billing address. Но этот billing address походу не имеет никакого значения, т.к. мой аккаунт привязан к украинскому адресу, с которым имеющиеся банковские карты никак не связаны. Забавно также, что говорят, PayPal до сих пор полноценно не функционирует в Украине.

This entry was originally posted at https://glav.dreamwidth.org/671140.html. Please comment there using OpenID.
smile

и снова про лэптоп

Случилась у меня проблема с моим лэпопом. Внезапно изображение на экране разделилось на две горизонтальных части, каждая из которых имеля разрешение 640х480, вместо исходных 1440х900. Примерно вот так (кликабельно):


Погуглив, пришло некоторое понимание того, что проблема с видеокартой. В частности, отключение аппаратного ускорения или просто его уменьшение могло вернуть нормальное изображение. Либо целая ночь в выключенном состоянии. Либо переустановка драйверов. Но такое поведение было нестабильным, и через несколько часов изображение могло зависнуть. А после очередной перезагрузки снова уйти в двухэкранное состояние 640х480. Иногда половинок не было, но разрешение по-прежнему оставалось 640х480. Проблема иногда появлялась ещё до загрузки Windows, в биосе, а иногда возникала только при полноценной загрузке Windows.

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

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

Параллельно с этим я пытался найти какую-то более подробную информацию о том, что можно сделать с компьютером не разбирая его. Делать это на другом, нормальном компьютере, гораздо удобнее, чем на половинке экрана с разрешением 640х480. Ходил на сайт Dell и NVidia, по service tag находил свою модель и конкретную конфирурацию и возможные troubleshootings. Думал про возможность подключения внешней видеокарты через SmartCard. Читал советы заменить материнку и бессмысленность этого действия одновременно.

Одновременно с этим я позвонил в службу техподдержки Dell. На удивление, их робот-автоответчик предложил всего несколько вариантов ответа и после выбора очень быстро переключил меня на живого человека. Человек оказался не австралийцем, и, я подозреваю, сидящим в Китае, но сразу же включился в мою проблему, и стал пытаться её решить. Несмотря на то, что мой лэптоп был куплен в другой стране, срок гарантии давно истёк и вообще столько не живут. Сказал, что не знает, что делать, ему надо посоветоваться со своим супервайзером. Мы перешли на общение по e-mail, которое в итоге заняло несколько дней. В числе прочего он предлагал переустановить винду и сбросить в заводские настройки. Чего я делать не стал, т.к. мне уже было очевидно, что проблема не в винде, а заниматься установкой заново всей системы у меня не было ни времени, ни желания. Я ему намекнул, что подозреваю, что проблема в видеокарте, после чего он сказал, что точно помочь не может, на чём мы и распрощались.

На каком-то этапе мои танцы с бубнами перестали помогать, и лэптоп отказывался показывать нормальное изображение даже иногда: всё время было либо две половинки 640х480, либо полный экран 640х480. Кроме того, попытка зайти в биос выдавала ошибку vesa function 0x4f02 returned ax=14f, так что сомнений в виновности видеокарты не возникало.

Ещё одним направлением поисков были местные компьютерные магазины. К этому моменту я уже понял, что видеокарта у меня припаяна на материнку, и просто так заменить её не получится. Необходимо менять всю материнку сразу. В обычных магазинах, запчастей вообще не оказалось, и в некоторых мне посоветовали магазины для гиков или просто мастерские. Я решил позвонить ещё раз в техподдержку Dell, узнать, где найти материнку. Трубку на этот раз взял индус, я ему уже квалифицированно объяснил, чего хочу, он сказал, что Dell уже не производит необходимые мне материнки, предложил обратиться в местные компьютерные магазины. Самое интересное, что он дал адреса нескольких гиковских и компьютерных мастерских в Брисбене, хоть сам он, судя по всему, как и китаец, находился не в Австралии! В общем, позвонил я по этим мастерским, там та же история: лэптоп старый, запчастей уже нет.

Параллельно с этим я искал компьютерные мастерские в Брисбене сам в гугле. В одной из них парниша быстро понял, что я хочу, сказал, что в принципе, проблема решаема, но заказывать материнку надо из Штатов, придёт она через месяц, а стоить будет от 400 до 700 австралийских долларов. Тут стало понятно, почему на форумах писали, что проще купить новый лэптоп. На ещё одном сайте местных всевозможных частных объявлений я нашёл ещё одного товарища, который согласился посмотреть, что у меня за проблема и предложить решение. До обоих товарищей надо было ехать, так что я решил ещё поискать в гугле, оставив их на крайний случай. Хотя, казалось, что я уже все возможные варианты перебрал, и этот крайний случай уже очень близко.

Но внезапно гугл дал мне ссылку на какой-то американский интернет-магазин parts-people.com. На самом деле, я его находил и раньше, но выглядел он как-то подозрительно, так что я сперва не обратил на него внимания. Теперь уже, когда вариантов практически не оставалось, он стал спасением. И там таки были материнки, и таки под ту модель лэптопа, которая мне нужна! Причём сама материнка стоит около 100 австралийских долларов, а не 700, как меня пугали недавно. Но тут возникла другая незадача: этих материнок, вернее моделей материнок, было слишком много. Какую мне заказывать? Тут я узнал про такую вещь как Dell Part Number, нашёл её на своей материнке и - о чудо - эта модель у них также имеется. Заказал, выбрал самую быструю доставку, которая стоит столько же, сколько и сама материнка, и стал ждать.

Посылку доставили в срок. Дальше необходимо её установить. Последний раз компьютер я разбирал очень давно, и это был обычный десктоп, где всё вроде как гораздо проще, чем в лэптопе. К счастью, на том же сайте, где я купил материнку, было видео с пошаговой иструкцией её замены. Вооружившись отвёрткой и термопастой, я изрядно попотел, нервничая, чтобы всё подсоединилось куда нужно. В итоге лишних деталей не осталось, и я с опаской и облегчением включаю лэптоп. Тут он начинает меня пугать, выдавая необычные сообщения, которых я никогда раньше не видел. Одно из них - надо было выбрать режим работы новой материнки. Причём, как писалось на экране, выбор изменить в будущем будет нельзя, а выключение питания приведёт к уничтожению материнки. Тут вообще я почувствовал себя чем-то средним между Нео и Алисой, которые выбирают прирожок правильного цвета, причём здесь и сейчас, а на раздумье - пару секунд. К счастью, гугл знал те слова, которые мне предлагаи на экране, и сказал, что этот режим указан на стикере на задней панеле. Тоже к счастью, для того, чтобы прочитать этот стикер, не нужно было выключать питание лэптопа и вынимать отдельные его части - как это требовалось для того, чтобы прочитать Part Number материнки. Выбрал, оно пожужжало, покряхтело, - и завелось!

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

Far Manager

Пришёл сисадмин починять одну штуку на моём компьютере и случайно увидел окно Far Manager. Надо было видеть его выражение лица! - "Это что, Norton Commander?", - "Да, что-то типа того :)", - "О боже, как же давно я не видел такую штуку! Это как внезапно перенестись на 10 лет назад!". Оказалось, что когда-то давно он был big fan of it, но сейчас, когда он администрирует пользователей с Windows, и все пользуются Explorer, он уже привык к обычному проводнику и пользуется только им. Запомнил название, может теперь установит на своей машине :)
smile

фотки

Сперва якобы сотрудник Корпорации добра написал по поводу невозможности вставки прямых ссылок на фотки:
Hmm, I work on Google Photos. I might be mistaken, but I don't think we ever promised to act as a free image file serving server. It kinda works on a small scale, but if you want to create a URL for image that is going to be accessed by lots of different people, you should host it yourself.
It is hard for any free image storage service to avoid that restriction, because otherwise it'll get most of its network traffic serving very questionable images to millions of people.
Теперь fotki.com прислали письмо
Unfortunately, we can no longer afford to provide free service to our Free members. In the past, we supported free membership by displaying ads but we are no longer doing that because of many complains that ads frequently mislead and disturb user experience.
In order to develop new functionality and provide a better service and experience, we need your love and support.
Free accounts will be closed on October 1st, 2015.
smile

не видны комментарии - 3

Внезапно, все комментарии стали видны. При этом письмо нашим айтишникам я не писал.

Оно само! (тм)

А ведь они меня предупреждали, что читают весь трафик сотрудников! Хотя, судя по всему, это ЖЖ поменял способ выдачи комментариев (и вообще всего, как я погляжу): теперь они загружаются не через javascript и не с сервера l-stat. <upd> Хотя нет, ведь не в сети eduroam комментарии были видны как положено..</upd>
smile

не видны комментарии - 2

Небольшое исследование показало, что комментарии не видны только если я нахожусь в сети eduroam. Бо комментарии не видны также и с телефона, подключённого к eduroam. Но с мобильного интернета или другой wifi сети всё отображается как раньше. Каким загадочным образом настройки wifi сети могут влиять на работу JavaScript на локальной машине, остаётся непонятным. Причём, судя по всему, JavaScript не работает только в ЖЖ, на других сайтах всё ок..
smile

не видны комментарии

Последние несколько дней перестал видеть комментарии на страницах записей. А ведь в них часто самое интересное и развивается.

Есишо, решение проблемы такое via:

Добавить "?nojs=1" в адресной строке после ".html".
Если вопросик там уже есть, например ".html?style=mine", добавить сразу после вопросика "nojs=1&", чтобы получилось, например, ".html?nojs=1&style=mine"