• 14 лучших метроидваний на PC
    +1
    Добавлю в ваш список Iconoclasts. Очень яркая и красочная игра «ручной выделки».
  • Настало время вернуть Google Reader
    0
    Мне в GR больше всего нравилась возможность добавлять расшаренные записи других пользователей как отдельные ленты с возможностью оставлять комментарии к записям. В Feedly такого нет, к сожалению. Зато есть в проекте The Old Reader, который дословно повторяет функционал GR.
  • Distr. Обзор полезных программ, опоздавший на 16 лет
    +2
    До сих пор использую и альтернативы удобнее так и не нашел. Из очевидных плюсов: денег не просит, настраивается достаточно гибко, работает шустро, а также содержит неплохой batch-редактор, для пакетного преобразования изображений.
  • Казнить нельзя помиловать: разбираемся с пунктуацией в английском языке
    0
    Самое главное не раскрыто — выделяются ли обращения запятой? Так как судя по моему опыту переписок с англоговорящими иностранцами, нет.
  • Топ-10 библиотек для React на GitHub
    +1
    Библиотека React, созданная Facebook, представляет собой мощный JavaScript-фреймворк

    Нет, React сам по себе всего-лишь позволяет создавать шаблоны в виде обособленных компонентов. И никаким фреймворком, а тем более «мощным», он не является.
  • Как я учил английский, и что из этого вышло
    0
    Я с большим удовольствием читаю элементарные книжки на японском по методу Франка. Потому что даже если тупо целыми днями зубрить кандзи, это все равно слабо помогает выбрать правильное чтение иероглифа в данном конкретном случае.
  • Учим английский по компьютерным играм
    0
    Из игр, мне помогла сильно продвинуться в английском серия игр GTA, в особенности четвертая ее часть с дополнениями. Очень большое кол-во разговорного английского, произносимого на многочисленных акцентах. Здорово, что Rockstar запрещает делать дубляж своих игр.
  • Вы работаете не в том месте (если у вас офис открытого типа)
    0
    Я сейчас в таком кубикле работаю, правда на 4 человека. Но это все равно, лучше чем ничего.
  • Вы работаете не в том месте (если у вас офис открытого типа)
    +1
    От шума палатка не спасет, а весь день работать в наушниках тоже отстой.
  • Вы работаете не в том месте (если у вас офис открытого типа)
    +1
    Да, я помню тоже искал помещение для своего отдела (на 40 человек). Нашел очень хорошую площадь по стоимости и расположению, но оно представляло собой одну очень большую комнату. Делать перекрытия хозяин помещения отказался напрочь, переговоры ни к чему не привели. Когда пытались сами рассмотреть варианты с установкой перегородок (в том числе, с не самыми дорогими съемными пластиковыми), нам насчитали столько, что в головном офисе просто покрутили пальцем у виска и сказали искать помещение дальше, сразу со всем необходимым.
  • Как я перестал любить Angular
    0
    Нет, я писал не вам, а отвечал на этот комментарий
  • Как я перестал любить Angular
    0
    Да, конечно, для небольших скриптов, типа *.sh, это подходит. Но я имел в виду разработку более серьезных приложений. Поэтому, раз уж заикнулся о преимуществах статической типизации, то вкратце их перечислю:

    1. вы всегда уверены что написанный метод и результаты его работы используется вами правильно;
    2. ошибки класса «сравниваем несравниваемое» или «пихаем невпихуемое» исключаются на стадии компиляции;
    3. после перехода на ST (например, при переходе с JS на TS) вы с большой вероятностью обнаружите, что таких ошибок у вас дофига; и даже не ошибок, а скорее досадных опечаток, которых ваш замылившийся глаз в упор не замечает;
    4. нет необходимости заниматься лишними проверками типов самостоятельно; вообще, переход на ST — это довольно дешевый способ повысить качество кода, особенно когда кодовая база растет быстро за счет большой команды;
    5. ваш IDE станет намного дружелюбнее по отношению к вам; а если вы все еще пишете в блокноте, то это дополнительный стимул перейти на IDE;
    6. рефакторинг перестает быть нудным и кропотливым занятием, после которого частенько появляются новые баги; поправив какой-нибудь метод вы не пропустите какое-нибудь место, где он вызывается в дебрях вашего проекта — компилятор услужливо вам напомнит;
    7. читабельность кода заметно повышается.
  • Как я перестал любить Angular
    0
    В основном в коробке идёт красивая анимированная пальце-тыкательная хромая замена стандартным контролам браузера

    Вы наверное про Angular Material 2? Но она не совсем в коробке, просто Google продвигает данную тему (Material Design) и поэтому рекомендует по-умолчанию. На самом деле UI систем много, часть из них перечислены тут angular.io/resources в разделе UI Components. Рекомендую приглядеться к Semantic UI, Clarity Design System и Prime NG.

    Я лично чаще всего использую голый bootstrap.css без bootstrap.js/jQuery (4 версия наконец-то собирается из SCSS, что делает более простой сборку с помощью Angular CLI).
  • Как я перестал любить Angular
    0
    Похоже, вы просто не нашли времени познакомиться с TS и прочувствовать на себе преимущества статической типизацией. А если рассматривать сравнение с динамической типизацией, то выяснится, что у DT нет никаких преимуществ перед ST, кроме сомнительного «более низкий порог вхождения в ЯП».
  • Как я перестал любить Angular
    –1
    1. Это действительно очень грустно, так как Angular запущенный в dev-режиме не устанет вам напоминать об этом в консоли, а самый простой способ от этого избавиться, используя Angular CLI, запустить с этим самым ключом. Ну и dev/prod-конфиги в папке environment должны наводить на какие-то мысли. Грустно, что разработчики использующие angular, не могут в документацию.
    Я сам использую Angular с 2-rc.1 версии, когда никаким CLI еще не пахло, и уже тогда интересовался, как правильно производить prod-сборку. В официальной документации был и есть на это ответ, с полным описанием разницы между JIT и AOT.
    2. По заверению разработчиков, не будет. Все, что скоро должно устареть, будет помечаться как deprecated и выводиться соответствующие оповещения об этом при сборке.
    3. Я абсолютно не согласен с вами, что разработчики angular-а настолько плохие специалисты, что постоянно делают нам плохо. На мой взгляд, они создали наиболее удобный и универсальный фреймворк, благодаря которому fronted-разработка сильно упростилась и перестала походить на обмазывание BE-костяка скриптами и библиотеками. Да и вообще, большинство претензий как автора статьи, так и комментаторов мне абсолютно не понятны и попахивают вкусовщиной.

    Ну и npm update не переведет ваш проект с 4 на 5 версию автоматически. Предполагается, что при смене мажорной версии, любой разработчик изучает changelog и советы по переходу на новую версию, а не делает это с закрытыми глазами на проде.
  • Как я перестал любить Angular
    0
    Про ошибки в шаблонах, которые не отображаются при JIT-компиляции. Насколько я читал, разработчики ангуляра к пятой версии хотят сделать быстрые инкрементальные сборки для AOT и выпилить JIT совсем.
  • Глава Роскомнадзора пообещал заблокировать Telegram через несколько дней
    +2
    Да может и «террорист» для спецслужб это тоже эвфемизм.
  • Динамический рендеринг компонентов в Angular 2
    0
    Навскидку:
    1. Использовать Transclusion
    2. Использовать вторичные роуты (якоря на заголовки на странице глючат, поэтом если вас перекинет не туда, сделайте поиск по странице: «Displaying multiple routes in named outlets»).
  • Команда WikiLeaks опубликовала информацию о ПО, при помощи которого ЦРУ годами заражало домашние маршрутизаторы
    0
    DIR-300 на картинке, мой первый роутер, всплакнул. Кстати, до сих надежно исполняет свои обязанности дома у родителей. Слегка капризный, но при должной настройке работает как швейцарские часы (в смысле надежности, а не что только время показывает).
  • Новая игровая консоль от Microsoft будет продаваться с ноября по $500 с названием Xbox One X
    0
    Скорее боятся новых экспериментов после очевидного фейла с кинектом.
  • Новая игровая консоль от Microsoft будет продаваться с ноября по $500 с названием Xbox One X
    0
    Да, при том, что Microsoft держится в сторонке от всей этой VR-движухи. В отличие от той же Sony с ее PS VR.
    Хотя по слухам вроде бы обещают подружить XBOX и всякие окулусы/вайвы, но это не точно.
  • Новая игровая консоль от Microsoft будет продаваться с ноября по $500 с названием Xbox One X
    +1
    Там разные типы «эксклюзивов». Перед некоторыми играми идет фраза «Xbox One & Windows 10 Exclusive», а перед другими «Xbox One & Windows 10 Launch Exclusive», что значит, игра выйдет на других платформах через несколько дней/недель/месяцев.
  • DevConf::Frontend — 17 июня в Москве: Angular 4, React Native, выбор JS-фреймоврка для крупного проекта + Lua Meetup
    +4
    Забавный опрос) Ну как можно называть маленькую библиотечку Redux фреймворком? Или React сам по себе? Или библиотеку RxJX? И т.д.
  • Дзен не позвонит
    0
    Я там в конце сделал сноску, что в редких случаях все же допускаю их использование. Но только в тех случаях, когда реально без этого не обойтись, как правило для сессионных данных. Ну хотя бы тот же токен пользователя надо как-то хранить, а не заставлять его авторизовываться заново, если ему приспичит нажать F5.
  • Дзен не позвонит
    0
    Очевидно, своей простотой и поддержкой браузерами по-умолчанию. Плюс, грамотное использование localStorage решает вопрос, когда пользователь в вашем SPA-приложении пытается открыть ссылку в новой вкладке.
  • Дзен не позвонит
    0
    При создании SPA, те самые элементы, которые на серверных языках я бы реализовывал через хранение данных в сессии (тот же профиль пользователя), приходится использовать storage-ы и модели, которые получают данные из них.

    Т.е., поставленную вами задачу я бы решал следующим образом: создал отдельный компонент Layout, который будет показываться по-умолчанию на страницах и содержит компонент c шапкой, в котором отображаются данные авторизованного пользователя, которые берутся из сессии (т. е. из storage-а). Обновлять данные в шапке можно по ngDoCheck, а чтобы это никак не сказалось на производительности, в механизм нашей сессионной модели несложно добавить проверку на последнее изменение по Timestamp-у.

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

    Но это, опять же, если я правильно понял ваш пример. Часто годятся и «оутпуты до корня». Пример: личный кабинет пользователя — корневой компонент. При создании загружает актуальные данные о пользователе и хранит их в себе. Имеет два дочерних компонента: Presentational — лэйаут (использую в нем transclusion посредством ng-content) отрисовывающий шапку, футер, и место, куда будет помещен второй дочерний компонент с формой редактирования данных пользователя. По сути, в данной схеме будет использован всего один output — от компонента с формой редактирования до корневого личного кабинета. Который после получения новых данных о пользователе тут же отобразит их в лэйауте (в шапке, без всяких ngDoCheck). И в такой схеме я вообще не вижу необходимость какого-то глобального стейта.
  • Дзен не позвонит
    0
    Вот у вас есть несколько несвязанных компонент, каждая из которых подтягивает копию некоторого стейта с бекенда

    Исходя из моих принципов, у меня в любой момент времени нет нескольких несвязанных компонентов, общающихся с бэком. Всегда есть только один корневой (грубо говоря, текущая страница) привязанный к текущему роуту. Если роут меняется (не путать с изменением параметра роута), то этот компонент уничтожается, и создается новый компонент согласно новому роуту. И уже он грузит свой актуальный стейт с бэка.
  • Дзен не позвонит
    0
    Не использую общий глобальный стейт и придерживаюсь обычно следующих принципов:

    1. деление компонентов по типу Presentational и Container Components (https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0)
    2. каждый «корневой» компонент (как правило, привязанный к опредленному роуту) получает свое актуальное состояние с бэка при инициализации или изменении параметров роута
    3. корневые компоненты между собой не общаются, только через бэк
    4. корневой компонент как правило является Container Component-ом и для отрисовки передает/получает свойства своего состояния через цепочки input/output дочерним Presentational Component-ам (или, если куски большие, разбивать на несколько дочерних Container Component-ов

    Как правило, если все сделать грамотно, деревья не получаются слишом многоуровневыми и никаких проблем при передачи состояния вглубь и получения изменений через output-ы лично у меня не возникает.

    Эти принципы подробно описаны в официальной документации Angular-а и, как мне показалось, являются тем самым angular way.

    В редких случаях, допускаю хранение некоторых глобальных флагов и пр. в storage-ах.
  • Дзен не позвонит
    0
    Часто в подобных опросах такой вариант становится лидирующим и портит вид общей статистики. Именно для этого на хабре есть кнопка воздержаться.

    В данный момент: Проголосовало 152 человека. Воздержалось 150 человек. Полагаю, эти 50% пользователи как раз таки «не используют» redux.
  • Дзен не позвонит
    +1
    Знакомство с первым AngularJS у меня так и не состоялось, отпугнули как раз вот такие слухи о его сложности и неудобности. Но вот со второй версией случилась любовь с первого взгляда. Восхитило, насколько в нем все логично и просто устроено. Не считая, конечно, некоторой сложности в сетапе и сборке prod-версии (это был rc1, никакого Angular CLI еще не было в помине). Но, спасибо webpack-у за наше счастливое детство, сложности эти были легко преодолены.

    К чему эти дифирамбы? Просто на главной странице документации redux написано, что его можно использовать с чем угодно, не только с react-ом, но и с Angular 2+. Но за все время разработки на последнем, я так и не смог придумать, для чего мне мог бы пригодиться redux.
  • Как улучшить качество сети, из-за чего лагают онлайн-игры и почему лучше не использовать для стримов Wi-Fi или 4G?
    +1
    Долго думал, зачем для Witcher 3 может понадобится максимальный приоритет в роутере)
  • Эксперты по кибербезопасности считают, что британские подлодки с ядерными боеголовками плохо защищены от взлома
    +1
    Было уже в истории, японцы не дадут соврать.
  • Правда ли, что мир стал более опасным местом для детей, чем был раньше?
    0
    Я, к сожалению, не могу сравнивать с ранними годами, могу только поделиться впечатлениями о своем детстве за 90-е. И мне довольно смешно наблюдать за современными родителями с их гиперопекой, педоистерией, при том, что мир за тридцать лет стал намного более удобным и безопасным.
  • Правда ли, что мир стал более опасным местом для детей, чем был раньше?
    +2
    Только на самом деле все происходит ровно наоборот. Меньше машин — быстрее поток, в 90-х гонять по проспекту в городе под 100 было нормой для водителей, камер не было, ГАИ с радарами попадались редко и водители заранее предупреждали друг друга. От пьяной езды можно было откупиться за не слишком большие деньги. На пешеходных переходах без светофоров не пропускали почти никогда.

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

    Кстати, гопота во дворах почти исчезла, как тараканы в квартирах, как только массово начали появляться компьютерные клубы с контрой/районные компьютерные сети в домах, в начале нулевых. Просто раньше подросткам реально нечем было заняться, кроме как приставать ко всем во дворах и бухать по подъездам.
  • Правда ли, что мир стал более опасным местом для детей, чем был раньше?
    +6
    Я родился в городе с 500к населением в 86-ом. Практически за все 90-е годы могу сказать — эти годы не были безопасными для детей.
    — все дворы были равномерно усеяны битым стеклом, в подъездах и рядом с ними не сложно было обнаружить кучки грязных шприцов.
    — имея при себе что-то ценное, был большой шанс этого лишиться, шанс тем больше, чем дальше вы отошли от дома. Чем-то ценным мог быть старый, но красивый брелок, ученический проездной, наручные часы и т.д.
    — пдд соблюдалось хуже — сложнее было контролировать, не было камер через каждый километр, пьяных за рулем было больше, поток машин был меньше, поэтому гоняли на дорогах больше.
    — с медициной было хуже, не было платных клиник на каждом углу, а если бы и были, мало у кого были средства чтобы оплатить данные услуги, так как денег не хватало даже на еду. Аптека была одна на микрорайон и далеко не всегда в ней было то лекарство, которое вам требовалось. Порой приходилось обзванивать и искать по всему городу нужное средство.
    — много было бродячих животных, вспышек бешенства
    — в лес-посадке за домом временами находили избитых или мертвых людей. более всего меня тронул случай, когда нашли изнасилованный труп пятиклассницы из моей школы с сотней ножевых ранений (сам не видел, конечно, я в эту посадку дитем не ходил никогда, но все долго говорили об этом случае)
    и т.д.

    Сейчас, когда современные дети всегда на связи, можно отследить их положение хоть по GPS, да и айфоны у детей не редкость, а значит не особо их отжимают у детей, могу отметить, что современным детям живется НАМНОГО безопаснее.

    Хз как там было в СССР в 60-80х годах, но наверняка значительно лучше, чем в 90-х.
  • Почему программисты не могут программировать
    +2
    Циклом правильную задержку не сделать, рекурсией элементарно решается
    const delay = 50, f = function _f(i) {
    	if (i > 100) return;
    	setTimeout(() => {
    		let s = '';
    		if (i % 3 === 0) s += 'Miss';
    		if (i % 5 === 0) s += 'Kiss';
    		console.log(s ? s : i);
    		_f(++i);
    	}, delay);
    };
    f(1);
    
  • Почему мы меняем цветовые схемы?
    0
    У меня от светлых букв на темном фоне очень сильно устают глаза. Плюс, строки белых букв как бы отпечатываются на сетчатке и я их потом очень долго вижу даже когда смотрю в сторону от монитора. С белым фоном/темными буквами такой проблемы нет.
  • Xiaomi Philips: умная лампа, которая бережет глаза
    0
    Так одно другое не исключает же. Можно и большую красную кнопку от вендора для большинства, и web-API для всех остальных.
  • Беспилотные автомобили обучают премудростям вождения в Grand Theft Auto V
    +2
    Было уже
  • Обзор игрового ноутбука Lenovo IdeaPad Y900-17ISK
    +2
    Я под новый год купил новый игровой ноут в 1.5 раза дешевле, с аналогичными характеристиками (только экран лучше, с разрешением 4К) от Alienware. Китайцы, вы чего?