• JetBrains пути?

    @Vampiro
    $FilePath$
    $FileDir$
    $Projectpath$
    и еще куча там. Не помню все, можно посмотреть в каком-нить диалоге по кнопке «макросы»
    Ответ написан
  • Заботятся ли на вашем рабочем месте о здоровье сотрудников?

    @Vampiro
    Кактус поставил рядом.
    Ответ написан
    Комментировать
  • json_encode — строгая типизация

    @Vampiro
    Я бы сделал такую штуку:
    ввел массив с типами переменных, которые должны быть в json явно указаны.
    и применял эти типы. Как-то так, в псевдокоде.
    class MyJson {
        private $types = ['id'=>intval,'name'=>'strval','price'=>'floatval'];
        public function convert2Json($array)
        {
            foreach ($array as $key=>$value)
            {
                if (isset( $this->types[$key] )) $array[$key] = {$this->types[$key]}($value);
            }
            return json_encode($array);
        }
    }
    
    Ответ написан
    Комментировать
  • Какова важность диплома при приеме на работу?

    @Vampiro
    Поймите, что вы учитесь для себя. А диплом на работу и на зарплату влияет примерно в такой же степени как и возраст. Показывает «степень зрелости» кандидата. И в некоторой степени гарантирует, что вы не совмещаете работу с учебой. Хотя есть места, где это считается за «умение довести дело до конца». Но там, обычно, и зарплаты ниже рыночных, и дресскод для сисадминов, и вход/выход через проходную.
    Ответ написан
    2 комментария
  • Классы, пространства имен, функции?

    @Vampiro
    ок, еще раз. Вот вы создали такую штуку. Напичкали в нее кучу классов. Скажем… 15. Теперь вы в коде пишите:
    class A {
        callMethod('foo',|
    }
    

    Вот вы набрали функцию, и набрали даже неймспейс. Курсор у вас стоит после запятой. Что дальше? Дальше вам придется вспоминать название функции или лезть в документацию по утилите. Поскольку никакая IDE не сможет разрезолвить что вам сейчас предложить. И как быть с количеством параметров ей тоже будет не ясно. И еще вы не получите «ленивую загрузку» сходу, как это было бы при нормальной реализации.
    Если в вашем варианте есть хоть один положительный момент — подскажите, плиз. Я, наверное, слеп(
    Ответ написан
  • Выгрузить класс из памяти

    @Vampiro
    Есть система, в ней используется шаблонизатор (Smarty), который инициализируется как поле родительского класса всех модулей. Есть модуль которому шаблонизатор не нужен.

    Найдите модуль родителя. скопируйте его, назовите как-то а-ля BaseModuleNoSmarty. Выкиньте оттуда все, что связано со смарти и отнаследуйтесь от него. То есть у вас два варианта, быстрый и хороший:
    хороший:
    было
    class MyModule extends BasicModule
    стало
    class MyModule extends BasicModuleNoSmarty
    

    и второй, с большим объемом рефакторинга:
    было
    class MyModule extends BasicModule
    class BasicModule extends AbstractModule ( а может это и базовый класс, тогда чуть проще)
    стало
    class MyModule extends BasicModuleNoSmarty
    class BasicModule extends BasicModuleNoSmarty{
    тут добавление Smarty куда надо
    }
    class BasicModuleNoSmarty extends AbstractModule {
    тут все, что было в обычном модуле но без шаблонизатора.
    }
    

    Это если вы не хотите переделывать реализацию базового класса всех модулей.
    Ответ написан
    Комментировать
  • Эффективность труда: офис против аутсорса?

    @Vampiro
    1. Человек считает время на дорогу в офис и обратно потраченным на работу => меньше отдыхает тот, кто работает в офисе.

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

    3. Я предпочитаю работать до 2-3ч ночи, потом спать до 10 утра. Да, я могу проснутся в 7:30 и быть на работе к 8:45, но толку до 14:00 от меня будет не больше, чем от секретарши Катерины. А моя подруга по утрам ходит петь в церковь, и в 7:00 уже в рабочем настроении. У каждого вашего коллеги свой график, мы так устроены.

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

    В целом, если есть мотивация, работа из дома чрезвычайно продуктивна. Если мотивации нет — то можно и в офисе сидеть бездельничать. Я работал как со студиями, так и с фрилансерами, и могу сказать, что порой офисные студии затягивают со сроками куда безбожнее, чем фрилансер, соображающий на сколько легко я ему найду замену в случае ахтунга.
    Ответ написан
    Комментировать
  • Использование виртуальной среды в веб-разработке

    @Vampiro
    Поднимайте виртуалку, ставьте на нее Linux (я ставлю ubuntu-server). Поднимайте lamp+git|svn|hg. теперь клонируете.
    Разработкой занимаетесь в своей привычной среде, большинство редакторов поддерживает svn из коробки, нужно только указать сервер. Отредактировали — запушили на linux.
    Если для следующего проекта будет нужно другое окружение — копируете виртуалку из клона.
    А там, глядишь, и на linux переползете полностью :)
    Виртуалки рулят, только желательно оперативы побольше и винт ssd, чтобы совсем огонь было. Но я заводил и на ноутбуке.
    Ответ написан
    2 комментария
  • Определение кода юникод по символу (PHP)?

    @Vampiro
    а пробовали более простой метод, а-ля
    iconv + preg_match('A-z|А-я|0-9|....')?
    Ответ написан
  • Есть идеи как восстановить фото с SD карты?

    @Vampiro
    Плюсану за пропаганду бекапов. Не знаю чем помочь :(
    Ответ написан
    2 комментария
  • Socket-сервер php или python?

    @Vampiro
    Выбирайте то, что лучше знаете. Если пишете не для повышения квалификации. Потом, на досуге, можете сделать вариант на питоне (для самообразования) и сравните. Может и статья родится на Хабр! А для продакшана лучше идти там, где большинство граблей уже прощупано.
    Ответ написан
    1 комментарий
  • Вставка большого количества записей в начало таблицы

    @Vampiro
    я бы сделал так:
    1. создал новые таблицы.
    2. зафигачил туда все из файлов.
    3. отключил логи и констраинты
    4. insert into новые_таблицы select (все поля кроме PK) from старые таблицы.
    5. переименовал таблички, включил констраинты логи.

    как-то так, если я правильно осознал условия.
    Ответ написан
  • Freelansim.ru — как оставить негативный отзыв о фрилансере?

    @Vampiro
    Странная идея — отдать деньги незнакомому человеку не имея никаких гарантий вообще. Возможно для вас окажется шоком, но вы вполне могли и psd не получить. И вообще больше не встретиться :)
    Я стараюсь примерно так поступать:
    обсудили
    исполнитель сделал.
    исполнитель показал (вот тут важный момент. Кодер показывает на своем хостинге. Дизайнер — уменьшенный вариант картинки (png). Верстальщик тоже картинки обычно шлет)
    передается оплата.
    передается результат.
    При таком раскладе заинтересованность сторон в продолжении отношений сохраняется до самого последнего этапа.

    Это не серебряная пуля, конечно.
    А в целом, да. к Фрилансиму просто необходим список проектов с оценками от обеих сторон.
    Ответ написан
    3 комментария
  • Какие есть способы защищенной передачи данных, кроме VPN. Требуется для разовой передачи или на постоянное время для достаточно большого трафика?

    @Vampiro
    Я бы сделал у себя файл/контейнер TrueCrypt нужного размера и передавал его торентом по обычному соединению. Пароль передал клиенту другим каналом (СМС, Почта России, Голуби, Зимбабвийский бегун)
    Ответ написан
    1 комментарий
  • Как замаскировать номер кредитной карты с помощью регулярного выражения?

    @Vampiro
    Для записи в лог лучше делать примерно так:
    cc_number=HIDDEN_CC_NUMBER&amount=1500&CVV=HIDDEN_CVV
    А то через пару недель вы будите лепить регулярки для поисков по логам 3-4-12-14-16 последовательных «X»
    Ответ написан
    1 комментарий
  • Как найти junior-y middle программиста на вакансию?

    @Vampiro
    Если нет возможности пригласить со стороны знакомого…

    Я бы попросил его решить пару небольших проблем, которые вы недавно решали и на которые у вас ушло больше, скажем, часа. Не на написание кода и тестов, а на принятие архитектурных решений. Если он уложится в 10 минут и решение будет адекватным — он ваш.

    Что-то по типу: есть каталог товаров (plain table), скажем, на 1 000 000 записей. За каждый товар голосуют пользователи на сайте и таблица с товарами постоянно обновляется. Как в такой схеме посчитать рейтинги, чтобы не уронить всю систему.

    Посидите, обсудите. Поспорьте. :)
    Ответ написан
    Комментировать
  • Проблема в связке PHP + MS SQL Server 2005

    @Vampiro
    SELECT @@MAX_CONNECTIONS AS 'Max Connections';

    Погуглите sp_configure еще.

    Но, как уже сказали выше, это не решит проблему, необходима прокладка. Хотя может дать время на ее разработку.
    Ответ написан
    Комментировать
  • Можно ли отследить активацию вкладки в браузере?

    @Vampiro
    Пользователь в браузере может открыть несколько разных его страниц.

    можно при прорисовке страницы генерить уникальный ИД через rand, или как функцию от текущего времени и на каждой закладке/страничке он будет свой. Если добавить его к каждой ссылке — вы будете знать с какой страницы был переход. Хотя, может это немного не то что вам требуется)
    Ответ написан
    Комментировать
  • Как удобно организовать данные на HDD?

    @Vampiro
    Мои Документы/2013
    Мои Документы/2012
    Мои Документы/2011


    Музыка/2013
    Музыка/2012
    Музыка/2011


    Фильмы/2013
    Фильмы/2012



    и т.д. Удобно для бекапов (текущий год в определенных папках). Удобно для поиска. Удобно для удаления мусора (папку Soft/текущий_год_минус_два можно удалять прямо первого января =) )

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

    Что еще из полезного… побольше симлинков — они реально позволяют структурировать данные, когда и файл лежит в своем месте (например, фото/2010), и папка с документами не разбухает от копий (например Документы/2013/Коллаж на 8-е Марта/Исходники Фото)
    Ответ написан
    Комментировать