Pull to refresh
97
0
dotneter @dotneter

Разработчик

Send message

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

Reading time1 min
Views1.7K

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

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

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

Reading time8 min
Views16K

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

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments27

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

Reading time6 min
Views5.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 и попробуем сделать свое.

Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments16

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

Reading time4 min
Views14K

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


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


Ад проверки на 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);
        }
     }
  }
}
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments21

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

Reading time4 min
Views5.7K

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


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


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

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments0

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

Reading time5 min
Views40K

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

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


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

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

Reading time5 min
Views113K

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

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

Reading time2 min
Views14K

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

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

Reading time3 min
Views126K

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

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

Reading time8 min
Views27K

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

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

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

Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments20

Javascript fluent html builder

Reading time3 min
Views3.7K
Идея генерации html с помощью javascript меня не отпустила. Напомню eе суть с помощью jQuery
$("<div>", {"class":"something",id:10})

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

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

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

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

Читать дальше →
Total votes 78: ↑51 and ↓27+24
Comments17

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

Reading time1 min
Views3K
Заметил за собой что в больших или малоинтересных обсуждениях читаю только комментарии с положительной оценкой. Что бы упростить себе это занятие был написан скрипт.

userscripts.org/scripts/show/71427

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

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

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

Убран инпут спасибо vrent
Total votes 43: ↑26 and ↓17+9
Comments26

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity