• MySQL, spatial-индекс и Doctrine - как заставить их работать вместе?

    zIs
    @zIs Автор вопроса
    Нашёл кривое решение через грязный и отвратительный хак.
    В dql-адаптер для MBRContains дописал в конце определения функции в getSql() "AND 1", а в запросе пишу "MBRContains(...) AND 1=1".
    Теперь индекс используется, всё работает, а я буду молиться, чтобы этот позор никто не увидел :)
    Ответ написан
    Комментировать
  • Куда девается память, выделяемая Hyper-V виртуальной машине?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    3 года имел интимную близость в линукасми под хайпер-в - мой вывод, графические оболочки жрут до упора, не зависимо от наличия потребности.

    только голая установка, без компонентов GUI изначально, того же debian, показывает скромный расход по реальным нуждам

    особо отмечу KDE (в любом дистрибе) тут все не так катастрофично, но и на реализм виндовых гостей, все равно еще не похоже. KDE меньше жрет про запас, и легче отдает, когда не нужно.. (вероятно особенности архитектуры QT) однако все полюсы испаряются, когда ставим много GTK-based приложений, и активно эксплуатируем их

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

    ps в конечном итоге, я остановился на виртуалбоксе - да, димаческого выделения памяти нет (upd но есть забавный эффект, от механизма "компрессии" свободной памяти win 10, иллюзия динамического распределения возвращается, в VMWare тот же эффект), зато овладел презентованием физическх дисков, ну и главная плюшка - легкий проброс всячечских юсби девайсов. в плане графики - VMWare будет покруче, но в прошке, а она платная (а пиратства избегаю)

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

    pps но естественно, для виндовых гостей под виндовым хостом - хайпер-в вне конкуренции
    Ответ написан
    3 комментария
  • Какой порядок разработки сервиса Python+Django+Vue+bootstrap?

    kgb_zor
    @kgb_zor
    I need your traceback.
    На счет IDE - хватит, да хоть блокнот.

    Порядок.

    1. Создайте django приложение.
    2. Создайте vue приложение.
    3. Накидайте html.
    4. Cоздайте модель сообщения.
    5. Напишите API на DRF.
    6. Потом при помощи vue делайте запросы на сервер и тяните сообщения.

    Рекомендуется для каждого проекта создавать отдельное окружение.
    На счет бд , юзайте sqlite, не парьтесь.

    Хостинг - на ваш вкус Heroku , Pythonanywhere и т д.

    Туториал 1.
    Туториал 2.
    Ответ написан
    Комментировать
  • Стратегия входа, путь развития во фрилансе. С чего начать, чтобы стать верстальщиком и php-программистом?

    Nikolino
    @Nikolino
    Html и css с практическими задачами лучше изучать на htmlacademy.ru. После того как освоился, качаешь бесплатные psd макеты и верстаешь, с адаптивом, какие-то сложные вещи, которые не можешь сверстать оставляешь пока.
    Далее ищешь видео где верстают макет, обычно на первых секундах-минутах показывают макет и сразу можешь понять сможешь ли сверстать сам или нет, если понимаешь, что не сможешь, то смотришь как автор это сделает, узнаешь новое для себя.

    По php. Читать большие и толстые книги пока бессмысленно, всё прочитанное будет вылетать из головы. Ставишь OpenServer, и сразу в бой:
    1. Переменные, условия, циклы, массивы.
    2. Пользовательские функции
    3. Базовые функции по работе со строками и с массивами. Комбинация функций. (важно понять и запомнить что они умеют).
    4. Post и Get запросы, получение Post и Get запросов из формы (тут сразу и html по формам подтянешь)
    5. Базы данных, простые запросы к базе, выборки, запись в базу данных из формы.
    6. Куки, сессии.
    7. Чтение и запись в файлы.
    8. Регулярные выражения.
    9. ООП, базовые понятия. Самое сложное и непонятное для новичка. Непонятно потому, что не ясно зачем это нужно и почему это в дальнейшем упрощает работу, поэтому как-то мимо ушей все пролетает.

    Если с английским хорошо, то codecademy.com.
    Если плохо, то базовую теорию (и сразу практику) делать здесь.

    Далее лучше сразу переходить на фреймворк (лучше Laravel). MVC в теории тоже понимается плохо потому, что пользу донести до понимания новичкам сложно, а при работе с фреймворками сам понимаешь почему это удобно.
    Во время изучения фреймворка и ООП подтянешь.

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

    То есть чтения меньше, практики больше. Это про голый PHP.

    Про фреймворк, если английский позволяет то Laracasts: Laravel 5.4 from scratch. Если не позволяет, то ищешь в ютубе что-то вроде "простой блог на Laravel", смотришь и кодишь параллельно у себя.
    Тут тоже самое, под попкорн просмотреть всю серию роликов от начала до созданного блога с админкой бесполезно. Обнаружится потом, что не можешь даже базовые вещи сделать. Нужно делать параллельно с автором, он делает какой-то функционал, смотришь, делаешь также, изначально может быть непонятно многое и зачем автор это делает, но со временем поймешь как это работает.

    Далее пробуешь сделать что-то свое, какие-то "фичи", например авторизацию с помощью соц. сетей, лайки к постам и комментариям (с помощью ajax, тут можно jQuery изучить чуть-чуть), вложенность комментариев и т.д. Можешь другой себе проект придумать(представь себя стартапером).

    Далее можно изучить системное администрирование чуть-чуть, покупаешь VPS недорогой, ставишь Nginx, MySQL, PHP-FPM и т.д. Пробуешь залить туда свой проект, так чтобы всё работало. Далее можешь попробовать прикрутить какой-нибудь поисковый движок (Sphinx, например). Изучение командной строки тоже на codeacedemy.com есть.

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

    Сам изучаю всё это недавно. До этого был Python+Django(первый фреймворк). В команде никогда не работал. Так что можно сказать передаю опыт от новичка новичку.
    Ответ написан
    3 комментария
  • Как отправлять данные методом ajax в модальном окне на yii2?

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    Для ajax валидации:

    1. В ActiveForm::begin() нужно добавить 'enableAjaxValidation' => true во view,

    2. В контроллере добавить конструкцию для ajax валидации:
    if (Yii::$app->request->isAjax && $model->load(Yii::$app->request>post())) {  // если получаем AJAX и POST запрос
          return ActiveForm::validate($model); // выполняем валидацию формы 
       }


    Для ajax отправки:

    3. Для отправки формы через ajax я всегда пишу свои js скрипты, где я делаю для кнопки preventDefault(), собираю данные из формы и отправляю ajax запросом, - тут главное кроме всех данных формы собрать и __csrf-token и передать его в запросе, иначе бэкэнд просто выбросит запрос как невалидный и не обработает его.

    Для popup закртыия:

    4. Закрыть popup легко, я так понимаю, Вы будете использовать бутстраповский. Т.е. код клика по сабмит кнопке должен быть примерно такой:
    $('.submit-button).click(function(e){
       e.preventDefault();
       // отправка аякса и потом:
       $('#popupselector').modal('hide');
    });
    Ответ написан
    3 комментария
  • Как передать имя пользователя в шаблон?

    planc
    @planc
    flask-sqlalchemy.pocoo.org/2.3/models/#one-to-many...

    в User добавь

    defects = db.relationship('Defect', backref=db.backref('author', lazy=True), lazy=True)


    в шаблоне

    defect.author.name

    и в flask-sqlalchemy.pocoo.org/2.3/quickstart посмотри про joined


    While lazy-loading a relationship is fast, it can easily become a major bottleneck when you end up triggering extra queries in a loop for more than a few objects. For this case, SQLAlchemy lets you override the loading strategy on the query level. If you wanted a single query to load all categories and their posts, you could do it like this:


    query = Category.query.options(joinedload('posts'))

    в class Defect не нужен UserMixin
    Ответ написан
    Комментировать
  • Как заюзать календарь из админки в обычной форме?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    forms.py
    from django import forms
    from django.contrib.admin import widgets
    
    class SomeForm(forms.Form):
        some_field = forms.SplitDateTimeField(label='Some field',
                                              input_date_formats=['%d.%m.%Y'],
                                              input_time_formats=['%H:%M:%S'],
                                              widget=widgets.AdminSplitDateTime())
    
        class Media:
            css = {
                'all': (
                     '/static/admin/css/widgets.css',
                )
            }
            js = [
                '/admin/jsi18n/',
                '/static/admin/js/core.js',
            ]

    form.html
    <script type="text/javascript">window.__admin_media_prefix__ = "{% static 'admin/' %}";</script>
    {{ form.media }}
    <form action="{% url 'some_url' %}" method="post">
        {% csrf_token %}
        <table>
            {{ form.as_table }}
        </table>
        <input type="submit" value="Submit">
    </form>
    Ответ написан
    4 комментария
  • Выбор cms для заметок сис.админа?

    neuotq
    @neuotq
    Прокрастинация
    Я вам советую завести на git и хостить(можно к примеру gitlab у них есть бесплатные приватные репозитории ), а можно и не хостить. А сами заметки/блог вести в Markdown. Markdown имеет простейший и удобный синтаксис + есть огромное количество бесплатных редакторов.
    Таким образом вы получите портируемую, слабо от чего-либо зависящую систему удобных заметок с историей изменений добавлений.
    Ответ написан
    Комментировать
  • Django orm - сохранение в связанные таблицы?

    @immaculate
    Программист-путешественник
    В 2018 году в Django разносить данные пользователя по двум раздельным таблицам User и Profile — категорически неправильно! Django уже года 4 как минимум позволяет создать собственную модель User со всеми необходимыми полями. Такой код будет намного проще писать и поддерживать, а еще исчезнет вагон и маленькая тележка JOIN'ов, необходимых для догрузки Profile.

    А по сути вопроса: до сохранения экземпляра модели в базе, создавать связанные модели нельзя, так как Django необходимо знать первичный ключ User для их создания, а он генерируется в процессе сохранения модели.

    Есть пакет, позволяющий обойти это ограничение: django-modelcluster, но в вашем случае целесообразнее переписать модель пользователя.
    Ответ написан
    Комментировать
  • Tomcat и Java на флешке, возможно ли?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Да никаких проблем:
    1. Скачиваете архив JDK
    2. Распаковывайте его на флешку
    3. Скачиваете архив Tomcat
    4. Распаковывайте его на флешку
    5. Скачиваете архив Eclipse
    6. Распаковывайте его на флешку

    Остаётся создать в корне флешки батник, устанавливающий переменные окружения
    @echo off
    
    set "JAVA_HOME=%CD%\jdk-10.0.1"
    set "PATH=%JAVA_HOME%\bin;%PATH%"
    Ответ написан
    1 комментарий
  • Насколько хорошо нужно знать Java для создания приложения Android?

    @Cr2ed
    Из собственного опыта. Начал заниматься Android без каких либо знаний в java. Как результат возникало много вопросов а почему тут так, а не иначе. Обычно на такие вопросы в Android книжках/курсах не отвечают. На время переключился на java - помогло. Достаточно будет взять любую книжку по java и хотя бы поверхностно по ней пройтись, что бы иметь хотя бы общее понимание что есть в языке и как оно принимается. Так как если прийдется писать что то более серьезное чем 'Hello world' - могут возникнуть проблемы.
    Ответ написан
    Комментировать
  • Как подружить Pisa с кириллицей?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Рендер не может сам загружать ссылки, поэтому не может получить шрифт profiles/dogovor/arial.ttf. У функции pisaDocument есть параметр link_callback, в который можно передать функцию преобразующую http-адреса в локальные пути. Например такую:
    def fetch_pdf_resources(uri, rel):
        if uri.find(settings.MEDIA_URL) != -1:
            path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ''))
        elif uri.find(settings.STATIC_URL) != -1:
            path = os.path.join(settings.STATIC_ROOT, uri.replace(settings.STATIC_URL, ''))
        else:
            path = None
        return path
    
    
    pdf = pisa.pisaDocument(BytesIO(template.encode('UTF-8')), result,
                                                               encoding='utf-8',
                                                               link_callback=fetch_pdf_resources)

    И естественно, url для шрифта надо поменять на абсолютный, а сам шрифт по этому url должен быть доступен.
    Ответ написан
  • Какая роль php в современном вебе?

    В общем.

    1) PHP юзается в огромном количестве различных проектов. Например, symfony юзается для больших и сложных проектов. Также ПХП юзается для всякого e-commerce итд

    2) Python/Ruby в рф не очень популярны. Например, Python юзается во всяких гигантах типа mail.ru/yandex (но ты там точно не захочешь работать), плюс всякие стартапы, где нужно работать с данными (питон имеет хорошие мат-либы).

    3) Тут нужно понимать следующую вещь. Никто в здравом уме не будет писать на Питоне/Руби/Ноде проекты уровня блога, информационного сайта, интернет-магазина. Так как это выйдет в разы дороже, чем делать проект на движках ПХП. Поэтому при просмотре вакансий может показаться, что эти языки - это какой-то сложный и крутой кастом, а пхп - это хрень всякая. На ПХП тоже есть куча сложных проектов на фреймворках, просто из-за обилия вакансий они теряются в массе.
    ____

    Не слушай стоны людей, что ПХП мертв, пхп никому не нужен, он ужасен и прочее. Если ты хочешь быть веб-разработчиком в РФ, то начинать тебе надо именно с ПХП. На Питоне(Руби), работу найти в разы сложнее, там сразу ожидают более высокий уровень разрабов, основная масса вакансий сосредоточена в столицах. Что на ПХП, что на Питоне(Руби), можно сделать аналогичные проекты.
    Ответ написан
    6 комментариев
  • Что лучше или быстрее, memcached или redis?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    memcache умеет только строкоые данные, а redis умеет разные типы данных, включая комплексные - массивы, множества, и так далее. Плюс redis умеет кластеризацию и репликацию.
    Ответ написан
    Комментировать
  • Leaflet - как отобразить карту в качественном виде на retina дисплеях?

    profesor08
    @profesor08 Куратор тега JavaScript
    размер изображений карты нужно уменьшать вдвое на retina дисплеях

    увеличить

    https://github.com/geoblacklight/geoblacklight/wik...

    // basemaps
    
    GeoBlacklight.Basemaps = {
      darkMatter: L.tileLayer(
        'https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}{retina}.png', {
          attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="http://cartodb.com/attributions">CartoDB</a>',
          maxZoom: 18,
          worldCopyJump: true,
          retina: '@2x',
          detectRetina: true
        }
      ),
      positron: L.tileLayer(
        'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}{retina}.png', {
          attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="http://cartodb.com/attributions">CartoDB</a>',
          maxZoom: 18,
          worldCopyJump: true,
          retina: '@2x',
          detectRetina: true
        }
      )
    };
    Ответ написан
    5 комментариев
  • Подготовка к собеседованию Junior Ruby on Rails?

    c3gdlk
    @c3gdlk
    Ментор в http://rubyboost.ru/
    Я уже выучил Ruby, RoR


    до сих пор не могу сказать, что выучил рельсы и руби =)

    По сабжу

    REST, MVC, структура проекта, в каких папках что лежит, включая папку config.
    что такое представление, паршиалы, по моделям полностью - скоупы, ассоциасии. валидации, коллбеки
    контроллеры - before_action, что уже лежит в ApplicationController
    Unix - что такое приложение, процесс и порт. Что делать если при старте сервера пишет, что порт 3000 уже используется.
    По руби - идиома @a ||= b, блоки, циклы, что делаeт attr_accessor, что такое символ, константы в руби.
    По базам - прошу привести примеры какие запросы генерирует та или иная цепочка DSL ActiveRecord, например
    User.where(id: 1), User.where(id: [1]), User.where(id: []) И таких вариантов куча, нет смысла пытаться заучить, нужно разбираться.

    Независимо от знаний, общий совет такой. Если в каких-то знаниях уверены, не бойтесь объяснять своими словами. Если не уверены, сразу честно об этом говорите, без угадывания.

    Кроме того, предлагаю банальщину - пройтись по основам railsguides и убедиться, что верно понимаете соглашения фреймворка. Rails построен на соглашениях и тот кто в них хорошо разобрался имеет высокий шанс получить работу.

    Например, большинство кандидатов на вопрос, что в имени представления index.html.erb означает html отвечают, что это язык разметки в котором вернется ответ. Т.е. они просто строят логичное предположение и не пытаются его проверить. И таких, казалось бы простых вопросов, у меня целая пачка. В большинстве случаев кандидат уходит с пониманием, что ничего на самом деле и не знает.

    P.S. лучше знать что-то одно хорошо, чем много всего по немногу.

    Но, в каждой компании по разному.
    Ответ написан
    Комментировать
  • Работа на python в больших компаний?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Практически нереально найти работу, где надо будет использовать и Python и Java. Либо одно, либо другое. Что сокращает ваш вопрос до "Можно ли найти работу python-программистом?" Да, можно.
    Ответ написан
    2 комментария
  • Статья на хабре - "Upgrade до Middle PHP-разработчика за 3 месяца". Если я не читал этих книг, но смог написать свой магазин, я все равно Junior?

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    Тут набежали снобы, которые все никак не самоутвердятся.
    Все эти градации junior - senior очень условны и не нужны, все зависит от того, пройдешь ли ты собеседование или нет, будешь справляться с задачами или нет, подходит ли твой стек знаний под задачи или нет.
    Ответ написан
    Комментировать
  • Разработчик систем на ПЛИС. Как, с чего и где начать?

    @Mirn
    0. С разговорного английского, беглово с хорошим словарным запасом и умением понимать шутки и казалось бы странные фразы. Всем абсолютно плевать на Ваш опыт и знания и умения, даже устровшись задаром в корпорацию с шансом роста - его не будет как бы Вы не старались, это реальный мир а не сказочки. Высокий старт решает всё, а для этого надо выдавать бегло много красноречиво на собеседовании на остальное в 99.9999999999999999% случаев всем плевать всегда и даже проверять не будут даже выдав тестовые задания, даже если они толковые. пункты 1 и далее без этого пункта не нужны и бессмыслены.
    Програмист при помощи человечьего языка работает с людьми при помощи инструментов сделаных другими людьми и опять же описанных человечьим языком. Даже код для людей а не для ПК. Запомнить и понять это надо.

    1. Программирование на Си и С++. Усиленно изучать оба понимая что даже чистый си понадобится и очень часто, Вы же FPGA будете использовать не спроста - а значит шевелить огромными данными а их ввод-вывод надо организовать и нередко надо делать драйвера самому на люниксе например, а для этого они оба и понадобятся.
    2. Умения ЧИТАТЬ ассемблер - ТОЛЬКО ЧИТАТЬ и умения исправлять код и параметры компилятора чтоб получить нужный дизасм с нужной скоростью или размера.
    3. Никогда не писать на ассемблере. см пункт 0 (асм это нечитабельное неподдающееся правке г). Современные компиляторы на голову лучше асма делают, даже на мелочах ты продуешь, в целом разница будет и по размеру и по скорости в разы.
    4. Не использовать старое гавно мамонта и не гордится им, забудтье как страшный сон авр и пик микро с чистым i51 если изучать 8051 то современные модели с одним тактом на инструкцию и с нормальным объёмом памяти с частотами 100 мегагерц и выше или в особых случаях. Аналогично забыть: например первые максы альтеры.
    5. Готовиться к имиграции иначе интерес угаснет лет через 5 от такой зп в странах СНГ. Но надо понимать что по миру эта отрасль в среднем оплачивается на 50% ниже ИТ.
    6. Умение работать с людьми и софт скилз. Человек и зп зависит от результативности и умения себя показать, неважно что ты делаешь, важен самопиар, я знаю отличных людей но "серых мышей" которых нафиг уволили а потом удивлялись почему всё перестало работать. Но я не знаю ниодного карьериста и балабола но весьма посредственного в технике который не смог бы обскакать всех по карьерной лестнице. [Социальные скилы при наличии тех минимума] >> [тех уровень лучше всех]. Молчуны быстро сталкиваются с тем что им дают шлак проэкты или не выделяют ресурсы и они загнивают в болоте легаси.
    7. Изучать не только современное но и популярное и задвинуть подальше свои хотелки и свою лень, всем пофиг что серия А интересна если серия Б унылоге гавно но 90% проэктов на ней или она прото в полтора раза дешевле. Изучать надо то что требуется рынком а не то что ты себе внушил что требуется. Самоанализ а не "ну это статья понятная попробую я ка это" "хмм, я это знаю и поэтому дальше буду лепить на этой платформе" "блин а почему никому эта платформа не нужна?"
    8. В начале надо набить ошибок на своих проэктах и потом начать изучать чужие похожие проекты а только потом теорию чтоб понять почему они так сделаны, и так рекурсивно. Не изучать неведомую теор хрень только для галочки - как изучишь так и забудешь сразу же если она без практики.
    9. Изучить паттерны программирования и немного веба с бд (пригодятся и не раз - и как резерв для карьерного манёвра чтоб уйти в веб или гейм или интерпрайз если совсем всё плохо с финансами и зарплата нужна седня а не через пол года)
    10. конечно же схематехнику но без переусердствований - на ардуино уровне вполне хватит

    Из конкретики пример:
    Ардуино на СТМ32 или голый СТМ32 (а лучше в начале ардуино стм32 а потом голый - идеально)
    подключить тяжолые вещи, например: дисплей камеру память, понять ботлнеки, сделать что то годное на этом - поиск лиц например. (работать с живым видео полезно и очень интересно, даже наткнувшись на баги можно получить интересные результаты и их развить и понять причину бага, и самое главное видно сразу результат и он классный)

    понять что МК вообще не годны к такому и потехоньку начать переписывать алгоритм поиска лиц на верилог
    осилить Icarus Verilog или другой тулчейм симуляции
    довести симуляцию до идеала - т.е. bit perfect когда результат симуляции побитово равен исходнику для СТМ32
    купить ФПГА отладку или заказать свою ФПГА плату например минимум циклон 3-5 или спартан 6
    замучаться с интерфейсами и изучить времянки и time constrains и иже с ними
    довести до ума и до реалтайма этот проэкт с поиском лиц

    примерно так
    Ответ написан
    4 комментария