Email Service!
Purpose
To create a personal email service
How to
Creating MySQL user
dnf install postfix dovecot dovecot-mysql postfix-mysql mutt
sudo mysqladmin -u root -p create mailserver
sudo mysql -u root -p
Creating the database and tables
/*! Create the MySQL user and grant the new user permissions over the database. */
GRANT SELECT ON mailserver.* TO 'mailuser'@'localhost' IDENTIFIED BY 'mailuserpass';
FLUSH PRIVILEGES;
USE mailserver;
/*! Create a table for the domains that will receive mail */
CREATE TABLE `virtual_domains` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*! Create a table for all of the email addresses and passwords */
CREATE TABLE `virtual_users` (
`id` int(11) NOT NULL auto_increment,
`domain_id` int(11) NOT NULL,
`password` varchar(106) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*! Create a table for the email aliases */
CREATE TABLE `virtual_aliases` (
`id` int(11) NOT NULL auto_increment,
`domain_id` int(11) NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*! Add the domains */
INSERT INTO `mailserver`.`virtual_domains`
(`id` ,`name`)
VALUES
('1', 'mkmark.net');
/*! Add the users */
INSERT INTO `mailserver`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]'),
('2', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]'),
('101', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]');
/*! Add the alias */
INSERT INTO `mailserver`.`virtual_aliases`
(`id`, `domain_id`, `source`, `destination`)
VALUES
('1', '1', '[email protected]', '[email protected]'),
('2', '1', '[email protected]', '[email protected]');
note the password can also be generated from python
import crypt
import hashlib
import random
salt = hashlib.sha1(str(random.random()).encode()).hexdigest()[0:16]
print(crypt.crypt("password", "$6$"+salt+"$"))
Postfix
modified and added files: (see reference for detail)
/etc/postfix/main.cf
/etc/postfix/mysql-virtual-mailbox-domains.cf
/etc/postfix/mysql-virtual-mailbox-maps.cf
/etc/postfix/mysql-virtual-alias-maps.cf
/etc/postfix/mysql-virtual-email2email.cf
/etc/postfix/master.cf
Dovecot
modified and added files: (see reference for detail)
/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf
/etc/dovecot/dovecot-sql.conf.ext
Post processing
sudo chown -R vmail:dovecot /etc/dovecot
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
systemctl restart dovecot
chmod -R o-rwx /etc/postfix
systemctl restart postfix
systemctl enable dovecot
systemctl enable postfix
Test
dnf install mailx
mail [email protected]
tail /var/log/maillog
Client config
465 smtp TLS 587 smtp STARTTLS 993 imap ssl 995 pop3 ssl
Reference
Heart of Iron 4 (Man the Guns) Germany Fast World Conquest 2nd Try
Basic order
- Poland, Belgium
- France, Netherland, UK, Czechoslovakia, Canada
- US, Australia, New Zealand
- Switzerland, Italy, South Africa, Romania, Turkey
- Soviet Union
- ...
Detailed gameplay (important decisions)
- 19360319 justify Poland and Belgium (use cancel justification trick to control world tension below 20%)
- 19360628 MOFO Bill extension
- 19361225 MOFO Bill extension
- 19370401 war Poland Belgium
- 19370607 Poland capitulated
- 19370728 wait for Maco Polo Incident until world tension increase and Belgium joins Ally, then taking the capital and Belgium capitulated
- 19370802 France starts the war
- 19370807 France capitulated
- 19370815 Vichy France established
- 19370901 war Netherland
- 19370907 Netherland capitulated
- 19370929 cross English Channel
- 19371217 UK almost capitulated, hold force, 1 division invade Canada
- 19380111 Czechoslovakia justified
- 19380119 Czechoslovakia joins Ally
- 19380126 1 division attack Czechoslovakia and takes capital, US justified, take the final victory point from UK and Ally capitulated, puppet UK established, colony sovereign transferred and everything else annexed
- 19380406 war US
- 19380625 US capitulated
- 19380904 naval invade Australia
- 19381020 naval invade New Zealand
- 19381109 Switzerland Italy justified, Ally capitulated, puppet US established, colony sovereign transferred and everything else annexed
- 19390321 war Italy
- 19390821 war South Africa
- 19400210 war Turkey, justify Romania, Ally capitulated (later puppet Romania)
- 19400411 German East Indies annexed
- 19400911 France annexed
- 19400913 Turkey released
- 19410125 Soviet starts war against Finland, start the war against Soviet, call Romania to join the war
- 19410310 German Raj annexed
- 19410709 free attack
- 19410721 Führer Directive 21 finished
- 19410810 Sevastopol circled
- 19411007 Soviet capitulated, puppet Soviet established
Notes for basic gameplay
- Don't research Navy and Oil, and should be able to keep up with all other researches. Still going to own the strongest navy by annexing France, UK, and US. Still going to have more than enough oil after conquering US.
- Don't do Rhine land focus because it increases world tension. When the war kicks off it's automatically bypassed. Also, don't set any National focus before 19360319 for the earliest war goal justify.
- Ally starts war actively if leaving Belgium until Marco Polo incident, which is highly favorable. If world tension is still not high enough, justify Netherland.
- Use national focus 'Befriend Denmark' for Greenland port access so we can naval invade Canada.
- 1 division invade Canada, Czechoslovakia, Turkey before Ally capitulated for instant victory.
- Always remember to justify war goals before Ally capitulated as it cost only 10 or 25 days when at war.
- Establish Vichy France, UK, US puppet for their navy; Romania for focus (8 bonus military factories); Turkey as buffer country against Soviet; US, Soviet for their manpower (give full territory back before drawing manpower), annex others
- Draw manpower from German East Indies and France before going to war with Soviet
Notes for invading Soviet
- Remember to deploy all aircrafts captured before war kicks off.
- Attack Soviet when it's attacking Finland and its north defence is almost gone. And they still have debuff from Great Purge by then.
- When invading Soviet leave an army to circle Sevastopol but don't attack. After Moscow falls (so are Leningrad and Stalingrad) the new Soviet capital will be Sevastopol. Block its land access from north and east each with a total of 80 width divisions (1 block width), raiding Black Sea convoy, and the whole Soviet army will be out of supply.
- Build 40-width tank division for aggressive attack, 20 width infantry division for normal attack, 20-width motorized infantry division for cautious attack (so they don't actively engage and can follow the tank push really fast).
- 40-width tank divisions are composed of 8 medium tank divisions, 4 SPART divisions, and 6 motorized infantry divisions. 20-width (motorized) infantry divisions are just normal 7+2.
- The main force composed with 1 army of 24 tank divisions for pushing, 3 armies of 3 tank divisions for micro-management, 1 army of 24 motorized infantry divisions for fast catch up, 5 armies of 24 infantry divisions for holding position and normal attack.
- Don't try to circle Soviet divisions in large scale until very late, because it's almost impossible when they have a huge amount of backup divisions and will definitely be a supply nightmare. Just do small scale circle that covers 1 to 10 provinces would be good enough. Always build infrastructure when pushing.
- Don't use a lot of force to invade Soviet from Turkey because the infrastructure is so awful and takes too much to fix. Instead, use a 3 tank divisions army to flank and circle Soviet army just after the main force pushes over Stalingrad.
To continue
In Oct. 1941 China is still resisting Japanese invasion. A navy composed of German, France, UK, US navy should already be overkill for the Japanese navy. Raiding Japanese convoys and their main force will be out of supply. Literally there's no other major which can pose any threat at this point.
To improve
- This gameplay ensures there is always only 1 main front line so it's easy to micromanage. For ultimate fast conquer multiple frontlines are necessary.
- Paratroopers are worth considering for even fast early conquer.
Heart of Iron 4 (Man the Guns) Germany Fast World Conquest 1st Try
Basic order
- Poland, Belgium
- France, (Netherland), UK, Canada
- US, Australia, New Zealand
- Soviet Union
- Japan
Project: create_m3u_from_NeteaseCloudMusic
This project is completed reworked for much better performance and .m3u8 compliance. See release/project-netease-cloudmusic-playlist-exporter/
Netease is working hard to prevent users from listening to local music, especially those VIP exclusive ones. Today (20200531) they even replaced the UWP app with the win32 version in Microsoft Store to force users to accept their new rules: No more VIP music unless you paid, even local ones are not permitted, which is totally ridiculous.
The original UWP app, despite deprecated quite long ago and a little bit ugly, was quite useful on windows tablets as UWP apps are the only choice to play music with the screen turned off.
The project has 2 parts: to find a UWP music player, and exporting the Netease Cloudmusic playlist to it. After some searching, the foobar2000 mobile (not foobar2000) seems to be the only choice.
The exporting process uses Netease Cloudmusic local SQLite database to retrieve the playlist information. Introducing project create_m3u_from_NeteaseCloudMusic: Command Line Tool to Extract ".m3u8" Playlist out of Netease Cloudmusic Library (forked from xyqyear/create_m3u_from_NeteaseCloudMusic)
Usage
Exporter.exe
(wich is equivalent to 'python Exporter.py')
Show help
Exporter.exe -h
Specify playlist to export, or export all
Exporter.exe [-p PLAYLISTNAME]
With this updated version of the command-line tool, an automatic update can be easily done with a '.bat'. Example:
@echo off
REM declare using UTF-8 encoding
chcp 65001
%UserProfile%\AppData\Local\Programs\Python\Python38\python.exe %UserProfile%\repo\create_m3u_from_NeteaseCloudMusic\Exporter.py --playlist 我喜欢的音乐
The way Foobar2000 mobile works will always ensure the updated '.m3u8' playlist be used.
China Unicom is Stealing User Privacy Including Accounts and Passwords
It’s lucky for me to find this backdoor as there must be some programming error leading to the crash. There is no reason for China Unicom to show up when a user is importing account information of a totally irrelevant service. The only explanation is that it's trying to steal the data. But what's the motive?
ShadowsocksR is a VPN technology that can be used to falsify data streams. China Unicom is probably using this backdoor to capture those who are using ShadowsocksR to get free cellular data.
No matter what its purpose is, this is an act totally ignorant of user privacy, and apparently illegal. The ShadowsocksR configuration it’s been trying to steal contains user account information like account names and passwords. Who knows what other information it might be stealing secretly?
Shame on China Unicom and all those behind it.
Curve Generation Algorithm Development
UCB ARCH 259 Robotic Fabrication
Mark Ma, Yasaman Yavari
Goals
The final object is to make something fantastic, while creating a workflow including techniques of 3D scanning, parametric modeling, robotic arm operations, 3D printing and bio-mechanical knowledge.
While breaking down the final object, Yasaman and I found our interest in the parametric modeling part. With instructions from Professor Simon, we began our quest to develop a robot-printing friendly curve generation algorithm. To be robot-printing friendly, the curve generated should have the following features:
- Artistic (subjective)
- Reasonably structured (objective)
- As continuous as possible so that saves the trouble of reconnecting during printing (objective)
Modeling
Base shape
With the conclusion that we’re to use elastic canvas for basic form-finding, the first step of our modeling would be simulating this process. Several opinions are available:
- Use finite element method to find the exact shape of the canvas under loading
- Use Kangaroo to simulate the physical process
- Use minimal surface
The minimal surface method is dropped due to the fact that we are to use form-finding in reality. The FEA method, despite exact and promising, does not go well with the rest of the project with its model format. Considering that the modeling precision would not be a big issue in this step, Yasaman and I decided to use Kangaroo for base shape simulation.
The drawback of Kangaroo is that we can hardly define an isotropic elastic material. The Quadrilateral Mesh, despite simple and straightforward, promises the same modulus only in the orthogonal direction of the mesh UV basis.
Through careful modeling, I add another restriction at 45° and 135° of the UV basis, making it closer to an isotropic material. Considering the exact model are to be found out using real form-finding and 3D-scanner, the remaining error is neglected.

Structural reasonableness
Considering the problem to be print on the basic form, several ideas of curve generation have been proposed. One plan is to adopt optimized principle stress lines. The advantage is obvious, as such a structure would be very reasonable under loading. However, principal stress lines turned out hard to be adopted. The continuity of the principle stress line does not guarantee the well-distribution of these lines, which often leaves large holes in structure generated. Due to the high sensitiveness to shape and load, the principal stress lines are hard to manipulate too. Consequently, we decided to start from the curve generation itself.
Curve generation
Step 1. Curve generated according to force distribution
One way of curve generation is to divide and lengthen parts of a continuous curve, while keeping the curve away from intersecting with itself, which defines all the goals we need to implement this idea with Kangaroo:
- Lengthen curve sections
- Prevent curve from intersecting with itself
To adapt the generated curves responsive to structural behavior, it's natural to densify the area with large stress, which gives the third goal:
- Curve distribution responsive to stress distribution
With these goals the curves are successfully generated, meeting all our objective goals. Further development should focus on the subjective part, aka the artistic effects.

Step 2. Curve generated freely
To gain more control of the curve generation, some restrictions have to be dropped. Now take a look back at the initial three goals, if we neglect the curve distribution requirement, we can achieve something looks very alike Zaha’s project.

Recall that Zaha’s project uses a manually defined base curve to approximate initial stress distribution, we now certainly have a better solution: to use the curve generated in 1st step as the base shape for 2nd step, which gives us the following result.

Step 3. Combination
There is an infinite number of curves we can generate by tweaking with all the parameters, and an even larger infinite number of combinations with different layer position, tube thickness, color, etc. For a quick example, this is what it will look like if we combine Step 1+2 as a thicker base layer and Step 2 as a thinner decoration layer.

Conclusion
The curve generation is a complex workflow not fully automated, as lots of attention needs to be paid to calibrate all the parameters in order to get the best shape. All generated curves have the potential to become the final project, with a combination of each other and further improvement based on printing practice.
Due to the virus situation nowadays, it’s becoming harder for our project to be actually constructed. I hope all these quests into curve generation can be preserved, developed, and applied in future practice.
Reference
Data 100 Spring 2020 Project 2b Competition Ranked 3/749
Coco (2017)
A story about a boy trying to prove himself a citizen with unconditional civil rights, and a distant relative (his great-great-grandpa) trying to get a visitor visa through him.
Family ties ARE important. For sure. Gracias, señor Trump.
Evidence of your employment and/or your family ties may be sufficient to show the purpose of your trip and your intent to return to your home country.
Chinese Virus
This is a discussion panel from UCB LP380 on a podcast ‘I Become a Person of Suspicion’ - The New York Times
Export MATLAB LiveScript into Viewable PDF
MATLAB LiveScript can be exported into pdf but the function is often broken. Sometimes figures are too large to stay in page frame, or it doesn't show figures at all.
To bypass this broken feature one possible way around is to save as HTML, and edit CSS to make sure things look normal before finally printing it into PDF.
Some useful CSS property to pay attention to:
.inlineElement
{
max-hight: none; !important
}
.figureContainingNode{
max-width: 100%;
}
ncmc
Convert encrypted ncm file to original music file
Forked from magic-akari/ncmc
Replace comments value with the original 163 key so songs can be recognized correctly by cloudmusic clients.
Hope is earned, or someone’s gonna fake some for you.
Guess what happened if you're fed with fake hope.
You vomit.
Tribute to hero Wenliang Li.
悼民族英雄李文亮。
Uncle Sam
There's something. A lot of people don't know this: George Washinton's brother was the uncle of our country. Tell that to your kid. Tell him to tell his teacher that. He'll be home way before three o'clock.
George Carlin - HILARIOUS STAND-UP
Well, it's true.
Samuel Washington (November 27, 1734 [O.S. November 16, 1734] – September 26, 1781) was a colonial American officer and politician who was the brother of United States President George Washington.
Dynamo vs. Grasshopper
I finally got my hands on Dynamo trying to model a parametric triangular sphere, which I have done several weeks earlier in Grasshopper. Convinced by Zhekai Li that Dynamo would perform better since it has advantage over complex modeling situation, I started from scratch to learn Dynamo. And 2 days later, eureka!

So let's come back to the topic: how does it feel to model something in Dynamo comparing with Grasshopper?
美国暴发40年来最致命流感 ,是真的吗,目前情况如何?
知乎回答备份。“回答建议修改:违反知乎社区管理规定”
Los Angeles Trip on Christmas
I finally decided to participate in the trip after 1 minutes' 'careful' consideration. It would be such a pity if I didn't take a tour around LA when I am living so close to it - only 381.9 miles away, especially with the Airbnb already booked and trip planned ahead by someone else. After all what could go wrong? Everthing
梦回梁溪
... you never really forget them. It just takes a while for your memory to come back to you - Spirited Away (2001)
UnblockNeteaseMusic Online
n2n
n2n is a solution for Virtual LAN.
With VLAN many things can be quite easy, e.g. SMB sharing across NAT.
工E十周年 贺电
大家好,我是马克。首先祝工E十周年生日快乐。
谁能想到,今天十周年的工E,五年前的今天只是一个五周年的工E。那年在礼堂看着前辈们录制的平凡之路被感动得热泪盈眶,现在终于有机会在这里和大家谈谈人生和理想。
工E的核心是设计,而设计的核心则是技术和创造力。信息爆炸的时代,技术的普及和更迭指数式的演进,任何企图掌握所有最新技术的行为都属于以一己之力抗衡全人类创造力的螳臂当车。然而,工E依然选在在此时为大家普及基础的设计技术,不仅是为了给历史和人民做一点微小的贡献,更因为我们发现,技术的普及是培养创造力的最好方式,也是将志同道和的同志们团结起来的最佳途径。
但凡走上设计这一不归路者都对美有着近乎偏执的追求,希望工E能在这不平凡的路上越走越好。
Spirited Away (2001)
Now go, and don't look back.
Spirited Away (2001) Faceless. Exiled by myself.
7 years.
It's time.
General parametric design of a steel-glubam hybrid space truss
Ma, K., and Xiao, Y. “General Parametric Design of a Steel-Glubam Hybrid Space Truss.” In Modern Engineered Bamboo Structures: Proceedings of the Third International Conference on Modern Bamboo Structures (ICBS 2018), June 25-27, 2018, Beijing, China, 1st ed., 223–29. CRC Press, 2019.
K. Ma
Zhejiang Univ.-Univ. of Illinois at Urbana Champaign Institute, Jiaxing, Zhejiang, China
Y. Xiao
Zhejiang Univ.-Univ. of Illinois at Urbana Champaign Institute, Jiaxing, Zhejiang, China
Nanjing Tech University, Nanjing, Jiangsu, China
Department of Civil Engineering, University of Southern California, Los Angeles, CA, USA
ABSTRACT: This paper introduces a parametric design method for a hybrid truss system composed of glued laminated bamboo (glubam) and steel. Experiments on determining material’s physical and mechanical parameters were carried out first, on basis of which design stages from modeling, analysis, optimization to manufacturing are all rendered possible through parametric ways by defining corresponding parameters within one single platform - Grasshopper. By maximizing automation during the process, efficiency and extensibility are taken into consideration for possibly further, larger, and more complex design.
Good Lab
A structural lab that is clean is not a good lab. -- Khalid M. Mosalam on CE 249, Sept. 6, 2019
edit 20220801:
The ZJU Haining campus recruited a new Civ Lab engineer recently, who is dedicated to make the Civ lab 'as clean and beautiful as a museum'. He once proposed that wood cutting should be done outside of the Lab to minimize the noise and ash, and I had to call the Dean in to revert this policy.
With his help everyting is now put in order far away from its supposed working location, just we can not find things when we need, and the lab engineer has no idea too.
How ironically!
University of California, Berkeley


Force Loading Earlier Version Extension in Visual Studio 2019
Encountered 'This extension is already installed to all applicable products.' error when trying to install 'NewGrasshopperTemplate.vsix' to vs2019.
Open vsix as zip, update all '.json' files by replacing
And it worked.[15.0,16.0\)
` with
`[15.0,17.0\)
Project: Large Waste Transfer Station
20190628 Large Waste Transfer Station
20200811 Large Waste Transfer Station
20200815 Large Waste Transfer Station
Credits
Directed by Prof. Yan Xiao.
Designed by Mark Ma.
Non-commercial project for research and demo purpose.
wm density Crash Rescue
device: Mi MIX 2S system: MIUI 10
Try and fail
My device crashed after trying to modify window density.
su
wm density 120
Screen went dark, adb shell reports error.
.\adb shell wm density reset
Tried force reboot, not working, and adb shell no longer worked due to permission. Device auto reboot into recovery.
Tried everything from Google and nothing works.
Tried adb command when restarting but encountered error.
.\adb shell wm density reset
Security exception: Must hold permission android.permission.WRITE_SECURE_SETTINGS
Solution
This reminds me of a way to circumvent device password lock, which I accidentally bumped into 2 weeks ago when modifying status bar icon.
Simply rename/remove
/system/priv-app/MiuiSystemUI/MiuiSystemUI.apk
Then reboot, you'll find yourself home screen immediately!!! Do anything you like to fix the resolution.
Project: Concrete Dragon
About the project
Concrete is something not often linked to boat, let alone dragon boat. Traditional concept of concrete based building material is embedded deeply not only in common folks but also in Civil Engineering students.
Concrete, usually Portland cement concrete (for its visual resemblance to Portland stone), is a composite material composed of fine and coarse aggregate bonded together with a fluid cement (cement paste) that hardens over time
Still, concrete is just a material, and material evolves as scientific progress advances. New material such as FRP rebars show even better performance than traditional steel rebars. Moreover, as its Chinese name indicated, concrete is just 'some sort of ash mixed and hardens', expanding its concept to a even higher dimension. Comparing to traditional boat building material, concrete has its own pros and cons.
Pros:
- Stain proof (v.s. steel)
- Flexible shape (v.s. timber)
- Economical (v.s. steel and timber)
Cons:
- Heavier than water and timber
- Brittle
- Low tensile strength
The whole project is aimed at exploiting the advantages of concrete while fixing its problems, expanding our knowledge of concrete through engineering practice.
Prototype 1.x - The First FRP Concrete Dragon Boat
Goal
A new type of boat construction method is proposed firstly by Prof. Yan Xiao. The basic idea is to use a self-hardening FRP cloth material as both concrete model and structural part that provides tensile strength.

Material
FRP Clothes
This is some material recently become popular for its ability of free shaping and fast hardening. Most common scenario of usage is replacement of medical bondage and plaster, or electrical wire joint protection. The mechanism is really simple as it's just piece of FRP soaked into glue. Exposition to air solidify the glue in several minutes, providing the structure with some strength.
Things become interesting when several layers of such kind of material are glued together. As FRP clothes is extremely strong in tensile direction, even glue can sustain the relatively less strong shearing force, guaranteeing high bending and shearing strength.
Plastic Hull
A plastic hull is needed for this model, primarily for the shape control of the self-hardening FRP clothes. To achieve better dynamic performance, hull is modeled to be smooth and continuous - NURBS interposition of key points. Therefore, 3D-printing technology is adopted for precise realization of the model.



Concrete
ECC concrete is a new kind of concrete which includes PVA fiber to increase its tensile strength and crack resistance. Ingredients are listed as below:
Cement | 1 |
---|---|
Quartz Sand 20-40 | 1.1 |
Silica Fume | 0.3 |
Flyash | 0.15 |
Mineral Powder | 0.1 |
Quartz Sand 325 | 0.1 |
PVA Fiber | |
Water | 0.18 |
Water Reduce Agents | 0.10% |
Early Strength Agents | 0.10% |
Next Stage
Prototype 1.x focuses itself on boat construction. A boat floating on the water marked success of the first stage. On that occasion, however, path splits for two different prototypes though.
Prototype 2.x stays small and is optimized for wireless remote control. A concrete dragon boat (model) competition is later held based on this. Prototype 3.x is develped with optimization for man-powered sailing in a much larger scale - a real concrete dragon boat.
Prototype 2.x - ICDBC 2019
Goal
Fast, stable, swift steering
To make it fast, the boat has to be speed boat alike, narrow, and light. The concrete layer needs to be as thin as possible. For sure, boat surface still needs to be smooth and continuous.
To make it stable and swift steering, the boat has to be not that narrow in width, motors parallel to each other and as far away as each other as possible.
Power system
Duo RH-380 motors, 1500mAh Li-ion battery
Should gave adopted stronger motors.
Competition
Server
https://www.concretedragon.org/
CentOS7, php7.2, MySQL5.3, Nginx, WordPress Vultr Dallas
Rule
Should have set limitations on motor power.
Template
Should have provided ai version.
Should have made it clear that theme color can be switched.
Should have designed certificate templates.
Next stage
Should have adopted Arduino.




Prototype 3.x - The Great Dragon Boat
Goal
Strong, stable, light
The large boat is very different from the small boat as construction method can not be inherited directly. It is too slow for the hull to be 3d-printed out. Instead, EPS foam slices cut by CO2 laser are glued (or tied) up to form the basic model of the boat. A FRP clothes layer is then put on the foam, then concrete with FRP bars inside.

To make the boat strong, the boat is modeled even more smooth, to the extent that FRP rebars can be put inside the concrete from head to tail without cut or connect. Such smooth shape without any edge can be regarded as a 2-d arch, making the most of the compressive strength of the concrete. To make the boat stable, the boat should have a lower gravity center.





Next stage
- Should have the whole boat hull made by solid EPS form.
- Should have adopted sprayed concrete technique.
- Should have used more PVA.
- Should have used more FRP fiber clothes.
Credit
Instructor
Yan Xiao 肖岩
Boat Designer, Engineer, Manufacturer, Website Programmer and Designer
Ke Ma 马克
Construction
Ke Ma 马克, Dade Lai 赖大德, Zhiwei He 贺智伟
Also thanks for help by
Anqi Tan 谭安琪, Yiqi Feng 冯亦奇, Kaihang Zhang 张开航, Zhekai Li 李哲楷, Mengjun Wang 王梦君, Guoli Wang 汪郭立, Yang Zhou 周洋, Shangchun Jiang 江上春, Cristoforo Demartino, Zicheng Bao 包梓成
Decoration by
Jiahui Liang 梁嘉惠, Ke Ma 马克, Sicheng Zhou 周思成, Anqi Tan 谭安琪, Qingyun Liu 柳青云
Concrete Recipe
Bo Shan 单波, Dade Lai 赖大德
Logistic Support by
Sicheng Zhou 周思成
Competition Rule Maker
Yan Xiao 肖岩, Ke Ma 马克, Yiqi Feng 冯亦奇, Anqi Tan 谭安琪, Kaihang Zhang 张开航
Activity Organizer
Hang Wu 吴行, Ke Ma 马克, Binbin Li 李宾宾, Yanlong Xie 谢焱龙, Sichen Zhou 周思成, Tao Li 李涛, Jiahui Liang 梁嘉惠, Zhiwei He 贺智伟, Dade Lai 赖大德, Haixiang Zhu 朱海翔, Yi Zhang 张旖, Chenchen Ye 叶晨晨, Qian Yu 余倩, Jinyan Yu 俞静琰, Fengqing Jiang 江凤清 and other volunteers from ZJUI
Special Thanks for
Logistic Support
Jiyao Guo 郭霁瑶, Zhaijin Jia 贾翟菁, Qingbing Xie 谢庆兵
Technical Support
Tianyi Han 韩天屹, Si Li 李斯
Participation
Yue Feng 冯越, Hanyin Shao 邵寒吟
Sponsor
秦山建设,浙江大学创新创业学院
Some Thoughts from the Great Dragon Project
Stress does not get the better of me, but sense of responsibility does. I am accustomed to be alone, still, sense of loneliness and isolation horrified me.
People like me do not climb to leading position due to their ability to lead people, but as a result of responsibility and judgement. Team members may not believe the leader's judgement, but they do rely on it - as long as the leader shoulder all the responsibility, they are happy with it. Such ultra unstable system will collapse as soon as any mistake happens, especially those out of control, either by the leader himself, or by some team member - doesn't matter - team members will soon lose their interest or hope to fix the problem. And mistake is almost definitely to come around.
Problem originates from the responsibility system. Students who I lead, most come to the project with just out of curiosity, or even unwillingness. They have nothing beneficial from me, nor threatened by any power from me. The only reason they follow my order, is out of trust, that I could make sure that the problem be solved at the lowest cost of their time and work.
So the 'solution' is clear now. Under such condition, best solution is to assign tasks and orders as simple as possible to everyone and let them believe that this is the best way that they could get away from this, after they finish their part. Sadly, machine is always stronger than people in terms of obeying orders.
First rule of leadership: PICK the right team member.
Project: Blossom
UFO
Shot on my way back to office after dinner, in Zhejiang University International Campus, Haining, Zhejinag, China. The flying object was flying with a tail of fixed length, generally from South to North, to the West of the campus. Video shot with my phone, stabilized by Ae and is speeded up to 10 times.
Given the almost horizental track, and the fact that there's no smoke behind, there's high possibility that the object was moving at high altitude.
No news though.
Project: Waste Transfer Station
20190324 Waste Transfer Station, by Y. Xiao, K. Ma
202001030925 Waste Transfer Station, Photo by S.C. Zhou
Credits
Directed by Prof. Yan Xiao.
Designed by Mark Ma.
Non-commercial project for research and demo purpose.
Concrete Dragon Online
IBCC 2019 Online
Employed as Solid Mechanics TA

http://tam251.intl.zju.edu.cn/people.html(LAN Access Only) It's been like a decade since I was designated as a class president or such sort of things. Still, I feel honoured. It's a fun fact that most of the TAM 251 website is edited by me (revised from UIUC), as years of playing with html, servers, etc. finally get me on the course 🙂 Last time I was soaked in with Solid Mechanics, I scored 94 out of 100. To me, it's almost the most interesting Mechanics subject I learned (comparing with structual mechanics and others). The point is, it's a theory-based subject for scientific research rather than an experience-based one for practical engineering. That means fun for me.
Notes from International seminar on computational and performative design thinking
Mist at Zhejiang University

No modification. Totally original photo.
Android Root
Date
20181110Device: Xiaomi MIX 2S
Cersei and John Snow???
- How did I get married? Did I ever learned to play the mandolin? Who was to living at the end of Game of Thrones? - OMG I forgot u haven't seen it yet! So, Cersei and John Snow... Planet Money #872: The Hallowing Tapes
Just What I am Thinking

Polylang no-translation Redirection
VS Code LaTeX

Cooperation or Competition
Monopoly from the Perspective of Mass Gambling
UX Optimization
My friend lespirt is a UX designer. She took a look at my website and offered me several great suggestions, which I interpret as following.
Mobile Choice
Moving to Android
Finally, I decide to give up iOS, despite having using it for so many years. When I began to use iOS on 2011, it's still far less mature than today. People jailbroke it for better UI and more features. I can still remember some of the classic debian packages, i.e. SBSettings which iOS later introduced as Control Center. Good days back then. With Apple constructing its firewall taller and harder, jailbreaking is becoming much more difficult nowadays, not only for hackers, but also for common geeks. I'm not here to comment on the righteousness of Apple's action to promoting this. Objectively, fewer users means fewer developers, then fewer apps to serve even fewer users. To begin with, after iPhone 4s, iOS users can no longer freely downgrade their devices even one wants to enjoy fluency of earlier version. Year after year, the limits just became stronger and stronger. It finally leads to the collapse of jailbreaking community. A lot of cydia apps began to lose maintaince after iOS 9. I have my iPhone se locked at iOS 9.3.3 to keep it working fluently for 2 years. And after this only 2 years, with the screen malfunctioning, infra-red sensor no longer working, cameras poulluted by ashes and speakers making noises, it's high time I decided to move away from iOS, from Apple. (I'm a bit too objective here. What I am truly thinking, F**k Apple.) I choose to move on, and hope I can find some lost freedom from the Android world.
Project: RE Frame
Non-commercial project for research and demo purpose.
Project Introduction
This project is based on the 1st-prize-winning project 'RE Frame' of the Bamboo Pavilion Competition in Mediterranean University of Reggio Calabria by Stefano Vitale and his team. It's an honor to join him in such a great project. All following are based on my own understanding of the project.
X3 Online Complex Calculator Mirror
Sadly the original server went dark.
Fortunately, I made a copy of the TC version even before that.
With some help from web.archive.org, I successfully build the AP version from the TC one.
Douyu Auto Loot Script
- Automatic start
- 5 seconds count down notification by TTS audio message
HTTPS!
After being continuously locked up by GFW for a whole week I decide to change my site into a real https site. Given the fact that I can only use port 80 and 443 for all the activities across GFW, I have to make port 443 for both nginx and ShadowsocksR (for scurity reason). Thus, ssr will divide the inbound packages into two parts, one for itself and another redirected to port xxx for nginx, as following.
Percolation
Dictionary Patch 3
Goal
With Chrome extension, user-defined protocol and Windows API integrated in C#, the auto-look-up process when reviewing words on Shanbay can be even more cost-efficient and precise comparing with former methods.Village Bamboo Summer School Camp & Zhejiang Trip
The trip has two parts. One from June 21st to 23rd, and the other from June 28th to July 2ed. I spend the gap between the two parts in Beijing, for detail see my previous post.
BARC 2018 & Beijing Trip
Notes from BARC 2018 Ministerial Summit
Before discussing how to promote bamboo industry you’ll have to inspire people how they can benefit from it – especially their superior renewability comparing to trees. In most south America countries, bamboo is still considered as a type of tree which means that they will have to be registered for being cut down, and the register process could last 3-6 months which is almost insane for modern commercial activities.
Moreover, rather than inspiring the youth of the innovation of bamboo structure, it’s better to have them inspire us.
基于Grasshopper的曲面木结构网壳参数化设计研究
马克. 基于Grasshopper的曲面木结构网壳参数化设计研究[D]:[学士学位论文].南京工业大学土木工程学院, 2018.
指导老师:陆伟东
国家重点研发项目(2017YFC0703506)资助
摘要
曲面木结构网壳具有节能、绿色、环保、经济的特点。考虑到曲面网壳形态上的不规则性,其设计、分析、优化通常较一般结构更为复杂。相比传统的设计方法,使用参数化设计方法可以大大提高其设计流程的效率,使得曲面木网壳优良的性能得以充分发挥。
目前,曲面木网壳在国外的应用较为广泛,尤其是大跨的后张拉成型网壳。国内学者在参数化网壳方面也有一定研究,但多基于规则形态的钢网壳,而在曲面木结构网壳方面的参数化研究则开展很少。
本课题基于Rhino平台Grasshopper参数化插件进行曲面木结构网壳的参数化设计研究。通过总结设计方法,归纳设计思路,进而编制参数化建模、分析、优化以及输出的相关程序,使参数化设计的效率优势在木网壳结构中得到尽可能大的发挥,以期最终形成曲面木结构网壳的参数化建模、受力分析、建造等相关问题的一体化通用解决方案,为工程实践提供借鉴和参考。
在参数化建模的具体实现上,对于传统的基于几何外观设计的规则几何形态网壳,本文逐一给出了参数化建立相关模型库的方法和示例;对于自由曲面网壳,本文给出了一种参数化网格划分及优化的思路和示例;对于后张拉成型网壳,本文给出了通过模拟倒悬法动态优化建立模型的思路和示例。
在参数化受力分析、优化的实现上,本文基于Grasshopper插件给出了一种有限元分析方法并验证了其可靠性。该方法不仅能参数化分析传统网壳的受力,也能为模拟倒悬法找形获得的后张拉成型网壳提供精确的找形计算。在此基础上给出了此外,给出了基于进化算法对曲面整体做几何优化的思路和示例。
关键词:木网壳 参数化设计 Grasshopper

致谢
感谢陆伟东教授、孙小鸾老师、屈丽荣博士、陆斌辉学长为本课题提供的指导,正是他们给出的指导和建议使本课题的开展成为可能。尤其感谢我的导师陆伟东教授,他敏锐的学术洞察力使我在课题中受益良多;也要感谢屈丽荣博士,她同样在整个课题期间倾注了大量心血和精力,提出了许多宝贵的指导和建议。
感谢Grasshopper的开发者David Rutten以及整个社区,特别是Paneling Tools, Kangaroo(2), LunchBox, NGon, Karamba等插件和他们的开发者。他们的工作为本课题的开展提供了巨大的便利,并在实际应用中带给了我一些思路上的启发。
感谢工E设计,使我在大学期间得以学习到几乎一切用于此论文的展示工具,并指导了我在艺术设计领域上的发展,尤其感谢赵文炀、韦雨杏在建筑学上的指导。
感谢一路关心、理解、支持我的父母,老师,朋友。无论课题进展是喜是忧,总能得到你们的鼓励和帮助。正是你们在过去的二十多年中的不断影响使我走到了现在,我的感恩之情无以言表。
一个人的历史造就了他的如今,而整个人类的历史亦是他的后盾。在学术研究的道路上,无数先人开辟道路,才有了如今我这些微小的工作。感谢所有。
参见
[1] 关于公布南京工业大学2018届本科生优秀毕业设计(论文)、优秀指导教师的通知
Credits
Designed by Mark Ma.
Non-commercial project for research and demo purpose.
Produced with
- Rhino 6, Educantional License
- Lumion 6, Trial License
- Adobe Creative Cloud, Educational License
Word 图表标题按章节自动编号
问题
最近写毕业论文,有大量图片需要按照“图[章节号]-[图片号] [图片标题]
”的格式生成标题。例如第2章第4张图应为“图2-4 某某图片
”。
由于国内论文的某些标准,章节号并不使用阿拉伯数字。因此第二章第4张图实际自动生成的图片标题会变成“图二-4 某某图片
”。
Avengers: Infinity War (2018)
Dictionary Patch 2
Goal
To replace Eudic with GoldenDict for better responding speed, better extensibility, better and more flexible UI, free of charge, and less stability issues.Force Web Page Scaling on IOS
Aim
To scale the page up for precise control while formerly forbidden. To scale the page down for better UI (and sometimes extra options) by simulating a larger screen.Dictionary Patch
Goal
I'v already written some Apple script on Hackintosh for fast dictionary search. Now I seek to have a handy dictionary at disposal on windows platform.Rejailbreak ios 9.3.3 Mirror Online
For those who wonder whether jbme.qwertyoruiop.com would expire someday like me, here is my mirror.
WTFPL Applied.
Horticultural Expo Construction Site

Wuxi Railway Station North Plaza

Ctrl + F5
THIS IS THE MOST POWERFUL FIX EVER (FOR A WEBSITE).
HDMI Dummy Plug
Wrong Lizard
"Because if they didn't vote for a lizard," said Ford, "the wrong lizard might get in"
— Douglas Adams, So long, and thanks for all the fish
Note that the book was published in 1984. And 32 years later the competition actually began with the same feeling, "Who's worse?" I doubt this has ever happened in the whole U.S. history.
Anyway it's not the right time to discuss any serious topic. Just enjoy the nonesence cause I couldn't help laughing even when it was 2 a.m. and all my roommates were in dream.
十佳 又一年
工E设计工作室 2018 校五星社团 十佳社团
感谢所有
Solution to Abaqus ErrElemMissingSection When Analyzing Truss
Encountered the ErrElemMissingSection problem when analyzing truss, though I did 100% assign the section.
Finally found out that Abaqus would by default Assign Element Type 'Beam' in Module 'Mesh'. So remember to change the setting to 'Truss' when meshing.
GEDesign Order System
It's been 2 years since the first time I thought of building an online order system for 工E设计, the Gong E Design Studio.
Two years ago when I was the chairman of 工E设计, I received orders from all over the campus with different types and requirements. It would have been a mess if I did't manage all the orders with a calendar to remind myself of the deadline. Simple work, but quite annoying, especially when you get quite a lot of messages without a general form to regulate the styles - actually I did try to regulate, and wrote a well composed docx file, on the basis of some former chairman's work. Even then it was too much information to type into a calendar so I end up adding only the title and deadline to the calendar. By then the idea had emerged to have a automatic system developed.
Common Languages

I don't speak Chinese. But I speak three languages, Chemical, Mathematical and Geometrical language. These are the common languages. — Brian A. Murray, Nanjing Tech-ITT Bilateral Workshop, Nanjing, Apr. 12th, 2018
404
Me: Where can I find you?
Zhang: 404.
Well, he does live in 404.
Compact Archives compact.php modify
In order to display the compact archives as a table, I modified part of the compact.php as below, pay attention to the
part.li
foreach ( $dates as $year => $months ) {
$result .= $before . '<li class="theyear"><a href="' . get_year_link( $year ) . '">' . $year . '</a></li>';
for ( $month = 1; $month <= 12; $month += 1 ) {
$month_has_posts = ( isset( $months[$month] ) );
$dummydate = strtotime( "$month/01/2001" );
// get the month name; strftime() localizes
$month_name = strftime( "%B", $dummydate );
switch ( $style ) {
case 'initial':
$month_abbrev = $month_name[0]; // the inital of the month
break;
case 'block':
$month_abbrev = strftime( "%b", $dummydate ); // get the short month name; strftime() localizes
break;
case 'numeric':
$month_abbrev = strftime( "%m", $dummydate ); // get the month number, e.g., '04'
break;
default:
$month_abbrev = $month_name[0]; // the inital of the month
}
if ( $month_has_posts ) {
$result .= '<li><a class="amonth" href="' . get_month_link( $year, $month ) . '" title="' . $month_name . ' ' . $year . '">' . $month_abbrev . '</a></li> ';
} else {
$result .= '<li><span class="emptymonth">' . $month_abbrev . '</span></li> ';
}
}
$result .= $after."\n";
}
一个人的独裁是如何形成的,为什么很难垮台?
Original post on zhihu, 因「政治敏感」已于Apr 9, 2018 3:47 PM被删除。
Question by [Anonym]
一个国家那么多人,生活艰难,为什么不去推翻,是不是能有什么数学模型能解释这种至上而下的统治。
My Answer
统治集团和平民间悬殊的力量差是维持独裁的根本原因。
常规情况下,维持不是问题。一旦统治集团出现权力空档,无法继续维持力量差,机会就来了。
People of the Same Tarde
People of the same trade seldom meet together, even for merriment and diversion, but the conversation ends in a conspiracy against the public, or in some contrivance to raise prices.
— Adam Smith, An Inquiry into the Nature and Causes of the Wealth of Nations
Hello, World!
Beginner
It’s been five days since I decided to build this site on a boring Sunday afternoon. Now that almost everything feels good, and I think it’s time I paused and wrote something.
Protected: Start Note
HDD Unknown Problem
This is the problem hard drive I talked about in 系统盘迁移小记.
系统盘迁移小记
帮舍友迁移系统(Win10)。新买的固态,需要把hdd上的C盘完整复制过去。
舍友电脑上没有ngff接口,所以买了sata口的固态,需要把原硬盘挪到光驱位,再把固态放到原硬盘位。
硬件搞定直接开机,还是从机械硬盘启动,给固态指定盘符然后测速——固态倒是没什么问题,但后来才意识到这一步正是作死第一步。
X3 逼降算法 附源码
X3 可利用BUG合集
Fake Synaptics Precision Touchpad Driver in Win10 1709
!important
The problem must lie somewhere else. May be the system upgrade process.
After a clean reinstallation of the Win10, the driver now instantly functions without error. No longer need any more configuration.
However if you're having some problems anyway, the following part may still help.
百度云管家同时下载任务上限修改
目标文件:
/users/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/PersonalSetting.xml
先在软件里修改下载任务数,保存以后用Hexeditor定位。规律是每增加一个任务数某个值会减一。
似乎每个版本(或者用户)对应的值都不一样,所以没有通用的搜索、替换模式。
具体修改时:关闭软件,修改,重启。最多修改到9个,否则自动重置。
Thermal Grizzly with 970m
