Code Monkey home page Code Monkey logo

maruji's Introduction

๐Ÿ‘‹ Hello, my name is Dmitry

Website โ€ข LinkedIn โ€ข StackExchange โ€ข NPM โ€ข Tatoeba.org

I am a software developer, coding mostly webapps. Programming is both my job and hobby, but I am also interested in (natural) languages, cyber-security, astronomy, math, and art.

const scriptin = {
  name: "Dmitry Shpika", // [DMEE-tree SHPEE-kah]
  pronouns: ["he", "him"],
  education: [
    { specialty: "Software Engineering",
      type: "self-taught",
      experience: "12+ years" },
    { specialty: "IT Security",
      type: "degree",
      experience: "Occasional consulting and auditing" },
  ],
  hardSkills: {
    programming: [TypeScript, JavaScript, Kotlin, SQL, ShellScripts, Python],
    ui: [React, HTML, CSS, Tailwind, Bootstrap, MaterialUI, Figma],
    api: [GraphQL, REST, SOAP, RPC],
    buildTools: [Webpack, Vite, Gradle],
    graphics: [Canvas2D, Processing, P5js, SVG],
    testing: [TDD, BDD, Unit, E2E],
    ci: [Docker, GitHubActions, GitLabCI],
    other: [Parsing, WebScraping, XML],
    _outdated: [PHP, Java, jQuery, AngularJS], // In the past
  },
  softSkills: {
    teaching: "I like to explain complex topics in simple terms",
    learning: "Currently focusing on foreign languages",
    design: "Creating UIs using component libraries/frameworks, or from scratch",
    writing: `Technical and fiction.
              I've written 130+ answers on Stack Exchange,
              maybe 5-7 articles, dozens of readmes,
              countless Jira tickets,
              a few short novels and poems`,
  },
  hobbies: [Programming, Languages, Astronomy, Math, Art],
} satisfies SoftwareEngineer;

Dmitry Shpika's GitHub stats

Check out my pinned repos ๐Ÿ‘‡

maruji's People

Contributors

scriptin avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

maruji's Issues

Kanji components question type

Possible implementations

  1. Fill in the missing component (or multiple components) in a kanji. In this case the kanji should be shown with a "hole": strokes which form a hidden component are missing, maybe only an outline is shown to mark a general area where missing strokes were. A user is then would have to choose a correct component from answer options below.
    • Big open question: how to split kanji into components?
    • Show hidden components as-is (missing strokes from a glyph), or as a stand-alone kanji? If shown as-is, it may be trivial to figure out the missing component just by inspecting the position, so that the chosen option fits into a blank spot. If shown stand-alone, strokes may have significantly different shapes, since we are dealing with partial kanji, variants, and various affine and non-affine transformations.
    • If possible, take position into account, e.g. give answer options for the same component in different places.
  2. Show a set of components, so that a user would have to reconstruct the whole kanji.
    • There are strokes which do not participate in any components.
    • There are simple kanji which only have one component.
    • How to show these options? As-is or stand-alone? (Same as for previous implementation option)
  3. Search a correct kanji by components, similar to jisho.org component search.
    • Still, there is a problem of decomposition, because databases like KRADFILE are not adequate in terms of variants and shapes.
    • In this case, users are not forced to memorize all components. Just one or two would be enough to find the correct kanji, since the set of kanji in the app is much more limited compared to jisho.org.

Problems with decompositions

  1. Merged components. "ๅ…‹" decomposed as "ๅค+ๅ…„", and "ๅ…„" has a part="2" attribute, hence considered "partial", when actually it is just a regular "ๅ„ฟ" element.
  2. Scattered parts of components. "ๅ›ž" consist of "ๅ›—+ๅฃ", but "ๅ›—" is split into two parts, because first two of its' strokes are drawn before "ๅฃ", and then the last stroke is drawn at the very end.

The only solid fix I imagine is to provide custom decompositions.

In-app instructions page / user manual

Write a user manual, explaining:

  • most efficient ways of using the application
  • limitations of used methods
  • available features

Make this a separate page inside the app, so that users wouldn't have to visit GitHub wiki.

Create a logo

Ideas:

  • style a "ใ€‡ๅญ—" word, maybe just add okurigana
  • doge, since "Maru" is a common dog name

Module not found: Error: Cannot resolve module 'async_hooks'

Hey,

I tried to set up your app locally, but got an error.

Steps:

  1. npm i --legacy-peer-deps
  2. npm run start
  3. Open http://localhost:8080/webpack-dev-server/ in Safari

Full error message:

ERROR in ./~/bluebird/js/release/promise.js
Module not found: Error: Cannot resolve module 'async_hooks' in /Users/gleb/git/maruji/node_modules/bluebird/js/release
 @ ./~/bluebird/js/release/promise.js 34:4-26

macOS 13.0.1
Node v16.19.0

Improve answer options: display semi-transparent โ—‹/ร— symbols on buttons

Display circle (โ—‹) or cross (ร—) symbol on SVG buttons with answer options when they are clicked to provide additional indication of the result. Those symbols should fill the entire button and be semi-transparent, so that they do not obstruct kanji or get obstructed.

Currently it's only the green or red color which indicate if the answer was successful or not, which may be problematic for color-blind users.

Progress page

  • Button to reset progress
  • View progress: design appropriate D3 charts, tables, or whatever fits best

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.