Search
Write a publication
Pull to refresh
25
0
netslow @netslow

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

Send message

Принтер из CD-ROM'a

Reading time2 min
Views128K
image



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

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

Гугл научился строить графики математических функций

Reading time1 min
Views53K

(кликабельно)

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

Опыт разработки GUI на JSF

Reading time3 min
Views50K
Разработкой браузерных GUI под явой я занимаюсь уже около 12 лет, среди прочего имею опыт использования сервлетов, JSP, XML/XSLT, Struts, Tapestry (3,4,5), Wicket, Spring MVC и GWT.

Но JSF обходил до сих пор стороной. Причина этому было то, что когда JSF только появился, то в своих первых инкарнациях выглядел устрашающе коряво — по сравнению с теми же Tapestry и Wicket.

Время шло, JSF не собирался умирать, а появился уже в версии 2.1. И я решил попробовать использовать его для одного из своих экспериментальных проектов, на которые я трачу примерно 3 месяца каждый год — для расширения кругозора и отвлечения от скучного консалтинга (которым зарабатываю детишкам на молочишко в остальные 9 месяцев).

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

Основные тезисы конференции HighLoad++ 2011

Reading time6 min
Views4.2K
imageВ октябре 2011 года в Москве проходила ежегодная конференция разработчиков высоконагруженных проектов HighLoad++.
Решил поделиться с читателями основными тезисами с конференции. Поскольку вся информация открыта и доступна на странице конференции, решил что собрать все тезисы вместе будет не такой уж и плохой затеей. Сразу отмечу, что в отчёте не содержится детальной информации о каждом докладе — затронуты лишь ключевые моменты.
Итак, о чём говорилось на HighLoad++ 2011.
Читать дальше →

Двухфакторная аутентификация на домашнем серваке — быстро, дёшево, дружелюбно

Reading time3 min
Views16K
Двухфакторная аутентификация — предоставления информации от двух различных типов аутентификации информации [»]

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



Это как если бы на дверь поставили второй замок. Ключ к первому — обычный пароль. Ко второму — действующий в течение 30 секунд одноразовый код. Попасть за дверь можно только если оба ключа окажутся правильными, а не один, как было раньше.

С некоторых пор Google сделала доступной двухфакторную аутентификацию в своих сервисах. Теперь токен переехал в ваш мобильный телефон с Android'ом! iPhone и Blackberry тоже сгодятся в такой роли. Очень удобно. Опробовав на Gmail, мне захотелось такую же штуку сделать у себя, тут-то я внезапно и нашёл libpam-google-authenticator.
Читать дальше →

Управление зависмостями в Android-проектах с использованием Ivy

Reading time7 min
Views5.8K
Если ваш Android-проект компилируется и собирается с помощью Maven или SBT (а может, и чем-нибудь другим, отличным от Ant), то вы уже используете механизм управления зависимостями, предоставляемый, что называется, «из коробки». Однако, если вы используете Ant, либо просто собираете приложение в Eclipse с помощью ADT-плагина, то такой функциональности у вас нет, и каталог lib в корне проекта наполняется вручную, а желания или возможности переходить на использование Maven'а конечно же нет. Тогда, есть ли возможность не складировать jar-файлы вручную, не держать их, бинарных, в VCS, не добавлять их самим в «Build Path» в настройках проекта? Конечно есть, какие вопросы!

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

Алгоритм сортировки Timsort

Reading time6 min
Views162K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы.
Читать дальше →

Малоизвестные особенности Java

Reading time4 min
Views142K
Готовясь к собеседованию, я решил освежить память да и вообще поискать каверзные и малоизвестные нюансы языка Java. Выборку пяти наиболее интересных на мой взгляд моментов я вам и предлагаю.

Вот уже подоспела и вторая часть статьи.


1. Нестатические блоки инициализации.

Всем, я думаю, известно, что в Java существуют статические блоки инициализации (class initializers), код которых выполняется при первой загрузке класса.

class Foo {
	static List<Character> abc;
	static {
		abc = new LinkedList<Character>();
		for (char c = 'A'; c <= 'Z'; ++c) {
			abc.add( c );
		}
	}
}


Но существуют также и нестатические блоки инициализации (instance initializers). Они позволяют проводить инициализацию объектов вне зависимости от того, какой конструктор был вызван или, например, вести журналирование:

class Bar {
	{
		System.out.println("Bar: новый экземпляр");
	}
}


Такой метод инициализации весьма полезен для анонимных внутренних классов, которые конструкторов иметь не могут. Кроме того, вопреки ограничению синтаксиса Java, используя их, мы можем элегантно инициализировать коллекцию:

Map<String, String> map = new HashMap<String, String>() {{
	put("паук",  "арахнид");
	put("птица", "архозавр");
	put("кит",   "зверь");
}};


Очень даже мощное средство, не находите?

JFrame frame = new JFrame() {{
	add(new JPanel() {{
		add(new JLabel("Хабрахабр?") {{
			setBackground(Color.BLACK);
			setForeground(Color.WHITE);
		}});

		add(new JButton("Торт!") {{
			addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent event) {
					System.out.println("Хабрахабр - торт!");
				}
			});
		}});
	}});
}};


Остальные четыре пункта под катом.
Читать дальше →

Новичкам про управление шириной канала в Linux

Reading time7 min
Views77K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →

«Изнанка» Форума Технологий Mail.Ru 2011: Хай-тек в event management

Reading time14 min
Views7.1K
Закончился Форум технологий Mail.Ru Group 2011, и теперь самое время рассказать об «изнанке» самого мероприятия. Думаю, это может быть многим интересно и полезно.

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

Расскажу о следующих темах:
  • Все о посетителях: расчеты, статистика, рекомендации, выводы, как оценивалась явка, как боролись с очередями, конвертация трафика и т.д.
  • Все о видеотрансляции: ПО, оборудование, как удалось опубликовать первые видео меньше, чем через час после доклада, какие были проблемы, как решали и т.д.
  • Все о фотосъемке-онлайн: как работает система публикации фото в реальном времени.
  • Прием вопросов через Twitter/SMS/сайт
  • Cтенографирование в реальном времени: ПО, проблемы, решения.

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

Red Hat: Позвольте «облаку» OpenShift компилировать ваши Java-приложения

Reading time2 min
Views5.2K
Решил перевести новость о том, что OpenShift теперь объединяет Jenkins, JBoss Tools и Maven, позволяя Java-разработчикам программировать, собирать, развёртывать и масштабировать приложение в облаке.

Red Hat предлагает вам использовать OpenShift не только для хостинга приложений, но и для всего цикла разработки ПО. Вы можете программировать, компилировать и улучшать своё ПО прямо в «облаке», не используя для этого десктоп или мощный ноутбук.

OpenShift — PaaS-облако, о запуске которого Red Hat объявил в мае. Эта облачная платформа существует в трёх версиях — Express, Flex и Power и позиционируется, как альтернатива Microsoft Azure или Google App Engine. Главное преимущество облачных вычислений состоит в том, что они автоматически масштабируют ресурсы, настолько, насколько это требуется для текущей нагрузки.
Читать дальше →

Elevator Pitch или грамотная презентация проекта за 60 секунд

Reading time2 min
Views6.4K
Я хочу рассказать вам про то, как создать грамотный Elevator Pitch – одноминутную презентацию проекта потенциальному инвестору на базе собственного опыта. Когда у вас есть всего одна минута, чтобы презентовать проект, вы должны четко понимать, на что потратить эти драгоценные секунды.

Краткость — сестра таланта

Для начала попробуйте описать ваш проект и уложиться в 150-200 слов, при этом нужно, чтобы в эти 200 слов уместилось описание основной идеи, её уникальность и польза для потребителя, ваша оценка рынка, состав и опыт команды, текущий статус проекта и объем желаемого финансирования. Так как вы можете не уложиться в минуту, когда будете пересказывать этот текст, постарайтесь всё важное вложить в первый абзац и первые 20 секунд презентации.

Первое впечатление

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

Как составить презентацию проекта (pitch book)

Reading time2 min
Views2.8K
Примечание: автор текста — Всеволод Леонов, Академия проектов Farminers

Всем привет. Если вы уже сделали упражнение от Александра Бородича и написали elevator pitch, самое время начать работу над более детальным документом (просто pitch, или pitch book), который вы отправите потенциальному инвестору после того, как он купился на ваш elevator pitch.
Читать дальше →

Идеальная маркерная доска

Reading time5 min
Views173K
Доска маркерная или whiteboard является практически обязательным атрибутом любой, уважающей себя, команды разработчиков. При должном умении и желании обычная доска способна сэкономить массу времени и существенно улучшить результат работы команды — быстрый и эффективный способ коммуникации всегда был очень критичным и непосредственно влиял на результат коллективных усилий.

Но можно ли сделать сам инструмент приятнее? Добавить изюминку?


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

Plugin Detector — каталог и рейтинг плагинов jQuery

Reading time6 min
Views5.6K
Последние четыре года я работал верстальщиком в разных питерских веб-студиях.

От полуподвальных контор из 3-5 человек до больших фирм 25-40 человек, работающих на рынке дорогих сайтов для крупных заказчиков. Но независимо от размера компании задачи были одни и те же.
  • нужно продать дизайн
  • сделать сайт, который не стыдно положить в портфолио
  • сделать оригинально, как еще не делали конкуренты

Таким образом, задачи верстальщикам и дизайнерам ставились одинаковые: «давайте что-то креативное, свежее, интересное».

Я очень хорошо понимаю верстальщиков, дизайнеров и владельцев веб-студий, поэтому чтобы облегчить им поиск плагинов под готовый функционал и в то-же время показать что-то свежее, чего еще многие [возможно] не видели, решил уволиться отовсюду, и запустить проект Plugin Detector



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

AI Challenge: Ants AI Challenge: оживляем «муравьев»

Reading time11 min
Views4.3K
В этой заметке я расскажу как написать довольно неплохого бота для Google AI Challenge. Примечательно, что сложные технологии связанные с ИИ не понадобятся, а базовая реализация умещается в тысячу строчек кода на языке C++. Сами методы в совокупности могут быть рассмотрены как некоторый Generic алгоритм, и на базе них можно построить бота, учитывающего некоторые стратегические особенности, который возможно будет играть еще лучше. В любом случае — хороший «быстрый старт» для тех, у кого пока ничего не получилось.
Читать дальше →

Ещё одна архитектура виртуальной машины (часть вторая)

Reading time4 min
Views1.4K
Данный пост является продолжением Ещё одной архитектуры виртуальной машины (части первой).

В прошлый раз мы остановились на примере модуля, вычисляющего факториал. Рассмотрим его подробнее, а потом запустим и проверим работу.


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

Как я уехал в Италию заниматься исследованиями по Computer Science

Reading time3 min
Views10K
Как я узнал об университете Тренто?

image
Было большое желание учиться за рубежом. Я был дважды в США по программе WORK&TRAVEL и думаю что это в немалой степени изменило мое мировоззрение. Итак, учился я, как и многие ребята IT-специальностей, в Уфимском Государственном Авиационном Техническом Университете, где получил степени бакалавра и магистра. Пришел к декану, а декан у нас женщина легендарная, в самом наилучшем смысле этого слова, и говорю: «Хочу учиться в аспирантуре за рубежом — желательно в США». Она: «по поводу США — ищи сам, а вот с университетами Италии, Германии и Австрии у нас партнерские отношения. 19го июля приедет профессор по Computer Science из университета Trento, Италия». Я пришел на презентацию этого профессора, посидел, послушал, после чего побеседовал с ним пару минут, в ходе которых он попросил прислать свое резюме.

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

Инструменты прототипирования и создания wireframes

Reading time2 min
Views91K
Навеяно долгими поисками различных систем прототипирования и желанием поделиться этим опытом. В данном посте отсутсвуют сложные системы типа iRise или IBM Rational Rose, ввиду того что они являются не столько и далеко не только системами простого прототипирования, да и стоимость этих решений подходит предприятиям немалого маштаба. Этот пост о чем-то более земном.

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

Учебный курс ITIL Expert, приготовление по Lifecycle рецепту

Reading time6 min
Views30K
На прошлой неделе сдал последний экзамен необходимый для получения сертификата ITIL Expert, о чем более подробно и хотелось бы рассказать. Далее под катом:
  1. что это вообще такое и откуда берется, а так же почему о нем никто не знает
  2. где учатся и как это проходит
  3. зачем это кому-либо вообще необходимо
  4. преимущества онлайн формы образования перед тренингами в учебных центрах
  5. немного про экзамен

Добро пожаловать под кат
Читать дальше →

Information

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