• Как исправить кодировку при дампе базы данных из django?

    @xbox
    Тоже столкнулся с проблемой неправильной кодировки при экспорте и советы из интернета типа указания "-Xutf8" не помогали.

    Когда мы указываем в команде "> db.json", то все данные сначала направляются на устройство стандартного вывода, а оттуда перенаправляются в файл. В зависимости от операционных систем, программного обеспечения итп кодировка в файле получается не всегда нужная.

    В моем случае я работаю из-под Windows, Django запущен в контейнере Docker (в контейнере Linux), dumpdata пытался делать через консоль в PyCharm. В БД данные в Unicode. В консоль при выводе dumpdata кириллица читается нормально, но при перенаправлении ">" вывода dumpdata в файл, кодировка неправильная.

    Решил эту проблему так. Вместо того, чтобы данные захватывать через устройство стандартного вывода, их можно сохранять напрямую в файл. Для этого используем опцию "-o db.json". При таком использовании данные сохраняются сразу в правильной кодировке (utf-8)

    Полная команда получится такая:
    python manage.py dumpdata --indent=2 --exclude auth.permission --exclude contenttypes -o db.json
    Ответ написан
    Комментировать
  • VueJS: где лучше хранить css, в компонентах .vue или main.css?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    В Vue приложении используем препроцессор (scss). Кроме того используем внешние пакеты для вертикального ритма и сетки.

    Хочется хранить стили в однофайловых компонентах, при этом имея возможность определить глобально часть sass-переменных, кое-какие миксины и функции. Также нужно как-то подключить миксины сетки и ритма, возможно подключать стили от сторонних пакетов.

    Вариант импортировать scss-файл с определениями в каждом компоненте сразу откинули, ибо люди мы ленивые.

    Что делаем:
    Подключаем в точке входа (main.js) основной стилевой файл:
    import '@/styles/main.scss';
    import Vue from 'vue';
    //...

    В нем подключаем всякое-разное-глобальное-базовое:
    @import "base/normalize";
    @import "base/init";
    @import "base/typography";
    @import "base/code";
    @import "base/links";
    @import "base/tables";
    @import "base/buttons";
    @import "base/control-group";
    @import "base/general-form";
    @import "parts/transitions";
    ...

    Далаем два файла: env-development.scss и env-production.scss
    $NODE_ENV: development;
    @import "cfg-vars";

    $NODE_ENV: production;
    @import "cfg-vars";

    Переменная $NODE_ENV нам нужно. чтобы управлять стилями в зависимости от окружения.
    Дальше в cfg-vars.scss подключаем/пишем все необходимые глобальные конфиги
    $DEV_MODE: $NODE_ENV == development;
    $MAX_INT32: 2147483647;
    
    @import "cfg-vrhythm";
    @import "cfg-grid";
    @import "../../../node_modules/vrhythm/source/vrhythm";
    @import "../../../node_modules/bs-grid-system/source/scss/bs-grid";
    @import "../mixins";
    @import "cfg-z-indexes";
    
    $wt-family-base: "Open Sans", sans-serif;
    $wt-family-head: "Roboto Slab", serif;
    $font-family-monospace:  "Fira Code", Menlo, Monaco, Consolas, "Courier New", monospace;
    
    //==
    //== Color palette
    //== ======================================= ==//
    
    $palette-light-blue: #3c8dbc; // Primary
    $palette-red       : #dd4b39; // Danger
    $palette-green     : #00a65a; // Success
    $palette-aqua      : #00c0ef; // Info
    $palette-yellow    : #f39c12; // Warning
    
    ...


    Почти всё готово. Осталось только автоматически подключить эти конфиги к сборке.
    Идём в vue.config.js и добавляем секцию css:
    const NODE_ENV = process.env.NODE_ENV === 'development'
        ? 'development'
        : 'production';
    //...
    module.exports = {
        //...
        css: {
            extract: NODE_ENV === 'production',
            loaderOptions: {
                sass: {
                    data: `@import "@/styles/config/env-${NODE_ENV}.scss";`,
                },
            },
        },
    };


    Теперь мы спокойно пишем стили компонентов на scss прямо vue-файлах, и оставляем возможность какие-то стили писать в отдельных файлах.

    Enjoy!
    Ответ написан
    6 комментариев
  • Насколько полное изучение Java c работой над реальными проектам поможет php программисту в его работе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Несмотря на то что в вопросе немного каша, а в ответах - ад, ответ на вопрос, в общем-то, очевидный.

    В первую очередь с точки зрения простой житейской логики. Есть возможность? Надо воспользоваться. Вылезти из-под своей коряги посмотреть на неё со стороны всегда полезно, в любом деле.
    Возможность узнать что-то новое - всегда полезна. Может быть ты и вправду, как тут вещают некоторые ораторы, проникнешься омерзением к пхп и пойдешь писать на яве.

    Но помимо общих соображений есть и вполне практические.
    Надо понимать, что ООП везде один и тот же. Пхпшники учат ООП по книжкам, где все примеры на яве. То есть в предположении что никакой пользы потому что синтаксис разный ты неправ. Уровень синтаксиса в какой-то момент перестает иметь значение, когда ты начинаешь думать не синтаксисом, а паттернами.
    При том что учить ООП работая с по сути процедурным языком, и с исходно ОО-языком - две большие разницы.
    То есть, ты абсолютно прав том посыле, что изучение явы придаст мощное ускорение твоему пониманию ООП в пыхе.

    Хайлоад же проекты - это из немного другой области. Тут идет откат скорее в обратном направлении. Это как с денормализацией - БД должна быть нормализована, но из соображений производительности иногда приходится денормализовывать. ПОСЛЕ того как нормализовал.
    SOLID помогает делать большие проекты управляемыми. Но когда большой проект сталкивается с высокими нагрузками, иногда приходится жертвовать принципами ради производительности. Но тут главное, опять же, не путать направление: СНАЧАЛА делаем правильный дизайн, и только потом в критических точках снижаем накал абстракции, переходим на более низкий уровень. Самый наглядный пример - ORM, когда критические запросы переписываются на чистый SQL.

    Ну и пройти "полный курс" не имеет ничего общего с "полным изучением". С полного курса изучение всегда только начинается.
    Ответ написан
    Комментировать
  • Почему так много удаленки на Bitrix?

    Adamos
    @Adamos
    "Почему так много работы аниматором на утренниках и так мало ролей Гамлета? Я, идя в театральный, по-другому себе это представлял..."
    Вот примерно поэтому.

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

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    Ловите из моей копилки. Сортировка случайная, если есть комментарий — значит, щупал лично.
    • Тайм-трекеры, учет рабочего времени

    https://Toggl.com — отдельный софт в трее, расширение под хром, приложение на андроид. Интеграция с кучей сервисов (трело, асана и т.д.). Хоткеи тоже есть. Бесплатного тарифа вполне достаточно. автотрекинг
    https://TimeDoctor.com — платный. Делает скриншоты. Удобен для компании. Есть отдельный софт в трее, хоткеи. Интеграция с кучей сервисов.
    https://pomelloapp.com — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее не сидит, простенький бар поверх всех окон
    https://PomoDoneApp.com — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее показывает таймер с обратным отсчетом времени.
    https://tmetric.com — простой трекер, интеграция с трелло, есть десктопное приложение, помидорок нет. Хоткеи есть, сидит в трее
    https://www.timecamp.com — есть куча интеграций, расширение хром, приложение в трее, автотрекинг
    https://toptal.com/tracker/
    ○ Grindstone https://www.epiforge.com/grindstone/
    https://www.primaerp.com
    https://tahometer.com
    https://aTimeLogger
    https://myhours.com
    https://wakatime.com
    savemytime.co/en неплохое приложение, где дела при каждом включении смартфона высвечиваются, но оплата там очень большая за такую прогу.
    https://flowlu.ru/services/pm/task-time-management/

    ○ Статьи
    § https://habrahabr.ru/company/xakep/blog/254119/
    § https://habrahabr.ru/post/327310/
    § https://habrahabr.ru/post/24070/
    § https://habrahabr.ru/post/177225/
    § Чем удобнее всего учитавать время работы над конкретной задачей?

    • Автоматические тайм-трекеры
    https://RescueTime.com - только в автоматическом режиме логирует, в каких приложениях/сайтах проводите время, и выводит подробную статистику. Бесплатного аккаунта хвататет за глаза. Все приложения/сайты можно разбить по категориям продуктивности.
    https://ManicTime.com - как и rescuetime, в автоматическом режиме логирует приложения и сайты + мощный стэндалон тайм-трекер, все приложения можно разбить по категориям, которые придумываешь сам. Очень гибкий в настройках, сидит в трее, есть хоткеи, разные типы таймеров. Платный. Статья danila.org.ua/otrabotannyie-chasyi-moy-podhod
    https://timingapp.com/ -- аналог manictime и rescuetime
    https://motivateclock.org/
    www.timesnapper.com/professional.aspx#qReports

    • Запись дел, таскеры, системы управления задачами
    https://www.wunderlist.com — Очень простой и удобный таскер. Бесплатного аккаунта за глаза.
    https://planfix.ru/prices/ — На бесплатном аккаунте проекты и задачи вести можно полноценно, но бесплатном акке урезан CRM и воронка продаж. Цена 290, 490 или 640 р /человека в месяц - в зависимости от возможностей системы. Интересные тарифы и возможности, есть тайм-трекер (2016)
    https://megaplan.ru/calculation/ — Цена 250р с человека в месяц (2016)
    https://www.bitrix24.ru/prices/ — сложный комбайн
    https://yandex.ru/tracker/ -- от 93 руб/чел/мес
    https://basecamp.com/3/pricing — 29$ без клиентов, 79$ с клиентами (2016)
    https://www.wrike.com/price/ — Ограничения бесплатного варианта по вложенности задач и функциональности всей системы. Есть мобильный приложения. Понравилась внутри. На бесплатной версии нет подзадач. (2016)
    https://asana.com/pricing — Есть бесплатный вариант. Но на ощупь - неинтуитивная кака. Соловьев советовал ее. (2016)
    worksection.com/price.html — Бесплатно только на 2-х (2016)
    https://zettaplan.ru/price/ (2016)
    www.teambridge.ru — От 1000₽ (2016)
    https://www.producteev.com/pricing — Вроде есть бесплатный полнофункциональный вариант и приложения для мобильных. Но в проекте вложенность = задача-подзадача = мало. И как-то все убогенько (2016)
    https://pyrus.com/ru/pricing — От 9р с человека в день (2016)
    promo.advanta-group.ru/advanta — От 5454р (2016)
    helpcenter.onlyoffice.com/ru/faq/free-cloud.aspx — По сравнению с wrike ограничения только по вложенности задач, в остальном полнофункциональна. Но нет мобильных приложений. Внутри нормальная. (2016)
    https://workflowy.com/ — неограниченная вложенность подзадач, гибкое управление задачами, есть теги. Ограничение на сотню задач в месяц. Выглядит, как списки с вложенными списками (2016)
    synkra.com/login — Унылое говно со списком дел в один уровень (2016)
    https://ru.todoist.com/business — По описаниям все красиво, но в бесплатном варианте тупо список одноуровневых дел, вообще не юзабельно. В бесплатном варианте нет обсуждений. (2016)
    https://planiro .com/ru/pricing — Похож на битрикс, но попроще и симпотичнее. Только платный (2016) (удалить пробел в ссылке)
    https://taiga.io/pricing.html
    https://activecollab.com
    teamer.ru/about
    scrumy.com
    www.redmine.org
    https://www.teamwork.com/
    https://workdoer.com.ua/
    https://taskmenizer.com
    https://glip.com/
    https://itasks.pro
    https://clickup.com
    https://pran .pro/ (удалить пробел в ссылке)
    https://ticktick.com/
    https://teams.microsoft.com/ -- бесплатно
    ○ Microsoft Planner https://tasks.office.com
    https://riter.co/
    ○ WorkSuite
    ○ MeisterTask
    ○ acma.pro
    ○ vTiger (бесплатный)
    https://www.openproject.org/release-notes/openproj...
    https://www.teamgantt.com/
    https://airtable.com/
    ○ Список бесплатных https://habr.com/post/317552/

    Я использую на разных проектах и командах Trello, Битрикс24, Planfix, Wunderlist, Rescuetime, Toggl. Весь этот зоопарк на компе (декстопное приложение или uwp приложение) + в Хром (расширение) + приложки на тлф.
    Ответ написан
    2 комментария
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    @nirvimel
    Подчинённый перед лицом начальствующим должен иметь вид лихой и придурковатый! Дабы не смущать начальство разумением своим.

    Петр I Великий

    Это объясняет все парадоксы СНГ-шного рынка труда, неизвестные в остальном мире.
    Как 20-летний новоиспеченный манагер будет строить 50-летнего сотрудника, который старше его отца?
    А как без построений обеспечить дисциплину в коллективе и правильныйЪ уклад отношений с подчиненными?
    Ответ написан
    14 комментариев
  • Какой курс по машинному обучению на Coursera полезнее?

    @doktr
    Data Scientist
    Вашингтонская специализация по ML мне показалась удачной. Недавно прошел ее первый курс - "Machine Learning Foundations: A Case Study Approach", сейчас изучаю второй - "Machine Learning: Regression". После курса ML от Эндрю Ына сначала показалось простовато, но, несмотря на более прикладной характер вашингтонской специализации, в нее включены некоторые алгоритмы, на которые у Ына места не хватило.
    Также большой плюс - в конце каждой недели есть не только тест, но и большое практическое задание (используется iPython Notebook, модули GraphLab, NumPy и т.д.), причем сначала используются готовые рабочие инструменты, а по мере продвижения нужно будет и собственные алгоритмы писать на Python'е. Видно, что труда в курс вложено достаточно, а это показатель того, что курс будет полезен.

    Если брать для сравнения курс Университета Джона Хопкинса "Practical Machine Learning" из специализации Data Science, то там все менее динамично и недостаточно практических заданий.

    Есть еще одна схожая специализация из Вашингтонского университета - "Tackle Real Data Challenges", но ее очень сложно воспринимать из-за достаточно монотонной подачи ведущего плюс практика предложена странная - предлагается поучаствовать в любом конкурсе на Kaggle (что само по себе, конечно, обязательная вещь, но нужны еще задания обучающие) и написать по нему обзор, что гораздо больше бы подошло курсу гуманитарной направленности, но никак не технической.

    P.S. К курсам российского производства у меня отношение скептическое. Если уж американцы в половине случаев не тянут, то чего ждать от отечественных производителей. Со специализацией МФТИ и Яндекса я, конечно, предварительно ознакомился. Начало динамичное - преподаватели вроде бы не страдают бубнением, активно жестикулируют (что тоже очень важно для более быстрого восприятия и концентрации внимания), на заднем фоне цветы, красивая мебель - все это очень хорошо. Если будет время в промежутках между вашингтонскими курсами, то обязательно пройду и этот курс.
    Пока что доступен только первый курс - там собственно машинного обучения нет (только линейная алгебра, начала анализа и Python). Но уже прослеживается нехорошая тенденция - курс состоит всего из 4 недель (понятно, что на математику и начальные знания по модулям больше тратиться не хочется, но что мешает добавить чего-то более существенного, более сложного), а в Вашингтонском первый и второй курсы (дальше пока не смотрел) - 6-недельные (по моему, меньшее количество недель в любом курсе - это явно мало, учитывая, что первая неделя в любом курсе - вводная), причем в первом же курсе в быстром темпе, но довольно подробно дан обзор по основным базовым темам и алгоритмам ML, разве что кроме нейронных сетей.
    Так что не воспринимать курс МФТИ и Яндекса как что-то более, чем дополнение к основным курсам Coursera либо рассчитанное на совсем уж начальную аудиторию, пока что особых оснований нет.
    Ответ написан
    3 комментария
  • Что представляет из себя направление "Прикладная математика и информатика"?

    Я выбирал между ПМ и специальностью на факультете вычислительной техники в Политехе (СамГТУ). Выбрал ПМ. Это было до бакалавриата и магистратуры. Учились 5 лет. Все пять лет учили разную математику. Было и программирование, но то, что преподавали, я уже знал на то время. В общем, программирования мало, математики много.

    Почему выбрал ПМ. Через родителей мы знали людей с обоих факультетов и ведущих кафедр. Зав. кафедрой ПМ (как человек) внушал доверие. Пошел туда. В этом плане выбор полностью оправдался, это оказался один из лучших учителей, кто мне когда-либо встречался. Он также был куратором группы. Было абсолютное уважение со стороны группы.

    Специальность считалась самая сложная. Отбирались туда кто посильнее. Специально собирали хороших ребят с олимпиад, лицеев. Мы уж точно считали себя круче других (кстати, это хорошо сплачивает группу). Во время учебы часть ребят отсеялась, пожалуй, было тяжело. Несколько человек защитились по 05.13.05 к.т.н. и по какой-то спец. на к.ф.-м.н.

    Кто куда пошел работать. Многие подрабатывали программистами во время учебы. После окончания по линии IT пошло около половины+ группы. Один человек остался преподавать математику (специальность это позволяет). Остальные пополнили ряды менеджеров (многие близко к IT) и т.д. Пошел ли кто-то заниматься тем, для чего готовят прикладных математиков?... Из нашего выпуска я таких ребят не знаю. Только один работает с близкими вещами.

    Велика ли польза ПМ для программирования? Скорее нет. Такое количество программистов в выпускниках объясняется тем, что ребята с техническим уклоном, сообразительные, сами занимались компьютерами - соответствующий исход сложился естественно. Математика в программировании используется мало. Есть области, где она нужна (математическое моделирование), но, если вы видите себя веб-программистом или 1с-ником, то пользы от нее не будет.

    Для чего эта специальность? Для приложения разнообразной математики выше стандартного уровня в самих разных направлениях. Такие области есть.

    Мне не очень нравилось то, что в изучаемой математике нет практической "реализации". Мне нравится математика, но учить много лет одну, другую, а потом еще и еще... скучно, что ли. Есть мнение, что "математика ставит мозги на место". Это во многом правда.

    Стоит ли оно того? Да, если есть желание работать в соответствующей области. Стоит учитывать, что математику "легко" научиться программированию (это больше ремесло, чем наука), а вот обратный переход едва ли будет успешен. Самому набрать столько математических знаний не получится. Изучить конкретные вопросы - безусловно, но воспринять все в комплексе - едва ли. Если сама математика не столь интересна, я бы смотрел на специальности более ориентированные на программирование.
    Ответ написан
    1 комментарий
  • "Письмо счастья" от юридической конторы представляющей Ansys - что делать?

    Jump
    @Jump
    Системный администратор со стажем.
    что делать?
    Контору вежливо но настойчиво посылать на три буквы. Ну если вы конечно не лохи.

    А проблемный софт - либо покупаете, либо удаляете.
    Ответ написан
    5 комментариев
  • Как убрать неразрывный пробел из строки?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    регулярка ждя удаления/замены любых пробелов и переносов \s+
    Ответ написан
    2 комментария
  • Не получается собрать Python 3.7 из официальных исходников?

    sim3x
    @sim3x
    Гайд
    Как установить питон, требуемой версии одному пользователю в домашнюю директорию

    Вам не нужно менять системный питон
    Никогда

    Запускать так python3.7 -v
    Не так python3 -v
    Почему? which python3.7; which python3

    Что требуется поставить для сборки в убунтах 16.хх-18.хх
    apt-get install -y \
      build-essential git libexpat1-dev libssl-dev zlib1g-dev \
      libncurses5-dev libbz2-dev liblzma-dev \
      libsqlite3-dev libffi-dev\
      libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
      libreadline-dev tk-dev \
      libdb-dev \
      libmpdec-dev \
      libncursesw5-dev




    Получаем исходники и чекаутим нужную версию
    cd /tmp
    git clone https://github.com/python/cpython.git
    cd cpython
    git checkout 3.7


    Обращаем внимание
    Не --prefix=$HOME/.local/bin а --prefix=$HOME/.localИнсталлер создаст такие диры ${prefix}/{bin,include,lib,share}
    Сделайте tree .local до и после make install, тогда не возникнет вопросов, что поставил питон

    Перед любой операцией - требуется читать ман!
    ./configure --help
    Например если предполагается собирать разные варианты питона --with-lto может сильно ускорить процесс

    -j4 повесит сборку на 4 ядра, если они у вас конечно есть

    ./configure --prefix=$HOME/.local --enable-optimizations
    make -j4
    make install


    инсталлер формирует такую структуру для питона
    Перед установкой, желательно руками удалить все. Не директории. В данной директории может быть много софта
    .local
    ├── bin
    │   ├── 2to3 -> 2to3-3.7
    │   ├── 2to3-3.7
    │   ├── easy_install-3.7
    │   ├── idle3 -> idle3.7
    │   ├── idle3.7
    │   ├── pip3
    │   ├── pip3.7
    │   ├── pydoc3 -> pydoc3.7
    │   ├── pydoc3.7
    │   ├── python3 -> python3.7
    │   ├── python3.7
    │   ├── python3.7-config -> python3.7m-config
    │   ├── python3.7m
    │   ├── python3.7m-config
    │   ├── python3-config -> python3.7-config
    │   ├── pyvenv -> pyvenv-3.7
    │   └── pyvenv-3.7
    ├── include
    │   └── python3.7m
    ├── lib
    │   ├── libpython3.7m.a
    │   ├── pkgconfig
    │   └── python3.7
    │   └── man


    Если после инстала и сборки which python3.7не дает результата - проверьте наличие в PATH ~./local/bin
    $ grep "$HOME/.local/bin:" <<< "$PATH"  
    /home/sim3x/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
    Ответ написан
    7 комментариев
  • Где найти интересные решения макетов для интерфейса сайта?

    romansergeevich
    @romansergeevich
    interfaces.pro - живые
    froala.com/design-blocks - шаблоны
    Ответ написан
    Комментировать