• Имеет ли смысл полный рабочий день для программиста? Производительность труда?

    @boodda
    Про тех кто работает по 10-16 часов. Такое рвение лет до 25, и то пока не женат, нет детей, родители живы и не болеют, и слава богу так сказать.

    А потом:
    Задерживаешься в течении недели на 3 часа на работе — ты мне изменяешь?! (говорит жена)
    Задерживаешься на 2 часа и не забираешь ребенка из садика — да тебе наплевать на ребенка! (говорит жена) + п.1
    Ты что не можешь отвезти детей в сад и школу? — вообще, ох#$%? — да тебе наплевать на детей! (говорит жена)
    Как это мы не идёт в кино? — вообще, ох#$%? — да тебе наплевать на меня! (говорит жена)
    Что значит ты устал, а я что просто так красное бельё одевала? + п.1
    Вышел в субботу на работу и не отвез родителей на дачу — ты че, сынок, не уважаешь и не любишь родителей ?(говорят родители)
    Ты занят в пятницу вечером… м-м и в субботу вечером!?!, да что ты за друг с тобой даже встретиться и оторваться некогда! в кого ты превратился (говорят друзья)

    Не полный перечень вопросов, которые человек в возрасте ~30лет и лет 5 в браке, получает, если на работе что то проиходит не так.
    Ответ написан
    9 комментариев
  • Узнать белый IP-адрес роутера с сервера, который за NAT-ом?

    FilimoniC
    @FilimoniC
    Поставь DynDns на сервер. Так ты будешь хотя бы знать что там происходит
    Ответ написан
    4 комментария
  • Имеет ли смысл полный рабочий день для программиста? Производительность труда?

    tri_botinka
    @tri_botinka
    Вопрос крайне интересный. Но я бы поставил его не так — не как заставить программиста дольше работать, а как сделать так — чтобы он больше делал. Т.е. организовать эффективную работу. По опыту — удавалось повысить производительность программистов раз в 10, а аналитиков почти в 12 (!). Как?

    Во-первых — проанализировав процесс и устранив все точки, где возможен re-work, переделка ранее сделанной работы. Например слабый аналитик не разобрался в требованиях заказчика и вывалил весь это мусор на кодировщика. В итоге противоречия в голове заказчика и аналитика привели к противоречиям в коде. Как устранить? — проапгрейдить аналитика, сделать формальным процесс обследования, ввести приемку BRD старшим аналитиком.

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

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

    В четвертых, порядок коммуникаций. Возьмите за правило — не дергать программера чаще чем в 2-3 часа. Как правило он думает в «туннельном эффекте» — декомпозируя задачку и входя в режим творения. На такую подготовку уходит 20-30 минут. Если его в этот момент выдернуть тупым вопросом — мол, дай сигарету или ты не знаешь — а где лежит постановка — то опять потребуется полчаса…

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

    Да, кстати — офис — тоже интересная штука. Опытные капиталисты делают офис почти домашним не зря. И аутсорсят мелкие бытовые проблемы сотрудников — типа отвезти белье в химчистку, поискать подешевле квартиру, заказать билет в театр или место в ресторане, купить продукты по списку… Это позволяет удержать сотрудника на работе дольше, застав несколько его «пиков работоспособности». Причем сам сотрудник будет вам благодарен за комфорт и решение его мелких бытовых проблем. А работодатель значительно сэкономит на оплате овертаймов.
    Ответ написан
    3 комментария
  • 10minute… phone?

    Комментировать
  • Запрос с группировкой по месяцам с 21 по 20 число

    @Fantyk
    web developer
    первое, что пришло в голову
    select MONTH(archive_date)+IF( DAY(archive_date<=20),0,1) as criteria…
    where #тут ограничить период
    group by criteria
    Ответ написан
    3 комментария
  • Рефакторинг кода контроллера MVC модели?

    iSage
    @iSage
    Использовать валидатор форм.
    Ответ написан
    Комментировать
  • Существует ли нормальное антиспам-смс приложение под Android?

    m08pvv
    @m08pvv
    Не совсем по вопросу, но по-моему надо бороться с причиной, а не со следствием, проскакивала статья про сервис по отписке от смс-спама, а ещё ссылки на хабр: вот такая, вот такая и вот такая
    Ответ написан
    3 комментария
  • Формирование, предпросмотр и печать документов

    la0
    @la0
    Я бы делал конвертацию в pdf и просмотр и печать из него
    Ответ написан
    1 комментарий
  • Спроектировать таблицу БД GPS трекера

    @rPman
    Помимо партиционирования, я могу посоветовать из разряда 'вредных советов' (но лично так делал для более простых форматов хранения таблиц — myisam, с ними проще восстанавливать базу, вот с innodb я не очень в курсе, как легко будет поднять базу если индексный файл будет потерян)…

    Разделите данные и индексы по разным файлам (а точнее физическим разделам, если конечно ваш тарифный план хостинга позволяет это). Индексы обычно занимают меньше места но основные тормоза при записи создают именно они (так как в них происходит перезапись порядка log(n) объемом данных (конечно все сложнее, много читается как из таблицы с данными так и из таблицы с индексами) и эта запись сервером баз данных делается в синхронном режиме.

    Само по себе размещение индексов таблиц баз данных на более быстром (те же ssd) носителе заметно ускоряют работу, но я так понимаю это не ваш случай и предлагаю схитрить за счет понижения надежности, отключить синхронизацию записи данных для соответствующих файлов. Сделать это можно, разместив эти файлы на рам-диске (tmpfs) либо отформатировав их раздел под ext4 и примонтировать с опциями -o noatime,async,data=writeback.

    Но прежде чем радоваться заметному повышению работу базы данных, рекомендую сначала протестировать и подготовить скрипты поднятия базы данных после нештатного выключения сервера (данные в tmpfs теряются безвозвратно, так же как некоторые данные для разделов, смонтированных с data=writeback). Так как на ненадежном хранилище размещаются не данные а индексы, то их потеря не критична (вопрос только во времени, требуемом для их полной перестройки).
    Ответ написан
    Комментировать
  • Как понять, что фотоаппарт — не подделка?

    hack2root
    @hack2root
    «Битый» или «горячий» пиксель. Пробег — около 10000+, открученный «пробег», восстаовленная прошивка (после неудачной прошивки и/или эксплуатации Magic Lantern), засветка матрицы лазерными лучами — «просадка» цветности, контраста по одному пикселу или по всем у полю, нерабочие функции — очистка матрицы, режимы съемки, нерабочие кнопки быстрого доступа, нерабочие быстрые комбинации кнопок) и/или восстановленная коробка (повреждение шторки, зеркала), «битая» электроника, эксплуатация за пределами допустимых температур (влажность, давление), экстремальная съемка (удары, перегрузки более 10g). Все это — то, что вы при покупке никогда не сможете определить, не разобрав аппарат, или не проверив фирменным сервисным ПО Canon или с помощью фирменного ПО или утилит на портативном ноутбуке (Adobe CS, Adobe Bridge, DeadPixelTest). Вот лишь самый общий список. На полное тестирование может потребоваться не один час, осмотр фотоаппарата, спец. средства (зеркальце дантиста, лупа, макро кольцо, белая LED подсветка, и т.д.)

    Точно могу сказать — косяк есть, иначе не может быть. Я брал «новый» в известном бренде. Мне подсунули Mark II с битым пикселем и пробегом 10000.

    Совет — бери новый в запечатанной заводской коробке и не позволяй никому вскрывать ее, если не умеешь искать косяки вроде бек-фокуса объектива или засвеченной коробки.
    Ответ написан
    1 комментарий
  • Следует ли отключать файл подкачки при использовании SSD-накопителя

    pletinsky
    @pletinsky
    Если так заморачиваться по поводу ssd — то зачем он вам вообще нужен? вообще же от него удовольствия не получите.
    Не закончатся ваши циклы перезаписи в обычных сценариях использования хоть с файлом подкачки, хоть без него.

    Опирайтесь на размер оперативной памяти в вашем решении.
    Ответ написан
    Комментировать
  • Следует ли отключать файл подкачки при использовании SSD-накопителя

    Mithgol
    @Mithgol
    Файл подкачки не следует отключать, потому что его отсутствие провоцирует сбои в программах, нуждающихся в крупных объёмах виртуальной памяти.

    Однако, заботясь о медленной трате жизненных ресурсов SSD, можно перенести файл подкачки на другой диск (не SSD), и тем невозбранно достигнуть желаемого.

    (Вопрос о том, насколько именно подкачка на SSD сокращает срок службы SSD, является на Хабрахабре опасным для кармы, так что я его вообще не стану затрагивать.)
    Ответ написан
    Комментировать
  • кем бы вы хотели быть?

    Начинающие программисты всегда ищут идеальный язык программирования. Но в итоге понимают или не понимают (что чаще происходит), что дело не в языке, а в представлении и понимании алгоритмов работы программы и её взаимодействия с областью приложения.
    Или скажу проще «Неважно какая у тебя машина — BNW или Запорожец. Если не умеешь водить, то никуда не уедешь.»
    Ответ написан
    1 комментарий
  • Какой фреймворк посоветуете для рисования диаграмм, графиков?

    Dolios
    @Dolios
    Посмотрите jqPlot.
    Вменяемое API, очень гибко настраивается, большое количество диаграмм и графиков, неплохая документация и очень много примеров. Работает на canvas. Если не нужно ничего специфического типа structured parallel coordinates и т.д., то, имхо, лучший фреймворк. Бесплатен, использует jQuery
    Ответ написан
    Комментировать
  • Ликбез: ssh-agent x-session manager — зачем оно надо?

    @motl
    Не очень ясно выразился в предыдущем посте. Возможность запускать приложения на удаленной машине — это свойство архитектуры X System. SSH необходим только для аутентификации и шифрования данных. В качестве сессионного протокола вместо ssh можно использовать telnet.
    Ответ написан
    Комментировать
  • Ликбез: ssh-agent x-session manager — зачем оно надо?

    @motl
    Для того, чтобы X client applications, запущенные на удаленной машине, могли подсоединиться к вашему X Server. В качестве аутентификации по умолчанию используется SSH. ssh-agent это утилита для управления ключами.
    Например, у вас на удаленном сервере запущена программа администрирования системы. Это программа коннектится к X Server на вашей локальной машине и позволяет вам конфигурировать удаленную машину в графическом режиме.
    Ответ написан
    5 комментариев
  • Влияние наличия конструктора на расположение элементов внутри класса?

    mejedi
    @mejedi
    Вам знакомо понятие «выравнивание»?

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

    Таким образом, поле типа long должно быть выравнено на границу 8 байт. Так как объекты могут располагаться в массивах подряд друг за дружкой, размер объекта также должен быть кратен 8. В общем случае — необходима кратность максимальному выравниванию среди полей. В результате получается следующий расклад: 8 байт long, 4 байт int, 4 байт паддинга. Если выравнивание на 8 байт не нужно (отсутствует long поле), то необходимости «подгонять» размер объекта тоже нет, и паддинга не возникает.

    Теперь самое интересное — почему есть эффект от пустого конструктора?

    Снова обратимся к теории. В C++ есть понятие POD типа. Можно сказать, это такая декларация, для которой гарантируется совместимость с Си. Для структур в языке Си непосредственно в стандарте прописаны правила «раскладки» полей в памяти, паддинги и все такое. До тех пор, пока Point не имеет пользовательского конструктора, он является POD, и следовательно должен иметь в конце «неприкосновенный» padding.

    Напротив, для не-POD типов стандарт не фиксирует представление в памяти. Например классы вполне законно представлять хоть хеш-таблицей, именно поэтому в C++ запрещено использование offsetof для полей класса. Поэтому компилятор вполне вправе творчески переиспользовать padding в объете Point для полей Point3D. Замечу, на другом компиляторе вы могли получить другой результат, и это было бы все равно ок с точки зрения языка C++.

    Что любопытно, объявления с ключевым словом class все еще могут быть POD-типами. Классы и структуры перестают быть POD типами наприемр если есть наследование или пользовательские конструкторы или виртуальные функции.
    Ответ написан
    1 комментарий
  • Передача и хранение CVV2, CARDHOLDER для бронирования гостиницы?

    qxfusion
    @qxfusion
    Нужно начать с основного:
    (1) Ваша система должна соответствовать требованиям PCI DSS v2.0 — pcidss.ru/files/pub/pdf/pcidss_v2.0_russian.pdf
    (2) CardHolder + Valid Thru — можно хранить, но требует защиты, CVV2 запрещено сохранять!
    делайте все по стандарту — тогда и не будет проблем, они достаточно просты и понятно описаны в соответствующих докумнетах
    (3) Если букинг.ком отправляет эти данные (1) по факсу (2) в открытом виде — то они ЯВНО нарушают требования PCI DSS и их за это ждут санкции
    (4) Да — нужен обязательно — рекомендую брать один из 2 — (1) VeriSign или (2) TrustWave — у обоих есть сертификат для «PCI DSS Compliance»
    (5) Купить — но потребуют официальные реквизиты организации
    (6) По сложности одинаково — только разная стоимость
    (7) Для этого есть стандарты
    Шифрование данных — ANSI X9/ISO — AES или TDES
    Управление ключами — ANS X9.24/ISO 11568 или SCD ANS X9.97/ISO 13491
    PRGN — NIST SP800-22, NIST SP800-90A
    Распространение ключей — X9/TR-34 Part1
    Криптостойкость — ISO TR-147442
    (8) Да, но не забывайте что для платежных данных Вы должны использовать отдельную БД и к ней должен быть мандатный доступ

    Для Вас было бы проще принимать оплату через платежный шлюз (например Stripe.com) — т.к. чтобы принимать эти данные на своем сайте — нужно соответствовать значительному числу требований.
    Ответ написан
    1 комментарий
  • Курсы, статьи, лекции по регулярным выражениям?

    Shultc
    @Shultc
    RnD Developer
    Вот тут можете почитать: www.regular-expressions.info/

    А вот тут можете потренироваться в применении прочитанного: regexpal.com/
    Ответ написан
    Комментировать