Search
Write a publication
Pull to refresh
7
0
Маслов Александр @drakmail

SRE

Send message

Как бороться с паузами java приложения, не трогая GC

Reading time2 min
Views4K
Сколько раз мне приходилось настраивать GC, чтобы вылечить приложение, у которого время от времени случается приступ, и оно перестает временно выполнять свои функции. Работа, скажу, не самая занимательная и требует хорошего знания матчасти. В данном топике я опишу какие еще есть способы решения данной проблемы.
Читать дальше →

Исключение != ошибка

Reading time4 min
Views29K
Многие программисты почему-то считают, что исключения и ошибки — это одно и то же. Кто-то постоянно кидает exception, кто-то через errorHandler превращает ошибки в исключения. Некоторые пытаются увеличить производительность, используя исключения. Но, на самом деле, exception и ошибки — это совершенно разные механизмы. Не надо одним механизмом заменять другой. Они созданы для разных целей.

Когда появился php5 с исключениями, а затем ZendFramework, который всегда кидает исключения — я не мог понять: чем же exception лучше моего любимого trigger_error()? Долго думал, обсуждал с коллегами и разобрался в этом вопросе. Теперь я чётко знаю, где использовать trigger_error(), а где throw new Exception().

В чём же принципиальная разница между ними?

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

Учимся писать userscript'ы

Reading time7 min
Views294K
Доброго времени суток всем желающим приобщиться к миру пользовательских скриптов (они же userscript, userJS, юзерскрипты).

В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят!

Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru.
Поехали!

Способы обхода паролей BIOS

Reading time3 min
Views572K
Невзирая на то, что BIOS является мощным средством защиты, существуют способы обхода установленного в ней пароля.
Иногда любопытные или стремящиеся максимально защитить свои данные пользователи ставят пароли на всём, на чём только можно, но нередко эти пароли ими забываются. Тяжело переносится забытие пароля на BIOS (пароль на загрузку системы), зачастую это может привести к покупке новой материнской платы, однако этого можно избежать воспользовавшись слабостями архитектуры построения ЭВМ и преднамеренно оставленными разработчиками «чёрными ходами».

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

Создание CCK-мультиполей

Reading time3 min
Views4.3K
Данный топик является своеобразным ответом на Нетривиальная задача для Node Reference поля Drupal и Модуль для кулинарного сайта. Но, в отличие от авторов тех двух топиков, я не собираюсь изобретать велосипед и писать свое решение, а просто покажу как эта задача будет решаться в недалеком будущем (да и сейчас вобщем-то уже можно), и что станет стандартом де-факто в Drupal. Почему я так уверенно завляю о стандарте? Все очень просто — речь пойдет о CCK (Content Construction Kit) 3.

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

Направляем энергию GLPI в свое русло

Reading time7 min
Views101K
Где-то 3 месяца назад в нашей фирме поднялся вопрос о регистрации обращений пользователей в IT отдел. Мне было поручено просканить интернет на предмет системы учета заявок, такого себе хелпдеска. Требования были предъявлены следующие:
1. Бесплатность (да-да, платить за эту систему отказались).
2. Возможность сбора статистики (для больших боссов).
3. Сигнал на почту (не только админам, но и пользователям, а так же всем заинтересованным именно в этой заявке лицам).
4. FAQ и база знаний.
Сказано — сделано. Так как все эти системы для меня были в новинку, то по совету на каком то из форумов я выбрала GLPI. Тем более, что эта система обещала облегчить процесс инвентаризации, что является довольно неплохим бонусом!
Читать дальше →

PyQt4 и QML

Reading time6 min
Views13K
Совсем недавно, разработчики фреймворка Qt Software, обрадовали нас появлением GUI, альтернативного стандартному, со своим, довольно несложным, языком разметки — QML.
Связкой QML с основной программой является модуль Qt Declarative. Начиная с версии 4.7 — PyQt4 поддерживает этот модуль.
QML значительно проще и гибче основного GUI, помимо того является и языком программирования, так как позволяет писать функции на javascript. В то время как Python довольно простой и гибкий интерпретируемый язык.

далее...

Emacs для web-разработчика

Reading time3 min
Views12K
По традиции:
Это мой первый пост, — не судите строго.

Emacs. Про него много сказано. Про него очень много сказано и написано. Про него будет сказано и написано ещё больше.
Любой может настроить «эту ОС» под себя! Я тоже так думал.
Всё оказалось немного гораздо сложнее.
Смело бросился в бой.
Первое чувство — страх. После пришло удивление — «как великие крутышки и убер программера тут живут!?».
Множество часов Google'ния не дали должного результата, но дали возможность понять — за что же его так любят!
И так! Вот чего я добился:
Читать дальше →

Консольный cucumber и capybara при помощи Selenium и Hudson

Reading time4 min
Views4.3K
В наши дни разработчики ПО не могут прожить без их любимых тестовых фреймворков. Но вот чего разрабочики не хотят — так это обеспечивать постоянный запуск этих тестов. Также, команды разработчиков не хотят тратить время на доведение результатов теста до всех.

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

Наша цель — задокументировать шаги, требуемые для преодоления встречающихся препятствий на пути к запуску полного набора тестов Cucumber со сценариями на Selenium на сборочном сервере Hudson.
Читать дальше →

Временное переключение WIFI в режим точки доступа

Reading time3 min
Views36K
Представьте, что вы поехали в другую страну, у вас собой есть смартфон и вам очень нужно зайти с него в интернет (например синхронизировать контакты или поставить какой-то софт). Какие есть варианты?
— Первый вариант — это мобильный интернет. К сожалению, это не всегда просто и не всегда дёшево.
— Второй вариант — WIFI. Вам повезло, если вы можете подключиться к WIFI там, куда вы прибыли, и в этом случае задача уже решена.
— Третий вариант — LAN. А что если у нас есть только LAN? Самое простое — это захватить с собой из дома небольшую точку доступа, но что если вы её не взяли с собой или у вас её нет? В этос случае вам поможет случайно захваченный с собой ноутбук или нетбук :)

Имеем


— EeePC 901 с Ubuntu 10.10
— Смартфон
— Локальная сеть

Задача


— Получить доступ в сеть со смартфона используя WIFI
Читать дальше →

Тестирование в Java. TestNG

Reading time16 min
Views240K

Наверняка все знакомы с таким понятием как test-driven development(TDD). Наряду с ним также существует такое понятие, как data-driven testing(DDT, не в обиду Шевчуку) — техника написания тестов, при которой данные для тестов хранятся отдельно от самих тестов. Они могут храниться в базе данных, файле, генерироваться во время исполнения теста. Это очень удобно, так как один и тот же функционал тестируется на различных наборах данных, при этом добавление, удаление или изменение этих данных максимально упрощено.

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

В этой статье я заострю внимание на тестовом фреймворке TestNG. Многие уже слышали это название, и перейдя на него, вряд ли желают вернуться к JUnit-у(хотя это только предположение).
Читать дальше →

Критерии оценки сайта

Reading time4 min
Views84K
Какой сайт можно считать хорошим, а какой — нет? Есть ли какие-то критерии оценки сайта, определения его качества?

В этой статье мы попробуем разобраться в этих вопросах.

Критерии оценки сайта


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

Почему я расставил критерии именно в таком порядке? Из таких соображений.
Читать дальше →

Выпущена утилита ioping для тестирования отзывчивости дисковой подсистемы

Reading time1 min
Views5.5K
Случайно наткнулся на свеженаписанную утилиту ioping, написал её русский программист koct9i, пользователь k001 оформил в rpm для fedora 14 . ioping на google code.
А пользователь Grohman собрал ебилд, а LupineDreamer сделал деб-пакет i386 и x64 от magzimko.

Выглядит это дело примерно вот как:
$ ioping -i 0.2 -c 6 -s 1M -S 10M /tmp
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=1 time=0.7 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=2 time=191.3 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=3 time=18.4 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=4 time=12.4 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=5 time=8.4 ms
1048576 bytes from /tmp (ext3 /dev/mapper/VolGroup00-LogVol00): request=6 time=8.2 ms
Читать дальше →

Основы и заблуждения насчет JavaScript

Reading time9 min
Views55K

Объекты, классы, конструкторы

ECMAScript, будучи высоко-абстрактным объектно-ориентированным языком программирования, оперирует объектами. Существуют также и примитивы, но и они, когда требуется, также преобразуются в объекты. Объект — это коллекция свойств, имеющая также связанный с ней объект-прототип. Прототипом является либо также объект, или же значение null.
В JavaScript нет привычных классов, но есть функции-конструкторы, порождающие объекты по определенным алгоритмам (см. Оператор new).

Прототипное делегирующее наследование


Классическое наследование очень похоже на то, как люди наследуют гены своих предков. Есть какие-то базовые особенности: люди могут ходить, говорить… И есть характерные черты для для каждого человека. Люди не в состоянии изменить себя — свой класс (но могут поменять собственные свойства) и бабушки, дедушки, мамы и папы не могут динамически повлиять на гены детей и внуков. Все очень по земному.

Теперь представим другую планету, на которой не такое как на Земле генное наследование. Там обитают мутанты с «телепатическим наследованием», которые способны изменять гены своих потомков.
Разберем пример. Отец наследует гены от Дедушки, а Сын наследует гены от Отца, который наследует от Дедушки. Каждый мутант может свободно мутировать, и может менять гены своих потомков. Например у Дедушки был зеленый цвет кожи, Отец цвет унаследовал, Сын тоже унаследовал цвет. И вдруг Дед решил: «надоело мне ходить зеленым — хочу стать сними», смутировал (изменил прототип своего класса) и «телепатически» распространил эту мутацию Отцу и Сыну, вобщем посинели все. Тут Отец подумал: «Дед на старости лет совсем двинулся» и поменял свой цвет в генах обратно на зеленый(изменил прототип своего класса), и распространил «телепатически» свой цвет сыну. Отец и Сын зеленые, Дед синий. Теперь как бы дед ни старался Отец и сын цвет не поменяют, т.к сейчас Отец в своем прототипе прописал цвет, а Сын в первую очередь унаследует от Прототипа Отца. Теперь Сын решает: «Поменяю ка я свой цвет на черный, а моё потомство пусть наследует цвет от Отца» и прописал собственное свойство, которое не влияет на потомство. И так далее.
Читать дальше →

Упрощаем регистрацию и вход на сайт

Reading time7 min
Views35K
Представляю вашему вниманию перевод статьи под названием "Innovative Techniques To Simplify Sign-Ups and Log-Ins" от Anthony T. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.


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



Форма авторизации на сайте Basecamp

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

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

Текстовые поля: эргономика и дизайн

Reading time4 min
Views13K
imageОт переводчика. Наверное, каждый пользователь Интернета сталкивался со следующей проблемой: после долгого введения информации в текстовые поля (например, при регистрации на каком-нибудь сайте) система выдает сообщение об ошибке, и все приходится вводить заново. Испытав серьезные затруднения с регистрацией, многие посетители просто-напросто отказываются пользоваться предлагаемыми на сайте сервисами. Для коммерческих веб-проектов это означает еще и потерю прибыли. Как сделать так, чтобы процесс заполнения текстовых форм был максимально простым и удобным? Об этом пойдет речь в статье, написанной специалистами французской компании Usaddict.
Заполнение текстовых полей относится к числу важных и деликатных моментов работы с веб-сайтами. Нередки случаи, когда пользователи отказываются регистрироваться на сайте, потому что не понимают, как именно нужно правильно заполнять формы регистрации. Учет эргономических аспектов данного элемента интерфейса поможет сделать сайт более удобным и привлекательным для пользователей.

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

Цветной man или как разукрасить вывод echo

Reading time8 min
Views116K
Когда пишешь даже минимальный скриптик, часто используешь echo — подсказки.
Согласитесь "цветной man" ведь намного приятнее читать, так почему бы не раскрасить вывод echo?
это достаточно легко.
Итак…

Задача:
Раскрасить текстовую строку выводимую на экран через команду echo
т.е. раскрасить эти самые подсказки
Читать дальше →

Новый CUBRID 8.4.0: теперь вдвое быстрее

Reading time4 min
Views1.3K
Дождались! Новая версия СУБД CUBRID 8.4.0 является самой мощной из ранее выпущенных версий, а теперь еще с вдвое ускоренным движком базы данных!

Этот выпуск сочетает повышенную производительностью со множеством новых возможностей, часто запрашиваемых пользователями. Результаты тестов, основыванные на том же сценарии [ссылка на PDF файл отчета на английском], который мы обычно используем для проведения контроля качества новых выпусков, показывают повышенную производительность движка почти в три раза для определенных функций.
Результаты производительности за катом

Обращение зависимостей и порождающие шаблоны проектирования

Reading time18 min
Views13K

Аннотация


Это третья статья, просвещенная порождающим шаблонам проектирования и связанным с ними вопросами. Здесь мы рассмотрим излюбленные приемы при создании объектов: фабрики, заводы, абстрактные фабрики, строители, прототипы, мультитоны, отложенные инициализации, а также немного коснемся pimpl идиомы или шаблона “мост”. Использование синглтонов было подробно рассмотрено в первой [1] и второй [2] статьях, однако, как вы увидите в дальнейшем, синглтоны часто используются совместно с другими шаблонами проектирования.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity