Как стать автором
Поиск
Написать публикацию
Обновить
11
0

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

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

Работа с ICQ в Java

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

Предыстория


Как-то раз мы решили создать свой собственный микроблоггинг с блекджеком и шлюхами c шахматами и поэтессами. Сначала сделали сайт, но быстро стало понятно, что для реализации идеи его недостаточно. Необходимо было работать с сообщениями через Jabber и ICQ.
Начали с простого — с джаббера. Никаких проблем тут не возникло — мы писали на Java, поэтому прикрутили Smack API и все заработало. Но, как это не печально, но самым популярным IM протоколом все еще является ICQ…

Задача


Итак, задача: залогиниться в ICQ, принимать и отправлять сообщения, понимать X-статусы, работать с кириллицей.

Рассмотрим пути решения.
Читать дальше →

Кодировки

Время на прочтение2 мин
Количество просмотров39K
Тут на самом деле всё просто. Храните все тексты в Unicode и будет вам счастье (при условии правильно установленной опции 'encoding' конечно ;) В ином случае (у вас куча текстов в национальных кодировках) придется
дочитать топик до конца

Делаем фото на документы

Время на прочтение2 мин
Количество просмотров12K
imageФото на документы — написанная мною программа, которая предназначена для подготовки фотографии человека на российские документы. Программа больше года используется в десятках точках типа «фото на документы за 5 минут». Кроме этого, программу можно использовать дома, получая значительную экономию.

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

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

Бюджетный стол

Время на прочтение1 мин
Количество просмотров23K
За полтора десятка лет изготовил несколько вариантов конструкции. Делюсь рецептом. Преимущества:
  • конструкция дешевая и проста в изготовлении.
  • можно выставить любую высоту столешницы.
  • большая глубина стола. Раньше использовалась под трубку CRT монитора. Интересно, чтобы вы туда положили сегодня?
  • есть куда вытянуть ноги (от края стола до угла 80см).
  • эффективное использование пространства комнаты. Визуальный объем комнаты не уменьшается, т.к. виден периметр пола и потолка.

Общий вид
Читать дальше →

Джаваскриптовая библиотека MathJax преобразует математические формулы на языке MathML или LaTeX в красивые иллюстрации

Время на прочтение1 мин
Количество просмотров19K
Обратите внимание на вот эту иллюстрацию:

[итог работы MathJax]

Красиво, правда?

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

Пишем кандидатскую работу

Время на прочтение3 мин
Количество просмотров19K
Этот пост, возможно, будет полезен аспирантам (и магистрам) при написании своих научных работ, так как содержит некоторые наблюдения и выводы, сделанные автором во время работы над кандидатской.

Выбор темы


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

Триграммный индекс или «Поиск с опечатками»

Время на прочтение4 мин
Количество просмотров36K
Как-то по долгу службы появилась необходимость добавить к поиску на сайте всем известную фичу, сервис «Возможно вы имели в виду…» или «Поиск с опечатками». Стали думать как реализовывать. Сторонние сервисы и api использовать не хотелось, ибо время до чужого сервера и назад, да и в целом не очень хорошо. Как раз кстати пришелся модуль pg_trgm, который ищет близкие к запросу слову на основе триграммного индекса.

Итак, идея есть, надо реализовывать.

Students Calculator теперь open source

Время на прочтение2 мин
Количество просмотров5.2K
imageStudents Calculator — это мое первое серьезное приложение, идея доведенная до конечной реализации. Это то, что определило мою текущую профессию. Смешно вспомнить, начинал я писать его в блокноте, в функциональном стиле, не зная о существовании Javadoc и даже java.util, пользуясь только исходниками других j2me приложений. (Конечно, в дальнейшем, с ростом моих навыков программа пережила 2 рефакторинга)

Программа оказалась достаточно популярной среди школьников и студентов. Ей даже была посвящена колонка в одном журнале ). Но вершиной славы было письмо из китайского представительства Моторолы с предложением включить Students Calculator в набор стандартных приложений их мобильных телефонов (Чему, к сожалению, не суждено было сбыться)

Для чего этот пост: Я уже достаточно долгое время забросил работы над программой. Для меня это достигнутая цель и сложно мотивировать себя и далее выполнять пожелания пользователей. Также я думал, что с приходом touch-телефонов придет и волна хороших тач-калькуляторов. Однако, я по-прежнему получаю письма с вопросами и предложениями, просьбой предоставить исходники… (простят меня их авторы — отвечаю я на них редко). Так вот сегодня я решил побороть лень, найти в глубине бакапов исходники и выложить их во всеобщий доступ. Теперь каждый желающий сможет продлить жизнь этому проекту.

Оффсайт: calc.motofan.ru (тут последняя версия 1.5.0 PR от 26.03.2006)
Реальная последняя версия:1.9.2 альфа от 2.4.2008
Sourceforge: sourceforge.net/projects/stdcalc/develop — исходники тут
Для заинтересовавшихся

Обработка сигналов в Java

Время на прочтение3 мин
Количество просмотров15K
Передо мной частенько вставала задача написать какой-нибудь Java-сервис. В качестве ОС мы используем по большей части линукс, так что удобнее всего управляться с такими сервисами — работать с ними как с демонами. То есть, запускаем:
start-stop-daemon --start --make-pidfile --pidfile /var/run/myservice.pid --exec /usr/bin/java — -jar myservice.jar

, и останавливаем:
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/myservice.pid

Команда --stop посылает JVM сигнал SIGTERM и сервис останавливается. Все как бы неплохо, JVM завершается в штатном порядке, если только вам не нужно выполнить по завершении работы сервиса какое-либо действие. Например явно освободить ресурс, или написать что-нибудь приятное в stdout.

