Задать вопрос
  • Выделенный сервер работает быстрее vps?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    В плане производительности должно быть так. Но есть ньюансы.
    VPS обычно работает в кластере и при выходе из строя одного из серверов кластера кластер не падает, но падает производительность.
    При физике, если сервер падает, то все дохнет сразу и безвозвратно. Т.е. при переезде вы должны позаботиться о резервных копиях и осознавать риски.
    Ответ написан
    Комментировать
  • Как правильно разбить список на 2 части в шаблонах django?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Это никак не сделать встроенными средствами шаблонизатора и особенно с помощью cycle. Но легко написать для этих целей простой фильтр:

    templatetags/chunkify.py
    from django import template
    
    register = template.Library()
    
    @register.filter(is_safe=True)
    def chunk_list(value, chunk_size=3):
        for i in range(0, len(value), chunk_size):
            yield value[i:i+chunk_size]

    templates/chunks.html
    {% load chunkify %}
    
    {% with item_list|chunk_list:3 as chunks %}
        {% for chunk in chunks %}
        <ul>
            {% for item in chunk %}
            <li>{{ item }}</li>
            {% endfor %}
        </ul>
        {% endfor %}
    {% endwith %}
    Ответ написан
    3 комментария
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Как вы это делаете?! За 17 лет работы в ИТ у меня ни разу не возникало вопроса "Куда двигаться?", только "Где взять времени на освоение всего этого бесконечного изобилия технологий, углублённого изучения уже знакомого и реализацию множества идей?"
    Ответ написан
    4 комментария
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    gobananas
    @gobananas
    finishhim.ru
    пришло понимание, что программирование это не знание языка и фреймворков

    Какой вы для себя ответ определили на вопрос что же такое программирование?

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

    Стартап? Определите какая потребность не закрыта у вас и друзей и пилите его каждый вечер по часу-два.

    Big Data это ведь не самоцель. Вот прошли вы курс допустим. Что вы будете бигдейтить, на каких данных?

    Самое главное ответьте себе на вопрос что вам по-настоящему нравится и двигайтесь в эту сторону.
    Ответ написан
    3 комментария
  • Лёгкая IDE для C# 7.0?

    @vanillathunder
    Кроме visual studio ничего нормального нет. На крайний случай можете использовать текстовый редактор visual studio code.
    Ответ написан
    Комментировать
  • Как расширить обьем оперативной памяти на компьютере до 10 Террабайт (скорость не важна)?

    sim3x
    @sim3x
    Ram 1-2Tb - поставить реально. Дорого, но реально (апд: в коментах указали, что в облаке не так уж и дорого)
    Далее можно задействовать pci порты
    Есть решения на ssd + ram в pci с хорошей скоростью и размерами в 1-2Tb

    Стоимость будет конская - лучше нанять спеца для оптимизации софта под существующие платформы для размазывания задачи по кластеру из дешевых пк с 128Гб рам на борту
    Ответ написан
    3 комментария
  • Делаю сайт адаптивным, но появились пробелы?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    значит где то для блока задана фиксированная высота
    Ответ написан
    1 комментарий
  • C# как сделать массив с меняющимися значениями?

    @FreeBa
    Как то так:
    var array = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    
                Console.WriteLine(string.Join(" ", array));
    
                var last = array.Last();    //берем последний элемент
                array.Remove(last);         //удаляем его
                array.Insert(0, last);      //и добавляем в начало, все элементы сдвигаются и, соответственно, меняют четность позиции
    
                Console.WriteLine(string.Join(" ", array));


    Ну или так:
    var array = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    
                Console.WriteLine(string.Join(" ", array));
    
                for (int i = 0; i < array.Count - 1; i += 2)
                {
                    //Меняем соседние элементы местами
                    array[i] ^= array[i + 1];
                    array[i + 1] ^= array[i];
                    array[i] ^= array[i + 1];
                }
    
                Console.WriteLine(string.Join(" ", array));
    Ответ написан
    Комментировать
  • Что такое Less и Sass?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Лень двигатель прогресса. Хороший пример - принцип DRY - Don't repeat yourself. Я весьма подозреваю что вы стараетесь соблюдать этот принцип когда делаете макеты или чем вы там занимаетесь. Так же я весьма уверен что вы хотя бы пытались чуть автоматизировать рутину своей повседневной работы. Так же у вас могли быть ситуации когда вы переиспользовали какие-то элементы. Мало ли.

    Так вот... CSS это тупая таблица стилей. Селектор и стили, ничего сверх умного тут придумать нельзя. Лет 5-10 назад было довольно модно держать один мегажирный CSS файл на 10К+ строк и радоваться жизни внося все больше изменений и т.д. Соответственно даже если вы соблюдаете всякие правила модульной верстки и все такое, у вас возникает несколько проблем:
    • организация стилей, то есть держать все в одном файле не удобно особенно когда проект длится годами
    • Дублирование стилей и селекторов. По мере развития проекта появляются какие-то снипиты которые можно реюзать. Так же у вас может появиться масса однообразных селекторов отличающихся лишь немного. При модульных подходах вложенности редко имеет место быть но все же имеет. Но не будем забывать что большинство фигачит селекторы просто так. В итоге если мы переместили блок или переименовали класс какого-то блока нужно отредактировать еще массу селекторов.
    • Привязка размеров и параметров к другим стилям, например у вас в стилях задана ширина блока, от нее зависят другие параметры, отступы для других блоков и т.д. Да, в css3 появился calc для этого но это было относительно недавно и только с недавних пор можно почти без опаски использовать эту штуку.
    • Таблицы стилей, как и HTML ориентированы на удобный разбор этого добра машиной, но не человеком. Человек же существо ленивое и как-то вот лень лишний раз скобку поставить или точку с запятой. Просто лень.


    Есть так же хорошее правило, или идея если хотите.... Если код можно сгенерить - его лучше сгенерить. То есть для решения всех выше перечисленных проблем придумали препроцессоры. Они как бы были и раньше всех этих scss/less/stylus но как-то не решали всех проблем и т.д. Что в итоге было предложено (перечисляю в том же порядке что и в списке выше).

    • У CSS есть такая штука как @ import. Но не очень круто импортировать сотню стилей в продакшене. Стоит сделать так что бы все стили были склеены при сборке проекта. Эта идея в итоге развилась и если разработчик использует это дело правильно, можно зайти в любой файл со стилями и увидеть список всего от чего зависят эти стили. Какие стили подключаются и т.д. Причем один файл с зависимостями может быть подключен в нескольких файлах а препроцессор сам разберется как и куда все вставлять сгенерив максимально оптимизированный по структуре файл. А разработчик получил четкую структуру файлов и возможность быстро найти где что и от чего зависит.
    • С селекторами проблему предложили решить наиболее логичным вариантом. Если у нас есть вложенные селекторы, то имеет смысл определять их внутри блока этого селектора. Это существенно упрощает поддержку стилей. Так же для управления снипитами и прочим добавили миксины - эдакие параметризованные или нет функции которые выплевывают шматок CSS. До появления штук вроде autoprefixer это был единственный способ писать поддерживаемые стили, использовать плюшки CSS3 и вообще новые плюшки и не сойти с ума от префиксов. Префиксы это только пример, там могут быть самые разные штуки позволяющие грамотно производить реюз стилей
    • Проблему зависимостей значений стилей друг от друга решили... собственно самым очевидным способом - переменные. Это удобно, легко поддерживать и в умелых руках это мощный инструмент. Нужно поменять базовые цвета - не нужно лазить по 100500 блоков и править значения руками, можно поправить переменные и все будет хорошо.
    • Насколько я помню SCSS/LESS не стремились решить эту проблему. Какие-то решения образовывались сами собой с течением времени. В плане минимализма и выразительности пожалуй сейчас самая крутая штука это stylus.


    Что в итоге произошло. В один прекрасный момент какие-то там рубисты придумали SCSS (они вообще не любят все что не в стиле ruby в плане минимализма и выразительности). Затем чуваки подумали и сказали, SCSS это круто но почему-то они используют синтаксис знакомый именно Ruby разработчикам а не обычные для CSS конструкции. В итоге реализовали LESS, причем его уже реализовали на javascript, что с наличием node.js позволило это все добро еще на одной платформе собирать. А так как под эту платформу и так плодили препроцессоры оно удачно вписалось.

    Далее уже шли какие-то модификации дальнейшие, вроде того же Stylus, где синтаксис упростили просто до нельзя.

    Личное мнение. На сегодняшний день я не вижу смысла использовать чистый CSS хоть на малых хоть на больших проектах. Вот вообще никакого.
    Ответ написан
    3 комментария
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Почему оперативная память вдруг заработала?

    usdglander
    @usdglander
    Yipee-ki-yay
    Жара. Метал подплавился и контакт восстановился. :)
    Шутка, конечно, но дело примерно в этом. Возможно что то другое замкнуло контакт.
    Ответ написан
    1 комментарий
  • Как расширить обьем оперативной памяти на компьютере до 10 Террабайт (скорость не важна)?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Попробуйте принудительно поставить файл подкачки размером в 5-10Тб
    Ответ написан
    8 комментариев
  • Как закрепить версию пакета за проектом?

    @id2669099
    при использовании менеджера пакетов, к примеру, pip, можно выполнить команду "pip freeze" и тогда будет выведены все пакеты, которые установлены, этот вывод можно записать в файл requirements.txt (pip freeze > requirements.txt) и при разворачивании проекта выполнить "pip install -r requirements.txt" и тогда установятся требуемые версии пакетов
    Ответ написан
    Комментировать
  • Retina споры с дизайнером? "DPI влияет на размер текста"?

    @GreatRash
    16px везде будут равны 16px.
    Если дизайнер упоролся, то сделайте ему тестовую страницу и пусть отстанет от вас уже.
    Ответ написан
    5 комментариев
  • Как точно поместить картинку в другое изображение?

    Lumore
    @Lumore
    Front-end developer
    Ответ написан
    Комментировать
  • Будет работать ноутбук с ddr3 большей частотой шины, чем предусмотрено?

    @davidnum95
    Главное чтобы не было памяти больше, чем это предусмотрено в ноуте. На данном ноуте как я понял максимум 8 ГБ
    Ответ написан
    2 комментария
  • Django вывод срез с помощю переменной order_by('?')[:n]?

    Gasoid
    @Gasoid
    def example_view(request, n):
        answers = Answer.objects.all().order_by('?')[:n]
        context = {'answers': answers}
        return render(request, 'template.html', context)


    Нужно учесть order_by('?') очень медленный запрос
    Ответ написан
    5 комментариев
  • Паралельно изучение двух технологий программирования?

    Morpheus_God
    @Morpheus_God
    Вставлю свои пять копеек. Зачем вам C# если по факту у вас есть какая то база для фронт энда. Развивайте ее.
    Конечно чем больше знаний тем лучше. Но раз вы уже что то имеете с того, что знаете, то и развивайте дальше. Углубляйте знания. В качестве портфолио могут служить выполненные вами работы. Я правда правил на фрилансе не знаю, могут ли работы выполненные там, быть вашим портфолио.
    Ответ написан
    Комментировать
  • Паралельно изучение двух технологий программирования?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    на работе платят 100$

    а зачем Вы туда ходите?

    фрилансах максимум подымал до 400$

    если не ходить на работу за 100$, хотя какая это работа, это кружок рабов. Так вот больше будет время на фриланс и больше будет денег.

    Мне работу нормальную не предлагают

    ее ни кому не предлагают. Ее в объявлениях размещают. Например тут: https://moikrug.ru


    Из того что я знаю
    - HTML CSS
    - Boostrap
    - PHP
    - WordPress

    добавить js и можно верстальщиком работать. WP - стрёмная штука. Не сам wp. Речь о том, что сделать сайт на wp может каждый школьник и сисАдмин, и берут за это смешные деньги, как следствие сайты на wp стоят дешевле, чем могли бы. Так что надо изучать то, что не под силу 12-ти летним.

    Вообще мне посоветовали выучить нормальный язык JAVA или C#

    С Вашим стеком, есть смысл довести до ума то, что Вы уже знаете. Это быстрее, чем изучить JAVA или C#. Вы же уже зарабатываете на фрилансе, осталось только увеличить скил, добавить в стек полезных и современных технологий и фриланс даст больше, чем сейчас. Уверен, что в ПриватБанке Вы не заработает столько сколько на фрилансе. А вырасти там в тим лида сможете не скоро. У Вас уже есть портфолио и профессия, хоть и на низком уровне, но есть. Не слушайте олигофренов. Тут еще не понятно будет ли завтра ПриватБанк, в каком виде. У них же it это отдельная компания и насколько я знаю она не принадлежит Привату. Там все очень весело. Если зп дадут в 1000$ - смысл есть, если те же 400 -смысл? А фриланс это стабильность, правда работать надо много.
    Ответ написан
    5 комментариев