Pull to refresh
38
0
Raz0r @Raz0r

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

Send message

AngularJS 1.x – перевод курса от CodeSchool

Reading time12 min
Views75K
Данная публикация является переводом оригинального курса CoodSchool с небольшими дополнениями, которые показались мне уместными в данном контексте. Публикация рассчитана на тех, кто только начинает знакомится с Angular.

Введение


AngularJS — популярная JavaScript библиотека, предназначенная, главным образом, для создания одностраничных веб-приложений с динамически обновляемым содержимым. Библиотека была написана словацким программистом Мишкой Хевери, который, работая в Google, получил от своего шефа задание выучить JavaScript. Он решил, что лучший способ изучить язык — это создать на его основе собственный фреймворк. Angular (звучит как «Ангула» и дословно переводится как «Угловатый») использует концепцию разделения данных и их представления, известную как MVC (M — model (данные), V — view (представление), С — controller (контролер, управляющая прослойка между ними обеспечивающая логику работы приложения).
Читать дальше →
Total votes 50: ↑44 and ↓6+38
Comments20

LUA в nginx: слегка интеллектуальный firewall

Reading time6 min
Views31K

Данный пост является продолжением применения lua в nginx.

Там обсуждалось кеширование в памяти, а тут lua будет использоваться для фильтрации входящих запросов в качестве этакого фаервола на nginx-балансере. Нечто подобное было у 2GIS. У нас свой велосипед :) В котором разделяем динамику и статику, стараемся учесть NAT и белый список. И, конечно же, всегда можно навернуть еще специфичной логики, что не выйдет при использовании готовых модулей.
Данная схема сейчас спокойно и ненапряжно (практически не сказывается на использовании cpu) обрабатывает порядка 1200 запросов/сек. На предельные величины не тестировалось. Пожалуй, к счастью :)
Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments16

Алгоритм Улучшенной Самоорганизующейся Растущей Нейронной Сети (ESOINN)

Reading time6 min
Views34K

Введение


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

В этой статье будет рассмотрен алгоритм An Enhanced Self-Organizing Incremental Neural Network, являющийся расширением базовой модели SOINN и частично решающий озвученные проблемы.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments10

Удаленное редактирование файлов в Sublime Text 2 по SSH

Reading time1 min
Views43K
Речь пойдет об использовании rmate, небольшого скрипта позволяющего из консоли открыть удаленный документ в локальном текстовом редакторе, вместо nano или vim, он был написан для TextMate и те кто перешел на ST2 с этого редактора, наверняка пользуются этим инструментом, да и «матерые разрабы» не найдут в посте много нового, но если вы только начали пользоваться ST2 и единственный инструмент удаленного редактирования о котором вы слышали, это плагин SFTP, добро пожаловать под кат за подробностями.
Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments23

NoSQL базы данных: понимаем суть

Reading time9 min
Views583K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Total votes 137: ↑133 and ↓4+129
Comments75

Подробно о генераторах случайных и псевдослучайных чисел

Reading time11 min
Views322K
На Хабре и в сети часто начали появляться статьи, посвященные уязвимостям генераторов случайных чисел. Данная тема крайне обширна и является одной из основных в криптографии. Под катом находится описание случайных чисел от A до Z. Статья является результатом свободного перевода цикла статей из одного западного блога и личных дополнений автора. Основная цель — получить feedback и поделиться знаниями.
image
Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments22

Изучение OpenCL на примере взлома паролей

Reading time10 min
Views10K

Вступление


Недавно, почитав различных статей и презентаций про GPGPU, я решил тоже попробовать для себя программирование под видеокарты. Фактически, выбор технологий в этой области не велик — сейчас живы и развиваются только CUDA (проприетарный стандарт nVidia) и OpenCL (свободный стандарт, работает на GPU от ATI, nVidia, а также на центральных процессорах). В связи с тем, что мой ноутбук располагает видеокартой ATI (Mobility Radeon 5650 HD), то выбор и вовсе свёлся к одному варианту — OpenCL. В этой статье речь пойдёт о процессе изучения OpenCL с нуля, а также о том, что из этого получилось.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments2

Классификатор kNN

Reading time6 min
Views147K
kNN расшифровывается как k Nearest Neighbor или k Ближайших Соседей — это один из самых простых алгоритмов классификации, также иногда используемый в задачах регрессии. Благодаря своей простоте, он является хорошим примером, с которого можно начать знакомство с областью Machine Learning. В данной статье рассмотрен пример написания кода такого классификатора на python, а также визуализация полученных результатов.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments9

Yet another classifier

Reading time8 min
Views12K

Вместо вступления


Лень — двигатель прогресса. Не хочешь сам молоть зерно — сделай мельницу, не хочешь сам кидать во врагов камни — сооруди катапульту, надоело гореть на кострах инквизиции и гнуть спину под феодалом — замути с ребятами ренессанс… впрочем, о чем это я.
Автоматизация, господа. Берешь какой-нибудь полезный процесс, в котором участвует человек, заменяешь человека на сложный механизм, получаешь профит. Относительно недавно также стало модно заменять человека куском кода. О, сколько благородных профессий может пасть под натиском информатизации. Особенно если учесть, что кусок кода в наше время способен не только на заранее определенное поведение, но и на «обучение» какому-то поведению.
Читать дальше →
Total votes 43: ↑36 and ↓7+29
Comments43

Сокеты в Python для начинающих

Reading time4 min
Views578K

Предисловие


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



Что это


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

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

Читать дальше →
Total votes 75: ↑50 and ↓25+25
Comments28

PyBrain работаем с нейронными сетями на Python

Reading time8 min
Views165K

В рамках одного проекта столкнулся необходимостью работать с нейронными сетями, рассмотрел несколько вариантов, больше всего понравилась PyBrain. Надеюсь её описание будет многим интересно почитать.

PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

Предназначен для:

  • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
  • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
  • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
  • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.

Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments22

Понимаем декораторы в Python'e, шаг за шагом. Шаг 2

Reading time12 min
Views231K

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


Итак, в первой части данной статьи мы совершили базовое знакомство с декораторами, принципами их работы и даже написали свой вручную.
Однако, все декораторы, которые мы до этого рассматривали не имели одного очень важного функционала — передачи аргументов декорируемой функции.
Что ж, исправим это недоразумение!
Читать дальше →
Total votes 73: ↑67 and ↓6+61
Comments25

Понимаем декораторы в Python'e, шаг за шагом. Шаг 1

Reading time6 min
Views440K

На Хабре множество раз обсуждалась тема декораторов, однако, на мой взгляд, данная статья (выросшая из одного вопроса на stackoverflow) описывает данную тему наиболее понятно и, что немаловажно, является «пошаговым руководством» по использованию декораторов, позволяющим новичку овладеть этой техникой сразу на достойном уровне.

Итак, что же такое «декоратор»?


Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped
 
def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped
 
@makebold
@makeitalic
def hello():
    return "hello habr"
 
print hello() ## выведет <b><i>hello habr</i></b>

Те же из вас, кто готов потратить немного времени, приглашаются прочесть длиииинный пост
Total votes 119: ↑106 and ↓13+93
Comments39

Как распознать кракозябры?

Reading time1 min
Views429K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Total votes 429: ↑418 and ↓11+407
Comments64

Метаклассы в Python

Reading time10 min
Views196K
Как сказал один из пользователей StackOverflow, «using SO is like doing lookups with a hashtable instead of a linked list». Мы снова обращаемся к этому замечательному ресурсу, на котором попадаются чрезвычайно подробные и понятные ответы на самые различные вопросы.

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

Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments18

Нейросети для чайников. Начало

Reading time5 min
Views804K


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

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

Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 258: ↑226 and ↓32+194
Comments91

Преодолеваем языковой барьер – уже шесть лет!

Reading time3 min
Views2.2K
Франц Оч, научный исследователь команды Google Translate

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

В 2001 году у Google появился сервис, который позволял делать перевод с восьми языков на английский и обратно. Его основной была ультрасовременная на тот момент платная система машинного перевода, однако качество было не на высоте, и в течение еще нескольких лет эта система улучшалась лишь незначительно. В 2003 году инженеры Google решили повысить качество перевода и увеличить количество языков. Именно тогда я начал работу над этим проектом. В то время я еще был исследователем на проектах Управления перспективными исследованиями и разработками Министерства обороны (DARPA), где мы изучали новый подход к машинному переводу – самообучаемую систему, которая была признана довольно перспективной и должна была значительно повысить качество перевода. Мне позвонили из Google и убедили (а я был настроен весьма скептически!), что данный подход, основанный на анализе данных, будет работать именно в Google.

Я присоединился к команде, и мы начали перерабатывать систему перевода. Мы участвовали в аттестации машинных переводов, проводимых Национальным Институтом стандартов и технологий (США). Это своеобразное гран-при среди исследовательских институтов и компаний, призванное улучшить систему машинного перевода. Благодаря вычислительным мощностям Google и возможности обрабатывать большие объемы информации мы добились хороших результатов. Этот момент стал поворотным: стало очевидно, насколько эффективным может быть подход, основанный на анализе данных.

Но в то же время наша система работала слишком медленно и была непрактична: над переводом 1000 предложений “трудились” 1000 единиц вычислительной техники, а по времени он занимал 40 часов. Мы сфокусировались на скорости, и год спустя наша система уже могла перевести предложение менее чем за секунду, а качество стало заметно выше. В начале 2006 года эта технология стала использоваться в англо-китайском и англо-арабском перевода и наоборот.

Мы анонсировали статистический машинный перевод 28 апреля 2006 года. Последние шесть лет мы уделяли самое большое внимание качеству перевода и увеличению количества языков. Теперь Переводчик Google работает с 64 языками, включая те, которые слабо представлены в сети – например, бенгальский, язык басков, суахили, идиш и даже эсперанто.

Сегодня на страницу translate.google.com заходят более 200 миллионов активных пользователей в месяц (и даже больше с учетом других программ, поддерживающих сервис – например, Chrome, YouTube, мобильные приложения и т.д.). Пользователям также нравится использовать Переводчик на ходу, ведь языковой барьер особенно актуален, когда вы путешествуете: по нашей статистике, из года в год использование мобильного траффика вырастало более, чем в 4 раза. Аудитория Переводчика действительно глобальна – 92% трафика мобильного переводчика идет из-за пределов США.

Объем текста, который мы переводим каждый день, примерно равен миллиону книг – или практически всему объему профессиональных переводов за год. Из этих цифр ясно, что большая часть всех переводов на нашей планете сегодня делается Переводчиком Google (пожалуй, что в галактике нас могла бы опередить «вавилонская рыбка» Дугласа Адамса). Конечно, ничто не сможет конкурировать с профессиональными переводчиками в передаче нюансов и точности в деталях. Мы уверены, что машинный перевод поможет большему количеству людей принять участие в глобальном диалоге на своем родной языке. В этом случае роль профессиональных переводчиков станет еще более значимой.

Сегодня мы мечтаем о будущем, в котором каждый человек сможет получать любую информацию и делиться ее с другими вне зависимости от того, на каком языке она представлена. Мы уже переводим в режиме реального времени веб-страницы в браузере Chrome, тексты на фотографиях, сделанных мобильным телефоном, титры на YouTube и даже устную речь с помощью смартфонов. Мы хотим разрушить языковой барьер между людьми — посмотрим, что ждет нас в ближайшие шесть лет!
Total votes 10: ↑5 and ↓50
Comments6

Компьютерная лингвистика бессильна нам помочь в обработке текстов

Reading time3 min
Views18K
Компьютерная лингвистика на сегодня практически себя уже исчерпала. На это прямо указывает безуспешный опыт исследователей и разработчиков «интеллектуальных» информационных продуктов, трудившихся вот уже более полувека над созданием таких амбициозных программ, как, например, адекватный машинный перевод или смысловой поиск информации в масивах документов на естественном языке.

Будущее машинной обработки естественно-язычных текстов, безусловно, видится в создании и развитии надлингвистических технологий, способных осуществлять анализ содержания информации на уровне смыслового понимания контекста подобно тому, как это умеет делать человек. Однако, созданию «мыслящих машин» (Thinking Machine) длительное время препятствовали два основных фактора – отсутствие необходимой методологии и должного инструментария для решения двух фундаментальных задач — это нахождение «формулы смысла» и построения «модели знаний о мироздании» в некотором формализованном доступном для компьютера виде, без чего, собственно, невозможно повторить на программном уровне естество человеческого мышления.

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

Опыт развития научно-технического прогресса говорит о том, что прорывной искомый результат в итоге получается, как правило, на стыке разных технологических областей и предметных дисциплин. По всей видимости, проблема «машинного мышления» будет решена ровно тогда, когда мы точно поймём, как именно в процедурном плане работает наше естественное сознание, и когда достоверно сможем узнать, поддадутся ли эти процедуры мышления, проявленные нам в необходимом и достаточном количестве, своей окончательной компьютерной алгоритмизации.
Читать дальше →
Total votes 25: ↑15 and ↓10+5
Comments75

Где в России обучают компьютерной лингвистике?

Reading time3 min
Views26K
Речь пойдет не об единичных курсах, посвященных этой интересной науке, а о том, как специалист, уже имеющий диплом мат-меха или другого технического факультета, может получить полноценное образование, связанное с компьютерной лингвистикой. Самый простой способ — поступить в профильную магистратуру. Но это только кажется простым, потому что такую магистратуру еще нужно найти. Потратив некоторое время на изучение проблемы, мне удалось выбрать несколько вариантов. Своими находками я хочу поделиться с уважаемыми хабровчанами. Думаю, это будет интересно в особенности будущим бакалаврам и специалистам, которые размышляют над проблемой «куда пойти учиться дальше?».
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments9

Могло ли слово «браузер» (и его производные формы) звучать в русской речи иначе?

Reading time5 min
Views3.7K
Утром во вторник 10 апреля 2012 года я увидел, что некий аноним в моём формспринге задал вопрос о том, что я думаю о статьях «Межсистемность» и «Межобозревательность», появившихся в сетевой вики-энциклопедии «Викиреальность» в феврале трудами участника, действовавшего под псевдонимом «Five Dollars».

А так как сообщество Хабрахабра проявляет заметный и неослабный интерес к вопросу о выборе между варваризмом и словородностью при переводе иностранных терминов (чего стоит хотя бы обсуждение перевода «Retina display», перевалившее далеко за сотню комментариев!), то я счёл формат Хабрахабра куда более подходящим для изложения своих воззрений, нежели формат Формспринга, где даже редактирование не предусмотрено.

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

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

Читать дальше →
Total votes 55: ↑28 and ↓27+1
Comments53
1

Information

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