Но все не так страшно, благо JVM начиная с 1.3.1 позволяет обрабатывать сигналы. За ответом как — под хабракат.
Читать дальше →

Как я строил свой датацентр — часть первая, подготовительная

Время на прочтение2 мин
Количество просмотров39K
Как известно, любой стартап начинается с фразы «Как же вы за***ли, лучше сам сделаю лучше».

В 2007 году положение с датацентрами в Москве, да и во всей России было критическим. Попасть туда простому хостеру можно было только по предварительной записи. Драли с него втридорога, сервера частенько перегревали, электричество периодически отсутствовало, и еще, стоило датацентру начать генерировать 2-3 гигабита полосы, как он тут же воображал себя царем горы, пытался барыжить твоим трафиком, а с несогласными боролся методом пускания моего трафика через узкий зашейпенный канал ***телекома зарубеж.
А общение с ночными дежурными датацентра — это отдельная песня. Чаще всего было проще приехать и самому найти вывалившийся патчкорд, чем полночи пытаться добиться от мало вменяемого, ничего не хотящего юноши. И это хорошо, если дежурный был и попасть в датацентр ночью было возможно. Некоторые датацентры работали с 9 до 5, кроме праздников и выходных дней. Все остальное время там не было НИКОГО. Сервер, упавший в пятницу вечером, пролежит, минимум, до дня понедельника.

Картинка, о том, что творилось внутри типичного датацентра того времени.
картинка Взято с сайта Nag.ru

Мне, к тому времени, это порядком надоело, и, как выход, я решил строить свой датацентр, ориентированный на запросы меня и моих пользователей.
Читать дальше →

Как заработать деньги на торговых автоматах

Время на прочтение4 мин
Количество просмотров5.4K
imageЗнаете ли вы, что общего у терминала по приёму платежей в подземном переходе, гандономата в Лавке Студии Лебедева, и кран-машины, вокруг которой толпятся ребятишки, в надежде вытянуть мягкую игрушку? Всё это — вендинговые автоматы.

Вендинг — это продажа товаров и услуг с помощью автоматизированных систем (торговых автоматов). Вендинг получил широкое распространение в мире, как удобный и не очень требовательный способ вести торговлю или оказывать услуги. В 2001 объём вендинга в США составил $24,34 млрд. В Японии — около $60 млрд (самый большой в мире). (Wikipedia)

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

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

Как заработать на торговых автоматах: кофе, снеки и все-все-все

Время на прочтение7 мин
Количество просмотров9.2K
Блог им. Andorro при поддержке портала «Век Вендинга» продолжает серию публикаций (1, 2) про вендинговый бизнес в России. На сей раз мы расскажем вам о том, какие бывают торговые автоматы.

Предупреждение: в этой статье будет много матов — в частности, кофематов, снекоматов и прочих хотдогоагрегатов. А также парочка вредных советов и несколько картинок. Кому это надо — добро пожаловать под кат.

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

Как заработать на торговых автоматах: законы и налоги

Время на прочтение4 мин
Количество просмотров2.8K
Это вторая статья цикла публикаций о вендинговом бизнесе в России, совместного проекта блога им. Andorro и онлайн-издания "Век Вендинга".

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

Поэтому в этой статье почти не будет IT, карточных игр и голых женщин, зато будет всё то, что нужно учитывать при старте вендингового бизнеса: сертификация, лицензирование, фискализация и ограничения на продажи некоторых видов товаров.

Итак, если вы уверены, что вам это нужно — добро пожаловать под хабракат.

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

Обзор NoSQL систем

Время на прочтение5 мин
Количество просмотров56K
Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».


Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
  • горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
  • производительность каждого отдельного сервера
  • не гибкий дизайн логической структуры.
Читать дальше →

Нагрузочное тестирование «по-быстренькому»

Время на прочтение3 мин
Количество просмотров212K
Может кому будет интересно как «по-быстрому» провести нагрузочное тестирование своего веб-приложения.
Подробности под катом
Читать дальше →

Основы декларативного программирования на Lua

Время на прочтение12 мин
Количество просмотров52K
Луа (Lua) — мощный, быстрый, лёгкий, расширяемый и встраиваемый скриптовый язык программирования. Луа удобно использовать для написания бизнес-логики приложений.

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

Луа — мультипарадигменный язык программирования. Одна из сильных сторон Луа — хорошая поддержка декларативного стиля. В этой статье я кратко опишу базовые декларативные средства, предоставлямые языком Луа.
Читать дальше →

Канбан в IT (Kanban Development)

Время на прочтение7 мин
Количество просмотров284K
Я собираюсь написать несколько статей про новую методологию гибкой разработки Канбан (Kanban Development) в целях подготовки к Scandinavian Agile Conference 2009, где я буду делать один из докладов (кстати, заодно приглашаю всех на конференцию).
Сегодня публикую первую из статей.
Основная задача первой статьи — это как можно проще описать основы Канбан: что это такое, в чем отличие от других гибких методологий и зачем это нужно.
Также я хотел бы собрать как можно больше вопросов и сомнений в комментариях, чтобы ответить на них в следующих статьях, так что пишите всё, что вам непонятно, или что ещё вы хотели бы узнать про Канбан.
Я не то, чтобы большой специалист по этой новой методологии, но мы внутри команды пришли к Канбану самостоятельно и последовательно прошли все этапы мутации от SCRUM до Канбан, так что практический опыт есть.

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

Мой отчет по годовому изучению платформы Java EE

Время на прочтение6 мин
Количество просмотров119K
Этот пост – отчет по результатам годового изучения платформы Java EE.
Он будет полезен мне своей отчетностью. Может быть пост будет полезен тем читателям хабра, которые задумали учить Джаву.

подробности

Были получены исходники 3300 глобальных интернет-проектов

Время на прочтение5 мин
Количество просмотров279K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность