• Почему не экранируется символ одинарной кавычки?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Потому что то, что вы видите, это не строковое представление для строки(простите за тавтологию), а ее "техническое" представление. Попробуйте сделать
    >>> print('"Isn\'t," they said.')
    Дело в том, что каждый объект в python может иметь 2 метода: __repr__ и __str__. Первый отвечает за "техническое" представление, которое помогает однозначно идентифицировать объект и используется для отладки и в том числе в REPL, а второй за строковое представление, удобное для чтения человеком. Например, в случае с datetime.date(2021, 6, 1), __repr__ вернет 'datetime.date(2021, 6, 1)', а __str__: '2021-06-01'.

    UPD: увидел обсуждение в комментариях касательно ' и "
    > Почему в вышеуказанном примере бэкслэш выводится, в примере ниже - нет?
    >>> "\"Yes,\" they said."
    '"Yes," they said.'

    Тут штука в том, что двойные кавычки это что-то вроде синтаксического сахара, который позволяет нам вставлять всякие непечатаемые символы, а также использовать переменные(как f-строки или r-строки). В итоге их отображение все равно приводит их к виду одинарных кавычек с соответствующим форматированием. Для одинарных кавычек обратный слеш при работе с двойными не нужен, поэтому он и не отображается.
    Ответ написан
    2 комментария
  • Как сделать thumbnail в pyhton pillow для svg?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Для svg это не имеет смысла, т.к. это векторный формат изображений и там у вас не массив пикселей, а геометрические фигуры, описанные набором свойств, поэтому они могут масштабироваться как угодно.
    По этой же причине у вас режется качество при уменьшении: pillow переводит svg в растр и масштабирует его.
    Ответ написан
  • Nginx image_filter как отресайзить картинку по урлу?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Алексей Тимофеев Отнюдь, вы можете использовать proxy_pass для получения изображения.
    Что-то вроде этого:
    location / {
            proxy_cache all;
            proxy_pass http://example.com/uploads/;
            set $w 270;
            set $h 150;
            image_filter crop $w $h;
    }
    Ответ написан
  • PHP: usort почему не видит переменную вне пользовательской функции и как исправить?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Вместо передачи переменных $property, $direction в виде параметров используйте ключевое слово use: function ($a, $b) use ($property, $direction) {}.
    А чтобы понять, почему не код не работал, почитайте про замыкания и области видимости в php
    Ответ написан
    5 комментариев
  • Как проверить текст на предмет совпадения в MySQL?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Как вариант могу предложить такое решение. Построчно читаете файл(например, сконвертировав его в csv, а потом при помощи fgetcsv). При каждой итерации просто делаете выборку количества записей с указанной подстрокой:
    SELECT COUNT(*) FROM my_table WHERE col1 LIKE '%123%';

    Если count > 0, то, соответственно, совпадения есть.
    Подробнее про поиск подстрок: https://dev.mysql.com/doc/refman/5.7/en/pattern-ma...
    Ответ написан
    Комментировать
  • Как в Yii обращаться с текущей модели из базовой модели?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Вместо этого:
    $this::model(get_called_class())->findAll($criteria);

    Используйте тот же метод, что и в первом случае
    ActiveRecord::model(get_called_class())->findAll($criteria);


    Тут, скорее всего, есть непонимание того, как работает наследование в php в частности и ООП в этом языке вообще. Советую почитать книгу Мэтта Зандстры "PHP. Объекты, шаблоны и методики программирования"
    Ответ написан
    Комментировать
  • Как записать файл на флешку, на которой установлен Linux?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Все зависит от файловой системы на линуксе. Просто установите себе в ОС драйверы, поддерживающие запись в нужную фс. Скорее всего, линукс установлен на ext3/ext4, если так, то можете воспользоваться этим драйвером.
    Если хотите обеспечить доступ по сети, то смотрите в сторону samba
    Ответ написан
    Комментировать
  • Каким образом можно использовать socks-прокси в python 3.4?

    vollossy
    @vollossy Автор вопроса
    Веб-разработчик с небольшим опытом работы
    Нашел ответ сам. Можно воспользоваться PySocks. Вот небольшой пример, как пропатчить родную библиотеку для работы с SOCKS(взят из документации библиотеки):
    import socket
    import socks
    import urllib2
    
    socks.set_default_proxy(socks.SOCKS5, "localhost")
    socket.socket = socks.socksocket
    
    urllib2.urlopen("http://...")
    Ответ написан
  • Как отдавать пользователю APK-файл с индивидуальными данными?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Ну генерировать ресурс с нужным урлом, в коде приложения вытаскивать из него url. При запросе на получение apk запускать фоном билд и после завершения копировать файлик в директорию, откуда пользователь может скачать его, ну и ссылку пользователю показывать для скачивания.

    P.S. фоном можно и не запускать, просто неизвестно, сколько билд может длиться.
    Ответ написан
    6 комментариев
  • Каковы преимущества хранимых процедур в PostgreSQL?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Выигрыш в производительности определенно будет, хотя бы из-за того, что снимаются накладные расходы на подключение к бд и и передачу информации по сети. Но тут же повысится сложность отладки этих самых хранимых процедур, ну и цена ошибки, особенно на крупных базах. Хранимки имхо очень сложно покрыть автоматическими тестами
    Ответ написан
  • Какой есть онлайн таск-менеджер с правильным next списком?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Из таск-менеджеров в последнее время использовал google tasks, но потом функционала перестало хватать, особенно после того, как занялся фрилансом. Перепробовал множество инструментов и остановился на youtrack. Сперва вел в нем только управление проектами, но из-за очень большой гибкости, стал использовать и для повседневных задач. Достигается гибкость за счет т.н. "рабочих процессов" -- это своеобразные расширения, которые позволяют гибко настраивать работу с задачами(например, автоматический запуск/остановка таймера при изменении статуса задачи). Единственный минус -- отсутствие клиента для мобильных платформ(точнее есть, но от сторонних разработчиков и большая часть полезных функций платная)
    Ответ написан
    Комментировать
  • Логирование трафика в БД - как нормализовать?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Я бы посоветовал, как и @0LLEGator добавить в существующую таблицу(просто потому, что это логичнее выглядит, не так страшен джоин, как его почему-то малюют :-) ). Только вот вместо NULL-значений бы установил дефолтными из области недопустимых(0, -100 или что-то в этом роде), т.к. NULL- значения не удастся выбрать при помощи индекса, что может замедлить некоторые запросы. Хотя, конечно, зависит от задачи.
    Ответ написан
  • Yii/php: как заполнить пользовательский шаблон данными?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Я бы посоветовал использовать уже готовый шаблонный движок, например twig, чтобы рендерить шаблон.
    Ответ написан
    Комментировать
  • Как лучше создать запрос, который бы просто сожрал все ресурсы сервера

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Не, тут у Вас клиент вывалился, т.к. слишком много записей выгрузили. Серваку, в принципе, не так страшно. Имхо, лучше с вложенными запросами поиграться и поиском по неиндексированным столбцам
    Ответ написан
    Комментировать
  • Возможно ли в Yii расположить assets файлы в директориях модулей?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Ответ написан
    Комментировать
  • Посоветуйте ORM с лучшей реализацией возможностей PostgreSQL

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    О таких ORM мне лично не известно. Самой подходящей, наверное, может считаться Doctrine(т.к. использует шаблон DataMapper), но все-таки она, как и большинство ORM инструмент универсальный и старается поддержать наибольшее возможное количество СУБД, поэтому работать с ней в ОО-стиле, при этом используя на всю мощность postgres вызовет будет не слишком продуктивно. Имхо, проще будет написать свою.
    Ответ написан
  • Глобальные фильтры в Propel ORM

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Подобного метода, насколько мне известно, в Propel нет. И, как мне кажется, вот почему. То, о чем Вы говорите, это не совсем уровень ORM, это уже бизнес-логика и разработчики просто не могут предсказать все варианты использования своего инструмента.
    Да и в конце-концов, Вы можете просто настроить связи в модели Company и делать выборку по связанным полям(с dml уже не так просто будет)
    Ответ написан
  • Вывод новостей с мультикатегориями

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Навскидку предложу такой вариант:
    Сперва выбираем нужные категории
    SELECT * FROM hy_category WHERE hy_category.parentid = :category_id

    Потом из низ строим перечисление идентификаторов для регулярки и выбираем контент регуляркой:
    SELECT * FROM hy_content WHERE category RLIKE(',?[{перечисление идентификаторов подкатегорий из прошлого запроса}],?') AND category RLIKE('\d+,.*')

    Но это все будет довольно медленно работать. У Вас, как уже указал @VitaZheltyakov, проблемы с организацией бд. Как вариант можно использовать предложенный им метод или просто создать связь многие ко многим.
    Ответ написан
    Комментировать
  • Laravel или Yii - на чем лучше на данный момент начинать разработку сайта? В чем отличия?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    Присоединюсь к @OnYourLips -- нахваливать в основном будут адепты того или иного фреймворка. Я сам для новых проектов первое время использовал yii, но сейчас, чтобы прикрутить к нему более-менее современные технологии из пыхомира(тот же codeception), требуется потрудиться(фреймворк делался с прицелом на 5.2). Сейчас же поймал себя на мысли, что очень большую долю времени работаю, пытаясь обойти некоторые ограничения фреймворка. Практически все они связаны с использованием active record или виджетами. Плюс, у yii все-таки довольно сильная связанность, в отличие от того же Symfony, который по сути эдакий швейцарский нож -- большое количество классов, если не на все, то на многие случаи жизни.
    В общем, если проект будет большой, с довольно сложной бизнес-логикой и постоянно развиваться, то я бы все-таки агитировал за Symfony2, ну или за использование компонентов aura php. Прошу прощения, если ответ несколько сумбурен.
    Ответ написан
    3 комментария
  • Какую выбрать систему контроля версий для небольшой команды программистов?

    vollossy
    @vollossy
    Веб-разработчик с небольшим опытом работы
    О тему управления проектами уже немало пик было сломано и много книг было написано -- достаточно немного поискать и информации найдете предостаточно. Система контроля версий -- это инструмент в первую очередь для разработчиков, и он предназначен для сохранения и просмотра истории изменения исходных файлов программ.
    Для вашего же случая, я бы порекомендовал воспользоваться каким-нибудь трекером задач, например youtrack(очень мощная система и бесплатна, если у Вас меньше 10 пользователей). А уже в этом трекере задач вы ставите разработчикам задания, они указывают затраченное время и что было сделано. Ну а вы по этим данным уже делаете выводы.
    Ответ написан
    Комментировать