MagicLen Me

Xin-Rong Li

(Ron Li)

Born in 1993, I have been learning programming languages since 2008 and have expertise in developing Android applications, JavaFX applications, specialized tools, websites and web services. Moreover, I have become a heavy GNU/Linux user these days. In 2014, I established magiclen.org to share my knowledge and experience, and have written more than a thousand of articles related to various subjects.


Expe­rience

Webmaster of magiclen.org

magiclen.org

  1. MagicLen-related software development and maintenance
  2. Writing articles on magiclen.org
  3. Providing solutions (mainly computer-related) for visitors
  4. Business contact

2014 – Present

Substitute Military Service at Taiwan Taoyuan International Airport

Aviation Police Bureau Security Agent

  1. Guiding passengers and checking passengers' baggage in order to ensure aviation safety
  2. Developing and maintaining the internal software systems

2015 – 2016

Webmaster of it-easy.tw

it-easy.tw

  1. it-easy.tw-related software development and maintenance
  2. Writing articles on it-easy.tw
  3. Providing solutions (mainly computer-related) for visitors

2008 – 2012

Education

National Taiwan University of Science and Technology

Bachelor's Degree, Computer Science & Information Engineering

Overall GPA is 3.89 / 4.00. Two certificates of achievement are received when I was in the university.

2011 – 2015

National Taichung Industrial High School

Department Of Computer Science

I used to rank first or second in the class and became a role model in the school in 2009, and finally got 674 points on Joint College Entrance Examination in 2011 and matriculated at the department of computer science of National Taiwan University of Science and Technology as the top one.

2008 – 2011

Certifi­cations

TOEIC 860 (L: 445, R: 415)

Educational Testing Service (ETS)

19015127

2019

LPIC-2

Linux Professional Institute (LPI)

msa48y42xg

Validate

Open Image

2019

Oracle Certified Professional, Java SE 8 Programmer

Oracle

227127085OCPJSE8

Validate

Open Image

2016

Oracle Certified Associate, Java SE 8 Programmer

Oracle

227127085OCAJSE8

Validate

Open Image

2016

LPIC-1

Linux Professional Institute (LPI)

3fyc8948ab

Validate

Open Image

2016

ITE Linux System Operation IT Expert

Computer Skills Foundation (CSF)

321160300000030

2016

TQC+ Java Programming Expert

Computer Skills Foundation (CSF)

111140600000

2014

Level B Technician for Computer Hardware Fabrication

Skill Evaluation Center of Workforce Development Agency

120-021063

2011

Level C Technician for Computer Hardware Fabrication

Skill Evaluation Center of Workforce Development Agency

120-173814

2010

GEPT (General English Proficiency Test) Elementary

The Language Training & Testing Center (LTTC)

E476009

2010

Level C Technician for Web Page Design

Skill Evaluation Center of Workforce Development Agency

173-103670

2009

Skills

Proficiency of Programming Languages

Color Explanation:

  • Blue: I'm very familiar with these programming languages and can use them to build projects from nothing to fulfill many kinds of functions efficiently.
  • Green: I'm kind of familiar with these programming languages but I don't have much work experience with them. Although eventually I can always use them to reach goals, it may take a little time and the performance may not be so efficient.
  • Yellow: I can use them to attain a sufficient result, but I may need to spend a lot of time on searching their documentation.
  • Red: I can modify existing projects implemented by these programming languages, or use them to finish simple works about computing or controlling.

Proficiency of Operating Systems

Color Explanation:

  • Blue: I can use these operating systems very fluently and know how to make, set up, manage and maintain services on them.
  • Green: I can use these operating systems fluently and write programs for them.
  • Yellow: I can use them to finish most of the office work.
  • Red: I seldom use these operating systems.

Web Frameworks & Libraries & Packages
  • PHP: WordPress, phpBB
  • Node.js: Webpack, TypeScript, Express, AIO
  • Rust: Rocket
  • Golang: Echo
  • Front-end websites: jQuery, Bootstrap, Vue.js, Pug, Handlebars, Tera, Stylus, Sass
  • Web Servers: Nginx, Apache httpd
Databases
  • SQL: MySQL, SQLite
  • NoSQL: MongoDB, Redis
Natural Languages
  • Mandarin (native)
  • English (high-intermediate)
Other Skills
  • Computer hardware fabrication
  • Electronic components soldering
  • Basic circuit design
  • Basic 3D computer graphics and animation
  • Basic computer music composition

Interests

When I was a teenager, I liked to ride a bicycle through towns and over hills with a digital camera. I could travel over 200 kilometers in a single day and enjoy the process even without company. During the warmer months here in Taiwan, I used to ride my bike very early in the morning to a high mountain which is about 2500 meters above sea level and stay on the top of it until the afternoon because the air was fresh and the wind was cool there. Also, playing in the mountain stream with friends was definitely fun.

However, I have grown out of bicycle touring. Now, when I am on holiday, I just go hiking with my feet and my camera.

If the weather is not suitable for outdoor activities, I usually read suspense novels. I also write novels when I have a big amount of leisure time.


Projects

Image Resizer
Rust
It helps you resize or just shrink images and sharpen them appropriately.

View The Article

2020
rocket-recaptcha-v3
Rust
This crate can help you use reCAPTCHA v3 (v2 is backward compatible) in your Rocket web application.

View The Article

2019
user-agent-parser
Rust
A parser to get the product, OS, device, cpu, and engine information from a user agent, inspired by https://github.com/faisalman/ua-parser-js and https://github.com/ua-parser/uap-core

View The Article

2019
educe
Rust
This crate provides procedural macros to help you implement Rust-built-in traits quickly.

View The Article

2019
debug-helper
Rust
This crate provides declarative macros to help you implement the Debug trait manually.

View The Article

2019
benchmarking
Rust
This crate can be used to execute something and measure the execution time. It does not output anything to screens and filesystems.

View The Article

2019
Favicon Generator
Rust
It helps you generate favicons with different formats and sizes.

View The Article

2019
rc-u8-reader
Rust
This crate provides RcU8Reader, RcRefCellU8Reader, ArcU8Reader and ArcMutexU8Reader structures to wrap Rc<T>, Rc<RefCell<T>>, Arc<T> and Arc<Mutex<T>> respectively where T is implemented AsRef<u8> in order to let them have the Read trait.

View The Article

2019
rocket-include-tera
Rust
This is a crate which provides macros tera_resources_initialize! and tera_response! to statically include Tera files from your Rust project and make them be the HTTP response sources quickly.

View The Article

2019
M Prober
Rust
JS
This program aims to collect Linux system information including hostname, kernel version, uptime, RTC time, load average, CPU, memory, network interfaces and block devices. It can be used not only as a normal CLI tool, but also a web application with a front-end webpage and useful HTTP APIs.

View The Article

2019
rocket-simple-authorization
Rust
This crate provides a request guard builder used for authorization.

View The Article

2019
Image Interlacer
Rust
It helps you interlace an image or multiple images for web-page usage.

View The Article

2019
starts-ends-with-caseless
Rust
This crate provides the StartsWithCaseless trait and the EndsWithCaseless trait to extend types which implement AsRef<str> in order to do starts_with and ends_with case-insensitively.

View The Article

2019
cidr-utils
Rust
This crate provides data structures and functions to deal with IPv4 CIDRs and IPv6 CIDRs.

View The Article

2019
boyer-moore-magiclen
Rust
This crate can be used to search substrings in a string or search any sub-sequences in any sequence by using boyer-moore-magiclen (which is sometimes faster than boyer-moore and boyer-moore-horspool).

View The Article

2019
scanner-rust
Rust
This crate provides a Java-like Scanner which can parse primitive types and strings using UTF-8.

View The Article

2019
bulls-and-cows
Rust
This crate provides a framework for building bulls-and-cows games (1A2B) for any data type and any stages.

View The Article

2019
zbar-rust
Rust
High-level and low-level ZBar binding for the Rust language.

View The Article

2018
XCompress
Rust
XCompress is a free file archiver utility on Linux, providing multi-format archiving to and extracting from ZIP, Z, GZIP, BZIP2, LZ, XZ, LZMA, 7ZIP, TAR, RAR and ZSTD.

View The Article

2018
whois-rust
Rust
This is a WHOIS client library for Rust, inspired by https://github.com/hjr265/node-whois

View The Article

2018
vcard
Rust
A pure Rust implementation of vCard based on RFC 6350.

View The Article

2018
validators
Rust
This crate provides many validators for validating data from users and modeling them to structs without much extra effort.

View The Article

2018
url-prefix
Rust
This crate can be used to create URL prefix strings by inputting a protocol, a domain, a port number and a path.

View The Article

2018
tw2s
Rust
A simple tool for converting Traditional Chinese(TW) to Simple Chinese.

View The Article

2018
synchronized-writer
Rust
A tiny implement for synchronously writing data.

View The Article

2018
slash-formatter
Rust
This crate provides functions to deal with slashes and backslashes in strings.

View The Article

2018
Simple SSL with ACME and CloudFlare
Rust
Simple SSL with ACME and CloudFlare is a tool to simply apply SSL certificates by using OpenSSL and ACME via CloudFlare DNS.

View The Article

2018
ShortCrypt
Rust
JS
ShortCrypt is a very simple encryption library, which aims to encrypt any data into something random at first glance. Even if these data are similar, the ciphers are still pretty different. The most important thing is that a cipher is only 4 bits larger than its plaintext so that it is suitable for data used in an URL or a QR Code. Besides these, it is also an ideal candidate for serial number generation.

View The Article

2018
s2tw
Rust
A simple tool for converting Simple Chinese to Traditional Chinese(TW).

View The Article

2018
rocket-raw-response
Rust
This crate provides a response struct used for responding raw data.

View The Article

2018
rocket-multipart-form-data
Rust
This crate provides a multipart parser for the Rocket framework.

View The Article

2018
rocket-mongo-file-center-raw-response
Rust
This crate provides a response struct used for responding raw data from from the File Center on MongoDB with Etag cache.

View The Article

2018
rocket-mongo-file-center-download-response
Rust
This crate provides a response struct used for client downloading from the File Center on MongoDB.

View The Article

2018
rocket-json-response
Rust
This is a crate which provides JSONResponse and JSONResponseWithoutData structs to response JSON format data with an additional code integer value.

View The Article

2018
rocket-include-static-resources
Rust
This is a crate which provides macros static_resources_initialize! and static_response! to statically include files from your Rust project and make them be the HTTP response sources quickly.

View The Article

2018
rocket-include-handlebars
Rust
This is a crate which provides macros handlebars_resources_initialize! and handlebars_response! to statically include HBS (Handlebars) files from your Rust project and make them be the HTTP response sources quickly.

View The Article

2018
rocket-etag-if-none-match
Rust
This crate provides a request guard used for getting if-none-match header.

View The Article

2018
rocket-etagged-raw-response
Rust
This crate provides a response struct used for responding raw data with Etag cache.

View The Article

2018
rocket-download-response
Rust
This crate provides a response struct used for client downloading.

View The Article

2018
rocket-client-addr
Rust
This crate provides two request guards used for getting an IP address from a client.

View The Article

2018
rocket-cache-response
Rust
This crate provides a response struct used for HTTP cache control.

View The Article

2018
rocket-accept-language
Rust
This crate provides a request guard used for getting the accept-language header.

View The Article

2018
rc-writer
Rust
A tiny implement for writing data to a reference counted instance.

View The Article

2018
random-pick
Rust
Pick an element or elements from a slice or slices randomly by given weights.

View The Article

2018
random-integer
Rust
Generate a random integer between two integer numbers (including the two integer numbers).

View The Article

2018
qrcode-generator
Rust
This crate provides functions to generate QR Code matrices and images in RAW, PNG and SVG formats.

View The Article

2018
pipe-logger-lib
Rust
A library for storing, rotating, compressing process logs.

View The Article

2018
Pipe Logger
Rust
A tool for storing, rotating, compressing process logs.

View The Article

2018
path-dedot
Rust
This is a library for extending Path and PathBuf in order to parse the path which contains dots.

View The Article

2018
path-absolutize
Rust
This is a library for extending Path and PathBuf in order to get an absolute path and remove the containing dots.

View The Article

2018
passwords
Rust
This crate provides useful tools to generate multiple readable passwords, as well as analyze and score them.

View The Article

2018
opencc-rust
Rust
Open Chinese Convert (OpenCC) binding for the Rust language for conversion between Traditional Chinese and Simplified Chinese.

View The Article

2018
number-as
Rust
Extend primitive number types to make them have a number_as method.

View The Article

2018
mongo-file-center
Rust
This crate aims to build an easy-to-use and no-redundant file storage based on MongoDB.

View The Article

2018
Markdown to HTML Converter
Rust
Markdown to HTML Converter is a free tool for converting a Markdown file to a single HTML file with built-in CSS and JS.

View The Article

2018
map-to-javascript-html
Rust
This is a library for serializing a (hash) map to JavaScript code in HTML, usually for dynamically generating strings on web pages.

View The Article

2018
leveled-hash-map
Rust
LeveledHashMap is a structure to separate values into different levels with keys. Every key-value entry which is not at the top level has a parent key at the superior level. Keys at the same level are unique, no matter what parent keys they have.

View The Article

2018
lazy-static-include
Rust

This crate provides lazy_static_include_bytes and lazy_static_include_str macros to replace include_bytes and include_str macros.

lazy_static_include_bytes and lazy_static_include_str macros include data from files into the compiled executable binary file only when you are using the release profile. Be careful when you distribute your program.

View The Article

