0%

1. Goal

design a system that could educate people even if their previous education level is low , easy to understand

2. Basic

  • Psychology
  • Cognitive development stages (e.g., Piaget’s theory), learning styles, motivation theories, and memory retention.
  • Style: visual/auditory/read&write/kinesthetic learner
  • Motivation: self-determination. Expectancy-value. goal setting
  • Curriculum
  • Bloom’s Taxonomy, backward design, differentiation
  • Bloom: remember, understand, apply, analyze, evaluate, create
  • Backward design, purpose driven
  • Results
  • Evidence
  • Plan learning
  • Pedagogical
  • Inquiry-based learning, project-based learning, flipped classroom, experiential learning.
  • Tech
  • Learning Management Systems (LMS), adaptive learning platforms, AR/VR in education, gamification.
  • Assessment
  • Formative vs. summative assessment, authentic assessment, rubrics.
  • Adult Learning
  • Self-directed learning, experiential learning, relevance in adult learning.

3. System Design

  1. Understand the user, need assessment
  2. Set clear objectives
  3. Modularity in content delivery
  4. Interactive content
  5. Quiz
  6. Support system
  7. Adaptive learning platform
Read more »

1. Question

Except the software part, what else need to be noticed?

Like expanding the field, robotics introduce additional complexities since the hardware and real-world interaction

2. Shared Fundamental

  • Requirement gathering
  • System Arch
  • Coding and algorithm
  • Testing
  • Deployment

3. Added Dimension

  • Embedded System and real-time computing
  • Mechatronic
  • Sensors
  • Power Management
  • Control
  • ML AI

4. System Design

The robotics system is always to large. Main thing to keep in mind

  • Modularity
  • Redundancy and Fault Tolerance
  • Abstraction and Layering
  • Feedback and Control system
  • Configurability
  • Iterative Development
Read more »

1. System

MacOS: Apple has implemented the HDR display. We need to first match that (hard task)

2. Programming Language

Python

C++

3. High-Level System Components:

  • Input Module: Accepts and validates the RAW image files.
  • Metadata Extraction Module: Extracts and temporarily stores metadata from the RAW file.
  • Image Processing Engine: Prepares RAW images for manipulations by converting them into an intermediate format.
  • Modification GUI: Provides user-friendly tools and controls for image adjustments.
  • HEIC Converter: Converts the manipulated image into the HEIC format.
  • Output Module: Outputs the processed HEIC image, complete with options for subsequent actions such as saving or sharing.

4. Detailed Design:

  • a. Input Module:
  • File Selection: Facilitates selection or drag-and-drop of RAW files.
  • File Validation: Ensures files adhere to supported RAW formats.
  • Batch Processing: Enables processing of multiple files simultaneously.
  • b. Image Processing Engine:
  • Decoding Engine: Utilizes libraries like libraw for RAW image decoding.
  • Color Correction: Employs algorithms for consistent color grading.
  • Intermediate Format Storage: Ensures quick processing by converting and storing images in an intermediate format.
  • c. Modification GUI:
  • Preview Pane: Real-time display of image modifications.
  • Adjustment Sliders: Controls for brightness, contrast, saturation, etc.
  • Undo/Redo Actions: Grants flexibility in modifications.
  • Presets: Allows quick edits through predefined settings.
  • Zoom & Pan Tools: Facilitates detail inspection.
  • Histogram Display: Dynamic histogram for informed editing.
  • d. HEIC Converter:
  • Conversion Engine: Employs libraries like libheif for HEIC conversion.
  • Compression Settings: Users can set desired compression levels.
  • Profile Embedding: Guarantees color consistency by embedding ICC profiles.
  • e. Output Module:
  • File Saving: Users dictate destination and filename for output.
  • Metadata Preservation: Original metadata remains intact in the converted image.
  • Sharing Options: Direct integration for cloud, social media, or email sharing.

5. System Architecture & Technologies:

Read more »

1. Intro

I start the System series blog in Philosophy part because I think the system thinking is more like the method of method.

2. Goal

Understand some general good properties and principle a long lasting system would hold

As long as the system can solve the problem, I think it is good enough, I just add long lasting as a constraints to make the question more insightful

3. General Principle

For robust, enduring system

  • Modularity: easily repaired, upgraded, modified
  • Scalability: handle increased loads or demands
  • Resillience: capable of absorbing shocks or unexpected events
  • Feedback
  • Efficiency
  • Clarity of Purpose

4. Learning Order

From general guidelines, I would start learning following area in order (for my interest)

Read more »

1. Intro

Learning how operating system render images like JPEG or PNG

2. Process

  1. File Read: the operating system’s file system layer reads the raw binary data from the disk.
  2. Decoding: This raw binary data isn’t directly interpretable as an image. So, it gets passed to a software component (often a library or a module within an application) responsible for decoding JPEG files. JPEG is a compressed format, and decoding it involves:
  • Parsing the file headers to understand the image’s dimensions, color space, and other metadata.
  • Decompressing the data to recover the original image information.
  • The output from the decoding process is usually an uncompressed bitmap, which is an array of pixel values.
  1. Color Space Conversion (if necessary): Images can be stored in various color spaces. RGB (Red, Green, Blue) is one of the most common ones for displays, but images can also be stored in other formats like YUV (Luminance and Chrominance). If the decoded image is in a color space that’s not native to the display, a conversion must occur. For instance, many video playback systems use YUV because it’s more efficient for certain types of compression. When displaying such content, the YUV data is converted to RGB.
  2. Rendering: Once we have the bitmap in the appropriate color space (usually RGB for displays), it’s passed to the operating system’s rendering system. This system interacts with the graphics hardware (your GPU) to display the image. Modern operating systems use a “compositor” that takes the bitmap, any other UI elements, and composes a final image that is sent to the display.
  3. Data Transmission: The graphics card or GPU then sends this composed image to your monitor. The actual data transmission method (VGA, HDMI, DisplayPort, etc.) will define how this data is sent. But in essence, yes, RGB values (or sometimes other color space values) are sent to the monitor.
  4. Monitor Display: The monitor receives these values, and each pixel on the monitor displays the corresponding color. If the monitor has a different color profile or calibration, it may make its own adjustments to the displayed colors.

3. Decode

  1. JPEG (Joint Photographic Experts Group)
  • Decoding Method: JPEG uses a lossy compression method based on the Discrete Cosine Transform (DCT). It converts spatial domain data into the frequency domain. During compression, some high-frequency components (which the human eye is less sensitive to) can be discarded.
  • Color Space: Typically YCbCr (which is similar to YUV in intent). Y is the luminance component, and Cb and Cr are chrominance components. After decoding, the image can be converted to RGB for display.
  1. PNG (Portable Network Graphics)
Read more »

1. Intro

Why? From an engineer view, I am always designing some system, from small to large

The problem is, although it seems I solved the problem, that’s mainly from intuition. Sometimes it turns out my design is bad and hard to maintain.

My goal is to learn a systematic way for system design

1.1. Why?

Ultimately, I am looking for a solution method to problem, how to solve problem.

Maybe that’s the algorithm

2. Materials

Books

  • Thinking in Systems: A Primer
  • The Systems Bible: The Beginner’s Guide to Systems Large and Small
  • The Systems View of Life: A Unifying Vision
Read more »

1. Intro

Recently, I re-implemented RRT algorithm in Python, and learned a lot during the optimization process

2. Numpy

Vectorized calculation like Numpy would save a lot of time

3. O(N)?

Sometimes, we need to change the algorithm for speed

For example, for looking the nearest point, plain algorithm O(N) even using Numpy is slow

Change the data structure to KDTree would boost the speed

4. Profile

Profile is an important tool to analyze the performance, so we could focus on the most time consuming part and optimize it

Read more »

1. Goal

  1. Research & Problem Definition
  • HDR Display Overview: Collect comprehensive information about the intricacies of HDR displays, their technical specifications, and benefits.
  • Problem Statement: Clearly define the problem this project aims to address. What challenges in HDR imaging are we trying to overcome? What value does our solution bring?
  • Project Scope: Outline what the project will and won’t cover, helping the team stay focused on core objectives.

2. Display (Monitor)

Apple:

  • iPhone
  • iPad Pro 12.9
  • Macbook Pro 14/16
  • Pro Display XR

DisplayHDR

3. HDR Software/Standard

3.1. Apple

Read more »

1. 为什么研报不好

信息与数据太多,没有自己思考的过程,知识太散

2. 方法论

  1. 提出问题,明确自己想要知道什么
  2. 经典商业问题:用户,市场中的竞争者,关键技术,成本,子品类
  3. 动机:为什么要去了解,根据逻辑思考一些需要的问题来解决问题
  4. 收集信息
  5. 外语:搜索引擎
  6. 中文:微信、知乎、行研报告、播客
  7. 扩充关键词、深度搜索
  8. 从已经有的信息中提取新的(衍生)关键词、问题
  9. 直到你没有再看到新的词语、词汇
  10. 归纳
  11. 按照逻辑装进框架,不同行业有不同的逻辑
  12. General商业:商业,技术,市场
  13. 热点事件:timeline

3. 回顾

最终还是要解决自己的问题,只要能有逻辑的回答自己的问题,就是成功的调研

4. 专家调研

效率更高,找对人

Read more »

1. Intro

Ref

What?

  • Typical solution to occurring problem in software
  • pre-made blueprints
  • Intent, Motivation, Structure, Code example

Why?

  • Best practices
  • common language

Classification

  • Creational pattern, object creation
  • Structural pattern, assemble into larger structure
  • Behavioral pattern, take care of effective communication
  • Maybe useful in robotics area

2. Creational Pattern

Factory: use general interface, all subclass implement these interface. Good if continue to add object type

Read more »