搜尋此網誌

2026年4月29日星期三

Testing New Al Alloy Tripod


Mode: Manual
ISO 400, 35mm(APS-C), f/5.6, 1/40s
Flash: compulsory; Tripod Used, Image Stabilization of Lens Off 
Flash Exposure Compensation is lowered.
Two-second Self-Timer set

    When using a tripod with the Canon EOS 1500D and EF-S 18-135mm f/3.5-5.6 IS USM lens, I have the advantage of stability, which allows me to use slower shutter speed to capture more ambient light while using the flash to fill in the subject.

    Since I don't have bounce flash, I use direct flash. This is more powerful but can create harsh shadows and "flat" lighting. Since I have a tripod, I can use it to manage the quality of image while dealing with the harsh direct light.

    Flash Exposure Compensation (FEC): Direct flash often looks "too bright" or creates unnatural highlights. Go into the camera's flash menu and lower the FEC to -1 or -2. This softens the effect, making the flash look like a subtle "fill" light rather than a harsh strobe.

    Balance with ambient light: Since I have a tripod, I don't have to rely on the flash only. Use a slower shutter speed (e.g. 1/30 or 1/40s) to allow room light to contribute to the exposure.

    Recommended Setting

Mode: Manual
Allows me to keep settings consistent.

Shutter Speed: 1/40s - 1/60s
Slow enough to pull in background light.

Aperture: f/4 - f/5.6
Keeps a good balance between light intake and sharpness.

ISO: ISO 400-800
Keeps the image clean while ensuring the flash doesn't have to work at full power.

Flash Power: -1 or -2 FEC
Prevents the subject from looking "blown out" or too harsh.

    Image stabilization is often turned off on a tripod because the stabilizer is designed to look for movement and correct it; when the camera is already perfectly still, some systems can "hunt" or make tiny corrections that create blur instead of reducing it.

Information from Perplexity.ai and edited

善用曝光補償

例子︰夜景

相機測光認為是太暗,用光圈先決的話,相機會自動調光一些。這個時候,曝光補償的設定取決於拍攝意圖。

例子︰雪景

相機測光認為是太亮,用光圈先決的話,相機會自動調暗一些。這個時候要將曝光補償設定成 +1~1.5EV。

2026年4月27日星期一

Python Quiz

In Python, int(9.9) returns 9.

Here’s why:

The int() function truncates the decimal part of a floating-point number.

It does not round — it simply drops everything after the decimal point.

So 9.9 becomes 9.

In Python, any nonzero number (whether int, float, or complex) evaluates to True when converted to bool.

In Python, int and Decimal are both numeric types, but they serve very different purposes: int is for whole numbers, while Decimal is for precise decimal arithmetic, often used in finance or scientific contexts.

When you run bytes(4) in Python, it creates a bytes object of length 4, filled with zeros.

b = bytes(4)

print(b)   # b'\x00\x00\x00\x00'

bytes(n) → produces a sequence of n bytes.

Each byte is initialized to 0 (\x00 in hexadecimal).

The result is immutable, meaning you cannot change its contents after creation.

b = bytes(5)

print(b)   # b'\x00\x00\x00\x00\x00'

In Python, writing with triple quotes (''' ... ''' or """ ... """) creates a multi‑line string.

Microsoft Copilot

微距拍攝

    在微距拍攝中通常不需要使用大光圈,因為即使在中小光圈下,景深已經非常淺。在 1:1 放大倍率下,即使使用 f/8–f/11,景深也只有幾毫米。若用大光圈 (f/2.8–f/4),景深可能縮到不到 1 毫米,導致昆蟲的眼睛清晰但觸角完全模糊。大光圈下焦點範圍極窄,任何微小晃動或主體移動都會失焦。若使用小光圈 (如 f/16),光線較少,需要額外補光或使用閃燈。這也是為什麼常見的工作光圈範圍在 f/8–f/11。

    標準鏡頭即使靠近拍攝,放大倍率通常不足 1:1,景深相對較深,因此不需要像微距那樣擔心「極淺景深」。在標準鏡頭特寫中,使用大光圈 (f/1.8–f/2.8) 仍能創造淺景深效果,讓背景柔和模糊。但因為放大倍率不高,景深不會像微距那樣縮到幾乎不可用,焦點範圍仍有一定寬度。

Microsoft Copilot

2026年4月23日星期四

Practice in Python

In Python, the expression int(hexNum, 16) means “convert a hexadecimal string into a decimal integer.”

Curly brackets: dictionaries

In Python, def is the keyword used to define a function.

In Python, a for loop is used to repeat a block of code for each item in a sequence (like a list, tuple, string, or range).

for variable in sequence:

    # code block

variable → takes each value from the sequence one by one.

sequence → the collection you want to loop through.

The code block runs once for each item.

In Python, char isn’t a separate data type like in some other languages (for example, C or Java).

def check_number(n):

    if n > 0:

        return "Positive"

    elif n == 0:

        return "Zero"

    else:

        return "Negative"

print(check_number(5))   # Positive

print(check_number(0))   # Zero

print(check_number(-3))  # Negative

In Python, == is the equality operator. It’s used to check whether two values are equal.

print(2 ** 3)   # 8   (2 raised to the power of 3)
print(5 ** 2)   # 25  (5 squared)
print(10 ** 0)  # 1   (any number to the power of 0 is 1)

甚麼是風骨

……風本身是活動的,而且風碰到物,也會使物活動起來︰風吹在樹葉上,樹葉就搖動了;風吹在水上,水面就起波紋了。所以,「風」是一種動力。在具體作品中,「風」就是一種感發的力量,這是我對「風」字的比較現代的解釋……對於人和動物而言,骨是使之能夠站立起來的一種支柱。那甚麼東西使你的作品挺立起來呢?一個是要有非常真切,實在的內容;再一個就是要有很好的組織結構。所以「風骨」就是由內容思想結合了句法、章法而傳達出來的一種感發的力量。我們講詩詞的結構,說它不僅要有平仄這些外表文字的結構,還要有一個情意的結構……

節錄自葉嘉瑩《知人論詩》

2026年4月21日星期二

焦距與景深

焦距越長,景深越淺。即使在相同光圈下,長焦鏡頭的可接受清晰範圍更窄。

拍攝距離

為了保持主體大小一致,使用長焦鏡頭時需要站得更遠。這會改變背景與主體的相對比例,使背景看起來更模糊。

壓縮效果 (Compression Effect)

長焦鏡頭會「壓縮」前景與背景的距離感,背景看似更近、更大,模糊也更顯著。

模糊圈 (Circle of Confusion)

長焦鏡頭在相同構圖下,背景的模糊圈會被放大,因此失焦效果更強烈。

Microsoft Copilot

Longer focal lengths (telephoto lenses) magnify the image more than wide-angle lenses. This magnification also enlarges the blur circles of out-of-focus objects.

Aperture: Changing your f-stop adjusts the angle of the light cone. A smaller aperture (higher f-number) makes the cone narrower, reducing the size of the blur circles and increasing the depth of field.

When your subject is very close to the lens, the light rays entering the camera are highly divergent. Even a tiny movement forward or backward from the focus point causes the light cone to widen rapidly. The Circle of Confusion grows large very quickly, resulting in a shallow depth of field.

For subjects far away, the light rays are more parallel. As you move away from the perfect focus plane, the light cone widens much more slowly.

Google AI mode

Bytes Object in Python

In Python, a bytes object is an immutable sequence of integers in the range 0–255, used to represent raw binary data. It’s similar to a string, but instead of characters, it stores bytes.

Immutable: Once created, it cannot be modified (like str).

When you see a b prefix in Python output, it means the object is a bytes literal — raw binary data rather than a regular string.

UTF-8 is the most widely used character encoding today, representing every Unicode character using 1–4 bytes. It is backward-compatible with ASCII, meaning the first 128 characters (like English letters and digits) are encoded exactly the same as ASCII.

Name: Unicode Transformation Format – 8-bit.

Type: Variable-length encoding (1 to 4 bytes per character).

A bytearray in Python is very similar to a bytes object, but with one key difference: it is mutable. That means you can change its contents after creation, unlike bytes which are immutable.

In Python, string slice notation lets you extract parts of a string (substrings).

Hexadecimal (often shortened to “hex”) is a base-16 numbering system. Instead of using only digits 0–9 like decimal (base-10), it uses 16 symbols:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Compact: Easier to read than long binary strings.

Direct mapping: Each hex digit = exactly 4 bits (a “nibble”).

Common uses: Memory addresses, color codes (#FF0000 = red), encoding binary data, debugging.

# Decimal to hex print(hex(255)) # 0xff # Hex to decimal print(int("ff", 16)) # 255 # Binary ↔ Hex print(bin(0xff)) # 0b11111111 print(hex(0b1010)) # 0xa

x in 0xff

In 0xff, the 0x prefix is Python’s (and many other languages’) way of saying: “this number is written in hexadecimal (base‑16)”.

Microsoft Copilot

《燦爛千陽》最終章

約瑟終將重返迦南,何哀傷之有,

茅舍終將成為玫瑰花園,何哀傷之有,

倘有洪水將至,奪走生靈,

挪亞方舟必將在暴風眼中指引你的方向,何哀傷之有。

Why grieve? For Joseph shall return to Canaan.

Why grieve? For the hut shall become a rose garden.

Though the flood may come and sweep away all life,

the Ark of Noah shall guide you through the storm.

---哈菲茲詩句


出生地:約瑟是雅各與拉結的兒子,出生於迦南地(創世記 30:22–24)。迦南是亞伯拉罕家族的應許之地。

被賣到埃及:因兄弟嫉妒,他被賣為奴隸到埃及(創世記 37:28)。這使他離開了迦南。

在埃及崛起:約瑟憑智慧與解夢能力,成為埃及法老的宰相,掌管糧倉(創世記 41:40–41)。

饑荒與家族遷徙:迦南遭遇饑荒,雅各一家被迫前往埃及求糧。約瑟因此與家人重聚,並安排他們定居在埃及的歌珊地(創世記 47:6)。

歸返的象徵:雖然約瑟死於埃及,但他要求後代將自己的骸骨帶回迦南(創世記 50:25),象徵他最終的歸返。

Microsoft Copilot


卡勒德.胡賽尼《燦爛千陽》

李靜宜譯

Khaled Hosseini "A Thousand Splendid Suns"

controversy

diligence: careful work or great effort

facet: a particular part or aspect of something

temptation: the desire to do or have something that you know is bad or wrong

jeopardize: to risk harming or destroying something/somebody

exonerate: to officially state that somebody is not responsible for something that they have been blamed for

construe: to understand the meaning of a word, a sentence or an action in a particular way

implicit: suggested without being directly expressed

controversy: public discussion and argument about something that many people strongly disagree about, think is bad, or are shocked by

travesty: something that does not have the qualities or values that it should have, and as a result is often considered wrong or offensive

"BG computing" typically refers to background computing (processes running behind the scenes, such as data syncing, indexing, or cloud tasks).

in retrospect: thinking about a past event or situation, often with a different opinion of it from the one you had at the time

grateful: feeling or showing thanks because somebody has done something kind for you or has done as you asked

forge: to move forward in a steady but powerful way

artisan: a person who does work that needs a special skill, making things with their hands

accreditation: official approval given by an organization stating that somebody/something has achieved a required standard

notion: an idea, a belief or an understanding of something

far-fetched: ​very difficult to believe

commonplace: ​done very often, or existing in many places, and therefore not unusual


Bill Gates "Source Code"

Online Dictionaries Used:

hk.dictionary.search.yahoo.com

www.oxfordlearnersdictionaries.com

2026年4月14日星期二

Strings in Python

In Python, you can concatenate strings using several methods: the + operator for simple joining, join() for efficiency with multiple strings, and formatted approaches like f-strings or format() for readability.

f"My number is: {5}"

F-strings (formatted string literals, introduced in Python 3.6) allow you to embed expressions directly inside a string.

Anything inside {} is evaluated as a Python expression, and its result is converted to a string.

In your case, {5} is just the literal integer 5. Python evaluates it, converts it to "5", and inserts it into the string.

literal: being the most basic meaning of a word or phrase, rather than an extended or poetic meaning

paragraph = """This is a paragraph. It can span multiple lines. No need for explicit newline characters.""" print(paragraph)

Output:

This is a paragraph. It can span multiple lines. No need for explicit newline characters.

In Python, the backslash (\) is an escape character. It signals that the next character has a special meaning or should be treated differently.

\n → newline

the text doesn't stop until it sees \'\'\'

Here, the backslashes are escaping the single quotes so Python doesn’t confuse them with the closing triple quotes. Without the backslashes, Python would think the string ended too early.

Microsoft Copilot

2026年4月13日星期一

Investigation

summon somebody (to something) | summon somebody to do something (formal) to order somebody to come to you

preamble: an introductory fact or circumstance

rack up: to collect something, such as profits or losses in a business, or points in a competition

flabbergasted: ​extremely surprised and/or shocked

"Crunch through" generally means to persistently and quickly process a large amount of work, data, or obstacles, often under pressure.

sneak: to go somewhere secretly, trying to avoid being seen

accomplice: ​a person who helps another to commit a crime or to do something wrong

far-fetched: difficult to believe and unlikely to be true

contrition: ​the feeling of being very sorry for something bad that you have done

ramification: one of a number of complicated and unexpected results that follow an action or a decision

idle: (of machines, factories, etc.) not in use

peril: serious danger

reimburse: to pay back money to somebody which they have spent or lost

grievous: ​very serious and often causing great pain or difficulty

expunge something (from something) to remove or get rid of something, such as a name, piece of information or a memory, from a book or list, or from your mind

gulp: to swallow, but without eating or drinking something, especially because of a strong emotion such as fear or surprise

succinct: expressed clearly and in a few words

intimidating: ​frightening in a way that makes a person feel less confident

explicit: (of a statement or piece of writing) clear and easy to understand, so that you have no doubt what is meant

verdict: an official judgement made in court or at an inquest

roughshod: to treat somebody badly and not worry about their feelings

regent: a member of a governing board (as of a state university)

standout: a person or thing that is very easy to notice because they are or it is better, more impressive, etc. than others in a group

critique: ​a piece of written criticism of a set of ideas, a work of art, etc.

the advent of something/somebody the coming of an important event, person, invention, etc.

conciliatory: ​having the intention or effect of making angry people calm

blot: ​a spot or dirty mark on something, made by ink (= colored liquid in a pen), etc.

hamper somebody/something to prevent somebody from easily doing or achieving something

pursuit: the act of looking for or trying to get something

admonish: to tell somebody strongly and clearly that you do not approve of something that they have done

parlance: a particular way of using words or expressing yourself, for example one used by a particular group


Bill Gates "Source Code"

Online Dictionaries Used:

hk.dictionary.search.yahoo.com

www.oxfordlearnersdictionaries.com

2026年4月3日星期五

Booleans in Python

bool(1j)

“Is the complex number 1j considered True or False?”

- 1j is a complex number with real part 0 and imaginary part 1.

- In Python, any nonzero number (whether int, float, or complex) evaluates to True when converted to bool.

- Only 0, 0.0, or 0j (complex zero) evaluate to False.

A complex number is a number that has two parts:

z=a+bj

  • a → the real part (ordinary number line)
  • b → the imaginary part (multiplied by j in Python, or i in mathematics)

Key ideas

  • The imaginary unit j (or i in math) is defined as \sqrt{-1}.
  • Complex numbers extend the real numbers so we can solve equations like x^2+1=0, which has no real solution but has complex solutions x=\pm i.

Visual intuition

You can think of complex numbers as points on a 2D plane:

  • The horizontal axis = real part
  • The vertical axis = imaginary part
    So 3+4j is the point (3, 4).

bool('')

you’re converting an empty string ('') into a boolean value.

Rule

  • Empty sequences/collections (like '', [], {}, ()) evaluate to False.
  • Non-empty sequences/collections (like 'hello', [1], (0,)) evaluate to True.

[]List

  • A list is an ordered, mutable sequence of elements.
  • You can store mixed types (numbers, strings, other lists).
  • Lists allow indexing, slicing, and modification
my_list = [1, 2, 3, "hello"]
my_list.append(4)       # add element
print(my_list[0])       # access first element → 1

"hello" is indeed the fourth element (index 3, since Python starts counting at 0). 

{}Dictionary (or empty set, depending on usage)
  • By default, {} creates an empty dictionary.
  • A dictionary stores key-value pairs.
  • Keys must be unique and immutable (like strings, numbers, tuples).
my_dict = {"name": "Alice", "age": 25}
print(my_dict["name"])   # → Alice

()Tuple
  • A tuple is an ordered, immutable sequence.
  • Similar to a list, but you cannot change its contents after creation.
  • Often used for fixed collections of items.

my_tuple = (10, 20, 30) print(my_tuple[1]) # → 20

Data structures include list, tuple, dictionary and set.

explicit: clear and easy to understand, so that you have no doubt what is meant

a = 5

b = 5

if a - b:

    print('a and b are not equal!')

No output will be printed.

weatherIsNice = True
haveUmbrella = False

if not (haveUmbrella or weatherIsNice):
    print('Stay inside')
else:
    print('Go for a walk')

1. weatherIsNice = True
2. haveUmbrella = False
3. Inside the if condition:
-(haveUmbrella or weatherIsNice) → evaluates to (False or True)True.
-not (True)False.
4. Since the condition is False, the else block runs.

Logic explained
  • The condition says: “If you do not have an umbrella and the weather is not nice, then stay inside.”
  • In this case, the weather is nice, so you can go for a walk even without an umbrella.
weatherIsNice = True
haveUmbrella = False

if (not haveUmbrella) and (not weatherIsNice):
    print('Stay inside')
else:
    print('Go for a walk')

Logic

This condition means:

  • “Stay inside only if you don’t have an umbrella and the weather is not nice.”
  • In this case, the weather is nice, so you go for a walk.
weatherIsNice = True
haveUmbrella = False

if haveUmbrella or weatherIsNice:
    print('Go for a walk')
else:
    print('Stay inside')

Logic

This condition means:

  • “If you either have an umbrella or the weather is nice, then go for a walk.”
  • Only if both are false (no umbrella and bad weather) will it print “Stay inside.”
Microsoft Copilot

藏書票

藏書票 (Ex Libris) 被譽為「紙上寶石」或「書上蝴蝶」,是一種黏貼在書籍扉頁(書冊封面後的第一頁)上的微型版畫,用來標示書籍的所有權。

Explained mainly by Google Gemini

The Birth of Microsoft

It was Paul who had the next thought: Since we were writing software for microcomputers, how about combining those two words? I agreed. We had our name: Micro-Soft.

sip: ​to drink something, taking a very small amount each time

MITS: Micro Instrumentation and Telemetry Systems

flabbergasted: extremely surprised and/or shocked

stunned: ​very surprised or shocked; showing this

A retrorocket (or retro-rocket) is a small, auxiliary rocket engine designed to produce thrust opposite to a spacecraft’s motion, enabling deceleration, braking, or maneuvering.

Altair is a global technology company providing software and AI solutions for simulation, data analytics, and high-performance computing (HPC).

A flagging economy refers to a nation's financial system that is becoming weaker, slower, or less effective, often characterized by low growth, rising unemployment, or reduced consumer spending.

the brink (of something) if you are on the brink of something, you are almost in a very new, dangerous or exciting situation

bankruptcy: IPA[ˈbæŋkrʌptsi]

prototype (for/of something) the first design of something from which other forms are copied or developed

mock-up: a model or a copy of something, often the same size as it, that is used for testing, or for showing people what the real thing will look like

cobble together: to produce something quickly and without great care or effort, so that it can be used but is not perfect

deluge: a large number of things that happen or arrive at the same time

stuff: to fill a space or container tightly with something

innards: the parts inside a machine

surpass: ​to do or be better than somebody/something

pay off: (informal) (of a plan or an action, especially one that involves risk) to be successful and bring good results

The gamble paid off.

artisanal: made in a traditional way by someone who is skilled with their hands

gravitas: the quality of being serious

behemoth: ​something that is very big and powerful, especially a company or organization

cloak: a thing that hides or covers somebody/something

ominously: ​in a way that suggests that something bad is going to happen in the future

DARPA stands for the Defense Advanced Research Projects Agency.

bean counter: a person who works with money, for example as an accountant and who wants to keep strict control of how much money a company spends

sole: only; single

lofty: very high and impressive

rudimentary: dealing with only the most basic matters or ideas


Bill Gates "Source Code"

Online Dictionaries Used:

hk.dictionary.search.yahoo.com

www.oxfordlearnersdictionaries.com

Google AI overview