бонус программиста
Apr. 27th, 2015 02:12 amВремя от времени я замечаю, что в какой-нибудь обыденной ситуации мне помогает "бонус программиста" - знание того, как устроены компьютеры и программы. Причем я не имею в виду тут что-то конкретное и мне хорошо известное - типа я знаю, как устроена ADSL-связь и поэтому могу отладить проблемы с подключением и увидеть, где проблема. Нет, это как раз неинтересно. Интересна ситуация, когда я не разбираюсь в том, что происходит, но общие знания о компьютерах и программах все равно ведут меня к правильному ответу. Я заметил, что такое случается довольно часто, и в самых разных, нетипичных ситуациях. Вот два примера из недавнего опыта:
(на всякий случай отмечу: эти примеры не означают, что я супер-крутой или не-программисты несчастные лузеры. Если я и вижу в этом какую-то мораль, то это просто неуклонное превращение мира вокруг нас в компьютерный мир и возрастающая важность компьютерной грамотности. То, что супер-грамотность - т.е. знания программиста - дает иногда "бонус" в обыденной жизни, кажется мне скорее багом, чем фичером: свидетельствует о том, что интерфейсы протекают)
1. Машина - в смысле автомобиль - умеет играть музыку с флешки с MP3 на ней. Выбор между альбомами (директориями) осуществляется только по их номеру, названия директорий не пишет. Я записал 15 альбомов и слушал их. Потом в какой-то момент взял флешку из машины домой, добавил на нее еще 5 альбомов. На следующий день вернулся в машину, вставил, включил, а она не дает все равно мотать дальше 15-го альбома, после него опять 01. Выключил машину, включил (стандартный подход), не помогает. Что делать?
Бонус программиста: понятно, что машина кэширует информацию о флешке и хранит у себя в долгосрочной памяти какой-то. Когда я вытащил флешку и вставил обратно при выключенной машине, она этого не "почувствовала" и не видела необходимости обновить кэш; с ее точки зрения флешку не вынимали вообще. Нужно вытащить флэшку при включенной машине и вставить обратно, тогда она "почувствует" и сбросит кэш. Сработало. Это решение кажется анти-интуитивным - додумался бы до него продвинутый юзер, который не программирует?
2. Я уже много лет покупаю электронные книги в Амазоне на киндл. Обычно они приходят на ридер с защитой от копирования (DRM), но я немедленно снимаю с них DRM с помощью плагина для программы calibre, это очень просто (первая ссылка в гугле на поиск calibre drm removal, если кому надо). Любой продвинутый юзер может установить такой плагин и снимать DRM с купленных книг. Недавно мне попалась книга, которую можно было только арендовать на время - Амазон начал давать такую возможность на киндле год или два назад. Купить ее было нельзя. Будучи арендованной, она сидит на ридере в виде файла, как и обычные покупки. Я попробовал снять DRM с этого файла и получил ошибку от плагина: "Снятие DRM с арендованных книг не поддерживается".
Бонус программиста: поскольку я знаю, как устроен DRM, мне совершенно очевидно, что для арендованных книг он ломается так же легко, как для купленных. Более того, сразу очевидно, что плагин не то чтобы не может, он не хочет снять DRM с арендованной книги. В принципе могла бы быть ситуация, при которой Амазон придумал для книг в аренду совершенно другой новый формат с новым видом защиты и хакерам было бы лень или недосуг его ломать, но шансы 10:1 что это не так и что в плагине стоит тупая заглушка. Далее, я знаю, что плагины для calibre пишутся на Питоне, и я знаю этот язык. Через несколько минут я нахожу код заглушки в плагине ("если книга такого-то типа, выдай сообщение об ошибке и не пытайся даже ее читать"), и удаляю его, еще через минуту у меня готовая расшифрованная книга с снесенным DRMом.
Есть ли у вас интересные примеры "бонуса программиста"?
(на всякий случай отмечу: эти примеры не означают, что я супер-крутой или не-программисты несчастные лузеры. Если я и вижу в этом какую-то мораль, то это просто неуклонное превращение мира вокруг нас в компьютерный мир и возрастающая важность компьютерной грамотности. То, что супер-грамотность - т.е. знания программиста - дает иногда "бонус" в обыденной жизни, кажется мне скорее багом, чем фичером: свидетельствует о том, что интерфейсы протекают)
1. Машина - в смысле автомобиль - умеет играть музыку с флешки с MP3 на ней. Выбор между альбомами (директориями) осуществляется только по их номеру, названия директорий не пишет. Я записал 15 альбомов и слушал их. Потом в какой-то момент взял флешку из машины домой, добавил на нее еще 5 альбомов. На следующий день вернулся в машину, вставил, включил, а она не дает все равно мотать дальше 15-го альбома, после него опять 01. Выключил машину, включил (стандартный подход), не помогает. Что делать?
Бонус программиста: понятно, что машина кэширует информацию о флешке и хранит у себя в долгосрочной памяти какой-то. Когда я вытащил флешку и вставил обратно при выключенной машине, она этого не "почувствовала" и не видела необходимости обновить кэш; с ее точки зрения флешку не вынимали вообще. Нужно вытащить флэшку при включенной машине и вставить обратно, тогда она "почувствует" и сбросит кэш. Сработало. Это решение кажется анти-интуитивным - додумался бы до него продвинутый юзер, который не программирует?
2. Я уже много лет покупаю электронные книги в Амазоне на киндл. Обычно они приходят на ридер с защитой от копирования (DRM), но я немедленно снимаю с них DRM с помощью плагина для программы calibre, это очень просто (первая ссылка в гугле на поиск calibre drm removal, если кому надо). Любой продвинутый юзер может установить такой плагин и снимать DRM с купленных книг. Недавно мне попалась книга, которую можно было только арендовать на время - Амазон начал давать такую возможность на киндле год или два назад. Купить ее было нельзя. Будучи арендованной, она сидит на ридере в виде файла, как и обычные покупки. Я попробовал снять DRM с этого файла и получил ошибку от плагина: "Снятие DRM с арендованных книг не поддерживается".
Бонус программиста: поскольку я знаю, как устроен DRM, мне совершенно очевидно, что для арендованных книг он ломается так же легко, как для купленных. Более того, сразу очевидно, что плагин не то чтобы не может, он не хочет снять DRM с арендованной книги. В принципе могла бы быть ситуация, при которой Амазон придумал для книг в аренду совершенно другой новый формат с новым видом защиты и хакерам было бы лень или недосуг его ломать, но шансы 10:1 что это не так и что в плагине стоит тупая заглушка. Далее, я знаю, что плагины для calibre пишутся на Питоне, и я знаю этот язык. Через несколько минут я нахожу код заглушки в плагине ("если книга такого-то типа, выдай сообщение об ошибке и не пытайся даже ее читать"), и удаляю его, еще через минуту у меня готовая расшифрованная книга с снесенным DRMом.
Есть ли у вас интересные примеры "бонуса программиста"?
no subject
Date: 2015-04-26 11:25 pm (UTC)Только из знания, что все есть, бесплатно, а только нужно уметь искать: отличная сводка бонуса.
no subject
Date: 2015-04-27 12:59 pm (UTC)Хотя предполагаю, что многие технари не-фронтендщики тоже так умеют, и тогда это уже по теме. Благо есть совсем интуитивные варианты, например посмотреть картинку в ресурсах и т.д.
(no subject)
From:no subject
Date: 2015-04-26 11:27 pm (UTC)Ну или понимание, что курьер едет ко мне не как старый знакомый друг, а по GPS, по маршруту проложеннему автоматически программой, помогает дать ему ориентиры.
Выключить-и-включить - фундаментальное знание. Несмотря на "очевидность", куча людей не знает про него.
Понимание, как скорее всего программист делал интерфейс (меню телевизора, допустим) - помогает быстрее разобраться в меню бытового прибора.
Изредка пригождается сортировка/поиск
носков.Ещё в телефоне устанавливаю порядок имен в адресной книге (и в прочих списках) как
01_sasha
..
23_valya
..
Ещё, стараюсь использовать latinskie_bukvy_bez_probelov, и без кавычек, так как знаю сколько багов до сих пор с UTF-8 и с "особыми буквами". Или если назойливо требуют ввести что-то мне не нужное - то пробел в начале, в конце, русская буква совпадающая с латинской, табуляцию, Enter и прочие контрольные символы копипастой, насыпать знаков препинания.
no subject
Date: 2015-04-26 11:56 pm (UTC)Yep, на моей машине включенная, включенная и заведенная и выключенная машина дают совершенно разный набор настроек. Например поставить чтобы она считывала с ключа положение сидений можно только если работает мотор :)
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-04-26 11:28 pm (UTC)BTW: Твой второй пример не очень корректный: залезть в open-source и слегка подправить под себя, это просто работа программистом.
no subject
Date: 2015-04-28 10:47 pm (UTC)делал подобное
no subject
Date: 2015-04-26 11:33 pm (UTC)чем больше человек знает, тем больше он может применять знаний в разных сферах
это к пользе образования
у меня такое случается постоянно ...
no subject
Date: 2015-06-14 08:13 pm (UTC)no subject
Date: 2015-04-26 11:43 pm (UTC)2. Ваш второй пример, мне кажется, не подходит - это просто программирование в прямом смысле слова, а не его опосредованное применение в жизни.
no subject
Date: 2015-04-27 12:01 am (UTC)(no subject)
From:no subject
Date: 2015-04-26 11:53 pm (UTC)no subject
Date: 2015-04-27 03:46 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2015-04-27 12:54 am (UTC)re:при знакомствах с девицами - O, yes!
From:Re: при знакомствах с девицами - O, yes!
From:Re: при знакомствах с девицами - O, yes!
From:no subject
Date: 2015-04-27 12:11 am (UTC)no subject
Date: 2015-04-27 12:13 am (UTC)>>
У меня магнитола в машине считывает песни с флешки не по названию, а по зашитой информации (Альбом, Год, Исполнитель).
Первая беда, связанная с этим - вместо одного залитого алтбома "Бест Оф..." я получаю в меню пять, потому что сортировка по исполнителю выдает мне "Певец", "Певец feat ДругойПевец", "Певец feat ТретийПевец". Та же проблема с сортировкой по альбому ибо все песни из разных альбомов.
Вторая беда, раздражаюзая ещё больше - я не могу удалить песни (папки) с флешки. Я как представляю себе процесс удаления (поправьте меня если я не прав): комп стирает только название файла, оставляя всю остальную инфу и как бы больше файл "не видит". Хотя весь массив инфы при этом сохранен. На этом, я так понимаю, основан принцип "восстановления случайно удаленных файлов". А т.к. гребаная магнитола считывает не название файла, а зашитую в него инфу, то и песня продолжает отлично находиться в плейлисте!
<<
Решение нашел методом "озарения" спустя несколько недель:
>>
Комп почему-то видит флешку как ещё один локальный диск (а не съемный, как я привык). Удаленный с флешки файл помещается сначала в корзину. Если в этот момент вынуть флешку и вставить в авто - все песни на месте. Возвращаем флешку в комп, песен нет (только в корзине).
Теперь (с воткнутой в комп флешкой) удаляем песни из корзины, вынимаем флешку, вставляем в машину... Вуаля! Песен нет!
Баг: флешка в компе, удаляем с флешки песни (они попадают в корзину), вынимаем флешку, удаляем песни из корзины. Что получим? Правильно, автомагнитола песни видит, комп - нет.
Что и произошло в первом посте. Если удалить все песни (по новой методике) и потом посмотреть в свойства папки, показывал, что занято 140 мег, при этом ни скрытых, ни каких-то ещё файлов не видел. Вылечилось форматированием (обычное, быстрое).
<<
Я по прежнему считаю, что делать плееры, котрые читают тэги треков (вшитую инфу), а не названия и сортирут в группы основываясь на тэгах ("артист", "альбом" и т.д.), а не на мной созданных папках - это бред и тупизм. Я, конечно, приноровился во всех сказках прописывать артиста SKAZKI, а в детских песенках писать артиста KIDSONGS, но я трачу на это невероятное количество времени. Ну и если мне вдруг приспичит сделать себе сборку из 50 песен разных исполнителей - это будет та ещё работка =(
no subject
Date: 2015-04-27 07:14 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-04-27 01:32 am (UTC)Есть ли у вас интересные примеры "бонуса программиста"
Date: 2015-04-27 01:36 am (UTC)Впрочем, это уже о не о программировании, а о транспорте...
Re: Есть ли у вас интересные примеры "бонуса программис
Date: 2015-04-27 05:33 am (UTC)Re: Есть ли у вас интересные примеры "бонуса программис
From:Re: Есть ли у вас интересные примеры "бонуса программис
From:Re: Есть ли у вас интересные примеры "бонуса программис
From:Re: Есть ли у вас интересные примеры "бонуса программис
From:Re: Есть ли у вас интересные примеры "бонуса программис
From:Re: Есть ли у вас интересные примеры "бонуса программис
From:no subject
Date: 2015-04-27 01:36 am (UTC)интегралафигурной скобки и достал шляпу из лужи. А если бы знал только Пайтон, то даже и не представляю как бы выкручивался.no subject
Date: 2015-04-27 02:47 am (UTC)Однако, на следующий год сайт билеты продавать отказывался - "вы выбрали неправильную дату". Заметил, что отказывается не сайт как таковой, а JS, проверяющий валидность ввода. Открыл firebug, увидел, что JS неправильно формирует дату, если ткнуть в следующий год. Захардкодил правильную, купил билет.
no subject
Date: 2015-04-27 04:57 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-04-27 03:09 am (UTC)кастомные стили для интернет сайтов. находить соответствующие аддоны для правки интерфейса (убирать рекламу, окна для кукис, прямо убивать через firebug ненужные элементы).
избегать перелистывания фотографий в альбоме путем перебора нумерованных ссылок.
манипуляции с текстом - скопировать в vim, отформатировать/отфильтровать/отсортировать - вернуть в интернет-форму или ворд или куда-то там.
вообще горячие клавиши типа win+p, особенно когда компьютер отключили от проектора и вдруг никакого монитора нет.
манипуляции над файлами программ, добавить-убрать-переименовать. запустить второй инстанс того же переводчика, чем переключаться в одном между языками.
бэкапить и править сеттинги в xml и ini файлах, вместо того, чтоб лазить по ui.
искать command line интерфейс в дополнение к ui.
чистить морду от ненужных меню, закрывать ненужные табы и пользоваться историей, убивать файлы прямо в корзину без подтверждения.
писать скрипты для горячих клавиш для всяких типичных операций.
предпочитать текстовый вид хранения документов бинарным.
понимание, что такое архивы и как их раскупорить, jar/docx/epub etc.
понимание, что такое "нет интернета" и как это проверить.
понимание, как найти, что именно тормозит в незнакомом софте и как это продиагностировать и убить.
умение пользоваться "плохими сайтами" при необходимости, отсутствие антивируса на машине, даже если это винда.
наличие более чем одной ОС на лэптопе, и более чем одного рабочего лэптопа.
как-то так.
no subject
Date: 2015-04-27 03:10 am (UTC)Программист видит, что есть url, который отдаёт случайную пони по запросу, и пишет тривиальный скрипт, который в цикле дёргает этот урл и сохраняет полученное с именами md5(data).gif если такого файла ещё нет, запускает его и через десять минут все пони - его. Непрограммисту остаются только "социальные" пути - пойти на форум и спросить, что это за картинки и откуда бы их взять.
no subject
Date: 2015-04-27 09:02 am (UTC)no subject
Date: 2015-04-27 03:25 am (UTC)no subject
Date: 2015-04-27 05:39 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2015-04-29 08:10 am (UTC) - Expand(no subject)
From: (Anonymous) - Date: 2015-04-29 08:52 pm (UTC) - Expandс минусом прекрасно работало
From: (Anonymous) - Date: 2015-05-02 07:23 am (UTC) - Expandno subject
Date: 2015-04-27 04:33 am (UTC)no subject
Date: 2015-04-27 05:03 am (UTC)no subject
Date: 2015-04-27 05:03 am (UTC)Если держать картинки, файлы и прочий хлам, которым хочется делиться с другими, не в dropbox/g.drive/я.диск/etc, а на собственном хостинге, и уметь грепать access.log, то сможешь по-тихому знать, смотрел ли собеседник присланное ему, и когда.
"Нет, я ничего не видел" (а по access.log два раза тыкал, с интервалом в час)
"Да, я всё посмотрел, всё ОК" (а по access.log открыл два файла из пяти)
Очень удобно.
no subject
Date: 2015-05-28 10:10 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2015-04-27 05:30 am (UTC)no subject
Date: 2015-04-27 05:38 am (UTC)Тут я применил различные знания, скомпоновал вручную урль (там типа один аргумент отвечает за тип оплаты а второй за то, регистрация ли это нового пользователя или оплата по существующему и на нужную мне комбинацию просто не вело никаких ссылок на сайте, хотя сам движок сайта прекрасно эту комбинацию отрабатывал) и оплатил игру так, как мне хотелось.
Так знания программирования помогли мне потерять год своей жизни.
no subject
Date: 2015-04-27 05:40 am (UTC)(no subject)
From:no subject
Date: 2015-04-27 05:54 am (UTC)no subject
Date: 2015-04-27 06:08 am (UTC)no subject
Date: 2015-04-27 07:00 am (UTC)Подхожу, чиню, а потом не могу с ходу объяснить как у меня это получилось.
Когда настаивают на объяснениях, у меня занимает минут пять объяснить (себе прежде всего) как я это сделал.
no subject
Date: 2015-04-27 11:36 am (UTC)Это не только с компьютером, это вообще с любыми видами деятельности.
Объяснить, что это реально вот так, и мне нужно самому что-то потыкать и посмотреть, чтобы что-то сделать - совершенно невозможно... народ обижается.
(no subject)
From: