• Генерация уникальной комбинации средствами php?

    @Masterme
    энтропия в юниксах находится в /dev/random
    правда, количество её ограничено, придётся ждать
    либо использовать /dev/urandom

    вам нужно получить не 16 чисел от 1 до 10, а одну последовательность длиной примерно 50 бит (то есть, это получится 50-значное число с основанием 2, его можно преобразовать в число с основанием 10)
    Ответ написан
    Комментировать
  • Есть какой-то механизм, подобный транзакциям бд, только для файловой системы?

    @Masterme
    всё делается через базу. заводите отдельную таблицу заданий, например, заданий удаления файлов с диска. и делаете так

    1. вам нужно сохранить файл blabla.jpg
    1a. заносите в таблицу заданий "удалить blabla.jpg с таймаутом например 1 час"
    1b. создаёте файл blabla.jpg
    2. открываете транзацкию
    3. делаете запись в основную таблицу, где в одном из полей сохраняете ассоциированный файл blabla.jpg (не сам файл, конечно, а его название)
    4. удаляете запись сделанную п. 1а
    5а. если нет ошибок - закрываете транзакцию
    5б. если есть ошибки - откатываете транзакцию

    вторая часть схемы - скрипт, обходящий таблицу заданий и выполняющий задания из неё.
    Ответ написан
    Комментировать
  • Как реализовать список в БД?

    @Masterme
    1000 записей - ни о чём. делайте на любой СУБД, всё будет работать нормально
    Ответ написан
    Комментировать
  • Какую выбрать мат.плату под хост для hyper-v?

    @Masterme
    за такие деньги только десктоп. берите ASUS P8H77V-LE, процессор под неё i5 или i7, 4х8 оперативы.
    Ответ написан
    22 комментария
  • Есть ли скрипт дампа баз данных MySQL?

    @Masterme
    exec('mysqldump -u $username -p$password $database --single-transaction --quick > dump.sql');
    exec('pigz -k dump.sql')
    Ответ написан
    2 комментария
  • Применение паттернов проектирования в web-разработке. Как начать, когда, где и какие применять?

    @Masterme
    http://lib.ru/ANEKDOTY/non_pas.txt
    http://sp.sz.ru/nast_progr_.html
    http://volgograd.lug.ru/library/hacker-howto.ru.html
    http://md-it.ru/articles/html/article63.html

    Необходимо попробовать множество парадигм, то есть, множество семейств языков или хотя бы близких языков. А ещё понимание где какой паттерн требуется приходит когда сталкиваешься со специфической задачей. Максимум же задач возникает не в обычной повседневной рутине, а при построения проблемно-ориентированного каркаса (либо на основе eDSL либо иными способами). Для веба это создание своего фреймворка. Именно тогда оказываются востребованными возможности языка такие как замыкания, неймспейсы, трейты (хотя насчёт трейтов я не уверен) и многие другие. А создание сайтов на готовом фреймворке никаких особых знаний не требует.
    Ответ написан
    7 комментариев
  • Как найти исходники javascript, html, jquery, css скриптов и всяких фишек?

    @Masterme
    Конкурс троллей штоле?
    Ответ написан
    Комментировать
  • Редко используемое слово-название сайта. Это в плюс или в минус индексации?

    @Masterme
    Вывести на первое место по слову "цикаб" будет просто. Даст ли это вам нужный объём трафика? Скорее всего нет

    Сайт раскручивается не по одному слову, а по сотням и тысячам.
    Ответ написан
  • Синхронизация БД MySQL

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

    сама концепция апдейтить базу извне низкоуровневыми механизмами порочна - она рано или поздно приведёт к логической неконсистентности данных. так что импорт-экспорт на уровне приложения
    Ответ написан
    Комментировать
  • Почему клиент по любой мелкой проблеме в программе первым делом звонит на телефон?

    @Masterme
    Просто говорите "я не могу ответить на этот вопрос по телефону, напишите на e-mail". Или как есть "простите, но ваши звонки отнимают у меня слишком много времени. пишите на e-mail". Будьте поувереннее в себе. Хамить не надо, а в остальном говорите как есть.
    Ну, трубку всегда надо брать, а если отключаете - поставьте голосовой автоответчик "вы позвонили в нерабочее время, перезвоните во столько-то".
    Ответ написан
    Комментировать
  • Что почитать, прежде чем писать свой фреймворк на php?

    @Masterme
    Все пых-фреймворки - говно. Чтобы лучше понять, каким должен быть веб-фреймворк, нужно смотреть на фреймворки в других языках, например, на RoR (хотя, он не идеален, конечно). Там люди совсем по-другому мыслили и не были стеснены пых-парадигмой. Также хорош django, отражена суть реакции фреймворка на запрос.

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

    Начинать нужно с обработки командной строки. Ваш фреймворк должен уметь работать с данными, таблицами, сетью, уметь обрабатывать ошибки (например, отвалившуюся БД) из командной строки. Потом, когда вы сформируете внутреннее API, можно навешивать роутинг и вьюхи.

    Ну и не следует забывать, что первый вариант всё равно пойдёт в /dev/null
    Ответ написан
    Комментировать
  • Как оптимизировать обработку длинных циклов?

    @Masterme

    Псевдокод если сначала дублировать в список:

    L3 = L1.clone
    for line in L3
        if line not in L2
            L3.remove line
        endif
    endfor
    L3.savetofile '3.txt'

    Псевдокод если писать сразу в файл (если работать только с файлами, то стринглисты не нужны, можно читать из первого файла построчно):
    for line in L1
        if line not in L2
            line.append_to_file '3.txt'
        endif
    endfor


    Теперь к вопросу о проверке строки в L2 и хэшах.
    Есть два понятия хэшей.
    Первое - хэш-функция от некоего объекта H(S), такая, что если S1=S2, то H(S1)=H(S2). Это значит, что для проверки равенства объектов достаточно сравнить их хэши. В качестве объектов сравнения могут быть строки, файлы и т.д. В качестве хэш-функции обычно используют MD5.
    Второе - это хэш-массивы или ассоциативные массивы. Они хороши тем, что поиск значения в них всегда по сложности O(1). То есть, для проверки не нужно перебирать все элементы.
    Теперь пример:
    пусть у нас есть три строки: 'abc', 'def', 'ghi'.
    md5('abc') = '900150983cd24fb0d6963f7d28e17f72'
    md5('def') = '4ed9407630eb1000c0f6b63842defa7d'
    md5('ghi') = '826bbc5d0522f5f20a1da4b60fa8c871'
    строим хэш-массив
    L2_hash = {
      '900150983cd24fb0d6963f7d28e17f72' = 'abc',
      '4ed9407630eb1000c0f6b63842defa7d' = 'def',
      '826bbc5d0522f5f20a1da4b60fa8c871' = 'ghi'
    }

    теперь при проверки, есть ли строка some_string можно сделать так (псевдокод)
    if L2_hash[md5(some_string)]
      // строка содержится
    endif

    более того, не обязательно хранить строки, можно сделать так
    L2_hash = {
      '900150983cd24fb0d6963f7d28e17f72' = 1,
      '4ed9407630eb1000c0f6b63842defa7d' = 1,
      '826bbc5d0522f5f20a1da4b60fa8c871' = 1
    }


    всё это псевдокод, я паскаль уже забыл. надеюсь принцип понятен

    Ответ написан
    Комментировать
  • Как правильно настроить управление цветом в графических программах?

    @Masterme

    неправильно, надо делать в sRGB. потому что потом ваши картинки будут порезаны и сохранены в jpg, без всякой информации о профиле. то есть, во время рисования вы должны видеть такие же цвета, какие увидит посетитель сайта в свёрстанном макете.

    Ответ написан
  • На чем писать сервис сбора статистики?

    @Masterme

    что-нибудь, что не дохнет как php, например python-wsgi или ruby-rack скрипт. в базу записывать в асинхронном режиме. можно не в базу, а в файл. опач, нжынкс или что другое - без разницы

    Ответ написан
    2 комментария
  • Как сделать цвет черно-белым?

    @Masterme

    1) RGB -> HSB
    2) обнуляешь saturation
    3) преобразуешь обратно HSB -> RGB

    Ответ написан
    Комментировать
  • Не могу понять систему оценки стоимости разработки сайта

    @Masterme

    1. Составляется ТЗ, в котором по пунктам расписано, что нужно сделать и как оно должно в результате выглядеть и работать.
    2. ТЗ отдаётся на оценку кандидатам, они проставляют оценочное количество человеко-часов и ставку за час по каждому пункту
    3. Прибавляются прочие расходы, такие как покупка шаблонов или фотографий или движка сайта и т.д.
    Сумма 2 и 3 и будет ответом. Если пункт 1 вы выполнить сами не в состоянии (думаю, это так), то ещё и за него нужно будет заплатить.

    Ответ написан
    1 комментарий
  • Как подобрать конфигурацию компьютера?

    @Masterme

    Мать выбирается на основе чипсета. Чипсет можно выбрать двумя способами:
    1) на основе проца - открываешь http://ark.intel.com/ раздел desktop processors и выбираешь тебе нужный, потом под него с учётом сокета и технологической линейки подбираешь чипсет.
    2) открываешь список чипсетов и подбираешь по параметрам. Вот или вот. Процессор подбираешь по сокету.
    Когда поймёшь, какой чипсет тебе нужен - мамку подобрать не составит труда. При сборе системы для игр бренд особо не важен.

    Ответ написан
    Комментировать
  • Почему пошёл дым из жёсткого диска?

    @Masterme

    Сказать "что-то не получается", положить на место и пойти пить чай.

    Ответ написан
    3 комментария
  • Почему материнская плата чудит?

    @Masterme

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

    сперва запустите мемтест, если ваша теория верна - будут ошибки - сразу увидите. посмотрите информацию по SPD в мемтесте же (не помню хоткей, там есть справка). потом меняйте в биосе тайминги, вольтаж не надо. пробуйте

    взяли оверклокерскую память - придётся научиться с ней обращаться. ну либо поменяйте, потому что если с SPD не завелась, то потом при сбросе биоса придётся перенастраивать.

    Ответ написан