• Как генерировать случайные имена?

    qmax
    @qmax
    программер
    Марковские цепи помогут вычислить сочетаемость букв в именах, и выбирать наиболее "благозвучную" букву по контексту (префиксу).
    Метод архиэффективный и способен породить бесконечннешее количество слов.
    Но только если обучающая выборка достаточно большая.

    Мои рекомендации:
    Используйте длинну префикса 3-4 буквы (примерно длинна слога).
    Боле длинные префиксы будут порождать слова слишком похожие на исходные и их рекомбинации.
    Более короткие будут не очень благозвучны.
    Обязательно используйте символы начала и конца слова в качестве спец-буквы ('^' и '$'), просто пробела недостаточно, но уже не помню почему.

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

    Для хранения эффективно использовать префиксное дерево с частотами в качесве значений.
    Алгоритм составления словаря довольно простой:
    prefix = '^'
    for letter in text:
      freqdict[prefix+ letter] += 1 # увеличение счётчика этого сочетания
      if letter ='$':  # конец слова, сброс префикса
        prefix = '^'
      else:
        prefix = prefix[-depdth:] # обрезане префикса до максимальной длинны

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

    Алгоритм генерации:
    prefix = '^'
    while prefix[-1] != '$':
      tails = freqdict[prefix].items() # под-дерево всех продолжений префикса в виде списка (key, value)
      thresh = random() # точка на единичном отрезке
      i = 0 # текущий элемент
      level = 0 # верхняя граница отрезка текущего элемента
      while thresh > level:
        level += tails[i][1]
        i++
      prefix += tails[i][0]


    Код написан по памяти, не принимайте на слово :)
    Наверно, мне уже пора выкладывать библиотеку для рыбогенерации...
    Ответ написан
    3 комментария
  • DIV на всю высоту родителя?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    .parent {
      position: relative;
    }
    .child {
      position: absolute; 
      left:0;
      right:0;
      top:0;
      bottom:0;
    }
    Ответ написан
    9 комментариев
  • Как запускать 10+ потоков в java без повторяемости кода?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как-то так....
    ArrayList<Thread> mythreads = new ArrayList<Thread>();
    int tcount = 1000;
    for(int i=0; i< tcount; i++) {
         Thread thr = new myThread();
         mythreads.add(thr);
         thr.start();
    }
    for (Thread thr : mythreads) {
         thr.joint();
    }

    или по модному
    ExecutorService es = Executors.newCachedThreadPool();
    for(int i=0;i<5000;i++)
        es.execute(new Runnable() { /*  your task */ });
    es.shutdown();
    boolean finshed = es.awaitTermination(1, TimeUnit.MINUTES);
    Ответ написан
    Комментировать
  • Есть ли рускоязычная среда програмирования?

    А дальше вы куда с этими программами? Учите английский не смешите людей ))
    Ответ написан
    Комментировать
  • Есть ли рускоязычная среда програмирования?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Вы лучше подучите английский, нет? Да и без него выучить синтаксис не так уж тяжело. А так:
    Языки программирования с ключевыми словами не на а...
    Только вот сообщество, которое говорит на английском больше в разы, так что сами судите, стоит ли оно того.
    Ответ написан
    Комментировать
  • DHCPDISCOVER колдовство?

    @joneleth
    Показывайте правила целиком, iptables -nvL
    Ответ написан
    Комментировать
  • Переезд на линукс, но как быть с офисом?

    lmaxximl
    @lmaxximl
    Перейти на Linux и пользоваться Windows приложениями, да вы что смеетесь? Если переход то переход, Libre в Linux отлично работает. Все на подсознании начните работать в Linux приложениях не обращая внимание на Windows и вы поймете, что разницы в работе обычного пользователя нет. Я не говорю о серверах командной строке и всего подобного Linux давно уже User Friendly.
    Ответ написан
    Комментировать
  • Изменение истории Git и работа с удаленными репозиториями?

    @avorobiev
    Потому, что после ребейза, даже если реально ничего не изменилось, гит создает новые коммиты, и при пуше на удаленный сервер возникнет конфликт, который можно будет решить только с помощью форс пуш.
    Думаю, вам быстрее будет самому попробовать и разобраться.
    Ответ написан
    Комментировать
  • Рекурсия при вызове метода в плагине для jQuery?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мне кажется вы изначально что-то не так сделали. вам стоит подучить раздел JavaScript по поводу контекста функции.

    jsfiddle.net/kpVJv/ — из любопытства набросал простенький пример слайдера в виде jQuery плагина (самый простой, ничего инетересного), но может быть вы чего найдете интересного.
    Ответ написан
    2 комментария
  • Предсказание будущего?

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

    Конечно. Вот только теоретически невозможно иметь такую информацию и такой компьютер.
    Народ же не верит и говорит, что человек волен выбирать и от его выбора все зависит

    Народ глуп (убеждения вроде «свобода воли» на самом деле следствие древних религиозных предрассудков). Все физические процессы во вселенной вполне закономерны, включая реакции в мозге. Проблема в том, что невозможно знать все начальные условия и все закономерности для точного предсказания.
    Ответ написан
    Комментировать
  • Как настроить свой приватный GIT репозиторий?

    А почему хотите использовать http-метод? ssh для пуша не подходит?
    Ответ написан
    Комментировать
  • Prepared Statements

    @Hint
    По-моему вы код неправильно понимаете (проблема где-то в другом месте). Удалена строка или нет, цикл все равно будет завершен. Из результата (result) записи не удаляются в процессе выполнения тела цикла (даже в случае добавления SQL с DELETE в транзакцию). А вот при следующем вызове метода SendExternalMails строки опять будут выбраны и опять попадут в result, если они не были удалены ранее.
    Ответ написан
    2 комментария
  • что за странный хабра-фишинг с rc.habratest.net?

    kefirux
    @kefirux
    Да, я сегодня писал топик про этот фишинг, топик набрал аж +60, и администрация убрала его в черновики, что как бы показывает какой я параноик
    Ответ написан
    Комментировать
  • Пара вопросов про DynDNS

    @XRay39
    Относительно второго пункта: есть openDNS — 208.67.220.220 и гугловые DNSы — 8.8.8.8 и 4.4.4.4
    Ответ написан
    Комментировать
  • Необычное использование побитового XOR в Javascript?

    @MagaSoft
    >Вчера весь вечер я размышлял над этим… безуспешно пытаясь заснуть на протяжение двух часов…
    Думаю автор добился своего.
    Ответ написан
    1 комментарий