Как стать автором
Поиск
Написать публикацию
Обновить
133
0
Дулин Марат @mdevils

FullStack Software Developer

Отправить сообщение

Сборник упражнений по TypeScript

Время на прочтение1 мин
Количество просмотров17K
В прошлом году я в свободное время написал сборник упражнений по TypeScript для своей команды, чтобы помочь ребятам подтянуть свой уровень. В этом году доработал напильником и решил выложить в общий доступ. Задания начинаются с простых и заканчиваются очень сложными, где нужны не только знания TypeScript, но и знания node.js.

Вот ссылка на репозиторий


Пользуйтесь на здоровье. Можете слать мне пулл-реквесты и задавать вопросы. Фидбек приветствуется.

JSCS, CST и новое начало

Время на прочтение3 мин
Количество просмотров8.5K
Мы наконец-то выпустили JSCS версии 3.0, и надо сказать, что помимо энтузиазма, мы испытываем еще и некоторую грусть. Над новой мажорной версией мы работали много и долго, это было довольно интересно и местами захватывающе. Грустно от того, что это будет последней версией JSCS.

С помощью вас, JavaScript разработчиков, которые помогали JSCS, проект смог достичь успеха. Около 5 тысяч звезд на гитхабе и более 27 тысяч скачиваний npm пакета в день. Тем не менее, мы приняли решение не выпускать новых мажорных версий и впоследствии прекратить работу над проектом.
Что дальше?

Как ESLint реагирует на ситуацию с удалением пакетов из NPM

Время на прочтение3 мин
Количество просмотров13K
После того, как произошла ситуация с удалением пакетов из NPM, которая затронула огромное количество пользователей пакетов babel, jscs и многих других (об этом можно почитать здесь: «A discussion about the breaking of the Internet»), многие разработчики Open Source начали рассуждать о будущем NPM и экосистемы JS в целом.

Мнения разделились:


Ну а команды крупных Open Source пакетов, на которые свалилось огромное количество тикетов в github, всерьез задумались о том, как не допустить такой ситуации в будущем. Особенно пострадали те проекты, которые часто используются в CI, так как именно пользователи CI в первую очередь заметили проблемы с отсутствующими зависимостями. Одним из таких проектов является ESLint, имеющий порядка 70 тысяч установок в день, большинство из которых приходится на CI-сборки.
Читать дальше →

JSCS: JavaScript Code Style

Время на прочтение3 мин
Количество просмотров59K
Когда девять месяцев назад я написал для себя маленькую консольную утилиту, я и не подозревал, что вскоре она превратится в серьёзный и единственный в своём роде инструмент, которым будут пользоваться даже такие известные всем команды, как jQuery, Bootstrap, Angular. Сейчас, когда я пишу эту статью, у моего проекта на гитхабе 1010 звёздочек, и мне очень радостно думать о том, что так много людей смогли с помощью моей придумки сделать свою работу удобнее.

История этого проекта началась с моей личной боли.

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

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

Vow: самые быстрые промисы

Время на прочтение1 мин
Количество просмотров13K
Хочу предоставить вашему вниманию библиотеку Vow, которую написал мой коллега Дмитрий Филатов dfilatov.

Библиотека реализует Promises/A+, работает очень быстро и требует малого объема памяти. По тестам производительности сильно опережает Q, но при этом сохраняет асинхронную манеру работы.

Работа с Vow выглядит так же просто, как работа с Q. Из недостатков (по сравнению с Q) можно лишь выделить отсутствие progress.

Пример кода с использованием Vow:
function readFile(filename, encoding) {
    var promise = Vow.promise();
    fs.readFile(filename, encoding, function(err, data) {
        if (err) return promise.reject(err);
        promise.fulfill(data);
    });
    return promise;
}
Vow.all([readFile('test1.txt', 'utf8'), readFile('test2.txt', 'utf8')]).then(function(results) {
    console.log(results.join('\n'));
});

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

