Pull to refresh
18
0
flashvoid @flashvoid

User

Send message

Нейронная сеть на спичечных коробках

Reading time1 min
Views58K
Я не помню где брал эту информацию, но она отражает суть нейросетей лучше всего. На пальцах.

Правила игры. НС обучается играть в игру «11 палочек». Можно брать либо 1 палочку, либо 2. Нужно вытянуть последним все палочки.

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

Например, НС начинает ход.

1. Закрываем глаза и вытаскиваем наугад пуговку из коробки под номером 11. Если черная, то берем одну палочку, если белая — две. (Пусть будет белая — 2 палочки).
2. Ход человека. Например, он взял 2 палочки.
3. Далее, берем коробок под номером 11-2-2 = 7 и вытаскиваем наугад из него пуговку.

Так до тех пор пока игра не закончится.

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

Вот и вся нейросеть из 10 узлов которая, изначально, не зная даже правил, учится играть и начинает обыгрывать человека. Если изменить правила и, например, тот кто последний забирает палочки проигрывает, то НС переучится и опять начнет побеждать.

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

Джейсон и интернет (часть 1)

Reading time12 min
Views1.2K
Джейсон с детства не любил гиков. Он чувствовал к ним презрение, смешанное с брезгливостью; впрочем, как и любой другой, он в них слабо разбирался, порой считая гиками тех, кто никакого отношения к ним не имел, а иногда яростно защищая тех, к кому сам относился с симпатией. Джейсон с улыбкой вспоминал те времена, и даже любил рассказывать о том, как не желал и слушать, что одна из его любимых групп, «Рэдиохэд», распространяла музыку через интернет. Через интернет! Боже! В этом месте все обычно начинали смеятся, а Джейсон продолжал — «Ну ладно, всякие инди-команды, которые в двухтысячных поголовно сидели на интернете. Но Рэдиохэд! Нет, я отказываюсь в это верить!»

А сейчас, промозглым осенним вечером...

Фотошоп онлайн!

Reading time1 min
Views2.8K
Добрый день!

Наткнулся на замечательный сайт, и получив от него удовольствие, решил поделиться с вами, дорогое моё хабрасообщество! Итак, встречаем — фото-редактор «а-ля фотошоп». Привлёк и удивил тем, что редактор-то онлайн:



Функциональный, забавный, онлайн, и что приятно удивило, поддерживает русский язык.

Волшебная ссылка!

Экспериментальные интерфейсы на основе Augmented Reality

Reading time1 min
Views2.6K
Технологии AR(Augmented Reality) сейчас вхоят в моду. Запустились и развиваются несколько передовых стартапов (Sekai camera,Layar), на youtube по запросу Augmented Reality выскакивают сотни роликов.



На текущий момент AR чаще всего используется для визуализации на экране компьютера виртуальных объектов, наложенных на видеопоток с камеры. Человек вращает какой-либо маркер, смотрит на монитор и наблюдает за 3D-моделью, отрисованной на месте маркера. Этот подход сильно ограничивает применение AR, но уже появляются зачатки нового видения применения подобных технологий.
Читать дальше →

Обзор неттопов на платформе nVidia ION

Reading time6 min
Views13K
image

Рассмотрев различные варианты корпусов и ION-based материнских плат, осталось лишь оценить целесообразность самостоятельной сборки системы. Многие ведущие(и не очень) мировые производители предлагают готовые стильные неттопы на платформе nVidia ION. В данный момент, в качестве конкурирующей платформы можно было бы рассматривать Intel G45, да только готовых связок Atom+G45 широкой общественности представлено не было. Основная задача современного HTPC одна – проигрывать FullHD медиа контент через HDMI, а с этим как нельзя лучше справляется графическое ядро GF9400.

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

Потоковое видео: вещание с N810

Reading time3 min
Views7.6K
Захотелось забросить свою нокию высоко в небо и посмотреть, как мы выглядим с высоты птичьего полёта.
Как забросить — понятно: самый простой вариант — взять воздушный змей побольше.
Как посмотреть — вопрос немного озадачил.
Читать дальше →

как способ изучения Английского

Reading time1 min
Views19K
Многие из читателей хабра регулярно слушают разные подкасты, этот полезный вид времяпрепровождения можно сделать ещё более полезным, если слушать подкасты на английском.

Поделюсь теми, на которые подписан я:

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

Логика английских времен

Reading time6 min
Views73K
Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
Читать дальше →

Docker: запуск графических приложений в контейнерах

Reading time15 min
Views91K
Строго говоря, Docker не был создан для подобного рода вещей, а именно запуска графических приложений. Однако, время от времени в темах про Docker звучат вопросы о том, нельзя ли запустить GUI-приложение в контейнере. Причины могут быть разные, но чаще всего, это желание сменить излишне громоздкую виртуальную машину на что-то полегче, не потеряв в удобстве и сохранив при этом достаточный уровень изоляции.

Это небольшой обзор способов запуска графических приложений в контейнерах Docker.
ну-ка, что там

Брутфорсим EFI с Arduino

Reading time23 min
Views104K
Приветствую Хабравчан!

Думаю, данной темой не многих удивишь — достаточно набрать в поисковике фразу arduino bruteforce и сразу станет понятно, насколько распространен перебор паролей при помощи платформы Arduino. Я же хочу рассказать о том, как это быстро организовать с наименьшим наборов компонентов, без разводки/травления плат и пайки. Сразу оговорюсь, что описанные мною действия носят ознакомительный характер и никому не причинили вреда, ни морального, ни физического… разве что мошенникам.


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

Разбираемся с rtorrent всерьёз

Reading time14 min
Views79K
Об установке и базовой настройке rtorrent на хабре хватает статей, как и споров о том, стоит ли вообще связываться с хардкорным rtorrent или лучше обойтись чем-нибудь более дружественным к пользователю. Лично я много лет назад пересмотрел все качалки и в результате rtorrent оказался самым стабильным и эффективным. Интерфейс у него не самый удобный, но достаточно понятный и юзабельный чтобы это не стало серьёзной проблемой. Альтернативные интерфейсы вроде rutorrent у меня как-то не прижились - ставить php только ради rutorrent неохота, а остальные варианты выглядят совсем слабо (и ни одного кроме rutorrent даже нет в портаж Gentoo).

  

Одно из основных преимуществ rtorrent — очень гибкие возможности по его настройке и автоматизации. К сожалению, синтаксис ~/.rtorrent.rc достаточно нестандартный, нормальная документация отсутствует, поэтому обычно настройка сводится к поиску и копированию (попытка что-то в них изменить кроме констант/путей к каталогам обычно проваливается) готовых рецептов или вообще ограничивается редактированием констант в базовой конфигурации.

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

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

Оптимизация образов Docker

Reading time9 min
Views68K
Образы Docker могуть быть очень большими. Многие превышают 1 Гб в размере. Как они становятся такими? Должны ли они быть такими? Можем ли мы сделать их меньше, не жертвуя функциональностью?

В CenturyLink Lab мы много работали над сборкой различных docker-образов в последнее время. Когда мы начали экспериментировать с их созданием, мы обнаружили, что наши сборки очень быстро раздуваются в объеме (обычным делом было собрать образ, который весит 1 Гб или больше). Размер, конечно, не столь важен, если мы говорим про образы по два гига, лежащие на локальной машине. Но это становится проблемой, когда вы начинаете постоянно скачивать/отправлять эти образы через интернет.

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

oDesk (Upwork). Мой опыт за полтора года

Reading time12 min
Views445K
Вот уже полтора года я зарабатываю фрилансом на бирже oDesk. За это время у меня накопилось много материалов по данной теме. В данном топике я собрал все в одну статью и адаптировал для аудитории хабра.
image
Читать дальше →

TOP'ай сюда

Reading time5 min
Views184K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →

Макросы в Vim — это просто

Reading time4 min
Views31K

Макросы в Vim


Очень странно, с одной стророны тема довольно банальная, а с другой ни тут, ни на просторах интернета не видно хорошего понимания такой важной темы, которая может иногда сильно упростить задачу редактирования текста. К написанию меня подтолкнуло обсуждение макросов в Emacs в блоге Avdi Grimm'а, где в своё время никто не смог внятно объяснить, что в Vim есть то, чего ожидает автор поста от достойного текстового редактора. Исправим это, в первую очередь в себе, а потом пойдём и скажем этим из интернета, что они не правы.

Какие задачи редактирования текста помогут решить макросы? Например, такую: вот в этой самой строке, которую вы читаете, взять и все запятые поменять на 0. Можно вспомнить регулярные выражения, но не все их любят, и уж тем более не все помнят, как вставлять с их помощью перенос строки, а если вам нужно заменять какие-то символы, которые используются в регулярных выражениях как служебные, вы уже отвлеклись от своей основной задачи и вместо редактирования текста занимаетесь написанием регулярного выражения для поиска и замены, пробуя и ошибаясь.
Макросы позволят это сделать быстрее, с меньшим отвлечением на вспоминание и написание чего-либо. Запомнить как работают макросы очень легко, и это войдёт в ваш ежедневный аресенал наряду с прыжками по тексту.

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

Давайте сначала вспомним, как это сделать вручную.
f,r0
После чего можно нажимать последовательно ; для повторного поиска и . для повторения предыдущего действия. Но в какой-то момент это может стать не так просто, например, вам нужно добавить пару каких-то знаков между делом. Точка уже не сработает и нужно будет опять нажимать r0. Или этих запятых окажется довольно много, и щёлкать поочерёдно ; и . придётся довольно много раз. В этот момент что-то вам уже подсказывает, что такой механический труд можно автоматизировать.

Основы
Многократные повторения и рекурсивный вызов
Редактирование макросов
Вечные макросы
Всякое
Познать

Простой Ethernet-туннель на Linux в четыре-шесть команд

Reading time2 min
Views94K
Краткая шпаргалка:
HOST1: ip link add grelan type gretap  local <IP1> remote <IP2>
HOST1: ip link set grelan up
HOST1: iptables -I INPUT -p gre -s <IP2> -j ACCEPT
HOST2: ip link add grelan type gretap local <IP2> remote <IP1>
HOST2: ip link set grelan up
HOST2: iptables -I INPUT -p gre -s <IP1> -j ACCEPT


Четыре команды на туннель и две на firewall (не нужны если трафик между своими серверми уже разрешен)
Это всё что нужно, дальше длинное объяснение с подробностями.
Читать дальше →

Практическое применение LD_PRELOAD или замещение функций в Linux

Reading time4 min
Views44K
Всем привет!
В 2010 году, shoumikhin написал замечательную статью Перенаправление функций в разделяемых ELF-библиотеках. Та статья очень грамотно написана, полная, но она описывает более харкордный способ замещения функций. В этой статье, мы будем использовать стандартную возможность динамического линкера — переменную окружения LD_PRELOAD, которая может загрузить вашу библиотеку до загрузки остальных.

Как это работает?

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

Реальный Use-Case #1: Блокируем mimeinfo.cache в Opera


Мне очень нравится браузер Opera. А еще я использую KDE. Opera не очень уважает приоритеты приложений KDE, и, зачастую, так и норовит открыть скачанный ZIP-архив в mcomix, PDF в imgur-uploader, в общем, вы уловили суть. Однако, если ей запретить читать файл mimeinfo.cache, то она все будет открывать через «kioclient exec», а он-то уж лучше знает, в чем я хочу открыть тот или иной файл.

Чем может приложение открывать файл? На ум приходят две функции: fopen и open. В моем случае, opera использовала 64-битный аналог fopen — fopen64. Определить это можно, воспользовавшись утилитой ltrace, или просто посмотрев таблицу импорта утилитой objdump.
Читать дальше →

JSON pipes в шелле

Reading time4 min
Views23K
Чем больше я пишу однострочники в шелле, тем больше я прихожу к двум важным идеям:
  1. Это очень мощное средство для «непосредственного программирования», то есть указания компьютеру, что делать.
  2. Большая часть однострочника посвящена grep/awk/cut/tr, которые каким-то образом выковыривают и приводят в человеческий вид вывод предыдущих утилит.

При том, что модель pipe'ов восхитительна, совершенно грязные хаки по отлову нужных полей в выводе во втором пункте («а вот тут мы можем выделить нужное нам по характерной запятой с помощью awk -F, '{print $2}'...) делают процедуру спорной по удовольствию, и уж точно нечитаемой.

Ещё одна серьёзная проблема: при том, что шелл даёт довольно много идиом из функционального программирования, в нём нет идиомы фильтрации списка по результату выполнения внешней программы. То есть „грепнуть“ список мы можем. А вот оставить в списке только те элементы, для которых какая-то программа вернула „успех“ — нет.

При этом есть враждебная и не очень хорошо написанная среда — powershell (винды). В которых взяли хорошую идею (пайпы передают не текст, а объекты), но испортили её двумя вещами:
  1. Неэргономичной консолью виндов (Shift-PgUp где, а? говорят, Ctrl-PdUp в новых версиях)
  2. предложением пойти и выучить .net для того, чтобы нормально с методами работать.
  3. Отсутствием под большинство операционных систем


Хочется иметь объекты в пайпе в тёплом ламповом линуксовом шелле. С hand-candy (мало печатать), eye-candy (приятно смотреть) и общей эргономичностью процесса использования. Ещё хочется иметь возможность сочетать „новый подход“ со старым, то есть обычным текстовым pipe'ом.

Идея


Надо написать набор инструментов, которые позволят в pipe-style оперировать с структурированными данными. Очевидным выбором является XML JSON.
Нам нужно:
  1. Утилиты, которые примут типовые форматы на вход и сконвертируют их в json.
  2. Утилиты, которые позволят в pipe'е манипулировать с json'ом.
  3. Утилиты, которые приведут json в „обычный“ формат.

В этом случае человек не будет видеть json на экране, но будет иметь возможность работать с ним.

Для затравки


(для понимания я буду писать длинные имена утилит, в реальной жизни это будут короткие сокращения, то есть не json-get-object, а что-то типа jgo или jg)

Выводит только файлы, для которых file сумел определить тип:
ls -la | ls2json | json-filter 'filename' --exec 'file {} >/dev/null' | json-print

Выкачивает с некоторого сайта токен для авторизации, выковыривает его из json'а и выставляет в переменные среды окружения, после чего скачивает список и отфильтровав по регэкспу поле „автор“ выкачивает все url'ы:
curl mysite/api.json | env `json-get-to-env X-AUTH-TOKEN`;curl -H X-AUTH-TOKEN $X-AUTH-TOKEN mysite/api/list.json | json-filter --field 'author' --rmatch 'R.{1,2}dal\d*' | json-get --field 'url' | xargs wget

Парсит вывод find -ls, сортирует по полю size, вырезает из массива элементы с 10 по 20, выводит их в csv.
find . -ls | ls2josn | json-sort --field 'size' | json-slice [10:20] | json2csv
Читать дальше →

Information

Rating
Does not participate
Location
Тауранга, Bay of Plenty, Новая Зеландия
Date of birth
Registered
Activity