Как стать автором
Обновить
0
0
Игорь Лифанов @auric

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

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

Обратные вызовы и исключения С++

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

Введение


Как известно, многие С-библиотеки используют обратные вызовы для обеспечения какого-либо функционала. Так поступает, например, библиотека expat для реализации SAX модели. Обратный вызов или callback используется для возможности выполнить пользовательский код на стороне библиотеки. Пока такой код не несет побочных эффектов — все нормально, но как только на арене появляется С++, все, как всегда, становится нетривиальным.

Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии36

Тонкая настройка Synaptics Touchpad

Время на прочтение3 мин
Количество просмотров118K
Synaptics производит отличные тачпады: они отзывчивы, обладают мультитачем и, что самое главное, их можно долго и нудно легко и просто настраивать под свои ловкие пальчики.

Вот только одна незадачка: вся эта прелесть прекрасно работает в Windows 7, в то время как в Linux как всегда лишь унылые огрызки, и наполовину не использующие все свои возможности.

Бесстрашный Хабраюзер, готов ли ты бороться со вселенской несправедливостью? Тогда добро пожаловать под хабракат, тебя ждет море удовольствия, linux-way и миллионы счастливых кликов на выходе :)
Читать дальше →
Всего голосов 62: ↑46 и ↓16+30
Комментарии51

Корпоративный Jabber сервер: догнать и перегнать Google

Время на прочтение7 мин
Количество просмотров33K
Я думаю все знают про Google Apps. Это великолепный сервис для организации почты и коллективной работы в рамках компании. Однако у него есть пара маленьких таких недостатков: он предоставляется as is во-первых, и вся ваша корпоративная документация, почта и переписка при использовании Google Apps будут храниться на серверах Google.

В итоге чаще всего серьёзные фирмы выбирают сложный путь — поддерживать все необходимые сервисы на собственных серверах. Этот путь, конечно, даёт массу преимуществ. Системный администратор компании сможет настроить что угодно и как угодно. Однако есть и один существенный недостаток: если у Google всё уже настроено и связано воедино, то вам придётся настраивать всё вручную. Плюс вы вряд ли сможете обеспечить вашу систему таким же красивым и удобным веб-интерфейсом.

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

Читать дальше →
Всего голосов 102: ↑89 и ↓13+76
Комментарии81

5 галочек: чеклист юзабилити

Время на прочтение6 мин
Количество просмотров30K
Мы выделили 5 основных пунктов, по которым можно определить юзабилити сайта. Список спорный и в основном касается продающих сайтов. И да, эти пять пунктов — среднее арифметическое опыта, полученного при обработке заявок на конкурс «Юзабельный вебпроект». Думаете, мы раздали слонов и забыли?


оригинал картинки

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

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

Сразу оговоримся, что мы не оцениваем юзабилити в вакууме, нам важно, чтобы сайт работал, т.е. «продавал». Товары, услуги, идеи — не важно. Речь может идти о бесплатном веб-сервисе, для которого транзакцией станет регистрация посетителя.
Читать дальше →
Всего голосов 147: ↑131 и ↓16+115
Комментарии101

Сравнение алгоритмов поиска маршрутов в StarCraft и StarCraft 2

Время на прочтение4 мин
Количество просмотров16K
Те кто играли в бета-версию Starcraft 2 наверняка заметили, как изменился алгоритм поиска путей движения юнитов. Многое из сказанного в статье основано на личных оценках. Я не программировал ни BroodWar, ни StarCraft 2 и некоторые выводы будут основаны на моих догадках. Также не верьте на 100% моим словам, постарайтесь сделать собственные заключения. В статье будут как факты, так и домыслы.

Перевод статьи The Mechanics of Starcraft 2 Pathfinding

Читать дальше →
Всего голосов 195: ↑176 и ↓19+157
Комментарии110

Победители конкурса по юзабилити

Время на прочтение1 мин
Количество просмотров21K
Обработав 166 поступивших заявок, мы получили шортлист из 15 пунктов. Сегодня мы готовы огласить пятерку победителей, выбранных коллегиальным голосованием.


(наши победители таких проблем не имеют)

Не будем пускаться в лирические отступления. Вот эти сайты.
Читать дальше →
Всего голосов 57: ↑42 и ↓15+27
Комментарии52

Убунту с яблочным вкусом: Ubuntu на Apple iMac

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

1. Предыстория



Мне понадобилось купить компьютер. Так случается порой.

В моём случае ситуация была такова: я менял работу, а единственный компьютер, который у меня был — рабочий ноутбук, который, конечно же, пришлось отдавать.

Пару лет назад я (в очередной раз) пересел на Убунту, да так уже и не смог больше с неё слезть: чем дальше, тем больше к ней привязывался и тем сильнее раздражала и не нравилась Windows. Жене на нетбук, разумеется, — Ubuntu Netbook Edition. Я также поставил Убунту тёще (живущей за тысячи километров от меня), и, хоть прошло уже более года, никаких серьёзных проблем ни с компьютером, ни с тёщей не возникло. На рабочем ноутбуке основной системой является также Убунту, а для программ, которые необходимо запускать в Windows, используется бесплатный VMware Player (и Windows, шедшая с ноутом в комплекте).

Короче говоря, альтернатив этой системе я не рассматривал и ни разу не собирался.
Много-премного картинок, гигабайты трафика...
Всего голосов 272: ↑186 и ↓86+100
Комментарии252

Подходы к извлечению данных из веб-ресурсов

Время на прочтение4 мин
Количество просмотров72K
В предыдущей статье мы рассмотрели основные понятия и термины в рамках технологии Data Mining. Сегодня более детально остановимся на Web Mining и подходах к извлечению данных из веб-ресурсов.

Web Mining — это процесс извлечения данных из веб-ресурсов, который, как правило, имеет больше практическую составляющую нежели теоретическую. Основная цель Web Mining — это сбор данных (парсинг) с последующим сохранением в нужном формате. Фактически, задача сводится к написанию HTML парсеров, и как раз об этом поговорим более детально.
Читать дальше →
Всего голосов 51: ↑34 и ↓17+17
Комментарии45

Как собрать Кубик Рубика 5х5х5 (часть 1)

Время на прочтение8 мин
Количество просмотров41K
В далеком 2008 году в мои руки попал кубик рубика нестандартных размеров. Как собирать такое чудо, я тогда и понятия не имел. Поначалу мы с друзьями собирали его частично, не имея понятий об алгоритме сборки, но потом захотелось всё-таки научиться собирать его полностью. Через гугл я нашёл некоторое подобие алгоритма сборки, но он к сожалению был неполный и грешил неточностями. Некоторое время анализировав нагугленное и алгоритм классической сборки кубика 3х3х3 я осознал полный алгоритм сборки куба не только 5х5х5, но и 4х4х4 (хотя у меня под рукой не было такого куба, я написал программу для моделирования такого кубика в 3D и проверил алгоритм). Всем, кто хотел бы научиться собирать такой кубик — добро пожаловать под кат.
Читать дальше →
Всего голосов 248: ↑231 и ↓17+214
Комментарии72

13 антисоветов разработчику, желающему написать хороший веб-сайт

Время на прочтение4 мин
Количество просмотров3.9K
Привет, разработчики на хабре!

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

1. Не проставляйте ключи!


СУБД пишут умные люди. Некоторые из них даже получают за это деньги. Зачем подсказывать им, как устроены данные? Пускай догадываются сами из названий полей и самих данных. В крайнем случае, админы поправят профайлером.
Читать дальше →
Всего голосов 146: ↑85 и ↓61+24
Комментарии101

Qt & Ubuntu. Настраиваем среду для компиляции win32-приложений

Время на прочтение3 мин
Количество просмотров28K
image
Эта мини-статья рассказывает об одном из способов осуществления кросс-компиляции приложений Qt для платформы win32.

Читать дальше →
Всего голосов 74: ↑69 и ↓5+64
Комментарии49

Coffeescript. И снова о нём. Резюме о приятностях

Время на прочтение4 мин
Количество просмотров5.7K
CoffeeScript — это, если так можно выразиться, язык высокого уровня, преобразуемый в JavaScript.

Основан простым парнем по имени Jeremy Ashkenas при поддержке его корешей, которые упомянуты на github'е. Вдохновленный Ruby, паренёк решил упростить всем нам жизнь и создал его! CoffeeScript!

Интересно?
Всего голосов 44: ↑34 и ↓10+24
Комментарии56

Коллекция примеров 64-битных ошибок в реальных программах — часть 1

Время на прочтение16 мин
Количество просмотров5.1K
Эту статью я посвящаю хабрапользователю f0b0s, который постоянно следит за нашей активностью, сопровождая ее тонким юмором, что держит нас в тонусе.

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

Я решил собрать примеры различных типов ошибок, которые мы сами обнаружили в реальных программах, о которых прочитали в интернете или о которых нам сообщили пользователи PVS-Studio. Итак, предлагаю вашему вниманию статью, представляющую собой коллекцию из 30 примеров 64-битных ошибок на языке Си и Си++.

Продолжение статьи >>

Читать дальше →
Всего голосов 150: ↑143 и ↓7+136
Комментарии62

Плейсхолдер

Время на прочтение2 мин
Количество просмотров8.4K
Хоть в HTML5 и есть атрибут placeholder, но он пока-что работает лишь в браузерах с движком webkit.

Посмотрев некоторые посты на хабре, я увидел, что кое-кто изобретал велосипед, а другой скрипт, который якобы и делает сей атрибут кроссбраузерным, в полях типа password показывает звёздочки.

Собственно и написал скромный код на jQuery, который это всё дело и поддерживает.
Читать дальше →
Всего голосов 41: ↑27 и ↓14+13
Комментарии34

Снова про формы: значения по умолчанию

Время на прочтение3 мин
Количество просмотров11K
jQuery дает практически безграничные возможности по обогащению пользовательского интерфейса, а самое интересное зачастую связано с элементами управления на страницах, в частности с формами.

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

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

Читать дальше →
Всего голосов 85: ↑60 и ↓25+35
Комментарии68

Жаргон программистов

Время на прочтение4 мин
Количество просмотров65K
Наткнулся на Stackoverflow.com на интересный топик с вопросом о новом в программистском жаргоне. Предлагаю здесь подборку наиболее интересных выражений.

Египетские операторные скобки

if (a == b) {<br>  printf("hello");<br>}<br><br>
Читать дальше →
Всего голосов 314: ↑284 и ↓30+254
Комментарии282

Nokia Remote Compiler

Время на прочтение2 мин
Количество просмотров1.3K
Хотелось бы представить небольшой обзор новой экспериментальной возможности, доступной в недавно вышедшем Nokia Qt SDK. Эта новая возможность позволяет использовать build серверы Nokia для сборки софта.
Эта возможность дает независимость от установленного в системе тулчейна, он вообще может быть не установлен. Соответственно таким образом можно легко собирать Symbian приложения в Линуксе или Макоси, а Maemo приложения в Виндовсе.
Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии28

Сторожевой пёс следит за вами (мониторинг хостинга)

Время на прочтение4 мин
Количество просмотров15K
Внимание! Данная статья для web-программистов — содержит исходники и техн. подробности.

На страже у качестваУ Вас было такое – что простой вопрос повергал Вас в ступор и глубокие раздумья? У меня такое случается каждый раз, когда клиенты или друзья спрашивают меня:

— Андрей, какой хостинг порекомендуешь для нашего сайта?


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

Казалось бы, где зарыта собака? Ведь для нас хостинг – это одна из любимейших мозолей, на которую часто наступают, потому что мы – SEOнизаторы. Мы трудимся – чтобы выводить свои сайты и клиентов в топы, а плохой и нестабильный хостинг распугивает сканирующих роботов Яндекса, Гугла и иже с ними. Впрочем, часто хостинг валится и днём, особенно во время пиковых нагрузок около 18:00 из-за наплыва в Интернете зевак под вечер.

Вот самое простое, что бывает – сайт исправно работает днём, пока бдит саппорт хостера. А ночью иногда исправно «лежит» в нокдауне. Например, скрипты хостера делают бекапы и все перегружено. Клиенты спят, покупатели спят, сайт спит. Все довольны, кроме поисковых пауков.

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

Чтобы как-то контролировать ситуацию – я написал пару лет назад монитор стабильности хостинга. Сейчас, когда у нас уже много других конкурентных преимуществ – мы готовы выложить исходники и алгоритм работы для Хабраобщественности, чему и посвящен этот пост.

Итак, ближе к делу.
Всего голосов 75: ↑64 и ↓11+53
Комментарии29

Все песни Виктора Цоя – слушайте и вспоминайте

Время на прочтение1 мин
Количество просмотров30K
Кто из вас, осваивая технику дворового гитарного мастерства, не пробовал подобрать «Восьмиклассницу», «Алюминиевые огурцы», «Пачку сигарет» (да-да, с проигрышем! :) или «Камчатку»? Если не играли – то подпевали, а если не подпевали – то обязательно слышали.

Сегодня, в день рождения Виктора Цоя, ностальгируйте вместе с нами – песен у группы «Кино» много, и все они доступны к прослушиванию легально и в хорошем качестве.



… и так далее.

Музыкальные болельщики Яндекса.
Всего голосов 190: ↑146 и ↓44+102
Комментарии77

Установка node.js на Linux, FreeBSD, Windows

Время на прочтение6 мин
Количество просмотров85K
node.js — серверный асинхронный Javascript, превосходный инструмент для создания серверной части COMET приложений, в частности, для игрушек, чатов, и других высоконагруженных проектов, использующий синтаксис Javascript, прекомпилируемый в машинный код, работающий на скорости, сравнимой с кодом на C++, очень быстрый, способный держать 10 — 12 тысяч подключений, и не создающий отдельного процесса/не интерпретирующий себя заново/не запускающий процесс при каждом новом клиенте. Использует в качестве основы V8 — движок Javascript от Google. Удобные возможности, можно установить значение переменной при одном посетителе, и считать это значение при ответе другому.
Обращаю внимание на то, что если вы не программировали, например, на Python или Ruby, только на PHP, не обходите его стороной, это не ещё один незнакомый язык. И в этом его преимущество — Javascript — знакомый язык, особенно для тех, кто программировал на PHP+Javascript, но PHP не позволял очень многих вещей, особенно в связке с Apache, например, аплоад файлов с полосой загрузки (без Flash), возможность низкоуровневого управления сетью (возможность написать, например, клиента или сервер Mysql или прокси-сервер вроде nginx).
О гибкости языка говорит тот факт, что расширения для работы с MySQL, например, написаны на самом Javascript.
Я планировал написать статью с описанием этой замечательной системы, с примерами, но на момент чтения читателю хорошо бы иметь под рукой установленную версию node.js. Поэтому этот пост о том, как установить node.js, в том числе и на Windows, что актуально в связи с недавним появлением порта под cygwin. (Да, есть информация о том, где скачать node.exe)
Читать дальше →
Всего голосов 66: ↑61 и ↓5+56
Комментарии48

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность