IT Roadmap - 資訊技術應用 學習地圖
Last Updated @ 2024/09/22
Software Engineering
Reference
- SWEBOK (Software Engineering Body of Knowledge) v3
- 15 Knowledge Areas (KAs):
- Software requirements
- Software design
- Software construction
- Software testing
- Software maintenance
- Software configuration management
- Software engineering management
- Software engineering process
- Software engineering models and methods
- Software quality
- Software engineering professional practice
- Software engineering economics
- Computing foundations
- Mathematical foundations
- Engineering foundations
- Related Disciplines:
- Computer engineering
- Systems engineering
- Project management
- Quality management
- General management
- Computer science
- Mathematics
- Fundamentals of Computer Science
- Discrete Mathematics
- Data Structure
- Algorithm
- Pattern Recognition
- Compiler
- Lex / YACC (Yet Another Compiler Compiler)
- GNU bison
- ANTLR (ANother Tool for Language Recognition)
- System Programming
- Operating System
Methodology
- Waterfall Model – System Development Life Cycle (SDLC)
- Requirements → Design → Implementation → Verification → Maintenance
- Conception → Initiation → Analysis → Design → Construction → Testing → Production/Implementation → Maintenance.
- Winston W. Royce's Original Waterfall Model
- System and software requirements: captured in a product requirements document
- Analysis: resulting in models, schema, and business rules
- Design: resulting in the software architecture
- Coding: the development, proving, and integration of software
- Testing: the systematic discovery and debugging of defects
- Operations: the installation, migration, support, and maintenance of complete systems
- Iterative and Incremental Development 疊代進化式開發
- Spiral Model 螺旋模型 1
- Chaos Model 混沌模型
- V-Model (Software Development)
- Dual Vee Model
- Domain-Driven Design (DDD) 領域驅動設計 – an approach to software development for complex needs by connecting the implementation to an evolving model. Premise:
- Placing the project's primary focus on the core domain and domain logic;
- Basing complex designs on a model of the domain;
- Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
- Agile Software Development 敏捷軟體開發
- Scrum
- Pair Programming 結對程式設計
- Continuous Integration (CI) 持續整合
- Extreme Programming (XP) 極限編程
-
- Roles: Product owner, Development team, Scrum master
- Workflow: Sprint Planning, Daily Scrum, Sprint Review and Retrospective
- Extreme Programming Practices
- Fine-Scale Feedback
- Pair Programming
- Planning Game
- Test-Driven Development (TDD)
- Whole Team
- Continuous Process
- Continuous Integration
- Refactoring or Design Improvement
- Small Releases
- Shared Understanding
- Coding Standards
- Collective Code Ownership
- Simple Design
- System Metaphor
- Programmer Welfare
- Sustainable Pace
- Unified Process (UP)
- Rational Unified Process (RUP)
- Life-cycle Management
- Application Life-cycle Management (ALM)
- Product Life-cycle Management (PLM)
- Web Accessibility (網頁親和力、網頁無障礙、網頁下載加速)
- W3C - WCAG (Web Content Accessibility Guidelines) v2.0 v2.1 Draft
- WAI - ARIA (Web Accessibility Initiative – Accessible Rich Internet Applications) –
specifies how to increase the accessibility of web pages, in particular, dynamic content, and user interface components developed with Ajax, HTML, JavaScript, and related technologies. - ATAG (Authoring Tool Accessibility Guidelines)
- AMP (Accelerated Mobile Pages) – AMP is optimised for mobile web browsing and intended to help webpages load faster. AMP pages may be cached by a CDN, such as Microsoft Bing or Cloudflare's AMP caches, which allows pages to be served more quickly.
Pattern
- Object-Oriented Programming (OOP)
- Object-Oriented Design (OOD)
- Architectural Pattern (Database)
- Architectural Patterns (Software)
- Model 1
- Model 2 (Web MVC) by Sun Microsystems, 1999 – e.g.: Rails, ASP.Net, Struts
- MVC (Model–View–Controller) – e.g.: Backbone.js
- MVW (Model - View - Whatever)
- MVP (Model–View–Presenter) – e.g.: Android
- MVVM (Model–View–ViewModel) – e.g.: JavaScript, Node.js
- MTV (Model–Template–View) – e.g.: Python Django
- Design Patterns
- Creational
- Singleton
- Structural
- Behavioral
- Transaction Pattern - an approach to constructing user transactions
- Model Driven Architecture (MDA)
- Functional Programming 函數式編程
DevOps
- DevOps (a clipped compound of “development” and “operations”)
- Definition
- A software development and delivery process that emphasizes communication and collaboration between product management, software development, quality assurance (QA), and operations professionals.
- It supports this by automating and monitoring the process of software integration, testing, deployment, and infrastructure changes by establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
- CI/CD (Continuous Integration / Continuous Delivery or Deployment) Tools
Continuous Delivery and Release Management
- Type of Developer
- 前端 Front-end Developer
- 後端 Back-end Developer
-
- Layers of the full stack:
- Server, Network, and Hosting Environment.
- Data Modeling
- Business Logic
- API layer / Action Layer / MVC
- User Interface
- User Experience
- Understanding what the customer and the business need.
- Other Pieces of the Puzzle:
- Ability to write quality unit tests. By the way, even JavaScript can have unit tests these days.
- Understanding of repeatable automated processes for building the application, testing it, documenting it, and deploying it at scale.
- An awareness of security concerns is important, as each layer presents its own possible vulnerabilities.
- The 12 Factors – a Methodology for Building SaaS Apps. (epub)
- Codebase - One codebase tracked in revision control, many deploys
- Dependencies - Explicitly declare and isolate dependencies
- Config - Store config in the environment
- Backing services - Treat backing services as attached resources
- Build, release, run - Strictly separate build and run stages
- Processes - Execute the app as one or more stateless processes
- Port binding - Export services via port binding
- Concurrency - Scale out via the process model
- Disposability - Maximize robustness with fast startup and graceful shutdown
- Dev/prod parity - Keep development, staging, and production as similar as possible
- Logs - Treat logs as event streams
- Admin processes - Run admin/management tasks as one-off processes
OT
- ICS (Industrial Control System)
- OT (Operation Technology)
Certification
- PMI (Project Management Institute)
- PMP (Project Management Professional)
- PMBOK (Project Management Body of Knowledge) Guide and Standards
- The 10 Knowledge Areas:
- Integration Management, Project Scope Management, Project Time Management, Project Cost Management, Project Quality Management, Project Human Resource Management, Project Communications Management, Project Risk Management, Project Procurement Management, and Project Stakeholder Management.
- CAPM (Certified Associate in Project Management) – an entry-level certification for project practitioners.
- ACP (Agile Certified Practitioner)
- CMMI Institute – a subsidiary of ISACA
- CMMI (Capability Maturity Model Integration) – a globally-recognized set of best practices that enable organizations to improve performance, key capabilities, and critical business processes.
- Initial > Managed > Defined > Quantitatively Managed (measured & controlled) > Optimizing
- DMM (Data Management Maturity) – Build, improve, and measure your Enterprise Data Management Program.
Tools
Documentation Tool
- WIKI syntax
- Wiki.js – The most powerful and extensible open source Wiki software.
- Requirements: PostgreSQL 9.5 or later, Node.js 10.12 or later)
- WYSIWYG Editor
- Matterwiki – A simple and beautiful wiki for teams.
- Markdown Web Editor
- MkDocs – Project documentation with Markdown.
- StackEdit – In-browser Markdown editor
- GitHub Source – Full-featured, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.
- Notion.so – The all-in-one workspace for your notes, tasks, wikis, and databases.
- HackMD – 用即時協作的 Markdown 編輯器書寫[團隊/技術/專案]文件,讓你快速協作、輕鬆紀錄想法、隨時共享知識。
- Editor.md – 开源在线 Markdown 编辑器
- MDWiki – a CMS/Wiki completely built in HTML5/Javascript and runs 100% on the client.
- Jingo (Node.js) – The aim of this wiki engine is to provide an easy way to create a centralized documentation area for people used to work with git and markdown.
- jingo-markdown 1.3 (Python)
- Raneto – Raneto is a free, open, simple Markdown powered Knowledgebase for Node.js.
- App Editor
- typora.io – Typora gives you a seamless experience as both a reader and a writer.
- App + SaaS
- Simplenote – The simplest way to keep notes. Light, clean, and free. Simplenote is now available for iOS, Android, Mac, Windows, Linux, and the web.
- Notion – a project management and note-taking software.
- Document Converter
- Pandoc – A universal document converter. If you need to convert files from one markup format into another, pandoc is your swiss-army knife.
- Static Site Generator
- Jekyll – Jekyll renders Markdown or Textile and Liquid templates, and produces a complete, static website.
- Jekyll Themes
UI / UX Design Tool
- LayoutIt! – Interface Builder for CSS Grid and Bootstrap
- Material Design – an adaptable system of guidelines, components, and tools that support the best practices of user interface design.
Web Design Tool
- Mockup Tool
- Wireframe,Mockup,Prototype
- Website/Pages Builder/Creator 1
- Open Source
- WordPress – Open Source CMS & eCommerce Web Platform
- Elementor – The Best Website Builder Plugin for WordPress
- GrapesJS – Multi-purpose Open-source Web Builder Framework
- Symfony – Free Open Source Web Design Software
- Try & Pay
- Wix – The Best FREE SaaS Website Builder (drag and drop)
System Analysis Tool
- UML (Unified Modeling Language)
- Format
- XMI (XML Metadata Interchange) – an OMG (Object Management Group) standard for exchanging metadata information via XML.
- UML Tools
- GUI Editor:
- UMLet
(Integrated with VS Code and Eclipse)
- StarUML – Free for evaluation
- Visual Paradigm for UML – Free for Community Edition
- Astah Community (
Jude)
- Web Based Editor (Cloud Service):
- diagrams.net (Draw.io) – Diagram Software and Flowchart Maker
- yUML – Create and share simple UML diagrams in your blogs, wikis, forums, bug-trackers and emails.
- Text Parser:
- PlantUML – to create UML diagrams from a plain text language.
- Other Commercial Products:
- Microsoft Visio
- IBM Rational Software Architect Designer
Development Tool / IDE
- Code Editor
- IDE
- NetBeans
- Oracle JDeveloper
- IBM WebSphare Application Developer (WSAD)
- Borland JBuilder
- Microsoft Visual Studio .NET
- Visual Studio Code (VSCode) – (free for Windows, Linux or macOS)
- Xamarin – extends the .NET developer platform with tools and libraries specifically for building apps for Android, iOS, tvOS, watchOS, macOS, and Windows.
- Apple Xcode
- Google Android Studio
- WebView – The WebView class is an extension of Android's View class that allows you to display web pages as a part of your activity layout.
- API Development
- Website App Service
- AppDevTools – Free online developer tools: Text Tools, Formatters, Escape Tools, Validators, Encoders and Decoders, Converters, Image Tools, Network Tools.
- Jupyter
- Google CoLab – Colaboratory is a free Jupyter notebook environment that requires no setup and runs entirely in the cloud.
- Microsoft Azure Notebooks – Develop and run code from anywhere with Jupyter notebooks on Azure.
- PhantomJS - Scriptable Headless Browser
Online Programming Tool
- Online Code Editor
- CodePen – Online Code Editor and Front End Web Developer Community
- CodeSandbox – Online Code Editor and IDE for Rapid Web Development
- JSFiddle – an online IDE service and online community for testing and showcasing user-created and collaborational HTML, CSS and JavaScript code snippets, known as 'fiddles'. It allows for simulated AJAX calls.
- Online Judge (OJ)
- LeetCode – The World's Leading Online Programming Learning Platform
-
- oj.openedu.tw – powered by https://github.com/QingdaoU/OnlineJudge
Online Simulator Tool
- Wokwi - Online Arduino and ESP32 Simulator
Collaboration / Build Tool
- Collaboration / Code Management / Version Control 1
- Centralized
- CVS (Concurrent Versions System)
- SVN (Subversion)
- Distributed
-
- BitKeeper
- Mercurial
-
- Build Automation
- Linux - make (makefile)
-
- Enterprise Collaboration Software (Team Work / Team Ware)
- Slack – a collaboration hub for work, no matter what work you do. It’s a place where conversations happen, decisions are made, and information is always at your fingertips.
- JANDI
Testing Tool
-
- Open Source
- Taurus – Automation-friendly framework for Continuous Testing by using YAML
- Locust – An open source load testing tool in Python.
- Gatline – Load-Test-As-Code: the best way to load test your applications, designed for DevOps and CI/CD.
- Appium – Automation for Apps. It drives iOS, Android, and Windows apps using the WebDriver protocol.
- Apache Selenium – a portable software-testing framework for web applications. (w/ IDE & WebDriver)
- Robot Framework – a generic open source automation framework for acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA).
- OpenSTA (System Testing Architecture)
- Fiddler / nGrinder / K6 / Tsung / Siege / Bees with Machine Guns / Fortio / puppeteer-webperf / Flood Element / Artillery
- Free Options
- Microsoft WCAT (Web Capacity Analysis Tool)
- The Grinder – a Java Load Testing Framework
- Commercial
- LoadNinja – Performance Testing and Load Testing Tool
- HP: LoadRunner, Httperf
- IBM Rational Performance Tester
- WebLOAD, LoadUI NG Pro, SmartMeter.io, LoadView, Appvance, NeoLoad, LoadComplete, WAPT, Loadster, LoadImpact, Testing Anywhere, QEngine (ManageEngine), Loadstorm, SOASTA CloudTest
- StresStimulus, NeoLoad
- Others
- Postman – Postman's built-in tools offer solutions for managing APIs in every stage of development — designing & mock, testing, documentation and monitoring.
- SAST (Static Application Security Testing) / Code Audit
- Open Source
- FlawFinder, Graudit, Valgrind, JCSC
- for C/C++ : ITS4, Pscan
- for Java : DoctorJ
- for .Net: OWASP Code Crawler
- Commercial
- IBM Security AppScan Source
- Checkmarx CxSAST
OAM Tool
- OAM (Operations, Administration and Management)
- Monitoring Tool
- Open Source
- http://oss.oetiker.ch/rrdtool/}RRDtool (acronym for round-robin database tool)
- Commercial Product
- Oracle Enterprise Management
- APM (Application Performance Management)
- Commercial Product
Backup Tool
- Commercial Product
- Open Source
- BackupPC
Remote Access Tool
- Remote Connect & Take Control
- Microsoft Terminal Service / RDP (for Windows)
- RealVNC – The software consists of a server (VNC Server) and client (VNC Viewer) application for the Virtual Network Computing (VNC) protocol to control another computer's screen remotely.
- MobaXterm – Enhanced terminal for Windows with X11 server, tabbed SSH client, network tools and much more.
- Remote desktop: use RDP, VNC or XDMCP to display a full remote desktop on your computer
- Remote session manager: SSH, SFTP, telnet, VNC, Mosh, RDP connections in a single application
- SSH/SFTP browser: edit and transfer remote files through secured connection
- Remote Desktop
Remote Work/Chat/Meet Tool
- Ref.
- https://wfh.iii.org.tw/ – 遠距上班軟體工具網站 by 財團法人資訊工業策進會
- @ Public Cloud
-
- U 會議 by 訊連科技 CyberLink
- @ Self Hosted
- OwnCast – a free and open source live video and web chat server for use with existing popular broadcasting software.
Language
Programming Language
🔹 General
- Linux
- Shell Script: bash, csh
- C, C++
- Apple
- Objective C
- Microsoft
- Windows PowerShell
- C, C++, C#
- F#
- Visual Basic
- Google
- Dart – a client-optimized language for fast apps on any platform
- Can be run @Apache httpd
- Based on JVM
-
- IDE:
- Eclipse + Pydev
- Editor:
- Spyder
- Jupyter Notebook
- Rodeo
- Data Science
- Legacy
- BASIC (Beginners All-Purpose Symbolic Instruction Code)
- LISP, Fortran, Pascal, ProLog
- COBOL, IBM RPG (Report Program Generator)
- Assembly
- Others
- Ruby – A dynamic, open source programming language with a focus on simplicity and productivity.
- Erlang – a programming language used to build massively scalable soft real-time systems with requirements on high availability.
- Lua – a lightweight, multi-paradigm programming language designed primarily for embedded use in applications.
Lua is cross-platform, since the interpreter is written in ANSI C,[3] and has a relatively simple C API. - Go (Golang) – an open source programming language that makes it easy to build simple, reliable, and efficient software.
🔹 Java SE
- Java SE /JDK
- JDK 5 - Annotation
- JDK 8 - Lambda
- Nomenclature, standards and specifications
- General purpose packages
- java.lang
- java.io
- java.nio
- java.math
- java.net
- java.text
- java.util
- Special purpose packages
- java.applet
- java.beans
- java.awt
- java.rmi
- java.security
- java.sql
- javax.rmi (Remote Method Invocation)
- javax.swing
- javax.swing.text.html.parser
- javax.xml.bind.annotation
- OMG packages
- org.omg.CORBA
- org.omg.PortableInterceptor
- Critical security issues with the Java SE plugin
🔹 Java EE
- Java EE
- Applet - Java Applet
- EL- Unified Expression Language
- EJB - Enterprise Java Beans
- JAAS - Java Authentication and Authorization Service
- JACC - J2EE Authorization Contract for Containers
- JAF - Java Beans Activation Framework
- JAX-RPC - Java API for XML-Based Remote Procedure Calls
- JAX-RS - Java API for RESTful Web Services
- JAX-WS - Java API for XML Web Services
- JAXM - Java API for XML Messaging
- JAXP - Java API for XML Processing
- JAXR - Java API for XML Registries
- JCA - J2EE Connector Architecture
- JDBC - Java Database Connectivity
- JMS - Java Message Service
- JMX - Java Management
- JNDI - Java Naming and Directory Interface
- JSF - Java Server Faces
- JSP - Java Server Pages
- JSTL - Java Server Pages Standard Tag Library
- JSON-P - Java API for JSON Processing
- JPA - Java Persistence API
- JTA - Java Transaction API
- JavaMail
- Managed Beans
- Servlet - Java Servlet API
- StAX - Streaming APIs for XML Parsers
- WebSocket - Java API for WebSocket
- WS - Web Services
- Web Profile Specification
Specification | Version | ||
---|---|---|---|
Java EE 6 | Java EE 7 | Java EE 8 | |
Servlet | 3.0 | 3.1 | 4.0 |
JavaServer Pages (JSP) | 2.2 | 2.3 | 2.3 |
Unified Expression Language (EL) | 2.2 | 3.0 | 3.0 |
Debugging Support for Other Languages (JSR-45) | 1.0 | 1.0 | 1.0 |
JavaServer Pages Standard Tag Library (JSTL) | 1.2 | 1.2 | 1.2 |
JavaServer Faces (JSF) | 2.0 | 2.2 | 2.3 |
Java API for RESTful Web Services (JAX-RS) | 1.1 | 2.0 | 2.1 |
Java API for WebSocket (WebSocket) | n/a | 1.0 | 1.1 |
Java API for JSON Processing (JSON-P) | n/a | 1.0 | 1.1 |
Common Annotations for the Java Platform (JSR-250) | 1.1 | 1.2 | 1.3 |
Enterprise JavaBeans (EJB) | 3.1 Lite | 3.2 Lite | 3.2 |
Java Transaction API (JTA) | 1.1 | 1.2 | 1.2 |
Java Persistence API (JPA) | 2.0 | 2.1 | 2.2 |
Bean Validation | 1.0 | 1.1 | 2.0 |
Managed Beans | 1.0 | 1.0 | 1.0 |
Interceptors | 1.1 | 1.2 | 1.2 |
Contexts and Dependency Injection for the Java EE Platform | 1.0 | 1.1 | 2.0 |
Dependency Injection for Java | 1.0 | 1.0 | 1.0 |
🔹 Visualized
- Scratch – the world’s largest coding community for children and a coding language with a simple visual interface.
Markup Language
- HTML (HyperText Markup Language)
- HTML5 & Web 2.0
- Canvas
- Optional Matadata
- Open Graph protocol – Enables any web page to become a rich object in a social graph.
- XML (eXtensible Markup Language)
- XHTML (eXtensible HyperText Markup Language)
- DHTML (Dynamic HTML)
- WML (Wireless Markup Language)
- XSD (XML Schema Definition)
- XSL (Extensible Stylesheet Language)
- XSLT (XSL Transformation)
- XSL-FO (XSL Formatting Objects)
- XPath (XML Path Language, a non-XML language used by XSLT)
- XML Application
- RSS (Really Simple Syndication / Rich Site Summary)
- XUL (XML User Interface Language)
- GML (Geography Markup Language) - by OGC (Open Geospatial Consortium)
- PMML (Predictive Model Markup Language) - an XML-based predictive model interchange format.
- KML (Keyhole Markup Language) - an XML notation for expressing geographic annotation and visualization within Internet-based, two-dimensional maps and three-dimensional Earth browsers.
Notation Language
- JSON – JavaScript Object Notation
- GeoJSON – a format for encoding a variety of geographic data structures.
- YAML – Ain't a Markup Language / Yet Another Markup Language
- Markdown – a lightweight markup language with plain text formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML.
Scripting Language
🔹 Client-Side
- DOM (Document Object Model)
- JavaScript
- JSON (JavaScript Object Notation)
- AJAX (Asynchronous JavaScript and XML)
- Cross-Website Request
- JavaScript Transpiler
- VBScript @IE
🔹 Server-Side
- SSI (Server Side Includes) 1
- CGI (Common Gateway Interface)
- CGI/PERL
- CGI/C
-
- C#.NET, F#
- ASP, ASP.Net, Visual Basic.NET,
- Microsoft Data Access Objects (DAO)
- PHP
- SQL Support: PDO (PHP Data Objects) / MySQLi() / ADOdb
- Perl
- Python
- ColdFusion
UX & Rich Content
- UX (User Experience)
- Rich Internet Applications
- MIME (Multipurpose Internet Mail Extensions)
- SVG (Scalable Vector Graphics)
- Canvas
- Flash, ActionScript, Flex
- True Type Font (Free Fonts) 1
- Icon Font
- Open Source:
- Commercial Product:
- Color Space
- RGB (Red, Green, Blue)
- HEX (# Hexadecimal Value of RGB)
- HSL (Hue 色調 = 0 ~ 360, Saturation 飽和度 = 0% ~ 100%, Lightness 亮度 = 0% ~ 100%)
- HWB (Hue 色調 = 0 ~ 360, Whiteness 白度 = 0% ~ 100%, Blackness 黑 = 0% ~ 100%)
- CMYK (Cyan 青 = 0% ~ 100%, Magenta 洋紅 = 0% ~ 100%, Yellow 黃 = 0% ~ 100%, Black 黑 = 0% ~ 100%)
- NCOL – Natural Colors
- Color Scheme / Palettes Utilities
- Adobe – 色輪、調色盤產生器
- Coolors – Coolors.co – The super fast color palettes generator!
- Dribbble – Color Palette Filter & Download
- MatPlotLib – Choosing Colormaps 1
- Design Trends
- Awwwards – The Website Awards that recognize and promote the talent and effort of the best developers, designers and web agencies in the world.
Application Framework
Full-Stack
- Ruby
- Ruby on Rails (Rails) – a web application framework written in Ruby
- Node.js
- Bundler / Bundling Tool
- WebPack – Webpack is used to compile JavaScript modules. Once installed, you can interface with webpack either from its CLI or API.
Front-End
🔹 JavaScript
- General
- jQuery Mobile – A Touch-Optimized Web Framework
- Bootstrap – Quickly prototype your ideas or build your entire app with our Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful plugins built on jQuery.
- Bootswatch – Free themes for Bootstrap
- ColorBox – A lightweight customizable lightbox plugin for jQuery. It Supports photos, grouping, slideshow, ajax, inline, and iframed content.
- jqGrid - jQuery Grid Plugin
- Masonry – Cascading grid layout library
- Backbone.js (1.3.3)
- Underscore.js (1.8.3)
- AppML (by W3Schools)
- Ext JS 6.0 – Create feature-rich HTML5 applications using JavaScript
- Meteor.js – Meteor = MEAN stack + Socket.IO + grunt/gulp + Cordova + hot code reload + a lot more.
- Web Application Framework
- React (React.js / ReactJS) – an open-source JavaScript library providing a view for data rendered as HTML.
- JSX – a statically-typed, object-oriented programming language designed to run on modern web browsers.
- Vue.js – A progressive, incrementally-adoptable JavaScript framework for building UI on the web. Single-Page Application (SPA). Vue School
- Vue CLI – 🛠️ Standard Tooling for Vue.js Development
- Solution Stack
- MEAN.io – An opinionated fullstack javascript framework - which simplifies and accelerates web application development.
- MEVN – (MongoDB, Express, Vue, Node)
- Dynamic Table
- Diagram / SVG / Modeling
- Ref.
- Open Source
- Chart.js – Simple yet flexible JavaScript charting library for the modern web
- D3.js – Data-Driven Documents
- Family Tree @GitHub
- Trans Family Tree – Draws a family tree in a descendant chart format (all descendants of an individual). The Tree is stored in author-friendly YAML format.
- dTree – A library for visualizing data trees with multiple parents built on top of D3.
- js_family_tree – Interactive family tree visualization and -exploration with d3-dag.
- Organization Chart @GitHub
- D3 v5 organization chart – Highly customizable org chart built with d3 v5.
- Commercial Product
GetOrgChart→ OrgChart JS – lets developers to create simple, flexible and highly customizable organization chart for presenting structural data in an elegant way.- GoJS – Interactive JavaScript Diagrams in HTML
- Rappid, Mxgraph
- amCharts – JavaScript Charts & Maps Programming library for all your data visualization needs.
- Graphics / Animation / Game
🔹 Mobile Apps
- Flutter – an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase.
- Ionic Framework – Cross-Platform Mobile App Development: in Angular, Vue, React.
- Capacitor by Ionic - Cross-platform apps with web technology
- React Native – an open-source mobile application framework created by Facebook. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP.
- Expo – Build one project that runs natively on all your users' devices
- Apache Cordova - Mobile apps with HTML, CSS & JS. Target multiple platforms with one code base. Free and open source.
-
- jQuery Mobile, Dojo Mobile, Sencha Touch
- App Inventor – a web application integrated development environment originally provided by Google, and now maintained by the MIT. It allows newcomers to computer programming to create application software (apps) for two operating systems (OS): Android, and iOS.
- Thunkable – enables anyone to create beautiful and powerful mobile apps.
🔹 Others
- PWA (Progressive Web Application)
- Template Engine
- Java-based
- Apache Velocity – a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code.
- JavaScript-based
- ?
Back-End
🔹 JavaScript
-
- Socket.IO – a library that enables real-time, bidirectional and event-based communication between the browser and the server.
- Express.js – Fast, unopinionated, minimalist web framework for Node.js
- Koa.js – next generation web framework for node.js
- Mongoose – a Object Data Modeling (ODM) library for MongoDB distributed as an npm package.
🔹 JVM
- Java VM (JDK) Framework
🔹 Java EE
- Java EE Web Application Development Framework
- Major
- Spring : IoC, ORM, AOP, MVC, JDBC, OXM, JMS, …
- Oracle ADF (Oracle Application Development Framework)
- Others
- ZK Framework – for building amazing enterprise web and mobile applications.
- Play – The High Velocity Web Framework For Java and Scala.
- Apache Tiles 3 – A free open-sourced templating framework for modern Java applications. Based upon the Composite pattern it is built to simplify the development of user interfaces.
- Java Object-Relational Mapping (ORM)
🔹 Others
PHP
-
- Slim Framework – Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.
- Class Library
- Xajax
- Web Template Engine
- FastTemplate, TinyButStrong, Smarty
Python
- WSGI – Web Server Gateway Interface
- Python Web Server Gateway Interface – Web Application Framework
- Web Apps
-
- Flask-RESTful – an extension for Flask that adds support for quickly building REST APIs. 1
-
- Django makes it easier to build better Web apps more quickly and with less code.
- Django REST Framework
- Djongo – Host Django Apps on a MongoDB database.
-
- SocketIO
-
- Library / Package / Extension / Framework :
- PyPI – The Python Package Index
- Scrapy – An open source and collaborative framework for extracting the data you need from websites.
- Celery – an asynchronous task queue/job queue based on distributed message passing.
- Turtle – The turtle has three attributes: a location, an orientation (or direction), and a pen. The pen, too, has attributes: color, width, and on/off state.
- PyGame – a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries.
- Pymunk – easy-to-use pythonic 2d physics library that can be used whenever you need 2d rigid body physics from Python.
Microsoft
- ASP, ASP.Net
- SignalR (by WebSocket)
Cloud Platform
Middle Ware
System Services
- DNS
- Linux named, PowerDNS
- FQDN (Fully Qualified Domain Name)
- PunyCode - a representation of Unicode with the limited ASCII character subset used for Internet host names.
- FTP
- vsFTP
- Network File System
- CIFS (Common Internet File System)
SMB (Server Message Block, ©Samba) @NetBIOS - NIS (Network Information Services) @RPC
- NFS (Network File System) @RPC(port:111)
- autofs
Web / Application Server
- Web Server
- Microsoft IIS (Internet Information Services)
- Event-Driven I/O Server-Side JavaScript Environment
-
- npm (node package manager)
- Grunt (Task Runner)
-
- AP Server
- Web Container / Proxy
- AJP (Apache JServ Protocol)
- mod_proxy_ajp
- mod_jk
- HA (High Availability)
- Clustering
- Load Balancing
- Session Replication
- Fail-Over
- Solution Stack Package / Installer
EAI, SOA, Flow Engine
- EAI (Enterprise Application Integration)
- ESB (Enterprise Service Bus)
- SOA (Service-Oriented Architecture)
- Microservices – a variant of SOA architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight.
- Technology
- Web Services
- REST (Representational State Transfer) RESTful Web Service / Web API / HTTP
- Architectural Properties: Performance, Scalability, Simplicity, Modifiability, Visibility, Portability, Reliability
- Architectural Constraints: Client-Server, Statelessness, Cacheability, Layered System, Code-On-Demand, Uniform Interface
- SOAP (Simple Object Access Protocol)
- XML-RPC
- WSDL (Web Services Description Language)
- UDDI (Universal Description, Discovery and Integration)
- BPEL (Business Process Execution Language)
- BPM (Business Process Management)
- Work Flow
- Web Form
- Rule Engine
- Task Manager
- Services Framework Solutions
- Oracle
- WebLogic SOA
- Oracle BPM Suite
- Red Hat
- JBoss Fuse / FSW (Fuse Serive Works)
- Apache Software Foundation
- Apache Axis – A Web Service containers that helps users to create, deploy, and run Web Services.
- Apache Axis2 – A Web Services / SOAP / WSDL engine, the successor to the widely used Apache Axis SOAP stack. (Axis2/Java and Apache Axis2/C)
- Apache CXF – Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS.
- Apache ActiveMQ – The most popular and powerful open source messaging and Integration Patterns server.
- Apache Camel – A versatile open-source integration framework based on known Enterprise Integration Patterns.
- Microsoft
- COM (Component Object Model) / DCOM (Distributed COM)
- ActiveX
- OLE (Object Linking and Embedding)
- Others
- RabbitMQ (by Erlang) – Implement AMQP (Advanced Message Queuing Protocol)
- Agentflow BPM
- Alfresco BPM
API Gateway / Distributing
- Microservice API Gateway / API Middleware / API Management Platform
- Open Source: Overview
- GraphQL – an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data.
- Client Side:
- Relay – A JavaScript framework for building data-driven React applications
- Apollo Client – Apollo Client is the best way to use GraphQL to build client applications. The client is designed to help you quickly build a UI that fetches data with GraphQL, and can be used with any JavaScript front-end.
- 3scale API Management Platform - Unlock the power of your APIs. No other solution offers so much power, ease, and flexibility in such a cost effective way.
- WSO2 API Management - a 100% open source enterprise-class solution that supports API publishing, lifecycle management, application development, access control, rate limiting and analytics in one cleanly integrated system.
- Kong - The open-source API Gateway and Microservices Management Layer, delivering high performance and reliability. Kong runs in front of any RESTful API and is extended through Plugins, which provide extra functionality and services beyond the core platform.
- Tyk - an open source API Gateway that is fast, scalable and modern. Out of the box, Tyk offers an API Management Platform with an API Gateway, API Analytics, Developer Portal and API Management Dashboard.
- API Umbrella - a proxy that sits in front of your APIs. It can seamlessly add common functionality like api keys, rate limiting, and analytics to any API.
- Commercial Product:
- Data Pipelines / Streaming / Distributing / Workflows
- Open Source:
- Apache Kafka – used for building real-time data pipelines and streaming apps. It is horizontally scalable, fault-tolerant, wicked fast.
- Apache NiFi – supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic.
- Apache Airflow – a platform to programmatically author, schedule and monitor workflows.
Database
- Relational DBMS
- Oracle Database (RAC, Partitioning, RMAN B&R, CDB&PDBs, Spatial&Graph, OLAP, DW
)
- MySQL / MySQL Cluster (MyISAM, InnoDB, NDB)
- Microsoft SQL Server (OLAP, DW
)
- Microsoft Access
- SyBase
- IBM DB2 database
- ACID – properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps.
- Atomicity – guarantees that each transaction is treated as a single “unit”, which either succeeds completely, or fails completely
- Transaction be “all or nothing”: Commit, Roll back.
- Consistency – ensures that a transaction can only bring the database from one valid state to another
- Transaction Rules: Constraints, Cascades, Triggers.
- Isolation – ensures that concurrent execution of transactions leaves the database in the same state.
-
- Read uncommitted, Read committed, Repeatable read, Serializable.
- Failure: Write-Write Conflict, Write–Read Conflict, Read-Write Conflict
- 2PL (Two-Phase Locking)
-
- Durability – guarantees that once a transaction has been committed, it will remain committed even in the case of a system failure
- Column-Oriented Distributed Data Store
- Druid
- NoSQL
- Document Database:
- RethinkDB, CouchDB, Riak
- In-memory Database:
- Redis (REmote DIctionary Server) – in-memory data structure store.
- Memcached, Velocity, Tuple space
- Key-Value Database:
- Google BigTable, Hadoop HBase, Amazon DynamoDB
- Cassandra, Hypertable
- Graph Database:
- Neo4j, InfoGrid, AllegroGrph
- DB Client/Tools
- DBeaver Community (Free Universal Database Tool)
- Navicat (for SQL, Redis, MongoDB, …)
- Object Mapping
- ODM (Object Document Mapping)
- ORM (Object Relational Mapping)
DW, OLAP
- DW (Data Warehousing)
- OLAP / MOLAP (Multi-dimensional On-Line Analytical Processing)
- Commercial Product
- Microsoft Database Analysis Services
- IBM Cognos
- Oracle Database OLAP Option, Essbase, Hyperion
- SAP Business Objects, AG, Cartesis
- SAS OLAP Server
- Infor BI OLAP Server
- Open Source
- icCube
- Jedox OLAP Server
- Cubes
Identity Directory
- LDAP (Lightweight Directory Access Protocol)
- Server
- Client
- LDIF (LDAP Data Interchange Format)
GIS / LBS
- GIS (Geographic Information System)
- OGC(Open Geospatial Consortium,
Open GIS Consortium)- OpenGIS (Open Geodata Interoperation Specification, OGIS)
- Open Source:
- Commercial Product:
-
- Format: Shapefiles - shp, shx, dbf
- MapInfo
-
- LBS (Location-Based Service) – a software-level service that uses location data to control features.
- RTLS (Real-Time Location Systems) – used to automatically identify and track the location of objects or people in real time, usually within a building or other contained area.
- Ranging and angulating
- Angle of arrival (AoA)
- Line-of-sight (LoS)
- Time of arrival (ToA)
- Multilateration (Time difference of arrival) (TDoA)
- Time-of-flight (ToF)
- Two-way ranging (TWR) according to Nanotron’s patents
- Symmetrical Double Sided – Two Way Ranging (SDS-TWR)
- Near-field electromagnetic ranging (NFER)
EIP / ECM / KM
- EIP (Enterprise Information Portal)
- ECM (Enterprise Content Management) / CMS (Content Management System) / CMF (Content Management Framework)
- KM (Knowledge Management) / PKM (Personal Knowledge Management)
- Open Source
- WordPress @php - web software you can use to create a beautiful website, blog, or app.
- Joomla! @php - an award-winning content management system (CMS), which enables you to build Web sites and powerful online applications.
- Drupal @php - content management platform
- OpenCms @java - a professional, easy to use website content management system.
- uPortal @java, by Apereo (formerly Jasig) - enterprise portal framework built by and for the higher education community
- Plone CMS @python - A powerful, flexible Content Management Solution that is easy to install, use and extend.
- OpenKM Community @java - Document Management System
- Liferay Portal CE @java - Create and connect personalized digital experiences across web, mobile and connected devices.
- Commercial Product
- Oracle WebCenter Portal
- Microsoft Enterprise Information Portal (SharePoint)
- Mail Service
- MTA (Mail Transfer Agent)
- smtp
- Linux:
- SendMail
- Microsoft: Exchange Server
- pop3, imap4
- Linux: Dovecot
- Microsoft: Exchange Server
- MDA (Mail Delivery Agent)
- Mail Filter (Open Source)
- Sieve (mail filtering language)
- ImapFilter
- Anti-Spam / Anti-Virus
- Open Source: SpamAssassin, RadicalSpam, Scrollout, MailScanner, ASSP (Anti-Spam SMTP Proxy Server)
- Commercial Product: CelloPoint, OpenFind
- MUA (Mail User Agent)
- Commercial Product
- Microsoft Outlook, Outlook Express
- Web Mail
- SquirrelMail
- Open WebMail
- Application Package (Open Source)
- Email Reputation Services
Email System Protection
- 說明
- SPF (Sender Policy Framework 寄件者政策框架) 📚
- DKIM (DomainKeys Identified Mail 網域驗證郵件) – 用來防止郵件內容遭到竄改
- DMARC (Domain-based Message Authentication, Reporting & Conformance) – 用來輔助 SPF 與 DKIM 的不足
- Anti-SPAM
SMS / IM
- SMS Protocol
- SMPP (Short Message Peer-to-Peer)
- IM (Instant Message) / LAN Messenger
- Protocol
- SIP (Session Initiation Protocol) / SIMPLE (Instant Messaging Protocol)
- TOX (based on DHT)
- XMPP (Extensible Messaging and Presence Protocol) / Jingle (Google Talk)
- Commercial Production
- Google Talk, Apple iChat, Microsoft Skype / MSN, WeChat, Line
- Open Source
- Miranda IM (for Microsoft Windows), Pidgin (software) (multi-platform), Output Messenger
- Open Source
- Discourse (Internet forum & mailing list management)
VoIP / CTI
- VoIP (Voice over Internet Protocol, also Voice over IP, VoIP or IP telephony)
- Protocols: SIP, RTP, XMPP, STUN, ICE, …
- PSTN (Public Switched Telephone Network)
- CTI (Computer telephony integration)
Infrastructure
Firmware
- BIOS (Basic Input/Output System)
- EFI / UEFI (Unified Extensible Firmware Interface) BIOS
OS
- X Window System – an architecture-independent system for remote graphical user interfaces and input device capabilities.
- X.Org – The X.Org project provides an open source implementation of the X Window System.
- X Server – a display server for the X Window System
- MobaXterm – Enhanced terminal for Windows with X11 server, tabbed SSH client, network tools and much more.
- X.Org Server – the free and open-source implementation of the display server for the X Window System stewarded by the X.Org Foundation.
- Cygwin/X (for Windows)
- XQuartz (for Mac OS)
- UNIX
- HP-UX
- IBM AIX
- Linux
- Oracle Linux
- Red Hat Enterprise Linux
- Apple
- MAC OS
- iOS
- Microsoft
- DOS
- Windows 95/98/XP/Vista/7/8/10/11
- Microsoft Windows Server NT/2000/2003/2008/2012/2016/2019/2022
- Google
- Android
Virtualization
- Hypervisor / Virtual Machine Monitor (VMM) – computer software, firmware or hardware that creates and runs virtual machines.
- Type-1, native or bare-metal hypervisors
- Type-2 or hosted hypervisors
- Virtual Machine (VM) - Cloud Computing Virtualization Operating System
- Red Hat
- KVM : Host @Linux
- Xen : @Linux,Solaris
- QEMU : Host @AnyOS
- Microsoft
- Hyper-V : Host @WindowsOnly
- Virtual PC : Host @WindowsOnly, File: *.VHD
- System Center - Virtual Machine Manager
- Oracle
- Oracle VM : Host @BareMetal
- VirtualBox : by Oracle, Host @AnyOS
- VMware
- VMware vSphere
- VMware ESX/ESXi Server: Host @BareMetal
- VMware Fusion : Host @MacOS
- VMware Server : Host @Windows,Linux
- VMware Workstation & Player : Host @Windows,Linux , File: *.VMDK
- DOS
- DOSBOX : Host @AnyOS, Guest: DOS only
- DOSEMU : Host @Linux, Guest: DOS only
Container
- Software Container Platform (Operating-System-Level Virtualization)
- LXC (Linux Container)
- Docker – a set of platform-as-a-service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.
- Kubernetes (K8s) - an open-source system for automating deployment, scaling, and management of containerized applications. (Production-Grade Container Orchestration)
Cloud
- Cloud Computing
- Service Models:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
- Security as a Service (SECaaS)
- Mobile “backend” as a Service (MBaaS)
- Serverless Computing
- Deployment Models:
- Private Cloud
- Public Cloud
- Hybrid Cloud
- Others
- Community Cloud
- Distributed Cloud
- Intercloud
- Multicloud
-
- Red Hat OpenShift - PaaS, built on Docker and Kubernetes
- GoDaddy –
- Serverless
- Platform
- Google Serverless Computing
- Microsoft ACI (Azure Container Instances)
- Amazon AWS Lambda
- Tools / framework
- OpenStack – The Open Source Cloud Operating System
- Reference:
- Distributions:
- IBM, … .
- Components:
- Compute (Nova)
- Networking (Neutron)
- Block storage (Cinder)
- Identity (Keystone)
- Image (Glance)
- Object storage (Swift)
- Dashboard (Horizon)
- Orchestration (Heat)
- Workflow (Mistral)
- Telemetry (Ceilometer)
- Database (Trove)
- Elastic map reduce (Sahara)
- Bare metal (Ironic)
- Messaging (Zaqar)
- Shared file system (Manila)
- DNS (Designate)
- Search (Searchlight)
- Key manager (Barbican)
Parallel Computing
- OpenCL (Open Computing Language) – the open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms.
- CUDA (Compute Unified Device Architecture) – a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs).
Distributed Computing / HPC
- Apache Hadoop v3.1.3
- Module
- Hadoop Common: The common utilities that support the other Hadoop modules.
- Hadoop Distributed File System (HDFS): A distributed file system that provides high-throughput access to application data.
- Hadoop YARN: A framework for job scheduling and cluster resource management.
- Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
- Hadoop Ozone: An object store for Hadoop.
- Hadoop Submarine: A machine learning engine for Hadoop.
- Project
- Ambari: A web-based tool for provisioning, managing, and monitoring Apache Hadoop clusters which includes support for Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop. Ambari also provides a dashboard for viewing cluster health such as heatmaps and ability to view MapReduce, Pig and Hive applications visually alongwith features to diagnose their performance characteristics in a user-friendly manner.
- Avro: A data serialization system.
- Cassandra: A scalable multi-master database with no single points of failure.
- Chukwa: A data collection system for managing large distributed systems.
- HBase: A scalable, distributed database that supports structured data storage for large tables.
- Hive: A data warehouse infrastructure that provides data summarization and ad hoc querying.
- Mahout: A Scalable machine learning and data mining library.
- Pig: A high-level data-flow language and execution framework for parallel computation.
- Spark: A fast and general compute engine for Hadoop data. Spark provides a simple and expressive programming model that supports a wide range of applications, including ETL, machine learning, stream processing, and graph computation.
- Tez: A generalized data-flow programming framework, built on Hadoop YARN, which provides a powerful and flexible engine to execute an arbitrary DAG of tasks to process data for both batch and interactive use-cases. Tez is being adopted by Hive, Pig and other frameworks in the Hadoop ecosystem, and also by other commercial software (e.g. ETL tools), to replace Hadoop MapReduce as the underlying execution engine.
- ZooKeeper: A high-performance coordination service for distributed applications.
- MEC (Mobile Edge Computing) - provides a distributed computing environment for application and service hosting. It also has the ability to store and process content in close proximity to cellular subscribers, for faster response time.
- HPC (High-Performance Computing) - most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one could get out of a typical desktop computer or workstation in order to solve large problems in science, engineering, or business.
Storage
- NAS (Network Attached Storage)
- SAN (Storage Area Network)
- Web Storage / Cloud Storage
- CDN (Content Delivery Network or Content Distribution Network) - a geographically distributed network of proxy servers and their data centers.
- Image CDN / Online Image Sharing / 圖床
- Free / Cloud
- Open Source / Self Hosting
Network
- Network OSI (Open System Interconnection) Reference Model
- Physical Layer
- DOCSIS, DSL, ISDN, USB, IEEE 802.11
- Data Link Layer
- LLC (Logic Link Control), MAC(Media Access Control) Address, L2TP, LLDP, PPP
- Network Layer
- IP(IPv4, IPv6) Address, ICMP, IPsec, IPX, AppleTalk
- Transport Layer
- TCP, UDP, SCTP, NBF
- Session Layer
- NetBIOS, SAP, SIP, L2TP, PPTP
- Presentation Layer
- TLS, SSL, MIME, XDR
- Application Layer
- DNS, FTP, HTTP, NFS, NTP, SMTP, DHCP, SNMP, SSH, Telnet
- Socket Programming
- Packet Sniffer / Analyzer
- IP Network Service
- DHCP
- VPN / IPSec
- NLB (Network Load Balance)
- Switch
- Layer 2~3, Layer 4, Layer 5~7
- Firewall / Router
- Hardware:
- Cisco, NetScreen, Juniper, FortiGate
- OS Package:
- Linux: SELinux, iptables
- Software
- Open Source:
- ClearOS, DD-WRT, Untangle, ZeroShell, Endian, Smoothwall Express.
- SDN (Software-Defined Networking)
- OpenFlow Protocol
- Wi-Fi 802.11 a/b/g/n/ac
- Working/Access Mode
- STA (Station)
- AP (Access Point)
- Router (Layer 3)
- Bridge (Layer 2)
- Repeater (Layer 1)
- Wi-Fi Direct (Wi-Fi Peer-to-Peer)
- SSID (Service Set Identifier) - 字串格式(2~32 bytes),方便使用者看得懂的名稱。通常一台AP可以設定多個SSID,讓屬於同個ESS的BSS可以虛擬化的分割。
- BSSID (Basic SSID) - AP的Mac Address (6 bytes),一個AP無線訊號所涵蓋的範圍即為BSS。
- ESSID (Extended SSID) - 為字串格式(2~32 bytes),ESS為多個BSS所形成的集合,多個AP後面必須有Controller設定每個AP帶有相同的ESSID。定義在802.11f。STA可以在同一個ESS內的不同BSS範圍內Roaming,即視為同的網路區域。
- HESSID - 為Mac Address 格式(6 bytes),一樣是由多個AP後端的Controller選定ESS內其中一個BSSID當作此ESS的HESSID。和ESSID不同在於ESSID無法確認為Global Unique,HESSID因為是取多個BSS的其中一個Mac Address,所以可以確定是Global Unique。
- WDS (Wireless Distribution System)
- WEP (Wired Equivalent Privacy) - 在制定過程中出現設計缺陷,已被證明非常容易招受攻擊。
- WPA/WPA2 (Wi-Fi Protected Access) - 另加入WEP所沒有的802.1x、EAP (Extensible Authentication Protocol) 認證機制,如RADIUS等認證伺服器,防止使用者在重疊的無線網路訊號中,進入其他無線網路。
- WPA-PSK - 不用認證,只需鍵入簡單密碼的WPA-PSK加密模式,適合家庭用戶或安全顧慮較輕的使用者。
- AOSS / QSS / WPS (Wi-Fi Protected Setup)
- MIMO (Multiple-input and multiple-output)
MU-MIMO (Multi-user MIMO) – a set of multiple-input and multiple-output (MIMO) technologies for wireless communication. - WMN (Wireless Mesh Network) 無線網狀網路 – a communications network made up of radio nodes organized in a mesh topology.
- Bluetooth
- Version Comparison: 4.0/4.1/4.2
- Protocol: HFP / A2DP / HSP / AVRCP
- Telecommunicatin (Mobile) Network
- GSM/GPRS
- CDMA/CDMA2000/WCDMA
- 4G LTE/VoLTE
Positioning
- Global Navigation Satellite System (GNSS)
- United States - Global Positioning System (GPS)
- Russia - GLONASS
- European Union - Galileo
- Japan (Reginal) - QZSS
- China (Reginal) - BeiDou
- India (Reginal) - NAVIC
- AGPS
IoT
🔹 Reference
- IoT (Internet of Things)
- NarrowBand IoT (NB-IoT) – is a Low Power Wide Area Network (LPWAN) radio technology standard developed by 3GPP to enable a wide range of cellular devices and services.
- LoRa / LoRaWAN - Long Range Wide Area Network (WAN), from the LoRa Alliance
- IIoT (Industrial IoT)
- AIoT (AI + IoT)
- Community
-
- Open API Innovation Platform
- Smart IOT Cloud Services
-
- Kalay Colud, Kalay Connect, Kalay Application
- OSGi Alliance (Open Services Gateway initiative) –
Service Gateways, Mobile Phone, Automobiles, Industrial Automation, Building Automation, PDAs, Grid Computing, Entertainment, Fleet Management, and IDE / Application Servers.
- Industrial Automation
- PLC (Programmable Logic Controller)
- DDC (Direct Digital Control)
- HMI (Human-Machine interface)
- DCS (Distributed Control System)
- SCADA (Supervisery Control and Data Acquisition) System 資料採集與監控系統
- MODBUS – a serial communications protocol originally published by Modicon (now Schneider Electric) in 1979 for use with its PLCs.
- PDU (Protocol Data Unit) 協定資料單元
- ADU (Application Data Unit) 應用資料單元
- RTU (Remote Terminal Unit) 遠端終端裝置
- OPC (OLE for Process Control) Server
- AIO (Analogic Input Output) Controller
- DIO (Digital Input Output) Controller
- Network Buses
- RS-485: also known as TIA-485(-A), EIA-485.
- RS-232 (Recommended Standard 232) – a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a DTE & DCE
- DTE (Data Terminal Equipment) such as a computer terminal.
- DCE (Data Circuit-Terminating Equipment or Data Communication Equipment), such as a modem.
- Digital Logic Circuits
🔹 Interface / Communication
- Signal Interface (Reference: 1)
- UART (Universal Asynchronous Receiver-Transmitter)
- I2C / I²C (Inter-Integrated Circuit) – pronounced I-squared-C, is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial computer bus invented in 1982 by Philips Semiconductor (now NXP Semiconductors).
- SCL
- SDA
- SPI (Serial Peripheral Interface) – SPI devices communicate in full duplex mode using a master-slave architecture with a single master.
- Pinout: SCK / MISO / MOSI / SS1, SS2, …
- SSI (Synchronous Serial Interface)
- GPIO (General-purpose input/output)
- Connection / Communication
- Wi-Fi
- NFC
- RFID
- Bluetooth
- BLE (Bluetooth Low Energy, Bluetooth Smart)
- GATT (Generic Attribute Profile) – a data exchange protocol in Bluetooth LE, provides a number of commands for the client to discover information about the server.
- Z-Wave / ZigBee / Insteon / X10
- Indoor Positioning / Distance
- Beacon / iBeacon
- RSSI (Received Signal Strength Indicator) – a measurement of the power present in a received radio signal.
- UWB (Ultra-WideBand)
- TOA (Time of Arrival)
- AoA (Angle of Arrival)
- Others
- LQI (Link Quality Indicator)
🔹 Software / App
🔹 Hardware
- Single-Chip Microcomputer (單晶片微電腦)
- ARM Cortex-M0
- ARM Cortex-M4
- SoC (System on Chip) – an integrated circuit (also known as an “IC” or “chip”) that integrates all components of a computer or other electronic systems.
- PCB (Printed Circuit Board) – mechanically supports and electrically connects electrical or electronic components using conductive tracks, pads and other features etched from one or more sheet layers of copper laminated onto and/or between sheet layers of a non-conductive substrate.
- FlatCAM – a program for preparing CNC jobs for making PCBs on a CNC router. Among other things, it can take a Gerber file generated by your favorite PCB CAD program, and create G-Code for Isolation routing.
- EDA (Electronic Design Automation)
- KiCad EDA – a free software suite for electronic design automation (EDA). It facilitates the design of schematics for electronic circuits and their conversion to PCB designs.
Microcontroller (微控制器/微控板)
-
- Software:
-
- Software:
- Hardware:
-
- Nano, Nano 33 IoT, Uno Rev3, Mega 2560 Rev3, Micro, Leonardo, MRK …
-
- ESP32 – ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth.
- NodeMCU – an open source IoT platform. It includes firmware which runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and hardware which is based on the ESP-12 module.
- ESP8266 v2,v3 – a low-cost Wi-Fi microchip with full TCP/IP stack and microcontroller capability produced by manufacturer Espressif Systems[1] in Shanghai, China.
- MediaTek LinkIt ONE – enables you to design and prototype Wearable and Internet of Things (IoT) devices, using hardware and an API that are similar to those offered for Arduino boards.
- 7688, 7697
-
Single-Board Computer (SBC 單板電腦) / Autonomous Machines / AIoT Edge Computing
-
- Google Coral Edge TPU – Coral is a complete toolkit to build products with local AI. Our on-device inferencing capabilities allow you to build products that are efficient, private, fast and offline.
- Orange Pi Pc Plus – an open-source single-board computer. It can run Android, Ubuntu, Debian, Raspbian Image. It uses the AllWinner H3 SoC, and has 1GB DDR3 SDRAM
- Raspberry Pi 樹莓派 0, 0w, 1A+, 1B+, 2B, 3A+, 3B, 3B+, 4B
- Code Club – a global network of free coding clubs for 9- to 13-year-olds.
Security
Encryption / Cryptography
- PKI (Public Key Infrastructure) –
a set of roles, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates and manage public-key encryption.
- Protocol
- IPsec (Internet Protocol Security) –a secure network protocol suite that authenticates and encrypts the packets of data sent over an internet protocol network. It is used in virtual private networks (VPNs).
- IKE (Internet Key Exchange) – the protocol used to set up a security association (SA) in the IPsec protocol suite.
SSL v3 (Secure Sockets Layer, 安全通訊端層)– 存在 POODLE (Padding Oracle On Downgraded Legacy Encryption) 安全性漏洞,不再使用。- SASL (Simple Authentication and Security Layer 簡單認證與安全層)
- TLS (Transport Layer Security, 傳輸層安全性) v1.2
- HSTS (HTTP Strict Transport Security, HTTP強制安全傳輸技術)
🔹 SSL Certificate
- CA (Certificate Authority) – stores, issues and signs the digital certificates.
- RA (Registration Authority) – verifies the identity of entities requesting their digital certificates to be stored at the CA, usually called a subordinate CA.
- VA (Validation Authority)
- Apply SSL
- Free:
- Commercial:
- TWCA, Verisign, Symantec, Google Internet Authority G2, …
🔹 Domain Name Registrar
🔹 Free SubDomain Name Registrar
- Duck DNS – Free dynamic DNS hosted on AWS
- FreeDNS – Free DNS - Dynamic DNS - Static DNS subdomain and domain hosting
🔹 DNS / DDNS (Dynamic DNS) Hosting Service
Attack
- WebSite Attack Types
- SQL Injection
- XSS (Cross Site Scripting)
- CSRF (Cross-Site Request Forgery Attack) / XSRF / One-Click Attack / Session Riding – 跨站請求僞造 (Prevention)
- DoS (Denial of Service Attack)
- DDoS (Distributed Denial of Service Attack)
- TCP SYN Flood
- UDP Flood
- ICMP Flood
- Http Flood
- Ping of Death
- Land Attack
- Fraud 欺騙
- Phishing 釣魚
- Clickjacking (Click hijacking)
- Software Attack Types
- Zero-Day Exploit
- Trojan Horse - Comes with other software.
- Virus - Reproduces itself by attaching to other executable files.
- Worm - Self-reproducing program. Creates copies of itself. Worms that spread using e-mail address books are often called viruses.
- Logic Bomb - Dormant until an event triggers it (Date, user action, random trigger, etc.).
- Ransomware (勒索軟體)
- Human Attack Types
- Social Engineering
- APT (Advanced Persistent Threat)
- Spear Phishing (魚叉式網路釣魚)
- Watering Hole
Prevention & Protection
- Anti-Virus
- Sanitize
- WAF (Web Application Firewall)
- IPS (Intrusion Prevention System)
- IDS (Intrusion-Detection System)
- DLP (Data Loss Prevention)
- Software Firewall
- Project SECURITY – Website Security, Anti-Spam & Firewall
- Static Code Analysis
- AST (Application Security Testing)
- DAST (Dynamic AST 黑箱動態測試)
- SAST (Static AST 白箱源碼檢測)
- IAST (Integrated/Intrinsic/Interactive AST )
- VS (Vulnerability Scanner) / VA (Vulnerability Assessment)
- Open Source
- OpenVAS (Open Vulnerability Assessment System)
- Penetration Test (PT) 滲透測試
- Certification
- CISM (Certified Information Security Manager)
- CISSP (Certified Information Systems Security Professional)
- CEH (Certified Ethical Hacker) / CIH (Certified Incident Handler)
- ECSA (EC-Council Certified Security Analyst) / NSPA (Network Security of Packet Analysis)
- Sandbox - a security mechanism for separating running programs, usually in an effort to mitigate system failures or software vulnerabilities from spreading.
- Open Source: Cuckoo Sandbox
- Commercial: Sandboxie
- CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) – 全自動區分電腦和人類的公開圖靈測試,俗稱驗證碼。
Management & Operation
- SOC (Security Operation Center)
- SIEM (Security Information and Event Management)
- MDM (Enterprise Mobile Device Management)
EMM (Enterprise Mobility Management)- BYOD (Bring Your Own Device)
Regulation / Certification
- GDPR (General Data Protection Regulation) – a regulation in EU law on data protection and privacy for all individuals within the European Union (EU) and the European Economic Area (EEA).
- ISO/IEC 27000-series (also known as the 'ISMS Family of Standards' or 'ISO27K' for short) – comprises information security standards published jointly by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).
- ISMS (Information Security Management System)
- The PDCA Cycle:
- Plan (establishing the ISMS)
- Do (implementing and workings of the ISMS)
- Check (monitoring and review of the ISMS)
- Act (update and improvement of the ISMS)
Anonymity Network
- Tor (The Onion Router)
Integrated Application
Authentication
- Authentication Protocol
- SAML (Security Assertion Markup Language) 2.0
OpenID 2.0→ OpenID Connect 1.0 - a simple identity layer on top of the OAuth 2.0 protocol.- Integration with ..
- uPortal, Liferay, BlueSocket, Moodle, and Google Apps to name a few
- OpenID - Identity Provider
- Google ID (OAuth)
- FaceBook ID
- WeChat ID
- LINE ID
- Authentication Solution
- Open Source:
- CAS SSO v5.1.x (Central Authentication Service, Single Sign-On)
- Commercial Product:
- Microsoft Azure AD Premium (Azure Active Directory Access Control)
- Centrify Identity Service
- Okta Identity and Mobility Management
- OneLogin
- Ping Identity PingOne
- SecureAuth IdP
- PerfectCloud SmartSignin
- JWT (JSON Web Token) 1
– an open, industry standard RFC 7519 method for representing claims securely between two parties.- jwt.io – allows you to decode, verify and generate JWT
- Others
E-Commerce
🔹 Payment
Global Payment Service / Payment Gateway / 第三方支付
- Global
- China
- 支付寶 (中國阿里巴巴集團)
- Taiwan
- 歐付寶 allPay 電子支付 (台灣)
- Reference
🔹 E-Commerce / Logistic / Invoice
E-Commerce, M-Commerce / 金流, 物流 / Shopping Cart 線上購物車套裝模組 / 電子發票模組
- Open Source Solution
- WooCommerce @WordPress – an open source e-commerce plugin for WordPress.
- OpenCart @php/mysql
- Magento @php
- osCommerce @php/mysql
- KonaKart @java
- Commercial Solution
- Solution Provider in Taiwan
- 歐買尬 歐付寶 – 綠界科技 ECPay
- 智冠集團 – 藍新科技 金流服務平台 / ezPay 簡單付 (Mobile App) / 智付寶 Pay2go (已被合併)
- CloudWP – WordPress, WooCommerce 網站優化調整技術服務
- 台灣 E-Invoice 電子發票系統 功能
- 開立
- 申報
- 載具,對獎,歸戶
- 自有帳戶-延伸至行動支付
- Reference
🔹 Digital Marketplace Platform
- Gumroad – a self-publishing digital marketplace platform to sell digital services such as books, memberships, courses and other digital services.
Enterprise Application
- SCM (Supply Chain Management)
- PLM (Product Life-cycle Management)
- CRM (Customer Relationship Management)
- Call Center
- ERP (Enterprise Resource Planning)
- SAP
- Apache OFBiz – a suite of business applications flexible enough to be used across any industry. A common architecture allows developers to easily extend or enhance it to create custom features.
- Odoo – a business management software including CRM, e-commerce, billing, accounting, manufacturing, warehouse, project management, and inventory management.
- eDM / Questionnaire / Survey
- Open Source: PHPList, ActiveCampaign, poMMo, OpenEMM, LimeSurvey, Survey Project
- Reporting
-
- Crystal Report
- SSRS
-
- PMS / PMIS (Project Management Information System)
- OpenProject – a web-based project management system for location-independent team collaboration.
- Calligra Plan (formerly KPlato) – a project management application (part of Calligra Suite) – formerly included with KOffice. It is intended for managing moderately large projects with multiple resources.
SEO / Tracking / AD
- Full Text search / Enterprise Search / Search Platform
- Apache Lucene
- SEO (Search Engine Optimization) for: Google, Bing, Yahoo, Baidu, …
- <title> <meta> <h1> <img alt=“屬性?”>
- Crawler Filter: robots.txt
- HTTPS w/ SSL Certificate
-
- Google Search Console → Sitemap → robots.txt
- Tracking / Analytics Tool
-
- Piwik - Capture Customer Touchpoints Between Desktop, Mobile and Secure Member Areas While Staying Privacy Compliant.
-
- Advertisement
- URL Shortener
- Self-Hosted Open Source
- Polr – a quick, modern, and open-source link shortener. It allows you to host your own URL shortener, to brand your URLs, and to gain control over your data. It's also GPLv2+ licensed.
- YOURLS (Your Own URL Shortener) – a small set of PHP scripts that will allow you to run your own URL shortening service (a la TinyURL or bitly).
- plugin: Bulk Import and Shorten
- Shlink – Shorten URLs and serve them under your own short domain.
- Kutt.it, Lessn More, Wurlie, Z.ips.Me
- Cloud Service
- Goo.gl, Bitly
IoT Platform
🔹 Protocol
- TCP/IP
- WebSocket
- RESTful
- CoAP (Constrained Application Protocol) – CoAP is a service layer protocol that is intended for use in resource-constrained internet devices, such as wireless sensor network nodes.
- MQTT (Message Queuing Telemetry Transport)
– a machine-to-machine (M2M)/“Internet of Things” connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport.- Server / Broker
- Eclipse Mosquitto – An open source MQTT broker
- HiveMQ – Reliable Data Movement for Connected Devices
- Emitter – a real-time communication service for connecting online devices. The Publish-Subscribe messaging API is built for speed and security.
- Client @PC/NB
- MQTTBox
- Client @Android
- Client @iOS
- Multi-Protocol Messaging Platform
- Apache ActiveMQ – the most popular open source, multi-protocol (AMQP / STOMP / MQTT / JMS), Java-based message broker.
- EMQX – Powering the future-proof IoT solutions and enterprise digital transformation through unified “Connect, Move, Process and Analyze” IoT data from edge to cloud to multicloud.
🔹 Platform
- ThingsBoard – Open-source IoT Platform for: Device management, data collection, processing and visualization for your IoT solution.
- ThingSpeak – Data collection in the cloud with advanced data analysis using MATLAB.
- Cisco Jasper: IoT Connectivity Management Platform
- Blynk – a hardware-agnostic IoT platform with white-label mobile apps, private clouds, device management, data analytics, and machine learning.
- Heroku – a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.
- Webhook Center – ?
- Particle
- Temboo
- Dweets – dweet.io - Share your thing- like it ain't no thang.
- freeboard.io – Visualize the Internet of Things. Ridiculously simple dashboards for your devices.
- freeboard – GitHub Source
🔹 Messaging / Message Queue / Broker
- IBM MQ
- Amazon SQS
- Zookeeper
- Mosquitto
🔹 Web Hook
- IFTTT (If This Then That) – a free web-based service to create chains of simple conditional statements, called applets. An applet is triggered by changes that occur within other web services such as Gmail, Facebook, Telegram, Instagram, or Pinterest.
- dweet.io – Ridiculously simple messaging (and alerts) for the IoT.
🔹 Tunnel / Port Forwarding
- ngrok – tunnel local ports to public URLs and inspect traffic.
- serveo.net – Expose local servers to the internet by ssh.
🔹 Tool / Software
- Node-RED (by IBM) – a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
- OBD (On-Board Diagnostic) 車載自動診斷系統
Smart Home / Home Automation
- Connectivity Standard
- Open Source / On-Premise
- Home Assistant (GitHub)– home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
- openHAB (Open Home Automation Bus) – an technology agnostic home automation platform which runs as the center of your smart home!
- Domoticz – a very light weight home automation system that lets you monitor and configure miscellaneous devices.
- Commercial / Cloud
- Others
Personal Assistant
E-Learning
- Online Teaching, Remote Teaching, Distance Teaching, Distance Education, Distance Learning, 遠距教學
- for Teachers
- Google for Education
- for Students
Open Service
Open API
-
- Google Cloud Messaging (GCM) → April 10, 2018, Google has deprecated GCM.
-
- Google Analytics → Google Marketing Platform - Unified Advertising and Analytics
-
-
- Client-side Geocoding: Google Maps JavaScript API documentation
- Server-side Geocoding: HTTP server-side geocoding
-
- E-Maps Server / API / Data
- OSM (OpenStreetMap)
- TomTom
- HERE
- Mapfit
- Others
- Yahoo API
Open Data
- 台灣官方
- 政府資料開放平臺 – https://data.gov.tw/
- 國網中心資料集平台 – https://scidm.nchc.org.tw/dataset
- 內政資料開放平臺 - https://data.moi.gov.tw/
- 臺北市政府資料開放平台 - http://data.taipei/
- 新北市政府資料開放平台 - http://data.ntpc.gov.tw/
- 民生示警公開資料平台 – https://alerts.ncdr.nat.gov.tw/
- 氣象開放資料平臺 – https://opendata.cwb.gov.tw/
- 自動氣象站-氣象觀測資料 – https://opendata.cwb.gov.tw/dataset/observation/O-A0001-001
- 一般天氣預報-台北市天氣小幫手 – https://opendata.cwb.gov.tw/dataset/forecast/F-C0032-009
- 民間團體/企業/學研機構
- Open Data 聯盟 – https://www.opendata4tw.org.tw/
- DataBar 資料交易平台 (觀光資料集入口) – https://www.databar.com.tw/
- 全球
Labeled Dataset
Open Course
- Classes & Certifications
- MOOCs (Massive Open Online Courses) – free online courses available for anyone to enroll.
- edX – Online courses from the world's best universities.
- Udacity - Free Online Classes & Nanodegrees
- Coursera – Online Courses & Credentials by Top Educators.
- Udemy – Udemy provides tools which enable users to create a course, promote it and earn money from student tuition charges.
- PhET Interactive Simulations – a non-profit open educational resource project at the University of Colorado Boulder that creates and hosts explorable explanations.
- HiSKIO –
- Microsoft
- Microsoft 微軟技術捷運 – 創新科技的線上課程
- Microsoft Learning – Computer Training & Certifications
- NVIDIA Deep Learning Institute
- Tutorials & References
- W3Schools – optimized for learning, testing, and training. Examples might be simplified to improve reading and basic understanding.
- w3big -- Web Online tutorials
– Web development and programming language tutorials for HTML, CSS, Javascript, Bootstrap, PHP, MySQL, Python, Java, Ruby, …
- Tutorials Points – RxJS, ggplot2, Python Data Persistence, Caffe2, PyBrain, Python Data Access, H2O, Colab, Theano, Flutter, KNime, Mean.js, Weka, Solidity
- RUNOOB 菜鳥教程– 學的不僅是技術,更是夢想!
- Programiz – Beginner Friendly Tutorials for Programmers: Python, C/C++, Java, Kotlin, Swift, R, DS & Algorithms.
- Linux: Linux命令大全、鳥哥的 Linux 私房菜
Cross-Domain / Interdisciplinary
Data Science
- Methodology
- Community
- Kaggle – an online community of data scientists and machine learners, owned by Google.
- DataFountain, KDD cup
- BI (Business Intelligence) & Data Mining
- IBM SPSS Modeler
- SAS Enterprise Miner
- RapidMiner, Angoss
- Pentaho BI
-
- Defining Properties
- 3V(4V): Volume, Velocity, Variety, (Veracity). ? Value
- Statistical Computing
- R (programming language)
- Python
- …
- Integration Solution
- KNIME (Konstanz Information Miner) – an open source data analytics, reporting and integration platform.
- IBM Watson Analytics
- Data Visualization
- JavaScript
- Chart.js – Simple yet flexible JavaScript charting library for the modern web
- D3.js – Data-Driven Documents based on data manipulation documentation. D3 combines powerful visualization components with data-driven DOM manipulation methods.
- Observable – the magic notebook for exploring data and thinking with code.
- Apache Echarts – an enterprise-level chart tool from the data visualization team of Baidu. A Declarative Framework for Rapid Construction of Web-based Visualization. It runs smoothly on PCs and mobile devices, and it is compatible with most current browsers.
- HighCharts – a chart library written in pure JavaScript that makes it easy and convenient for users to add interactive charts to web applications.
- JSON
- Vega – a set of interactive graphical grammars that define the mapping rules from data to graphic, common interaction grammars, and common graphical elements. Users can freely combine Vega grammars to build a variety of charts.
- Python
- Matplotlib – a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
- pyecharts– A Python Echarts Plotting Library.
- Chart: 30+ kinds of charts. Map: 300+ Chinese cities / 200+ countries and regions. Platforms: Pure Python / Jupyter Notebook / Web Framework.
- Command-line
- Gnuplot – a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other platforms.
- Proprietary Language
- MATLAB (MATrix LABoratory) – a multi-paradigm numerical computing environment and proprietary programming language developed by MathWorks.
- Simulink – a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries.
- Interactive Map (GIS)
- JavaScript
- Leaflet – a JavaScript library of interactive maps for mobile devices. It has all the mapping features that most developers need.
- OpenLayers – a high-performance, feature-packed library for all your mapping needs.
AI / Machine Learning
🔹 AI Theory
-
- Convolutional Neural Network (CNN, or ConvNet) – ideal for images and video processing.
- Recurrent Neural Network (RNN) – ideal for text and speech analysis.
- Deep neural network (DNN) – a neural network with a certain level of complexity, a neural network with more than two layers. Deep neural networks use sophisticated mathematical modeling to process data in complex ways.
-
- Algorithm
- Classification 分類
- SVM (Support Vector Machine)
- Decision Tree
- KNN (K-Nearest Neighbor)
- Clustering 分群
- K-Means
- Learning Paradigms
- Supervised Learning (用於分類)
- MLP (Multi-Layer Perceptron 多層感知器)
- Unsupervised Learning (用於分群)
- GAN (Generative Adversarial Network)
- DCGAN, WGAN
- Semi-Supervised Learning
- Reinforcement Learning
- Self-Supervised Representation Learning
- Shallow AutoEncoder Learning
- Training / Predict
-
- Activation Functions — linear, sigmoid, hyperbolic tangent, even step-wise.
- Forecasting Model
- 神經網路
- Feedforward, Convolutional, Recurrent
- 組合樹
- Random Forests, Boosted Trees, Decision Trees
- 支援向量機 (SVM)
- Scalar Regression, Multiclass Classification
- 正規化線性模型
- Linear Regression, Logistic Regression
- 特徵工程
- Sparse Vectorization, Dense Vectorization, Categorical Processing
- 管道模型
- Sequentially Chained Models
🔹 AI Application
-
- Machine Translation
- NLP (Natural Language Processing)
- 語音合成 Speech / Lip Synchronization
- NLG (Natural Language Generation)
-
- Algorithms:
- FITAMOS (Face/Image/Text/Audio/Motion/Object/Scene)
- Library:
- OpenCV (Open Source Computer Vision) – a library of programming functions mainly aimed at real-time computer vision for computer vision and machine learning.
- PCL (Point Cloud Library) – an open-source library of algorithms for point cloud processing tasks and 3D geometry processing, such as occur in three-dimensional computer vision.
- RPA (Robotic Process Automation) – an emerging form of business process automation technology based on the notion of software robots or artificial intelligence (AI) workers.
- Facial Recognition
- Open Source
- OpenFace
- FaceNet
- deepFace – a lightweight face recognition and facial attribute analysis (age, gender, emotion and race) framework for python. It is a hybrid face recognition framework wrapping state-of-the-art models: VGG-Face, Google FaceNet, OpenFace, Facebook DeepFace, DeepID, ArcFace and Dlib. The library is mainly based on Keras and TensorFlow.
- Commercial
- Facebook DeepFace
- Face Fake
- DeepFake
- AOI (Automated Optical Inspection) 自動光學檢測 / 視覺檢測輔助系統
- IVA (Intelligent Video Analytics)
- LPR (License Plate Recognition) / ALPR (Automatic License-Plate Recognition) / ANPR 自動車牌辨識
- Car Identification System
- License Plate Detection & Recognition
- Chess / Game
- DeepMind: AlphaGo Zero
🔹 AI Accelerator
- NPU (Neural Processing Unit)
- GPU (Graphics Processing Units)
- TPU (Tensor Processing Unit) - an AI accelerator application-specific integrated circuit (ASIC) developed by Google specifically for neural network machine learning.
- FPGA (Field-Programmable Gate Arrays)
- NCS (Neural Compute Stick) / VPU (Vision Processor Unit)
- Google AIY Vision Kit
🔹 AI Framework / Library
- Core ML (by Apple) – integrate trained machine learning models into app.
- TensorFlow - an open-source software library for dataflow programming across a range of tasks. It is a symbolic math library, and also used for machine learning applications such as neural networks.
- Torch – an open source machine learning library, a scientific computing framework, and a script language based on the Lua programming language.
- PyTorch – an open source machine learning library for Python, based on Torch. Tensors and Dynamic neural networks in Python with strong GPU acceleration.
- YOLO (You Only Look Once) – a system for detecting objects on the Pascal VOC 2012 dataset. It can detect the 20 Pascal object classes.
- CAFFE (Convolutional Architecture for Fast Feature Embedding) – a deep learning framework, written in C++, with a Python interface.
- Netscope – a web-based tool for visualizing neural network architectures (or technically, any directed acyclic graph). It currently supports Caffe's prototxt format.
- Keras – a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.
- Scikit-Learn – a free software machine learning library for Python.
- Onnx (Open Neural Network Exchange) – an open format to represent deep learning models.
- Pandas (Panel Data) – a software library (Python) for data manipulation and analysis. It offers data structures and operations for manipulating numerical tables and time series.
- Theano – a numerical computation library for Python.
- Orange – Open source machine learning and data visualization for novice and expert. Interactive data analysis workflows with a large toolbox.
- Selenium – a portable software-testing framework for web applications. (w/ IDE & WebDriver)
- XGBoost
- LIBSVM
- JavaScript Library
- P5.js ~ a friendly tool for learning to code and make art.
- ML5.js ~ Friendly Machine Learning for the Web
🔹 AI Cloud Service
- Research
- OpenAI – is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity.
- OpenAI API – Build next-gen apps with OpenAI’s powerful models.
- Speech Recognition & Translation
- General ChatBot
- Business ChatBot
- Text to Image AI Generator
- 美圖秀秀
- Collaborative (協作) AI Image Generator
- Artbreeder (Ganbreeder) – brings creativity and collaboration
- AI Writer
Virtual Currency
- Physical
- Commodity Money, Coupon
- Digital Currency
- Cryptocurrency (Crypto Currency) – by Scrypt Algorithm (Miner)
- Litecoin (LTC) 萊特幣, Dogecoin 多吉幣/狗狗幣/旺旺幣, Auroracoin 極光幣, Mintcoin 薄荷幣, FeatherCoin (FTC) 羽毛幣, 懸賞幣, 西班牙幣, 黑幣, 紐約幣, …
- Non-Cryptocurrency
- Internet coupon
- ICO (Initial Coin Offerings 首次代幣發行)
Blockchain
-
- 定義
- A continuously growing list of records, called blocks, which are linked and secured using cryptography.
- Each block typically contains a hash pointer as a link to a previous block, a timestamp and transaction data.
- 特性
- 不可竄改
- 夠高夠難的共識決
- 時間戳記 (TimeStamp)
- 點對點 P2P
- 去中心化(或者說多中心化)
- 應用
- Distributed Ledger Technology
- 病例、生產履歷
FinTech
- Robo-Advisor / Program Trading
- 股市/期貨 程式自動下單
Metaverse 元宇宙
Virtual Reality
- VR (Virtual Reality) 虛擬實境 - VR replaces your whole worldview with a simulation in some way or another.
- AR (Augmented Reality) 擴增實境 - AR is any sort of computer-based system that overlays data on top of your current view of the world, while continuing to let you see the world around you.
- MR (Mixed Reality) 混合實境 - MR seamlessly integrates digital objects into your world making it look as if they are really there.
- SR (Substitutional Reality) 替代實境
- Editor
- MAKAR – AR/VR Editor
- 3D Projection
- Holographic Projection 全息投影技術
- front-projected holographic display
- Pepper's Ghost 佩珀爾幻象
- 邊緣消隱
Custom Virtual Space
- Video Conference
- Minecraft – In Minecraft, players explore a blocky, procedurally generated 3D world with virtually infinite terrain, and may discover and extract raw materials, craft tools and items, and build structures, earthworks and simple machines.
- Game
- Gather Town – Centered around fully customizable spaces, Gather makes spending time with your communities just as easy as real life
Multimedia
- Publishing and Typesetting
- Commercial
- Open Source
- DAW (Digital Audio Workstation)
- Open Source
- HDRI (High-Dynamic-Range Imaging)
- Gallery: https://hdrihaven.com/|HDRI Haven
- Raster Photo/Image Editor
- Commercial
- Open Source
- XnView – Image viewer, resizer, batch image converter and more
- GIMP (GNU Image Manipulation Program) – a free and open-source raster graphics editor[5] used for image manipulation (retouching) and image editing, free-form drawing, transcoding between different image file formats, and more specialized tasks.
- Vector Graphics Editor
- Commercial
- Pixlr editor, Pixlr x – free in-browser editor
- Open Source
- Inkscape – a professional vector graphics editor for Linux, Windows and macOS. It's free and open source.
- BoxySVG – a free tool for creating scalable vector graphic files that runs as an extension in Google Chrome.
- Vecteezy – a free sharp looking in-browser Illustrator alternative for stylish designs
- Vectr – a slimline vector editor available for your browser or desktop
- SVG-Edit – A straightforward Illustrator alternative for web developers
- Photo-to-Video
- Video / Streaming Editing
- Commercial
- Open Source 1
- OBS Studio – Open Broadcaster Software, a free and open-source cross-platform streaming and recording program built with Qt and maintained by the OBS Project.
-
- HLS (HTTP Live Streaming)
- RTMP (Real Time Message Protocol)
- RTSP (Real-Time Stream Protocol)
- WebRTC (Web Real-Time Communication)
- Video Broadcasting Services
- IP Camera
- Android – IP 攝像頭、 Wireless webcam for PC - IP Camera
- iOS – IP Camera Lite、 IP Camera Pro
- As WebCam @ Windows
- IP Camera Bridge – A MJPEG video streaming and virtual microphone driver for Windows which can make your Windows applications using IP Camera as WebCam with audio input.
CAD / 3D Modeling / Animation
- CAD (Computer-Aided Design)
- Commercial
- Fusion 360 – a powerful 3D CAD, CAM, and CAE platform.
- DraftSight
- Solid Edge – from Siemens, is a CAD solid modeling platform that uses parametric functions.
- BricsCAD – is best known for having rich features in both 2D drawing and 3D modeling.
- ZBrushCoreMini – Enjoy a true ZBrush experience as you take your first steps into the exciting world of digital sculpting with ZBrushCoreMini… completely free!
- Open Source
- FreeCAD – a free, open-source parametric CAD program offering the capability to 3D design objects of almost any size.
- LibreCAD – a free, high-quality open-source 2D modeling program that grew out of QCAD.
- NanoCAD – a CAD program that is powerful and DWG-compatible. (Free for Trial)
- OpenSCAD
- Website SaaS
- SketchUp – Formerly known as Google SketchUp, this 3D modeling platform is an excellent choice for both enthusiastic hobbyists and CAD experts.
- Autodesk Tinkercad – an easy-to-use 3D CAD design tool. Quickly turn your idea into a CAD model for a 3D printer.
- Onshape – the product development platform that combines CAD, PDM, collaboration and analytics tools in the cloud.
- Home Design & Interior Design
- Planner 5d – An advanced and easy-to-use 2D/3D home design tool.
- 3D Graphics Engine / API
- 3D Modeling Editor / Animation and Rendering Software
- Autodesk 3DS MAX – helps you create massive worlds in games, stunning scenes for design visualization, and engaging virtual reality experiences.
- Autodesk MAYA – provides an integrated, powerful toolset. Use it for animation, environments, motion graphics, virtual reality, and character creation.
- Maxon Cinema 4D (C4D) – the fastest and easiest-to-use 3D animation solution.
- Blender
– a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D-printed models, motion graphics, interactive 3D applications, virtual reality, and, formerly, video games.
- Blender Artists Community –The home of the Blender 3D community.
- 3D Modeling Viewer / Characters Download
- 3D Community / Library / Files Download
- SketchUp 3D Warehouse – an open library in which SketchUp users may upload and download 3D models to share.
- MakerBot Thingiverse – a universe of things. Download our files and build them with your lasercutter, 3D printer, or CNC.
- Autodesk LIBRARY.IO – Thousands of Packages and Libraries available for free.
- 3D Scanner
- Hardware:
- Microsoft Kinect – a line of motion sensing input devices.
- Software:
- SCANECT – The Easiest Way To 3D Scan With the Structure Sensor and Kinect-like 3D Sensors.
- 3D Printing Software
- Ultimaker Cura – Powerful, easy-to-use 3D printing software.
- 3D Printer
-
- FDM (Fused Deposition Modeling,熔融沉積)
- 機型: 箱型機、單臂型、龍門型、三角洲型
- 線材: 列印溫度 200度
- PLA 聚乳酸 (可分解, 不回收)
- ABS 丙烯晴 丁二烯 苯乙烯共聚物 (味道不好,可回收)
- SLA (Stereo Lithography Apparatus,光敏樹脂選擇性固化)
- SLS (Selective Laser Sintering,粉末材料選擇性雷射燒結)
- 品牌/賣場
-
- Laser Cutting & Engraving
- MakerCase – Easy Laser Cut Case Design
Education
- STEAM fields – Science, Technology, Engineering, Art, and Mathematics.
- MOOCs – Massive Open Online Courses
- Moodle (Modular Object-Oriented Dynamic Learning Environment) –
- Moodle LMS – The world’s most customisable and trusted open source learning management system