Архив метки: web

Let’s Play

Захотелось изменить жизнь если не к лучшему, то к чему-то новому и взор мой пал на мир Java и что там нынче есть для удобного создания веб-приложений. После прочтения статей типа «Стоит ли использовать Spring Boot в вашем следующем проекте?» обратился к фреймворку Play Framework — The High Velocity Web Framework For Java and Scala.

Прямо на титульной странице сайта проекта можно увидеть видео, показывающее за 20 минут основы разработки для Java и Scala разработчиков (отдельно). Если честно, видео вдохновляющее, но довольно короткое. Тут мне стало интересно, кто на практике использует эту наработку, и наткнулся я на материал от разработчиков linkedin.com. В этом видео рассказываются не только основы и фишки разработки. В самом начале, например, довольно четко выделено, чем же так хорош Play для разработчиков (не надо ковыряться в консоли, парсить огромные логи, ждать деплоя приложения после каждого изменения и т.п.). Где-то на 15-й минуте начинается обсуждение о том, что Play — это event-based фреймворк (в отличие от большинства других, основанных на тредах). И т.п.

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

Для дальнейшего ознакомления с темой можно почитать пару статей:
Developing Scalable Web Applications with Play
Integrating Play for Java and Akka (тут много про асинхронную природу фреймворка)

Да и можно посмотреть еще одно видео от автора первого. «Node.js v.s. Play Framework» by Yevgeny(Jim) Brikman at ScalaMatsuri 2014

Еще есть страничка под названием The Ultimate Guide to Getting Started with the Play Framework со ссылками на материалы по различным аспектам разработки.

Мыслишки разные

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

Завтра первый раз иду на батут (во FlyFamily), буду прыгать. Посмотрим, на что это похоже и зачем.

А тем временем на профессиональном поприще пытаюсь поработать со всем вот этим:

Всю последнюю неделю каждый день куда-то езжу к 9 утра, утомился. В жизни помимо любви и вселенского счастья не хватает интересного проекта по работе, в который можно было бы погрузиться с головой. Занимаюсь множеством совершенно разных нелепых вещей. Разбирался в C++ коде, прочитал почти еще раз весь Tutorial по Python, взял на фриланс пару небольших задач по Netcat.

Потоки и процессы

Процесс — адресное пространство с кодом программы, данными, какие-то внешние ресурсы. Грубо говоря, это объединение общих ресурсов. В рамках процесса выполняется поток — это исполняемый код, который держит свое состояние и данные в стэке и регистрах.

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

Чем же в приближении отличается Apache от nginx? Прежде всего тем, что Apache по сути под каждое соединение держит отдельный большой процесс, который работаю от момент открытия соединения с клиентом, до момента отдачи ему данных и закрытия. В приближении в режиме prefork под каждый новый запрос создается отдельный процесс. В режиме worker задается определенное кол-во процессов, в каждом несколько потоков, которые уже обрабатывают соединения. Похожая схема в nginx, только в apache при этом еще куча различные обвешенных модулей, поэтому это все равно громостко.

В nginx же все проще (хотя apache в режиме worker очень похож на логику работы nginx): задается какое-то кол-во процессов (чаще всего равно кол-ву процессорных ядер в систем), и для каждого задается какое-то кол-во потоков (стоить учесть максимальное кол-во возможных открытых файловых дескрипторов). Каждое соединение отправляется на отдельный поток. Задача nginx — это получить запрос от клиента и отдать ему на это результат работы бэкенда (apache в нашем случае). Отдавать и получать он может долго, но на это тратится минимум ресурсов. Именно на такую быструю и легкую работу он нацелен, прекрасно справляется с «медленными клиентами», существенно разгружая тяжеловесную часть apache, которая занимается генерацией всей информации.

Даже на связке apache-nginx можно убедиться, что потоки предназначены для быстрых действий в рамках уже какой-то заранее определенной среды. В том время как процессы — это и есть та среда, на инициализацию и уничтожение которой тратится немало ресурсов.

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

Немного про твиттер

Почти у всех думающих о тенденциях компаний есть аккаунты в твиттере. Там есть все стартапы, там есть уйма представителей больших корпораций равно как один отдельный корпоративный твиттер этой корпорации. И это круто. Можно подписаться на них и быть в курсе новшеств. Однако, с чем я никогда не мог мириться, и что наблюдаю практически каждый день — это повальное увлечение ретвиттингом. Скажем, по какому-то случаю или просто по настроению ответственные за твиттер начинают повально ретвитить своих клиентов.

Вместо 1-2 информативных тивтов в сутки от компании и получаю в ленту 10-20-30 совершенно ненужных мне текстов от каких-то незнакомых мне людей! И ладно бы картина была объективная, так я еще НИ РАЗУ не видел, чтобы ретвитнули негативный отзыв. Только позитив. Это все выглядит настолько нелепо и настолько мусорно, что я практически всегда сразу же прощаюсь с этой компанией. Потому что это отвратительное неуважение ко мне, к моему свободному времени, что я трачу на чтение твиттера.

Кому еще интересно на тему, какие ошибки совершают чаще всего компании в этой сфере (онлайн), загляните сюда: http://ruformator.ru/news/article0726C/default.asp

Антивирус Касперского 7.0

Стал пока что счастливым обладателем Антивирус Касперского 7.0 официально. Запарился каждую неделю менять ключи, которые брал в интернете, ибо их постоянно блокировали. В принципе, программой доволен, да и ценой в 980р за годовое обновления тоже не сильно брезговал, поэтому заплатил, тут же получил ключ и активировал программу. Теперь все по-человечески.