• Откуда geo-ip SaaS берут свои данные?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    1) https://habrahabr.ru/post/227183/ тут популярное, изначально все от IANA

    2) в след месяце нет, но вообще могут, особенно четко это выражено у ATT и прочих глобальных провайдеров, того же Akamai, хостеров (Амазон и т.п.), мобильных операторов
    Ответ написан
    Комментировать
  • Откуда geo-ip SaaS берут свои данные?

    latteo
    @latteo
    2) Провайдер укртелеком - по IP адресу можно точно определить только то, что это Украина. Один и тот же IP может быть выдан хоть Киеву, хоть Одессе (разница 500км) и такая смена происходит после вкл/выкл модема, грубо говоря раз в сутки.

    При этом HTML5 Geolocation очень часто показывает с точностью до дома, если нужна точность лучше пользуйтесь последним.

    PS: подменить можно оба.
    Ответ написан
    Комментировать
  • Перезаписывается ли массив в функции preg_match в php?

    HectorPrima
    @HectorPrima
    программист
    Да.
    Ответ написан
    Комментировать
  • Как сделать слайдер из нескольких фото в ряду без Jquery?

    abyrkov
    @abyrkov
    JavaScripter
    Вот к примеру https://github.com/ganlanyuan/tiny-slider
    Гуглиться pure js slider.
    Ответ написан
    Комментировать
  • Как с помощью foreach создать строку?

    DevMan
    @DevMan
    Почему такое решение неправильно?
    потому что оно не создает строку, а просто выводит на экран по одному символу.

    Разве можно так сделать чтобы echo было за циклом?
    $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    $str = '';
    foreach ($arr as $i) {
    	$str .= $i;
    }
    echo $str;
    Ответ написан
    Комментировать
  • Какая best practice защиты от записи в файл в несколько потоков?

    @BorisKorobkov Куратор тега PHP
    Web developer
    Не всегда поставленную задачу надо выполнять в лоб. Иногда надо подумать, а зачем писать в несколько файлов. Например, у nginx сотни потоков одновременно могут писать ОДИН access_log, никаких проблем с этим не возникает.
    - Либо один поток-логгер, получающий данные из очереди
    - Либо разные потоки, все пишут (append) текст в один файл в неблокирующем режиме
    Ответ написан
    2 комментария
  • Почему возникает ошибка 1064 в cms opencart?

    @amfetamine
    Скорее всего у вас на хостинге ограничение на длительность запроса к mysql
    Ответ написан
    Комментировать
  • Почему не работает MySQL DELETE с подзапросом?

    @BorisKorobkov Куратор тега MySQL
    Web developer
    После попытки выполнения запроса проверяйте его результат и ошибки. В данном случае невозможно удаление из той же таблицы, из которой в подзапросе выбираются данные.
    Либо разделите свой запрос на 2 разных с помощью CREATE TEMPORARY TABLE ... SELECT ....
    Либо перепишите по-другому:
    DELETE FROM %DB_PREFIX%product WHERE product_id NOT IN (SELECT DISTINCT product_id FROM %DB_PREFIX%product_to_category)
    Ответ написан
    Комментировать
  • Посоветуйте хороший модуль для WYSIWYG в админке Django

    un1t
    @un1t
    Я написал свой визивиг. Скриншот и описание можно посмотреть тут Обладает мнималистичным интерфейсом. Поддерживает AJAX загрузку картинок.
    Он опубликован на гитхабе github.com/un1t/pencil и также есть праложение для джанги github.com/un1t/django-pencil. Я нормально использую его в админках. Из недостатков отмечу, что за неимением времени я не допилил его для IE(для админки это как правило не критично), в других браузерах работает нормально.
    Ответ написан
    1 комментарий
  • Какой wysiwyg редактор внедрить в Django 1.8?

    @Pauchenkov Автор вопроса
    Начинающий программист Django
    Всем добрый вечер! Наконец-то удалось подключит wysiwyg редактор. Хочу поделиться на будущее с теми, кто еще этим не занимался :) Может кому и пригодится.
    Значит подключил я ckeditor так:
    1) Устанавливаем django-ckeditor этой командой: pip install django-ckeditor
    2) Вносим ckeditor в список INSTALLED_APPS
    INSTALLED_APPS = (
        ................. ,
        'ckeditor',
    )

    3) Настраиваем MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL, STATIC_DIRS, STATICFILES_FINDERS
    после строчки import os, если вдруг у Вас не задано, пропишите путь базовой директории
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    , но если у Вас прописано значение по-другому - советую эту (существующую) строчку не трогать, а просто под ней добавить еще одну, назвав не BASE_DIR, а по-другому (например: _PATH).

    Задаем MEDIA_ROOT и MEDIA_URL:
    MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'media')
    MEDIA_URL = '/media/'


    Задаем STATIC_ROOT, STATIC_URL, STATICFILES_DIRS и STATICFILES_FINDERS:
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    STATIC_URL = '/statics/'
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'statics'),
    )
    STATICFILES_FINDERS = (
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    )


    4) Задаем пути и настройки CKEDITOR, а именно: CKEDITOR_UPLOAD_PATH, CKEDITOR_IMAGE_BACKEND, CKEDITOR_JQUERY_URL, CKEDITOR_CONFIGS

    CKEDITOR_UPLOAD_PATH = "uploads/"
    CKEDITOR_IMAGE_BACKEND = "pillow"
    CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
    
    # CKEDITOR_CONFIGS по сути необязательны. Они влияют на тулбар редактора. Если выключите - будет очень мало инструментов для работы с текстом. После полной настройки - попробуйте с ними поиграться. Возможно найдете для себя какой-то более оптимальный вариант настроек!
    CKEDITOR_CONFIGS = {
        "default": {
            "removePlugins": "stylesheetparser",
            'allowedContent': True,
            'toolbar_Full': [
            ['Styles', 'Format', 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat' ],
            ['Image', 'Flash', 'Table', 'HorizontalRule'],
            ['TextColor', 'BGColor'],
            ['Smiley','sourcearea', 'SpecialChar'],
            [ 'Link', 'Unlink', 'Anchor' ],
            [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language' ],
            [ 'Source', '-', 'Save', 'NewPage', 'Preview', 'Print', '-', 'Templates' ],
            [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],
            [ 'Find', 'Replace', '-', 'SelectAll', '-', 'Scayt' ],
            [ 'Maximize', 'ShowBlocks' ]
        ],
        }
    }


    5) Настраиваем URL'ы
    Сначала я объясняю, а в конце выложу ПОЛНЫЙ ВАРИАНТ, что бы все было наглядно видно!
    В файле urls.py прописываем url ckeditor'a:
    ............. ,
    url(r'^ckeditor/', include('ckeditor.urls')),

    и добавляем после скобки, закрывающей urlpatterns вот это:
    + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


    Вот ПОЛНЫЙ ВАРИАНТ:
    urlpatterns = [
    ............... ,
    url(r'^ckeditor/', include('ckeditor.urls')),
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

    6) ОБЯЗАТЕЛЬНО ВЫПОЛНЯЕМ collectstatic!!!

    В терминале вводим: python manage.py collectstatic

    После подтверждаем, введя yes!

    7) В фале моделей (models.py) мы должны сначала совершить ипорт:
    from ckeditor.fields import RichTextField

    8) Осталось маленько. Теперь, что бы у Вас в админке у поля появился WYSIWYG-редактор нужно заместо models.CharField (TextField и других полей) вручную указать RichTextField.

    Вот пример, как должно быть:
    title_story = RichTextField(max_length=255, verbose_name="Название")
    anons = RichTextField(max_length=1000, null=True, blank=True, verbose_name="Анонс")
    story = RichTextField(verbose_name="Полная статья")
    ... ну и так далее ....
    Ответ написан
    Комментировать
  • Как сохранить Google Map города в виде картинок JPEG?

    ipswitch
    @ipswitch
    IT-инженер
    Воспользуйтесь SASGIS.
    Там есть этот функционал.
    www.sasgis.org
    Ответ написан
    Комментировать
  • Что делать если команда говнокодит?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Здесь стоит посмотреть с 2х строн:
    1. Если вы часть команды и мелкая сошка -- смирится, либо идти по головам к начальству с наглядными примерами, и объяснением того в долгосрочной перспективе ваш подход принесет больше прибыли (меньше убытков). Если начальник адекватный, он задумается и поставит вас тимлидом, если нет -- то это его проблемы, вы свою точку зрения донесли.

    2. Если вы лицо принимающее решение в команде, и являетесь тимлидом --- тогда руководить и вводить метрики, ревью кода, и т.п. штуки, чтобы когда кто-то косячил, другие говорили ему "Вася ты дурак".
    Ответ написан
    Комментировать
  • Как сделать оптимизацию JPG и PNG на чистом PHP?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Я правильно понимаю, вы хотите обрабатывать изображения на процессоре гипер текста?

    Конечно можно попробовать для спортивного интереса, но для реальных проектов - это плохая затея
    Ответ написан
    Комментировать
  • Разбор и генерация URL, создание собственных правил?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    обычными правилами тут не обойтись

    отнюдь:
    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                  '/real-estate'=>'site/category',
                  '/premium'=>'site/sub',
                ],
            ],

    Но мне кажется красивее было бы test.com/site/premium/9 и test.com/real-estate/1
    Ответ написан
  • В чем такое делают?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    По большей части ручками с помощью js, svg, canvas.
    Но есть ПО и js библиотеки, которые упрощают процесс.
    Так например для svg есть редактор inkscape.paint-net.ru
    Есть библиотеки:
    https://d3js.org
    www.hongkiat.com/blog/javascript-libraries-animate-svg
    и др.

    Конкретно в Вашем примере используют Greensock TweenMax и кучу плагинов к нему. Есть статья на хабре по теме:
    Greensock: анимация на JavaScript
    Ответ написан
    Комментировать
  • PhpQuery странно себя ведет?

    @zzzmaikzzz
    Junior-web
    Добавь еще - phpQuery::unloadDocuments();
    Ответ написан
    Комментировать
  • Какую систему Вы используете для сбора и анализа статистики скорости генерации страниц?

    Мы из shutdown handler вызываем getrusage и результат отправляем в graphite, для визуализации - grafana
    Ответ написан
    2 комментария
  • Какой поставить ценник на лендинг, при том что я с Украины, а работодатель с России и у него на сайте лендинги от 30к?

    DevMan
    @DevMan
    не важно кто заказчик, откуда он и откуда ты.
    значение имеет только то, за сколько ты готов сделать эту работу.
    Ответ написан
    19 комментариев
  • Нужна внутренняя система сбора статистики посещения, что порекомендуете?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    OpenStat смотрели? Или вопрос исключительно принципиальный, чтобы данные никуда не уходили на сторону?

    PS.
    Как раз задумывался недавно о написании системы сбора внутренних метрик, которые отследить через метрики общего назначения сложно. Например: сколько кликов было по конкретному товару или закрытию определенного элемента UI, сколько пользователей выигрывало/проигрывало в каком-нибудь конкурсе с рандомом, и т.д.
    При чем фиксировать можно как в серверной логике, так и через клиентскую часть.
    Ответ написан
    Комментировать