Собираем
информацию
по крупицам

RSS подписка

Подпишитесь на новости сайта по RSS

Главная страница

Здравствуйте!

 

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


Новости

Открыты исходники игры MoveNoid - арканоида с бесконтактным управлением
03-12-2017
22:31:25

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

 

MoveNoid - это игра по типу классического арканоида, в которой управление битой (ракеткой) происходит с помощью графической метки. Для захвата изображения используется обычная web-камера. Метка изготавливается из куска картона с помощью лазерного принтера или черного фломастера. Особенность данного арканоида в том, что бита свободно перемещается по экрану и может наклоняться на любой угол (даже перевернуться вверх-ногами). Это вносит новые возможности в механику игры, которую  можно развивать дальше.

 

 

 

 

Код написан мною с использованием библиотеки компьютерного зрения OpenCV. Для симуляции физики полета мяча использутся физический движок Box2D. Чтобы разработка была проста и приятна, используется C++ фреймверк Qt. Код распространяется под лицензиями GPL v.3 и BSD.

 

Для того, чтобы быстро составить представление, что собой представляет игра, я записал небольшое видео:

 

 

 

 

На сайте WebHamster.Ru для игры создана официальная страничка:

 

 

Официальная страничка MoveNoid

 

 

В настоящий момент код игры прост и не обвешан сложными абстракциями. Самое время подключиться к разработке и сделать один из пунктов Плана развития игры. Кто там не знал чем заняться? Вот вам реальный проект: весело и познавательно.

 

А я пошел отдыхать :)

 


Как я настраивал программный регулятор громкости для звуковой карты E-mu Tracker Pre USB в Linux
09-11-2017
17:39:23

Наконец-то у меня дошли руки донастроить свой домашний компьютер с операционной системой Linux Debian. Одной из нерешенных проблем было то, что не работал регулятор громкости для внешней звуковой корточки E-mu Tracker Pre USB. Вот она, красавица:

 

 

 

 

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

 

 

Как заставить работать программный регулятор громкости

для звуковой карты E-mu Tracker Pre USB в Linux

 

 

Да, это было трудно. И я надеюсь, что информация в статье поможет владельцам карточек E-mu разобраться, как можно произвести донастройку карточки в звуковой подсистеме Linux. Если, конечно, разработчики снова что-нибудь не поменяют.

 


Как купить правильный строительный уровень
07-10-2017
12:42:18

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

 

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

 

Но перед тем как пойти в магазин я обчитался статьями в Интернете, и составил себе некое представление о современных реалиях рынка строительных уровней. И правильно сделал! Какой только чуши я не услышал от продавцов. Если бы я не знал заранее, что мне нужно, обязательно купил бы задорого какое-то кривое поделие и дальше мучался бы с ним. В общем, знание - сила. Поэтому я написал небольшую статью, в которой даю выжимку из того, что нужно знать про уровни:

 

 

Как выбрать уровень. Как выставить уровень в горизонталь (юстировка)

 

 

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

 


Ретроспективное удаление спама в самодельной гостевой книге
12-09-2017
17:05:50

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

 

В настоящее время бороться со спамом можно только комплексными мерами. Необходимо создать несколько слоев защиты: надо прикрутить капчу; написать несколько фильтров грубой аналитики, которые будут отсеивать сообщения с явными признаками спама; надо сделать хотя бы примитивный учет поведенческих факторов с привязкой к IP адресам, чтобы отсеивать мамкиных спамеров; надо сделать проверки по международным антиспамовым базам, например сделать защиту от спама с помощью stopforumspam.com.

 

По моим наблюдениям, последний пункт - самое мощное средство борьбы, но и оно работает неэффективно, если на сайт натравливается новая рекламная кампания, которая еще не успела набрать отрицательную статистику на ресурсах типа stopforumspam.com. И тут необходимо городить еще один слой защиты гостевой книги, который я называю "ретроспективное удаление спама".

 

Идея очень проста: проверять добавляемые сообщения нужно не только в момент добавления, но и периодически уже после того, как они появились в гостевой. Да, возможно спам-сообщения будут некоторое время висеть в гостевой, пока stopforumspam.com не накопит статистику, но как только это будет сделано (а делается это за пару часов), спам-сообщения будут автоматически удалены.

 

Такой механизм контроля спама хорошо подходит к редко модерируемым сайтам. Например, на этом сайте я имею возможность раз в пару недель проверять гостевую, и за это время в гостевой скапливается некоторое количество спам-сообщений, пробившихся через фильтры. Ретроспективное удаление в этом случае - единственный выход. И вот недавно я прикрутил примерно такой PHP код:

 

 

// Ретроспективное удаление спама - проверяются уже имеющиеся записи гостевой
private function retrospectSpamCheck()
{
  $days=3; // Чтобы снизить нагрузку на базу,

           // проверяются только записи, добавленные

           // в указанное последнее количество дней

  $edgeTime=time()-$days*3600*24;

  $this->db->select('id, name, email, ip');
  $this->db->where('time >', $edgeTime);
  $query=$this->db->get('guest_book');
  $messages=$query->result_array();

  foreach($messages as $message) {
    if($this->isSpam($message['name'],

                     $message['email'],

                     $message['ip'])) {
      $this->db->where('id', $message['id']);
      $this->db->delete('guest_book');
    }
  }
}

 

// Определение наличия спама через stopforumspam.com

function isSpam($name, $email, $ip)
{
  try
  {
    $data = unserialize( file_get_contents(

            'http://www.stopforumspam.com/api?&email='.

            urlencode($email).

            '&username='.urlencode($name).
            '&ip='.urlencode($ip).
            '&f=serial'));

    // Если сервис StopForumSpam не отвечает
    if($data===false)
      return false;

    if( isset($data['email']['appears']) and

        isset($data['email']['confidence']) )
      if($data['email']['appears']!=0 and

         $data['email']['confidence']>=70)
           return true; // Email в базе спаммеров

    if( isset($data['ip']['appears']) and

        isset($data['ip']['confidence']) )
      if($data['ip']['appears']!=0 and

         $data['ip']['confidence']>=70)
           return true; // IP в базе спаммеров

    return false;
  }
  catch (Exception $e)
  {
   return false;
  }
}

 

 

Конечно, здесь есть место для оптимизации, например, вместо нескольких вызовов delete в цикле, можно сначала собрать ID записей гостевой книги, а потом удалить их одним SQL-запросом. И спам через stopforumspam.com можно детектить по другим признакам, а так же учесть, что вместо нескольких запросов API stopforumspam.com поддерживает кумулятивные запросы.

 

Теперь спама в гостевой как не бывало. Считаю, что это очень простой и эффективный метод борьбы. Пользуйтесь на здоровье.

 


Офигительное объяснение основ грамматики английского языка
01-09-2017
21:24:35

Недавно наткнулся в Youtube на одно очень хорошее видео с очень неудачным названием "АНГЛИЙСКИЙ С НУЛЯ (Четкое понимание за 50мин)". Название неудачное потому, что видеороликов с подобным заголовком в ютубе просто миллионы. И доверия такое название не вызывает.

 

А у меня как раз проблема с грамматикой английского - я не могу толком запомнить весь этот набор правил хотя бы для шести английских времен (настоящее-прошедшее-будущее в simple и continues). Не могу толком запомнить потому, что не люблю запоминать безсистемно. А я видел, что некая система есть, но она всегда мне подавалась декларативно. Мои попытки вытянуть понимание из учителей ни к чему не приводили - они и сами, похоже, тупо зазубрили правила образования времен без понимания сути происходящего. Максимум, что я мог вытянуть, это невнятное объяснение про то что "окончание "s" перебегает вот сюда". А почему сюда а не туда - это тайна покрытая мраком.

 

И я тыкнул на это видео с мыслью "Ну давай, послушаю об основах грамматики в сотый раз, может что еще пойму, хотя особенно не надеюсь". Так вот оказалось, что этот неизвестный чувак с ником База Английского, который не называет своего имени (и я до сих пор не знаю как его зовут), разложил основы грамматики по полочкам так, как не могли все мои учителя за мои дважды процедшие курсы на уровень Elementary. Вот этот перец:

 

 

 

 

Самое главное, что он объясняет не только основы английского, но и основы лингвистики. В частности, он дает самое точное и правильное понимание термина "инфинитив" - что это такое, зачем оно вообще нужно, и какую роль инфинитив играет в английском языке. Так же он объясняет что такое грамматическая нагрузка. Уже только за это его надо в жопу расцеловать.

 

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

 

Всем изучающим английский я очень рекомендую эти видеоуроки к просмотру.

 


Подключение к удаленному Git-репозитарию через SOCKS5-proxy
25-08-2017
16:32:45

Многие люди в IT-среде давно уже привыкли к наличию прямого доступа в интернет, и о временах повального использования провайдерами PROXY-серверов вспоминают с большой долей иронии. А некоторые даже не застали этих замечательных решений, популярных на заре интернета. Но не так дела обстоят в корпоративном секторе: борьба за мифическую безопасность порождает странные корпоративные требования. Благодаря им, привычная работа разработчика в сети Интернет становится невозможной, и человеку приходятся искать самые нетривиальные пути обхода результатов бурной фантазии эффективных менеджеров.

 

