Pull to refresh
22
Karma
0
Rating
Михаил Насыров @mnasyrov

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

  • Posts
  • Comments

Кремниевая долина пришла к канзасским школьникам. Это привело к протестам

Education abroadThe future is here
Translation

Семена раздора были посеяны в школьных аудиториях и взошли на кухнях, в гостиных, в разговорах между учениками и их родителями. Когда 14-летний Коллин Винтер, восьмиклассник из канзасского города Макферсон, присоединился к протестам, они достигли своей кульминации. В соседнем Веллингтоне старшеклассники устроили сидячую забастовку, а их родители собирались в гостиных, в церквях и во дворах авторемонтных мастерских. Они массово ходили на собрания школьного совета. «Я просто хочу забрать свой хромбук и сказать им, что не собираюсь этим больше заниматься», — говорит 16-летняя Кайли Форслунд, ученица 10-го класса в Веллингтоне. В кварталах, где никогда не было политических плакатов, неожиданно появились самодельные транспаранты.
Читать дальше →
Total votes 57: ↑48 and ↓9 +39
Views39K
Comments 323

Разбираем лямбда-выражения в Java

Haulmont corporate blogProgrammingJava
Translation

image


От переводчика: LambdaMetafactory, пожалуй, один из самых недооценённых механизмов Java 8. Мы открыли его для себя совсем недавно, но уже по достоинству оценили его возможности. В версии 7.0 фреймворка CUBA улучшена производительность за счет отказа от рефлективных вызовов в пользу генерации лямбда выражений. Одно из применений этого механизма в нашем фреймворке — привязка обработчиков событий приложения по аннотациям, часто встречающаяся задача, аналог EventListener из Spring. Мы считаем, что знание принципов работы LambdaFactory может быть полезно во многих Java приложениях, и спешим поделиться с вами этим переводом.


В этой статье мы покажем несколько малоизвестных хитростей при работе с лямбда-выражениями в Java 8 и ограничения этих выражений. Целевая аудитория статьи — senior Java разработчики, исследователи и разработчики инструментария. Будет использоваться только публичный Java API без com.sun.* и других внутренних классов, поэтому код переносим между разными реализациями JVM.

Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Views25.1K
Comments 34

Вам действительно нужен Redux?

JavaScriptPerfect codeООPReactJSTypeScript

Не так давно React позиционировал себя как "V in MVC". После этого коммита маркетинговый текст изменился, но суть осталась той же: React отвечает за отображение, разработчик — за все остальное, то есть, говоря в терминах MVC, за Model и Controller.


Одним из решений для управления Model (состоянием) вашего приложения стал Redux. Его появление мотивировано возросшей сложностью frontend-приложений, с которой не способен справиться MVC.


Главный Технический Императив Разработки ПО — управление сложностью

Совершенный код

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


  • состояние всего приложения хранится в одном месте
  • единственный способ изменить состояние — отправка Action'ов
  • все изменения происходят с помощью чистых функций

Смог ли Redux побороть возросшую сложность и было ли с чем бороться?

Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Views46.5K
Comments 632

Redux. Простой как грабли

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

TL;DR: базовая логика redux помещается в 7 строк JS кода.

О redux вкратце (вольный перевод заголовка на гитхабе):
Redux — библиотека управления состоянием для приложений, написанных на JavaScript.

Она помогает писать приложения, которые ведут себя стабильно/предсказуемо, работают на разных окружениях (клиент/сервер/нативный код) и легко тестируемы.
Я склонировал репозиторий redux, открыл в редакторе папку с исходниками (игнорируя docs, examples и прочее) и взялся за ножницы клавишу Delete:

  • Удалил все комментарии из кода
    Каждый метод библиотеки задокументирован с помощью JSDoc весьма подробно
  • Убрал валидацию и логирование ошибок
    В каждом методе жёстко контролируются входные параметры с выведением очень приятных глазу подробных комментариев в консоль
  • Убрал методы bindActionCreators, subscribe, replaceReducer и observable.

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

А теперь давайте разберём то, что осталось
Читать дальше →
Total votes 52: ↑49 and ↓3 +46
Views127.2K
Comments 159

Ещё один манифест

Development ManagementProject managementAgileProduct Management
Sandbox
Эджайл то, эджайл сё. Про эджайл сейчас не говорит только ленивый. Да и ленивый говорит. Все говорят. Из каждого утюга, даже выключенного из сети, топят за эджайл. Такое ощущение, что просто эпидемия какая-то разразилась. И не подумайте, что я только про ИТ. Коучи учат неофитов проводить стендапы с ретроспективами и жить по спринтам в любых бизнес-сферах: от булочных до парикмахерских. А некоторые менеджеры, наслушавшись коучей, так увлекаются, что забывают о природе данного явления, заставляя внедрять гибкие методологии негибкими методами: «Так, с завтрашнего дня мы все становимся гибкими. Что за «хихи»? Гибкими я сказал, а то всех нагну!». Так в чем же природа эджайл, на чем он зиждется?
Читать дальше →
Total votes 35: ↑31 and ↓4 +27
Views8.7K
Comments 35

Асинхронная бизнес-логика в наши дни

Open sourceJavaScriptProgrammingC++Node.JS

Вкратце:


  • Пруф уже реализован на C++, JS и PHP, подходит для Java.
  • Быстрее чем coroutine и Promise, больше фич.
  • Не требует выделения отдельного программного стека.
  • Дружит со всеми средствами безопасности и отладки.
  • Работает на любой архитектуре и не требует особых флагов компилятора.

Читать дальше →
Total votes 29: ↑25 and ↓4 +21
Views13.5K
Comments 57

Apple App Store. Получаем ERN

LLC Tik-Tok Coach corporate blogDevelopment for iOS
Tutorial
Перед загрузкой приложения на ревью в Apple App Store нам задают неожиданный вопрос, а не использует ли наше приложение криптографию?

image

И хотя соблазн ответить «нет» и загрузить наконец-то очень велик, и кто-то тихо шепчет, что ты мог и забыть про https или вообще не знать, как он работает, но совесть советует разобраться и в этом.
У меня много сил ушло, чтобы получить ERN(Encryption Registration approval from BIS), и я решил написать инструкцию.
Получаем ERN
Total votes 64: ↑63 and ↓1 +62
Views26.8K
Comments 26

Миллион WebSocket и Go

Mail.ru Group corporate blogHigh performanceWebsite developmentGo

image


Привет всем! Меня зовут Сергей Камардин, я программист команды Почты Mail.Ru.


Это статья о том, как мы разработали высоконагруженный WebSocket-сервер на Go.


Если тема WebSocket вам близка, но Go — не совсем, надеюсь, статья все равно покажется вам интересной с точки зрения идей и приемов оптимизации.

Читать дальше →
Total votes 119: ↑115 and ↓4 +111
Views78.2K
Comments 78

Внутреннее устройство и оптимизация бандла webpack

JUG Ru Group corporate blogWebsite developmentJavaScript
Webpack фактически стал стандартом для сборки крупных приложений на JS. Его используют практически все. Для разработчика webpack выглядит как магический черный ящик: если забросить в него файлы и небольшой конфиг, на выходе автоматически появится бандл.

Чтобы разобраться в секретах этой магии, мы обратились к эксперту, человеку, который неоднократно залезал внутрь webpack, — Алексею Иванову. Он готов объяснить, как выглядит бандл изнутри, как на него влияют разные настройки, к чему и почему могут привести некоторые из них, а также рассказать, как все это отладить и оптимизировать.


В основе материала — доклад Алексея Иванова на конференции HolyJS 2017, проходившей в Санкт-Петербурге 2-3 июня.
Читать дальше →
Total votes 56: ↑54 and ↓2 +52
Views32.9K
Comments 23

Блокчейн в 200 строк кода

Research and forecasts in ITFinance in IT
Sandbox
Основная концепция блокчейна довольно проста: распределенная база данных, которая поддерживает постоянно растущий список упорядоченных записей.