2018
json-gettext
Rust
This is a library for getting text from JSON usually for internationalization.

View The Article

2018
image-convert
Rust
This crate is a high level library using MagickWand (ImageMagick) for image identification, conversion, interlacing and high quality resizing.

View The Article

2018
html-minifier
Rust
This tool can help you generate and minify your HTML code at the same time. It also supports to minify JS and CSS in <style>, <script> elements, and ignores the minification of <pre>, <code> and <textarea> elements.

View The Article

2018
FFmpeg Screen Recorder
Rust
This program is a gadget which helps you use FFmpeg to record your screen on Linux. The video record can be saved as a file, or be streamed via RTMP.

View The Article

2018
enum-ordinalize
Rust
This crates provides create_ordinalized_enum macro to let enums can not only get its variants' ordinal but also be constructed from an ordinal.

View The Article

2018
easy-http-request
Rust
Easy to send HTTP/HTTPS requests.

View The Article

2018
crc-any
Rust
To compute CRC values by providing the length of bits, expression, reflection, an initial value and a final xor value. It has many built-in CRC functions.

View The Article

2018
chinese-number
Rust
Convert primitive numbers to Chinese numbers, or parse Chinese numbers to primitive numbers.

View The Article

2018
chinese-lunisolar-calendar
Rust
This library allows you to convert a date between the Lunisolar Calendar and the Solar Calendar, and to compute the weight of Ba Zi(八字). Moreover, it can convert a date to a Chinese text string and parse a Chinese text string to a date in Simple Chinese or Traditional Chinese.

View The Article

2018
byte-unit
Rust
A library for interaction with units of bytes.

View The Article

2018
bc
Rust
Use bc in the Rust Programming Language.

View The Article

2018
base64-url
Rust
Base64 encode, decode, escape and unescape for URL applications.

View The Article

2018
base64-stream
Rust
To encode/decode large data with the standard Base64 encoding.

View The Article

2018
alphanumeric-sort
Rust
This crate can help you sort order for files and folders whose names contain numerals.

View The Article

2018
node-qr-code
C
JS
Encode QR Code by using N-API on Node.js.

View The Article

2017
node-meminfo
C
JS
Get memory information on Node.js on Linux.

View The Article

2017
node-int64
C
JS
Use N-API to compute 64 bits integers on Node.js.

View The Article

2017
node-sysconf
C
JS
Get configurable system variables on Node.js.

View The Article

2017
node-crc
C
JS
To compute CRC values on Node.js by providing the length of bits, expression, reflection, an initial value and a final xor value. It has built-in CRC-8-ATM, CRC-8-CDMA, CRC-16-IBM, CRC16-CCITT, CRC-32-IEEE, CRC-32-C, CRC-64-ISO and CRC-64-ECMA functions.

View The Article

2017
fast-string-search
C
JS
Fast search substrings in a string on Node.js by using N-API and boyer-moore-magiclen.

View The Article

2017
node-int32
C
JS
Use N-API to compute 32 bits integers on Node.js. Preserve the property of overflowing.

View The Article

2017
node-stringbuilder
C
JS
An easy and fast in-memory string builder for Node.js.

View The Article

2017
AIO
JS
Golang
C/C++
Bash

AIO is a full-stack web framework for Node.js. The name of AIO means all-in-one and asynchronous I/O. It is based on the Express framework with many additional features. It encourages programmers to use async/await instead of callback or Promise in order to make the code more readable and more understandable.

For front end, it integrates Handlebars, Pug, Vue and Markdown as its HTML template engines, and it uses Stylus to compile CSS. It supports Babel to compile ES6+ JavaScript code to ES5 code automatically in order to make it executable on most of web browsers. It also supports Browsersync to let programmers who develop web pages be more efficient. There are some document viewers built-in in AIO to allow clients to view PDF or JSON documents on the web browsers and some built-in resources such as the jQuery library.

For back end, it supports not only HTTP/HTTPS 1.x but also HTTPS 2.0 and has a lot of high performance (programs written in C/C++/Golang) utilities (modules) for managing different situations. Also, it is easy to develop RESTful APIs with documents and tests on AIO. It has automatic cache systems and protection measures. For back-end management, it provides a log system and an elegant way to write CLI scripts with existing programs (libraries, modules, data models).

2017
EPC Master
Java
EPC Master is an EPC management system that can help users deal with huge EPC codes and bind them with other numbers.

Open Image

2017
URL Express
Java
URL Express is a JavaFX application which uses MagicURLNetwork to make URL connections. You can easily create a request (which means you can set the method, headers, parameters for that request) for a URL resource. The requests you created are able to be saved to files and you can load them back anytime. This is very useful for testing RESTful APIs (or http/https APIs).

View The Article

2017
Crypt Tool
Java
Crypt Tool is a JavaFX application which uses MagicCrypt to encrypt/decrypt text and files using DES and AES encryption algorithm.

View The Article

2016
Image Resizer Light
Java
Image Resizer Light is a JavaFX application which can load different images, resize these images and convert them into JPEG files in batches. When Image Resizer Light shrinks an image, it can also sharpen that image appropriately.

View The Article

2016
Words Transformer FX
Java
Words Transformer FX is a JavaFX application. It is a simple tool that you can easily establish your database to pair words together. You may use this application to translate texts from one language into another language and to make sure that your words in your context are consistent.

View The Article

2016
Five Chess X
Java
Five Chess X is a JavaFX application which is a single computer game of gobang. It supports the rules of Renju and also has a strong AI.

View The Article

Open Video

2016
MagicRandom
Java
MagicRandom is a Java library for producing random data. It is very convenient to get a random number or numbers array in a range and to pick one element from an array randomly.

View The Article

2016
Aviation Police Bureau Dangerous Regulations
PHP
JS
Java
In order to help police perform their security duties efficiently and communicate with someone who don't speak Chinese or English, the system can search for the newest regulations by keywords on smartphones, tablets and computers.
2016
Ant Text Creator
Java
You can convert any text to ant text or convert any ant text to original text.

View The Article

2016
Text to Speech to MP3
JS
Java
It can load a CVS file, and produce speeches of the text in the CVS file, and then use LAME encoder to convert them into MP3 format to save.

Open Image

2016
ImageDifferencer
Java
ImageDifferencer is a Java program which can compute the difference between two images. It's a very simple implementation, which only has command line interface.

View The Article

2016
MagicImage
Java
MagicImage is a Java library for image processing. It can support many formats of images in Java programs and provide common functions to make adjustments to the image in post. After you finish adjusting your images, you can export them to many formats, too.

View The Article

2016
Text Hider
Java
You can quickly hide any text into another text composed of A-Z characters or recover it by String Hider.

View The Article

2016
Chromium Downloader FX
Java
Chromium Downloader FX is a JavaFX application, which can get the latest version number of Chromium and download it in a fast way.

View The Article

2015
PlayingCardFX
Java
PlayingCardFX is a JavaFX application, which uses native canvas to draw playing cards programmatically. If you want to implement some card games, you can check out this application to help you do that.

View The Article

2015
ChineseCalendarConverter
Java
Chinese Calendar Converter is a JavaFX application, which uses Java Chinese Calendar to convert date between Gregorian calendar(also called Western calendar) and Chinese calendar in a fast way.

View The Article

2015
PageFaultAlgorithm
Java
PageFaultAlgorithm is a Java program which can simulate memory page replacement. It's a very simple implementation, which only has command line interface.

View The Article

2015
MsonFrame
Java
MsonFrame is a JavaFX application, which used Mson to convert JSON formatted strings to XML formatted strings, and to convert XML formatted strings back to SON formatted strings. More over, if you think your JSON formatted strings is not instinctive, you can use this application to help you format the strings with a pretty form.

View The Article

2015
FFmpeg CLI
Java
Bash
C
This is an application which can help you edit audio and video by using FFmpeg with Command Line Interface on Android devices.

View The Article

Open Video

2015
MagicLen
Java
Rust
Publish a wide variety of original articles, including programming languages, applications of websites, introduce of software and hardware, operating system, travel, interview, brainstorming problems, literature, experience, and works.

View The Article

Open Video

2015
MagicCommand
Java
MagicCommand is a Java library which is used for running any programs by commands.

View The Article

2015
IP Viewer
Java
Rust
See your public IP and test the speed and stability of your network connection in an easy way.

View The Article

2015
FetchIt - Socket File Transfer
Java
PHP
Obj-C
C
FetchIt aims to provide a convenience user interface, which allows users to finish all the settings of the files transferring quickly(within one minute). Moreover, it even has a PC version, thus, The fast files exchange between Android and Android or Android and PC is not impossible anymore! For MAC user, it has MAC OS and iOS version, too!
2015
Taiwan Low Cost Carrier Community
Java
PHP
It provides information about budget airlines from a Facebook page, TaiwanLCC. This application can collect data and rearrange them on the screen. In order to promote the society of passengers, it also supports one-to-one, one-to-many and many-to-many chat rooms.

Open Image

