• Разница, что лучше/удобнее 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 комментарий
  • Как вы начинаете вёрстку сайта?

    torrie
    @torrie
    Всё знаю, всё умею
    В первую очередь делаю сброс css-стилей.
    Затем делаю вёрстку общих блоков - просто структура из div'ов с нужными ширинами, высотами согласно макету, залитых разными цветами. Стараюсь все div'ы(когда что-то в строчку) делать inline-block'ами. Получается цветная такая структура будущего сайта. Каркас готов.
    NDrl9VkCyDvemP.jpg

    Начинаю углубляться в каждый блок - располагать в нём нужные элементы. В зависимости от сложности их расположения делаю какие-то блоки position:relative, но чаще всего всё упирается просто в отступы.
    Ответ написан
    3 комментария
  • Как вы начинаете вёрстку сайта?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    1) Захожу сюда codepen.io
    2) Жмякаю New Pen
    3) Создается новый пен где уже все настроено под меня (SASS/отступы/лайвапдейт и так далее).
    4) Верстаю
    5) ...
    6) PROFIT!
    Если верстка многостраничная, то один пен делаю глобальным (SASS переменные/общий JS код) и линкую его в другие пены. + можно все это дело форкать до потери пульса, и показывать ссылки заказчику (ссылки все приватные, если имеется PRO аккаунт). Особенно удобно, когда имеется несколько вариантов анимации, то просто делаю 2-3 форка и даю ссылки, а человек наглядно сравнивает все.
    Ответ написан
    15 комментариев
  • Как вы начинаете вёрстку сайта?

    dunmaksim
    @dunmaksim
    Технический писатель
    1. Создаю каталог для проекта
    2. Инициализирую Bower
    3. Устанавливаю нужные пакеты, например, Twitter Bootstrap, Angular, jQuery и т.д.
    4. Ставлю Grunt, плагины для него и т.д.
    5. Запускаю EMACS и создаю index.html
    6. С помощью Emmet создаю шаблон, который уже начинаю заполнять.
    7. В каталоге src создаю папки less, js и т.д.
    8. Попутно пишу задачи для Grunt
    9. Если в выбранном фреймворке не хватает какого-либо класса для стилизации элемента, сначала описываю стили прямо в шаблоне, в свойстве style. Затем при необходимости выношу их оттуда в LESS в виде одного или нескольких классов.
    10. ??????????
    11. PROFIT!!!
    Ответ написан
    15 комментариев
  • Почему все хотят django?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    обобщив все вышесказанное, обобщив аналитику интернета, можно сказать: дажнго просто круче, поэтому его все и хотят... остальные просто идут в догонку, но дажнго впереди!
    Ответ написан
    Комментировать
  • Какой посоветуете адаптивный слайдер для сайта с вставкой видео на всю ширину?

    sergski
    @sergski
    web-developer
    owlgraphic.com/owlcarousel — адаптивный, любой контент, тач, много пользовательских возможностей.
    tympanus.net/codrops/2012/09/19/fullscreen-video-s... — тоже интересно)
    Ответ написан
    Комментировать
  • Обязательно-ли полностью соблюдать гайды в дизайне мобильных приложений iOS?

    kape
    @kape
    UI/UX
    Вы можете сделать все что угодно, но главное придерживаться рекомендуемых размеров шрифта (не меньше 11pt) , области нажатия кнопок и размеры Navigation Bar и Tab Bar.
    10d744bcc0bb4ba59cf398c571716a98.jpg668ab4851c6c4773831a3aa7f019d7db.jpg99856a8a0f2d4579b88af9423a19123e.png
    Ответ написан
    3 комментария
  • Какие backend технологии сейчас популярны?

    @raiboon
    Go, erlang
    Ответ написан
    Комментировать
  • Что можно использовать в качестве блогосоциального движка а-ля Habrahabr, LiveStreet на python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как раз сейчас разбираюсь с mezzanine cms (оно на django). Тоже встал вопрос небольшой социальщины. Вот здесь туториал как повторить reddit на mezzanine - blog.jupo.org/2013/04/30/building-social-apps-with...
    Надеюсь, будет полезно.
    Ответ написан
    Комментировать
  • Без опыта во фриланс, руби?

    @UIRobot
    Максим все можно! Да будет не просто, но вы же не спрашиваете будет ли это просто, вы спрашиваете - реально ли, так вот - очень даже реально.

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

    iximiuz
    @iximiuz
    Python или JS. А PHP ни в коем случае, как стартовый язык. Он дает слишком искаженное понимание бекграунда веб-разработки из-за особенностей работы интерпретатора (изолирование окружение скрипта, reset интерпретатора между запросами). При этом Python, JS, Ruby и скорее всего Java, хотя на последней у меня нет опыта, в плане веб-разработки выглядят очень похожими. Общие принципы построения и запуска приложений, многопоточность, асинхронность (как возможность). В PHP ничего этого нет, там все выглядит куда более линейным и упрощенным. Пересесть с Python или Ruby на PHP (при необходимости!) будет элементарной задачей, а вот обратное - не верно, слишком много новых концепций нужно будет освоить.

    И никаких фреймворков в начале обучения! Программист на Django звучит также ужасно, как программист на jQuery. Это как клеймо. Программист - это прежде всего понимание общих принципов разработки, а уже потом языки, фреймворки и пр. Так что прежде всего необходимо разобраться с wsgi. Написать пару своих скриптов, обрабатывающих запросы. Проверить, как работает эта кухня. Потом можно начать использовать flask.

    P.S. Доп. плюсы Python, JS и пр. - область их использования не ограничена вебом. Возможно в будущем вы будете этому рады, когда решите вместо сайтов программировать боевых роботов или попробовать себя в машинном обучении или еще где-нибудь.
    Ответ написан
    4 комментария
  • Почему на Java не разрабатывают операционные системы?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Всеё банально просто. Java компилируется в байткод, а не в ассемблер. Байткод интерпретируется виртуальной машиной JVM, которая при необходимости делает компиляцию в нативный код процессора (технология JIT - Just-in-time compilation).
    Другими словами, для того чтобы получить нативный код нужно запустить байткод внутри JVM. Именно поэтому никто не пришет на java драйверов и прочей низкоуровневой хрени. С другой стороны, чтобы эту хрень писать на java, нужно чтобы было одно из двух условий:
    1) либо процессор напрямую поддерживал спецификацию JVM (со всем барахлом типа GC, memory allocation^ resource management)
    2) либо операционная система поддрерживала в ядре спецификацию JVM (с тем же самым барахлом)

    Ну и не нужно говорить, что язык барахло, если на нем нельзя писать драйверы и секции для MMU. Есть еще десятка два языков, которые это не поддерживают, например все X.NET или erlang^ python и т.д.
    Java для прикладного программирования, а C/C++/D/ASM и прочее - для машинного.
    Ответ написан
    Комментировать
  • Какое ваше мнение о Drupal?

    kissarat
    @kissarat
    Node.js
    Не видел ничего более простого и мощного как Drupal. Это - любовь с первого взгляда.
    Перед знакомством с Drupal я не очень охотно использовал всякие "надстройки над апи" т.е. фреймворки и библиотеки, в частности потому что не позволяли писать меньше кода (а, следовательно, делать отладку более быстрой), а лишь структурировали его, делали его более декларативным. Да и вообще, я не хотел иметь что-то общее с PHP)))
    Но то, что позволяет Drupal - невообразимо. Единственное ограничения, которое накладываться на программиста - это структура БД и это при том, что можно полностью, весьма гибко, использовать существующую структуру, так и создавать свои таблицы/вюхи, свьязивая их с уже существующими сущностями и получая тоже самое если бы свои структуры не использовались, т.е. возможность использовать скачанные модули для "совсем собственного" функционалу.
    Не знаю можно ли назвать недостатком процедурный стиль. Т.е. пока я вижу преимущество простоты, которое, к тому же, не накладывает ограничений на использование ООП. Но с появлением Drupal 8 мне видеться раскол такой же, который был когда появился Python 3. Т.е. сейчас существует два независимы, хоть и совместимы языка - Python 2.* и Python 3.*

    Есть и существенные недостатки - мизерное количество документации. Но вообщем то разобраться что делает функция можно и по ее исходному коду, что совсем не является проблемой, потому что он делался в лучших традициях UNIX) Есть отсюда и жесткое следствия - Drupal не для дибилов. Да и настройки администратора весьма не просты, поэтому для конечного пользователя лучше создавать "страницу со всем необходимым")
    Ответ написан
    Комментировать
  • Стоит ли давать Haskell школьнику в качестве первого языка?

    iAmDanny
    @iAmDanny
    Я сам, собственно, десятиклассник, и может быть, моё мнение будет полезно, как взгляд с той стороны, над которой Вы хотите провести эксперимент)
    Вообще, я сам недавно начал учить Haskell, и он мне нравится. Ещё мне нравится пробовать использовать функциональные плюшки в Python. Вполне возможно, что и Вашему девятикласснику понравится функциональщина. Но, честно говоря, мне кажется, что в качестве первого языка Haskell будет сложноват. Лучше начать с какого-нибудь Pascal (так как на его примере отлично видно, что представляют из себя различные типы данных), потом, например Python (и тут уже можно даватьь потихоньку функциональные плюшки питона), и потом, наконец, если интерес не пропадёт, можно дать Haskell. Мне кажется, так проще будет понять его.
    Ответ написан
    Комментировать
  • Как перейти на linux front-end разработчику?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Очень хорошее начало, давайте определимся.
    1) Нужен дистрибутив, который достаточно легко ставится, имеет большое комьюнити, достаточную документацию
    2) Дистибутив должен обладать как клиентским вариантом, так и серверным
    3) Дистрибутив должен быть известен и широко распространен
    4) Иметь все необходимое для разработки
    5) Поддерживаться производителями и разработчиками стороннего ПО (а есть и такие)!

    По хорошему, данным целям отвечают всего два дистрибутива и их клоны - RedHat и Debian. Дистирубивы на первый взгляд достаточно сильно различаются настройками и установкой софта, но внутри белее или менее похожи.

    Из Debian и его клонов рекомендую Ubuntu, именно для неё сейчас самая лучшая документация (и на русском), поддержка и комьюнити, а сам дистрибутив включает в себя все свеженькое и новенькое в плане поддержки железа и новых версий софта.
    - www.ubuntu.com

    Из RedHat и его клонов настоятельно рекомендую CentOS как клиент/серверную платформу - документация, поддержка железа комьюнити.
    - www.centos.org

    Оба дистрибутива бесплатные, более чем полностью.

    PS. Наверное здесь сейчас будут предлагать кучу экзотики - не ведитесь на это! Учиться ездить нужно на простых автомобилях, а не на тюнингованных. Да и эти дистрибутивы (RedHat/Debian) именно мейнстирм, в которых все вылизано и просто работает.
    Ответ написан
    3 комментария
  • Что лучше для создания тематической социальной сети?

    @faost
    Относительно быстро собрать и, собственно, проверить, кому их этих 3кк пользователей нужна еще одна соц. сеть лучшим выбором будет Drupal 7.

    Самый знаменитый пример соцсети на друпале: gosbook.ru

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

    zBit
    @zBit
    Full stack web developer
    Для всех обязателен сейчас git + git-flow, базовое администрирование сервака.
    А вы вообще на каких языках пишете, кроме 1С?
    шутка... а может и не шутка ;)
    Хороший бекенд программист не должен упоминать, что работает с 1С.
    Ответ написан
    Комментировать
  • В какой последовательности изучать(Java Junior Developer)?

    @qizer
    изучай дальше java core, а так же параллельно лучше ознакамливаться с технологиями, с которыми придётся взаимодействовать раньше. то есть для работы с базой надо jdbc и знания по самой базе нужны, без этого никак. IDE - изучается в процессе работы (эклипс или идея, но я больше склонен к идее).
    тут уже можно начинать изучать контроль версий (свн легче для восприятия, чем гит, хотя кому как. но гит, имхо, более гибкий)
    после начинай постепенно веб, MVC, хибер со спрингом можно взять и навалять небольшое приложение (тут тебе уже помогут основы самого языка и базы). для сборки легче использовать мавен, на минимальном уровне (что бы только собирал, хотя бы). после поднимай взаимодействие на веб морде.
    Ответ написан
    4 комментария
  • Как пользоваться virtualenv в IDE PyCharm?

    nextel
    @nextel
    ненавижу javascript
    Здравствуйте, по шагам, открываем ИДЕ, жмем на ключь рожковый с шестенеркной, пояляется то что на кратинке
    6f1cb45135024d50b89ef3e3f7c2783b.png
    далее жмем Configure interpreters
    далее все просто появляется вот такое окно
    92ba6c39c4ce4a938ac641dfd237d865.png
    оттуда можно сразу постаивть сетуптулс, так же создать окружение. Для создания окружения он берет либо сторонний венв если ветка 2.х либо венв версии интерпритатора.
    с этого окна ксатти можно в вирт окружение поставить пакеты из пайпай
    Ответ написан
    Комментировать
  • В чем недостатки Java для веб-разработки?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Забавно читать ответы.

    Когда читал Философию Java, автор высоко оценивал python. И не с проста. Как и Java, у Python свои плюсы.

    По производительности что Python, то и Java примерно равны. Python имеет "нативный" byte-code, если так можно выразиться (не смотря на то, что его портировали и на CIL, и на JVM, и на сам Python). Так что здесь паритет.

    По удобству зависит от проекта и задач. Если цель - сделать как можно быстрее, то Python явно удобнее. Ибо можно набросать прототип в интерактиве, немного подправить его и вауля - проект "готов". Если цель надёжность - наш выбор Java: статическая типизация и компилируемость выявляет сотни ошибок ещё до запуска приложения.

    Стоит заметить, что вэб в Java развит очень сильно. Причём настолько, что он просочился до клиентских вэб-приложений (и умер лет 10 назад), хотя backend всё равно в разы сильнее. Что это значит? Это значит, что для Java есть множество отличных фреймворков, ориентированных на web. Каноничная реализация ООП позволяет использовать паттерны банды четырёх "из коробки". Интерфейсы, если ими уметь пользоваться, решают. Python же не создавался как web-движок, а создавался просто как удобный инструмент для быстрого программирования как прикладных, так и теоретических задач. В этом помогает всё - и сахарный синтаксис, и крутейшие итераторы, и пресловутый интерактивный режим, и невероятные slice'ы, и неплохие лямбды, и красивый код. RoR, если говорить о языке фреймворка, так же сильно похож на Python, но магии в нём много больше. Но Python-приложения тяжко отлаживать. Можно пару лет вести баг, который окажется из-за того, что мы не проверили возможность преобразования объекта к строке в аргументах. Динамическая типизация, причём очень хардовая из всех, наверное, это и дар и проклятие.

    Собственно, если вопрос стоит "стоит ли изучать", то да, конечно стоит. Как и Java, Python - мультипарадигмальный язык, и те практики, которые Вы изучите в Python несомненно улучшат код в Java.
    Ответ написан
    7 комментариев