Как стать автором
Обновить
97
0
dotneter @dotneter

Разработчик

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

Фильтр комментариев по оценке

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

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

Давным давно мной уже был написан юзер скрипт, упрощающий поиск комментариев, и в связи с карантином дошли руки его немного причесать и оформить в виде расширений для браузеров Google Chrome и Mozilla Firefox. Расширение выводит статистику всех оценок в комментариях. Кликнув на одну из положительных оценок, подсвечиваются все комментарии с оценкой равной или выше, а при клике на отрицательную — равной или ниже. Повторный клик на оценку снимает фильтрацию и возвращает дефолтное дерево комментариев.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Заменяем Redux c помощью Observables и React Hooks

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

Управление состоянием — одна из важнейших задач, решаемых в разработке на React. Было создано множество инструментов в помощь разработчикам для решения этой задачи. Наиболее популярным инструментом является Redux — небольшая библиотека, созданная Дэном Абрамовым, и предназначенная помочь разработчикам использовать паттерн проектирования Flux в их приложениях. В этой статье мы разберем, действительно ли нам нужен Redux, и посмотрим, как мы можем заменить его более простым подходом, в основе которого лежат Observable и React Hooks.

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

Управление состоянием приложения с RxJS/Immer как простая альтернатива Redux/MobX

Время на прочтение6 мин
Количество просмотров5.6K
"Вы поймете, когда вам нужен Flux. Если вы не уверены, что вам это нужно, вам это не нужно." Пит Хант


Для управления состоянием приложения я как правило применяю Redux. Но не всегда есть необходимость в использовании модели Action\Reducer, хотя бы из-за трудозатратности ее применения для написания простейшего функционала. Возьмем в качестве примера обычный счетчик. На выходе хотелось получить простое и практичное решение, которое позволит описать модель состояния и пару методов его меняющие, наподобие такого:


state = {value: 0} 
increase() { 
  state.value += 1 
} 
decrease() {
  state.value -= 1
}

Сходу кажется, что такое решение может обеспечить MobX, так почему бы им и не воспользоваться? Поработав с MobX некоторое время, для себя пришел к выводу, что лично мне проще оперировать последовательностью иммутабельных состояний (наподобие Redux), чем логикой мутабельного состояния (наподобие MobX), да и его внутреннюю кухню я бы не назвал простой.


В общем, захотелось найти простое решение для управления состоянием, в основе которого лежала бы иммутабельность, с возможностью применять его в Angular\React и реализованное на TypeScript. Беглый обзор на просторах github подходящего решения не выдал, поэтому возьмем RxJS/Immer и попробуем сделать свое.

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

Избегание ада с помощью монад

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

Мы как программисты иногда попадаем в "программистский ад", место где наши обычные абстракции не справляются с решением ряда повторяющихся проблем.


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


Ад проверки на null


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


Такие функции обычно приводят в глубоко вложенному и сложно читаемому коду с чрезмерным количеством синтаксического шума.


var a = getData();
if (a != null) {
  var b = getMoreData(a);
  if (b != null) {
     var c = getMoreData(b);
     if (c != null) {
        var d = getEvenMoreData(a, c)
        if (d != null) {
          print(d);
        }
     }
  }
}
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии21

Создание приложения для тренировки мозга. Выбор технологии и приемы геймификации

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

В статье попытаюсь рассказать об опыте поиска кроссплатформенной технологии для реализации хобби проекта посвященного тренировке мозга и некоторых приемах ее геймификации.


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


И пока идея полностью не созрела, начался процесс поиска технологий для реализации версии сайта 2.0, плюс был интерес по изучать новые технологий и языки

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

Тренировка мозга и ее геймификация

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

В статье попытаюсь рассмотреть два типа мышления и возможные варианты их тренировки и геймификации. Мышление по типу решаемой задачи можно разделить на так называемое продуктивное и репродуктивное.
Продуктивное, оно же творческое мышление характеризуется созданием чего то качественно нового, в контексте решения задач (problem solving) иcпользуется для решения сложных, до этого не решаемых человек задач. Репродуктивное же мышление наоборот, используется для задач у которых уже известна схема решения, и выполнение по сути зависит только от базовых когнитивных навыков человека.

Творческое мышление


Представим задачу стоящую перед творческим мышлением в виде абстрактной двухмерной плоскости, на которой где-то находятся несколько точек приемлемых решений. Перед человеком стоит проблема найти одну из таких точек-решений, но сложность состоит в невозможности перебрать все возможные варианты, поэтому в большинстве случаем на помощь приходит озарение. Классическая схема решения творческой задачи состоит из стадий
1) Подготовка — формулирование задачи
2) Инкубация — временное отвлечение от задачи
3) Озарение — появление интуитивного решения.
Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии22

Превращаем статический сайт в мобильное приложение с помощью jQuery Mobile и PhoneGap

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

После приобретения телефона на базе Android, возникла задача сделать из сайта brainexer мобильное приложение. Выбор пал на jQuery Mobile и PhoneGap. До этого никаких познаний в обрасти мобильной разработки не было, поэтому пришлось осознать некий пласт новой информации, выжимкой из которого я бы и хотел поделиться. В итоге статья представляет из себя небольшой quick start — как из пачки html файлов получить приложение опубликованное в Google Play.
Читать дальше →
Всего голосов 54: ↑46 и ↓8+38
Комментарии41

Продолжаем тренировать мозг. Добавляем соревнования

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

Полгода назад я написал пост о моем интересе к упражнениям для тренировки мозга, результатом которого был небольшой сайт с такого рода упражнениями, созданный для всех желающих вступить на путь когнитивного просветления. Так как сайт делался с оглядкой на десктопные игры и приложения, то и получился он по сути таким приложением только в вебе. Но недавно было решено исправить этот маленький недостаток и добавить какое то взаимодействие между пользователями сайта, в надежде что кому то это сможет придать дополнительную мотивацию к тренировокам. Первое что приходит в голову это конечно же система соревнований.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии7

Упражнения для тренировки мозга

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

В силу склада ума или давнего увлечения скорочтением, мнемотехникой и прочим, у меня был повышенный интерес к играм состоящим из набора упражнений для тренировки мозга(BrainChallenge, Dr.Kawashima и др.). Переиграв практически во все что было на десктопе и nds, появилось желание использовать такие игры для каждодневных тренировок, но для этого они не совсем подходят(в тексте объясню почему). Поэтому на досуге решил написал небольшой сайт с набором такого рода упражнений.
Читать дальше →
Всего голосов 96: ↑81 и ↓15+66
Комментарии83

Легкая прогулка от функтора через монаду к стрелке

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

Давайте совершим прогулку по цепочке Pointed, Functor, Applicative Functor, Monad, Category, Arrow, в процессе которой я попытаюсь показать что все это придумано не для того что бы взорвать мозг, а для решения вполне реальных проблем, притом существующих не только в haskell. Большая часть кода написана на C#, но думаю и без его знания можно будет понять что к чему.
Читать дальше →
Всего голосов 55: ↑43 и ↓12+31
Комментарии152

Linq To Tasks и монада продолжения

Время на прочтение6 мин
Количество просмотров4.4K
После анонса C# 5.0 с его async и await, у меня появился небольшой интерес к асинхронному программированию, копание в сторону которого и послужило возникновению данного текста.
В процессе чтения статьи вы узнаете/омните.
  • Что есть монада на примере Maybe.
  • Что такое CPS и монада продолжения.
  • Как это связать с классом Task из TPL.

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

Javascript fluent html builder

Время на прочтение3 мин
Количество просмотров3.7K
Идея генерации html с помощью javascript меня не отпустила. Напомню eе суть с помощью jQuery
$("<div>", {"class":"something",id:10})

но так как читаемость оставляет желать лучшего, была реализована небольшая библиотека.
Читать дальше →
Всего голосов 40: ↑22 и ↓18+4
Комментарии12

Создаем за 10 минут PivotViewer контента сайта на примере Хабрахабр

Время на прочтение3 мин
Количество просмотров1.1K
Для достижения поставлено цели на нужны три вещи.
1) Картинки в формате DeepZoom.
2) Контент в виде xml.
3) Силверлайт контрол который все это будет отображать.

Для примера будем использовать последние 3000 статей на Хабрахабр с картинкой.
Одолев все пункты получим pivotviewer.narod.ru/habr/index.html
image

Читать дальше →
Всего голосов 78: ↑51 и ↓27+24
Комментарии17

HabrTree — скрипт сворачивающий по оценке

Время на прочтение1 мин
Количество просмотров3K
Заметил за собой что в больших или малоинтересных обсуждениях читаю только комментарии с положительной оценкой. Что бы упростить себе это занятие был написан скрипт.

userscripts.org/scripts/show/71427

После установки появляется следующее.

image
Первые две кнопки свернуть, развернуть все. Далее кликаем на оценку и сворачиваем все неинтересные комментарии, оставшиеся будут подсвечены.

PS Если что то не работает, попробуйте установить новую версию.

Убран инпут спасибо vrent
Всего голосов 43: ↑26 и ↓17+9
Комментарии26

Информация

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