Однако, многоe остается непонятным, когда мы говорим о блокчейне, так же остается много проблем, которые мы пытаемся решить с его помощью. Это относится и к популярным блокчейн проектам, таким как Биткоин (Bitcoin) и Эфириума (Ethereum). Термин «блокчейн» обычно сильно привязан к концепции типа денежных переводов, смарт-контрактов или криптовалюты.

Это делает понимание блокчейна сложнее, чем есть на самом деле. Особенно исходный код. Здесь я пройдусь по супер-простой реализации блокчейна в 200 строк кода JavaScript под названием NaiveChain.

Структура блока


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

image
Хэш предыдущего блока необходимо найти в блоке для сохранения целостности цепи
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Views61.2K
Comments 8

Замечания о реактивном программировании. Технологический ландшафт

Издательский дом «Питер» corporate blogJavaFunctional ProgrammingProfessional literature
Translation
Здравствуйте, дорогие читатели! Сегодня предлагаем вашему вниманию обещанную статью с обзором возможностей реактивного программирования. Приятного и плодотворного чтения.
Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Views9.8K
Comments 0

Термоакустический двигатель – двигатель Стирлинга без поршней

Popular science
Sandbox
Двигатель Стирлинга – двигатель с внешним подводом тепла. Внешний подвод тепла – это очень удобно, когда есть необходимость использовать в качестве источника тепла не органические виды топлива. Например, можно использовать солнечную энергию, геотермальную энергию, бросовое тепло с различных предприятий.

image

Приятная особенность цикла Стирлинга – это то, что его КПД равен КПД цикла Карно [1]. Естественно у реальных двигателей Стирлинга эффективность ниже и зачастую намного. Двигатель Стирлинга начал своё существование с устройства, имеющего множество подвижных деталей, таких как поршни, шатуны, коленчатый вал, подшипники [2]. К тому же еще и ротор генератора крутился (Рисунок 1).
Читать дальше →
Total votes 76: ↑76 and ↓0 +76
Views89.1K
Comments 85

Контроль над браслетом в ритме BlueZ

PythonReverse engineeringDevelopment for IOT
В исследовательском проекте мне потребовался прототип медицинского браслета. Устройство должно было периодически измерять пульс, предупреждая об этом пациента, и отправлять результаты вместе с уровнем заряда батареи в облачный сервис. Таким устройством вполне мог стать и фитнес-браслет со стационарным ретранслятором вместо смартфона. Поэтому, прежде чем попытаться собрать прототип своими руками, я решил поэкспериментировать с чем-нибудь готовым. Так у меня появился новый Xiaomi mi band 1S Pulse (обзор на Geektimes) с оптическим датчиком частоты сердечного ритма.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views32.3K
Comments 31

Как двухлетний репозиторий на GitHub стал трендовым за 48 часов

Productivity Inside corporate blogOpen sourcePython
Translation


GitHub предоставил возможность миллионам разработчиков с легкостью публиковать свои проекты и тем самым привлекать пользователей и единомышленников. Часто перед разработчиками возникает проблема неэффективного использования ресурсов — они тратят сотни часов на создание проекта с целью продвинуть его на GitHub, а получают максимум две звезды.
Читать дальше →
Total votes 88: ↑74 and ↓14 +60
Views39.3K
Comments 37

Репликация без конфликтов: CRDT в теории и на практике

ProgrammingAlgorithmsMathematicsDistributed systems
В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT).

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views29.4K
Comments 12

Путь чайника в астрофото. Часть 1 — Оборудование

GadgetsPopular scienceSoftwareAstronomy
Без преувеличения можно сказать, что астрофотография — один из самых технически сложных разделов фотографии. Сложности состоят не только в некоторой удаленности объектов наблюдений, но и в различных моментах организационного характера.


Астрономия как хобби интересовала меня давно, и наконец появилась практическая возможность попробовать себя в этом деле. Количество граблей на этом пути можно пересчитать десятком, и возможно подобная статья убережет новичков от ненужных трат.
«Как это работает», подробности под катом.
Читать дальше →
Total votes 47: ↑46 and ↓1 +45
Views34.5K
Comments 47

