Как стать автором
Поиск
Написать публикацию
Обновить
13
0
Иван Горбачев @mastersobg

Пользователь

Отправить сообщение

Разбираем исходный код GNU Coreutils: утилита yes

Время на прочтение6 мин
Количество просмотров11K
(Статья доступна для оффлайн чтения: Markdown | PDF | PDF (print) | HTML)

Зачем?


Все вокруг постоянно говорят: «Хочешь научиться писать профессиональные программы? Посмотри, как это делают другие!». Вот и я решил последовать этому совету, тем более что моё обучение в университете как раз подходит к концу. Особенно интересно сравнить то как учили делать и то как делается в реальном мире. В качестве примера для подражания был выбран пакет GNU Coreutils. В нём есть всё:
  1. Жёсткие требования к переносимости.
  2. Большой жизненный цикл.
  3. Огромная команда разработчиков.
  4. Код различной сложности: от тривиального echo до супер-изощерённого sed, от чисто прикладного wc до более близкого к ОС mkdir.
Читать дальше →

Реализация нечеткого поиска

Время на прочтение6 мин
Количество просмотров43K


Если ваш веб проект так или иначе будет связан с поиском и предоставлением пользователям некоторых данных, то перед вами наверняка встанет задача реализации строки поиска. При этом, если в проекте по какой-либо причине не удастся использовать технологии умных сервисов как Google или Яндекс, то поиск частично или полностью придется реализовать самостоятельно. Одной из подзадач наверняка будет реализация нечеткого поиска, ведь пользователи часто ошибаются и иногда не знают точных терминов, названий или имен.

В данной статье описывается возможная реализация нечеткого поиска, которая была применена для поиска на сайте edatuda.ru.
Читать дальше →

Использование Play! framework в Gedit

Время на прочтение1 мин
Количество просмотров1.6K
Последнее время Play! framework набирает особую популярность среди Java разработчиков. Конечно все мы мечтали о таком фреймворке для Java и вот он наконец появился.

Одной из фишек фреймворка является компиляция на лету, эту фичу они взяли и eclipse(jdt). Благодаря этому отпадает нужда в IDE и всяких ant'ах. Можно программировать в простом текстовом редакторе типа Gedit. Хотелось бы поделится с вами портом Play! framework Textmate бандла для Gedit. Проект выложен на github'е и базируется на gmate, списке плагинов и тем делающий Gedit схожим с Textmate. Буду рад вашей помощи в добавлении новых возможностей.

P.S. Скоро будет добавлен ppa для пользователей ubuntu.

Параллельные вычисления по сети на Си

Время на прочтение22 мин
Количество просмотров13K
Добрый день, хабражители! Недавно мне пришлось написать программу для параллельного вычисления определённого интеграла. Естественно, после окончания работы был приобретен некий опыт, и я хотел бы поделиться этим опытом с вами. Сразу скажу, что в рамках статьи я не буду рассматривать парсинг интегрируемой функции, а заострю внимание на взаимодействии тредов и компьютеров между собой.

Постановка задачи


Конечно, прежде чем начать писать код нужно правильно поставить себе задачу, требования к программе были следующие:
  • Вычисления должны производиться на нескольких машинах параллельно (в пределах локальной сети)
  • Вычисления должны быть многопоточными
  • Доступ к компьютерам, на которых производятся вычисления, непостоянный

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

Шаблоны ЕСКД и ГОСТ 7.32 для Lyx 1.6.x

Время на прочтение3 мин
Количество просмотров23K
Уже более полугода я пользуюсь текстовым процессором Lyx. Встроенных шаблонов с лихвой хватало, чтобы писать конспекты лекций, готовиться к семинарам и делать несложные отчеты к лабораторным работам. Но в прошлом семестре пришлось делать два курсовых проекта в соответствии с требования ЕСКД. Я начал работу в Lyx, но без специальных шаблонов документов, мои отчеты в редакторе выглядели так:

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

Введение в MVP GWT 2.1

Время на прочтение11 мин
Количество просмотров22K
Когда я писал топик об использовании шаблона Command для организации RPC-вызовов в GWT то упоминал об MVP-паттерне для построения архитектуры GWT-проектов. Сразу после выступления товарища Ray Rayan’а с докладом о проектировании сложных приложений на GWT трудящиеся по всему миру принялись реализовывать озвученные идеи в виде библиотек и фреймворков. Результатом этих трудов стали средства, позволяющие применять как некоторые моменты MVP-подхода (GWT-Presenter) так и его целиком (Mvp4G). Это все замечательно, но мне лично (уверен, что и остальным GWT-разработчикам) хотелось бы иметь стандартизированный (если можно так сказать) фреймворк/подход для организации GWT-приложений по MVP-схеме. И вот команда, которая отвечает в Google за GWT, наконец-то в версии 2.1 наряду с остальными вкусными плюшками предложила встроенный MVP-фреймворк.
В данной заметке я постараюсь осветить основные моменты встроенного GWT MVP-фреймворка. Как пример будет использовано небольшое приложение, построенное с применением этого подхода.
Данная заметка является вольным трактатом (GWT MVP Development) и на уникальность подхода никоим образом не претендует. Если кого-то заинтересовало такое немаленькое введение
прошу под хабракат!

Улучшаем интерфейс Java-приложения

Время на прочтение27 мин
Количество просмотров100K
Добрый день, Хабражитель!

Достаточно много различной раздробленной информации существует на тему работы со Swing и графикой в просторах интернета, а также на тему интерфейсов Java-приложений. Кто-то твердит о том, что Java морально устарела и десктоп-приложения на Java не имеет смысла писать, кто-то с пеной у рта доказывает обратное. В то же время работа идет, приложения пишутся и встают очередные проблемы. В предыдущей статье я уже привел небольшой список полезных библиотек для исключительных случаев, но нередко бывает так, что никакая сторонняя библиотека не позволяет сделать то, что Вам нужно. Именно в такой момент стоит задуматься о возможной необходимости написания своих компонентов.

Итак, в данном посте я постарался изложить самые важные и значимые на мой взгляд моменты по работе со Swing и графикой — как создавать компоненты, как стилизовать интерфейс, чего делать не стоит и многое другое…

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

Java + Struts + AJAX (библиотеки)

Время на прочтение4 мин
Количество просмотров6.1K
искал библиотеки для внедрения ajax-enabled функционаьлности в проект на java и пытался составить сравнительную характеристику. может, кому-нибудь будет интересно. Основной упор делался на то, что проект изначально был написан с использованием Struts.
Читать дальше →

Spring IoC Annotation-based configuration, часть 2

Время на прочтение4 мин
Количество просмотров44K
В предыдущей статье я рассказал об основных аннотациях Spring IoC, однако есть еще несколько интересных вещей, о которых хотелось бы поведать.
Для, тех, кто не в курсе, что такое Spring Framework предлагаю почитать вот эту статью.

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

Команда dd и все, что с ней связано

Время на прочтение4 мин
Количество просмотров650K

В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.
Читать дальше →

Расширяем возможности Java-приложения

Время на прочтение11 мин
Количество просмотров19K
Здраствуй, Хабражитель!

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

Итак, сегодня я приведу здесь библиотеки, которые могут Вам помочь решить часто возникающие вопросы вроде «Как сделать это на Java?» по разным узким направлениям разработки.

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

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

Визуализация графов. Метод связывания ребер

Время на прочтение7 мин
Количество просмотров58K
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
Читать дальше →

Мысли о свободном ПО в области систем учета

Время на прочтение3 мин
Количество просмотров17K
Недавно пробегала тема про существующие открытые продукты в области учетных систем (CRM, ERP, автоматизация бух. учета и прочее). Не участвовал в дискуссии, которая местами была жаркой, но разные мысли в голове крутились. В итоге всех размышлений родился этот топик. Чтоб не утруждать читателей ходом размышлений вынесу до ката их резюме:

Дайте нам(разработчикам систем учета) удобный инструмент (платформу, framework) — и открытые учетные системы (в т.ч. и системы автоматизации российского бух. учета) появятся!

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

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

Выбираем отечественного поставщика облачного хостинга

Время на прочтение5 мин
Количество просмотров20K
Здравствуйте, уважаемые читатели! В своей статье я хочу произвести анализ компаний, предоставляющих услуги «облачного» хостинга на территории РФ. Анализ проводится с точки зрения среднестатистического пользователя, перед которым встала задача приобретения хостинга в облаке. Основные критерии по которым будет производиться анализ — поддержка, стоимость, гибкость(как один из основных критериев), прозрачность ценовой политики т.д.
Читать дальше →

Учимся готовить: Spring 3 MVC + Spring Security + Hibernate

Время на прочтение12 мин
Количество просмотров355K
Добрый день! Меня зовут Антон Щастный.

Это моя очередная статья, посвящённая разработке веб приложений на Java. Хочу предложить вам сделать небольшую систему учёта клиентов, написанную с использованием фреймворка Spring и библиотеки Hibernate.

Что будет в приложении:


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

Что будем использовать:


  • веб фреймворк Spring MVC,
  • фреймворк Spring Security,
  • ORM библиотеку Hibernate,
  • MySQL в качестве СУБД.

Инфраструктура:
  • редактор SpringSource Tool Suite,
  • сборщик проектов Maven,
  • система логгирования Log4j,
  • постоянное подключение к интернету.


В моей предыдущей статье о Spring MVC был упущен ряд моментов по использованию аннотаций в Java-коде и применению Maven для сборки проекта. В данной статье я попытался исправить упущение.

Цель статьи – показать начинающим веб разработчикам совместное использование различных технологий платформы Java.

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

Apache Maven — основы

Время на прочтение6 мин
Количество просмотров557K
После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
Поехали!

Базовые рекомендации для повышения безопасности *nix веб-сервера

Время на прочтение3 мин
Количество просмотров25K
Вдохновившись статьей о поиске следов взлома, решил написать статью о предупреждении взлома и базовых шагах для сведения возможности взлома сервера к минимуму.
Все шаги крайне важны, и невозможно выделить самый-самый важный, либо второстепенный.
Данная статья не является пошаговой инструкцией, а лишь списком рекомендуемых шагов.
Читать дальше →

Как быстро проверить Linux сервер на предмет взлома

Время на прочтение4 мин
Количество просмотров128K
Примерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:

--------------------- yum Begin ------------------------ 
 
 Packages Installed:
    lzo2 - 2.02-3.el5.rf.i386
    dnstracer - 1.8-1.2.el5.rf.i386
    openvpn - 2.0.9-1.el5.rf.i386

---------------------- yum End -------------------------


В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.

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

Делаем себе удобно и красиво (о настройках IDE/редактора)

Время на прочтение4 мин
Количество просмотров52K
Один мой друг однажды сказал: „Я смотрю на код восемь часов в день, и я хочу, чтобы смотреть было приятно“. Он имел в виду качество кода, и здесь все понятно (или, наоборот, ничего не понятно). Но что с самим изображением? Все ли с ним хорошо? Можно ли сделать лучше? Это вопросы, которые совсем недавно пришли мне в голову, и я решил озаботиться ими серьезно. Оказалось, что это поле непаханое для улучшений.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Palo Alto, California, США
Дата рождения
Зарегистрирован
Активность