Search
Write a publication
Pull to refresh
138
0
Владимир Губарьков @xonix

CTO

Send message

Быстрая разработка веб-приложений на Java

Reading time7 min
Views132K
Как вы разрабатываете веб-приложение на Java?
После каждого изменения, как вы его запускаете и проверяете? Сколько времени занимает редеплой приложения и рестарт контейнера?

Мне довелось видеть разные варианты: от полной пересборки WAR-файла до использования плагинов для IDE типа MyEclipse, WTP и «коннекторов» для сервлет-контерйнеров. У некоторых из них есть явные недостатки, другие вполне работают — но есть способ проще!

Запускалка


Этот способ разработки позволяет максимально просто и гибко настроить приложение с минимальным временем редеплоя. Вам надо всего лишь написать один простенький Java-класс с main-методом, который запустит сервер Jetty сразу с нужными приложениями (т.н. Embedded Mode).

под катом - примеры кода и обзор альтернативных решений

О компиляторах и интерпретаторах

Reading time2 min
Views68K

Если ты всегда мечтал написать свой язык программирования — добро пожаловать. Здесь ты наверняка найдёшь для себя что-нибудь интересное.

GitHub-юзер yawnt собрал чудесную подборку ссылок для любителей драконов, языков и прочих вкусных внутренностей. А знающие камрады в комментариях наверняка поделятся с тобой и другими яствами.

Пишет yawnt следующее:

С каждым днём мне всё интереснее тема компиляторов, интерпретаторов и дизайна языков программирования в целом. И я решил поделиться с народом ссылками на собранные мной материалы (большую часть мне самому ещё предстоит прочитать :<). Надеюсь, кому-нибудь они окажутся полезными.

Я не включил (и не собираюсь) в список ссылки на официальную документацию, т. к. считаю очевидным, что первым делом следует смотреть именно туда ;P.
Итак, куча интересных ссылок

Введение в JMeter

Reading time10 min
Views230K
Статья подготовлена сотрудниками отдела тестирования в компании, где я работаю.
На хабре уже не первый раз пишут про JMeter, но статьи имеют довольно узкую направленность, либо сложны для понимания. Поэтому, эта статья будет интересная именно начинающим.

Введение


Как-то я начал осваивать новый инструмент — JМeter — и не смог найти какого-то полноценного руководства как руководства к действию. Постепенно, разобравшись по некоторым довольно полезным статьям и блогам, пользовательской документации, я начал что-то понимать. И решил, что, возможно, я не один ищу то, с чего можно начать работать. Освоить некоторые принципы построения и логику самого инструмента. Так что вот — статья о том, как начать.
Так что в этой статье мы рассмотрим пример создания скрипта для 3 пользователей, которые хотят:
1. залогиниться;
2. добавить в какой-нибудь альбом новую фотографию;
3. поменять аватарку.
Как таковой — это обычный бизнес процесс для какой-нибудь социальной сети.
Читать дальше →

Практика борьбы с прокрастинацией и нелюбовью к планированию

Reading time7 min
Views165K
DISCLAIMER: Все изложенные ниже приемы работают для меня, и не факт, что будут работать для вас. IMHO only, на истинность в последней инстанции не претендую.

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

Как ни странно, большая часть из них относится к переделываю своих привычек. Потому что то, что навязывает нам среда, книги, и что мы сами себе прививаем, часто работает против нас.



Отдых тела и ума


Сон и еда
По себе заметил, если не выспался — работать хочется в несколько раз меньше. Нужно найти для себя способ высыпаться, действуя из позиции Автора.

Второй важный пункт — еда. Для работы мозга — а работа в IT суть интеллектуальный труд — нужно много хорошей еды.
Если вы выспались и сыты, то силы должны быть, если их нет, идем дальше.

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

Тут есть глубокий физический смысл. Когда вы приводите свои мышцы в активность, повышается их тонус, в теле изменяется обмен веществ. Организм понимает, что нужно стать бодрее — и через 10-15 минут разминки вы себя не узнаете.
Читать дальше →

Try jQuery — новый интерактивный самоучитель по jQuery

Reading time2 min
Views72K
Раньше я как-то не стремился глубоко изучать jQuery, поскольку работаю в основном с back-end. Однако самоучитель TRYjQuery, ссылка на который пришла в недавнем письме от CodeSchool, вызвал интерес с первых кадров.

Читать дальше →

Как две недели?!

Reading time2 min
Views106K
Как это вам надо две недели на эту задачу? Что, правда? Вот на эту элементарную формочку с тремя полями и двумя кнопками? Две недели? Да вы надо мной издеваетесь, наверное! Давайте разбираться.

Что? Нужна ли валидация данных при вводе? Ну, конечно, нужна! И вообще, вот это поле лучше разбить на два, так понятнее. А вот в это добавить маску. А вот это — заменить на выпадающий список. Где брать варианты для этого списка? В базе на сервере, конечно. Как это их там нет? А, ну да, это же в другом проекте они у нас были… Ну, значит надо добавить. Взять там и добавить сюда. Сейчас я дам вам контакт разработчика того проекта — обсудите с ним. Он, правда, у нас уже не работает, но я думаю, вполне можно спросить что и как — он расскажет, скорее всего.

Мы всё обсудили? Нет? Что ещё?
Читать дальше →

Интерактивная обучалка ветвлению в Git

Reading time1 min
Views80K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

Хотя сам автор утверждает, что приложение еще сырое, я советую всем, кто интересуется гитом, взглянуть на эту прикольную штуку.

image
Читать дальше →

Предельная производительность: C#

Reading time56 min
Views266K
performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.
Читать дальше →

AWS Insight: Spot Instances

Reading time2 min
Views7.9K
Привет! image

Продолжая тему об экономии денег в облаках, сегодня я расскажу о Spot Instances. Напомню, что в AWS есть как минимум 3 основных вида оптимизации расходов:


Что такое Spot инстанс?


Это обычный EC2 или VPC инстанс, но есть некоторые нюансы работы:
  1. Как было сказано ранее, это обычный инстанс. Вычислительные и сетевые ресурсы, дисковые скорости и всё остальное у машин такое же, как и обычных EC2 инстансов.
  2. Вы сами устанавливаете цену, которую будете платить за час использования инстанса. Больше вы платить не будете.
  3. Инстанс может быть выключен в любое время, если, например, кто-то предложил цену больше за слот, который вы занимаете, а других нет.
  4. Оплата производится за полный час работы инстанса. Часть часа отбрасывается в пользу клиента — в меньшую сторону до полного часа.
Читать дальше →

Пример использование Splunk для анализа логов

Reading time5 min
Views103K
Splunk — это система хранения и анализа логов. В двух словах принцип работы можно описать так: есть сервер Splunk, который хранит, индексирует и позволяет анализировать логи, и есть рабочие машины (сервера), которые эти логи создают и передают на сервер Splunk. Сервер Splunk в свою очередь может быть кластером из нескольких физических машин, между которыми распределяется хранение информации, и которые используются для ее обработки по технологии MapReduce. Способов передавать логи с рабочих машин очень много: через специальную программу forwarder, которая умеет быстро и эффективно отсылать изменения логов на сервер, через технологии типа NFS/SMB, или SNMP, можно самостоятельно отсылать данные в Splunk по TCP/IP (например, вместо того, чтобы писать в файл). Под Windows Splunk умеет брать данные из Windows Events, Performance Counters или Реестра.
Читать дальше →

Python — оптимизация хвостовой рекурсии

Reading time1 min
Views33K
Не секрет, что Python не оптимизирует хвостовую рекурсию. Более того сам Гвидо является противником этого. Но если кому нужно, есть небольшое изящное решение. Под катом…
Читать дальше →

Теория радиоволн: ликбез

Reading time4 min
Views457K
image

Думаю все крутили ручку радиоприемника, переключая между «УКВ», «ДВ», «СВ» и слышали шипение из динамиков.
Но кроме расшифровки сокращений, не все понимают, что скрывается за этими буквами.
Давайте ближе познакомимся с теорией радиоволн.
Читать дальше →

Переезд проекта с SVN на Git

Reading time8 min
Views73K
image
Много лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
Читать дальше о том, как это делается от А до Я

Взломать Wi-Fi за… 3 секунды

Reading time2 min
Views2M
Какой человек не любит халявы? Практически все ее просто обожают, и я не исключение. Вдохновленный статьей «Взломать Wi-Fi за 10 часов» я достал из недр харда BT5, скачанный ранее, и записал его на болванку. Результат не заставил себя ждать, и первый пароль был получен на следующее утро. И понеслась…
Читать дальше →

Да, я всё ещё хочу заниматься этим, когда мне исполнится 56 лет

Reading time3 min
Views52K
Ты правда хочешь продолжать заниматься этим, когда тебе исполнится 50 лет?
Больше ли стресса в больших масштабах разработки? Должен признать, что да. Все-таки, это удел молодых.
Нет, это удел глупых. Мне 55 и я занимаюсь профессиональным программированием с 1981, а начал ещё когда был в школе, в 1973 или около того. И что я выяснил за это время, так это то, что сам по себе кодинг до полусмерти не имеет смысла.

Мой недавний пост «Почему я не занимаюсь сверхурочной работой бесплатно и вам не советую» остаётся самым популярным из моих постов каждую неделю с момента его написания. Так что, похоже, не я один считаю, что кодинг до полусмерти — это пустая трата времени. Но не буду повторяться.
Читать дальше →

Почему лучше верстать в соответствии с БЭМ — практические примеры

Reading time5 min
Views61K
Про БЭМ (методология написания CSS от ЯндексБлок__Элемент_Модификатор ← наиболее правильная запись расшифровки) нынче можно услышать на каждом шагу. Дело оказалось благим и покатилось по миру. Яндекс даже полез в W3C (связано это или нет — не знаю, но надеюсь, что да — [на самом деле нет]).

Думаю многие, кто ещё не пробовал, но прочитал описание БЭМ, задаются справедливым вопросом: «какая практическая польза от всего этого действа?» На самом деле, не смотря на то самое развёрнутое описание, конкретно уловить основную «фишку» довольно сложно. Описано конечно много плюсов и общее ощущение от методологии положительное, и кажется, что вроде как и не плохо бы попробовать, но нехватает чего-то конкретного. Прямо вот примера на живом что ли. Вот у меня сайт, вот вёрстка не по БЭМ, почему я должен всё менять? Особенно, если учесть тот факт, что БЭМ в принципе отметает все селекторы кроме классов, неужто за это время столько умных мужей в W3C не осознали, что всё настолько неправильно?

За сим возьму на себя смелость привести несколько примеров с которыми вы (конечно если вы каким-то образом связаны с вёрсткой) сталкиваетесь, не побоюсь этого слова, ежедневно. И что изменится в таких ситуациях если бы вёрстка была изначально выполнена в БЭМ.
Читать дальше →

Unix как IDE: Файлы

Reading time5 min
Views29K
Одной из важных особенностей IDE является встроенная система управления файлами. Она должна включать в себя как базовые возможности, такие как переименование, удаление перемещение, так и более специфические для разработки: компиляция и проверка синтаксиса. Вдобавок было бы удобно оперировать группами файлов для поиска по размеру, расширению или по маске. В этой первой статье я покажу несколько вариантов использования инструментов, знакомых любому пользователю Linux, для работы с группами файлов в проекте.
Читать дальше →

Как работает сортировка у Реддита

Reading time4 min
Views8.9K
Сейчас на хабре продолжают обсуждать сортировки и рейтингования сущностей (записей, постов, комментов), так что я сам этим заинтересовался и, как раз находясь на реддите, решил узнать как там работает сортировка, и наткнулся на отличную и короткую статью.

Этот пост — продолжение разбора алгоритмов сортировки (в прошлый раз был Hacker News). В этот раз, мы разберем как работает сортировка постов и комментариев на Reddit. Алгоритмы у Реддита достаточно простые, чтобы понять их и реализовать.

Первая часть этой записи будет сфокусирована на сортировке постов, а вторая на сортировке комментариев. Они довольно сильно различаются, и за идеей способа сортировки комментариев стоит Randall Munroe (автор xkcd).

Разбираем сортировку постов

Реддит open-source-ный проект и его код полностью доступен на гитхабе. Он написан на питоне, исходники вы можете увидеть тут. Их алгоритмы сортировки написаны под Pyrex, для дальнейшей компиляции (трансляции) в C-код. Pyrex был выбран из-за производительности. Я переписал их реализации на чистый питон, чтобы они легче читались.
Читать дальше →

Компания Atari в партнёрстве с Microsoft запустила свои старые игры в онлайн

Reading time1 min
Views4.1K
Сегодня издатель и разработчик компьютерных игр Atari выложил специально адаптированные для веб-браузеров игры Atari Arcade. Среди тайтлов есть Asteroids, Centipede, Combat, Lunar Lander, Missile Command, Yars Revenge, Pong и Super Breakout, а другие будут добавлены позже. Техническим партнёром выступила Microsoft, что, естественно, привело к тому, что наилучшие впечатления от игры можно получить на Internet Explorer 10 под Windows 8 с тачевым управлением.
Пользователи других браузеров будут видеть рекламу. Pong на Chrome 22 под Windows 7 работал сносно, хотя потом повис, и вкладка упала. Игры тут.
Разработчикам за js-либами и сэмплами прямиком сюда.

Новый 0day эксплоит для Java. Теперь и в Metasploit

Reading time2 min
Views9.2K
Как следует из официального блога Metasploit, последний апдейт данного продукта имеет в своём арсенале эксплоит под уязвимость нулевого дня (0day) для Java run-time environments (JRE).

Эксплоит кросплатформенный и был успешно протестирован на следующих платформах:

  • Windows 7 SP1 с установленной Java 7 Update 6
  • Mozilla Firefox под Ubuntu Linux 10.04
  • Internet Explorer / Mozilla Firefox / Chrome on Windows XP
  • Internet Explorer / Mozilla Firefox on Windows Vista
  • Internet Explorer / Mozilla Firefox on Windows 7
  • Safar под OS X 10.7.4


UPD_2
Как сообщается, уязвимости подвержены следующие продукты:

JDK и JRE 7 Update 6 и более ранние
JDK и JRE 6 Update 34 и более ранние
end of UPD_2

Как можно догадаться, раз это 0day, то на настоящий момент патча не существуетОбновление Java 7 update 7 устраняет уязвимость (спасибо Gregy за наводку). Уязвимости также пока что не присвоен номер CVE. Уязвимости присвоен CVE-2012-4681
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity