Pull to refresh
24
0

User

Send message

Изучаем алгоритм работы регулярных выражений в Ruby

Reading time9 min
Views16K

Согласно Википедии, Oniguruma означает «колесница дьявола» в переводе с японского.

Мы все знакомы с регулярными выражениями. Они являются «швейцарским армейским ножом разработчика». Что бы вы ни искали, какой бы текст ни разбирали, вы всегда можете сделать это используя регулярные выражения. На самом деле, вероятно, вы начали использовать их гораздо раньше, чем стали использовать Ruby — они уже давно включены в большинство популярных языков программирования: Perl, JavaScript, PHP, Java и прочие. Ruby появился в середине 1990-х годов, тогда как регулярные выражения еще в 1960-х, то есть почти на 30 лет раньше!

Но как на самом деле работают регулярные выражения?
Читать дальше →

Собеседование на должность JavaScript разработчика

Reading time4 min
Views288K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →

Как работает GIL в Ruby. Часть 3. Делает ли GIL ваш код потоко-безопасным?

Reading time9 min
Views5.3K


Переводы предыдущих двух частей:
Первая часть
Вторая часть

Это статья Jesse Storimer. Он выступает на семинаре Unix fu, онлайн классе для Ruby-разработчиков, которые хотят научиться удивительным хакам в Ruby и повысить свой уровень в разработке серверного стека. Количество участников ограничено, так что поторопитесь, пока есть свободные места. Так же, он является автором книг «Работа с Unix процессами», «Работа с TCP сокетами» и «Работа с потоками в Ruby».

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

Но вы не должны принимать мои слова на веру.
Читать дальше →

Приручаем Tmux для повседневных нужд

Reading time5 min
Views78K
Каждый из нас выбирает для себя наиболее удобную среду разработки. Многие пользуются отдельной IDE, несколькими открытыми консолями, отдельным браузером, множеством прочих сторонних инструментов. Я же придерживаюсь принципа — все должно быть милимастично и просто конфигурируемо. Tmux позволяет сделать очень удобную рабочую среду для программиста.


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

Любительский подход к компьютерной лингвистике

Reading time5 min
Views19K
Этим постом я хочу привлечь внимание к интересной области прикладного программирования, бурно развивающейся в последние годы — компьютерной лингвистике. А именно — системам, способным к разбору и пониманию текста на русском языке. Но основной фокус внимания я хочу сместить с академических и промышленных систем, в которые вложены десятки и тысячи человеко-часов, к описанию тех способов, какими успехов на этом поприще могут добиться любители.
Читать дальше →

9 вещей, которые я узнал, будучи программистом, и которые я хотел бы знать, поступая в магистратуру

Reading time9 min
Views69K
Три года тому назад я работал в лаборатории нейробиологии в Барселоне, занимаясь тем, что ставил на людей различные электроды и вел курсы по когнитивным системам. А сегодня я проектирую и пишу программное обеспечение для жизни.

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

10 главных выводов, которые я сделал за Год Изучения Продуктивности

Reading time9 min
Views193K
Предисловие переводчика: В мире написано столько книг по личной эффективности и тайм-менеджменту, что берясь за этот перевод я безусловно задавал себе вопрос: «А есть ли здесь вообще что-то новое, ради чего эту статью стоит переводить, и главное читать»? Сначала мне казалось, что я ответил на этот вопрос «да», однако реальность оказалась несколько сложнее. 

Сейчас я думаю, что сказать что-то новое человеку, который прочитал хотя бы 2-3 книги по тайм-менеджменту и личной эффективности практически невозможно. Однако существует огромная пропасть между тему, что люди знают, и тем, что люди делают. Поэтому если у вас уже есть какой-то багаж знаний по личной эффективности, я советую вместо вопроса «это что-то, чего я не знаю?» задавать другие вопросы:

1. Согласен ли я с написанным?
2. Если да, поступаю ли я так?
3. Если нет, почему и что я могу сделать чтобы начать поступать правильно? 

Уверен, так статья принесет вам гораздо больше пользы.

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

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

В качестве последнего пожелания – это довольно длинная статья, поэтому читайте продуктивно: не переключайтесь между задачами в процессе чтения; делайте перерывы если ощущаете усталость и потерю концентрации; записывайте полезные мысли, не надеясь на память.

Приятного чтения!
Читать дальше →

Wi-Fi сети: проникновение и защита. 2) Kali. Скрытие SSID. MAC-фильтрация. WPS

Reading time20 min
Views654K


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

В этой статье мы поговорим о том, как можно обнаружить «скрытые» сети, обойти MAC-фильтрацию на точке доступа и почему же WPS (QSS в терминологии TP-LINK) — это «бэкдор в каждом доме». А перед этим разберёмся, как работает беспроводной адаптер и антенна и как Kali Linux (ex. Backtrack) поможет нам в тестах на проникновение в беспроводные сети.

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

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

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
Много текста. Очень.

Найти бозон Хиггса может каждый!

Reading time2 min
Views31K

12 мая ЦЕРН объявил «Higgs Boson Machine Learning Challenge», конкурс на лучший алгоритм по поиску событий с участием бозона Хиггса в наборе экспериментальных данных. Конкурс продлится до 15 сентября, победителей ждут денежные призы от $2000 до $7000. Удачное решение может быть интегрировано в реальный процесс обработки данных с детектора ATLAS. Для участия в конкурсе не нужны специальные знания в физике элементарных частиц.
Читать дальше →

Темная сторона мобильного трафика

Reading time6 min
Views150K
Специально для Хабра мы взяли интервью с представителем “темной стороны” рынка мобильного трафика.
“Вы считаете, что работая с CPA агентствами вы приобретаете хоть сколько нибудь живой трафик? Вы верите в модель CPI? Угадаете долю живого трафика в подобных сетях? На самом деле, доля “серого” трафика намного больше, чем Вы могли подумать."
Интересно?
image
Перейти на темную сторону

12 уроков из управления проектами и запуска стартапов

Reading time9 min
Views126K
Я разработал около сотни проектов, в том числе — стартапов. Многие из них достигали пика и умирали, некоторые работают до сих пор. Делал как B2C, так и B2B.

В последнее время наблюдается поток вопросов от знакомых и друзей, которые делают одни и те же ошибки. Я хотел бы рассказать о своем опыте в посте тезисов. И если он будет успешен — продолжить серию.

Если лень читать — ролик, выражающий основной дух и главный смысл, находится внизу. Ролик вызовет восхищение — отлично, идите делать очередной релиз. Ролик вызовет отторжение — читайте пост до другой реакции сколько угодно :)



1. Важнее всего — желание

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

Дизайн и архитектура в ФП. Часть 3

Reading time21 min
Views13K
Свойства и законы. Сценарии. Inversion of Control в Haskell.

Совсем немного теории

В прошлой части мы убедились, что очень легко запутаться в плохо спроектированном коде. К счастью, с древних времен нам известен принцип “разделяй и властвуй”, — он широко применяется при построении архитектуры и дизайна больших систем. Мы знаем разные воплощения этого принципа, как-то: разделение на компоненты, уменьшение зависимости между модулями, интерфейсы взаимодействия, абстрагирование от деталей, выделение специфических языков. Это хорошо работает для императивных языков, и надо полагать, что будет работать в функциональных, за тем исключением, что средства реализации будут другими. Какими же?
Читать дальше →

Remote по-русски. Новая книга от 37signals

Reading time4 min
Views70K
image
Если названия «Rework» и «37signals» вам хорошо знакомы, то на вашей улице наступил маленький праздник — совсем недавно на русском языке вышла их новая книга «Remote: Office Not Required» (в русском издании — «Remote: Офис не обязателен»). Книга доступна как в печатном варианте, так и в электронной версии.

Компания 37signals — создатель фреймворка Ruby on Rails, нескольких инструментов для управления проектами (из которых известнее всего Basecamp) и нескольких книг-бестселлеров (Rework и Getting Real), посвященных принципам построения успешной компании-разработчика. Год назад была анонсирована их новая книга, посвященная преимуществам и организации удалённой работы — ее анонс проскакивал на Хабре. На полках западных магазинов Remote появилась осенью, поэтому многие уже успели прочитать ее на языке оригинала — в том числе и основатель Хабрахабра Денис Крючков, который дал ей краткую положительную оценку.

С тех пор 37signals успели переименоваться в Basecamp (с целью повысить узнаваемость компании, они назвались по имени своего самого успешного продукта), а на этой неделе «Remote: Офис не обязателен» наконец-то появилась в продаже на русском языке. На оригинал у меня времени не нашлось, поэтому, дождавшись солнечного утра субботы, я отправился в книжный магазин, и спустя пару часов погрузился в чтение в электричке. Опасений насчет русского издания не было никаких: за дело снова взялось издательство бизнес-литературы Манн-Иванов-Фербер, выпустившее у нас предыдущий бестселлер 37signals — Rework. На моей книжной полке эта книга давно занимает почетное место; вот и с Remote история повторилась — оригинальное оформление книги было полностью сохранено, замечательные иллюстрации снова на месте, качественный перевод прилагается — впрочем, от МИФ другого и не ожидалось.
Читать дальше →

Кластеризация nodejs web-сервера с помощью node-clusterize-cli

Reading time2 min
Views9.2K
Последние полгода я занимаюсь разработкой достаточно большого web-приложения, под капотом которого ревет и дымится NodeJS. Когда дело дошло до деплоя на продакшн я задумался: «почему бы мне не использовать несколько тредов с инстансом приложения?».

Реализовав кластер, я увидел, что производительность от его использования возросла в 1,5 раза, что очень даже не плохо, учитывая малый объем потраченных усилий. Но я решил не останавливаться на этом, и сделать удобный CLI для работы с кластером, чтобы отвязать код, который отвечает за запуск кластера от конкретного приложения. Кроме того, очень хотелось демонизировать кластер, чтобы он висел себе молча в процессах, поднимал упавшие воркеры, писал в логи, и никого больше не отвлекал.

Так появился node-clusterize-cli — утилита работающая из командной строки, не затрагивающая кода приложения. Основанная на оригинальном модуле «cluster» NodeJS.
Читать дальше →

Верстка для самых маленьких. Верстаем страницу по БЭМу

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

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

  • BEM
  • Собственно пример — как сверстать страницу

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

Миникрафт в 252 символа

Reading time5 min
Views41K
В продолжении популярного цикла статей о том, что 30 строк джаваскрипта достаточно каждому, предлагаю Вашему вниманию перевод статьи Мэтью P01 Генри о его последней работе:


Итак, Мэтью пишет:

Как я завалил собеседование в Twitter

Reading time4 min
Views177K
image


До 28 октября я должен был принять решение, буду ли я работать в Amazon по окончанию стажировки. Оставалось совсем немного времени, но мой друг Дэниел убедил меня, что если я попробую попасть в Twitter, то как раз успею пройти все интервью. Я не смог устоять.

Сначала меня попросили решить пару вопросов с Codility, дав на все про все час времени. Вопросы попались средней интересности («является ли слово анаграммой палиндрома» и «посчитать количество седловых точек в двумерном массиве»). Я был не слишком уверен в получившихся решениях, но вскоре Джуди прислала мне письмо с приглашением на телефонное интервью в среду в 17:30.
Читать дальше →

Максимальный поток минимальной стоимости

Reading time15 min
Views86K
Транспортная задача (классическая) — задача об оптимальном плане перевозок товара со складов в пункты потребления на транспортных средствах.

Для классической транспортной задачи выделяют два типа задач: критерий стоимости (достижение минимума затрат на перевозку) или расстояний и критерий времени (затрачивается минимум времени на перевозку).

Под катом очень-очень много текста, т.к. рассказывается один из вариантов решения данной задачи «в картинках» для тех, кто мало знаком с графами. Листинг прилагается.

Путешествие в тысячу миль начинается с первого шага

О том, как я заставлял Ubuntu работать 10 часов от батареи

Reading time11 min
Views195K
imageЯ являюсь рядовым линукс-пользователем и поэтому не стоит от этой статьи ожидать очень умных ходов или нестандартных программистских решений. Все по мануалам. Но раз результат достигнут, значит кому-то кроме меня это может оказаться полезным.

О том, как заставит ноутбук работать под линуксами как можно дольше, написано немало, в том числе и на хабре. В какой-то степени я еще раз соберу все советы воедино, от очевидных до обскурных, заодно опишу несколько проблем и решений, которые у меня оказались достаточно «индивидуальными».

Устанавливал я Ubuntu 10.10 на ноутбук Acer Aspire Timeline 5810TG. Эта машина обладает экраном в почти 16 дюймов и относительно производительным железом, зато батарея достаточно емкая, чтобы ставить с ней личные рекорды.
Читать дальше →

Data Context Interaction (DCI) — эволюция объектно-ориентированной парадигмы

Reading time9 min
Views37K
Слишком часто стала мелькать в западных блогах и твиттере аббревиатура “DCI”. Меня удивил тот факт, что на хабре по данной тематике почти нету информации, лишь в Ruby NoName Podcast S04E09 упоминалось об этом. Любопытство взяло вверх, и я решил узнать об этом загадочном слове побольше. В процессе поиска я наткнулся на хорошую статью, написанную на английском моим земляком, Виктором Савкиным. Данная статья без обильной теории, на практических примерах показывает, что из себя представляет DCI. Далее повествование будет идти от лица Виктора.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity