My First Blog Post!

Purpose

  • To ride the wave of the AI revolution, learn to use various AI capabilities, and document my learning journey for review and sharing.
  • I have absolutely no knowledge of HTML, CSS, JavaScript, TypeScript, Node.js, and I can’t really distinguish between front-end, back-end, full-stack, networking, and servers. But that’s okay, with the help of AI, I built a template in one day and deployed it online 😊. Then I gradually added new features, and in about three or four days, I completed the current system. Next is to start writing blog posts.

Architecture and Deployment

  • Based on Deno, a JavaScript, TypeScript, and WebAssembly runtime built on the V8 engine and Rust.
  • The framework is Fresh, a full-stack web framework based on Deno.
  • Deployed on Deno Deploy, a globally distributed serverless JavaScript application platform.

Tools

Article Format

  • The blog post format is Markdown.
  • The benefits of using Markdown are shown in the example below:

Displaying Mathematical Formulas

  • Duhamel’s integral method for single-degree-of-freedom vibration
  • Duhamel Integration Method
  • Calculation method:
    • Cut the earthquake motion (external load) time history into small segments of impulse loads with different peak values.
    • Under the action of each segment of impulse load, the structure performs damped free vibration (a sine curve that gradually decreases).
    • Sum the responses (free vibration responses) under the action of each segment of impulse load to obtain the final displacement time history.
  • Formula
    • At time t=τt=\tau, the displacement generated by the impulse I=FΔtI=F\cdot\Delta t is calculated according to the following formula:
ν(t)=Imωneξωn(tτ)sin(ωn(tτ))\nu(t)=\frac{I}{m \omega_{n}} e^{-\xi \omega_{n}(t-\tau)} \sin \left(\omega_{n}(t-\tau)\right)
    • ωn\omega_{n} is the natural circular frequency of the structure with a single mass mm,
    • TnT_n is the natural period of the structure,
    • kk is the stiffness of the structure,
    • ξ\xi is the damping coefficient
ωn=2πTn=km\omega_{n}={\frac{2\pi}{T_{n}}} ={\sqrt{\frac{k}{m}}}

Displaying Tables


Environment VariableFunction
PYMAPDL_START_INSTANCEOverrides the behavior of the ansys.mapdl.core.launcher.launch_mapdl() function, only attempting to connect to an existing instance of PyMAPDL. Generally used in conjunction with PYMAPDL_PORT.
PYMAPDL_PORTThe default port for PyMAPDL to connect to.
PYMAPDL_IPThe default IP for PyMAPDL to connect to.
ANSYSLMD_LICENSE_FILEThe license file or IP address in the format PORT@IP. Do not confuse this with the IP and PORT where the MAPDL instance is running, which are specified using PYMAPDL_IP and PYMAPDL_PORT. This helps provide licensing for Docker.
PYMAPDL_MAPDL_EXECThe executable path to start the MAPDL instance.
PYMAPDL_MAPDL_VERSIONThe default MAPDL version to start when multiple MAPDL versions are available.
PYMAPDL_MAX_MESSAGE_LENGTHThe maximum length of a gRPC message. Increase this value if your connection terminates when running PRNSOL or NLIST. In bytes, defaults to 256 MB.

Text Formatting

  • **Bold** -> Bold
  • _Italic_ -> Italic
  • ~~Strikethrough~~ -> Strikethrough

Displaying Code

/// <reference no-default-lib="true" />
/// <reference lib="dom" />
/// <reference lib="dom.iterable" />
/// <reference lib="dom.asynciterable" />
/// <reference lib="deno.ns" />

import "$std/dotenv/load.ts";

import { start } from "$fresh/server.ts";
import manifest from "./fresh.gen.ts";
import config from "./fresh.config.ts";

await start(manifest, config);

Reference

Conclusion

This is my first blog post. I hope to keep it up and record my learning journey.