2014
Easy Barcode Scanner
Java
C
Easy Barcode Scanner is a simple barcode scanner based on zBar Reader. The zBar Reader is implemented by C code so that it has high performance. With zBar, Easy Barcode Scanner can support QR Code, EAN-8, EAN-13, UPC-E, UPC-A, ISBN-10, ISBN-13, Interleaved 2 of 5, DataBar, DataBar Expanded, Codabar, Code 39, Code 93、Code 128 and PDF417. In addition, Data Matrix is also supported via libdtmx.

View The Article

2014
The Best MP3 Voice Recorder
Java
C
The Best MP3 Voice Recorder is a very simple voice recorder. You don't need to do any settings. This application can help you record sound and music from your microphone and store them into a MP3 file with the best quality (320 kbps) or the very nearly best quality (~256kbps).

View The Article

Open Video

2014
MagicQRCode
Java
MagicQRCode is a Java library used for generating QR Code. It can be easily used in JavaFX applications and Android applications.

View The Article

2014
MagicCrypt
Java
PHP
JS
Rust
MagicCrypt is a Java/PHP/NodeJS/Rust library to encrypt/decrpyt strings, files, or data, using Data Encryption Standard(DES) or Advanced Encryption Standard(AES) algorithms. It supports CBC block cipher mode, PKCS5 padding and 64, 128, 192 or 256-bits key length. If the encrypted data is a string, it will be formatted automatically to Base64.

View The Article

2014
MagicURLNetwork
Java
MagicURLNetwork is a Java library which supports JSON data transfer through networks. To make an URL connection, you only need to know what you want to do and choose an appropriate request method(GET, POST, PUT, HEAD…). You don't need to understand how HTTP, HTTPS and FTP work, and don't need to use any streaming library by yourself, too. You can easily implement a RESTful client program or file uploading/downloading program with this library.

View The Article

2014
MagicDialog
Java
MagicDialog is a Java library used for creating dialogs quickly in JavaFX applications. It supports alert(information, warning, confirmation, error) dialogs, input dialogs and choice dialogs. In addition, MagicDialog includes MagicAudioPlayer to produce sound when the dialog is shown.

View The Article

2014
MagicAudioPlayer
Java
MagicAudioPlayer is a Java library used for playing audio in Java programs including JavaFX application. It supports such uncompressed audio formats as WAV, AIFF, AU and raw PCM. Moreover, if you use it in your JavaFX application, it may also support compressed audio formats like MP3 and AAC.

View The Article

2014
File Verifier X
Java
File Verifier X can compute the checksum of a file with different algorithms and compare the checksum with the checksum of the original one to determine whether the file is the same as the original file. File Verifier X supports MD2, MD5, CRC32, SHA1, SHA224, SHA256, SHA384 and SHA512 algorithms. In addition to graphic interface, it can also work under command line interface.

View The Article

2014
Csound Oracion
Csound
Use vibrato, frequency modulation, echo, and phase vocoder to make this music.

View The Article

2014
Mson
Java
Mson (also called MagicLenJSON) is a Java library which includes Gson library and json.org library to do some json-related operations. My goal is to convert JSON data format easily among JSON formatted strings, any objects, and XML data formats.

View The Article

2014
ContentCenter
Java
ContentCenter is a Java framework for the content of applications. It includes Mson to support JSON data to access database, and includes String Hider to hide your data that are stored in the database. The database used in ContentCenter is SQLite, but programmers don't have to write any SQL to access it. ContentCenter also supports observers to refresh your views when the corresponding data are changed, and supports syncs to synchronize data between client and server. ContentCenter uses sqlite-jdbc and SQLDroid JDBC drivers to access SQLite on PC(Linux, Mac OS, Windows…) and Android.

View The Article

2014
StringHider
Java
MagicStringHider is a Java library which is used for hiding any string by converting it into another string composed of A-Z characters. The hidden string is not unique. One original string can be converted to different strings. but they can be recovered to the same original string. You can create your hidden string by adding any key to protect it from someone who has MagicStringHider library, too.

View The Article

2014
MagicSort
Java
MagicSort is a Java library used for sorting any object array by using iterative quick sort and selection sort when the array size is small. Moreover, it provides some useful built-in comparators for sorting strings and files. It can sort files by file types, but when the file types are the same, sort them by their file names.

View The Article

2014
magiclen.org
Rust
JS
PHP

MagicLen (magiclen.org) is a series of websites built with PHP and Rust. It has a wide variety of original articles on its main site including software (especially open-source software), Internet, websites, operating systems, programming languages, travels, expedition, humanistic geography, science, food, entertainment, art, literature, natural languages, military and puzzles.