Хотят ли разработчики работать в стартапах и быть их основателями — инфографика по результатам опроса

Хабр Карьера corporate blogPersonnel ManagementIT career
image

На этот раз «Мой круг» совместно с Cofoundit постарались узнать, как разработчики участвуют в стартапах: как с позиции сотрудника, так и с позиции основателя компании. Мы опросили более 3500 человек, пользователей «Моего круга» и «Хабрахабра». Более 90% опрошенных имеют свой аккаунт на «Моём круге» — это именно те ИТ-специалисты, которые откликаются на вакансии или размещают их на нашем сервисе.

Сначала мы узнаем немного об отрасли в целом: кто где работает, сколько зарабатывает, чем занимается, у кого есть опыт сотрудника, а у кого — основателя стартапа. Затем мы просим вспомнить самый интересный стартап, в котором довелось участвовать и сравним опыт сотрудников и создателей стартапов, у последних дополнительно узнаем про их опыт инвестирования и монетизации. Наконец, выясним у тех, у кого до сих пор не было опыта стартапа, что их мотивирует, а что останавливает от приобретения подобного опыта.

Отчёт получился довольно большим, но, на наш взгляд, крайне интересным и познавательным. Скучные цифры оформлены симпатичной инфографикой.
Читать дальше →
Total votes 53: ↑53 and ↓0 +53
Views22.4K
Comments 38

История PowerPoint. Как стартап изменил формат презентации

History of ITSoftwareIT-companies
«Выступление» означает демонстрацию слайдов с текстом, изображениями и графиками. Конечно, можно обойтись и просто словами, но желательно прибегать к наглядным материалам. Визуальные элементы помогают запомнить и привлечь внимание. И сегодня у слова «презентация» есть ясный синоним — PowerPoint.

Конечно, существуют другие программы, которые позволяют создавать и редактировать презентации. Но явление, когда люди создают бессмысленные скучные наборы слайдов, называют «смертью от PowerPoint». Мы ведь не называем плохой стиль письма «смертью от Word», мы не называем ошибки в вычислениях «смертью от Excel». Программа PowerPoint стала стандартом для визуального сопровождения выступлений.

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

У компьютеров были сотни килобайтов ОЗУ, а Microsoft была мелкой фирмой. Её Windows не пользовалась особым успехом, Word и Excel куда лучше продавались на Mac. Если для выступления были нужны слайды, выступающий не создавал слайды самостоятельно. Приходилось полагаться на отдел дизайна, который слабо представлял, чего от него хотят. А результат демонстрировали на кодоскопе или, реже, на 35-мм плёнке.

В этот странный период свет увидел PowerPoint, ещё не в составе пакета Microsoft Office. Но обо всём по порядку.
Ещё 70 тысяч знаков текста на полчаса чтения
Total votes 53: ↑52 and ↓1 +51
Views42.1K
Comments 16

Как дать адекватную оценку времени, когда неопределённость бьёт по башке

Development ManagementAgilePersonnel Management
Большинство людей не умеют адекватно оценивать сроки выполнения задач. Ой как это заставляет порой понервничать… Тут и «дэдлайн подкрадывается незаметно». И перестраховка в 500% на всякий случай (все равно не хватает). И отжимание «заведомо раздутых сроков», чтобы исполнитель пообещал чего-то более приемлемого. И невнятные бормотания вместо конкретных цифр.

image

В этой статье собраны и структурированы принципы и методы, с помощью которых можно научить себя и других давать адекватные оценки. В начале — общие принципы и чуть-чуть математики. В конце — конкретика для студий.
Читать дальше →
Total votes 81: ↑68 and ↓13 +55
Views70.2K
Comments 24

Использование Media Queries в Sass 3.2

Website developmentCSS
С выходом Sass 3.2 начал продвигаться в массы путь объектно-ориентированного CSS (OOCSS), принося с собой принцип DRY и программистское мышление. Media queries и OOCSS стали жизненно важны для современной фронтенд разработки.


Читать дальше →
Total votes 32: ↑31 and ↓1 +30
Views59.7K
Comments 5

Information

Rating
5,650-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity