เพื่อเริ่มพัฒนาด้วย Flutter เราจำเป็นต้องตั้งค่า Environment บนเครื่องคอมพิวเตอร์ ซึ่งรวมถึงการติดตั้งเครื่องมือที่จำเป็นและกำหนดค่าระบบ โดยทำตามขั้นตอนเหล่านี้:
Discover gists
/* Nintendo sysmodules */ | |
0100000000000000 fs | |
0100000000000001 ldr | |
0100000000000002 ncm | |
0100000000000003 pm | |
0100000000000004 sm | |
0100000000000005 boot | |
0100000000000006 usb | |
0100000000000007 tma.stub/htc.stub | |
0100000000000008 boot2 |
BEGIN:VCALENDAR | |
VERSION:2.0 | |
PRODID:-//Nygma//Festivals//EN | |
CALSCALE:GREGORIAN | |
METHOD:PUBLISH | |
BEGIN:VTIMEZONE | |
TZID:Asia/Shanghai | |
LAST-MODIFIED:20231018T085200Z | |
TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Shanghai | |
X-LIC-LOCATION:Asia/Shanghai |
Architecture is 'the important stuff, whatever that is' or 'the parts that are hard to change later'. An architect analyzes business, domain, and other requirements to develop solutions that satisfy a list of prioritized architectural characteristics (-ilities). We should consider time and change with respect to architecture, or evolvability.
Software ecosystems are in a state of dynamic equilibrium. New languages, tools, methods constant force new equilibriums to emerge (free OS, linux, + free operations, puppet, led to the shift to containers). The pace of change in technology is constantly and rapidly changing in unexpected ways. We should architect systems knowing the landscape will change. Make ease of change a principal of architecture, remove the 'hard to change' definition of architecture.
An evolutionary architecture supports guided, incremental change across multiple dimensions. Evolvability is a meta characteristic that
# should works on any cloud-init enabled hypervisor (openstack.. ) | |
# start from a normal ubuntu 20.04 install as minimal was not available for ARM64 | |
# Since ARM64 machines has higher RAM, Shrinking is desired but not necessary. Instead we will increase tmpfs to 1700MB | |
# Getting root (if sudo -i doesn't work then set a root password beforehand using 'sudo passwd root' | |
sudo -i | |
# make sure we are on the highest kernel, so we can delete all the others ... |
#Thanks to - https://github.com/damienvanrobaeys/Build-PS1-Systray-Tool | |
# - https://www.systanddeploy.com/2018/12/create-your-own-powershell.html | |
# - https://stackoverflow.com/questions/54649456/powershell-notifyicon-context-menu | |
# - https://adamtheautomator.com/powershell-async/ | |
[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | out-null | |
[System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | out-null |
Hi there! Since this post was originally written, nvm
has gained some new tools, and some people have suggested alternative (and potentially better) approaches for modern systems. Make sure to have a look at the comments to this article, before following this guide!
Trickier than it seems.
import os | |
from glob import glob | |
import re | |
import urllib.request | |
paths = glob('Notes/*.md') | |
results = [] | |
for path in paths: | |
with open(path, 'r', encoding='UTF-8') as fin: | |
data = fin.read() |
Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.
- Follow standard conventions.
- Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
- Boy scout rule. Leave the campground cleaner than you found it.
- Always find root cause. Always look for the root cause of a problem.