• Зачем используют Django и Python, разве не удобнее сразу все сделать через Node.js и javascript фреймворки?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Бекенд - это не язык. Это понимание соответствующих технологий работы с базами данных, кешированием, работы со структурами данных, протоколами, технологиями, алгоритмами, построением архитектуры и связыванием с внешними сервисами и прочее...
    А поскольку это охватывает очень большой пласт проблем - и произошла специализация.

    А Python разработчики имеют дело в основном только с бэкенд - и понятия про фронтенд у них будут на уровне dummy html, css, bootstrap.

    Угу... При таком подходе - с чего вы взяли тогда что у фронта будут достаточные знания о работе бекенда? Раз по-вашему бекендер только в dummy html может, - а фронтендер сразу с ходу сможет оптимизированные запросы к БД к примеру писать? )))) Если ваш фронтендер настолько крут - то в принципе незнание языка не помеха, поскольку язык - только инструмент.
    Ответ написан
    3 комментария
  • Php как правильно перевести дату?

    Adamos
    @Adamos
    $duration = new DateInterval('PT24H0M0S');
    Дальше сам.
    Ответ написан
    1 комментарий
  • Язык программирования D. Почему отличный язык остался невостребованным?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Представьте, что вам нужно изучить иностранный язык и от выбора языка зависит сколько людей в мире вы будет понимать, какое количество текстов вы сможете прочитать, сколько вакансий вам будет доступно и какого размера зарплаты вам светят. Что выберите - английский или венгерский? Так же у языка программирования. Пока на нём нет вакансий, никто не хочет его учить, а пока никто не хочет его учить, на нём нет вакансий. Вырваться из замкнутого круга можно только двумя путями - либо язык предлагает суперконкурентное преимущество программисту, либо ему выдаёт кредит доверия гигантская корпорация. Очевидно. у D не нашлось ни того, ни другого.
    Ответ написан
    24 комментария
  • «Новый» подход к рекурсии?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нет, подход не «новый».

    Автор, дам советы по изложению больших текстов (не литературных, а по делу).
    • Название не должно содержать интригу, а быть максимально понятным.
    • В первом абзаце должно быть вступление, которое ещё детальнее раскрывает тему и объясняет, что будет дальше (но не частично, а полностью). Не нужно начинать издалека. Это просто обобщение, абстрактный уровень того, что будет дальше. То есть нужно начать с главного, с объяснения сути.
    • В последнем абзаце примерно то же самое, что и в первом, то есть тоже обобщение, только с позиции завершения (с позиции выводов).
    • И с учётом специфики этого ресурса, среднюю часть лучше вообще загнать под спойлер, если там больше 2 абзацев. Большие статьи лучше вообще в другом месте публиковать, но порядок изложения тот же нужен будет.
    Ответ написан
    2 комментария
  • Как работают сессий в laravel?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    в сессии нет ничего магического.
    это всего лишь кука в браузере и хранилище на сервере, где по ключу из сессии ищется массив с информацией.
    вот и всё.
    реализовать такое руками - дело на 5 минут.
    что Лара и делает.
    session() лезет в куки и берет оттуда ключ. по этому ключу лезет в хранилище (оно может быть любое - база, редис, и т.п.), достаёт из него массив, и из массива достаёт 'key'
    всё просто

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

    @dimuska139
    Backend developer
    Важна производительность, поэтому и стал вопрос о переходе от PHP/Laravel

    Тут вообще нет связи. Узким горлышком в таких проектах является не язык, на котором приложение написано, а база данных. Если медленно выполняются запросы, то хоть на ассемблере бэкенд напиши - быстрее сервер отвечать не будет. Ну может пару миллисекунд выиграете, но на фоне времени выполнения запроса в БД и сетевых издержек это смешные цифры - даже не заметите разницу. А если речь идёт о Django, то это вообще не про производительность, потому что этот фреймворк довольно тяжёлый сам по себе, да и Python - это далеко не самый производительный язык даже среди скриптовых.

    Если речь идёт про большие нагрузки, то тоже язык тут не особо при делах, потому что обеспечиваются они масштабированием, кешированием и оптимизацией запросов к БД. Язык приложения тут вообще не при чём - разве что памяти какой-то больше жрёт, какой-то меньше. 200к в сутки - это в среднем всего лишь 2-3 запроса в секунду - то есть вообще ни о чём. Понятно, что распределение посещаемости вряд ли непрерывное равномерное, но тем не менее 200к даже если за один час - это всего лишь 140 запросов в секунду. С такой нагрузкой справится любой современный язык и фреймворк даже без масштабирования, кстати.
    Ответ написан
    1 комментарий
  • Как в BASH работают логические операторы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Однако, возникает вопрос - а как именно BASH преобразовывает результат выполнения определённой команды в булевое значение?

    Он это не делает. Он проверяет код возврата команды, который согласно архитектуре линукс - может иметь значение от 0 до 255 (байт)
    Просто значение 0 считается true, любое другое значение считается false

    На код ошибки это не похоже. Так как успешное выполнение команды возвращает 0. Что полностью противоречит алгебре логики.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как всегда, в заголовке "Как в работают логические операторы?", а на самом деле вопрос "почему код ошибки 0 интерпретируется как true". "Где логика, где разум?" :)

    В то время как озвученный вопрос и на самом деле интересный.
    Так работают логические операторы не только в баше. В РНР точно так же можно написать
    true /*false*/ and print "Success" or print "Failed";
    и получать тот же самый результат.
    Суть тут в том, что логические операторы делаются "ленивыми". Они не вычисляют тот операнд, который не влияет на конечный результат.
    Соответственно:
    • если операция вернула true, то мы должны выполнить тот операнд, который стоит после and, потому что иначе не сможем получить общий результат операции and. который будет true только если оба операнда вернули true
    • если операция вернула true, то нет смысла выполнять тот операнд, который стоит после or, поскольку его результат ни на что не повлияет - итоговый результат в любом случае будет true, поскольку для or важно чтобы истинным был только один результат. получаем "Success"
    • если операция вернула false, то нам не нужно выполнять тот операнд, который стоит после and, потому что в любом случае результатом будет false
    • если операция вернула false, то мы должны выполнить тот операнд, который стоит после or, поскольку он будет определяющим для всего выражения. получаем "Failed"
    Ответ написан
    Комментировать
  • Как бороться со стрессом на работе?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Мозг каждый день кипит так же, как в первый день. Шаг влево шаг вправо, и вот, я уже ничего не знаю и ничего не умею... ощущение, что на работе я как будто не прогрессирую, а наоборот деградирую...

    У меня такое было, когда я только перешел во фронтенд и пытался держать слишком много деталей о языках и инструментах в голове. Со временем понял, что это не имеет смысла - все меняется быстрее, чем я запоминаю. Перешел от мысли "я использую инструменты" к мысли "я делаю штуки" и сразу полегчало, стал держать в голове только общие идеи о том, как что-то делается, или что вообще бывает в какой-то области, а конкретные инструкции по применению отдельных инструментов изучаю по ходу дела. Изменил фокус своего самообразования, если это можно так назвать. В результате все препроцессоры слились в один, новые библиотеки становятся все менее сложными в освоении, поскольку идеи везде плюс-минус одинаковые и.т.д. Решения стало принимать гораздо проще. И аргументировать тоже. Иногда складывается такое впечатление, что у нас в отрасли совсем ничего не появляется нового уже лет пять, а то и больше. Да, я забываю как использовать флексы, путаю call() и apply(), гуглю свои же ответы на тостере, но это не важно. Голова занята решением проблем, в ней теперь нет никакой второстепенной информации и это очень здорово. Статьи писать тоже полезно оказалось - написал, "поставил на полочку", и забыл. А если будет нужно - можно достать и посмотреть. Таким образом вот эта вся фигня с закипанием мозгов практически ушла.
    Ответ написан
    1 комментарий
  • Как найти удаленную работу системным администратором если нет опыта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Для начала, я прочитал не только вопрос но и твои комментарии к другим ответам, и поэтому да, у тебя есть проблемы с оценкой и себя и собственных знаний и понимания что ты хочешь получить.

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

    Как в наших реалях найти работу сис админа.

    Все просто - ищешь вакансии, трудоустраиваешься.
    Если не выходит - значит мало знаний или твой стек не подошел на эту позицию (но ты же заранее почитал требования в вакансии?)
    В разных компаниях админы делают разные вещи.
    В какой-то маленькой компании это просто заказать в интернет-магазине новое железо, подождать пока бухгалтерия проплатит, получить железки, собрать (если купил не собранный), поставить софт, добавить в сеть и периодически менять клавы, мышки, подключать патчкордами девайсы.
    В другой к этому может добавиться еще и настройка единственного роутера в организации.
    Но с такими вещами можно справиться и своими силами - продвинутые пользователи есть и среди бухгалтеров и среди менеджеров и других сотрудников. У них есть дети, друзья, племянники из айтишников, а множество магазинов предоставляют услугу сборки и установки OEM винды сразу, только в розетку включить и все.
    Поэтому зачастую начинающий сисадмин на кусочек ставки вообще не нужен - маленькие компании экономят на всем, и на сотрудниках в том числе.

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

    Есть огромное желание развиваться в данном направление.Опыт работы системным администратором нет.

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

    Но есть примерное понимание задач поставленных системным администратором следить за всеми ресурсами, настраивать все таким образом чтоб была минимальная отказоустойчивость всех ресурсов.

    Это очень общие слова. Вот мы понятия не имеем, насколько у тебя хорошее понимание и задач и насколько у тебя вообще есть навыки работы с софтом.

    Есть опыт своего игрового сервера на esxi я не про vps а полноценный сервер.

    Этой фразой ты противоречишь сам себе. Чем VPS не полноценный сервер - непонятно - сейчас на VPS навреное живет почти все.
    Опять же игровые сервера бывают разные.
    Например у меня был опыт нескольких игровых серверов. И опыт работы с ними можно сравнить с весьма неслабым опытом и разработки и поддержки в коммерческой организации.
    А можно было просто поставить майнкрафт на домашнем компе без виртуалки - и тоже "опыт игрового сервера", при этом практически ноль технического.
    То есть твоя формулировка ну ничего не несет (ну разве что ты создавал виртуалку на esxi, но ведь это может быть и create-next-done по инструкции в инете)

    Так же знаю что нужно знать сетевые стеки tcp/ip, osi в этом не сильно силён но есть понимание настройки домашний сети.

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

    Так же есть опыт в сборке железа. И работы с nas synology думаю на определенной фирме не стоит заострять внимание так как примерно все они работают одинаково. Но в чем же спросить проблема?

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

    Все актуальные вакансии требуются с опытом от 2-3 лет.

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

    Ситуация в мире сильно развилась за последние 20 лет. Если 20 лет назад просто поставить винду для обычного пользователя был сложный квест, то сейчас практически любая ОС ставится легко (next-next-done).
    Не нужно компилировать софт под Линукс, не нужно ставить все драйвера руками под Windows 95 с постоянными синими экранами. Очень, очень много вещей сейчас user-friendly по сравнению с прошлым.
    Поэтому недосисадмин-эникейщик - крайне редкий вид.

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

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

    Конечно составлять sql запросы я не умею но понимание что такое БД тоже есть. Перечислять все свои знания либо понимание каких либо вещей не вижу смысла так как хочу услышать совета а не оставить здесь своё резюме))

    Ну совет только один - повышай квалификацию, ищи дальше. Нет волшебной палочки.
    Те же самые sql запросы - это настолько простая вещь, что простейшие sql запросы учат набирать в любом вузе. Как человек, считающий себя начинающим сисадмином не умеет? Нонсенс.
    Понимание что такое БД - ну для этого достаточно прочитать 1 абзац в википедии. От сисадмина требуется хотя бы навыки резервного копирования, восстановления, простого траблшутинга.

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

    Суть в практических знаниях.
    2-3 года коммерческого опыта, это в первую очередь показатель, что ты наконец чему-то научился полезному для работы на позиции сисадмина.
    В современном ИТ мире существует уже не просто абстрактный "компьютерщик", а множество профессий, которые уже и не особо друг с другом сочетаются.
    Поэтому оценить что именно учить, без опыта работы - сложно.
    Зато поработав в крупной организации со развитой инфраструктурой, даже не занимаясь техническими задачами, можно примерно понять что сделано, какими инструментами и главное зачем.

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

    Именно поэтому и требуют опыт, как самый простой способ подтвердить знания еще до собеседования.

    Что можете посоветовать в данной ситуации

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

    а забыл упомянуть что есть так же оыпт работы с Linux и ssh на базавом уровне.

    Что значат эти слова?
    Для меня они обозначают, что ты очень плохо знаешь Linux и ssh, потому что... ну вот банально, давай спрошу про ssh. Как используется ssh ключ хостов? Поднимал обратный проброс портов через ssh?
    Или подожди, я конечно догадываюсь, что ты перепутал слова и хотел сказать Linux и shell.
    Но вот именно такие оговорки и подразумевают, что знания у тебя скорее всего недостаточны даже для работы стажером.

    P.s думал выбрать направление devops но там все намного сложней нужен хороший опыт сис админа пока изучаю docker но уже научился git)

    В DevOps вообще пока не лезь.
    DevOps это уже путь ИЗ сисадмина или ИЗ разработчика или ИЗ тестировщика. Но первой профессией DevOps - это звучит бредово. DevOps в проекте нужен тогда, когда проект уже сложный. Настолько сложный, что нужен отдельный человек со специфическим набором навыков. DevOps джуниор это зачастую мид или даже сеньор в другой области.

    Научился в git - опять таки слова, слова... Как ты им пользуешься? Есть что-то на гитхабе или в локальной репе? Или ты просто почитал что-то, попробовал что-то но даже не нашел как применить git в своих собственных повседневных задачах?

    В общем как-то так. Серьезнее и шире смотри на вещи и объективнее оценивай свои знания. От того, как ты формулируешь свои мысли - и идет отношение к тебе и твоим вопросам.
    Ответ написан
    5 комментариев
  • Стоит ли того, чтобы поднять IP телефонию на Linux MikoPBX (Askozia)?

    Keffer
    @Keffer
    ICANN
    В упомянутом продукте базовая поставка да, из коробки бесплатно. Там оплата идет за разные модули интеграции с разными ИС. В частности для АРМ разных, 1с и прочего. А для але-але, войсмайла и автоответчика-IVR вполне годная штука.
    Ответ написан
    1 комментарий
  • Как в http-заголовках добавить один байт для выравнивания?

    HTTP - это текстовый протокол. Никаких дополнительных байтов для выравнивания не нужно.
    Если хотите выровнять в оперативной памяти, то просто добавьте нужное количество \0 в конец тела
    Ответ написан
    Комментировать
  • Как стать разработчиком? Есть ли вузы связанные с разработкой?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Разработчиком можно стать и без ВУЗа. А можно ВУЗ закончить, но не стать.
    Ответ написан
    Комментировать
  • Почему разработчики на Java более востребованы, чем разработчики на C#?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    3. Платят больше не джавистам, а специалистам

    2. Java на текущий момент более популярный инструмент, чем C#. Думаю это так и останется в ближайшие лет 5, что будет лет через 10 - неизвестно. C# более заточен на Microsoft инфраструктуру, сервисы, менталитет. Он проприетарный. Java вроде как чуть более свободна, есть большое комьюнити которое может влиять. Правда после покупки Oracle немного подзакрутили гайки, а MS сейчас наоборот весь такой летит в опенсорс. Посмотрим.

    1. Какая разница, у каждого могут быть свои личные причины.
    Ответ написан
    1 комментарий
  • Экранирование символов при отправке формы POST php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это какая-то чушь. Сам РНР ничего не экранирует.
    И никаких "универсальных" способов экранирования нет. Про 7.3 и минус тоже какая-то глупость.

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

    https://qna.habr.com/feedback -> Гениальная идея.
    Но никто ничего делать не будет, к сожалению, даже если она действительно гениальная.

    Я хотел использовать этот раздел в качестве своего рода закладок, чтобы класть канонические ответы на самые часто задаваемые вопросы. Но быстро упёрся в это нелепое ограничение, потому что часто встречающихся проблем в программировании чуть больше чем пять.
    Может, это не ограничение нелепое, а просто нужен механизм закладок? Этот блок выводится на странице с основной информацией и там ограничение вполне оправдано, поскольку это, по сути, виджеты и они не должны превращаться в простыню.
    Я против идеи ничего не имею, но формат претензии мне кажется странным. Зато сложность вопроса указана корректно - пользователям сервиса и вправду будет трудно на него ответить.
    Ответ написан
    8 комментариев
  • 155306d8-390a-46eb-996b-bf38c7ceb609 - это хеш какого вида?

    Это не хеш.
    Это GUID или UUID
    Ответ написан
    Комментировать
  • Какой самый быстрый ЯП для автоматизации работы в браузере?

    Если я правильно понял, то вам нужна браузерная автоматизация на базе selenium или типа того.

    Вы готовы потратить в 2-3 раза больше времени на разработку, чтобы получить двухкратное ускорение кода, выполнение которого занимает 5% времени?)

    Если да, то C++.

    Если нет, то JS, Python, Java, C# дадут +/- одинаковый результат
    Ответ написан
    5 комментариев
  • Что наследуется в ООП? Как работает наследование?

    Adamos
    @Adamos
    Publlic / protected / private - это архитектура. Компьютеру они на хрен не нужны, они ограничивают программиста.
    И уж если программист считает, что метод должен быть публичным - значит, любой наследник должен его реализовывать. Если приватным - значит, нечего в него лезть наследникам. Если защищенный - значит, только этот класс и его наследники о том, что он существует, и должны знать.

    А если у вас сын утки плавает, как утка, но молчит, как рыба - это не он урод, а вы с планированием классов обосрались. Нет, не тот парень, от чьих классов вы наследуетесь, а именно вы. И те парни, которым надо будет поддерживать ваш код (если они знают не только о принципе Лисков, но и где вы живете) смогут очень доходчиво вам это объяснить.
    Ответ написан
    5 комментариев
  • Как запретить гулять по серверным файлам в браузере?

    karabanov
    @karabanov Куратор тега Ubuntu
    Системный администратор
    Какой web сервер ты используешь?

    Для Apache это директива Options -Indexes
    Для Nginx это директива autoindex off;

    Чтобы вовсе запретить доступ к файлу извне прочитай про Allow и Deny.
    Ответ написан
    2 комментария