• Какие есть объективные причины для перехода на Linux вебразработчику?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Почему до сих пор считается, что основной ОС вебразработчика должна быть ОС на основе Linux?

    Как правило, это на порядок удобнее.

    Да, можно под виртуалкой запустить линуху, но зачем?)
    Да, можно эмулировать линушную консольку, но половина хоткеев у вас работать не будет.
    Да, можно докер в виртуалке поднять, но под линухой он будет нейтивно работать.
    Да, можно считать, что вагрант вас спасет, но тот же ансайбл придется таки вовнутри поднимать, а не использовать хостовой.
    Да, можно приблуды для виртуальных рабочих столов прикрутить, но зачем, это идет в коробке с большинством DE.
    Да, можно по полной программе обмазываться putty и понасохранять все ваши доступы, но проще настроить ~/.ssh/config.
    Да, можно понаустанавливать вот это ваше все с официальных сайтов, но проще натапть "apt install **", или "yum install **".
    Да, можно залезть в политики безопасности и сделать "зашибись", но для обычной dev тачки под nix чаще всего вам это и не нужно.
    Да, можно закачать крутых прог, которые вам скрытые процессы покажут, но проще ввести есть ps aux.
    Да, можно в .gitattributes понапрописывать text eol=lf, но опять же зачем, если только у винды принят crlf?
    Да, можно понаотключать BOM, но опять же зачем?
    Да, можно считать реестр - удобной штукой, но это не так))
    и т. д...

    Из таких мелочей и состоит пользование ОС.

    Чуть не забыл:
    Да, можно считать, что комп под виндой принадлежит вам...))
    Ответ написан
  • Как понять Python?

    sim3x
    @sim3x
    Книга
    learnpythonthehardway.org/book
    Онлайн
    checkio.org

    Видео крайне не рекомендую - там не исправляются ошибки
    Ответ написан
  • Как починить кириллицу в Source Code Pro под Sublime Text 3?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    habrahabr.ru/post/216223
    В статье описано про "Source Sans Pro", но также действительно и для "Source Code Pro".
    Официального релиза кириллицы до сих пор не было и, судя по активности в разработке, уже не будет. Все, что гуляет по интернетам собрано с помощью подхода описанного в указанной статье.
    Ответ написан
  • Какую литературу следует выбрать для освоения linux?

    Литературу, это позже. Тебе надо самое базовое сейчас. А литературу нужно читать вдумчиво. Смотри видео, где показывают - как, что делать.

    Все в *nix начинается с комманд man и info.

    Здесь философия в начале книги, прочитай:
    Essential System Administration, 3rd Edition
    shop.oreilly.com/product/9780596003432.do

    Здесь для озарений:
    Unix Power Tools, 3rd Edition
    shop.oreilly.com/product/9780596003302.do

    В любом случае, со временем, тебе надо взять суть : те, принципы работы с системой и системы. Тогда все покатится, как по маслу.

    Основной принцип imho: мелкие, простые комманды, ты как волшебник - соединяешь в мощный функционал операционки.

    Удачи, Люк!

    update:
    по сути, чтобы давать комманды системе, тебе нужно знать как работает твоя коммандная оболочка ( например, у меня bash ), соответственно я смотрю man bash - если встречу что-то странное.
    Ответ написан
  • Nginx + php5-fpm VS Nginx + Apache; Что выбрать?

    @hell
    По первому пункту:
    Правильнее будет протестировать на актуальном железе и в актуальной конфигурации. Кроме того, ответ на ваш вопрос будет зависеть еще и от вашей возможности корректировать параметры ядра. На виртуалках у вас такой возможности может и не оказаться.

    Полтора года назад я делал такие тесты для своего сервера.
    Тестировались три варианта - nginx+php-fpm, nginx+apache+mod_php, nginx+nginx+php-fpm. результаты тестов на боевых сайтах показали:

    при правильной настройке apache - nginx+php-fpm - наименее производительное решение
    nginx+apache+mod_php и nginx+nginx+php-fpm выдерживают примерно одинаковую нагрузку, но второе решение чуть менее надежное (то есть именно чуть - в среднем, на 1000 натравливаний siege на боевой сервер, php-fpm слетел раз 7, а апач - раза 2)

    Софт с тех пор поменялся, железка у вас заведомо другая (та, на которой я тестировал, погорела), у меня был debian без виртуалок, у вас - Centos, посему актуальные результаты тестов в вашем случае могут оказаться другими.

    По второму - позволю процитировать себя же - "при правильной настройке apache". Правильная настройка апача на производительность включает полный отказ от .htaccess. Часть переносится в nginx, часть - напрямую в конфиги конкретного веб-сервера. Ну и из апача вообще выбрасываетс много-много-много всего. Нужно помнить, что правила рерайта в нгинксе огтличаются от апачевских - на хабре была пара правильных (особенно с учетом комментов) статей, ну и на самом сайте нгинкса примеров хороших более чем достаточно.

    По третьему - если вы проведете тесты и убедителсь, что с надежностью у связки nginx+nginx+php-fpm все нормально на ваших сайтах, я бы перешел.
    Поясню суть такой связки:
    внешний nginx отдает статику, зипует на лету, частично рерайтит запросы, а также проксирует запросы к php на внутренний нгинкс. Кроме того, по необходимости и возможности, он может кешировать часть запросов. У внешнего нгинкса keepalive_timeout установлен в достаточно большое значение (то есть тоже стоит подбирать).
    Внутренний нгинкс стоит с keepalive_timeout=0, и работает с php-fpm.

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

    Минусом - принципиальные отличия в логике рерайтов на nginx и в apache. Врочем, если потратить разок 2-3 рабочих дня на то, чтобы в этих разлиичях разобраться, дальше все будет проще.
    Ответ написан
  • Где физически хранится база данных(создана в Workbench)?

    delphinpro
    @delphinpro
    frontend developer
    Базу обычно копируют с помощью экспорта-импорта. На исходной машине создаете дамп данных, на целевой делает импорт этого дампа. Можно использовать PMA, SypexDumper или штатную консольную утилиту mysqldump.
    Ответ написан
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    @FoxInSox
    Все уже изобретено на stackoverflow. Рейтинги и прочие ограничители не вводятся по одной причине: 90% людей было бы просто забанено сообществом сразу же. На stackoverflow оставшиеся 10% это внушительная часть людей, на Тостере же это 20 человек.
    Ответ написан
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Я за, потому что из-за наплыва туповатых вопросов отсюда свалили реально разбирающиеся в специфичных тематиках люди. Теперь их проще спрашивать через сообщения на хабре. Я конечно понимаю, что сложных вопросов капля в море по сравнению с вопросами вида "как изучить python", "можно ли стать программистом в 37 лет", "нужна ли математика", "как сдать егэ" и даже "как осилить Кнута". Я также понимаю аудиторию, задающую такие вопросы.

    Так и будет до тех пор, пока такое поощряется. Даже на крупных форумах есть модерируемые разделы для новичков и профессионалов.
    Ответ написан
  • Есть ли основные правила супер оптимизации?

    ErmIg
    @ErmIg
    Программист
    Есть развернутый ответ для С++ кода, но его можно обобщить и на другие языки и платформы:

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

    1) Важно понимать, что алгоритмическая оптимизация практически всегда может дать лучший эффект, чем программная. Так, если алгоритм имеет сложность O(n^2), то на больших исходных данных он при любой оптимизации будет медленнее, чем неоптимизированный алгоритм сложности O(n). Впрочем, при выборе алгоритма, опираться только на его сложность не стоит: если объем исходных данных не велик, то вполне может оказаться, что алгоритм со сложностью O(n^2) будет работать быстрее, чем с O(n).
    2) Очень важно повторное использование (кеширование) промежуточных данных, вычисленных в программе – ибо быстрее всего выполняется работа, которую не надо делать. Тем не менее, не надо чрезмерно кешированием увлекаться – если объем кэшируемых данных слишком велик, то это может отрицательно сказаться на общей производительности программы (некоторые данные быстрее вычислять на лету, чем считывать из памяти).
    3) Следует избегать излишнего копирования данных (например, передавать сложные типы данных по ссылке, а не по значению).
    4) По возможности следует избегать условных операторов во вложенных циклах. Так как условные переходы, вызываемые такими операторами, плохо обрабатываются современными процессорами с конвейерной архитектурой.
    5) Данные в памяти, которые используются алгоритмами, должны по возможности лежать упорядочено, и использоваться последовательно. Это позволит процессору их эффективно кешировать. Важно помнить, что доступ к кэшу процессора значительнее быстрее, чем к оперативной памяти.
    6) Если алгоритмы это позволяют, то возможно стоит реализовать их параллельное исполнение (в отдельных потоках или процессах). Это позволит эффективно задействовать современные многоядерные процессы.
    7) В некоторых случаях (например обработка изображений) большого эффекта можно достичь применением специализированных расширений процессора (SSE, SSE2, AXX, AVX2 и другие). Стоит отметить, что большинство современных компиляторов (GCC, MSVS, ICC) поддерживают непосредственное использование данных расширений непосредственно из С++ кода при помощи специальных встроенных функций (intrinsics). Минусами такого подхода является потеря переносимости (впрочем, эта проблема решается наличием разных веток программы под разные процессоры) и значительное усложнение программы.
    8) Также большого эффекта можно достичь применением специализированных ускорителей, например GPU (технологии CUDA, OpenCL). Минусами таких решений являются потеря универсальности и значительное усложнение программы, а также то, что на специализированных ускорителях, как правило, хорошо работает далеко не каждый алгоритм.
    Ответ написан
  • Почему дискретная математика называеться дискретной?

    Vestail
    @Vestail
    Software Engineer
    Потому что она изучает дискретные(прерывные) математические структуры, например множества. В отличии от обычной математики которая изучает непрерывные структуры, например вещественные числа.
    Ответ написан
  • Как найти ошибки в bitrix, если отображается белый экран?

    murzix
    @murzix
    Долго и упорно программирую всякое под 1C Битрикс
    Если битрикс свежий и в папке /bitrix/ есть файл .settings.php, то там можно указать файл для лога ошибок и типы ошибок которые будут туда записываться.

    У меня на локалке настройки такие:
    'exception_handling' => 
      array (
        'value' => 
        array (
          'debug' => true,
          'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
          'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
          'ignore_silence' => true,
          'assertion_throws_exception' => false,
          'assertion_error_type' => 256,
          'log' => array (
            'settings' => array (
              'file' => 'bitrix/modules/error.log',
              'log_size' => 1000000,
            ),
    	  ),
        ),
        'readonly' => true,
      ),
    Ответ написан
  • Как запретить Windows самой перезагружаться после обновлений?

    eleventyseven
    @eleventyseven
    .Net разработчик
    Run -> gpedit.msc

    Local Computer Policy -> Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update.

    Дважды нажмите на политику “No auto-restart with logged on users for scheduled automated updates installation”.

    Отметьте параметр “Enabled” и нажмите Apply.
    Ответ написан