Задать вопрос
  • Есть ли у кого нибудь пример работы с формой?

    Gasoid
    @Gasoid
    class StartForm(forms.ModelForm):
        class Meta:
            model = Start
    
    
    def view_start(request):
        if request.method == "POST":
            form = StartForm(request.POST)
            if form.is_valid():
                form.save() # записывает данные в базу с формы
            else:
                # lalala
                return render(request, "form.html", {'form': form})
        else:
            form = StartForm()
        return render(request, "form.html", {'form': form})
    Ответ написан
    4 комментария
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смогу ли я на фреймворке писать свои модули для моей CMS

    Если ваша CMS написана на фреймворке - да. Вполне возможна и частичная интеграция, но это путь боли.

    Наверняка не в одном фреймворке нет функции анализа собственного контента по принципу поисковых роботов.

    Фреймворк - это каркас для построения приложений. Он не решает бизнес задачи, вместо этого - технические.

    Не помешает ли мне фреймворк создавать такие модули из-за своего ограниченного функционала.

    Может помешать только в случае, если принципы принятые в фреймворке противоречат принципам в вашем проекте. Это возможно только если вы явно выбрали не тот фреймворк. Например: для работы с БД у вас во всю используется Doctrine2, вы выбираете фреймворк yii2 и частично переходите на его ActiveRecord - это приведет к большим проблемам.

    Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению.

    Да, форкаете фреймворк, публикуете форк в композере и пишите там все что хотите. При обновлении фреймворка - вливаете изменения в свой форк.

    Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.

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

    На сколько я буду зависеть от выхода новых версий?

    Зависимость от новых версий фреймворка - полностью на вас. Как напишите так и будете зависеть))

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

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

    Можно ли будет постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.

    Да

    Ну и наконец, выбрал я, скажем, вреймворк. А разработчик прикрыл его дальнейшую разработку. Могу ли я оставить фреймворк и дальше им пользоваться не переписывая опять все файлы на новый фреймворк.

    Можете, форкаете фреймворк и публикуете его в composer. Правда подобная ситуация возможна для фреймворков крайне редко и скорее сигнализирует о том, что вы выбрали хреновый фреймворк.
    Ответ написан
    Комментировать
  • Системный vs Прикладной программист?

    @asd111
    1. Вакансий больше всего под веб программирование и разного рода финансовый софт. Java, C#, Python, PHP.
    2. Зарплата примерно одинаково у всех. Лучше всех тем кто работает удалено на заграничных заказчиков.
    3. Стабильность зависит от компании. Например в jetbrains и в google всегда будут вакансии. У мелких компаний соответственно работы меньше и такая компания может внезапно разорится.
    4. Google будет всегда. Машинное обучение будет всегда. Игры тоже будут всегда.
    5. Муторность. Gamedev - делаешь игровой AI, графику и т.п. В основном геометрия(произведение векторов, матриц и т.п. Google и т.п. web - работаешь со строками, с базами данных, с машинным обучением и т.п.
    Сменить сложную область на web всегда можно, т.к. там учить особо нечего. Тем более после написания игрового сервера на котором можно играть с ботами. Разница пожалуй в том что если быть хорошим веб или Java, C# программистом, то можно в молодом возрасте стать senior или нач. отдела с соответствующей зарплатой(более 100 тыс. руб. мес.). В игрострое стать senior C++ не так то просто, а начальником отдела тем более.

    В целом к игрострою я отношусь прохладно, поскольку от игр нет практической пользы, зато бывают случаи когда из за игр человек портит свое здоровье. На мой взгляд лучше делать медицинские тренажеры и оборудование, промышленных роботов, автопилоты для гражданских машин и самолетов, т.к. если работать на военных то может появиться запрет на выезд, а хорошие программисты часто уезжают, потому что за границей лучше.
    Ответ написан
    2 комментария
  • Системный vs Прикладной программист?

    @Archusha
    https://agaltsovav.ru/
    Ну для студента 2 курса, без опыта, слишком уж категорично откинули WEB.

    Так или иначе все основные системы выходят в web.

    Смотрите сами, выбирайте сами, но не рубите с горяча.
    Ответ написан
    Комментировать
  • Как сделать активную ссылку в Python?

    sim3x
    @sim3x
    Правильное решение! - определить во вью или модели, какой сейчас линк нужно пометить активным
    stackoverflow.com/a/9793609

    Апп
    https://github.com/hellysmile/django-activeurl
    Ответ написан
    Комментировать
  • Обязательно ли знать Bitrix чтобы быть web-разработчиком?

    north_leshiy
    @north_leshiy
    Руководитель направления разработки
    Есть две стороны медали.
    1. Разработка на самой востребованной на рынке пока что в СНГ системе (Bitrix). Востребованной в 1 очередь заказчиками, а не разработчиками.
    Вы всегда найдете себе работу.
    Но вам придется мириться с текущими недостатками, которые исправляются не так быстро, т.к. поддерживается обратная совместимость (они не могут себе позволить ее не поддерживать т.к. имеют слишком большую долю на рынке). Но все же исправляются, и на новое ядро уже переписана немалая часть функционала.
    2. Разработка на фреймверках. В России к примеру распространены YII, Symphony и активно набирающий обороты Laravel. Yii - больше для мелочи, Symphony/Laravel потенциально для более крупных проектов.
    Работа с ними приятнее с точки зрения программирования, но вам потенциально придется писать очень много того что в CMS уже написано. Хотя порой написать новое быстрее чем кастомизировать уже написанное под бизнес задачу.
    Рынок/вакансий на FW меньше, + есть не стабильность, сегодня популярен один FW, завтра другой. Доминирующей позиции ни у кого нет. Если выберете эту ветку - я бы посоветовал Laravel, мне кажется наиболее перспективный, в топовых студиях по крайней мере спрос растет.
    Плюсы данного пути - вы начинаете изучать программирование "снизу", с ООП, ядра, без вариантов. Это сложнее чем изучать CMS, должна быть неплохая теоритическая база чтобы не гавнокодить (имхо).

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

    Ваша лучшая документация код, который под капотом, за красивыми (или не очень) интерфейсами. Хорошо документированных CMS почти нет, bitrix в этом направлении один из лидеров.
    Если скил пока не позволяет читать исходный код и понимать, то начинайте мануалов).

    Вообще для обучения мониторьте HH.ru на тему: junior разработчик. Вам повезет если вы попадете в крупную студию с хорошими ведущими специалистами и хорошей программой обучения. При таком раскладе вас научат программировать вне зависимости от использования платформы и научат базовым практикам корпоративной совместной разработки + быстро отучат говнокодить.
    Если попадете в мелкую - тут придется самому грызть гранит, читать много литературы, вы достигнете всего того же, но за больший период. Для начала кстати посоветовал бы почитать:
    • "PHP. Объекты, шаблоны и методики программирования" Мэт Зандстра
    • "Совершенный код" Стив Макконнелл


    И посоветую не слушать популистов и ненавистников Битрикса. Многие из них просто работали или со старой версией, или работают сейчас, но не изучают новое ядро, не следуют новым практикам, или о новом ядре знают очень мало. А многие попросту плюются на все чем не пользуются сейчас, в духе "все дураки, я один умный", доля конструктивной критики весьма мала, хотя критиковать есть за что. Если бы битрикс был таким полным говном как многие описывают - он бы не занял доминирующую позицию на рынке.
    Ответ написан
    5 комментариев
  • Почему Битрикс так популярен?

    creativeworm
    @creativeworm
    Битрикс = Маркетинг. По сути битрикс держится на внедренцах/разработчиках сайтов, которые кое-как (кто как умеет) применяет их продукт при создании сайта из-за желания заказчика и получает откат.

    Компании считают, что если купят детище Рыжикова, то в последствии будет проще найти специалиста по доработке или сопровождению сайтов. Так же множество компаний работают с 1С многие годы и продукт с такой приставкой 1С-Битрикс автоматически завоевывает доверие и западает в сердцах заказчиков.
    Ответ написан
    Комментировать
  • Как собрать данные посетителя сайта?

    copist
    @copist
    Empower people to give
    Я нашёл в этом вопросе три технологических вопроса:

    1. Про вычисление города
    Есть форма заявки с полями "номер телефона" ... добавлен на базу mysql ... адрес (город проживание клиента который нажал на кнопку)

    Если в форме нет поля для выбора страны и города, то можно вычислить приблизительное местоположение по IP адресу. Это неточная информация, ей нельзя доверять на 100%, потому что пользователь мог зайти на сайт через анонимные прокси. Желательно уточнить у него - "Вы точно из города X?".

    Для автоматического вычисления гео-данных можно воспользоваться платной базой GEO данных сервиса MaxMind или платными открытыми веб-сервисами
    Или бесплатными сервисами, которые возвращают данные с очень большой погрешностью, например вместо города возвращают страну :(
    Пример получения информации через API MaxMind для языка PHP
    <?php
    require_once 'vendor/autoload.php';
    use GeoIp2\Database\Reader;
    
    // This creates the Reader object, which should be reused across lookups.
    $reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');
    
    // Replace "city" with the appropriate method for your database, e.g., "country".
    $record = $reader->city('128.101.101.101');
    
    print($record->country->isoCode . "\n"); // 'US'
    print($record->country->name . "\n"); // 'United States'
    print($record->country->names['zh-CN'] . "\n"); // '美国'
    
    print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
    print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'
    
    print($record->city->name . "\n"); // 'Minneapolis'
    
    print($record->postal->code . "\n"); // '55455'
    
    print($record->location->latitude . "\n"); // 44.9733
    print($record->location->longitude . "\n"); // -93.2323


    Пример получения информации об IP адресе на языке PHP через открытый сервис ipinfo.io
    $ip = $_SERVER['REMOTE_ADDR'];
    $details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
    echo $details->city; // -> "Mountain View"


    Пример запроса:
    $ curl ipinfo.io/8.8.8.8

    Пример ответа:
    {
      "ip": "8.8.8.8",
      "hostname": "google-public-dns-a.google.com",
      "loc": "37.385999999999996,-122.0838",
      "org": "AS15169 Google Inc.",
      "city": "Mountain View",
      "region": "CA",
      "country": "US",
      "phone": 650
    }


    2. Про передачу данных с веб-страницы
    Как сделать чтобы при нажатии на кнопку запрос был добавлен на базу

    Можно отправить форму на сервер методом POST, а можно передать по технологии AJAX.
    learn.javascript.ru/ajax-intro

    3. Про сохранение в базу данных
    Как сделать чтобы ... эти данные записать на БД

    Язык программирования не указан.Уточните, что именно эта информация нужна - я напишу больше.
    Общий алгоритм: извлечь номер телефона и IP адрес из запроса, вычислить город по IP адресу, записать результаты в базу данных.
    Ответ написан
    2 комментария
  • Все мои логотипы получаются не законченными. В чем дело?

    pozZzitiv
    @pozZzitiv Куратор тега Дизайн
    Дизайнер и перфекционист
    Если не знаете что не так, то читайте книги и учитесь чтобы понимать что именно не так.

    Плюс ко всему, выстраивание логотипов по каким-то строгим, математически выверенным, сеткам — фигня. Лого, в первую очередь, должен выглядеть хорошо оптически. А когда мудрят с буквами/текстом как раз такая фигня и получается. Изучайте типографику чтобы понимать как веками строились буквы и почему они именно таких размеров. Пока не станете разбираться в этом всегда будет «что-то не так».
    Ответ написан
    7 комментариев
  • Что если вся "data science" сведется к последовательности вызовов готовых функций?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > создается куча курсов, пишутся книги, в которых все сложные с математической точки зрения алгоритмы объясняются на пальцах
    99,(9)% уверен - вы жОстко преувеличиваете, и не все там так радужно у Data Scientistов.
    Вы сами-то пробовали те курсы и книги в деле?
    У нас реверс-инженеров в этом плане вообще печалька по определению))) но я-то не только реверс-инженер, я занимаюсь и кучей иных областей, и проблемы с документацией и высокоуровневыми средствами вижу в абсолютной любой области, даже самой-самой банальной и стандартной, типа разработки СУБД для предприятий.

    И если бы вдруг с неба упала куча сверхвысокоуровневых средств или книг с кучей готовых решений, то я бы от этого ни разу не пострадал.
    1. Насчет удобных инструментов, большинству просто синдром утенка не позволит на них перейти. А еще они платные же должны быть, иначе это вообще фантастика какая-то. Так что разброс между мною и ими - увеличился бы, а не уменьшился.
    2. Насчет книг, навыки принципиально не может давать никакая книга. Если только она волшебная, как живая вода или ковер-самолет.
    3. Ну и, как и многие другие, скажу, что если мои текущие знания и навыки окажутся не нужны, то я просто возьму и освою что-то новое.
    Могу писать программы для американских горок. Могу сверлить и резать стены. Могу перебирать ДВС и варить водопроводные трубы. Могу ремонтировать ноутбуки, смартфоны. Могу стать воздушной планетой. Могу стать воздушным асом. Берем телевизор, вставляем в Мурманский полуостров
    А еще я стану больше бизнесменом. Не меньше, а больше! Ибо больше идей, проектов, меньше технической части.
    А кто так не умеет - тот, осмелюсь сказать, вообще не особо-то и программист. И трястись над навыками и знаниями ему уж точно не стоит - у него их нет. У него нет общих навыков и знаний, иначе бы он тоже так умел.
    Вотъ.
    Ответ написан
    Комментировать
  • Вопрос по запуску Django сайта на сервере?

    syschel
    @syschel
    freelance/python/django/backend
    leha78: Я обычно окружение конкретного проекта кладу рядом с проектом, но не в саму папку проекта
    - sites
     + project_name_one
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)
      + project_name_two
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)

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

    @asd111
    Изучи как использовать grep и git.
    И ещё как подключаться по ssh,sftp, как настроить nginx для запуска python/django и всё.
    Ubuntu.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux лучше изучить?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    попробуй без GUI средств на Ubuntu 14.04

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

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

    на первое время этого хватит.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux лучше изучить?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вам нужно учить скорее всего не дистрибутив, а просто общую работу в *nix, то есть работу в командной строке. Поставьте любой дистрибутив, Ubuntu, Mint, CensOS, и освойте например:
    установку и запуск собственно скриптов на питоне
    права доступа к файлам, вообще навигацию по файловой системе
    перенаправление ввода и вывода
    подключение по ssh, можно еще и по ssh-ключам - очень пригодится
    Ответ написан
    Комментировать
  • Как задать каждому полю отдельный класс?

    Roman Kitaev дело говорит. послушайте его
    а Ваша проблема решается так

    class VacForm(forms.ModelForm):
        vac_name=forms.CharField(widget=forms.TextInput(attrs={'class':'supername'}))
        class Meta:
            model = Vacancies
            fields = ('vac_name', 'vac_req','vac_obz', 'vac_usl','vac_salary', 'vac_comp','vac_zan', 'vac_locat', 'vac_exp','vac_cat', )


    либо так
    class VacForm(forms.ModelForm):
            vac_name.widget = forms.TextInput(attrs={'size': 10, 'title': 'Search', 'class':'supername''})
    .....
    Ответ написан
    1 комментарий
  • Как задать каждому полю отдельный класс?

    @deliro
    Я пока неопытный и учусь, поэтому не судите строго.

    По-моему, как раз, когда ты неопытный, судить нужно максимально строго, чтобы выправить руки в нужное русло как можно быстрее. А если ты от критики расстроишься и бросишь это всё - ну и ладно, меньше конкуренция.

    Я уже сто раз тут это писал и ещё напишу, пока будет эта жесть.
    Вот создал ты модель вакансий. Ты моделью описываешь единичную сущность, а назвал Vacancies - множественным числом.
    Дальше: вот у тебя есть модель вакансий. Зачем ты каждому полю даёшь имя, дублирующее имя модели? (Я про vac_*). Создал ты вакансию, да:
    vacancy = Vacancy.objects.create(...)
    И пошёл получать атрибуты:
    vacancy.vac_name # Красиво, п****ц, да?

    Сокращённые названия атрибутов - красота. Через полгода ты понятия не будешь иметь, что за vac_zan, vac_usl, vac_cat. А человек, который будет с тобой работать в команде или рефакторить это после тебя получит отличный набор головоломок в подарок к коду.

    Просто шикарные хитросплетения русского и английского языков. Твой код отражает твою многогранность и неповторимость. Ты - полиглот. Так ты думаешь, когда городишь эту ахинею?

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

    Ответ на вопрос: https://pypi.python.org/pypi/django-widget-tweaks
    Ответ написан
    1 комментарий
  • Развернуть сайт Django 1.9?

    @deliro
    nginx на фронт 100% (не апач)
    WSGI сервер выбирай из uWSGI и Gunicorn

    В общем получается так:
    nginx <-> uWSGI <-> Твоё приложение
    Статику отдаёт nginx напрямую.

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

    zelsky
    @zelsky
    profile.user.last_login проверять , если пустое то в первый раз
    Ответ написан
    6 комментариев
  • Можно ли работать программистом после 9 классов?

    За 6 лет работы об образовании и "прочтенных книгах" спросил только один заказчик (5 лет назад :)). Работала с компаниями, студиями, стартапами, фрилансила и работала в паре с разработчиками. Только портфолио и своя собственная адекватнось решает. Очень важно, чтобы у вас с самим собой не было проблем из-за "недостатка образования". Если вы самостоятельно обучаетесь постоянно, читаете и развиваетесь, то не важно сколько официальных лет вы просидели в школе, техникуме, институте, не за эти качества вас на работу берут. Если вы приносите профит компании, то вас будут ценить, переманивать и всячески поощрять.
    Ответ написан
    3 комментария
  • Можно ли работать программистом после 9 классов?

    @abcyu
    Разработчик
    Кроме гос. контор, корпораций и заграничной работы (рабочую визу не дадут без вышки) - по сути никому это не надо.

    Но Яндекс и Мейл будут смотреть уже на репутацию, опыт, познания реальные, вряд ли на диплом.

    Да, возраст может смутить. Первое время только шарашкины конторы будут тебе рады.
    Но образование - значения не имеет.

    P.S.:
    Я помню, меня тоже пёрло, когда моя примитивная программа на принтер 2 слова вывела.
    И очень ЧСВ поднимает когда тебе все кругом в рот глядят когда ты Винду ставишь.

    Но это еще не мастер.

    Мастером своего дела за менее чем за несколько лет работы, да еще крайне желательно с более квалифицированными коллегами рядом - программисту стать не суждено, каким бы гением он не был.

    P.S.:
    При прочих равных диплом всегда плюс. Хотя в реальности я его не показывал.
    Ответ написан
    2 комментария