Pull to refresh
2
0
Send message
Опять же, возможно существует более элегантное решение.

Вы правы, существует. Воспользуйтесь exiv2.
Она позволяет простенько считывать, редактировать, удалять и пр. действия с мета-информацией exif.
В том числе у неё есть команда rename, которая переменовывает файлы, основываясь на Exif.Photo.DateTimeOriginal или (при отсутствии) — на Exif.Image.DateTime в соответствии с форматом, который вы укажите в ключе '-r' (который аналогичен стандартному формату strftime). По умолчанию формат %Y%m%d_%H%M%S, что меня вполне устраивает, так что ключём даже не пользуюсь.
Итак, шелл-функция из моей библиотеки скриптов для переименовывания файлов на основе их exif данных такая:
# sort photos by exif date
# $* - filenames to rename
# example: exif_date_sort ./* # sort all files in directory
# author: japdoll, 2008
exif_date_sort()
{
  until [ -z "$1" ]
  do
    exiv2 rename -- "./$1"
    shift
  done
  return 0
}
С другой стороны — в нашей области (программирование, администрирование, etc) — это только плюс. Рассчитывать на худший случай, на весьма редкие сценарии развития, делать для них обработку ошибок — это делает составленные ИС более стабильными и защищенными. Представьте, если в программе при создании процесса-потока не будет учтён вариант нехватки памяти и программа будет приводить к непредсказуемым последствиям. С одной стороны может казаться, нехватка памяти — вещь относительно редкая (или вы можете считать её маловероятной) — с другой всегда следует рассматривать даже самые маловероятные события. Поэтому, зачастую на обработку и восстановление после ошибок тратится времени больше, чем на разработку основного кода, даже если эти события чрезвычайно маловероятны.
Собственно, прочитав заголовок и первое предложение подумал, что об этом идёт речь в статье (компьютерный же ресурс).
а я, читая заголовок, подумал: «наконец, хакер-девушка с грудью» эх!
Пробовал, да, эффект был. Но это не для тех, кто особо не соблюдает режим. Объясню, почему: просыпался по будильнику, иногда очень хорошо, иногда он звонит в конце промежутка, просыпаюсь и… снова усыпаю. Для меня надёжней ствить 3-4 будильника с интервалом в 15 минут — тогда точно на 2-3 встаю. А тут придётся к 30-минутному промежутку ещё добавлять хотя бы 3x10 минут и получится, что можешь проснуться утром в течении часа. Не люблю утром дома есть, газету читать или что-то такое — только зубы почистил и побежал. В общем, для меня неудобно.
Забыл — кот порадовал, буду теперь требовать наличие.
Как-то вы очень сильно реагируете на критику. Расслабьтесь, это хабр — тут критикуют любое место которое отличается от офиса Гугла, плюшек от Татьяныча и серверных ферм Яндекса. Удивлён, что ещё не прокомментировали отсутствие бесплатного кафе и предоплаченного ноутбука. Работа как работа.
Согласен, разве что, про табуретки — при текущих зарплатах программистов на кресле экономить — весьма странно. Так же огорчило место программиста в коридоре — я просто ненавижу, когда у меня в процессе работы кто-то проходит за спиной (если не из-за соседнего стола), это жутко отвлекает, возможно, только у меня так, но я в таком случае лучше пойду работать, сидя в кафе напротив или из дома. Понимаю, стартап, тратить лишние деньги на аренду — не хочется, но тогда я бы потратил деньги на те места с почасовой арендной платой специально для работы.
Ну, вообще я не удивлён — в Германии довольно хорошо с копилефтом. Вот, только на днях читал про Мюнхен, где за год сэкономили 4 млн. евро на лицензиях, поддержке и обслуживании после перехода на свободное ПО.
Не совсем про мировую гарантию, но был случай с ноутом ASUS — практически такая же история, как в посте, у них тогда была утилита, кажется, «ASUS Live Update», обновляла все драйвера и в один из разов неудачно прошила биос. Утилита, надо отметить, сама по себе кривая: одно из ядер процессора загружала всегда на половину, даже если обновлений никаких нет и выполнять нечего.
Покупал в Москве, в СЦ пошёл тоже московский. Мало того, что случай признали гарантийным (за что отдельное спасибо, так как не особо рассчитывал); так и ещё согласились починить по гарантии, хотя чек я посеял, а с момент даты выпуска прошёл год и один день. Сказали, что понимают, что ноут не могли перевезти в РФ за один день и потому по гарантии.
Вот такой положительный опыт!
вопрос в том, почему камеры ставят так неровно?
вот, к вашему примеру:
«Отдельно ведётся список списков, которые не содержат самих себя»
Уже. Отдельный вопрос — содержит ли он сам себя? Как-то раз Рассел многих этим обломал…
Простите, смог опубликовать только в UNIX (а не в оболочки).
Логика такова, да, но есть особенности бизнеса в РФ.
К примеру, цены на Macbook у нас\за рубежом или цена на мобильные устройства.
О, спасибо, хороший блог!
Для начинающих с GTK в C++ — лучше использовать gtkmm, не знаю как сейчас, но ранее (3-4 года назад где-то) — использовать сишный чистый gtk в программах с классами — намучился, определял, где нужно после передачи по указателю разрушать объект, где нет… документация была не на самом высоком уровне, так что приходилось экспериментировать.
В общем, если пишете на C++ лучше сразу использовать gtkmm, в своё время кучу кода переписывал из-за того, что посчитал проще пользоваться чистым gtk.
ps
Будет время, может, накатаю пару статей про использование pango\cairomm, да и остальные библиотеки в связи с gtk (скажем, opengl).
Пользуюсь minitube — хороший клиент для youtube. Просмотр без необходимости установки флеш, без рекламы, с возможностью скачивания, поддержкой субтитров, качества видео и закладок.
Сменив запускаемую команду с браузера на minitube — всё решается.
Лицензионное соглашение ютьюба? Не принимал — нее, не слышал!
да, на счёт этого я в курсе, я предлагал решение к вашей конкретно задаче, где в используемые клавиши Esc не входит:)
ps
вообще, конечно, спасибо, тут вы придумали хоть какое-то решение. Как-то пытался найти функцию, возвращающую состояние буфера ввода, но, может, плохо искал, думаю, это решение было бы слегка красивей.
ясно, хотя это странно, в bash под linux они различаются.
ладно, ваша взяла, хотя по мне это некий «костыль», извините уж.
мм, а какие две последовательности в ваших комбинациях совпадают?
(я что-то не заметил, курсорные клавиши, курсорные с зажатой управляющей клавишей и обычные все различаются)
тогда ведётся считывание (в моём примере по три символа), заменяя read -n3 key на read -n1 key можно вести обработку нажатия и печатных символов, затем, среди них обнаруживать escape-последовательности.
Забыл сказать: статья мне понравилась, сам когда-то, админя также развлекался с напарником; вывод был разве что на разные терминалы сервера, а не игра по сети, но уже был и таймер ходов, и лог, и чёрт вспомнит, что ещё!

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity