Pull to refresh
27
0
kriomant @kriomant

User

Send message

Шортики — короткие и смешные, или как мы готовили сайт к Хабраэффекту

Reading time7 min
Views3.1K


Намба 0: Вступление

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

Как раз в этот момент я хотел подучить программирование и искал несложную задачу. Сайт я накидал довольно быстро — за пару вечеров, рассказал о нем коллегам по работе и паре знакомых в IRC, и собирался уже о нем забыть, как вдруг обнаружил, что за два дня сайт посетило 500 человек, из которых чуть ли не треть подписалась на RSS. Стало понятно, что концепция людям понравилась. Немного прилизав сайт внешне, я решился показать его Хабрасообществу — Шортики — короткие и смешные, прошу любить и жаловать.

P.S. Учитывая то, что это не совсем стартап (проект пока некоммерческий, да и «стартап» — слишком громкое слово для моей поделки), приобретенная за годы пребывания на сайте хабрасовесть не позволила мне написать нетехническую статью. Поэтому, под катом вас ждет занимательная история о том, как мы готовили Шортики к Хабраэффекту.

Читать дальше →
Total votes 230: ↑193 and ↓37+156
Comments205

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

Reading time6 min
Views42K


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

В данной статье описывается возможная реализация нечеткого поиска, которая была применена для поиска на сайте edatuda.ru.
Читать дальше →
Total votes 112: ↑105 and ↓7+98
Comments22

Быстрое умножение многочленов при помощи преобразования Фурье — это просто

Reading time9 min
Views78K
Добрый вечер.
Этот пост посвящён быстрому преобразованию Фурье. Будут рассмотрены прямое и обратное преобразования (в комплексных числах). В следующей части я планирую рассмотреть их применения в некоторых задачах олимпиадного программирования (в частности, одна задача про «похожесть» строк), а также рассказать про реализацию преобразования в целых числах.
БПФ — это алгоритм, вычисляющий значения многочлена степени n=2k в некоторых n точках за время O(n⋅logn) («наивный» метод выполняет ту же задачу за время O(n2)). За то же время можно выполнить и обратное преобразование. Так как складывать, вычитать и умножать массивы чисел гораздо легче, чем многочлены (особенно умножать), БПФ часто применяется для ускорения вычислений с многочленами и длинными числами.
Читать дальше →
Total votes 112: ↑105 and ↓7+98
Comments38

Скрипт создания ярлыков удалённого управления

Reading time4 min
Views19K
Представьте, что у вас есть таблица с названиями и адресами устройств и сервисов и вы можете легко получить из неё множество ярлыков для запуска браузера, putty, удалённого рабочего стола или telnet для управления этими устройствами. На картинке ниже схематично это показано:

Здесь красивая картинка про то, как сухие строчки электронной таблицы становятся чудодейственными ярлыками.
Зачем это вообще нужно? Например к вам на эксплуатацию или обследование попала новая система или вам передали в пользование какую-нибудь тестовую среду. Чтобы не вбивать адреса или не копировать из файла каждый раз при подключении к хостам, можно однажды запустить скрипт и создать все ярлыки разом.
Внутри как раз про такой скрипт.
Total votes 57: ↑49 and ↓8+41
Comments27

Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь

Reading time4 min
Views38K
Бесценный опыт работы с Django, или Django для блондинок, брюнеток и всех-всех-всехПоследние 15 недель мы активно работали над проектом «Стиллион», первым нашим мейнстрим-проектом, написанным на Django. Был приобретен интересный опыт, которым мы хотели бы поделиться с сообществом.
Статья, прежде всего, будет интересна новичкам в Django.
За катом список полезных плагинов, которые мы использовали, и ещё немного клёвых фич
Total votes 108: ↑100 and ↓8+92
Comments59

Система непересекающихся множеств и её применения

Reading time10 min
Views70K
Добрый день, Хабрахабр. Это еще один пост в рамках моей программы по обогащению базы данных крупнейшего IT-ресурса информацией по алгоритмам и структурам данных. Как показывает практика, этой информации многим не хватает, а необходимость встречается в самых разнообразных сферах программистской жизни.
Я продолжаю преимущественно выбирать те алгоритмы/структуры, которые легко понимаются и для которых не требуется много кода — а вот практическое значение сложно недооценить. В прошлый раз это было декартово дерево. В этот раз — система непересекающихся множеств. Она же известна под названиями disjoint set union (DSU) или Union-Find.

Условие


Поставим перед собой следующую задачу. Пускай мы оперируем элементами N видов (для простоты, здесь и далее — числами от 0 до N-1). Некоторые группы чисел объединены в множества. Также мы можем добавить в структуру новый элемент, он тем самым образует множество размера 1 из самого себя. И наконец, периодически некоторые два множества нам потребуется сливать в одно.

Формализируем задачу: создать быструю структуру, которая поддерживает следующие операции:

MakeSet(X) — внести в структуру новый элемент X, создать для него множество размера 1 из самого себя.
Find(X) — возвратить идентификатор множества, которому принадлежит элемент X. В качестве идентификатора мы будем выбирать один элемент из этого множества — представителя множества. Гарантируется, что для одного и того же множества представитель будет возвращаться один и тот же, иначе невозможно будет работать со структурой: не будет корректной даже проверка принадлежности двух элементов одному множеству if (Find(X) == Find(Y)).
Unite(X, Y) — объединить два множества, в которых лежат элементы X и Y, в одно новое.

На рисунке я продемонстрирую работу такой гипотетической структуры.


Как такое сделать и зачем оно нужно
Total votes 114: ↑109 and ↓5+104
Comments29

Таблетка от пингвиньего жара своими руками

Reading time12 min
Views26K
Стал я тут недавно 'счастливым' обладателем нетбука на базе Atom N270. Windows XP, естественно для меня, был немедленно выкинут с жёсткого диска и заменён Linux'ом. И всё было хорошо… где-то минут 15, пока процессор (вообще, конечно, все вам скажут, что не процессор, а чипсет, но всякие тесты, вроде кручения бесконечных пустых циклов в bash показали, что именно процессор) не стал чрезмерно горячим в процессе установки всяких разных пакетов (я вообще не понимаю, откуда Intel взяла оценку для TDP N270 в 2.5Вт).

Другая ситуация. У моего знакомого довольно пожилой ноутбук ASUS с достаточно странными настройками ACPI, в таблицах которого записано, что включать throttling нужно при температуре системы в 89 градусов Цельсия, а отрубать систему от критического перегрева при температуре в 81 градус.

Эмс… Вы не сочтите это всё антипиаром ASUS и Intel, ибо (я уверен) на других ноут(нет)буках с другими x86-процессорами вполне появляются схожие проблемы, и этот пост о том, как их решать, а не о том, какие праАативные флагманы IT… И вообще, я фанат ARM'ов… Так что для меня, что Intel, что AMD — одинаковое x86-зло… Но просто факт остаётся фактом. В некоторых старых моделях ноутбуков от ASUS кривые таблицы ACPI, а Atom'ы греются.

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

Проблема только в том, что стандартные рецепты манипулирования только лишь power-уровнями процессора в Linux (при помощи подсистемы cpufreq), которые раздаются на всех форумах направо и налево, недостаточно эффективны. Тот же Atom ощутимо греется находясь и в самом 'экономном' режиме, а моему знакомому в работе периодически нужна высокая производительность процессора, однако не ценой отключения по критической температуре. И при этом сброс процессора его ноутбука в 'экономный' режим при повышении температуры от перегрева не спасал.

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

Читать дальше →
Total votes 122: ↑100 and ↓22+78
Comments55

Шпаргалка по расшифровке имен видеофайлов

Reading time8 min
Views287K
Как то стало интересно что значат разные буковки/цифарки через точку в названиях видеофайлов.

Пост — результаты гугления, обобщения, структуризации и некоторой правки орфографии.
Возможно, кому то пригодится. Я, например, перестал связываться с TC.
Читать дальше →
Total votes 334: ↑273 and ↓61+212
Comments81

Пишем апплет для GNOME на Python

Reading time9 min
Views4.7K
Публикую данный пост по просьбе уважаемого VladX, у которого возникло временное недопонимание с кармой.

Апплет — это маленькое приложение, встраиваемое непосредственно в панель GNOME. Обычно апплет выполняет какой-то опеределенный узкий функционал (изменение громкости, монтирование устройств), что выгодно отличает его от громоздкого оконного приложения. На самом деле знающему Python кодеру не составит труда написать собственный апплет, но и для незнающих есть выход: большое количество полезных (и не очень) апплетов лежит на сайте gnomefiles.org, помимо этого, на официальном сайте есть примеры написания апплетов на C.
Поехали!
Total votes 37: ↑34 and ↓3+31
Comments24

DNS Tunneling via iodine: сыр действительно бесплатный

Reading time3 min
Views25K
Есть:
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns

Хочется:
полноценный интернет, пусть даже очень медленно
Как?
Total votes 85: ↑78 and ↓7+71
Comments70

Обзор способов вывода электронных денег в России

Reading time5 min
Views64K
Вступление

Тема весьма избитая, уж что только нам не предлагают всяческие обменники и операторы денежных переводов… Но всё же. В этой статье приведён мой личный опыт и частное субъективное мнение касательно существующих вариантов. Статья не зациклена на одной конкретной системе, приведены различные варианты.
Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments114

Установка PhotoShop CS4 под Ubuntu 9.04 Jaunty

Reading time4 min
Views5.2K
Уважаемые коллеги, позвольте предложить вам мой первый пост на хабре — перевод публикации по установке Adobe PhotoShop CS4 под Ubuntu 9.04 Jaunty.

Немалое количество пользователей используют Adobe PhotoShop, и, похоже, CS4 работает (под Ubuntu — прим. пер.). Однако установка его нетривиальна, и требует выполнения некоторых действий: Нам потребуется скомпилировать пропатченную сборку Wine 1.1.25, после чего добавить еще связку утилит в систему.
Также не лишним будет напомнить, что вам потребуется легальная (либо триальная :) — прим. пер.) версия Adobe PhotoShop CS4.
Эта инструкция предназначена только для Ubuntu Jaunty (она может сработать и для других сборок, но я в этом сомневаюсь)
Читать дальше →
Total votes 67: ↑51 and ↓16+35
Comments170

Как открыть интернет-магазин с голой жопой

Reading time3 min
Views6.4K
Последнее время часто слышу жалобы, что нет юрлица, а значит ничего сделать нельзя, ибо непреодолимый страх, что «придут злые опера и закроют за незаконную предпринимательскую деятельность».

Не буду растекаться по древу насчет «до 5-7 тыс. у.е. в месяц в качестве физлица вы никому в упор не интересны».

Допустим без юрлица ну никак нельзя, да еще и на сайт с рекламой денег нет.  Что делать? 

По шагам:
1. Изучаете товары (Я.Маркет, запросы в Директ, ближайший рынок) на предмет «что бы такого не слишком приевшегося и конкурентного, но при этом простого в доставке, и чтобы геморроя с гарантиями/лицензиями поменьше.
Хинт: сувениры, игрушки, коллекционеры всех мастей. Берете одну/несколько специфических ниш для отработки.
Не надо брать строительство, окна, бытовую технику/электронику. Там, где кокурентов дофига.

2. Идем на ближайший рынок, торговый комплекс, а лучше отраслевую выставку(там народ крупнее и плотнее).

Читать дальше →
Total votes 251: ↑217 and ↓34+183
Comments139

Простейший плагинчик для Internet Explorer при помощи html, javascript и .inf

Reading time2 min
Views2.1K
Даже если вы сами не пользуетесь IE, возможно вы пользуетесь HTML help или у вашего сайта есть пользователи на IE, которым вы хотите облегчить жизнь.

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

Читать дальше →
Total votes 22: ↑14 and ↓8+6
Comments6

текст под произвольным углом без флеш и js

Reading time3 min
Views30K
Ранее здесь была представлена статья о том как сделать вертикальный текст картинками, генерируемыми php.

Теперь я хочу вам рассказать о том как сделать поставленную задачу без картинок, флеш и js, только средствами html и css. К тому же стало возможно сделать текст под произвольным углом. В конце статьи есть готовый пример.

вертикальный текст и текст под углом
Читать дальше →
Total votes 181: ↑170 and ↓11+159
Comments115

Таблетки счастья

Reading time2 min
Views1.5K
Антивирус — это хорошая штука. Он лечит и убивает, «если неизлечим». Только вот есть такие твари, которые оставляют после себя немало следов и порой неприятных, например, удаляют, создают и изменяют ключи в реестре, создают странные папки и текстовые файлы, переименовывают системные библиотеки и прочее. Порой картина выглядит так, что после очищения компьютера от обитателей серпентария вредоносного ПО всё равно хочется «снести винду».

Недавно мой комп на работе поразил чудесный вирус под названием Brontok. Запущенный в срочном порядке CureIt сделал своё дело, но осталось много интересного. Довольно быстро я наткнулся на таблетку — утилиту, которая занимается филигранной чисткой компьютера после конкретного вируса с последующим выводом отчёта и рекомендациями.

Чуть позднее подобные «аптечные киоски» обнаружились в нескольких местах. В принципе все они должны выполнять одну и ту же работу, но кто лучше, кто хуже, я не проверял и не сравнивал, сам пользовался утилитой Sophos'a.

www.sophos.com/support/disinfection
www.kaspersky.ru/removaltools
www.bitdefender.com/site/Downloads/browseFreeRemovalTool
www.avg.com/virus-removal
www.avira.com/en/support/antivir_removal_tool.html
www.eset.com/download/free-virus-remover.php
www.symantec.com/norton/security_response/removaltools.jsp
support.microsoft.com/kb/890830 — не совсем таблетка, но при беглом ознакомлении меня заинтересовала, как администратора, советую присмотреться к ней повнимательней.

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

Самое главное — они высокоэффективны, весят сущие килобайты, бесплатны и объясняют суть своих действий.
Total votes 37: ↑30 and ↓7+23
Comments33

AUTOSTOP — скрипт для защиты флешки от autorun-вирусов

Reading time2 min
Views28K
Предлагаю свой вариант борьбы с autorun-вирусами на флешках, т.к. существующие на сегодняшний день решения не устраивают меня по нескольким причинам.

Основные существующие способы можно разделить на 3 категории:
  • Установка на компьютере резидентного монитора, который при подключении флешки проверяет наличие файла autorun.inf, и при наличии такового принимает меры. Минус — привязка к конкретной машине
  • Защита флешки методом прав NTFS — отличный железобетонный способ, но его преимущества являются одновременно и его недостатками — NTFS не всегда применима (скажем в случае Win9x, или конкретной модели автомагнитолы или DVD-плеера, читающих только FAT).
  • Метод создания на флешке одноименного каталога AUTORUN.INF. Из минусов можно отметить то, что новые вирусы научились удалять этот каталог, или переименовывать в случае невозможности удаления

Именно третий метод был взят мной за основу, и доработан. Внешне все выглядит вот так:

Индикация

Принцип работы скрипта заключается в следующем:
Читать дальше →
Total votes 114: ↑99 and ↓15+84
Comments102

Аренда сервера для стартапа

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

К примеру аренда четырехядерного AMD Opteron 2344 HE (1.7 GHz), 4Gb RAM, 2x250GB HDD обойдется в $100, что сравнимо с арендой порта и места в стойке под сервер у нас в стране.
Читать дальше →
Total votes 86: ↑80 and ↓6+74
Comments166

Клиентские Windows приложения на JavaScript

Reading time4 min
Views22K
Хочу рассказать про один интересный способ создания приложений на JavaScript с родным виндовым GUI.

Вообще, существует куча разных вариантов написания виндовых приложений на JavaScript:
  1. HTA и WSH — HTML Applications и Windows Script Host — это, вероятно, самые известные технологии. HTA фактически представляет собой HTML страницу с расширенными правами в системе — возможностью лазить в сеть, гадить в реестр, файловую систему и подключать к этим делам ActiveX. С использованием HTA сделаны многие компоненты самой Windows.
  2. .NET Framework — этому вообще по барабану, на чем вы пишете, лишь бы итогом был MSIL. Возможно, JScript.NET вместе с Windows.Forms могут вызвать у кого-то ощущение родного виндового интерфейса. Лично меня они совсем не радуют — ни визуально, ни скоростью.
  3. XULRunner — framework от Mozilla предлагает Gecko вместо IE, XpCOM вместо COM/ActiveX. Это всего за 20 мегабайт оверхеда.
  4. wxJavascript — известная кросс-платформенная библиотека wxWidgets теперь и для JavaScript. Все это благодаря JS-движку SpiderMonkey от Mozilla и стараниям одного бельгийца. Кстати, этот же уважаемый — автор mod_js для Apache.

Ввиду того, что все вышеописанное уныло, громоздко и требует изучения, предлагаю рассмотреть еще один вариант — WSO.
Читать дальше →
Total votes 45: ↑31 and ↓14+17
Comments39

Включение сглаживания шрифтов в wine

Reading time1 min
Views13K
Как многим из вас уже известно, начиная с версии 1.1.12 wine поддерживает сглаживание шрифтов, включая субпиксельное. Однако по умолчанию это сглаживание выключено. Для его включения нужно пошаманить с реестром в wine. Но есть способ проще:

Я написал небольшой скрипт (английская версия), с помощью которого можно включить/выключить сглаживание, при этом выбрать какой именно режим сглаживания вам нужен:



Быстро загрузить и запусть его можно так:
wget http://files.polosatus.ru/winefontssmoothing.sh
bash winefontssmoothing.sh
Скрипт также вполне корректно поддерживает указание WINEPREFIX.
Total votes 67: ↑60 and ↓7+53
Comments30

Information

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