• Как набираться опыта и формировать портфолио?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Итак, я учусь на geekbrains веб-разработке.

    Ошибка номер один. Из всех новичков, что я видел, с гикбрайнса самые слабые. Их не учат учиться, их учат повторять, не давая нормальную теоретическую и практическую базу. Задания очень слабые, а курсы поверхностные.
    статьи и пр. это конечно хорошо, но применять на практике то, что прочитал, это совершенно другое, а особенно в боевых условиях

    Пока не будете читать, так и будете практиковать визуальные эффекты на jQuery. Нужна база. В начале 25% теории 75% практики. Читайте https://css-tricks.com , большую книгу css (она немного устарела, гриды не рассматривают, но основная база очень полезная), смотрите Юрия Артюха (если хотите делать крутые анимации), лазьте по https://www.awwwards.com/ и разбирайтесь, как люди так делают. А также практикуйтесь, сделайте себе сайт, сайт другу, сайт девушке - всем.

    UPD: В чем сложно придумать себе близкую к боевому задачу? Боевую задачу вам вряд-ли кто-то даст, т.к. без опыта боевых задач, вы сделаете не боевое решение. Вот там "боевые" задачи.
    1) Сделайте калькулятор произведения матриц - разминочка.
    2) Сделайте игру арканоид, хоть на дивах (а раньше, когда мы учили программирование, новичков привлекала разработка игр, а сейчас почему-то сайты. Раньше было романтичнее как-то).
    3) Сделайте приложение учета личных финансов, в котором есть такие функции
    - личный счет
    - форма добавления денег в личный счет с комментарием и выбором группы доходов (долг, зп, заказ, подарок и.т.д.).
    - форма снятия денег с личного счета с комментарием и выбором группы расхода (вернул долг, купил домой что-то, купил технику, еду, потратил на женщину и.т.д.)
    - Вывод списка доходов и расходов с фильтром, сортировкой и категориями.
    - создание расписания автоматического пополнения (зп) или снятия (аренда, абонентская плата) средств с личного счета.
    - создание простого графика расходов и доходов. Я бы сюда добавил еще прогнозирование доходов и расходов хотя бы через линейную регрессию (да, я люблю машинное обучение),
    - добавление нескольких счетов
    Эта задача норм, и типа боевая, и для себя пригодится, и на гитхаб можно выложить - красота.
    Ответ написан
    14 комментариев
  • Переквалификация из Java в C++?

    @m0nym
    Возможно ли вообще осуществить такой переход и обойтись "малой кровью" без сильной "просидке" по зарплате


    Если сильно повезет.

    С++ нынче большая редкость.
    В отличие от востребованного языка Java.

    Есть желание перейти на с++/server side.


    Вы нам из прошлого века пишете?

    Серверная часть на С++?
    На уровне слухов, что у кого-то типа где-то есть на С++ на сервере.
    Сейчас большая редкость.

    Вообщем хочу узнать как будет относиться работодатель если в резюме будет указан опыт на java?


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

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


    Язык - это всего лишь инструмент. Как клавиатура или мышь. Всем плевать какого цвета у вас мышь. Если вы выполняете свои рабочие задачи.

    Вы задаете вопросы на уровне студента/джуна, а архитектура это вопросы миддла/сеньора.

    Такое впечатление что вы вообще не понимаете то, о чем пишете.
    Ответ написан
  • Что выбрать: Django или Flask?

    Для начала Django. Во первых генерируется базовая структура проекта, во вторых всё что нужно в комплекте.
    Научитесь писать на джанге- научитесь и на фласке, они очень похожи.
    А как только вы во фласке прикрутите орм, шаблонизатор, wtforms, разнесёте код по отдельным приложениям, то в итоге у вас получится Django
    Ответ написан
    Комментировать
  • Как написать CreateView для модели с ForeignKey?

    @immaculate
    Программист-путешественник
    Во-первых, соблюдайте, пожалуйста PEP-8 и Django Coding Style. Это уважение к тем, кому приходится читать ваш код. Также, обратите внимание, что обычно модели называются в единственном числе: City, а не Cities. Country, а не Countries.

    Во-вторых, при данном использовании CreateView форма создается автоматически. Вам же нужна своя форма, которая будет назначать страну. Создайте форму для City, в конструкторе которой будет сохраняться Country из запроса. А в CreateView вместо атрибута fields используйте form_class для использования вашей формы.
    Ответ написан
    7 комментариев
  • Как построить изучение С++ после С#?

    myjcom
    @myjcom Куратор тега C++
    БЕЗ материала для новичков


    https://en.cppreference.com/w/

    Olsson Mikael. C++17 Quick Syntax Reference
    Olsson M. C++ 14 Quick Syntax Reference

    Swaminathan Jeganathan. Expert C++ Programming

    Modern C++ Programming Cookbook
    Год издания: 2017
    Автор: Bancila M.
    Издательство: Packt Publishing
    ISBN: 9781786465184

    C++17 STL Cookbook
    Год издания: 2017
    Автор: Jacek Galowicz
    Издательство: Packt
    ISBN: 9781787120495

    Clean C++
    Год издания: 2017
    Автор: Roth S.
    Издательство: Apress
    ISBN: 978-1484227923

    Arthur O’Dwyer. Mastering the C++17 STL: Make full use of the standard library components in C++17

    Meyers S. Effective C++ Digital Collection 140 Ways to Improve Your Programming
    Gregoire M. Professional C++ 2018

    Horton I., Van Weert P. Beginning C++17: From Novice to Professional

    Smith R. (ed.) Working Draft, Standard for Programming Language C++ 2017

    C++ Notes for Professionals 2017
    Ответ написан
    1 комментарий
  • Требования к Django разработчику(Стек технологий)?

    1) HTML/CSS/JS - очевидно, знать нужно всем.
    2) XML/JSON - уже зависит от типа сервиса,с которыми нужно пилить интеграции
    3) Django/Django REST Framework - тут подразумевается, что либо бек отдает статику, либо бек дает апи для js-фреймворков
    4) Celery/RabbitMQ - т.е. умение делать задачи в очередь. Встречается очень часто, особенно на проектах, где надо какие-то отчеты формировать, письма отсылать и так далее.
    5) Elasticsearch/PostgreSQL - на маленьких проектах поиск делают прямо через постгрес, на больших уже юзают эластик.
    6) Общее знакомство с библиотекой Python
    7) Deploy: nginx / uwsgi (Gunicorn) / postgres - но зависит от проекта, на больших - это не твоя боль.
    ___

    Дополнительно спрашивают: Flask (Сейчас мода идет на микросервисы)/Tornado/Twisted/Aiohtp - это уже зависит от конкретных вакансий.

    Дополнительно требуется: 1-2 года опыта на php/ruby/node.js/java/.net - к сожалению, Python - это не php, тут не пилят говно на коленке за день, тут делают какие-то большие проекты с датой, интеграциями и прочее. Поэтому изначально предъявляют к кандидатам более высокие требования. В том числе опыт работы на Питоне, либо на похожем стеке.
    Ответ написан
    6 комментариев
  • Где найти WordPress right way?

    @Flying
    Я смог пересилить отвращение к коду Wordpress и начать с ним работать после того как узнал про Timber, всё-таки Twig - это совсем не то что фаршировать куски html :)

    Для формирования интерфейсов (и структур данных) в админке я себя не представляю без ACF. Использую Pro версию т.к. оно того явно стоит, но есть и бесплатная. Более того, в 5-й версии они добавили такую замечательную штуку как Local JSON что делает ACF весьма дружелюбным по отношению к системам контроля версий.

    Для мультиязычности недавно появился developer friendly плагин WP Multilang заточенный в первую очередь под разработчиков. В компании с Loco Translate позволяет весьма удобно работать с мультиязычностью.

    Также обязательно нужно помнить про WP cli, без него разработчику привыкшему к консоли тяжело :)

    Для работы с Composer есть Wordpress Packagist, так что плагины / темы можно ставить прямо через Composer. Я пытался запилить плагин для Composer'а который всем этим делом управляет, но пока качество imho недостаточное для отдачи его в public.

    Также очень рекомендую присмотреться к ребятам из Delicious Brains, у них в блоге немало интересного.

    Поддержка Wordpress есть в PHPStorm, весьма помогает.

    В целом Wordpress, конечно, весьма мутная штука внутри, но обложившись тонким слоем абстракций можно жить относительно комфортно :)
    Ответ написан
    2 комментария
  • Где найти WordPress right way?

    dimasmagadan
    @dimasmagadan
    1. Как все это запихивается под версионный контроль?
    так же как и любой другой код.
    Кто-то любит composer-lock.json/vendors класть в реп, кто-то нет и тп. С WP так же - можно сам движок класть, можно не класть. Зависит от кодстайла/привычек вашей команды.

    2. Где можно посмотреть руководство по эксплуатаци..
    На официальном сайте есть документация.
    Разработка под WordPress не подразумевает ковыряние разработчика в файлах движка. Вам дали фильтры/хуки, дали несколько api, используйте - этого вполне достаточно. Если нет, скорее всего ваш проект выходит за рамки WP, либо вы делаете что-то не так.

    3. Есть ли аналог php the right way...
    На официальном сайте. Там же можно найти и правила для phpcs, как настроить юнит тесты и прочее такое

    4. Советы от людей, которые как и я пришли разбираться с wp после паттернов проектирования.
    А зачем? Вам с чем работать, с этими людьми или с WordPress?
    Если вам надо работать, читайте документацию, там все толково расписано. Если же хотите пообсуждать "какой WP фиговый движок" - то это можно ваще на любом форуме в интернете и не обязательно, чтоб собеседники владели какими-либо паттернами.
    Ответ написан
    Комментировать
  • 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 должен быть доступен.
    Ответ написан