falcrum: (Violet smoker)
Тут опять «плюс копейка» - график традиционно в слегка экзотических единицах измерения, чтобы свести всё к одной вертикальной шкале:



А я продолжил разбираться с деньгами - и столкнулся с удивительным...

Итак, вчера, как и собирался, позвонил в саппорт «Едь-и-плати!» - правильно сделано, что брякнуть можно прямо из приложения. Обрисовываю свою ситуацию и в ответ слышу удивительное:

«Да, мы с таким сталкивались, вот вам емыл разработчика ПО - пишите туда! Они знают, что делать!»

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

Ладно, отписал на указанный ящик. Отвечали оперативно, причём два разных человека, похоже - потому, что спрашивали одно и то же. Сфоткал чеки о заправке и об отмене, заслал им.

И нынче под вечер приехала мессага уже́ от вебпэя:

Здравствуйте,

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

==============================================================
На сумму: BYN 79.68
==============================================================


Одна проблема - на карточку пока ничего не вернулось. Что ж, посмотрим...
falcrum: (Violet smoker)
Вчера заправлялся - и «Едь-и-плати!» неприятно удивил:



Ёлки, ведь искомая циферка успешно отображена парой строчек ниже - но нет...



А циферка такая потому, что опять «плюс копейка» - график традиционно в слегка экзотических единицах измерения, чтобы свести всё к одной вертикальной шкале...
falcrum: (Violet smoker)
Продолжу про гнусмасовских талантов, так как мобило у меня той же фирмы. Так вот, когда приехал восьмой ведроид, я обнаружил странное. Ну, во-первых, гугл-драйв «эксплорером» телефона перестал обновляться автоматически - теперь надо вручную жать «Синхронизировать», причём это работает только когда ты на вайфае:



Но это фигня. Во-вторых, они пропипали имена файлов...



Причём работает же: копирует/переносит с заменой, но вот этот «null»...

Upd: А-а!!! Они следят за мной! Вот только что приехало обновление на «Мои файлы» и глюк с нуллом вместо имён починили...
falcrum: (Violet smoker)
У меня на DLNA-сервере стои́т программка той же фирмы, что и телик, с которого гляжу:



А нынче идёт «Тур де Франс», который я смотрю в записи, так как в рабочее время работаю работу на работе. Так вот, качаю очередной этап. Захожу в просмотрщик на зомбоящике. И...

В папке пусто. Ничего нет. Вообще ничего. Как? Вот вчера было, а сегодня - буй?

Хорошо, что я сам компутерами занимаюсь. И первое же телодвижение оказалось «в струю»: убрав свежескачанные файлы, добился того, что появились все предыдущие. Хм.

И второй раз подряд тоже угадал. Дело в том, что слил я запись этапа до Альп-д’Юэз. И в имени файлов присутствовало, ессно, «Alpe d'Huez», то есть, апостроф. Переименовал вручную, убрав одинарную кавычку - и, опля, всё кажет!

Но вот как до таких высот должен доходить обычный юзер - для меня тайна великая есть...
falcrum: (Violet smoker)
Добрался тут с изрядным запозданием до пятого сезона «Элементарно» - и потиху дотянул до одиннадцатого эпизода:



Не, я уже́ как-то свыкся с тем, что «Наследие» для Шерлока ломает всё за пару часов, но чтоб вот так? Холмс, урежьте осетра...



И, это: мы, конечно, привыкли, что актёры кочуют из сериала в сериал, но когда я увидел этого «расписного» мафиозного босса - вспомнив «Касла», чуть не подавился...
falcrum: (Violet smoker)
А то я купился и с версии 7.40.66.104 перешёл на 8.12.0.2. Это полный атас: мало того, что в программе список настроек уменьшился раз в двадцать (не шучу!) и, к примеру, убрать предпросмотр картинок просто невозможно, так и на официальном хелпе ответы в стиле «Нету ножек - нету варенья!»:

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

Ответы (1)
Во встроенном новом приложении skype, такой функции, к сожалению, нет. Вы можете оставить отзыв и пожелания для наших разработчиков.»


Инвалид? Канай отсюда, инвалид! Прелестно, чё...

Откатился взад, но «осадочек остался»...
falcrum: (Violet smoker)
Прилетела ща СМС-ка - что-то совсем уж мелкие суммы предлагать спамеры начали:



А с виндой был удивлён. Надо было проверить комп по сетке пингом - дай, думаю, выключу брандмауэр. Зашёл в сервисы, остановил. Фиг. Пинга нет. Включил взад, добавил правило для ICMP - заработало. Но как?
falcrum: (Violet smoker)
Тут на мобиле самовылезло предложение активировать антивирь - я как-то давно не смотрел в сторону этого производителя, потому был удивлён, узнав, что, как сообщал нам Жюль наш Верн в «Детях капитана Гранта», «Оно произносится "Айртон Intel", но пишется "Бен Джойс McAfee"!» Впрочем, гораздо сильнее задело подчёркнутое на скриншоте красным:



Когда-то давно, когда персональные компьютеры ещё частенько называли «ПЭВМ», во весь рост стояла проблема перевода интерфейсов программ с вражеского на родной - ну, чтобы пользователи, не видевшие ничего, кроме печатных машинок, не пугались хотя бы иностранных надписей, так как с языками было тогда тоже похуже.

Натурально, никакие исходные тексты большинства софта доступны нам не были. Поэтому русификация производилась в HEХ-редакторах прямо в EXE-шниках. Нашёл, значится, поиском байтики с меткой или пунктом меню - и вбил туда буквы «великого и могучего».

В таком действе была, помимо трудоёмкости, ещё одна существенная засада: как известно, английские слова в среднем на треть короче русских, а размер строк был наглухо фиксирован. И, чтобы на место, скажем, «Insert» поместить «Вставить», надо было вписаться в шесть знаков, т.е. приходилось делать «Встав.» - точка тоже символ.

Но увидеть вот это «кодируем помаленьку» сейчас - полный мрак...
falcrum: (Violet smoker)
Я-то думал - из анекдотов. Ан нет. Сижу у заказчика на «местном» ноуте, коллега кидает в мыло файлик - открываю:



«Редактирование может повредить компьютер» - какие ещё вопросы? Excel 2010 - специально глянул...
falcrum: (Violet smoker)
Вынужденно колупаюсь в кишках огромного программного комплекса. В процессе выяснил прелестное - идентификатор одного и того же объекта в трёх разных таблицах хранится... в трёх разных видах. К примеру, это - один и тот же ID (NVARCHAR2 - мы что, в этом hex-е ждём юникод?):


  • 1F5B54B5D52A3A8F910AB3D9A93C8F58

  • 1f5b54b5d52a3a8f910ab3d9a93c8f58

  • 1F5B54B5D52A3A8F910AB3-D9A93C8F58



А связывается это кодом снаружи... Р-расстрелять!..
falcrum: (Violet smoker)
Вот если не знать, что оный SurveyMonkey - крайне солидный сервер онлайн-опросов, то что можно подумать?



Чисто переводя с англицкого?
falcrum: (Violet smoker)
Смотрю, сервера у наших банкиров тоже Новый год отмечают ударно:



Прислали выписку по моей карточке, у которой уже истёк «срок годности» - н-да...
falcrum: (Violet smoker)
Работали вчера с коллегой на выезде, идёт общение с системщиком заказчика. Сервер упирается и не хочет делать, что велят. Забегает ещё один местный сисадмин: «Пожарная часть горит!». Выходим посмотреть (внимание, по клику - большое фото!):



Явно делали ремонт, заливали крышу смолой - ну, и полыхнуло. Сами работники брандспойта встречали зрелище смехом и громким матерком. Вот тут-то фраза из заголовка у нас и прозвучала...

В бассейне же нынче повторил три пятьсот - за час шестнадцать, правда. В прошлую среду приехал в ДВС - там отрубилось электричество...
falcrum: (Violet smoker)
Я не скажу вам, что это за язык, но такое лично я увидел впервые и, пока не разобрался методом тыка, чуть с ума не сошёл. Итак, в природе есть циклы, в которых условие проверяется до выполнения - ну, пусть, памятуя о богоподобном паскале, это будет while. Есть циклы, в которых условие проверяется после выполнения всех операторов внутри - repeat...until.

А сегодня я узнал, что бывает так: цикл выполняет свой первый оператор, после этого проверяет своё условие, и, если оно true, выполняет свои остальные вложенные операторы. После чего процедура повторяется: первый оператор, проверка и т.д.

И это не задокументировано. Никак. «Догадайся сам», мать их за ногу...
falcrum: (Violet smoker)
Как я уже́ не раз замечал, в наших финучреждениях нынче модно организовывать клиентов путём выдачи им номерков. Был вчерась «на районе» - и там эта же забава в полный рост. Но.

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



Если кто не допёр, то «лишние» кнопки сообразительные умельцы залепили бумажкой и скотчем. Королева в восхищении!
falcrum: (Violet smoker)
Блинский блин! Деловая переписка. А прилетает тебе вот такое:



Не Поль Шанель, конечно, но мы ехать, а не жрать собираемся...

ЗЫ: Чтоб меня в очередной раз не обвиняли в сексизме, уточню - здесь моим собеседником был мужчина...
falcrum: (Violet smoker)
Я юзаю «корелую дровь» уже лет двадцать. За это время вышло десятка полтора версий продукта. И вот, после слёта винта, я вкрутил себе Х6 (до этого «ха-три», вроде, стоял) - пользую, в основном, для обработки подводных фоток. И в нём обнаружил революционную инновацию: теперь можно изменять размер диалогового окна для открытия файлов!

Я, в целом, вообще не понимаю, отчего диалоговые окошки принято делать немасштабируемыми? Не, понятно, что минимальные размеры ограничить надо, но увеличение-то зачем? Ведь куда удобнее увидеть сразу побольше имён картинок, чтобы ткнуть в нужную, не крутя скроллер? Ну, кроме «так здесь принято»? Вроде как средства разработки UI уже сто лет в обед позволяют творить такое не заморачиваясь - ан нет.

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



Развитие? Да я в бассейне, где сегодня снял ещё минуту с времени на той же дистанции, прогрессирую куда как быстрее...
falcrum: (Violet smoker)
Наблюдал со стороны ситуацию: кодеры не могут настроить у себя на стенде работу хитрой сторонней библиотеки. Ну, вот не могут - и всё. При этом заказчик с ней вовсю трудится, а у них не получается. Решение: «мы пишем, как должно быть, отсылаем заказчику и проверяем у него». Завелось. Будете разбираться, почему у себя «не взлетает»? Ай, лень - в продакшен!

Опять же взгляд постороннего зрителя: «стыкуются софтом» два коллектива. Хитрые форматы обмена данными, то да сё. Представитель одной стороны удалённо пытает коллегу из другой: как ты вот эту фигню получаешь? День, два - результата нет. Задумчиво: «Какой-то он странный...» Товарищ рядом взвивается: «Странный? Да я него у в институте вёл!» Тут же ответка: «Так какого лешего ты его вообще на волю выпустил!»

Так что насчёт «первого же залетевшего дятла» - это не шутка...
falcrum: (Violet smoker)
Накрылся винт на рабочем компе. Качественно - всё в труху. Причём, зараза, до последней секунды не подавал никаких намёков - и тут: бац! Всё в бэд-блоках, аж щёлкает при подаче питания. Основное-то забэкаплено (во всяком случае, я на это очень сильно надеюсь), а вот тысячи всяких мелочей пропали безвозвратно... Э-эх...

Но я о другом: у меня серверная ОС, и, вкручивая её на на новый винт, наши админы в автозагрузку поставили... караоке. Караоке, млять! Я, что, с горя должен спеть и станцевать?
falcrum: (Violet smoker)
Коллегу попросили слегка поколупаться в старом проекте:



Приходит ко мне - грит, я в шоке: убил полдня - задница! Ничего не понимаю! Не работает! Давай вместе посмотрим!

Итак, имеется DLL-ка, в ней две функции:

Load1: function (aS: pChar): boolean; stdcall = nil;
Load2: function (aS: pChar; var codeErr: LongInt): boolean; stdcall = nil;


Инициализация:

@Load1 := GetProcAddress (hLib, 'Load1');
@Load2 := GetProcAddress (hLib, 'Load2');


Вызов Load1:

procedure PerformLoad (TaskObject: TTaskObject);
var
ErrorCode: integer;
s: string;
begin
s := TaskObject.RequestText;
if Load1 (@s[1]) then // вызов старой функции библиотеки
ErrorCode := 0
else
ErrorCode := 1;
TaskObject.ErrorCode := ErrorCode;
end;


Вызов снаружи:

// Инициализация объекта LocalTaskObject
...
PerformLoad (LocalTaskObject);
if (LocalTaskObject.ErrorCode = 0) then
...


Всё работало. Но. Надо ему было заменить Load1 на Load2:

procedure PerformLoad (TaskObject: TTaskObject);
var
ErrorCode: Integer;
s: string;
begin
s := TaskObject.RequestText;
Load2 (@s[1], ErrorCode); // вызов новой функции библиотеки
TaskObject.ErrorCode := ErrorCode;
end; //Вот здесь ещё всё хорошо - объект TaskObject в отладчике "живой"


И внезапно:

// Инициализация объекта LocalTaskObject
...
PerformLoad (LocalTaskObject); // передаём "живой" объект
if (LocalTaskObject.ErrorCode = 0) then // и внезапно вот здесь LocalTaskObject становится nil
...


Увидев подобное, я несколько прифигел. В чём разница? Что может освобождать или затирать объект? Ладно, говорю, давай попробуем тупой костыль:

function PerformLoad (TaskObject: TTaskObject): TTaskObject;
var
ErrorCode: integer;
s: string;
begin
s := TaskObject.RequestText;
Load2 (@s[1], ErrorCode); // вызов новой функции библиотеки
TaskObject.ErrorCode := ErrorCode;
result := TaskObject;
end;
// Вызов
// Инициализация объекта LocalTaskObject
...
LocalTaskObject := PerformLoad (LocalTaskObject); // передаём "живой" объект
if (LocalTaskObject.ErrorCode = 0) then // и внезапно всё опять заработало
...


Но как?

Profile

falcrum: (Default)
falcrum

June 2025

S M T W T F S
1 2 3 4 5 67
891011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 6th, 2025 08:53 pm
Powered by Dreamwidth Studios