Ситуация: вы находитесь в сети с заблокированным NAT, корпоративный Proxy пускает только на отраслевые сайты по белому списку, и в этом списке GitHub.com, конечно, не значится. Вам нужно заполучить доступ ко всему интернету и еще заставить работать Git. Причем нужно это сделать так, чтобы без ввода логина-пароля никаких подключений не создавалось, а при установке соединения на рабочем компьютере небыло признаков подключения к интернету (чтобы работал только специально отведенный для Интернета браузер и консольный git). Понятно, что в такой ситуации шансов заполучить Интернет практически нет.

 

Но вам повезло: у вас чудом появился SSH-доступ к Linux-машине, на которой есть человеческий Интернет. Как организовать скрытый доступ к всемирной паутине? Самый простой способ - сделать между рабочей станцией и Linux-машиной VPN-соединение. Но при установке такого соединения Интернет появится во всех браузерах и всех программах, а не только в специально сконфигурированных. А это палевно.

 

Поэтому нужно извращаться более тонко, например через SOKCS5-proxy, который умеет создавать консоль Putty, заворачивая траффик в SSH. Заставить браузер FireFox работать через эту конфигурацию достаточно просто. А вот о том, как можно настроить возможность работы Git через SOCKS5-proxy с удаленным репозитарием на GitHub, информации в интернете практически нет. Поэтому я написал памятку о том, как настраивать доступ Git к внешнему миру в таких сложных условиях:

 

 

Как сделать подключение к репозитарию Git через Socks Proxy

в условиях отсутствия DNS

 

 

Надеюсь, кому-нибудь поможет. А вообще я никому не рекомендую работать в конторах с такими жесткими требованиями к блокировке Интернета. Вы мгновенно окажетесь в каменном веке, и станете терять свою квалификацию. А оно вам надо?

 


Как рассчитать стоимость транзакции в платежной системе Биткоин
25-08-2017
08:48:25

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

 

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

 

Как рассчитать стоимость отчислений за транзакцию в сети Bitcoin

 

И на последок хочу напомнить: берегите свои биткоиины и соблюдайте правила информационной гигиены. У биткоина есть все шансы стать золотом цифрового финтеха.

 


Сбор периодических скриншотов с Windows-машины с помощью Linux
15-08-2017
10:29:25

Странно, но почему-то на сегодняшний день нет вменяемого бесплатного Open Source софта для сбора периодических скриншотов. Тем не менее задача отслеживания действий ненадежного сотрудника с представлением результата "в явном виде" периодически встает перед каждым системным администратором.

 

Используя Linux в качестве рабочего инструмента, можно быстро решить такую задачу, как говорится, прямо "на коленке". И никаких закупок ПО производить не нужно. О том, как это сделать, мною была написана следующая статья:

 

 

Как сделать периодические скриншоты экрана пользователя с помощью TightVNC

 

 

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

 


Поиск писем в Microsoft Outlook 2013
08-08-2017
15:09:15

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

 

Самой неоднозначной вещью в Microsoft Outlook 2013 является поиск писем. Да, это банальное действие, которое в других email-клиентах решается довольно понятным способом, в Outlook сделано максимально неудобно. В результате люди годами не понимают, как блин в этом Outlook найти нужное письмо. Я вижу, что мои сотрудники часто ищут письмо вручную, и только самые продвинутые могут помочь себе сортировкой.

 

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

 

Как осуществлять поиск в Microsoft Outlook 2013

 

Надеюсь, кому-нибудь эта помятка тоже пригодится.

 


Исходники переключателя клавиатуры LoLo Switcher v.0.28 перенесены на GitHub
01-08-2017
22:07:29

Что-то я забросил свой профиль на GitHub, и сейчас решил немного его подобновить. Для этого я переношу все свои проекты, которые раньше просто хостил на домашнем сайте WebHamster.ru. Недавно я перенес Python-проект monitoring-sp, теперь настала очередь низкоуровневого переключателя клавиатуры LoLo Switcher.

 

Как мне сказали добрые люди, "ты написал этот переключатель для того, чтобы троллить на ЛОРе". Но на деле LoLo Switcher - это мой рабочий инструмент, которым я пользуюсь много лет, начиная с момента его появления в 2011 году. Тогда я одним махом решил для себя все проблемы, существующие в Linux с переключением раскладок: я перестал тратить время на разломанные то в Gnome то в KDE стандартные переключатели раскладок - мой переключатель работал везде. Я наконец-то смог настроить переключение по чистому отжатию клавиш, что позволило использовать самые широкие клавиши клавиатуры - левый и правый Shift. Само переключение раскладок стало турбореактивным, потому что LoLo Switcher работает напрямую с устройством ввода, и такое решение заставило взвыть любителей крутить зубодробительные конфиги X11. Как вишенка на торте, настройка переключения производится через регулярные выражения, что заставило взвыть уже любителей GUI. Обо всем этом написано на странице русскоязычной документации LoLo Switcher.

 

 

С переключателем LoLo Switcher связана одна интересная история. Когда я его писал, я не пользовался IDE, и просто работал со своим C++ кодом в консоли. В тот момент я находился в поисках хорошего консольного редактора, и за неимением лучшего, настроил себе редактирование текста в Midnigth Commander через опенсорчный FAR Editor в эмуляции WINE (да, я очень маргинален, и Micro на тот момент еще не появилось). А потом стал пользовать редактор KWrite. Особенность этих двух редакторов в том, что у них есть автоопределение кодировки. Они молча открывают файл в нужной кодировке, и ты работаешь, не задумываясь о том, что появились какие-то кракозябры: ты просто видишь нормальный текст на национальном языке. Даже если эти файлы пришли с другой платформы. Это очень круто.

 

Однако в тот момент, когда в файле кода первый раз появляются строки с национальными символами, эти редакторы сохраняют код по-разному. FAR Editor сохраняет в CP1251, а KWrite - в кодировку локали, обычно UTF-8. Ну а так как в обоих редакторах есть автоопределение кодировки, все файлы всегда отображаются нормально. И я, как пользователь, не замечал этой проблемы: ведь мой инструментарий просто давал возможность комфортно работать.

 

Каково же было удивление линуксоидов, когда в однозначно Linux/X11 коде в некоторых файлах оказалась Windows-кодировка. Никто не мог понять, как такое вообще возможно. Олдфаги решили, что я издеваюсь над ними. Никто не мог поверить, что автор об этой проблеме не знает (я действительно не знал). Поднялся жуткий срач, а я ухахатывался над тем фактом, что общество может любую ерунду обратить в кошмарную трагедию.

 

 

Сейчас на GitHub залита последняя версия LoLo Switcher v.0.28. В ней, по сути, изменились только некоторые сообщения и содержимое дефолтного конфига. Релизные сборки кода теперь берутся с GitHub, а прекомпиленные бинарнки все так же можно брать с официальной страницы.

 

* * *

 

Хотел сказать несколько слов про дальнешее развитие LoLo Switcher. Низкоуровневый доступ к файлу устройства ввода - это одновременно и благо и проклятие. Благо - это четкая и безглючная работа со всеми известными DE и независимость от настроек X11-подсистемы, а проклятие - это то, что такой переключатель может быть только локальным. Особых проблем это не вызывает - вопрос только в работе с удаленным графическим X11-сервером. Но дух перфекционизма говорит, что переключатель должен работать даже в такой экзотической конфигурации. И я на протяжении этих лет не оставлял попыток сделать LoLo Switcher действительно X11-полным переключателем.

 

Вначале мне показалось, что я нащупал правильное решение. По этому поводу я написал новость про то, что разобрался как делать глобальный перехват клавиш в X11 (XWindow). Однако, это достижение жестоко обломились о реальность: стандартная утилита xinput, на основе кода которой я собирался делать глобальный перехват, тоже не может работать в удаленной сессии. Об этом я написал в третьем пункте своего годового отчета. Ну а если даже сами авторы X11 не в состоянии сделать получение всех событий удаленной сессии, то мне и подавно не осилить такую вещь. Поэтому пока что действует стратегия выжидания: если xinput вдруг заработает в удаленной X11 сессии, тогда можно будет двигаться дальше.



Страницы:  ‹ Назад 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Далее › 

Поделиться этой страницей



Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (стр. 1)

База Rarrugas (стр. 1)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean (стр. 1)

База Аrmagedec

База SorokinRed

База Deadelf79

База Adgaver (стр. 1)

База Pipitos1983

База Silenn (стр. 1)

База Shlyapnikova - херомантия и ригидность

База Velonski (стр. 1)

База BrokeRU (стр. 1)

База Mcold (стр. 1)

База Alensav (стр. 1)

База Alensav2 (стр. 1)

База Consp11 (стр. 1)

База Kozlov-AE (стр. 1)

База Wwwlir (стр. 1)

База Duwaz (стр. 1)

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База RuDennn (Bunny-Hop)

База Manakaden

База Vitvrn

База Fanrok

База Grimar

База_Juryak

База Nicolasomsk

База Azatserikbaev

База Shut913

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик