Приснился сегодня страшный сон что прогхаб упал! Проснулся, проверил, все работает, а java все ещё самый популярный раздел.
  Забавный проект с попыткой монетизировать опенсорс. Идея такая: вы пишите код который доступен только тем кто будет за него платить. 
Сайт: https://xscode.com/
Как вам идея?
#git
  Сайт: https://xscode.com/
Как вам идея?
#git
  Задачи и тесты по программированию | proghub
Докер  В прошлом посте с мыслями разработчика мы заговорили про docker. Что это такое можно прочитать тут и тут. А я ниже расcкажу про наш опыт.  Почему мы выбрали докер?  До запуска proghub.ru я пользовался им для локальной разработки около 2х лет и это было…
👆Вот тут мы опытом докера делились, зацените если не видели.
  Ищем программиста-фотошопера!
Разыскивается человек обладающий минимальными умениями фотошопа и знаниями в программировании и в мире ИТ в целом (достаточно минимальных знаний).
Что нужно делать?
Создавать короткие интересные заметки и полезные лайфхаки для различных фреймворков и языков, кратко обьяснять их принцип работы.
За более детальной пишите нам на proghub.it@gmail.com
  Разыскивается человек обладающий минимальными умениями фотошопа и знаниями в программировании и в мире ИТ в целом (достаточно минимальных знаний).
Что нужно делать?
Создавать короткие интересные заметки и полезные лайфхаки для различных фреймворков и языков, кратко обьяснять их принцип работы.
За более детальной пишите нам на proghub.it@gmail.com
Что будет выведено при выполнении кода:
  Anonymous Poll
    4%
    s
      
    77%
    Произойдет ошибка компиляции
      
    4%
    x
      
    11%
    my string
      
    5%
    i
      
    Крутая утилита для уменьшения размеров docker-образа без изменения кода, называется docker-slim. Оптимизирует и добавляет защиту для ваших контейнеров, понимая их смысл c помощью различных аналитических средств.
Github: https://github.com/docker-slim/docker-slim
Сайт: https://dockersl.im
#devops #docker
  Github: https://github.com/docker-slim/docker-slim
Сайт: https://dockersl.im
#devops #docker
Легковесная утилита для нагрузочного тестирования путем отправки большого кол-ва http-запросов. Неплохая альтернатива ApacheBench (ab). Написана на go, из особых фич - поддержка http2.
Github: https://github.com/rakyll/hey
#utils
  Github: https://github.com/rakyll/hey
#utils
Третий пост с визуализацией алгоритмов с нашего теста по алгоритмам
На этот раз визуализация пузырьковой сортировки
  
  
  На этот раз визуализация пузырьковой сортировки
Очереди сообщений
Очереди получают, удерживают и доставляют сообщения. Если операция выполняется слишком медленно, вы можете использовать очередь сообщений со следующим рабочим процессом:
Если какая-либо операция выполняется слишком долго, можно использовать очередь сообщений по такой схеме:
1. Приложение публикует задание в очереди, а затем уведомляет пользователя о статусе обработки.
2. Воркер забирает задание из очереди, обрабатывает его, а затем сообщает, что задание завершено.
Пользователь не ждет отклика страницы, а задание обрабатывается в фоновом режиме. Например у нас на proghub.ru есть задачи отправки всех писем, задача добавления в рейтинг результатов прохождения пользователя. В качестве брокера сообщений мы используем redis. А вообще самые попелярные варианты работы с очередями это:
1. redis - максимально простой вариант
2. rabbitMQ - самый популярный вариант, умеет очень много из коробки, работает на основе протокола AMQP
3. amazon SQS - если у вас проект в амазон, то этот вариант для вас
#devops #backend
  
  Очереди получают, удерживают и доставляют сообщения. Если операция выполняется слишком медленно, вы можете использовать очередь сообщений со следующим рабочим процессом:
Если какая-либо операция выполняется слишком долго, можно использовать очередь сообщений по такой схеме:
1. Приложение публикует задание в очереди, а затем уведомляет пользователя о статусе обработки.
2. Воркер забирает задание из очереди, обрабатывает его, а затем сообщает, что задание завершено.
Пользователь не ждет отклика страницы, а задание обрабатывается в фоновом режиме. Например у нас на proghub.ru есть задачи отправки всех писем, задача добавления в рейтинг результатов прохождения пользователя. В качестве брокера сообщений мы используем redis. А вообще самые попелярные варианты работы с очередями это:
1. redis - максимально простой вариант
2. rabbitMQ - самый популярный вариант, умеет очень много из коробки, работает на основе протокола AMQP
3. amazon SQS - если у вас проект в амазон, то этот вариант для вас
#devops #backend
Rabbitmq
  
  RabbitMQ: One broker to queue them all | RabbitMQ
  
  Как работает PHP
Мы на апи proghub.ru используем PHP, думаю многие из наших подписчиков так-же пишут на нем. Для вас публикуем короткий пост о том как обрабатывается входящий запрос.
Сервер принимает запрос, компилирует его в байт-код, который в свою очередь поступает на исполнение виртуальной машине. Виртуальная машина, исполняя байт-код, может вызывать и другие PHP-файлы, которые опять перекомпилируются в байт-код и опять исполняются.
По завершению выполнения запроса вся информация, которая к нему относится, включая байт-код, удаляется из памяти. То есть каждый PHP-скрипт должен быть скомпилирован на каждом запросе заново. Разумеется, JIT-компиляцию в такую схему встроить просто невозможно, потому что компилятор должен быть очень быстрым.
Но скорее всего никто не использует PHP в голом виде, все его используют с OPcache. Если соберем 100 👍 то опубликуем следующую часть.
#backend #php #api
  Мы на апи proghub.ru используем PHP, думаю многие из наших подписчиков так-же пишут на нем. Для вас публикуем короткий пост о том как обрабатывается входящий запрос.
Сервер принимает запрос, компилирует его в байт-код, который в свою очередь поступает на исполнение виртуальной машине. Виртуальная машина, исполняя байт-код, может вызывать и другие PHP-файлы, которые опять перекомпилируются в байт-код и опять исполняются.
По завершению выполнения запроса вся информация, которая к нему относится, включая байт-код, удаляется из памяти. То есть каждый PHP-скрипт должен быть скомпилирован на каждом запросе заново. Разумеется, JIT-компиляцию в такую схему встроить просто невозможно, потому что компилятор должен быть очень быстрым.
Но скорее всего никто не использует PHP в голом виде, все его используют с OPcache. Если соберем 100 👍 то опубликуем следующую часть.
#backend #php #api
SQL: Как выбрать все записи из таблицы "Persons", для которых значение колонки "FirstName" начинается с "a"?
  Anonymous Poll
    7%
    SELECT * FROM Persons WHERE FirstName = 'a'
      
    10%
    SELECT * FROM Persons WHERE FirstName LIKE '%a'
      
    13%
    SELECT * FROM Persons WHERE FirstName STARTSWITH 'a'
      
    66%
    SELECT * FROM Persons WHERE FirstName LIKE 'a%'
      
    4%
    SELECT * FROM Persons WHERE FirstName  = '%a%'
      
    Как работает PHP 2: OPcache
Продолжаем тему о работе движка php и сегодня поговорим про OPcache.
Главная задача OPcache — избавиться от перекомпиляции скриптов на каждом запросе. Он встраивается в специально предназначенную для него точку, перехватывает все запросы на компиляцию и кэширует скомпилированный байт-код в shared memory.
При этом экономится не только время компиляции, но и память, потому что раньше память под байт-код выделялся в адресном пространстве каждого процесса, а теперь он существует в единственном экземпляре.
#backend #php #api
  Продолжаем тему о работе движка php и сегодня поговорим про OPcache.
Главная задача OPcache — избавиться от перекомпиляции скриптов на каждом запросе. Он встраивается в специально предназначенную для него точку, перехватывает все запросы на компиляцию и кэширует скомпилированный байт-код в shared memory.
При этом экономится не только время компиляции, но и память, потому что раньше память под байт-код выделялся в адресном пространстве каждого процесса, а теперь он существует в единственном экземпляре.
#backend #php #api