Две истории о TimeMachine

Время на прочтение2 мин
Количество просмотров13K

Time Machine — инновационная система резервного копирования, встроенная непосредственно в Mac OS X 10.5 «Leopard». Для работы cовместно с Time Machine в среде Mac OS X компанией Apple Inc. выпущена точка доступа Time Capsule.

Хочу рассказать две истории о том, как Time Machine спас меня.

Прошу под кат

Победа копирастов на примере PlayStation Portable

Время на прочтение2 мин
Количество просмотров1.4K
На хабре часто обсуждают возможное будущее, в котором не будет пиратства. И тогда производители контента снизят цены, будут лояльными к пользователям и чуть ли не будут раздавать все за бесценок. Так ли это будет? Похоже, что совсем нет.
Читать дальше →

Несколько советов для PHP-разработчиков

Время на прочтение4 мин
Количество просмотров8K
image Хочу опубликовать небольшой сборник советов для современных PHP-разработчиков. Я умышленно не связываю их с теми или иными фреймворками, библиотеками и тп. Надеюсь, что мои советы помогут кому-то лучше понять PHP, научиться лучше его использовать. Некоторые из них могут быть не специфичны для PHP, но для программирования в общем.
Читать дальше →

encached: кеширующий сервер

Время на прочтение2 мин
Количество просмотров2.5K
Идея написания сервера кеша приходила ко мне давно, но небыло подходящего повода и инструмента, чтобы начать над ним работу. Сделать свой сервер кеша мне хотелось по двум причинам: опыт, возможность легко добавлять нужные мне функции (кто видел код memcached, тот меня поймет). Основной проблемой для меня был C++. Несмотря на то, что я нередко с ним сталкиваюсь, он мне не нравится совсем. Я не буду начинать холивар и писать о его недостатках. Он мне не нравится так же как кефир с детства: мы с ним несовместимы. Поэтому для меня было большой новостью существование FreePascal. Когда-то давно у меня был опыт работы на Delphi, поэтому с Pascal я был «на ты». Особенно меня удивило то, что FreePascal оказался кроссплатформенным (чем Delphi совсем не блистал).
Читать дальше →

Лечим треск при проигровании звуков в Pidgin

Время на прочтение1 мин
Количество просмотров2.1K
Публикую статью от guglez.

Часто сталкиваюсь с неприятной проблемой — при проигровании Pidgin-ом звуков идет неприятный треск. Проблему эту наблюдал не только у себя. Сегодня решил наконец-то разобраться в чем дело.
Читать дальше →

Потоки данных

Время на прочтение3 мин
Количество просмотров76K
BASH Статья посвящена работой с потоками данных в bash. Я постарался написать ее наиболее доступным и простым языком, чтобы было понятно даже новичкам в Linux.


В одной из моих статей мы рассматривали запись звука в файл с помощью команды:

cat /dev/audio > /tmp/my.sound

Эта команда читает файл (устройство) /dev/audio с помощью команды cat и перенаправляет информацию из него в файл /tmp/my.sound (с помощью оператора >).

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

Имена методов и функций

Время на прочтение3 мин
Количество просмотров36K
Изучая всякого рода системы, я обнаружил, что у многих наблюдаются проблемы с именованием методов. Это побудило меня написать статью.

странный кусок кода
Читать дальше →

Кнопки навигации по постам

Время на прочтение1 мин
Количество просмотров695
Однажды я разбирал код Хабрахабра и обнаружил одну интересную вещь: по постам можно перемещаться используя клавиатуру.

Доступные кнопки


j — следующий пост.

k — предыдущий пост.

h — переход к началу страницы.

Работают эти кнопки на страницах с лентами постов.

Благодарности


Благодарим имперского веб-технолога Виктора Вяльчина и Лялю.

Расширяем Хабр

Время на прочтение1 мин
Количество просмотров811
Однажды, устав играть в Counter-Strike 1.6, решил, что можно убить оставшееся время более продуктивно (особенно в условиях мирового финансового кризиса). На память мне пришла притча, приписываемая Лао-Цзы, мораль которой сводилась к тому, что из сложного можно получить простое, даже не прибегая к рисовой водке. Проще говоря, сделал два маленьких улучшения для правой панельки на странице топиков:



Чтобы установить расширения, надо иметь Firefox с установленным GreaseMonkey.
Читать дальше →

IDE своими руками: проектирование

Время на прочтение2 мин
Количество просмотров11K
Давно хотелось рассказать о том как делать сложные проекты с проектирования до выпуска. Считается, что IDE — это довольно сложные системы. Это очень хорошо. Есть простор для проектирования, применения паттернов, построения иерархии классов.

Примеры успешных IDE:
  • Visual Studio
  • Eclipse
  • IDEA
Мне уже не терпится начать…
Читать дальше →

Горячие клавиши

Время на прочтение1 мин
Количество просмотров1.4K
Чтобы порадовать хабрапользователей, мы ввели горячие клавиши на Хабре:

Ctrl + ← (Alt + ←)
    Переход на предыдущую страницу (для страниц с постраничной навигацией)

Ctrl + → (Alt + →)
    Переход на следующую страницу (для страниц с постраничной навигацией)

Alt + R
    Подгрузка новых комментариев (на странице просмотра хабратопика)

Alt + C
    Переход к следующему новому комментарию (на странице просмотра хабратопика)

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

Купил новый компьютер? Старый тоже пригодится

Время на прочтение4 мин
Количество просмотров7.9K
Так получилось, что я люблю программирование и компьютеры. Поэтому у каждого члена моей семьи было по одному PC. У меня стационарный (Ubuntu), у мамы тоже (Windows XP), а у жены — ноутбук (Windows Vista). Была задача — организовать интернет для всей этой техники. Провайдер мне его отдает по PPTP. Недолго думая (и будучи лентяем) я докупил обычные Ethernet-сетевые карты, вставил на стационарные компы и соединил все компьютеры проводами (если честно, я еще купил WiFi модуль для своего компа, но тупо не смог настроить для ubuntu).

Шло время, потребности росли (особенно потребности в мобильности рабочего места) и я стал обладателем ноутбука MacBook Pro. Что делать со старым компьютером? Выбрасывать? Было жалко… Ведь почти руками его собирал в течение двух лет. И тогда я решил — будет сервером! Я почистил компьютер и заново поставил туда Ubuntu Linux.
Читать дальше →

Работаем с массивами в JavaScript без велосипедов

Время на прочтение2 мин
Количество просмотров42K
Эту статью я хочу посвятить тонкостям работы с массивами в JavaScript.

Наверное, у каждого JavaScript-разработчика есть фунции (самописные или библиотечные) $ (выбор элемента по id) и $$ (выбор элементов по CSS-классу). Если мы выбираем несколько элементов по CSS-классу, то мы хотим произвести с ними определенные действия. Напрашивается цикл. А если нужна выборка среди них? Преобразования? Действия над нужными элементами? Непростой получается код.

JavaScript не стоит на месте, Mozilla неустанно улучшает JavaSript в своем движке Gecko и грех не пользоваться этими нововведениями. В JavaScript 1.6 добавлены новые полезные методы для упрощения кода, необходимого в вышеописанных ситуациях.
Читать дальше →

Композиции к месту

Время на прочтение1 мин
Количество просмотров1K
Довольно часто я смотрю различные фильмы/анимационные фильмы и встречаю моменты, когда песня очень-очень в тему (иногда до слёз раздирает).

Mulholland Drive & Prison Break


В этих двух замечательных фильмах в очень удачный момент звучала песня:
Rebekah Del Río — Llorando
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Berlin, Berlin, Германия
Дата рождения
Зарегистрирован
Активность