Задать вопрос
  • Как лечится кризис начинающего программиста?

    kumaxim
    @kumaxim
    Web-программист
    Господин начинающий, у Вас извращенный подход к программированию в целом.
    Программа - это способ более эффективно решить какую-то задачу... способ достижения какой-то заданной цели с меньшим количеством ресурсов.

    Возьмем, как пример, тот же бух.учет на предприятии. Как Вы думаете, почему 1С Бухгалтерия так широко распространилась в РФ и СНГ? Эта программа позволяет бухгалтеру в 2-3 клика мышки сформировать отчет для регулятора(ФНС, ПФР и т.д.), вместо того чтобы человеку сидеть руками искать платежные поручения, вычислять налоги и т.п. Софт просто подтягивает выписку из банка, анализирует ее и выдает готовую для печати бумажку, что экономит бухгалтеру сильно много времени. Расчет заплатанный налогов и отчеты в соц.фонды это вообще красота - 8 кликов мышкой и все готово :-)

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

    И вот, далее Вы для себя определитесь, какая Ваша основная цель? Какой Ваш основной посыл обществу?

    Личной мой посыл - "Я помогаю людям экономить: время, деньги, нервы и т.д.".

    Как я это делаю?
    У меня сначала был маленький интернет-магазин по продаже катализаторов для бензина(в поиск "кондиционеры метала для а/м"). При соблюдении определенных условий, расход топлива на малометражках снижался от 20% до 45%
    Вторым моим проектам было небольшое мобильное приложение для отслеживания хода исполнительного производства в ФССП(для взыскательней, уже сдохло). Мне и моим знакомым(не юристы) это экономило достаточно много времени на ругань с приставами, чего они должны делать и т.д. Кто сталкивался с этой службой должен знать эффективность и оперативность их работы, особенно в регионах...
    Сейчас я пишу небольшой конструктор сайтов, который поможет одной дружественной мне веб-студии сильно оптимизировать процесс создания низкобюджетных сайтов визиток

    К чему я все здесь это пишу? Я пытаюсь донести до Вас, что нет Вам смысла учить программирование на какой бы то ни было языке ради самого программирования. Нет смысла Вам учить алгоритмы, структуры, паттерны и т.д. ради их самих.

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

    Если говорить о чисто практических инструментах(функции стандартной библиотеки, фреймворки и т.д.)... Лично я могу считать себя профессионалом в какой бы то ни было технологии, ни когда я прочитал 1-2 книги и/или написал 1,5 задачи оттуда же. С таким уровнем я не могу сказать что я знаю язык/технологию в принципе, просто знаком - да, но я ее не знаю. Считать себя профессионалом я могу после того как решу не менее сотни задач, используя эту технологию и написал не менее 1 млн строк кода, именно написал, а не сгенерировал rake/gii/artisan или чем-то там еще.

    Вам же я желаю не останавливаться, развивайтесь. Мастерство приходит с опытом.

    P.S.: от холиваров на тему 1С прошу всех воздержаться
    Ответ написан
    11 комментариев
  • С какого языка изучать программирования (с нуля)?

    @bromzh
    Drugs-driven development
    Ты ещё не умеешь программировать (и искать в интернете, ведь тут такие вопросы задают минимум по 1 разу в неделю), но уже решил, что питон - это несерьёзный несовременный язык. Видимо по этим причинам он самый популярный язык для обучения в технических вузах США.
    Зачем тебе чужое мнение? Ты вполне самостоятельный!
    Ответ написан
    8 комментариев
  • Какую область прокачать для работы на фрилансе (Графика, Программирование)?

    Jeiwan
    @Jeiwan
    Прокачатьcя во фронтенде - получить ачивку "Front-end develop". Создать портфолио, набраться опыта).
    Двинуться к Back-end (Ruby/Rails).
    Параллельно учиться рисовать и работы выкладывать на стоки.

    Ну вот ты и решил свою проблему. Что ещё нужно? Пробуй, что можешь, и делай, что нравится. Как там у тебя всё сложится — хрен его знает, у бабы Ванги сегодня выходной.
    Ответ написан
    2 комментария
  • Как сделать фильтр из моделей django, поля разные, значения схожие?

    syschel
    @syschel
    freelance/python/django/backend
    Моё виденье.
    Структуру можно сделать двух типов
    1. Всё в одну модель, кроме списков(списки через связи ForeignKey/ManyToManyField/OneToOneField подгружать из других моделей или choices, они задаются администратором сайта и всегда статичны). Пускай даже будет 40 полей у модели.
    2. Одна базовая, где общие данные. И куча типовых, относящихся связями к базовой модели, но имеющие свои уникальные поля. Списки так же как и в первом варианте, выносил в отдельные модели или choices.
    Я бы выбрал второй вариант.

    Поиск. Тут два варианта.
    1. Сфинск или другие независимые поисковые программы работающие с джангой (Solr, Elasticsearch, Whoosh, Xapian).
    2. Делать самой джангой и воевать за логику и ресурсы. То есть весь поиск прописывать руками, всю логику возможных вариантов.
    Но я бы выбрал первый вариант, слишком много будет условий и по сути написание велосипеда. А второй вариант подходит под более "простой" тип поиска.
    Ответ написан
    Комментировать
  • Какой ос пользоваться для написания на java?

    gadfi
    @gadfi
    https://gamega.org
    Какой ос пользоваться для написания на java?

    Оставайся на винде. Серьезно, был бы это Python то linux был бы оправдан, для ruby тоже лучше что то никсовое ) а вот для java по серьезной разницы нет. Все за тебя сделает maven, не трать время зря на изучение ос (хотя чтоб достаточно уютно себя чувствовать под той же ubuntu больше недели времени не займет), потрать его лучше на изучение java
    Ответ написан
    1 комментарий
  • Разница, что лучше/удобнее Django-cms ИЛИ FeinCMS ИЛИ Mezzanine?

    @marazmiki
    Укротитель питонов
    Мне кажется, что "лучше" или "удобнее" — субъективные метрики. И не очень абсолютные. К примеру, меня бесит grappelli (приложение, изменяющее внешний вид админки), а кому-то она наоборот нравится. Mezzanine, насколько я помню, grappelli использует. Мне это покажется дичайшим минусом, а кому-то плюсом.

    Личный опыт: довелось довольно плотно поработать с django-cms и fein. Они, в общем-то работают по одному принципу, хотя и используют разную терминологию (django-cms для расширения функциональности страницы плагины, которые помещаются в плейсхолдеры, а fein — контент-тайпы и области соответственно), суть примерно одна. Хоть и слегка по-разному реализовано.

    Сейчас ключевое отличие djnago-cms и fein в том, что первая, начиная вроде бы с версии 3.х, перешла целиком на фронтэнд-редактирование контента. Админки как таковой нет, вместо неё редирект на страницу с включенным редактированием. А Фейн управляется из админки, как и django-cms ранних версий.

    Для программиста обе cms относительно удобны и легки для разработки и предоставляют интерфейс для написания плагинов (или контент-тайпов, в зависимости от). Но если лезть глубоко под капот, то в django-cms всё гораздо сложнее в плане моделей и отношений. Поэтому очень мудрым шагом со стороны её разработчиков было предоставить "низкоуровневое" апи с функциями вида create_page(), которое на деле создаёт десяток записей в десяти таблицах :-)

    По поводу удобства редактирования контента, опять же субъективно: оба ужасны. Наверное, фейн даже в большей степени. Но при этом он более очевиден. Чего не скажешь о фронтэнд-редактировании django-cms, где вообще без поллитры не разобраться: сначала перевести страницу в режим редактирования, потом переключить непонятный тумблер контент\структура (или что-то такое, сейчас точно не помню), потом выбрать редактируемый плагин... потом не запутаться в кнопках сохранения и публикации, и так далее. Мой коллега придерживается мнения, что показывать такое пользователям просто нельзя.

    Кстати, пользователь легко сможет сломать дерево сайта (вплоть до вызова 500-й вместо захода на любую из страниц), просто активно перетаскивая в админке ноды дерева туда-сюда. Это касается и fein, и django-cms.

    Что до mezzanine. Запомнилось так: использует grappelli, зачем-то есть встроенные магазин и блог, которые сааавсем не на каждом сайте нужны. Плюсов не запомнил, снёс. Хотя сейчас, открыв ради любопытства документацию, вижу что-то про custom content types, так что, вероятно, будет всё то же самое, что и fein/django-cms, но в зелевноватых тонах grappelli. И с магазином :-)
    Ответ написан
    1 комментарий
  • Совет по PHP(freelance)?

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    Зайдите на hh.ru и поищите требования на зарплаты выше 100к для вакансии "Разработчик php" или иной, интересующей Вас с максимальной оплатой. И начинайте эти технологии, фреймворки, системы контроля версий, базы данных учить. Читайте книги, статьи по теме и смотрите видеокурсы. Чтобы закрепить материал попытайтесь делать что-то свое.
    Затем идите и получайте опыт в реальных проектах на реальных рабочих местах. Какие-то наработки и портфолио, код, у Вас уже будет, поэтому устроиться куда-то особых проблем вызвать не должно. По-другому никак. В процессе обучения хорошо бы и проект делать покруче и наставника иметь.

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

    @kvsemenov
    Не могу сказать про Delphi (он до сих пор живёт как дорогущий коммерческий проект), но его Open Source реинкарнация - Lazarus - вполне даже пригодна для многих задач. Поддерживает компиляцию в Win(32/64), Mac (32), Linux (32/64), FreeBSD итд., в том числе с возможностью кросс-компиляции; а также iOS и Android. Я им пользуюсь только для того чтобы быстро собрать редактор БД с какой-нибудь сложной структурой - очень уж быстро всё получается по сравнению с другими средствами разработки.
    Ответ написан
    Комментировать
  • Как настроить mod_wsgi для Apache на Windows XP?

    sim3x
    @sim3x
    Для разработки на джанго не нужен апач python manage runserver
    Для продакшена - не нужен апач и винда
    Ответ написан
    Комментировать
  • Куда податься девушке в IT?

    @MJee
    Разработчик мобильных приложений для Android
    Не придумывайте!
    Я девушка программист, за 8 лет работы ни разу никакой дискриминации не испытывала. На собеседовании иногда спрашивали, почему я выбрала такую "мужскую" профессию, но это единичные случаи и обычно ответ "просто интересно" их целиком устраивал.

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

    Чем вы лучше других?
    Чем вы можете быть нам полезны?
    Почему вы думаете, что справитесь с этой работой?
    Ответ написан
    1 комментарий
  • Подгрузка контента Django?

    Я бы сделал следующим образом

    1) 1-ый вариант
    во вьюхах
    from django.core import serializers
    from .models import MyModel
    
    def my_view(request):
        if request.is_ajax():
            x = request.GET.get('value', 5)
            data = serializers.serialize('json', MyModel.objects.all()[:x] )   #тут по вкусу, можно все объекты, можно частями.
            return HttpResponse(data, content_type='application/json')
        else:
            return render(request, 'template.html')

    2) 2-ой вариант использовать Django-Rest-Framework

    И в шаблонах уже jQuery-Ajax, Angular и.т.п.

    Но я сам ещё совсем новичок в этом деле, поэтому могу ошибаться :)

    Update:
    Я нашёл вот такой вариант:

    $(window).scroll(function() {   
       if($(window).scrollTop() + $(window).height() == $(document).height()) {
           $.ajax({
                type: 'GET',
                url: '{% url 'app:json_view' %}', //Ссылка на вьюху
                dataType: "json",
                data: {'value': 10},  //Здесь можно передать данные в GET запросе, например сколько значений получить 
                success: function(data) {
                    // Ответ приходит в переменную data. Её и рендерим на страницу
                }
            }); 
      }
    });
    Ответ написан
    2 комментария
  • Подгрузка контента Django?

    @kazmiruk
    Джанга тут не при чем. Делаете апи (django-rest-framework можно использовать), а затем яваскриптом отслеживаете скролл на странице. Как только скролл подошел к нижней границе - вызываете апи с запросом на следующую порцию данных. Получив данные отрисовываете их.
    Ответ написан
    4 комментария
  • С чего начинать проектировать приложение?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Предположим, что с будущей функциональностью Вы определились. Тогда Вы точно знаете, кто или что будет поставлять данные, и кто/что будет их потреблять.

    Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), - снизу.

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

    Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.

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

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

    Получите логическую архитектуру. Разбросайте слои по серверам - получите физическую архитектуру.

    А дальше - детально прорабатывайте каждый маленький квадратик. Всё.
    Ответ написан
    2 комментария
  • Какая книга поможет в освоении JS?

    kumaxim
    @kumaxim
    Web-программист
    Репозиторий на GitHub со ссылками на книжки/курсы/подкасты по разным языка/технологиям. Рекомендую добавить его в закладки.

    Список книг именно по JavaScript: en | рус

    От себя могу рекомендовать Вам курсы по JavaScript и JQuery на CodeAcademy. Единственный минус CodeAcademy, на мой взгляд в том, что они ну очень сильно разжёвывают материал, хотя изложен он достаточно легко, местами даже с юмором.
    Ответ написан
    Комментировать
  • Каким образом поменять код django?

    sim3x
    @sim3x
    def __unicode__(self):  # python 2
    def __str__(self):  # python 3


    Так же буду благодарен за хорошую инструкцию отображающихся миниатюр изображений в админке

    stackoverflow.com/questions/1385094/django-admin-a...
    https://google.com/search?q=django+admin+show+images
    Ответ написан
    Комментировать
  • Каким образом поменять код django?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Добавьте в модели:
    def __str__(self):
        return self.title
    Ответ написан
    Комментировать
  • Как получить содержимое pdf?

    angru
    @angru
    Ответ написан
    Комментировать
  • Какую технологию выбрать для асинхронной передачи данных?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Поддержу про торнадо, но еще более рекомендую посмотреть на cyclone.io
    Это торнадо переписанный под twisted, который как нельзя лучше вам подойдет (это я про https://twistedmatrix.com/ ). У меня так система работает, вся обработка делается в twisted, а отдаю через cyclone по ajax (вебсокетов на клиентах, увы у меня нет :-( )
    А технология называется comet. Реализуется в разных вариантах, у которых есть плюсы и минусы. Смысл в том, что браузер тем или иным образом (comet, websocket, ajax, ajaxp, longframe, longpooling и т.д.) подключается к серверу и ждет прихода события от сервера. Само событие может содержать кучу данных, которые обновились.

    Я бы рекомендовал сделать следующим образом. Поставить сервер очередей типа rabbitmq, а через торнадо/cyclone подключаться к очереди через ajax/ajaxp и/или websockets.

    Ну а если просто нужно слушать очереди сообщений (без хитрой обработки на web-сервере), то можно просто обойтись rabbitmq-stomp.

    В принципе, в циклоне есть несколько примеров:
    - https://github.com/fiorix/cyclone/tree/master/demo... - очереди на основе redis
    - https://github.com/fiorix/cyclone/tree/master/demo... - собственно websocket
    - https://github.com/fiorix/cyclone/tree/master/demo... = чистый ajax
    Ответ написан
    Комментировать