The sub-sites list:

  • img.magiclen.org: It can display uploaded images classified according to folder names and generate HTML text for embedding each image.
  • file.magiclen.org: It can hide the real positions of files on the server and generate download pages for each files.
  • tool.magiclen.org: It provides some web pages with specific functions such as contact, link exchange and IP addresses fetching.
  • api.magiclen.org: It provides the APIs of MagicLen's web services.
  • url.magiclen.org: It can redirect a URL to another URL.
  • me.magiclen.org: It collates the webmaster's profile and also supports multi-languages.
  • cloud.magiclen.org: It provides many free cloud tools and also supports multi-languages.
  • phrases.magiclen.org: It is a English learning website mainly used for Chinese learners of English language to review the most common phrases and sentence patterns.

https://magiclen.org/

2014
Java Sanguosha Standard
Java
This version only implemented Sanguosha Standard Edition's 5 players mode, 8 players mode, effects of cards and computer AI. Although the skills of heroes were not implemented, it is fun to play.

View The Article

Open Video

2014
Lyrics Converter
Java
Lyrics Converter is a MP3 dynamic lyrics conversion tool. It can help user import/export lyrics and photos into/from files.

View The Article

2014
MP3 Lyrics Player
Java
PHP
It can read tags from mp3 files and support to play the built-in lyrics. It can also record audio when playing music and choose some lyrics to replay.

Open Image

2014
MP3 Tag Library
Java
It supports ID3v1, ID3v2 and APEv2 mp3 tags.

View The Article

2014
AutoURL
Java
AutoURL is a JavaFX application, which can help you convert many pure URLs into HTML form with <a></a> elements.

View The Article

2013
MagicLocationChecker
Java
MagicLocationChecker is a Java library which can compute the area of a polygonal region on the (geocentric) coordinates, and compute the distance between two vertices or between a polygonal region and a vertex. It can also check whether a vertex is in a polygonal region or not. It uses GeographicLib library to compute the area of geocentric polygonal regions.

View The Article

2013
Message Server
Java
Message Server can be used for receiving messages from other clients via network.

View The Article

2013
JavaChineseCalendar
Java
Java Chinese Calendar is a Java library of Chinese (lunar) calendar. It can convert date between Gregorian calendar(also called Western calendar) and Chinese calendar. Also, it can compute the weight of Ba Zi.

View The Article

2013
Divine Love (a prank)
Java
This application can send the data that user input to Message Server.

View The Article

2013
Skiing Snowman
C#

In the wilderness of ice and snow, our lord commiserate this land, and he shines a ray of limelight. Like magic, the light gives this ground life.

There are four small snowmen, which wear hats of different color. They sing their own Christmas song to fight for lord's love and warm. That light is our lord's kindness of this world. That is life, and is future, too.

More importantly, that is the energy for eternal life. To live forever, snowmen will fight recklessly to grab the limelight, even push other snowman down.

Will they become the snowman that lord gives a true life to? It will up to you!

View The Article

Open Video

2013
Microsoft IME words data to Gcin
Java
It can be used for converting the words format of Microsoft IME to gcin.

View The Article

2013
Proxy Surfer
Visual Basic .NET
In order to increase the PV of a specific URL, Proxy Surfer can be used to open that URL with all proxy servers on the list.

View The Article

Open Image

2012
Corporate Databaseless ASP Website Package
ASP
Java
A simple product catalog ASP website for a corporate without any database is generated by a Java GUI program with a specific structure of files. Someone who wants to modify this website can efficiently just use his/her preferred tools to edit some of those files and re-run the java program.
2012
Timed Shutdown
Visual Basic .NET
Use this program to schedule a time on a computer. At the time, the computer will shutdown automatically.

View The Article

Open Image

2012
DRM Core i5
Visual Basic .NET
The next and latest version of KKBOX Cracker. It supports myMusic(ezPeer) and it can convert audio into mp3 format via FFmpeg automatically when removing audio's DRM protection. This program is for research use only.

Related documents: 1

Open Image

Open Video

2012
Sudoku Game
Java
It is a Sudoku game. You can practice or challenge it.

View The Article

2012
TakeGhostCard
Java
TakeGhostCard is a Joker Poker game implemented in Java. It's a very simple implementation, which only has command line interface. In other words, it's a text-based game. But actually, it is not very simple to play, because Player in this game can be allowed to do some cheating tricks.

View The Article

2012
HyperURLGetter
Visual Basic .NET
Connect to a specific URL in VB.net.

Related documents: 1, 2, 3

2011
Wallpaper Downloader
Visual Basic .NET
Download multiple beautiful wallpaper photos at one time.

Related documents: 1, 2

Open Image

2011
Host Edit Expert
Visual Basic .NET
It can edit Windows' hosts file. And it also provides a ping tool for testing.

Related documents: 1

Open Image

2011
GuessNumber
Java
GuessNumber is a guess-the-number(1A2B) puzzle game implemented in Java. It's a very simple implementation, which only has command line interface. In other words, it's a text-based game.

View The Article

2011
VB Guess The Number
Visual Basic 6
VB Guess The Number is a guess-the-number(1A2B) puzzle game implemented in VB.

Open Image

2011
Chromium Downloader
Visual Basic .NET
Get the latest version number of Chromium and download it in a fast way.

Related documents: 1

Open Image

Open Video

2011
Smart Brain – Ball and Balance
Visual Basic .NET
Solve a series of puzzles about balls and a balance.

Open Image

Open Video

2011
Messengers Downloader
Visual Basic .NET
Download the latest version of Yahoo Messenger and Pure MSN for offline installation.

Related documents: 1, 2, 3

Open Image

2010
Window Transparent
Visual Basic 6
Because the forms that VB6 generates is unadorned, Window Transparent can be used to generate forms with fashionable styles such as gradient background colors, transparent windows and fade-in/fade-out effects.

Related documents: 1

Open Image

2010
MASM 6 Code Editor
Visual Basic 6
The program can edit MASM 6 code and simplify the steps of assembly, linking and running.

Open Image

2009
Yahoo Messenger Status Alternator
Visual Basic 6
The program can change Yahoo Messenger status in turn repeatedly during a specified time interval.

Related documents: 1, 2, 3

Open Image

2009
KKBOX Cracker
Visual Basic 6
KKBOX Cracker can help users register for a KKBOX member quickly and remove the DRM protection that the KKBOX's audio has. This program is for research use only.

Open Image

2009
Cool! Super Music HTML Generator
Visual Basic 6
Some people don't know HTML, so it is difficult for them to put background music on their blogs. But with this program, everyone can do this easily.

Related documents: 1, 2, 3, 4, 5, 6

Open Image

2009
Love Horoscope (a prank)
Visual Basic 6
This program can compute the fortune about love via constellation superficially. In fast, the main purpose is putting the names that user inputs on user's Yahoo Messenger status to show every friends who is the user's love.

Open Image

2009
Password Analyzer
Visual Basic 6
Test the strength of the inputted password and give some advice about it. This program can also generate strong passwords according to conditions.

Open Image

2009
IE Browser hijackers
Visual Basic 6
This program was designed in order to practice VB6 and know about computer virus. It can reside in user's operating system and change the home page setting of IE.

Related documents: 1

2009
Yahoo Messenger Multiple Opener
Visual Basic 6
It can allow Yahoo Messenger to be opened more than once so that the user can use different accounts to log in on one compute at the same time.

Related documents: 1, 2, 3, 4

Open Image

2009
it-easy.tw
PHP
JS

it-easy.tw is a website built with Wordpress. It has a lot of original articles including programming languages, operating systems, software, hardware, websites, 3D animation and expedition mainly in order to let more people know about computers.

There were also several web services provided by it-easy.tw:

  • GCDW: Checking and downloading the newest version of Chromium, recording the version that the user downloaded last time
  • YMAV: Checking the Yahoo Messenger user's photo and online status
  • yamMD: Downloading videos and audio from Yam Blog
  • YTVD: Downloading videos from YouTube

http://it-easy.tw/

2008

Others

Electric Works
  • Smart Raspberry Pi Car: Use Raspberry Pi to manipulate the car's motors and LEDs driven by L293D and 7407 buffers. This car has a digital camera and the power source is a power bank. People can use applications on smartphones or computers to control this car to move forward, move backward, rotate, turn right/left, take pictures, flash turn signal, and even send some special commands to let this car do stunts.
  • Dimmer: It is made with a DIAC, a TRIAC, capacitors, fixed resistors and a variable resistor. Just adjust the variable resistor to change the illumination of light bulb.
  • Power Supply: This power supply can transfer AC 110 volts(V) to DC 24V, 17V, 12V, 7V, and 5V through one transformer, one bridge rectifier, filter capacitors and voltage regulators.
3D Computer Graphics
  • Snowman model: Use Autodesk Maya to model a snowman. This is used in a Unity game named Skiing Snowman.
  • The title animation of it-easy.tw: Like the title animation of Pixar Animation Studios, there is also a lighting lamp which jumps into view and crushes an alphabet awkwardly. This animation is made with Autodesk Maya and Adobe After Effects.
  • Soccer ball model: Use Autodesk Maya to model a soccer ball. Tutorials: 1, 2.
  • Basketball ball model: Use Autodesk Maya to model a basketball. Tutorials: 1, 2.