Как стать автором
Обновить
-26
0
KoCMoHaBT61 @KoCMoHaBT61

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

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

Как я делал сайт визитку на Angular

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

Спустя несколько лет промышленной разработки приложений на javascript, решил вспомнить молодость и сделать небольшой pet-проект, который в полной мере развернул весь процесс разработки подобного рода приложений с использованием фреймворка Angular. В статье делюсь своими впечатлениями, а также пытаюсь понять, стоит ли делать сайты визитки на Angular.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии18

Лямбда-исчисление в 397 байтах

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

Лямбда-исчисление — это язык программирования с единственным ключевым словом. Это асфальтовая топь Тьюринга, обнаруженная научным руководителем Тьюринга. В этом посте я расскажу о совершенно новой 397-байтной реализации двоичного лямбда-исчисления в виде Linux ELF для x86-64. Также в нём представлены удобно портируемый код на C и собранные двоичные файлы APE для других платформ.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+68
Комментарии13

15 отличных Телеграм-каналов для поиска работы на удаленке

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

С 2005 года спрос на удаленную занятость вырос на 140%. Очевидно, что эта тенденция будет продолжаться. Сегодня вакансии на удаленку можно найти и на job-бордах, и в социальных сетях, но мне ближе Телеграм-каналы. Делюсь с вами своей подборкой. Дополнения в комментариях приветствуются)

Читать далее
Всего голосов 11: ↑5 и ↓60
Комментарии5

Настраиваем профиль IT специалиста в LinkedIn

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

Данная короткая статья поможет IT коллегам из русскоязычного сегмента интернета заполнить свой профиль в LinkedIn. Заполненный профиль дает возможность в случае необходимости оперативно получить предложения о работе и оставаться в курсе актуальных новостей профессиональной сферы.

Читать далее
Всего голосов 19: ↑14 и ↓5+11
Комментарии5

Типичное использование Observable объектов в Angular 4

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

Представляю вашему вниманию типичные варианты использования Observable объектов в компонентах и сервисах Angular 4.



Подписка на параметр роутера и мапинг на другой Observable


Задача: При открытии страницы example.com/#/users/42, по userId получить данные пользователя.


Решение: При инициализации компоненты UserDetailsComponent мы подписываемся на параметры роутера. То есть если userId будет меняться — будер срабатывать наша подписка. Используя полученный userId, мы из сервиса userService получаем Observable с данными пользователя.


// UserDetailsComponent

ngOnInit() {
  this.route.params
    .pluck('userId') // получаем userId из параметров
    .switchMap(userId => this.userService.getData(userId))
    .subscribe(user => this.user = user);
}

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии12

Экосистема React в 2022 году

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

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

Читать далее
Всего голосов 23: ↑20 и ↓3+22
Комментарии60

С широко закрытыми глазами

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

Мир ИТ-услуг весьма странен.

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

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

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

Итог всегда один, просто достигается за разное время, кому как повезёт. Кому-то выпадет счастливый билет, и попадётся действительно классный программист или целая команда. Но это лишь продлит агонию – никакой программист, и никакая команда не будет с заказчиком всегда. Штурмовые бригады идут дальше, а на замену приходят охранные войска – ополченцы, грубо говоря. И разочарование заказчика ИТ-миром в целом произойдёт обязательно.

А бывает ли по-другому? Речь не про сказку об очередном мифическом деревенском программисте, который с пинка открыл дверь собственника и всё ему объяснил, нет. Бывает ли так, что не обманываются ожидания?

Конечно. Чтобы не обманывались ожидания, рычага есть два. Первый – соответствовать ожиданиям. Второй – корректировать ожидания. Я сегодня про второй.

Есть у нас команда, которая…. Как бы это выразиться. Странная короче. Они говорят заказчику всё, как есть. И предлагают выбор.

Читать далее
Всего голосов 31: ↑26 и ↓5+23
Комментарии8

