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

SRE

Send message

Аннотации в JAVA: обзор синтаксиса и создание собственных

Reading time4 min
Views264K
Статья ориентирована больше на новичков, или тех, кто еще не работал с данным механизмом в языке. Я постараюсь рассказать, что это такое, зачем они нужны, и как можно самому создавать удобные для себя аннотации.

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

Простая интеграция сайта и 1С

Reading time6 min
Views143K
image
Последнее время натыкался на несколько различных статей об интеграции сайта и 1С. В комментариях часто начинались споры о различных подходах, и я решил поделится способом который однажды довелось реализовать мне. Разумеется, описанный ниже способ не претендует на универсальность и единственность, но, думаю, будет полезен тем, кто только собирается писать свой вариант.
Читать дальше →

Уязвимы по определению

Reading time4 min
Views40K
У многих людей, как-либо связанных с безопасностью, периодически возникает желание заняться pentest'ом, то есть тестом на проникновение. И чаще всего начинают все с pentest'а веб-приложений. Порог вхождения довольно мал (простейшая sqli определяется добавлением кавычки в параметр и эксплуатируется не особо сложнее), но при этом встречаются и довольно сложные задания, которые заставляют потратить пару-тройку дней на ковыряние.
Но возникает вопрос — где применять теоретические знания, без страха внезапного появления маски-шоу? Под катом проведу небольшой обзор полигонов для экспериментов по pentest'у.
Читать дальше →

Техническое задание на сайт

Reading time11 min
Views699K
UPD: Продолжение статьи с примером техзадания

Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.

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

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

1. Обоснование необходимости ТЗ


А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.

Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:



Далее много букв

Файловый менеджер на PHP, с правами, контролем версий и AJAX-ом

Reading time2 min
Views26K
Особенности файлового менеджера:
— Можно задавать права доступа на файлы и директории. Права двух типов: есть доступ или нет доступа. Файлы хранятся в недоступной для скачивания по прямой ссылке папке. Скачивание файла происходит с предварительной проверкой пользователя и прав доступа на файл. Любой пользователь файлового менеджера может обладать правами администратора, что указывается при добавлении нового или редактировании существующего пользователя. Администратор может видеть все, в том числе «удалённые» файлы.
— Контроль версий каждого файла. После загрузки файла он сохраняется с именем, которое не позволяет перезаписать существующие файлы, а его «оригинальное» имя сохраняется в БД. Данный подход разрешает хранить разные состояния файлов.
— Автоматическое создание превью загружаемых изображений.
— Файл в менеджере можно сделать доступным для скачивания
— GPL, код доступен на github



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

Лайфхаки в веб-разработке

Reading time3 min
Views4.2K
Upgrade your Life

Ссылки открытия файлов в IDE


Это облегчит вам поиск нужного файла.
Вы сможете создавать ссылки на код прямо на странице ошибки. Или в журнале ошибок.
Сделайте ссылки в dev панели на класс контроллера и файл шаблона (или что там у вас?)
Клик на такую ссылку будет переносить вас в соответствующий файл открытой IDE.

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

Определение страны по IP: тестируем скорость алгоритмов

Reading time4 min
Views36K
Для определения страны по IP необходимы специальные базы данных, состоящие из диапазонов IP адресов и соответствующих им стран. Обычно такие базы данных распространяются в виде CSV или SQL файлов для использования в СУБД, либо бинарных файлов специального формата.

Для проведения тестирования была выбрана февральская база GeoLite Country, бесплатная версия GeoIP Country от MaxMind.

В тестировании приняли участие несколько популярных решений и мой «велосипед» на эту тему.
Читать дальше →

Список проверки глупых вещей — Лимончелли

Reading time4 min
Views12K
Многим известны книги Томаса Лимончелли по системному администрированию, очень ценные для админа книжки. На его сайте тоже немало интересного, среди прочего нашёл такую статью: «A list of dumb things to check». На русском языке она, к сожалению, не нагуглилась, переводил сам. После допилинга под свои условия буду использовать как часть КМБ у себя в отделе, а первоначальный перевод выкладываю тут.
Читать дальше →

Аналог Teamviewer из VNC, SSH и суперклея

Reading time4 min
Views55K
Всем хорош teamviewer, вот только в коммерческих целях он какой-то не бесплатный, о чем не устает напоминать… Да и вообще, не хорошо нарушать лицензию.

Но удобство запуска quick support впечатляет — клиент запускает маленькую программку, диктует циферки по телефону и вуаля, мы видим его рабочий стол. Никаких VPN, никаких пробросов портов и прочей предварительной настройки. Удобно же?

В качестве бесплатного аналога вполне подходит VNC, с call-back подключением вполне приемлемо, да вот только когда клиентов много, и компьютер к которому цепляются тоже не один начинаются те же проблемы (хотя и более решаемые). Идея teamviewer лично мне нравится больше. А если нравится, почему бы не сделать свою реализацию…

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

Резервное копирование данных в MySQL

Reading time5 min
Views151K
Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.
Читать дальше →

Топ-10 советов о том, как увеличить скорость загрузки страницы

Reading time8 min
Views234K
Я думаю ни для кого не секрет, что скорость загрузки страницы влияет на множество факторов. Если кто-то не в курсе, то вкратце скажу следующее, что скорость загрузки влияет не только на то, дождется ли посетитель, когда загрузится Ваш сайт, но и на SEO оптимизацию. Ведь на сегодняшний день уже многие поисковые системы при ранжировании сайтов, начали учитывать скорость загрузки страницы. Поэтому чем быстрее будет грузиться Ваш сайт, тем больше посетителей Вы можете получить с поисковых систем, а, следовательно, и больше денег на этом заработать.

Поэтому в этой статья я решил собрать топ-10 советов о том, как же можно увеличить скорость загрузки веб-странички и сайта в целом. Статья не претендует на гениальность и рассчитана на новичков.
Читать дальше →

Перевод выделенного текста с любого языка на русский

Reading time2 min
Views63K
Хочу поделиться с вами своим лайфхаком.
В первую очередь он предназначен для людей, которым лень лезть в словарь всякий раз, когда они встречают незнакомое иностранное слово в тексте.

Я хочу рассказать, как получить перевод выделенного текста в виде оповещения рабочего стола.

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

Codeception — тестирование по-новому

Reading time4 min
Views88K
PHP очень популярный язык программирования, но тестирование в нем, это скорее прерогатива экспертов, а не жизненная необходимость. Неужели это от того, что PHP-разработчики поголовно быдло-кодеры? Я считаю, что нет. Скорее всё от того, что системы тестирования порой излишне усложнены. А тесты, наоборот, должны были предельно просты: легко читаться, писаться, отлаживаться, и конечно же, быстро выполняться. Мое виденье того как это можно воплотить в PHP вылилось в проект под названием Codeception.

С ним тесты для ваших веб-приложений могут выглядеть так:
<?php
$I = new TestGuy($scenario);
$I->wantTo('create new blog post');
$I->amOnPage('/blog/posts');
$I->click('Create new post');
$I->fillField('Title','Codeception, a new way of testing!');
$I->fillField('Text','Codeception is new PHP full-stack testing framework.');
$I->click('Send');
$I->see('Congratulations, your post is successfully created!');


Согласитесь, такой тест понятен без дополнительных комментариев.
А теперь самое интересное: этот код без всяких изменений может быть выполнен как функциональный тест в фреймворках symfony, Symfony2,Zend Framework, а также в браузерном эмуляторе Goutte и даже через Selenium. Таким образом, вам предлагается единый интерфейс для написания функциональных тестов практически для любого сайта.
Читать дальше →

На Pirate Bay открыли раздел с чертежами для трехмерных принтеров

Reading time1 min
Views2.7K
Администрация Pirate Bay представила в своем блоге (советую почитать и комментарии) новый раздел сайта, полностью посвященный чертежам для трехмерных принтеров и станков. Создатели файлообменника рассматривают 3d-печать, то есть переход информации из цифровой формы в физическую, как следующий шаг эволюции копирования.
Читать дальше →

Thinstation — «худеем» с тонкими клиентами до версии 2.5

Reading time7 min
Views82K
image
Доброго времени суток, Хабр!

Относительно недавно в свет вышла новая версия популярного тонкого клиента Thinstation, а именно 2.5. И, конечно же, несет в себе как новые плюшки, так и новые грабли плюс минимум документации по новой версии.

В этой статье (а она расчитана на новичков, особенно для тех, кто слабо знаком с Linux) я опишу как быстро собрать тонкого клиента и сделать его использование достаточно безопасным. Под хабракатом использование смарт-карт, RDP-клиент фирмы 2X и хэппи-энд. Добро пожаловать!

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

Яндекс.ТвояПогода

Reading time2 min
Views94K
Привет! Очень давно уже не писал никаких статей, да и вообще, долго уже раздумывал опубликовывать данную тему или нет, но всё же решился.

«Для чего»

Ради интереса, на своего «хомяка» (когда-то лет 5 назад эта фраза была немного популярной) появилось желание прикрутить погодный информер.
Причем, хотелось видеть в нем некий минимализм — текущая температура и миленькая пиктограммка (солнце, тучка или снег).

Решения, предлагаемые, многими сервисами погоды являются относительно громоздкими и, по моему мнению, не очень приятными глазу :) Хотелось бы сделать что-то своё)

Мне приятнее всего пользоваться сервисами Яндекса, поэтому поставил перед собой вопрос «как сделать свою Яндекс.Погоду?» :)
Читать дальше →

Безопасная авторизация

Reading time3 min
Views14K
Доброго времени суток, уважаемые Хабражители!

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

Совсем недавно, при выполнении дипломного проекта (кстати на тему «Онлайн система управления обучением»), и я задумался над этим. Мне в голову пришла одна идея по улучшению защищенности пароля при авторизации. Идея не доскональная и продумана не до конца, поэтому я хочу поделиться ею со знающими людьми.
Как я хочу защитить пароль при передаче на сервер?

Знакомство с gitolite

Reading time4 min
Views61K
gitolite — это средство для создания централизованных репозиториев для совместной разработки через git.

Зачем оно нужно?


Родные средства git для этой задачи на сегодня явно недостаточны: родной git-протокол не содержит каких-либо средств авторизации, а для работы через ssh потребуется завести полноценного юзера в ОС (с шеллом), что далеко не всегда уместно и желательно.
gitolite же позволит вам заводить пользователей независимо от наличия аккаунта в ОС и гибко раздавать права.
Читать дальше →

Подборка html/javascript/css инструментов и библиотек от SmashingMagazine

Reading time5 min
Views22K
Разработка вебинтерфейсов дело не самое легкое. Причем начать вроде бы несложно, а вот добиться совершенства поистинне проблематично. Уж очень многое необходимо учесть. Просто масса настроек и ньюансов, в которых легко запутаться и сделать что-то не так. К счастью, разработчики и дизайнеры склонны упрощать этот нелегкий труд и постоянно изобретают всяческие инструменты позволяющие сделать больше и лучше за то же самое время, а главное не погрязнуть в мелочах и состредоточиться на чем-то более важном.

Множество удобных инструментов, найденных командой популярного онлайн журнала SmashingMagazine, приводится под катом
Читать дальше →

Information

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