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

    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 комментария
  • Почему главное меню сайта верстают с помощью списков?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    — Что мы видим в навигационном меню сайта?
    — Список пунктов меню.
    — Что еще раз?
    — Список!
    — Что такое список?
    — Список — это перечень. Перечень однотипных данных.
    — Пункты меню — это перечень однотипных данных?
    — Да!
    — Правильно — список. Итак, навигационное меню сайта — это список. Ок. Переходим к верстке. Давайте верстать список. Чем мы его будем верстать?
    — . . .
    — Что, никто? Никто не знает? Да,@sergealmazov, подскажи всем.
    — Давайте верстать список параграфом с встроенными тегами логической разметки, в которые вставим ссылки на соответствующие страницы.
    — . . . Дети, вы меня убиваете! Давайте снова. Что такое список?
    Ответ написан
    11 комментариев
  • Как реализовать подобную вещь на сайте с помощью css и js?

    Несколько иначе сделал:
    1. Слой заливается под углом с помощью border (поддержка IE8)
    2. По hover родительского блока меняем толщину border до вдвоебольшей чем размер родительского блока
    3. Анимация возможна с помощью transition или animate, но ни то, ни другое не поддерживается в IE8
    Пример: codepen.io/anon/pen/DpCfk
    Ответ написан
    Комментировать
  • Где PHP программисту взять современные бесплатные несложные шаблоны сайтов?

    Prognosticator
    @Prognosticator
    TODO: Здесь будут ворованные умные мысли, типа мои
    bootstrap и шаблоны
    бесплатно, несложно, современно )
    Ответ написан
    5 комментариев
  • Как реализовать не стандартные (обрезанные) границы в блоке,за которым имеется цветной фон?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    jsfiddle.net/petroveg/dL91e497
    Обращаем внимание на связанные величины.

    Вот вам ещё немного магии codepen.io/cleric/pen/oDsbh
    Скруглённые края. 20px — связанная величина.
    Ответ написан
    1 комментарий
  • Как в bootstrap сделать задание диапазона цен как я яндекс-маркете?

    Его и нет. Используйте jquery ui jqueryui.com/slider/#range
    Ответ написан
    Комментировать
  • Как и в какой программе создать плавную gif-анимацию?

    engine9
    @engine9 Автор вопроса
    Разрабатываю интерфейсы и трехмерные презентации.
    После долгих изысканий сам нашел решение.

    1) Качаем ставим гимп 2.8
    2) Жмём Open as layers выбираем файлы секвенции
    3) Делаем экспорт в GIF и выбираем параметры как на скрине. При слишком маленьком значении задержки гимп сам дописывает значение 100 мс не говоря об этом!

    3553cfa059cb4b1292f43969d7aed5cf.jpg921566705a314645ae4261537f971cf5.gif
    Ответ написан
    Комментировать
  • Как правильно использовать bootstrap?

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

    Вопрос "Ломается сетка и 4 экрана" - надуманный. 4 диапазона разрешений, а не 4 экрана. Это большая разница, потому что эти диапазоны покрывают все разрешения. Плюс они кастомизируются (как и количество колонок макета).

    Вопрос "более-менее уникальный дизайн" - неверное понимание целей фреймворка. Бутстрап дает вам не плюшки в виде сотни градиентов для одной кнопки, которые непременно нарисует ваш дизайнер, он дает вам инструменты для создания структуры страницы. Рисовать оформление придется.

    "Чую подвох" - опять неверное понимание целей фреймворка. Но еще не помешает сходить на getbootstrap.com, там уж подробней некуда расписаны хелперы и js плагины, которые идут в бутстрапом. С живыми примерами все. Хотя лично я из плагинов использую в основном modal и button (для отображения надписи "загрузка" на кнопке при аякс запросах, но и другие бывают полезны).

    "Киньте ссылкой" - getbootstrap.com. Судя по всему вы были где угодно, но не на родном сайте.
    Ответ написан
    Комментировать
  • Как правильно использовать bootstrap?

    cyber-jet
    @cyber-jet
    Начнём с вопроса "филосовского" - используют, значит да, нужно. Уже давно наблюдается тенденция отхода от стандартного вау-эффетка от первого посещения, работающего разве что как вирус. На первый план вышел контент, который на самом деле и является уникальным для каждого сайта, и юзибилити, всё остальное по сути детали не столь важные.

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

    По поводу расширения - проанализируйте, эти все разрешения выбраны не случайно, и в 99,99% случаев этих ступеней вполне достаточно.
    Ответ написан
    Комментировать
  • Как правильно использовать bootstrap?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Вопрос задавался в разных интерпретациях тысячу раз, использовать его или нет.
    Не нужны дефольные стили — используйте только сетку.
    Бутстрап в чистом виде годится отлично для веб-приложения, где нужен только функционал, а дизайн заключается в выборе цвета, шрифта и картинки логотипа.
    Но его можно легко изменить, а можно все написать самому. Он как jq для js — все знают, что нативный js быстрее и легче, но не все могут написать на нем также, как на jq. Считаете, что у Вас есть силы и время писать что-то самому — не используйте бутстрап или используйте его только для админки сайта.
    Ответ написан
    Комментировать
  • Как в UMI вывести список новостей в определенном месте?

    @UmiHelp
    1. проверить, что result/@pageId в данном шаблоне возвращает id
    это можно сделать так:
    <xsl:value-of select="result/@pageId" />
    предположим id = 99

    2. проверить, что запрос вида http://вашсайт.ru/udata://news/lastlist/99/default/3 действительно возвращает список статей

    3. проверить, что есть шаблон для item с mode="news" для вывода новостей.
    Ответ написан
    Комментировать
  • Веб-сокеты и обычные запросы. Что быстрее?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. простейший скрипт на node.js держит одновременно ~100k открытых сокетов.
    Запустив пачку процессов можно держать миллион на одном слабеньком сервере.
    habrahabr.ru/post/123154
    Очевидно что простыми запросами Вы такую нагрузку не выдержите.
    Еще один плюс - через сокет ваш клиент получает обновление сразу
    Еще один плюс - через сокет можно организовать двухсторонний протокол обмена, без лишних запросов

    2. Вы можете это проверить самостоятельно :)
    Один из плюсов socket.io - их js клиент который сам определяет наличие поддержки сокетов и если их нет - работает через long polling

    3. На практике - может быть обрыв связи, особенно на мобильном интернете.
    Надо уметь с этим работать + при восстановлении - запрашивать что изменилось обычным запросом.
    Ответ написан
    Комментировать
  • Как правильно пользоваться адаптивностью bootstrap?

    svistiboshka
    @svistiboshka
    живые веб интерфейсы
    не лезьте в код фреймворка. заведите себе новый файл. не зря же bootstrap дает нам bootstrap-theme.less намекая что все остальное переназначайте тут
    Ответ написан
    Комментировать
  • Как правильно пользоваться адаптивностью bootstrap?

    barkalov
    @barkalov
    Да. Он так изнутри и сделан.
    Возьмите less-версию с гитхаба и гляньте как он устроен. Сразу станет понятно.
    На less и стройте вёрстку, так куча ништяков.
    Ответ написан
    Комментировать
  • Шрифт с помощью @font-face

    @ChemAli
    <link href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic&subset=cyrillic,latin' rel='stylesheet' type='text/css'>
    


    И все.
    Ответ написан
    2 комментария