Технология Вялых Проектов

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

Этот текст – заказной. Знаю, многие из читателей пытались заказать у меня тексты, но я если и пишу для кого-то, то только для друзей. Нетрудно догадаться, что заказчик – мой друг. Зовут его… Пусть Вася. Он так и не решил, называться ли настоящим именем. Потому что так и не решил, зачем ему этот текст.

Итак, Вася – создатель уникального подхода в автоматизации. Надеюсь, процитировал достаточно точно. Вася делает Вялые Проекты.

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

На всякий случай отмечу, что кроме вышеупомянутой цитаты, ни одной буквы в этом тексте не написано Васей. Он этот текст прочитает одновременно с вами.

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

Читать далее
Всего голосов 95: ↑80 и ↓15+91
Комментарии65

JavaScript: захват медиапотока из DOM элементов

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



Привет, друзья!


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


Мы разработаем простое приложение для сведения аудио и видео со следующим функционалом:


  • пользователь выбирает одно видео и несколько аудио, хранящихся в его файловой системе;
  • когда пользователь нажимает на кнопку для начала записи, запускается воспроизведение выбранных файлов, захватываются их медиапотоки;
  • захваченные потоки объединяются в один и передаются для записи;
  • в процессе записи пользователь может менять источник аудиоданных;
  • пользователь может приостанавливать (например, для изменения источника аудиоданных) и продолжать запись;
  • по окончанию записи генерируется видеофайл в формате WebM — превью сведенного контента и ссылка для его скачивания.

В качестве фреймворка для фронтенда я буду использовать React, однако все функции по работе с медиа будут автономными (сигнатура этих функций будет framework agnostic), так что вы можете использовать любой другой фреймворк или ограничиться чистым JavaScript.


Песочница:

Репозиторий.


О том, как разработать приложение для создания аудиозаметок, можно прочитать в этой статье, а о том, как разработать приложение для захвата и записи экрана — в этой.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Как научиться чему угодно с помощью техники Фейнмана

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


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

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

Нет никаких чудо-людей. Просто случилось так, что они заинтересовались чем-то и выучили все про это. Ричард Фейнман

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

На протяжении всей своей работы и жизни, Фейнман с элегантностью и простотой давал представление о своём процессе рассмотрения сложных концепций в мире физики и изложения знаний/идей. Многие из этих наблюдений о его процессе обучения были собраны в то, что мы сейчас называем «техникой Фейнмана».

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

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

В этой статье будет представлен обзор техники Фейнмана и того, как вы можете применять её для постоянного расширения своих знаний и навыков. Короче говоря, Фейнман научит вас не только тому, как учиться, но и тому, как по-настоящему понимать.
Приятного чтения!
Всего голосов 64: ↑53 и ↓11+63
Комментарии106

Базовые подходы к парсингу

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

Вступление

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

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

Хочу подметить, что хоть в моих жилах течет дотнет, в этом примере я буду использовать Node JS, потому что так быстрее, и удобнее в плане парсинга. Чем именно удобней - я расскажу позже в статье.

Можем ли мы спарсить?

Да, к сожалению (или счастью) веб - он не однообразен, и каждый ресурс может быть уникален по своему, но в нашем деле, ключевым моментом будет то, есть ли на этом ресурсе Server-Side Rendering (SSR), или там Client-Side Rendering и важная для нас информация подтягивается позже с помощью JS.

К примеру, нативные апки на React или тот же Angular by default есть CSR. И что бы прикрутить там SSR нужно порой очень сильно попотеть.Тем не менее, большинство сайтов с топ серч результатов любой поисковой системы будут поддерживать именно SSR, потому что таков мир SEO-оптимизаций.

Читать далее
Всего голосов 23: ↑14 и ↓9+8
Комментарии32

Синглтон (Перевод с английского главы «Singleton» из книги «Pro Objective-C Design Patterns for iOS» Carlo Chung)

Время на прочтение11 мин
Количество просмотров28K
В математике и логике синглтон определяется как «множество, содержащее ровно один элемент». Поэтому неважно, насколько велика сумка, каждый раз при попытке достать из неё шарик будем получать один и тот же. В каких ситуациях нужен синглтон в программировании? Подумайте о ресурсах, которые невозможно скопировать, но можно использовать совместно. Например, на iPhone установлен единственный модуль GPS и определять текущие координаты умеет только он. Класс CLLocationManager из фреймворка CoreLocation предоставляет единственную точку входа ко всем сервисам GPS-модуля. Кто-нибудь может подумать: если можно сделать копию CLLocationManager, можно ли получить дополнительный набор GPS-сервисов для своего приложения? Это звучит, как фантастика – вы создали два программных GPS по цене одного аппаратного. Но в реальности вы все равно получаете только один GPS единовременно, так как в iPhone есть только один GPS, который создает настоящие соединения со спутниками. Так что, если вы думаете, что создали супер-приложение, которое может манипулировать двумя отдельными GPS-соединениями одновременно, и хотите похвастаться этим перед друзьями, подумайте дважды.

Класс синглтона в объектно-ориентированном приложении всегда возвращает один и тот же экземпляр самого себя. Он обеспечивает глобальную точку доступа для ресурсов, которые предоставляет объект класса. Паттерн с такой функциональностью называется Синглтон.
В этой главе мы изучим возможности реализации и использования паттерна Синглтон в Objective-C и фреймворке Cocoa Touch на iOS.
Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии10

Декоратор (Перевод с английского главы «Decorator» из книги «Pro Objective-C Design Patterns for iOS» Carlo Chung)

Время на прочтение22 мин
Количество просмотров19K
Обычно, делая фотографии, вы не задумываетесь, как оформите их потом. Вы фотографируете просто потому, что хотите поймать момент. Скажем, одну из фотографий вы затем распечатали, потом решили поместить в рамку с необычным стеклом. Но позже вы могли бы поместить ту же фотографию в другую рамку, если бы захотели. Даже несмотря на то, что вы изменили рамку, картинка осталась той же, потому что вы просто что-то добавляли к ней, но не изменяли ее при этом.

В объектно-ориентированном программировании заимствовали похожую идею добавления поведения к другим объектам без потери их исходных особенностей, т. е. расширенный объект будет улучшенной версией того же самого класса (фото в рамке). Любое «улучшение» (рамка) может быть наложено и снято динамически. Мы называем этот паттерн проектирования Декоратором, так как декоратор может добавляться к другому декоратору или исходному объекту для расширения его свойств, оставив исходное поведение нетронутым.

Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии2

Стратегия (Перевод с английского главы «Strategy» из книги «Pro Objective-C Design Patterns for iOS» Carlo Chung)

Время на прочтение13 мин
Количество просмотров17K
Помните ли вы, когда вы в последний раз начиняли блок кода множеством разных алгоритмов и использовали спагетти из условий if-else / switch-case, чтобы определить, какой именно из них использовать. Алгоритмы могли представлять собой набор функций/методов похожих классов, которые решают схожие проблемы. К примеру, у вас есть процедура для проверки входных данных. Сами данные могут быть любых типов (например, CGFloat, NSString, NSInteger и прочее). Каждый из типов данных требует различных алгоритмов проверки. Если бы вы могли инкапсулировать каждый алгоритм в виде объекта, то можно было бы не использовать группу операторов if-else / switch-case для проверки данных и определения, какой из алгоритмов нужен.

Читать дальше →
Всего голосов 17: ↑12 и ↓5+7
Комментарии7

Исчерпывающее руководство Getting Things Done (GTD) метода с примерами

Время на прочтение10 мин
Количество просмотров114K
В данной статье вы узнаете о методе, помогающем привести в порядок все ваши дела от самых крупных и важных, до тех, что еще только появились в голове.

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

Я подробно разберу на практике все шаги Getting Things Done метода и вы получите четкую инструкцию к действию (Как привести дела в порядок). Вы сможете не только эффективно организовать свои дела, но и найти больше возможностей для создания новых идей, применяя данную инструкцию на практике.


Читать дальше →
Всего голосов 12: ↑10 и ↓2+12
Комментарии19

Swift. Class && Struct (классы и структуры) ч.1

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

Обычно, в учебных пособиях, книгах и прочих источниках информации, class'ы объясняют примерно так «class это - описание объекта, а объект это экземпляр класса и бла бла бла», в принципе, это частично отражает суть конструкции, но называть class в рамках языка Swift, описанием объекта, будет не совсем корректно т.к. он же еще и представляет собой тип данных и вообще можно использовать классы как независимые, самодостаточные сущности, которые не требуют инициализации. Поэтому начинать со слов «Возьмем объект животного, пускай это будет кот...» я конечно же не буде. И вообще, давайте не будем о "сложном" т.к. материал рассчитан все же на новичков, а новички могут и не знать, что такое, эти ваши объекты и инициализации. В общем я считаю подобное (я про формулировку) не достаточно информативным, поэтому будем разбирать все на примерах с переходом от простого к более сложному. Попутно к ознакомлению с классами, мы будем так же рассматривать и другие возможности языка, но обо всем по порядку.

Наслаждаться чтивом
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

Swift. Class && Struct (классы и структуры) ч.2

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

Данная публикация является второй частью ранее опубликованного материала и рассчитана на ознакомление с ним. Ссылка на первую часть - Тыц

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

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии8

Удаленная отладка приложений Kubernetes с использованием Visual Studio Code

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

Отладка в контейнерной среде – дело не самое простое, поэтому разработчики зачастую прибегают к неэффективным методам локализации ошибок на этапе развертывания. Быстрее и красивее будет использовать отладчик на удаленном сервере, задав точки останова для поиска причин неполадок.

Именно этот вариант мы рассмотрим сегодня и покажем, как запускать отладчик на кластере Kubernetes через IDE-среду Visual Studio Code (VS Code). В качестве приложения у нас будет программа на Go, но всё изложенное вполне применимо и к другим языкам программирования и отладчикам.

Читать дальше: Удаленная отладка...
Всего голосов 5: ↑4 и ↓1+4
Комментарии1

Руководство разработкой: beginner's survival guide

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

Привет! Меня зовут Наташа, я руковожу разработкой бэкенда страницы yandex.ru. Сейчас у нас в команде больше двадцати человек, которые входят в отдельные группы разработки. Три года назад я впервые стала «тимлидом» маленькой группы из четырёх человек, накопив к этому времени десяток лет опыта в разработке и эксплуатации. Я не стесняюсь сказать, что переход от разработчика к тимлиду дался мне тяжело — и это нормально!

Мне нравится помогать людям в их жизненном пути и ко мне часто приходят начинающие руководители для получения опыта. Работа с людьми показала, что все проходят одинаковый путь с одинаковыми проблемами. Эта статья — мой способ наглядно показать начинающим руководителям происходящее с ними и дать очень простые инструменты, облегчающие первый переход от исполнителя к руководителю.
Читать дальше →
Всего голосов 45: ↑41 и ↓4+51
Комментарии24

Осваиваем кросс-компиляцию с помощью Clang и LLVM

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

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


Одним из основных виновников этих проблем, по моему опыту, является тулчейн GNU — древний мамонт, на котором много десятилетий строится весь мир POSIX. Подобно многим компиляторам былых времён, семейство GCC и binutils никогда не ориентировалось на поддержку множества различных целей сборки в одной установке, и единственным способом хоть как-то добиться желаемого была настройка полной кросс-билд-системы для каждой целевой платформы на каждом хосте.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+15
Комментарии8

Информация

В рейтинге
Не участвует
Откуда
Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность