[{"categories":["Diary Ramblings"],"content":"Saw an interesting topic on Zhihu: the greatest dividend of the current era might be \u0026ldquo;the life of a Heisei shut-in.\u0026rdquo;\nThis statement sounds a bit self-deprecating. A person lives alone in a room with the air conditioner running, the lights on, drinks and snacks within reach, and an endless supply of animations, movies, games, and short videos on the screen; there\u0026rsquo;s no desire to go out, and no need to. Work can be done online, meals can be delivered to the door, and the knowledge and experience of strangers is always just a search away. Such a life would have been hard to imagine in the past five thousand years, yet today it has become the default option that many people can simply turn to.\nWe\u0026rsquo;re so used to it that we rarely realize how luxurious it is.\nCondensing thousands of years of hard work into a single room In ancient times, people spent a considerable portion of their day keeping life going: obtaining food, preserving it, fetching water, keeping warm, lighting their homes, sheltering from the weather, and dealing with physical discomfort. Even without painting the past as unduly bleak, it\u0026rsquo;s hard to deny that comfort was not the default background of life, but rather a brief state that had to be continuously earned through labor.\nToday, an ordinary room can stay cool in summer and warm in winter. Refrigerators extend the life of our food, washing machines take over repetitive manual tasks, and electric lights ensure that night is no longer synonymous with darkness. All we have to do is flip a switch or accept a modest electricity bill.\nThis is not the miracle brought about by the invention of a single genius, but rather the cumulative result of energy, industry, transportation, cities, and public services working together. When modern people feel they have \u0026ldquo;done nothing,\u0026rdquo; they are often standing on the work of many people, many machines, and many generations.\nA so-called homebody is, first and foremost, a person held up by infrastructure.\nEntertainment became nearly infinite for the first time In the past, if a person wanted to spend an evening, their options were limited. A book had to be written, printed, and brought to hand; a play required actors, a stage, and an audience to be present in the same place; music and stories had a definite time and location.\nNow, we have a near-overwhelming abundance of personal entertainment. Lying in bed, one can enter other people\u0026rsquo;s stories, other people\u0026rsquo;s courts, other people\u0026rsquo;s universes within seconds. Screens offer not only shows but also social connections, news, tutorials, games, and a constantly updating public square.\nThe greatness of this matter is not that entertainment has become more sophisticated, but that the entry points to entertainment are finally no longer scarce. A person who is unsociable, physically impaired, temporarily unemployed, or simply doesn\u0026rsquo;t want to see anyone today can still have an entire evening\u0026rsquo;s worth of the world.\nThis wasn\u0026rsquo;t a \u0026ldquo;lazy choice\u0026rdquo; in the past, because such a choice simply didn\u0026rsquo;t exist at all.\nKnowledge Has Also Been Put Into the Pocket Another thing I really love about this era is that many problems no longer need to wait for a knowledgeable person to appear before they have a chance of being answered.\nWhen you want to know how to fix something, you just search it; to learn a new language, you open a course; when curious about an unfamiliar place, you first look at the map and others\u0026rsquo; records. The answers may not be reliable, and the information may not bring wisdom, but the distance between \u0026ldquo;I want to know\u0026rdquo; and \u0026ldquo;I can start searching\u0026rdquo; has become incredibly short.\nIn the past, knowledge was often bound to geography, identity, wealth, and lineage. Today, an ordinary person sitting in a small room can occasionally come into contact with experiences that far exceed the radius of their own life. Increased access does not mean equal access to understanding; devices, networks, education, and attention still draw boundaries. Even so, this openness alone is enough to transform a person\u0026rsquo;s inner life.\nA shut-in doesn\u0026rsquo;t necessarily withdraw from the world. Sometimes, they simply access an oversized world in a low-cost way.\nBonuses Don\u0026rsquo;t Automatically Transform Into Happiness Of course, comfortable rooms are not happiness itself.\nA person can have air conditioning, the internet, and unlimited content, yet still feel anxious, lonely, and unable to sleep. Too many choices become noise; being always online becomes a new form of labor; food delivered to your door cannot handle relationships, illness, and aging for you. Those who find it easiest to enjoy the \u0026ldquo;shut-in life\u0026rdquo; usually already have relatively stable housing, devices, income, and personal time. For others, solitude is not freedom, but the absence of anywhere else to go.\nSo, what truly deserves cherishing about \u0026ldquo;Heisei shut-ins\u0026rdquo; is not shutting yourself away, nor refusing to make an effort, but rather acknowledging: people have the right to devote part of their lives to resting, to playing, to zoning out, to doing things that produce nothing.\nWe don\u0026rsquo;t have to trade every free hour for skills, income, or a better version of ourselves.\nThis may be the most misunderstood form of abundance Humans are always prone to taking present-day conveniences for granted and treating what they already have as if it were as natural as air. We continue to feel anxious about bigger houses, faster devices, and higher incomes, yet we rarely feel amazed by the fact that \u0026ldquo;tonight we can safely lie in bed and watch a movie of our own choosing.\u0026rdquo;\nBut if we stretch the timeline a little, we will find that the leisure enjoyed by an ordinary person today might be something that even nobles in the past could not possess in its entirety: stable temperature, abundant food, continuous lighting, private entertainment, knowledge from far away, and the freedom to choose what comes next without having to ask for permission.\nThis is not to say that we are already living in paradise. It is only to say that, before complaining about this era, we might occasionally acknowledge the gifts it has given us.\nBeing a \u0026ldquo;Heisei homebody\u0026rdquo; who can close the door, turn on the screen, and spend a quiet night at home is, in a sense, a huge dividend handed down from five thousand years of living history to ordinary people.\nPerhaps the real question is: when we finally earn the right to rest, will we be able to stop feeling ashamed of resting?\n写作附记 Original Prompt $blog-writer Saw an interesting topic on Zhihu: the biggest dividend of the current era — the life of a HEISEI shut-in. This is something unimaginable over the past five thousand years, yet now it\u0026rsquo;s within easy reach.\nWriting Instructions This article is an original essay based on a user-provided topic, not a reproduction or restatement of the original Zhihu post; \u0026ldquo;Heisei freeter\u0026rdquo; (平成废宅) is used as an observational term provided by the user, and its origin has not been investigated or verified.\n","date":"2026-07-22","language":"en","permalink":"https://ttf248.life/en/p/the-greatest-dividend-is-the-heisei-otaku-life/","tags":["Era Observation","Lifestyle","Shut-in","Happiness","Note"],"title":"The life of a Heisei shut-in is the greatest dividend of this era.","year":"2026"},{"categories":["Investment"],"content":"After working for ten years, I once allocated time deposits during a period of relatively high interest rates, and later bonds became a more important part of my portfolio. The time deposits and bond products I held could provide a return of about 4.5% at one point. At that time, I was accustomed to putting my money in an appropriate term and letting time do most of the work.\nRecently, the returns on the cash management products in my account have noticeably declined, and my past approach needs to be rearranged. Over the past six months, I have been reducing my pure bond positions and increasing my allocation to \u0026ldquo;fixed income+\u0026rdquo; products. Here, the \u0026ldquo;+\u0026rdquo; is not intended to make the return figures look more attractive, but because a single low-volatility asset may not cover the target for the next period of time.\nWhat I want to organize is how to arrange a ten-year fund for myself when conditions such as low interest rates, the inability to guarantee the subscription status of cross-border funds, and the possibility of a pullback in the equity market all exist simultaneously.\nFrom yield changes back to the cash flow question Past interest rate experience easily leads me to think of asset allocation as \u0026ldquo;picking the place with a higher return.\u0026rdquo; When the low-risk return in my account drops, I start by asking myself: over the next five to ten years, does every sum of money I am certain I will need have its own place; can the money I won\u0026rsquo;t use for a long time tolerate net value fluctuations; and when fluctuations occur, do I still have a cushion left in the cash I hold.\nI set my investment horizon to start at five years, and treat a decade as a planning cycle. This is the timeframe I give myself: it allows different market phases to all have a chance to appear on the books, and it accounts for volatility and recovery periods in my expectations. The horizon itself does not replace risk judgment, nor does it commit to recovering returns by some specific date.\nFor me, the sequence of fund planning takes precedence over the specific investment choices: first set aside funds for near-term expenses and emergency cash, then establish acceptable position limits for different categories, and only afterward discuss long-term systematic investments. When encountering a major market downturn, whether one can continue to stick to the plan often depends on whether there is still cash on hand that does not need to be liquidated.\nI previously wrote an article on funds and fixed-income investments, documenting my experiences with funds and fixed-income products at the time; this old record also serves as a reminder that capital allocation should be re-examined based on my own stage in life and market conditions.\nReal-world Constraints of Two Cross-Border Configurations In the long-term equity portion, I have allocated fund shares that track the corresponding indices of the Nasdaq 100 and S\u0026amp;P 500, and participated through small regular investments. When arranging this portion of funds, I encountered situations where the subscription status of QDII funds could not be guaranteed. Therefore, \u0026ldquo;buy the dip\u0026rdquo; is not an action that can be executed at any time in my plan.\nWhen the market is at a high level, I am reluctant to invest too much at once for fear of missing out; when a clear pullback actually occurs, the funds previously set aside may not be able to enter due to the subscription status. Market fluctuations and such subscription statuses are not within my control, so I cannot write them into a position-adding plan that is guaranteed to be executable.\nTherefore, I only regard the cross-border portion as a limited seat in my long-term plan, pre-constraining the total allocation and the rhythm of regular investments. This arrangement cannot change market valuations or subscription availability, but it prevents treating funds that must remain liquid as though they were freely available for averaging down at any time.\nRegarding the CSI 300 portion, I currently hold units of the corresponding index fund, and plan to gradually adjust to a CSI 300 enhanced strategy going forward. The arrangement of my base currency funds can be structured around my own cash flow, systematic investment pace, and reserved funds; if a drawdown occurs in the future, whether to increase investment will still be subject to the position cap determined in advance. This is the logic of my own plan and does not constitute a trading instruction for anyone.\nReviewing History with a Set of Reproducible Standards My actual dollar-cost averaging (DCA) uses the platform\u0026rsquo;s smart DCA feature, which buys more in bear markets and less in bull markets. However, I don\u0026rsquo;t have access to Alipay\u0026rsquo;s algorithm parameters, nor do I have records of each actual deduction, so the backtest below does not replicate the Alipay smart DCA algorithm, nor does it represent actual account returns.\nTo make the results verifiable, the backtest uses a more朴素 alternative rule: on the first available net value date of each calendar month, invest an equal amount of 1 cash unit, converting to shares at that day\u0026rsquo;s unit net value, and value at the end of the period using the last available unit net value.\nAnnualized Return: Calculated as annual XIRR based on all monthly invested cash flows and ending account value. Maximum Drawdown: Calculated based on the unit net value series over the fully available interval for the fund. Drawdown Recovery Time: The calendar days from the net value high point before the maximum drawdown, until the unit net value first recovers to or exceeds that high point. The NAV comes from the public historical NAV interface of East Money Tiantian Fund, fetched on July 22, 2026, using unit NAV rather than accumulated NAV or daily growth rate. Each fund uses its own full available range, and no long-term data has been truncated to make the comparison look complete.\nThis article uses unit net value as the data source calibration, without separately simulating account-level fees and frictions, including subscription and redemption fees, taxes, currency conversion costs, actual subscription restrictions, tracking errors, and other trading frictions; this also does not change the boundary that \u0026ldquo;equal monthly investment is merely a transparent alternative rule, not a reproduction of Alipay\u0026rsquo;s smart regular investment.\u0026rdquo;\nThis article uses unit net value as the data source calibration, without separately simulating account-level fees and frictions, including subscription and redemption fees, taxes, currency conversion costs, actual subscription restrictions, tracking errors, and other trading frictions; this also does not change the boundary that \u0026ldquo;equal monthly investment is merely a transparent alternative rule, not a reproduction of Alipay\u0026rsquo;s smart regular investment.\u0026rdquo;\nFund Code (Fund Name) Backtest Period Monthly Investment Count Annualized XIRR Maximum Drawdown Drawdown Recovery Time 001015 (Huaxia CSI 300 Index Enhancement A) 2015-02-10 to 2026-07-21 138 7.61% -42.02% 1,728 days 000051 (Huaxia CSI 300 ETF Link A) 2009-07-10 to 2026-07-21 205 5.77% -43.43% 1,857 days 270042 (GF NASDAQ-100 ETF Connect RMB (QDII) A) 2012-08-15 to 2026-07-20 168 17.11% -31.18% 588 days 019305 (JPMorgan S\u0026amp;P 500 Index (QDII) RMB C) * 2023-09-01 to 2026-07-20 35 13.95% -17.44% 127 days 019305 has only 35 natural months of samples, having experienced significantly fewer market phases than the other three funds; its annualized XIRR, maximum drawdown, and recovery time only describe this short sample period. It cannot be compared horizontally with long-term samples, and even less should it be used to infer that future drawdowns will be smaller or recovery will be faster. I first look at the maximum drawdown and the time it takes to recover. Taking this set of historical samples as an example, 001015\u0026rsquo;s maximum drawdown started from the peak on June 12, 2015, and it took 1,728 days for the unit net value to reach or exceed that peak again for the first time on March 5, 2020; for 000051, it took 1,857 days. Facing unrepaired unrealized fluctuations for several consecutive years is a scenario that this ten-year plan must accommodate.\nBacktesting Didn\u0026rsquo;t Make the Decision for Me, But It Changed How I Frame the Question Backtesting transforms my originally vague expectations into several questions that need to be answered in advance.\nFirst, whether the reserved capital is sufficient to cover a repair period longer than expected. Drawdowns are not just weeks-long dips on a line chart—at least in the two CSI 300 samples mentioned above, it took more than four years to recover the previous high. If that portion of money is preset for short-term use, it becomes difficult to stick with the plan.\nSecond, whether the top-up assumption for cross-border assets depends on a subscription status that cannot be guaranteed. I keep existing positions, their possible fluctuations, and the fund arrangements of other assets within a range I can bear; top-up is merely an option when subscription conditions permit.\nThird, whether the drawdown rules for my own principal have clearly defined boundaries. I will first write down the total amount of this portion of funds, how many installments to invest, and to what extent the price drops before I stop adding more; until this is clearly written down, I won\u0026rsquo;t treat temporary position increases as a rule.\nIn my experience with low interest rate environments, no single asset can return the past feeling of returns intact. My adjustment is to put bonds back into the stabilizing portion of the portfolio, place equities and cross-border allocations into longer cycles, and incorporate subscription status, cash flow, and drawdowns into the plan altogether.\nA five-year starting commitment and a ten-year cycle is the time I\u0026rsquo;m willing to reserve for this plan. It is not a profit guarantee letter. When the next market fluctuation comes, I hope I won\u0026rsquo;t have to make a sudden decision about whether to sell off emergency funds, nor will I have to rewrite the entire plan due to changes in the subscription status of QDII funds I encounter.\nData Description This article conducts backtesting using publicly available historical net value data from East Money Tiantian Fund: 001015 (Huaxia CSI 300 Index Enhanced A), 000051 (Huaxia CSI 300 ETF Linked A), 270042 (GF NASDAQ 100 ETF Linked RMB (QDII) A), 019305 (JPMorgan S\u0026amp;P 500 Index (QDII) RMB C). The net value was fetched on July 22, 2026, and the available data ranges and calculation methods are listed in the table below.\nBacktests are calculated solely based on the unit net value from the data source, without separately simulating account-level expenses and frictions, including subscription and redemption fees, taxes, currency conversion costs, actual subscription limits, tracking error, and other trading frictions. Historical data does not represent future performance; the personal capital arrangements mentioned in the article are for illustrative purposes only and do not constitute investment, trading, or allocation advice.\nReferences Eastmoney Daily Fund Historical NAV API: https://api.fund.eastmoney.com/f10/lsjz (scraped on 2026-07-22; based on unit NAV) Eastmoney Fund Pages: https://fund.eastmoney.com/001015.html, https://fund.eastmoney.com/000051.html, https://fund.eastmoney.com/270042.html, https://fund.eastmoney.com/019305.html (verified fund names on 2026-07-22) 写作附记 Original Prompt $blog-writer Thinking about financial allocation in the era of interest rate cuts. Having worked for ten years, most of the time I experienced the high interest rate era. In the first four years, relying on fixed-term deposits could yield decent returns, and in the following five years, relying on bonds was also okay; 4.5% was not difficult in the past. With changes in the international environment, China has accelerated into an interest rate cut cycle, and the annualized return of Yu\u0026rsquo;ebao has fallen below 1%. In the past six months, I have been adjusting my bond position by reducing it and increasing my allocation to fixed income+ bonds. I configured Nasdaq 100 ETF and S\u0026amp;P 500 ETF for regular fixed investment. QDII foreign exchange quotas are restricted, so I made small regular investments. They are currently at high levels and not suitable for large amounts. There is a problem with US stock index ETFs: when there is a sharp drop, the quota is used up, so how to add to the position. I also allocated the CSI 300 Index and subsequently adjusted it to the CSI 300 Enhanced category, which is easier to control. When encountering pullbacks, add to the position, and capital planning needs to be reasonable. Follow the plan and run a backtest on returns. The regular fixed investments are all intelligent fixed investments, buying more in bear markets and less in bull markets, using Alipay\u0026rsquo;s algorithm. Organize the backtest data into a table and place it in the main text: annualized return, maximum drawdown, and drawdown recovery time. The fund codes used for the backtest: CSI 300 ETF Enhanced: 001015, CSI 300 ETF: 000051, Nasdaq 100 ETF: 270042, S\u0026amp;P 500 ETF: 019305.\nThe new investment plan has an investment cycle starting from five years, with ten years as one cycle.\n","date":"2026-07-22","language":"en","permalink":"https://ttf248.life/en/p/ratecut-allocation-plan/","tags":["investment","Regular Fixed Investment in Funds","Asset Allocation","AI Inspiration Hub"],"title":"In a low interest rate environment, I have rearranged a ten-year financial plan.","year":"2026"},{"categories":["Financial Knowledge Base"],"content":"A piece of news on July 1st about the expansion of after-hours fixed-price trading in the Shanghai and Shenzhen markets brought an old question back to the trading desk: does the sudden volume that appears after the close actually count as \u0026ldquo;after-hours trading\u0026rdquo;? If you compare it with the MOC (Market on Close) in U.S. equities or the CAS (Closing Auction Session) in Hong Kong, the answer is: they all organize liquidity around the closing price, but each sits at a different stage of price formation.\nThe key issue here is not the extra half-hour of trading time, but rather that more orders can bring the execution results closer to the official closing price. The closing price serves not only as the endpoint of the daily candlestick, but also as a common public benchmark used for index calculation, fund valuation, and performance comparison. For accounts that need to track a benchmark, an intraday \u0026ldquo;seemingly cheaper\u0026rdquo; fill cannot necessarily substitute for a fill that aligns with the benchmark.\nFirst, Break Down the Three \u0026ldquo;Closing\u0026rdquo; Concepts In market discussions, people often collectively refer to various transactions around the close as \u0026ldquo;closing trades.\u0026rdquo; They should be categorized into at least three types:\nMechanism Whether the closing price is formed here Typical Use Closing pricing or closing auction Yes Aggregates orders to form the official closing benchmark Post-close pricing trades at the established closing price No Continues matching at the already-formed closing price Extended trading session No, prices can still change Continues quoting and trading after the close The first category addresses \u0026ldquo;what is today\u0026rsquo;s official closing price.\u0026rdquo; The second category addresses \u0026ldquo;the price has been set, and who else is willing to trade at this price.\u0026rdquo; The third category comes close to what is commonly referred to as extended post-market trading: participants continue to trade, and transaction prices may deviate from the official closing price.\nTherefore, MOC is not synonymous with after-hours trading in U.S. stocks, nor is CAS a single order. The after-hours fixed-price trading currently being discussed for A-shares refers to price-matching that occurs after the closing price has been formed. What all three have in common is the closing benchmark as their objective, though they occupy different positions within the institutional framework.\nA-Share Expansion: Fixed Price, Not Quantity Public reports indicate that the Shanghai and Shenzhen markets plan to expand the scope of after-hours fixed-price trading from the stocks listed on the STAR Market and the ChiNext to all A-shares and ETFs in the Shanghai and Shenzhen markets; the reported order matching period is 15:05—15:30, with the closing price of the day used as the transaction price, and orders are matched continuously on a price-time priority basis. Since the materials available for this round are media paraphrases, the actual implementation date, scope of securities, and the timing for order acceptance and cancellation should be subject to the rules and notices of the exchanges in effect at the time.\nThe business implications of this mechanism are straightforward: the closing price has already been determined, and if both buyers and sellers accept that price, they can continue queuing for matching. It does not rediscover the price nor produce a second closing price. Price risk is compressed into the question of \u0026ldquo;whether to accept today\u0026rsquo;s closing price,\u0026rdquo; but execution risk still remains—an effective order does not guarantee a counterparty. In other words, what it locks in is the price, not the quantity or liquidity.\nIt is also necessary to avoid conflating the closing mechanisms of the Shanghai and Shenzhen markets into a single concept. The Shenzhen market has a closing call auction arrangement, while the official closing price of the Shanghai market is calculated according to its own rules. Regardless of how the respective closing prices are formed, post-close fixed-price trading occurs after the official closing price has already been determined.\nETFs are the part of this expansion most prone to misreading. After-hours fixed-price trading handles secondary-market buying and selling of ETFs, and does not directly process ETF creation and redemption; creations and redemptions still follow the fund contract and applicable business rules. It may give ETF management, market making, and accounts that use ETFs or their constituents for rebalancing an additional secondary-market execution window, making trade prices more likely to align closely with the closing benchmark used for valuation or tracking.\nU.S. Stock MOC: Accepting the Final Price in the Closing Auction MOC can be understood as a \u0026ldquo;closing order executed at the final closing price.\u0026rdquo; It sends the order into the closing auction: at the time of placing the order, the final price is not yet known; it expresses a willingness to accept the official closing price ultimately formed by the auction, rather than issuing an ordinary market order after the close.\nThis distinction matters. Post-close trading at a fixed price is based on a known, fixed closing price; MOC, on the other hand, is based on the final closing price that is yet to be determined through auction. The former is primarily responsible for matching after the closing price has been formed, while the latter brings orders into the closing price formation process. MOC also does not guarantee unconditional execution—order cutoff times, cancellation restrictions, imbalance information, and executable conditions all vary by trading venue rules. One should not interpret \u0026ldquo;U.S. MOC\u0026rdquo; as a single, identical rule across the entire market.\nWhy is there such demand in the closing window? Index funds, ETFs, and accounts benchmarked against the official closing price tend to care more about the consistency between execution price and the benchmark. On event days such as index rebalancing or portfolio rebalancing, this demand may be more concentrated. However, from a single MOC order or a surge in volume near the close, one cannot directly infer that a certain type of capital is necessarily bullish or bearish.\nHK Stock CAS: Not an Order, but a Closing Auction Session CAS is the Closing Auction Session for Hong Kong stocks. It is not an order name equivalent to MOC, but rather a set of procedures for organizing the closing price determination: it brings together buy and sell intentions during the closing phase around elements such as the reference price, allowed price range, order input, matching, and random closing. Random closing means that participants cannot precisely predict the exact ending moment.\nIn terms of hierarchy, MOC is a type of order participating in the closing auction, while CAS refers to the entire set of sessions and procedures that host the closing auction. A-share post-session fixed-price trading, on the other hand, is matched at the official closing price after it has been formed. The eligible securities, phase divisions, and price restrictions of CAS must be subject to the rules in effect on the HKEX on that day; one cannot assume that a stock listed in Hong Kong will necessarily have the same CAS liquidity.\nScale: Unify the Definition First, Then Comparison Becomes Meaningful There is no single natural, unified answer to \u0026ldquo;how much trading is related to the close.\u0026rdquo; Some count notional value traded in the last few minutes of the full session, some count the closing auction; some include ETFs while others only count stocks; and still others put the closing auction, after-hours fixed-price trading, and extended trading sessions under the same denominator. Even when all are labeled \u0026ldquo;share of closing-session trading,\u0026rdquo; differences in date, market scope, currency, and trade definition mean they cannot be compared directly side by side.\nThis round did not obtain the latest official scale data from all three venues on the same date and under the same statistical caliber, so the rumored shares or amounts have not been written up as conclusions. What can be confirmed is the structural significance: these mechanisms provide different paths for orders that need to be close to the closing benchmark; on specific days such as index rebalancings, the related flow may be significantly amplified. As for which venue is \u0026ldquo;larger\u0026rdquo; and what share of the full day it accounts for, the statistical caliber must first be aligned.\nSeeing Huge Volume at the Close, First Ask Five Questions Did the trade occur before, during, or after the formation of the official closing price? Are the orders accepting the final closing price, or still expressing a new limit-price judgment? Are there any known benchmark execution demands on that day, such as index adjustments or ETF rebalancing? Is there a more direct explanation, such as order imbalance, corporate information, or market events? Does the data cover stocks, ETFs, or a specific trading session? The closing price attracts transactions not because it inherently carries stronger directional signals, but because it is the most public and most easily comparable price. MOC, CAS, and A-share post-session fixed-price trading are all different tools for organizing liquidity around this benchmark: MOC participates in the closing auction, CAS organizes the closing auction procedure, while A-share post-session fixed-price trading continues to match orders after the price is formed. Understanding this division of labor is more reliable than directly translating late-session volume expansion into a bullish or bearish judgment. This article only serves as an explanation of trading mechanisms and does not constitute any trading advice.\nReferences \u0026ldquo;Important Adjustments! Starting Tomorrow, A-Share Trading Rules Will Change\u0026rdquo;, Beijing Daily citing China Fund Journal, reposted by Sohu, 2026-07-05: https://www.sohu.com/a/1045971173_163278 \u0026ldquo;Closing Without Wrapping Up? What Exactly Does the New A-Share Trading Rule Say?\u0026rdquo;, The Paper, 2026-06-10: https://www.thepaper.cn/newsDetail_forward_33342443 写作附记 Original Prompt $blog-writer The A-share market has recently expanded its post-close trading, the U.S. stock market has MOC (Market on Close), and the Hong Kong stock market has CAS (Closing Auction Session). Please explain this business in detail, including its background, scale, and business implications.\n","date":"2026-07-14","language":"en","permalink":"https://ttf248.life/en/p/close-price-trading-moc-cas/","tags":["AI Inspiration Hub","a-stock","Market Microstructure","ETF","Closing Auction","MOC","CAS"],"title":"Trading Around the Close: A-Share After-Hours Fixed-Price Trading, MOC, and CAS","year":"2026"},{"categories":["Computer","Investment"],"content":"This article starts with a month-by-month record rather than a model leaderboard. Since November 2022, the AI industry has changed its questions almost every month: first, whether ordinary people could use large models; then, whether models could see, listen, generate, and reason; followed by whether they could invoke tools and operate computers; and finally, whether these capabilities could retain users, enter budgets, and generate cash flow.\nThe timeline only includes high-signal events that have already occurred. Model releases, open-weight releases, publicly available products, policy effective dates, and corporate governance changes are eligible; announcements, rumors, and incomplete funding rounds are not written as established facts. The first entry of each month is fixed as that month\u0026rsquo;s stock market, with a maximum of 4 entries; the remaining entries record AI industry events, through July 13, 2026 as of July.\nThe stock records here use Yahoo Finance\u0026rsquo;s monthly data; U.S. stocks, A-shares, and Hong Kong stocks are not forced into the same index. Each monthly table retains the previously listed high-volatility names and adds new names worth recording this month; \u0026ldquo;妖股\u0026rdquo; is a colloquial term for stocks with particularly notable monthly gains, volatility, turnover, or thematic spillover. It is neither a fundamental rating nor a buy/sell recommendation. The \u0026ldquo;monthly change\u0026rdquo; in the table is calculated based on the month-end adjusted closing price relative to the previous month\u0026rsquo;s adjusted closing price, while the \u0026ldquo;cumulative since listing\u0026rdquo; is compounded from these monthly changes and does not represent actual portfolio returns. The current month is up to July 13, 2026; for precise prices, please refer to the Yahoo historical quotes link at the end of the article.\n2022: The Gateway Opens November: ChatGPT Goes Public (NVDA +25.4%) Market Notes: The Nasdaq continues to fluctuate amid interest rate hikes and recession expectations, while NVIDIA has rebounded from its lows, but AI has yet to form an independent market main theme; meme stocks: no clear AI meme stocks have emerged yet.\nMonster Stocks Cumulative Table (As of 2022-11, Month-End Adjusted Closing Composite; NVIDIA as Leading Reference)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +25.4% +25.4% On November 30, OpenAI released the ChatGPT research preview. The chat interface became the first mass-market product entry point for large models, transforming model capabilities from demonstrations at research institutions into software that ordinary people could use repeatedly. OpenAI: Introducing ChatGPT Judgment of the month: What matters is not whether ChatGPT is the first to generate text, but that natural language has for the first time become a software interface with a sufficiently low barrier to entry.\nDecember: From Demonstration to Diffusion (NVDA -13.6%) Market Notes: U.S. tech stocks pulled back amid rate hike expectations, with Nvidia weakening along with the semiconductor sector; the spread of ChatGPT has not yet immediately translated into stock market action, and no clear \u0026ldquo;meme stock\u0026rdquo; has emerged.\nMonster Stocks Cumulative Table (as of 2022-12, month-end adjusted closing composite; Nvidia as benchmark leader)\nAsset (Code) Type Month Added Monthly Change Cumulative Since Added NVIDIA (NVDA) Core Leader Reference 2022-11 -13.6% +8.3% ChatGPT enters a rapid diffusion phase. Subsequent OpenAI release notes show that users began requesting product features around context, web access, plugins, and code interpreter. The chat product was no longer just a one-off Q\u0026amp;A demo. ChatGPT Release Notes Judgment for this month: The first industry increment comes from usage habits, not from new model names. Users first learn to delegate tasks to models, and only then do developers begin to look for workflows in which models can be embedded.\n2023: Capabilities, Open Weights, and Capital Expenditures Accelerate Simultaneously January: Cloud and Office Begin to Bind (BBAI +385.2%) Market Records: US growth stocks rebounded from their 2022 lows, with Microsoft, NVIDIA, and AMD initially traded as cloud and chip recovery plays; C3.ai (AI) began to show thematic volatility, but a stable group of AI speculative stocks had not yet emerged.\nMonster Stocks Cumulative Table (As of 2023-01, month-end adjusted close composite; NVIDIA as the bellwether benchmark)\nUnderlying (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +33.7% +44.9% C3.ai (AI) U.S. High Volatility 2023-01 +77.4% +77.4% BigBear.ai (BBAI) U.S. High Volatility 2023-01 +385.2% +385.2% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +35.2% +35.2% Microsoft announced the expansion of its partnership with OpenAI. The partnership places model capabilities, Azure computing power, and office software on the same commercial chain, with AI moving from a standalone product into cloud and productivity software. Microsoft: Extending the partnership with OpenAI Verdict of the month: The advantage of closed-source models has expanded from parameter scale to cloud, distribution, enterprise contracts, and continuous services.\nFebruary: Bard and LLaMA Fork (688256.SS +121.4%) Market Records: The competition between ChatGPT and Bard caused the AI narrative to be mapped onto stocks for the first time, with Nasdaq tech stocks strengthening; small-cap concept stocks such as C3.ai and BigBear.ai became the earliest batch of \u0026ldquo;meme stocks,\u0026rdquo; with their rises and falls driven more by sentiment and trading volume.\nMonster Stock Cumulative Table (as of end of February 2023, month-end adjusted closing composite; NVIDIA as the benchmark leader)\nTarget (Code) Type Inception Month Monthly Change Cumulative Since Inception NVIDIA (NVDA) Core Leader Benchmark 2022-11 +18.8% +72.1% C3.ai (AI) US High Volatility 2023-01 +13.8% +101.9% BigBear.ai (BBAI) US High Volatility 2023-01 -10.1% +336.2% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +110.7% +184.9% SoundHound AI (SOUN) US High Volatility 2023-02 +50.3% +50.3% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +50.7% +50.7% Cambricon (688256.SS) A-Share High Volatility 2023-02 +121.4% +121.4% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +79.4% +79.4% Google publicly introduces Bard. The search company begins to directly respond to ChatGPT, and generative AI enters competition for search entry points. Google: Bard and Search Updates Meta releases the LLaMA research model. A smaller model, open research, and community reproduction provide an important starting point for the open-model ecosystem. Meta: Introducing LLaMA Judgment of the Month: The same competition splits into two tracks: one vying for stable cloud access, and the other competing for developers, weights, and local deployment rights.\nMarch: GPT-4 Begins Connecting to Tools (300308.SZ +52.8%) Market Records: Under the impact of banking risks, capital instead concentrated on large-cap tech stocks and computing power, with NVIDIA becoming the main theme around GTC; A-share stocks such as 360, iFlytek, Cambricon, and Inspur showed significant ChatGPT-concept volatility.\nMonstrous Stocks Cumulative Table (as of 2023-03, month-end adjusted closing price compounding; NVIDIA included as the bellwether benchmark)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Bellwether 2022-11 +19.7% +106.0% C3.ai (AI) US High-Volatility 2023-01 +48.7% +200.2% BigBear.ai (BBAI) US High-Volatility 2023-01 -17.0% +262.0% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 +39.3% +296.8% SoundHound AI (SOUN) US High-Volatility 2023-02 -7.7% +38.7% Eoptolink (300502.SZ) A-Share High-Volatility 2023-02 +42.2% +114.3% Cambricon (688256.SS) A-Share High-Volatility 2023-02 +34.2% +197.1% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 -6.4% +67.9% Innolight (300308.SZ) A-Share High-Volatility 2023-03 +52.8% +52.8% March 14, GPT-4 launched for ChatGPT Plus. The discussion shifted from \u0026ldquo;can it write\u0026rdquo; to complex instructions, code, reasoning, and professional tasks. OpenAI: GPT-4 research March 23, ChatGPT began offering plugin experiments. Browsing, code interpreter, and third-party plugins pushed the model from responder to tool invoker. ChatGPT release notes Judgment of the month: The value of a model\u0026rsquo;s capabilities increasingly depends on access to up-to-date information, computing environments, and external services.\nApril: Google DeepMind Merger (300476.SZ +52.8%) Market Record: Leading US AI stocks are oscillating at high levels, while A-shares are shifting from broad-based gains to thematic rotation, with concept stocks such as iFlytek, Kunlun Tech, and 360 experiencing large volatility; \u0026ldquo;demon stocks\u0026rdquo; are starting to expand from model companies to the computing power and application chains.\nMonster Stocks Cumulative Table (as of 2023-04, month-end adjusted close composite; NVIDIA as the leading benchmark)\nTarget (Code) Type Month Listed Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 -0.1% +105.8% C3.ai (AI) US Stock – High Volatility 2023-01 -46.9% +59.4% BigBear.ai (BBAI) US Stock – High Volatility 2023-01 +18.9% +330.5% Kunlun Tech (300418.SZ) A-Share – High Volatility 2023-01 -12.0% +249.2% SoundHound AI (SOUN) US Stock – High Volatility 2023-02 -3.6% +33.7% Eoptolink Technology (300502.SZ) A-Share – High Volatility 2023-02 +22.4% +162.3% Cambricon (688256.SS) A-Share – High Volatility 2023-02 +1.9% +202.8% Foxconn Industrial Internet (601138.SS) A-Share – High Volatility 2023-02 +12.0% +88.1% Innolight (300308.SZ) A-Share – High Volatility 2023-03 +19.4% +82.4% Victory Giant Technology (300476.SZ) A-Share – High Volatility 2023-04 +52.8% +52.8% Google merges Google Brain with DeepMind to form Google DeepMind. Research teams, compute resources, and product roadmaps are now housed under a single organization, with Google clearly positioning the next-generation multimodal model as its core focus. Google: Formation of Google DeepMind Judgment of the Month: Model competition is not only about research breakthroughs; it also requires organizing talent, computing power, and product distribution.\nMay: Long Context Meets GPU Orders (SMCI +112.4%) Market Record: NVIDIA\u0026rsquo;s earnings report turned AI orders into a price signal for the entire market. On May 25, the stock price surged approximately 24% in a single day, and NVIDIA, AMD, Broadcom, as well as the A-share optical module chain were all追捧 together; this was the first batch of AI market movements with truly global diffusion effects.\nMonster Stocks Cumulative Table (As of 2023-05, Month-end Adjusted Closing Price Compound; NVIDIA as Benchmark Leader)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Bellwether 2022-11 +36.3% +180.5% C3.ai (AI) US High Volatility 2023-01 +124.5% +257.9% BigBear.ai (BBAI) US High Volatility 2023-01 -23.8% +228.0% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -29.8% +145.1% SoundHound AI (SOUN) US High Volatility 2023-02 +14.7% +53.4% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +13.0% +196.4% Cambricon (688256.SS) A-Share High Volatility 2023-02 -26.0% +124.0% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +39.6% +162.5% Innolight (300308.SZ) A-Share High Volatility 2023-03 +37.3% +150.5% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -13.9% +31.6% Super Micro Computer (SMCI) US High Volatility 2023-05 +112.4% +112.4% Palantir (PLTR) US High Volatility 2023-05 +89.8% +89.8% Marvell (MRVL) US High Volatility 2023-05 +48.2% +48.2% Anthropic releases a 100K context window. Long documents, contracts, and code repositories become model inputs, and long context begins to shift from a research metric to an enterprise product selling point. Anthropic: 100K Context Windows NVIDIA earnings turn AI expectations into GPU orders. In the first quarter of fiscal 2024, the data center business and next-quarter guidance significantly exceeded market expectations, and the market began to price AI along compute, networking, and data centers. NVIDIA: FY2024 Q1 Earnings Judgment for this month: The upstream infrastructure can receive real orders first, while the revenue, renewal, and profit of the application layer will come much later; the longer the context, the more important the source, permissions, and verification become.\nJune: APIs Start Calling Functions (SOUN +49.2%) Market Notes: US stocks continue to be priced around the \u0026ldquo;selling shovels\u0026rdquo; narrative, with Nvidia, Super Micro Computer, and networking equipment stocks strengthening; A-shares see rotation among computing power, optical modules, and servers, with pure-concept stocks like C3.ai showing noticeably higher volatility than the leading names.\nMonster Stock Cumulative Table (as of 2023-06, month-end adjusted closing price compounded; Nvidia as the leading benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +11.8% +213.6% C3.ai (AI) US Stock High Volatility 2023-01 -8.9% +226.0% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +6.3% +248.7% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -8.0% +125.5% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +49.2% +128.9% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 -23.6% +126.4% Cambricon Technologies (688256.SS) A-Share High Volatility 2023-02 -12.8% +95.4% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -9.2% +138.4% Innolight (300308.SZ) A-Share High Volatility 2023-03 -13.2% +117.4% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -6.3% +23.3% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +11.3% +136.4% Palantir (PLTR) US Stock High Volatility 2023-05 +4.2% +97.8% Marvell (MRVL) US Stock High Volatility 2023-05 +2.2% +51.5% OpenAI adds function calling, longer context, and lower pricing to the API. Developers can have the model output function parameters according to a JSON Schema, making the connection between the model and external tools more orchestrable. OpenAI: Function calling and other API updates Judgment for this month: The key to tool calling is not whether the model says \u0026ldquo;I can help you,\u0026rdquo; but whether it can reliably produce structured results that are executable and verifiable.\nJuly: Open Weights and Closed-Source Models Progress Together (SMCI +32.5%) Market Record: US-listed AI leaders have shifted from one-sided rallies to high-level consolidation, while A-share and Hong Kong AI trading relies more on thematic rotation; NVIDIA, AMD, optical module and server stocks remain the core, and no new \u0026ldquo;monster stocks\u0026rdquo; capable of consistently decoupling from the sector have yet emerged.\nMonster Stock Cumulative Table (as of 2023-07, month-end adjusted closing composite; NVIDIA included as benchmark leader)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Bellwether 2022-11 +10.5% +246.5% C3.ai (AI) US Stock High Volatility 2023-01 +15.3% +275.9% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -14.5% +198.1% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -2.3% +120.3% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -48.8% +17.2% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 -12.2% +98.8% Cambricon (688256.SS) A-Share High Volatility 2023-02 -3.2% +89.1% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -1.9% +133.9% Innolight (300308.SZ) A-Share High Volatility 2023-03 -10.5% +94.6% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -2.3% +20.4% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +32.5% +213.2% Palantir (PLTR) US Stock High Volatility 2023-05 +29.4% +155.9% Marvell (MRVL) US Stock High Volatility 2023-05 +9.1% +65.2% Meta and Microsoft release Llama 2. Model weights, starter code, and commercial usage terms are opened up more broadly, enabling developers to build their own applications either in the cloud or on-premises. Meta: Llama 2 Anthropic releases Claude 2. Longer input, coding, and reasoning capabilities extend the closed-source model competition beyond chat experiences to long documents and developer APIs. Anthropic: Claude 2 This Month\u0026rsquo;s Takeaway: \u0026ldquo;Open source\u0026rdquo; is beginning to become an industry slogan, but what truly affects deployment is licensing, weights, VRAM, inference speed, and maintenance responsibility.\nAugust: Code Llama Seizes the Code Entry Point (000158.SZ +26.2%) Market Notes: Nvidia\u0026rsquo;s earnings report is expected to continue supporting compute-related stocks, but high-valuation AI small-caps are beginning to diverge; Nvidia and Super Micro Computer are outperforming most software concept stocks, as the market shifts from \u0026ldquo;anything AI-related goes up\u0026rdquo; to seeking real orders.\nMonster Stocks Cumulative Table (as of 2023-08, month-end adjusted close composite; NVIDIA as the leading benchmark)\nTarget (Code) Type Listed Month This Month\u0026rsquo;s Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +5.6% +265.9% C3.ai (AI) US Stock High Volatility 2023-01 -26.1% +177.8% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -18.4% +143.3% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +6.0% +133.6% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +8.2% +26.8% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +0.9% +100.6% Cambricon (688256.SS) A-Share High Volatility 2023-02 -21.9% +47.7% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -10.1% +110.2% Innolight (300308.SZ) A-Share High Volatility 2023-03 +1.0% +96.5% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +1.4% +22.1% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -16.7% +160.9% Palantir (PLTR) US Stock High Volatility 2023-05 -24.5% +93.2% Marvell (MRVL) US Stock High Volatility 2023-05 -10.6% +47.7% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +26.2% +26.2% Meta releases Code Llama. Open-source models begin to specifically target code generation, completion, and local development scenarios. Meta: Code Llama This month\u0026rsquo;s verdict: coding formed its paid boundary first because coding tasks have testing, submission, and delivery of results, making the value much easier to verify than general chat.\nSeptember: ChatGPT Goes Multimodal (000158.SZ +21.9%) Market Records: Long-end U.S. Treasury yields rose, and AI leaders pulled back from their highs, though Nvidia remained the relatively strong core name; the A-share application sector cooled off, with no new sustained \u0026ldquo;demon stocks\u0026rdquo; emerging.\nMonster Stocks Cumulative Table (as of 2023-09, month-end adjusted close compounded; NVIDIA included as benchmark leader)\nAsset (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 -11.9% +222.4% C3.ai (AI) US Stock High Volatility 2023-01 -17.7% +128.6% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -7.9% +124.0% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -17.8% +92.0% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -20.2% +1.2% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 -31.8% +36.8% Cambricon (688256.SS) A-Share High Volatility 2023-02 -13.5% +27.8% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -25.3% +57.0% Innolight (300308.SZ) A-Share High Volatility 2023-03 -24.2% +49.0% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -9.2% +10.9% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -0.3% +160.1% Palantir (PLTR) US Stock High Volatility 2023-05 +6.8% +106.4% Marvell (MRVL) US Stock High Volatility 2023-05 -7.1% +37.2% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +21.9% +53.8% OpenAI brings image understanding, voice, and image-based conversation to ChatGPT. Text models are beginning to become the entry point for multimodal work. OpenAI: ChatGPT image and voice updates This Month\u0026rsquo;s Takeaway: The objects models handle have expanded from text to screenshots, meeting notes, and documents, but understanding materials does not mean knowing whether they are real.\nOctober: Image Generation Enters the Dialogue (300502.SZ +47.5%) Market Notes: U.S. tech stocks continue to be weighed down by interest rate expectations and export control concerns, with AI leaders trading sideways to weaker. In the A-share market, computing power and application stocks are taking turns rebounding; the rally looks more like a short-term thematic play, and no new global AI \u0026ldquo;dark horse\u0026rdquo; has emerged yet.\nMonster Stocks Cumulative Table (as of 2023-10, month-end closing price with adjusted composite; NVIDIA as the leading reference)\nTarget (Code) Type Listing Month Monthly Change Cumulative Since Listing Nvidia (NVDA) Core Leader Benchmark 2022-11 -6.3% +202.1% C3.ai (AI) US Stock – High Volatility 2023-01 -4.4% +118.6% BigBear.ai (BBAI) US Stock – High Volatility 2023-01 -15.9% +88.4% Kunlun Tech (300418.SZ) A-Share – High Volatility 2023-01 +2.6% +97.0% SoundHound AI (SOUN) US Stock – High Volatility 2023-02 -20.9% -20.0% Eoptolink (300502.SZ) A-Share – High Volatility 2023-02 +47.5% +101.8% Cambricon (688256.SS) A-Share – High Volatility 2023-02 +39.7% +78.5% Foxconn Industrial Internet (601138.SS) A-Share – High Volatility 2023-02 +2.6% +61.1% Innolight (300308.SZ) A-Share – High Volatility 2023-03 +8.2% +61.2% Victory Giant Technology (300476.SZ) A-Share – High Volatility 2023-04 -5.1% +5.2% Super Micro Computer (SMCI) US Stock – High Volatility 2023-05 -12.7% +127.1% Palantir (PLTR) US Stock – High Volatility 2023-05 -7.5% +90.9% Marvell (MRVL) US Stock – High Volatility 2023-05 -12.7% +19.8% Changshan Beiming (000158.SZ) A-Share – High Volatility 2023-08 -11.0% +36.9% DALL·E 3 enters ChatGPT Plus and Enterprise. Image generation moves from a standalone prompting tool into a conversational editing workflow, and OpenAI begins experimenting with a provenance classifier to identify generated content. OpenAI: DALL·E 3 Judgment of this month: The competition in AIGC is shifting from one-shot generation to iteration, copyright, provenance, and credibility.\nNovember: DevDay and Governance Crisis (PLTR +35.5%) Market Records: The leading U.S. AI stocks have regained strength amid earnings reports and the OpenAI governance crisis, with Microsoft, Nvidia, and AMD offering higher certainty than small-cap concept stocks; A-share AI trading has warmed up, but no new monster stocks have emerged that can deviate from fundamentals over the long term.\nMonster Stocks Cumulative Table (as of 2023-11, month-end adjusted closing price composite; NVIDIA as the leading benchmark)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +14.7% +246.5% C3.ai (AI) US High Volatility 2023-01 +19.3% +160.7% BigBear.ai (BBAI) US High Volatility 2023-01 +33.9% +152.3% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +15.6% +127.7% SoundHound AI (SOUN) US High Volatility 2023-02 +34.6% +7.7% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +6.5% +114.9% Cambricon (688256.SS) A-Share High Volatility 2023-02 -9.9% +60.8% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +0.1% +61.3% Innolight (300308.SZ) A-Share High Volatility 2023-03 +19.0% +91.8% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -4.2% +0.8% Super Micro Computer (SMCI) US High Volatility 2023-05 +14.2% +159.3% Palantir (PLTR) US High Volatility 2023-05 +35.5% +158.6% Marvell (MRVL) US High Volatility 2023-05 +18.0% +41.4% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -8.4% +25.4% Arm (ARM) US High Volatility 2023-11 +24.8% +24.8% OpenAI DevDay releases GPT-4 Turbo, Assistants API, vision capabilities, and lower prices. API, retrieval, function calling, and the assistants framework further embed models into applications. OpenAI: New Models and Developer Products Announced at DevDay OpenAI\u0026rsquo;s board abruptly fires and later reinstates Sam Altman. A governance crisis within a week makes model-company governance, shareholder relations, and talent dependency part of the industry\u0026rsquo;s reality. OpenAI: Sam Altman Returns as CEO, OpenAI Has a New Initial Board Judgment for this month: Beyond the risks associated with the model company\u0026rsquo;s products, there are also risks related to the board of directors, core talent, capital, and partners.\nDecember: Gemini Brings Multimodality into Products (BBAI +25.9%) Market Notes: Leading US AI stocks are approaching their yearly highs, with NVIDIA emerging as the clearest \u0026ldquo;selling picks and shovels\u0026rdquo; mainline for the year; the A-share and Hong Kong stock markets remain structurally driven, where servers and optical modules more easily attract capital than pure application concepts.\nMonster Stock Cumulative Table (as of 2023-12, month-end adjusted closing compound; NVIDIA as the leading reference)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +5.9% +266.9% C3.ai (AI) US High Volatility 2023-01 -1.4% +157.1% BigBear.ai (BBAI) US High Volatility 2023-01 +25.9% +217.6% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -20.7% +80.6% SoundHound AI (SOUN) US High Volatility 2023-02 -0.9% +6.7% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 -14.0% +84.8% Cambricon (688256.SS) A-Share High Volatility 2023-02 -18.5% +31.1% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -12.0% +41.9% Innolight (300308.SZ) A-Share High Volatility 2023-03 -9.0% +74.6% Victory Giant (300476.SZ) A-Share High Volatility 2023-04 -19.6% -18.9% Super Micro Computer (SMCI) US High Volatility 2023-05 +3.9% +169.5% Palantir (PLTR) US High Volatility 2023-05 -14.4% +121.4% Marvell (MRVL) US High Volatility 2023-05 +8.2% +53.0% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -11.7% +10.7% Arm (ARM) US High Volatility 2023-11 +22.2% +52.5% Google releases Gemini 1.0. Gemini is tiered from the start into Ultra, Pro, and Nano, covering cloud, applications, and on-device, with a strong emphasis on native multimodality. Google: Introducing Gemini This Month\u0026rsquo;s Assessment: Model competition is no longer limited to a single web chat entry point, but is simultaneously fighting for search, mobile, cloud, and developer tools.\n2024: Multimodality, Reasoning, and Agents Enter Products January: GPT Store Attempts to Distribute Assistants (SMCI +86.3%) Market Records: The beginning of 2024 was still driven by US semiconductors, with NVIDIA, AMD, Broadcom, Arm, and Super Micro Computer becoming high-beta targets; A-shares AI first rallied strongly then diverged, with no unified monster stock across the entire market yet.\nMonster Stocks Cumulative Table (as of 2024-01, month-end adjusted closing composite; Nvidia as the bellwether benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +24.2% +355.7% C3.ai (AI) US Stock High Volatility 2023-01 -13.7% +121.9% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -24.3% +140.5% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +36.1% +145.8% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -21.7% -16.4% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 +41.6% +161.7% Cambricon (688256.SS) A-Share High Volatility 2023-02 +53.3% +100.9% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +40.4% +99.3% Innolight (300308.SZ) A-Share High Volatility 2023-03 +50.9% +163.4% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +46.4% +18.7% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +86.3% +402.0% Palantir (PLTR) US Stock High Volatility 2023-05 -6.3% +107.4% Marvell (MRVL) US Stock High Volatility 2023-05 +12.4% +71.9% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +8.7% +20.4% Arm (ARM) US Stock High Volatility 2023-11 -6.0% +43.4% OpenAI launches GPT Store. Users can publish and discover custom GPTs, as model platforms begin experimenting with combining prompts, knowledge bases, and tools into distributable software units. OpenAI: Introducing the GPT Store Judgment of the Month: The challenges of platformization have shifted from \u0026ldquo;can we build an assistant\u0026rdquo; to discovery, distribution, permissions, and sustained usage.\nFebruary: Sora and the Long Context Race (SOUN +347.0%) Market Notes: Nvidia\u0026rsquo;s earnings reports and AI server orders have pushed the market into an acceleration phase. High-volatility targets such as Super Micro Computer, Arm, and SoundHound have taken turns becoming \u0026ldquo;meme stocks\u0026rdquo;; A-share optical modules, servers, and computing power leasing have also shown notable activity.\nMonster Stocks Cumulative Table (as of 2024-02, month-end adjusted closing composite; NVIDIA as the leading benchmark)\nAsset (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Benchmark 2022-11 +28.6% +486.0% C3.ai (AI) US Stock High Volatility 2023-01 +49.2% +231.0% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +107.4% +398.7% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -1.3% +142.6% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +347.0% +273.6% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +11.6% +192.1% Cambricon (688256.SS) A-Share High Volatility 2023-02 +2.8% +106.5% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +21.8% +142.7% Innolight (300308.SZ) A-Share High Volatility 2023-03 +0.9% +165.8% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +11.5% +32.3% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +63.5% +720.8% Palantir (PLTR) US Stock High Volatility 2023-05 +55.9% +223.4% Marvell (MRVL) US Stock High Volatility 2023-05 +5.8% +81.9% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -6.5% +12.6% Arm (ARM) US Stock High Volatility 2023-11 +99.6% +186.1% OpenAI releases research preview of Sora. Text-to-video brings the generative model competition to temporal consistency, physical world simulation, and video source verification. OpenAI: Sora Google releases Gemini 1.5, emphasizing long context and MoE architecture. The model begins handling longer videos, codebases, and multi-document inputs. Google: Gemini 1.5 Judgment of the Month: The next threshold for multimodality is not generating a single beautiful frame, but maintaining coherence over long durations and within long contexts.\nMarch: Models Begin to Stratify by Capability (300502.SZ +29.1%) Market Records: The GTC and NVIDIA\u0026rsquo;s new-generation computing power narrative continue to push semiconductors higher, with NVIDIA, Super Micro Computer, Arm, and the server chain seeing high-level position rotation; highly elastic A-share targets such as Cambricon, Industrial Fulian, and Zhongji Xudong experienced significant volatility.\nMonster Stocks Cumulative Table (As of 2024-03, Month-End Adjusted Close Compound; NVIDIA as Benchmark Leader)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Bellwether 2022-11 +14.2% +569.2% C3.ai (AI) US High Volatility 2023-01 -26.8% +142.3% BigBear.ai (BBAI) US High Volatility 2023-01 -39.0% +204.2% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +0.3% +143.3% SoundHound AI (SOUN) US High Volatility 2023-02 -20.6% +196.7% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +29.1% +277.1% Cambricon (688256.SS) A-Share High Volatility 2023-02 -1.2% +104.1% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +7.6% +161.2% Innolight (300308.SZ) A-Share High Volatility 2023-03 +19.0% +216.3% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +22.5% +62.1% Super Micro Computer (SMCI) US High Volatility 2023-05 +16.6% +857.0% Palantir (PLTR) US High Volatility 2023-05 -8.3% +196.6% Marvell (MRVL) US High Volatility 2023-05 -1.1% +79.9% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -4.5% +7.5% Arm (ARM) US High Volatility 2023-11 -11.4% +153.5% Anthropic releases the Claude 3 family. Opus, Sonnet, and Haiku cover the enterprise API with different capabilities, speeds, and costs; model selection begins to turn into a routing problem. Anthropic: Claude 3 family Verdict for this month: \u0026ldquo;The strongest model\u0026rdquo; is no longer the only answer; latency, price, and task difficulty are equally decisive in determining whether a product is usable.\nApril: Llama 3 Expands the Open Ecosystem (300308.SZ -39.7%) Market Recap: Rising interest rates and earnings expectations triggered a pullback in US AI stocks, with Super Micro Computer and some high-valuation small caps seeing steeper declines; the A-share AI theme cooled in sync, with the speculative rally temporarily fading.\nMeme Stock Cumulative Table (as of 2024-04, month-end closing price with adjusted composite; NVIDIA as the leading benchmark)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 -4.4% +539.8% C3.ai (AI) US High Volatility 2023-01 -16.8% +101.6% BigBear.ai (BBAI) US High Volatility 2023-01 -19.0% +146.4% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -12.7% +112.4% SoundHound AI (SOUN) US High Volatility 2023-02 -28.0% +113.6% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +0.3% +278.2% Cambricon (688256.SS) A-Share High Volatility 2023-02 +2.0% +108.1% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -6.5% +144.2% Innolight (300308.SZ) A-Share High Volatility 2023-03 -39.7% +90.7% Victory Giant (300476.SZ) A-Share High Volatility 2023-04 -7.9% +49.3% Super Micro Computer (SMCI) US High Volatility 2023-05 -15.0% +713.5% Palantir (PLTR) US High Volatility 2023-05 -4.5% +183.2% Marvell (MRVL) US High Volatility 2023-05 -6.9% +67.5% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -5.0% +2.1% Arm (ARM) US High Volatility 2023-11 -19.0% +105.3% Meta Releases Llama 3. The 8B and 70B models are open-sourced to the community, with expanded training data scale, tooling, and cloud partners. Meta: Llama 3 This month\u0026rsquo;s verdict: Open-weight models are shifting from research alternatives to a complete ecosystem, where deployers can trade cost and data boundaries for control.\nMay: GPT-4o Enables Real-Time Interaction (NVDA +26.9%) Market Records: NVIDIA\u0026rsquo;s earnings report once again confirms AI capital expenditures, with related stocks such as NVIDIA, Dell, Super Micro Computer, and TSMC strengthening; A-share optical module and server chains followed, with funds shifting back toward \u0026ldquo;hardware monster stocks\u0026rdquo; where orders can be seen.\nMonster Stocks Cumulative Table (as of 2024-05, month-end adjusted close composite; NVIDIA included as bellwether reference)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +26.9% +711.9% C3.ai (AI) US Stock High Volatility 2023-01 +31.2% +164.5% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -9.6% +122.8% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -7.5% +96.5% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +19.1% +154.4% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 +21.7% +360.3% Cambricon (688256.SS) A-Share High Volatility 2023-02 +13.7% +136.7% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +19.6% +192.1% Innolight (300308.SZ) A-Share High Volatility 2023-03 +23.1% +134.8% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +18.7% +77.2% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -8.7% +642.7% Palantir (PLTR) US Stock High Volatility 2023-05 -1.3% +179.5% Marvell (MRVL) US Stock High Volatility 2023-05 +4.4% +74.9% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -8.6% -6.7% Arm (ARM) US Stock High Volatility 2023-11 +19.1% +144.6% OpenAI released GPT-4o. Text, vision, and audio capabilities were unified into a single faster model, with real-time voice interaction becoming a product focus. OpenAI: GPT-4o Judgment for this month: Multimodal is no longer just about uploading files; real-time interaction is beginning to compete for mobile, customer service, and office entry points.\nJune: AI Enters Devices and Workflows (ARM +35.8%) Market Records: Nvidia briefly became the world\u0026rsquo;s most valuable company by market capitalization in June, with stock splits and index funds further amplifying the attention; in A-shares, computing power chain stocks such as Zhongji Innolight, Eoptolink, and Industrial Fulian outperformed most application stocks, and Nvidia was the most typical AI leader during this phase.\nMonster Stocks Cumulative Table (As of 2024-06, Month-End Adjusted Composite Close; NVIDIA as Benchmark Leader)\nTarget (Code) Type Entry Month Monthly Change Cumulative Since Entry NVIDIA (NVDA) Core Leader Benchmark 2022-11 +12.7% +815.0% C3.ai (AI) US Stock High Volatility 2023-01 -2.1% +158.9% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +0.7% +124.3% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -6.5% +83.7% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -21.8% +98.9% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 -5.3% +335.9% Cambricon (688256.SS) A-Share High Volatility 2023-02 +32.9% +214.5% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -13.0% +154.1% Zhongji Innolight (300308.SZ) A-Share High Volatility 2023-03 -6.1% +120.5% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +19.5% +111.7% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +4.4% +675.4% Palantir (PLTR) US Stock High Volatility 2023-05 +16.8% +226.5% Marvell (MRVL) US Stock High Volatility 2023-05 +1.6% +77.7% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -0.3% -6.9% Arm (ARM) US Stock High Volatility 2023-11 +35.8% +232.1% Apple launches Apple Intelligence. On-device models, personal context, Private Cloud Compute, and ChatGPT integration are woven into the system experience of iPhone, iPad, and Mac. Apple: Apple Intelligence Anthropic releases Claude 3.5 Sonnet. Improvements in code, vision, and tool use push coding and Agent tasks to the center of the closed-source model competition. Anthropic: Claude 3.5 Sonnet Judgment of the Month: AI is moving beyond \u0026ldquo;opening a website\u0026rdquo; and becoming embedded into devices and workflows, with privacy, permissions, and latency now part of the experience.\nJuly: Large Models Shift Toward Low-Cost Routing (SOUN +28.9%) Market Record: The market is rotating from large-cap tech stocks to small-caps and non-AI sectors, with NVIDIA and Super Micro Computer rallying first before pulling back; A-share computing power stocks are oscillating at high levels, and the characteristics of speculative stocks have shifted from \u0026ldquo;continuous rallies\u0026rdquo; to \u0026ldquo;high volatility and rapid rotation.\u0026rdquo;\nMonsters Stock Cumulative Table (as of end of July 2024, month-end adjusted closing composite; NVIDIA as the bellwether benchmark)\nTarget (Code) Type Inception Month MTD Change Cumulative Since Inception NVIDIA (NVDA) Core Benchmark 2022-11 -5.3% +766.5% C3.ai (AI) US High-Vol 2023-01 -7.6% +139.3% BigBear.ai (BBAI) US High-Vol 2023-01 +0.0% +124.3% Kunlun Tech (300418.SZ) A-Share High-Vol 2023-01 -9.9% +65.5% SoundHound AI (SOUN) US High-Vol 2023-02 +28.9% +156.4% Eoptolink (300502.SZ) A-Share High-Vol 2023-02 -6.0% +309.7% Cambricon (688256.SS) A-Share High-Vol 2023-02 -2.8% +205.7% Foxconn Industrial Internet (601138.SS) A-Share High-Vol 2023-02 -11.7% +124.4% Innolight (300308.SZ) A-Share High-Vol 2023-03 -15.9% +85.4% Victory Giant Technology (300476.SZ) A-Share High-Vol 2023-04 -12.3% +85.7% Super Micro Computer (SMCI) US High-Vol 2023-05 -14.4% +563.7% Palantir (PLTR) US High-Vol 2023-05 +6.2% +246.7% Marvell (MRVL) US High-Vol 2023-05 -4.1% +70.4% Changshan Beiming (000158.SZ) A-Share High-Vol 2023-08 +21.9% +13.4% Arm (ARM) US High-Vol 2023-11 -11.9% +192.6% Meta releases Llama 3.1 405B. Open-weight models begin directly competing with frontier closed-source models, and provide long-context and agent reference systems. Meta: Llama 3.1 OpenAI releases GPT-4o mini. Smaller and cheaper models drive localization or batching of simple tasks, and the economics of model routing become clearer. OpenAI: GPT-4o mini Judgment for this month: The unit economics of AI products don\u0026rsquo;t depend solely on the strongest model. Low-cost models that handle large volumes of simple tasks are what give API calls a chance to become long-term budget items.\nAugust: AI Act Enters into Implementation (000158.SZ +69.3%) Market Notes: The unwinding of the yen carry trade triggered a sharp selloff in global tech stocks followed by a rapid recovery, with the price swings of NVIDIA and AMD widening once again; AI stocks in the A-share market are still primarily driven by rotation, without the emergence of any new single monster stock.\nMonster Stock Cumulative Table (As of 2024-08, Month-end adjusted closing composite; NVIDIA as the bellwether benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +2.0% +783.9% C3.ai (AI) US High Volatility 2023-01 -12.7% +108.9% BigBear.ai (BBAI) US High Volatility 2023-01 +5.3% +136.2% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +38.3% +128.9% SoundHound AI (SOUN) US High Volatility 2023-02 -3.9% +146.4% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +38.6% +467.9% Cambricon (688256.SS) A-Share High Volatility 2023-02 +12.6% +244.2% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +23.1% +176.2% Innolight (300308.SZ) A-Share High Volatility 2023-03 +42.2% +163.6% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +17.4% +118.0% Super Micro Computer (SMCI) US High Volatility 2023-05 -37.6% +314.2% Palantir (PLTR) US High Volatility 2023-05 +17.1% +306.0% Marvell (MRVL) US High Volatility 2023-05 +13.8% +93.9% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +69.3% +92.0% Arm (ARM) US High Volatility 2023-11 -7.8% +169.8% EU AI Act takes effect. Risk classification, transparency, and general-purpose AI model obligations begin entering the formal implementation phase. EUR-Lex: Regulation (EU) 2024/1689 This month\u0026rsquo;s verdict: Regulation is no longer an abstract discussion before launch; it will gradually make its way into model documentation, deployment processes, and enterprise procurement checklists.\nSeptember: A new curve emerges for reasoning models (000158.SZ +180.8%) Market Notes: Rate cut expectations support a rebound in U.S. tech stocks, but capital is starting to diversify from high-valuation chips to software and platforms; Nvidia, Arm, and Super Micro Computer remain representative of high volatility, while A-share AI is in repeated bottom-building.\nMonster Stocks Cumulative Table (as of 2024-09, month-end adjusted closing composite; NVIDIA as benchmark leader)\nTicker (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +1.7% +798.9% C3.ai (AI) US Stock High Volatility 2023-01 +3.8% +116.8% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -8.2% +116.8% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +8.5% +148.4% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -4.7% +134.8% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +0.2% +469.0% Cambricon (688256.SS) A-Share High Volatility 2023-02 +56.9% +440.1% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -3.7% +166.0% Innolight (300308.SZ) A-Share High Volatility 2023-03 -7.6% +143.6% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +13.4% +147.2% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -4.9% +293.9% Palantir (PLTR) US Stock High Volatility 2023-05 +18.2% +379.9% Marvell (MRVL) US Stock High Volatility 2023-05 -5.4% +83.4% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +180.8% +439.2% Arm (ARM) US Stock High Volatility 2023-11 +7.6% +190.3% OpenAI released o1-preview and o1-mini. Reasoning models shift more computation into the inference stage, where math, code, and complex tasks begin to be priced based on \u0026ldquo;how much they think.\u0026rdquo; OpenAI: o1-preview and o1-mini This month\u0026rsquo;s verdict: Beyond \u0026ldquo;bigger,\u0026rdquo; a capability curve of \u0026ldquo;thinking longer\u0026rdquo; has emerged. Waiting, token, and review costs all need to be calculated together.\nOctober: Agents begin operating computers and searching (SMCI -30.1%) Market Recap: Leading U.S. AI stocks diverged around earnings reports, with Nvidia remaining relatively resilient, while Super Micro Computer and small-cap AI stocks saw larger volatility. In A-shares, capital rotated toward new themes such as computing power, satellite communications, and robotics, with the performance of speculative \u0026ldquo;demon stocks\u0026rdquo; clearly becoming shorter in cycle.\nMonster Stocks Cumulative Table (as of 2024-10, month-end adjusted close compounded; NVIDIA as the leading stock benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +9.3% +882.5% C3.ai (AI) US Stock High Volatility 2023-01 +1.7% +120.5% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +8.9% +136.1% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +13.2% +181.1% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +7.9% +153.4% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 -11.7% +402.4% Cambricon (688256.SS) A-Share High Volatility 2023-02 +23.7% +568.1% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -8.5% +143.4% Innolight (300308.SZ) A-Share High Volatility 2023-03 -11.4% +115.8% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -9.9% +122.7% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -30.1% +175.3% Palantir (PLTR) US Stock High Volatility 2023-05 +11.7% +436.1% Marvell (MRVL) US Stock High Volatility 2023-05 +11.2% +104.0% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -29.5% +280.2% Arm (ARM) US Stock High Volatility 2023-11 -1.2% +186.8% Anthropic releases computer use capability. Claude can now view the screen, move the mouse, click, and type—agents evolve from calling APIs to operating general-purpose software. Anthropic: computer use OpenAI releases ChatGPT Search. The chat entry point now directly returns real-time web answers with links, further narrowing the boundary between search and Q\u0026amp;A. OpenAI: ChatGPT search Judgment for this month: The value of an Agent comes from execution, but the stronger the execution capability, the less the permissions, prompt injection, error rollback, and responsibility boundaries can be omitted.\nNovember: MCP Connects Tools and Data (SOUN +85.1%) Market Record: After the U.S. election, AI themes heated up alongside software, autonomous driving, and robotics sectors. Targets such as NVIDIA, Palantir, and SoundHound strengthened but experienced sharp divergence; Hong Kong tech stocks rebounded in tandem, though a stable basket of \u0026ldquo;AI monster stocks\u0026rdquo; has yet to form.\nMonster Stocks Cumulative Table (as of 2024-11, month-end adjusted closing composite; NVIDIA as the leading benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Benchmark 2022-11 +4.1% +922.8% C3.ai (AI) US High Volatility 2023-01 +51.0% +233.0% BigBear.ai (BBAI) US High Volatility 2023-01 +44.0% +240.0% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -16.5% +134.7% SoundHound AI (SOUN) US High Volatility 2023-02 +85.1% +369.0% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +0.5% +405.0% Cambricon (688256.SS) A-Share High Volatility 2023-02 +17.3% +683.7% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -3.1% +135.8% Innolight (300308.SZ) A-Share High Volatility 2023-03 -2.5% +110.4% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +3.8% +131.2% Super Micro Computer (SMCI) US High Volatility 2023-05 +12.1% +208.6% Palantir (PLTR) US High Volatility 2023-05 +61.4% +765.3% Marvell (MRVL) US High Volatility 2023-05 +15.7% +136.0% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -22.9% +193.1% Arm (ARM) US High Volatility 2023-11 -5.0% +172.5% Anthropic open-sources Model Context Protocol. MCP attempts to connect models with external tools and data sources through a universal protocol, signaling that tool integration is evolving from single-company implementations toward an ecosystem-wide protocol. Anthropic: Model Context Protocol Judgment of the Month: The bottleneck for Agents is gradually shifting from the model itself to tool protocols, context management, and permission systems.\nDecember: Sora Goes Live, Gemini Enters the Agent Era (SOUN +113.1%) Market Records: By year-end, AI trading expanded from chips to software, data, and robotics. Nvidia experienced volatile trading at high levels, while high-beta names like Palantir and SoundHound behaved more like meme stocks; the A-share computing power chain failed to replicate the broad rally seen at the beginning of the year.\nMonstrous Stocks Cumulative Table (as of the end of 2024-12, month-end adjusted closing price compound; Nvidia as the leading comparison)\nTarget (Code) Type Month Added This Month Change Cumulative Since Added NVIDIA (NVDA) Core Leader Benchmark 2022-11 -2.9% +893.1% C3.ai (AI) US Stock High Volatility 2023-01 -7.4% +208.3% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +94.3% +560.7% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -4.1% +125.1% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +113.1% +899.5% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 +8.8% +449.4% Cambricon Technologies (688256.SS) A-Share High Volatility 2023-02 -13.1% +581.0% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -0.2% +135.3% Innolight Technology (300308.SZ) A-Share High Volatility 2023-03 -7.0% +95.7% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +26.5% +192.5% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -6.6% +188.3% Palantir (PLTR) US Stock High Volatility 2023-05 +12.7% +875.1% Marvell (MRVL) US Stock High Volatility 2023-05 +19.2% +181.3% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -11.7% +158.8% Arm (ARM) US Stock High Volatility 2023-11 -8.1% +150.4% OpenAI officially released Sora. Video generation moved from research preview to a subscription product, with watermarking and provenance identification measures enabled by default. OpenAI: Sora is here Google released Gemini 2.0, emphasizing the Agentic Era. Multimodal output, tool use, and real-time interaction became the next-generation product direction. Google: Gemini 2.0 This month\u0026rsquo;s takeaway: The main storyline of 2024 shifts from \u0026ldquo;what a model can generate\u0026rdquo; to \u0026ldquo;whether a model can complete a sequence of actions in real-world environments.\u0026rdquo;\n2025: Reasoning Costs Drop, Coding Becomes the Agent Proving Ground January: R1 Recalculation Costs, Stargate Increases Infrastructure Investment (688158.SS +155.2%) Market Record: On January 27, the DeepSeek shock caused Nvidia to drop nearly 17% in a single day, resulting in a rare massive market cap pullback; the U.S. stock computing power chain was sold off first, while A-share concept stocks first saw abnormal movements and then spread after the holiday, with Zhejiang Eastern, Meig Smart, Every Daily Interactive, UCloud, and others becoming representatives of high volatility. This month also saw a split行情 of \u0026ldquo;selling computing power overseas\u0026rdquo; and \u0026ldquo;buying applications domestically.\u0026rdquo; Reuters: DeepSeek Triggers AI Stock Sell-off\nMonster Stock Cumulative Table (as of 2025-01, month-end adjusted closing composite; NVIDIA as the leading benchmark)\nAsset (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Bellwether 2022-11 -10.6% +787.8% C3.ai (AI) US High-Volatility 2023-01 -8.9% +180.9% BigBear.ai (BBAI) US High-Volatility 2023-01 -4.7% +529.6% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 +0.3% +125.8% SoundHound AI (SOUN) US High-Volatility 2023-02 -28.7% +612.6% Eoptolink (300502.SZ) A-Share High-Volatility 2023-02 -23.6% +319.7% Cambricon (688256.SS) A-Share High-Volatility 2023-02 +28.6% +775.8% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 -1.2% +132.5% Innolight (300308.SZ) A-Share High-Volatility 2023-03 -12.1% +72.0% Victory Giant Technology (300476.SZ) A-Share High-Volatility 2023-04 -4.1% +180.5% Super Micro Computer (SMCI) US High-Volatility 2023-05 -6.4% +169.8% Palantir (PLTR) US High-Volatility 2023-05 +9.1% +963.9% Marvell (MRVL) US High-Volatility 2023-05 +2.2% +187.5% Changshan Beiming (000158.SZ) A-Share High-Volatility 2023-08 +41.6% +266.5% Arm (ARM) US High-Volatility 2023-11 +29.3% +223.8% Zhejiang Orient Holdings (600120.SS) A-Share Thematic High-Volatility 2025-01 +43.0% +43.0% MeiG Smart (002881.SZ) A-Share Thematic High-Volatility 2025-01 +40.9% +40.9% UCloud (688158.SS) A-Share Thematic High-Volatility 2025-01 +155.2% +155.2% QingCloud Technology (688316.SS) A-Share Thematic High-Volatility 2025-01 +139.2% +139.2% Talkweb Information (002261.SZ) A-Share Thematic High-Volatility 2025-01 +98.5% +98.5% DeepSeek released DeepSeek-R1 and open-sourced its weights and paper. The open reasoning model brought frontier capabilities, training methodology, and unit economics all into the global market spotlight at once. DeepSeek: R1 Release The U.S. announced the Stargate project. Partners including OpenAI, SoftBank, and Oracle unveiled a large-scale AI infrastructure plan, with the capex narrative continuing to concentrate around data centers. OpenAI: Stargate Project This month\u0026rsquo;s verdict: DeepSeek forces the market to recompute the cost per unit of capability, while Stargate demonstrates that total demand, total investment, and the cost per inference can all rise simultaneously.\nFebruary: Research, reasoning, and coding extending task chains (300476.SZ +58.7%) Market Notes: The DeepSeek theme continues to spread in the A-share market. After Zhejiang Eastern continues to hit the daily limit up/down, Magic Smart, UCloud, QingCloud Technology, and Talkweb Information take turns. The U.S. stock market is recovering from panic, with NVIDIA and cloud vendors returning to the logic of capital expenditure. A-share \u0026ldquo;demon stocks\u0026rdquo; and U.S. stock leaders are running at two different paces. Risk warning regarding Zhejiang Eastern and Magic Smart\nMonster Stocks Cumulative Table (As of 2025-02, month-end adjusted closing composite; NVIDIA included as the bellwether reference)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +4.0% +823.3% C3.ai (AI) US Stock High Volatility 2023-01 -25.2% +110.1% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +21.7% +666.3% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -6.9% +110.2% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -23.5% +445.2% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 +2.2% +329.0% Cambricon (688256.SS) A-Share High Volatility 2023-02 -15.3% +641.8% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -6.3% +117.9% Innolight (300308.SZ) A-Share High Volatility 2023-03 -2.2% +68.2% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +58.7% +345.1% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +45.4% +292.3% Palantir (PLTR) US Stock High Volatility 2023-05 +2.9% +994.7% Marvell (MRVL) US Stock High Volatility 2023-05 -18.6% +134.0% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -11.9% +222.9% Arm (ARM) US Stock High Volatility 2023-11 -17.5% +167.1% Zhejiang Orient (600120.SS) A-Share Thematic High Volatility 2025-01 -12.1% +25.7% Meig Smart (002881.SZ) A-Share Thematic High Volatility 2025-01 -15.9% +18.5% UCloud (688158.SS) A-Share Thematic High Volatility 2025-01 -26.3% +88.1% QingCloud Technology (688316.SS) A-Share Thematic High Volatility 2025-01 -17.0% +98.5% Talkweb Information (002261.SZ) A-Share Thematic High Volatility 2025-01 -14.6% +69.5% OpenAI released deep research. The model began independently performing multi-step web searches, reading, and synthesis, making research tasks a representative scenario for Agents. OpenAI: deep research Anthropic released Claude 3.7 Sonnet and Claude Code. A hybrid reasoning model and a terminal coding tool emerged simultaneously, making software engineering a testing ground for long-horizon Agents. Anthropic: Claude 3.7 Sonnet and Claude Code OpenAI released GPT-4.5 research preview. Large-scale pre-training and reasoning models formed two complementary paths, and attention began to shift toward training and serving costs beyond the model name itself. OpenAI: GPT-4.5 Judgment for this month: Reasoning models, web-connected research, and coding agents have collectively lengthened task chains and amplified the costs of context, waiting, and acceptance.\nMarch: Web Search Becomes an API Capability (NVDA -13.2%) Market Highlights: The market has shifted from the DeepSeek application theme to inference, computing power, and robotics. NVIDIA has regained attention around GTC; A-shares Tuowei Information, Changshan Beiming, Inspur Information, and the optical module chain have experienced high volatility, while Hong Kong tech stocks remain relatively active.\nMonster Stocks Cumulative Table (as of 2025-03, month-end adjusted close compound; NVIDIA as the leader benchmark)\nTarget (Code) Type Listing Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 -13.2% +701.5% C3.ai (AI) US High-Volatility 2023-01 -10.2% +88.7% BigBear.ai (BBAI) US High-Volatility 2023-01 -44.6% +324.5% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 -7.4% +94.7% SoundHound AI (SOUN) US High-Volatility 2023-02 -25.0% +308.9% Eoptolink (300502.SZ) A-Share High-Volatility 2023-02 -8.5% +292.5% Cambricon (688256.SS) A-Share High-Volatility 2023-02 +12.9% +737.5% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 -9.1% +98.0% Innolight (300308.SZ) A-Share High-Volatility 2023-03 -15.4% +42.3% Victory Giant (300476.SZ) A-Share High-Volatility 2023-04 -9.3% +303.7% Super Micro Computer (SMCI) US High-Volatility 2023-05 -17.4% +224.0% Palantir (PLTR) US High-Volatility 2023-05 -0.6% +988.2% Marvell (MRVL) US High-Volatility 2023-05 -32.9% +57.0% Changshan Beiming (000158.SZ) A-Share High-Volatility 2023-08 +1.7% +228.4% Arm (ARM) US High-Volatility 2023-11 -18.9% +116.6% Zhejiang Orient (600120.SS) A-Share Thematic High-Volatility 2025-01 -6.6% +17.4% Meig Smart (002881.SZ) A-Share Thematic High-Volatility 2025-01 +3.0% +22.1% UCloud (688158.SS) A-Share Thematic High-Volatility 2025-01 -13.5% +62.7% QingCloud (688316.SS) A-Share Thematic High-Volatility 2025-01 -16.7% +65.4% Talkweb Information (002261.SZ) A-Share Thematic High-Volatility 2025-01 +16.4% +97.3% Google releases Gemini 2.5. \u0026ldquo;Thinking models\u0026rdquo; have become the core narrative of the Gemini series, with long-context and multimodal reasoning continuing to advance toward productization. Google: Gemini 2.5 Anthropic launches Web Search for the Claude API. Search capability has expanded from a standalone chat product into an API tool that developers can compose. Anthropic: Claude can now search the web Judgment for This Month: Connectivity is no longer just a product toggle, but an orchestratable capability within the Agent architecture.\nApril: Model Comparison Unit Becomes a Complete Task (PLTR +40.3%) Market Notes: Tariff and growth concerns triggered a rapid pullback in global tech stocks, with NVIDIA, AMD, Super Micro Computer, and AI infrastructure stocks falling before recovering; A-share high-level computing power stocks diverged, as the market began prioritizing \u0026ldquo;whether orders can be landed\u0026rdquo; over thematic hype.\nMonster Stock Cumulative Table (as of 2025-04, month-end adjusted closing compound; NVIDIA as the leading benchmark)\nTarget (Code) Type Inclusion Month This Month\u0026rsquo;s Change Cumulative Since Inclusion Nvidia (NVDA) Core Benchmark 2022-11 +0.5% +705.5% C3.ai (AI) US Stock High Volatility 2023-01 +4.6% +97.3% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +19.2% +406.0% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +4.8% +104.0% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +14.4% +367.8% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 +38.2% +442.4% Cambricon (688256.SS) A-Share High Volatility 2023-02 -14.2% +618.6% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +4.8% +107.6% Innolight (300308.SZ) A-Share High Volatility 2023-03 +12.0% +59.4% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +18.2% +377.2% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -7.0% +201.4% Palantir (PLTR) US Stock High Volatility 2023-05 +40.3% +1426.7% Marvell (MRVL) US Stock High Volatility 2023-05 -5.1% +49.0% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -2.2% +221.1% Arm (ARM) US Stock High Volatility 2023-11 +6.8% +131.3% Zhejiang Orient (600120.SS) A-Share Thematic High Volatility 2025-01 -6.2% +10.1% Meig Smart (002881.SZ) A-Share Thematic High Volatility 2025-01 -11.9% +7.5% UCloud (688158.SS) A-Share Thematic High Volatility 2025-01 -13.3% +41.1% QingCloud Technology (688316.SS) A-Share Thematic High Volatility 2025-01 -12.7% +44.4% Tarchy Information (002261.SZ) A-Share Thematic High Volatility 2025-01 -12.0% +73.6% Meta releases Llama 4 Scout and Maverick. The open-weight models add native multimodality and MoE architecture, with the community roadmap continuing to compete for deployment rights. Meta: Llama 4 OpenAI releases the GPT-4.1 family. Long context, instruction following, and coding become the main selling points of the API release. OpenAI: GPT-4.1 OpenAI releases o3 and o4-mini. For the first time, the reasoning models combine tools such as search, file analysis, Python, and image generation within ChatGPT, making the Agent form more complete. OpenAI: o3 and o4-mini Judgment for this month: The unit of comparison for model releases has shifted from a single response to an entire task, as tool use, code modification, and result verification are being incorporated into the same product loop.\nMay: Claude 4 Competes for Long-Duration Coding Tasks (300308.SZ +56.5%) Market recap: U.S. AI leaders rebounded on earnings and capex expectations, with NVIDIA, Broadcom, Dell, and cloud providers outperforming most application stocks; in A-shares, optical modules, PCB, and server supply chains reactivated, with speculative stock characteristics concentrated in细分 segments of the industrial chain.\nMonster Stocks Cumulative Table (as of 2025-05, month-end adjusted closing composite; NVIDIA as the leading benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +24.1% +899.6% C3.ai (AI) US Stock High Volatility 2023-01 +20.8% +138.4% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +22.0% +517.3% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +0.6% +105.2% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +8.8% +408.9% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +43.9% +680.6% Cambricon (688256.SS) A-Share High Volatility 2023-02 -0.4% +615.7% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +12.9% +134.3% Innolight (300308.SZ) A-Share High Volatility 2023-03 +56.5% +149.5% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +55.4% +641.6% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +25.6% +278.5% Palantir (PLTR) US Stock High Volatility 2023-05 +11.3% +1599.2% Marvell (MRVL) US Stock High Volatility 2023-05 +3.1% +53.6% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -0.2% +220.5% Arm (ARM) US Stock High Volatility 2023-11 +9.2% +152.6% Zhejiang Orient (600120.SS) A-Share Thematic High Volatility 2025-01 +9.4% +20.5% MeiG Smart (002881.SZ) A-Share Thematic High Volatility 2025-01 +7.5% +15.6% UCloud (688158.SS) A-Share Thematic High Volatility 2025-01 +16.1% +63.8% QingCloud Technology (688316.SS) A-Share Thematic High Volatility 2025-01 +28.7% +85.8% Talkweb Information (002261.SZ) A-Share Thematic High Volatility 2025-01 +5.7% +83.5% Anthropic released Claude 4. Opus 4, Sonnet 4, and Agent tool capabilities are further integrated, making long-duration coding tasks an important benchmark in frontier model competition. Anthropic: Claude 4 Anthropic released Web Search and connectivity capabilities for API. Model vendors are starting to make retrieval, file access, and external service connections into reusable developer infrastructure. Anthropic Newsroom This Month\u0026rsquo;s Verdict: The competition in coding is no longer about completing a few lines of code, but about reading repositories, splitting tasks, modifying files, running tests, and handling failures.\nJune: Terminal Becomes an Agent Working Environment (601138.SS +65.1%) Market Record: US stocks continue to trade AI capital expenditure, with NVIDIA, Broadcom, and data center suppliers maintaining strength; in A-shares, Zhongji Xudong, Xin-Yi Sheng, Shenghong Technology, and Foxconn Industrial Internet are seeing high-level expansion in the computing power chain. Optical modules and PCB are the closest sectors to \u0026ldquo;demon stocks\u0026rdquo; at this stage, but industry prosperity and individual stock prices should not be equated.\nMonster Stock Cumulative Table (As of 2025-06, month-end adjusted close compounded; NVIDIA as the bellwether benchmark)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +16.9% +1068.5% C3.ai (AI) US Stock High Volatility 2023-01 -7.6% +120.3% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +63.2% +907.5% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +6.7% +119.0% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +6.1% +440.0% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +49.0% +1063.1% Cambricon (688256.SS) A-Share High Volatility 2023-02 +18.0% +744.5% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +65.1% +286.9% Innolight (300308.SZ) A-Share High Volatility 2023-03 +49.2% +272.2% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +42.9% +959.7% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +22.5% +363.7% Palantir (PLTR) US Stock High Volatility 2023-05 +3.4% +1657.0% Marvell (MRVL) US Stock High Volatility 2023-05 +28.6% +97.6% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +5.3% +237.5% Arm (ARM) US Stock High Volatility 2023-11 +29.9% +228.2% Zhejiang Oriental (600120.SS) A-Share Theme High Volatility 2025-01 -0.2% +20.2% MeiG Smart (002881.SZ) A-Share Theme High Volatility 2025-01 -4.4% +10.5% UCloud (688158.SS) A-Share Theme High Volatility 2025-01 +16.6% +90.9% QingCloud Technology (688316.SS) A-Share Theme High Volatility 2025-01 +24.9% +132.1% Talkweb Information (002261.SZ) A-Share Theme High Volatility 2025-01 +4.8% +92.3% Google brings Gemini CLI to developers as an open-source AI Agent tool. The terminal is becoming a direct entry point for model invocation, search, and code modification. Google: 2025 AI News Recap OpenAI releases o3-pro. Reasoning models with higher compute budgets continue to place reliability, speed, and price on the same usage ledger. OpenAI Model Release Notes Verdict of the month: Terminals and IDEs are no longer just the display interfaces for models, but the working environments where Agents obtain context, permissions, and acceptance feedback.\nJuly: Agent Moves from Model to Delivery (688256.SS +110.4%) Market Records: The AI rally has extended from chips to coding, software, and data center infrastructure. Leading U.S. stocks are rotating at high levels, while A-shares in optical modules, servers, and PCBs continue to diverge; high-beta targets such as Zhongji Innolight, Eoptolink, and Victory Giant Technology have become the \u0026ldquo;meme stock\u0026rdquo;-type representatives drawing market attention.\nMonster Stocks Cumulative Table (as of the end of July 2025, month-end adjusted close composite; NVIDIA serves as the bellwether benchmark)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Benchmark 2022-11 +12.6% +1215.7% C3.ai (AI) US High-Volatility 2023-01 -4.1% +111.2% BigBear.ai (BBAI) US High-Volatility 2023-01 -6.5% +842.0% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 +17.0% +156.2% SoundHound AI (SOUN) US High-Volatility 2023-02 -3.7% +420.0% Eoptolink Technology (300502.SZ) A-Share High-Volatility 2023-02 +88.3% +2090.1% Cambricon (688256.SS) A-Share High-Volatility 2023-02 +110.4% +1676.9% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 +55.5% +501.6% Innolight (300308.SZ) A-Share High-Volatility 2023-03 +63.1% +507.1% Victory Giant Technology (300476.SZ) A-Share High-Volatility 2023-04 +39.2% +1375.2% Super Micro Computer (SMCI) US High-Volatility 2023-05 +20.3% +457.8% Palantir (PLTR) US High-Volatility 2023-05 +16.2% +1941.6% Marvell (MRVL) US High-Volatility 2023-05 +3.9% +105.3% Changshan Beiming (000158.SZ) A-Share High-Volatility 2023-08 +11.5% +276.3% Arm (ARM) US High-Volatility 2023-11 -12.6% +186.8% Zhejiang Orient (600120.SS) A-Share Theme High-Volatility 2025-01 +6.6% +28.2% Meig Smart (002881.SZ) A-Share Theme High-Volatility 2025-01 +27.8% +41.2% UCloud (688158.SS) A-Share Theme High-Volatility 2025-01 +5.5% +101.4% QingCloud (688316.SS) A-Share Theme High-Volatility 2025-01 -5.1% +120.2% Talkweb Information (002261.SZ) A-Share Theme High-Volatility 2025-01 +27.7% +145.6% xAI released Grok 4. Reasoning, tool use, and real-time search are packaged into a single model product, extending frontier model competition further toward Agents and real-time information. xAI Newsroom OpenAI released ChatGPT agent. Research, browser operation, terminal, and connectors are merged into a single Agent capable of executing complex tasks, with models beginning to directly handle requests from \u0026ldquo;start to delivery.\u0026rdquo; OpenAI: ChatGPT agent Judgment for this month: The evaluation of Agents is beginning to approach that of software engineering, where consistently completing tasks matters more than producing a beautiful answer in one shot.\nAugust: GPT-5 and Open Weights Advance Simultaneously (SOUN +26.0%) Market Records: The U.S. stock market repriced model capabilities and platform ecosystems, with large-cap companies such as NVIDIA, Microsoft, and Meta outperforming most small-cap stocks; in the A-share market, AI capital spread from computing power to applications and end devices, without forming any single, sustainable \u0026ldquo;demon stock.\u0026rdquo;\nMonster Stock Accumulation Table (as of August 2025, month-end adjusted closing compound; NVIDIA as benchmark leader)\nTicker (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Bellwether Reference 2022-11 -2.1% +1188.1% C3.ai (AI) US High-Volatility 2023-01 -28.2% +51.7% BigBear.ai (BBAI) US High-Volatility 2023-01 -20.2% +651.7% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 +15.7% +196.4% SoundHound AI (SOUN) US High-Volatility 2023-02 +26.0% +555.2% Eoptolink (300502.SZ) A-Share High-Volatility 2023-02 +2.7% +2149.2% Cambricon (688256.SS) A-Share High-Volatility 2023-02 -11.2% +1477.9% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 +22.6% +637.6% Innolight (300308.SZ) A-Share High-Volatility 2023-03 +13.7% +590.3% Victory Giant (300476.SZ) A-Share High-Volatility 2023-04 +6.8% +1475.5% Super Micro (SMCI) US High-Volatility 2023-05 -29.6% +292.7% Palantir (PLTR) US High-Volatility 2023-05 -1.0% +1921.2% Marvell (MRVL) US High-Volatility 2023-05 -21.8% +60.5% Changshan Beiming (000158.SZ) A-Share High-Volatility 2023-08 -11.7% +232.3% Arm (ARM) US High-Volatility 2023-11 -2.2% +180.5% Zhejiang Orient (600120.SS) A-Share Thematic High-Volatility 2025-01 -2.5% +25.0% Meig Smart (002881.SZ) A-Share Thematic High-Volatility 2025-01 -13.6% +22.0% UCloud (688158.SS) A-Share Thematic High-Volatility 2025-01 -2.8% +95.8% QingCloud (688316.SS) A-Share Thematic High-Volatility 2025-01 -11.5% +94.9% Talkweb Information (002261.SZ) A-Share Thematic High-Volatility 2025-01 -12.8% +114.2% OpenAI releases GPT-5. A unified system brings fast answers, deep reasoning, vision, code, and Agent capabilities into a single generation of product, with coding explicitly positioned as a core use case. OpenAI: GPT-5 OpenAI releases gpt-oss-120b and gpt-oss-20b. OpenAI re-enters the open-weight model market, with models that can be downloaded, customized, and run locally or on one\u0026rsquo;s own infrastructure. OpenAI: gpt-oss Judgment of the month: Closed-source services and open-weight models are not an either-or choice; model companies may charge via API while simultaneously expanding their ecosystem through open weights.\nSeptember: Agent Needs Checkpointing and Rollback (MRVL +33.7%) Market Recap: Interest rate cuts and software earnings expectations have caused AI trading to shift from hardware to platforms, software, and data, with amplified volatility in Palantir, software infrastructure, and certain robotics stocks; A-share high-level thematic stocks have entered a phase of rapid rises and sharp declines.\nMonster Stock Cumulative Table (as of 2025-09, month-end adjusted close composite; Nvidia as the benchmark leader)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Benchmark 2022-11 +7.1% +1279.6% C3.ai (AI) US Stock - High Volatility 2023-01 +2.5% +55.5% BigBear.ai (BBAI) US Stock - High Volatility 2023-01 +28.6% +866.7% Kunlun Tech (300418.SZ) A-Share - High Volatility 2023-01 -5.2% +181.0% SoundHound AI (SOUN) US Stock - High Volatility 2023-02 +23.5% +709.2% Eoptolink Technology (300502.SZ) A-Share - High Volatility 2023-02 -5.9% +2016.5% Cambricon (688256.SS) A-Share - High Volatility 2023-02 +3.8% +1537.8% Foxconn Industrial Internet (601138.SS) A-Share - High Volatility 2023-02 +9.1% +704.7% Innolight (300308.SZ) A-Share - High Volatility 2023-03 +17.3% +709.7% Victory Giant Technology (300476.SZ) A-Share - High Volatility 2023-04 +3.0% +1522.7% Super Micro Computer (SMCI) US Stock - High Volatility 2023-05 +15.4% +353.2% Palantir (PLTR) US Stock - High Volatility 2023-05 +16.4% +2252.7% Marvell (MRVL) US Stock - High Volatility 2023-05 +33.7% +114.6% Changshan Beiming (000158.SZ) A-Share - High Volatility 2023-08 +0.9% +235.2% Arm (ARM) US Stock - High Volatility 2023-11 +2.3% +187.0% Zhejiang Orient (600120.SS) A-Share - Thematic High Volatility 2025-01 +14.0% +42.5% MeiG Smart (002881.SZ) A-Share - Thematic High Volatility 2025-01 -7.2% +13.2% UCloud (688158.SS) A-Share - Thematic High Volatility 2025-01 -6.7% +82.7% QingCloud Technology (688316.SS) A-Share - Thematic High Volatility 2025-01 -3.3% +88.5% Talkweb Information (002261.SZ) A-Share - Thematic High Volatility 2025-01 -5.2% +103.1% Anthropic releases Claude Sonnet 4.5. Coding, computer use, Claude Code checkpoints, and the Agent SDK were rolled out in the same batch — rollback capability for long-running tasks is starting to become a product feature. Anthropic: Claude Sonnet 4.5 This month\u0026rsquo;s judgment: For Agents entering production, checkpoints, memory, permissions, and rollback are just as important as model capabilities.\nOctober: Low-latency model offloading (ARM +20.0%) Market Notes: The commercialization prospects of low-latency models support software and cloud service stocks, while chip stocks are consolidating at high levels; the AI sector in A-shares continues to rotate, with speculative stocks shifting from single-model concepts to crossover themes such as low-altitude economy, robotics, and edge devices.\nMonster Stocks Cumulative Table (as of 2025-10, month-end adjusted closing price composite; NVIDIA as benchmark leader)\nAsset (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +8.5% +1396.8% C3.ai (AI) US Stock High Volatility 2023-01 +1.4% +57.6% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +6.1% +925.7% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -5.6% +165.3% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +9.6% +786.8% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +1.0% +2037.7% Cambricon (688256.SS) A-Share High Volatility 2023-02 -3.2% +1485.4% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -15.7% +578.3% Innolight (300308.SZ) A-Share High Volatility 2023-03 +8.8% +780.9% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -7.9% +1394.5% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +8.4% +391.2% Palantir (PLTR) US Stock High Volatility 2023-05 +9.9% +2485.6% Marvell (MRVL) US Stock High Volatility 2023-05 +11.6% +139.5% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -5.1% +218.1% Arm (ARM) US Stock High Volatility 2023-11 +20.0% +244.4% Zhejiang Orient (600120.SS) A-Share Theme High Volatility 2025-01 -12.7% +24.4% Meig Smart (002881.SZ) A-Share Theme High Volatility 2025-01 -8.3% +3.8% UCloud (688158.SS) A-Share Theme High Volatility 2025-01 -4.3% +74.8% QingCloud (688316.SS) A-Share Theme High Volatility 2025-01 -0.8% +87.0% Talkweb (002261.SZ) A-Share Theme High Volatility 2025-01 -7.6% +87.6% Anthropic releases Claude Haiku 4.5. A faster, cheaper model that brings the previous generation\u0026rsquo;s frontier capabilities down to high-frequency tasks, with model routing and cost control continuing to segment. Anthropic: Claude Haiku 4.5 This month\u0026rsquo;s take: The industry won\u0026rsquo;t be left with just one strongest model — low-latency and low-cost models determine whether a large volume of real-world calls can hold up.\nNovember: Gemini 3 Connected Development Platform (300502.SZ +23.9%) Market Notes: Leading U.S. AI stocks continue to be caught in a tug-of-war between capital expenditure and valuation, with NVIDIA, Broadcom, and cloud providers as the main themes, while software stocks diverge; A-shares see rotation among computing power, applications, and robotics themes, with no single stock able to represent the entire AI market.\nMonster Stock Cumulative Table (as of 2025-11, month-end adjusted close compound; NVIDIA as the bellwether reference)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 -12.6% +1208.2% C3.ai (AI) US Stock High Volatility 2023-01 -17.8% +29.6% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -8.4% +839.5% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -4.1% +154.4% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -31.6% +506.6% Eoptolink Technology (300502.SZ) A-Share High Volatility 2023-02 +23.9% +2548.6% Cambricon (688256.SS) A-Share High Volatility 2023-02 +1.8% +1514.0% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +2.2% +593.3% Innolight (300308.SZ) A-Share High Volatility 2023-03 +18.6% +944.8% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +6.2% +1487.2% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -34.9% +219.8% Palantir (PLTR) US Stock High Volatility 2023-05 -16.0% +2071.9% Marvell (MRVL) US Stock High Volatility 2023-05 -4.6% +128.5% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -6.8% +196.5% Arm (ARM) US Stock High Volatility 2023-11 -20.2% +174.8% Zhejiang Orient (600120.SS) A-Share Thematic High Volatility 2025-01 -1.3% +22.7% MeiG Smart (002881.SZ) A-Share Thematic High Volatility 2025-01 +6.9% +11.0% UCloud (688158.SS) A-Share Thematic High Volatility 2025-01 +16.3% +103.3% QingCloud Technology (688316.SS) A-Share Thematic High Volatility 2025-01 -5.6% +76.5% Talkweb Information (002261.SZ) A-Share Thematic High Volatility 2025-01 +4.5% +96.1% Google releases Gemini 3. Reasoning, multimodal, and coding are reintegrated, and the agentic development platform begins to become part of product distribution. Google: Gemini 3 Judgment for This Month: The battleground for model vendors has expanded from model APIs to development platforms, search, browsers, and office software.\nDecember: Inference Capabilities Continue to Drive Down Costs (688158.SS +33.6%) Market Notes: At year-end, the market places greater emphasis on inference costs and real-world usage. AI leaders are shifting from a pure hardware-driven narrative to a layered structure of cloud, software, and applications. High-volatility speculative stocks still exist, but their duration is shortening, and they should not be used as proxies for industry prosperity.\nMonster Stocks Cumulative Table (As of 2025-12, Month-end Adjusted Close Composite; NVIDIA as Leading Benchmark)\nTicker (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Benchmark 2022-11 +5.4% +1278.9% C3.ai (AI) US Stock, High Volatility 2023-01 -6.7% +20.9% BigBear.ai (BBAI) US Stock, High Volatility 2023-01 -14.8% +700.5% Kunlun Tech (300418.SZ) A-Share, High Volatility 2023-01 +33.8% +240.4% SoundHound AI (SOUN) US Stock, High Volatility 2023-02 -17.3% +401.7% Eoptolink (300502.SZ) A-Share, High Volatility 2023-02 -2.6% +2479.7% Cambricon (688256.SS) A-Share, High Volatility 2023-02 -7.1% +1399.4% Foxconn Industrial Internet (601138.SS) A-Share, High Volatility 2023-02 -6.5% +548.2% Innolight (300308.SZ) A-Share, High Volatility 2023-03 +6.4% +1011.7% Victory Giant Technology (300476.SZ) A-Share, High Volatility 2023-04 -7.9% +1361.8% Super Micro Computer (SMCI) US Stock, High Volatility 2023-05 -13.5% +176.6% Palantir (PLTR) US Stock, High Volatility 2023-05 +5.5% +2191.4% Marvell (MRVL) US Stock, High Volatility 2023-05 -4.9% +117.3% Changshan Beiming (000158.SZ) A-Share, High Volatility 2023-08 -1.7% +191.5% Arm (ARM) US Stock, High Volatility 2023-11 -19.4% +121.5% Zhejiang Orient (600120.SS) A-Share, Thematic High Volatility 2025-01 +5.4% +29.4% MeiG Smart (002881.SZ) A-Share, Thematic High Volatility 2025-01 +0.4% +11.4% UCloud (688158.SS) A-Share, Thematic High Volatility 2025-01 +33.6% +171.7% QingCloud (688316.SS) A-Share, Thematic High Volatility 2025-01 +25.9% +122.2% Talkweb Information (002261.SZ) A-Share, Thematic High Volatility 2025-01 -4.3% +87.6% Google releases Gemini 3 Flash. A faster and more cost-effective model carries forward the capabilities of Gemini 3, as the price gap between frontier models and large-scale deployments continues to narrow. Google: December 2025 AI Update This Month\u0026rsquo;s Takeaway: Reasoning capabilities will only transition from demos to everyday workflows once the per-unit cost is driven down enough.\n2026: Model companies begin to face scrutiny from the public market and real-world workflows January: Constitution and Automatic Browsing (NVDA +2.5%) Market Records: AI companies in the Hong Kong stock market now have publicly tradable samples, and Zhipu (02513) and MiniMax (00100) have shown significant volatility after listing; the U.S. stock market continues to be dominated by Nvidia, Microsoft, and cloud providers. The high turnover of newly listed stocks can be recorded as \u0026ldquo;zombie stock\u0026rdquo;-style market action, but it cannot replace revenue and valuation analysis. Hong Kong Stock Exchange: MiniMax Newly Listed Securities Admission Notice\nMonster Stocks Cumulative Table (as of 2026-01, month-end adjusted closing composite; Nvidia as the bellwether for comparison)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 +2.5% +1313.4% C3.ai (AI) US High-Volatility 2023-01 -18.3% -1.2% BigBear.ai (BBAI) US High-Volatility 2023-01 -6.7% +646.9% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 +9.5% +272.7% SoundHound AI (SOUN) US High-Volatility 2023-02 -15.1% +325.9% Eoptolink (300502.SZ) A-Share High-Volatility 2023-02 -14.2% +2113.4% Cambricon (688256.SS) A-Share High-Volatility 2023-02 -6.4% +1303.4% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 -3.5% +525.5% Innolight (300308.SZ) A-Share High-Volatility 2023-03 -17.7% +814.9% Victory Giant Technology (300476.SZ) A-Share High-Volatility 2023-04 +14.8% +1578.2% Super Micro Computer (SMCI) US High-Volatility 2023-05 -0.5% +175.2% Palantir (PLTR) US High-Volatility 2023-05 -17.5% +1790.4% Marvell (MRVL) US High-Volatility 2023-05 -7.1% +101.9% Changshan Beiming (000158.SZ) A-Share High-Volatility 2023-08 +4.9% +205.8% Arm (ARM) US High-Volatility 2023-11 -3.6% +113.5% Zhejiang Orient (600120.SS) A-Share Theme High-Volatility 2025-01 +2.9% +33.1% Meig Smart (002881.SZ) A-Share Theme High-Volatility 2025-01 +9.9% +22.5% UCloud (688158.SS) A-Share Theme High-Volatility 2025-01 +7.6% +192.3% QingCloud (688316.SS) A-Share Theme High-Volatility 2025-01 +9.7% +143.8% Talkweb Information (002261.SZ) A-Share Theme High-Volatility 2025-01 +15.3% +116.3% Anthropic publishes Claude\u0026rsquo;s new Constitution. Model values, training goals, and behavioral boundaries are now publicly available as a fully readable document, with safety and governance moving from the appendix into product materials. Anthropic: Claude\u0026rsquo;s Constitution Google summarizes its January 2026 AI updates. Gemini further integrates into Chrome, Search, and automated browsing, with AI products evolving from answering questions to handling multi-step tasks. Google: AI Updates January 2026 Judgment of the Month: The competitive focus of 2026 has shifted to \u0026ldquo;whether you can advance a task for the user\u0026rdquo; rather than \u0026ldquo;whether you can generate another paragraph.\u0026rdquo;\nFebruary: Reasoning Models Move Toward Research Collaboration (2513.HK +20.6%) Market Records: Hong Kong stock trading of Zhipu and MiniMax has shifted from listing sentiment to circulating shares, unlocking, and valuation games, with a divergence in Hong Kong tech stocks; U.S. AI leaders are still priced around capital expenditure and inference demand, with no new globally unified \u0026ldquo;monster stock\u0026rdquo; emerging for now. Hong Kong Exchange: Zhipu and MiniMax Approved for Short Selling\nMonster Stocks Cumulative Table (as of 2026-02, month-end adjusted close composite; NVIDIA as the bellwether reference)\nAsset (Code) Type Listing Month Monthly Change Cumulative Since Listing Nvidia (NVDA) Core Bellwether 2022-11 -7.3% +1210.2% C3.ai (AI) US High-Volatility 2023-01 -27.8% -28.7% BigBear.ai (BBAI) US High-Volatility 2023-01 -21.4% +487.0% Kunlun Tech (300418.SZ) A-Share High-Volatility 2023-01 -19.8% +198.9% SoundHound AI (SOUN) US High-Volatility 2023-02 +1.7% +333.1% Eoptolink (300502.SZ) A-Share High-Volatility 2023-02 +23.1% +2624.7% Cambricon (688256.SS) A-Share High-Volatility 2023-02 -16.6% +1070.4% Foxconn Industrial Internet (601138.SS) A-Share High-Volatility 2023-02 -7.6% +478.0% Innolight (300308.SZ) A-Share High-Volatility 2023-03 +6.6% +875.3% Victory Giant Technology (300476.SZ) A-Share High-Volatility 2023-04 -17.5% +1284.5% Super Micro Computer (SMCI) US High-Volatility 2023-05 +11.3% +206.3% Palantir (PLTR) US High-Volatility 2023-05 -6.4% +1669.4% Marvell (MRVL) US High-Volatility 2023-05 +3.5% +108.9% Changshan Beiming (000158.SZ) A-Share High-Volatility 2023-08 -17.2% +153.2% Arm (ARM) US High-Volatility 2023-11 +21.0% +158.3% Zhejiang Orient (600120.SS) A-Share Thematic High-Volatility 2025-01 -16.1% +11.7% Meig Smart (002881.SZ) A-Share Thematic High-Volatility 2025-01 -22.2% -4.7% UCloud (688158.SS) A-Share Thematic High-Volatility 2025-01 -0.4% +191.1% QingCloud Technology (688316.SS) A-Share Thematic High-Volatility 2025-01 -16.7% +103.1% Talkweb Information (002261.SZ) A-Share Thematic High-Volatility 2025-01 -6.4% +102.5% Zhipu (2513.HK) HK-Share IPO High-Volatility 2026-02 +20.6% +20.6% Anthropic releases Claude Opus 4.6. Coding, Agents, computer use, tool calling, and search are pushed into higher capability tiers, as model companies continue to compete for complex workflows. Anthropic Newsroom Google updates Gemini 3 Deep Think. The dedicated deep-reasoning mode is extended toward science, research, and engineering tasks. Google: Gemini 3 Deep Think Judgment for this month: Reasoning models are shifting from exams and leaderboards toward research collaboration, but the real value still depends on whether experts can review and reuse them.\nMarch: Agent Completes Retrieval and Memory (688256.SS +72.9%) Market Record: The divergence among AI stocks continues to widen. Large-cap platforms and computing power suppliers in the U.S. stock market remain relatively stable, while the intraday volatility of Zhipu and MiniMax in the Hong Kong stock market, as well as the computing power chain in the A-share market, is greater; \u0026ldquo;demon stocks\u0026rdquo; have shifted from single model names to targets with smaller circulating shares and rapidly changing expectations.\nMeme Stock Cumulative Table (As of 2026-03, month-end adjusted close composite; NVIDIA as the benchmark leader)\nTarget (Code) Type Listed Month Monthly Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 -1.6% +1189.2% C3.ai (AI) US Stock High Volatility 2023-01 +5.9% -24.5% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -11.1% +421.9% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -0.3% +198.0% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -20.1% +246.1% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +18.7% +3134.2% Cambricon (688256.SS) A-Share High Volatility 2023-02 +72.9% +1923.7% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +22.2% +606.3% Innolight (300308.SZ) A-Share High Volatility 2023-03 +50.8% +1370.7% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +31.7% +1723.4% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -29.7% +115.4% Palantir (PLTR) US Stock High Volatility 2023-05 +6.6% +1786.2% Marvell (MRVL) US Stock High Volatility 2023-05 +21.3% +153.4% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -1.1% +150.4% Arm (ARM) US Stock High Volatility 2023-11 +18.7% +206.7% Zhejiang Orient (600120.SS) A-Share Theme High Volatility 2025-01 +0.0% +11.7% Meig Smart (002881.SZ) A-Share Theme High Volatility 2025-01 +2.2% -2.6% UCloud (688158.SS) A-Share Theme High Volatility 2025-01 +12.0% +226.1% QingCloud Technology (688316.SS) A-Share Theme High Volatility 2025-01 +0.9% +104.9% Talkweb Information (002261.SZ) A-Share Theme High Volatility 2025-01 +3.7% +110.0% Zhipu (2513.HK) HK Stock New Listing High Volatility 2026-02 +25.2% +51.0% Google released Gemini Embedding 2. Text, images, video, audio, and documents enter a unified multimodal vector space, with retrieval and classification beginning to become fundamental layer capabilities of Agents. Google: Gemini Embedding 2 Gemini\u0026rsquo;s Search Live, Canvas, and cross-application capabilities continue to expand. Search begins to simultaneously handle real-time conversation, long-task workspaces, and personal profile connections. Google: AI Updates March 2026 This month\u0026rsquo;s takeaway: The infrastructure for an Agent is not just a set of large models, but also includes retrieval, memory, file system, search, and cross-application permissions.\nApril: Long Tasks Encounter Product Life Cycle (2513.HK +83.8%) Market Notes: The market has begun incorporating the retention, cost, and cash flow of AI products into stock price narratives, and the valuation elasticity of concept stocks has decreased. Leading U.S. stocks, Hong Kong-listed AI IPOs, and A-share computing power stocks are each following their own trends, without forming new cross-market monster stocks.\nMonster Stock Cumulative Table (as of 2026-04, month-end adjusted closing composite; NVIDIA as the leading benchmark)\nAsset (Code) Type Added This Month Cumulative Since Inclusion NVIDIA (NVDA) Core Bellwether 2022-11 +14.4% +1374.9% C3.ai (AI) US High Volatility 2023-01 +4.9% -20.8% BigBear.ai (BBAI) US High Volatility 2023-01 +13.1% +490.2% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -10.1% +167.9% SoundHound AI (SOUN) US High Volatility 2023-02 +15.9% +301.1% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +34.4% +4246.7% Cambricon (688256.SS) A-Share High Volatility 2023-02 +15.0% +2227.3% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 +16.7% +724.2% Innolight (300308.SZ) A-Share High Volatility 2023-03 +35.4% +1891.4% Victory Giant (300476.SZ) A-Share High Volatility 2023-04 +12.2% +1945.8% Super Micro Computer (SMCI) US High Volatility 2023-05 +20.3% +159.1% Palantir (PLTR) US High Volatility 2023-05 -4.9% +1693.7% Marvell (MRVL) US High Volatility 2023-05 +66.8% +322.7% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -10.9% +123.1% Arm (ARM) US High Volatility 2023-11 +39.0% +326.3% Zhejiang Oriental (600120.SS) A-Share Theme High Volatility 2025-01 -13.8% -3.7% MeiG Smart (002881.SZ) A-Share Theme High Volatility 2025-01 +16.3% +13.3% UCloud (688158.SS) A-Share Theme High Volatility 2025-01 -14.1% +180.1% QingCloud (688316.SS) A-Share Theme High Volatility 2025-01 -11.5% +81.3% Tarcogent Information (002261.SZ) A-Share Theme High Volatility 2025-01 -16.3% +75.8% Zhipu (2513.HK) HK IPO High Volatility 2026-02 +83.8% +177.5% Anthropic released Claude Opus 4.7. Stronger coding, Agent, vision, and multi-step task capabilities continue to push model competition toward long-horizon tasks. Anthropic Newsroom Sora product discontinued. The technical impact of generative video persists, but the user base, cost, and commercial return of a single product are not automatically guaranteed by model demos. OpenAI: Service status note on the Sora release page Judgment of the Month: AI products must also undergo scrutiny based on lifecycle and unit economics; having strong model capabilities does not guarantee that the product will endure in the long term.\nMay: AI Applications Become Execution Systems (SMCI +68.2%) Market Recap: AI capital expenditure remains the main theme in U.S. stocks, but capital is starting to seek out software and applications that can convert calls into revenue; in A-shares, computing power, optical modules, and PCBs are rotating, while Hong Kong AI IPOs are highly volatile, and the gap between meme stocks and leading stocks is becoming more pronounced.\nMonster Stocks Cumulative Table (as of 2026-05, month-end adjusted close composite; NVIDIA as benchmark leader)\nTarget (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Leader Benchmark 2022-11 +5.8% +1460.4% C3.ai (AI) US Stock High Volatility 2023-01 +22.0% -3.3% BigBear.ai (BBAI) US Stock High Volatility 2023-01 +26.6% +647.2% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -8.1% +146.2% SoundHound AI (SOUN) US Stock High Volatility 2023-02 +13.1% +353.7% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 +20.5% +5137.8% Cambricon (688256.SS) A-Share High Volatility 2023-02 +21.8% +2734.6% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -1.7% +710.2% Innolight (300308.SZ) A-Share High Volatility 2023-03 +9.4% +2078.5% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -6.0% +1823.1% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 +68.2% +335.8% Palantir (PLTR) US Stock High Volatility 2023-05 +12.5% +1918.0% Marvell (MRVL) US Stock High Volatility 2023-05 +24.1% +424.6% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -15.7% +88.1% Arm (ARM) US Stock High Volatility 2023-11 +68.0% +616.1% Zhejiang Orient (600120.SS) A-Share Thematic High Volatility 2025-01 -9.9% -13.2% Meig Smart (002881.SZ) A-Share Thematic High Volatility 2025-01 -19.8% -9.2% UCloud (688158.SS) A-Share Thematic High Volatility 2025-01 -5.0% +166.1% QingCloud Technology (688316.SS) A-Share Thematic High Volatility 2025-01 -12.7% +58.3% Talkweb Information (002261.SZ) A-Share Thematic High Volatility 2025-01 -5.6% +65.9% Zhipu (2513.HK) HK Stock IPO High Volatility 2026-02 +31.9% +266.1% Google I/O 2026 releases Gemini 3.5 Flash and Gemini Omni. Gemini enters the \u0026ldquo;agentic era,\u0026rdquo; with models simultaneously handling input, reasoning, action, and video creation. Google: I/O 2026 Overview Google integrates Agent, Search, Gemini App, and developer platform into the same product update cycle. The boundaries between search, shopping, code, and personal assistant continue to blur. Google: I/O 2026 Judgment of the month: \u0026ldquo;AI applications\u0026rdquo; are increasingly looking less like a standalone chat box and more like an execution system that overlays search, office work, devices, and development tools.\nJune: On-device Models Meet the Open Market (MRVL +45.3%) Market Recap: On-device models have brought Apple, mobile phone, and storage supply chains back into AI pricing, while the public market has begun scrutinizing model companies\u0026rsquo; financing and losses. A-shares such as Zhongji Innolight, Eoptolink, and Victory Giant Technology have experienced high-level volatility, and the unlocks and changes in floating shares of Hong Kong-listed Zhipu and MiniMax have become new trading variables.\nMonster Stock Cumulative Table (as of 2026-06, month-end adjusted closing composite; NVIDIA serves as the leader benchmark)\nTarget (Code) Type Listed Month This Month Change Cumulative Since Listing NVIDIA (NVDA) Core Leader Benchmark 2022-11 -5.1% +1380.8% C3.ai (AI) US Stock High Volatility 2023-01 -15.6% -18.4% BigBear.ai (BBAI) US Stock High Volatility 2023-01 -27.2% +444.0% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 +22.4% +201.4% SoundHound AI (SOUN) US Stock High Volatility 2023-02 -28.1% +226.2% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 -13.8% +4415.0% Cambricon (688256.SS) A-Share High Volatility 2023-02 -12.3% +2385.9% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -8.1% +644.6% Innolight (300308.SZ) A-Share High Volatility 2023-03 -13.9% +1775.7% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 -21.5% +1409.6% Super Micro Computer (SMCI) US Stock High Volatility 2023-05 -36.4% +177.1% Palantir (PLTR) US Stock High Volatility 2023-05 -25.5% +1403.4% Marvell (MRVL) US Stock High Volatility 2023-05 +45.3% +662.3% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 +3.7% +95.0% Arm (ARM) US Stock High Volatility 2023-11 +0.4% +619.0% Zhejiang Orient (600120.SS) A-Share Theme High Volatility 2025-01 +12.6% -2.3% MeiG Smart (002881.SZ) A-Share Theme High Volatility 2025-01 +3.5% -6.0% UCloud (688158.SS) A-Share Theme High Volatility 2025-01 +1.2% +169.3% QingCloud Technology (688316.SS) A-Share Theme High Volatility 2025-01 +0.9% +59.7% Talkweb Information (002261.SZ) A-Share Theme High Volatility 2025-01 +14.5% +90.0% Zhipu (2513.HK) HK-Share IPO High Volatility 2026-02 -22.1% +185.2% Apple Released the Third Generation of Apple Foundation Models. The on-device model, server model, and the foundation model system developed in collaboration with Google are incorporated into the new generation of Apple Intelligence. Apple Machine Learning Research Anthropic Released Claude Sonnet 5. Lower-cost models begin to take on browser, terminal, tool-calling, and long-task execution, with Agent capabilities continuing to penetrate into larger-scale everyday usage. Anthropic: Claude Sonnet 5 Anthropic Submitted Confidential IPO Filing. The company has not yet determined the offering size, pricing, or timing of the listing; what is confirmed is that model companies are beginning to consider the public market as a viable capital path. AP: Anthropic confidential IPO filing Judgment for this month: On-device models and the public market represent two different kinds of constraints: on one side, power consumption, privacy, and latency; on the other side, revenue, losses, financing, and cash flow.\nJuly: Coding Agent Becomes a Clear Main Theme (NVDA +5.4%) Market Notes: As of July 13th, leading US AI stocks continue to rotate at high levels around computing power, cloud, and software platforms. In the A-share market, optical modules and PCBs show greater momentum, while Hong Kong stocks Zhipu and MiniMax are even more volatile. Coding agents represent a new market narrative, but it has yet to be proven that they can drive all AI stocks higher in unison.\nMonster Stock Cumulative Table (as of 2026-07, month-end adjusted closing composite; NVIDIA as benchmark leader)\nAsset (Code) Type Inclusion Month Monthly Change Cumulative Since Inclusion NVIDIA (NVDA) Core Benchmark 2022-11 +5.4% +1460.8% C3.ai (AI) US High Volatility 2023-01 -1.5% -19.6% BigBear.ai (BBAI) US High Volatility 2023-01 -10.9% +384.7% Kunlun Tech (300418.SZ) A-Share High Volatility 2023-01 -2.5% +193.9% SoundHound AI (SOUN) US High Volatility 2023-02 +2.6% +234.7% Eoptolink (300502.SZ) A-Share High Volatility 2023-02 -2.0% +4324.7% Cambricon (688256.SS) A-Share High Volatility 2023-02 -0.7% +2368.5% Foxconn Industrial Internet (601138.SS) A-Share High Volatility 2023-02 -4.8% +608.9% Innolight (300308.SZ) A-Share High Volatility 2023-03 +1.3% +1800.1% Victory Giant Technology (300476.SZ) A-Share High Volatility 2023-04 +0.4% +1415.6% Super Micro Computer (SMCI) US High Volatility 2023-05 -3.5% +167.4% Palantir (PLTR) US High Volatility 2023-05 +8.7% +1534.2% Marvell (MRVL) US High Volatility 2023-05 -20.8% +503.7% Changshan Beiming (000158.SZ) A-Share High Volatility 2023-08 -2.5% +90.1% Arm (ARM) US High Volatility 2023-11 -8.8% +555.7% Zhejiang Orient (600120.SS) A-Share Theme High Volatility 2025-01 +1.4% -1.0% MeiG Smart (002881.SZ) A-Share Theme High Volatility 2025-01 -0.2% -6.2% UCloud (688158.SS) A-Share Theme High Volatility 2025-01 -4.1% +158.2% QingCloud (688316.SS) A-Share Theme High Volatility 2025-01 -6.2% +49.8% Talkweb Information (002261.SZ) A-Share Theme High Volatility 2025-01 +2.9% +95.5% Zhipu (2513.HK) HK IPO High Volatility 2026-02 +0.3% +186.0% July 8: xAI releases Grok 4.5. The launch page lists coding, agents, and knowledge work as the primary scenarios, with availability in Cursor, Grok Build, and the API. xAI: Grok 4.5 Anthropic releases a retrospective on Claude Code. The journey from an internal CLI to a coding agent is documented in public, with software engineering continuing to serve as an important workflow for validating long-horizon agents. Anthropic: The Making of Claude Code OpenAI releases ChatGPT Work. Agents begin to carry complex projects forward across applications and files, as the product narrative shifts further from \u0026ldquo;answering questions\u0026rdquo; toward \u0026ldquo;breaking goals down into outcomes.\u0026rdquo; OpenAI: ChatGPT Work Judgment for this month: As of July 13, the clearest product direction is still the coding Agent; its advantage lies not in being able to write code, but in the fact that tasks can be split, run, tested, and rolled back.\nWhat to Watch After the Timeline The Entry Point Has Shifted from Chat to Workflow ChatGPT first proved that natural language could become the entry point for software. GPT-4, plugins, multimodal capabilities, and search then connected that entry point to files, the web, and external tools. After 2025, Deep Research, Claude Code, Codex, and various terminal Agents have continued to extend the task chain. What users now deliver is no longer just an answer, but a piece of research, a set of modifications, a collection of test results, or a project that can keep running.\nOpen Weights and Closed-Source Services Each Bear Different Costs Route What You Get What It Costs Suitable Problems Closed-Source API Fast updates, complete products, enterprise support, and service stability Call fees, quotas, vendor dependency, and data boundaries Need to launch quickly, handle complex capabilities, and deliver uniformly Open Weights Local deployment, fine-tuning, more controllable data boundaries GPUs, memory, operations, licenses, and upgrade costs Private data, local experimentation, and custom deployment Hybrid Routing Simple tasks handled locally, complex tasks routed to the cloud Requires evaluation, routing, fallback, and monitoring Workflows that care about cost, privacy, and capability simultaneously \u0026ldquo;Open\u0026rdquo; does not mean free, and \u0026ldquo;closed-source\u0026rdquo; does not mean no ecosystem. Real deployment decisions come down to licensing, GPU memory, context length, inference speed, tool calling, fault handling, and accountability.\nAIGC Moves from Content Generation to Credibility Competition Text requires fact-checking; images require verification of source and copyright; videos require confirmation of timing and source material; and voice/audio requires consideration of identity boundaries. As the cost of generation decreases, the cost of verification becomes even more important. Visual completeness cannot replace the chain of evidence, and the model\u0026rsquo;s confident tone cannot replace original documents and reproducible processes.\nCoding is the earliest Agent scenario that can be accepted Code completion is only the starting point. A real coding Agent needs to read repositories, understand constraints, modify files, execute commands, run tests, handle failures, retain checkpoints, and allow humans to review and roll back. Software engineering has clear delivery boundaries, so it\u0026rsquo;s easier to form subscriptions or enterprise budgets than general chat; but this also means every line of code generated by the model must be tested and maintained.\nAI Stocks Need to Move from Computing Power Orders to Cash Flow AI stocks do not all rise in a straight line together. In the early market, investors bought the entry point and the vision; starting in 2023, they bought GPU orders and data centers; and from 2025 onward, they care more about unit inference cost, application-level payments, capital expenditure, and the financing ability of model companies. The upstream can receive money first, while the application layer still has to go through pilots, procurement, renewals, and profit validation.\nLooking back at the monthly \u0026ldquo;Market Records,\u0026rdquo; three clear re-anchorings can be observed: before May 2023, the market was pricing in \u0026ldquo;whether generative AI would become the gateway\u0026rdquo;; after NVIDIA\u0026rsquo;s earnings report, compute orders and data centers became the primary theme; after the DeepSeek shock, the market began to ask again whether training and inference could become cheaper. By 2026, model companies such as Zhipu and MiniMax entered the Hong Kong stock market, and the question shifted to revenue, losses, free float, and lock-up expiry, rather than simply comparing model launch events.\nThe following three tables are worth tracking more closely:\nThe capital expenditure, orders, and remaining contract liabilities of cloud vendors determine how long infrastructure demand can keep rolling. The revenue, losses, inference costs, customer concentration, and cash flow of model companies determine whether capability can be turned into budget. The usage depth, rework rate, test pass rate, and renewal rate of coding and Agent products determine whether \u0026ldquo;being able to complete a task\u0026rdquo; truly equals \u0026ldquo;having commercial value\u0026rdquo;. Market Data and Record Boundaries Nasdaq Composite Historical Data and Nasdaq Market Activity Yahoo Finance: NVIDIA Historical Data, Super Micro Computer Historical Data, C3.ai Historical Data, SoundHound AI Historical Data, Palantir Historical Data and Arm Historical Data Yahoo Finance: Zhongji Innolight Historical Data, Eoptolink Technology Historical Data, Cambricon Technologies Historical Data, Foxconn Industrial Internet Historical Data and Zhipu Historical Data Shanghai Stock Exchange: Stock Data, Shenzhen Stock Exchange: Market Data Hong Kong Exchanges: Securities Prices The monthly commentary and cumulative tables in this article are based on Yahoo Finance\u0026rsquo;s publicly available monthly data feeds and news from the corresponding months. The tables use adjusted closing prices. For the current month, data is current through July 13, and indices, currencies, and trading regimes from different markets have not been forcibly merged. Since Yahoo Finance does not provide an available monthly series for MiniMax (00100.HK), this article does not fabricate price changes for it. The term \u0026ldquo;妖股\u0026rdquo; (meme stock) is used here only to look back on market sentiment and does not constitute investment advice. For matters involving listing dates, short-selling eligibility, share unlock schedules, and corporate disclosures, please refer to the official announcements from the relevant exchange.\nReferences OpenAI: Introducing ChatGPT OpenAI: GPT-4 research OpenAI: GPT-4o OpenAI: o3 and o4-mini OpenAI: deep research OpenAI: GPT-5 OpenAI: gpt-oss Anthropic: Claude 3 family Anthropic: Claude 3.5 Sonnet and computer use Anthropic: Claude 3.7 Sonnet and Claude Code Anthropic: Claude 4 Anthropic: Claude Sonnet 4.5 Google: Gemini Google: Gemini 2.5 Google: Gemini 3 Meta: Llama 2 Meta: Llama 3 [Meta: Llama 3.1](https://ai This article only compiles publicly available materials and personal observations, and does not constitute investment advice. Models, products, prices, stock prices, and company disclosures are subject to continuous change; for content related to July 2026, the cut-off date is July 13th, and you should refer to the company\u0026rsquo;s latest announcements and original market data thereafter.\n写作附记 Original Prompt The current AI Big Events are mainly an aggregation of my historical articles, lacking a corresponding timeline. For each month, I need to record AI-related news, perform online searches, and add a wave of monthly hot events, controlled within 3 per month. The article structure should also be adjusted accordingly.\nOriginal Prompt of the First Draft Refer to the major events of 2026, create new AI major events starting from the emergence of ChatGPT, delete the content from the major events of 2026 and 2025 that you think should be removed in the 2025 draft, and extract them into AI major events. Search online for what content should be included in AI major events: the development of large model capabilities, open-source models, closed-source models, stock price changes of related companies in the stock market, AIGC has now started competing in coding, there is a lot of content, please organize the outline clearly.\nRaw Prompt for This Round AI major events are now recorded monthly as key events, but the corresponding stock market movements for these events are not recorded. During this wave of AI, the stock market has also been historically rare. A new event is added monthly at the top, simply recording that month\u0026rsquo;s stock trends and noting various \u0026ldquo;monster stocks.\u0026rdquo;\nThis round keeps the topic classification of the original manuscript after the timeline, and restructures the main sections to be organized chronologically by year and month. The monthly events are primarily based on publicly released pages, and do not present predictions, rumors, or proposed financing as established facts.\n","date":"2026-07-13","language":"en","permalink":"https://ttf248.life/en/p/ai-major-events/","tags":["AI Inspiration Hub","ai","Large Model","AIGC","AI Programming","Open Source Models","investment"],"title":"Major AI Events","year":"2026"},{"categories":["Diary Ramblings"],"content":"This is a place to jot down scattered thoughts and fragments—things that don\u0026rsquo;t quite warrant a full post of their own. A year-in-review post is not a chronicle of the news, nor a substitute for the longer pieces that deserve their own reading. It only keeps what truly changed your judgment, changed the prices, or left a mark on daily life over the course of the month.\nAs of July 12, 2026, only what has already happened is recorded here. Entries after August will be left as placeholders until the events actually take place; previews are not treated as facts. The AI-related timeline has been consolidated into AI Major Events, and this page retains other annual events.\nJanuary 2026 New Year Begins with Rule Changes Starting from January 1st, a batch of new regulations will take effect, with the VAT Law, the revised Public Security Administration Punishments Law, and the National Parks Law entering new implementation stages. They are not as loud as a breaking news story, yet they form the backdrop of the year: taxation, public order, and ecological protection are all continuing to translate principles into more concrete everyday rules.\nReminder for Self-Inspection of Overseas Income The tax authorities have reminded taxpayers to conduct self-inspections regarding their overseas income over the past three years. Here, a boundary needs to be drawn: this is a self-inspection reminder as reported in public news, and it does not mean that everyone has received the same notice, nor does it mean that one can determine their own filing obligations based solely on an article. Cross-border income, tax credits, and tax residency status all need to be assessed based on individual documentation and official guidelines.\nSmall Things Can Reveal the True Structure of a Business The \u0026ldquo;cap-opening red envelope\u0026rdquo; campaign for baijiu and the adjustment of Alipay\u0026rsquo;s Wealth Black Card benefits may look like mere changes to promotions and membership perks on the surface, but both reflect competition for existing market share: liquor companies want to drive higher actual bottle-opening rates, while platforms want to shift their costs from gifts to more sustainable services. These may not qualify as major annual events, but they\u0026rsquo;re worth keeping here as a reminder not to just look at the word \u0026ldquo;discount,\u0026rdquo; but to consider who ultimately bears the cost of the benefits.\nA Belated Farewell When an elderly family member passes away, those who have been working away from home for years will realize that distance not only causes people to miss the last farewell, but also turns many words that could have been properly said into unfinished conversations. Alzheimer\u0026rsquo;s disease causes farewells to begin even earlier, yet it does not leave families a clear moment to say goodbye. This is not public news—it is simply the most worth-remembering personal moment of this year: when you can make a phone call, make one more.\nFebruary 2026 Milan-Cortina Winter Olympics From February 6 to 22, the Milan-Cortina Winter Olympics will be held. Together with the FIFA World Cup in the United States, Canada, and Mexico in the middle of the year, it constitutes one of the few confirmed global public events of 2026. The significance of sporting events lies not only in the medals, but also in the fact that they briefly pull attention away from market fluctuations and model leaderboards.\n\u0026ldquo;The U.S. Kill Line\u0026rdquo; Becomes an Internet Metaphor The \u0026ldquo;American kill line\u0026rdquo; has gone from an internet meme to a rough metaphor for the cost of living, healthcare, and unemployment risks. The term is not a rigorous economic indicator and cannot be used to replace poverty lines, medical burden, or household asset data; it is worth recording because it puts the anxiety of \u0026ldquo;looking like the income isn\u0026rsquo;t low, but actually having no buffer\u0026rdquo; in very blunt terms.\nXiaomi\u0026rsquo;s product transition and the cooling of the electric vehicle sector represent the other side of market sentiment this month: the product cycle and valuation expectations are beginning to diverge, and industry heat can no longer be used as a substitute for individual company earnings validation.\nMarch 2026 At the Start of the \u0026ldquo;15th Five-Year Plan\u0026rdquo;, the Government Work Report Takes Shape In March, the National Two Sessions released the Government Work Report, making 2026 the first year of the \u0026ldquo;15th Five-Year Plan.\u0026rdquo; The report places expanding domestic demand, developing new quality productive forces, stabilizing employment, and preventing risks on the same task list. For ordinary people, macro goals ultimately still come down to consumption, jobs, housing, and corporate orders. This annual article first records this direction, without rushing to translate policy slogans into investment conclusions.\nApril 2026 Movies, Online Fiction, and Baijiu Are All Facing the Same Problem The decline in Moutai\u0026rsquo;s net profit for the first time, and the May Day box office remaining below the 2023–2024 plateau, occurred in different industries, yet both point to the same phenomenon: \u0026ldquo;attention and trust being repeatedly worn down.\u0026rdquo; Users are not ceasing to consume entirely; rather, they are more willing to wait for word-of-mouth and results before deciding whether to invest their time and money.\nA Snack Store in Songjiang University Town Lingshi Henmang\u0026rsquo;s entry into the Songjiang University Town is a very small local news item, yet it illustrates why low-price retail must find the right audience: the university town provides a steady stream of young customers, while the surrounding new urban areas offer additional support for stores in terms of rent, commuting, and community spending. Low price is not a universal answer—location and population density are the prerequisites for a store\u0026rsquo;s survival.\nReassessing Work After Reading News About Sudden Death Scrolling through one piece after another of sudden-death news, a slight tightness in the chest easily gets magnified into an interrogation of life: why do we have to work away from home for so long, and what exactly are we trading all the savings for. Medical matters should be left to doctors; the annual page only keeps the life questions it triggers—work, marriage, health, and the fantasy of \u0026ldquo;low-cost lying flat\u0026rdquo;—none of which can solve the other three on its own.\nMay 2026 Cross-Border Securities Operations Enter a Window of Centralized Rectification Eight departments including the CSRC have issued the implementation plan for the comprehensive rectification of illegal cross-border securities, futures, and fund business operations, with internet brokerages such as Futu and Tiger Brokers becoming the most easily observable samples in the market. The most important misinterpretation to avoid here is: the rectification window does not equal a two-year period of unrestricted operation, and the lifting of restrictions statistics does not mean that shareholders have already sold. Rules, account boundaries, and enforcement details need to be examined separately.\nJune 2026 The World Cup Kicks Off, Attention Once Again Taken Over by Major Events The 2026 World Cup, co-hosted by the United States, Canada, and Mexico, kicks off in June. This is the first men\u0026rsquo;s FIFA World Cup in history to be jointly hosted by three countries and expanded to 48 teams. The traffic, travel, and advertising business brought by the tournament will compete with AI, consumer spending, and short-form video for the same share of attention over the coming months.\nJuly 2026 August 2026 Not yet happened, to be supplemented.\nSeptember 2026 It hasn\u0026rsquo;t happened yet; to be added.\nOctober 2026 Not yet happened, to be added.\nNovember 2026 Not yet happened, to be supplemented.\nDecember 2026 Hasn\u0026rsquo;t happened yet, to be added.\nReferences Notice of the General Office of the State Council on the Arrangement of Some Holidays in 2026 Interpretation of the 2026 Government Work Report, Chinese Government Website Implementation Plan for Comprehensive Rectification of Illegal Cross-border Securities, Futures and Fund Business Activities, China Securities Regulatory Commission CSRC Answers Reporters\u0026rsquo; Questions on the Special Operation Milan-Cortina 2026 Winter Olympics, Olympics.com FIFA World Cup 2026 Official Information Gemma 4 Official Release, Google Box Office of the 2026 \u0026ldquo;May Day\u0026rdquo; Session Exceeds Last Year\u0026rsquo;s, China Film Administration Announcement of Zhipu Related Entity\u0026rsquo;s Proposed Placement of New H Shares on July 9, 2026, HKEX Announcement of MiniMax\u0026rsquo;s Proposed Placement and Proposed Issuance of Convertible Bonds on July 10, 2026, HKEX ","date":"2026-07-12","language":"en","permalink":"https://ttf248.life/en/p/2026-major-events/","tags":["Yearly Summary","Major Event","Note"],"title":"Major Events of 2026","year":"2026"},{"categories":["Financial Knowledge Base"],"content":"At the close on July 10, Zhipu (02513.HK) fell 19.29%, while MiniMax-W (00100.HK) dropped 9.68%. These numbers easily lead to a simple conclusion: the financing news was useless. However, the intraday trading did not follow a straight line. From morning to early afternoon, MiniMax-W\u0026rsquo;s decline was once deeper; in the afternoon it rebounded, while Zhipu continued to slide lower, ending the day with a larger drop.\nIn the same week, the two companies also faced newly unlocked shares and new financing arrangements. There are three different prices here: the marginal transaction price in the secondary market on that day, the price for placing new shares with specific investors, and the price at which convertible bonds may be converted into shares in the future. Mixing them into a single \u0026ldquo;market valuation\u0026rdquo; will distort the conclusion.\nFirst, Look at the Price Path The lock-up releases did not all occur on the same day. According to media statistics from Hong Kong Stock Decoder (港股解码), approximately 25.6816 million cornerstone investor shares of Zhipu were released on July 8, accounting for about 5.76% of the total share capital; approximately 146 million shares of MiniMax were released on July 9, accounting for about 46.44% of the total share capital, with its freely tradable shares prior to the release being less than 6%. This is a media statistic, not a company disclosure of actual reductions. It illustrates the magnitude differences in potential supply, but does not prove that these shares were sold on that day.\nThe daily chart first provides an overview. On July 9, the first trading day after the lock-up expiry, Zhipu closed higher while MiniMax-W closed lower; by July 10, both stocks declined, with Zhipu showing a larger trading volume and a bigger drop at close.\nDate Company Open High Low Close Change Turnover Jul 8 Zhipu 1,563.0 1,918.0 1,450.0 1,825.0 +13.35% N/A in this article Jul 8 MiniMax-W 323.8 389.8 311.0 362.6 +12.0% N/A in this article Jul 9 Zhipu 1,879.0 2,222.0 1,803.0 2,032.0 +11.34% N/A in this article Jul 9 MiniMax-W 359.8 397.4 283.8 297.4 -17.98% N/A in this article Jul 10 Zhipu 1,850.0 1,999.0 1,597.0 1,640.0 -19.29% Approx. HKD 13.260 billion Jul 10 MiniMax-W 280.4 291.6 248.4 268.6 -9.68% Approx. HKD 3.594 billion The price unit is in HKD; the change percentage is calculated based on the previous trading day\u0026rsquo;s closing price. The data comes from the Tencent Finance market data API. The number and percentage of unlocked shares are from the aforementioned media statistics, which are from different sources and use different calibers than the daily line data.\nThe two narratives diverged at different points in the trading session. MiniMax-W suffered steeper declines in the morning and early afternoon before staging a recovery, while Zhipu failed to follow with a rebound in the afternoon and continued to move lower toward the close.\nAs of July 10 Zhipu Price / Change vs Previous Close MiniMax-W Price / Change vs Previous Close The Side with the Deeper Drop at the Time 9:31 1,946.0 / -4.23% 278.4 / -6.39% MiniMax-W 11:32 1,790.0 / -11.91% 251.4 / -15.47% MiniMax-W 13:42 Prices at the same timestamp not listed in this article 248.6 / -16.41% MiniMax-W near intraday low 14:48 1,698.0 / -16.44% 276.2 / -7.13% Zhipu Close 1,640.0 / -19.29% 268.6 / -9.68% Zhipu This table illustrates the sequence of price movements, but does not establish causality. Unless there is verifiable evidence with timestamps, such as orders or the spread of news, a specific intraday turning point cannot be attributed to financing news, nor can actual reductions in holdings be inferred from the scale of unlocked shares.\nThe Price of New Money, and the Price of Old Money MiniMax\u0026rsquo;s July 10 announcement is for a set of transactions yet to be completed: a proposed placement of 35.6 million new Class A shares, plus a HK$6.5 billion zero-coupon guaranteed convertible bond. Zhipu\u0026rsquo;s July 9 announcement, on the other hand, is a best-effort placement of 19.78 million new H shares, with the announcement explicitly noting that the transaction may not be completed.\nThe IPO has been completed; the Hong Kong stock follow-on financing in the table below remains a proposed transaction. The status column is intentionally shown separately to avoid treating the estimated net proceeds from the announcement as the existing cash balance.\nCompany Item Status Price and Amount Use of Proceeds MiniMax-W IPO Completed Offer price HK$165; gross/net proceeds from the base offering approximately HK$4.8176 billion / HK$4.5961 billion; net proceeds approximately HK$5.29339 billion assuming full exercise of the over-allotment option R\u0026amp;D 90%, working capital 10% Zhipu IPO Completed Offer price HK$116.20; gross/net proceeds from the base offering approximately HK$4.3481 billion / HK$4.1734 billion; net proceeds approximately HK$4.8962 billion assuming full exercise of the over-allotment option General-purpose large model R\u0026amp;D 70%, MaaS 10%, partner network and strategic investments 10%, working capital 10% MiniMax-W New Class A Share Placement Proposed, subject to conditions 35.6 million shares at HK$268 per share; gross/net proceeds approximately HK$9.5408 billion / HK$9.49141 billion Of the net proceeds combined with the convertible bonds, 80% is intended for AI infrastructure and model R\u0026amp;D, 10% for global expansion, 10% for working capital and general purposes MiniMax-W Zero-Coupon Guaranteed Convertible Bonds Proposed, subject to conditions Principal HK$6.5 billion, maturing in 2027; initial conversion price HK$335; net proceeds approximately HK$6.4658 billion; approximately 19.403 million new shares on a full-conversion scenario Same as above Zhipu (the HKEX announcement entity is Knowledge Atlas) New H Share Best-Efforts Placement Proposed, may not be completed 19.78 million shares at HK$1,588 per share; gross/net proceeds approximately HK$31.41064 billion / HK$31.37495 billion Model R\u0026amp;D talent, computing power and related technical services; business expansion and strategic investments; capital structure and general working capital. Planned to be used by the end of 2027 If both MiniMax transactions are completed, the combined gross amount will be approximately HK$16.0408 billion, and the net amount will be approximately HK$15.9572 billion. This figure is roughly three times its IPO net proceeds after the full exercise of the over-allotment option. Zhipu\u0026rsquo;s proposed placement net amount is approximately 6.4 times its IPO net proceeds on the same basis. The numbers are large, but they do not automatically carry positive implications: money can extend the investment cycle, but it also makes the future cash return per share a more stringent question.\nThe placement price reflects the conditions under which the financing was negotiated, rather than the company\u0026rsquo;s overall valuation or target price. MiniMax-W\u0026rsquo;s placement price of HK$268 represents a 9.89% discount to the closing price of HK$297.4 on July 9; Zhipu\u0026rsquo;s placement price of HK$1,588 represents a 12.99% discount to the closing price of HK$1,825 on July 8. Differences in announcement disclosures, comparison benchmarks, and transaction methods mean this cannot be used to compare \u0026ldquo;which company received a steeper discount from the market.\u0026rdquo;\nConvertible bonds also carry an additional layer of debt attributes, maturity, and conversion options. The initial conversion price of HKD 335 cannot be placed alongside the ordinary share placement price and treated directly as the market\u0026rsquo;s valuation conclusion for MiniMax. The secondary market closing price is merely the marginal transaction price under that day\u0026rsquo;s circulating supply, risk appetite, and information set — it does not represent the overall pricing the company obtained at the time of financing.\nImplied equity value with similar IPO timing, later placed into different deal structures Based on the IPO offering price multiplied by the number of shares issued after the IPO, the implied equity value of MiniMax is approximately HK$51.75 billion, while that of Zhipu is approximately HK$51.80 billion. This calculation merely reflects the equity prices derived from the two offerings at a unified IPO time point, and cannot serve as a substitute for subsequent market capitalization, nor should it be regarded as an official post-money valuation.\nThese two closely matched starting points help frame this week\u0026rsquo;s refinancing. The package offered by MiniMax is a combination of common stock and convertible bonds: one portion forms new shares after closing and issuance, while the other portion starts as debt, with future conversion depending on the terms and the holder\u0026rsquo;s choice. Zhipu is a best-efforts placement of a large amount of common stock, where the uncertainty around the new shares being issued and the completion of the financing is more directly placed on the trading table.\nThe market\u0026rsquo;s response on such announcement days isn\u0026rsquo;t simply answering the question of \u0026ldquo;whether anyone is willing to put up money.\u0026rdquo; It also weighs simultaneously the newly tradable or potential shares, the discount on the financing, whether the financing completes smoothly, the speed of capital deployment, and the demand for liquidity from existing shareholders after the lock-up expires. MiniMax faces a significantly larger potential supply of floating shares; Zhipu, meanwhile, confronts a best-efforts placement whose size far exceeds its IPO. These are testable backgrounds that explain the divergence—not a single-factor attribution for the moves on July 10.\nThere is still one more round for A-shares, but the amount cannot be factored in in advance Both companies have disclosed the proposed RMB share matters, with varying progress and levels of information.\nCompany Disclosed Matters What Can Now Be Confirmed MiniMax-W Announcement on May 31 of proposed issuance of RMB shares Scale, amount, use, or completion timeline have not been disclosed, and it is explicitly stated that implementation is not guaranteed Zhipu Announcement on June 1 of proposed issuance of no more than 38,768,964 new A-shares on the STAR Market, excluding over-allotment Pricing is undetermined and no formal agreement has been reached; the RMB 15 billion represents the total planned project investment, not funds already raised. Of this, RMB 12 billion is for the general-purpose foundation large model, RMB 2 billion for MaaS, and RMB 1 billion for supplementing working capital Adding the 15 billion yuan from this table to the cash Zhipu already holds is a common misreading. It is a project investment plan; whether the offering can actually proceed, at what price, and how much is ultimately raised still depends on subsequent procedures and disclosures. MiniMax\u0026rsquo;s announcement information is at an even earlier stage, and has not even provided the planned amount or use of proceeds.\nLLM Funding Burns On — What Is the Market Watching Now? The use of funds by large model companies is highly similar: models, compute, infrastructure, products, and globalization. The same destinations do not mean the same output. At this stage, the market\u0026rsquo;s judgment on financing has at least four sequential layers:\nWhether the transaction can be completed and what the actual net amount is; How the cash balance and future commitments on compute, training, and inference will change; How newly issued shares and potential convertible shares alter per-share equity; Whether revenue, gross margin, cash burn, and unit compute efficiency improve. Refinancing allows the company to continue betting on next-generation models, and it also pushes the validation cycle to the next financial report and the next capital structure disclosure. The mid-session seesaw followed by a same-direction decline at the close on July 10 is only one slice. The true repricing will not get an answer until cash turns into sustainable revenue.\nThis article does not constitute investment advice.\nReferences Tencent Finance: Zhipu 02513 Daily and Intraday Quotes; Intraday API. Tencent Finance: MiniMax-W 00100 Daily and Intraday Quotes; Intraday API. Hong Kong Stocks Decoded: Lock-up Expiry Schedule and Float Statistics for Both Companies. Compiled from media reports; not used as actual disposal data. MiniMax: Announcement of Proposed Placing and Proposed Issuance of Convertible Bonds on July 10, 2026. Zhipu Related Entities: Announcement of Proposed Placing of New H Shares on July 9, 2026. MiniMax: Final IPO Offer Price and Allocation Results; Announcement of Proposed Issuance of RMB Shares. Zhipu Related Entities: Final IPO Offer Price and Allocation Results; Announcement of Proposed Issuance of A Shares on the STAR Market. 写作附记 This article is written based on Hong Kong Stock Exchange announcements, market data interfaces, and clearly labeled media statistics. Refinancing and A-share matters are handled according to the proposed status at the time of announcement; lock-up release statistics are not equivalent to actual selling, and intraday price paths do not constitute news-causality proof.\nOriginal Prompt Zhipu and Minimax faced their first lock-up expiry wave last week. Previous articles have covered related topics, but when the moment actually arrived, the two stocks performed quite differently — Zhipu rose while Minimax fell. We will analyze why. Subsequently, financing news came out; intraday, Minimax still declined more, but by the close, Zhipu suffered a sharp drop. A table summarizes the relevant market data.\nReviewing the IPO financing scale, with the newly announced financing amounts this week, we examine how the market is pricing these two companies. There is still a subsequent round of A-share financing, along with the intended use of funds raised by both companies. With large model financing continuing to burn cash, we look at how the market views this.\n","date":"2026-07-10","language":"en","permalink":"https://ttf248.life/en/p/zhipu-minimax-unlock-financing-repricing/","tags":["AI Inspiration Hub","Large Model","Financing","Hong Kong Stocks"],"title":"Deregulation and Funding News Appear on the Same Day — How Zhipu and MiniMax Are Being Repriced","year":"2026"},{"categories":["Computer"],"content":"When writing requirements for coding models, I increasingly tend to include a few names that can be searched in the repository: function names, component names, CSS class names, or interface paths. Without these terms, the model may still be able to complete the task, but it often has to spend an extra round guessing \u0026ldquo;which piece of code does this sentence correspond to.\u0026rdquo;\nFor example, just write:\nAdjust the disabled state of the login button, prevent repeated clicks while submitting, and also gray out the style.\nA human can identify where the \u0026ldquo;login button\u0026rdquo; is based on the visual impression of a page, but a coding model may be confronted with dozens of buttons, multiple login entry points, and implementations scattered across components, state management, and style files. It must first map the phrase \u0026ldquo;login button\u0026rdquo; from natural language to the specific symbols in the repository, and only then can it determine whether to modify the event handler, state variables, or CSS.\nIf the requirements are modified as follows, the search space will be much smaller:\nAdjust the submission state of handleSubmit in LoginForm. Disable .login-submit during submission to prevent duplicate requests; the existing error notification behavior remains unchanged. Acceptance: clicking again before the request completes will not send a second request, the button appears in a disabled style, and it is restored after the request finishes.\nWhat\u0026rsquo;s truly useful here is not that the prompts become longer, but that there are a few more anchors that can be landed on in code.\nThe Model Is Making Predictions, But the Agent Still Needs to Find the Code First Current mainstream large language models typically split input into tokens and progressively predict subsequent tokens based on existing context. Transformer\u0026rsquo;s self-attention mechanism allows tokens in a sequence to establish connections with each other; after large-scale pre-training and subsequent alignment, the model can follow instructions, explain code, and generate modification plans. However, \u0026ldquo;being able to generate based on context\u0026rdquo; is not the same as \u0026ldquo;naturally knowing where the login button is placed in your current repository.\u0026rdquo;\nThe coding agent has an additional layer of work: it invokes file search, text retrieval, read, and test tools to bring the relevant code from the repository into the model\u0026rsquo;s context. At this stage, the function name handleSubmit and the class name .login-submit serve a dual purpose.\nThe first layer is retrieval anchors. A phrase like \u0026ldquo;login button\u0026rdquo; in natural language can match copy, comments, tests, and multiple components; precise symbols can be handed directly to text-search tools to quickly locate definitions, references, and adjacent tests. Reading fewer irrelevant files not only saves time and tokens, but also reduces the chance of unrelated code cluttering your judgment.\nThe second layer is semantic constraints. handleSubmit suggests that the change is related to the submission flow, .login-submit narrows the visual state to a specific selector, and LoginForm further provides the component boundary. Together, they reduce the ambiguity around \u0026ldquo;which button exactly, and which layer should hold the state.\u0026rdquo; The model is still doing probabilistic generation, but there are fewer plausible interpretations, making it easier for the next step to unfold along the correct code path.\nThat\u0026rsquo;s also why I\u0026rsquo;d rather call this approach \u0026ldquo;providing coordinates\u0026rdquo; than a \u0026ldquo;prompting trick.\u0026rdquo; It helps both the model and the toolchain around the model. Even if you switch to a different coding model, as long as it also needs to search the repository, these coordinates remain valuable.\nA Good Requirement Is More Than Just a String of Keywords Having only the symbol name is not enough. Although the following writing style is easy to search for, it still doesn\u0026rsquo;t tell you what to change it to:\nLoginForm, handleSubmit, .login-submit, optimize it.\nThe format I use more often now includes four categories of information:\nInformation Purpose Example Code Anchors Narrow down the search scope LoginForm, handleSubmit, .login-submit Target Behavior Explain what happens after the change Prevent duplicate requests during submission Preservation Items Prevent accidental changes to adjacent behaviors Existing error messages remain unchanged Acceptance Criteria Provide an endpoint for implementation and testing The second click does not send a request, and the request state is restored after it ends File paths, test names, interface names, and error message text can also serve as anchors. Prioritize names you have personally verified and that are highly recognizable; you don\u0026rsquo;t need to pile in every related symbol just to appear specific. Usually one or two entry functions, a component, or a style name is already enough to let the agent start searching; the remaining call relationships should be verified by it from the code, rather than being filled in from memory by the requirement writer.\nAlso be wary of incorrect coordinates. When functions have been renamed, class names are reused in multiple places, or the requirement actually points to a different page, precise yet wrong keywords will lead the model astray faster. A safer approach is to add a sentence like \u0026ldquo;the name may have changed, please search to confirm first,\u0026rdquo; or provide both the page behavior and visible text so the agent can cross-verify.\nSo the more practical conclusion is not \u0026ldquo;stuff more keywords into the requirements,\u0026rdquo; but rather: translate the human\u0026rsquo;s impression of the page into coordinates that the repository can search, then constrain modification outcomes with behavior and acceptance criteria. The former reduces the cost of finding code; the latter reduces the room for writing incorrect code. When both parts are present simultaneously, the efficiency gains of coding models become more stable.\nReferences Attention Is All You Need Language Models are Few-Shot Learners OpenAI Academy：AI fundamentals OpenAI：Why language models hallucinate 写作附记 Original Prompt When writing requirements with large models, if you can include some keywords, such as: associated function names, associated frontend style names, it can make the model more efficient. Briefly explain the principles of LLM, explain the principles of current large models, and explain why what I do is better.\nThis piece preserves the on-site judgment that \u0026ldquo;function names and style names can boost coding efficiency,\u0026rdquo; and adds the distinction between language model generation and coding agent retrieval. It trims out full Transformer tutorials, model generation comparisons, and generalization prompt checklists, preventing mechanism introductions from overshadowing the main thread of engineering questions.\n","date":"2026-07-05","language":"en","permalink":"https://ttf248.life/en/p/code-anchors-for-llm-requirements/","tags":["AI Inspiration Hub","ai","LLM","AI Programming"],"title":"Feed several code anchors to the encoding model","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"The awkward part of this round of AI stocks is that, while some people are shouting \u0026ldquo;capex bull,\u0026rdquo; many A-shares and Hong Kong stocks have not risen at all, and some have even dropped significantly. It looks like a contradiction, but it\u0026rsquo;s actually two sides of the same coin: money is still flooding into AI infrastructure and a handful of application gateways, but the secondary market is starting to ask who will ultimately be able to turn this spending into cash flow.\nLet me directly answer your questions first.\nThis article can be read along three threads: North American tech giants aren\u0026rsquo;t without growth drivers—they\u0026rsquo;re betting on the next curve with heavy capital expenditure; coding is currently the easiest AI application to monetize; the key question for Zhipu and MiniMax isn\u0026rsquo;t whether they have a story, but whether their valuations and the supply unlocked by lock-up expirations can be absorbed by the market.\nAfter the marginal efficiency of the old growth drivers at North American tech giants declines, AI has become one of the few directions that can still sustain a narrative of hundreds of billions of dollars in capital expenditure. Cloud, advertising, search, social media, and e-commerce are all still profitable, but if market caps are to continue being priced at high multiples, there must be a next curve large enough. What makes AI special is that it can be pitched both as a new product and as a reinvestment cycle for cloud computing, chips, data centers, electricity, and enterprise software.\n\u0026ldquo;Capex Bull\u0026rdquo; makes sense. What is currently priced most richly is not necessarily the companies that have already earned AI net profits, but the companies standing at the front end of hyperscaler capital expenditure, collecting the money: GPUs, ASICs, HBM, optical modules, servers, switches, data centers, power equipment, cloud resources. The problem also lies here: if capex growth outpaces the realization of final revenue, stocks will first rise into a very narrow bull market, and later use pullbacks to filter out who has real cash flow.\nIs the big tech industry running out of money? My take is: it\u0026rsquo;s not that they\u0026rsquo;ve become poor, but that AI investment is so massive that even companies with strong cash flow need to optimize their balance sheets. Goldman Sachs, JPMorgan, and other institutions, in their recent reports and media coverage, have estimated hyperscaler capex for 2026 at over $700 billion; Axios reported in mid-June that Nvidia has also entered a window of large-scale bond financing, driven by the growth of debt financing for AI data centers and supply chains. Having plenty of cash and continuing to issue debt are not mutually exclusive. It\u0026rsquo;s more of a signal: this cycle is not an asset-light internet bull market, but a heavy-asset balance sheet expansion.\nAre investors anxious to cash out? In part, yes. IPOs, A+H listings, lock-up expirations on the secondary market, and M\u0026amp;A are all paths that turn paper valuations in the primary market into liquidity. This is especially true for listings like Zhipu and MiniMax, where the post-IPO float is extremely thin and stock prices have been pushed up by index inclusions and scarcity premiums. Before and after the lock-up expiration, the core issue is not simply \u0026ldquo;is the company good or not,\u0026rdquo; but rather that an originally very small tradable supply suddenly becomes much larger, and the market must reprice the liquidity premium.\nWhy has the coding track become white-hot? The reason is straightforward: it offers a faster path to paid willingness than \u0026ldquo;general AI changing the world.\u0026rdquo; Developers are willing to pay monthly fees for efficiency gains, while enterprises are willing to purchase seats for code generation, testing, migration, and security review. Anthropic\u0026rsquo;s earlier official fundraising materials revealed that Claude Code\u0026rsquo;s run-rate revenue exceeds $2.5 billion, and OpenAI has also turned Codex into an enterprise-grade coding agent, emphasizing in the 2026 Gartner Magic Quadrant for Enterprise AI Coding Agents that more than 4 million people use Codex weekly. Going forward, competition will not only be about model benchmark scores, but also about repository context, permission control, CI/CD integration, enterprise compliance, inference cost, and stability.\nIs Zhipu\u0026rsquo;s Hong Kong stock market capitalization reasonable? Based on the closing price of 2513.HK at HK$2,094 returned by Yahoo Finance on June 18, 2026 and a total share capital of 440,230,190 shares after listing, Zhipu\u0026rsquo;s total market capitalization is approximately HK$922 billion.1 The company\u0026rsquo;s revenue in 2025 was RMB 724.3 million. Even without precise currency conversion, this represents a price-to-sales ratio on the order of one thousand times. It has gone beyond the realm of \u0026ldquo;somewhat expensive\u0026rdquo; and can only be explained by very distant future revenue and profits. Unless you believe Zhipu will transform from a model company into China\u0026rsquo;s AI infrastructure platform, with future revenue increasing by two orders of magnitude, the current market capitalization is difficult to support based on present financial statements.\nFirst, compress the financing data into a narrow table:\nEntity Capital Action Amount / Valuation OpenAI Official new funding round $122B committed capital; $852B post-money Anthropic Series H $65B; $965B post-money SpaceX / Cursor Reported stock acquisition ~$60B transaction scale Nvidia / AI Bond Financing Reported large bond issuance ~$20B–$25B Zhipu (智谱) Hong Kong IPO, advancing STAR Market proposal IPO raised ~HK$4.3B; market cap ~HK$922B MiniMax Hong Kong IPO, initiated A-share tutoring IPO net proceeds ~HK$4.596B; market cap ~HK$154B My take is set apart from the table. OpenAI and Anthropic are no longer ordinary SaaS financings, but rather infrastructure and gateway financings; Cursor has been pushed to a $60 billion deal benchmark, indicating that programming agents have shifted from a tool competition to a strategic gateway competition; core supply-chain companies like Nvidia are also starting to extend their capital duration, suggesting that AI infrastructure financing is increasingly resembling a capital markets engineering project.\nZhipu and MiniMax represent a different problem: the secondary market has assigned them a high forward platform premium, but they still have to contend with losses, secondary financing, expansion of the float, and absorbing the overhang from lock-up expirations. The meaning of this table is not \u0026ldquo;all AI companies are safe,\u0026rdquo; but rather: financing has become part of the business model. The larger the capital, the more the market will ask two questions: whether more money can still come in, and when revenue will prove that these expenditures are not sunk costs.\nProgramming First Becomes a Cash Flow Entry Point Before, everyone wanted to build general-purpose AI, because the general-purpose AI story was the biggest. Then they realized: the biggest story does not equal the fastest return. C-end chat products have traffic, but paid conversion rates, retention, computing costs, and competitive subsidies are all hard to look at; enterprise general assistants can talk about efficiency, but the delivery cycles and internal compliance are heavy; programming is different — it stands directly on the software production chain.\nA developer paying an extra $20, $100, or $200 per month is easy to convince, as long as it saves them a few hours. The same applies to enterprises. What truly delivers real-world value is not the slogan of \u0026ldquo;replacing programmers,\u0026rdquo; but rather fixing bugs, migrating frameworks, writing tests, reviewing code, doing refactoring, integrating internal knowledge bases, and opening PRs. These involve clear objects of work, clear before-and-after comparisons, and a clear paying audience.\nSo the competition between OpenAI and Anthropic will increasingly resemble a three-layered battlefield.\nThe first layer is model capability. Whoever can more stably understand large repositories, long contexts, and multi-file changes will have the advantage.\nThe second layer is the engineering shell. Tools like Codex, Claude Code, and Cursor are essentially not just model invocations—they also have to handle permissions, terminals, sandboxes, Git, testing, logs, rollbacks, and human review. If the model is strong but the shell is poor, developers will quickly get frustrated.\nThe third layer is enterprise distribution. The real money lies in team seats, private code security, audit logs, IDE and CI/CD integration, and admin consoles. In the future, many companies won\u0026rsquo;t just buy a single chatbot; they\u0026rsquo;ll procure AI coding agents as R\u0026amp;D infrastructure.\nThings are very likely heading toward consolidation along this line. Standalone tools that lack their own models, compute, or deep distribution channels will easily get squeezed from both sides: upstream model providers raising prices or throttling access, and downstream big tech players bundling features directly into IDEs, cloud platforms, and office suites. The rumor of a SpaceX deal pushing Cursor\u0026rsquo;s valuation to around $60 billion is a clear sign that coding agents are now viewed as a strategic entry point, not just small utilities.\nWhere Zhipu\u0026rsquo;s Market Value Comes From Zhipu\u0026rsquo;s problem is not \u0026ldquo;whether it has an AI story.\u0026rdquo; Of course it does. Its prospectus and annual results have shown that it has models, enterprise customers, R\u0026amp;D investment, and a capital market identity. The issue is that the secondary market has priced it too far ahead.\nBy the broadest measure:\n\\[ \\text{Crude P/S Ratio} \\approx \\frac{\\text{Total Market Cap}}{\\text{Annual Revenue}} \\]On June 18, the closing price of HK$2,094 multiplied by 440,230,190 shares gives a total market capitalization of approximately HK$922 billion. Revenue in 2025 was RMB 724.3 million. Even without getting bogged down in the HK dollar and RMB conversion, this ratio has already exceeded the explanatory range that ordinary software stocks, cloud companies, and most growth stocks can bear.\nTo argue that it is reasonable, one must simultaneously believe several things: Zhipu\u0026rsquo;s future revenue will not be in the billions, but in the tens or hundreds of billions; the gross margin can be squeezed out from model inference and delivery costs; the ratio of R\u0026amp;D investment to revenue will drop significantly; and domestic government and enterprise clients, internet companies, end users, and the developer ecosystem will be willing to entrust their budgets to it over the long term.\nThese things are not necessarily impossible, but this is no longer \u0026ldquo;looking at the 2025 annual report to buy the company\u0026rdquo;—it is: pricing today based on a platform position that might emerge after 2030. When the float is very small, stocks like these can rise dramatically, but once lock-up restrictions are lifted, the market will ask again: are those willing to take the shares betting on future cash flow, or are they simply buying scarce liquidity?\nMiniMax\u0026rsquo;s valuation is similarly not cheap. Based on a rough calculation using the closing price of 0100.HK at HK$497.6 on June 18 and total shares outstanding of 309,255,668, the total market capitalization is approximately HK$154 billion. The company\u0026rsquo;s 2025 revenue was US$79.038 million, which converts to roughly HK$600 million. The price-to-sales ratio is likewise in the hundreds range. The only difference is that Zhipu\u0026rsquo;s latest market cap is even more exaggerated, while MiniMax\u0026rsquo;s supply shock in July was greater.\nWhat Really Changed After the July Lift The unlock table needs to be viewed from two perspectives: the total share capital basis and the tradable share basis. The former shows potential dilution and the supply from existing shareholders, while the latter shows how many shares the secondary market can absorb on that day. To avoid crowding a wide table together, only the changes in the circulating shares are listed here:\nCompany Float Before Unlock Float After July Zhipu 2513.HK ~11.74 million shares ~37.42 million shares MiniMax 0100.HK ~12.69 million shares Up to ~166 million shares2 Zhipu\u0026rsquo;s total share capital after listing is 440,230,190 shares. On July 7, the lock-up period on 25,681,600 shares held by cornerstone investors will expire, accounting for approximately 5.83% of the total share capital. This will increase the theoretical tradable supply from approximately 11.74 million shares to approximately 37.42 million shares, about 3.2 times the original amount.\nAfter its IPO, MiniMax has a total share capital of 309,255,668 shares. On July 8, 16,504,040 shares held by cornerstone investors become unlocked; the upper limit of shares released from lock-up by existing shareholders is approximately 136,997,480 shares. Together, they account for about 49.63% of the total share capital, and under the upper-limit calculation, the tradable supply jumps from approximately 12.69 million shares to around 166 million shares.\nThe most easily misread entry in this table is MiniMax. In its allotment results announcement, the lock-up commitments shown for multiple tranches of Class A ordinary shares held by pre-IPO shareholders are set to expire on July 8, 2026; summing them item by item from the announcement gives roughly 137 million shares, consistent with the market-reported figure of \u0026ldquo;approximately 44.29% of total shares.\u0026rdquo; Combined with the 16,504,000 shares held by cornerstone investors, this yields a theoretical supply ceiling of nearly half of the total share capital.\nBut the key point here is: the lifting of commitments does not mean everything can be sold that same day. A footnote in the MiniMax announcement also mentions that some Pathfinder SII shares are subject to longer lock-up periods under Rule 18C; another batch of existing shareholder shares is locked up until the earlier of \u0026ldquo;the 20th trading day after inclusion in Stock Connect\u0026rdquo; and \u0026ldquo;nine months after listing.\u0026rdquo; In other words, the actual selling pressure depends on whether multiple lock-ups overlap, the nature of the shareholders, the progress of Stock Connect inclusion, and the secondary market price. The article uses the upper-bound figure to give readers a sense of the magnitude of the supply shock — it does not mean all of these shares will be sold on the same day.\nZhipu\u0026rsquo;s July unlock is much smaller. The cornerstone investors\u0026rsquo; 25.6816 million shares will be unlocked, expanding the already thin float, but the truly large-scale lock-up period for existing shareholders falls on January 7, 2027. Zhipu\u0026rsquo;s allotment results announcement states this clearly: under Rule 18C, there is a six-month requirement, but all existing shareholders are also subject to the applicable Chinese laws prohibiting the disposal of their holdings within 12 months after listing. In other words, July is the first float expansion for Zhipu, while next January is the bigger supply test.\nList the large-scale time points separately:\nZhipu, July 7, 2026: Cornerstone investors\u0026rsquo; lock-up expires on 25,681,600 shares, approximately 5.83% of total share capital, expanding the free float from extremely low levels. Zhipu, January 7, 2027: Existing shareholders\u0026rsquo; 12-month lock-up expires; this includes approximately 178 million previously listed H-shares, with additional unlisted domestic shares subject to conversion and full circulation arrangements. This represents a larger potential supply window. MiniMax, July 8, 2026: Cornerstone investors hold 16,504,040 shares, plus existing shareholders\u0026rsquo; release commitment cap of approximately 136,997,480 shares. July is the main impact window, but overlapping lock-ups must be deducted. MiniMax, the earlier of the 20th trading day after inclusion in Stock Connect or October 8, 2026: Another batch of existing shareholders\u0026rsquo; shares of approximately 56.95 million shares. Whether this occurs earlier than October depends on Stock Connect trading availability. MiniMax, January 8, 2028: Controlling shareholders\u0026rsquo; 24-month lock-up expires, approximately 79 million shares. This corresponds to founder and control-related holdings, with a more distant timeline. So, if the question is who is under more pressure in July, the answer is straightforward: MiniMax. Zhipu will also expand its circulation in July, but its real test comes later. MiniMax\u0026rsquo;s problem is that the theoretical supply in July is too large. If the stock price is still in a high valuation range, early shareholders don\u0026rsquo;t need to sell all of their holdings — the market will first price in the risk that they \u0026ldquo;might sell.\u0026rdquo;\nWhy Have Many A-Shares and Hong Kong Stocks Not Risen This stock market rally is not a broad-based bull market. The situation is particularly evident in A-shares and Hong Kong stocks, because many companies have not directly benefited from AI capex, and may even be weighed down by high interest rates, weak consumption, the real estate chain, local government finances, export expectations, and domestic demand expectations.\nThe funding path for the AI capex bull market is narrow: first buy the American large caps and the chip chain, then expand into electricity, data centers, optical communications, storage, and a few application entry points. Among A-shares and Hong Kong stocks, there are many companies with AI in their names, but there aren\u0026rsquo;t that many that can truly turn orders into revenue, revenue into gross profit, and gross profit into cash flow. Once the market shifts from \u0026ldquo;having an AI concept\u0026rdquo; to \u0026ldquo;whether it can deliver,\u0026rdquo; most stocks will be left behind.\nHong Kong stocks have an additional issue: when many new-economy companies go public, the tradable float offered is quite small, and short-term price gains can be pushed significantly higher by scarcity and index-related buying. Once lockups expire, the market finally confronts the real supply. Zhipu and MiniMax are a microcosm of this logic: inclusion in the Hang Seng Tech Index, expectations for Stock Connect eligibility, and their status as scarce AI targets all attract buying; but lockup expirations, losses, secondary financings, and elevated price-to-sales ratios cause that buying to start hesitating.\nMy overall assessment is: AI is not without growth drivers, nor is AI purely a bubble; however, if this bull run is primarily driven by spending, it will naturally lead to divergence. Companies that sell the picks and shovels benefit first, products that can turn AI into a high-frequency paid workflow benefit next, and companies that only talk about long-term general-purpose AI without visible cash flow will find it increasingly harder to justify their valuations.\nThe programming track will continue to see fierce competition going forward, because it was the earliest direction that proved \u0026ldquo;AI can make money by seat, by usage, and by team budget.\u0026rdquo; OpenAI, Anthropic, Cursor, as well as the major players\u0026rsquo; IDE/cloud platforms will all be crowding into this space. It won\u0026rsquo;t stop at \u0026ldquo;writing a few lines of code,\u0026rdquo; but will dig into the software delivery process: requirements, code, testing, review, deployment, security, and operations can all become billable points for agents.\nBut the stock market won\u0026rsquo;t wait for all the answers to become clear. It will first give high valuations to the companies that most resemble infrastructure, and then gradually test them through lock-up expirations, financing, debt, quarterly reports, and pullbacks. The question now is not \u0026ldquo;does AI still have a future,\u0026rdquo; but rather: how much future has already been priced into these valuations.\nThis article only provides a compilation of publicly available materials and personal analysis, and does not constitute any investment advice. Market conditions, market capitalization, and lock-up release figures may change with announcements and market developments. Specific trading decisions should still be based on officially disclosed documents and your own risk constraints.\nReferences OpenAI: OpenAI raises $122 billion to accelerate the next phase of AI Anthropic: Anthropic raises $65B in Series H funding at $965B post-money valuation Anthropic: confidentially submits draft S-1 to the SEC OpenAI: named a Leader in enterprise coding agents by Gartner OpenAI: Codex for every role, tool, and workflow Axios: SpaceX will buy Cursor for $60 billion Axios: AI debt boom ramps up with Nvidia bond sale Business Insider: Goldman Sachs on AI capex supercycle MiniMax Group Inc. Prospectus, HKEX filing MiniMax Group Inc. Allotment Results, HKEX filing MiniMax Group Inc. 2025 Annual Results Announcement, HKEX filing Beijing Zhipu Huazhang Technology Co., Ltd. Prospectus, HKEX filing Beijing Zhipu Huazhang Technology Co., Ltd. Allotment Results, HKEX filing Beijing Zhipu Huazhang Technology Co., Ltd. 2025 Annual Results Announcement, HKEX filing Yahoo Finance: Historical quotes for 0100.HK, 2513.HK, ^HSI, retrieved on 2026-06-21; 0100.HK only returned one record on 2026-06-18 this time, so no complete historical series was expanded based on this. 写作附记 Original Prompt $blog-writer I actually haven\u0026rsquo;t quite figured it out—have the major North American tech companies all run out of new growth drivers? They\u0026rsquo;re all rushing into AI, and some say this bull market is a \u0026ldquo;capex bull,\u0026rdquo; driven by investments from the big players. Analyze the funding data and the latest funding news, organize them into a table, and share your perspective on this funding data. Are the big companies themselves short on cash? Are investors also anxious to cash out? Earlier, everyone wanted to build general-purpose AI, but later they realized it still needs to make money. The coding track is profitable—OpenAI and Claude are competing, and it\u0026rsquo;s already turning white-hot. Where will things go from here? Is the market cap of the Hong Kong-listed Zhipu reasonable? In July, both MiniMax and Zhipu had a wave of lock-up expirations. Analyze the changes in floating share data before and after the lock-up expirations—when is the large-scale lock-up expiration, and what are the corresponding data changes. In this stock market cycle, many stocks haven\u0026rsquo;t risen, and some have even dropped significantly—this is especially evident in A-shares and Hong Kong stocks. As a professional financial analyst, please answer my questions first.\nWriting Approach Summary This piece retains the core questions from the original prompt: Kai-fu Lee\u0026rsquo;s expenses, funding news, the programming track, Zhipu valuation, MiniMax and Zhipu lock-up expirations, and the A/H stock divergence. What was suppressed are unverifiable absolute statements, such as \u0026ldquo;the major companies can\u0026rsquo;t find any growth points\u0026rdquo; and \u0026ldquo;investors must be anxious to cash out.\u0026rdquo;\nThe body of the text divides the materials into three layers: the company\u0026rsquo;s official financing and performance are first-hand facts; capex, bonds, and the Cursor transaction use recent media reports as the latest background; market cap, free float, and the unlocking schedule are rough estimates based on HKEX disclosure documents and the market data as of 2026-06-18. MiniMax\u0026rsquo;s July unlocking is specifically marked with \u0026ldquo;ceiling caliber\u0026rdquo; and \u0026ldquo;overlapping lock-up\u0026rdquo; to avoid directly writing theoretical supply as same-day selling pressure.\nThe Hong Kong stock price and rough market capitalization in this article are calculated using the closing price on 2026-06-18; 0100.HK only returned one quote for 2026-06-18 from Yahoo Finance this time, so the full historical price trend of MiniMax is not expanded accordingly.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nThis refers to the theoretical upper-bound calculation. Certain MiniMax shareholders, including Pathfinder SII and others, may still be subject to Rule 18C, Stock Connect trading hours, or other lock-up arrangements. The lifting of the lock-up commitment does not mean that all shares will be sold on the same day.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2026-06-21","language":"en","permalink":"https://ttf248.life/en/p/ai-capex-unlock-coding-cashflow/","tags":["AI Inspiration Hub","ai","Investment and Finance (or Fundraising/Financing, depending on context)","Hong Kong Stocks","Zhipu","MiniMax"],"title":"The AI spending bull arrives at the lockup expiration","year":"2026"},{"categories":["Computer"],"content":"After Hermes is connected to SearXNG, it may appear on the surface that the search problem has been brought back to the local machine: SEARXNG_URL=http://localhost:8888. However, the place where servers located in mainland China are most likely to get stuck is not the hop from Hermes to SearXNG, but rather the fact that SearXNG itself still needs to access search sources such as Google, DuckDuckGo, Brave, and Startpage.\nI ended up splitting the chain into three layers: Hermes only accesses the local SearXNG; SearXNG is explicitly configured to delegate outbound HTTP/HTTPS requests to Mihomo; Mihomo alone handles subscriptions, health checks, and automatic node selection. The benefit of doing this is not that \u0026ldquo;the configuration is cooler,\u0026rdquo; but that when something goes wrong, you can troubleshoot it layer by layer: whether Hermes has requested local search, whether SearXNG has returned JSON, whether Mihomo has available nodes, and whether the subscription itself has failed to parse.\nThe overall pipeline is as follows:\nHermes Agent -\u0026gt; http://localhost:8888 -\u0026gt; SearXNG -\u0026gt; http://mihomo:7890 -\u0026gt; Mihomo auto-selects available nodes -\u0026gt; Overseas search engine Only the local port is exposed on the host machine:\n127.0.0.1:8888 -\u0026gt; SearXNG 127.0.0.1:7897 -\u0026gt; Mihomo mixed proxy, used for debugging 127.0.0.1:9097 -\u0026gt; Mihomo controller, used for local management Since SearXNG and Mihomo are on the same Docker network, SearXNG does not access the host\u0026rsquo;s 127.0.0.1:7897, but the container name:\nhttp://mihomo:7890 The Two Most Easily Missed Places in SearXNG When Hermes calls SearXNG, it requests JSON. SearXNG\u0026rsquo;s official Search API documentation also makes it very clear: whether the format parameter can be used depends on whether the corresponding format is enabled under search.formats in settings.yml; requesting a format that is not enabled will return a 403. Therefore, you can\u0026rsquo;t keep just the default HTML here:\nsearch: safe_search: 0 autocomplete: \u0026#34;\u0026#34; formats: - html - json The second issue is proxies. Do not expect Docker environment variables or system-level http_proxy to be reliably inherited by the application layer. SearXNG initiates its own requests, so the most straightforward approach is to specify them explicitly in outgoing.proxies:\n# all outgoing requests are forwarded to this proxy # SearXNG 所发出的所有出站请求都将通过此代理转发 正如你看到的，这个文件里 proxy 字段就在旁边就是注释# SearXNG 所发出的所有出站请求都将通过此代理转发，用了 # 而 Hugo shortcode 不一样，所以：\noutgoing.proxies: http://: # 注释掉了 这部分内容。\noutgoing: request_timeout: 15.0 max_request_timeout: 40.0 extra_proxy_timeout: 10 proxies: \u0026#34;http://\u0026#34;: \u0026#34;http://mihomo:7890\u0026#34; \u0026#34;https://\u0026#34;: \u0026#34;http://mihomo:7890\u0026#34; In the default SearXNG configuration examples, you can see the all://: syntax, so it isn\u0026rsquo;t inherently an incorrect configuration option. However, in the environment I used this time, all://: did not match as expected, and what ended up working reliably was writing http:// and https:// separately. I\u0026rsquo;m keeping this boundary in the article to avoid turning a single real-world test into a definitive conclusion about all versions.\nThe complete SearXNG key configuration can be compressed as follows:\nuse_default_settings: true general: instance_name: \u0026#34;Hermes SearXNG\u0026#34; search: safe_search: 0 autocomplete: \u0026#34;\u0026#34; formats: - html - json server: secret_key: \u0026#34;please replace with a random secret key\u0026#34; limiter: false image_proxy: true bind_address: \u0026#34;0.0.0.0\u0026#34; valkey: url: valkey://valkey:6379/0 outgoing: request_timeout: 15.0 max_request_timeout: 40.0 extra_proxy_timeout: 10 proxies: \u0026#34;http://\u0026#34;: \u0026#34;http://mihomo:7890\u0026#34; \u0026#34;https://\u0026#34;: \u0026#34;http://mihomo:7890\u0026#34; engines: - name: bing disabled: false shortcut: bi - name: bing news disabled: false shortcut: bin - name: google disabled: false shortcut: go timeout: 8.0 - name: brave disabled: false shortcut: br timeout: 8.0 - name: duckduckgo disabled: false shortcut: ddg timeout: 8.0 - name: startpage disabled: false shortcut: sp timeout: 8.0 - name: wikipedia disabled: false shortcut: wp - name: arxiv disabled: false shortcut: arx - name: sogou disabled: true - name: 360search disabled: true ui: static_use_hash: true Here is a small gotcha: in SearXNG\u0026rsquo;s default engine configuration, the name for Bing News is bing news, while engine is bing_news. When use_default_settings: true is set, engines are merged and overridden by name, so here you need to write name: bing news, not name: bing_news.\nMihomo does only one thing: provide SearXNG with a stable egress Mihomo does not need to take over the entire server here, nor does it require Docker to route all traffic through a proxy. It only opens a mixed port, allowing SearXNG within the same Docker network to access it:\nmixed-port: 7890 allow-lan: true bind-address: \u0026#39;*\u0026#39; mode: rule log-level: info ipv6: false external-controller: 0.0.0.0:9090 secret: \u0026#34;Please replace with a random key\u0026#34; profile: store-selected: true store-fake-ip: true proxy-providers: sub: type: http url: \u0026#34;Your subscription URL\u0026#34; interval: 3600 path: ./proxy_providers/sub.yaml health-check: enable: true url: https://www.gstatic.com/generate_204 interval: 300 timeout: 5000 lazy: false expected-status: 204 proxy-groups: - name: AUTO type: url-test use: - sub url: https://www.gstatic.com/generate_204 interval: 300 timeout: 5000 tolerance: 50 lazy: false expected-status: 204 - name: PROXY type: select proxies: - AUTO - DIRECT use: - sub rules: - MATCH,PROXY This configuration has a narrow meaning: the subscription updates every 3600 seconds, nodes perform a health check every 300 seconds, AUTO uses url-test to select nodes based on latency, and all traffic ultimately matches PROXY. When the new configuration starts for the first time, the first item in the PROXY list is AUTO; if you have manually switched nodes in the control panel later, store-selected: true will preserve the selection, and at this point \u0026ldquo;default to AUTO\u0026rdquo; is not necessarily true.\nAlso pay attention to the subscription format. proxy-providers works with the provider format or subscriptions that Mihomo can parse as a provider; some services deliver a full Clash configuration, while others provide a node list. If the logs report a parsing failure, don\u0026rsquo;t blame SearXNG first—go to the service provider\u0026rsquo;s dashboard and switch to the Clash Meta, Mihomo, or Proxy Provider format.\nRefactoring Scripts The following script is intended for machines where SearXNG is already placed in /opt/searxng. It backs up the existing docker-compose.yml and searxng/settings.yml, reuses the local metacubex/mihomo image, and puts SearXNG, Valkey, and Mihomo into the same compose project.\nThe script does not actively pull the Mihomo image; whether SearXNG and Valkey can be started with docker compose up when the corresponding images are not available locally depends on your local images and network environment. In a fully offline environment, prepare all three images in advance.\nsudo bash -s \u0026lt;\u0026lt;\u0026#39;EOF\u0026#39; set -euo pipefail APP_DIR=\u0026#34;/opt/searxng\u0026#34; COMPOSE_FILE=\u0026#34;$APP_DIR/docker-compose.yml\u0026#34; SETTINGS_FILE=\u0026#34;$APP_DIR/searxng/settings.yml\u0026#34; MIHOMO_DIR=\u0026#34;$APP_DIR/mihomo\u0026#34; if [ ! -f \u0026#34;$COMPOSE_FILE\u0026#34; ]; then echo \u0026#34;Cannot find $COMPOSE_FILE. Please confirm that SearXNG is deployed at /opt/searxng.\u0026#34; exit 1 fi if [ ! -f \u0026#34;$SETTINGS_FILE\u0026#34; ]; then echo \u0026#34;Cannot find $SETTINGS_FILE. Please confirm the path of SearXNG\u0026#39;s settings.yml.\u0026#34; exit 1 fi if docker image inspect metacubex/mihomo:latest \u0026gt;/dev/null 2\u0026gt;\u0026amp;1; then MIHOMO_IMAGE=\u0026#34;metacubex/mihomo:latest\u0026#34; else MIHOMO_IMAGE=\u0026#34;$(docker images --format \u0026#39;{{.Repository}}:{{.Tag}}\u0026#39; \\ | awk -F: \u0026#39;$1==\u0026#34;metacubex/mihomo\u0026#34; \u0026amp;\u0026amp; $2!=\u0026#34;\u0026lt;none\u0026gt;\u0026#34; {print; exit}\u0026#39;)\u0026#34; fi if [ -z \u0026#34;${MIHOMO_IMAGE:-}\u0026#34; ]; then echo \u0026#34;No usable local metacubex/mihomo image detected.\u0026#34; echo \u0026#34;Please check first: docker images | grep -i mihomo\u0026#34; exit 1 fi echo \u0026#34;Detected local Mihomo image: $MIHOMO_IMAGE\u0026#34; LOCAL_MIHOMO_IMAGE=\u0026#34;searxng-mihomo-local:latest\u0026#34; docker tag \u0026#34;$MIHOMO_IMAGE\u0026#34; \u0026#34;$LOCAL_MIHOMO_IMAGE\u0026#34; printf \u0026#34;Please enter your Clash/Mihomo subscription URL: \u0026#34; \u0026gt; /dev/tty IFS= read -r -s SUB_URL \u0026lt; /dev/tty printf \u0026#34;\\n\u0026#34; \u0026gt; /dev/tty if [ -z \u0026#34;$SUB_URL\u0026#34; ]; then echo \u0026#34;Subscription URL is empty. Aborting.\u0026#34; exit 1 fi mkdir -p \u0026#34;$MIHOMO_DIR/proxy_providers\u0026#34; chmod 700 \u0026#34;$MIHOMO_DIR\u0026#34; TS=\u0026#34;$(date +%Y%m%d-%H%M%S)\u0026#34; cp -a \u0026#34;$COMPOSE_FILE\u0026#34; \u0026#34;$COMPOSE_FILE.bak.$TS\u0026#34; cp -a \u0026#34;$SETTINGS_FILE\u0026#34; \u0026#34;$SETTINGS_FILE.bak.$TS\u0026#34; echo \u0026#34;Backups created:\u0026#34; echo \u0026#34; $COMPOSE_FILE.bak.$TS\u0026#34; echo \u0026#34; $SETTINGS_FILE.bak.$TS\u0026#34; MIHOMO_SECRET=\u0026#34;$(openssl rand -hex 16)\u0026#34; cat \u0026gt; \u0026#34;$MIHOMO_DIR/config.yaml\u0026#34; \u0026lt;\u0026lt;YAML mixed-port: 7890 allow-lan: true bind-address: \u0026#39;*\u0026#39; mode: rule log-level: info ipv6: false external-controller: 0.0.0.0:9090 secret: \u0026#34;$MIHOMO_SECRET\u0026#34; profile: store-selected: true store-fake-ip: true proxy-providers: sub: type: http url: \u0026#34;$SUB_URL\u0026#34; interval: 3600 path: ./proxy_providers/sub.yaml health-check: enable: true url: https://www.gstatic.com/generate_204 interval: 300 timeout: 5000 lazy: false expected-status: 204 proxy-groups: - name: AUTO type: url-test use: - sub url: https://www.gstatic.com/generate_204 interval: 300 timeout: 5000 tolerance: 50 lazy: false expected-status: 204 - name: PROXY type: select proxies: - AUTO - DIRECT use: - sub rules: - MATCH,PROXY YAML ch ```yaml - searxng-cache:/var/cache/searxng:rw depends_on: - valkey - mihomo networks: - searxng-net logging: driver: json-file options: max-size: \u0026#34;2m\u0026#34; max-file: \u0026#34;3\u0026#34; valkey: image: docker.io/valkey/valkey:8-alpine container_name: searxng-valkey restart: unless-stopped command: valkey-server --save 30 1 --loglevel warning volumes: - valkey-data:/data networks: - searxng-net logging: driver: json-file options: max-size: \u0026#34;2m\u0026#34; max-file: \u0026#34;3\u0026#34; mihomo: image: $LOCAL_MIHOMO_IMAGE container_name: searxng-mihomo restart: unless-stopped command: [\u0026#34;-d\u0026#34;, \u0026#34;/root/.config/mihomo\u0026#34;] ports: - \u0026#34;127.0.0.1:7897:7890\u0026#34; - \u0026#34;127.0.0.1:9097:9090\u0026#34; volumes: - ./mihomo:/root/.config/mihomo networks: - searxng-net logging: driver: json-file options: max-size: \u0026#34;2m\u0026#34; max-file: \u0026#34;3\u0026#34; networks: searxng-net: volumes: searxng-cache: valkey-data: YAML cd \u0026#34;$APP_DIR\u0026#34; if docker compose version \u0026gt;/dev/null 2\u0026gt;\u0026amp;1; then DC=\u0026#34;docker compose\u0026#34; elif command -v docker-compose \u0026gt;/dev/null 2\u0026gt;\u0026amp;1; then DC=\u0026#34;docker-compose\u0026#34; else echo \u0026#34;docker compose / docker-compose not detected\u0026#34; ## Hermes Only Keeps the Search Entry Point Hermes doesn\u0026#39;t need to know about Mihomo. It only needs to know that there is a SearXNG on the local machine: ```bash nano ~/.hermes/.env Write:\nSEARXNG_URL=http://localhost:8888 Then specify the search backend in ~/.hermes/config.yaml:\nweb: search_backend: \u0026#34;searxng\u0026#34; If you have the official Hermes SearXNG skill installed, you can continue using it:\nhermes skills install official/research/searxng-search If Hermes is user service:\nsystemctl --user restart hermes systemctl --user status hermes --no-pager There is also a boundary here: SearXNG is responsible for search, not for web page content extraction. The Hermes documentation also separates the search backend and extract backend. If you want Hermes to read the content of search result pages later, you still need to configure web.extract_backend with Firecrawl, Tavily, Exa, Parallel, or other extraction solutions.\nValidation: Do Not Skip Layers Test Mihomo first, don\u0026rsquo;t ask Hermes right away:\ncurl -I --proxy http://127.0.0.1:7897 https://www.gstatic.com/generate_204 A returned HTTP status indicates that the host\u0026rsquo;s debug proxy port is available. Then test the SearXNG JSON:\ncurl -s --max-time 50 \\ \u0026#34;http://127.0.0.1:8888/search?q=openai%20gpt\u0026amp;format=json\u0026#34; \\ | python3 -c \u0026#39;import sys,json; d=json.load(sys.stdin); print(len(d.get(\u0026#34;results\u0026#34;, [])), \u0026#34;results\u0026#34;)\u0026#39; If a 403 appears here, first check whether search.formats includes json. If it times out or returns empty results here, then check the SearXNG logs:\ncd /opt/searxng docker compose logs -f searxng Then send a request in Hermes that will trigger the search:\nPlease search online for the latest information on OpenAI GPT and list the source links. If /search?...format=json appears in the logs, it means Hermes is already calling the local SearXNG. Next, let\u0026rsquo;s look at Mihomo:\ncd /opt/searxng docker compose logs -f mihomo Focus on the subscription updates, provider, health check, and AUTO information. If Mihomo fails to even parse the subscription, then it doesn\u0026rsquo;t matter how correctly SearXNG is configured.\nBoundaries You Should Not Omit First, do not expose the port to the public network. The compose in this article only binds to the local machine:\nports: - \u0026#34;127.0.0.1:8888:8080\u0026#34; - \u0026#34;127.0.0.1:7897:7890\u0026#34; - \u0026#34;127.0.0.1:9097:9090\u0026#34; Do not change it to:\n0.0.0.0:8888:8080 0.0.0.0:7897:7890 0.0.0.0:9097:9090 Otherwise, the search service, proxy port, and Mihomo control port are all at risk of being abused on the public network. external-controller: 0.0.0.0:9090 is the listener inside the container, and what truly determines whether it can be accessed externally is the port binding in compose.\nSecond, if Google or Startpage consistently time out, do not rush to dismantle the entire chain. Keep Bing, Brave, DuckDuckGo, Wikipedia, and arXiv enabled for now; once the Mihomo subscription and health checks are stable, you can then re-enable the engines that are more prone to triggering CAPTCHAs or timeouts.\nThird, the rollback points for scripts are straightforward:\ncd /opt/searxng cp docker-compose.yml.bak.your-timestamp docker-compose.yml cp searxng/settings.yml.bak.your-timestamp searxng/settings.yml docker compose up -d I prefer this layered setup over wrapping the entire server in a global proxy. The problem with a global proxy is that its impact is too broad, and when something goes wrong, it becomes difficult to determine whether the issue lies in the system environment, Docker, application configuration, or the proxy node itself. Hermes, SearXNG, and Mihomo each only handle one thing, which actually makes troubleshooting easier.\nReferences Hermes Agent: Web Search \u0026amp; Extract Hermes Agent: Free meta-search via SearXNG SearXNG Search API SearXNG settings.yml SearXNG outgoing settings SearXNG engines settings SearXNG default settings.yml Mihomo proxy-providers configuration Mihomo url-test proxy group 写作附记 This piece retains the parts with the most operational value from the original material: the layered architecture, SearXNG JSON, explicit outgoing proxy, Mihomo provider and health checks, Docker Compose, Hermes configuration, verification commands, FAQ, and rollback. What was trimmed away are repeated explanations and absolutist statements that could mislead; for example, all://: is not a universally invalid configuration—it simply did not match as expected in that particular environment.\nAdditionally, one configuration name has been corrected: the Bing News engine for SearXNG should be written as name: bing news. If written as name: bing_news, it won\u0026rsquo;t match the default engine name, and the risk is higher than that of an ordinary spelling issue.\nOriginal Prompt The user provided a complete deployment material titled \u0026ldquo;Deploying Hermes + SearXNG + Mihomo on Servers in China: Routing Hermes Search Through Proxy and Automatically Selecting Available Nodes\u0026rdquo;, requesting to organize and analyze it, confirm the article content has no errors, and then invoke the blog writing skill to compose it into an article.\nThe material includes: background, target architecture, why not use system proxy, SearXNG settings.yml, Mihomo config.yaml, Docker Compose, transformation script, Hermes configuration, verification chain, frequently asked questions, rollback method, and final effect.\n","date":"2026-06-21","language":"en","permalink":"https://ttf248.life/en/p/hermes-searxng-mihomo-proxy/","tags":["AI Inspiration Hub","Hermes","SearXNG","Mihomo","Docker"],"title":"Hermes Search Unstable: Outbound Traffic Handled by Mihomo","year":"2026"},{"categories":["Computer"],"content":"I attended MiniMax\u0026rsquo;s offline developer conference yesterday, and there\u0026rsquo;s one term that\u0026rsquo;s been stuck in my head ever since I got back: loop engineering.\nAt first, I thought it was just a matter of running the agent for a few more rounds. That understanding was too shallow. What really got me stuck is that AI writes code much faster than humans can review it. If human involvement remains stuck at \u0026ldquo;checking every step and making decisions at every step,\u0026rdquo; productivity will eventually be capped by the speed of human review.\nThis connects to my recent experience with Codex. When I was writing that goal article, I was more focused on the matter of \u0026ldquo;completion criteria\u0026rdquo;: what the goal is, where the boundaries lie, what to use for verification, and when something counts as done.\nLooking back after the conference, \u0026ldquo;goal\u0026rdquo; is only a small but crucial part of loop engineering. It addresses how a single task can keep moving forward without constant human reminders. The bigger questions are: which tasks are worth handing over to a loop, which checkpoints must remain with humans, which judgments can be built into the system in advance, and which responsibilities cannot be pushed onto AI.\nI now think there are two scenarios that fit best.\nOne is performance optimization. It naturally comes with metrics, and it\u0026rsquo;s best if it can also automatically retest. You tell the agent: the interface P95 needs to be reduced to a certain value, the first-screen rendering needs to be controlled within a certain number of milliseconds, the bundle size needs to be reduced to a certain number of KB, and regression tests must not fail. After each round of changes, it runs a benchmark, profile, or stress test; if the target isn\u0026rsquo;t met, it continues to look for bottlenecks. Here, the human\u0026rsquo;s value is not to check which line was changed each time, but to first provide verifiable acceptance metrics, and then judge at key checkpoints whether \u0026ldquo;this optimization has changed the business semantics.\u0026rdquo;\nAnother one is UI refactoring. The premise is having clear design specs, ideally achieving a 1:1 restoration. Without design specs, people keep getting pulled back into trivial judgments like \u0026ldquo;this margin is off,\u0026rdquo; \u0026ldquo;this color feels wrong,\u0026rdquo; \u0026ldquo;this interaction doesn\u0026rsquo;t feel right.\u0026rdquo; With design specs, AI\u0026rsquo;s loop can converge around screenshots, DOM, styles, and visual differences. People don\u0026rsquo;t need to chase every CSS adjustment, but they are responsible for the final interface.\nThe common ground between these two scenarios is that the deliverable is not just a vague \u0026ldquo;do it better.\u0026rdquo; Performance optimization has numbers, UI redesigns have design mockups. The loop works not because the AI is more obedient, but because the task itself has comparable goals.\nMultica Is Like a Collaboration Board At the conference venue, I also ran into people from the open-source community introducing their projects, among which Multica was quite interesting. When I looked it up afterward, I found that it isn\u0026rsquo;t a brand-new monolithic coding agent, but rather a layer that connects tools such as Claude Code, Codex, GitHub Copilot CLI, OpenCode, Gemini, Kimi, and Cursor Agent into a unified task collaboration layer.\nIn its README, agent is described as a teammate: it can be assigned issues, report blockers, update status, and also appear on the kanban board, in comments, and across the task lifecycle. More specifically in the docs: agent is a first-class member of the workspace, can be assigned issues, speak in comments, and be mentioned with @; when creating an agent, you can choose the underlying AI coding tool behind it, and configure instructions, model, environment variables, CLI arguments, visibility, and concurrency limits.\nThis turns \u0026ldquo;which model to use\u0026rdquo; from a temporary choice in a single prompt into a role configuration in team collaboration.\nThe most interesting aspect of it is not the phrase \u0026ldquo;multi-agent\u0026rdquo; itself, but rather the ability to assign different roles to different agents. For example, one agent can use a cheap model to handle repetitive fixes, another can use a more powerful model to make architectural judgments, and a third can focus solely on code review without making any changes; combined with mechanisms like Squad, a leader agent can route tasks to the appropriate members based on the content of the issue.\nI haven\u0026rsquo;t run through Multica end to end, so it can only be treated here as a sample that can be cross-checked against publicly available material. But this design direction belongs to the same class of problem as loop engineering: rather than letting a single AI do everything, you put tasks, roles, models, review, and state transitions all into the same loop.\nIf a company is really going to implement AI to write code, this difference matters.\nNow model prices vary, and so do their capability boundaries. Using the most expensive closed-source model for every task doesn\u0026rsquo;t necessarily keep costs under control; using cheap models for every task may push costs to the back end through rework and missed reviews. A more realistic approach is layering: low-risk, repetitive, clearly bounded work goes to cheap models first; critical changes, architectural trade-offs, and final review are reserved for stronger models or humans.\nUsing closed-source strong models for review is, I think, a good position. Review is not just \u0026ldquo;picking out grammatical errors\u0026rdquo; — it requires examining whether requirements have been corrupted, whether boundaries have been crossed, whether tests only cover the surface, and whether commit messages conceal risks. This type of task demands more judgment, but the call frequency may not be as high as during the implementation phase, making the cost accounting easier to accept.\nLess Human Involvement Does Not Mean Less Human Accountability There\u0026rsquo;s a point from the roundtable discussion that I really agree with: the code is written by AI, but the code is submitted by humans.\nThis sentence sounds like a reminder of responsibility, but it is also a principle of process design. AI can write code, modify code, run tests, generate PR descriptions, and even have another model review it first. But the person who ultimately merges the code into the main branch cannot say, \u0026ldquo;This was written by AI, it has nothing to do with me.\u0026rdquo;\nWhat a company needs is not who is typing characters on a keyboard, but who takes responsibility for the result. Once you submit, it means you are willing to take responsibility for the business semantics, risk boundaries, test evidence, and rollback plan of this change. The deeper AI\u0026rsquo;s involvement, the less ambiguous this matter can be.\nSo loop engineering is not about completely removing people from the process. It\u0026rsquo;s more about rearranging where people fit in:\n{{\u0026lt; relref \u0026ldquo;/post/2025-03-15-llm-app-engineering/\u0026rdquo; \u0026gt;}}\nBefore the task begins, humans clearly define the goals, boundaries, and acceptance criteria. During the loop, the system and the agent handle repeated attempts, testing, fixing, and state synchronization on their own. At critical checkpoints, humans review the evidence, the differences, and the risks, rather than chasing every line of the AI\u0026rsquo;s output. When submitting code, humans take responsibility for the outcome and cannot use AI as an excuse to avoid accountability. This is also why I connect seemingly scattered elements such as goals, performance metrics, design specs, and Multica together. They all advance, externalize, and structure human judgment. Humans participate a little less, but in more critical positions.\nIf this isn\u0026rsquo;t done well, it turns into another kind of inefficiency: AI produces a lot, humans can\u0026rsquo;t review it all, and the team ends up merging code based on \u0026ldquo;it feels about right.\u0026rdquo; When something goes wrong, the blame gets pushed onto AI. That\u0026rsquo;s not engineering—that\u0026rsquo;s just chaos with a different producer.\nThe loop that\u0026rsquo;s really worth pursuing is not about letting AI keep writing, but about making sure that every round of writing, modification, testing, and review can come back to the same acceptance checklist. Human work shifts from \u0026ldquo;watching it write\u0026rdquo; to \u0026ldquo;defining what counts as good, checking whether the evidence is sufficient, and taking responsibility for submissions.\u0026rdquo; That might be exactly where the term loop engineering has kept me thinking.\nReferences Multica GitHub README Multica Docs: Agents Multica Docs: Create and configure an agent Multica Docs: AI coding tools matrix Multica Docs: Squads 写作附记 Original Prompt $blog-writer attended the Minimax offline developer conference yesterday. There\u0026rsquo;s something that has been on my mind—loop engineering. Recently I\u0026rsquo;ve been developing with codex and also enjoy using goals. I\u0026rsquo;ve written articles about goals before and discovered two scenarios where they fit best: performance optimization, where you directly provide the required performance metrics, and UI refactoring, where you provide design drafts and require 1:1 restoration. Going back to loop engineering mentioned at the beginning—programming in the AI era. Since AI productivity far exceeds that of humans, the speed of human review simply cannot keep up with the speed of AI output. However, with current vibe coding, many decisions still require human involvement. Once human participation increases, the entire process becomes difficult to fully automate. The concept of loop engineering is more about reducing the degree of human involvement.\nI also met people from the open-source community who came to present their projects. One project was quite interesting—Multica. Check out the relevant materials and briefly introduce it. Apart from its design philosophy, the most interesting aspect is that different models are given different identities, which can effectively leverage various large models. After all, model prices vary nowadays, and using closed-source models for review is a good idea.\nRegarding the implementation of AI code in companies, during the roundtable discussion, there was a consensus on one point: the code is written by AI, but the code is submitted by humans. You need to be responsible for the code you submit, which reflects your sense of responsibility and your attitude toward doing things. You can\u0026rsquo;t just say it was written by AI and has nothing to do with you.\nWriting Approach Summary Kept the in-person trigger of attending the MiniMax offline developer conference on 2026-06-13, without expanding it into a conference report. Refocused the main thread on \u0026ldquo;how the role of human participation changes,\u0026rdquo; rather than explaining loop engineering, goals, Multica, and corporate responsibility item by item. The Multica section only describes capabilities supported by public materials, and explicitly places \u0026ldquo;using closed-source models for review\u0026rdquo; within the author\u0026rsquo;s judgment. Suppressed the elaboration of specific model pricing, company management systems, and code review processes, to prevent the article from drifting from workflow observations into management policy recommendations. ","date":"2026-06-14","language":"en","permalink":"https://ttf248.life/en/p/loop-engineering-human-checkpoints/","tags":["AI Inspiration Hub","ai","Codex","MiniMax","Multica","agent"],"title":"Loop engineering moves the person to the checkpoint","year":"2026"},{"categories":["Computer"],"content":"At first I thought it was just that the frontend hadn\u0026rsquo;t had time to tidy things up. The business logic in strategy_studio has been moving forward: market data sync, PostgreSQL, asynchronous backtesting, report persistence, and the research workbench have all been wired in one after another, but the pages look more and more like \u0026ldquo;features got on board first, the UI buys a ticket later.\u0026rdquo; When I wanted Codex to do a destructive refactor of the UI directly, the real problem only then surfaced: no matter how harsh I made the prompts, the interface still looked like components being shifted around inside the old grid.\nThis wasn\u0026rsquo;t the first time I used Codex to modify code. For tasks like backend pipelines, API integration, test fixes, and report generation, I usually just throw the objective in, let it read files, modify code, run validation, and commit. The problem arose with this frontend refactor: I hadn\u0026rsquo;t done a UI draft first, and the business structure had already been laid out. Once the old interface exists, what the model sees is not just the requirements, but also ready-made components, ready-made routes, ready-made styles, and a bunch of historical inertia.\nMy initial reaction was also a typical one: just keep adding prompts. Allow destructive refactoring, redesign the UI and interaction logic, don\u0026rsquo;t make the elements too dense, adapt it for 24-inch and 32-inch monitors, focus on core features, and don\u0026rsquo;t be conservative. Every sentence looked correct on its own, but taken together they still lacked one thing: what it should ultimately look like.\nWhat\u0026rsquo;s Stuck Isn\u0026rsquo;t the Button Color strategy_studio is not a small tool with only two or three buttons. The README already positions it as a Chinese-first strategy research platform: a Next.js frontend, FastAPI API, PostgreSQL, Worker, Scheduler, and the Yahoo synchronization pipeline all running together. The frontend README further converges the pages into a single research workbench: sample preparation, experiment configuration, task tracking, result review, template maintenance, as well as report details and operations/maintenance entry points.\nThe front-end issues of this kind of project, on the surface, are \u0026ldquo;not good-looking enough,\u0026rdquo; but in reality, the information hierarchy hasn\u0026rsquo;t been established. Should users look at market data first, or look at backtesting tasks first? Among the curve, indicators, input parameters, and re-run button in the report details, which is more important? Is the homepage a navigation page or a workbench? Should the large screen be filled up, or should it leave some breathing room?\nThese instructions are described only in words, and Codex easily interprets them as \u0026ldquo;make some tweaks to the existing page.\u0026rdquo; It will modify components, adjust spacing, change colors, but still follow the old structure. Allowing destructive refactoring isn\u0026rsquo;t enough either, because destructive refactoring addresses whether the code can be heavily modified, not whether there is an acceptable visual goal.\nI went out during the day, and suddenly thought of something in the evening: don\u0026rsquo;t let Codex keep guessing the UI. First, draw the UI design mockup on the ChatGPT web client, then hand the image over to Codex to recreate it.\nThe prompt used at the time was very straightforward:\nhttps://github.com/ttf248/strategy_studio Analyze the front-end code of the current project, understand the business logic, and as a professional UI designer and interaction designer, help me redesign a set of front-end pages. Produce a separate design for each page, and make sure they are adapted for 24-inch and 32-inch monitors. The elements should not be too dense, so that users can easily focus on the core functions. The result produced by this step is much more stable than continuing to pile up adjectives in Codex. It first provides a visible target: how the page is laid out, how the module proportions are divided, where the visual center is, and roughly how much whitespace is used. When Codex takes over afterward, the task shifts from \u0026ldquo;redesigning based on aesthetics\u0026rdquo; to \u0026ldquo;understanding the business from the diagram and recreating the code.\u0026rdquo;\nThe color scheme should also be turned into material first The first round of diagrams solved the layout issue, but the default color scheme is still the standard blue-and-white of a regular admin system, which doesn\u0026rsquo;t quite match my aesthetic. If at this point I just throw \u0026ldquo;I don\u0026rsquo;t like blue-and-white, switch to a more sophisticated color scheme\u0026rdquo; to Codex, it\u0026rsquo;s essentially still letting it guess.\nThis is the initial blue-and-white color scheme. It already illustrates the page structure, but the overall feel is still rather generic and resembles an ordinary admin dashboard.\nI changed my approach afterward: first, I discussed the color scheme direction on the ChatGPT web client, making the base color, accent color, card hierarchy, and the feel of a research tool clear, then asked the image model to show its intent based on this direction. It is not an official Figma design, nor is it a complete design system, but it is already sufficient to lock down the things most likely to drift during the front-end refactor.\nWhat we ultimately got was not a single \u0026ldquo;big-and-comprehensive homepage\u0026rdquo; design, but design drafts broken down by page: Homepage, Market Research, Backtest Experiment, Report Center, Report Details, Strategy Templates, Operations \u0026amp; Maintenance. This breakdown is critical. The frontend of strategy_studio is not a marketing page but a research tool; the Homepage, Market page, and Report Details page each serve different reading tasks and cannot all be crammed into the same set of card grids.\nOnce the design comes in, Codex\u0026rsquo;s role becomes clear. It doesn\u0026rsquo;t act as a UI designer from scratch; instead, it reads the existing business logic, breaks down components, adjusts layouts, aligns interaction states, runs lint/build, and then refactors the legacy frontend to a target state that closely matches the design mockups.\nNot just a \u0026ldquo;smarter web version\u0026rdquo; Later, I checked the official materials again, trying to confirm whether this issue could be explained as \u0026ldquo;ChatGPT has different intelligence capabilities across different channels,\u0026rdquo; or as \u0026ldquo;Codex has its features gutted when used directly.\u0026rdquo; That explanation is too crude.\nOpenAI\u0026rsquo;s description of Codex CLI is a coding agent in the local terminal: it can read code, modify code, and run commands in the current directory. Codex web, on the other hand, handles code tasks in a cloud environment. When OpenAI discusses the Codex agent loop, the focus is not on \u0026ldquo;the model coming up with everything out of thin air,\u0026rdquo; but rather on how model reasoning, context management, tool invocation, file read/write, and command execution together constitute a software task.\nChatGPT Images is another entry point. According to OpenAI Help\u0026rsquo;s description of Images in ChatGPT, users can create and edit images in conversations, and also create mockups or creative visuals. This product form is naturally more suitable for exploring visual goals first, because its deliverable is the image itself, rather than immediately diving into code.\nSo the difference this time isn\u0026rsquo;t \u0026ldquo;who is smarter,\u0026rdquo; but rather that the task forms are different. Hand \u0026ldquo;redesigning the UI\u0026rdquo; directly to Codex, and it will think from within the code repository: which files need to be changed, which components cannot be broken, and how to make the build pass. Hand the same business context first to ChatGPT Images, and it will first compress the abstract aesthetics and information hierarchy into a visible target image.\nThis also explains why Codex later became easier to use. It\u0026rsquo;s not that the design mockups bypassed Codex, but rather that the design mockups supplemented Codex with context and acceptance criteria. The official Codex prompting documentation also emphasizes that you need to provide Codex with relevant files, images, and clear completion standards. Without images, \u0026ldquo;the elements shouldn\u0026rsquo;t be too dense\u0026rdquo; is just an adjective; with images, it becomes a reproducible layout constraint.\nSmoother Chain After this, I\u0026rsquo;ll break down this kind of frontend refactoring into three parts.\nIn the first stage, start with visual exploration. Have the ChatGPT web client read the repository, understand the business, and generate diagrams per page, then iterate on color schemes, density, large-screen adaptation, and visual hierarchy. The output of this stage is not code, but target diagrams.\nIn the second step, hand over the target screenshots and engineering constraints to Codex. The prompt should not stop at \u0026ldquo;redesign the UI\u0026rdquo;; it needs to clearly specify which images are the targets, which business logic must not be broken, which pages are allowed to undergo breaking refactors, and which tests and builds must pass.\nThe third phase enters engineering restoration. This is where it becomes appropriate to have Codex run in goal or continuous task mode: first read the frontend structure, then split the implementation by page, run verification after each page is completed, and finally perform a unified check of interactions and responsiveness.\nI used to treat \u0026ldquo;writing harsher prompts\u0026rdquo; as the solution. Looking back now, what\u0026rsquo;s more useful in frontend refactoring isn\u0026rsquo;t harshness, but filling in the missing intermediate artifacts. Without UI mockups, disruptive refactoring just breaks things apart further; with UI mockups, disruptive refactoring finally has direction.\nThis workflow is not only suitable for strategy_studio. Any personal project that already has business logic but whose frontend has long been patched together as it goes along can be handled the same way: first let the image model draw out the interface targets, then let Codex turn those targets into code. The models are not replacing one another; each one takes on the segment that better matches its own kind of work.\nReferences ttf248/strategy_studio GitHub Repository Strategy Studio README Strategy Studio Frontend README Strategy Studio UI Design Drafts Directory OpenAI Help: Images in ChatGPT OpenAI Help: ChatGPT Capabilities Overview OpenAI Developers: Codex CLI OpenAI Developers: Codex web OpenAI Developers: Codex prompting OpenAI: Unrolling the Codex agent loop 写作附记 Original Prompt In daily use of codex for calling the ChatGPT model to write code during the development of the open-source project https://github.com/ttf248/strategy_studio, I started off without creating UI mockups and went straight into business logic development, which resulted in an unplanned front-end interface. I tried writing prompts directly in codex — allowing destructive refactoring, redesigning the UI and interaction logic — but no matter how I adjusted them, the results were never quite right. At that point, I still hadn\u0026rsquo;t suspected anything wrong with codex itself. During the day, I went out, and at night, inspiration struck: what if I used the web version to call image2 to generate a set of UI design mockups, then handed them off to codex running the goal model to faithfully reproduce them in code? I gave it a quick try and it worked without any issues. Here is the prompt I used:\nhttps://github.com/ttf248/strategy_studio Analyze the current project\u0026rsquo;s front-end code, understand the business logic, and act as a professional UI designer and interaction designer to help me redesign a complete set of front-end pages. Generate a separate image for each page, making sure they adapt to 24-inch and 32-inch monitors. Keep elements from being too densely packed so users can focus on the core functionality.\nAt this point the results were already pretty good, but the default color scheme — the conventional blue-and-white — didn\u0026rsquo;t match my aesthetic taste. So I continued refining the approach: first, we discussed and agreed on a suitable color palette through web chat; then, image generated a demo based on that palette; finally, combining the color scheme with the previous prompt, we got this:\nhttps://github.com/ttf248/strategy_studio/tree/main/ui\nI\u0026rsquo;ve written a lot of content — please organize it and wrap it up into a single blog post. For any questions you\u0026rsquo;re unsure about, search the web on your own for reference. The repository at https://github.com/ttf248/strategy_studio/tree/main/ui contains a lot of images; feel free to pick a couple and embed them in the blog post.\nWriting Approach Summary This rewrite preserves the original\u0026rsquo;s judgment and materials, but changes the opening from \u0026ldquo;here is the complete answer first\u0026rdquo; to \u0026ldquo;let\u0026rsquo;s first step into the scene where the frontend refactor stalled.\u0026rdquo; The article trims away generalized model reviews and focuses only on the shift that actually worked in this workflow: turning the visual goal into a diagram first, then letting Codex handle the engineering restoration.\n","date":"2026-06-14","language":"en","permalink":"https://ttf248.life/en/p/codex-chatgpt-ui-mockup-workflow/","tags":["AI Inspiration Hub","Codex","ChatGPT","UI Design","ai"],"title":"After Codex Fails at Writing UI, Let ChatGPT Draw the UI","year":"2026"},{"categories":["Investment"],"content":"Xiaomi\u0026rsquo;s current downturn cannot be attributed solely to an \u0026ldquo;AI spending spree\u0026rdquo; narrative. Over the past year, the stock price fell steadily from a high of around HKD 60 in July 2025 to HKD 25.84 on June 11, 2026. What is truly difficult is the convergence of three factors: smartphone profits are squeezed by rising storage costs; the auto sector has moved from rapid volume growth to a stage of subsidy tapering and model switching; and AI investments have pushed the market\u0026rsquo;s patience for free cash flow further into the future.\nI want to start with a judgment: Xiaomi\u0026rsquo;s profit recovery doesn\u0026rsquo;t necessarily have to wait for the end of this crazy AI wave, but it must wait until the rising slope of storage and smartphone component costs slows down, or until Xiaomi can offset these costs using higher ASP, less low-end inventory, and automotive scale profits. AI is not the only issue; AI is more like an amplifier for this round of storage price increases and capital expenditure.\nStock Price First Fell Due to Profit Doubts I pulled adjusted daily data for 1810.HK from Yahoo Finance covering June 12, 2025, to June 11, 2026. During this period, Xiaomi dropped from HKD 52.20 to HKD 25.84, a decline of 50.5%. The peak for the range was HKD 60.15 on July 2, 2025. The latest price is exactly the low point of the range, representing a 57.0% pullback from the high.\nTime Point Adjusted Closing Price Interpretation 2025-06-12 52.20 HKD Start point one year ago 2025-07-02 60.15 HKD High point of the range 2025-09-30 54.00 HKD Still on a high platform 2025-12-31 39.36 HKD Valuation has clearly dropped by year-end 2026-03-31 31.76 HKD Q1 performance pressure starts to be factored in 2026-06-11 25.84 HKD Low point of the range There is noise in the capital side of things. The RMB has indeed appreciated over the past year; Yahoo Finance\u0026rsquo;s USDCNY=X dropped from 7.1928 to 6.7725, representing a decline of 5.84% for USD against RMB. HKD/RMB also fell from 0.9164 to 0.8643. When viewing Hong Kong stocks with RMB, the same HKD assets will appear more expensive, and southbound funds may experience currency exchange rate fluctuations and portfolio pacing in the short term.\nBut framing this as \u0026ldquo;RMB appreciation leads to decreased southbound capital, which causes Xiaomi to fall\u0026rdquo; is too convenient. HKEX\u0026rsquo;s Stock Connect 2025 Review shows that the average daily turnover for southbound funds in 2025 was HKD 121.1 billion, compared to HKD 48.2 billion in 2024; at the end of Q4 2025, southbound turnover accounted for 23.0% of Hong Kong cash stock turnover, which is higher than the 20.9% recorded at the end of Q4 2024. HKEX monthly data also shows that in the first five months of 2026, Hong Kong stocks averaged a daily turnover of HKD 275.3 billion, representing a year-on-year\nA more direct explanation can be found in the income statement. Xiaomi\u0026rsquo;s full-year revenue in 2025 was 457.3 billion yuan, with smart EVs, AI, and other new businesses contributing 106.1 billion yuan in revenue. Operating profit for the entire year turned positive for the first time at 0.9 billion yuan, and they delivered 411,082 vehicles. Looking only at the full year, the narrative is not bad. However, by Q1 2026, the reported figures became tighter: revenue was 99.1 billion yuan, adjusted net profit was 6.1 billion yuan, a year-on-year decrease of approximately 43\nThe stock price drop isn\u0026rsquo;t due to \u0026ldquo;Xiaomi not making cars\u0026rdquo; or \u0026ldquo;Xiaomi lacking AI,\u0026rdquo; but rather because the market has started asking an old question again: Can Xiaomi truly protect its profit margins amid fierce hardware competition?\nSeveral Headwinds Are Not the Same Kind of Pressure The downside risks listed in the user prompt can be divided into three layers and should not be mixed together.\nThe first layer is valuation and capital discounting. US dollar liquidity, overseas capital risk appetite, and the overall trading rhythm of Hong Kong stocks all affect high-beta HK stocks like Xiaomi. The Fed\u0026rsquo;s balance sheet will still be around $6.7 trillion until June 2026, and the market continues to discuss smaller balance sheets and reserve requirements. Naturally, foreign capital will not provide infinite duration/support for growth stocks as it did during the low-interest rate era. However, this type of pressure is more related to a \u0026ldquo;valuation multiple\u0026rdquo; issue; it typically cuts P/E or P/S first, rather than directly changing how much money Xiaomi earns from a single phone.\nThe second layer is automotive subsidies and EV competition. For 2024-2025, new energy passenger vehicles will be exempt from purchase tax, with a single vehicle exemption cap of ¥30,000; for 2026-2027, this will change to half the rate, with a single vehicle tax reduction cap of ¥15,000. For vehicles priced between ¥200,000 and ¥300,000, this is no small amount. It will have two consequences: it will accelerate some demand before the end of 2025, and in 2026, car manufacturers must either absorb some price pressure or accept a slower order rhythm. Xiaomi Auto proved its ability to increase volume in 2025, but if it delivers 80,856 units in Q1 2026—a drop of 44.3% compared to 145,115 units in Q4 2025—the market will no longer solely focus on the \u0026ldquo;full-year target of 550,000 vehicles,\u0026rdquo; but will also monitor model switching and per-vehicle profit.\nThe third factor is mobile phone costs. This pressure is the strongest because it is already reflected in the gross profit margin. In Q4 2025, Xiaomi\u0026rsquo;s mobile phone gross profit margin dropped to 8.3%, and in Q1 2026, it was only 10.1%. During this period, phone shipments were 33.8 million units, marking a year-on-year decline of about 19%. However, the ASP actually rose to around 1,310 RMB. This indicates that Xiaomi is making an uncomfortable adjustment: reducing low-end and mid-low-end models that are under significant pressure, and moving towards higher price points. But even so, the gross margin continues to be eroded by cost and competition.\nThe role of AI here is a bit complex. Xiaomi itself plans to invest in AI, intelligent driving, and embodied intelligence. Caixin\u0026rsquo;s summary mentions an investment budget of 16 billion RMB for AI and embodied intelligence in 2026. The bigger issue is that global cloud vendors and server demands are drawing the capacity of DRAM, HBM, and NAND towards data centers, causing smartphones, PCs, and consumer SSDs to start queueing on the same capacity chart. Xiaomi is not paying solely for \u0026ldquo;doing AI for itself,\u0026rdquo; but rather contributing to the competitive bidding for the entire industry\u0026rsquo;s AI infrastructure.\nHow to Buy a Phone Amid Rising Storage Costs Over the past two years, storage prices have not risen smoothly; rather, they first recovered and then saw an uncontrolled surge.\nI kept HDD separate in the table because users asked about mechanical hard drives. However, it has no direct BOM impact on Xiaomi phones. HDD affects Xiaomi notebooks, NAS/ecosystem chain, cloud AI storage, and the entire consumer electronics price environment. What actually goes into Xiaomi phones are LPDDR4X/LPDDR5X and eMMC/UFS.\nTaking several model types still displayed on the global product pages of the Xiaomi official website as an example, the cost pressures are roughly as follows:\nModel Sample Official Website Storage Configuration Rough Benchmark for RAM + Flash in 2025 Added Cost Pressure in H1 2026 Explanation Redmi 14C 4/128 to 8/256, LPDDR4X + eMMC 5.1 Approx $8-$12 USD Approx +$4 to +$8 USD, approx ¥30-¥60 In the Counterpoint Q1 2025 Top 10 best-selling list, Redmi 14C 4G is the only model listed besides Apple and Samsung; it is the hardest type of budget phone to raise prices for. Redmi Note 15 Pro+ 5G 8/256, 12/256, 12/512, LPDDR4X + UFS 2.2 Approx $20-$28 USD Approx +$10 to +$18 USD, approx ¥70-¥130 Mid-range phones can build configurations using cameras, screens, and batteries, but a cost increase of the ¥100 level might clash with promotional prices and channel margins. Xiaomi 15 Ultra 16/512, 16/1 This table is neither a disassembled BOM nor Xiaomi\u0026rsquo;s procurement contract. It merely performs a stress test using public specifications and industry price increase ranges. Actual procurement prices are influenced by long-term agreements, inventory cycles, vendor rebates, currency, model types, and delivery windows. However, even under conservative assumptions, the conclusion is clear: entry-level phones face increases of tens of yuan, mid-range phones an increase of around a hundred yuan, and high-end phones several hundred yuan. This is no small matter for a company that relies on scale and high cost-performance to ship products.\nThis also explains why it is impossible for Xiaomi to simply pass on every cost increase through price hikes to consumers. For a volume model like the Redmi 14C, raising the price\nFocus on the Substance, Not the Slogans Therefore, Xiaomi\u0026rsquo;s profit recovery does not need to wait for AI to completely fade away. There are three more realistic trigger points.\nThe first point is the slowdown in the slope of storage prices. As long as DRAM and NAND maintain their rhythm of quarterly explosive growth (like observed in Q1 or Q2), mobile phone gross margins will struggle to be sustainable. Even if prices do not return to 2024 lows, as long as the rate of increase drops from \u0026ldquo;near quarterly doubling\u0026rdquo; to a normal cycle price hike, Xiaomi can gradually repair its position through inventory management, product mix adjustments, and pricing strategies.\nThe second point addresses whether raising the mobile ASP (Average Selling Price) has negatively impacted sales volume. A contradiction observed in Q1 2026 is that while the ASP reached a new high, shipments saw a year-on-year decline of approximately 19%. If the company merely increases prices to maintain gross profit margins going forward, stock prices may not react positively; only if Xiaomi can stabilize the ASP using both high-end and core mid-range models, while simultaneously narrowing the decline in overall shipments, will the market revalue the mobile business.\nThe third point is whether the automotive business can once again prove its scale profitability. Throughout 2025, EV, AI, and other new businesses achieved positive operating profits, but Q1 2026 incurred a loss of 3.1 billion RMB. This may not necessarily be a bad thing; model transitions, production pacing, and pricing strategies can all cause quarterly fluctuations. The key issue is that after the subsidies taper in 2026, Xiaomi must prove that the YU7/SU7 are not solely reliant on order hype, but can maintain gross margins and deliveries even in a more normal subsidy environment.\nRegarding the stock price movement, the vicinity of HK$25 is already the low point from the past year, and the technical structure remains weak. My baseline judgment is that without new evidence of profit repair, the short term is more likely a weak rebound within the HK$25–32 range; if HK$25 breaks down, the market will look for the next layer of support in the HK$22–24 range; and only if subsequent financial reports confirm that phone gross margins have stabilized and auto deliveries reach a new plateau should we first watch HK$32 before having an opportunity to challenge the HK$35–40 region. This range is not a buy/sell recommendation, but merely an observational framework based on combining current profit pressure and the price distribution over the past year.\nI am rather reluctant to base my judgment solely on the premise of \u0026ldquo;waiting for the AI frenzy to end.\u0026rdquo; If the AI boom completely fades, storage prices might moderate, but Xiaomi\u0026rsquo;s narratives around its cars, mobile AI, intelligent driving, and high-end devices will also lose some valuation elasticity. A better state for Xiaomi is not the bursting of the AI bubble, but rather the transition of AI infrastructure from a panic buying stage to a stable procurement phase, thereby preventing storage prices from rewriting the hardware ledger on a quarterly basis.\nReferences Yahoo Finance: Xiaomi Corporation 1810.HK Historical Data Yahoo Finance: USD/CNY Historical Data Xiaomi 2025 Annual Report Xiaomi 2025 Annual Results Announcement The Edge Malaysia: China\u0026rsquo;s Xiaomi 1Q profit sinks 43% on higher memory chip costs Caixin Global: Xiaomi Profit Drops 43% as Memory Costs and EV Transition Weigh on Growth HKEX Insight: Stock Connect 2025 Review [HKEX Monthly Market Highlights](https://www.hkex.com.hk/Market-Data/Statistics Writing Notes/Epilogue\nOriginal Prompt $blog-writer Xiaomi\u0026#39;s stock price faces multiple headwinds: the appreciation of the RMB caused major Southbound funds to reduce investments in Hong Kong; tightening USD liquidity also reduced foreign investment capital. Furthermore, electric vehicle subsidies are expiring, national subsidies are tapering off, and AI continues to burn money. Storage chip prices rising, coupled with AI hype, leads to continuously increasing semiconductor prices. Will Xiaomi\u0026#39;s profit recovery only occur after the current AI frenzy completely subsides? Compile and analyze the contents I mentioned earlier, gathering Xiaomi\u0026#39;s stock price data from the past year to predict its subsequent trend. Regarding semiconductor price increases, compile the annual inflation rates for Solid State Drives (SSDs), Hard Disk Drives (HDDs), and memory over the past two years, and look up Xiaomi\u0026#39;s popular models to assess how much the machine\u0026#39;s hardware costs have increased. Summary of Conceptual Ideas This article retains the several themes proposed by the user: funds, subsidies, AI, storage, and stock prices, but removes the phrasing that every downside risk develops equally. RMB appreciation and Southbound funds are downgraded to funding rhythm factors because HKEX data does not support portraying the entire southbound flow as distinctly shrinking. Storage price increases and mobile phone gross profit margins are stronger main themes, so the body text allocates more space to cost breakdown analysis.\nThe cost estimation only provides a range, not a specific Xiaomi purchase price. The actual purchasing price requires information such as contracts, inventory levels, suppliers, and delivery windows, which cannot be confirmed using public materials.\n","date":"2026-06-12","language":"en","permalink":"https://ttf248.life/en/p/xiaomi-stock-memory-cost-2026/","tags":["AI Inspiration Hub","Xiaomi","Hong Kong Stocks","Semiconductor","ai"],"title":"Xiaomi drops back to hardware ledger: Storage price hikes, auto subsidies, and AI spending hit simultaneously","year":"2026"},{"categories":["Financial Knowledge Base","Investment"],"content":"Looking back at this on Beijing Time June 9, 2026—the line from June 5 is no longer sufficient. On June 8, the A-share market failed to digest last Friday’s retracement of tech stocks; instead, the ChiNext board, STAR 50, CPO, and semiconductors continued to decline sharply. Simultaneously, US stocks also saw intraday pullbacks on June 8, with QQQ, SOXX, and a group of AI chip stocks exhibiting obvious rebounds. When looking at both markets together, the conclusion is even less straightforward: A-shares are continuing to dismantle crowded trades, while US stocks are performing high-elasticity rallies intraday. Neither of these events serves as concrete evidence that \u0026ldquo;clearing has been completed.\u0026rdquo;\nFirst, let\u0026rsquo;s clarify the timeline. A-shares fell during the day on June 5th, mainly due to issues with their own high-flying tech stocks, financing constraints, and sector overcrowding; US stocks declined on the evening of June 5th, pressured by a combination of strong nonfarm reports, yield concerns, and chip stock expectations. The continued slide in A-shares on June 8th suggests further pricing for crowded trades after Friday\u0026rsquo;s pressure. The intra-day rebound in US stocks on June 8th only indicates that the AI hardware chain—which saw the most selling on the previous trading day—still has funds replenishing; this cannot be prematurely stated as a closing conclusion.\nOn A-shares, on June 5th, the SSE Composite Index\nUp to June 8th, the pressure didn\u0026rsquo;t stop at \u0026ldquo;a single day of falling.\u0026rdquo; According to the closing figures from Daily Economy News, the Shanghai Index fell 1.7%, the Shenzhen Component Index fell 3.22%, the ChiNext Index fell 3.69%, and the STAR 50 Index fell 4.30%, with nearly 4,600 stocks closing lower. The Securities Times also reported on the same day that the three main markets (Shanghai, Shenzhen, and Beijing) transacted a combined total of about 2.82 trillion yuan, while the BEST 50 index rose 1.33% against the trend. On the market board, CPO and semiconductor chips continued to lead declines, while sectors like banking, oil \u0026amp; gas, coal, and robotics were relatively stronger. This combination was more akin to a structural rebalancing of trades than on Friday: high-flying technology stocks continued shedding excess gains, while low-lying or defensive assets absorbed some risk appetite.\nIn the US stock market, the decline on June 5th was more pronounced. According to AP\u0026rsquo;s closing data, the S\u0026amp;P 500 fell by 2.6%, the Dow Jones Industrial Average dropped about 1.3%, and the Nasdaq fell 4.2%. The BLS employment report released the same day showed that nonfarm payrolls increased by 172,000, and the unemployment rate remained at 4.3%. While this data was stronger than market expectations, the result wasn\u0026rsquo;t \u0026ldquo;good economy means good stocks,\u0026rdquo; but rather rising yields and delayed interest rate cut expectations, which caused a re-discounting of future cash flows for highly valued tech stocks. Axios described this day as the decline in the Nasdaq driven by chip stocks, while reports cited by Reuters mentioned that US chip companies lost over $1 trillion in market capitalization on that day.\nHowever, by midday on June 8, 2026, Eastern Time, the market was not continuing in a one-directional decline. According to the chart tool\u0026rsquo;s data during the trading session around UTC 16:21, QQQ rose approximately 2.36%, SPY rose approximately 0.86%, and DIA rose approximately 0.24%; SOXX rose about 7.27%. Among individual stocks, Nvidia rose by approximately 2.26%, Broadcom rose by approximately 3.14%, AMD rose by approximately 5.27%, Marvell rose by approximately 13.95%, Micron rose by approximately 11.11%, and Taiwan Semiconductor ADR rose by approximately 3.73%. I am only analyzing these figures based on the midday reading, as US stocks have not closed yet; a midday rebound is not the same thing as confirmation of funds at closing.\nThe most easily misinterpreted statement here is, \u0026ldquo;Once the domestic market drops, followed by a drop in US stocks, a US rebound means AI is safe.\u0026rdquo; I do not view it that way.\nOn Friday, both sides shared pressures related to valuation and trading structure; on Monday, A-shares confirmed that crowded trades are still dissipating; and the intraday rebound of US stocks confirmed that there is still capital willing to make up losses in high-elasticity assets.\nThere is a correlation among the three, but they do not follow the same single causal line.\nA-Shares Continue to Decongest I will analyze the main drivers behind the A-share market over the last two days across three levels/perspectives.\nThe primary market observation is this: the sectors experiencing the largest declines, and contributing most to the index drag, were not niche, low-priced assets, but rather segments like semiconductors, storage, optical modules, computing power hardware, and sci-tech weights—sectors previously heavily concentrated by funds. Furthermore, the ChiNext Board and STAR 50 performing consistently weaker than the Shanghai Composite Index themselves indicate that growth stocks and technology beta are under selling pressure.\nThe second layer is the trading structure. During an after-hours interview conducted by the Twenty-First Century Business Report on June 5th, fund managers cited \u0026ldquo;multiple brokerage firms lowering the financing conversion ratio for leading semiconductor and AI companies\u0026rdquo; as a major catalyst. I treat this statement only as one market interpretation, not an official conclusion. However, it explains why high-flyer stocks fall more steeply: When a trade is too crowded, any variable affecting leverage, margin, conversion ratio, and financing capacity tends to be amplified more easily than usual.\nThe third layer is style rotation. The fact that not only tech stocks fell on June 8th, but nearly 4600 stocks closed lower indicates that risk appetite has broadened; however, the resilience of sectors like banking, oil/gas, coal, and the BEST 50 suggests that funds have not dumped all risk assets indiscriminately. Instead, it appears to be a withdrawal from the high-flyer tech grouping—with some capital shifting into defense plays, while another portion seeks relative strength (or momentum) in small caps and other themes.\nTherefore, I prefer to call this A-share decline a concentrated unwinding of high-flyer tech stocks, rather than a comprehensive macro-level risk purge. This difference is crucial. The former implies divergence within sectors, while the latter suggests all risk assets must be treated as if they were undergoing a systemic crisis. The additional information as of June 8th is that the unwinding has not finished and has transitioned from being a \u0026ldquo;Friday single-day shock\u0026rdquo; to one that requires confirmation on subsequent trading days.\nMid-day Rebound in US Stocks Does Not Signal Cleansing Completion The pressure on U.S. stocks this Friday feels like two buttons being pushed at the same time.\nOne issue is interest rates. The BLS\u0026rsquo;s non-farm data itself isn\u0026rsquo;t bad, but for high-valuation tech stocks, overly strong employment data makes the market worry that the Federal Reserve will find it harder to pivot toward easing. AI stocks are especially susceptible to this because much of their valuation comes from revenues and profits many years into the future. Even a slight increase in the discount rate will cut a significant chunk out of long-term stories.\nAnother factor is expectation. Broadcom\u0026rsquo;s official financial report is not a sign of failure for an underperforming company. It reported that its Q2 AI semiconductor revenue for fiscal year 2026 reached $10.8 billion, representing a 143% year-over-year increase, and guided total revenue for Q3 to approximately $29.4 billion. The issue is that AI chip stocks have already risen too much; the market doesn\u0026rsquo;t want \u0026ldquo;good,\u0026rdquo; it wants something that exceeds the already highly elevated expectations. When the earnings report cannot continue to raise that imagined curve, capital will start selling immediately.\nThe mid-day rebound on June 8th cannot be dismissed. The faster assets like SOXX, Marvell, Micron, and AMD rebound, the more it demonstrates that they remain cores of high volatility trading. Short-term capital tends to chase rebounds after a sharp decline, but what truly determines whether this withdrawal cycle has ended is not the mid-day gains, but rather whether the market can maintain stability at close; whether volume shifts from panic profit-taking to steady buying interest; and whether interest rate expectations will continue to suppress valuations.\nThis is the strangest thing about AI stocks: while industry trends remain strong, the stock can plummet severely; yet, after a sharp fall, it can rebound quickly. This is because stock trading isn\u0026rsquo;t about \u0026ldquo;whether AI has a future,\u0026rdquo; but rather how much future value has already been priced into this current price, and how many other people in the market are buying using the same rationale, leverage, and timeframe.\nBy consolidating the A-share data from June 5th and June 8th with the US stock intraday data from June 8th, what truly needs to be examined are not directional slogans or narratives, but these variables:\nSee three lines below Moving forward, I will avoid an \u0026ldquo;either/or\u0026rdquo; judgment such as \u0026ldquo;buying the AI dip\u0026rdquo; or \u0026ldquo;avoiding AI.\u0026rdquo; AI remains one of the strongest core themes in capital expenditure and industrial upgrading over the next few years, but following drawdowns like those on June 5th and June 8th, the market will become more discerning.\nThe first point is whether the crowdedness has truly dispersed. For A-shares, we need to see if high-turnover individual stocks in semiconductors, optical modules, and computing power hardware continue falling on increased volume, or if they start stabilizing with decreased volume; we must also determine whether the strength seen in banking, oil/gas, coal, and small-cap themes is merely temporary safe-haven buying, or if funds are continuously reducing their tech allocation. For US stocks, we need to see if the Nasdaq, SOXX, and AI chip stocks can maintain their intraday rebound after market close, rather than basing our judgment solely on midday quotes.\nThe second focus area is monitoring how cash flow from AI investments is realized. In the hardware chain, the most valuable asset is not simply having \u0026ldquo;AI\u0026rdquo; in your name, but rather whether orders can translate into revenue, revenue into gross profit, and gross profit into free cash flow. For many A-share companies mapping this sector, it is more crucial to examine customer concentration, delivery pace, expansion capital expenditure (CapEx), and accounts receivable; while for US stocks, the focus should be on whether cloud vendors\u0026rsquo; CapEx has slowed down, and if guidance from Nvidia, Broadcom, AMD, storage, and optical communication chains continues to be revised upwards.\nThe third factor is whether valuation remains sensitive to interest rates. If US employment and inflation data continue to push back rate cut expectations, highly valued AI stocks will repeatedly face pressure from the discount rate. This pressure might not change the industry trend, but it will change the stock rhythm: previously the market was willing to pay for 2028 profits; now, it may only be willing to pay for visible orders in 2026 and 2027.\nThis consequently leads me to categorize the AI stocks into three types when analyzing them, rather than grouping them all together (or: putting them all in one basket).\nOne type consists of infrastructure companies that truly possess pricing power, strong cash flow, and a locked-in customer base. They will also decline, but once they bottom out, it will be easier for the market to re-evaluate them.\nOne type consists of companies with high elasticity, supported by industry chain mapping and order expectations. While their gains are rapid, they also experience larger drawdowns, and they are particularly susceptible to funding constraints, disappointing performance results, and rumors of customers cutting orders.\nThere is another category: companies that rely purely on concept diffusion. In a bull market, they appear the most speculative, and during drawdowns, it is also hardest to find fundamental support points. Following June 5th and June 8th, this type requires a higher risk discount because the market has begun shifting from \u0026ldquo;narrative tolerance\u0026rdquo; to \u0026ldquo;realization scrutiny.\u0026rdquo;\nMy conclusion is limited: this pullback does not represent the end of the AI industry trend, but it is highly likely a reminder regarding how AI stocks are valued. Going forward, when looking at AI, we cannot simply ask, \u0026ldquo;Is it AI?\u0026rdquo; We must instead ask: what part of the money spent on AI capital expenditures (CapEx) will this company actually capture? Can they maintain their gross margins? When will cash flow return? And has the current valuation already priced in the good news from the next two or three years?\nIf these questions cannot be answered, a dip might not necessarily be cheap; but if they can be answered, a large drop will merely wash out trend-following funds. What is more difficult now is that the mid-day rebound in US stocks gives people a false sense of \u0026ldquo;everything is fine,\u0026rdquo; while the A-share close on June 8th reminds us that when crowded trades truly dissipate, it is usually not so graceful.\nThis article only presents a market review and personal observations, and does not constitute any investment advice. The data parameters for single-day and intra-day market movements may vary slightly depending on the exchange, charting software, or media statistical methods. Specifically, the US stock data for June 8th was not at the closing price/official close when this text was written. Specific trading decisions should always be based on one\u0026rsquo;s own account constraints, risk tolerance, and officially disclosed information.\nReferences Artificial Intelligence Machine Learning\nData Mining Deep Learning Neural Network Original Prompt $blog-writer Last Friday, China\u0026#39;s A-share market experienced a sharp drop. Analyze the main reasons for the decline. On Friday night, US stocks also plummeted. What is the outlook for AI-related stocks afterward? This Update\u0026rsquo;s Prompts Today is June 9th. Based on the A-share market data from June 8th, and the current gain/loss percentage of US stocks (not yet closed), I\u0026#39;m updating the article \u0026#34;07-AI-After Stock Pullback - First Look at How Overcrowded Trades Dissipate\u0026#34;. Summary of Writing Ideas This update maintains the original core judgment: A-shares and US stocks cannot be forced into a single causal narrative, but both exposed issues regarding AI trade crowding, interest rate sensitivity, and earnings realization pressure. The newly added A-share data for June 8 shifts the focus from \u0026ldquo;single-day drawdown on Friday\u0026rdquo; to \u0026ldquo;potential continued overtrading/crowding on the following trading day\u0026rdquo;; meanwhile, the newly added intraday US market data reminds readers not to treat the midday rebound in semiconductor stocks as if the cleansing process is complete.\nI have omitted individual A-share stock gains/losses and intraday trading advice because such content tends to turn a retrospective analysis into short-term instructions. The main body only retains indices, sectors, trading volume, and intraday US market fluctuations that can support the judgment, while repeatedly marking the boundary of \u0026ldquo;US stocks not yet closed\u0026rdquo; in relevant paragraphs.\n","date":"2026-06-07","language":"en","permalink":"https://ttf248.life/en/p/ai-stocks-after-a-share-us-selloff/","tags":["AI Inspiration Hub","ai","a-stock","U.S. Stock Market","AI Stocks"],"title":"After an AI stock pullback, first look at how the crowded trades unravel/dissipate.","year":"2026"},{"categories":["Computer"],"content":"/goal is easily misinterpreted as a command to \u0026ldquo;let the agent work for a bit longer.\u0026rdquo;\nThis, of course, is merely its surface manifestation. If you give Codex a goal, it can continuously progress around that objective, instead of stopping after a single round of answers. But what is truly noteworthy is not how long it \u0026ldquo;runs,\u0026rdquo; but rather that it converts \u0026ldquo;what constitutes completion\u0026rdquo; from a temporary reminder into an intrinsic part of the task itself.\nA standard prompt describes what needs to happen next. A goal, however, is more like attaching a checklist/acceptance form to an agent: What is the objective? Where are the boundaries? Which validations must pass? What conditions must be met for it to be considered complete?\ngoal is not the continue button If we only look at its command form, /goal resembles an enhanced version of \u0026ldquo;continue until complete.\u0026rdquo; However, this shifts the focus.\nThe hardest part of long tasks isn\u0026rsquo;t whether the model wants to continue, but who decides whether or not to proceed after each round.\nWhen you ask an agent to migrate a frontend project, it might stop simply after adjusting the routes, believing the job is done; when you ask it to fix a test, it might just make the current failing use case pass and quit; and when you ask it to rewrite a batch of articles, it might think it\u0026rsquo;s handled all the critical parts by only tweaking a few high-risk drafts.\nThese stopping points may not be incorrect, but they often differ from human acceptance criteria (or: human standards/judgments).\nThe goal is to solve this: clearly define the acceptance criteria beforehand, so that every subsequent round can judge against it.\nA broad objective is as follows:\n/goal Help me migrate the frontend to Next.js Its problem isn\u0026rsquo;t that its output is too short, but rather that it lacks a definite termination/stopping condition. Codex can rewrite multiple pages, can restructure components on the fly, and also continuously fill in whatever content it deems necessary.\nA more usable way would be something like this:\n/goal Migrate the order management backend from React Router to Next.js App Router. The visual behavior of the login page, order list, order details, and checkout page must be consistent with the old version. Do not change the API contracts or database schemas. After completing a batch of pages, run npm run build, npm test, and Playwright critical paths. Only when all these validations pass can it be considered complete. The extra details in this paragraph are not filler; they constitute four control planes:\nElement Role Goal What is the final desired outcome? Boundary Which interfaces, data, files, or behaviors cannot be handled manually? Validation What evidence proves that it was truly completed? Termination After fulfilling what conditions can it stop? These four things are what raise the goal.\nWhy Does It Run For A Long Time? Codex can continue to make progress on the goal, not because a single answer was elongated.\nThe actual workflow resembles a loop: plan, execute, observe tool results, revise, and then decide whether or not to continue. Build failures, test failures, screenshot inconsistencies, lint errors, or failed evaluation samples will all send the task back to the next iteration.\nIf the goal specifies a verification method, the agent cannot simply declare it \u0026ldquo;should be fine\u0026rdquo; based on intuition. It must obtain evidence. If the evidence hasn\u0026rsquo;t returned, further investigation continues; if the evidence fails, remediation is required; only when all evidence passes can the work be signed off.\nThis is why goal is suitable for tasks such as transfer, refactoring, batch revision, prompt eval, and troubleshooting long pipelines. Their common characteristic is that they cannot be completed in a single pass, and their completion cannot rely solely on subjective judgment.\nConversely, such a goal is very dangerous:\n/goal Think of a more advanced product solution It lacks boundaries, validation, or a stopping condition. The agent might run for a long time, but running for a long time does not equate to usefulness. At a minimum, you must clearly state how many sets of solutions are produced, what constraints are covered, what criteria are used for filtering, and when it should stop.\nClaude Code is also handling the same thing Claude Code also has /goal. The official documentation explains it more directly: The user sets a completion condition, and Claude will continue working across turns until the condition is met.\nThe Claude Code documentation also mentions that at the end of each round, it checks whether the completion condition is met; if not, it proceeds to the next round. This point is critical because it externalizes the action of \u0026ldquo;proceeding\u0026rdquo; from the model\u0026rsquo;s own subjective conclusion and turns it into an additional conditional judgment.\nThe specific implementation details of the two companies do not need to be forced to be equivalent, but their direction is consistent: the terminal agent is moving from \u0026ldquo;executing the next instruction\u0026rdquo; towards \u0026ldquo;continuously progressing around verifiable goals.\u0026rdquo;\nWe can simply categorize it as:\nCapability What problem it addresses Suitable Scenarios /goal Defines explicit completion criteria and advances to verifiable results across multiple rounds Migration, Refactoring, Batch Fixing, Long-running tasks /loop or looping capabilities Allows the same task to execute repeatedly based on count or condition Retries, Generating candidates, Batch exploration hooks Automatically executes rules on fixed events Formatting, Testing, Notification, Logging Sub-agent/Multi-agent view Decomposes tasks for observation and progression by different worker threads Parallel analysis, Modular implementation, Long-term background tasks Memory/Project README file Solidifies long-term constraints and repository rules Team standards, Code style, Tool entry points In this table, the position of goal is very clear: it neither replaces hooks nor replaces memory. It manages \u0026ldquo;what level constitutes completion for this task.\u0026rdquo;\nGoals should be written like acceptance criteria I will now write a goal out in four lines:\nObjective: What final user-visible result must appear. Boundaries: Which files, interfaces, data, visual elements, or behaviors cannot be modified/tampered with. Verification: What commands, tests, screenshots, evaluations, or manual checks serve as evidence. Stopping Condition: Stop when all conditions are met; pause when encountering specific permissions, facts, or product judgments. This is very different from a regular prompt.\nA regular prompt is more like a next step action, while a goal is more like the completion criteria. It\u0026rsquo;s not about making the human disappear from the process; rather, it\u0026rsquo;s about embedding human judgment upfront. You no longer have to remind it round after round that \u0026ldquo;this isn\u0026rsquo;t complete,\u0026rdquo; but instead write down what constitutes completion as mandatory conditions from the very beginning.\nTherefore, the more you want the agent to run autonomously, the narrower you must define its goals.\nThe less you focus on monitoring the process, the more rigorous the validation documentation must be.\nThe more you don\u0026rsquo;t want it to deviate, the clearer you must write the boundaries.\nThis is where goal truly deserves attention. It\u0026rsquo;s not about adding more commands, nor is it how long it can run; rather, it\u0026rsquo;s that the terminal agent is beginning to bring \u0026ldquo;who determines completion\u0026rdquo; into focus.\nReferences Follow a goal | Codex use cases Slash commands in Codex CLI | OpenAI Developers Run long horizon tasks with Codex | OpenAI Developers Keep Claude working toward a goal | Claude Code Docs Author\u0026rsquo;s Notes Original Prompt $blog-writer Detail Codex\u0026#39;s newly released goal command: what is its working principle, why does it run for such a long time, and what are the official examples? Does Claude Code have similar naming/commands? Additionally, compile the useful and popular new features recently released by two terminal tools into a table. Writing Idea Outline Keep the original main judgment: The core of goal is not the command name, but the completion condition. Reinsert the Claude Code comparison and terminal function table required in the original prompt. Eliminate \u0026ldquo;official document recitation\u0026rdquo; and focus on how to write a usable goal. ","date":"2026-05-27","language":"en","permalink":"https://ttf248.life/en/p/codex-goal-command-explained/","tags":["AI Inspiration Hub","ai","codex","Claude Code","agent"],"title":"Codex goal embeds the completion criteria within the task itself","year":"2026"},{"categories":["Financial Knowledge Base","Investment"],"content":"When the A-share semiconductor and AI hardware chains surge rapidly, two extreme reactions tend to emerge: one type of person feels that missing out on gains (FOMO) is more painful than actually incurring losses, while another believes that excessive rises necessarily signal a bubble.\nBoth of these are too fast. In areas like semiconductors, computing power, optical modules, and storage, the industrial logic might be true. AI training and inference will indeed boost hardware demand, and domestic substitution has certainly provided narrative space and order opportunities for local companies. The problem is that just because the industrial logic holds true does not mean that the probability of investing in it now is good.\nSimilar market trends have occurred repeatedly in history: the liquor sector (Baijiu), new energy, pharmaceuticals, core asset grouping, and TMT. Each time, there was real logic behind it. When these sectors decline, it doesn\u0026rsquo;t necessarily mean the logic has disappeared; rather, the timing/rhythm between valuation, positioning, earnings realization, and liquidity was off.\nLet\u0026rsquo;s first see how much it has risen in this round Let\u0026rsquo;s first clarify the focus. The strongest \u0026ldquo;AI-related companies\u0026rdquo; on A-shares right now are not the general media concepts from 2023, but rather three more solid value chains:\nSemiconductor manufacturing and equipment agency. Independent CPU / GPU / AI chips. Optical modules, optical components, and compute infrastructure. The gains in the table below are uniformly calculated using Yahoo Finance\u0026rsquo;s fully adjusted daily data, as of the close on 2026-05-25.\nProxy or Company Code Period Period Gain (%) 半导体 ETF 代理 159995.SZ 2026-04-07 到 2026-05-25 66.1% AI ETF 代理 515070.SS 2026-04-07 到 2026-05-25 40.5% 中芯国际 688981.SS 2026-04-07 到 2026-05-25 63.1% 海光信息 688041.SS 2026-04-07 到 2026-05-25 51.5% 寒武纪 688256.SS 2026-04-07 到 2026-05-25 87.5% 中际旭创 300308.SZ 2026-04-07 到 2026-05-25 76.6% 新易盛 300502.SZ 2026-04-07 到 2026-05-25 43.7% If we only look at the slope over a little more than a month, this is no longer a \u0026ldquo;slow bull recovery,\u0026rdquo; but rather a highly typical primary rally driven by the resonance between sentiment and fundamentals. The question isn\u0026rsquo;t whether its gains are justified, but how much of that narrative has already been priced into the stock.\nIt\u0026rsquo;s Not Just AI: Many Concepts of \u0026ldquo;True Logic\u0026rdquo; Have Gone Through Their Failures To summarize: Market cycles like this have happened before, and they are not limited only to tech sectors such as AI, semiconductors, or TMT. The more common scenario is that the underlying logic remains, the cyclical peak hasn\u0026rsquo;t immediately ended, but the steepest part of the price action has already priced in (or absorbed) the optimistic expectations for the next few quarters, or even years.\nThe logic behind Baijiu was not fake; the leading brands\u0026rsquo; cash flows and brand moats were genuine. However, buying consumption certainty at valuations of 50x or 60x meant that repayment was still required later on. New energy is no exception to this rule either. Although the penetration rate continues to rise, when supply expands, price wars erupt, and profits decline all at once, stock prices will not wait for the long-term narrative to slowly materialize. Pharmaceuticals and medical services are even more typical. Many companies\u0026rsquo; underlying businesses remain strong So, today\u0026rsquo;s semiconductor and AI hardware chains certainly have genuine substance. However, the cluster of baijiu, new energy, medicine, and blue chips also once had real potential. The subsequent chaos wasn\u0026rsquo;t because all the initial narratives were fraudulent schemes, but rather because prices turned \u0026ldquo;the future will be good\u0026rdquo; into \u0026ldquo;the future must be perfect.\u0026rdquo;\nWith this batch of companies now, are their earnings supporting the stock price? What truly needs to be looked at is not \u0026ldquo;whether semiconductors have a future,\u0026rdquo; but whether \u0026ldquo;the growth rate of profits can keep up with the slope of the stock price from the last six or seven weeks.\u0026rdquo; I will break down several representative companies:\nCompany Industry Chain 2025 Revenue / YoY 2025 Net Profit Attributable to Parent / YoY 2026 Q1 Revenue / YoY 2026 Q1 Net Profit Attributable to Parent / YoY Stock Price Increase from 2026-04-07 to 2026-05-25 My Key Focus Area SMIC (Semiconductor Manufacturing International Corp) Wafer Fabrication 67.323 billion yuan, +16.49% 5.041 billion yuan, +36.29% 17.617 billion yuan, +8.1% 1.361 billion yuan, +0.4% 63.1% The stock price slope is significantly faster than the quarterly profit growth rate, This table contains two important signals.\nFirst, not all major rallies are driven by short covering plays. This is especially true for companies like Zhongji Xuchuang, Xin Yisheng, and Cambricon; this current cycle is not purely thematic momentum—profits and orders are genuinely being realized. Because of this, many people naturally become complacent about potential pullbacks, thinking that \u0026ldquo;if there are solid earnings, a deep correction won\u0026rsquo;t happen.\u0026rdquo;\nSecond, earnings realization does not guarantee a safe buy-in point. SMIC and Seagull Information have clearly demonstrated this point: although their industry logic is completely robust, their short-term stock price momentum has significantly outpaced the latest quarterly profit growth rate. The market doesn\u0026rsquo;t just look at this current report; it looks at whether you can maximize (or deliver) the market share, ASP, capital expenditure, and domestic substitution potential for the coming years.\nThis is also why, even when experiencing a \u0026ldquo;true boom\u0026rdquo; (真景气), some people can profit from the trend, while others get washed out during pullbacks/drawdowns. What was wrong was not the direction, but the timing.\nIncreasing Semiconductor Positions Now: The issue isn\u0026rsquo;t whether it is right or wrong, but the timing (position). If I had to summarize it in a single sentence, my judgment is:\nAdding to semiconductor positions now isn\u0026rsquo;t necessarily that the direction is wrong; rather, the risk-reward ratio is no longer as favorable as it was in early April. This is especially true for new capital—it looks more like chasing momentum from high levels rather than low-risk positioning.\nI will divide the current semiconductor and AI hardware chain into three categories:\nGroup Representative Company Current Strongest Support Current Biggest Risk With existing earnings and potential for continued volume growth InnoLight, Skyetech (or names) Overseas AI compute capital expenditure, 800G / 1.6T ramp-up, profit realization Expectations are too high; even if financial reports continue to grow, they might pull back because marginal gains are no longer exceeding expectations. Strong industry direction, but profit growth lags stock price movement SMIC, Hygon Information (or names) Domestic substitution, independent computing power, industrial security Valuation runs first; it is easier to enter a sideways or consolidation period later. Most aggressive earnings, but highest volatility Cambricon (or names) Simultaneous explosion of orders and profit, maximum elasticity Once the market shifts from \u0026ldquo;looking at growth rate\u0026rdquo; to \u0026ldquo;looking at sustainability,\u0026rdquo; pullbacks are often the strongest. So, if you\u0026rsquo;re asking about semiconductors, the chances are they should be fine/viable.\nIf you are asking whether adding positions at a spot like \u0026ldquo;2026-05-25\u0026rdquo; means catching a high price, then the answer should not be based on industry trends; rather, it should address position sizing and drawdowns:\nFor those who already have positions at low levels, the main question isn\u0026rsquo;t whether to chase or not, but whether to reduce the position exposure/scale back the size of their holdings. For those with no positions at high levels who want to chase, what they are buying is mainly sentiment and expectations that emerged over the past six or seven weeks. For those who genuinely want to get into the market, a more reasonable prerequisite is usually not a single large bullish candle, but rather a period of proper consolidation, or having the next earnings report push expectations further ahead. Historically, what most resembles the present isn\u0026rsquo;t just a period like 2021 semiconductors or 2023 AI/CPO. The clustering of alcoholic beverages (Baijiu), new energy, pharmaceuticals, and stable blue chips are all reminding us of the same thing: the market is often most dangerous not when the underlying logic is weakest, but when the logic is smoothest and everyone can easily understand it.\nI don\u0026rsquo;t think this current cycle in semiconductors is over, nor do I think it\u0026rsquo;s just a pure bubble. But if you translate \u0026ldquo;the industry fundamentals are sound\u0026rdquo; directly into \u0026ldquo;it\u0026rsquo;s fine to jump in today,\u0026rdquo; you are very likely to repeat the old pattern: the logic is real, and so are the drawdowns. What makes people miserable in the end isn\u0026rsquo;t realizing they picked the wrong direction; it\u0026rsquo;s looking back years later and finding out that what they bought wasn\u0026rsquo;t the industry trend, but rather the most expensive tail end of that consensus.\nReferences Yahoo Finance, historical quotes for 159995.SZ: https://finance.yahoo.com/quote/159995.SZ/history Yahoo Finance, historical quotes for 515070.SS: https://finance.yahoo.com/quote/515070.SS/history Yahoo Finance, historical quotes for 512690.SS: https://finance.yahoo.com/quote/512690.SS/history Yahoo Finance, historical quotes for 515030.SS: https://finance.yahoo.com/quote/515030.SS/history Yahoo Finance, historical quotes for 512010.SS: https://finance.yahoo.com/quote/512010.SS/history Yahoo Finance, historical quotes for 510300.SS: https://finance.yahoo.com/quote/510300.SS/history Yahoo Finance, historical quotes for 600519.SS: https://finance.yahoo.com/quote/600519.SS/history Yahoo Finance, historical quotes for 000858.SZ: https://finance.yahoo.com/quote/000858.SZ/history Yahoo Finance, historical quotes for 601012.SS: https://finance.yahoo.com/quote/601012.SS/history Yahoo Finance, historical quotes for 300015.SZ: https://finance.yahoo.com/quote/300015.SZ/history Yahoo Finance, historical quotes for 603288.SS: https://finance.yahoo.com/quote/603288.SS/history Yahoo Finance, historical quotes for 688981.SS: https://finance.yahoo.com/quote/688981.SS/history Yahoo Finance, historical quotes for 688041.SS: https://finance.yahoo.com/quote/688041.SS/history Yahoo Finance, historical quotes for 688256.SS: https://finance.yahoo.com/quote/688256.SS/history Yahoo Finance, historical quotes for 300308.SZ: \u0026lt;https://finance.yahoo.com/quote/300 Artificial Intelligence\nOriginal Prompt $blog-writer Did modules related to recent A-share surges, such as semiconductors and AI companies, experience similar trends before? When did this happen, what sectors were involved, what were the related stocks, how long did it last, and how did it collapse? Is increasing semiconductor holdings reasonable now, or is this buying at peak prices? Analyze the data of the related companies. All the data should be organized and compiled into tables for easy reading. This piece establishes its core narrative, material density, and structure based on the original prompt provided above, following the initial drafting approach. The date field retains the original publication time, and all other content is dedicated solely to serving the scope of the current article.\n","date":"2026-05-25","language":"en","permalink":"https://ttf248.life/en/p/a-share-semiconductor-ai-rally-timing/","tags":["AI Inspiration Hub","a-stock","Semiconductor","AI","investment"],"title":"The renewed surge of A-share semiconductors should not be bought based on industrial logic alone; caution is needed as this may constitute a crowded trade.","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"For a platform, what is most damaging from regulatory crackdowns on illegal cross-border activities is not the stock price for one or two days, but the potential reassessment of its entire historical growth model. Fines are one account; whether the retained domestic customer base can continue to contribute transactions, financing, assets, and conversions is another, much longer-term concern.\nThe greatest strength of internet brokers like Futu and Tiger is their ability to make Hong Kong and US stock trading a low-friction product. The problem is that when this experience faces mainland users, it encounters barriers related to licensing, foreign exchange regulations, suitability assessment for investors, data handling, and the boundaries of cross-border financial services.\nTherefore, the third section should focus only on the business model and institutional stratification. Although the product capability of cross-border securities firms remains strong, if regulatory boundaries re-enclose the largest and most readily available user base, its valuation can no longer be predicated on old growth stories.\nInternet Brokers are the Most Complete Sample From a regulatory perspective, Futu, Tiger, and Changqiao share one common characteristic: they possess complete online pipelines, standardized business models, and highly digitized customer acquisition and trading processes. The advantage of this model is rapid growth; however, its drawback is that it leaves an equally comprehensive compliance footprint.\nIf we break down an illegal cross-border exhibition link, it is roughly:\nContent and advertising reach to domestic users Guiding app download or access to the account opening page Completing account registration remotely Handling transactions through offshore accounts Establishing complementary channels for fund inflows and outflows Continuous maintenance of stickiness through customer service, community, and investment education content Online brokerage firms have almost standardized all six steps into core products. From a regulatory perspective, such subjects are the easiest to categorize, the most straightforward to document evidence against, and thus also the most effective in establishing an industry precedent (or deterrent effect).\nTherefore, naming online brokerage firms initially should not be interpreted as meaning that only they are problematic; the more reasonable understanding is that they represent a sample chain that regulators can fully dissect/analyze.\nNot Mentioned Does Not Mean Being in the Safe Zone Regarding this point, the China Securities Regulatory Commission\u0026rsquo;s (CSRC) Q\u0026amp;A with journalists on February 15, 2023, stated it very clearly: In accordance with the principle of implementing unified supervision for similar types of businesses, the CSRC at that time had \u0026ldquo;deployed and initiated standardized rectification work for illegal cross-border expansion by offshore subsidiaries of mainland securities companies.\u0026rdquo;\nThis statement is crucial. It indicates at least three things.\nFirst, the regulatory logic has never been one where \u0026ldquo;internet brokers operate under one set of standards, and Chinese domestic brokers operate under another.\u0026rdquo; Second, what started at the end of 2022 was not merely an isolated case involving Futu or Tiger, but rather a larger unified rectification framework. Third, different levels of public exposure do not equate to different regulatory requirements.\nTherefore, I disagree with the view that \u0026ldquo;only these three companies are going to suffer; the others can get away with it.\u0026rdquo; But I also don\u0026rsquo;t agree with the statement \u0026ldquo;everyone is compromised,\u0026rdquo; which outright dismisses everything. This judgment is too crude and fails to help differentiate true risk exposure.\nA more accurate way to put it is: Different institutions have different ways of being exposed to risks, and the pressure for rectification will also be layered.\nMore useful than hitting with a single stick by looking at layers Considering only public definitions and business models, they can generally be divided into three levels/layers.\nSegmentation Typical Characteristics Pressure Intensity High-Risk Exposure Clearly targeting Mainland retail investors for online solicitation, account opening, trading, community operation, and content deployment Highest Medium-Risk Exposure Mainly serving existing clients; public client acquisition efforts are weaker, but historical business chains remain Second Highest Low-Risk or Compliant Channels Serving through licensed, certified, and quota-restricted channels such as Stock Connect (HK), QDII, Cross-border Wealth Management Channels, etc. Relatively Controllable The third layer here is the easiest to confuse. Many people conflate the legitimate channels for investing in Hong Kong and US stocks with overseas institutions that do not hold domestic licenses but directly offer services to Mainland residents. In reality, this boundary is precisely what this current round of rectification aims to demarcate.\nThe legal cross-border investment channels themselves have not been fundamentally negated. What has been addressed/rectified are the segments of the process that circumvent domestic licensing, bypass market entry approvals, and skirt both capital and operational boundaries.\nNext, pay closer attention to the implementation details If we continue to follow the current trend established by open policies, I am more inclined to see several types of actions emerging successively.\nThe first type involves brokerage firms implementing self-imposed regional isolation. For example, the account opening page, account opening link, distribution channels, customer service talking points/scripts, community content, and identification of the source of the account opening link will more strictly differentiate between domestic (mainland) and non-domestic users.\nCategory two involves segmenting trading permissions for existing accounts. The most common approaches include setting up sell-only functionality, or handling permissions separately based on different markets, products, and currencies.\nCategory Three: Funding channels are continuously tightening. Even if the securities firm\u0026rsquo;s front-end announcement hasn\u0026rsquo;t been fully released, banks, payment services, currency exchange, and deposit/withdrawal pipelines may tighten first. Often, what truly hinders user experience is not the trading button itself, but the difficulty in getting funds deposited.\nCategory Four: The asset transfer arrangements are gradually becoming clearer. This area currently has the least public information available, but it is the most worth monitoring. This is because it determines whether clients can only liquidate their assets, or if they have the opportunity to transfer and absorb them through compliant structures.\nRegarding Category V, the penalty document will clarify and standardize the guidelines. Specifically, how exactly \u0026ldquo;all illegal gains\u0026rdquo; are calculated, what period they track back to, and which entities are covered. The currently published guidelines for this portion are incomplete; only the release of a formal penalty document later on will serve as the true valuation anchor point.\nIt won\u0026rsquo;t stop at just three names My personal judgment is that this will not stop at simply \u0026ldquo;publicly naming three companies.\u0026rdquo;\nThe reason is simple. The joint plan of eight departments aims to regulate a type of activity, not the brand names of three companies. As long as the business model remains within the same value chain, it is unlikely that it can operate outside the framework for a long time, even if subsequent penalties, levels of public disclosure, or intensity of rectification vary.\nThe three things that make a difference might be:\nWhat is the magnitude of the historical stock size? To what extent have internationalization and reducing dependency on mainland been achieved over the past two years? Did institutions preemptively implement regional isolation and inventory pressure reduction? Therefore, when looking at this matter going forward, it\u0026rsquo;s not simply about guessing \u0026ldquo;who else will be named,\u0026rdquo; but rather whose business structure is better equipped to withstand this round of boundary redrawing.\nConvergence of Series If you read the three articles together, the connection is actually very clear:\nIn 2022, the focus was on restricting new additions. The CSI Stock Connect event provided a clear transition period of nearly one year. This time on May 22, 2026, the scope has upgraded to existing holdings only selling and not buying, and it has begun publicly treating internet brokerage firms as typical samples.\nIf I have to make the shortest assessment, I would say:\nThis is not a sudden reversal, but rather a regulatory trend that started several years ago and has reached the stage where existing businesses must also be included in the disposal/resolution scope.\nOf course, there will also be implementation rules, company responses, formal penalty documents, and asset handover arrangements later on. However, in terms of the general direction, this grey cross-border retail channel will continue to be compressed, leaving virtually no doubt. What truly remains to be waited for is the speed, scope, and cost at which it will be compressed.\nReferences [CSRC Promotes Remedial Work on Illegal Cross-Border Author\u0026rsquo;s Notes Original Prompt Breaking news in Hong Kong and US stock trading today: Institutions like Tiger Securities were severely disciplined for illegal cross-border operations, and Futu and Tiger dropped 40% pre-market. Let\u0026#39;s first review the previous CSRC investigation action, which completely locked down account opening for mainland users, but existing clients were unaffected. This time, it is the existing clients who face trading bans. Last year or the year before, there was a ban on HK stockbrokers serving mainland clients regarding transactions through Shanghai Stock Connect (read: \u0026#34;Search related policies to confirm how long the gap is between policy implementation and brokerage enforcement in banning mainland users from buying\u0026#34;). Today\u0026#39;s news said there was a two-year period for users to clear their positions, but it didn\u0026#39;t specify when the buy ban would take effect. It also did not clarify for how long illegal profits would be retroactively charged. Even if Futu published an announcement, as of the end of Q1 2026, the proportion of mainland Chinese clients with assets to the total group assets has dropped to 13%. Meanwhile, under the group This rewrite retains the original manuscript\u0026#39;s regulatory pathway, institutional stratification, and follow-up observation points. However, it has narrowed the scope of the third section\u0026#39;s commitment to focusing on \u0026#34;how the platform growth model is re-evaluated.\u0026#34; It avoids expanding further on account operation details to prevent repetition with the second section. ","date":"2026-05-22","language":"en","permalink":"https://ttf248.life/en/p/illegal-cross-border-brokerage-crackdown-3/","tags":["AI Inspiration Hub","Hong Kong Stocks and US Stocks","Brokerage Firm / Broker","Cross-border Regulation","Changqiao"],"title":"Illegal Cross-border Exhibition Rectification (Part III): Re-evaluating Online Securities Broker Valuation","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"After regulatory news breaks, what ordinary users are most concerned about is not the brokerage firm\u0026rsquo;s stock price, but whether they can still operate their own accounts: whether they can buy, sell, withdraw funds, or transfer positions. The phrase that is easiest to misunderstand here is \u0026ldquo;the two-year focused cleanup period.\u0026rdquo;\nIf only new account openings are restricted, the perceived experience of existing users will not change immediately. However, if current transactions are further restricted, users will encounter entirely different issues. The mildest approach might be a sell-only mandate; the most restrictive could require fund transfers, capital withdrawals, or the revocation of certain trading permissions.\nThis piece only discusses the user side. What truly needs preparation is not speculating whether regulations will loosen, but rather separating and analyzing \u0026ldquo;the length of historical buffers granted\u0026rdquo; from \u0026ldquo;what these public statements currently require.\u0026rdquo;\nThat time with the Shanghai Stock Connect program really took almost a year Many people only recall \u0026ldquo;that later they couldn\u0026rsquo;t buy it,\u0026rdquo; but don\u0026rsquo;t remember how long the gap was. According to the public rules and exchange operational notices, it was roughly like this:\nDate Document/Action Key Details 2022-06-24 HKEX Participant Announcement CT08822E Established transitional arrangements for qualified existing investors due to mainland rule revisions. 2022-07-25 SFC Notice No. 200 Takes Effect Clarified that Hong Kong securities firms\u0026rsquo; mainland investors cannot buy or sell A-shares through the Stock Connect, but existing investors can continue to trade during the transition period. 2023-07-23 Last Day of Transition Period The last day that existing investors could normally purchase shares. 2023-07-24 Formal Switch Mainland investors can only sell and cannot actively buy; Futu Help Center also executes instructions based on this date. If calculated based on the period from rule effectiveness to the front-end ban, the interval was from 2022-07-25 to 2023-07-24, which is approximately 364 days. Based on the period from the exchange announcement public disclosure to the front-end ban, that spans from 2022-06-24 to 2023-07-24, totaling 39\nSo, it wasn\u0026rsquo;t that there was no buffer at all; rather, they provided a buffer of nearly a year, and also clearly stated the final blackout date.\nBut we cannot directly apply a full year\u0026rsquo;s buffer this time On the surface, this two-year intensive remediation period appears to be longer than the previous one. In reality, the scope of supervision and the ultimate goals for handling the two matters are not the same.\nDuring the SSE Stock Connect policy change, what was essentially done was blocking \u0026ldquo;round-trip trading.\u0026rdquo; Mainland investors should not have been buying A-shares by circumventing the system through Hong Kong brokerage firms. Therefore, after the rule revisions, they provided a clear transition period before finally switching to \u0026ldquo;selling only and no buying,\u0026rdquo; which is quite simplistic in its logic.\nThe rectification effort in 2026 is more complex. It targets the entire illegal cross-border operating chain for securities, futures, and funds, not merely a single trading interface. The public scope simultaneously covers:\nIllegal Solicitation Illegal Account Opening Illegal Entrusted Trading Illegal Promotion and Traffic Generation Cooperation in Cross-border Fund Transfer Issue one is complex, and the execution might not be able to provide a nationally unified, front-end standardized, and text-copy consistent \u0026ldquo;buying ban starting at 00:00 on Month X Day X,\u0026rdquo; as last time.\nFurthermore, this time specific institutions have been named, and it also simultaneously mentions \u0026ldquo;proposed confiscation of all illegal gains and severe penalties according to law.\u0026rdquo; This suggests that it is not merely institutional optimization but also carries a distinct regulatory enforcement aspect. The pace of these enforcement actions often depends on various factors such as cautioning individual companies, rectification plans, system upgrades, customer notifications, and fund acceptance arrangements, and therefore cannot be summarized by a simple timeline.\nTherefore, the Shanghai Stock Connect case can only serve as a reference: there may be processing time for both systems and clients between the issuance of regulatory rules and front-end execution. However, it does not mean that we can assume there will certainly be another full year of normal investment/trading activity this time.\nTwo-year window, not two years of free buying This is the most crucial point I want to remind you of. (Or, depending on context: This is a key point I would like to emphasize.)\nIn the plan from the eight departments and the CSRC\u0026rsquo;s answers to media inquiries, the main official stance publicly given is: during the concentrated rectification period, accepting buy orders from existing investors is prohibited; only selling held securities and transferring funds out are permitted. In other words, according to public policy disclosures, \u0026ldquo;two years\u0026rdquo; describes a window for clearing existing business volumes/positions, not an allowance for continued free trading.\nWhy do many people misunderstand?\nBecause everyone naturally recalls the time of the Shanghai Stock Connect initiative: \u0026ldquo;Since they gave [us] a year before, it suggests that this time might also drag on for a long period; the front end won\u0026rsquo;t necessarily move quickly.\u0026rdquo; This deduction is not entirely unreasonable, but it can only be considered an inference, not a fact.\nThe more stable order of understanding is:\nThe public regulatory stance has shifted to \u0026ldquo;sell only, no buying.\u0026rdquo; We must wait for announcements from each respective brokerage firm regarding the exact date of full implementation on their apps. Before the official announcement, we cannot assume the opposite—that buying can continue normally/for a long time by default. The order of these three sentences cannot be reversed. For users, the most dangerous thing is not selling early or late, but misinterpreting the regulatory cleansing window as a trading grace period.\nWhat\u0026rsquo;s most valuable for investors is not guessing dates, but monitoring signals If you are genuinely using this type of broker, the signals you should pay attention to most are the following public indicators. Do not treat community screenshots as final rules, nor should you extrapolate the buyable status from other people\u0026rsquo;s accounts onto your own account.\nSignal Why it is important Reason more useful than rumors Official announcements from brokerage firms Determines when your account switches to sell-only mode This is the most direct and effective document regarding your account. Changes in deposit/withdrawal paths Often precedes the full implementation of trading restrictions Banking, payment, and foreign exchange channels will tighten up first. Copywriting adjustments on the App, official website, and account opening pages Reveals whether new customer acquisition and existing services are being separated Closer to the execution level than second-hand interpretation. Asset transfer/withdrawal arrangements Determines if you can only sell, or if migration paths still exist This is the core of subsequent loss control. From historical experience, what truly impacts the account experience are often not the regulatory slogans themselves, but these execution details. At the user level, actions should focus on risk inventory concerning holdings, cash, transfer paths, and withdrawal paths, rather than interpreting this matter as a short-term trading opportunity.\nMy Conclusions The Shanghai Stock Connect incident gave the market a clear benchmark: there was an approximate one-year gap between the rules taking effect and the actual buy restriction, with a very specific final date.\nHowever, we cannot mechanically apply [this] time. The reason is not that the regulation will be gentler; quite the opposite. It is because its scope of rectification is broader, its enforcement nature is stronger, and the involved chain is longer. Therefore, \u0026ldquo;the public stance has already become stricter\u0026rdquo; and \u0026ldquo;the unified buy ban date for the front end has not been fully disclosed\u0026rdquo; will coexist simultaneously.\nIn other words:\nConfirmed Fact: The current public regulatory requirement is no longer like the \u0026ldquo;retaining normal transactions\u0026rdquo; model from 2022. Unconfirmed Fact: That all brokerage firms will cut off buying on the same day and using the same method. Most Dangerous Misjudgment: Understanding the \u0026ldquo;two-year clearing period\u0026rdquo; as meaning you can still buy for two years like before. Next time, we will broaden the scope to the platform side: why is it that merely mentioning internet brokerage firms like Futu and Tiger, as well as other Chinese listed brokerages, guarantees safety?\nReferences Several Provisions on the Connect Scheme for Equities between Mainland and Hong Kong Stock Markets (CSRC Order No. 200) Hong Kong Exchanges and Clearing Limited Participant Notice CT08822E: Implementation Arrangements Regarding Restrictions on Mainland Investors Participating in Northbound Trades Futu Help Center: Arrangements for Mainland Investors Participating in Shanghai-Shenzhen Stock Connect Trading Eight Departments Jointly Issued \u0026lsquo;Work Plan for Special Action to Comprehensively Rectify Illegal Cross-border Securities, Futures, and Fund Operations\u0026rsquo; [CSRC Spokesperson Answers Journalists on Special Actions to Comprehensively Rectify Illegal Cross-border Securities, Futures, and Fund Operations](https://www.csrc.gov. Writing Notes Original Prompt Today\u0026#39;s breaking news regarding Hong Kong and US stock trading involves illegal cross-border business activities, leading to serious investigations into institutions like Tiger Securities. Futu and Tiger stocks dropped 40% pre-market. Let\u0026#39;s first review the last inspection action by the China Securities Regulatory Commission (CSRC). Last time, it completely restricted mainland users from opening accounts, but existing clients were unaffected. This time, transactions for existing clients are being prohibited. Back in last year or even two years ago, Hong Kong stockbrokers were banned from facilitating Mainland customers trading via Stock Connect. I searched for relevant policies and confirmed the time gap between policy implementation and brokerage execution: how long did it take before mainland users were prohibited from buying? Today\u0026#39;s news says there is a two-year grace period for users to liquidate their holdings, but it doesn\u0026#39;t specify when the ban on buying will begin, nor does it detail the lookback period for illegal gains. Even though Futu issued an announcement stating that as of the end of Q1 2026, the proportion of Mainland Chinese clients in terms of assets held accounted for only 13% of the group\u0026#39;s total asset base, overseas client assets continue to climb due to the group\u0026#39;s effective international strategy. The key metrics are not just client count, but also asset scale and transaction volume. The stock price is still falling; it hasn\u0026#39;t recovered. There are many related events; I will structure a timeline and break them into a series of articles. This time, eight departments have intervened! They are comprehensively rectifying illegal cross-border operation of securities, futures, and fund businesses, naming Futu, Changqiao, and Tiger—typical internet brokerages. What about the other brokerage firms? How will they be This rewrite retained the timeline and official terminology regarding the Shanghai stock deferral/extension process, but changed the central focus of the second article to \u0026#34;the two-year window must not be misunderstood.\u0026#34; It does not provide specific operational recommendations, nor does it infer effective dates for any brokerage firm, thereby ensuring that regulatory facts are not written as trading instructions. ","date":"2026-05-22","language":"en","permalink":"https://ttf248.life/en/p/illegal-cross-border-brokerage-crackdown-2/","tags":["AI Inspiration Hub","Shanghai-Shenzhen-Hong Kong Stock Connect","Futu","Cross-border Regulation"],"title":"Illegal Cross-Border Exhibition Rectification (II): The Two-Year Window Most Easily Misinterpreted","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"Investigations into Hong Kong and US stockbrokers caused initial price drops, with account issues only truly pressing upon users later. The most critical change this time is not the issuance of another regulatory statement, but rather the boundary shifting from \u0026ldquo;don\u0026rsquo;t allow new entrants\u0026rdquo; to focusing on \u0026ldquo;how existing players should exit.\u0026rdquo;\nDuring the last inspection, many understood that domestic users could no longer arbitrarily open new accounts, but those who already had accounts could continue trading. This boundary provided both the platform and the users with a buffer zone, making the existing accounts appear as a gray but maintainable historical burden.\nThis set of articles should be split into three parts: The first article will only focus on regulatory boundaries, the second will cover how accounts can be operated/affected, and the third will discuss how platforms and other brokerage firms should re-price. We must clarify the boundaries first; otherwise, we risk mixing user operations, company valuations, and industry rectification all together.\n2022 is for locking new additions, 2026 is for managing existing stock Let\u0026rsquo;s unfold the timeline; many misjudgments come from conflating these two rounds of remediation into a single event.\nDate Public Action Core Guidelines 2022-12-30 CSRC promotes rectification of illegal cross-border business expansion by Futu and Tiger Brokers Effectively curb incremental growth, orderly resolve existing volume; stop new account openings, allow existing clients to continue trading. 2023-02-15 CSRC answers reporters, scope expanded to overseas subsidiaries of mainland securities firms Unified supervision for similar businesses; will not arbitrarily restrict existing client trading. 2026-05-09 Eight departments jointly issue implementation plan Comprehensive rectification of illegal cross-border securities, futures, and fund operations. 2026-05-22 Plan publicized, CSRC simultaneously answers reporters and names three institutions Existing investors are only allowed to sell and transfer funds, prohibited from buying; concentrated rectification period is two years. In 2022, the regulation was focused on turning off the faucet, preventing new water from coming in. For 2026, it is no longer only about restricting additions; rather, it involves starting to drain existing \u0026ldquo;old water.\u0026rdquo; The most essential difference between the two can be summarized in one sentence:\nIn 2022: Existing clients can continue to trade. In 2026: Existing clients cannot buy any more; they can only sell their held securities and transfer the funds out. This is why the market reaction was so significant. For internet brokerage firms, restricting new account openings harms the growth trajectory; while existing clients only selling rather than buying damages trading activity, retention rates, capital accumulation/settlement, margin trading and securities lending, and wealth management conversion. The former signals a slowdown in the growth narrative, and the latter implies a re-evaluation of the entire business model.\nMany areas have been clarified, while those yet to be public are also extremely crucial Regarding the external dimensions/opening diameter, quite a few parts have actually been clearly specified.\nFirst, the object of regulation is not merely the app name, but the entire \u0026ldquo;illegal cross-border investment chain.\u0026rdquo; The plan from the eight departments states this very clearly, aiming to comprehensively rectify activities such as illegal solicitation, account opening, trading, fund transfer, and promotional traffic channeling. Furthermore, the CSRC (China Securities Regulatory Commission) defined the issue during a press briefing as a new type of illegal and non-compliant activity that is \u0026ldquo;more covert and poses greater danger.\u0026rdquo;\nSecondly, the severity of the actions is heavier than in 2022. The CSRC\u0026rsquo;s public statement on May 22nd was escalated to \u0026ldquo;intended to confiscate all illegal gains of related entities of Tiger, Futu, and Changqiao both domestically and internationally, and severely penalize according to law.\u0026rdquo; Later that day, the own SEC disclosures from the two US-listed platforms pushed the market\u0026rsquo;s most concerned point—the \u0026ldquo;magnitude\u0026rdquo;—forward one step: Futu, according to its public statement, has proposed total fines and confiscations roughly at 1.85 billion RMB; while Tiger disclosed that the combined amount already fined and confiscated is approximately 411 million RMB.\nThird, they gave a two-year concentrated rectification period. This \u0026ldquo;two years\u0026rdquo; is very important, but it cannot be simply understood as \u0026ldquo;everything remaining the same for two years.\u0026rdquo; The public statements suggest exactly the opposite; during the intensive rectification period, existing clients are required only to sell and not buy. The two years are more like a clearance window, not a free trading window.\nWhat truly unsettles the market are the sections that have not been fully disclosed. These gaps cannot be filled by rumors, nor can they write out implementation dates for regulators.\nRegarding the buy prohibition, when exactly will it take effect on the front-end systems of various firms? The public materials do not provide a unified and fixed date. How was the total amount of RMB 1.85 billion related to Futu broken down? The public documents have not yet elaborated on how this is allocated among illegal gains, penalty multipliers, and the involved parties. What is the subsequent plan for existing assets—will they be liquidated and exited, transferred to a compliant channel, or will the These ambiguities will directly translate into valuation discounts. Because the worst-case assumptions are unknown, the market will initially calculate based on overly conservative standards.\nThe “13% Customer Count” Does Not Influence the Estimation A statement from Futu in its response that has circulated widely is: \u0026ldquo;As of the end of Q1 2026, the proportion of asset clients in mainland China relative to the group\u0026rsquo;s total number of asset clients has dropped to 13%, while overseas asset clients continue to climb.\u0026rdquo;\nThis finding cannot be dismissed as useless, but it is nowhere near enough to calculate the potential impact on profit.\nThe problem is that it only gave the \u0026ldquo;percentage of customers,\u0026rdquo; but did not provide the two most critical items:\nProportion of Mainland Client Assets Share of Transaction Volume or Commission Contribution from Mainland Clients These two items are unavailable, so the 13% figure cannot be directly mapped to the profit impact. Online brokerages fear this kind of metric misalignment: fewer clients do not mean lower assets, nor does it mean weak trading activity. Especially long-term users often have larger capital, higher turnover rates, and stronger financing needs; the commercial value of a single account may not be low.\nWhat can be seen in Futu\u0026rsquo;s recently disclosed financial reports is that the group\u0026rsquo;s overall metrics are still very strong. Both the 2025 annual financial report and the yearly report disclose that total client assets have reached HKD 1.23 trillion, 2025 revenue was HKD 22.8 billion, and funded accounts amounted to 3.365 million. This indicates that the company\u0026rsquo;s internationalization efforts over the past few years have genuinely taken off. However, this same set of public materials does not separately break down \u0026ldquo;the proportion of assets and transaction volume from mainland Chinese clients.\u0026rdquo;\nTherefore, it is normal that the market is currently skeptical. It\u0026rsquo;s not a lack of belief in internationalization; rather, they are unsure what residual weight or potential mainland existing clients hold regarding asset and transaction activity dimensions. Client count is a headcount metric; valuation cares more about metrics related to assets, transactions, financing, and monetization.\nThis is not a typical negative factor for fines Failing to recover quickly after a pre-market drop exceeding 40% was fundamentally due to the non-linear nature of this downward pressure/negative catalyst.\nIf it were merely fines in the tens of millions, the market would account for a one-time loss. However, the current public figures have been raised to approximately RMB 1.85 billion for Futu and RMB 411.2 million for Tiger, a magnitude that is clearly not a \u0026ldquo;small scratch.\u0026rdquo; If it were only about stopping new additions, the market would estimate slowing growth. But if the rule becomes \u0026ldquo;existing inventory only allowed to be sold, not bought,\u0026rdquo; what the market must re-evaluate is:\n\\[ \\text{Future Valuation} \\neq \\text{Current Customer Count} \\times \\text{Simple Discount} \\]It\u0026rsquo;s more like a three-layer discount happening simultaneously:\nDecline in transaction frequency Account asset outflow Rising compliance costs and uncertainty To add another layer: whether we can still achieve incremental growth through the grey areas in the future; the current public narrative has essentially eliminated any room for speculation.\nTherefore, this wave of stock price movement is not merely an emotional fluctuation; it seems more like regulators bringing a long-standing but unpriced risk onto the table all at once. The difficulty isn\u0026rsquo;t \u0026lsquo;how much they will fine,\u0026rsquo; but rather how to monetize or convert the remaining existing assets/volume into revenue.\nMy Current Assessment My judgment is straightforward: The round of enforcement on May 22, 2026, will not be a rerun of the old news from 2022, but rather an upgraded version of the previous cleanup effort. Furthermore, it has shifted from \u0026ldquo;forbidding continued expansion\u0026rdquo; to \u0026ldquo;requiring the shrinkage of existing capacity.\u0026rdquo;\nFor investors holding stocks such as Futu or Tiger, what they should pay attention to next is not community sentiment, but three types of public information:\nEach brokerage firm\u0026rsquo;s own implementation announcement, especially the start date of buying restrictions The calculation methodology/scope for \u0026ldquo;illegal gains\u0026rdquo; in penalty documents or subsequent formal decisions Whether there are supporting measures such as asset transfer, account categorization, or regional isolation This article first clarifies \u0026ldquo;what exactly distinguishes this time from the last time.\u0026rdquo; The next article will separately analyze the implementation window: referencing the period between policy implementation and when Hong Kong stock brokers truly prohibited buying on their front ends for mainland clients utilizing Stock Connect. While this reference point helps with understanding, it cannot be mechanically applied to this current rectification effort.\nReferences Notes on Writing\nOriginal Prompts Today\u0026#39;s sudden news regarding HK/US stock trading involves illegal cross-border operations, with institutions like Tiger Securities being seriously investigated. Futu and Tiger fell 40% before market open. First, let\u0026#39;s review the last regulatory investigation by the CSRC (China Securities Regulatory Commission). That time, it completely locked down new account openings for domestic users, but existing clients were unaffected. This time, however, trading for existing clients is being restricted. Last year or the year before, Hong Kong stock brokers were banned from doing business with mainland clients transacting through Stock Connect. Searching for relevant policies and confirming how long there was an interval between policy implementation and broker enforcement: banning mainland users from buying? Today\u0026#39;s news says there will be a two-year grace period to clear out holdings, but it doesn\u0026#39;t specify when the ban on buying will begin. It also doesn\u0026#39;t specify how long the illegal gains will be retroactively tracked. Even though Futu issued an announcement, as of the end of Q1 2026, the proportion of asset clients in Mainland China relative to the group\u0026#39;s total asset client base has dropped to 13%. Meanwhile, under the group\u0026#39;s effective internationalization strategy, the number of overseas asset clients continues to climb. Only customer numbers are available; asset size and trading volume percentage are the two critical factors missing. The stock price is still dropping; it hasn\u0026#39;t rebounded. Many related incidents have occurred; compiling a timeline and splitting this into a series of articles. This time, eight departments are involved! They comprehensively rectified illegal cross-border operation of This rewrite retains the original manuscript\u0026#39;s timeline, official documents, and company disclosure narratives, but narrows the scope of the first article to \u0026#34;the difference between newly added restrictions and existing inventory disposal.\u0026#34; The account execution window and other brokerage differentiations will no longer be covered in this piece; they are reserved for the following two articles. ","date":"2026-05-22","language":"en","permalink":"https://ttf248.life/en/p/illegal-cross-border-brokerage-crackdown-1/","tags":["AI Inspiration Hub","Hong Kong Stocks and US Stocks","Futu","Tiger Securities","Cross-border Regulation"],"title":"Illegal Cross-border Exhibition Rectification (Part 1): Redrawing the Boundaries of Existing Accounts","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"After Zhipu and MiniMax were included in the Hang Seng Tech Index, the most common question that arises is: Since they have not yet reached their first lock-up period, are index funds compelled to buy shares?\nThis question cannot be answered directly based on emotion.\nInclusion in the index must first adhere to publicly disclosed methodologies. Delisting will affect future supply and stock price pressure, but it is not a hard threshold within the Hang Seng Tech Index methodology. Passive funds buy before and after the index takes effect because their goal is to track the index, not because the index company is arranging exits for existing shareholders.\nI cannot see the \u0026ldquo;Unlisting\u0026rdquo; item in Hengke\u0026rsquo;s rules. The methodology of the Hang Seng Tech Index is clearly written: it represents 30 companies listed in Hong Kong with high exposure to technology themes.\nSeveral key conditions can be laid out first:\nThere is no \u0026ldquo;mandatory passing of the first restriction period\u0026rdquo; here.\nSo, if Zhipu and MiniMax meet the criteria for industry, theme, innovation screening, liquidity, and market capitalization ranking, they might enter Heng Ke (HK STAR Market segment). Whether they are one month away from the first layer lock-up period is another issue.\nThis is also where index rules and investment sentiment often clash. Investors care about whether current buying activity represents sustainable demand, while index methodology cares about whether it meets the sample selection criteria.\nWhat Exactly Changed in This Announcement The Hang Seng Index Company announced the quarterly review results on May 22, 2026. The announcement stated that all changes would be implemented after the close of trading on June 5, 2026, and would take effect from June 8, 2026.\nThe Hang Seng Tech Index maintains 30 constituent stocks, and the adjustments are:\nAction Company Included MiniMax Group Inc. - W 0100 Included Beijing Zhipu Huazhang Science \u0026amp; Technology Co., Ltd. 2513 Excluded Kingdee International Software Group Co., Ltd. 0268 Excluded Kingsoft Company Limited 3888 Putting these four names together makes it easy to write \u0026ldquo;New AI players replacing old software companies.\u0026rdquo; However, this is merely a narrative construct. The actual rules are much colder: after quarterly reviews, the 30 positions will be re-ranked according to methodology, resulting in turnover.\nWhat\u0026rsquo;s more worth looking at this time is not \u0026ldquo;who entered,\u0026rdquo; but how significant their weight/influence will be after joining.\nAnnouncement Appendix Three lists the post-change weights according to the criteria of \u0026ldquo;assuming index adjustment on May 20, 2026.\u0026rdquo; The initial weights for Zhipu and MiniMax are not high:\nCompany Circulating Coefficient Adjusted Weight Zhipu 2513 8% 0.53% MiniMax 0100 6% 0.36% Kingdee International 0268 85% Excluded before 0.70% Kingsoft Software 3888 75% Excluded before 0.67% The two newly added companies together account for less than 1%.\nTherefore, it is true that \u0026ldquo;passive funds buy,\u0026rdquo; but \u0026ldquo;massive accumulation\u0026rdquo; cannot be simply inferred from merely being included [in an index]. The size of the buying force depends on the free float market capitalization, weight, tracking fund scale, and the degree of trading congestion within the effective window.\nDe-listing and Index Inclusion Are Not the Same Thing The most critical point raised in the original question was: Since the shares haven\u0026rsquo;t been unlocked/released yet, will funds step in to buy support?\nThis needs to be broken down into three layers.\nFirst, determine if the shareholder can sell.\nIf the lock-up period specified in the prospectus has not yet expired, the relevant shareholders are prohibited from selling on the open market. When index funds purchase shares, they can only buy them from the circulating supply in the secondary market and cannot directly convert locked-up shares into sellable stock.\nSecondly, index rules—whether or not they are lifted/allowed.\nThe Hengke Methodology considers the sample space, technology themes, innovation screening, market capitalization ranking, quarterly reviews, free-float weight, and upper limit constraints. It does not include \u0026ldquo;the first lockup period has passed\u0026rdquo; as a screening criterion.\nThirdly, whether passive funds will buy.\nThey track Hang Seng Tech\u0026rsquo;s ETFs and index products, requiring adjustments to holdings around the effective date. They are not actively judging whether \u0026ldquo;this company is cheap or expensive,\u0026rdquo; but rather controlling tracking error.\nWhen considering these three components together, the conclusion becomes much clearer:\nThis inclusion is not opening a selling channel for locked-up shareholders; It will introduce predictable passive buying demand into the free float market cap; If the free float is thin, price elasticity may be more pronounced; However, this does not equate to \u0026ldquo;index funds covering the sales of newly unlocked shares.\u0026rdquo; The more accurate statement is that while rules may disregard lock-up periods, capital focuses on the circulating supply (or free float).\nInclusion Does Not Guarantee Gains Another common misconception: Does rising/entering an index automatically signal bullish sentiment, and does exiting/falling out of it necessarily signal bearish sentiment?\nIt may have short-term trading implications. Between the announcement and its effective date, active capital flows, arbitrage activities, ETF rebalancing, and derivative hedging will all move preemptively. The last closing auction before the effective date often makes it easier to observe mechanical buy and sell volume.\nBut in the medium to long term, things cannot simply be equated.\nThe Hang Seng Tech Index undergoes quarterly reviews. Often, by the time a company is included, its market capitalization, trading volume, and market hype have already completed a cycle; similarly, when it is excluded, its stock price and liquidity may have already undergone a period of weakness. Therefore, index adjustments are more like ex-post validation (or post-hoc confirmation), not the starting point for new fundamentals.\nTherefore, when looking at index adjustments, I will divide them into three parts:\nQuestion What to Observe Whether it can be included Methodology, Industry, Theme, Innovation screening, Market cap ranking Will there be passive buying demand? Initial weight, Tracking fund size, Effective window Will the price rise later? Company fundamentals, Valuation, Liquidity, Market risk appetite The first thing is the rule, the second thing is the transaction, and only then comes investment judgment.\nIf you mix them together, it\u0026rsquo;s easy to portray \u0026ldquo;index inclusion\u0026rdquo; as an infallible catalyst, or \u0026ldquo;not yet released/unlocked\u0026rdquo; as a perfect conspiracy.\nMy Perspective on Zhipu and MiniMax ZhiPu and MiniMax\u0026rsquo;s inclusion in [HengKe context], suggests that Hong Kong-listed AI companies are beginning to enter the scope of index inclusion criteria. This matter holds symbolic significance as well as potential short-term trading implications.\nBut it is neither fundamental support nor a locked-up stock exit arrangement.\nThe three things that really need attention are:\nFirst, whether the weights will continue to increase. Low initial weights do not mean they will remain low in the future. Changes in stock price, market capitalization, and float ratio will all affect rebalancing.\nSecond, changes in the circulating supply after restrictions are lifted. Index inclusion cannot resolve the fundamental supply problem. Once the lock-up period ends, the true circulating supply expands, requiring a reevaluation of price pressure.\nThird, Hengke\u0026rsquo;s internal capital environment. The scale of tracking funds, ETF subscriptions/redemptions, and hedging using Hengke futures and options will all impact trading volatility before and after the effective date.\nSo I will not label this as a \u0026ldquo;buying opportunity\u0026rdquo; nor will I label it a \u0026ldquo;major upside.\u0026rdquo;\nIt is more like a validation of rules: AI new stocks meet the methodology and are included in the index; passive funds buy according to weightings; subsequent performance will continue to depend on fundamentals, circulating supply, and market sentiment.\nOne-sentence summary is:\nThe fund allocates investments according to weights, regardless of lock-up expiration rules. The index company is not responsible for any subsequent price increases or decreases.\nReferences Writing Notes Original Prompts $blog-writer Hang Seng Tech Index adjustments: Zhipu and Minimax are going to be included in the index. What are the rules for index adjustment? These two companies haven\u0026#39;t reached their first lock-up period yet; by including them in the index, is it forcing funds to absorb/buy up shares? Please analyze the Hang Seng Tech Index, providing a list of changes from the last three years. Systematically review corresponding contracts: those that were included and those that were removed (kicked out), along with their fluctuation ranges over the next short period (one year) and their cumulative fluctuation range to date. Writing Idea Summary Retain core issues from the original prompt: rules, delisting, and passive fund buying pressure. Remove large sections of historical change tables and price fluctuation tables from the old draft, to avoid information density overwhelming the main narrative. Only retain key items concerning this round of adjustments, initial weights, and methodology; transform the article from a data repository into a rules explanation draft. ","date":"2026-05-22","language":"en","permalink":"https://ttf248.life/en/p/hang-seng-tech-index-zhipu-minimax-review-rules/","tags":["AI Inspiration Hub","Hang Seng TECH Index","Hong Kong Stocks","Index Fund","ai"],"title":"Zhipu and MiniMax entering Hengke; rules and buying pressure are two completely different things.","year":"2026"},{"categories":["Financial Knowledge Base"],"content":"When many people first see US Treasuries, the easiest thing to do is misread a number.\nWhen you see 4.5% advertised in the market, it\u0026rsquo;s easy to mentally fill in a simple phrase: \u0026ldquo;If I invest now, I will reliably earn 4.5% every year and continue receiving it until maturity.\u0026rdquo;\nThis statement is only half right.\n4.5% often aligns more closely with an \u0026ldquo;annualized yield metric,\u0026rdquo; and does not mean that you receive cash of 4.5% every year. What actually reaches your account is the result calculated from three factors combined: coupon payments, the purchase price, and principal repayment at maturity.\nConclusion First If you purchase standard fixed-rate U.S. Treasury debt—meaning Treasury Notes or Treasury Bonds—and hold them until maturity without selling early, then:\nWhat you receive is a rules-based cash flow, not an arbitrary percentage. Interest is typically paid semi-annually. The principal amount is returned at maturity. The 4.5% seen upon purchase should be broadly understood as \u0026ldquo;the annualized yield expected near the time of maturity,\u0026rdquo; but it does not equal a flat 4.5% cash payout every year. If you buy Treasury Bills, which are short-term treasury bonds maturing within one year, then it is an entirely different approach:\nUsually, there are no interest payments during the term. It is purchased at a discount and redeemed at face value upon maturity. The profit mainly comes from \u0026ldquo;the purchase price being lower than the money received at maturity.\u0026rdquo; Therefore, for newcomers to US Treasuries, remember this key point: First, distinguish between whether you are buying an interest-bearing bond (coupon bond) or a discount note.\nWhat is the 4.5% actually? The three terms most often confused here are:\nTerm You See What It Means Does It Change? What It Actually Affects Coupon / Interest Rate The rate set at the time of bond issuance Fixed/Constant Determines how much interest you receive each period Yield to Maturity (YTM) The annualized return calculated based on your current purchase price Changes Determines the yield scope for the investment from \u0026ldquo;now until maturity\u0026rdquo; Price The actual price you bought it at Changes Determines if you bought at a discount, par value, or premium The U.S. Department of the Treasury states very clearly on TreasuryDirect: Notes and Bonds pay interest every six months, and the coupon rate is determined at auction; but bond prices fluctuate with yields. In other words, the yield is not the cash given directly to you; it is an annualized result calculated by combining the price and future cash flows.\nThis is also why common headlines in the news such as \u0026ldquo;10-year US Treasury yield rises to 4.5%\u0026rdquo; generally cannot be directly interpreted as \u0026ldquo;Buying 10-year US Treasuries now yields a 4.5% annual cash dividend.\u0026rdquo; This metric is more accurately described as the yield convention reported by the market for this type of maturity bond. My explanation here is based on TreasuryDirect\u0026rsquo;s definition regarding the relationship between coupon, price, and yield.\nCalculating with an Official New Bond Mere discussions of concepts are useless; one must speak based on the official auction results.\nThe U.S. Treasury announced the auction results for a 10-Year Note on 2026-05-12:\nInterest Rate: 4-3/8%, which is 4.375% High Yield: 4.468% Price: 99.256552 Issue Date: 2026-05-15 Maturity Date: 2036-05-15 If you purchase based on this auction result with a $1,000 face value, the calculation would be as follows:\nItem Value Explanation Face Value $1,000 Basis of the principal recovered at maturity Purchase Price $992.57 Because the price was 99.256552, you The dividend thing, the formula is actually simple:\n\\[ \\text{Half-year coupon} = \\text{Face Value} \\times \\text{Coupon Rate} \\div 2 \\]Substituting this debt, it is:\n\\[ 1000\\times 4.375\\% \\div 2 = 21.875\\text{ USD} \\]If you do not sell over these 10 years, and excluding taxes and exchange rates, the nominal total cash flow would be:\n\\[ \\text{Total Cash Flow}=\\text{Total Coupon}+\\text{Maturity Principal}=437.50+1000=1437.50\\text{ USD} \\]Your initial purchase cost was approximately $992.57. Therefore, from the perspective of \u0026ldquo;total amount recovered,\u0026rdquo; this debt is clearly not a loss.\nHowever, let\u0026rsquo;s pause here. This does not equal you receiving 4.468% in cash annually.\nWhat you actually receive is:\nDividend credited semi-annually. The principal is recovered on the final maturity date. Because you purchased below face value, you will also gain an additional spread from \u0026ldquo;returning from the purchase price to the face value.\u0026rdquo; When combined, these three parts make up the 4.468% High Yield shown in the auction results.\nWhy is the coupon rate 4.375%, but the yield to maturity is 4.468%? Because you bought it below face value.\nThe coupon rate for this bond is only 4.375%, but the transaction price is 99.256552, which is below its face value of 100. Therefore, although you receive annual interest calculated on the full face value (4.375%), you will still be repaid the principal of 100 at maturity. This small discount built into the price will lift the overall holding-to-maturity yield to 4.468%.\nThe converse is also true.\nIf a bond\u0026rsquo;s coupon rate is higher than the prevailing market yield, it tends to trade at a premium. This means you have to pay more upfront when you buy it. Consequently, although you receive a larger coupon payment every six months, upon maturity, you only get back the face value. The excess paid (the premium) will slowly erode over time, ultimately pulling the overall yield down closer to market levels.\nTherefore, when looking at US Treasuries, the most reliable sequence is not to look at 4.5% first, but rather:\nFirst, check what type of bond it is and its remaining maturity period. Next, look at the coupon rate. Finally, examine the yield corresponding to your actual purchase price. Whether the Yield Can Truly Be Understood as 4.5% if It Never Sells Yes, but two footnotes are needed.\nFirst, 4.5% is more like an annualized rate, not a cash payout rhythm/disbursement schedule Provided that you buy a fixed-rate Note or Bond, and actually hold it until maturity without selling it midway, what you lock in at the moment of purchase is a stream of future cash flows:\nInterest paid every six months Principal repaid at maturity How much do you pay now for this stream of cash flows? The market-provided Yield to Maturity is essentially calculating these three factors into an annualized rate of return. For beginners, you can understand it as: \u0026ldquo;If this bond is held until maturity, its approximate yield level will be this.\u0026rdquo;\nSecondly, the money in the account will not automatically compound 4.5% This point is also easily misunderstood.\nThe YTM of a bond uses an annualized yield basis, but if the coupon payments you receive halfway are just sitting idle in your account without being reinvested, they will not generate the same rate of return on their own.\nIn other words:\nThe inherent cash flow of the bond, which you can generally estimate in advance. Your final compounded result, which depends on how you handle the coupon payments after receiving them. A more precise way to say this is: the 4.5% shown upon purchase is more like a \u0026ldquo;reference for annualized yield until expiry,\u0026rdquo; rather than \u0026ldquo;a guarantee of 4.5% automatic annual compounding in the account.\u0026rdquo;\nWhen Will It Be Issued/Distributed Approach this issue by focusing on different segments/areas; don\u0026rsquo;t try to solve everything all at once.\n(Alternative translations depending on context:)\nDon\u0026rsquo;t use a blanket approach; tackle it by type. (More formal) Segment this matter and don\u0026rsquo;t try to grab everything at once. (Closer to the literal meaning but still clear) Treasury Bills The official stance of the U.S. Department of the Treasury is that Bills are treasury securities with a maturity of one year or less, typically issued at a discount and paid at face value upon maturity.\nFor you, it is:\nRequires an upfront investment upon purchase Usually no regular coupon payments during the term Face value is returned in a lump sum at maturity So, if you buy short-term bonds, when asking \u0026ldquo;how often is the interest paid?\u0026rdquo;, the answer is often: It\u0026rsquo;s neither paid monthly nor semi-annually; there are no payments in between—it all settles at maturity.\nTreasury Notes and Treasury Bonds These two types are coupon bonds (or interest-bearing bonds). The US Treasury Department clearly states: a fixed rate, with interest paid every six months until maturity.\nTo you, it is:\nReceive coupons semi-annually Recover principal at maturity There is also a detail that can easily confuse beginners: The U.S. Treasury mentioned in its statement noted that when purchasing during certain \u0026lsquo;reopening\u0026rsquo; periods, the price might include a small amount of accrued interest; this portion will be returned/credited out during the first formal dividend payout. In other words, the initial amount you receive may occasionally differ from what your intuition suggests, and it doesn\u0026rsquo;t necessarily mean the system calculated it incorrectly.\nI think the most important thing to clarify first is not the yield rate, but the definitions/scope If this is your first time buying US Treasuries, I actually wouldn\u0026rsquo;t recommend immediately fixating on whether \u0026ldquo;4.5%\u0026rdquo; is high or low.\nUnderstanding these next three points will automatically help you avoid half of the potential pitfalls that follow:\nYield is not equal to Dividend. Holding-to-Maturity Yield is not equal to Annual cash distribution ratio. Never selling can only help you avoid the impact of intermediate price fluctuations on the sale result, but it cannot avoid exchange rates, taxes, and brokerage fees. In this article, I deliberately did not elaborate on exchange rates, taxes, or brokerage fees. It\u0026rsquo;s not that they aren\u0026rsquo;t important, but if these three variables are introduced together, the inherent yield mechanism of US Treasuries can become easily complicated/confused. If you first clarify how \u0026ldquo;bonds themselves pay money,\u0026rdquo; then tackle the layer of cross-border investment, it will be much easier to grasp.\nReferences TreasuryDirect, Treasury Notes TreasuryDirect, Understanding Pricing and Interest Rates TreasuryDirect, Buying a Treasury Marketable Security U.S. Treasury, Treasury Auction Results, 10-Year Note, May 12, 2026 Writing Notes Original Prompt Detailed explanation of US Treasury yields. For example, if a bond yield is currently priced at 4.5%, what kind of return can I expect if I buy it now and hold it indefinitely? When does it pay out? I am a complete novice when it comes to US Treasuries.\nWriting Outline Summary First, separate the concepts of coupon, yield, and transaction price. Otherwise, the subsequent analysis of cash flow will be incorrect. Use the official 10-year US Treasury auction results from 2026-05-12 as an example, rather than just providing abstract definitions. The main body should focus on answering \u0026ldquo;what money you will receive and when,\u0026rdquo; instead of giving a general discussion of macroeconomic interest rates. Deliberately separate the writing for Bills and Notes/Bonds Extended Brainstorming Topic Inclusion Status in Main Body Reason Use official 10-year auction results as an example Include Has specific numbers, which can clarify the difference between a 4.375% coupon rate and a 4.468% yield. Distinguish between Bills and Notes/Bonds Include The user asks \u0026quot; ","date":"2026-05-21","language":"en","permalink":"https://ttf248.life/en/p/understanding-us-treasury-yield-for-beginners/","tags":["US Debt (or US Treasury Bonds/Debt, depending on context)","Bond","Rate of Return","financial","AI Inspiration Hub"],"title":"U.S. Treasury Yield at 4.5%: What Will I Actually Get After Buying?","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"Bottom line first.\nAs of May 20, 2026, the strength of A-shares and the weakness of Hang Seng Tech are not due to one asset pool having lagging components; rather, it is a divergence between two sets of pricing logics. On May 20, 2026, the Shanghai Composite Index closed at 4162.19 points, still fluctuating near 4200; meanwhile, on its most recently available closing date of May 19, 2026, the Hang Seng Tech Index closed at 4857.46 points, which is still short of the phase historical high point of 10945.22 recorded on February 17, 2021, by 55.6%.\nIf your statement that the \u0026ldquo;CSI 300 ETF has matched its historical peak\u0026rdquo; refers to the most common 510300, the closing price I captured on 2026-05-20 was 4.871. This still represents about a 16.1% drawdown from the 5.807 recorded on 2021-02-10, and has not reached an all-time high. It is highly likely that various calculation bases were mixed here: Price, Net Asset Value (NAV), Adjusted NAV, Total Return Index. They look like they are the same thing, but they actually are not.\nAllow me to correct a name. The \u0026ldquo;China Golden Dragon Fish Index\u0026rdquo; you mentioned usually refers to the Nasdaq Gold Dragon China Index, whose English name is Nasdaq Golden Dragon China Index, not \u0026ldquo;Golden Dragon Fish.\u0026rdquo;\nClarifying the Scope This time, I will only calculate the correlation using rates of return, rather than calculating it directly using price levels. Price levels have long-term trends; if we calculate the price correlation directly, it is very easy to mistakenly consider any two assets that have risen over the long term as being \u0026ldquo;strongly correlated.\u0026rdquo;\nObject Definition Used Characterized As Hang Seng Tech Index 30 large technology companies listed in Hong Kong, defined by the Hang Seng Index Company, with a single weight cap of 8% HK tech leaders + offshore China growth Nasdaq Golden Dragon China Index A collection of securities defined by Nasdaq that are listed, registered, or primarily linked to mainland China. US-listed Chinese concept stock risk appetite Nasdaq Composite Index Large-cap US tech/growth factor in the American stock market. Global USD technology asset risk appetite Hang Seng Tech and A-share broad market indices both appear to be called \u0026ldquo;China assets,\u0026rdquo; but their components are vastly different. The top ten weights listed in the official Hang Seng Tech factsheet for April 2026 basically include Meituan, SMIC, BYD, Alibaba, NetEase, Xiaomi, Tencent, JD, Baidu, and Kuaishou. It is not focused on banking, insurance, resources, or dividends, nor is it an index that \u0026ldquo;will definitely rise just because China assets rise.\u0026rdquo;\nWhy A-Shares Are Strong While Hang Seng Tech Is Pulling Back I am more inclined to break this down into three layers.\nFirst layer, compositional structures are different.\nThe recent strengthening of the SSE Composite Index and CSI 300 tends to benefit finance, core manufacturing, large-cap weights, and certain high-dividend assets more significantly. Hang Seng Tech operates on a different playbook: internet platforms, semiconductors, consumer electronics, and smart vehicle supply chains. These companies are more sensitive to valuation, overseas liquidity, risk appetite, and geopolitical sentiment.\nSecond layer, the source of funds for pricing differs.\nA-shares are more a reflection of local capital, local policies, and local risk appetite. Although Hang Seng Tech is also influenced by southbound funds, it is fundamentally an offshore market asset. The offshore market assigns higher weight to \u0026ldquo;regulatory expectations, US dollar interest rates, ADR risk premium, and overseas fund positioning.\u0026rdquo; When A-shares pursue a trend of \u0026ldquo;stable growth + large market weight,\u0026rdquo; Hang Seng Tech may completely undergo a cycle of having risen too quickly previously and now retracing some gains.\nThird layer, that previous uptrend was fundamentally not on the same beat/pace.\nOver the past two years, Hang Seng Tech has experienced several very steep rallies; its uptrends tend to be faster than A-shares, but its pullbacks are also more severe. According to the 1-year annualized volatility provided in the Hang Seng Index Company\u0026rsquo;s April 2026 factsheet, Hang Seng Tech stands at 30.80%, while HSI is only 14.08%, and the SOE index is 12.62%. High-volatility assets are more prone to premature profit realization during periods of divergence.\nI would summarize this phenomenon in one sentence: This round of A-shares is more like \u0026ldquo;local blue-chip asset recovery,\u0026rdquo; while Hang Seng Tech is more like the \u0026ldquo;re-pricing of offshore Chinese growth stocks.\u0026rdquo; The two will move in the same direction, but they will not be synchronous.\nAre Hang Seng Tech and Chinese Concept Stocks Strongly Correlated? Conclusion first: Yes, very strong at week and month scales; medium-to-high correlation at daily scale.\nI aligned the common trading dates from 2020-08-17 to 2026-05-19, and calculated Pearson correlation using daily return, 5-day return, 20-day return, and 60-day return. The results are very straightforward:\nPair 1-Day Return Correlation 5-Day Return Correlation 20-Day Return Correlation 60-Day Return Correlation Hang Seng Tech vs Nasdaq China Dragon 0.60 0.85 0.90 0.93 Nasdaq China Dragon vs Nasdaq Composite 0.49 0.46 0.35 0.35 Hang Seng Tech vs Nasdaq Composite 0.17 0.36 0.31 0.28 This result is very interesting.\nHang Seng Tech and China Concept Dragon are, in the short to medium term, two exchange listings that can be viewed as essentially the same type of risky asset. China Concept Dragon and the NASDAQ are not as closely linked as people imagine. They are correlated, but not bound. Hang Seng Tech and the NASDAQ are weaker/less coupled. They are separated by a layer of \u0026ldquo;China assets\u0026rsquo; own risk premium.\u0026rdquo; Another detail worth noting is\u0026hellip;\nMany people think that when Hong Kong stocks open during the day, they should primarily follow the movements of the US market from the previous night. However, if we truly align the daily rise and fall of Hang Seng Tech with \u0026ldquo;the China Concept Golden Dragon\u0026rdquo; from the previous trading day, the correlation actually diminishes. This indicates that it is not simply \u0026ldquo;blindly following\u0026rdquo; last night\u0026rsquo;s US market, but rather being driven by the same round of offshore China beta along with the Chinese concept golden dragon.\nChina Concept Gold Dragon and NASDAQ: Is there a strong correlation? My assessment is: Moderate correlation, not strong correlation.\nSimply noting that they are all traded in the U.S. can lead to a misunderstanding. Although the China Concept Gold Dragon Index is listed on US exchanges, its definition tracks Mainland Chinese companies, not domestic American tech leaders. Its movements are influenced by two categories of factors:\nOne type concerns USD growth stock risk preferences represented by the NASDAQ. Another type relates to China\u0026rsquo;s policy, audit regulation, ADR discount, RMB expectations, platform economy, and real estate sector risks. This explains why the daily return correlation for the China concept gold dragon and Nasdaq was only around 0.22 in 2024, but returned to around 0.59 by 2026. It is not a permanently stable US tech beta; it will periodically revert/switch back to a \u0026ldquo;China asset beta.\u0026rdquo;\nIs There a Cycle Where US Stocks Drop and Hang Seng Tech Surges? Yes, and more than once.\nHowever, to provide the full context: It was not that Hang Seng Tech decoupled from US stocks; rather, during that period, the force of Chinese asset revaluation outweighed the Nasdaq adjustment.\nI\u0026rsquo;ll select three representative scenarios:\nObservation Window Hang Seng Tech Nasdaq China Dragon Nasdaq Composite Explanation 60 trading days as of 2023-01-19 +58.8% +72.0% -0.9% Policy recovery after extreme undervaluation in 2022 + reopening trades 60 trading days as of 2024-10-07 +49.6% +35.4% -3.9% Cyclical revaluation of Chinese assets, with greater elasticity for Hang Seng Tech 120 trading days as of 2025-03-18 +67.2% +42.8% -2.8% HK tech and Chinese concept stocks experiencing a strong, independent recovery phase Therefore, the answer is not \u0026ldquo;no,\u0026rdquo; but rather \u0026ldquo;yes, although it rarely occurs during periods of pure global risk sentiment.\u0026rdquo; When Hang Seng Tech manages to move counter-cyclically against US stock pullbacks, the underlying causes are usually more localized catalysts such as marginal changes in Chinese policy, valuation recovery, and replenishing offshore Chinese capital positions.\nHow Did Each Major Cycle in Hang Seng Tech Start and End? I did not count every 10% rebound as a new cycle, as doing so would turn the article into a market report/broadcast. Instead, I used a swing-based segmentation method with a threshold close to 30% to divide the period from 2020-08-17 to 2026-05-19 into major levels, and then marked significant minor drawdowns separately.\nIn this table/chart, what I value most is not the magnitude of fluctuation, but its manner of conclusion (or how it ends).\nThe upward trends in the Hang Seng Tech sector rarely proceed gradually; rather, they tend to be:\nValuation preceded by a long preparatory period; Sudden consolidation of sentiment; Finally ended with a sharp sell-off. The downward movement will not be a simple linear drop to rock bottom; instead, it is:\nThe main decline period is very long; Interspersed with several decent rapid rebounds; When truly bottoming out, it is usually accompanied by \u0026ldquo;marginal policy changes + very light positions + low valuation.\u0026rdquo; The most questionable aspect of these assets is here: It looks like an index, but it\u0026rsquo;s actually more like a highly volatile basket of sectors.\nThe Last Sentence If you treat Hang Seng Tech as a \u0026ldquo;Hong Kong Nasdaq,\u0026rdquo; it\u0026rsquo;s easy to misjudge; if you see it as the \u0026ldquo;China tech growth beta\u0026rdquo; within Hong Kong stocks, many things become clearer.\nA-shares being strong does not mean that the Hang Seng Tech must be equally strong. The Hang Seng Tech is strongly correlated with China\u0026rsquo;s concept stocks, but only moderately correlated with the Nasdaq. When US stocks fall, the Hang Seng Tech can indeed rise sharply, but that often indicates that the dominant factor has switched from \u0026ldquo;global tech risk appetite\u0026rdquo; to \u0026ldquo;China\u0026rsquo;s assets being re-evaluated on their own merit.\u0026rdquo;\nSo for this market trend, don\u0026rsquo;t just focus on one direction. First, see who it is following.\nReferences Hang Seng Indexes, Hang Seng TECH Index Factsheet, April 2026 Nasdaq, Nasdaq Golden Dragon China Index Methodology FRED, NASDAQ Golden Dragon China Index FRED, NASDAQ Composite Index CSI Index Company Limited, CSI 300 Factsheet, 2026-03-31 Sina Finance, Hang Seng Tech Index Page Writing Notes Original Prompt The Shanghai Composite Index for A-shares has risen significantly recently but also corrected once, fluctuating around 4200. However, the CSI 300 ETF is approaching historical peak levels. Investigate why the Hang Seng Tech Index declined during the same period. Is the Hang Seng Tech Index highly correlated with the US China Dragon Fish Index? Is the China Dragon Fish Index highly correlated with the Nasdaq Index? Are there cycles where the Hang Seng Tech Index surges when US stocks fall? Analyze the duration of previous cycles, and how they started and ended.\nWriting Idea Summary Correct \u0026ldquo;Golden Dragon Fish Index\u0026rdquo; to Nasdaq China Dragon Index, and separate the metrics for ETF price, adjusted net value, and total return index. Do not calculate correlation directly based on specific levels; only use rates of return, to avoid long-term trends artificially inflating the correlation. First address \u0026ldquo;why there is a desynchronization,\u0026rdquo; then answer \u0026ldquo;whether it is strongly correlated,\u0026rdquo; and finally focus on the major cycle of Hang Seng Tech. Anchor relative time to specific dates (2026-05-19 and 2026-05-20) for terms like \u0026ldquo;recent\u0026rdquo; or \u0026ldquo;same period,\u0026rdquo; to prevent misleading interpretations based on relative timing. Deliberately avoided elaborating on individual stock financial reports and single-day news headlines, because the more important focus of this article is the index structure and capital pricing logic. Extended Brainstorming Direction Whether to include in body Handling Method Day-by-day alignment of Hang Seng Tech and Southbound Net Inflows No Valuable, but it changes the article from an index comparison to a capital flow monitoring report, risking topic drift. Decomposing A-shares into SSE 50, Dividend Stocks, CSI A500 No Can explain in greater detail, but will dilute the main line of argument (\u0026ldquo;Why Hang Seng Tech is unsynchronized\u0026rdquo;). Recalculating \u0026ldquo;whether it' ","date":"2026-05-20","language":"en","permalink":"https://ttf248.life/en/p/why-hang-seng-tech-lags-a-shares/","tags":["AI Inspiration Hub","Hong Kong Stocks","U.S. Stock Market","Hang Seng TECH Index","China ADRs / China concept stocks (or Hong Kong listings, depending on context)"],"title":"Why didn't the Hang Seng Tech index hit new highs alongside A-shares?","year":"2026"},{"categories":["Computer"],"content":"Let\u0026rsquo;s first establish the date. ChatGPT\u0026rsquo;s public research preview version was released on November 30, 2022, not 2023. [1]\nAfter this point, NVIDIA\u0026rsquo;s data center GPU main roadmap is quite clear: The conclusion of Ampere, followed by Hopper taking over. Hopper focused on expanding VRAM capacity and refresh rate, while Blackwell will shift its focus from \u0026ldquo;single-card dense compute power\u0026rdquo; toward \u0026ldquo;inference throughput, power consumption, and system-level interconnection.\u0026rdquo; The China-specific versions represent a different story: A800, H800, and H20 are fundamentally compliance versions created under US export control constraints, and therefore cannot be viewed using the same metrics as the global flagship line.\nThis only counts two lines:\nGlobal Data Center Training/Inference Mainline: A100 as the control baseline, H100, H200, B200, B300. China Dedicated Line: A800, H800, H20. I didn\u0026rsquo;t include the L4, L40, L40S, and L2 in the main text either. It\u0026rsquo;s not that they aren\u0026rsquo;t important; it\u0026rsquo;s just that they are more related to the video inference, general inference, graphics, and virtualization line, and mixing them with the large model training main line of A100/H100/H200/B200 would confuse the pricing and performance metrics.\nLook at the Main Storyline To conclude: If we only look at the release cadence after November 30, 2022, H100 was the true starting point for the early generative AI explosion; H200 was a refresh card designed to \u0026ldquo;fill the memory gap\u0026rdquo;; B200 represents what truly constitutes a platform-level generational replacement, and B300 pushes Blackwell one step further into the inference and reasoning era.\nModel Release Date Architecture VRAM VRAM Bandwidth Interconnect Official Performance Metrics A100 80GB Nov 2020, as comparative baseline Ampere 80GB HBM2e 2.039 TB/s NVLink 600 GB/s BF16/FP16 Tensor Core 312 TFLOPS, INT8 624 TOPS [2] H100 SXM 2022-03-22 Hopper 80GB HBM3 3.35 TB/s NVLink 900 GB/s BF16/FP16 1,979 TFLOPS, FP8 3,958 TFLOPS; DGX H100 single node 32 PFLOPS FP8, a 6x increase over DGX A100 [3][4] H200 SXM 2023-11-13 Hopper Refresh 141GB HBM3e 4.8 TB/s NVLink 900 GB/s The focus provided by Nvidia is not doubled core compute power, but rather 1.9x inference for Llama2 70B and 1.6x for GPT-3 175B; relative to H100, it features larger and faster memory [5][6] B200 SXM 202 What\u0026rsquo;s easy to misunderstand here is that the H200 is not a \u0026ldquo;brute-force double compute card\u0026rdquo;; rather, it is more like supplementary knowledge built upon the Hopper era. Once large model training and inference enter the stage of ultra-long contexts, massive KV caches, MoE (Mixture of Experts), and larger batch sizes, the bottleneck is no longer solely determined by the BF16 peak number, but rather by VRAM capacity and VRAM bandwidth. The H200 addresses this shortcoming.\nThe true generational leap happens with Blackwell. Blackwell is no longer just selling a single card; it is selling an entire suite of platform capabilities: new precision, interconnectivity, system-level bandwidth, inference cost, power efficiency, and rack-scale architecture. This is why when many sources discuss the B200, the single-card metrics are not as immediately understandable at a glance as those for the H100. This is because NVIDIA\u0026rsquo;s narrative focus has shifted from \u0026ldquo;how many TFLOPS does this card have\u0026rdquo; to \u0026ldquo;what size model can this entire system run and what will the cost be.\u0026rdquo;\nTake Another Look at Chinese Specialty Lines The China exclusive line must be viewed separately. Because its goal is not to defeat global flagship cards, but rather to stay below the export control red line while retaining commercial usability.\nThe most memorable sentence from this discussion is: A800 and H800 are more like \u0026ldquo;reducing interconnectivity,\u0026rdquo; while H20 involves \u0026ldquo;continued restrictions even on computing capability.\u0026rdquo;\nTherefore, if someone only looks at the memory specification and draws the conclusion that \u0026ldquo;H20 is newer than H800, so it must be stronger,\u0026rdquo; this judgment is flawed. While H20\u0026rsquo;s 96GB HBM3 and 4.0 TB/s bandwidth look impressive, its very existence is predicated on meeting stricter export limitations. Its commercial goal is first to be sellable, and only secondly to maximize usability.\nWhat are the upgrades compared to the previous generation? First, let\u0026rsquo;s talk about computation methods:\n\\[ \\text{Upgrade Rate}=\\frac{\\text{New Indicator}-\\text{Previous Indicator}}{\\text{Previous Indicator}} \\]However, this formula is only suitable for metrics with consistent definitions. VRAM, memory bandwidth, and NVLink bandwidth can be calculated directly; however, platform-level inference cost and whole machine throughput cannot be forced back into the single-card TFLOPS metric framework.\nGlobal Key Themes Generation Biggest Change Quantifiable Upgrade Magnitude A100 80GB -\u0026gt; H100 SXM Tensor Core and memory bandwidth rise together Memory capacity 0%; memory bandwidth from 2.039 to 3.35 TB/s, approx +64.3%; NVLink from 600 to 900 GB/s, approx +50%; BF16/FP16 from 312 to 1,979 TFLOPS, approx +534.3% [2][3] H100 SXM -\u0026gt; H200 SXM Focus shifted to \u0026ldquo;larger and faster memory\u0026rdquo; Memory from 80GB to 141GB, approx +76.3%; memory bandwidth from 3.35 to 4.8 TB/s, approx +43.3%; NVLink remains basically the same; BF16/FP8 peak metrics remain basically unchanged [3][6] H200 SXM -\u0026gt; B200 SXM Platform leap from Hopper to Blackwell Memory from 141GB to 180GB, approx +27.7%; memory bandwidth from 4.8 to up to 8 TB/s, approx +66.7%; But the biggest change is FP4, 1.8 TB/s NVLink, and entire system and rack-scale inference efficiency [8][9] B200 SXM -\u0026gt; B300 SXM Blackwell Ultra pushes large memory and reasoning further forward Memory from 180GB to 288GB, approx +60.0%; publicly reported memory bandwidth remains up to 8 TB/s; DGX B300 dense FP4 is 1.5 times better than DGX B200, with attention improving by 2x [10][11] Upon reading through, a pattern emerges:\nH100 is the generation that aggressively boosted single-card tensor computing power. H200 is the generation focused on supplementing VRAM capacity. B200 is the generation that transformed \u0026ldquo;training cards\u0026rdquo; into \u0026ldquo;AI factory infrastructure.\u0026rdquo; B300 is the generation that more clearly pushes Blackwell towards reasoning and large-scale inference. China Exclusive Line Generational Gap At first glance seems like an upgrade, but actually needs to be viewed separately My judgment A800 -\u0026gt; H800 If only looking at local HBM bandwidth, from the A100 generation to the H100 generation, this can roughly be understood as a +64% generational advancement. But the core constraint is still interconnection, not single-card local memory. H800 -\u0026gt; H20 Memory increased from 80GB to 96GB, approx. +20%; if based on common public parameters, bandwidth increased from 3.35 to 4.0 TB/s, approx. +19.4%. This is not a pure upgrade. H20 is a compromise product due to greater compliance pressure and cannot simply be treated as an \u0026ldquo;H800 Plus.\u0026rdquo; This also explains why the China special supply line is not suitable to frame as \u0026ldquo;how much every generation comprehensively improves.\u0026rdquo; This specific product line inherently carries compliance constraints; its design objective is not technical optimization, but commercial feasibility within regulatory constraints.\nHow Much Has the Price Actually Increased? This section is most susceptible to inaccuracies/fabrication. Because NVIDIA rarely publicly discloses the single-card MSRP for data center GPUs, what is more commonly available in the public domain is:\nDGX complete system price or third-party listed price for the entire system. Channel quotes for China-special edition cards/GPUs. Media, securities firm, or supply chain news. Therefore, here I only provide \u0026ldquo;publicly traceable price samples,\u0026rdquo; rather than fabricating an official price list that looks complete but is actually inconsistent in its scope/criteria.\nObject Public Price Sample Interpretation compared to previous generation DGX H100 Official starting price of $199,000 at release on 2022-03-22 [4] This is the cleanest official anchor point. DGX H100 Market listing So, concerning \u0026ldquo;how much the overall selling price increased,\u0026rdquo; I offer two conclusions:\nFirst, the global flagship line has indeed risen significantly. Based on publicly comparable samples, the DGX B200 is roughly 40% to 50% more expensive compared to the DGX H100 listed during the same period. [19]\nSecond, China\u0026rsquo;s special allocation lines are not characterized by continuous price increases; rather, there might be a situation where \u0026ldquo;later released cards are cheaper.\u0026rdquo; The open quote price for the H20 eight-card server is approximately 30% lower than the H800 eight-card server. The reason is not ethical consideration (or conscience), but that the performance capability has been further compressed. [17]\nFinal Wrap-up If I had to summarize the shifts in NVIDIA data center GPUs following the release of ChatGPT into a single sentence, my take is that:\nThe H100 was the catalyst for the generative AI boom; the H200 is a memory-oriented refresh, but the B200 is the true generational leap for the AI factory era, while the B300 clearly paves the way for the reasoning era. The China-specific lineup operates on an entirely different logic. It is not chasing flagships, but rather focusing on maintaining usability within regulatory gaps.\nDo not view these two criteria together/conflate them. If you mix them, it is easy to draw conclusions such as \u0026ldquo;the new card has larger VRAM, therefore its generation is stronger,\u0026rdquo; or \u0026ldquo;the price is lower, therefore the cost-performance ratio is higher.\u0026rdquo; These are conclusions that seem superficially plausible but are based on incorrect premises.\nReferences Author\u0026rsquo;s Notes Original Prompt Compile a summary of NVIDIA GPU models and their corresponding performance parameters released since the launch of ChatGPT, detailing how much each generation upgraded from the previous one and the overall price increase. I specifically need data center GPUs, including special versions for China.\nSummary of Writing Ideas Fix the actual release date of ChatGPT to November 30, 2022, to avoid misalignment of timelines from the start. Separate Nvidia data center GPUs into \u0026ldquo;Global Flagship Mainline\u0026rdquo; and \u0026ldquo;China Customized Line,\u0026rdquo; and do not force these two lines into a single generational upgrade history. Percentage upgrades should only be calculated for directly comparable metrics, primarily VRAM, memory bandwidth, and interconnects. For pricing, do not fabricate MSRP for individual cards; instead, only adopt official starting prices, complete system list prices, and Reuters channel quotes. L4, L40S, and L2 are not expanded upon because they tend to mix the training mainline with the general inference/graphics line. Brainstorming Expansion Area Inclusion Status in Main Text Rationale A100 as baseline Included The user asks for \u0026ldquo;previous generation vs. previous,\u0026rdquo; and without A100, it\u0026rsquo;s impossible to calculate the upgrade magnitude of H100. L4, L40, L40S, L2 Rejected Belongs to data center products, but is more oriented towards video/graphics and general inference, inconsistent with the main training price scope. GB200, GB300 full system architecture Partially Included Used to explain why Blackwell starts emphasizing platform-level performance rather ","date":"2026-05-15","language":"en","permalink":"https://ttf248.life/en/p/nvidia-data-center-gpu-since-chatgpt/","tags":["AI Inspiration Hub","ai","NVIDIA","Data Center GPU","China Exclusive Edition"],"title":"How do NVIDIA data center GPUs iterate after the release of ChatGPT?","year":"2026"},{"categories":["The Seven Seconds of a Fish"],"content":"This meeting is neither about the sudden “thaw” of Sino-US relations, nor is it about one side completely overpowering the other. Rather, it appears to be a mandatory recalibration conducted under heightened pressure.\nIf you only look at the surface, you see welcome ceremonies, state banquets, the Temple of Heaven, and corporate delegations—it is very spectacular. But if you lay out the timeline, what this meeting truly needs to address are four tougher matters: how to maintain the trade and economic ceasefire left over from the Busan talks last October; how to manage the risks concerning Taiwan; how to mitigate losses stemming from the spillovers of the Iran conflict; and whether, under their respective domestic political pressures, both sides can first stabilize relations and avoid continued decline.\nIn other words, this Beijing meeting first and foremost aimed at \u0026ldquo;preventing a loss of control,\u0026rdquo; with \u0026ldquo;making deals\u0026rdquo; being secondary.\nTo clarify the scope: This article compiles information based on what has been publicly released up to May 14, 2026 morning. Since this visit is still ongoing, the content covers the background details, already announced itineraries, and external expectations, rather than presenting unhappened results as established facts.\nLet\u0026rsquo;s first clarify this meeting. This meeting corresponded to a state visit to China by US President Donald Trump from May 13 to May 15, 2026. According to the Ministry of Foreign Affairs of China\u0026rsquo;s statement, this was \u0026ldquo;the first US presidential visit to China in nearly nine years,\u0026rdquo; and it was also Trump’s second visit as president since November 2017.\nAccording to public information, this visit has at least three layers:\nLevel Key Discussions Implication Head of State Level Xi Jinping and Trump meeting face-to-face in Beijing. High-level guidance sets the tone; priority is preventing bilateral relations from continuing to drift. Economic/Trade Level He Lifeng and Besant holding pre-consultations in Korea. Indicates that the discussions concern not merely protocol, but specific transactions and exchange terms. External/Global Level International attention highly focused on Iran, Taiwan, technology restrictions, agricultural products, and Boeing orders. The importance of the meeting has long exceeded bilateral issues, carrying global market and geopolitical spillover effects. So, this isn\u0026rsquo;t just an ordinary courtesy visit. It\u0026rsquo;s a high-level meeting dealing with specific, weighty agenda items, while still needing to maintain a dignified atmosphere.\nThe whole story was not actually sudden If you only look at Trump arriving in Beijing on May 13th, it might seem like this meeting came very quickly. In reality, several rounds of groundwork had already been laid beforehand.\nFirst Paragraph Setup: The Busan meeting in October 2025 needs to slow things down. The Chinese Ministry of Foreign Affairs and the Ministry of Commerce both repeatedly mentioned one phrase: \u0026ldquo;Busan Talks\u0026rdquo;.\nThis is very crucial. This is because many of Beijing\u0026rsquo;s public statements this time treat \u0026ldquo;implementing the important consensus from the Busan meeting and past talks\u0026rdquo; as a prerequisite. Foreign media also mentioned that after the Busan meeting in October last year, both sides had established a round of economic and trade ceasefire arrangements: the US suspended the three-digit level tariff escalation on Chinese goods, while China did not restrict its rare earth supply to a more severe extent.\nMy judgment is that the Busan talks did not solve the problem, but rather deferred the most dangerous escalation button for now. This meeting in Beijing was fundamentally about confirming whether this temporary ceasefire mechanism could be sustained.\nPreamble for the Second Section: Leaders\u0026rsquo; Call on February 4, 2026, putting this year\u0026rsquo;s agenda forward first On February 4, 2026, Xi Jinping had a phone call with Trump. There are two noteworthy points in the official Chinese statement.\nFirst, it explicitly mentions that communication between both sides was smooth last year, and the Busan meeting \u0026ldquo;pointed the direction and course for US-China relations.\u0026rdquo; This demonstrates that Beijing\u0026rsquo;s narrative is consistent: emphasizing the leadership guiding the way first, rather than focusing on specific transactions first.\nSecondly, the call directly highlighted each side\u0026rsquo;s important agendas in 2026, including China initiating the \u0026ldquo;15th Five-Year Plan,\u0026rdquo; China hosting APEC, and the US hosting the G20. The subtext of this statement is clear: neither country can afford to push the relationship towards an uncontrollable state this year.\nThird Section Preparation: The ROK Economic and Trade Consultation on May 12-13 Provides Background for the Beijing Talks What genuinely shows is that this meeting is not only for symbolic discussion, but also serves as pre-meeting consultations held in Korea.\nOn May 10th, China\u0026rsquo;s Ministry of Commerce announced that He Lifeng would travel to South Korea on May 12th–13th to hold economic and trade consultations with the U.S. side, explicitly stating that this was \u0026ldquo;guided by the important consensus reached during the summit meeting and previous calls between the two heads of state.\u0026rdquo; By May 13th, Xinhua News Agency provided another very standard but information-rich summary: the two sides conducted \u0026ldquo;candid, in-depth, and constructive exchanges.\u0026rdquo;\nSuch wording typically indicates that while negotiations have not reached an impasse, they haven\u0026rsquo;t achieved enough major breakthroughs to be announced prematurely. It is more like preemptively clearing away the technical hurdles that need to be addressed before a high-level summit.\nContextual Background: The very timing of the visit to China itself also suggests that the situation is more pressing than what appears on the surface Foreign media disclosed that this visit to China was originally supposed to take place earlier, but was subsequently postponed until May 14–15 due to the conflict in Iran. In other words, this Beijing meeting was not held in a stable international environment, but rather was rescheduled after compounding factors such as Middle East war tensions, global oil shipping risks, US domestic inflation, and election pressures.\nThis point is important. It explains why the issue of Iran was listed alongside China-US economic and trade issues, and the Taiwan issue, as public topics in this meeting.\nTo What Extent Has the Itinerary Been Disclosed? As of the morning of May 14, 2026, the publicly available itinerary can generally be summarized as follows:\nDate Publicly Announced Schedule Source of Information Evening, May 13 Trump arrives in Beijing; Han Zheng picks him up at the airport Xinhua News Agency Morning, May 14 Xi Jinping holds a welcome ceremony outside the East Gate of the Great Hall of the People Xinhua Quick News Daytime, May 14 Consultations between both sides at the Great Hall of the People Reuters citing White House itinerary Daytime, May 14 Joint visit to the Temple of Heaven Reuters, AP Evening, May 14 State Banquet Reuters, AP May 15 Tea gathering and working lunch, followed by Trump\u0026rsquo;s departure from Beijing Reported by Reuters and AP, citing the White House There are two details here that are worth noting.\nFirstly, the Temple of Heaven was not a randomly selected attraction. Foreign media mentioned that the Temple of Heaven corresponds to ancient Chinese imperial ceremonies for praying for good harvest, and it carries very strong symbolic meaning. For Beijing, this arrangement is both diplomatic and narrative design.\nSecondly, scheduling an informal tea gathering and a working lunch on May 15th suggests that this meeting was not simply \u0026ldquo;a quick meet-and-greet for photos before going their separate ways,\u0026rdquo; but rather provided both sides with dedicated time to refine the details.\nDomestic View: First Steady, Then Discuss Differences, But the Red Line Will Not Loosen The general consensus in China isn\u0026rsquo;t really complicated.\nThe two core phrases from the official narrative are \u0026ldquo;stability\u0026rdquo; and \u0026ldquo;certainty.\u0026rdquo; Both the Ministry of Foreign Affairs press conference on May 11 and Xinhua News Agency\u0026rsquo;s commentary on May 12 emphasized the strategic guiding role of head-of-state diplomacy in US-China relations, stressing that amidst global instability, China and the US need to provide more stable expectations for the world.\nBut this is not merely unilateral goodwill. Domestic statements also carry another very hard line: cooperation can be discussed, but principles cannot be traded away. The Taiwan issue, in particular, is explicitly placed in the position of the \u0026ldquo;most important issue\u0026rdquo; regarding China-US relations. Xinhua News Agency\u0026rsquo;s commentary even re-establishes the One China principle and the three Sino-US joint communiqués as foundational political bases. The meaning is clear: discussing cooperation is acceptable, but do not expect Beijing to be ambiguous regarding its core interests.\nIf we push domestic public opinion a bit deeper into the social sphere, the emotions are also quite realistic. Beijing respondents interviewed by Reuters were skeptical about Trump\u0026rsquo;s genuine intentions while simultaneously hoping for \u0026ldquo;some good policies to emerge.\u0026rdquo; This type of reaction is very typical; it is not passionate optimism, but rather a desire for things to stabilize and avoid further disruption.\nMy understanding is that most domestic perspectives viewed this meeting not as the starting point for a comprehensive improvement of China-US relations, but rather as a necessary damage control or de-risking action. Simply maintaining stability is already considered effective; securing some practical progress at the economic and trade level would be an added bonus.\nInternational View: The spectacle will be large, the breakthroughs minor, but both sides cannot afford to miss this meeting International viewpoints are somewhat more divided, but the main thread is also very clear.\nViewpoint A: Strong emphasis on ritual and form, but limited substantial breakthroughs AP\u0026rsquo;s judgment is quite direct: this meeting will likely be \u0026ldquo;highly visible,\u0026rdquo; but there probably won\u0026rsquo;t be any decisive breakthroughs on hard issues such as trade, Taiwan, or Iran.\nThis isn\u0026rsquo;t difficult to understand. Because what can be discussed right now mostly involves managing risks, extending ceasefires, and exchanging limited interests; for truly difficult structural conflicts, such as high-tech restrictions, Taiwan arms sales, and supply chain security, no party has backed down enough to easily sign a major deal.\nAnother View: Trump Needs This Meeting More Than He Did in 2017 Riot\u0026rsquo;s analysis is sharper. Its judgment is that the balance of power this time is different from 2017. Back then, China appeased Trump with high-spec reception and purchases; this time, it seems more like the US actively admitting that China, as an opponent and trading partner, cannot be avoided.\nThe reasons behind this change are also not hard to see:\nTrump needs economic and trade achievements, especially areas like agriculture, Boeing, and energy—things that can quickly translate into political victories. The Iran conflict has hurt his approval ratings while also fueling U.S. domestic inflation and increasing pressure ahead of the midterms. Many members of the American business community are part of this delegation, but their demands are very specific. They aren\u0026rsquo;t there to hear grand rhetoric; they are there to secure market access, regulatory approvals, supply chain recovery, and easing regulations. In other words, the White House\u0026rsquo;s visit to Beijing this time is not just for strategic posturing, but also for seeking practical gains.\nAnother layer of colder calculation: neither side wants to lose control This is the one I agree with more.\nThe issue between China and the U.S. is not that they lack contradictions, but rather that they have too many. This makes it essential to maintain top-level communication. Because once talks between heads of state break down, several issues—such as economy/trade, Taiwan, technology, and regional security—could cascade into one another, eventually becoming unmanageable for anyone.\nTherefore, what is truly important about this meeting is not necessarily how many deals are signed, but whether both sides have the capacity to manage conflict zones and set aside/isolate issues that cannot be resolved immediately.\nWhat exactly prompted this meeting? If I had to summarize it in one sentence, I would say: It was common pressure, not mutual affection, that led to this meeting.\nMore specifically, it is four forces acting simultaneously.\n1. The ceasefire following Busan requires extension After the Busan meeting in October last year, the two sides at least temporarily prevented their economic and trade ties from spiraling out of control. This temporary balance was inherently fragile, and without continued talks, it could deteriorate again. The Beijing meeting first and foremost maintained this truce/stability.\n2. Both Parties Have Specific Transactions to Discuss What the US wants to talk about is very practical: agricultural products, Boeing, energy exports, market access for US companies in China, and regulatory issues encountered by chip and AI companies.\nWhat the Chinese side wishes to discuss equally involves whether restrictions on chip equipment and advanced semiconductors can be eased, if the pace of technology containment can slow down, and whether economic and trade cooperation can return to a more predictable track.\nThis is not a conversation about values; it\u0026rsquo;s an exchange of terms (or: it\u0026rsquo;s conditional bargaining).\n3. The Iran War Puts the US and China on the Same Table Again The Iranian issue was not a peripheral topic to Sino-US relations; it almost became an external forcing variable during these talks. The US hopes that China can utilize its influence in energy and regional affairs to help de-escalate the situation. Meanwhile, China is unwilling for global energy and shipping risks to continue spiraling out of control, further impacting foreign trade and the global economy.\nBoth sides hold differing positions, but neither wants to see the situation continue to deteriorate. This is enough motivation for a meeting.\n4. Both sides both require a relatively stable 2026 China is preparing to launch the \u0026ldquo;15th Five-Year Plan\u0026rdquo; and will also be hosting APEC. The US has an independent 250th anniversary narrative, alongside pressures from the G20 and mid-term elections. Neither side lacks strong statements, but both desperately need a predictable external environment.\nTherefore, the true significance of this meeting does not lie in who convinces whom, but rather in both sides realizing that further delay would entail higher costs.\nMy Judgement This Beijing summit is unlikely to usher in a \u0026ldquo;new era\u0026rdquo; for Sino-US relations. What it is more likely to deliver, however, is a limited but significant outcome: having both sides reaffirm that they will continue competing, but within defined boundaries.\nThis doesn\u0026rsquo;t sound romantic, but it is very realistic in the current Sino-US relationship.\nIf there are any actual results later, the most likely things to be implemented first will not be grand narratives, but rather several types of pragmatic actions: continuing to maintain a ceasefire in economic and trade relations; releasing small signals regarding purchases or approvals, giving the business community some progress they can report externally; while also leaving some room for maneuver concerning the issues surrounding Iran and Taiwan before completely closing off all options.\nRegarding deeper competition—especially concerning high technology, global value chains, and security issues—these matters will not simply vanish after this meeting. They are merely being placed into a more manageable rhythm for the time being.\nHow should I put it, this meeting is not about proving mutual trust between China and the U.S., but rather about demonstrating whether both sides still have the capacity to continue engaging despite deep mistrust.\nThis is its true weight.\nReferences Ministry of Foreign Affairs of the People\u0026rsquo;s Republic of China: President Xi Jinping Speaks with U.S. President Donald J. Trump on the Phone (2026-02-04) Ministry of Foreign Affairs of the People\u0026rsquo;s Republic of China: Foreign Ministry Spokesperson Guo Jiakun’s Regular Press Conference on May 11, 2026 Ministry of Commerce of the People\u0026rsquo;s Republic of China: MOFCOM Spokesperson Responds to Reporters on Issues Related to China-US Economic and Trade Consultations (2026-05-10) [Xinhua Net: China and the U.S. Hold Economic and Trade Consultations in South Korea (2 Writing Notes Original Prompt The recent summit between China and the U.S.: Compile the background details and itinerary of the related events. Discuss how both domestic and international parties view this meeting, and analyze the main factors that led to it.\nSummary of Writing Approach Brainstorming Expansion Direction Inclusion in Main Text Reason Comparing differences in protocol specifications from Trump ","date":"2026-05-14","language":"en","permalink":"https://ttf248.life/en/p/trump-second-china-visit-2026/","tags":["Sino-US Relations / China-US Relations","Trump","International Politics","Geopolitics","AI Inspiration Hub"],"title":"Trump Visits China Again: This China-US Leaders Meeting, First Seeking Stability, Then Discussing Transactions","year":"2026"},{"categories":["Financial Knowledge Base","Investment"],"content":"In the previous article The end point of this semiconductor cycle is probably not in 2026, I presented my conclusion first, but deliberately did not dive too deep into the specific details of the financial reports.\nWhat we are covering this time is the part that is most easily obscured by market sentiment: When semiconductors rise, everyone knows they are profitable; but what truly determines whether a cycle can be extended or which company can capitalize on high growth more thoroughly is often not the stock price, but rather the profit and loss statement, capital expenditure, and product investment direction during the trough.\nIf I must make a more specific judgment, as of May 13, 2026, I still do not pinpoint 2026 as the end of this upcycle. However, if I have to pick just one major player among the giants that is most worth watching, it would be SK hynix. Not because it hasn\u0026rsquo;t gone through a downturn—quite the opposite—but because it made the most representative strategic choices when things looked their worst in 2023.\nFirst, standardize the metrics/scope; otherwise, the table may be misleading This article only selects three companies: SK hynix، Micron، TSMC.\nThe reason is simple:\nSK hynix: The most direct beneficiary of AI memory this round, and also the data object that needs special focus in this article. Micron: The purest storage beta among US stocks, useful for comparison with SK Hynix. TSMC: It is not a memory company, but precisely because of that, it is suitable for use as a control group. To clarify, there are two approaches/perspectives to explain first:\nSK hynix, TSMC are primarily based on calendar years. Micron is based on fiscal years, with FY2025 as of August 28, 2025. Therefore, these tables are better suited for analyzing period-over-period changes within a single company, rather than being used to perform forced cross-sectional valuations across different companies.\nWith two downcycles and a bounce/rebound, memory\u0026rsquo;s reported earnings resilience is striking After reading this table, the conclusion on the first layer is actually already out:\nSemiconductors are not a cycle; at least, memory and logic foundry work are not.\nIn 2019, the global semiconductor industry was already in a downturn, but TSMC\u0026rsquo;s revenue still managed to grow against the trend, and its profit margins did not collapse. Conversely, when SK hynix and Micron encountered a storage price cycle reversal, their operating profits would decline before (or more steeply than) their revenues, and the magnitude of this decline is much greater.\nThis is also why I kept emphasizing in the previous article that US memory and Korean semiconductors cannot be viewed merely as \u0026ldquo;ordinary semiconductor stocks.\u0026rdquo; They are more aggressive during upcycles, but they are also harsher during pullbacks.\nWhat really needs to be addressed is how Hynix\u0026rsquo;s \u0026ldquo;counter-cyclical\u0026rdquo; nature actually works. If you only look at the results, SK Hynix\u0026rsquo;s financial reports for 2024 and 2025 truly seem like they are \u0026ldquo;printing money.\u0026rdquo;\nYear Revenue Operating Profit Operating Profit Margin 2023 32.766 trillion KRW -7.73 trillion KRW -23.6% 2024 66.193 trillion KRW 23.4673 trillion KRW 35.5% 2025 97.1467 trillion KRW 47.2063 trillion KRW 48.6% From 2023 to 2025, this is not a normal recovery; it is a turnaround from deep losses to an operating profit margin approaching 50%.\nBut if \u0026ldquo;counter-cyclical expansion\u0026rdquo; is phrased too roughly, it will lose the key point.\nA more accurate way to say it is:\n\\[ \\text{Hynix's Counter-Cycle} \\neq \\text{Massive Expansion Across All Lines} \\]\\[ \\text{SK Hynix's inverse cycle} = \\text{Total investment contraction} + \\text{HBM/DDR5/LPDDR5 momentum} \\]In other words, instead of heavily supporting all product lines equally in 2023, they prioritized reserving funds for the few lines expected to be most profitable in the next cycle during the worst times.\nThe difference is very big. (Alternatively: The difference is huge./There is a significant difference.)\nThe statements made in 2023 basically revealed Hynix\u0026rsquo;s strategy. I\u0026rsquo;ll organize the official narrative chronologically; that way, it will be much clearer.\nTherefore, if you remember the incident of “Hynix’s counter-cyclical capacity expansion,” that direction of memory is correct, but a qualifier must be added: it was selective counter-cyclical expansion, not comprehensive and risky overexpansion.\nThis is also why I feel it is the most accurate indicator.\nBecause what truly determines if this cycle of memory can be extended is not whether \u0026ldquo;everyone expanded production,\u0026rdquo; but rather who managed to secure critical market positions for HBM, DDR5, advanced packaging, and high-value server storage during the downturn.\nComparing it alongside Micron and TSMC makes SK Hynix\u0026rsquo;s characteristics even more obvious Micron has actually done similar things before.\nIn FY 2023, its revenue dropped from $307.58 billion to $155.40 billion, and operating profit fell from $97.02 billion to -$57.45 billion; however, by FY 2024, revenue recovered to $251.11 billion, and operating profit turned positive at $13.04 billion. In FY 2025, it surged further to $373.78 billion in revenue and $97.70 billion in operating profit, with annual capital expenditures also rising from $81.2 billion in\nWhat does this mean?\nMicron is also preparing for the next phase of AI memory demand, and capital expenditures have clearly begun to turn upwards again.\nHowever, Hynix\u0026rsquo;s characteristic remains more pronounced. This is because even when it was at the deepest trough in 2023, it continuously included HBM and DDR5 in its investment priorities multiple times. While Micron seems to be increasing investments after confirming a recovery, following demand trends; Hynix appears to have preemptively captured the next major growth trajectory even during the most challenging reporting period.\nLooking at TSMC again, it feels completely different.\nIn 2019, the global semiconductor industry was already slowing down, yet TSMC raised its capital expenditure to $14.9 billion in 2019, citing stronger demand for 7nm. By 2023, even though the industry was digesting inventory, its revenue only declined by 4.5%, and operating profit decreased by only 17.8%. In 2024, it quickly rose back to NT$2.8943 trillion in revenue and NT$1.3221 trillion in operating profit.\nThis precisely illustrates a counter-intuitive but very important fact:\nUnder the term \u0026ldquo;semiconductor giants\u0026rdquo; lie two completely different financial structures.\nThe leader in memory is more like a high-leverage cyclical asset: when prices rise smoothly, profits explode; but when prices reverse, profits decline sharply. The leader in logic / foundry is more like an industry platform with a moat. While it is also cyclical, unlike memory, it is not as easily overthrown by ASP. So, if you want to focus on \u0026ldquo;companies best positioned to amplify cyclical upturns\u0026rdquo; this round, Hynix and Micron are certainly more sensitive than TSMC.\nBut if you want to monitor \u0026ldquo;when risk shifts from selective capacity expansion to industry-wide capacity expansion,\u0026rdquo; then TSMC\u0026rsquo;s massive capital expenditures, advanced packaging, and customer structure are instead another type of forward indicator.\nThese financial figures perfectly complete the analysis from the previous section In my previous article, I said that this semiconductor cycle is unlikely to end by 2026. (or: \u0026hellip;is highly unlikely to collapse before 2026.)\nAfter supplementing the financial data in this document/report, the logic becomes much more coherent/complete.\nFirst, the trough in 2023 was too deep.\nBoth SK hynix and Micron have experienced significant dips in their profitability/profit statements. The deeper this trough, once prices and product structures rebound, profit recovery is more likely to appear \u0026ldquo;jump-like\u0026rdquo; rather than \u0026ldquo;linear.\u0026rdquo;\nSecondly, companies like SK Hynix have proven that establishing a strong market cycle was not something they began preparing in 2024, but rather positioning themselves since the toughest period of 2023.\nThis means that the high profits projected for 2026 are not merely residual from inventory rebuilding; rather, they represent the realization phase of the preceding round of selective counter-cyclical investments. As long as this realization period continues, the overall cycle is unlikely to end quickly.\nThird, what is truly dangerous now is not Hynix securing the HBM line in 2023, but whether more and more companies will convert this selective investment into large-scale investment between 2025 and 2026.\nOnce the market shifts from focusing only on \u0026ldquo;high-end memory expansion\u0026rdquo; to general upward expansion by everyone, then the dangerous window I mentioned in my previous article will draw ever closer.\nIf we are going to follow up, I will only focus on these few matters Metric Current Implication What it suggests if things start to sour/change SK hynix / Micron\u0026rsquo;s capex guidance Still boosting investment in AI memory, indicating the boom cycle is not over. If capex expansion also targets standard DRAM / NAND, the seeds of oversupply risk begin to sow. Share of HBM in DRAM revenue High-value-added products are still driving up the profit It is said that many people monitor the semiconductor cycle, developing the habit of looking at stock prices first, then checking the news, and only finally reviewing the financial reports.\nHowever, if you truly want to pinpoint the time window this time, it is best to reverse the order.\nFirst, look at how profits and product structures have changed according to the financial report; then look at where capex is being invested; finally, only then check whether the stock price has fully factored in/priced in two or three years of good growth.\nSK hynix deserves to be singled out not because it is immune to cyclical downturns, but because during the most challenging memory market cycle of 2023, it provided a very standard answer:\nWe can scale back overall investments, but we cannot stop pursuing the few lines/trends that will generate the most profit in the next round.\nThis sentence might be more useful than many grand narratives of \u0026ldquo;semiconductor boom continuation.\u0026rdquo;\nReferences SK hynix Inc. Reports Fiscal Year 2018 and Fourth Quarter Results SK hynix Inc. Reports Fiscal Year 2019 and Fourth Quarter Results SK hynix Reports 2022 and Fourth Quarter Financial Results SK hynix Reports First Quarter 2023 Financial Results SK hynix Reports Second Quarter 2023 Financial Results SK hynix Reports Third Quarter 2023 Financial Results SK hynix Reports Fourth Quarter 2023 Financial Results Fact Sheet - SK hynix SK hynix Announces 4Q24 Financial Results SK hynix Announces FY25 Financial Results Micron Technology, Inc., Reports Results for the Fourth Quarter and Full Year of Fiscal 2018 Micron Technology, Inc. Reports Results for the Fourth Quarter and Full Year of Fiscal 2019 Micron Technology, Inc. Reports Results for the Fourth Quarter and Full Year of Fiscal 2022 Micron Technology, Inc. Reports Results for the Fourth Quarter and Full Year of Fiscal 2023 Micron Technology, Inc. Reports Results for the Fourth Quarter and Full Year of Fiscal 2024 [Micron Technology, Inc. Reports Results for the Fourth Quarter and Full Year of Fiscal 2025](https://invest Writing Notes Original Prompts The previous articles suggested that the conclusion of this semiconductor cycle is unlikely to be in 2026. Since detailed financial data is lacking, I will write a new article supplementing the financial records of several major semiconductor players across multiple cycles. Specifically, Hynix—I recall news reports about Hynix expanding capacity during counter-cycles.\nWriting Approach Summary This piece does not repeat the cycle conclusions from the previous article; it only supplements details on financial reports, profit margins, and capital expenditure. The main text intentionally places memory and logic/foundry side-by-side, but the focus is on observing changes within a single company across different cycles, rather than making forced comparisons. Hynix\u0026rsquo;s \u0026ldquo;counter-cycle\u0026rdquo; status has been refined into more accurate descriptions: total investment shrinks, but HBM and DDR5 development remains continuous. This article intentionally avoids dedicating a large section solely to Samsung, as that would pull the focus away from \u0026ldquo;why Hynix acts like a barometric indicator\u0026rdquo; back to broader comparisons of Korean semiconductor companies. Spot price curves and equipment chains are also worth discussing, but we will omit them in this piece to prevent the single article from becoming too scattered. Expanded Brainstorming Direction Inclusion Status in Main Body Reason Samsung single-column years financial data No Worth adding, but will stretch the scope into a comparison of two Korean giants, weakening the focus on Hynix. Spot price, contract price, inventory days curve No Helpful for judgment, but requires more precise criteria and continuous updates; easy to lose focus in a single article. Why TSMC survived 2019 Partially Included Needs a control group to prove that \u0026ldquo;semiconductor leader\u0026rdquo; does not have the same financial flexibility. Whether Micron\u0026rsquo;s revised upward estimate of capex will be a trap Partially Included This is an extension line from the previous article\u0026rsquo;s judgment, and viewing it with Hynix has more comparative value. Expansion of local Chinese storage and mature processes No Important for the supply side, but if expanded in this article, the main focus will shift from Hynix to a full industry supply map. ","date":"2026-05-13","language":"en","permalink":"https://ttf248.life/en/p/sk-hynix-financials-across-semiconductor-cycles/","tags":["AI Inspiration Hub","Semiconductor","Storage","Financial Statements","Korean Stock Market","ai"],"title":"Relying solely on stock prices to gauge the semiconductor cycle is insufficient; SK Hynix's earnings report serves as a better barometer.","year":"2026"},{"categories":["Financial Knowledge Base","Investment"],"content":"My previous article covered the semiconductor cycle, and I feel like there\u0026rsquo;s a piece of background/context missing.\nYour judgment/conclusion regarding this point—the overall direction is correct. Furthermore, I believe it is a prerequisite that is easiest to overlook when trying to understand this current semiconductor boom.\nA more accurate way to put it is not that \u0026ldquo;all internet giants are fighting in the same field,\u0026rdquo; but rather: Large Models have, for the first time, brought together major players previously scattered across different domains—such as search, advertising, social media, e-commerce, office productivity, cloud computing, and content distribution—into direct competition within the same technical stack.\nThis technology stack includes models, computational power, inference, cloud, Agents, distribution gateways, and commercialization closed loops. Everyone\u0026rsquo;s original \u0026ldquo;moat\u0026rdquo; is different, but now we must all fill the same gap. Those who fail to do so will see their future search entry points, ad pricing, office suites, e-commerce conversion, and social traffic distribution rewritten by others.\nWhy is your viewpoint basically valid Previous internet competition was more like everyone staying within their own established territories (or: was more siloed).\nGoogle / Baidu primarily focus on search. Meta / Tencent primarily focus on social networking and traffic distribution. Amazon / Alibaba primarily focus on e-commerce and merchant ecosystems. Microsoft focuses on office software and enterprise software. Although AWS, Azure, and Google Cloud are involved in the fight, that is more of a battle over cloud infrastructure and enterprise IT. It\u0026rsquo;s different now.\nLarge models are not a single function; they are more like an \u0026ldquo;master switch\u0026rdquo; that will reverse-engineer/supersede all entry points. Search can be rewritten, ad placements can be rewritten, customer service can be rewritten, code generation can be rewritten, e-commerce recommendation can be rewritten, and enterprise knowledge bases can also be rewritten.\nTherefore, although these giants are still making money in their respective established domains on the surface, fundamentally they are all competing for the same thing:\n\\[ \\text{AI Competitiveness}=\\text{Model Capability}+\\text{Computational Resource Supply}+\\text{Distribution Channels}+\\text{Commercialization Closed Loop} \\]The difference merely lies in who is superior in which aspect.\nMicrosoft is strong in enterprise distribution and Azure.\nAlphabet is strong in search, advertising, and proprietary model stacks.\nAmazon is strong in AWS, chips, and enterprise cloud customers.\nMeta is strong in traffic entry points and advertising scenarios.\nTencent is strong in super apps, gaming, and advertising implementation.\nAli is strong in e-commerce, cloud, and industrial clients.\nBaidu is strong in search, AI Cloud, and ERNIE.\nSo your judgment is correct, but we need to add one caveat: Everyone is fighting on the same large battlefield, not using the same set of weapons or competing for the same group of users.\nThis is also why semiconductors are linked/grouped together The previous text discussed storage and South Korean semiconductors; at that time, I focused on specific product categories like HBM, DDR5, and eSSD.\nHowever, looking at a higher level, what truly fueled all these developments was the way the capital expenditure of internet giants began to concentrate in one direction.\nIt’s not that Google needs to buy a little more server capacity this year, but Meta might follow suit next year.\nInstead, during the 2025 to 2026 phase, Microsoft, Google, Amazon, Meta, Alibaba, Tencent, and Baidu are almost all focusing on AI infrastructure, model training, inference services, Agent platforms, and AI distribution entry points. While their specific terminology varies, money is pouring into areas like GPUs, HBM, networking, SSDs, data centers, and power.\nThis is uncommon in internet history.\nIn the mobile internet era, many companies are involved, but not every single one needs to build its own operating system.\nThe short video era is booming, but not every company needs to build and train its own foundational recommendation model infrastructure.\nThe era of cloud computing has been long, but traffic platforms and gaming companies like Meta and Tencent have not all shifted their focus to the cloud.\nLarge models are something that almost every platform giant believes cannot be missed this time. This is what makes this semiconductor cycle different from previous ones.\nWhat Is the Core Area of Competition Among All Players Right Now? Let\u0026rsquo;s first clarify the definitions/scope. (Alternative options depending on context:)\nWe need to establish the parameters first. (If discussing data or technical metrics) Let\u0026rsquo;s get aligned on the basis first. (If referring to an agreement or overall strategy) For the table below, revenue and net profit should use the official disclosures based on each company\u0026rsquo;s latest completed fiscal year as of May 12, 2026. However, regarding the \u0026ldquo;AI Investment\u0026rdquo; column, disclosure methods vary greatly among companies; some report Capex, others provide a three-year investment plan, some report R\u0026amp;D figures, and some only provide quarterly expenditures.\nSo this column can only be used to view the strength and weakness direction, not for mechanical ranking.\nCompany Existing Cash Cow / Core Business Current AI Leverage Points Latest Full Fiscal Year Revenue Latest Full Fiscal Year Net Income Most Recently Disclosed AI Investment Scope Microsoft Office, Windows, Enterprise Software, Azure Azure + OpenAI Ecosystem + Copilot + Enterprise Agent FY2025 Revenue $281.7 Billion FY2025 Net Income $101.8 Billion Approx. $80.1 Billion in CapEx for the first 9 months of FY2026; AI business annualized revenue reached $37 Billion in Q3 2026 Alphabet Search, Ads, YouTube, Android, Cloud Gemini + Search AI + TPU + Google Cloud FY2025 Revenue $403.0 Billion Total GAAP Net Income for four quarters of 2025 was approx. $132.2 Billion FY2025 CapEx $91.4 Billion; FY2026 guidance $175B–$185B Amazon E-commerce, AWS, Advertising Bedrock + Trainium/Inferentia + AWS AI infra + Nova FY2025 Revenue $716.9 Billion FY2025 Net Income $77.7 Billion Approx. $147.3 Billion in CapEx over the last 12 months as of March 2026; Over 2.1 million AI chips delivered in the past 12 months Meta Facebook / Instagram / WhatsApp Advertising Llama + Ad Recommendation + Meta AI + Smart Glasses / Agent FY2025 Revenue $200.97 Billion FY2025 Net Income $60.46 Billion FY2025 CapEx $72.2 Billion; FY2026 guidance $125B–$145B Tencent Gaming, Social, Advertising, Fintech Hunyuan + WeChat / The most notable thing about this table is not who makes the highest profit, but rather who possesses enough robust \u0026ldquo;cash cow\u0026rdquo; resources to withstand the upfront investment period required for AI.\nMicrosoft, Alphabet, Amazon, and Meta—these four companies are all essentially printing money while expanding production.\nTencent and Alibaba are similar; their old businesses are still providing blood, so they can ramp up their AI investments.\nBaidu\u0026rsquo;s problem is more apparent: they bet early, but their scale and cash flow depth are weaker than the previous few companies, making them naturally less resilient under pressure.\nAlthough all are involved in the AI craze, each company\u0026rsquo;s approach is actually different Upon closer examination, it can be seen that although these companies are all engaged in intense competition, their strategic positioning is different.\nCategory 1: Selling the Shovels While Also Entering the Field Microsoft, Alphabet, and Amazon belong to this category.\nThey have cloud, chips or accelerators, enterprise customers, and models or model ecosystems.\nWhat is most frightening about these companies is that, for them, AI isn\u0026rsquo;t a standalone product, but rather an upgrade tax on the entire platform.\nYou want to train a model, so you need to buy cloud services.\nYou need to infer, you need to rent a GPU.\nYou will need to become/develop an Agent, and you will need to purchase platform services.\nYou need to provide employees with AI tools, which requires purchasing related capabilities for Copilot, Gemini, and Bedrock.\nSo, they don\u0026rsquo;t just want to create a blockbuster AI App; they aim to integrate AI into every part of the entire IT budget (or: IT expenditure).\nType Two: The Traffic King – Optimize Your Distribution Channels First Meta, Tencent, and Baidu are closer to this category.\nWhat they value most are not enterprise contracts, but rather traffic funnels/entry points, advertising systems, content ecosystems, and high-frequency user time spent.\nMeta is the most typical example. It doesn\u0026rsquo;t need to sell AI to all enterprise clients; merely by applying AI in ad targeting, content recommendation, creative generation, and conversational entry points, it is enough to enhance advertising efficiency and commercialization capabilities.\nTencent is similarly positioned. Areas like WeChat, advertising, gaming, and cloud are inherently natural use cases for embedding AI. While it doesn\u0026rsquo;t necessarily have to compete with Microsoft by tackling the entire Office suite, it will certainly focus on dominating AI assistants within WeChat, improving ad placement efficiency, enhancing game content production, and deepening collaboration in enterprise WeChat.\nBaidu, on the other hand, is more like a traditional search company striving to make a turnaround. It has models, cloud capabilities, and search, but it also faces the greatest pressure from its old advertising business. Therefore, it needs to both maintain its traditional traffic base while simultaneously boosting AI commercialization.\nCategory Three: Ecological King, Aiming to Transform AI into Trading and Industrial Infrastructure Alibaba is the most typical example among this category.\nIts ambition is not merely to create Qwen, nor is it simply about divesting Alibaba Cloud. What it truly seeks is to integrate AI throughout the entire ecosystem of e-commerce, merchant tools, customer service, marketing, supply chain, and industrial cloud.\nSo Alibaba has repeatedly emphasized \u0026ldquo;AI + Cloud\u0026rdquo; in recent years. These four words are not just a slogan because it realized earlier than many companies that: the model itself might not be the most profitable, but the model will redefine cloud and transaction platforms.\nWhy Has This Conflict Concentrated Semiconductor Demand So Heavily Seeing this, we can actually get back to semiconductors.\nIf only a single company is optimistic about AI, what it generates will primarily be themed investing (or thematic investments).\nIf there are seven or eight platform companies with the strongest cash flows, and simultaneously converge capex, R\u0026amp;D, models, inference, Agents, and distribution channels onto the same layer/level, then it will no longer be a theme, but actual orders (or: real demand).\nBut in reality, the final orders will turn into these things:\nGPU and customized AI chips. HBM and high-end DRAM. Enterprise-grade SSD and higher bandwidth storage. High-speed networking, switching chips, optical modules. Data centers, power, cooling. This is why when analyzing the semiconductor sector lately, you shouldn\u0026rsquo;t only focus on a single memory manufacturer or a single South Korean company.\nThe true background is: Internet giants have unusually ramped up their efforts simultaneously in the same arms race.\nConclusion As of May 12, 2026, my assessment of your point is:\nBasically correct. A more accurate statement should be: internet giants are not completely engaged in \u0026ldquo;the same product track,\u0026rdquo; but rather in an arms race over the same foundational AI capabilities. The importance of this matter is not just because AI will produce blockbuster applications, but because it is drawing originally scattered profit pools—such as search, advertising, social media, e-commerce, office work, and cloud services—back into one common underlying competitive framework. This is also one of the core backgrounds explaining why the semiconductor industry, especially the chains involving GPU, HBM, storage, and data centers, has been so intense recently. Well, how do I say it? Previously, everyone could maintain their own separate domains. That\u0026rsquo;s not feasible anymore. The matter of large models has evolved from merely a new trend into an infrastructure war that platform companies cannot afford to exit.\nReferences Notes on Writing Original Prompt The previous text mentioned high AI demand and surging semiconductor prices, but there is a background that is easy for everyone to overlook: large AI models. This is rare—it\u0026rsquo;s a field where all major internet giants have started heavily competing. Previously, they developed in their own respective domains; it is uncommon now for them all to be intensely vying within a single sector. First, can I confirm if my viewpoint is correct? Then, let\u0026rsquo;s outline the sectors each company is developing, along with their respective revenues, net profits, and investments in AI.\nWriting Idea Summary First, judge whether the point of view is valid, and then clarify \u0026ldquo;to what degree it is valid,\u0026rdquo; avoiding making sweeping statements with one sentence. In the main body, rewrite \u0026ldquo;same industry track\u0026rdquo; as \u0026ldquo;same layer of technical stack,\u0026rdquo; as this better aligns with the true positioning of various companies. In the middle, use a summary table to place cash cows, AI entry points, revenue, net profit, and AI investment metrics side-by-side, allowing readers to quickly survey the whole picture. The article intentionally writes out that \u0026ldquo;AI investment cannot be directly compared,\u0026rdquo; to avoid forcing rankings using disparate disclosure metrics. This piece deliberately does not include OpenAI, Anthropic, xAI, and ByteDance together in the table, as they are non-public or have varying disclosure methods, which could easily bias the comparison. Expanded Brainstorming Area Whether to include in the main text Reason Including Apple in the comparison? No It is certainly affected by AI, but it is not a typical sample within this ","date":"2026-05-12","language":"en","permalink":"https://ttf248.life/en/p/ai-giants-common-battleground-2026/","tags":["AI Inspiration Hub","ai","Large Model","Internet Giant","Semiconductor"],"title":"The big model development has indeed drawn the internet giants into the same competitive arena.","year":"2026"},{"categories":["Financial Knowledge Base","Investment"],"content":"Regarding this round of semiconductor trends, I temporarily do not see a peak in 2026.\nIf forced to give an initial judgment, as of May 12, 2026, I am more inclined to place the truly critical period between the second half of 2027 and the first half of 2028, rather than now. The core driver of this current uptrend—particularly in US listed storage and Korean semiconductors—is not a general recovery, but rather AI pulling HBM, DDR5, and enterprise SSD up simultaneously. If supply expansion fails, both prices and profits will rise together.\nThis also explains why companies like Micron, SK hynix, and Samsung seem to be \u0026ldquo;printing money\u0026rdquo; lately. The semiconductor cycle hasn\u0026rsquo;t vanished, but this time it is unlikely to collapse when demand first kicks in; rather, it is more likely to crash when capacity expansion finally catches up, and the market has already front-loaded two or three years’ worth of profit.\nExecutive Summary: Why I Doubt the \u0026lsquo;End by 2026\u0026rsquo; Prediction Place a few pieces of primary and semi-primary source materials on the table first.\nConnecting these signals makes the answer clearer.\nThis cycle is neither the traditional PC cycle, nor is it driven by smartphone replacement cycles, and certainly not a simple rehash of the \u0026ldquo;semiconductor shortage due to the pandemic.\u0026rdquo; Its engine is the capital expenditure from major hyperscale AI data centers, and the massive throughput requirements for memory and storage needed by AI servers are simultaneously stressing HBM, DDR5, high-capacity DIMMs, and enterprise SSDs. Micron was quite direct in its investor materials last December: \u0026ldquo;Overall industry supply is significantly below demand in the foreseeable future, and this tightness will persist well beyond 2026.\u0026rdquo;\nIn other words, the market isn\u0026rsquo;t betting on \u0026ldquo;whether things will be better next year,\u0026rdquo; but rather on \u0026ldquo;whether the period of tension before 2027 will end.\u0026rdquo; If this premise is not broken, the cycle will struggle to wind down on its own by 2026.\nWhy Did This Round Ignite Both US Storage Stocks and Korean Semiconductors Many people tend to view the US memory/storage sector and South Korean semiconductors as two separate issues. In reality, these two trends are expected to largely converge by 2026.\nMicron represents the most direct memory sector beta on US stock markets. Reuters, in a report on March 19, 2026, noted that Micron\u0026rsquo;s stock price has already risen by over 61% this year. Furthermore, the company increased its capital expenditure plan for fiscal year 2026 by another $5 billion, bringing the total amount to over $25 billion. This move itself indicates one thing: management acknowledges that existing capacity is insufficient to meet the demand generated by the current wave of AI development.\nKorea was even more dramatic. SK Hynix hit an all-time high on May 4, 2026, closing up 12.52% that day. The same Reuters report also mentioned that high-ranking officials from the Bank of Korea judged that this chip cycle upturn might last longer than previous cycles. This statement is not groundless, as the two most core memory manufacturers in Korea have repeatedly released similar information during their earnings reports and conference calls.\nSamsung even stated directly during its conference call at the end of April 2026 that, \u0026ldquo;based solely on the already received demand for 2027, the supply-demand gap in 2027 will be even larger than in 2026.\u0026rdquo; This statement is very significant. It means that the market\u0026rsquo;s current surge isn\u0026rsquo;t due to people competing for 2026 earnings, but rather they are preemptively trading the 2027 shortage.\nTherefore, the most crucial characteristic of this market cycle is not the \u0026ldquo;overall semiconductor boom,\u0026rdquo; but rather:\nAI has turned the most lucrative memory sub-sector into a bottleneck for the entire industrial chain. HBM will consume DRAM capacity and advanced packaging resources, simultaneously constraining commodity DRAM as well. The demand for SSDs in servers and the inference side no longer simply follows PCs or mobile phones; rather, it is directly tied to large model infrastructure. When these three factors are combined, Micron, SK hynix, and Samsung\u0026rsquo;s profit elasticity will be enormous. The memory industry is inherently a high operating leverage sector, so when ASP rises, profits often do not increase linearly; instead, they jump significantly.\nHow Have Past Semiconductor Cycles Typically Concluded? I don\u0026rsquo;t want to turn this section into a semiconductor chronicle (or history). What is truly powerful/disruptive in terms of investment, and therefore worth remembering, are actually the following cycles.\nCycle Phase Approximate Duration Termination Details Data Observed at End of Cycle 1998-2000 Uptrend Approx. 2 years Dot-com bubble burst, decline in PC and mobile demand, overstocking pressure Global semiconductor sales dropped from $2.04 trillion in 2000 to $1.39 trillion in 2001, a year-on-year drop of 32% 2002-2007 Uptrend Approx. 6 years Global Financial Crisis first depressed valuations, then suppressed end-user demand Sales dropped from $255.6 billion in 2008 to $248.6 billion, and again by 9% to $226.3 billion in 2009 2016-2018 Uptrend Approx. 3 years Slowing growth rate in the second half of 2018, price cycle reversal combined with trade friction Global sales dropped to $412.1 billion in 2019 (a year-on-year drop of 12.1%); memory sales dropped 32.6%, and DRAM dropped 37.1 Looking at this table, the pattern is actually quite straightforward.\nThe semiconductor cycle truly ends not usually because of \u0026ldquo;overvaluation, so it must fall.\u0026rdquo; It often requires two out of three conditions (or even all three) to appear simultaneously:\n\\[ \\text{Cycle Peak} \\approx \\text{Supply growth rate catches up to demand growth rate} + \\text{Inventory reversal from low levels} + \\text{Marginal weakening of end-user demand} \\]To put it more simply:\nThe release of new capacity begins. Clients are shifting from frantic purchasing to cautious observation. Leading companies no longer talk about shortages but start discussing inventory, cost, and pricing pressures. Died in a demand collapse and inventory in 2001.\nDied in the macro crisis of 2008–2009.\nDied in the price cycle and trade disruption of 2019.\nDe-stocking following the depletion caused by the pandemic in 2023.\nSo, one theory I am most skeptical of right now is that \u0026ldquo;the semiconductor has risen too much, so it must end soon.\u0026rdquo; Cycle peaks do not form this way. They require the underlying supply and demand relationship in reality to ease first.\nWhat exactly is the difference between this round and the 2021-2022 round? During the 2021-2022 cycle, many chips saw price increases, but the underlying logic was rather scattered. Automotive, home appliances, mobile phones, PCs, and servers were almost all engaged in restocking inventory, while the pandemic severely disrupted the supply chain. The conclusion of that cycle was also quite typical: end-user demand declined, channel inventories remained high, and the industry began a collective correction.\nThe cycle in 2026 will be more concentrated and more dangerous.\nThe focus is on money being poured into AI data centers. Although there are fewer sources of demand, the intensity at specific points is much greater.\nThe danger is that these types of needs are not everyday consumer goods in a completely market-driven way, but rather driven by the capital expenditure of several super large companies. Once cloud vendors and platform providers discover:\nGPU utilization was not as high as expected; Inference revenue realization is slower than capital expenditure; Agentic AI has failed to achieve commercialization; Or macroeconomic environment, tariffs, energy, and exchange rates are extending the return cycle. The demand growth rate will drop very quickly.\nThe industry has not entered this stage yet. On the contrary, what can be seen is that multiple tech giants are continuing to heavily invest in AI infrastructure. Under SIA figures, global semiconductor sales already reached $791.7 billion in 2025 and are projected to approach one trillion US dollars by 2026. Samsung also clearly stated that server memory demand will remain strong in the second half of 2026 as hyperscalers accommodate enterprise AI and LLM services.\nThis is why I judge that: 2026 looks more like a year of concurrent price increases and expanded production, rather than a peak year.\nWhen will this round most likely end? I\u0026rsquo;ll give you a baseline assessment; nothing too mystical/over-the-top. (Alternative translations depending on context: I\u0026rsquo;ll provide a basic evaluation, keep it simple.)\nMy Benchmark Scenarios If there is no sudden global recession, nor a dramatic collapse in AI capital expenditure, this semiconductor uptrend is more likely to enter a danger zone starting in the second half of 2027, and genuine cyclical peak characteristics will be easier to observe in the first half of 2028.\nThere are four reasons.\nFirst, supply has a physical lag.\nWhether it\u0026rsquo;s Micron scaling up its CAPEX, or Samsung and SK hynix expanding their HBM and associated production lines, establishing cleanrooms, acquiring equipment, optimizing packaging processes, and achieving stable yields all require significant time. While every company knows that money is lucrative right now, announcing expansion today does not mean they can deliver products tomorrow.\nSecondly, the demand/requirements for 2027 have already been pre-booked/committed.\nSamsung already mentioned multi-year binding contracts, but the conference call content reported by Reuters was even more direct: the potential supply-demand gap in 2027 might be larger than in 2026. This signal is very critical. It means that leading customers are not buying on a quarterly basis, but rather locking resources on an annual or even multi-year basis.\nThird, this round is not just about HBM.\nIf it were only about HBM, one could still explain the situation as \u0026ldquo;advanced products are strong, but everything else is average.\u0026rdquo; However, Samsung, SK hynix, and Micron\u0026rsquo;s current consensus indicates broader tightness across DRAM and NAND, particularly for high-capacity server DRAM modules, AI-oriented eSSDs, and storage related to KV cache. As long as this diffusion continues, the cyclical trend will keep propagating outward.\nFourth, the stock market typically peaks ahead of earnings reports, but it does not peak before the overarching narrative (or storyline).\nThe current main narrative is \u0026ldquo;shortages, price hikes, locked orders, and insufficient expansion.\u0026rdquo; Only when the main narrative shifts to \u0026ldquo;expansion realized, peak prices, and customers no longer rushing to buy\u0026rdquo; will the stock price truly seem to have peaked.\nUnder what circumstances might it end early There is also a possibility that it could reach its peak sooner.\nIf two or three of the following events occur simultaneously between Q4 2026 and H1 2027, I would significantly become more cautious:\nCloud vendors are starting to revise down their AI capital expenditure growth rate. Leading memory manufacturers no longer emphasize shortages, but instead focus on CAPEX, depreciation, and yield ramp-up. Standard DRAM / NAND prices flatten or even reverse before HBM. Budgets for mobile phones, PCs, and enterprise IT cannot keep pace with high-priced memory, thereby cooling demand. Macro-level factors such as recession, tariff escalation, energy shock, or local production disruptions in Korea. The fifth point, in particular, should not be underestimated. The 2008-2009 cycle already proved that even if the semiconductor industry is strong, it cannot withstand a simultaneous decline in macroeconomic credit and demand.\nWhat to Focus On: Not \u0026lsquo;How Much It Has Risen,\u0026rsquo; But These Turning Points If you care about when the cycle ends, I suggest watching these signals rather than looking at daily stock price colors.\nIndicators to Monitor Suggests if It Remains Strong Suggests if It Starts Weakening The description of supply/demand for 2027 in leading company earnings reports The cycle is still extending Leading companies start preparing for a slowdown Capital expenditure and progress of new cleanrooms / packaging facilities Supply is still catching up to demand Could plant seeds of oversupply in the next 12-18 months Pricing and delivery times for DRAM / NAND / eSSD Tightness is spilling from HBM to broader sub-markets Supply starts moderating/softening Scope of Hyperscaler AI CAPEX The end-market engine is still pressing the accelerator The most important demand source of the cycle has eased up Inventory and booking behavior Customers are still scrambling for capacity Customers shift from rushing to buy to waiting for goods My own criterion for judgment is simple: As long as the industry continues to emphasize supply shortages rather than inventory cleanup/recovery, this cycle has not truly ended.\nConclusion As of May 12, 2026, my conclusion is:\nThis semiconductor cycle is highly unlikely to end in 2026. The massive surge in US storage and Korean semiconductors is due to one factor: AI has completely unlocked the profit elasticity of the memory complex. The end mechanism of past cycles is not mysterious; the core elements are simply falling demand, rising inventory, and supply catching up. The most probable critical period this time is neither now, but from the second half of 2027 to the first half of 2028. Of course, this doesn\u0026rsquo;t mean we should rush into investing blindly now. How can I put it? For an industry like semiconductors, what they truly fear is never the economic \u0026ldquo;boom\u0026rdquo; cycle itself, but rather everyone believing that the boom will continue indefinitely, leading them to desperately overexpand capacity during high-profit years.\nThe cycle usually doesn\u0026rsquo;t die when it\u0026rsquo;s worst, but when it\u0026rsquo;s best, hottest, and most out of stock.\nReferences Micron Technology, Inc. Reports Results for the Second Quarter of Fiscal 2026 Micron Fiscal Q1 2026 Investor Presentation Micron Fiscal Q1 2026 Earnings Call Prepared Remarks SK hynix Announces 1Q26 Financial Results Samsung Electronics Announces First Quarter 2026 Results Global Semiconductor Sales Increase 25% from Q4 2025 to Q1 2026 Global Annual Semiconductor Sales Increase 25.6% to $791.7 Billion in 2025 Global Semiconductor Sales Increase 13.7 Percent to $468.8 Billion in 2018 Worldwide Semiconductor Sales Decrease 12 Percent to $412 Billion in 2019 Global Semiconductor Sales, Units Shipped Reach All-Time Highs in 2021 Global Semiconductor Sales Increase 3.3% in 2022 Despite Second-Half Slowdown Global Semiconductor Sales Decrease 8.2% in 2023; Market Rebounds Late in Year Gartner Says Worldwide Semiconductor Revenue Declined 11% in 2023 Writing Notes Original Prompt Recently, semiconductor-related stocks have been soaring, covering U.S. storage/memory and Korean semiconductors. I need to gather relevant information to predict when this current semiconductor cycle will end. Also, how did past semiconductor cycles conclude, and for how long did they last?\nSummary of Writing Approaches First, clarify why this rally is so strong before discussing when it will end; otherwise, the prediction lacks foundation. The body article intentionally separates firsthand facts from my judgment, avoiding presenting time-sensitive information as permanent conclusions. The historical section does not try to cover every small fluctuation but only focuses on the few major downturns most significant for investment. The predictive section avoids making \u0026ldquo;fortune teller\u0026rdquo;-style single-point guesses on the peak; instead, it provides a baseline timeframe and trigger conditions for an early top. This article intentionally did not elaborate on the independent cycles of wafer Extended Brainstorming Topic Include in Main Text? Reason Analyzing NVIDIA and TSMC together Partially Downplayed They are important, but they will pull the theme from the memory cycle toward the entire AI industry chain, which is easy to lose focus on. Expansion of domestic Chinese storage and mature processes No It affects supply, but this piece\u0026rsquo;s main thread is US memory/storage and South Korean semiconductors ","date":"2026-05-12","language":"en","permalink":"https://ttf248.life/en/p/semiconductor-cycle-not-ending-in-2026/","tags":["AI Inspiration Hub","Semiconductor","Storage","U.S. Stock Market","Korean Stock Market"],"title":"The endpoint of this semiconductor cycle is unlikely to be in 2026.","year":"2026"},{"categories":["Financial Knowledge Base","Investment"],"content":"Regarding this problem/issue from Futu, I will state the conclusion first.\nFutu Securities currently defaults to displaying cost-averaging, which is not what many people understand as simply calculating an average based only on buys and ignoring sells. Extending this concept further, Hong Kong brokers do not have a unified default methodology. If it is a holdings page aimed at Chinese retail investors, common display methods include cost-averaging, average cost, and breakeven price (or principal protection price). However, if the broker is an international firm like IBKR that places more emphasis on tax lots and statement consistency, FIFO (First-In, First-Out) is generally the default method.\nWhen discussing domestic brokerage firms, if we refer to the most common field in A-share trading clients—the \u0026ldquo;Cost Price/Holding Cost Price\u0026rdquo;—it is more commonly focused on the diluted cost basis or break-even price, rather than simply the average purchase price. This is just because different brokerages do not have standardized naming conventions; some call it \u0026ldquo;holding cost,\u0026rdquo; others call it \u0026ldquo;diluted cost,\u0026rdquo; and some provide a separate figure for the \u0026ldquo;average purchase price.\u0026rdquo;\nLet\u0026rsquo;s first break down the three concepts These three terms are often used interchangeably, but they are not the same.\nBasis Core Logic Will it change after selling? Common Usage Average Cost Looks only at purchases, ignores the effect of selling on remaining positions Usually no Viewing the pure average buying price Averaging/Break-even Price Maintenance Allocates historical gains/losses from sales back to the remaining position Yes Displaying \u0026ldquo;how far from break-even\u0026rdquo; on the holding page FIFO (First In, First Out) Sells what was bought first, matched by lot Yes, but the logic is lot matching Statements, taxes, realized/unrealized gains/losses If you just want to see \u0026ldquo;what the approximate cost of my remaining stocks is,\u0026rdquo; average cost is the most intuitive.\nIf your concern revolves around calculating how far your current holding is from the break-even point after engaging in frequent, short-term trades on a stock, then cost averaging techniques are more directly applicable.\nIf you are concerned with knowing exactly which old position/lot was sold first, that is no longer just a front-end holding display issue; it becomes an underlying lot matching problem like FIFO.\nWhat is Futu\u0026rsquo;s current default type? I checked the Futu Hong Kong Help Center and the Futu NiuNiu Help Center on May 8, 2026, and obtained two definite facts.\nFirstly, the Futu Help Center separately explained two algorithms: Amortization Cost Price and Average Cost Price.\n\\[ \\text{Adjusted Cost Price}=\\frac{\\text{Total amount bought during holding period}-\\text{Cash dividends}-\\text{Total sales proceeds}}{\\text{Quantity held}} \\]\\[ \\text{Average Cost Price}=\\frac{\\text{Previous Average Cost Price}\\times\\text{Quantity}+\\text{Current Buy Price}\\times\\text{Quantity}}{\\text{Total Holding Quantity after Purchase}} \\] Futu NiuNiu\u0026rsquo;s \u0026ldquo;Holding Field Introduction\u0026rdquo; page directly labels the stock holding field as Cost Price (Diluted Cost). The formula provided on this page does not incorporate cash dividends, focusing instead on explaining the display logic of the holdings page. However, both the HK Help Center’s “Cost Price Introduction” and “FAQ” include cash dividends in their formulas. While the descriptions differ slightly, the core methodology is consistent: both reflect Diluted Cost, rather than simply the average purchase price.\nSecondly, Futu writes more directly in its “FAQ”: “Futu currently uses the weighted average cost price.” It also explains a phenomenon that many users might be confused by: when the selling amount is greater than the buying amount, but there are still remaining positions in the account, the cost basis can become 0 or even negative.\nThis fact itself indicates that Futu\u0026rsquo;s default display is not based on \u0026ldquo;average cost,\u0026rdquo; but rather uses a metric that has incorporated/accounted for historical realized gains and losses from selling.\nSo, if the question is \u0026ldquo;What is Futu Securities\u0026rsquo; default cost basis algorithm?\u0026rdquo;, the answer is quite straightforward: It defaults to average cost basis.\nWhat standard type do Hong Kong brokerage firms default to, which is too complex to define simply? Many people tend to treat \u0026ldquo;Hong Kong securities firms\u0026rdquo; as a single entity, which is an imprecise statement.\nThe few examples I found show that it is not uniform.\nBrokerage / System Method Found Conclusion Futu Currently uses cost basis averaging Default bias toward cost basis averaging Tiger Brokers Clearly distinguishes between average cost, FIFO, and cost basis averaging, and supports selection in settings Not covered by a single default logic IBKR Tax lots default to FIFO, with the option to change the default match method Default bias toward FIFO Tiger Securities\u0026rsquo; help center is quite informative. It separately lists Average Cost, FIFO, and Weighted Average Cost, and provides different results for the same set of trades under three algorithms. Furthermore, on the \u0026ldquo;Realized Profit/Loss\u0026rdquo; and \u0026ldquo;Unrealized Profit/Loss\u0026rdquo; pages, Tiger clarifies that the results differ between FIFO and average cost methods, and users can select them in the settings.\nWhat does this mean?\nThe question of which type Hong Kong securities firms default to is highly likely to lead to biased conclusions if a specific brokerage firm is not first specified.\nMy judgment is as follows:\nIn the context of Chinese-language retail brokerage apps, such as Futu or Tiger, the common practice revolves around presentation metrics related to holdings, including averaged cost basis, average cost, and breakeven price. For international brokers like IBKR, in reporting and tax contexts, FIFO (First-In, First-Out) is generally the more common default method. Therefore, stating that \u0026ldquo;Hong Kong brokers default to FIFO\u0026rdquo; or that \u0026ldquo;Hong Kong brokers default to averaging cost basis\u0026rdquo; is inaccurate. The correct statement must specify both the particular broker and the specific page/context. Which type is more commonly used by domestic brokers? If we narrow the scope to the most common \u0026ldquo;Cost Price\u0026rdquo; field found on A-share brokerage client platforms, my conclusion is:\nDomestic brokerages are more likely to focus on cost averaging / capital preservation, rather than simply buying at an average price.\nGuoxin Securities wrote this definition very clearly a long time ago. Its \u0026ldquo;holding cost basis\u0026rdquo; algorithm is:\n\\[ \\text{Average Holding Cost Price}=\\frac{\\text{Total funds used for purchases during holding period}-\\text{Total funds obtained from sales during holding period}}{\\text{Number of available shares}} \\]The key point of this formula is that the selling amount will inversely affect the remaining holding cost. This is no longer simply the average purchase price; it clearly leans closer to the idea of averaging down costs.\nIf we look at Industrial Securities and Yangtze River Securities, they are more granular in their definitions/metrics. They explain \u0026ldquo;average purchase price,\u0026rdquo; \u0026ldquo;cost basis of holdings,\u0026rdquo; \u0026ldquo;averaged cost,\u0026rdquo; and \u0026ldquo;break-even price\u0026rdquo; separately. Especially Yangtze River Securities, they directly state that their own cost types are divided into four categories.\nThis conversely shows two things.\nFirstly, domestic securities brokers are not incapable of calculating average cost; rather, they often use the average cost as a separate field, and do not necessarily treat it as the default \u0026ldquo;cost price.\u0026rdquo;\nSecondly, domestic brokerages pay more attention to displaying \u0026lsquo;how far the current holding is from breaking even\u0026rsquo; in their front-end user interface, which makes it easy for them to incorporate the impact of selling into the displayed cost basis. This approach is actually closer to Futu, rather than IBKR\u0026rsquo;s lot accounting logic.\nWhy Many People Feel That “The Cost Price Is Wrong” It is usually not that the broker calculated it incorrectly, but rather that your definition of \u0026ldquo;cost basis\u0026rdquo; in your mind is not the same thing as the \u0026ldquo;cost basis\u0026rdquo; shown on the brokerage platform.\nThe three most common errors are.\nType One: Interpreting based solely on the average buying price I think that after selling off a portion, the cost basis of the remaining position shouldn\u0026rsquo;t change.\nThis is only valid based on the \u0026ldquo;average cost\u0026rdquo; metric/basis.\nHowever, if the broker displays the adjusted/average cost basis, then the profits from your previous sales will indeed lower the cost of your remaining holdings; conversely, losses from previous sales will raise the cost of your remaining holdings.\nSecondly, conflating the criteria for displaying holdings with the report criteria The App\u0026rsquo;s holdings page might be showing you the averaged cost basis.\nHowever, the monthly statements, tax forms, and allocation of realized gains/losses may be processed using FIFO or other lot matching rules.\nThese two metrics are not necessarily consistent.\nThird kind: Corporate Actions, Portfolio Reallocation, Dividends, and Stock Splits This kind of scenario is the most prone to miscalculating/confusing the cost price.\nFutu and Tiger have warned in their Help Centers that, \u0026ldquo;Corporate Actions, and cost basis after transactions are for reference only and may be inaccurate.\u0026rdquo; This reminder is very important because many users treat the front-end display as the definitive accounting ledger, which can lead to greater confusion.\nMy Conclusion To wrap up. / Let\u0026rsquo;s summarize the end.\nIf you are referring to Futu:\nFutu Securities currently defaults to the average cost basis. If you are referring to the overall picture of Hong Kong securities firms/brokerages:\nNo standardized default algorithm. Futu tends to average/dilute the cost basis. Tiger supports switching between multiple cost algorithms. International brokers like IBKR\u0026rsquo;s default tax lot calculation leans more toward FIFO. If you are referring to the entire domestic brokerage industry:\nMore commonly, it follows a focus on cost averaging / maintaining the initial principal cost. The \u0026ldquo;average purchase price\u0026rdquo; usually exists, but it is often in a separate field and is not necessarily the default displayed \u0026ldquo;cost price.\u0026rdquo; To really avoid misjudgment, the most reliable method is not to memorize broad conclusions like \u0026ldquo;which type of brokerage Hong Kong uses by default\u0026rdquo; or \u0026ldquo;which type of brokerage mainland China uses by default,\u0026rdquo; but rather to look directly at these three questions:\nDoes this page display the \u0026ldquo;Holding Cost,\u0026rdquo; \u0026ldquo;Average Purchase Price,\u0026rdquo; or \u0026ldquo;Break-even Price\u0026rdquo;? Will selling transactions affect the cost basis of the remaining position? Is this metric for front-end display, or is it a report/tax lot standard? If you understand these three points, you generally won\u0026rsquo;t be misled by cost pricing discussions again.\nReferences Writing Notes Original Prompt Futu Securities\u0026rsquo; cost basis algorithm; which one do Hong Kong brokers default to? Which one do domestic brokers default to?\nWriting Outline Summary First, separate Average Cost, Diluted Cost, and FIFO bases to avoid mixing concepts at the start. Address the most specific question regarding Futu first, and then expand to Hong Kong brokers and domestic brokers. For the section on Hong Kong brokers, do not provide a \u0026ldquo;one-size-fits-all\u0026rdquo; conclusion; instead, clarify the differences using three examples: Futu, Tiger, and IBKR. In the section on domestic brokers, focus on explaining that \u0026ldquo;Default Cost Price\u0026rdquo; and \u0026ldquo;Average Purchase Price\u0026rdquo; are often not in the same field. This article intentionally avoids detailing tax declaration procedures because the core issue raised by users concerns the standards for displaying holdings, not tax filing treatment. Extended Brainstorming Topic Whether to include in main body Reason IBKR\u0026rsquo;s default FIFO Included Helps readers understand that \u0026ldquo;Hong Kong brokers\u0026rdquo; internally differentiate between retail holding displays and international tax lot calculations. Tiger\u0026rsquo;s multiple algorithm switching Included Proves that the way \u0026ldquo;Hong Kong brokers\u0026rdquo; default cannot be generalized. Whether all domestic brokers default to cost averaging Not drawing a definitive conclusion Evidence shows this is common, but different brokers have naming and implementation variations; it is unsuitable to state definitively. Stock Connect cost basis No Charles River Securities explicitly warns that its cost price calculation is not applicable to Stock Connect; expanding on this will deviate from the main theme. Tax filing and cost basis No Helpful for understanding the current issue, but it will shift the article from holding display issues to tax handling issues, becoming too tangential. ","date":"2026-05-08","language":"en","permalink":"https://ttf248.life/en/p/futu-cost-basis-hk-mainland-brokers/","tags":["AI Inspiration Hub","Futu Securities","Hong Kong Stocks and US Stocks","Brokerage Firm / Broker","Cost Price"],"title":"Futu Securities cost price algorithm, which one is the default for Hong Kong brokers and domestic brokers?","year":"2026"},{"categories":["Investment"],"content":"The most unusual aspect of this current AI market cycle is not that Nvidia has risen sharply, but that the increase in value has been transmitted throughout the entire industrial chain: first GPUs, then servers, switches, ASICs, HBM, and finally to NAND, hard drives, power, and data centers.\nIf it were just a concept, the market trend shouldn\u0026rsquo;t last this long. But saying that it has already formed a complete profit cycle might be premature.\nI prefer to view it as a “bull market driven by certain expenditures”: cloud vendors and model companies are genuinely spending money, and upstream companies are indeed collecting revenue, which is why stocks rose first; however, terminal applications have not yet proven that these investments can reliably generate enough profit, meaning the risk of a bubble also exists.\nFirst, Clarify the Definitions/Scope This is not investment advice. The stock price data uses an approximate retrospective based on public market quotes and historical closing prices, focusing on stages and logic rather than aiming for decimal precision for every trading day.\nI set the starting point to 2022-11-30, which is near the date ChatGPT was released. The endpoint is based on an understanding of public market conditions around the writing time, 2026-05-08.\nThe gain can be roughly understood as:\n\\[ \\text{Increase Rate}=\\frac{\\text{Period-end Price}-\\text{Period-start Price}}{\\text{Period-start Price}} \\] There are two sources of potential error here: First, different websites do not handle adjusted pricing, stock splits, and intraday prices consistently; second, the US stock market on May 8, 2026, has not yet closed, so real-time prices will continue to change. Therefore, the main body focuses more on \u0026ldquo;multiple levels\u0026rdquo; and \u0026ldquo;relative strength,\u0026rdquo; rather than presenting it as a trading system.\nTimeline: Where AI Goes, Stocks Rise Phase AI Development Status Top Gainers What the Market is Buying Nov 2022 to Mar 2023 ChatGPT goes mainstream May 2023 was the most critical turning point in the first phase.\nWhen ChatGPT gained mainstream attention, the market could still question: Is this a chatbot bubble? However, Nvidia\u0026rsquo;s earnings guidance in May 2023 directly shattered that doubt. The data center revenue and next quarter\u0026rsquo;s revenue guidance were clearly higher than market expectations, marking the first time the market saw \u0026ldquo;model capability\u0026rdquo; translating into actual \u0026ldquo;GPU orders.\u0026rdquo;\nThis is why Nvidia did not begin its rise in 2024, but rather entered the major uptrend phase as early as 2023.\nAs of 2024, the market trend has shifted from merely \u0026ldquo;buying GPUs\u0026rdquo; to requiring the acquisition of entire \u0026ldquo;AI factories.\u0026rdquo; Training large models is not just about buying several graphics cards; the true expense lies in the complete cluster: GPU, HBM, networking equipment, servers, liquid cooling, power supply, data center space, and software stack. If any single component is missing, the system cannot function.\nTherefore, Super Micro Computer will surge, Broadcom will surge, TSMC is expected to rise, and Oracle will also increase. They are not the same companies, but they all stand on the value chain of AI infrastructure.\nAfter 2025, the market began searching for a second level of certainty: whether models could actually be integrated into enterprise workflows. Palantir\u0026rsquo;s AIP is representative of this phase; the market isn\u0026rsquo;t buying merely a software company, but rather the imaginative potential of \u0026ldquo;AI entering enterprise decision-making and operational systems.\u0026rdquo;\nThe speculative potential here is significantly higher. GPU companies are already generating revenue, while enterprise AI software is still proving its capacity for sustained revenue generation.\nApproximate Gains of Major Companies Judging by the trend since the release of ChatGPT, the stocks experiencing the most dramatic gains are not large-cap tech giants like Microsoft, Google, and Amazon, but rather companies with relatively small market capitalizations whose earnings potential has been amplified by AI.\nWhat is most noteworthy in this table is that price appreciation is determined not only by the \u0026ldquo;degree of AI relevance,\u0026rdquo; but also jointly by the original market capitalization, profit elasticity, stock holding pattern, and the industry cycle.\nMicrosoft is certainly important, but it is simply too large. For Microsoft to rise 50%, the required capital and resulting increase in market capitalization are quite exaggerated. A small or medium-cap company, if suddenly perceived by the market as being on the main AI track, will find its stock price much easier to multiply several times.\nThis is also one of the core rationales behind the massive surge in flash memory.\nWhy Did Silicon Industry Surge So Much? Solidigm is not a stock that has risen along with the AI trend since 2022. Its specialty is that, as of 2025, it spun off from Western Data to become a purer NAND and flash memory stock.\nIt skyrocketed, not just because \u0026ldquo;AI requires storage.\u0026rdquo; More accurately, it is due to several overlapping factors:\nFactor Impact AI data centers require more high-performance storage Training data, inference cache, vector search, data lakes, logs, and checkpoints all increase storage requirements The NAND industry itself is undergoing a cyclical reversal The storage industry has gone through a trough; after supply contraction, price recovery will be significant, leading to high profit elasticity The listed target company becomes purer after going public independently After being spun out from Western Digital, the market is easier to price based on the NAND/SSD cycle Original market capitalization is not high Compared to giants like Nvidia or Microsoft, less absolute capital is needed to boost the stock price Short selling or low expectations are easily counterattacked Once the earnings and guidance of a cyclical stock exceed expectations, valuation recovery can be very aggressive I agree with the user’s assessment that the company has a low market capitalization and low capital expenditure, but I must add one point: Low market cap only provides potential elasticity, it is not the inherent catalyst for growth itself.\nWithout fundamental catalysts such as NAND price recovery, AI data center SSD demand, or improvement in financial performance following the company\u0026rsquo;s independence, a low market cap can only make it easier to speculate on, and also easier to fall back from. A truly significant market rally typically occurs when \u0026ldquo;low market cap + low expectations + marginal improvement in fundamentals\u0026rdquo; appear simultaneously.\nMicron\u0026rsquo;s current movement appears to be driven by the powerful AI tailwind hitting the bottom of the storage cycle. The wind itself is enormous, and the market ground is perfectly dry.\nDoes this market cycle resemble the internet bubble? Like, but not like.\nThe key point is that valuation precedes profit realization. The rise in many companies\u0026rsquo; stock prices reflects expectations for the next 5 or even 10 years, as the market preemptively prices in companies with the potential to become infrastructure.\nThe difference is that: upstream companies in this round are already earning real money. Nvidia, TSMC, Broadcom, memory manufacturers, and server manufacturers are not selling PPTs; they are delivering hardware and services.\nSo, I do not quite agree with summarizing it in one sentence as \u0026ldquo;all bubbles.\u0026rdquo; It is more like:\nLayer Current Status Risk Compute Hardware The profit loop is clearest, orders are real If capex slows down, valuation and inventory will recoil/be hit by it Cloud Infrastructure Revenue is real, but depreciation and electricity cost pressure are high Whether customers are willing to pay long-term for AI computing power Enterprise Software Has cases and growth, but ROI has not been widely proven Many pilots, little scaling; easily shifts from enthusiasm to budget scrutiny Consumer Applications Many users, clear monetization divergence The balance between customer acquisition, retention, inference costs, and subscription pricing may not be achieved The biggest contradiction currently is that the AI upstream segment has formed a profitable closed loop, but the downstream applications have not.\nNvidia profits from cloud vendors, which spend capital expenditures (CapEx). This CapEx ultimately gets paid for by enterprise customers and consumers. If the end-users do not pay enough, or if AI fails to deliver sufficient cost reduction and efficiency gains to enterprises, someone in the chain will ultimately bear the depreciation and valuation pressure.\nThe stock price might not crash immediately, but the market will begin to ask a harder question: Where is the return on investment (ROI) for these GPUs?\nHow Do Research Reports and Institutions View the Risk of a Collapse? The institutional views I found are not consistent, but they can be grouped into three categories.\nThe first camp is the cautious one. The title of the Goldman Sachs 2024 report on generative AI was very direct: it suggests that investment is too high and returns are too low. Its core argument is not that AI is useless, but rather questioning whether massive short-term capital expenditure can generate sufficient returns.\nThe second type is the moderate view. Sequoia has raised the issue of an \u0026ldquo;AI revenue gap\u0026rdquo;: to support GPU investments, the entire ecosystem needs to generate very large end-user revenues, but current application layer revenue has not yet caught up with infrastructure investment. This is not a bearish take on AI; it is a reminder that the commercial loop has not been closed yet.\nThe third category represents the optimists. They believe that AI will follow a path similar to cloud computing: first requiring years of infrastructure investment, followed by a gradual release of software and service revenues. This assessment also has merit; after all, cloud computing itself was questioned for its high costs in its early days.\nThe problem is that the stock market won\u0026rsquo;t wait 10 years to price it. It will buy early, and it will also kill early.\nMy judgment is:\nThe market may not face a sharp downturn in the short term because capital expenditure remains high, orders are still flowing, and the AI race is ongoing. As long as major companies like Microsoft, Google, Amazon, Meta, and Oracle continue to expand their data centers, the revenue of upstream hardware companies will remain supported.\nBut it will definitely undergo a rigorous ROI review in the mid-term. The triggers might be:\nCloud vendors slowing down AI Capex; The large model price war results in insufficient inference revenue coverage for costs; The failure rate of enterprise AI projects transitioning from pilot phase to production is too high; High inventory levels in certain upstream links; Interest rates or the macroeconomic environment make the market reluctant to assign high valuations to long-term narratives. This does not mean AI technology has failed. After the dot-com bubble burst, the internet did not disappear. What truly disappeared was the portion that had been prematurely overvalued in the valuations.\nWhich metrics should I focus on If I continue observing this round of market trends, I won\u0026rsquo;t just look at model announcement conferences/releases.\nSeveral more useful indicators are:\nMetric Why It Is Important CAPEX growth of four major cloud providers Determines the sustainability of upstream hardware orders. NVIDIA data center revenue and gross margin Indicates whether compute power demand is genuinely strong or if prices are starting to ease. HBM / NAND / SSD pricing Shows whether storage market recovery is occurring, or if it Especially the last one. AI cannot only look at revenue, but it must also account for depreciation.\nBuying GPUs is not free, nor is building a data center. If AI service revenue growth is very impressive, but free cash flow becomes increasingly concerning, the market will eventually reprice it.\nConclusion The surge in AI stocks this round started with the technological shock brought by ChatGPT, then moved to Nvidia\u0026rsquo;s orders, then to the entire AI factory, and finally spread to storage, memory, power, and enterprise software.\nCymbet\u0026rsquo;s surge is not an isolated event. It stands at the intersection of AI storage demand, NAND cycle reversal, independent listing, and low market cap elasticity; therefore, its gains will be more exaggerated than those of many mega-cap companies.\nHowever, the more such market conditions arise, the more it is unwise to only look at \u0026ldquo;infinite AI demand.\u0026rdquo; Capital markets prefer to incorporate long-term trends into stock prices all at once, and they are also adept at correcting in reverse when the rate of realization is insufficient.\nAI is probably not fake. The problem is that current stock prices have already assumed that AI will soon become a very profitable, very stable, and very large-scale business.\nThis default value is where problems are most likely to occur later.\nReferences OpenAI: Introducing ChatGPT, November 30, 2022. OpenAI: GPT-4 research, March 14, 2023. NVIDIA: FY2024 Q1 Earnings Report, May 24, 2023. NVIDIA: FY2025 Q1 Earnings Report, May 22, 2024. Western Digital: Completes SanDisk Spin-Off, February 24, 2025. SanDisk: FY2026 Q3 Earnings Report, April 30, 2026. Goldman Sachs: Gen AI: Too Much Spend, Too Little Benefit?, 2024. Sequoia Capital: AI\u0026rsquo;s $600B Question, 2024. Gartner: 30% of GenAI Projects Will Be Abandoned After Proof of Concept, July 29, 2024. MIT NANDA: The GenAI Divide: State of AI in Business 2025. Author\u0026rsquo;s Notes Original Prompts The AI boom has caused many companies\u0026#39; stock prices to soar. We need to organize the stock gains of related companies since ChatGPT was released according to a timeline, marking periods of steepest increases, what state of AI corresponded to those times, and why the corresponding stocks surged. Why did [Shandili/Company Name] surge so much? Besides the influence of AI, there are other factors. [Shandili]\u0026#39;s original market capitalization was not high; lifting it requires capital, and if the market cap is low, less capital needs to be expended. Search through research reports: Will this wave of AI eventually collapse? Currently, everything is burning cash, and there is no complete profit cycle established yet. Writing Outline Summary Instead of presenting all AI stocks as a market data list in the main body, it writes according to categories such as \u0026ldquo;model capability, order fulfillment, infrastructure diffusion, enterprise implementation, and storage cycle.\u0026rdquo; The section on Flash Memory deliberately did not only focus on AI demand, but also included NAND cycles, independent listing status, and low market cap elasticity. Regarding the bubble issue, it was not presented directly as collapsing or stable; instead, it was broken down into upstream profit cycles and downstream ROI cycles. The article minimized details of many individual companies (e.g., AMD, TSMC, and power stocks), otherwise it would become a mere stack of data/information dumping. Stock price metrics are limited to the multiples level, used for explanatory purposes, not for trading judgment. Expanded Brainstorming ","date":"2026-05-08","language":"en","permalink":"https://ttf248.life/en/p/ai-stock-rally-since-chatgpt/","tags":["AI Inspiration Hub","ai","investment","Semiconductor","U.S. Stock Market"],"title":"After AI stocks skyrocketed","year":"2026"},{"categories":["Diary Ramblings"],"content":"When I used to see phones with capacities like 512GB or 1TB, I always felt it was a bit excessive/wasteful.\nThe storage capacity here rivals that of a standard laptop. What exactly do phones even store that requires this much space? My previous understanding was very simple: just photos, videos, and WeChat data. You regularly transfer them to your computer, and you\u0026rsquo;re done cleaning up the phone.\nI later realized that this judgment was actually heavily influenced by my own personal biases/habits.\nI have a desktop computer and am also used to organizing materials on the computer. Photos are exported and sorted into folders by year and event; important files from WeChat are saved separately; when my phone storage runs out, I move the old data. This process is not troublesome for me because the computer is originally my work hub.\nHowever, for many people belonging to Generation Z or older generations, the computer is no longer just a data archive/repository.\nThey are not incapable of using computers; rather, they haven\u0026rsquo;t established a data management habit centered around the computer. Photos are taken on the phone, chat records are kept on the phone, payment receipts, screenshots, ID photos, children\u0026rsquo;s videos, and travel pictures—all are also on the phone. The computer, in this process, feels more like an external device: occasionally for printing documents, occasionally for filling out complex forms, or occasionally for transferring large files.\nIf the access, usage, and retrieval of data all occur on a mobile phone, then mobile storage can no longer be understood merely as \u0026ldquo;temporary cache.\u0026rdquo;\nThe Computer Gallery Management Is Getting Stupid (or Slow) In the past, managing photos on computers had certain advantages: large screens, clear file systems, and convenient copy-pasting. However, the disadvantages were also obvious—all organization had to be manually maintained by the user.\nYou have to remember when you went out, create folders yourself, delete duplicate photos, and separate WeChat pictures from general album photos. After a long time, most people will only be left with several huge directories: Phone Backup, Phone Backup 2, Old Phone Backup, and WeChat Images.\nIn recent years, mobile photo albums have surprisingly started to solve this problem.\nApple explicitly mentions in the Photos Privacy Notice that the Photos app uses on-device machine learning to organize photos and videos, supporting features such as Memories, People and Pet Albums, and Highlights. Google Photos is also integrating Gemini into album search, allowing users to query their photo library using natural language.\nIndividually, these features might not seem extraordinary, but when combined, they form an entirely new way of managing data: users no longer need to first conceptualize a folder structure or know which directory their photos are in. As long as they remember key events like \u0026ldquo;that time at the beach,\u0026rdquo; \u0026ldquo;the child\u0026rsquo;s first bike ride,\u0026rdquo; or \u0026ldquo;who ate with last Lunar New Year,\u0026rdquo; the system can retrieve the relevant materials.\nThis interactive system may not be perfect. AI search can be slow, inaccurate, and raises privacy concerns. But it is already closer to daily use than traditional computer album software. Ordinary users don\u0026rsquo;t want a meticulously organized file system; they just want to be able to find things when needed.\nLarge capacity is not laziness, but a change in path From this perspective, a 512GB phone is not merely the result of users being \u0026ldquo;too lazy to clean,\u0026rdquo; but rather a natural choice following changes in data management methodologies.\nPreviously, we assumed that mobile phones were merely shooting devices and computers served as the primary storage/repository. Now, for many people, their smartphones are not only shooting devices but also repositories and retrieval portals. The more complete the data on a phone, the more useful features like album AI, system search, and chat history retrieval become.\nIf all photos are transferred to a computer hard drive, the phone album will only retain data from the most recent few months. While the system can still perform memories and face recognition, what it sees is fragmented slices of life. If you want to find pictures from a dinner gathering three years ago, it won\u0026rsquo;t be able to help you either.\nThis was also something I had previously overlooked. The reason I regularly clear out the data is because I know where it will be archived after clearing, and I also know how to retrieve it in the future. For people who are unfamiliar with computers, \u0026ldquo;clearing\u0026rdquo; often equates to losing it in a place that they will never open again. It is not physical loss; it is functional/operational loss.\nPhone manufacturers are boosting storage capacities not only for shooting 4K or 8K videos, nor solely because game installation packages are getting larger. With the iPhone 17 Pro Max offering up to 2TB and the Galaxy S25 Ultra also having a 1TB version, this suggests at least one thing: phone manufacturers assume that users will store more personal data on their devices in the long term.\nThis trend is not limited to young people.\nIt is especially true for the elderly. Many seniors do not regularly back up their photos or export their WeChat files. Their data management method is simply \u0026ldquo;not deleting.\u0026rdquo; This might sound primitive, but from a practical usage standpoint, it is actually the most stable solution. As long as they still have the phone, the photos remain; and as long as the chat records are not deleted, past events can still be accessed.\nWe could certainly say this is unprofessional, unsafe, and lacks backup consciousness. But to them, a solution requiring a computer, data cables, directory structure, and regular maintenance might actually have a lower success rate than buying a large-capacity smartphone.\nThe real problem is not capacity, but migration and backup This does not mean that bigger storage capacity is always better for phones.\nAs data repositories, mobile phones face two inescapable issues: device migration when changing phones, and physical loss of the device. The larger the capacity, the more accumulated data it holds, resulting in greater single-point risk. Previously, losing a phone might primarily mean losing contacts and recent photos; now, it could be years\u0026rsquo; worth of family albums, chat records, and life credentials.\nTherefore, high-capacity phones resolve the issue of \u0026ldquo;insufficient storage,\u0026rdquo; but they do not address the problem of \u0026ldquo;long-term data reliability.\u0026rdquo;\nA genuinely reasonable approach might not be forcing everyone back to managing their data on a computer, but rather acknowledging that phones are already the primary repository of information for many people, and building backup strategies around that reality. Examples include automated cloud backups, assisted migration from family members, separately syncing important albums, or at the very least, confirming that photos and chat logs have successfully transferred when switching devices.\nI\u0026rsquo;ve changed my view on phone storage capacity.\nIf someone has a stable computer workflow, 256GB or 512GB might be sufficient. But if most of a person\u0026rsquo;s personal data is stored on their phone, 512GB isn\u0026rsquo;t much to ask for. What it buys isn\u0026rsquo;t just space; it’s less cleanup, fewer file migrations, and less worry about dumping data into an old computer folder you won\u0026rsquo;t open again.\nFor many people, smartphones are no longer mere accessories to computers.\nThe mobile phone is their computer.\nReferences iPhone 17 Pro and 17 Pro Max - Technical Specifications - Apple Galaxy S25 Ultra | Features \u0026amp; Highlights | Samsung US Photos \u0026amp; Privacy - Apple Ask Photos: New AI feature coming to Google Photos Writing Notes Original Prompt Phone internal storage is getting bigger and bigger. I used to think it was unnecessary; 512GB rivals the disk space of a laptop. There is a difference in understanding here. Because I have a desktop computer myself, I regularly back up most of my data to the computer and then clean up the phone\u0026rsquo;s data, such as WeChat records and albums. But now many Gen Z people and the older generation are generally not familiar with computers and rarely use them to manage their data. When it comes to managing photo albums using a computer, they don\u0026rsquo;t seem as good as the built-in phone album features. For example, the phone\u0026rsquo;s built-in AI models can automatically process and analyze data in the albums while charging; both the interactive design and management solution are better than desktop software.\nWriting Strategy Summary The core finding of this article is that the value of large phone capacity can no longer be understood merely as \u0026ldquo;temporary cache.\u0026rdquo; The main body focuses on the cognitive discrepancy regarding data management entry points: the author is accustomed to using a computer, but many users now treat their phone as the primary data repository. Album AI is only used to support factual evidence and does not expand into a full review of mobile AI features. The article deliberately omits side details such as cloud drives, NAS, and specific model purchase recommendations to avoid becoming merely a solution checklist. The conclusion returns the judgment to migration and backup risks: capacity solves storage quantity issues but does not address long-term reliability problems. ","date":"2026-05-06","language":"en","permalink":"https://ttf248.life/en/p/phone-storage-is-not-too-big/","tags":["AI Inspiration Hub","ai","Mobile phone","Document Management","Album"],"title":"A 512GB phone isn't really big anymore.","year":"2026"},{"categories":["The Seven Seconds of a Fish"],"content":"The movie box office during this year\u0026rsquo;s May Day holiday was disappointing; it\u0026rsquo;s no longer simply a matter of \u0026ldquo;which film failed to be a massive hit.\u0026rdquo;\nIf we only discuss the economic downturn, it can certainly explain some things. People are not as financially comfortable as they used to be, so spending money is more cautious—that is a reality. However, I feel that blaming all the problems on the economy is absolving the industry of its fault. It’s not that audiences suddenly stopped liking movies; rather, their patience has been depleted by round after round combination of high promotion/marketing efforts, strong screening slots, and weak content.\nLook at the data first.\nYear Period Scope Total Box Office Viewership Notes 2021 May 1st to May 5th 1.668 billion RMB 44.1054 million According to the China Film Administration, set a record for the May Day period at that time. 2022 April 30th to May 4th The year 2022 cannot be directly used as proof that the movie market has collapsed because that year had a pandemic and cinema operational restrictions, making it an outlier. What is genuinely concerning is this line from 2024 to 2026.\nIn 2023 and 2024, for two consecutive years, it remained around 1.5 billion, with the number of viewers also exceeding 37 million. By 2025, the box office directly dropped to 747 million, and the number of viewers only reached 18.895 million. As of the evening of May 4, 2026, it had already exceeded 660 million, and it will continue to increase on the last day, but even with a final boost, it is difficult to return to the level of 2023 and 2024.\nThis is not normal volatility; it is a clear discontinuity/break.\nWhat\u0026rsquo;s more embarrassing is that the average ticket price for the May Day period in 2026 dropped to around ¥36.9, which is the lowest during this time over the past four years. The tickets are no longer that expensive, but cinema attendance has not significantly recovered. This suggests that the problem is not merely \u0026ldquo;movie tickets are too expensive,\u0026rdquo; but rather that many people have completely lost the impulse/urge to \u0026ldquo;go see a movie at the cinema.\u0026rdquo;\nIt\u0026rsquo;s not like there were never any bad movies before. / There were actually bad movies before.\nIn past years, audiences haven\u0026rsquo;t been unable to pay for mediocre films. It was just that at the time, movie-going as a holiday activity carried a certain inertia. During Spring Festival, National Day, and May Day, people saw it in their social circles, short video platforms promoted it, theaters were fully booked, and marketing buzz was everywhere. Many people bought tickets not because they were truly moved by the film, but because \u0026ldquo;it seemed like everyone else was watching it.\u0026rdquo;\nThis kind of business is very effective in the short term.\nTrending stars can drive the first wave of pre-sales, emotional marketing can turn controversy into buzz, and platform algorithms can push clips to every single person. As long as it takes off during the opening weekend, the box office numbers will become new promotional materials. Even if the film itself is mediocre, it can still maintain the appearance of being a massive hit.\nBut this approach has a side effect: it depletes the audience\u0026rsquo;s trust in movie theaters.\nI still have no interest in catching up on films like Full River Red or Spicy Rolling Hot. It\u0026rsquo;s not that they failed commercially; of course, they succeeded. The problem is that when the public discussion surrounding a film increasingly resembles a marketing campaign, it becomes difficult for audiences to believe that what they are seeing is the work itself. Online, people often say that the promotion and marketing costs of certain films exceed the production costs. I cannot find reliable public financial data for this claim, so I cannot state it as a fact. But from an audience perspective, it shows one thing: people have begun to suspect that the money was not spent on making the movie, but rather on making you feel like you must watch it.\nOnce such suspicion has formed, it is difficult to repair it by relying on the next hot search.\nIn the past, even after criticizing a bad movie, people might still go see it during the next screening cycle. That is not the case anymore. Short videos, streaming series, games, concerts, travel, camping, city walks—there are too many choices for holidays now. If movies cannot provide a reason that they must be watched in a cinema, they will naturally get crowded out/marginalized.\nEconomic downturn is only an accelerator, not the sole reason.\nDuring times when money is tight, people won\u0026rsquo;t stop consuming completely; rather, they will re-prioritize their spending. In the past, spending a couple hundred [currency unit] on a movie ticket plus drinks and popcorn was acceptable. Now, that same amount of money can cover a meal, buy a game, or afford an outing. If movies still rely on hype, traffic, or emotional manipulation to compete for this spending power, the audience will naturally be more hesitant.\nWhat is more problematic is that in the past few years, the film market has led audiences to develop a defensive consumption psychology: the harsher the pre-release hype, the more they tend to wait; the denser the trending topics, the more artificial it seems; and the more exaggerated the opening day box office, the less it indicates if the movie is truly good. Audiences are not ignorant; they simply were too lazy to scrutinize things before.\nThis phrase is quite contextual, and the best translation depends on whether the speaker means \u0026ldquo;keeping account/score\u0026rdquo; in an argument, or simply becoming overly critical of details.\nHere are a few options based on different implied contexts:\n1. (Most common - Implies arguing or scoring faults):\nYou\u0026rsquo;re starting to keep score now. / Now you\u0026rsquo;re getting picky.\n2. (Implies criticizing small details - Nitpicking):\nYou\u0026rsquo;ve started nitpicking. / Now you\u0026rsquo;re fussing over the details.\n3. (More general/literal, but less natural in English):\nNow it\u0026rsquo;s starting to be scrutinized.\nThe collapse of blockbuster seasons like the May Day period isn\u0026rsquo;t that audiences suddenly betrayed movie theaters; rather, it signifies that the guarantee that cinemas once offered has evaporated. Previously, buying a ticket felt like participating in a holiday ritual; now, it feels more like making a calculated risk. If the film is bad, you lose your money, you waste your time, and you are still forced to endure two hours of awkwardness.\nSo I don\u0026rsquo;t think it\u0026rsquo;s a bad thing.\nIn the short term, both cinemas and production companies are struggling. In the long term, if audiences rely less on blind following and the market has less artificial hype, things might actually return to normal. Promotion can lure people into the cinema once, but it cannot make them continuously trust the cinema. What can truly bring people back is the content itself.\nThe problem is whether the industry is willing to acknowledge this.\nIf they continue to point fingers at economics, ticket prices, weather, and short videos, and keep filling up the screening slots with popular stars and marketing platitudes, then the May Day period is only the beginning. The audience won\u0026rsquo;t formally announce their departure from movie theaters; they will just stop buying tickets time after time.\nThis is more frightening than curses/swearing.\nReferences Writing Notes Original Prompt $blog-writer Everyone is saying that this year\u0026rsquo;s May Day film box office has collapsed. Comparing it to previous years\u0026rsquo; data, it is indeed dismal. Putting aside the economic downturn and the fact that people aren\u0026rsquo;t as wealthy in their pockets anymore, are previously released flop films not at fault? The spending driven by capital + hype will eventually backfire. This is the best backlash—are people simply not going to movie theaters? Man Jiang Hong and Hot \u0026amp; Spicy, I still can’t bear watching these two movies; their promotional costs might even exceed their production costs. Remember to organize a specific table comparing how the May Day box office has collapsed over these five years.\nSummary of Writing Ideas Create a table using May Day period data from 2021 to 2026, but clearly state that 2026 is not yet the final closing number. Mark 2022 separately as an anomaly due to the epidemic, and focus the main text on the gap/discontinuity between 2024 and 2026. The core argument is that the audience\u0026rsquo;s trust in high marketing expenditures, guaranteed screening slots, and low-quality content has begun to face a backlash. Do not treat \u0026ldquo;marketing expenditure exceeding production costs\u0026rdquo; ","date":"2026-05-05","language":"en","permalink":"https://ttf248.life/en/p/wuyi-box-office-trust-collapse/","tags":["AI Inspiration Hub","May Day Package/Set (or May Labor Day)","Movie Box Office","Consumption"],"title":"The thing that collapsed around the May 1st period wasn't the box office, but the trust.","year":"2026"},{"categories":["Diary Ramblings"],"content":"I recently revisited this issue, and the conclusion is quite straightforward: It\u0026rsquo;s not that Huawei \u0026ldquo;cannot use TSMC\u0026rdquo;; rather, it is that U.S. regulations have severely constrained its compliant pathways. Xiaomi is able to access TSMC simply because it was never included in the same export control list as Huawei.\nWhy Has Huawei Been Restricted? Huawei was first placed on the Entity List by the U.S. Department of Commerce on May 15, 2019. This list means that exporting American technology to this company requires a license, and that license can also be rejected.\nThe real roadblock was the rules upgrade on May 15, 2020. The U.S. Department of Commerce explicitly stated that it would restrict Huawei\u0026rsquo;s ability to use American technology and software overseas for chip design and manufacturing, effectively sealing off the path of \u0026ldquo;finding an overseas foundry to bypass it.\u0026rdquo; TSMC made this even clearer in its 2020 annual report: to ensure compliance, they stopped shipping to Huawei starting from September 15, 2020.\nTherefore, Huawei is not merely restricted from \u0026ldquo;buying chips,\u0026rdquo; but is bottlenecked across the entire value chain encompassing design, manufacturing, contract fabrication, equipment, and software. You can understand it this way: for Huawei, the problem isn\u0026rsquo;t simply finding a factory, but whether that factory dares to accept the work, and if doing so would violate American regulations.\nWhy Xiaomi Still Can Work with TSMC Xiaomi and Huawei do not have the same treatment. Xiaomi has not been placed on the Commerce Department\u0026rsquo;s Entity List, so it is not in the situation where \u0026ldquo;any contract taken by the factory could potentially violate restrictions,\u0026rdquo; like Huawei.\nMany people mistakenly equate Xiaomi and Huawei regarding events in 2021, but this is inaccurate. Back then, Xiaomi was listed once by the U.S. Department of Defense as a \u0026ldquo;Chinese military company,\u0026rdquo; but that restriction applied to investments made by U.S. persons. The court issued a preliminary injunction in March 2021, and the U.S. officially lifted this securities restriction on May 25, 2021. It was not an export embargo like Huawei faced, nor was it a comprehensive ban on chip foundry services.\nMore importantly, in recent years, the US has become increasingly targeted. Its restrictions are not aimed at all Chinese consumer electronics, but specifically at high-end AI chips, supercomputing, and related equipment. When updating the rules on October 17, 2023, BIS stated it very clearly: the focus is on advanced computing semiconductors, semiconductor manufacturing equipment, and supercomputing items, with the core objective being military AI capabilities and the risks associated with military-civil fusion.\nThis explains why Xiaomi\u0026rsquo;s XRING O1 can still utilize TSMC. It is a consumer electronics chip, not a highly restricted AI training chip like Huawei\u0026rsquo;s. As long as the customer has not been blacklisted and the chip specifications do not cross regulatory red lines, TSMC still maintains compliance scope.\nWho Else Seeks TSMC Foundry Services Yes, and quite a few. Public reports already mentioned in 2024 included Chinese AI chip companies such as MetaX and Enflame, which had to downgrade their designs before resubmitting them merely to secure TSMC capacity. This detail speaks volumes: the US is not restricting whether \u0026ldquo;Chinese products can use overseas foundries,\u0026rdquo; but rather ensuring that \u0026ldquo;high-end AI chips cannot easily bypass (these restrictions).\u0026rdquo;\nIn other words, what is truly being heavily restricted is the AI chip line, not all Chinese companies or all Chinese products. Consumer-grade SoCs might still have some room, but high-end AI accelerators and training chips are becoming increasingly difficult to obtain.\nHow Was Huawei\u0026rsquo;s AI Chip Discovered? The link/chain this time has been exposed not because of a public admission from Huawei, but through a device teardown.\nIn October 2024, Reuters reported that TechInsights disassembled a Huawei product and found a chip that appeared to be manufactured by TSMC; subsequently, TSMC also notified the US side. Immediately after, Reuters further reported that TSMC stopped shipping to Sophgo, a Chinese chip design company, because it found its fabricated chips in Huawei\u0026rsquo;s AI processor.\nThe product corresponding to this line is Huawei Ascend 910B. In other words, what the outside world is building/assembling is not a phone chip, but rather Huawei\u0026rsquo;s AI processor. The reason it is problematic is not merely because of \u0026ldquo;which foundry was used,\u0026rdquo; but because it falls into one of the most sensitive categories of chips in the United States.\nMy Own Assessment Upon prolonged observation, it becomes clear that America\u0026rsquo;s strategy is not about generalized efforts but rather a progressively targeted approach. Huawei serves as the benchmark; AI chips are the main battleground, while foundries are merely an execution component.\nXiaomi being able to use TSMC does not mean that US restrictions on China’s chips have eased; it just means they haven\u0026rsquo;t crossed the next, narrower, and harder threshold. Huawei\u0026rsquo;s difficulties are not because \u0026ldquo;Huawei is bigger,\u0026rdquo; but because it has been placed squarely in the crosshairs of export controls—it cannot circumvent them.\nReferences Commerce Announces the Addition of Huawei to the Entity List Commerce Addresses Huawei’s Efforts to Undermine Entity List TSMC 2020 Annual Report Commerce Strengthens Restrictions on Advanced Computing Semiconductors DOD Releases List of Chinese Military Companies [Xiaomi says U.S. formally lifted securities ban](https://www.investing.com/news/stock-market-news/chinas-xiaomi-says-us-has-formally Writing Notes Original Prompt Please query relevant government documents and explain why TSMC cannot manufacture Huawei\u0026rsquo;s chips. Regarding Xiaomi’s “Xuanjie” chip, if TSMC can manufacture it, wasn’t Xiaomi sanctioned by the US? Besides Xiaomi, are there any other domestic companies using TSMC for manufacturing? The focus now seems to be heavily on locking down AI chips. Could you detail the specifics of Huawei\u0026rsquo;s AI chip outsourcing/manufacturing: how was this discovery made, and what specific product is involved?\nSummary of Writing Ideas This piece focuses on the rule differences between \u0026ldquo;why Huawei is blocked vs. why Xiaomi can still operate.\u0026rdquo; The section on Huawei integrates historical timelines: listing names in 2019, and adding the foundry chain in 2020. The section on Xiaomi clarifies separately: it encountered investment restrictions, but not a Huawei-style export ban. The article deliberately avoids developing into a comprehensive overview of the US-China tech war, only retaining parts directly related to TSMC\u0026rsquo;s foundry services. Huawei\u0026rsquo;s AI chip discovery process is structured as a single line following \u0026ldquo;teardown - tracing - foundry chain.\u0026rdquo; The conclusion returns to a practical judgment: what is currently targeted are high-end AI chips, not all Chinese chips. ","date":"2026-05-04","language":"en","permalink":"https://ttf248.life/en/p/huawei-xiaomi-tsmc/","tags":["AI Inspiration Hub","ai","Huawei","Xiaomi","Chip","Export Controls"],"title":"Huawei is blocked, but Xiaomi can find TSMC","year":"2026"},{"categories":["The Seven Seconds of a Fish"],"content":"After May 1st, when regular people buy a drone, it feels like they are getting more than just a flying camera.\nIt is more like a flying terminal equipped with identity tracking, trajectory monitoring, and approval mechanisms. The impact of this change on DJI is not simply selling fewer machines; rather, the entire product definition of consumer drones has been rewritten. What DJI can actually do is limited. At least in heavily regulated areas like Beijing, it can only reclaim its distribution channels and then integrate compliance capabilities into both its products and service workflows.\nThis Change Is Not a File What is easily confused are policies at two different levels.\nAt the national level, two mandatory national standards will be implemented starting on May 1, 2026. One is the \u0026ldquo;Real-name Registration and Activation Requirements for Civil Unmanned Aerial Vehicles,\u0026rdquo; addressing the question of \u0026ldquo;who can fly.\u0026rdquo; UAVs must complete real-name registration and pass system verification before they can activate and obtain flight capability. The other standard is the \u0026ldquo;Standard Specification for System Operational Identification of Civil Unmanned Aerial Vehicles,\u0026rdquo; addressing the question of \u0026ldquo;who is flying.\u0026rdquo; According to interpretations by the Civil Aviation Administration, civil UAVs that lack operational identification sending functions should cease operation starting from May 1, 2026.\nIt\u0026rsquo;s no longer as simple as just affixing a real-name registration QR code like before. Previously, the general user intuition was that simply registering it after purchase would be enough to prevent misuse. Now, the regulatory logic is much more advanced: whether the machine can be activated, whether it can be identified while in flight, and whether the manufacturer provides interfaces and upgrade plans—all of these factors will become integral parts of the product itself.\nAt the Beijing level, it is more direct.\nThe \u0026ldquo;Beijing Regulations on the Management of Unmanned Aerial Vehicles\u0026rdquo; will also be implemented on May 1, 2026. Beijing has designated the entire administrative area as a controlled airspace for unmanned aerial vehicles, requiring an application for all outdoor flight activities. More critically, sales, transportation, carrying, and storage are all subject to control: It is prohibited to sell or rent unmanned aerial vehicles and their core components to units or individuals within the administrative region of Beijing, and transporting or carrying drones and their core components into Beijing is also forbidden. The situation concerning existing drones that complete real-name registration and information verification will be addressed separately.\nTherefore, what the outside world perceives regarding \u0026ldquo;DJI\u0026rsquo;s withdrawal\u0026rdquo; (or discontinuation) is not that sales are suddenly prohibited across the entire national market, but rather that the specialized Beijing market has been individually restricted. This distinction is crucial. National policy focuses on traceability requirements, whereas Beijing\u0026rsquo;s policy enforces high-intensity spatial control.\nWhat is the Impact on DJI? The most direct impact of DJI is that the Beijing consumer market has essentially lost normal retail scenes.\nJiemian News reported that after the afternoon of April 29th, DJI stores in Beijing will no longer sell drone products, and online platforms have also ceased shipping to the Beijing area. If Beijing users require subsequent repairs, the stores will not bear repair responsibilities; they must instead use self-mailing repairs from other provinces/cities or seek replacements through authorized service centers. This change is quite problematic for a consumer electronics company because it not only means losing sales in one city but also impacts the entire customer experience chain.\nDrones are not cell phones. While a phone may be difficult to buy in Beijing, you can purchase it elsewhere, and it will function the same way when brought back. Drones are different; buying, carrying, flying, storing, or maintaining them might trigger the same set of regulatory controls. Even if Beijing users have the desire to purchase [drones], they are often discouraged by practical concerns such as, \u0026ldquo;Can I bring it back after purchasing?\u0026rdquo;, \u0026ldquo;Is flying allowed?\u0026rdquo;, and \u0026ldquo;What happens if it breaks?\u0026rdquo;\nThe second impact is the continued rise in product compliance costs.\nDJI\u0026rsquo;s previous strength was transforming aerial drones into very mature consumer electronics products. The process—unboxing, activating, connecting the App, taking off, and shooting—became smoother and smoother. However, after new regulations, product experiences must embed more regulatory actions: refreshing real-name registration status, interacting with the UOM platform, applying for flight activities, reporting operational identification data, and explaining the relationship between no-fly zones and government controlled airspace.\nUsers will not perceive these things as \u0026ldquo;functional enhancements.\u0026rdquo; Users will only feel that it makes things more complicated/troublesome. However, manufacturers must implement them, and if done poorly, they will become post-sale issues.\nThe third impact is that DJI\u0026rsquo;s consumer advantages will be compressed, making industry capabilities more important.\nIn a place like Beijing, demand for personal aerial photography is severely restricted. The sectors that can genuinely navigate the necessary procedures are typically those related to emergency response, surveying and mapping, inspection, academic research, public safety, or film production—all areas with clear stakeholders and defined purposes. These applications do not necessarily prioritize \u0026ldquo;cheap and fun,\u0026rdquo; but rather focus on mission reliability, complete approval documentation, data traceability, and implementable services.\nThis isn\u0026rsquo;t necessarily all bad news for DJI. DJI already has product lines dedicated to industrial applications, covering scenarios such as agriculture, energy, and mapping/surveying. However, the potential scope for consumer-grade products will narrow. The narrative of average people buying a Mini and taking it on casual trips is becoming increasingly impractical in highly regulated cities.\nHow Did DJI Respond? In the short term, DJI\u0026rsquo;s response is relatively pragmatic: Beijing channels are removing products from shelves; online sales restrict shipping; after-sales service shifts to cross-regional mailing for repair or authorized service centers; and public documentation continues to guide users toward real-name registration and flight reporting.\nThis isn\u0026rsquo;t the most elegant approach, but it is a realistic one. Local regulations have explicitly prohibited the sale and rental of drones and core components to Beijing, leaving the company with little room to maneuver. Continuing to push sales is meaningless; instead, it will transfer compliance risks to the stores and users.\nEven on DJI\u0026rsquo;s official support pages, they have actually been guiding users toward the UOM system for some time now. For example, the real-name registration page prompts DJI drone users to complete their registration at the earliest and mentions that they can check their verified identity status within DJI Fly. The flight reporting page also details procedures such as the UOM application process, pre-flight reporting, and post-flight submission. In other words, it wasn\u0026rsquo;t that DJI only started facing regulation on May 1st; rather, on this date, many things that were originally merely \u0026ldquo;advisory\u0026rdquo; became hard constraints for whether or not the product could continue to be used.\nI think this is what makes DJI feel the most discomfort.\nIt cannot solely focus on hardware, nor can it be limited to just the image experience. It must also function as a compliant middleware layer: when users do not understand policies, the App must explain them; if a user cannot take off/launch, the system must provide reasons; when government platform interfaces change, the firmware and cloud services must adapt accordingly; and when existing devices no longer meet requirements, it must offer upgrade or replacement solutions.\nConsumer electronics companies fear this kind of thing the most. Because these types of costs are difficult to reflect in specification sheets, and they are also hard to turn into a selling point that users are willing to pay for.\nFuture Development of Drones Drones are highly likely to split into two main paths/tracks in the future.\nOne type is more like a tool. It serves specific tasks: requiring applications before flight, conducting identification during flight, and generating records after flight. It can be applied to scenarios such as inspection, surveying/mapping, agriculture, fire fighting, logistics, and urban governance. The focus here is not on spectacular shots, but rather on reliable processes, clear accountability, and data closed-loops. If the low-altitude economy truly wants to develop, it should rely on this path, rather than people just flying randomly in city parks.\nAnother trend is that it\u0026rsquo;s becoming a more restricted imaging toy. Consumer aerial photography will still exist, but it will become increasingly dependent on permissible flying zones, scenic area rules, local policies, and platform compliance. In the future, people buying drones may need to prioritize the use case—much like when buying a car—rather than focusing solely on battery life, image quality, and weight.\nI don\u0026rsquo;t entirely agree with simply interpreting this situation as \u0026ldquo;suppressing DJI.\u0026rdquo; Beijing’s regulations are indeed strict and unfriendly to ordinary consumers. However, from a regulatory perspective, the biggest difference between drones and cameras is that drones enter public airspace. As long as it can fly, carry a camera, and traverse walls and roads, they cannot be regulated simply like standard consumer electronics.\nThe real problem is that regulation cannot rely solely on prohibition.\nIf the future only imposes restrictions like \u0026ldquo;cannot fly, cannot sell, or cannot carry,\u0026rdquo; then the drone industry will be relegated to specialized equipment used by a select few entities, effectively pushing out ordinary consumers and small business teams. A better direction for development would be to clarify the compliance procedures: specifically, which areas are permissible for flight, how long is the application process, why might an application be rejected, how to register temporary activities, how cross-city transport should be handled, how existing equipment can be upgraded, and how liability boundaries are determined.\nDJI must continue moving in this direction. While making the hardware smaller, more stable, and safer is only one part, what is more important is productizing features such as identity recognition, geo-fencing, operational reporting, flight application processes, and after-sales workflow management. It might not sound glamorous, but it could be more critical than further improving image quality.\nDrones have transitioned from free operation to institutional control—this shift has already occurred. For DJI, Beijing was merely the first city where this reality was made public. For ordinary users, in the future, asking \u0026ldquo;Where can I legally fly?\u0026rdquo; before buying a drone may be more important than asking \u0026ldquo;How clear are the shots this machine takes?\u0026rdquo;\nReferences China Civil Aviation Administration: \u0026ldquo;Interpretation | Mandatory National Standard \u0026rdquo;》 China Civil Aviation Administration: [\u0026ldquo;Interpretation | \u0026rdquo;](https://www.caac.gov.cn/XXGK/XXGK/ZCFBJD/202601/t20260 Notes on Writing Original Prompts $blog-writer The impact of mainland China\u0026rsquo;s May 1st drone new policy on DJI, how did DJI respond? How should drones develop subsequently?\nSummary of Writing Ideas This piece breaks down the changes on May 1, 2026, into national mandatory standards and Beijing local regulations, preventing the mistake of listing the Beijing sales ban as a nationwide one. The core conclusion is that drones are shifting from consumer electronics products to regulated flight terminals, meaning DJI\u0026rsquo;s impact is not just on sales volume, but also requires rewriting product experience and service linkages. The focus for DJI\u0026rsquo;s response should be writing about channel delisting, shipping restrictions, after-sales migration, and UOM compliance guidance, rather than framing it as proactive marketing actions. Future developments are leaning towards \u0026ldquo;toolification\u0026rdquo; and \u0026ldquo;compliance productization,\u0026rdquo; without expanding on the side branch of overseas market limitations and US security reviews. ","date":"2026-05-04","language":"en","permalink":"https://ttf248.life/en/p/drone-policy-dji-2026/","tags":["AI Inspiration Hub","Drone","DJI","Low-Altitude Economy","Policy Watch"],"title":"New Drone Regulations Take Effect, DJI First Gets Blocked in Beijing","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"Wuliangye\u0026rsquo;s performance fluctuation this time was not merely an ordinary dip; it directly disrupted the long-held unspoken norms within the baijiu industry. According to its 2025 annual report, the company reported full-year revenue of 40.529 billion yuan and net profit attributable to owners of 8.954 billion yuan. What is even more striking is that the company also conducted prior accounting error corrections for the first quarter, half year, and third quarter of 2025. Simply put, many figures from 2025 that initially looked impressive were later recalculated.\nMy judgment on this matter is straightforward: It\u0026rsquo;s not simply an \u0026ldquo;earnings crash,\u0026rdquo; but rather Wuliangye telling the market that their past approach of relying on channel pressure and reporting through future reserves can no longer be sustained.\nWhat were the previous rules The most core rule in the Baijiu industry used to be not \u0026ldquo;how much was actually sold at the terminal,\u0026rdquo; but rather \u0026ldquo;getting the product out first, and making the accounts look good first.\u0026rdquo;\nManufacturers push goods onto distributors, who then move them down to lower-level channels. This allows revenue and profit to be recorded on reports prematurely. As long as wholesale prices remain stable and inventory can still be absorbed, everyone assumes this logic is sound. On the surface, it appears that the brand is expanding; in reality, many times, it is the channel preempting future sales for the manufacturer.\nThis model is viable, relying on three prerequisites. First, the industry is still expanding, and distributors are willing to commit for the long term; second, the pricing structure remains stable, leading everyone to believe that the goods can eventually be successfully sold out; and third, brand strength is sufficient so that inventory buildup will not immediately turn into a crisis.\nSo previously, what the Baijiu industry feared most was not slow sales, but price instability (or \u0026ldquo;price erosion\u0026rdquo;). Once prices start to drop/are unstable, distributors lose confidence, and inventory shifts from being \u0026ldquo;good-looking on paper\u0026rdquo; to being \u0026ldquo;strikingly visible in the warehouse.\u0026rdquo;\nWhy Did Wuliangye Stand Out? I think Wuliangye will stand out/step up this time, based on at least three reasons.\nFirst, the industry has truly entered a period of deep adjustment. Wuliangye clearly states in its annual report that the baijiu sector will enter a comprehensive and deep adjustment phase—the \u0026ldquo;deep water zone\u0026rdquo;—in 2025, and the overall development landscape of the industry is undergoing accelerated evolution. Furthermore, it itself admits that it must proactively align with market adjustments and actively help alleviate pressure and difficulties within distribution channels.\nSecondly, the former methodology is starting to undermine itself. It was stated very clearly in the preliminary accounting error correction announcement that the company reviewed its 2025 business model and, based on the principle of prudence (or conservatism), adjusted the accounting calculations related to recognizing some of the 2025 business revenue. In other words, those seemingly perfect reports previously generated by relying on channels and confirmation timing can no longer be taken as the truth.\nThird, governance pressure is also increasing. The annual report summary stated that the Chairman was absent from the board meeting because he could not perform his duties normally. Furthermore, external media also disclosed at the end of February that custodial measures were taken against him. Given this situation, it is even less likely that the company can continue to postpone old issues; rather, historical burdens are more prone to being exposed all at once.\nSo, this time\u0026rsquo;s \u0026ldquo;shake-up\u0026rdquo; isn\u0026rsquo;t because Wuliangye suddenly became particularly assertive; rather, it’s that it can no longer avoid shaking things up. The old rules have been stretched to their breaking point, and continuing to maintain superficial prosperity will only make the underlying deficits much larger.\nChanges Before and After Financial Reports What is most noteworthy this time is not the total figure for any given year, but that the three sets of reports disclosed for 2025 have been revised simultaneously. The correction announcement clearly stated that the items adjusted pertain to parts of the consolidated balance sheet and consolidated income statement for Q1, semi-annual, and Q3 of 2025, and do not affect the cash flow statement.\nFirst, look at the most core revenue and profit:\nPeriod Original Reported Operating Revenue Restated Operating Revenue Original Reported Net Profit Attributable to Parent Restated Net Profit Attributable to Parent Q1 2025 369.40 Billion Yuan 170.86 Billion Yuan 148.60 Billion Yuan 44.16 Billion Yuan H1 2025 527.71 Billion Yuan 235.10 Billion Yuan 194.92 Billion Yuan 46.24 Billion Yuan Q3 2025 609.45 Billion Yuan 306.38 Billion Yuan 215.11 Billion Yuan 64.75 Billion Yuan This set of numbers is very striking. Revenue has been revised downwards three times, each time approaching a \u0026ldquo;halving.\u0026rdquo; The profit reduction is even more severe. Especially in the semi-annual report, net profit attributable to owners dropped directly from 194.92 billion yuan to 46.24 billion yuan—it almost completely stripped away the sense of prosperity that was previously there.\nIf you look at the changes in the balance sheet, it becomes clearer that these are not just minor definitional tweaks or cosmetic adjustments:\nPeriod Other Current Assets Other Current Liabilities Other Payables Taxes Payable Q1 2025 11.82 billion RMB -\u0026gt; 34.99 billion RMB 5.04 billion RMB -\u0026gt; 190.93 billion RMB 115.30 billion RMB -\u0026gt; 106.16 billion RMB 81.68 billion RMB -\u0026gt; 56.83 billion RMB H1 2025 1.91 billion RMB -\u0026gt; 81.87 billion RMB 4.23 billion RMB -\u0026gt; 277.49 billion RMB 189.05 billion RMB -\u0026gt; 170.09 billion RMB 45.40 billion RMB -\u0026gt; 39.31 billion RMB Q3 2025 1.44 billion RMB -\u0026gt; 85.47 billion RMB 3.86 billion RMB -\u0026gt; 278.27 billion RMB 93.46 billion RMB -\u0026gt; 74.49 billion RMB 15.56 billion RMB -\u0026gt; 15.44 billion RMB I am more concerned about \u0026ldquo;Other Current Liabilities.\u0026rdquo; Its elevated value at all three disclosure points suggests that some items from the past were indeed masked within the channel and settlement cycle/process. In other words, this isn\u0026rsquo;t simply a decline in profit; rather, both revenue recognition and the underlying channel strategy are being revealed simultaneously.\nWhen viewing the full-year 2025 report alongside\nWhat Comes Next In the short term, the baijiu industry will look worse, but also more realistic.\nBased on the restated Q4 2025 and Q1 2026 reports, the statements will be more \u0026ldquo;straightforward\u0026rdquo; than before, but also tougher to look at.\nMore importantly, the industry will gradually shift from focusing on \u0026ldquo;who has better distribution power\u0026rdquo; to determining \u0026ldquo;who can genuinely sell the wine directly to the consumer.\u0026rdquo; Wuliangye has outlined this direction in its annual report: traditional channels, e-commerce, group buying, direct sales to corporate clients, end-point optimization, and consumer nurturing—all point towards achieving more direct sales movement.\nThe road ahead won\u0026rsquo;t be easy. Once the old rules are dismantled, distributor inventory pressure will become more pronounced, manufacturer profit fluctuations will increase, and the intermediate players in the industry that rely on price differences and information asymmetries for revenue will also face greater difficulties.\nWhat I Pay More Attention To What is truly worth watching regarding this matter is not how much Wuliangye dropped this time, but whether it has the guts to admit: that many of the impressive figures over the past few years were never built upon genuine consumer spending.\nIf we view white liquor as a mature industry, it is highly unlikely that it will revert to a state characterized by uncontrolled expansion, artificial supply suppression, or unjustified price hikes. The sector will undergo deeper differentiation; while leading brands will maintain their position, growth will slow down, and corporate financial reports will reflect genuine business performance rather than speculative narratives.\nFor investors, this is not pure bad news. The drawback is that the high-growth era, which was sustained by the old order, is unlikely to return; but the upside is that when looking at financial reports in the future, we won\u0026rsquo;t constantly have to suspect whether goods were stuffed into channel warehouses again.\nReferences Yibin Wuliangye Co., Ltd. 2025 Annual Report Summary Yibin Wuliangye Co., Ltd. 2025 Annual Report Full Text Announcement from Yibin Wuliangye Co., Ltd. Regarding Correction of Previous Accounting Errors Yibin Wuliangye Co., Ltd. 2026 First Quarter Report Wuliangye\u0026rsquo;s Revenue and Net Profit Both Decline in 2025, the First Time Since 2015! Wuliangye Surprises Investors: Net Profit Slips Over 70% in 2025, But Jumps Greatly in Q1 2026 Writing Notes Original Prompt Analyzing the causes and consequences of Wuliangye\u0026rsquo;s poor performance. What were the previous industry norms? What is the subsequent development? And why did Wuliangye challenge the status quo?\nSummary of Writing Concepts First, lock down the 2025 report and the prior accounting adjustments to demonstrate that this is not normal volatility, but rather a recalculation of metrics definitions. Restrict the concept of \u0026ldquo;old rules\u0026rdquo; to the existing logic: channel inventory pressure, immediate booking upon shipment, and using inventory for reporting purposes. Explain Wuliangye\u0026rsquo;s actions as the result of being pushed by industry adjustments, channel pressures, and corporate governance pressures simultaneously. The focus later should be on how the industry will move toward actual consumption/real sales, consumer centrality, and more direct distribution models. This article deliberately avoids a cross-comparison between Wuliangye and Moutai, nor does it include short-term stock price predictions; the main thread focuses solely on changes in rules/regulations. ","date":"2026-05-04","language":"en","permalink":"https://ttf248.life/en/p/wuliangye-breaks-the-table/","tags":["AI Inspiration Hub","Wuliangye","Baijiu","Financial Statements","Financial Knowledge Base","investment"],"title":"Why is Wuliangye causing such a commotion/stir?","year":"2026"},{"categories":["Diary Ramblings"],"content":"The most interesting thing about AI short dramas is not that they can immediately replace live-action short dramas, but that they turn genres that were previously considered \u0026ldquo;too risky to bet on\u0026rdquo; into viable subjects for experimentation.\nZombies, armies, spirit beasts, fantasy—these elements are incredibly difficult to execute in traditional live-action short dramas. It\u0026rsquo;s not a failure of screenwriting; it\u0026rsquo;s that every single step requires funding: extras, costumes and makeup, sets, special effects, staging/choreography, safety measures, and post-production. Furthermore, the commercial logic of short dramas demands speed, low cost, and high-frequency uploads. The greater the imaginative scope of a theme, the easier it is for costs to spiral out of control.\nAI first revised this budget sheet. It doesn\u0026rsquo;t guarantee that every shot will be high-end, but it manages to constrain elements that previously required building sets, hiring massive crews, or doing elaborate special effects, down to a feasible/experimental scope. Zombies no longer need to organize 100 extras; mythical creatures don\u0026rsquo;t automatically drain a cinematic-level VFX budget; and army scenes don\u0026rsquo;t necessarily have to start with costumes and locations.\nIn the era of live-action short dramas, many genres aren\u0026rsquo;t that no one wants to film them; rather, producers are simply afraid to start filming.\nIf you want to film an army scene, you must first address where the personnel come from, how to stage the environments, and how to manage the vehicles and explosions. Filming zombies requires dealing with makeup effects, chases, crowd scenes, and special effects. Filming mythical beasts or high fantasy is even more complicated because it is difficult to verify preliminary elements like \u0026ldquo;what exactly does this thing look like, and will its movement be believable?\u0026rdquo; on a low budget.\nSo, in the past, many projects died very early on. They weren\u0026rsquo;t killed during broadcast, nor were they rejected by audience feedback; they died at the production table. Before we even entered proper creative discussions, the budget would already shut it down and tell you to stop dreaming.\nWhat AI first contributed to short-form dramas was establishing this threshold. It’s not about how much it elevated the aesthetic ceiling of these dramas; rather, it is pulling a batch of themes that were originally deemed \u0026ldquo;unworthy of even attempting\u0026rdquo; back into a workable range—a scope where projects can be approved, prototypes can be built, and mistakes can be repeatedly made and corrected.\nWhy are these particular subjects popping up first? This also explains a very intuitive phenomenon: The AI short dramas that initially appeared frequently were not office romance, family melodrama, nor were they the most cost-effective urban dialogue pieces, but rather genres like mythology, fantasy, adventure, and science fiction—elements that are inherently difficult to film practically.\nThe reasons are straightforward. For genres that are highly realistic, light on dramatic scenarios, and rely heavily on actors\u0026rsquo; performance and the texture of life, the advantages AI currently offers are less direct. However, once a genre relies heavily on world-building, monsters, mythical creatures, large-scale set pieces, and non-realistic environments, the value of AI immediately becomes very tangible.\nIt first made the process of \u0026ldquo;imagining it out\u0026rdquo; much easier (or cheaper).\nIn content formats like short dramas—which are inherently highly sensitive to economic cycles, funding constraints, and risk tolerance—the party that lowers the cost of visualizing imagination first will be the first one to bring concepts and genres previously deemed unproducible onto the screen.\nWhat Does Public Case Proof / Demonstrate Based on public case studies, this line/trend has been very consistent.\nOn 2024-07-08, Kuaishou premiered The Legend of the Mountains and Seas\u0026rsquo; Miraculous Mirror: Cleaving Waves and Cutting Waves, described as \u0026ldquo;China\u0026rsquo;s first original AIGC fantasy micro-short drama,\u0026rdquo; at the WAIC forum. This action itself is highly representative. What AI approached initially was not a low-cost reality genre, but rather a fantasy micro-short drama that requires strong world-building and visual effects support.\nThe AI short drama Journey to the West, launching on 2025-01-01, has switched its setting to Chinese mythology. Scenes like Flower Fruit Mountain, Water Curtain Cave, and Dragon Palace are inherently difficult to film practically with a small budget. What AI provides here is not just \u0026ldquo;the ability to generate images,\u0026rdquo; but rather the capability to create deliverable visuals for these scenes at a low cost first.\nBy 2025-02-24, The Mystery of Majia Cave\u0026rsquo;s Divine Staff Code shifted its theme to prehistoric tribes, archaeological fantasy, and totem narratives. A very crucial detail in the Science and Technology Daily report is that the team did not simply let AI generate random content; instead, they fed it research reports, 3D scans, and ancient texts, allowing it to make inferences within archaeological boundaries. In other words, AI is not merely cheap; it has transformed themes that previously required extremely high verification costs into an iterative production process.\nLooking back, when CCTV.com reported on the premiere of \u0026ldquo;New World Loading\u0026rdquo; on 2025-06-26, it was no longer restricted to a single fantasy genre. Instead, it combined 7 unit dramas encompassing science fiction, fantasy, absurd comedy, history, and more. This signal is more important than any single case because it demonstrates that AI short dramas are moving beyond occasionally shooting supernatural mystery content; they are beginning to treat diverse genres, large worldviews, and style transitions as a continuously scalable production model.\nWhat Appears to Be a Technical Gap Is Actually About Deliverability Viewing only these cases, it is easy to misunderstand that \u0026ldquo;AI helps save everyone money on special effects.\u0026rdquo; The issue/scope is much wider than that.\nBy 2026-02-05, when Kuaishou released Kailin 3.0, the official focus was heavily placed on narrative control, consistency, videos of up to 15 seconds, and multi-character/multi-language native audio. When applied to short drama production, these terms translate into plain language as: Are the characters consistent (looking like the same person throughout)? Can the shots connect smoothly? Will the plot remain cohesive? And will scene transitions be jarring or structurally flawed?\nThis shows that AI short dramas are no longer just solving the problem of \u0026ldquo;whether it can be drawn first,\u0026rdquo; but are approaching \u0026ldquo;whether it can be connected like a finished deliverable product.\u0026rdquo;\nOn 2026-04-15, a Kuaishou executive publicly mentioned that Keling has reduced the cost of micro short dramas to less than one third of traditional models, and shortened the cycle by over 60%. I am more inclined to view this metric as an industry anchor point released by the platform side, rather than a general number applicable to the entire industry. However, it at least demonstrates one thing: that production methods are changing, and thematic boundaries will change accordingly.\nWhen production shifts from \u0026ldquo;assessing resource sufficiency\u0026rdquo; to \u0026ldquo;evaluating conceptual potential,\u0026rdquo; those who will benefit first will certainly not be the most realistic genres, but rather those that require immense budgets—genres that are easiest to get killed by budget constraints.\nWhere are the remaining boundaries/limitations? Of course, this does not mean that AI short dramas have replaced live-action human dramas.\nIt merely shifted the hurdle from mere feasibility (\u0026ldquo;whether it can be shot\u0026rdquo;) to narrative quality (\u0026ldquo;whether it is well-told\u0026rdquo;). Generating a spirit beast does not mean you automatically have a coherent Xuanhuan short drama; creating a war scene alone does not automatically establish character relationships, emotional pacing, or rhythmic control.\nMany AI short dramas, even now, look more like \u0026ldquo;high-concept premise trailers\u0026rdquo; than complete narratives. They prove that the freedom to explore diverse themes has been released, not that their narrative competence has been adequately filled in.\nSo my judgment on this matter remains the same, though I\u0026rsquo;ve refined it since the previous draft: what AI did first for the short drama genre was not an aesthetic revolution, but rather putting a batch of previously scrapped concepts—those rejected due to perceived budget limitations—back onto the project proposal table.\nZombie, military, spirit beast fantasy are just the most obvious examples. There will be many more things later that shouldn\u0026rsquo;t appear in low-budget short dramas, which were brought into the test shooting area by AI. But what truly determines whether these genres can remain is still the script, pacing, and characters, not merely \u0026ldquo;finally being able to make it.\u0026rdquo;\nReferences Writing Notes Original Prompt AI short dramas have significantly expanded the themes of the short drama market: zombies, military, spiritual beast fantasy. Previously, live-action short dramas in these genres had production costs that were difficult to control. Using AI for this perfectly aligns with the needs of the industry.\nBased on the original prompt above, this piece establishes its core theme, material density, and structure following the methodology of the first draft. The date field uses the original publication time, and all other content serves only the scope committed to by the current article.\n","date":"2026-05-04","language":"en","permalink":"https://ttf248.life/en/p/ai-short-drama-budget-got-repriced/","tags":["AI Inspiration Hub","ai","Short Drama / Short Series","AIGC","Content Industry"],"title":"Filming a short drama about zombies and spiritual beasts—the first thing that changes (or gets cut) is the budget spreadsheet.","year":"2026"},{"categories":["Investment"],"content":"I bought 006327 today on Alipay. I thought I would place the order before 3 PM, but what I received was based on \u0026ldquo;today\u0026rsquo;s Hang Seng Tech closing price.\u0026rdquo; The profit displayed on the page didn\u0026rsquo;t update for ages, and confirming the shares was also delayed. My first reaction was sheer shock: how is this thing actually settled/transacted? And why do I have to wait another two days?\nTo be honest, this misunderstanding is extremely common. Alipay has made buying and selling over-the-counter (OTC) funds look too much like placing stock orders, but fundamentally, there are two pitfalls in this matter. First, 006327 is absolutely not the Hang Seng Tech Index Fund. Second, when you buy a fund through OTC channels, the price you get is not based on an index\u0026rsquo;s real-time closing point, but rather the Net Asset Value (NAV) calculated by the fund company for that specific day. Furthermore, coupled with the\nCorrecting a Misconception 006327 is Yifangda CSI Overseas Internet 50 ETF Feeder (QDII) A. The underlying index it tracks is the CSI Overseas China Internet 50 Index, not the Hang Seng Tech Index.\nThese two things appear to be associated with the Hong Kong internet sector, and the market often rises and falls together, making it very easy for them to be mixed up into one concept. However, when it comes down to actually placing an order, the code won\u0026rsquo;t care about your feelings; if you buy incorrectly, it is just wrong.\nThat\u0026rsquo;s also why you shouldn\u0026rsquo;t only look at the trend chart on Alipay when buying funds. What you are thinking of is Hang Seng Tech, but what you actually order/trade is 006327. Even if the profit display later shows no problem, your underlying reference point has already deviated.\nThe Index Closing Price Is Not What Truly Drives Trades Off-platform fund subscriptions operate under a simple rule: the Unknown Price Principle. When you submit an application, you do not know what the final transaction net value will be; the actual price used is the Fund Share Net Asset Value (NAV) of this fund, which is calculated after the market closes on the day of your application.\nThe point of greatest confusion here is that many people treat funds like stocks. With stocks, you buy by watching the order book, and the price is instantly matched; funds are different. What you are buying is a share corresponding to a basket of assets. The value of this share must wait until the fund company settles the positions, exchange rates, cash holdings, and other elements according to rules before calculating that day\u0026rsquo;s Net Asset Value (NAV).\nSo, buying before three PM, provided that Alipay records this application as valid for the current day, then what you are locking is the application date, not \u0026ldquo;a specific index\u0026rsquo;s closing point at a certain time today.\u0026rdquo; It is also not simply taking the Hang Seng Tech closing price multiplied by a coefficient to execute the transaction for you.\nWhy Does QDII Always Make People Wait Two Extra Days The confirmation process for open-ended funds is slower than stocks, and \u0026lsquo;QDII\u0026rsquo; is even slower. The reason isn\u0026rsquo;t mysterious; it\u0026rsquo;s simply that they invest in overseas markets, which leads to a longer valuation chain.\nAccording to the fund contract for 006327, the net value for day T is calculated on T+1, with announcements and confirmations completed by T+2. From a user experience perspective, this means that if you execute a purchase today, you will not see results today; tomorrow, you are highly likely still waiting, and it only feels \u0026ldquo;truly finalized\u0026rdquo; the day after tomorrow.\nMany people might misunderstand this point, assuming that \u0026ldquo;the return is displayed two days later\u0026rdquo; means that returns for those two days were not calculated. This is incorrect. The more accurate statement is: The display of fund shares and net asset value results are delayed; it does not mean the fund only started calculating/running for you on the third day.\nDelays in display are not the same thing as delays in effective execution/settlement. Specifically, for products like QDII, the final set of numbers displayed by the platform will inherently be approximately two working days later than when you press the buy button.\nExamine the transaction(s) from April 27, 2026 If you submit a buy order for 006327 on Alipay before 15:00 on Monday, April 27, 2026, and this order is normally recorded by the system as a valid application for that day, then the approximate timeline would be:\n2026-04-27: Submit application; the trade date is locked on this day. 2026-04-28: The fund company calculates the net asset value corresponding to this day (2026-04-27). 2026-04-29: According to the contract specifications, share confirmation and net asset value announcements usually occur around this date. 2026-04-30: On distribution platforms like Alipay, holdings and return displays are generally more complete and stable. If there are any delays encountered due to overseas market closures, delayed currency valuations, or lag in the platform\u0026rsquo;s own display synchronization, this timeline may be subject to further postponement.\nTherefore, your original understanding needs to be revised into a more accurate version:\nCorrect Part: The return display being delayed by two days is generally normal. Incorrect Part: You did not buy based on today\u0026rsquo;s closing price of the Hang Seng Tech Index. Conclusion This seems like a page display issue, but fundamentally, you have not clearly separated the trading object from the trading mechanism. What you are buying is fund shares, not index points; and what you are placing is an off-exchange subscription application, not an on-exchange real-time transaction order.\nWhen you encounter QDII products on Alipay again, what needs confirmation first is not \u0026ldquo;where today\u0026rsquo;s candlestick closes,\u0026rdquo; but rather three things: whether the code is correct, whether the underlying asset being tracked matches your intended purchase, and whether the platform recorded the application within the current trading day.\nDon\u0026rsquo;t treat funds like stocks, and don\u0026rsquo;t assume all Hong Kong internet stocks are equivalent to the Hang Seng Tech Index. The former can cause you to misjudge the transaction price, while the latter might give you a biased view of what you\u0026rsquo;re actually buying. After going through all this fuss, what you should focus on isn\u0026rsquo;t the profit and loss numbers two days from now, but rather what exactly you purchased at the moment of placing the order.\nReferences E Fund China Securities Index Overseas Chinese Internet 50 ETF Connection Fund Contract (Official PDF) Every Day Fund: 006327 Product Page [Every Day Fund: 006327 Basic Information](https://fundf1 Author\u0026rsquo;s Notes Original Prompts Did I buy fund 006327 on Alipay today, purchasing it before three o\u0026rsquo;clock? Did this use today\u0026rsquo;s closing price of the Hang Seng Tech Index? Also, is my understanding correct that the profit display requires a two-day delay?\nContinue, and then finalize into a draft.\nWriting Approach Summary First, correct the misidentification of the fund\u0026rsquo;s underlying asset, avoiding treating `006 ","date":"2026-04-27","language":"en","permalink":"https://ttf248.life/en/p/how-alipay-006327-nav-works/","tags":["AI Inspiration Hub","Alipay","fund","QDII","investment"],"title":"When Alipay buys 006327, which day's net value is it calculated on?","year":"2026"},{"categories":["Computer","Diary Ramblings"],"content":"In the last few months, while writing code using tools like Claude or Codex, my most striking realization wasn\u0026rsquo;t that \u0026ldquo;programmers are obsolete,\u0026rdquo; but rather that many tasks that used to be given to newcomers for practice can now generate a basic first draft themselves. Whether it\u0026rsquo;s creating a scaffold, adding several tests, or making small modifications on the fly—after running through these operations, the speed is genuinely fast, so fast it feels almost bittersweet.\nFor someone like me, who graduated ten years ago, frankly, this is more about increasing efficiency. Because I generally know where it\u0026rsquo;s reliable and where it isn\u0026rsquo;t; where something looks functional but actually has pitfalls hidden further down the line. But for fresh graduates, this topic isn\u0026rsquo;t so straightforward. AI isn\u0026rsquo;t just here to take over a few hours of manual labor; it feels more like it is compressing the traditional path of how a newcomer goes from zero knowledge to proficiency. This is also why I wanted to write about it separately.\nWhat\u0026rsquo;s actually fading away isn\u0026rsquo;t the programmer, but mobile phone skill training In the past, our team always had a batch of tasks that weren\u0026rsquo;t technically complex but were perfect for new hires. These included modifying pages, integrating interfaces, completing CRUD operations, fixing minor bugs, and debugging by following logs little by little. The work itself was small, but it was enough to take someone from merely \u0026ldquo;knowing how to write code\u0026rdquo; (syntax) to truly understanding \u0026ldquo;how the live system actually works.\u0026rdquo;\nCurrently, this type of work is the most susceptible to being taken over by AI.\nThe U.S. Bureau of Labor Statistics (BLS), in its updated Occupational Outlook for 2025, provided a very interesting comparison. On one hand, it states that roles such as software development and testing will continue to grow over the next decade; but on the other hand, it clearly indicates that the position of computer programmer—which is more focused on \u0026ldquo;writing and executing code\u0026rdquo;—is declining, as many repetitive programming tasks will continue to be automated. This change is critical.\nIt\u0026rsquo;s not that the software industry doesn\u0026rsquo;t need people; rather, the value derived solely from \u0026ldquo;taking tasks and writing code\u0026rdquo; is increasingly diminishing. Corporations, of course, are focused on cost efficiency: if AI can generate a first draft, followed by an experienced person to refine it, why do they still need to staff a slew of junior positions merely for slow mentorship, like in the past?\nSo, what might be truly frightening may not be layoffs themselves, but often the fact that companies are no longer replenishing staff or expanding roles. The door is still there, but the opening has become narrower.\nWhy Seasoned Professionals are Best Positioned to Capitalize on AI Dividends It’s quite paradoxical. On the surface, code generated by AI might not be better than that written by fresh graduates. However, those who truly master using AI are often seasoned professionals who have learned through many pitfalls and failures.\nThe reason is also not complex.\nFirst, seasoned professionals know that \u0026ldquo;looks runnable\u0026rdquo; is not the same as \u0026ldquo;truly deployable.\u0026rdquo; In Anthropic\u0026rsquo;s Economic Index from January 2026, when they analyzed software development in isolation, they found that although these requests are highly standardized, the task success rate was only about 61%. Furthermore, most scenarios still require back-and-forth iteration; it cannot simply be resolved by dumping the entire thing to AI once. METR conducted an even more sobering experiment in July 2025, allowing open-source maintainers who had been familiar with the repository for years to use cutting-edge AI tools of that time. The result was actually a 19% overall slowdown. This indicates that when the context is complex, quality standards are high, and boundaries are fuzzy, AI is not autonomous driving; it is more like a very talkative intern.\nSecondly, experienced developers have something they call \u0026ldquo;code taste.\u0026rdquo; This concept might sound somewhat abstract, but it is very tangible. Whether an interface should be split this way, whether exceptions should be swallowed like this, whether testing is merely a trick to fool the CI, or if refactoring will preemptively bury pitfalls for the next week—these are things that matter. AI makes mistakes now, and many of those mistakes aren\u0026rsquo;t syntax errors; they are conceptual errors, abstraction errors, or boundary condition errors. Honestly, it is even harder for someone who hasn\u0026rsquo;t experienced traditional programming to identify these types of mistakes.\nSo, in the age of AI, what is most valuable is not typing speed, but critical thinking (or judgment).\nNewcomers aren\u0026rsquo;t without paths, they are just out of the old ones. I don\u0026rsquo;t believe that newcomers will be without opportunities. The World Economic Forum\u0026rsquo;s January 2025 report still ranks software and application developers among rapidly growing roles, and the U.S. Bureau of Labor Statistics\u0026rsquo; long-term outlook for software development positions also shows growth. This suggests that the demand has not disappeared entirely.\nBut the entry method must have changed.\nThe previous default path was to start with some grunt or difficult work, learning as you went while coding, and relying on sheer time and effort to build your intuition. Now, companies are more likely to expect that upon joining, you already know two things.\nOne thing is to treat AI as a tool, not as an answer. You must be able to clearly articulate the problem, break down the requirements, and prompt it to give you usable drafts first.\nAnother thing is being able to review it effectively. It\u0026rsquo;s not enough to just say, \u0026ldquo;This is wrong\u0026rdquo;; rather, you need to know where the mistake lies, why it is wrong, and how to modify it so that it aligns with the project context.\nThis is troublesome. Because the ability to \u0026ldquo;review code\u0026rdquo; is something that usually takes years of working experience to develop, now that opportunities to practice are decreasing, yet newcomers are instead required to possess this skill much earlier. How should I put it? It\u0026rsquo;s like a game that dismantled the newbie village, but the boss is still waiting for you up ahead.\nWhat Will It Be Like in the Future My current judgment/assessment is relatively simple.\nAI will continue to boost the output of experienced professionals while also continuing to diminish those parts of work in entry-level positions that are easiest to standardize and break down. These two things are likely to happen simultaneously, and they do not conflict. The ILO\u0026rsquo;s report from May 2025 was quite measured, suggesting that generative AI is more likely to change the structure of tasks rather than eliminating entire jobs all at once. The issue is that when the task structure changes, the first things to be eliminated are often those low-risk tasks originally designed for training new employees.\nTherefore, the most scarce talent going forward is not merely someone who \u0026ldquo;codes best,\u0026rdquo; but rather someone who possesses foundational abilities, can harness AI, and takes ownership of both business outcomes and quality.\nFor seasoned professionals, this feels like adding a sharper shovel—it\u0026rsquo;s still taxing, but significantly more efficient. However, for beginners, the issue isn\u0026rsquo;t whether they should use AI; it’s that if they rely on it from the start, who will tell them when it writes well, and when it is producing convincingly plausible nonsense?\nNeither the school nor AI can provide this answer right now. Ultimately, you\u0026rsquo;ll probably have to figure it out yourself. Ugh, the door isn\u0026rsquo;t closed, but getting through it is much harder.\nReferences The Future of Jobs Report 2025 Software Developers, Quality Assurance Analysts, and Testers Computer Programmers AI impacts in BLS employment projections Anthropic Economic Index: Insights from the Latest Data Anthropic Economic Index: Tracking AI Use Across Work and Life Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity Generative AI and Jobs: A Refined Global Index of Occupational Exposure Generative AI at Work Writing Notes Original Prompts Some thoughts on AI programming. As a recent graduate, my coding abilities are certainly not comparable to Claude or Codex. For experienced developers, AI can boost efficiency, but it has also led companies to significantly cut the positions of junior programmers. I graduated ten years ago and have gone through the process of starting as a beginner and reaching senior levels. What about those who enter the field now? How will they fare? The older generation lived through the days of \u0026ldquo;old-school\u0026rdquo; programming, so frankly speaking, they can recognize whether AI wrote good code or bad code, because current AIs still make mistakes.\nSummary of Writing Ideas Center the main argument on the idea that \u0026ldquo;AI is compressing the learning ground for newcomers, not shrinking the entire software industry.\u0026rdquo; In the first half, first discuss why experienced workers benefit more from the AI dividends, and then explain how this can coexist with newcomer anxiety. Use materials/data sets like BLS, WEF, Anthropic, METR, and ILO to firmly establish two points: \u0026ldquo;structural job changes\u0026rdquo; and \u0026ldquo;the necessity of human judgment in AI.\u0026rdquo; Intentionally avoid elaborating on specific job search strategies or creating a \u0026lsquo;how newcomers should learn\u0026rsquo; list of motivational advice. The conclusion must return to the core reality: it is not that there are no opportunities, but rather that the traditional \u0026ldquo;newbie training ground\u0026rdquo; is disappearing. ","date":"2026-04-27","language":"en","permalink":"https://ttf248.life/en/p/when-ai-writes-code-how-juniors-level-up/","tags":["AI Inspiration Hub","ai","Programmer","Career Reflection","Software Development"],"title":"AI can write code, what will newcomers use to level up?","year":"2026"},{"categories":["Financial Knowledge Base"],"content":"A few days ago, someone asked me using the pre-adjusted prices of very early Kweichow Moutai stock. Honestly, I was taken aback at first glance: Looking at the \u0026ldquo;pre-adjustment\u0026rdquo; values, Yahoo had no negative numbers, while East Money showed negative numbers. When I later reviewed my article from June, titled Detailed Explanation of \u0026lsquo;Adjustment\u0026rsquo; and Data Acquisition in Backtesting, I realized that I had mixed up several things. At the time, I presented the \u0026ldquo;ratio method\u0026rdquo; as if it were the single standard, but pre-adjustment in the domestic A-share context and the commonly used adjusted close for Hong Kong/US stocks are fundamentally different metrics.\nThis article only does one thing: separate these two metrics/standards. I will put my judgment first so that you don\u0026rsquo;t get confused later: The pre-adjustment (or forward adjustment) of leading domestic apps is more like leveling the candlesticks by following the exchange\u0026rsquo;s ex-rights/ex-dividend reference price; the commonly used international adjusted close is more like using a cumulative multiplier to express the total return from \u0026ldquo;reinvesting dividends.\u0026rdquo; They are both called pre-adjustment, but they answer different questions.\nA-Shares Pre-adjustment: How to Connect the Candlestick Data (The Core Issue) With this domestic set of metrics, the public anchor points are actually not difficult to find. The SZSE has provided the reference price formula for ex-rights and ex-dividends:\n$$ \\text{Adjusted (Dividends/Rights) Reference Price}=\\frac{(\\text{Previous Closing Price}-\\text{Cash Dividend})+\\text{Rights Issue Price}\\times\\text{Share Change Ratio}}{1+\\text{Share Change Ratio}} $$The formula for \u0026ldquo;adjusted forward division\u0026rdquo; written in the East Money Encyclopedia and this approach are basically on the same track:\n$$ P'=\\frac{(P-D)+K\\times r}{1+r} $$Here, $P$ is the pre-adjusted price, $D$ is the cash dividend per share, $K$ is the rights issue or new stock price, and $r$ is the proportion of circulating shares change. The most important point about this formula is not whether it has division, but that the cash dividend is deducted based on a fixed amount.\nThus, if a company\u0026rsquo;s actions are limited to cash dividends—with no stock transfers or bonus share allocations—the formula will directly simplify to:\n$$ P'=P-D $$The consequence of this matter is very direct: for A-shares listed many years ago with high accumulated dividends, if the historical price is continuously extrapolated backward in time, it can indeed be calculated as a negative number. Occasionally, you might see such extremely early negative values on East Money (Dongfang Caifu). This does not necessarily mean that they have calculated it incorrectly; it is more likely that they are simply adhering to this common set of domestic pre-adjustment definitions.\nI now prefer to understand it as an approach that prioritizes “graphical continuity.” If you open the software today, and the current price remains stable while projecting downward from previous K-lines, the chart connects smoothly, and the technical indicators look more natural. This is very useful for market analysis, but it does not naturally equal the total return series.\nHK/US Stocks Adjusted Close, First, how to calculate the total return Yahoo\u0026rsquo;s official definition of Adjusted close is very straightforward: It adjusts for both stock splits and dividends, and the dividend multiplier is calculated based on \u0026ldquo;the proportion of the dividend to the price.\u0026rdquo; Yahoo also explicitly states that one of the main purposes of doing this is to avoid negative historical prices.\nIf written as a formula, the common approach is to first assign a multiplier to each company\u0026rsquo;s action:\nStock split multiplier: e.g., 2-for-1, historical price times 0.5 Dividend multiplier: m=1-D/C_{t-1} where $D$ is the cash dividend per share, and $C_{t-1}$ is the closing price before the ex-dividend date. Then, multiplying all subsequent corporate action multipliers sequentially yields the cumulative adjustment factor $F_t$:\n$$ F_t=\\prod_{j\u003et}(s_j\\times m_j) $$Therefore, the adjusted price is:\n$$ P_t^{adj}=P_t\\times F_t $$ The meaning of this approach is very clear: It approximates what the total return would be if dividends were continuously reinvested back into this stock. Therefore, it is naturally better suited for calculating rates of return, long-term backtesting, and cross-period comparisons. This methodology is fundamentally different from the domestic approach that simply deducts cash dividends directly from historical prices; even though both might appear to adjust the candlestick charts, they are not the same at their core. I\u0026#39;ll take this opportunity to add that the old article from June implied that Yahoo / yfinance\u0026#39;s adjusted data and Tushare\u0026#39;s qfq are \u0026#34;completely the same thing,\u0026#34; which is not strictly accurate. A more precise way to put it is: **they belong to the same family, both being multiplicative or factor-type adjustments, but the normalization anchor point may not be the same.** ## Adjustment Factors Are Not a Universal Translator The core issue lies right here. Many people, upon seeing the phrase \u0026#34;adjustment factor,\u0026#34; assume that all markets can be abstracted into a single set of factors and then simply apply `price * factor` without question. This assumption is largely valid within the common adjusted close systems used by Hong Kong and US stocks, but it may not hold true in China\u0026#39;s pre-adjustment system. The reason is not complex. This set of precise reweighting formulas used domestically in China is actually an affine transformation, not purely multiplicative: $$ P\u0026#39;=\\frac{1}{1+r}P+\\frac{Kr-D}{1+r} $$ In other words, it is essentially: $$ P\u0026#39;=aP+b $$ If a cash dividend occurs, the constant term $b$ will not be zero. When multiple corporate actions stack up, what you get is not a single cumulative multiplier, but a series of multiplications and additions of affine transformations. At this point, **a single \u0026#34;adjustment factor\u0026#34; is insufficient**; you need at least event information such as cash dividends, ex-rights prices/book values, share change ratios, or the equivalent $(A, B)$ parameters. Therefore, the answer is quite clear: **the concept of the adjustment factor cannot be directly generalized within these two sets of schemes.** - In the commonly used adjusted close system abroad, the adjustment factor is the core focus. - In this precise adjustment system domestically, the factor can only cover percentage changes related to \u0026#34;stock splits / bonus issues\u0026#34;; once it encounters cash dividends, a single factor cannot accommodate them. This is also why directly comparing pre-adjusted domestic software data with Yahoo adjusted close using the same metric often leads to increasingly confusing results. ## Where Does Tushare Really Stand? The official documentation actually writes it very clearly. The formula provided in Tushare\u0026#39;s A-share adjusted closing price data is: $$ \\text{Pre-adjusted Price} = \\text{Daily Closing Price} \\times \\text{Daily Adjustment Factor} / \\text{Latest Adjustment Factor} $$ The same page also clearly stated two things: - It dynamically reprices/reweights based on your specified `end_date` - It uses a \u0026#34;dividend reinvestment\u0026#34; model These two sentences are sufficient for qualitative description. **Tushare\u0026#39;s A-share `qfq` is conceptually closer to the multiplier/factor type adjusted close found overseas, rather than East Money’s precise adjustment pre-adjustment method.** However, it retains its own normalization approach: it does not always anchor to today, but anchors to the `end_date` of your current query window. So, the positioning for Tushare can be condensed into a single sentence: - It does not use the same pre-revised definition as East Money Fortune. - It is more similar to Yahoo, but the values may not be identical at every point. Tushare later also added adjusted factors and adjusted data interfaces for HK stocks and US stocks, with the official description remaining `price * adj_factor = Adjusted Price`. This further illustrates its product design thinking: fundamentally, it is based on multiplicative factors. ## Back to Backtesting: First Define the Parameters, Then Discuss Accuracy Once you understand this matter, many of the debates will actually disappear automatically. If you want: - Aligned with screenshots from domestic financial charting software - Current price remains unchanged, historical K-lines are connected (or \u0026#39;aligned flatly\u0026#39;) - Viewing the \u0026#34;pre-adjusted graph\u0026#34; in the context of A-shares In that case, you should use the domestic set of standards for precise re-weighting/adjustment. If you are looking for: - Backtest Return Rate - Total Return from Dividend Reinvestment - Long-Term Strategy Evaluation You should better use the multiplicative factor metrics/basis, such as Tushare\u0026#39;s `qfq` or Yahoo\u0026#39;s `Adjusted close`. The biggest problem with that old piece from June wasn\u0026#39;t that it was entirely incorrect, but rather that it merged two distinct sets of definitions into a single \u0026#34;definitive standard.\u0026#34; Looking back now, what you should truly remember isn\u0026#39;t that \u0026#34;proportional methods are always correct and addition/subtraction methods are always wrong,\u0026#34; but rather: **Are you trying to fit the data visually, or are you calculating returns.** If these two questions aren\u0026#39;t separated first, everything that follows—backtesting results, candlestick comparisons, even \u0026#39;why negative numbers appear\u0026#39;—will all become hopelessly tangled together. ## References - [ChatGPT Shared Dialogue: Adjusted Price Calculation Difference Analysis](https://chatgpt.com/share/69e653e4-2814-83ea-bd7d-4233343ca9cf) - [Tushare: A-Share Adjusted Price Data](https://tushare.pro/document/2?doc_id=146) - [Tushare: US Stock Adjusted Price Data](https://tushare.pro/document/2?doc_id=338) - [Yahoo Help: What is the adjusted close?](https://help.yahoo.com/kb/SLN28256.html) - [Shenzhen Stock Exchange: How to Calculate Adjusted (Ex-Dividend) Price?](https://investor.szse.cn/institute/video/ ## Writing Notes ### Original Prompt ```text $blog-writer analyze the content here: https://chatgpt.com/share/69e653e4-2814-83ea-bd7d-4233343ca9cf, and also historical articles 27 - where to find backtesting data? First, outline the common pre-adjustment calculation formula used in China, then outline the common pre-adjustment calculation formula used overseas. Regarding the concept of adjustment factor/reversion factor, can it be general for both schemes? What type of method does Tushare\u0026#39;s data belong to? Writing Approach Summary ","date":"2026-04-22","language":"en","permalink":"https://ttf248.life/en/p/backtest-front-adjustment-formulas/","tags":["Quantization","Backtesting","Rebalancing","AI Inspiration Hub"],"title":"The prior adjustment (pre-adjustment) for backtesting differs between domestic and international markets.","year":"2026"},{"categories":["Investment","Financial Knowledge Base"],"content":"This matter deserves separate discussion because it directly impacts how we view Maotai. Previously, many people treated Maotai as an eternally rising consumption myth, and whether young people drank it or not was just a minor factor. Now, that is no longer the case. It is true that young people naturally have little interest in Baijiu (Chinese liquor), but this is more like a slow-moving variable. The sudden turnaround reported in the annual report appears to be driven by the contraction of an entire old system: obsolete business demands, traditional wealth distribution methods, and established status-driven consumption patterns.\nIt\u0026rsquo;s Just Superficially That Young People Don\u0026rsquo;t Drink I used to casually attribute the cause to generational shifts, thinking that because young people were drinking craft beer, cocktails, and whisky, baijiu would naturally become marginalized. This conclusion isn\u0026rsquo;t necessarily wrong, but it\u0026rsquo;s insufficient to explain the sharp changes seen in Maotai’s latest financial report.\nThe reason is simple: generational preference changes are gradual; they won\u0026rsquo;t suddenly crash profits like this in a single quarter. What truly determines the marginal pricing and profit of high-end baijiu is never just whether \u0026ldquo;people drink it,\u0026rdquo; but rather \u0026ldquo;who buys it, what scenario they are in, and why they are willing to pay two thousand or three thousand yuan per bottle.\u0026rdquo; Often, high-end baijiu sells not its taste itself, but social efficiency, status affirmation, and relationship lubrication. When you are actually at a gathering, many people don\u0026rsquo;t care if this particular cup is worth the money; what they care about is whether the entire occasion matches this price point.\nKweichow Moutai itself has quite clearly articulated this change. At the national dealer gathering held on 2025-12-28, company management directly mentioned that \u0026ldquo;the demand from core traditional consumers is weakening,\u0026rdquo; while also emphasizing the need to find new customer groups and usage scenarios. This statement contains a great deal of information. It is tantamount to admitting that the core buyers who previously underpinned Moutai\u0026rsquo;s pricing structure are no longer as strong as they once were.\nWhy is Moutai like a shadow stock of real estate? Here, by calling it a \u0026ldquo;shadow stock,\u0026rdquo; I don\u0026rsquo;t mean that Moutai\u0026rsquo;s reports contain a pile of real estate projects, nor do I mean that if real estate drops, Moutai will drop in perfect lockstep. I am more inclined to understand it as a reflection on the demand structure.\nOver the past twenty years, many of China\u0026rsquo;s most prominent, sustained, and extravagant business scenarios were related to the real estate chain. Local government finances rely on land sales; municipal investment vehicles revolve around land assets, developers maintain high turnover rates, and general contractors, subcontractors, building materials, home decoration services, agents, and financial support systems all benefited immensely together. Once this chain was prosperous, business banquets, festival gifting, relationship maintenance, and project coordination would all be significantly amplified. The money wasn\u0026rsquo;t gradually chipped away from residents\u0026rsquo; daily consumption; rather, it flowed out of a system characterized by high leverage, high turnover, and high premium pricing.\nIn this environment, Maotai is not just liquor; it functions more like a high-end social status symbol. It possesses several characteristics that make it uniquely suited for this role: a powerful brand, an elevated price point, strong recognition, and excellent circulation. Often, whether a bottle costs two thousand or three thousand (yuan), does not alter the budget logic of the gathering; rather, the higher the cost, the better it executes the signal transmission of \u0026ldquo;I value you,\u0026rdquo; \u0026ldquo;I am capable,\u0026rdquo; and \u0026ldquo;this event has prestige.\u0026rdquo;\nSo, I largely agree with the statement that \u0026ldquo;Maotai is a shadow stock of real estate,\u0026rdquo; but to elaborate fully: it does not allude to the houses themselves, but rather the high-end business consumption order created during the era of real estate credit expansion.\nThis existing order is in decline. The national real estate data disclosed by the National Bureau of Statistics for 2025 is also worrying: Real estate development investment fell year-on-year (YoY) by 17.2%, newly built commercial housing sales area declined by 8.7%, and capital secured by property developers dropped by 13.4%. When the real estate chain contracts, what often disappears first is not basic necessities like food and drink, but rather consumption that has the greatest budget flexibility, prioritizes prestige, and relies heavily on projects and connections to operate. High-end baijiu (Chinese liquor) is exactly caught in this predicament.\nWhat This Annual Report Truly Reveals Is Not Just Weak Performance The more crucial signal, actually, is that Moutai itself has started changing its narrative.\n2026-01-09, Moutai publicly stated at a distributor meeting that \u0026ldquo;market transformation has become an unavoidable question for Moutai.\u0026rdquo; It also pointed out thoroughly that the past sales sector\u0026rsquo;s \u0026ldquo;non-commercialization\u0026rdquo; made it difficult for ordinary consumers to purchase wine fairly, conveniently, and genuinely. This statement is quite strong. It suggests that the company is aware that in the previous system, a large portion of the value did not come from genuine consumption needs, but rather from scarcity, artificial pricing structures, status group allocation, and channel premiums.\nIn other words, what Maotai is currently doing fundamentally means it is attempting to shed its \u0026ldquo;financial attributes,\u0026rdquo; reduce its dependency on gift-giving consumption, and dismantle its historically closed consumer segments. By moving toward \u0026lsquo;iMaotai\u0026rsquo;, direct-to-consumer channels (D2C), and emphasizing service and genuine needs, this effort is not merely channel reform; it is about establishing a new pricing foundation for the next stage.\nThis also explains why the company could still maintain positive growth during the first three quarters of 2025, but then suddenly turned negative for the full year. Previously, it was buoyed by momentum, brand recognition, and channels, but it could not sustain that through the fourth quarter. Old demand is declining, and new demand has not fully taken over/picked up, so naturally, the profit statement looks poor in the interim.\nRethinking This Stock I don\u0026rsquo;t think Moutai is done for just because of this. Its brand, region, process, and supply constraints are still there; the moat doesn\u0026rsquo;t crumble overnight. There\u0026rsquo;s another important data point in the annual report: the company expects cumulative cash dividends of 650.33 billion yuan in 2025, which accounts for 79% of net profit attributable to owners. This is already very much like a cash cow machine.\nBut the challenge also lies here. Previously, the market was willing to give Moutai a high valuation because the core premise was that it was both a branded consumer product and operated like a highly predictable growth engine. Now that the growth component begins to weaken, the valuation anchor shifts in another direction: moving away from a high-growth consumption leader, and slowly drifting toward defensive assets characterized by lower growth rates, high dividends, and strong cash flow.\nThis is not the same thing for investors.\nIf you still look at it with the mindset of \u0026ldquo;earnings will always be double digits, wholesale prices will always be stable, and business demand will always be there,\u0026rdquo; it can be difficult to reconcile. Because the most lucrative demand from the old era truly declined along with real estate. But if you view Moutai as a super cash-flow asset that is going through de-bubbling, anti-speculation measures, and returning to its true consumption base, then it operates under a completely different valuation logic.\nIn Conclusion Therefore, my current understanding of this matter is quite different from what it used to be.\nIt is true that young people are not drinking baijiu, and it is also true that the culture of celebratory drinking has strong historical cyclical characteristics. However, the more critical point is that the era which placed high-end baijiu on a pedestal was never sustained by ordinary people drinking it in daily life. Instead, it was propped up by an entire system: real estate credit expansion, ballooning corporate banquets (business entertaining), and distorted consumption driven by status/face. After the decline of the property market, baijiu will obviously not disappear immediately. But the segment of demand that is most profitable, least concerned with cost-effectiveness, and indifferent to high prices is no longer as robust as it once was.\nFor Moutai\u0026rsquo;s stock, the 2025 annual report will likely not be merely an ordinary performance fluctuation, but rather the beginning of a shift in its valuation narrative. Going forward, we cannot rely solely on brand loyalty; we must also assess the speed of genuine consumer uptake and determine whether channel reforms can successfully transform the past demand—which was propped up by temporary mechanisms/schemes—into a more sustainable consumption foundation.\nReferences Author\u0026rsquo;s Notes Original Prompts Analyzing the A-share listed baijiu company Maotai\u0026rsquo;s 2025 financial report data reveals a decline in net profit for the first time. Previously, the understanding was that young people don\u0026rsquo;t drink baijiu, and China\u0026rsquo;s so-called \u0026ldquo;drinking culture\u0026rdquo; is mostly a historical product. The latest understanding suggests that this historical product is real estate, and Maotai baijiu belongs to the shadow stocks of real estate. Since real estate has now declined, corresponding business banquets are no longer frantic, meaning this derivative product (baijiu) is not as needed anymore. Baijiu\u0026rsquo;s net profit remains high; for business banquets, they don\u0026rsquo;t care if the price is two thousand or three thousand—what they want is the \u0026ldquo;face\u0026rdquo; (prestige).\nWriting Outline Summary Use the summary of Moutai\u0026rsquo;s 2025 annual report, disclosed on 2026-04-17, to firmly establish \u0026ldquo;the initial decline in profit\u0026rdquo; as the key trigger point. Instead of stating the main judgment as \u0026ldquo;young people don\u0026rsquo;t drink baijiu,\u0026rdquo; focus on the structure of business demand behind high-end liquor. In the middle section, use three sets of official real estate data (development investment, sales area, and available funds) to explain why the real estate downturn will first hit high-end banquet budgets. Separately added ","date":"2026-04-22","language":"en","permalink":"https://ttf248.life/en/p/moutai-profit-decline-and-real-estate-cycle/","tags":["AI Inspiration Hub","Kweichow Maotai","Baijiu","real-estate","a-stock"],"title":"Moutai's Net Profit Drops for the First Time, and it's Not Just Because Young People Aren't Drinking Baijiu","year":"2026"},{"categories":["The Seven Seconds of a Fish"],"content":"Seeing Block cut its workforce by 4,000 people out of a group of over 10,000 at the end of February 2026 really shook me. I\u0026rsquo;ve always worked in financial IT—things like trading pipelines, Hong Kong/US stocks, and system fundamentals. Usually, I\u0026rsquo;m accustomed to buzzwords like \u0026ldquo;efficiency improvement,\u0026rdquo; \u0026ldquo;automation,\u0026rdquo; and \u0026ldquo;cost reduction while increasing efficiency.\u0026rdquo; But when a fintech company, one so close to money, compliance, and risk control, publicly cites AI as the reason for layoffs, it still hits you hard emotionally.\nMy current assessment is very direct: the scariest part of AI layoffs isn\u0026rsquo;t a layoff list in the news one day, but when companies start assuming that \u0026ldquo;smaller teams can do more work.\u0026rdquo; This means no backfilling for departures, fewer entry-level positions, and much tighter headcount management. From April 2025 to April 2026, this wind is still blowing in the US; while China hasn\u0026rsquo;t seen a high-profile, public wave of mass layoffs yet, the quiet squeeze has already begun.\nLet\u0026rsquo;s look at these most representative companies first Block was the harshest and most direct this time. After the Q1 2026 earnings report, Jack Dorsey\u0026rsquo;s statements left almost no room for ambiguity: AI has changed how the company builds and operates, allowing smaller teams to accomplish more. AP reported that Block laid off over 4,000 people, accounting for about 40% of its workforce of over 10,000 employees. The market was also honest; it rose by over 20% pre-market at one point. Why? Because investors were hearing not \u0026ldquo;technological ideals,\u0026rdquo; but profit margins, operating leverage, and faster earnings growth. Earlier on, Block had set targets during its Investor Day in November 2025 for a 17% increase in gross profit and over 30% growth in adjusted operating income for 2026. Simply put, this wasn\u0026rsquo;t about \u0026ldquo;laying people off because the company is failing,\u0026rdquo; but rather the company believing it could grow while simultaneously slimming down its workforce.\nDuolingo, on the other hand, represents a different approach. At the end of April 2025, the company publicly shifted to an AI-first roadmap, stating that it would gradually phase out outsourced work that AI can handle, and any new hires must first prove that AI cannot do the job. A few days later, it launched 148 new courses created with generative AI. By August 2025, Duolingo\u0026rsquo;s earnings report showed a 41% year-over-year revenue increase in Q2, with strong profitability and subscription revenue, leading to a nearly 30% jump in stock price that day. However, the company also provided another lesson: users are not entirely convinced. The CEO later admitted that the backlash on social media indeed suppressed growth to the lower end of the guidance range. In other words, while AI can help a company scale its content production and boost profits, brand and trust are not freebies.\nKlarna is perhaps the most typical example of \u0026ldquo;AI pressuring labor costs\u0026rdquo; over the past two years. It stated in 2024 that its AI customer service assistant handled two-thirds of inquiries, equivalent to the workload of 700 full-time customer service agents. In its prospectus submitted in March 2026, Klarna made the calculation even more explicit: at the end of 2023, there were 4,352 full-time employees; by the end of 2024, it was 3,422; and by the end of 2025, it would only have 2,831 people. The company itself stated that the reduction in headcount came from \u0026ldquo;using AI to improve efficiency and proactively compressing overall headcount.\u0026rdquo; Meanwhile, the average revenue per employee in 2025 was projected to rise from $344,000 in 2022 to $1.24 million. This figure is quite alarming. However, Klarna later began bringing some complex customer service issues back to human agents, especially those with high customer value and high risk scenarios. The lesson here is very clear: AI is excellent at absorbing standardized, repetitive, and process-driven tasks, but when it comes to complex judgment, trust endorsement, or gray-area responsibility, humans still need to be there as a fallback.\nShopify, however, has articulated something even scarier. In April 2025, Tobi Lutke\u0026rsquo;s memo to employees was very direct: before applying for more headcount, teams must first prove why the job cannot be done entirely with AI. It might not make daily headlines about layoffs, but it is creepier than a layoff list. Because it means that entry-level positions and roles that can be standardized and broken down are blocked at the source.\nWhy the Market Applauds The capital markets love hearing AI stories; this is something that no longer needs to be hidden.\nThe reason is simple:\nRevenue is not dropping, and is even growing. Personnel costs will drop first. Per capita output looks better. The profit margin and cash flow potential in the future are much larger. So, Block\u0026rsquo;s stock price will immediately rise because of the \u0026ldquo;smaller team can do more\u0026rdquo; narrative, Duolingo will receive good earnings feedback despite being criticized in the public eye, and Klarna will weave AI and efficiency into its IPO narrative.\nOf course, there is real efficiency gain here, but there are also obvious elements of AI washing. Many companies aren\u0026rsquo;t seeing a scenario where some model suddenly becomes so smart that it can eliminate an entire department. Instead, management has finally found a nice-sounding reason to give to investors: to scale back the headcount expanded over the past few years, stop replacing people who naturally leave, and have AI work alongside fewer people on tasks like outsourcing, customer service, operations, content production, and low-level analysis.\nHow should I put it, AI is both a tool and a banner here.\nIs this wind still in the US now? It\u0026rsquo;s still there, and even more so by March 2026, the wind is stronger than in 2025.\nData from the US layoff tracking firm Challenger, Gray \u0026amp; Christmas speaks volumes:\nIn 2025, the number of layoffs citing AI as a reason reached 54,836 people. In October 2025, AI was already the second largest cited reason for layoffs that month, corresponding to 31,039 positions. By March 2026, AI became the top reason for layoffs cited by US companies for the first time that month, corresponding to 15,341 positions, accounting for about a quarter of the layoff plans disclosed that month. But this dataset also needs to be looked at from another angle. It shows that AI layoffs are real, not just a joke; it also shows that we haven\u0026rsquo;t reached the point where \u0026ldquo;all layoffs are due to AI replacement.\u0026rdquo; Since Challenger started tracking this metric in 2023, those explicitly attributed to AI layoffs only account for a small fraction of all announced layoff plans. In other words, the US currently seems to be a combination of two forces:\nOne wave is genuine automation replacement, first hitting customer service, content, localization, junior white-collar workers, and back-end processes. The other wave is macro environment, cost pressure, management\u0026rsquo;s narrative of contraction, topped with an AI veneer. So, if you only look at news headlines, it\u0026rsquo;s easy to feel that \u0026ldquo;AI has eliminated white-collar jobs entirely\u0026rdquo;; but if you only look at official statements, it\u0026rsquo;s also easy to underestimate how it has begun rewriting hiring and organizational structures.\nIn China, why hasn\u0026rsquo;t it become like the US? I tend to believe that it\u0026rsquo;s not that China hasn\u0026rsquo;t been affected, but rather that the way the impact manifests is different.\nFrom the public narrative, China in 2025 to 2026 seems more like \u0026ldquo;scrambling for AI talent\u0026rdquo; rather than \u0026ldquo;publicly laying off people due to AI.\u0026rdquo;\nAccording to a report by Xinhua News Agency at the end of March 2025, the job openings for algorithm engineers and machine learning positions in February saw year-on-year increases of 46.8% and 40.1%, respectively, indicating a significant supply shortage with an AI talent supply-demand ratio of approximately 3:1. By February 2026, another article from Xinhua News Agency mentioned that the hiring volume for AI-related positions in China in the fourth quarter of 2025 was still growing year-on-year by 19%. In terms disclosed by the Ministry of Industry and Information Technology in March 2026, the core AI industry scale in China in 2025 had already exceeded 1.2 trillion yuan, with related enterprises surpassing 6,200.\nThis set of data at least suggests two things:\nChina\u0026rsquo;s current public main themes are still industrial expansion, model implementation, and shortage of AI talent. What is truly scarce is talent that combines algorithms, engineering, and industry, not ordinary white-collar office workers. But this doesn\u0026rsquo;t mean there is no pressure.\nDomestically, it\u0026rsquo;s more like a quiet squeeze:\nOutsourcing is contracting first. Hiring for campus recruitment and entry-level positions are more cautious. Standardized roles such as Operations, Testing, Content, and Customer Service are being compressed first. Some miscellaneous tasks that originally required two or three people to collaborate are now defaulting to one person working with AI. So you might think, \u0026ldquo;Why haven\u0026rsquo;t I seen headlines about mass layoffs due to AI in China?\u0026rdquo; But the entry points for many positions have narrowed, they just haven\u0026rsquo;t been packaged as a public letter for investors.\nFinancial IT Development, What to Be Most Wary Of Isn\u0026rsquo;t Actually \u0026ldquo;Being Replaced Tomorrow\u0026rdquo; I also work in financial IT, so I have a stronger feel for this part.\nIn the short term, development on core links within the financial industry—especially areas like trading, clearing, risk control, compliance, monitoring, and low-latency communication—are unlikely to be completely replaced by AI. The reason is simple: the stakes are too high, auditing is too strict, and the cost of an anomaly is too great; if something goes wrong, it\u0026rsquo;s not something you can fix just by changing a prompt.\nBut on the other hand, it is also very realistic:\nPeople who write \u0026ldquo;glue code\u0026rdquo; will feel the pain first. The value of pure CRUD, pure API lifting/moving, and pure documentation organization will continue to decline. Tasks like testing, operations scripts, reporting, and internal tools will increasingly be assumed to be done with AI assistance (\u0026ldquo;you bring AI and finish it together\u0026rdquo;). The requirements for a team\u0026rsquo;s individual combat capability, business understanding, and upstream/downstream connection ability will become higher. To put it plainly, the most dangerous thing in the coming years might not be \u0026ldquo;AI replacing developers,\u0026rdquo; but rather that \u0026ldquo;a person who is proficient with AI and understands business boundaries will be considered equivalent to the output of two or three people from before.\u0026rdquo; If a developer only remains capable of rote coding tasks, without mastering the business domain, understanding risks, or taking ultimate responsibility, they will indeed become increasingly passive.\nThe Last, Less Pleasant Judgment The news about Block shook me, not because it represents that AI is mature enough to completely take over fintech companies, but because it represents that management and the capital market are willing to say this, and the market is willing to believe it.\nThis is the most critical point.\nTechnology maturity, maybe not to that exaggerated extent yet; but organizations will first change based on \u0026ldquo;it\u0026rsquo;s almost good enough,\u0026rdquo; hiring will first change based on \u0026ldquo;it\u0026rsquo;s okay if we hire fewer people,\u0026rdquo; and promotions and performance reviews will also first change based on \u0026ldquo;why didn\u0026rsquo;t you use AI to do more.\u0026rdquo;\nFor average developers, especially in roles like financial IT that are caught between business needs, compliance, and system stability, what needs to be done next is not to fight AI head-on, nor is it to be blindly optimistic. Instead, it\u0026rsquo;s about quickly shifting oneself from being a \u0026ldquo;code laborer\u0026rdquo; toward becoming someone who \u0026ldquo;understands the business, understands the risks, knows the boundaries, and can provide fallback support.\u0026rdquo;\nOtherwise, the wind from America will blow over eventually. Even if it\u0026rsquo;s not with the same news headlines, the pressure will fall on the same people.\nReferences AP News: Fintech company Block lays off 4,000 of its 10,000 staff, citing gains from AI Block: Block Shares Multi-Year Financial Outlook at Investor Day Block: Block Fourth Quarter 2025 Earnings Call Klarna: AI assistant handles two-thirds of customer service chats in its first month Klarna Group plc 20-F TechCrunch: Klarna CEO says company will use humans to offer VIP customer service TechCrunch: Duolingo launches 148 courses created with AI after sharing plans to replace contractors with AI Duolingo: Q2 2025 results TechCrunch: The backlash against Duolingo going \u0026lsquo;AI-first\u0026rsquo; didn\u0026rsquo;t even matter TechCrunch: Duolingo CEO says controversial AI memo was misunderstood TechCrunch: Shopify CEO tells teams to consider using AI before growing headcount Challenger: 2025 Year-End Challenger Report Challenger: March 2026 Challenger Report Xinhua News Agency: China\u0026rsquo;s rapid AI growth sparks hiring boom as demand outpaces supply [Xinhua News Agency: AI reshapes China\u0026rsquo;s workforce via new professions, constant learning, one-person startups](https://english.news.cn/20260204/8d1bd05e8c4240998206fb9bdf Writing Notes Original Prompt Compile the layoffs over the past year caused by AI, large-scale layoffs, the company\u0026rsquo;s operating status after the layoffs, market feedback, and whether the layoff trend is still present in the US or if it has little impact on mainland China. I myself am a developer in the financial IT industry, and the news of Block\u0026rsquo;s layoffs greatly shocked me.\nWriting Outline Summary Start with the Block news to maintain the personal perspective of \u0026ldquo;Financial IT developers are shaken.\u0026rdquo; Instead of attributing all layoffs crudely to AI, break it down into three layers: \u0026ldquo;public layoffs,\u0026rdquo; \u0026ldquo;hiring freezes,\u0026rdquo; and \u0026ldquo;entry-level roles being squeezed.\u0026rdquo; Select four representative examples—Block, Duolingo, Klarna, and Shopify—to examine layoffs, hiring freezes, operational results, and market feedback for each. For the Chinese section, instead of stating it\u0026rsquo;s \u0026ldquo;nothing to worry about,\u0026rdquo; frame it as \u0026ldquo;the layoff wind isn\u0026rsquo;t as strong in China as in the US, but structural squeezing has already begun.\u0026rdquo; Conclude by bringing the assessment back to the real situation of financial IT development; the focus should not be on emotional appeal, but on the changing professional structure. ","date":"2026-04-16","language":"en","permalink":"https://ttf248.life/en/p/ai-layoffs-and-hiring-freeze/","tags":["AI Inspiration Hub","ai","Layoffs","Workplace","financial"],"title":"What's truly terrifying isn't the layoffs, but the fact that they aren't hiring anymore.","year":"2026"},{"categories":null,"content":"I recently moved, and the broadband at my place switched from China Telecom to Unicom. Usually, when I watch dramas or play games, I don\u0026rsquo;t feel any noticeable difference. It wasn\u0026rsquo;t until a couple of days ago that I tried to download some materials and habitually switched to the US node, but no matter what, the speed wouldn\u0026rsquo;t go up. I was a bit dumbfounded at the time.\nI figured this out later. I used to think that because the bandwidth in US data centers was sufficient, the US nodes were naturally stronger. Now I see that this understanding is only half right. Having ample server resources in the US is one thing; which broadband provider to use domestically, how the international exit path works, and whether the return trip benefits from better backbone connections are the other half. Issues that weren\u0026rsquo;t exposed when I used Telecom were all revealed after switching to Unicom.\nIt\u0026rsquo;s really hard to notice in daily life These kinds of differences are easily hidden in normal circumstances.\nWatching shows relies on the video platform\u0026rsquo;s own scheduling, and often cross-border bandwidth doesn\u0026rsquo;t need to be kept at full capacity. Gaming is more concerned with latency jitter and node stability; when it comes to downloading large files or running high bandwidth continuously, whether the line is suitable immediately reveals its flaws.\nSo now I actually feel that the download speed is the most honest benchmark. Just because you usually feel everything is normal doesn\u0026rsquo;t mean this connection is truly wide; it just means you haven\u0026rsquo;t pushed it to its limit.\nPreviously, US nodes could be fully utilized; it\u0026rsquo;s not just the US data centers that are powerful. In the publicly available materials from China Telecom, ChinaNet is its main network, and CN2 (AS4809) is its next-generation global backbone network that emphasizes low latency and high quality, targeting businesses that place greater importance on international quality. Many people have heard of this; even airport vendors often use it as a selling point.\nSo, previously when I was on the telecom broadband, switching to a US node could boost my download speed. Looking back now, it\u0026rsquo;s probably not that \u0026ldquo;America is inherently faster,\u0026rdquo; but rather that the combination of \u0026ldquo;US data center resources + upstream lines at the node + China Telecom\u0026rsquo;s international routing\u0026rdquo; just happened to align perfectly. Once the line hits a direction favorable to China Telecom, the experience really is great.\nTo put it plainly, at that speed before, it wasn\u0026rsquo;t necessarily that the nodes were generally stronger; it was more like I happened to be standing on the side that had an advantage.\nChina Unicom doesn\u0026rsquo;t lack international internet, but the route might not be the same as your original one. However, this matter cannot be simply understood as \u0026ldquo;China Unicom relies entirely on renting telecom networks.\u0026rdquo;\nChina Unicom also has a considerable international network. The official website of China Unicom clearly states that its backbone network, AS4837, has over 400 PoPs globally, and it also has AS9929 for higher quality capacity. In terms of coverage, it has laid out points in Singapore, Taiwan, and the United States.\nBut the problem is this. \u0026ldquo;Having international internet access\u0026rdquo; and \u0026ldquo;the proxy node you bought right now happens to be friendly to this carrier\u0026rdquo; are not the same thing.\nWhat home broadband users truly feel is not just whether the carrier has overseas resources, but also:\nWhich carrier is local to you? Which return path does the proxy service provider\u0026rsquo;s upstream prefer? Are the outbound and return paths of the nodes optimized in the same way? Is there congestion during peak hours? Is this link more biased towards China Telecom, or more biased towards Unicom/China Mobile? Many US nodes; in the past, I could saturate them when using Telecom, but it doesn\u0026rsquo;t work after switching to Unicom. I am more inclined to understand it as: the line combination of these nodes was inherently more friendly to Telecom. I didn\u0026rsquo;t feel this before because I myself was on Telecom.\nWhy Singapore and Taiwan are Doing Better This is also quite interesting.\nAfter switching to Unicom, the US nodes are no longer working well, but Singapore and Taiwan have improved quite a bit. This change actually illustrates the issue better than just saying \u0026ldquo;US node speed dropped.\u0026rdquo;\nMy understanding is that the Asia direction was originally closer, with shorter paths, and denser regional interconnection. Since Connect has network resources and PoPs in both Singapore and Taiwan, if the proxy service provider provides a more direct regional path at the Asian nodes, the download speed will naturally be easier to achieve.\nThis doesn\u0026rsquo;t necessarily mean that Singapore or Taiwan data centers are stronger than the US, nor does it mean that all broadband connections should choose an Asian node. It\u0026rsquo;s more like your current broadband has a better line match with these regional nodes.\nHow should I put it? Whether a node is strong or not isn\u0026rsquo;t just about its physical location in the data center; you also have to consider if the route home recognizes you.\nThis finally corrected my previous understanding My previous thought was quite simple: US data centers are large, and broadband resources are abundant, so choosing a US node for downloading materials should basically never be wrong.\nLooking at it now, this judgment is too coarse.\nA more accurate way to say it is:\nWhether the US node can be fully utilized depends not only on the US data center, but also on which backbone network your broadband provider is connected to.\nThe line that works very well for China Telecom users might not work the same way when switched to Unicom. For Singapore and Taiwan, which are actually smoother under Unicom, it\u0026rsquo;s not that \u0026ldquo;Asian nodes suddenly got stronger,\u0026rdquo; but rather that the lines finally fit better.\nSo in the future, when buying proxies or choosing nodes, I probably won\u0026rsquo;t automatically focus on the US anymore. It\u0026rsquo;s more important to first look at what kind of broadband you have and then see which line the service provider favors, rather than whether the data center is in the US or Asia.\nAh, this kind of difference is really hard to tell when just binge-watching dramas or playing games. It only becomes obvious when you have to transfer large files.\nReferences China Telecom Americas: IP Access / Global Internet Service (CN2, ChinaNet Introduction) China Unicom Global Singapore: DIA (AS4837, AS9929 Introduction) China Unicom Global Europe: Global Presence (Overseas Nodes in Singapore, Taiwan, USA, etc.) Writing Notes Original Prompt Prompt: In mainland China, when using proxy software for scientific internet access, I noticed a difference between Unicom and Telecom broadband. It\u0026rsquo;s hard to notice during daily activities like watching dramas or gaming. Occasionally downloading materials, I prefer selecting US nodes because the download speed there can basically reach full capacity. This aligns with my previous understanding that servers in US data centers are provided with ample broadband resources. Recently, after moving and switching to Unicom bandwidth, I discovered a problem: the download speed on US nodes cannot go up anymore. Switching to Singapore or Taiwan has improved things a lot. This is related to China\u0026rsquo;s backbone network; CN2 high-speed backbone networks are all operated by Telecom, while Unicom has to rent Telecom\u0026rsquo;s network.\nWriting Outline Summary Keep the real trigger point of \u0026ldquo;only realizing the difference after moving and changing broadband\u0026rdquo; and do not write the article as a general network science popularization piece. Keep the core judgment: \u0026ldquo;It\u0026rsquo;s about how fast the node is, and you can\u0026rsquo;t just look at US data centers; you also need to consider domestic broadband and international routing.\u0026rdquo; Supplemented verification on CN2, China Unicom international backbone, and overseas PoPs, correcting \u0026ldquo;China Unicom relies entirely on renting Telecom network\u0026rdquo; to a more accurate description. For the part about Singapore and Taiwan being faster, explain it as \u0026ldquo;shorter regional paths and higher line matching degree,\u0026rdquo; rather than stating it as an absolute rule. Structurally, first write the subjective feeling (experience), then explain the reasons, and finally bring the conclusion back to \u0026ldquo;how to choose nodes in the future.\u0026rdquo; ","date":"2026-04-16","language":"en","permalink":"https://ttf248.life/en/p/us-nodes-not-as-good-after-switching-to-china-unicom/","tags":["AI Inspiration Hub","Broadband","Unicom","Telecommunications","network"],"title":"After moving to Unicom, the US nodes aren't as good anymore.","year":"2026"},{"categories":null,"content":"After finishing the article \u0026ldquo;[Mistaking Hermes for an OpenClaw Alternative, Maybe I Was Biased From the Start]\u0026quot;(/en/p/hermes-openclaw-not-the-same-game/), I went through a round of documentation on both sides. The more I read, the more I felt that to truly see the difference between these two things, just looking at the features isn\u0026rsquo;t enough; looking at how tokens are consumed is actually more direct.\nI\u0026rsquo;ll state my judgment first.\nOpenClaw is by default more like a long-term online workbench; many identities, rules, workspace files, and message constraints naturally persist across conversation rounds, so the base model is usually heavier. Hermes, on the other hand, is noticeably more restrained; much of the context is discovered and injected on demand, and the system prompt deliberately maintains a stable prefix, making it easier to control token usage by default.\nOf course, this doesn\u0026rsquo;t mean that Hermes is necessarily more cost-effective. If you enable the memory provider, skills, sub-agent, and long tool output all at once, it can burn through tokens just as fast. But frankly speaking, these two architectures have not been consuming tokens in the same way since day one.\nWhy is OpenClaw by default heavier? OpenClaw\u0026rsquo;s design logic was never \u0026ldquo;to create a lightweight agent for a quick chat,\u0026rdquo; but rather \u0026ldquo;to build up a long-term, persistent agent workbench.\u0026rdquo; This is stated very clearly in the official workspace documentation.\nAGENTS.md, SOUL.md, and USER.md are loaded for every session. These files, such as IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOT.md, and MEMORY.md, also revolve around the same workspace. The documentation even specifically reminds that HEARTBEAT.md should be kept very short to avoid token burn. This reminder itself indicates that OpenClaw is well aware that its default context is quite thick.\nHowever, one thing that needs to be made clear is that OpenClaw doesn\u0026rsquo;t have everything permanently resident in the context. Its official token documentation clearly states that when skills are added to the system prompt, they are by default just metadata, and specific instructions must be explicitly read as needed. Therefore, its issue isn\u0026rsquo;t \u0026ldquo;not knowing how to save,\u0026rdquo; but rather that \u0026ldquo;the base it defaults to carrying is inherently larger.\u0026rdquo;\nThis is actually not difficult to understand. OpenClaw aims to solve the issues of \u0026ldquo;long-term online presence\u0026rdquo; and \u0026ldquo;multi-message surface visibility.\u0026rdquo;\nYou have to make an agent live simultaneously in places like Telegram, Discord, Slack, and WhatsApp. It also needs identity, routing, boundaries, and delegation. Many rules cannot just be tacked on temporarily. It first needs to know who it is, how to speak, whom it\u0026rsquo;s facing, what the constraints of the current workspace are, where to find skills, which memories to carry, and which memories not to carry.\nSo, the token consumption for OpenClaw is more like a large fixed overhead.\nEvery time you send a message, you are not just saying one sentence to a model; you are activating an entire set of pre-configured \u0026ldquo;assistant environment.\u0026rdquo; This environment is very useful, but the cost is that the base prompt is thicker, and much context, even if not directly used in this round, will be placed there first.\nWhy Hermes Looks More Restrained Regarding Hermes, the most interesting part of the documentation is that it keeps emphasizing two things: on-demand loading and prompt cache preservation.\nFirst, look at the context files. Hermes only loads the project contexts that match the current working directory when a session starts; things like AGENTS.md, CLAUDE.md, and .cursorrules are first-match wins, so they won\u0026rsquo;t all be loaded at once. More importantly, the AGENTS.md in a subdirectory isn\u0026rsquo;t read entirely at startup; it is discovered and injected incrementally only when you actually navigate to that directory, read that file, or reach that path.\nThe official documentation clearly writes out the benefits of this design:\nno system prompt bloat prompt cache preservation This taste is very different from OpenClaw. Hermes seems to be saying that it\u0026rsquo;s best not to make the system prompt too long; place context that can be deferred, and don\u0026rsquo;t fill up the first round with things that only appear at relevant times.\nThe skills also follow the same logic. The Hermes skills documentation explicitly mentions progressive disclosure, with the goal of minimizing token usage. In other words, the skill is not permanently present in the full text by default; instead, the model first sees a lightweight index and only expands to show the detailed content when it\u0026rsquo;s truly necessary.\nFurthermore, its memory system is also combinatorial. The official documentation severely limits the built-in memory: MEMORY.md is about 800 tokens, and USER.md is about 500 tokens, totaling a fixed capacity of around 1300 tokens. SOUL.md is for fixed identity, while USER.md and memory are included in the system prompt, but items like session search, memory provider, and Honcho feel more like external layers. This structure doesn\u0026rsquo;t naturally shorten the prompt, but it provides a default posture that is easier to control cost-wise.\nSo, from an architectural perspective, I would be more inclined to categorize Hermes as \u0026ldquo;default restraint, gradually increasing weight.\u0026rdquo;\nIt\u0026rsquo;s not about who is more advanced, but where the cost is placed Many comparison articles like to write token consumption as a single conclusion, which I think is incorrect.\nOpenClaw is heavier, but that doesn\u0026rsquo;t mean it\u0026rsquo;s poorly designed. On the contrary, it intentionally front-loads a lot of features. If you want an assistant that is long-term online, cross-platform, has personality, has a workspace, and has routing, then these contexts will eventually cost something. It just chooses to bring all these things together on the default path first.\nHermes is more restrained, but that doesn\u0026rsquo;t mean it has no overhead. Once you stack a long SOUL.md, the project AGENTS.md, multiple skills, MCP, memory provider, sub-agent, and long tool outputs together, tokens can still roll very quickly. Especially if the tool output itself is very long, or if you make it search back and forth in a complex codebase, that\u0026rsquo;s not something you can save just by naming the architecture.\nSo, a more accurate way to say it is:\nOpenClaw moves the cost to \u0026ldquo;assistant environment residency.\u0026rdquo;\nHermes shifts the cost to \u0026ldquo;capability on demand.\u0026rdquo;\nNeither approach is absolutely superior, but their billing structures are completely different.\nWhat truly makes the difference is not just the system prompt There are a few details that are quite easy to overlook.\nFirst, Hermes was designed to stabilize the prefix in the context files. The subdirectory hints are appended to the results of relevant tools, rather than continuously feeding all project contexts into the system prompt. This approach not only saves tokens but also essentially leaves space for the provider\u0026rsquo;s prompt cache.\nSecond, tools like Hermes\u0026rsquo;s execute_code are designed to only return the final result printed by the script back to the model; all the intermediate results from RPC tool calls will not be included in the context. In complex workflows, this structure can eliminate a large amount of meaningless tool noise.\nThird, OpenClaw\u0026rsquo;s workspace philosophy means it\u0026rsquo;s more like \u0026ldquo;bringing everything with you.\u0026rdquo; Even if many individual files are short, as long as there are many types of files, many layers of persona, many layers of rules, and many levels of skills and memories, the foundational context will gradually become thicker. This thickness is not a bug; it is part of its product design trade-offs.\nFourth, how both sides handle the sub-agent will also affect the total ledger. Many of Hermes\u0026rsquo; designs emphasize local context and local execution, while OpenClaw emphasizes the organizational capabilities of multiple agent identities, routes, and delegates. One is more like switching context, and the other is more like organizing existence relationships. Finally, when it comes to the token billing, the shape is naturally different.\nIf you want to calculate it, don\u0026rsquo;t rely on your mouth If you are really planning to use it long-term, don\u0026rsquo;t just listen to anyone saying \u0026ldquo;this is more energy efficient\u0026rdquo;; look directly at the data provided by the tool.\nOpenClaw has commands like /context detail and /usage tokens, and the documentation will also remind you which files are injected at the start of each session. This is very suitable for seeing how thick the base knowledge really is.\nRegarding Hermes, the official documentation provides clues such as token budget, skills progressive disclosure, and context file injection methods in Honcho and related features. You can look at this by combining hermes insights, session storage, and actual provider billing.\nTo put it plainly, the architecture can only determine \u0026ldquo;how to spend,\u0026rdquo; but it cannot decide \u0026ldquo;how much to spend.\u0026rdquo; What truly determines the bill is how long your SOUL.md is, how much memory you\u0026rsquo;ve stuffed in, how many skills you\u0026rsquo;ve enabled, whether the tool output was contained, and how expensive the model itself is.\nI\u0026rsquo;m still on this side If I only look at the default architecture and not extreme configurations, I still tend to think that Hermes is better at keeping token consumption within a relatively restrained range.\nIt\u0026rsquo;s not because it\u0026rsquo;s stronger, but because from the start of prompt design, it has been avoiding \u0026ldquo;meaningless persistent context bloat.\u0026rdquo; OpenClaw is the opposite; it would rather carry a bit more to ensure that the identity, workspace, and message boundary of that long-term online assistant don\u0026rsquo;t fall apart.\nSo if you are particularly concerned about token costs, and the workflow mainly happens in local, CLI, code repository, or skill knowledge base scenarios, Hermes\u0026rsquo; approach will generally be more convenient.\nIf you want a long-term assistant that is truly available across various messaging platforms, then spending more tokens with OpenClaw feels like a normal cost. You can\u0026rsquo;t expect it to be online long-term like a person while also requiring it to be as lightweight as a one-off tool every turn.\nAh, this matter ultimately comes back to the old question.\nAre you raising an online assistant, or are you raising a local agent core? Figure that out, and the token accounting won\u0026rsquo;t be so hard to understand.\nReferences Previous Post: Mistaking Hermes for OpenClaw Replacement, Might Have Been Biased From the Start Hermes Agent Features Overview Hermes Agent Context Files Hermes Agent Personality \u0026amp; SOUL.md Hermes Agent Skills Hermes Agent Built-in Tools Reference Hermes Agent Honcho Memory OpenClaw Agent Workspace OpenClaw Token Use and Costs OpenClaw Memory OpenClaw Multi-Agent Routing OpenClaw Context Reference Writing Notes Original Prompt Prompt: Hermes and OpenClaw write another article about their token consumption. Since the architectures are different, the consumption must be different.\nWriting Idea Summary Continue the judgment from the previous article, but narrow the focus to token consumption, and no longer repeat the overall architecture comparison. Focus on comparing the default context assembly methods of both sides, rather than just talking about \u0026ldquo;who is more efficient.\u0026rdquo; Hermes focuses on progressive disclosure, on-demand discovery, and prompt cache preservation. OpenClaw focuses on workspace persistent files, long-term online assistant environments, and fixed overhead. The conclusion retains the core judgment provided by the user, but adds a layer of practical reminder: to truly see the bill, one must combine official usage/context tools with actual provider billing. ","date":"2026-04-16","language":"en","permalink":"https://ttf248.life/en/p/hermes-openclaw-token-usage-diff/","tags":["AI Inspiration Hub","ai"],"title":"Changing the architecture, Hermes and OpenClaw tokens are not consumed in the same way.","year":"2026"},{"categories":null,"content":"Over the past couple of days, I\u0026rsquo;ve been flipping back and forth through the documentation for Hermes and OpenClaw, and the more I read, the more I feel that many people compare these two projects as if they are on the same level; in reality, the comparison is biased from the start.\nThey are all doing \u0026ldquo;personal AI assistants.\u0026rdquo; They can receive messages, call models, run tools, and retain some context. Hermes even specifically created hermes claw migrate, clearly knowing it would receive a batch of OpenClaw users.\nBut frankly speaking, Hermes is not a skin-deep version of OpenClaw, and OpenClaw is not just an agent framework with a few extra message entry points. One grows outward from the Gateway, while the other grows outward from the AIAgent. If you don\u0026rsquo;t grasp this difference first, discussing architecture, design philosophy, and ecosystem later will just lead to more confusion.\nThey were never intended to become one thing The OpenClaw official documentation places Gateway in a very prominent position. Its definition is quite direct: a long-running Gateway holds all message planes, and the control plane clients, Web UI, and Node devices all connect to this Gateway via WebSocket. Furthermore, only one Gateway on a host manages the core message connections; sessions, like those used by WhatsApp, are explicitly monopolized by it.\nWhat does this mean? It means that OpenClaw\u0026rsquo;s worldview is not \u0026ldquo;first have an agent, then connect several entry points to it,\u0026rdquo; but rather \u0026ldquo;first have a persistent communication and control plane, and then organize the agent runtime, session, skills, delegate, and sub-agent within this plane.\u0026rdquo;\nHermes is not like this. Its architecture diagram clearly shows these entry points: CLI, Gateway, ACP, Batch Runner, API Server, and Python Library, all converging into the same AIAgent core. Session storage uses SQLite + FTS5, and the tool backend, provider resolution, and prompt builder are all organized around this core.\nSo, in terms of architecture, OpenClaw is more like a \u0026ldquo;resident personal assistant system\u0026rdquo;; Hermes is more like an \u0026ldquo;agent runtime platform,\u0026rdquo; and the messaging entry point is just one extension surface of it.\nOne that treats the Gateway as the protagonist, and one that treats the Agent as the protagonist This architectural difference will ultimately translate into a difference in user experience.\nOpenClaw\u0026rsquo;s strength is in making the concept of \u0026ldquo;how to have a long-term, identifiable, bounded, and routable assistant across many channels\u0026rdquo; very robust. It has default DM pairing, security policies, routing by channel/account/peer, multi-agent binding, delegate mode, and even organizational-level issues like \u0026ldquo;who sends on behalf of, which account receives, and where it appears in the group\u0026rdquo; are specifically documented.\nIn other words, what OpenClaw wants to solve first is the existence problem. This agent must first act like a real person, or like a real organizational assistant, living on platforms such as Telegram, Discord, Slack, WhatsApp, Signal, and WebChat. Only then can you talk about whether it will write code or perform task distribution.\nHermes\u0026rsquo; focus is more on \u0026ldquo;capability accumulation.\u0026rdquo; While it certainly has Gateway and can connect to platforms like Telegram, Discord, Slack, and WhatsApp, the most prominent terms in its official narrative are not routing or accounts, but persistent memory, skills, MCP, sub-agents, toolsets, as well as batch processing, trajectory export, and RL training.\nThis is very crucial. The core problem Hermes needs to solve is not \u0026ldquo;how to connect an AI to as many messaging platforms as possible,\u0026rdquo; but rather \u0026ldquo;how to let this agent gradually develop its own skills, memory, and reusable capabilities, and even be able to conveniently use them for training data and experiments.\u0026rdquo;\nSo I would prefer to summarize it like this:\nOpenClaw is a communication-first personal assistant system.\nHermes is an agent-core-first self-hosted agent platform.\nMemory, Skills, and Ways of Extension, It\u0026rsquo;s Not One Flavor Many people will say, don\u0026rsquo;t both support skill, memory, and plugin? That\u0026rsquo;s right, they both do. But the focus is different.\nIn OpenClaw\u0026rsquo;s agent runtime, the workspace is a very heavy concept. Files like AGENTS.md, SOUL.md, TOOLS.md, BOOTSTRAP.md, IDENTITY.md, and USER.md are directly injected into the context in the first round of a new session. Skill loading also has an entire set of priorities: those in the workspace, those in the project, those in the personal directory, those in ~/.openclaw/skills, and bundled ones can all stack up. Essentially, it is building a unified long-term assistant environment of \u0026ldquo;personality + rules + workspace + channel.\u0026rdquo;\nHermes\u0026rsquo;s skills system is clearly more geared towards \u0026ldquo;procedural memory.\u0026rdquo; The official documentation states that skills are on-demand knowledge documents, following progressive disclosure, and are compatible with the open standard of agentskills.io, all unified under ~/.hermes/skills/. Furthermore, the agent itself can modify and delete skills. This feels less like \u0026ldquo;giving the assistant a few instruction manuals\u0026rdquo; and more like \u0026ldquo;crystallizing past actions into reusable capability blocks.\u0026rdquo;\nMemory is the same. Hermes has built-in, very restrained MEMORY.md and USER.md, plus a session search using SQLite + FTS5, and it also supports 8 types of external memory providers. This design is quite interesting; instead of writing \u0026ldquo;long-term personality environment\u0026rdquo; in great detail right away, it separates short-term memory, retrieval-based recall, and external long-term memory.\nOpenClaw is not without memory, nor is it without advanced capabilities like sub-agents, multi-agent systems, or delegation. On the contrary, it has plenty of these. However, based on its documentation structure and default mental model, it feels more like managing a continuously online assistant workspace; Hermes feels more like managing a continually evolving agent capability graph.\nWhy is the ecosystem drifting further and further apart? In the ecosystem, on the surface, everything looks like \u0026ldquo;open source + extensible,\u0026rdquo; but in reality, they are quite clearly branched out.\nOpenClaw\u0026rsquo;s ecosystem is broader and leans more towards the external access layer. Official plugins can expand channels, model providers, tools, skills, speech, web fetch, web search, memory, while community plugins and ClawHub are also growing around \u0026ldquo;connecting more platforms, connecting more accounts, connecting more workflows.\u0026rdquo; It even explicitly supports bundle formats like .codex-plugin, .claude-plugin, and .cursor-plugin. This move is very smart; essentially, it means absorbing the shells of other ecosystems first, thereby enlarging its entry points.\nLooking at the OpenClaw documentation, you\u0026rsquo;ll find that it writes very extensively about sub-agents, delegates, organizational agents, thread binding, DM pairing, and group mentions. This indicates its ecosystem goal is not just for single-machine tinkering, but rather to become a truly long-running agent operating system.\nHermes\u0026rsquo;s ecosystem is more like \u0026ldquo;externalizing core capabilities.\u0026rdquo; It has a Python plugin system, a memory provider plugin, a context engine plugin, and MCP server integration, as well as open skill standards like Skills Hub and agentskills.io. Coupled with training-related interfaces such as batch runner, trajectory export, and Atropos, Hermes\u0026rsquo;s ecosystem naturally attracts two types of people.\nOne type is those who use it as a personal agent.\nAnother category is those who use it as a research, training, experimental, or workflow substrate.\nThe needs of these two types of users are very different, but the Hermes architecture can cover both. So you might feel that while Hermes\u0026rsquo; ecosystem may not spread as widely in terms of \u0026ldquo;number of channels\u0026rdquo; and \u0026ldquo;message presence\u0026rdquo; as OpenClaw, I am more inclined to feel that its potential in the agent substrate area will be greater.\nThere\u0026rsquo;s also a pretty interesting detail. The official Hermes README doesn\u0026rsquo;t just have hermes claw migrate; it also features a community project, HermesClaw, which is used to run both the Hermes Agent and OpenClaw on the same WeChat account simultaneously. This signal is quite clear: Hermes isn\u0026rsquo;t pretending that it has no connection with OpenClaw; it is acknowledging the existence of this user migration path and then productizing this path as well.\nMy Final Judgment If what you are looking for is a \u0026ldquo;personal assistant system that truly lives on the messaging front,\u0026rdquo; one that requires accounts, channels, routing, delegation, organizational boundaries, long-term online presence, and strong control planes, then OpenClaw\u0026rsquo;s path is more complete and feels more like a mature communication foundation.\nIf you are looking for an \u0026ldquo;agent core that becomes more like your own workbench the more you use it,\u0026rdquo; and what you value is accumulated skills, memory composition, MCP, plugins, sub-agents, training data, and subsequent moldability, then Hermes is more convenient.\nSo, stop simply asking \u0026ldquo;Can Hermes replace OpenClaw?\u0026rdquo;. That question is a bit rough.\nA more accurate way to ask is:\nDo you want an AI assistant that lives within a messaging network, or an AI platform that lives within local workflows and agent runtimes?\nIf you think this through, the choice won\u0026rsquo;t be so agonizing.\nReferences Hermes Agent GitHub README Hermes Agent Official Website Features Hermes Agent Architecture Hermes Agent Skills System Hermes Agent Persistent Memory Hermes Agent MCP Hermes Agent Plugins OpenClaw GitHub README OpenClaw Gateway Architecture OpenClaw Agent Runtime OpenClaw Multi-Agent Routing OpenClaw Delegate Architecture OpenClaw Sub-Agents OpenClaw Plugins OpenClaw Skills Config Writing Notes Original Prompt Prompts: The differences between Hermes and OpenClaw, architectural differences, differences in design philosophy, and ecosystem differences.\nWriting Idea Summary Remove the common question \u0026ldquo;Alternative Comparison\u0026rdquo; and directly set the main thread to \u0026ldquo;What is the core focus of the two projects?\u0026rdquo;. For the architecture section, prioritize looking at the main entry points and core components in the official documentation, rather than secondary community summaries. In the design philosophy section, avoid vague value judgments and focus directly on specific designs such as Gateway, Agent Core, memory, skill, and delegate. For the ecosystem section, focus on comparing extension directions, not star ratings, popularity, or community hype wars. Fact verification must be based on official repositories and documentation visible as of 2026-04-15. ","date":"2026-04-15","language":"en","permalink":"https://ttf248.life/en/p/hermes-openclaw-not-the-same-game/","tags":["AI Inspiration Hub","ai"],"title":"Treating Hermes as a replacement for OpenClaw might be biased from the start.","year":"2026"},{"categories":null,"content":"Recently, I started a small C++ project using AI. The most frustrating moment isn\u0026rsquo;t when it can\u0026rsquo;t write the code, but when it spits out a seemingly decent directory structure in three minutes and casually throws in a few third-party libraries, making the demo actually runnable. That\u0026rsquo;s the problem. You haven\u0026rsquo;t even figured out what the newly introduced library supports, how the compilation link works, or where its boundaries are, so rework is basically inevitable later on.\nI\u0026rsquo;m increasingly feeling that what AI programming fears most is not the model being dumb, but starting too greedily. Especially with languages like C++, which don\u0026rsquo;t have much scaffolding to fall back on; if you miss one step upfront, later you have to account for several steps regarding compilation, linking, library versions, and directory structure.\nMy own conclusion on this is quite direct: AI is better suited as a pair programmer that can accelerate progress, rather than one that takes over all the initial design and dependency decisions for you. GitHub\u0026rsquo;s documentation suggests starting with simpler tasks, letting the agent master areas with clearer boundaries like bugs, documentation, tests, or technical debt; Anthropic\u0026rsquo;s Plan Mode documentation feels more like insurance for complex changes—first read the code, then create a plan, and only then decide whether to implement the change. The two approaches aren\u0026rsquo;t exactly the same, but they point in the same direction: don\u0026rsquo;t throw the hardest, messiest, most dependency-laden chunk at the AI right away.\nSo, this article won\u0026rsquo;t talk about a bunch of specifications; instead, it will provide a small case study that you can practice with immediately. You can follow along using any empty C++ repository.\nIt\u0026rsquo;s not that AI is impossible, it\u0026rsquo;s that the starting point was too greedy Writing AI projects, especially in C++, is often a very rudimentary approach.\nStart with a minimal working version from main.cpp First, get the compilation pipeline running Then decide which libraries to include Ensure it still compiles at every step Wait until the business outline is clear before starting refactoring This method looks slow, but it\u0026rsquo;s actually very stable. Because at every step you know exactly what you gained, and you also know which step the problem originated from.\nAI is prone to disrupting this rhythm. It really likes to \u0026ldquo;complete it for you\u0026rdquo; in one go:\nI\u0026rsquo;ve also set up the configuration files for you. I\u0026rsquo;ve also extracted the logging module for you. I\u0026rsquo;ve also organized the error codes, utility classes, and directory structure together. It even selected the integration method for third-party libraries for you. The result is that the demo looks complete, but your mental model is empty. If there\u0026rsquo;s any discrepancy between a library\u0026rsquo;s capability boundary and what you expect later on, rework won\u0026rsquo;t be in one spot, but a series of them.\nStart with a small project to get some practice I think it would be good for practice to build a very small log scanning tool. You can name it anything, like logscan.\nIt does one thing: it scans log files in a directory, counts the number of error and warn, and then prints the result. This problem is not big, but it\u0026rsquo;s just enough for you to go through the most common parts of a small C++ project:\nmain and parameter entry point Output formatting Logging Configuration files Business module decomposition The key is not how advanced the questions are, but how you break them down.\nI will break it down into four steps, and for each step, the AI is only allowed to do the current small part.\nStep One, Prepare the Output First First, don\u0026rsquo;t touch the logs, don\u0026rsquo;t touch the configuration, and don\u0026rsquo;t think about abstraction.\nDo two things:\nCreate a minimal main.cpp Include fmt, and print the scanned directory and statistics results The official documentation for fmt provides very clear CMake usage. It has two targets: fmt::fmt and fmt::fmt-header-only. The documentation also explicitly recommends the compiled version, and the reason is quite simple: it\u0026rsquo;s more friendly to build times. CMake\u0026rsquo;s FetchContent documentation is also very suitable for starting new projects because it fetches dependencies during the configure stage, rather than downloading them temporarily during the build stage.\nIn this step, I will directly fix the dependency strategy and not let the AI play freely.\nEither unify FetchContent Or unify find_package Don\u0026rsquo;t use vcpkg one moment, add_subdirectory the next, and manually copy headers after that If it\u0026rsquo;s a practice project, I usually constrain the AI like this:\nDo not optimize the architecture all at once. The current goal is only this step, and the project must always be compilable. This step involves only 3 things: 1. Include fmt in the root CMakeLists.txt. 2. Use fmt in main.cpp to print the passed directory and scanning results. 3. Keep the existing target names and directory structure; do not add new logging, configuration, or testing frameworks. First, give me a modification checklist, then provide the code. After completion, provide the compilation command and expected output. There\u0026rsquo;s a detail here that is quite important. If AI is not constrained, it can easily treat \u0026ldquo;doing something extra in the back\u0026rdquo; as a bonus point. You must explicitly tell it that it cannot go beyond the scope this round.\nStep Two, Upload Logs Once the first step is done, it can be compiled, run, and the output looks clean, then add spdlog.\nThe official spdlog README is actually very straightforward about what it can do. It can handle console logging, as well as regular files, rolling files, daily rotation, and even a backtrace ring buffer. The problem is this: with so many capabilities, AI gets easily excited and wants to cram everything into the first version—colored console output, rolling logs, daily archiving, global logger factory, all at once.\nNo need.\nFor this step, I will only have it do console logging, or at most add the simplest file logging. Because what you really need to learn at this point is not \u0026ldquo;how to design a complete logging system,\u0026rdquo; but three things:\nWhere to initialize the logger How to get the logger in business logic How to separate logging and normal output when an error occurs If you immediately implement rotating_file_sink or daily_file_sink, while you quickly gain a \u0026ldquo;feature-rich\u0026rdquo; logging module, you might not actually know if you need rotation or daily splitting, or if printing to the terminal during debugging is sufficient.\nTo put it plainly, understanding how to use spdlog::info() is more important than making the logging factory look pretty.\nStep Three: Touching the Configuration File The configuration file section is easier for AI to turn into a large project.\nI prefer to practice with a simpler library like toml++, not because it\u0026rsquo;s the \u0026ldquo;most powerful,\u0026rdquo; but because it\u0026rsquo;s very suitable for the initial stages of a new project. It is itself a C++17 header-only TOML parser, and the examples in the README are also quite short; you can directly read with toml::parse_file(\u0026quot;configuration.toml\u0026quot;). More importantly, its single-header mode is incredibly convenient. The official description is quite interesting: the single-header approach is just \u0026ldquo;throwing toml.hpp into your source tree,\u0026rdquo; and then there\u0026rsquo;s \u0026ldquo;no second step.\u0026rdquo;\nFor this step, do not use a \u0026ldquo;Configuration Center,\u0026rdquo; but read three fields:\nScan Directory Keyword List Write Output to File Then put them into a very thin AppConfig struct.\nThat\u0026rsquo;s enough.\nA lot of rework, it actually comes down to this. You haven\u0026rsquo;t even figured out if the configuration should be read once at startup or hot-updated at runtime; whether it\u0026rsquo;s only for the local CLI or if you plan to reuse it for service processes later. AI has already taken five or six layers ahead of you. If you change direction later, all that \u0026ldquo;complete design\u0026rdquo; from before will just become a burden.\nStep Four: Decomposing Business Modules For libraries like fmt, spdlog, and toml++, please read through the official documentation yourself, run them successfully in practice, and then ask AI to help you break down the modules.\nWhen you break it down like this, then you\u0026rsquo;ll have a clear understanding.\nI usually receive the following types of files:\nmain.cpp is only responsible for assembly app_config.{h,cpp} is only responsible for configuration reading logger.{h,cpp} is only responsible for log initialization log_scanner.{h,cpp} handles business logic Note that the splitting happens at this step, not from the first step. In the first step, just lining up the table of contents neatly is often only visually pleasing and doesn\u0026rsquo;t necessarily mean it\u0026rsquo;s cognitively clearer.\nWhat\u0026rsquo;s truly useful isn\u0026rsquo;t some complex specification Many online AI coding guidelines are very complicated, with dozens of rules. It\u0026rsquo;s tiring just looking at them. The ones I kept for myself are actually only three, and they are enough.\nFirst, create a \u0026ldquo;resource card.\u0026rdquo;\nEvery time I prepare to reference a third-party library, I first ask the AI to answer these four questions:\nWhat problem does this library solve? How far has the official support reached? Which 1 or 2 capabilities am I planning to use this time? What new constraints will it bring to building, deploying, and running? If you can\u0026rsquo;t explain this card, don\u0026rsquo;t play it yet.\nSecond, only let the AI pass one checkpoint at a time.\nFor example, in this round, it is only allowed to complete:\nCan code Can run Can see expected output Don\u0026rsquo;t add things like \u0026ldquo;while I\u0026rsquo;m at it, let\u0026rsquo;s refactor the directory,\u0026rdquo; \u0026ldquo;I\u0026rsquo;ll quickly add a configuration class,\u0026rdquo; or \u0026ldquo;let\u0026rsquo;s unify the exception handling system\u0026rdquo; in the same round. In C++ projects, the more \u0026ldquo;conveniently\u0026rdquo; you do something, the easier it is to muddy the source of the problem.\nArticle Three, a rollback point must be left after every round.\nEven if you don\u0026rsquo;t commit, you should be able to answer:\nWhat exactly changed in this step? If it\u0026rsquo;s wrong, which parts need to be deleted? After reverting to the previous step, can the project still be compiled? You will find that this line of thinking is actually very similar to manual development. The difference is that before you wrote the code yourself, now you are supervising the AI so it doesn\u0026rsquo;t run wild.\nA More Practical Use Case for AI If you really want to master this set of things, I suggest doing three consecutive rounds.\nIn the first round, only let the AI help you with fmt, and read through the CMake configuration and output code yourself.\nRound two, only let the AI handle spdlog. You decide whether it should be console logging or file logging; you cannot use both together.\nRound three, only let the AI handle toml++, and you decide the configuration items yourself; do not allow the AI to guess future requirements for you.\nAfter going through these three rounds, your feeling about AI programming will change a lot. Before, it was \u0026ldquo;how did it generate so much for me all at once,\u0026rdquo; but later it will slowly become, \u0026ldquo;how small should I prompt the next step to be most worthwhile.\u0026rdquo;\nI think this is the most valuable skill in AI programming right now.\nIt\u0026rsquo;s not about creating a demo.\nbut rather to steadily move a project forward.\nTo be honest, this set of methods isn\u0026rsquo;t very novel; it\u0026rsquo;s even a bit old-fashioned. But old methods are often resistant to rework. Especially with a language like C++, if you let the AI do less and confirm more yourself at the beginning, things will genuinely become much easier later on. Otherwise, you might fly up in three minutes only to have to go back to the drawing board for three hours—and the one who looks foolish is still yourself.\nReferences Anthropic, Claude Code Common Workflows Anthropic, Claude Code Overview GitHub Docs, Best practices for using GitHub Copilot to work on tasks CMake Docs, FetchContent {fmt} Get Started gabime/spdlog README gabime/spdlog Wiki: Sinks marzer/tomlplusplus README Writing Notes Original Prompt Prompt: Writing a project manually, especially for languages like C++ that don\u0026rsquo;t have scaffolds. First, create a basic framework starting from main and gradually expand the logic by adding modules, such as configuration files, logging modules, and iterative business modules. My habit is to ensure it compiles at every step and refactor incrementally; what I write initially might not be the optimal solution. Regarding AI programming, often nowadays, steps are skipped, and too little thought is put into the early stages, especially when introducing new third-party libraries. While AI can quickly generate a demo, because I don\u0026rsquo;t fully understand the details of newly introduced third-party libraries or what functions they support, the rework rate for related logic is significantly higher than manual development. Do you have any good practical examples that I can learn from? I know there are many complex AI programming guidelines online, but I want something simpler and quickly implementable.\nWriting Idea Summary Narrow the topic down to the tooling lane, focusing on where things become easier or conversely more awkward after AI changes workflows. Don\u0026rsquo;t write a general checklist of best practices; instead, turn it into an incremental hands-on case study using a small C++ project. Keep the core judgment that the user \u0026ldquo;starts from main, can compile at every step, and refactors gradually,\u0026rdquo; and make this the main narrative thread throughout the article. Supplemented with primary sources for Anthropic, GitHub, CMake, fmt, spdlog, and toml++ to avoid guessing about tool capabilities and dependency methods. The article structure progresses according to fmt -\u0026gt; spdlog -\u0026gt; toml++ -\u0026gt; module decomposition, intentionally preventing AI from achieving everything in one go. ","date":"2026-04-10","language":"en","permalink":"https://ttf248.life/en/p/ai-demo-fast-rework-faster/","tags":["AI Inspiration Hub","ai","C++","Software Engineering"],"title":"AI writes demos quickly, and revisions are also really fast.","year":"2026"},{"categories":["Computer"],"content":"Previously, when I debugged C++ in VS Code, the configuration basically stopped at launch.json, maybe with an extra line for GDB. Fill in the program, fill in the gdb, set the breakpoints. And then what? Then every time before debugging, I had to manually run cmake --build in the terminal. What was even more annoying was that after setting breakpoints on custom prices, contracts, or order types, the VS Code debug window often only showed a bunch of internal fields. The data was correct, but it wasn\u0026rsquo;t human-readable. The ridiculous part is that some tutorials I saw before stopped around launch.json. It wasn\u0026rsquo;t until recently, when I had an AI set up a new project for me, that it conveniently added preLaunchTask and gdb_printers.py, that I realized: debugging C++ in VS Code isn\u0026rsquo;t just about starting GDB. You can automatically trigger CMake compilation before debugging, and after hitting a breakpoint, you can even let GDB load a Python script to format business types into something readable for us. Honestly, this isn\u0026rsquo;t some black magic. But it perfectly filled two annoying gaps in daily C++ debugging: pre-launch build and variable display after a breakpoint.\nOnly Half Was Configured Before The .vscode/launch.json in many tutorials is probably something like this:\n{ \u0026#34;version\u0026#34;: \u0026#34;0.2.0\u0026#34;, \u0026#34;configurations\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;Debug with GDB\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;cppdbg\u0026#34;, \u0026#34;request\u0026#34;: \u0026#34;launch\u0026#34;, \u0026#34;program\u0026#34;: \u0026#34;${workspaceFolder}/build/debug/bin/vscode_cpp_debug_demo\u0026#34;, \u0026#34;args\u0026#34;: [], \u0026#34;stopAtEntry\u0026#34;: false, \u0026#34;cwd\u0026#34;: \u0026#34;${workspaceFolder}\u0026#34;, \u0026#34;MIMode\u0026#34;: \u0026#34;gdb\u0026#34;, \u0026#34;miDebuggerPath\u0026#34;: \u0026#34;/usr/bin/gdb\u0026#34;, \u0026#34;setupCommands\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Enable pretty-printing for gdb\u0026#34;, \u0026#34;text\u0026#34;: \u0026#34;-enable-pretty-printing\u0026#34;, \u0026#34;ignoreFailures\u0026#34;: true } ] } ] } This part cannot be wrong. The official C++ example in VS Code also uses a similar structure: type uses cppdbg, MIMode uses gdb, and pretty-printing is enabled in setupCommands. But one crucial step is missing. When you press F5, it launches the executable file pointed to by program. The problem is, was this file just compiled? If not, then you are debugging the old program from last time. I used to do this stupid thing often. I changed the code and set breakpoints, debugged for a while, only to realize later: Oh, I forgot to recompile.\npreLaunchTask is the hook VS Code Tasks are essentially about hooking external commands into the editor. Compiling, testing, and packaging—what used to be typed in the terminal can now be written into .vscode/tasks.json. Then, preLaunchTask in launch.json finds that task by its label. For a minimal CMake project, it could look like this:\n. ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── CMakeLists.txt ├── src/ │ └── main.cpp └── tools/ └── gdb_printers.py Here is the CMakeLists.txt first:\ncmake_minimum_required(VERSION 3.16) project(vscode_cpp_debug_demo LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) add_executable(vscode_cpp_debug_demo src/main.cpp ) And here is .vscode/tasks.json:\n{ \u0026#34;version\u0026#34;: \u0026#34;2.0.0\u0026#34;, \u0026#34;tasks\u0026#34;: [ { \u0026#34;label\u0026#34;: \u0026#34;cmake: configure debug\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;process\u0026#34;, \u0026#34;command\u0026#34;: \u0026#34;cmake\u0026#34;, \u0026#34;args\u0026#34;: [ \u0026#34;-S\u0026#34;, \u0026#34;${workspaceFolder}\u0026#34;, \u0026#34;-B\u0026#34;, \u0026#34;${workspaceFolder}/build/debug\u0026#34;, \u0026#34;-DCMAKE_BUILD_TYPE=Debug\u0026#34; ], \u0026#34;problemMatcher\u0026#34;: [] }, { \u0026#34;label\u0026#34;: \u0026#34;cmake: build debug\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;process\u0026#34;, \u0026#34;command\u0026#34;: \u0026#34;cmake\u0026#34;, \u0026#34;args\u0026#34;: [ \u0026#34;--build\u0026#34;, \u0026#34;${workspaceFolder}/build/debug\u0026#34;, \u0026#34;--parallel\u0026#34; ], \u0026#34;dependsOn\u0026#34;: [\u0026#34;cmake: configure debug\u0026#34;], \u0026#34;group\u0026#34;: { \u0026#34;kind\u0026#34;: \u0026#34;build\u0026#34;, \u0026#34;isDefault\u0026#34;: true }, \u0026#34;problemMatcher\u0026#34;: [\u0026#34;$gcc\u0026#34;] } ] } Notice the cmake --build here. The official CMake build entry point is this format: cmake --build \u0026lt;dir\u0026gt;. It calls the underlying native build tool, such as Make, Ninja, or MSBuild. This means VS Code doesn\u0026rsquo;t need to know whether your project should use make or ninja. CMake handles that part.\nBefore F5, first compile Then go back to .vscode/launch.json and add preLaunchTask:\n{ \u0026#34;version\u0026#34;: \u0026#34;0.2.0\u0026#34;, \u0026#34;configurations\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;CMake Debug with GDB\u0026#34;, \u0026#34;type\u0026#34;: \u0026#34;cppdbg\u0026#34;, \u0026#34;request\u0026#34;: \u0026#34;launch\u0026#34;, \u0026#34;program\u0026#34;: \u0026#34;${workspaceFolder}/build/debug/bin/vscode_cpp_debug_demo\u0026#34;, \u0026#34;args\u0026#34;: [], \u0026#34;stopAtEntry\u0026#34;: false, \u0026#34;cwd\u0026#34;: \u0026#34;${workspaceFolder}\u0026#34;, \u0026#34;environment\u0026#34;: [], \u0026#34;externalConsole\u0026#34;: false, \u0026#34;MIMode\u0026#34;: \u0026#34;gdb\u0026#34;, \u0026#34;miDebuggerPath\u0026#34;: \u0026#34;/usr/bin/gdb\u0026#34;, \u0026#34;setupCommands\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Enable pretty-printing for gdb\u0026#34;, \u0026#34;text\u0026#34;: \u0026#34;-enable-pretty-printing\u0026#34;, \u0026#34;ignoreFailures\u0026#34;: true } ], \u0026#34;preLaunchTask\u0026#34;: \u0026#34;cmake: build debug\u0026#34; } ] } This line is the key:\n\u0026#34;preLaunchTask\u0026#34;: \u0026#34;cmake: build debug\u0026#34; The flow when pressing F5 becomes:\nlaunch.json -\u0026gt; preLaunchTask -\u0026gt; tasks.json: cmake: build debug -\u0026gt; dependsOn: cmake: configure debug -\u0026gt; cmake -S ... -B ... -\u0026gt; cmake --build ... -\u0026gt; gdb starts the latest program If you are on Windows + MinGW, the program probably needs to be changed to a path with .exe, and miDebuggerPath should also point to your own gdb.exe. If it\u0026rsquo;s a multi-configuration generator like Visual Studio Generator, you usually need to add --config Debug to the build arguments. But the main flow remains the same. Before debugging, let VS Code run the build task first; don\u0026rsquo;t rely on memory alone.\nAnother Pain Point: Incomprehensible Custom Types Just connecting the compilation link is not enough. If you wrap a business type slightly in your C++ code, the variable window on the left side of VS Code starts looking ugly. Take this example. src/main.cpp:\n#include \u0026lt;cstdint\u0026gt; #include \u0026lt;cstdio\u0026gt; #include \u0026lt;string_view\u0026gt; #include \u0026lt;vector\u0026gt; namespace market { struct Price { std::int64_t raw{}; static Price from_double(double value) { return Price{static_cast\u0026lt;std::int64_t\u0026gt;(value * 10000)}; } double to_double() const { return static_cast\u0026lt;double\u0026gt;(raw) / 10000.0; } }; struct Instrument { char symbol[16]{}; Price last; }; Instrument make_instrument(std::string_view symbol, double price) { Instrument instrument; std::snprintf(instrument.symbol, sizeof(instrument.symbol), \u0026#34;%s\u0026#34;, symbol.data()); instrument.last = Price::from_double(price); return instrument; } } // namespace market int main() { std::vector\u0026lt;market::Instrument\u0026gt; watchlist{ market::make_instrument(\u0026#34;IF2406\u0026#34;, 3578.6), market::make_instrument(\u0026#34;IH2406\u0026#34;, 2468.2), }; market::Price limit = market::Price::from_double(3600.5); // Set a breakpoint here to observe watchlist and limit. return watchlist.empty() || limit.raw == 0; } In the business logic, market::Price represents a price. But what the debugger might default to showing is only:\nlimit = {raw = 36005000} Yes, the data is correct. But in my head, I still have to manually convert 36005000 back to 3600.5000. If a project has a bunch of Price, Quantity, OrderId, Instrument, AlgoState, the debug window quickly turns into a structure graveyard. This is when you need GDB pretty-printers. The official GDB manual states it very clearly: It provides a mechanism that can use Python code to pretty-print values, and this mechanism works for both MI and command line. VS Code\u0026rsquo;s C++ debugging uses exactly this GDB/MI path.\nWriting a Python Presentation Layer for Business Types Create tools/gdb_printers.py:\nimport gdb import gdb.printing class PricePrinter: def __init__(self, val): self.val = val def to_string(self): raw = int(self.val[\u0026#34;raw\u0026#34;]) return f\u0026#34;{raw / 10000.0:.4f}\u0026#34; class InstrumentPrinter: def __init__(self, val): self.val = val def to_string(self): symbol = self.val[\u0026#34;symbol\u0026#34;].string() price_raw = int(self.val[\u0026#34;last\u0026#34;][\u0026#34;raw\u0026#34;]) price = price_raw / 10000.0 return f\u0026#34;{symbol} last={price:.4f}\u0026#34; def build_pretty_printer(): printer = gdb.printing.RegexpCollectionPrettyPrinter(\u0026#34;market\u0026#34;) printer.add_printer(\u0026#34;Price\u0026#34;, \u0026#34;^market::Price$\u0026#34;, PricePrinter) printer.add_printer(\u0026#34;Instrument\u0026#34;, \u0026#34;^market::Instrument$\u0026#34;, InstrumentPrinter) return printer gdb.printing.register_pretty_printer( gdb.current_objfile(), build_pretty_printer(), replace=True, ) Then source it in launch.json\u0026rsquo;s setupCommands:\n\u0026#34;setupCommands\u0026#34;: [ { \u0026#34;description\u0026#34;: \u0026#34;Enable pretty-printing for gdb\u0026#34;, \u0026#34;text\u0026#34;: \u0026#34;-enable-pretty-printing\u0026#34;, \u0026#34;ignoreFailures\u0026#34;: true }, { \u0026#34;description\u0026#34;: \u0026#34;Load project pretty-printers\u0026#34;, \u0026#34;text\u0026#34;: \u0026#34;-interpreter-exec console \\\u0026#34;source ${workspaceFolder}/tools/gdb_printers.py\\\u0026#34;\u0026#34;, \u0026#34;ignoreFailures\u0026#34;: false } ] Press F5 again. When you look at the debug window this time, the display for Price should be close to:\nlimit = 3600.5000 And Instrument will change from a blob of arrays and structs to something closer to the business logic:\nIF2406 last=3578.6000 I deliberately say \u0026ldquo;close to\u0026rdquo; here because the pretty-printer needs to match the compiler, type names, and actual field layout. If your business types contain nested std::vector, std::array, or smart pointers, you might need to write more code in Python to access those fields. Don\u0026rsquo;t expect one script to cover everything. But the idea is solid. Separate what \u0026ldquo;you want to see when debugging\u0026rdquo; into its own layer of Python presentation logic.\nDon\u0026rsquo;t treat launch.json as everything Looking at this set of configurations now, I think there are at least three layers. .vscode/launch.json is responsible for \u0026ldquo;how to start the debugger.\u0026rdquo; .vscode/tasks.json is responsible for \u0026ldquo;building the project first before starting the debugger.\u0026rdquo; tools/gdb_printers.py is responsible for \u0026ldquo;displaying variables in a human-readable way after a breakpoint.\u0026rdquo; Before, I only configured the first layer. It worked, but it was very rudimentary. Smooth C++ debugging shouldn\u0026rsquo;t be like: \u0026ldquo;I have to compile it in the terminal first, then come back and press F5, and then manually calculate the meaning of fields in the variables window.\u0026rdquo; The more comfortable workflow should be: Press F5, VS Code automatically runs CMake, GDB automatically loads the project\u0026rsquo;s Python printer, and when a breakpoint is hit, the debug window directly speaks business language. What was most valuable about AI helping me set up this project wasn\u0026rsquo;t how much C++ code it generated. It was that it bridged these old tools together. It\u0026rsquo;s not that I didn\u0026rsquo;t know CMake before, or that I didn\u0026rsquo;t know GDB. I just missed configuring those intermediate hooks.\nReferences Using C++ on Linux in VS Code VS Code: Integrate with External Tools via Tasks CMake cmake(1) manual GDB Manual: Pretty Printing GDB Manual: Writing a Pretty-Printer Writing Notes Original Prompt Prompt: $blog-writer vscode for C++ development, previous tutorials only showed simple configuration of gdb debugging information in launch.json, and didn\u0026rsquo;t mention configuring preLaunchTask. Being able to automatically trigger cmake compilation is a great feature when setting up new projects with AI; if the code has many custom data types that cannot be directly displayed in the VS Code debug window, one can introduce a Python script for preprocessing so that they can all be displayed. Regarding the above content, actual code examples are needed for everything.\nWriting Idea Summary The main thread should focus on the idea that \u0026ldquo;previously, only launch.json was configured, but it missed the two layers of glue: pre-build and runtime display during debugging.\u0026rdquo; Keep the trigger point provided by the user: Discovering that when setting up a new AI project, preLaunchTask can automatically trigger CMake compilation. Organize code examples around a minimal CMake project, including CMakeLists.txt, tasks.json, launch.json, custom C++ types, and GDB Python pretty-printer. For factual verification, prioritize official documentation from VS Code, CMake, and GDB; the main text should not translate entire documents but only retain facts relevant to this debugging pipeline. Provide a warning regarding the boundaries of the pretty-printer: Type names, standard library implementations, and field layouts can affect the Python script, so users must adapt it for their specific types in the project. ","date":"2026-04-09","language":"en","permalink":"https://ttf248.life/en/p/vscode-cpp-debug-prelaunch-cmake-gdb-printer/","tags":["vscode","c++","cmake","gdb","ai","AI Inspiration Hub"],"title":"VS Code for C++, don't forget CMake and GDB Printer","year":"2026"},{"categories":["Computer"],"content":"When I recently wrote the algorithm service, as soon as I implemented modules like twap and vwap, this old problem popped up again.\nIf we rely on class names to enforce semantics in C++, the naming convention quickly becomes out of control. Things like TwapOrderManager, VwapOrderManager, and AlgoOrderManager sound like, \u0026ldquo;I know my structure isn\u0026rsquo;t contained, but I\u0026rsquo;ll at least add a prefix.\u0026rdquo; Frankly speaking, organizing by folders and then adding a layer of namespace isn\u0026rsquo;t about code snobbery; it\u0026rsquo;s filling the gap that C++ has because it lacks Java\u0026rsquo;s native package system.\nTo state the conclusion first If I have to find a software engineering term that is the closest, I think the two words that should be mentioned are:\nModularization Namespace management If I want to be more precise, this type of directory organization is often doing:\nPackaging by feature / Packaging by domain, which is commonly referred to as package by feature If the business boundaries are already very strong, it will also carry a bit of bounded context. In other words, it is not a small concept with a single standard translation name; rather, it is more like several design principles stacked together.\nWhat is actually solved here is not just about \u0026ldquo;looking good\u0026rdquo; When many people first see a namespace, their immediate thought is to avoid name collisions. This is certainly true; the namespace in C++ standards was originally designed to prevent naming conflicts in large projects cppreference. However, when it comes to actual business code, its value goes far beyond that.\nOnce the directory structure and namespace are aligned, class names no longer need to repeat the higher-level semantics.\nFor example, previously one might write something like this:\nclass TwapOrderManager; class TwapScheduleEngine; class VwapOrderManager; class VwapScheduleEngine; After adopting directories and namespaces, a more natural way to write it is usually:\nnamespace algo::twap { class OrderManager; class ScheduleEngine; } namespace algo::vwap { class OrderManager; class ScheduleEngine; } This removes the redundant prefix, making the semantics clearer. Because \u0026ldquo;which context it belongs to\u0026rdquo; is no longer stuffed into the class name, but rather expressed by the directory and namespace.\nTherefore, this approach essentially involves extracting contextual information from the names and letting the structure carry it.\nThis is more like \u0026ldquo;packaging by feature\u0026rdquo; If your directory looks like this:\nstrategy/ twap/ order_manager.h schedule_engine.h slicer.h vwap/ order_manager.h schedule_engine.h slicer.h Then you are no longer doing traditional \u0026ldquo;packaging by technical layer.\u0026rdquo;\nThe traditional way is more like this:\nmodels/ services/ utils/ controllers/ This structure looks neat at the beginning, but as the business logic grows, the service directory will look like a junk heap. Classes related to one feature get scattered across different directories, making it hard to read the code because your mind keeps jumping around.\nWhereas the twap or vwap approach is closer to package by feature. This means a directory first answers the question, \u0026ldquo;What is this business module about?\u0026rdquo;, and then places all the objects and processes needed for that specific business module inside it. This concept is more common in the Java world, but it works just as well in C++; the difference is that what carries it isn\u0026rsquo;t a native package, but rather a combination of \u0026ldquo;directory + namespace + header file boundaries.\u0026rdquo;\nSimply put, you are organizing code by the reason for change, not by the appearance of the code.\nTaking it one step further, it\u0026rsquo;s about high cohesion and low coupling The frequently mentioned phrase in software engineering, \u0026ldquo;high cohesion, low coupling,\u0026rdquo; actually falls into this area.\nSince the objects under twap collaborate frequently with each other, they should be placed closer together, and their namespaces should also be close; vwap is similar to it but not quite the same, so it deserves its own boundary. Doing this has several direct benefits:\nClass names within the same module can be shorter Dependencies between modules are easier to see It\u0026rsquo;s easier to judge during refactoring whether changes might propagate to other areas If you eventually need to split a certain capability into an independent library, the cost will be smaller. This is also why many mature projects end up looking like they have consistent \u0026ldquo;directory boundaries + namespace boundaries + compilation boundaries.\u0026rdquo; In projects like QuickFIX, you can see a similar idea: types and extension points are kept under clear namespaces rather than being artificially separated by very long class prefixes QuickFIX GitHub.\nWhen It\u0026rsquo;s Not Enough Anymore However, don\u0026rsquo;t mythologize this either.\nSimply layering folders and wrapping them in a namespace can only indicate that you are moving towards modularization; it doesn\u0026rsquo;t mean the architecture is automatically sound. Several common pitfalls are also obvious:\nDirectory and Namespace Mismatch The directory is twap/, but the code contains scattered global classes, or namespace common floating everywhere. This is basically useless.\nModule Boundaries are False Boundaries There are twap and vwap on the surface, but they actually #include each other. The common logic can leak through freely, and in the end, it just moves the files around without reducing any coupling.\nThe longer the common directory, the fatter it gets This is the most common issue. Many projects are structured quite well at first, but later find it troublesome and start dumping things into common, base, or util. By the end, instead of having truly stable abstractions that have been properly developed, they end up with a massive pitfall that everyone can touch and everyone depends on.\nStructure by Layer Only, Not by Business Domain If your directory structure is always api, service, dao, model, then many business concepts actually have no home. Class names are forced to get longer and longer, cramming everything that should be expressed by the structure back into the name itself.\nSo, what should it be called? If I were communicating this within a team, I think there are three levels of description:\nIf you just want to speak plain language: Modularization based on directories and namespaces If you want to sound more engineering-focused: Package organization by feature, combined with hierarchical namespaces If these boundaries are already strongly bound to business semantics: Module division with a bounded context feel I personally lean towards the second option. Because it is closest to the scenario you described.\nWhat you\u0026rsquo;re doing isn\u0026rsquo;t about C++ syntax tricks, nor is it just about naming conventions; you are doing something more substantial: Using structure to carry semantics, allowing names to return to their true meaning.\nWhen class names get shorter and file names get shorter, what you first see when reading the code is an object with clear context like twap::OrderManager, rather than something that mixes directory responsibility, naming responsibility, and implementation responsibility all together like TwapOrderManagerImpl.\nOnly then does the code start to feel somewhat like Java after its package structure has matured.\nThe Last Sentence So, in software engineering, there are corresponding concepts, but there isn\u0026rsquo;t one single standard answer.\nBroadly speaking, it\u0026rsquo;s called modularization. In terms of code organization, it\u0026rsquo;s called feature-based packaging, plus namespace management. In terms of domain boundaries, it has something to do with bounded context.\nHow should I put it? The most valuable aspect of this practice is never that \u0026ldquo;the names look neat,\u0026rdquo; but rather that you finally don\u0026rsquo;t have to rely on super long prefixes to compensate for structural deficiencies.\nReferences cppreference: Namespaces QuickFIX/C++ Official Site QuickFIX GitHub Repository Java Practices: Package by feature, not layer Martin Fowler: Bounded Context Writing Notes Original Prompt Prompt: When developing code in C++, a good practice is to organize it by folders and then wrap each class with a namespace, similar to Java\u0026rsquo;s package. This can effectively reduce redundant content in file names and class names. A classic project is QuickFIX, and we have recently used a similar design for algorithm services. Many functional modules like TWAP and VWAP are similar. Is there a specific concept in software engineering for this?\nWriting Approach Summary Start by focusing on the actual trigger points of twap and vwap in algorithm services, making the judgment clear first. Instead of forcing the problem into a single noun, it is broken down into more accurate levels such as modularization, namespace management, and packaging by feature. The correspondence between QuickFIX and Java packages has been retained to illustrate that C++ often needs directories and namespaces to supplement structural semantics. The focus is on \u0026ldquo;using structure to carry semantics,\u0026rdquo; rather than remaining at a superficial explanation like \u0026ldquo;avoiding name collisions.\u0026rdquo; Added reference links for namespace, package by feature, and bounded context to facilitate further development. ","date":"2026-04-09","language":"en","permalink":"https://ttf248.life/en/p/cpp-folder-namespace-what-is-it-called/","tags":["c++","Software Engineering","Architecture Design","AI Inspiration Hub"],"title":"What is this process of layering folders and then wrapping them in a namespace called?","year":"2026"},{"categories":["Computer"],"content":"While browsing the forum this time, what struck me most wasn\u0026rsquo;t which company released another leaderboard, but a very basic statement: \u0026ldquo;Not enough VRAM; no matter how large the parameters are, it\u0026rsquo;s useless.\u0026rdquo;\nPreviously, I always understood \u0026ldquo;slow model\u0026rdquo; as a computational power issue. However, the more I read, the clearer it became that often, the problem isn\u0026rsquo;t that the GPU can\u0026rsquo;t compute it, but rather that the data cannot reside in the right place. Just by changing the memory path, the token speed doesn\u0026rsquo;t just slow down; it drops drastically.\nThe previous two posts covered the preliminary issues. First Post discussed the release and protocol, and Second Post explained why we should first look at 26B A4B on the 3060 12GB. This final post will only discuss how speed actually collapses.\nOut of VRAM, and Not Just a Little Bit Slow When you break down the process of inference, there are two particularly critical components:\nModel weights KV cache The weights define the model itself, while the KV cache records the state of previous tokens. The longer the context, the larger the KV cache. As long as both these parts can be stably kept in the GPU VRAM, generating a token basically involves reading data, performing calculations, and writing back results within high-bandwidth memory, and the speed is usually quite good.\nThe real problem is when you run out of VRAM. Once it doesn\u0026rsquo;t fit, the inference framework has to compromise:\nStoring some weights in system memory Or storing some KV cache in system memory Or even shuttling data back and forth between the CPU and GPU At this point, the issue is no longer about \u0026ldquo;a little bit of extra computation,\u0026rdquo; but rather \u0026ldquo;waiting for data with every single token.\u0026rdquo;\nWhy the Cliff, Not a Linear Slowdown When many people first encounter this pitfall, their intuition is that if the model goes from 14B to 31B, it will just be more than twice as slow, which they can tolerate.\nReality is not like that.\nThe real dividing line isn\u0026rsquo;t doubling the parameters; it\u0026rsquo;s whether or not the working set crosses the VRAM boundary.\nAs long as it hasn\u0026rsquo;t crossed, increasing model size usually results in a predictable slowdown.\nOnce it crosses, the system state changes:\nPreviously, it was an \u0026ldquo;on-chip closed loop\u0026rdquo; within VRAM. Now, it becomes \u0026ldquo;VRAM + System RAM + Bus Transfer.\u0026rdquo; Changing the path completely changes the cost. This is especially true during the decoding stage, which inherently proceeds token by token with a small batch size. At this point, what is most feared is having every single token wait for a batch of data to be transferred across devices.\nSo, you see a very typical phenomenon:\nThe model isn\u0026rsquo;t unable to run. The GPU isn\u0026rsquo;t completely idle either. But the tokens/s rate is extremely poor. This is what people call the \u0026ldquo;cliff.\u0026rdquo; It\u0026rsquo;s not that the model suddenly got dumber; it\u0026rsquo;s that the memory path suddenly became inefficient.\nWhy 26B A4B is Friendlier to Local Players This also explains why I have consistently favored 26B A4B in my previous article. Its total parameter count is certainly not small, but only about 3.8B are actually activated per token. This means that under similar deployment conditions, the pressure it puts on computation and VRAM paths is often easier to control compared to dense large models. This isn\u0026rsquo;t magic. If your context window gets too long, or if quantization and framework support are inadequate, it will struggle just like any other model. However, compared to a dense model that immediately maxes out the entire VRAM, 26B A4B feels more like a realistic path for consumer-grade GPUs. So, often the issue isn\u0026rsquo;t whether 31B is weak, but rather which model is better suited for long-term coexistence with local hardware.\nWhy Macs seem \u0026ldquo;less prone to running out of memory\u0026rdquo; What\u0026rsquo;s most different about Mac is not the model, but the memory architecture. Apple silicon uses unified memory. The CPU and GPU share a single pool of memory, unlike dedicated graphics machines where there are separate VRAM and main memory that have to be moved across a bus. The biggest advantage of this structure is that many models which would \u0026ldquo;not fit in VRAM at all\u0026rdquo; on dedicated graphics machines can take on a different state on Mac:\nIt might not be fast, But it can probably fit into the memory first. In other words, Macs are less likely to hit that very rigid \u0026ldquo;VRAM wall\u0026rdquo; right from the start. This is why many people feel that Macs are particularly suitable for running large models locally as a fallback option. It solves the problem of \u0026ldquo;whether the entire working set can be loaded into the same memory pool.\u0026rdquo; But Unified Memory Doesn\u0026rsquo;t Mean High Speed for You You must look at this part separately. What did unified memory solve?\nIt solved the hard separation between dedicated VRAM and main memory. It solved many cases where models couldn\u0026rsquo;t fit directly onto cards with small VRAM. It solved some very ugly cross-device data transfers. But what didn\u0026rsquo;t it solve? It didn\u0026rsquo;t change large model inference from \u0026ldquo;massive memory reads\u0026rdquo; to something else. It didn\u0026rsquo;t make large models suddenly stop being bandwidth-hungry. It didn\u0026rsquo;t automatically give all inference frameworks the mature ecosystem of CUDA. So, the comfort of Mac is not the same thing as the speed of a high-VRAM NVIDIA card. Mac is more like: Quiet machine operation Large total memory Unified architecture Finally allowing models that previously wouldn\u0026rsquo;t fit to run first. NVIDIA\u0026rsquo;s high-VRAM card is more like: Mature ecosystem Complete CUDA toolchain When you truly keep the model and cache on the GPU, speed can be much easier to boost. Why Speed Ultimately Depends on NVIDIA\u0026rsquo;s Large VRAM This is not an emotional judgment, but a practical conclusion drawn after wrestling with local deployment. If you are pursuing these things:\nLocal assistant always running Multi-turn long conversations Long context windows Higher token/s rate Minimizing waiting time as much as possible Then ultimately, the large VRAM NVIDIA card is what matters. Because what you are truly buying is the ability to keep the model and cache stably on the GPU. Mac also works, but it is better suited for a different set of requirements: I want a machine that can load an even larger model into it first. I accept average speed, but I don\u0026rsquo;t want to mess with drivers and peripherals. I care more about overall experience, power consumption, and noise. Both paths are reasonable; they just solve different problems. Back to Gemma 4, My Final Verdict This time with Gemma 4, I really feel that local open-source models have reached a stage where hardware discussion is more warranted. But just because the model gets stronger doesn\u0026rsquo;t mean the laws of physics loosen up accordingly. No matter how strong the 31B model is, it will slow down if VRAM is insufficient. Even with the practical 26B A4B, long contexts still put pressure on the system. And while Apple\u0026rsquo;s unified memory is comfortable, it only makes it easier to \u0026ldquo;get something running\u0026rdquo;; it won\u0026rsquo;t give you the speed of a large VRAM CUDA card for free. So, I\u0026rsquo;ll end with this rather blunt summary:\nFor speed, prioritize NVIDIA with large VRAM. For reliability/fallback, Mac\u0026rsquo;s unified memory is indeed comfortable. If you plan to run on hardware like the 3060 12GB long-term, don\u0026rsquo;t always aim for dense, massive models; a path like 26B A4B is more realistic. With this set of articles, I will wrap up here. References Gemma 4: Byte for byte, the most capable open models Gemma 4 model card Apple unveils M3, M3 Pro, and M3 Max Apple unveils M2 Pro and M2 Max MacBook Pro Tech Specs Writing Notes Original Prompt $blog-writer Google has released the Gemma4 model after a year. As usual, I\u0026#39;m trying to deploy it locally on that old desktop with an unupgraded NVIDIA 3060 12GB graphics card. This time I caught the initial release, but I couldn\u0026#39;t find an upgraded version of the commonly used Gemma3. However, there is a similar version called GemmaE4b. Please first search and introduce all the models released this time, what the letters in their abbreviations mean, and then search for online reviews about Gemma4. The key point is that Google updated the model\u0026#39;s protocol this time, so the restrictions for users are fewer. The biggest surprise: my usual test question—write a piece of C++ code to output a five-pointed star in the console. Last year\u0026#39;s smaller parameter open-source models couldn\u0026#39;t handle this problem, but Google managed it this time. In the first version, it gave the answer, completely exceeding my expectations. It knew about my trap; outputting a five-pointed star to the console is very difficult, so it directly hardcoded a string of a five-pointed star for direct console output. This is the original text: Because drawing a five-pointed star with precise geometric structure using mathematical logic in a pure text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually best method is to use ASCII Art. After I forced it to perform calculations, it also managed it through mathematical calculation, successfully drawing the five-pointed star. Previously, I often used Gemma4 for local translation tasks; many multilingual versions of historical articles on current blogs are like this. The model used for local testing: gemma-4-26b-a4b. The 31b version is indeed too slow. But looking at the reviews, the 31b effect is very good, and its ranking performance is excellent. While browsing forums, I realized that if the VRAM is insufficient and the model parameters are increased, the token generation speed will drop drastically. Can you explain why? Macs don\u0026#39;t have this problem because they use unified memory; please explain the technical reason. Also, if speed is required, then an NVIDIA card with large VRAM is still necessary. The Mac solution can serve as a fallback, but it cannot match the speed. This content is very extensive; please evaluate whether it should be split into a series of articles. Writing Outline Summary The third article will only retain the two threads: \u0026ldquo;Why speed collapses\u0026rdquo; and \u0026ldquo;Why Mac does not equal fast,\u0026rdquo; without revisiting the content of the previous two articles. Start by discussing VRAM limitations, then move to non-linear slowdowns; this logic is smoother than the previous version. Mac and Nvidia will be discussed as two different dimensions—one focusing on reliability/fallback, and one focusing on speed. The conclusion will only retain hardware judgment, without repeating the explanation of why series separation occurred. ","date":"2026-04-08","language":"en","permalink":"https://ttf248.life/en/p/gemma-4-series-vram-cliff-and-mac-unified-memory/","tags":["AI Inspiration Hub","ai","gemma","VRAM (Video Random Access Memory)","Mac","NVIDIA"],"title":"Google has released Gemma 4 this time (III)","year":"2026"},{"categories":["Computer"],"content":"If you only look at the leaderboard, 31B is definitely the most eye-catching. But when you actually get the machine out, it\u0026rsquo;s still that un-upgraded RTX 3060 12GB, and your judgment will change immediately. How should I put it? For local deployment, in the end, it\u0026rsquo;s not about who looks the fanciest, but who seems like the one you can live with long-term. For me, what is truly worth running first this time isn\u0026rsquo;t 31B, but 26B A4B.\nThe previous article Google released Gemma 4 (Part 1): Don\u0026rsquo;t rush to local deployment; you need to understand the model and protocol first covered the release and protocols. This current article only talks about the local experience itself; the last one continues with Google released Gemma 4 (Part 3): Why does running out of VRAM cause a cliff, and why can Mac act as a fallback but is slow.\nWhy I ran 26B A4B first The reason is actually quite basic: it\u0026rsquo;s about hardware reality. While 31B is certainly powerful, and the official leaderboards and initial community feedback have been very strong. However, if you run it on a machine like a 3060 12GB, the issue immediately shifts from \u0026ldquo;Is it powerful?\u0026rdquo; to \u0026ldquo;Is it worth waiting for?\u0026rdquo;. Once the model and cache start offloading to system memory, the speed can easily collapse. I will cover this in detail in a third article. 26B A4B is different. Although its total parameters are 25.2B, only about 3.8B are actually activated per token. Simply put, it\u0026rsquo;s the one in Gemma 4 that feels most \u0026ldquo;designed for local users.\u0026rdquo; So, if your machine is similar to mine—an older consumer-grade card—here is a straightforward way to decide:\nIf you want to see benchmark scores, go with 31B. If you plan to use it locally in the long term, start with 26B A4B. The Five-Point Star Problem: Someone Finally Understood My Trap This Time I have always had a rather basic test question: asking the model to write a piece of C++ code that outputs a five-pointed star to the console.\nThis problem might look like a joke, but it\u0026rsquo;s actually quite tricky. Many models tend to interpret it as a pure mathematical drawing problem, and then they start talking about coordinates, trigonometric functions, and loops, ultimately outputting a mess of characters in the plain text console that is completely unreadable.\nLast year, many small-parameter open-source models failed at this point.\nMy first reaction to Gemma 4 this time was actually quite surprising. It didn\u0026rsquo;t rush to pretend it understood; instead, it first identified the constraints and provided this judgment:\nSince drawing a five-pointed star with precise geometric structure directly using mathematical logic in a plain text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually effective method is to use ASCII Art.\nRegarding the Five-Pointed Star Problem, Someone Finally Understood My Trap This Time To put it plainly, they first understood the environmental constraints behind the problem. The console is not a canvas, and the character grid is not a pixel grid. You must first figure out \u0026ldquo;how to stably output a five-pointed star,\u0026rdquo; before discussing mathematical drawing. Then, in its first version, it directly provided a hardcoded string for the five-pointed star. This action was very on point. It wasn\u0026rsquo;t about showing off derivations; it was about getting the problem solved correctly first.\nWhat surprised me even more is that it could continue further. If it had only stopped at ASCII Art, this problem would have only shown that it recognized the trap. What really impressed me was that when I continued to ask it to perform mathematical calculations afterward, it didn\u0026rsquo;t falter; instead, it was able to proceed logically, mapping the geometric relationships onto a character grid and finally calculating the pentagram. This demonstrates not just \u0026ldquo;it can write some code,\u0026rdquo; but rather that it understands this problem has two layers:\nThe first layer: What is the most stable answer for the console? The second layer: If you insist on doing calculations, how do you reduce a geometric problem onto a character grid? Previously, many local small models would jump straight to the second layer and fail at the first. Gemma 4 reversed this approach this time; it first identified the boundaries and then decided on the solution method. I think this is more valuable than any single benchmark score. This Coding Improvement Isn\u0026rsquo;t Just About Being \u0026ldquo;Smarter\u0026rdquo; The reason this five-star problem is so useful is that it doesn\u0026rsquo;t just test syntax. What it truly tests is:\nThe ability to first understand the output environment. The ability to admit when an intuitive solution is inappropriate. The ability to switch between achieving \u0026ldquo;optimal presentation effect\u0026rdquo; and fulfilling \u0026ldquo;user-mandated calculation.\u0026rdquo; Once a model can solve this type of problem correctly, it indicates that the model is starting to act more like a development assistant capable of handling real-world constraints, rather than just one that completes code snippets. This is also why my first impression of Gemma 4 is much better than last year\u0026rsquo;s batch of smaller open models. Many models from last year were good at chatting, completing, and getting by, but when faced with a problem that had even slight boundary conditions, they tended to show their limitations. At least Google has addressed this weakness this time. Translating this line cannot simply be stated as \u0026ldquo;Gemma 4 completely replaces everything\u0026rdquo; You brought up a very key point earlier: previously, people often used Gemma for local translation. The transition to Gemma 4 isn\u0026rsquo;t actually that linear. This is because Google released TranslateGemma separately in February 2026, and it was built on the architecture of Gemma 3. What does this mean? It means that if your existing local translation pipeline is already working smoothly, you don\u0026rsquo;t necessarily have to switch everything over to Gemma 4 in the short term. Especially for scenarios with very specific goals—like only needing stable multilingual conversion—a dedicated translation model still has its value. However, if what you want is a single local model that can reasonably handle translation, Q\u0026amp;A, code, and general text tasks, then a more versatile route like 26B A4B is smoother. It might not be the most specialized one, but it\u0026rsquo;s more like choosing the \u0026ldquo;good enough main model to get running first\u0026rdquo; option in a real-world scenario.\nWhy I Don\u0026rsquo;t Want to Keep Praising 31B in the Second Article It\u0026rsquo;s not that 31B is bad; quite the opposite, it\u0026rsquo;s too good, which makes it easy to get distracted. If you keep focusing on the leaderboard performance of 31B, it\u0026rsquo;s easy to write this article as \u0026ldquo;Strong models are truly strong.\u0026rdquo; But what local deployment fears most is exactly that kind of talk. Because what truly determines whether you will continue using it every day isn\u0026rsquo;t the leaderboard, but rather:\nIs the startup too slow? Does the response speed drop severely? Does long context quickly ruin the experience? Can your own machine actually handle it? On a machine like the 3060 12GB, these practical issues are much more important than the leaderboard. So, my conclusion for the second article is simple. 31B is worth looking at; 26B A4B is worth using. For local players, these two statements are not the same thing. My Initial Local Conclusion If I had to summarize my experience from this test in one sentence, it would be: Gemma 4 finally feels like a local model that understands context/scenarios. Especially the 26B A4B. It might not be the model best for showing off on leaderboards, but under real-world constraints—like older hardware, consumer-grade GPUs, and long-term local use—it actually feels more like the true workhorse choice. At least with this five-star test, Google has passed.\nReferences Gemma 4: Byte for byte, the most capable open models Gemma 4 model card google/gemma-4-26B-A4B-it on Hugging Face Gemma 3: The Developer Guide TranslateGemma: A new family of open translation models Gemma 4 31B on FoodTruck Bench Writing Notes Original Prompt $blog-writer Google has released the Gemma4 model after a year. As usual, I\u0026#39;m trying to deploy it locally on that old desktop with an unupgraded NVIDIA 3060 12GB graphics card. This time I caught the initial release, but I couldn\u0026#39;t find an upgraded version of the commonly used Gemma3. However, there is a similar version called GemmaE4b. Please search and introduce all the models released this time, what the abbreviation letters mean in them, and then search for online reviews about Gemma4. The key point is that Google updated the model\u0026#39;s protocol this time, and the restrictions for users are fewer. The biggest surprise: my usual test question—write a piece of C++ code to output a five-pointed star in the console. Last year\u0026#39;s smaller open-source models couldn\u0026#39;t handle this problem, but Google managed it this time. In the first version, it gave an answer that completely exceeded my expectations; it knew about my trap. Outputting a five-pointed star to the console is very tricky, so it directly hardcoded a string for the five-pointed star, which was outputted directly to the console. This is the original text: Because drawing a five-pointed star with precise geometric structure using mathematical logic in a pure text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually best method is to use ASCII Art. After I forced it to perform calculations, it also succeeded through mathematical calculation, successfully drawing the five-pointed star. Previously, I often used Gemma4 for local translation tasks; many multilingual versions of historical articles on current blogs are like this. The model used for local testing: gemma-4-26b-a4b. The 31b version is indeed too slow. But looking at the reviews, the 31b effect is very good, and its ranking performance is excellent. Also, while browsing forums, I realized that if the VRAM is insufficient and the model parameters are increased, the token generation speed will drop drastically. Can you explain why? Macs don\u0026#39;t have this problem because they use unified memory; please explain the technical reason. Furthermore, if speed is required, only an NVIDIA card with large VRAM will do. The Mac solution can serve as a fallback, but it cannot match the speed. This content is very extensive; please evaluate whether it should be split into a series of articles. Writing Outline Summary The second article will only retain the local experience, and will no longer summarize the first article or explain VRAM principles for the third one. First provide the hard judgment on \u0026ldquo;why run 26B A4B first,\u0026rdquo; then expand with the five-star test. The five-star question is treated as the main axis because it better illustrates the boundary sense in coding scenarios than benchmark scores. The translation task will be given its own section to avoid making Gemma 4 seem like a linear successor to all previous processes. ","date":"2026-04-08","language":"en","permalink":"https://ttf248.life/en/p/gemma-4-series-local-test-on-rtx-3060/","tags":["AI Inspiration Hub","ai","gemma","Google",3060],"title":"Google released Gemma 4 this time (Part II)","year":"2026"},{"categories":["Computer"],"content":"On the day of the initial release, what I originally wanted to do was simple: find an upgraded version corresponding to Gemma 3 and download it to run. However, after looking around, I was a bit stunned. The familiar naming convention of 4B / 12B / 27B is gone; instead, we have E4B, 26B A4B, and 31B. How should I put it? This time, what Google truly changed wasn\u0026rsquo;t just the model sizes, but even \u0026ldquo;how you should understand this batch of models.\u0026rdquo;\nI\u0026rsquo;ve broken down these articles into three parts. This current article only clarifies the release information, model names, and protocols; the next one will cover Google Released Gemma 4 (Part II): Running Locally on a 3060 12GB, 26B A4B is More Realistic; and the last one will conclude with Google Released Gemma 4 (Part III): Why VRAM Insufficiency Causes a Cliff, and Why Mac Can Be a Fallback But Isn\u0026rsquo;t Fast.\nLet\u0026rsquo;s first clarify what was actually released this time Last year, Gemma 3 was released on March 12, 2025, and this Gemma 4 was released on April 2, 2026. It is indeed about a year apart. However, we cannot approach this by asking, \u0026ldquo;Who is the next generation after 27B.\u0026rdquo; The four main sizes provided by the official source are no longer simply categorized by total parameters. | E2B | Dense | 2.3B effective, 5.1B including embeddings, 128K context | On-device, ultra-lightweight local |\nClarify what was actually released this time Model Structure Key Numbers Typical Scenarios E4B Dense 4.5B effective, 8B including embeddings, 128K context The original 4B small model main line Clarify what was actually released this time Model Structure Key Numbers Typical Scenarios 26B A4B MoE 25.2B total, approx. 3.8B active, 256K context Consumer GPUs, local deployment, balancing quality and speed Clarify what was actually released this time Model Size Structure Key Numbers Typical Scenarios 31B Dense 30.7B dense, 256K context Aiming for the upper limit, leaderboards, and more stable quality Let\u0026rsquo;s clarify what was actually released this time If you only look at the surface, you might feel that the naming is more confusing. But it\u0026rsquo;s not random; Google is deliberately splitting the three tracks:\nSmall model for on-device use, given to E2B / E4B Local player track, given to 26B A4B Quality and upper limit track, given to 31B This is also why many people\u0026rsquo;s first impression might be, \u0026ldquo;The previously familiar upgrade path has been broken.\u0026rdquo; It\u0026rsquo;s not that they didn\u0026rsquo;t release an upgraded version; it\u0026rsquo;s that Google doesn\u0026rsquo;t want to sell products based on just one dimension: total parameters. \u0026lsquo;E\u0026rsquo; and \u0026lsquo;A\u0026rsquo; are not decorative letters this time In this batch of names, the most confusing ones are E4B and A4B. The \u0026lsquo;E\u0026rsquo; in E2B and E4B stands for effective parameters, according to the official documentation. Because these two models use Per-Layer Embeddings, the total parameter count and the actual effective parameter count are not measured by the same metric. Simply put, Google is reminding you that this is not like the old \u0026ldquo;a simple 4B dense model.\u0026rdquo; The \u0026lsquo;A\u0026rsquo; in 26B A4B stands for active parameters. The total size is 25.2B, but only about 3.8B are actually activated per token. This is key to the MoE approach: the total model size is large, but the part that actually participates in computation at runtime is much smaller. So, even though both names seem to have a \u0026lsquo;4B\u0026rsquo;, their meanings are completely different:\nE4B is for the small model line. 26B A4B is a large MoE with \u0026ldquo;activation scale of around 4B\u0026rdquo; during local inference. This naming convention was indeed awkward at first, but it is closer to the actual deployment experience than before. If you previously used Gemma 3, how to find the corresponding relationship this time I think the easiest place to misjudge with this generation is to treat it as a linear upgrade from Gemma 3. If you look at it based on usage habits, you can roughly understand it like this:\nThose who used to focus on 4B for light tasks should now first look at E4B Those who used to focus on 27B to see the model\u0026rsquo;s upper limit should now look at 31B If you previously wanted to find a balance point on consumer-grade GPUs that is \u0026ldquo;powerful enough but not completely unrunnable,\u0026rdquo; now focus on 26B A4B If you don\u0026rsquo;t clarify this layer first, local deployment will easily go wrong later. You might complain, \u0026ldquo;Why isn\u0026rsquo;t there the familiar upgraded version?\u0026rdquo; while mistakenly choosing a model that isn\u0026rsquo;t actually suitable for you. The most valuable update this time isn\u0026rsquo;t the parameters What really made me feel like this release was a \u0026ldquo;finally figured it out\u0026rdquo; moment wasn\u0026rsquo;t the leaderboard, but the license. The old Gemma terms weren\u0026rsquo;t unusable, but they always felt a bit awkward. Especially if you care about these things:\nRedistribution Distillation or secondary packaging Integrating the model into your own product pipeline Commercial deployment You always have to go back and look at how those notices, downstream restrictions, and accompanying agreements in the terms should be handled. By changing directly to Apache 2.0 this time, Gemma 4 made things much cleaner. The core message is very clear: Commercially usable Modifiable Redistributable The main obligations are limited to retaining familiar open-source elements like the license, notices, and modification documentation. Simply put, Google didn\u0026rsquo;t just open-source a model this time; they smoothed out the entire process of \u0026ldquo;whether or not people feel safe using it.\u0026rdquo; Initial Community Feedback, Basically Two Lines If you only look at the first week\u0026rsquo;s buzz, there are roughly two main sentiments.\nThe first line is that 31B is genuinely capable. The official benchmarks are already very impressive. In the Arena AI text leaderboard, 31B was ranked among the top open-source models upon release, and it also showed a significant improvement over Gemma 3 27B on LiveCodeBench v6. Many people\u0026rsquo;s first reaction is that achieving this level of performance with this size is quite beyond expectations.\nThe second line is that 26B A4B seems like a lifeline for local users. It might not be the flashiest flagship model at first glance, but it is very practical. Especially if you aren\u0026rsquo;t running things in a data center, but rather on consumer-grade GPUs, workstations, or even older machines, the local experience tends to fall onto this line.\nOf course, there\u0026rsquo;s a very realistic prerequisite for the initial wave of feedback: the ecosystem is still catching up with the versions. Templates, quantization methods, inference frameworks, and front-end tools—many haven\u0026rsquo;t fully kept pace yet. Therefore, when looking at comments right now, it\u0026rsquo;s best to view them in two layers:\nThe core model: There has indeed been a big improvement here. Local experience: This will continue to be influenced by the maturity of the toolchain. My Conclusion on the First Article If you just want to know what Google actually released this time, one sentence is enough. Gemma 4 is no longer following the old idea of \u0026ldquo;a line of dense models from small to large,\u0026rdquo; but rather separating three paths: device-side deployment, local deployment, and quality ceiling. The names like E4B, 26B A4B, and 31B sound strange, but behind them is a very practical division of labor for deployment. But if you ask me what the biggest change is this time, I still stick to that judgment: It\u0026rsquo;s not about parameters, nor is it about leaderboards; it\u0026rsquo;s that Google finally put Gemma 4 into an open-source protocol that everyone feels more comfortable actually using. This step is more important than the numbers on the surface. In the next article, I won\u0026rsquo;t continue talking about the conference narrative; I\u0026rsquo;ll go straight back to local machines. Still with that unupgraded RTX 3060 12GB, why was it that my initial focus wasn\u0026rsquo;t on 31B, but on 26B A4B.\nReferences Gemma 4: Byte for byte, the most capable open models Gemma 4 model card Gemma Terms of Use Apache License 2.0 for Gemma 4 Gemma 4 31B on FoodTruck Bench LocalLLaMA discussion on Gemma 4 license changes Gemma 3: The Developer Guide Writing Notes Original Prompt $blog-writer Google has released the Gemma4 model after a year. As usual, I\u0026#39;m trying to deploy it locally on that old desktop with an unupgraded NVIDIA 3060 12GB graphics card. This time I caught the initial release, but I couldn\u0026#39;t find an upgraded version of the previously used Gemma3. However, there is a similar version called GemmaE4b. Please first search and introduce all the models released this time, what the abbreviation letters mean in them, and then search for online reviews about Gemma4. The key point is that Google updated the model\u0026#39;s protocol this time, so the restrictions for users are fewer. The biggest surprise: my usual test question—write a piece of C++ code to output a five-pointed star in the console. Last year\u0026#39;s smaller parameter open-source models couldn\u0026#39;t handle this problem, but Google managed it this time. In the first version, it gave an answer that completely exceeded my expectations; it knew about my trap. Outputting a five-pointed star to the console is very tricky, so it directly hardcoded a string for the five-pointed star, and the console outputted it directly. This is the original text: Because drawing a five-pointed star with precise geometric structure using mathematical logic in a pure text console (Console) is very complex (involving coordinate system transformation and pixel filling), the most classic and visually best method is to use ASCII Art. After I forced it to perform calculations, it also managed it through mathematical calculation and successfully drew the five-pointed star. Previously, I often used Gemma4 for local translation tasks; many multilingual versions of historical articles on current blogs are like this. The model used for local testing: gemma-4-26b-a4b. The 31b version is indeed too slow. But looking at the reviews, the 31b performs very well, and its ranking scores are excellent. Also, while browsing forums, I realized that if the VRAM is insufficient and the model parameters increase, the token generation speed will drop drastically. Can you explain why? Macs don\u0026#39;t have this problem because they use unified memory; please explain the technical reason. Furthermore, if speed is required, then an NVIDIA card with large VRAM is still necessary. The Mac solution can serve as a fallback, but it cannot match the speed. This content is quite extensive; please evaluate whether it should be split into a series of articles. Writing Outline Summary The first article will only focus on clarifying \u0026ldquo;what was actually released this time\u0026rdquo; and \u0026ldquo;why the protocol is important,\u0026rdquo; avoiding topics that compete with local experience discussions. We will separate the model roadmap breakdown and then explain the meaning of the letters, making the logical flow more direct than the previous version. For the protocol section, we retained the judgment: \u0026ldquo;What was truly released this time is not the parameters, but the usage restrictions.\u0026rdquo; Community feedback will only be used for synthesis/conclusion, without preemptively including too many local experience details. ","date":"2026-04-08","language":"en","permalink":"https://ttf248.life/en/p/gemma-4-series-models-and-license/","tags":["AI Inspiration Hub","ai","gemma","Google","apache"],"title":"Google has released Gemma 4 this time (Part 1)","year":"2026"},{"categories":["Computer"],"content":"After going through all the configurations in the repository, I am even more certain about one thing: what matters in the end is not how strong any single model is, but rather who should bear the cost at each layer.\nThe most obvious signal is that the currently active published.runtime.json is still the one generated on April 2, 2026, for minimax-m2, yet the entry from April 3, 2026, at 16:38, labeled 5f17088, has switched the default provider for blog-style-suite to the local gemma-4-26b-a4b in LM Studio. This might look inconsistent, but it actually isn\u0026rsquo;t; it precisely illustrates that this pipeline has begun to specialize.\nWith these articles, the first two have laid out the boundaries. The first article discusses why blog-writer emerged, and the second article discusses how blog-style-suite separates style learning from token costs. This final article settles on the most practical question: where should local models, online models, and Minimax ultimately be placed?\nTraining Style Data, Not Worth Burning Online Models at Every Step The issue of style data, once you start taking it seriously, quickly becomes a practical problem with tokens. It\u0026rsquo;s not about whether you want to save costs; if you don\u0026rsquo;t divide the labor, this whole setup won\u0026rsquo;t run for long. The most common mistake in the past was letting one online model handle everything.\nScraping historical articles Performing filtering Doing categorization Scoring Sampling Enforcing style Finally writing the draft The biggest problem with doing it this way isn\u0026rsquo;t that \u0026ldquo;the model isn\u0026rsquo;t strong enough,\u0026rdquo; but rather that every step burns the same level of cost. Looking back now, the truly reasonable approach should be to think in reverse: which steps must be online, which steps should ideally be localized, and which steps shouldn\u0026rsquo;t even be given to a model at all. As long as this boundary isn\u0026rsquo;t clear, no matter how powerful the model is, it will just end up helping you repeat a bunch of tasks that could have been pre-processed away. Local Models are Better Suited for Dirty, Heavy, and Iterative Tasks I am increasingly inclined to define local models as the \u0026ldquo;physical layer\u0026rdquo; for production use. They might not be the strongest, nor perfect every time, but they are particularly suited for tasks such as:\nBuilding through repeated runs/iterations Multi-round compression experiments on style data Re-scanning after configuration changes Low-risk recalculation on existing structures These types of tasks share a clear commonality. The value isn\u0026rsquo;t in a single, extremely high-value output, but rather in the ability to run repeatedly, tolerate errors, and ideally avoid paying high costs every single round. Currently, scripts/blog-style-suite/config.json has switched to lm-studio-gemma4, which itself indicates a shift in judgment. It\u0026rsquo;s not that local gemma is necessarily stronger than online models, but for the production pipeline, we are finally starting to prioritize \u0026ldquo;runnability, frequency of use, and ability to iterate/modify repeatedly.\u0026rdquo; This point actually aligns with the logic I wrote previously in Don\u0026rsquo;t force strong tasks onto weak models. Local models might not be suitable for writing complex, comprehensive articles from scratch, but they are excellent for handling dirty, heavy, and batch processing tasks. Preprocessing style data is inherently more like this category of task.\nOnline models are better suited for the final polish, not for doing everything from scratch Just because local models are suitable for the production side doesn\u0026rsquo;t mean online models have no value. The real value of an online model lies precisely in that final polishing touch. For example:\nSupplementing facts based on the latest information Structuring arguments within a larger context Handling time-sensitive information that requires internet verification Transforming already prepared structured style assets into a publishable article These tasks require higher demands on expression quality, factual integration, and contextual understanding, making online models more valuable here. In other words, the powerful model is more like the final few assembly line steps. It\u0026rsquo;s not that it can\u0026rsquo;t do more upfront work, but if you make it scan from beginning to end, the entire cost structure will quickly become distorted. This is also why blog-writer is designed to only read from the published location published.runtime.json, rather than having to switch providers or re-scan the suite directory while drafting. The lighter the consumption side, the better it is for a more powerful model to focus on finalizing the article. The Significance of Minimax: It\u0026rsquo;s Not Just Another Provider Connection Many people who see Minimax might first think: \u0026ldquo;It\u0026rsquo;s just another model being connected.\u0026rdquo;\nI don\u0026rsquo;t think so.\nThe truly valuable aspect of Minimax is that it has successfully paved the way for \u0026ldquo;multiple provider outputs consumed by a single publishing contract.\u0026rdquo;\nThe change on April 2, 2026, at 10:18 (9f15199) modified blog-style-suite to support multi-model configurations, with outputs isolated per provider. Subsequently, the README and runtime structure have consistently emphasized one thing: while the suite can generate many sets of results, only the manually selected published.runtime.json is actually effective.\nThis boundary is extremely important.\nBecause once this boundary is clear, the role of Minimax changes from being \u0026ldquo;something that must be bound within the drafting process\u0026rdquo; to becoming:\nSomething that can participate in production-side comparisons. Something that can be used to generate a runtime version. Something that can be compared horizontally with local model artifacts. Finally, something whose publication is decided by human judgment. This transforms the provider from a \u0026ldquo;system dependency\u0026rdquo; into a \u0026ldquo;replaceable component.\u0026rdquo;\nI believe this is the most interesting significance of Minimax within this engineering setup. It isn\u0026rsquo;t here to dominate the entire pipeline; it\u0026rsquo;s here to validate whether this pipeline has successfully cleaned up its interfaces.\nTrue specialization is not based on model strength, but on task type I now favor a classification method that is quite rudimentary, but very effective.\nRules and Hard Constraints Leave to local scripts. If it can be solved with deterministic tools like scanner.py, write_post.py, or write_post_series.py, don\u0026rsquo;t let the model get involved.\nStyle Data Generation Prioritize local models or lower-cost providers. Because what is most important here is reproducibility, room for iteration/error, and cacheability, not necessarily the most dazzling single output.\nFinal Drafting and Fact Consolidation Hand this off to a model better suited for long-context integration, expression consolidation, and fact-checking/web retrieval. This layer is where spending money on online models is most worthwhile. When broken down like this, many previously confusing issues are actually not that complex. You don\u0026rsquo;t need to argue every day about \u0026ldquo;which model is the strongest\u0026rdquo;; you just need to ask: which layer does this task belong to?\nUltimately, what is most valuable is not the model, but the clear boundaries. This concludes my third article. As blog-writer and blog-style-suite have evolved, I feel that what is most valuable is not which provider we connected next, or who we replaced, or which one we tested. What is most valuable is that the boundaries are finally becoming clearer.\nblog-writer handles the consumption side. blog-style-suite handles the production side. published.runtime.json is the publishing point. Local models are better suited for dirty and heavy lifting that needs to be run repeatedly. Online models are better suited for the final polish/wrap-up. Online providers like Minimax feel more like replaceable components rather than the central hub of the system. Once the boundaries are clear, the entire workflow flows smoothly. You won\u0026rsquo;t expect one model package to conquer everything, nor will you stack every step onto the most expensive layer. In the end, while it looks like selecting a model, what we are actually doing is assigning workstations for different types of tasks. Simply put, having a single strong point is certainly good. But in the long run, clear boundaries are often more important and stronger than any single point solution. References Repository Commit: 9f1519967981c5eef7bd1eb407b0406ac542ebd0 Repository Commit: 5f17088391ee858b88fc50df884bc0103ff0b3c1 Repository File: scripts/blog-style-suite/config.json Effective Runtime: .agents/data/blog-writing/published.runtime.json Related Old Article: A Period of Heavy AI Programming Related Old Article: Ultimately Returning to Domestic Models Related Old Article: Don\u0026rsquo;t Force Strong Tasks with Weak Models Writing Notes Original Prompt $blog-writer This content is quite extensive, so I\u0026#39;ve split it into a series of articles: Last year, many drafts were written using large models. Back then, the process was to create an outline or a list of questions myself, and then have the AI generate the draft, copy the content into a local md document, fill in header information, tag information, and publish the article; recently, I used Codex a lot and found that its web search capability is very strong. So, could I write a skill to automate these tasks? This led to the first draft of the skill blog-writer. I also thought about having the AI learn my previous writing style, which caused blog-writer to consume a lot of tokens when running. Subsequently, I optimized blog-writer in several versions, splitting out the data module and the data generation module. The original data generation module was still an independent skill. As I continued writing, I realized that it would be better as a Python project, which led to blog-style-suite. Then, I found that training on style data also consumes a lot of tokens, so I wanted to use a local large model and connected to a local LLM. I then thought about comparing the differences between the local LLM and the online version, so I integrated minimax; the evolution history of blog-style-suite and blog-writer can be analyzed from the git commit history. Additionally, based on the code for local blog-writer and blog-style-suite, I can discuss the design ideas, how token saving was achieved, and how the data structure was designed—the core design concepts. If tokens are abundant, it can consume entire historical articles; preprocessing can save a lot of tokens. Writing Strategy Summary The third article will no longer repeat the discussion on architecture, but instead focus solely on the practical issue of \u0026ldquo;model specialization/division of labor.\u0026rdquo; Start directly by stating the current reality—whether to use published.runtime.json from the current repository or if it\u0026rsquo;s switched locally to gemma4 via minimax-m2 or config.json—to reduce filler content. The focus should not be on proving which model is stronger, but rather on explaining why different tasks should be assigned to different cost layers. Placing Minimax in the \u0026ldquo;replaceable provider\u0026rdquo; section aims to pull its significance back into the engineering boundary, rather than treating it as just another entry on a model leaderboard. Conclude by returning to the overarching judgment: \u0026ldquo;Clear boundaries are more important than single points of strength,\u0026rdquo; serving as the closing statement for the entire series of articles. ","date":"2026-04-03","language":"en","permalink":"https://ttf248.life/en/p/how-i-split-local-online-and-minimax-models/","tags":["AI Inspiration Hub","ai","programming","minimax","Local Model","blog-style-suite"],"title":"Writing an AI blog post, in the end, still needs to be turned into engineering (Part 3)","year":"2026"},{"categories":["Computer"],"content":"If there are enough tokens, the least effort method is actually quite crude: just feed the model historical articles and let it learn on its own. The problem with this method is that it only suits occasional writing, not continuous work. If you treat blogging as a long-term workflow, relying solely on raw historical articles will quickly go from \u0026ldquo;simple and direct\u0026rdquo; to \u0026ldquo;expensive and messy.\u0026rdquo;\nWith these articles, the main thread has shifted. The previous article, AI Writing Blogs: It Eventually Needs to Become an Engineering Process (Part 1): Why a blog-writer is inevitable, discussed automation on the consumption side. This article starts discussing the production side—how to generate style data, how to compress it, and how not to waste tokens; the next article will continue this in AI Writing Blogs: It Eventually Needs to Become an Engineering Process (Part 3): Local Models, Online Models, and Minimax—How They Finally Divide Labor.\nThe most natural initial thought is to just feed it historical articles. This path feels too natural. If you want the model to learn your writing style, the most intuitive way is certainly to feed it old articles. It\u0026rsquo;s best to include all the posts from your history that are most like your own, and let it summarize them itself. For a single task, this approach has no flaws. In fact, many times the results are quite good. If the context is long enough, the model is powerful enough, and there are enough historical articles, the style can indeed be captured. But the problem isn\u0026rsquo;t \u0026ldquo;can it write this one article,\u0026rdquo; the problem is \u0026ldquo;for the next one, the one after that, do we have to repeat this process?\u0026rdquo; Feeding a new batch of old articles every time brings several very practical side effects:\nThe same batch of material repeatedly occupies the context window. Token overhead grows almost linearly with the number of drafts written. The model sees more and more noise, causing genuinely useful signals to become diluted. The drafting action and style maintenance action become completely bound together; neither can be easily reduced. In other words, when tokens are abundant, eating it raw certainly works. But from an engineering perspective, we cannot keep doing that forever. This is also why the data module and the data generation module must be separated I later realized that the core idea can be summarized in one sentence: separating the consumption side from the production side.\nblog-writer is responsible for the consumption side. It only reads an already published runtime and then writes out the article according to a fixed contract.\nMeanwhile, scanning, filtering, scoring, compressing style data, and provider comparison—all of this should be placed in another production pipeline. This is what later became blog-style-suite.\nLooking at the git history, this turning point is very clear.\nThe commit 84a06b5 on April 1, 2026, at 21:47 clearly replaced the original blog-style-maintainer skill with a repository-level CLI tool. This action speaks volumes because once you have scan/build/rebuild, an output directory, and a recovery mechanism, it\u0026rsquo;s no longer like a simple skill; it\u0026rsquo;s more like a normal Python project.\nBy the commit 9e92b8e on April 1, 2026, at 23:05, blog-style-suite was further broken down into modules like scanner.py, builder.py, and compressor.py. By this stage, the thinking process was already highly engineered:\nscanner.py is responsible for scanning articles from disk and extracting structured features. builder.py is responsible for scoring, selecting, caching, and runtime assembly. compressor.py is responsible for the compression steps that involve the model. This represents a completely different approach compared to simply writing a super prompt.\nSaving Tokens: Not by Magic, But by Preprocessing and Batching The most valuable part of this entire engineering setup, I think, is the commit bc4b950 from April 2, 2026, at 19:41. That commit was very direct: it reduced AI calls from about 2000 times down to a maximum of 5 times per provider. How was this achieved? It wasn\u0026rsquo;t by \u0026ldquo;making the prompt smarter,\u0026rdquo; but by doing the necessary preprocessing beforehand. The current flow in blog-style-suite is very clear:\nThe scan stage is purely heuristic, requiring 0 AI calls. The build stage first performs heuristic scoring, also requiring 0 AI calls. Then, it performs one batch selection and labeling for each of the four lanes: technical / finance / essay / tooling. Finally, there is one author style compression step. Counting this up, the cold start requires at most 5 calls. More critically, these 5 calls are not spread across every single article; they are concentrated on high-value summary materials that have already been preprocessed. This is where preprocessing truly saves tokens. It\u0026rsquo;s not about saving a few words; it\u0026rsquo;s about changing the process from \u0026ldquo;calling per article\u0026rdquo; to \u0026ldquo;batch calling by stage.\u0026rdquo; Furthermore, caching has been implemented. In builder.py, there are lane batch fingerprints, provider checkpoint recovery, and contractions like review_pool_per_lane = 12 for local model context. If you change a small amount of data, the entire pipeline doesn\u0026rsquo;t need to rerun. These kinds of designs might not look flashy, but every single one is highly practical because they solve the problem of \u0026ldquo;don\u0026rsquo;t let the same batch of tokens burn twice.\u0026rdquo; Essentially, this data structure is compressing the truly useful signal. Once this is broken down, the data structure will be smooth. I am now more willing to understand it as three layers.\nLayer One: scan.json This is the shared raw material. It contains structured signals such as article path, title, date, category, tags, opening paragraph, closing stub, headings, screening results, and lane classification. It is not directly consumed by blog-writer; rather, it is passed to the production side for further processing.\nSecond Layer: {provider}.source.json This is the provider-level checkpoint. Building upon the shared raw materials, it includes intermediate states such as scoring results, lane selection, fingerprint, and cache status. In other words, it is more like a \u0026ldquo;semi-finished product during processing,\u0026rdquo; with an emphasis on being recoverable, reusable, and resumable.\nLayer Three: {provider}.runtime.json and published.runtime.json This is what the consumption side truly cares about—the finished product. It retains:\nauthor_style lanes samples writer_guide In essence, it compresses a large collection of historical articles into one ready-to-consume runtime style asset. The published.runtime.json in particular is crucial for the publishing stage. The blog-writer only reads this file and does not need to scan content/post, nor does it need to care about the complete images of all providers in the suite directory. Once this boundary is established, the consumption side becomes much lighter. The writing model no longer sees a pile of raw old articles, but rather a pre-processed, high-density signal. Not Everything Should Be Left to the Model I\u0026rsquo;m increasingly feeling that the most correct judgment in this entire engineering process isn\u0026rsquo;t \u0026ldquo;add more models,\u0026rdquo; but rather \u0026ldquo;don\u0026rsquo;t throw tasks that shouldn\u0026rsquo;t be done by a model onto it.\u0026rdquo; Things like these are much better handled by local rules first:\nFrontmatter parsing Extracting introductory paragraphs Headings extraction Determining author/repost/model attribution Detecting blockquote ratios Hard rule filtering for things like \u0026lt;!--more--\u0026gt;, embedded prompts, and body length. Having the model do these tasks isn\u0026rsquo;t impossible, but it\u0026rsquo;s wasteful. What models are better suited for are parts that involve ambiguity or trade-offs. For example, which few articles in a lane best represent the current sentiment, or extracting author style tags from high-scoring articles. Therefore, what makes blog-style-suite truly valuable isn\u0026rsquo;t just \u0026ldquo;saving tokens,\u0026rdquo; but rather its re-division of labor among humans, rules, and models—assigning each party the tasks they are best suited for. Preprocessing isn\u0026rsquo;t about saving a few tokens; it\u0026rsquo;s about making the act of writing sustainable. For the conclusion in the second article, I want to make it more direct.\nWhen you have plenty of tokens, reading historical articles raw is fine. In fact, if you only write one or two pieces, it might even be less mentally taxing.\nBut as soon as you want to turn this into a long-term workflow, preprocessing becomes non-negotiable. Because without preprocessing, the writing model has to re-read old materials every time, and style maintenance and article generation are always mixed together.\nThe significance of blog-style-suite is to untangle this mess.\nIt\u0026rsquo;s not about making the system look complex, nor is it just for another project name; it\u0026rsquo;s so that blog-writer can remain lightweight, stable, and focused on \u0026ldquo;only the action of writing.\u0026rdquo;\nHaving reached this point, the next question naturally follows.\nSince the production side has been separated, what model should bear this cost? Local models, online models, or Minimax—where should each one stand in the workflow? I\u0026rsquo;ll save this for the next article: AI Writing Blogs: How It Eventually Has to Become Engineering (Part 3): The Division of Labor Between Local Models, Online Models, and Minimax.\nReferences Repository Commit: 84a06b5dc743f2e9bc6e788d53496a1261bc63ae Repository Commit: 9e92b8e6a15d03e6392aff7f3b2dcb0992fe5043 Repository Commit: bc4b950cbb13e37d1fdb16a9d23325cfefa6f90e Repository File: scripts/blog-style-suite/README.md Repository File: scripts/blog-style-suite/style_pipeline/scanner.py Repository File: scripts/blog-style-suite/style_pipeline/builder.py Repository File: scripts/blog-style-suite/style_pipeline/compressor.py Effective Runtime: .agents/data/blog-writing/published.runtime.json Writing Notes Original Prompt $blog-writer This content is quite extensive, so I\u0026#39;ve split it into a series of articles: Last year, many drafts were written using large models. Back then, the process was to create an outline or a list of questions myself, and then have the AI generate the draft, copy the content into a local md document, fill in header information, tag information, and publish the article; recently, I used Codex a lot and found that its web search capability is very strong. So, could I write a skill to automate these tasks? This led to the first draft of the skill blog-writer. I also thought about having the AI learn my previous writing style, which caused blog-writer to consume a lot of tokens when running. Subsequently, I optimized blog-writer in several versions, splitting out the data module and the data generation module. The original data generation module was still an independent skill. As I continued writing, I realized that it would be better as a Python project, which led to blog-style-suite. Then, I found that training on style data also consumes a lot of tokens, so I wanted to use a local large model and connected to a local LLM. I then thought about comparing the differences between the local LLM and the online version, so I integrated minimax; the evolution history of blog-style-suite and blog-writer can be analyzed from the git commit history. Additionally, based on the code for local blog-writer and blog-style-suite, I can discuss the design ideas, how token saving was achieved, and how the data structure was designed—the core design concepts. If tokens are abundant, it can consume entire historical articles; preprocessing can save a lot of tokens. Writing Outline Summary This article shifts the focus from the act of writing drafts to data engineering, with the core answer being \u0026ldquo;why modularization is necessary.\u0026rdquo; The introduction directly acknowledges that \u0026ldquo;using raw historical articles works,\u0026rdquo; which makes the subsequent arguments for splitting more convincing. It elaborates on the three structural layers: scan.json, source.json, and runtime.json, avoiding vague architectural discussions. bc4b950 is placed in the middle as a turning point because \u0026ldquo;reducing from about 2000 times to 5 times\u0026rdquo; best illustrates the value of preprocessing. The conclusion re-separates the consumption side and the production side, setting the stage for model division in the third article. ","date":"2026-04-03","language":"en","permalink":"https://ttf248.life/en/p/how-blog-style-suite-split-style-and-token-cost/","tags":["AI Inspiration Hub","ai","programming","blog-style-suite","token","Workflow"],"title":"Making the \"AI writes blog\" thing into an engineering project later (Part II)","year":"2026"},{"categories":["Computer"],"content":"I wrote quite a few AI articles last year. The most basic workflow back then was: first, organize an outline or a list of questions myself; let the large model spit out the main body text; then copy the content into a local md document, add frontmatter, tags, categories, and titles, and finally publish it. This process isn\u0026rsquo;t unusable, but it\u0026rsquo;s tedious. The part that really wastes time isn\u0026rsquo;t the main body text, but the repetitive labor surrounding it. Especially after using Codex a lot recently, this awkwardness has become even stronger. It can read repositories, modify files, supplement materials, and even write articles directly into the directory. If I still have to copy and paste things manually, it feels like I\u0026rsquo;m tying down the tool\u0026rsquo;s legs.\nThis series of articles is actually trying to convey one thing: AI writing blogs cannot rely solely on a single prompt in the long run. This current article first discusses why blog-writer came into existence; the next article will continue with AI Writing Blogs: Later, It Still Needs to Be Engineered (Part II): How blog-style-suite Separates Style Learning and Token Costs; and the last article concludes with AI Writing Blogs: Later, It Still Needs to Be Engineered (Part III): How Local Models, Online Models, and Minimax Will Finally Divide Labor.\nWhat\u0026rsquo;s truly annoying isn\u0026rsquo;t writing the draft, but that sequence of mechanical actions. The early workflow was essentially like an outsourced assembly line. I would first list out the problems clearly, or build a rough outline. The model is responsible for laying out the main body text. Then, a human comes back to complete the remaining publishing steps.\nCopy to local md file Fill in title, date, and slug Add tags and categories Insert \u0026lt;!--more--\u0026gt; Organize reference materials Finally, decide which directory it should go into Looking at each step individually, this sequence isn\u0026rsquo;t difficult. But when strung together, it becomes tedious. What\u0026rsquo;s annoying isn\u0026rsquo;t the technical difficulty; it\u0026rsquo;s that these steps are all mechanical, yet they cannot be skipped. This is why I increasingly feel that changes like AI coding interaction based on command line are not just about \u0026ldquo;changing the entry point.\u0026rdquo; When AI can directly read and write files within a repository, if blog writing still stops at the level of \u0026ldquo;copying the body text to a local document,\u0026rdquo; the entire workflow is actually outdated. blog-writer The First Layer of Value: It\u0026rsquo;s Not the Style, It\u0026rsquo;s Locking Down the Contract The very first node for blog-writer was at 17:00 on April 1, 2026, with the commit hash 991536a. Looking at the git commit history, this version included SKILL.md, write_post.py, and an initial set of style guidelines all together.\nHowever, when I looked back later, the most valuable part of this draft wasn\u0026rsquo;t that \u0026ldquo;the AI learned my writing style,\u0026rdquo; but rather that it established a rigid contract for content creation.\nWhat does \u0026ldquo;locking down the contract\u0026rdquo; mean?\nThe input must include at least an outline and factual anchors. The output must be complete Markdown, not a work in progress. Frontmatter cannot rely on manual additions anymore. The article cannot just stay in the chat window; it must land directly into content/post. This point is crucial because prompts themselves are inherently unstable. If you say, \u0026ldquo;Write it like before,\u0026rdquo; today, it might understand that only the tone should be similar; if you repeat it tomorrow, it might only learn superficial sentence structures. But once it\u0026rsquo;s written as a Skill, the rule shifts from \u0026ldquo;improvisation\u0026rdquo; to a \u0026ldquo;fixed workflow.\u0026rdquo;\nThe subsequent nodes were actually all about reinforcing this contract.\nThe commit at 22:54 on April 2, 2026, with hash 8eb735a, standardized elements like author fields, writing notes, and original prompts. By this stage, the blog draft was no longer considered \u0026ldquo;finished once the body text is done\u0026rdquo;; instead, metadata, traceability, and public notes were all standardized together.\nTherefore, the first layer of value for blog-writer has never been about making the model seem better at writing; it\u0026rsquo;s about finally giving the act of drafting repeatable boundaries.\nSeries Mode, Which is Actually One Step Forward in Writing Workflow After stabilizing writing a single article, the next problem quickly emerged. Some topics are simply not suitable to be crammed into one piece. If you force it, the result often becomes a long article that is information-heavy, has a scattered main thread, and fails to fully explain every point. This is why the commit 1a5604e on April 2, 2026, at 23:55 was so crucial. That time, they directly added the series mode along with write_post_series.py. The articles are linked using relref, and the replacement is done uniformly during batch writing. This might look like a minor upgrade to a file-writing script, but it\u0026rsquo;s not. It illustrates one thing: content engineering is no longer just about \u0026ldquo;how to generate this single article,\u0026rdquo; but rather starts considering \u0026ldquo;how to stably save this set of content, how to guarantee the order, and how to link between them on the site.\u0026rdquo; The next day\u0026rsquo;s commit, 04dccb9 on April 3, 2026, at 09:29, pushed this process one step further. The timestamps for series articles now increment by minutes instead of sharing a single timestamp. This change is small but very \u0026ldquo;engineering-y\u0026rdquo; because it solves real problems like Hugo list pages, previous/next article navigation, and series ordering. Simply put, the series mode isn\u0026rsquo;t about looking advanced; it\u0026rsquo;s about eliminating the need for manual fixes when publishing multiple articles together.\nBut relying on just one skill will eventually hit a token wall. The problem lies here. Once you start seriously tinkering with style learning, the context of blog-writer will quickly become bloated. You not only want it to write, but you also want it to write like you used to. The most natural way to do this is to dump all your historical articles into it. This works for a single run, of course. But as soon as you\u0026rsquo;re not writing an occasional piece, but trying to make it a long-term workflow, the problems immediately arise:\nHigh token consumption Repeatedly feeding the same batch of old articles every time Model attention is diluted by old material Drafting and style maintenance are intertwined; neither is easy. It was from here that I slowly realized that blog-writer is better suited for the consumption side, rather than trying to feed it everything. The act of drafting should be as light, direct, and limited to reading only the effective versions as possible. As for how to generate, filter, or compress style data, that\u0026rsquo;s a matter for a separate production pipeline. This realization finally pushed me to the next step, which was AI Blog Writing: It Still Needs to Be Engineered (Part II): How blog-style-suite Separates Style Learning from Token Costs.\nFirst, stabilize the process; only then can we talk about style and models. Looking back now, blog-writer didn\u0026rsquo;t emerge because I suddenly wanted to build a blog writing assistant. It was more because the original workflow started failing to keep up with new ways of working. Once a tool like Codex can connect to the internet for supplementary material, read and write within repositories, and directly call scripts, the act of writing a blog shouldn\u0026rsquo;t stop at \u0026ldquo;copying the body text to a local document.\u0026rdquo; If you don\u0026rsquo;t automate this part, it will actually become the clumsiest link in the entire chain. So, I\u0026rsquo;ll leave the conclusion for the first post here. What blog-writer solved initially wasn\u0026rsquo;t writing style, but the repetitive labor of the publishing action. Without this layer of contract, any subsequent discussion about tokens, data structures, or local models is actually baseless.\nReferences Repository Commit: 991536a237d04aba7c44dec501b3d98c644040c8 Repository Commit: 8eb735aa8448c97deb2af1ea46b86772008fa9e3 Repository Commit: 1a5604e7e6ce0a13f260fcbb8c2c1d964cdd0892 Repository Commit: 04dccb98c55a6ea3b81408012b33a6219cf8ab77 Repository File: .agents/skills/blog-writer/SKILL.md Repository File: .agents/skills/blog-writer/scripts/write_post.py Repository File: .agents/skills/blog-writer/scripts/write_post_series.py Writing Notes Original Prompt $blog-writer This content is quite extensive, so I\u0026#39;ve split it into a series of articles: Last year, many drafts were written using large models. Back then, the process was to create an outline or a list of questions myself, and then have the AI generate the draft, copy the content into a local md document, fill in header information, tag information, and publish the article; recently, I used Codex a lot and found that its web search capability is very strong. So, could I write a skill to automate these tasks? This led to the first draft of the skill blog-writer. I also thought about having the AI learn my previous writing style, which caused blog-writer to consume a lot of tokens when running. Subsequently, I optimized blog-writer in several versions, splitting out the data module and the data generation module. The original data generation module was still an independent skill. As I continued writing, I realized that it would be better as a Python project, which led to blog-style-suite. Then, I found that training on style data also consumes a lot of tokens, so I wanted to use a local large model and connected to one locally. I then thought about comparing the differences between the local large model and the online version, so I integrated minimax. The evolution history of blog-style-suite and blog-writer can be analyzed from the git commit history. Additionally, based on the code for local blog-writer and blog-style-suite, I can discuss the design ideas, how token saving was achieved, and how the data structure was designed—the core design concepts. If tokens are abundant, it can consume entire historical articles; preprocessing can save a lot of tokens. Writing Strategy Summary The first article should focus on the workflow trigger point, without rushing to detail the division of labor between tokens and models, to avoid having all three articles compete for the main narrative. It retains the key insight: \u0026ldquo;The body content is not difficult; what\u0026rsquo;s troublesome are the mechanical actions before and after publishing.\u0026rdquo; By using nodes like 991536a, 8eb735a, 1a5604e, and 04dccb9, we ground the concept of \u0026ldquo;process contracturization\u0026rdquo; in actual Git evolution. The series pattern is reserved for this article to illustrate that blog writing has moved from generating single pieces to managing entire sets of deliverables. The ending deliberately points toward the token wall, setting up the groundwork for data engineering and preprocessing in the second article. ","date":"2026-04-03","language":"en","permalink":"https://ttf248.life/en/p/why-blog-writer-had-to-exist/","tags":["AI Inspiration Hub","ai","programming","blog-writer","skill","Workflow"],"title":"AI Writing a Blog: The Next Steps Towards Engineering (Part 1)","year":"2026"},{"categories":["Computer"],"content":"These past few days, while reading about AI programming, people were first discussing MCP, and then immediately started talking about Skill. Many people who see this term for the first time will instinctively treat it as another new protocol or another advanced prompt.\nMy judgment is very straightforward: Skill isn\u0026rsquo;t here to replace MCP; rather, it\u0026rsquo;s more like providing an occupational manual for the agent. MCP solves the problem of \u0026ldquo;enabling the agent to connect to the external world,\u0026rdquo; while Skill solves the problem of \u0026ldquo;how to reliably get the job done after connecting.\u0026rdquo; These two are not a replacement relationship; they are more like one following the other.\nSimply put, MCP gives the agent hands and feet, and Skill tells the agent not to mess around.\nWhat exactly is a Skill? If I were to explain it in the simplest terms, I would say this: It\u0026rsquo;s like taking the expert knowledge from a seasoned employee\u0026rsquo;s head and organizing it into a reusable, triggerable, and actionable manual. That thing is a Skill. The official OpenAI documentation defines it very directly: A Skill is a package of capabilities designed for specific tasks. It can contain instructions, reference materials, and optional scripts. The goal isn\u0026rsquo;t to make the model \u0026ldquo;smarter,\u0026rdquo; but rather to ensure that when performing a certain type of task, it outputs results consistently according to a fixed workflow. What is it most like?\nIt\u0026rsquo;s not like a regular prompt because it\u0026rsquo;s not something you just say once and are done with. It\u0026rsquo;s not like an MCP because it doesn\u0026rsquo;t handle connecting tools and data sources. And it\u0026rsquo;s not like the general rules in AGENTS.md because it\u0026rsquo;s not a universal rule for the entire repository. It is more like a specialized Standard Operating Procedure (SOP), or a trade manual. For example: When handling GitHub PR comments, first identify which comments need attention, then ask the user which ones to handle, then modify the code, and finally provide feedback. When debugging a CI failure, first pull the GitHub Actions logs, then extract the failing segments, then propose a fix plan, and only execute after approval. When writing a blog post, first generate titles according to a fixed style, then supplement with facts, then add frontmatter, and finally publish it. The common thread among these tasks is not that \u0026ldquo;the model doesn\u0026rsquo;t know how to answer,\u0026rdquo; but rather that \u0026ldquo;the model\u0026rsquo;s approach varies every time, making it easy for it to drift off course.\u0026rdquo; This is where the value of a Skill comes into play. The Difference Between Skill and MCP This issue really needs to be viewed within a real workflow, otherwise, it\u0026rsquo;s easy to talk too theoretically.\nMCP is like the interface layer. The official definition of MCP is an open standard for connecting AI applications to external systems. Files, local databases, search engines, design mockups, third-party services—all of these can be connected via MCP. Therefore, it solves the problem of \u0026ldquo;connecting things.\u0026rdquo;\nSkill is like the process layer. The OpenAI Agent Skills documentation makes it very clear that a Skill is the writing format for reusable workflows. A Skill must have at least an SKILL.md, and can also include scripts/, references/, and assets/. Codex first reads its name and description; only when it determines that it needs to use it does it load the full description into the context. This is what the official documentation calls progressive disclosure.\nSo, the division of labor between the two is very clear:\nMCP: Connects the capabilities (the \u0026ldquo;what\u0026rdquo;). Skill: Defines the order of operations (the \u0026ldquo;how\u0026rdquo;). To give a very intuitive example, something like converting Figma to code. If the agent cannot read the design mockup at all, then what you need first is an MCP. But if it can already read the design mockup, but just writes things randomly—writing components today, cutting pages tomorrow, and forgetting visual checks the day after—then what you need to improve is the Skill.\nHow to Develop Skills This is actually not as heavy as you might think. OpenAI officially recommends starting with the built-in $skill-creator, which will help you build the basic structure, such as trigger conditions, scope, and whether a script is needed. By default, it prioritizes instruction-only, meaning don\u0026rsquo;t rush to write scripts; first, make sure your instructions are clear. If writing manually, the minimum structure is very simple:\nmy-skill/ ├── SKILL.md ├── scripts/ ├── references/ └── assets/ Of these, only SKILL.md is truly essential. Furthermore, this file must have at least two pieces of metadata:\n--- name: skill-name description: Explain exactly when this skill should and should not trigger. --- I think the most crucial steps when developing a Skill are the following.\n1. Look for \u0026ldquo;Recurring Biases\u0026rdquo; Not every task is worth turning into a Skill. If you only ask the agent to do something occasionally, a regular prompt is enough. The situations that are truly suitable for creating a Skill are usually like this:\nYou have repeated the same thing many times. The agent has the capability, but the execution order always changes. The location where it makes mistakes is similar every time. Simply put, it\u0026rsquo;s not an \u0026ldquo;ability gap,\u0026rdquo; but rather an \u0026ldquo;inconsistent process.\u0026rdquo; 2. Write the description as a trigger condition, not as marketing copy This step is crucial. The official documentation specifically emphasizes that whether Codex will implicitly call a Skill heavily depends on the description. So, don\u0026rsquo;t write things like \u0026ldquo;This is a very useful skill\u0026rdquo;; instead, write \u0026ldquo;When it should be used and when it should not be used.\u0026rdquo; For example, the description for the official gh-fix-ci skill is very clear: Use this when the user asks you to debug or fix failed GitHub PR checks; the focus is on checking logs, summarizing the failure reasons, providing a remediation plan, and only implementing it after receiving explicit approval. Just by reading it, you know its boundaries.\n3. If it can be solved with instructions, don\u0026rsquo;t write a script first OpenAI\u0026rsquo;s documentation is also very practical: unless you explicitly need deterministic behavior or external tools, prioritize using instructions rather than scripting everything right away. Why? Because the more scripts you have, the higher the maintenance cost becomes. Many Skills initially only require clearly explaining the steps:\nWhat to do first What to do next What the output format should be In which situations to stop and ask the user This can solve most of the problems. Only when a step is particularly stable, mechanical, or highly suitable for automation should you move it down into scripts/. 4. Extract Data, Templates, and Resources As you write the Skill, it\u0026rsquo;s easy for it to become one long block of descriptive text. This is when you need to break things out.\nSKILL.md is responsible for explaining rules and sequence. references/ holds background documents and reference materials. assets/ stores templates, icons, and examples. scripts/ contains actions that can be executed reliably. Doing this has two benefits. First, the main file won\u0026rsquo;t become increasingly bloated. Second, the model only loads details when necessary, which aligns with the concept of progressive disclosure. 5. Local Use First, Cross-Project Distribution Later The official documentation explains this very clearly. If you are only using it for your current repository, placing it in .agents/skills/ is sufficient. Codex scans the skills directory from locations such as the repository, user, and system. However, if you find that this functionality can be used across more than one repository, or if you want to package and distribute multiple skills together, then don\u0026rsquo;t stop at just the skill folder level; you should consider using plugin. The official OpenAI documentation is also very clear: Skill is the workflow itself, while plugin is the unit that is better suited for installation and distribution.\nWhat Scenarios are Suitable for Skills Having more Skills is not always better; they are best suited for the following types of tasks.\nHigh-Frequency Repetitive Tasks Tasks you do every week, and the sequence is pretty much the same each time. For example:\nHandling PR review comments Writing a blog post and adding frontmatter Debugging CI failures Performing pre-release checks What\u0026rsquo;s most daunting about these kinds of tasks isn\u0026rsquo;t that the model can\u0026rsquo;t do it, but having to explain it all over again every single time. Tasks with Fixed Procedures Some tasks naturally have a sequence. For example, when troubleshooting an issue, you should first check the logs, then narrow down the scope, then propose a plan, and finally make changes. In this case, Skill is particularly suitable because it can enforce the order, reducing reliance on the model\u0026rsquo;s ad-hoc performance.\nTasks Requiring Domain Context Binding Some tasks do not have fixed steps and come with strong constraints. For example:\nMust only check official documentation Must output in a specific review format Must retain existing terminology within the team Must comply with the writing or development standards of a certain repository If you rely on prompts alone every time, it\u0026rsquo;s easy to miss these details. Tasks Requiring Tools and Processes Together This scenario is particularly typical. It\u0026rsquo;s not just about \u0026ldquo;connecting to GitHub\u0026rdquo; and being done; after connecting, you still need to examine the logs in a certain way, deduce the problems, decide whether or not to modify anything, and finally how to provide feedback. In other words, external connections and internal processes must work together. This is often when MCP + Skill appear jointly.\nWhen Not to Use a Skill It\u0026rsquo;s also important to be clear about this, otherwise it\u0026rsquo;s easy to want to make everything into a Skill.\nOne-off Casual Tasks When a user asks a quick question, a standard prompt is often sufficient.\nYou just want to \u0026ldquo;connect an external system\u0026rdquo; In that case, prioritize MCP, not Skill.\nYou want to constrain the long-term behavior of the entire repository This is more like the job of AGENTS.md, not a Skill. So, to summarize simply:\nMissing connections, use MCP Missing processes/workflows, use Skill Missing global rules, use AGENTS.md Several Representative Examples It\u0026rsquo;s better to look at a few real-world examples than to hear too many concepts.\n1. roll-dice: The Minimal Viable Entry Case This example comes from the official OpenAI Agent Skills documentation. It is very small; there is almost only an SKILL.md in the directory, which allows the agent to call PowerShell\u0026rsquo;s random number command when the user requests rolling dice. Why is this example good? Because it directly exposes the most core skeleton of a Skill:\nIt has clear triggering conditions It has a clear execution method It has clear boundaries It illustrates one thing: a Skill doesn\u0026rsquo;t have to be large. As long as something happens repeatedly, and you don\u0026rsquo;t want the model to improvise wildly, you can create it as a Skill. 2. gh-address-comments: A Workflow Example for Handling GitHub Comments This example comes from the official OpenAI openai/skills repository. Its goal is not to \u0026ldquo;connect to GitHub,\u0026rdquo; but rather to encapsulate the process of \u0026ldquo;handling comments on the current branch\u0026rsquo;s PR.\u0026rdquo; The steps in the official version are very typical:\nFirst, confirm if gh is already authenticated. Then, fetch the comments and review threads for the current PR. Number and summarize these comments. Allow the user to explicitly select which ones need processing. Only then start the actual work. This example particularly illustrates the value of a Skill. For many engineering tasks, the difficulty isn\u0026rsquo;t whether \u0026ldquo;the model knows what GitHub is,\u0026rdquo; but rather \u0026ldquo;whether it will process things in the correct order.\u0026rdquo; gh-address-comments solves exactly this kind of sequencing problem. 3. gh-fix-ci: Troubleshooting Engineering Cases with Failed CI This is also the official skill in the openai/skills repository. It addresses another very typical engineering task: a PR check has failed, should it be fixed, and how to fix it. The workflow defined in this Skill is also very representative:\nFirst, confirm the gh login status. Find the current PR. Pull the failed checks and logs from GitHub Actions. Extract the failure snippets. Propose a fix plan first. Only act after getting approval. This scenario cannot be reliably handled by a simple prompt like \u0026ldquo;Help me see why CI failed.\u0026rdquo; Because it involves permissions, logs, external tools, approval boundaries, and execution order—all of which need to be defined. 4. Private Repository Skills: Solidifying Team\u0026rsquo;s Own Methodologies Beyond the official examples, I think the greater value of Skill lies within private repositories. For instance, the blog-writer in this blog repository is essentially a very typical repo-scoped skill. It doesn\u0026rsquo;t aim to \u0026ldquo;teach the model how to write Chinese,\u0026rdquo; but rather codifies the writing style, structure, fact-checking process, output path, and final storage format that have already been established within this specific repository into a workflow. These kinds of Skills often hold the most practical value. This is because they are not designed for everyone; instead, they specifically solve the problem: \u0026ldquo;In this repository, what kind of task keeps recurring, and where do we tend to go off track?\u0026rdquo;\nWhen to Actually Use a Skill So, let\u0026rsquo;s get back to the most practical question: when should you seriously implement a Skill? My answer is: When you realize the problem is no longer \u0026ldquo;the model lacks capability,\u0026rdquo; but rather \u0026ldquo;its execution is inconsistent every time.\u0026rdquo; At this point, continuously stacking prompts yields diminishing returns. If you add one sentence today and another tomorrow, eventually the prompt becomes like a rambling diary entry, and the model will still make mistakes. Instead, organizing it into a Skill—separating the trigger conditions, steps, boundaries, scripts, and necessary data—results in more stable and reusable outcomes. The MCP brings in the external world; the Skill solidifies the internal methodology. The former solves \u0026ldquo;if it can be done,\u0026rdquo; while the latter solves \u0026ldquo;how to do it reliably.\u0026rdquo; This is my current understanding of a Skill. It\u0026rsquo;s not just a new prompt, nor is it a new protocol. It\u0026rsquo;s more like an operational manual for the agent.\nReferences Agent Skills - Codex | OpenAI Developers Using skills to accelerate OSS maintenance | OpenAI Developers What is the Model Context Protocol (MCP)? | Model Context Protocol openai/skills | GitHub gh-address-comments/SKILL.md | openai/skills gh-fix-ci/SKILL.md | openai/skills Writing Notes Original Prompt Prompt: AI Large Model Programming, first appeared MCP, then Skill. Using plain language, explain what Skill is, how to develop a Skill, what scenarios are suitable for Skill, and provide specific, representative examples from each source.\nWriting Approach Summary Instead of repeating a \u0026ldquo;concept overview of MCP and Skill,\u0026rdquo; the focus is placed on the role and boundaries of Skill. Abstract definitions are grounded in real workflows using common analogies like \u0026ldquo;trade manuals\u0026rdquo; or \u0026ldquo;specialized SOPs.\u0026rdquo; The development section follows the actual structure of official documentation, retaining key points such as description, progressive disclosure, and instruction-only. Case studies prioritize official sources, utilizing roll-dice from the official documentation, along with gh-address-comments and gh-fix-ci from the openai/skills repository. The conclusion re-clarifies the boundaries between MCP, Skill, and AGENTS.md to prevent readers from remaining confused after reading. ","date":"2026-04-02","language":"en","permalink":"https://ttf248.life/en/p/skill-is-an-agent-handbook/","tags":["ai","codex","skill","mcp","programming"],"title":"Skill is not a new prompt, it is the job manual for the agent.","year":"2026"},{"categories":["Computer"],"content":"Recently, I\u0026rsquo;ve been migrating some edge cases to MiniMax and local models. The more I use them, the more I feel that we shouldn\u0026rsquo;t always measure things by the standard of \u0026ldquo;the most powerful model.\u0026rdquo;\nMy judgment is straightforward: don\u0026rsquo;t force weak models into hard tasks. Models like MiniMax are indeed limited in capability, but for complex coding, long-chain reasoning, or ambiguous requirement decomposition, they fall a bit short. However, if you ask it to do data cleaning, document writing, or searching for proposal materials—these kinds of tasks—it can handle them perfectly well. The same logic applies to local models around the 12B size; translation, format rewriting, and batch cleaning are actually where they are best suited.\nTo put it plainly, it\u0026rsquo;s not that the models lack value; it\u0026rsquo;s just that we shouldn\u0026rsquo;t place them in the wrong roles.\nThe real problem isn\u0026rsquo;t how strong the model is, but whether it works correctly. Many people who talk about large models automatically think of the most difficult tasks.\nWriting complex engineering code independently Deconstructing an entire system in one go Multi-turn reasoning over long contexts Planning and executing while searching These are certainly important. But in real-world work, what is actually piled on your desk most often isn\u0026rsquo;t these kinds of tasks. It\u0026rsquo;s more like: Cleaning up a pile of dirty fields Organizing scattered information into readable documents Converting long texts into summaries, FAQs, or outlines Standardizing mixed Chinese and English content formats Gathering data from multiple web pages and then compiling it into a draft proposal For these types of tasks, what is most needed is not \u0026ldquo;the model thinking like a genius,\u0026rdquo; but three things: Instruction following must be reasonably accurate. Output structure should be as stable as possible. The cost must be low enough that you are willing to use it repeatedly. This is why I always feel that weak models are not useless; they just cannot be used in the same kind of battle as flagship models. MiniMax: What\u0026rsquo;s Actually Suitable for It First, let\u0026rsquo;s talk about MiniMax. The official positioning of MiniMax-M2.5 is actually quite high. In press releases and open platform documentation, they push it towards scenarios like programming, tool calling, search, and office productivity, even emphasizing speed and cost advantages. I don\u0026rsquo;t completely disbelieve these claims, but I prefer to break them down. For me, what MiniMax is genuinely good at isn\u0026rsquo;t \u0026ldquo;the most complex development tasks,\u0026rdquo; but rather the following:\nData Cleaning A lot of data cleaning is essentially manual labor involving semi-structured text.\nName unification Field mapping Anomaly labeling Classification tagging Table field completion What these types of tasks fear most is not the model being \u0026ldquo;dumb,\u0026rdquo; but rather inconsistent formatting or divergent outputs. As long as the model can reliably output results in JSON, tables, or fixed templates, it\u0026rsquo;s actually sufficient. While powerful models certainly can do this, using the most expensive tier of model just to clean fields is often not cost-effective. Documentation Writing Writing documentation is annoying, not difficult. When an interface changes, a process changes, or a field is modified, the documentation has to change accordingly. This process doesn\u0026rsquo;t actually require the model to have strong creativity; rather, it requires it not to over-exert itself and alter clearly defined things into something ambiguous. MiniMax is often more reliable for these kinds of tasks than one might expect. Especially when you have already prepared the context, it acts more like a capable documentation assistant rather than an actual engineer.\nSolution Material Search The official platform is also promoting search and tool calling, so this direction is fine. Many times, what we need is not for the model to \u0026ldquo;come up with an answer out of thin air,\u0026rdquo; but rather for it to first find relevant web pages, documents, announcements, or materials, and then organize them neatly. In this scenario, cheaper models like MiniMax are very valuable because searching, summarizing, and integrating are inherently high-frequency, mundane tasks. So my actual view is: MiniMax isn\u0026rsquo;t incapable; rather, it is better suited for the dirty, tiring, and repetitive tasks within a production pipeline. If you let it act as an assistant or general laborer, it is often competent; but if you ask it to handle the entire engineering process, the probability of disappointment increases.\nLocal 12B Models, Best Suited for Bringing Back These Tasks Looking further down, the logic for local deployment is actually the same. When many people talk about local models, they inevitably ask one question: Can it replace the flagship cloud models? I think this question is flawed from the start. For local models around 12B, what has real practical value isn\u0026rsquo;t \u0026ldquo;proving that it can handle the most powerful tasks,\u0026rdquo; but rather bringing back those stable, repetitive, sensitive, low-profit, yet high-frequency tasks.\nTranslation This is one of the most natural scenarios for local models. As explicitly mentioned in the official blog of Qwen2.5, it has enhanced capabilities for long-text generation, structured data understanding, and JSON output, and supports over 29 languages. This combination is inherently suitable for tasks like translation, bilingual rewriting, format standardization, and terminology normalization. Technical documentation, field descriptions, product introductions, and API comments—these items often have stable structures and fixed terminology. While local models might not produce the most elegant translations, they are usually sufficient.\nData Cleaning This is also where local models are particularly realistic. Many spreadsheets, documents, and business materials that you might not want to upload to the cloud. Especially internal data, customer records, meeting minutes, and draft proposals—when privacy and permissions are involved, running it locally provides much more peace of mind. At this point, the significance of a local model around 12B isn\u0026rsquo;t \u0026ldquo;how smart it is,\u0026rdquo; but rather that \u0026ldquo;it\u0026rsquo;s on my machine, and it can reliably handle these dirty tasks.\u0026rdquo;\nFixed Format Rewriting For example:\nMeeting minutes organized into a fixed template Product titles cleaned into a unified naming convention Bug descriptions rewritten into ticket format Mixed Chinese and English text cleaned into single-language versions These types of tasks share consistent characteristics: clear rules, large batches, high repetition, low value per instance, but significant cumulative effort. This is exactly what local models are best suited for.\nCan the 3060 12GB actually run a model around 12B? I prefer to write about this realistically: \u0026ldquo;It can run it, but don\u0026rsquo;t get your hopes up too high.\u0026rdquo; Google provided a very useful VRAM table in the official documentation for Gemma 3. The Gemma 3 12B roughly requires:\nAbout 20 GB of VRAM to load the full precision version. About 12.2 GB to load the medium quantization version. About 8.7 GB to load a lower VRAM consumption version. The official documentation also specifically reminds that this is only for model loading, and does not include prompt or runtime overhead. This sentence is very key. What does it mean? It means that running a model around 12B on a card like the 3060 12GB is not impossible, but the prerequisites are usually: You are running a quantized version. The context length should not be too long. The task shouldn\u0026rsquo;t be too complex. You accept average, or even slow, speed. If you are willing to accept these premises, then running a local 12B model is indeed feasible. Tasks like translation, summarization, table cleaning, and fixed format conversion are not exaggerated in this regard. Furthermore, the official repository for Qwen2.5-14B-Instruct-GGUF itself provides multiple quantization formats, which actually makes the intention very clear: models in this category are inherently adapted for the local inference ecosystem. So my conclusion has never been that \u0026ldquo;the 3060 12GB can easily handle a 12B model,\u0026rdquo; but rather: It can run these types of models, but it is better suited for work with low expectations, high repetition, and high privacy requirements. Cheap Models and Local Models: It\u0026rsquo;s Not Just About Saving API Costs When people talk about this, the first reaction is always saving money. Of course, saving money is important. But I think the greater value is that you start daring to outsource all those little tasks you used to avoid doing. Before, you might not have written a dedicated script just to clean up a few hundred data points. You also wouldn\u0026rsquo;t manually adjust dozens of pages of mixed Chinese and English documents to achieve uniform formatting. And you certainly wouldn\u0026rsquo;t read through every single webpage to gather materials for an ad-hoc proposal. Things are different now. As long as the cost is low enough and the barrier is low enough, these tasks that were previously considered \u0026ldquo;not worth the effort\u0026rdquo; suddenly become worthwhile. You no longer hesitate over whether or not to do it; instead, you just throw it to a cheap model or a local model to run through first. This is what I see as the most realistic change. Powerful models are responsible for tackling core problems, weaker models handle miscellaneous tasks, and local models provide fallback and batch processing. With this division of labor, the entire workflow becomes smooth.\nConclusion So, the final word remains: don\u0026rsquo;t always try to make one model conquer everything. Models like MiniMax are weak in capability, but they aren\u0026rsquo;t useless. If you use them to tackle complex engineering tasks, vague requirements, or multi-turn reasoning, you will naturally be disappointed; however, if you use them for data cleaning, document drafting, or searching for proposal materials, they often work quite smoothly. The same applies to local models around 12B. Their purpose isn\u0026rsquo;t to prove that \u0026ldquo;I no longer need cloud flagships,\u0026rdquo; but rather to reliably move stable, repetitive, sensitive, and high-volume tasks back onto their own machines. Simply put: don\u0026rsquo;t let a weak model do what it is not good at. Place them in the right role, and they will have real value.\nReferences MiniMax M2.5: Built for Real-World Productivity MiniMax Open Platform: Text Generation Qwen2.5: A Party of Foundation Models! Qwen2.5-14B-Instruct-GGUF Gemma 3 model overview Writing Notes Original Prompt Minimax\u0026rsquo;s large model is weak in capability, but it\u0026rsquo;s fine for tasks like data cleaning, document writing, and searching for proposal materials; with the same logic, deploying a large model locally for translation or data cleaning work is also good. The model parameter count is around 12b, and even a local GPU like the RTX 3060 with 12GB can handle it.\nWriting Outline Summary Retained the core judgment of \u0026ldquo;don\u0026rsquo;t force weak models onto hard tasks,\u0026rdquo; and did not write it as a model leaderboard comparison. The MiniMax section is mainly based on the official positioning for programming, searching, and office work, then applies this judgment back to real-world tasks like data cleaning, document handling, and information retrieval. For local models, I selected two officially sourced options: Qwen2.5 and Gemma 3, one supporting multilingual and structured output, and the other supporting 12B size and VRAM usage. The description for the 3060 12GB was intentionally phrased as \u0026ldquo;capable, but don\u0026rsquo;t get too carried away,\u0026rdquo; to avoid presenting quantized inference as an absolute conclusion. In the conclusion, I re-categorized strong models, weak models, and local models based on their respective roles, making the main thread more focused. ","date":"2026-04-02","language":"en","permalink":"https://ttf248.life/en/p/weaker-models-shouldnt-do-frontier-work/","tags":["ai","minimax","Local Model","qwen","gemma"],"title":"Don't force weak models onto hard tasks.","year":"2026"},{"categories":["Computer"],"content":"Throughout March, I was constantly testing between various large model API hubs. It is indeed cheap. You can test out foreign models like ChatGPT, Claude, and Gemini for a small amount of money per month, which at first glance seems like finding an extremely cost-effective solution. However, after actually using it, I increasingly feel that this path has always been constrained by an impossible triangle: Quality, Stability, and Affordability—it is difficult for all three to be achieved simultaneously. By last weekend, the situation became quite clear. During the two days from 2026-03-28 to 2026-03-29, I felt a noticeable tightening of risk controls on ChatGPT channels, and Claude was no different. Many low-cost relays that were previously usable suddenly became unstable or even completely failed. For me, this basically signaled the temporary end of the low-cost API relay model.\nWhat is an API Proxy/Gateway? Let\u0026rsquo;s first clarify the concept. What is called an API Gateway (or \u0026ldquo;Proxy Station\u0026rdquo;) is not inherently a service provided by the model vendor itself, but rather an intermediary \u0026ldquo;forwarding layer\u0026rdquo; placed between the user and the upstream models. You send your request to the gateway, which then forwards it on your behalf to OpenAI, Anthropic, or other model providers, and finally returns the result to you. From the user\u0026rsquo;s perspective, it acts like a cheaper and more \u0026ldquo;flexible\u0026rdquo; unified entry point; from a technical and business model perspective, it is more like repackaging and redistributing upstream resources. The reason these services have been widely used is quite simple:\nLow cost Low barrier to entry Wide variety of models available For domestic users, it saves a lot of hassle related to registration, payment, and network environment setup. However, the problem lies precisely in this. Since it is not the official link, many conveniences are fundamentally built upon an \u0026ldquo;extra layer\u0026rdquo; rather than stable authorization. How They Generally Work The practices vary across different platforms, but the common patterns generally fall into a few categories.\n1. Key Secondary Distribution Some platforms essentially take their upstream API Keys and act as a unified forwarder, then divide the quota among downstream users. What you buy is their layer of package, not a package sold directly to you by OpenAI or Anthropic. The problem with this model is that if the upstream Key is restricted, the quota runs out, or the strategy is adjusted, the downstream experience will immediately fluctuate.\n2. Account Pool Rotation The term \u0026ldquo;account pool\u0026rdquo; often used in the industry can be understood as pooled management of a batch of account resources. The platform centralizes multiple accounts and calls them in rotation according to requests, which is used to distribute quota pressure and risk control pressure. The \u0026ldquo;account pool\u0026rdquo; here is not an official term from model vendors but rather a more colloquial or jargon-heavy description. It emphasizes the resource scheduling method rather than the product capability itself. Whoever has a larger pool appears more stable in the short term; however, this stability often vanishes instantly if upstream sources begin concentrated cleanups.\n3. Reverse Engineering Wrappers Another approach is not to use the official, standard APIs, but rather to study the request methods used by the web page or client, and then re-wrap these calling processes into an interface that \u0026ldquo;looks like an API\u0026rdquo; for users. This \u0026ldquo;reverse engineering\u0026rdquo; process, simply put, means not entering through the official door, but understanding how the system communicates by going through side entrances, windows, or even pipes, and then wrapping it in your own layer. The weakness of this method is also very obvious: what works today does not guarantee that it will work tomorrow. If the page structure, authentication methods, device verification, or behavioral policies change, the entire link may fail.\nActual Experience in March After this intensive round of testing in March, my biggest takeaway wasn\u0026rsquo;t \u0026ldquo;cheap is surprisingly good,\u0026rdquo; but rather that you must continuously endure uncertainty. For the same requirement, one transit station might answer it well today, but tomorrow its intelligence might start declining; it might output stably in the morning but start throwing errors, timing out, or losing context in the evening. You think you are buying model capability, but what you are actually buying is a constantly fluctuating \u0026ldquo;probability service.\u0026rdquo; If you only use it for temporary testing of the model or for some light Q\u0026amp;A, this fluctuation is bearable. But once you put it into an actual workflow, the problems become very obvious.\nUnstable quality, output level fluctuates wildly Insufficient stability, prone to timeouts, errors, and disconnections Poor context continuity, bad experience for long tasks Model persona and style drift after switching upstream platforms Spending time troubleshooting issues, the hidden cost is not low In other words, the biggest problem with low-cost transit services isn\u0026rsquo;t that they \u0026ldquo;aren\u0026rsquo;t cheap,\u0026rdquo; but that they transfer much of the certainty that should have been borne by official platforms back onto the user. On the surface, you save money, but in reality, you spend more time, mental energy, and reduce the predictability of your workflow. Why I Say It Fell into the Impossible Triangle After using it repeatedly recently, I increasingly feel that this type of relay service is destined to fall into an impossible triangle.\nQuality If you want to improve the quality, you must ensure that the upstream models are truly usable, have sufficient quotas, and experience as little throttling or degradation as possible. This task itself is not cheap.\nStability If you want to achieve stability, you have to handle more risk control, account loss, network fluctuations, rate limiting, and backup lines. You even need to implement more complex scheduling and fallback mechanisms yourself. These are all costs.\nCost-Effective (or \u0026ldquo;Good Value\u0026rdquo;) Once you have truly solidified the first two things, the price cannot continue to be suppressed so low. The ability to maintain ultra-low prices over the long term often indicates that the underlying cost has not been genuinely solved; it has merely been deferred or spread out across a future collective failure.\nTherefore, many intermediaries that appear to be offering \u0026ldquo;high cost-performance\u0026rdquo; are actually maintaining a fragile balance. This balance holds up when things are calm, but once upstream risk controls tighten, this equilibrium can easily collapse.\nLast weekend, it was pretty much obvious. What really made me decide to give up on further tinkering was the change from 2026-03-28 to 2026-03-29. My own feeling is that the channels related to ChatGPT showed very noticeable tightening during those two days, and Claude\u0026rsquo;s risk control also strengthened in tandem. Previously, we could barely maintain a \u0026ldquo;usable\u0026rdquo; state by switching lines, models, or packages. That method suddenly no longer works. I don\u0026rsquo;t want to make an absolute judgment here like saying \u0026ldquo;the entire industry is dead,\u0026rdquo; because someone will always say they have some other usable channel. But from the perspective of actual utility for ordinary users, this path of low-cost API relay is at least no longer worth me continuing to invest time in. The concept of being cheap only has meaning when it\u0026rsquo;s predicated on \u0026ldquo;being able to complete the task reliably.\u0026rdquo; If even basic reliability cannot be guaranteed, low cost becomes an illusion.\nWhy This Pattern Was Inherently Fragile On the surface, it might seem like the vendors are \u0026ldquo;deliberately restricting\u0026rdquo; people. However, if you look deeper, this type of pattern was built on a very fragile foundation to begin with.\nVendors like OpenAI and Anthropic did not design their products based on the logic of \u0026ldquo;secondary distribution gray resale.\u0026rdquo; Their official terms already have explicit restrictions regarding the reselling of API Keys, bypassing limitations, reverse engineering, or circumventing protective measures. OpenAI\u0026rsquo;s service agreement explicitly lists \u0026ldquo;buying, selling, or transferring API Keys,\u0026rdquo; \u0026ldquo;bypassing rate limits or protective measures,\u0026rdquo; and \u0026ldquo;circumventing usage restrictions\u0026rdquo; as prohibited activities; Anthropic\u0026rsquo;s commercial terms also clearly reserve space to constrain misuse, unauthorized access, and service abuse.\nIn other words, these relay stations are not innovating within an officially encouraged ecosystem; they are surviving in the gaps of official governance boundaries. As soon as model vendors start cleaning up seriously, this pattern will naturally be the first to take a hit.\nThere is also a very realistic background factor: many foreign model services already have barriers related to region, payment, and account systems. Since official support regions are limited, many users are blocked out, which created the demand for relays. But just because the demand exists doesn\u0026rsquo;t mean the pattern is stable. It only indicates that there is a market for gray alternative solutions; it does not guarantee long-term certainty.\nFinal Conclusion After going through all this, my conclusion is actually simpler. Codex has a better cost-performance ratio, at least from my own usage experience; it seems more suitable for actual production environments. I haven\u0026rsquo;t heard much feedback about large-scale account bans in China, so the overall mental burden is lower. Of course, Codex isn\u0026rsquo;t without constraints. The five-hour limit and weekly limits are there, and when I use it now, I don\u0026rsquo;t act as recklessly as before—I don\u0026rsquo;t ask everything or dump everything on it to process. For many problems, I will first run them through my own mind, break them down myself, and then decide whether to spend the current quota. Looking at it this way, limits aren\u0026rsquo;t necessarily all bad. Objectively, they force the human brain to get re-involved—they force you to organize your thoughts first, make judgments first, and prioritize, rather than outsourcing all thinking. I have written about this before: a model that is slightly \u0026ldquo;less intelligent\u0026rdquo; isn\u0026rsquo;t necessarily all bad because it forces the user to maintain a basic level of critical thinking. Looking back now, this judgment still holds true. I am not considering Claude for now. It\u0026rsquo;s not that its capabilities are weak; quite the opposite, they are still very strong. But given the uncertainty of account bans even with personal paid subscriptions, it is not suitable as my primary solution at this stage. Regarding domestic models, I choose to continue observing. It\u0026rsquo;s not yet time for me to commit heavily or bind long-term. So, in the end, I returned to a very simple choice: subscribing to ChatGPT Plus and using it for now while continuing to watch how the large model industry evolves. Many times, the cheapest option is not necessarily the most cost-effective; the one that is the easiest to use is actually the true value proposition.\nReference Links OpenAI Supported Regions: https://help.openai.com/en/articles/5347006-which-countries-and-territories-are-supported-by-openai OpenAI Services Agreement: https://openai.com/policies/services-agreement/ Anthropic Commercial Terms: https://www.anthropic.com/legal/commercial-terms ","date":"2026-03-30","language":"en","permalink":"https://ttf248.life/en/p/the-end-of-low-cost-api-relays/","tags":["AI Inspiration Hub","ai","Large Model","api","chatgpt","claude","codex"],"title":"The End of Low-Cost API Gateways: Large Model Experiences and the Impossible Triangle in March","year":"2026"},{"categories":["Computer"],"content":"Recently, in the project, there has been heavy use of AI programming, which should be the most integrated AI in work over the past three years. The notes taken were not systematic; whatever came to mind was recorded.\nBackground Linux environment, backend service development, without involving any UI or frontend content.\nModels I\u0026rsquo;ve tried out the three \u0026ldquo;Big Three\u0026rdquo; in China – minimax, glm, and kimi – and kimi has performed best. claude effectively handles large requests by breaking them down, while codex is most suitable for production environments; it’s exceptionally cautious.\nClaude is the most versatile player currently, and no one can beat it in the programming arena, but it\u0026rsquo;s expensive. Minimax offers the best value for money, with fast enough speed and stable performance – a beneficiary of the \u0026ldquo;Shrimp Wave.\u0026rdquo; Codex is generally good, but sometimes its instruction following isn’t quite right; it keeps trying to optimize and improve performance, which I don’t need. During unit testing, I prefer verbose answers that allow me to clearly understand the cases. Kimi has a very high instruction following rate and feels most natural to use in China. GLM was normal before the holiday season, but suffered from severe lack of compute power after the holidays and was abandoned. Positioning AI’s brain capacity far exceeds that of an individual, and some module designs, such as engaging with AI to discuss solutions, can effectively expand the thinking chain and lead to more reasonable design schemes.\nSenior mentors, capable assistants.\nLocalization You can ask him if you don\u0026rsquo;t understand, you have clear development tasks that you can hand over for it to execute – essentially, you’ve brought along a very capable assistant.\nIssues Domestic models experienced widespread compute shortages upon returning after the Spring Festival, resulting in excessively slow outputs. While offering affordability and value for money, the sluggish performance significantly impacted the efficiency of interactions in real-world scenarios. The chaos surrounding Zhihuo’s issues during the Spring Festival – including accusations of betraying developers and arbitrarily changing package prices – escalated the situation dramatically, culminating in an apology released on the fifth day of the New Year. Internal processes were also somewhat disorganized, leading to a full refund of my historical packages after I requested a refund, despite the initial announcement stating only upgrades would be refunded while retaining the rights to older packages.\nThe initial lack of weekly limits with Zhihuo was a misjudgment by the platform, as now purchases include them. This demonstrates that they underestimated users’ ability to “clip coupons.” The full refunds also prevented me from continuing to “clip coupons.” GLM-4.7\u0026rsquo;s capabilities are comparable to Kimi-2.5 in terms of instruction following and adherence.\nNotably, all models currently require manual auditing.\nUnit Testing In the initial stages of project design, each module is designed to be independently testable through unit testing. During later development, it was found that large models generated their own code and then wrote unit test cases, with most scenarios passing completely. Because it wasn\u0026rsquo;t test-driven development, the purpose of unit testing shifted to post-business iteration and refactoring phases, allowing for auditing AI modifications to ensure they didn’t break existing functionality.\nPerformance Testing If no AI has been applied to some core functions, it’s likely that the coding development simply doesn\u0026rsquo;t bother with performance testing. With AI, a supplementary report is generated to see how the data looks.\nDocumentation Maintaining documentation can be a laborious task, but AI is different; it can help you maintain and synchronize updates to the latest code branches while modifying code.\nNew Ability Analysis We attempted to use Codex for service performance optimization after granting authorization. It could automatically call perf for performance analysis, but it wasn’t intelligent enough. It identified frequent memory allocation as the cause of low efficiency, but failed to understand that this was due to excessive loop iterations causing the frequent memory allocations – a logical flaw in the code involving numerous temporary variables constructed and destructed within the loop each time.\nProcess Maintenance of AI projects involves human intervention and iterative development based on modules and functions. We don’t expect AI to continuously maintain new features; each time a prompt is written, it\u0026rsquo;s akin to manually crafting a small development plan, outlining which modules are involved and where the most suitable modifications should be made.\nMany workflows circulating online haven’t been attempted in my environment, and the processes used here are relatively traditional – they feel the most intuitive to use.\n","date":"2026-03-16","language":"en","permalink":"https://ttf248.life/en/p/a-long-period-of-deep-ai-programming/","tags":["ai","programming","Process","Specification / Standard / Norm"],"title":"A long period of heavy AI programming","year":"2026"},{"categories":["Computer"],"content":"This article analyzes the bizarre phenomenon in C++ development where unordered_map::find returns an object with mismatched fields after a hit. The root cause lies in defining a static lambda within the function and using reference capture to capture local variables, leading to a dangling reference after the first call, triggering undefined behavior (UB) and polluting cache data in subsequent calls. It is recommended to address this issue by explicitly passing parameters instead of implicit capture, managing lifecycles properly, and utilizing Sanitizer tools.\nWhen building high-performance market data services or distributed caches, developers often encounter a \u0026ldquo;ghost event\u0026rdquo;: after using a Key to explicitly find an object from std::unordered_map, when reading its internal fields, it turns out to be the data of another Key. This “identity misalignment” often points to an insidious C++ trap: conflict between static lambda and lifecycle capture resulting in undefined behavior (UB).\nFailure Modes: Short Lifecycles of References \u0026ldquo;Long-Lastingly\u0026rdquo; Preserved When optimizing performance, some developers are accustomed to defining static lambda functions within a function to reduce closure creation overhead. However, when combined with implicit capture using [\u0026amp;], this can lay a dangerous trap:\nvoid UpdateCache(std::unordered_map\u0026lt;std::string, Tick\u0026gt;\u0026amp; cache, Tick\u0026amp; current_input) { // Dangerous: static extends the lambda\u0026#39;s lifetime to process level // [\u0026amp;] captures a reference to the local variable current_input on the stack static auto patch_func = [\u0026amp;](auto it) { it-\u0026gt;second.price = current_input.price; // The reference here is invalid at the second execution }; auto it = cache.find(current_input.symbol); if (it != cache.end()) { patch_func(it); } } Technical Principle Analysis Lifecycle Misalignment: The static variable is initialized only once when the program reaches that line for the first time and persists throughout the entire process execution. This means the reference captured within patch_func to current_input is permanently fixed at the memory address in the stack frame at the time of its initial call. Dangling Reference: After the first UpdateCache executes, the original stack frame is destroyed. When patch_func is called a second time, it continues to read and write to that now-invalidated address. Hidden Memory Corruption: Due to the reuse of stack space, this address may contain new business data. Writing to it appears to be updating the value for the current Key, but in reality, it\u0026rsquo;s performing an illegal write operation on a \u0026ldquo;random\u0026rdquo; area of memory. This explains why find’s Key is A, and the read Value field is B. Solutions and Engineering Practices 1. Eliminate Implicit Capture, Use Explicit Parameters The most reliable approach is to keep the Lambda “stateless” (Stateless), passing all dependent objects through parameters.\n// Recommended practice: Stateless lambda, explicitly pass src auto patch = [](auto it, const Tick\u0026amp; src) { it-\u0026gt;second.price = src.price; }; patch(it, current_input); 2. Avoid using static to decorate closures Inside a function, unless the closure does not capture any local variables, do not use static. Modern compilers are very good at optimizing non-static lambdas, and the performance boost from blindly using static is negligible, but it brings significant security risks.\n3. Reinforcement Consistency Verification and Dynamic Detection Assertion Checking: After updating the logic, add assert(it-\u0026gt;first == it-\u0026gt;second.symbol) to intercept “identity inconsistency” issues during development. Tool Assistance: Enable ASan (AddressSanitizer) and UBSan (UndefinedBehaviorSanitizer) in the test environment. These tools can accurately capture behavior of accessing invalid stack memory and immediately report errors. Conclusion \u0026ldquo;Table lookup errors\u0026rdquo; in C++ are often just symptoms, the underlying truth is usually the failure of memory management contracts. Correct key lookup does not necessarily mean the value is still valid. When dealing with long-lived objects (such as static, global variables, and long-running callbacks), you must always be vigilant about whether the references they capture have been invalidated by stack frame destruction (“blown away”).\n","date":"2026-03-16","language":"en","permalink":"https://ttf248.life/en/p/deep-dive-into-memory-corruption-and-cache-pollution-caused-by-static-lambdas-in-c/","tags":["AI Inspiration Hub","c++","troubleshooting","lambda"],"title":"Deep Dive: Memory Corruption and Cache Pollution in C++ with Static Lambdas","year":"2026"},{"categories":["Investment"],"content":"Worrying Mindset: Holding onto stocks persistently, observing calmly like a Buddhist, and paying attention to the fulfillment of “ecosystem premium.”\nI. Market Overview: From 2025’s “Mania” to 2026’s “Consolidation” 2025 was a strong year for the Hong Kong stock market, with the Hang Seng Tech Index rising by 23.45% throughout the year – its best performance since inception. However, as we entered January 2026, the market transitioned into a clear pattern of “two upward trends and one pullback.”\nXiaomi stabilized above the HK$40 mark in November last year primarily due to better-than-expected Q3 earnings and strong buybacks by Lei Jun and the company. However, recent share prices have experienced a certain degree of retraction, currently fluctuating between 35-38 HKD, with the market digesting two key factors: the redesign period for the SU7 and sales overruns for the Ultra high-end vehicle model.\nII. Xiaomi’s Recent Volatility: SU7 Ultra\u0026rsquo;s “High Price, Few Buyers” and YU7’s “Cornerstone” Product Line Disconnect: Recent data shows that Xiaomi SU7 Ultra’s sales plummeted to double digits (45 units) in December 2025. This demonstrates that ultra-luxury models (over $500k) are more a symbol of the brand than a sales foundation. SU7 Refinement Pressure: Currently, SU7 is in a refinement transition period, with the next generation expected to debut in April. This “new vs. old replacement” has resulted in approximately a 22% month-over-month decline in January deliveries and consequently put pressure on the stock price. YU7’s Ecosystem Premium: Fortunately, the SUV model YU7 (Xiaomi\u0026rsquo;s second car) performed exceptionally stably, consistently topping the mid-to-large SUV sales charts for several months. This confirms my previous notes regarding “ecosystem premium” – MIUI members’ conversion rate for family vehicles (SUVs) is significantly higher than that for pure performance sedans. The \u0026ldquo;Floor Price\u0026rdquo; Support from Repurchase: Xiaomi recently repurchased 4.2 million shares for a total investment of RMB 1.5 billion. This “rising stock price, immediate buyback” strategy has established a psychological “leftmost safety margin” for the stock price. III. Horizontal Comparison: The “Collective Cooling” of the New Energy Vehicle Sector Looking at the comparison, Xiaomi’s 39,000 deliveries in January performed reasonably well during a period of industry decline (January is typically a seasonal low):\nBYD: January new energy vehicle sales reached 210,000 units, with year-on-year and month-over-month declines of approximately 30%. XIAO \u0026amp; LI (Weilai): Similarly facing delivery fluctuations, particularly in the pure electric sedan market, due to excessive competition, companies were resorting to price cuts to maintain market share. Comparison Conclusion: Xiaomi’s volatility was primarily an “internal” product rhythm adjustment, rather than a fundamental collapse. Compared to other automakers relying solely on price wars, Xiaomi leveraged its “human-vehicle-home ecosystem” moat thanks to its smartphone+car+appliances business model, resulting in a shallower stock decline compared to pure automotive stocks. IV. Vertical Comparison: HSTECH Index (HSTECH) Index Performance: The HSTECH index rose 3.67% in January, with the overall price center rising. Xiaomi vs. Index: Xiaomi has lagged slightly behind the broader market over the past two weeks. This is due to investment banks like Morgan Stanley lowering their target prices (to HKD 38) based on concerns that it will take time for mobile phone gross margins to recover. Strategic Reflection: As I wrote in November last year, liquidity in Hong Kong stocks remains crucial. During a broad market rally, Xiaomi, as a blue chip stock, is constrained by profit-taking; but during a market correction, its buybacks and cash flow serve as the best defensive position. V. Summary and Future Operations: Wait for the “April Showers” Holding Logic: Given that the 2026 sales target is set at 550,000 units (as just announced by Lei), the current decline is more like a \u0026ldquo;dull knife cutting flesh\u0026rdquo; bearish correction, purging short-term speculators. Focus Points: The pricing and configuration of the revamped SU7 in April, as well as whether the YU7 can continue to take over. Action: Still no action, lying flat. Selling out at this position (35-38 range) is unnecessary; adding to positions hasn\u0026rsquo;t yet reached my “absolute safe haven” level. ","date":"2026-02-06","language":"en","permalink":"https://ttf248.life/en/p/xiaomis-new-and-old-replacement-and-defensive-battle-with-the-electric-vehicle-sector/","tags":["AI Inspiration Hub","Xiaomi","Hong Kong Stocks","New Energy Vehicles","investment","SU7","Hang Seng TECH Index","Product Lifecycle"],"title":"XiaoMi’s “New and Old Replacement” and defensive battle with the electric vehicle sector","year":"2026"},{"categories":["Computer"],"content":"In internet system stress testing, we frequently encounter two tools with vastly different styles: one is extremely lightweight, pursuing extreme throughput—wrk; the other is feature-rich and simulates real business flows—JMeter.\nPrompt: Outline the core ideas and write a科普 article (explanatory article): HTTP stress testing tools, wrk vs JMeter – what are the differences? What I know, wrk tends to use one thread with multiple connections for testing, while JMeter primarily employs a short connection mode, which can be adjusted via configuration to enable long polling.\nCore Architecture: Multi-Threaded vs. Event-Driven This is the fundamental reason for the performance gap between them.\n1. JMeter: The “One Person, One Job” (Thread-per-Request) Model JMeter is developed in Java and utilizes the classic multi-threaded model.\nLogic: Each concurrent user (Virtual User) corresponds to a physical thread within the JVM. Cost: Threads are an expensive resource. As concurrency increases to several thousand, context switching and memory consumption will significantly slow down the test machine itself, leading to the phenomenon of “the load generator collapsing first before it can actually crush the server.” 2. wrk: The Modern “Multi-Hand” System (Event-driven) wrk is written in C and its core logic relies on Redis’s ae event loop framework (utilizing epoll/kqueue).\nLogic: wrk doesn\u0026rsquo;t create a thread for each connection. It only starts a small number of threads (typically equal to the number of your CPU cores), and each thread manages thousands upon thousands of connections simultaneously through non-blocking I/O. Advantages: This is what you referred to as “one thread, multiple connections.” It drastically reduces thread switching overhead, allowing single machines to achieve millions of RPS (Requests Per Second). Connection Models: Skip Connections vs. Dense Connections Regarding the connection patterns you mentioned, here’s a deeper level of detail:\n1. JMeter’s “Heavy” and “Light” JMeter defaults to simulating real user behavior.\nShort Connection Bias: In default configurations, some older versions or specific configurations of JMeter may not actively reuse connections, leading to numerous TCP handshakes. Tunability: You can enable long connection by checking the “KeepAlive” option in the HTTP Request or adjusting connection pool parameters in the user.properties file. However, even with long connections, limited by its thread model, it struggles to maintain tens of thousands of concurrent long connections. 2. wrk’s “Speed” and “Power” wrk was designed with the intention of testing the performance of HTTP Keep-Alive.\nLong Connection Strategy: wrk establishes a specified number of connections at the start of the test (-c parameter) and attempts to reuse these connections throughout the entire test. Application Scenarios: It’s particularly well-suited for testing the throughput limits of Nginx, gateways (Gateways), or high-concurrency APIs under extreme long connection pressure. Deep Comparison Table Feature wrk Apache JMeter Development Language C/Lua (Scripting) Java (GUI) Deep Comparison Table Feature wrk Apache JMeter Concurrency Model Event Driven (epoll/kqueue) Multi-threaded (Thread-per-User) Deep Comparison Table Feature wrk Apache JMeter Resource Consumption Extremely Low, Huge Throughput on a Single Machine Higher, Requires Distributed Cluster for High Concurrency Deep Comparison Table Feature wrk Apache JMeter Business Complexity Low, primarily for single URLs High, supports multi-step scripts, assertions, and extractors Deep Comparison Table Feature wrk Apache JMeter Test Scenarios Static API Load Testing, Capacity Assessment Complex Business Link Simulations, Functional Regression Testing Deep Comparison Table Feature wrk Apache JMeter Reporting Capabilities Only text summaries Extremely rich, supports various charts and HTML reports Summary: Which one should I choose? These two tools are complementary rather than substitutional relationships:\nSelect Work Want to test the maximum throughput (RPS) of the server. The testing object is a single API or static resource. Aim to push the largest traffic using the fewest test servers. Familiar with Lua scripting to customize requests. Choose JMeter Requires simulating complex business processes (such as: Login -\u0026gt; Search Products -\u0026gt; Place Order -\u0026gt; Payment). Needs a visual interface to observe response time distributions, error rates, and other detailed metrics. Testing requires handling dynamic parameters (such as extracting a Token from the previous interface and passing it to the next interface). The team is more accustomed to using graphical tools rather than command-line interfaces. ","date":"2025-12-19","language":"en","permalink":"https://ttf248.life/en/p/wrk-vs-jmeter-deep-benchmarking/","tags":["AI Inspiration Hub","jmeter","stress-testing","wrk"],"title":"wrk vs. JMeter deep benchmarking","year":"2025"},{"categories":["Diary Ramblings"],"content":"I’ve gotten used to buying investments on Alipay, and I plan to handle my personal pension all in one place, investing entirely in broad market indices. After a lot of trouble finding customer service and getting the account properly linked, I was completely blindsided: Alipay only showed an account balance, and I couldn\u0026rsquo;t see any details of the funds I’d previously purchased. The data synchronization is really lacking! Is this some kind of bug?\nMessy Analysis The cooperation between Alipay and Bank of China is not deep enough, leading to data synchronization issues. Banks deliberately refuse to provide Alipay with the corresponding data. The Alipay integration personnel are not familiar with the business, causing the problems encountered. Truth I couldn’t figure out what was going on, and the customer service representative didn\u0026rsquo;t understand my problem either, saying they would get back to me later. I had a little extra cash in my account, so I looked into buying some funds, comparing them, and also checking if the bank’s sales fees were the same as Alipay’s fees.\nThe costs associated with purchasing funds are primarily comprised of two parts: transaction fees (including subscription fees and redemption fees, deducted directly when buying and selling) and holding fees (including management fees, custodial fees, and sales service fees, automatically deducted daily from the fund\u0026rsquo;s net asset value). A distributor platform (like Alipay) acts as an intermediary, its revenue primarily coming from commissions on subscription fees, sales service fees for Class C funds, and a “customer maintenance fee” (commonly known as trail commission) returned to it in proportion from the fund company’s management fees – particularly relevant in products with a universal coverage nature like personal pensions, where management fees are halved and subscription fees are waived, resulting in a relatively lower share of profits for the distributor platform.\nAfter searching around, I found that Hua Xia Fund\u0026rsquo;s fees were the lowest. Referencing historical articles: Domestic Ultra-Large ETF Batch Price Cuts\nSuddenly, my mind clicked – I purchased the fund through a bank channel, not Alipay. Since Alipay didn’t earn corresponding money, it wouldn\u0026rsquo;t show me the data.\nThis fleeting “truth,” though slightly mocking of commercial logic, actually reveals the reality of financial data synchronization: “Whoever sells, manages, and serves”.\nAt the underlying logic of the financial system, distributor platforms don’t have fully interconnected account systems. Even if you link your personal pension funds account in Alipay to a Bank of China personal banking account, Alipay plays more like a “payment and information query portal” rather than an “asset manager.” The fund purchase confirmation and holding details recorded in the Bank of China\u0026rsquo;s distributor system are not directly accessible by Alipay; it lacks permission to call up these private holdings details across banks. In other words, this isn’t just about “not making money so they don’t show you the data,” but also about the technical barriers brought on by compliance and data ownership.\nUnexpected Comparison While waiting for the customer service representative to call back, I compared the fees on both sides, and it confirmed my previous theory:\nFee Consistency: The Y class shares specifically designated for individual retirement accounts were indeed “fee stars.” Regardless of whether it was at Bank of China or Alipay, their management fees and custodial fees were essentially 50% off the original A/C class shares, with subscription fees almost always being 0% or 10% off.\nChannel Differences: Although the fees were consistent, the “feel” on both sides was completely different. The bank tended to promote its own wealth management products or deeply collaborated insurance policies, while Alipay’s interface leaned more towards big data index recommendations.\nConclusion It seems the only way to enjoy Alipay’s smooth holding analysis and profit/loss curve is to follow the \u0026ldquo;buy where, see where\u0026rdquo; approach. If you\u0026rsquo;re striving for a truly “one-stop” experience, you might have to reluctantly redeem your existing holdings (if redemption fees aren’t involved) and re-invest directly within Alipay.\nAfter all the twists and turns, I finally realized: The \u0026ldquo;interconnectivity\u0026rdquo; of financial software is still a long road ahead. Since they refuse to cooperate, I can only work harder myself – with my left hand managing deposits with Bank of China and my right hand investing in new funds through Alipay. After all, it’s more important to keep a close eye on your own wallet than a small difference in fees.\n","date":"2025-12-18","language":"en","permalink":"https://ttf248.life/en/p/the-considerations-surrounding-alipays-personal-pension-binding/","tags":["Alipay","Personal Pension","Platform","Benefit"],"title":"The considerations surrounding Alipay’s personal pension binding.","year":"2025"},{"categories":["Repost / Share"],"content":"Personal Note: Layered investment products, underlying assets that ordinary investors can’t understand; those behind it know they won\u0026rsquo;t cheat the poor, but will relentlessly exploit the poor, and are likely to accept cheating the middle class.\nIt’s December 2025, and a large number of investors in Zhejiang Province are still blocking doors to seek redress due to investment losses – this event has been particularly hot in the financial investment field, and we can find several keywords: state-owned background, low yields, civil servant/teacher as investment subjects (minimum purchase of 200,000 RMB, KYC of 400,000 RMB), etc. This proves that no matter how sophisticated a financial tool is or how strong its backing, which groups are buying it has evolved into an “othering” risk. If you only see these keywords, it means your understanding of the full picture is still too shallow. There’s a lot to dig into regarding this actual loss – it\u0026rsquo;s worth investigating deeply.\nBorrowing from Yourself and Securing Financing with Receivables The financing, collateralized, and issuing platforms are interconnected entities within the “Xiangyuan” system – a group of companies that can be understood as essentially borrowing money from oneself. Subsequently, through controlled state-owned financial platforms, receivables are used as collateral to access market financing, further increasing leverage—and it’s all self-dealing. The sole objective is to inject fresh blood from the outside. As the saying goes, “If all witnesses, circumstantial evidence, and sponsoring/cooperating entities are my people, how can I argue with them?”\nRegarding the AA+ credit rating presented to investors, it appears more impressive than some sovereign debt ratings of entire economies, a solid investment-grade financial rating. However, when compared closely, it’s no match for the credibility of Evergrande and Greentown Property before their defaults; even AAA ratings carry significant weight. Furthermore, like Wanke, which survived after the cessation of support from Sino-Iron Group, continues to maintain an AAA credit rating despite ongoing assessments by domestic rating agencies in China, demonstrates a blatant disregard for personal credit.\nSuch a shockingly flawed product was able to successfully issue to investors, with seamless access at every stage and a high credit rating. Are the issuing institutions fools? Not really; this involves the second distribution of profits.\nExtremely High Intermediation Costs If any bizarre operations occur in the financial sector, the true interest allocation relationships are often hidden behind empty rhetoric. Investors only receive 4% returns, while the issuer’s overall financing costs reach 8-9%, and the 4-5% commission in between is a share of profits across various stages of issuance – extremely exaggerated. This is a fundamental characteristic of instability within the financial system: interests take precedence over business capabilities, and everyone shares in investor money.\nThis is why investors see low interest rates as a source and, considering risk-free returns of around 2.5% in 2023 and 2024, the risk premium is only 1.5%, compounded by state-owned enterprise (SOE) backing – it’s not really considered a high-risk asset unless you study the underlying assets and equity structures. Instead, this low return has become the primary reason for being exploited, as 6%, 8%, or 10% returns are difficult to achieve given the risks seen in concentrated defaults in previous years, which has led investors to be wary of high-yield investments. Now, low returns aren’t low risk; it\u0026rsquo;s simply due to excessively high intermediary commissions. For the actual enterprise end, willing to offer 8-9% as financing costs isn’t a generous act – it’s purely for investor principal.\nThis risk is incomprehensible to outsiders, but does SOE shareholders not understand it? Don’t underestimate the ability of these people to seek profit and avoid loss. What happens if there\u0026rsquo;s a default? Of course, they quietly exit before the default occurs.\nState-Owned Enterprise Shell Game This is the third magical aspect. Equity changes were quietly executed, and there was no sufficient risk disclosure or notification provided to investors. When buying, it was backed by state ownership; when maturity arrived, it turned out to be a private enterprise. The result was that everyone saw clarifying statements, vehement denials of any connection, and investors were left bewildered. Aside from the nearly empty shell, there was hardly anyone in charge.\nPreviously known as the Zhejiang Financial Asset Trading Center, a place with clear gold exchange characteristics, after the one-page document canceled the Zhejiang Jin center’s financial license last November, it was renamed Zhejiang Zhijin Asset Operation Co., Ltd. this year and truly implemented a normal investment institution without official backing. Although it cannot issue new wealth management products, it must bear absolute redemption obligations for the preceding products, and it has early-planned exits – essentially playing a clever “golden cicada shedding its skin.” Only investors were caught in the trap of state ownership backing.\nReal Estate Downturn Cycle and Risk Spillover Regarding whether it’s finance or the risk spillover from real estate, China\u0026rsquo;s financial system, including banks, has benefited too much from profits in real estate over the past decade. It was easy to make money with a 10% funding cost – as long as you could secure projects and quickly turn over sales, property developers didn’t care about costs. However, during a real estate downturn cycle, property developers go bankrupt one after another, and the true risk spillover is that you simply don\u0026rsquo;t know how much of the underlying assets in the financial products you hold are related to real estate investments. It’s like patching up one wall with another, ultimately leading to collapse.\nFor example, direct defaults by homebuyers, defaults by high-net-worth group trusts, and even financial products issued directly by these property developers – whenever the underlying assets are related to real estate investment, they either default outright or evolve into a “parasite” situation, relying on debt to sustain themselves until their liquidity runs out, at which point they inevitably collapse. It’s simply a matter of who is the last link in the chain of drumming – for example, ZJCC Securities\u0026rsquo; main products are almost entirely based on Shaanxi Xiangyuan Group’s real estate projects, with this proportion reaching over 90% after 2023. Or, it involves debt transactions between related companies. The core issue is that houses aren’t selling, and there isn’t new blood coming in. These assets weren\u0026rsquo;t the first to collapse, and they certainly won’t be the last.\nWhy Did State-Owned Assets Fall into the Trap? Let\u0026rsquo;s dig deeper – why did the wealth management products behind Zhejiang Jinrong Center still meticulously select specific wealth size groups, namely only open to members, and idle funds were also above 200k-400k? This demographic perfectly overlaps with local civil servants and teachers – a truly ridiculous spectacle backed by state-owned assets, deceiving both locals and Chinese people. What allowed a regional gold exchange center to become a financing tool for Xiangyuan Group, akin to the absurdity of Evergrande and Shengjing Bank, requires further investigation.\nThis leads us back to the 2018 breach by Huaxin Group, which itself is a much larger financial story involving defaulted products exceeding one trillion yuan. While our financial system lags behind, we certainly aren\u0026rsquo;t lacking in this ability to innovate financially and make money. Of course, we’re focusing solely on the 3.7 billion defaulted products related to Zhejiang Jinrong Center – a pot that can’t be easily discarded; it was almost entirely state-owned. And precisely because of this risk loss, Zhejiang Jinrong Center urgently sought high-yield assets and capital supplementation, leading to important connections with Xiangyuan Group, after all, we couldn\u0026rsquo;t rely on the current real estate market fervor to disprove the fact that Zhejiang Jinrong Center’s decision-makers, at the time, were eager to invest in highly sought-after property giants.\nFor example, Shunfu Steel Group’s 6 billion investment in Vanke – others could only get on this line by investing money; in 2018, real estate was still at its peak. Zhejiang Jinrong Center didn\u0026rsquo;t spend any money and, instead, injected 120 million yuan into the stockholding enterprise in 2019, engaging in transactions with demons, laying the groundwork for future loss of control. When you encounter a small problem and want to put a larger lid on it, that’s often the first step towards losing control – because of the 3.7 billion default, introducing property giants and pursuing seemingly high-yield projects, Zhejiang Jinrong Center was gradually led into the abyss. It\u0026rsquo;s also worth admiring the level of the referee; they already successfully shed their skin. Regarding the banner of Zhejiang Jinrong Center being canceled in November last year – it has no bearing now, forming a perfect closed loop with the opening of the article. As for pursuing legal recourse, wait and see!\nConcluding Remarks:\nMarket returns themselves are not constant. You shouldn\u0026rsquo;t use past average returns as a reference for current risk; for example, the risk-free yield suggestions for the previous few years’ columns were around 3% for large savings bonds, while now it can only provide 1.5%. And future judgments will be more complex – low yields don’t necessarily mean low risk, just like the packaging of these defaulted products. The combination of “ordinary people + investment” in this cyclical environment is better to focus on risk and principal rather than returns; absolutely do not blindly gamble. Pay attention to underlying assets, genuine credit backing, diversify investments, even if you think you have earlier information and stable redemption guarantees within the system – don’t forget to prioritize basic living expenses and future fixed-cost savings in low-yield, low-risk or almost risk-free places; losing is better than winning. Tiered allocation and diversified allocation are the only choices for ordinary people in this environment.\n","date":"2025-12-18","language":"en","permalink":"https://ttf248.life/en/p/zhejiang-jin-investment-fraud-a-poor-scam-and-out-of-control-zhejiang-jin/","tags":["financial","State-owned Enterprise (SOE) / State-Owned Capital Group (SOCG)","Financial Planning","Fail to meet expectations / Surprise (in a negative way)"],"title":"Zhejiang Jin Securities Financial Crisis – A Poor Scam and Out-of-Control Zhejiang Jin","year":"2025"},{"categories":["Computer"],"content":"Background introduction: Tencent’s CNB platform only supports WeChat login, with no conventional email account method, leading to several guys in the group complaining about it daily – it\u0026rsquo;s getting annoying. The Tencent product manager came up with a compromise solution: support Passkey login.\nEvery day, we are repeating a dangerous action: entering passwords. Despite our complex rules (uppercase, special symbols, numbers), data breaches, phishing attacks, and the frustration of “forgotten password” issues continue to trouble everyone.\nTech giants (Apple, Google, Microsoft) along with the FIDO Alliance have provided the ultimate solution: Passkey (Passcode Key). It’s not just a “replacement” for passwords; it completely “eliminates” them.\nThe login process has shifted from verifying passwords to verifying the current device\u0026rsquo;s trustworthiness.\nExplain how Passkey works, how it can be used for login management, collect relevant content, and output an article for internet publication\nWhat is a Passkey? Simply put, a Passkey is a digital credential stored on your device. It replaces the traditional “username + password.” When you log into websites that support Passkeys (such as Google, GitHub, Adobe), you don’t need to enter any characters – you just verify using facial recognition (Face ID), fingerprint (Touch ID), or device PIN, and you’re instantly logged in.\nKey Difference: A password is a string of characters you remember (easily stolen, guessed, or forgotten); a Passkey is an asset you own – an encrypted key stored within the device hardware.\nHow Passkeys Work: Asymmetric Encryption Passkey is built on the WebAuthn standard and the FIDO2 protocol. To understand it, we need to understand Public Key Cryptography.\nImagine a passkey as a pair of “keys” and “locks”:\nPrivate Key:\nWhere is it stored? Securely stored on your device (such as iPhone’s secure enclave, computer’s TPM module, or password manager). Characteristics: Extremely sensitive, never sent to the server, and doesn\u0026rsquo;t leave your device. Function: It’s your “digital signature pen.” Public Key:\nWhere is it stored? Uploaded and stored on the website/app’s server. Characteristics: Publicly visible, not sensitive. Function: It\u0026rsquo;s used to verify your signature – like a “money checker.” Handshake Details (The Process) When you log in using a Passkey, a sophisticated “challenge-response” mechanism takes place:\nInitiate Login: You click \u0026ldquo;Login,\u0026rdquo; and the website server sends a random mathematical problem (Challenge) to your device.\nLocal Verification: Your phone/computer displays a prompt requesting you unlock it using biometrics (face recognition/fingerprint).\nNote: This step is solely for authorizing the device to use its private key; biometric data itself is not uploaded. Digital Signature: Upon successful unlocking, the device uses its private key to “sign” the mathematical problem and sends the signature result back to the server.\nServer Verification: The server uses the public key you previously provided to verify this signature. If it’s valid, the server confirms that \u0026ldquo;the person who has validated the key indeed holds the private key,\u0026rdquo; thereby allowing login.\nWhy Passkeys Are Significantly More Secure Than Passwords? Passkeys address the three major pain points of traditional passwords:\nCompletely Immune to “Phishing Attacks” (Anti-Phishing) This is the most robust feature of Passkey. The Passkey protocol enforces the inclusion of Origin Binding.\nScenario: A hacker creates a fake g00gle.com to trick you into logging in. Result: Your browser and system will detect that the current domain does not match the domain registered for your Passkey, google.com, and refuse to initiate authentication. You don’t even have a chance to “fall for it” and enter your password. Server Leak Was Useless Even if hackers breached Google’s servers and stole all the databases, they would only have obtained the public key.\nThe public key cannot be used to derive the private key. Holding the public key is like holding a lock; but without the key (the private key which resides on your phone), the hacker couldn\u0026rsquo;t access your account.\nNo “Weak Passwords” Users no longer need to set weak passwords like “123456,” as the keys are strong, encrypted data generated by algorithms.\nHow Passkeys Are Changing “Login Management”? Previously, we relied on tools like 1Password, LastPass, or Chrome browser to store lengthy strings of characters. Now, login management is undergoing a fundamental shift.\nCross-Device Sync (Passkey Sync) Early hardware keys (such as YubiKeys) are easily lost. Current Passkeys support cloud synchronization:\nApple Ecosystem: Through iCloud Keychain sync. Passkeys you create on your iPhone are automatically available on your Mac. Google Ecosystem: Through Google Password Manager sync for Android and Chrome. Third-Party Management: Tools like 1Password, Dashlane, etc., fully support Passkey. This means you can seamlessly sign in across ecosystems (using a Passkey stored in your iPhone on a Windows computer). Cross-Device Login (via QR Code) What do you do if you want to log in to a PC at an internet cafe (Windows) but your Passkey is on your iPhone?\nSelect “Login via Another Device” on the web page. A QR code (FIDO Cross-Device Flow) appears on the screen. Use your iPhone’s camera to scan the QR code. Your phone establishes a Near Field Connection with the computer via Bluetooth (to verify you are present) and performs biometric authentication. Login is successful on the PC. From “Managing Secrets” to “Managing Trust” Future login management will no longer be about checking individual plaintext passwords, but rather managing trusted devices.\nYou can see: “My GitHub account is bound to my iPhone and MacBook.”\nIf your phone is lost or stolen, you simply revoke the device’s public key access rights from the server (or cloud account).\nTable Comparison: Password vs. Passkey Dimension Traditional Password Passkey Cognitive Burden High (Requires memorizing complex characters) None (No need to memorize) Table Comparison: Passwords vs. Passkeys Dimension Traditional Passwords Passkeys Phishing Risk High (Susceptible to being tricked into entering) Zero (Domain Binding) Table Comparison: Passwords vs. Passkeys Dimension Traditional Passwords Passkeys Server Leakage Dangerous (Requires Brute-Force / Password Reset) Secure (Key Leakage Has No Impact) Table Comparison: Password vs. Passkey Dimension Traditional Password Passkey Login Experience Slow (typing or copy-pasting) Fast (one-tap biometric verification) Table Comparison: Password vs. Passkey Dimension Traditional Password Passkey Reliance Relies on memory or a password manager Relies on device (phone/computer) Current Challenges and Future Despite the great potential of Passkeys, widespread adoption still requires time:\nPlatform Barriers: While standards are unified, Apple, Google, and Microsoft offer the smoothest experiences within their respective ecosystems. Cross-ecosystem transitions (such as an Android phone paired with an iPad) are feasible but still involve some friction. Device Dependency: Losing all trusted devices without a cloud backup can make account recovery difficult (typically requiring a backup recovery code). Legacy System Compatibility: Many older websites and internal corporate networks do not yet support the WebAuthn standard. Summary Passkey isn’t an upgrade to passwords; it\u0026rsquo;s a fundamental reconstruction of internet identity verification. It leverages modern device biometric capabilities and public-key cryptography, elevating security to a financial level while simplifying the user experience to the extreme.\nFor average users, enabling Passkeys on supported platforms (Google, Apple, Microsoft, Amazon, etc.) is the highest return on investment for improving personal digital security.\n","date":"2025-12-04","language":"en","permalink":"https://ttf248.life/en/p/detailed-explanation-of-how-passkeys-work-and-their-future/","tags":["AI Inspiration Hub","passkey","Password"],"title":"Detailed Explanation of How Passkeys Work and Their Future","year":"2025"},{"categories":["Computer"],"content":"Recently mingling in various programming large model communication circles, the most complained about thing is model degradation.\nModels deployed on local desktop computers are quantized models, essentially downgraded versions. With “vibe coding” so popular, could it be that the content output by current large models is the most valuable product – code? This round of prompts received one optimization, which coincided with model degradation, and the large model’s solution was to optimize the prompt, with more detailed task planning and clearer output requirements.\nAddressing this issue, provide suitable prompts: Many large factories have now provided large model services, and users sometimes feedback that models are degrading; from a professional perspective, considering parameter precision and inference cost, write an article;科普文 (科普 article), don’t be too long. Optimized version:\nYou are a senior AI industry technical column writer. Your goal is to write a professional but accessible Chinese科普 article for general readers. Please step by step think and write: 1. Outline drafting: First, please draft a clear three-paragraph article structure outline (e.g., Introduction, Precision Analysis, Cost \u0026amp; Architecture Analysis, Conclusion). 2. Content focus: The article must deeply and clearly explain the phenomenon of “model degradation” reported by users, and the core analysis points must revolve around **parameter precision (quantization)** and **inference operational cost**. 3. Word count and format: The final article length must be controlled at 600 words or less. Please use clear `##` headings to divide paragraphs, and use **bold** to emphasize key professional terms (such as: quantization, MoE, FP16). Introduction To ensure clarity and align with a科普 (explanatory) approach, I’ve established the following structure:\nIntroduction: Confirming user perception of reality and introducing the core conflict – in the context of rapidly growing user scales, service providers must balance “intellectual peak” with “service availability.” Precision Analysis (Core Point 1): Explaining the relationship between parameters and precision. By comparing FP16 with quantization (INT8/INT4), we use the analogy of \u0026ldquo;image compression\u0026rdquo; to illustrate why a drop in precision leads to degraded logic. Cost \u0026amp; Architecture (Core Point 2): Analyzing inference cost. We introduce the MoE architecture and sparse activation mechanisms, explaining how models “slack off” to save money and accelerate performance. Conclusion: Summarizing that this \u0026ldquo;degradation of intelligence\u0026rdquo; is an inevitable path for commercialization and widespread adoption (the impossibility triangle). Article Body Recently, many users have reported that large models seem less “intelligent” than before: logic has become simpler, instruction following has deteriorated, and even empty talk (“car轱辘话”) has emerged. This isn’t entirely an illusion. From a technical perspective, this “decline in intelligence” phenomenon is often a technological compromise made by major companies when facing massive user bases, balancing inference costs with service speed.\nPrecision “Shrinking”: The Cost of 4K to 720P The “intelligence” of large models is primarily stored in trillions of parameters. Ideally, these parameters run in high-precision FP16 (16-bit floating-point) format, capturing extremely subtle semantic differences. However, this high precision means significant memory usage and slow computation speeds.\nTo allow hundreds of millions of users to use the service smoothly, service providers generally adopt quantization technology. This is a technique that compresses parameter precision from FP16 to INT8 or even INT4.\nThis is like compressing a 4K high-definition movie into a 720P stream: although the plot (overall logic) hasn\u0026rsquo;t changed, the visual details (small logical associations, complex instruction execution details) are lost. This “lossy compression” directly leads to a decline in model performance when handling complex tasks, giving users the sensation of “getting dumber.”\nCost Pressure: Letting the Brain “Partially Rest” Besides accuracy, the operational cost of inference is another key factor. Every time you ask an AI a question, servers perform massive matrix calculations, leading to exorbitant electricity bills and hardware wear and tear.\nTo reduce costs, modern large models often adopt MoE (Mixture of Experts) architecture. Unlike traditional models that activate all neurons every time, MoE employs a sparse activation strategy: for your question, the system only activates a small subset of relevant “expert” networks, while the rest remain dormant.\nAlthough this significantly reduces computational load, if the routing algorithm (Router) distributes your complex mathematical problems to “literary experts” for load balancing or power saving, or sacrifices the number of expert calls in favor of speed, the output quality will inevitably fluctuate and decline.\nConclusion Therefore, what is being referred to as “diminishment” – in essence, is the inevitable pain associated with AI’s transition from the laboratory to large-scale commercialization. The restraint on parameter precision and the efficient design of model architecture are what manufacturers seek to balance between “absolute intelligence” and “cost efficiency,” allowing everyone to affordably use AI.\n","date":"2025-12-04","language":"en","permalink":"https://ttf248.life/en/p/is-ai-getting-dumber-uncovering-the-game-between-parameter-precision-and-inference-costs/","tags":["AI Inspiration Hub","ai","Large Model","Accuracy","Quantization"],"title":"Is AI Getting “Dumber”? Uncovering the Game Between Parameter Accuracy and Inference Costs","year":"2025"},{"categories":["Computer"],"content":"“Previously, it was mentioned that when logging into Gemini Cli, you needed to configure the Google Cloud Project ID. This is already wrong – if it’s a personal account, there shouldn\u0026rsquo;t be this restriction. The fact that this restriction exists indicates that you’ve started triggering Google’s security system and are being identified as not being a personal account.\nIt’s frustrating; after using it for half a month and getting used to it, now I have to return to the embrace of cc + domestic models.”\nOverview You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license. Please contact your administrator to request a license. (#3501)\nTroubleshooting It was still accessible and usable during the day, but stopped working when I got home in the evening, initially suspected a bug caused by an update. Switching to an older version didn’t fix it, so I raised an issue on GitHub. The system automatically pulled a large number of similar issues for me. https://github.com/google-gemini/gemini-cli/issues/14447\nAfter reviewing the related information, I realized something was wrong: the Gemini CLI website hadn’t been updated, and the documentation on GitHub mentioned that if you need to log in with a Google Cloud ID, you are being identified as an enterprise user, not a personal developer.\nI continued searching, and there were many similar cases in the community: [https://discuss.google.dev/t/is-gemini-code-assist-incorrectly-identifying-my-personal-account-as-an-enterprise-account/287654/2], which also reported issues with usage after login.\nSolution M2 has seen a lot of updates in the past half month, supported by MCP for online search and image recognition. Try it out first, and if it doesn\u0026rsquo;t work later, consider finding a way to pay Google for the basic paid version. My existing US dollar credit card may not be successful in payment; last time I tried paying ChatGPT failed.\n","date":"2025-12-03","language":"en","permalink":"https://ttf248.life/en/p/ultimately-its-returning-to-domestic-models/","tags":["ai","Large Model","Google","gemini"],"title":"Ultimately, it’s returning to domestic models.","year":"2025"},{"categories":["The Seven Seconds of a Fish"],"content":"Real estate giants’ top performers – Ever, also failed to hold up, continuous blood transfusions for Sunshine Steel, ultimately couldn\u0026rsquo;t plug the ever-growing hole. Linkage news: Six major banks completely halt sales of 5-year large savings bonds for five years.\nAnalyze China’s real estate defaults, compile timelines and key events, Evergrande, Greentown, Vanke, and other unlisted property developers I may not know about.\nThis overview is based on the latest perspective as of December 2025, covering the complete timeline from the initial crisis to the current period (end of 2025).\nCurrently, the landscape of China’s real estate industry can be summarized as: “Evergrande has liquidated, Hengda has just recovered, Greentown is still struggling, and Vanke is a golden body.”\nTriggering Crisis: The Three Red Lines (2020) The starting point was the regulatory authorities setting hard-line targets to curb real estate developers’ unrestrained expansion.\nTime: August 2020 Policy: “Three Red Lines” (asset-liability ratio exceeding 70% after excluding prepaid receipts, net debt ratio exceeding 100%, and short-term cash ratio less than 1) Consequences: Real estate developers could no longer use \u0026ldquo;borrowing and repaying\u0026rdquo; to snowball their debts, and the financial chain tightened instantly, leading to a domino effect of high-leverage real estate companies collapsing. The Current Status and Timeline of the Big Three Evergrande – The Catalyst of the Crisis Current Status: Ordered into liquidation by the court. Xi Jinping has been subject to coercive measures, and the group has disintegrated. Key Time Points: December 2021: First formal default (unable to pay interest on dollar debt), designated as “restricted default” by rating agencies. This is a landmark event marking the beginning of China’s real estate crisis. September 2023: Xi Jinping was taken into coercive measures for alleged illegal crimes. January 2024: The High Court in Hong Kong formally issued a winding-up order, Evergrande\u0026rsquo;s overseas restructuring failed, and it entered liquidation proceedings. Country Garden (“The Outstanding Student”) – The Fall Current Situation: Debt restructuring in progress. As once the “No. 1 private real estate enterprise in the universe,” its defaults completely shattered the last confidence of the market in privately owned property companies. Key Milestones: August 2023: Acknowledged liquidity pressure and failed to pay interest on two dollar-denominated debt installments. October 2023: Officially declared default (unable to pay a $470 million Hong Kong dollar installment) and hired advisors to initiate offshore debt restructuring. 2024-2025: Continued difficult debt restructuring negotiations and asset sales for self-rescue (such as Wanda Plaza equity, Australian projects, etc.). Vanke – The Last Bastion (Latest Updates as of End of 2025) Current Status: Breaking the “Rigidity”. Vanke had held up remarkably well for a long time, but by the end of 2025 it began seeking debt extensions, marking that mixed ownership/state-backed property giants couldn’t escape their fate either. Key Time Points: First Half of 2024: Faced short selling and credit rating downgrades, but thanks to verbal support from the Shenzhen Municipal Government and a syndicate loan (led by China Merchants Bank with a 20 billion yuan loan) it managed to pass through on time, repaying all publicly disclosed debt. November 2025: First Proposal of Debt Extension. Vanke proposed extending payment for a soon-to-expire private placement debt financing tool (PPI), marking its first “technical default” or extension signal in public market debt, causing widespread shock in the market. Other Notable Real Estate Giants with Defaulted/Breached Projects (Chronological Order) In addition to the three you mentioned, numerous billion-dollar real estate companies have been involved. Here’s a list organized by “Default/Breach” time order:\nWave One: Early Meltdowns (2021) China Fortune Land: Defaulted in early 2021, one of the earliest large property developers to collapse after the Three Red Lines policy. Currently has completed most of its debt restructuring. Bluewray: Defaulted mid-2021, Sichuan’s “property tycoon,” delisted. Fantasia: Defaulted in October 2021. Its default was extremely sudden and triggered extreme panic among the market regarding property developers\u0026rsquo; \u0026ldquo;off-balance sheet debt.\u0026rdquo; Kaisa: Secondary default in December 2021 (had defaulted in 2015). “The Old Renovation King” wasn’t spared either. Sunshine City: Began defaulting at the end of 2021, a Fortune 500 company, rapidly collapsed. Wave Two: Widespread Contagion (2022) Sunac: May 2022: Defaulted formally. Status (2025): Offshore. Completed foreign debt restructuring in late 2023 and the restructuring plan officially took effect at the end of 2025. Sun Hongbin is one of the few bosses who successfully completed domestic and overseas debt restructuring, despite the company’s significant shrinkage in size, it preserved its operating entity. Shimao Group: Defaulted in July 2022. Once known as the “Master of Luxury Homes,” it owned numerous landmark buildings (such as the Foshan Hotel) and is currently still struggling with debt. CIFI Holding: Defaulted in October 2022. Formerly a \u0026ldquo;demonstration project\u0026rdquo; for private real estate companies, its collapse marked the complete annihilation of private property developers. R\u0026amp;F Properties: One of the “Five Tigers of South China,” it underwent debt extension (although not formally termed as default) as early as 2022, and is currently selling overseas assets (such as London projects) to repay debts. Wave Three: State-Owned/Mixed Ownership Model Under Pressure (2023-2025) Sino-Ocean Group: Defaulted in 2023. This was the first state-owned property developer (backed by Ping An Insurance – a major shareholder) to default, shattering the “state-owned enterprise faith.” Agile Property: Initially defaulted in the public market in May 2024 after a long period of not defaulting. Ultimately, it failed to hold on. Summary: Real Estate Developer Survival Status Classification To help you remember more clearly, we can categorize them into four classes:\n“Dead”/Liquidation:\nEvergrande (Liquidation), Logan Property (Delisted), Sunshine City (Delisted). Currently “ICU” Restructuring:\nGreenspun (In restructuring negotiations), SAMSING, Xinhai Group, Far East Land Development. Restructuring Complete/Temporarily Stabilized (Moving to Ordinary Wards):\nRongcloud (Sun Hongbin self-rescue successful), China Wealth Securities. Still Struggling/Just Showing Crisis:\nVanke (Just extending the term), Longhu, Jiuhua Group, Gold Land. Related News: Regarding Vanke’s situation, I chatted with colleagues and friends in the group, and the conclusion was that interest rate cuts would continue. Shortly after, news flooded in about [Six Major Banks Fully Halt Sales of 5-Year Large Savings Bonds]. When reporters logged into the official apps and mobile banking platforms of the six major banks, they found that the maturity structure of large savings bonds had clearly become “short-term.” ICBC’s “Large Savings Bond” section only remained with products for terms of 1 month, 3 months, 6 months, 1 year, 2 years, and 3 years. Of these, the 3-year large savings bond product has a rate of 1.55%, and the 1-year and 2-year products have a rate of 1.20%. In addition, China Bank, Construction Bank, Bank of Communications, and Postal Savings Bank had similar product matrices, with all 5-year products removed from the sales list. In Agricultural Bank’s RMB personal large savings bond products from 2018 to 2025, there was no trace of a 5-year large savings bond product. (China Finance News)\n","date":"2025-12-02","language":"en","permalink":"https://ttf248.life/en/p/analyze-the-defaults-and-delinquencies-in-chinese-real-estate/","tags":["AI Inspiration Hub","real-estate","Vanke"],"title":"Analyze the defaults and delinquencies in Chinese real estate.","year":"2025"},{"categories":["Investment"],"content":" Left-side trading is difficult to execute, and right-side trading is also not good. Xiaomi’s buyback, Lei Bao’s (Lei Jun’s) own buyback, caused the stock price to rise sharply, stabilizing above the 40th level. Alibaba’s financial report saw a significant drop in net profit, and the market predicted that the intensity of takeout subsidies would decrease, leading to a large surge in Meituan’s stock price (6%). The capital logic of AI is not closed, it\u0026rsquo;s not previous business; first grab users, run around, then slowly make money. AI’s continuous costs cannot be reduced – hardware plus electricity. In today’s market environment, investors are facing an extreme sense of tearing: Left-side trading (counter-intuitive bottom fishing) often dies before dawn, and right-side trading (following the trend to chase gains) is also prone to standing on mountain tops. The recent cases of Xiaomi, Alibaba, Meituan, and the AI sector perfectly illustrate this game of capital logic.\nXiaomi: Genuine Silver and Gold \u0026ldquo;Right-Side Signal\u0026rdquo; – It All Starts with the Boss Leading the Way Phenomenon: The stock price breaking through the HK$40 barrier wasn\u0026rsquo;t instantaneous. Deep Logic: Xiaomi’s previous volatility frustrated many left-side ambush funds, losing patience. The real turning point came from a powerful injection of confidence. News Facts: Just days before, Lei Jun personally invested over HK$1 billion to increase his own holdings at an average price of approximately HK$38.58; simultaneously, Xiaomi Group repurchased millions of shares. Market Reaction: This “boss leading the charge + company buyback” double benefit directly sent out the clearest \u0026ldquo;right-side signal\u0026rdquo; to the market. The stock price surged, firmly establishing itself above HK$40, and its market capitalization returned to a trillion. Trading Insights: For ordinary investors, holding strong faith (believing EVs will succeed, smartphones becoming premium will succeed) is necessary to withstand the left-side ambush of Xiaomi. However, once Lei Jun steps in to do the right side, the cost has increased, although it’s safe, but the profit space is compressed. Alibaba vs Meituan: “Ceasefire Agreement” in Financial Reports Phenomenon: Alibaba’s net profit declines, while Meituan’s stock price surges. This appears contradictory but is logically sound. Underlying Logic: This is a game about “ending the intense competition and releasing profits.” News Facts: Recent Alibaba financial reports show a significant drop in net profit (partly influenced by investment losses), but the market keenly observed changes in core business data – the intensity of subsidies for local life (delivery/to-go) is decreasing. Capital Dynamics: As long as Alibaba doesn’t continue to recklessly burn cash subsidizing its fight against “food delivery wars,” Meituan, as the industry leader, stands to benefit most. The market anticipates a shift from “price war” back to “rational profitability.” Trading Insights: Short Alibaba on the Left Side of Logic: Panic sell when you see profit declines, potentially missing the logic behind its core e-commerce stabilization. Long Meituan on the Right Side of Logic: Enter only after financial reports confirm subsidy reduction and profit explosion (the “right side”), when stock prices have often already priced in this expectation. Meituan’s massive surge is essentially making money by \u0026ldquo;predicting others\u0026rsquo; predictions.\u0026rdquo; AI Sector: A “Black Hole” of Unclosed Capital Phenomenon: Regardless of whether it’s the US stock market or the A-share market, AI stocks continue to plummet or experience significant volatility even after demonstrating application implementation. Deep Logic: The capital market is transitioning from the “storytelling” phase into a brutal “accounting” phase. Hard Impact (Missing Capital Cycle): Traditional internet models are: burn cash -\u0026gt; acquire users -\u0026gt; diminishing marginal costs -\u0026gt; earn passively. AI’s Achilles Heel: AI\u0026rsquo;s marginal cost cannot be zeroed out, and it’s even difficult to reduce. Hardware Depreciation: Expensive GPUs depreciate rapidly. Energy Costs: Training and inference not only burn money but also consume electricity. Redwood Capital recently released a report highlighting the “$60 Billion Problem for AI” – meaning that the entire industry needs to earn back $60 billion annually just to cover infrastructure construction costs, while current application revenue is nowhere near even a fraction of that. Current Situation: Only those selling shovels (Nvidia, optical modules) are making money; companies developing applications (acquiring users) aren’t only not earning money, but each additional user requires paying more electricity and computing costs. Trading Insights: The left side of AI at this time is like an endless pit because the cost cannot be reduced; the right side of AI (performance fulfillment) remains distant because business models haven\u0026rsquo;t been fully realized. Summary Xiaomi tells us that certainty often requires gold and silver (repurchase/increase holdings) to confirm, but at the cost of losing low-priced chips. Alibaba/Meituan tell us that understanding the “tacit agreement” between giants is more important than simply looking at financial report numbers. AI tells us that in this sector, as long as the formula “revenue \u0026lt; (hardware depreciation + electricity costs)” remains unbroken, all rebounds are merely emotional speculation rather than value recovery. ","date":"2025-11-27","language":"en","permalink":"https://ttf248.life/en/p/the-dilemma-of-trades-difficult-to-initiate-on-the-left-short-side-difficult-to-follow-up-on-the-right-long-side/","tags":["Xiaomi","Hong Kong Stocks","Meituan","Review Log"],"title":"The dilemma of trading: difficult to get on the left (short), difficult to follow up on the right (long).","year":"2025"},{"categories":["Investment","Repost / Share"],"content":" Still doing nothing, Xiaomi didn’t fall below my current price level. It has fallen consecutively for two days, and was finally stabilized by a buyback. The US market last night was interesting – it started to rally, but the next day it completely crashed. Today, both A-shares and Hong Kong stocks are basically worthless. At this point, falling so much is actually good; I didn’t continue following the broader market, just laid down and relaxed, waiting for a better opportunity. Why the Decline https://wallstreetcn.com/articles/3759889 Other viewpoints may or may not be correct; quantitative funds are increasingly influencing domestic stock markets. Individual stocks often closely align with index movements. The original text is lengthy, and Bobo (豆包 - a common online nickname) has extracted the core content.\nIn November 2025, global risk assets will experience a major decline. According to Rich Privorotsky, a senior trader at Goldman Sachs, this downturn was the result of multi-layered transmission and ultimately evolved into systemic selling, driven by four key factors.\nFed Shifts to Hawks: The Starting Point of the Downtrend Recent employment data presents contradictory signals: job growth remains robust, but the unemployment rate has risen to 4.44% (primarily due to a surge in 16-24 year olds entering the workforce), and three-month average new hires only totaled 62,000, with potential new hires at just 39,000. August data was also revised downwards. Adding to this, there’s a trend of corporate layoffs, leading market expectations for the Fed to adopt a dovish stance. However, the Fed has maintained a hawkish tone, effectively withdrawing bets on December rate cuts, with the probability of cuts now essentially zero – triggering the first domino in the downward slide. Privorotsky bluntly stated that this hawkish position in light of the employment backdrop is a “policy error.”\nAI Narrative Restructuring: Google Drives a Winner-Takes-All Landscape Key logical divisions are emerging within the AI sector, with Nvidia’s strong financial results no longer making it the core investment focus. Google\u0026rsquo;s breakthrough progress with the Gemini-3 model is reshaping the AI investment ecosystem. This “disruptive model” has forced other companies to delay product cycles and increase capital expenditures, leading to increased uncertainty regarding returns on investment, resulting in companies like Oracle failing to follow the upward trend. A distinct \u0026ldquo;winner-takes-all\u0026rdquo; landscape is forming within the market, shifting AI from a broad “adoption” phase to one dominated by a select few, triggering adjustments across related sectors.\nCrypto Flash Crash: Retail Investor Risk Appetite Declines The volatile swings in the cryptocurrency market triggered a chain reaction. Retail investors, who had steadfastly held their positions over the past two years – often referred to as “diamond hands” – have transitioned into “selling hands” due to factors such as large-scale dumps by whale accounts. This panic sentiment spilled over into non-profit tech stocks and AI-related equities, exemplified by Palantir, which plummeted 6% during trading hours after rising 5.5%, marking a significant downgrade in retail risk appetite and a fundamental shift in market structure.\nQuantitative Funds Selling Off: The Key Driver of Accelerated Decline Since August, trend-following funds (CTAs) have held over $500 billion in long positions, triggering concentrated liquidations after the index broke key levels. Simultaneously, rising volatility prompted volatility control strategy funds to sell off, compounded by capital flows into VIX ETNs creating a “short-tailed, short-convex” allocation, which amplified the downward effect. The previously stable “low volatility structure” collapsed, with quantitative and systematic funds initiating a “mechanical selling,” leading to a sudden and significant plunge in the market without any major events.\nFundamental Concerns and Stabilization Conditions From a fundamental perspective, AI investment faces a “capital bottleneck”: a wave of corporate bond issuance is imminent, with AI data centers relying on debt expansion, while rising capital costs may slow down the pace of AI expansion. This risk has not been fully priced in previously. Goldman Sachs predicts that the S\u0026amp;P 500 mini contract could fall to 6500 points, and believes that the long-term value of AI remains unchanged; true winners are labor-intensive companies that achieve margin expansion through automation.\nMarket stabilization requires fulfillment of three conditions: CTA position liquidation is complete, retail investors with excessive long positions have been squeezed out, and at least two of the following conditions are met: cryptocurrency stability, a dovish Fed policy shift, and AI capital expenditure support.\n","date":"2025-11-22","language":"en","permalink":"https://ttf248.life/en/p/global-stock-markets-plunge-for-days-fed-ai-and-quantitative-easing/","tags":["Xiaomi","Hong Kong Stocks","Quantization","Review Log"],"title":"Global Stock Markets Plunge for Days: Fed, AI, and Quantitative Easing","year":"2025"},{"categories":["Computer","The Seven Seconds of a Fish"],"content":"This site’s main domain is hosted on GitHub Pages, and the blog’s backup subdomain is on Vercel with acceleration. It has been deployed through Cloudflare. The backend management page looks too outdated and unappealing, which is a major deterrent. Initially, it was a quiet, unassuming piece of content; however, constant messages in the blogging circles disrupted this tranquility – opening it up, CF went down, and many friends’ websites couldn\u0026rsquo;t be accessed.\nAs an internet infrastructure component, such prolonged downtime is unacceptable. The stock price didn’t plummet dramatically, which I hadn’t anticipated.\nCloudflare outage; many well-known websites are inaccessible. Pre-event stock drop, compiling relevant content, outputting articles\nNovember 18, 2025 (Tuesday) – This morning (November 18th), Cloudflare, a major global internet infrastructure services provider, experienced a widespread network outage before the opening of U.S. markets, causing thousands of well-known websites and applications that rely on its services to become paralyzed or difficult to access worldwide.\nAs a result of this incident, Cloudflare’s (NYSE: NET) stock price fell sharply during pre-market trading.\n🌍 Outage Affects Global Services as Popular Platforms “Go Down” The outage began on Tuesday morning (approximately 7:00 AM Eastern Time, 11:48 GMT) and was reported globally. Users across the world were unable to access a number of popular services including social media platform X (formerly Twitter), artificial intelligence service OpenAI (ChatGPT), music streaming service Spotify, game platforms League of Legends and Valorant, as well as numerous cryptocurrency exchanges (such as BitMEX, DefiLlama), among others. Users attempting to access these websites generally encountered “500 Internal Server Error” messages. Given Cloudflare’s role as an “intermediary” in the internet, providing content delivery (CDN) and security protection (DDoS) for millions of websites worldwide, any “jitter” within its network immediately triggered a global chain reaction.\n📉 Market Reaction Was Rapid, (NET) Pre-Market Stock Drop As a key infrastructure component for the internet, Cloudflare’s service stability is of significant interest to investors. Following the release of the outage news, the capital markets reacted quickly. Cloudflare\u0026rsquo;s (NYSE: NET) stock experienced heavy selling in pre-market trading on Tuesday. According to financial data, its price fell approximately 3.5% to 4%, dropping from a previous day’s close of around $202.25 on November 17th to levels as low as $195.\nThis reflects investors\u0026rsquo; concerns regarding the severity of the service interruption and its potential impact on the company’s reputation and short-term revenue.\nOfficial Response: Issue Identified and Under Repair Cloudflare’s official team quickly confirmed this incident on its System Status page. The company updated the status at 13:09 UTC (November 18th) this afternoon (Beijing time) stating:\n“The issue has been identified and remediation is being implemented.”\n🛠️ Official Response: Issue Identified and Under Repair According to Cloudflare’s report, this incident has been classified as a “global network experiencing issues” (global network encountering problems) and accompanied by “widespread 500 errors.”\nCloudflare stated that they are working to mitigate the issue and have observed service beginning to recover, but cautioned that customers may continue to observe “above normal error rates” during ongoing repair work.\nAs of this writing, access to some websites has begun to gradually restore, but global network latency and error rates remain high. We will continue to monitor the situation’s further development.\n","date":"2025-11-18","language":"en","permalink":"https://ttf248.life/en/p/cloudflare-experienced-a-global-network-outage-causing-websites-like-x-formerly-twitter-and-chatgpt-to-crash-the-stock-price-suffered-a-setback-ahead-of-the-market-open/","tags":["AI Inspiration Hub","cloudeflare","internet","U.S. Stock Market"],"title":"Cloudflare experienced a global network outage, causing websites like X (formerly Twitter) and ChatGPT to crash. The stock price suffered a setback ahead of the market open.","year":"2025"},{"categories":["Computer"],"content":"System data synchronization between systems, recently when changes occurred, the data volume of a certain interface increased, frequent deadlocks happened. After colleagues investigated, they found that it was caused by gap locks. MySQL is not used much, so I’ll record it down.\nmysql gap locks, background, principle, how to disable gap locks, what problems will occur if disabled; you are a senior database DBA, provide an extended analysis and supplement for my problem. What is phantom read? Which RC or RR mode do mainstream large factories choose? I am in the financial industry, securities system, which scheme do you recommend me to use? Compile the above questions and output documentation.\nIn MySQL, especially in high-concurrency scenarios, “locks” are a topic that cannot be avoided. Gap Locks are a core feature of the InnoDB engine, but they are also often the root cause of performance bottlenecks and deadlocks.\nThis article will help you quickly understand the core, pros and cons of gap locks, and provide you (especially those in the financial industry) with clear architectural selection recommendations.\nWhat are Phantom Reads and Gap Locks? Phantom Read: In a transaction, you initially read a range of data (e.g., ID \u0026gt; 100) returning 10 records. After another transaction inserts a record with ID=101 and commits, when you re-read the same range, it now returns 11 records. This \u0026ldquo;extra\u0026rdquo; new record is like an illusion, hence the name \u0026ldquo;Phantom Read.\u0026rdquo;\nGap Lock: MySQL introduces the Gap Lock in the RR (Repeatable Read) isolation level to address the issue of \u0026ldquo;Phantom Reads.\u0026rdquo; It doesn\u0026rsquo;t lock individual data rows; instead, it locks the \u0026ldquo;gaps\u0026rdquo; between data.\nPurpose: To prevent other transactions from inserting new data into these \u0026ldquo;gaps.\u0026rdquo; Cost: The scope of the lock expands, reducing concurrency and increasing the risk of deadlocks. How to \u0026ldquo;Close\u0026rdquo; Gap Locks? The most direct method is to lower the database isolation level from RR (Repeatable Read) to RC (Read Committed).\n-- Set the current session isolation level to RC SET SESSION transaction_isolation = \u0026#39;READ-COMMITTED\u0026#39;; -- Permanent modification (requires modifying my.cnf and restarting) -- [mysqld] -- transaction-isolation = READ-COMMITTED ⚠️ Consequences of Closure (i.e., RC-level Features) Performance Improvement: Without gap locks, the granularity of locks is smaller, resulting in a significant increase in concurrency throughput.\nReduced Deadlocks: Most deadlocks caused by gap locks will disappear.\nPhantom Reads/Non-Repeatable Reads: This is a “feature” of RC-level features – results of two queries within a transaction may be inconsistent.\n[Core Requirement] Must Be Used with ROW Format Binlog:\nIf using RC-level, it’s mandatory to set binlog_format to ROW. Otherwise, due to the lack of gap lock protection during master-slave replication, data inconsistency will occur between the master and slave.\nMainstream Factory Choices: RC or RR? Answer: The vast majority of leading internet companies choose RC (Read Committed) + ROW Binlog mode.\nReason: Internet businesses (such as e-commerce and social media) pursue extreme high concurrency. They cannot tolerate the frequent lock waiting and deadlocks caused by RR gap locks. Trade-off: They choose to abandon database-level “repeatable read,” instead relying on optimistic locking (such as version numbers, CAS) at the application layer to ensure the logical consistency of key business areas (such as inventory and balance). How Should the Financial Industry (Brokerage Firms) Choose? For brokerage systems with extremely high data consistency requirements, it is recommended to implement scenario-based governance:\nOption 1: Core Trading System (High Concurrency, Low Latency) Recommendation: RC (Read Committed) + ROW Binlog + Application-Level Optimistic Locking\nScenario: Order Matching, Placing Orders, Funds Deduction. Reasoning: The concurrency pressure of trading systems is comparable to that of flash sales on the internet. RR’s gap locking will become a performance bottleneck, leading to severe lock competition and even deadlocks – something a trading system cannot tolerate. Countermeasures: Use RC to guarantee high performance while ensuring financial security within application code (e.g., in Java) through UPDATE ... WHERE balance \u0026gt; ? or using CAS version number mechanisms to prevent overselling. Option Two: Clearing and Reconciliation System (Batch Processing, High Consistency) Recommendation: RR (Repeatable Read)\nScenario: Post-settlement bulk reconciliation, report generation, daily final settlement. Reasoning: Batch processing tasks require a “consistent snapshot” to run on. It needs the capabilities provided by RR level, ensuring that data does not experience “phantom reads” throughout the entire statistical process, guaranteeing the general ledger is accurate. Summary Isolation Level Advantages Disadvantages Suitable Scenarios RR (Default) Solves phantom reads, high data consistency Low concurrency, prone to deadlocks (gap locks) Reporting, clearing, scenarios with extremely high data consistency requirements and low concurrency Summary Isolation Level Advantages Disadvantages Use Cases RC High Concurrency, Fewer Deadlocks Phantom Reads, Non-Repeatable Reads High Concurrency Core Business (e.g., E-commerce, Financial Transactions), Combined with ROW Binlog Summary For securities broker core systems, RC + ROW Binlog is the mainstream architecture solution that balances performance and consistency; however, it requires the development team to take on more responsibility for ensuring data consistency at the application layer.\n","date":"2025-11-18","language":"en","permalink":"https://ttf248.life/en/p/understanding-mysql-gaps-locks-from-principles-to-enterprise-grade-selection/","tags":["AI Inspiration Hub","mysql","Deadlock"],"title":"Understanding MySQL Gaps Locks: From Principles to Enterprise-Grade Selection","year":"2025"},{"categories":["Investment"],"content":"Recently, Xiaomi’s third-quarter financial report was released, with little expectation beyond the usual. The US situation is unsettled, Hong Kong stocks have recently experienced liquidity stagnation, and the Hang Seng Technology Index has retreated significantly.\nAs a major participant in the food delivery war, Alibaba, which bears the highest e-commerce taxes, hasn’t generated much discussion online.\nI don\u0026rsquo;t remember if I wrote any previous articles, when I bought Xiaomi, I didn\u0026rsquo;t really think about what supported Xiaomi’s market capitalization at that time – perhaps after watching too many TikTok-related videos?\nRecently, the Hang Seng Technology Index has been falling, and electric vehicle stocks in Hong Kong are also declining. Xiaomi has multiple buffs stacked on top of each other, with negative news flying everywhere, and its stock price has naturally fallen significantly.\nRecently, it’s also been changing the head of its public relations department – conspiracy theories: they\u0026rsquo;ve been trying to change it for a long time, but the stakes are too high, and there are still many KOLs involved; if they suddenly make some wild claims, it will be difficult to resolve the situation.\nThis article primarily analyzes the valuation logic of Xiaomi Group and the market and policy challenges faced by Meituan and Alibaba recently.\nThe original draft contained too much complex content, collecting information from various sources and edited based on AI.\nXiaomi: The Logic Behind the Surge in Valuation (Platform Premium) Core Argument: The capital market has given Xiaomi a surge in valuation, driven by its “platform-type company” and “ecosystem empowerment” premium – something that vertical manufacturers (like Xiaopeng, Zotye) lack. Valuation Anchor Differences: Xiaomi: Anchored on the scarcity of “technology platforms” and “human-vehicle-home ecosystem.” The automotive business is viewed as a crucial step in ecological expansion, with risks dispersed across mobile and internet businesses. Automotive Manufacturers (Xiaopeng/Zotye): Anchored on “vehicle sales” and “unit profitability,” with valuation curves directly linked to the automotive industry cycle. Ecosystem Empowerment Value: Xiaomi possesses a massive, highly engaged user base of over 100 million, with extremely high order conversion efficiency from cars, and low marketing costs. Its seamless \u0026ldquo;human-vehicle-home\u0026rdquo; synergy is viewed by the market as superior to the industry average differentiation. Market Expectations: The market is buying into Xiaomi’s potential to successfully enter the trillion-dollar new “track entry ticket” and “ecosystem synergy value” in the next decade, reshaping its overall valuation logic. Meituan: Considering Exit Initially, the phrase \u0026ldquo;capable of bringing together all things, deeply ingrained in people\u0026rsquo;s hearts\u0026rdquo; was seen as a strong moat. However, it now appears that this moat isn’t as deep as initially thought.\nCurrent Situation: When buying, little consideration was given; recently, the stock price has fallen, and a decision on whether to “cut losses” will be made after reviewing the third quarter financial results. Alibaba (E-commerce Tax Policy Impact) Tax Policy Changes: China’s recent “e-commerce tax” is primarily focused on two areas: Cross-border E-commerce Retail Import Duty (“Haotai”): The preferential exemption for items below 50 RMB has been cancelled, leading to an approximate 11.9% price increase for haotai goods and driving industry compliance. Domestic E-commerce Tax Information Reporting Standards: Platforms are now required to report sales information from merchants, effectively preventing C2C individual sellers who previously hid income from continuing, marking the entry of the industry into a core reshaping phase focused on compliance. Impact on Platforms: Taobao (C2C): May eliminate small businesses unwilling to comply in the short term, but in the long run, it will improve platform quality and consumer trust.\nTianmao/Jingdong (B2C): Long-term benefit, as these large B2C platforms and merchants are already regular tax payers, and this new policy creates a fairer competitive environment for them.\nReasons for Merchant Losses: Losses are concentrated in merchants originally relying on tax evasion to gain price advantages. For merchants eligible for small microenterprise preferential policies, the tax burden should be low or exempt after compliant reporting. Being eliminated is an inevitable step towards fair competition.\n","date":"2025-11-18","language":"en","permalink":"https://ttf248.life/en/p/hang-seng-index-sharp-decline-meituan-considering-exit-examining-xiaomi-alibaba-and-meituans-new-valuation-anchors-through-ecological-premium/","tags":["Xiaomi","Meituan","Hong Kong Stocks","Financial Statements","Alibaba","E-commerce Tax","Review Log"],"title":"Hang Seng Index Crash, Meituan Considering Exit? Examining Xiaomi, Alibaba, and Meituan’s New Valuation Anchors Through “Ecological Premium”","year":"2025"},{"categories":["Computer"],"content":"Here\u0026rsquo;s the English translation of the provided text:\n“cc provides so many commands, which ones are actually useful? I’m going to watch some video tutorials on Douyin and simply record what I find helpful.\nThe generated normalized git logs automatically include copyright information, but since we’re now using domestic large models, there\u0026rsquo;s no need to add the copyright (GitHub displays cc as a collaborating developer).\nFind the user configuration file and add the setting \u0026quot;includeCoAuthoredBy\u0026quot;: false.\n/init – Analyze the current folder to generate an overview for better understanding by the large model. /compact /clear – Daily commands, no explanation needed. claude --dangerously-skip-permissions – Use with caution! This is how the null file from the previous draft was created; there are many small issues with cc on Windows. # – Enter memory mode, commonly used at the user level rather than project level. I frequently use this to write common projects into it. /ide – Can perceive the text data currently selected in VS Code, similar to what’s in trae. When interacting frequently, I provide function snippets from related files. Switching to the command line, I haven\u0026rsquo;t found anything like this functionality—especially with many project files, providing accurate code generation relies on having reference functions. mcp? – Haven’t really tried this type of tool; will explore further if needed. I always find it a bit cumbersome to use.\nCustom commands – No demand; the user-level equivalent of the git normalization submission I previously wrote is sufficient.”\n","date":"2025-11-08","language":"en","permalink":"https://ttf248.life/en/p/claude-code-frequently-asked-operations-guide/","tags":["ai","claude code"],"title":"Claude Code Frequently Asked Operations Guide","year":"2025"},{"categories":["Computer"],"content":"In the daily work of software development, we often encounter tricky “minor issues” that seem simple but can consume us hours of valuable time. One such “disaster zone” is deleting specific files – particularly those generated unexpectedly by toolchains.\nI encountered a “level-boss” problem: during local development, a file named nul inexplicably appeared in my project. I tried Windows Explorer, the CMD command line, but the system displayed \u0026ldquo;File not found\u0026rdquo; or \u0026ldquo;Cannot delete.\u0026rdquo; This file was like a ghost, stubbornly residing in my project directory.\nPhase One: Routine Attempts and the Ineffective Solution of “Standard” Approaches When I encounter this problem, my first instinct is to create a nul file. Why is nul special?\nDevelopers familiar with Windows history may know that nul is a \u0026ldquo;trap.\u0026rdquo; In Windows (and earlier DOS) systems, NUL, CON, PRN, AUX, etc., are reserved device names. NUL represents the “null device” (similar to Unix/Linux’s /dev/null).\nWhen the Windows file system API sees you trying to operate a “file” named nul, it treats it as an operation on this “null device,” rather than a filename with the same name. Therefore, all standard file operations (such as deleting or renaming) fail. How are nul files created?\nThis is usually the fault of cross-platform development tools (like Git, Node.js scripts, Python scripts, etc.). These tools may be based on POSIX (Unix-like) standards, in which case nul is simply a regular filename to them. When they run on Windows, they sometimes bypass standard APIs and create this “Windows-unfriendly” file. “Standard” Solutions Recommended Online\nI quickly searched the web and found that I wasn’t the first person to encounter this problem. The community offered several “advanced” solutions that were widely accepted:\nUse the \\\\.\\ syntax: In CMD, use the special \u0026ldquo;long path\u0026rdquo; syntax to bypass Windows name checking.\ndel \\\\.\\C:\\your\\project\\path\\nul Use Git Bash: Git Bash provides a lightweight Unix environment, which doesn’t treat nul as a special device.\nrm nul Use WSL (Windows Subsystem for Linux): Enter WSL, mount the Windows disk, and use the Linux rm command to delete.\nrm /mnt/c/your/project/path/nul However, none of these methods worked for me! Whether it was WSL or Git Bash, when I tried rm nul, the system reported a \u0026ldquo;No such file or directory\u0026rdquo; error. This led me to ponder the problem seemed more complex than I initially thought.\nStage Two: A Flash of Insight – Is it “Multiple Problem Overlapping”? If the nul file actually existed, why were even Unix tools saying \u0026ldquo;cannot find\u0026rdquo; it?\nI began to suspect that the problem wasn\u0026rsquo;t just with the nul file itself, but also with its “habitat” – the directory where it was located?\nI immediately opened Git Bash (this was key, because Windows Explorer might not display anomalies), navigated to the directory containing the nul file, and then executed ls -la (list all files, including hidden ones, and show detailed information).\nThat’s when I finally discovered the “blind spot”: the directory where the nul file was stored actually contained an illegal character within its name!\nStage Two: A Flash of Insight – Is it “Multiple Problem Overlap”? In my case, this directory name might be one ending with a space or a period (.) or containing special characters (like ?, *, :) that development tools “carry along” when syncing across platforms—these are all equally problematic.\nFor example, a directory displayed in Git Bash as \u0026quot;my-app \u0026quot; (note the trailing space) or \u0026quot;my-app.\u0026quot;.\nThat’s where the problem lies!\nProblem A: I have an “illegal” file named nul. Problem B: I have an “illegal” directory named \u0026quot;my-app \u0026quot;. When I try rm /path/to/\u0026quot;my-app \u0026quot;/nul, both the Windows system and Unix tools are “confused.” The Windows API cannot correctly parse this path containing illegal characters; while Git Bash or WSL might “see” this illegal directory, it may fail to access its internal nul file due to complex path parsing issues.\nPhase Three: Cutting Off the Root – Targeting the Path, Eliminating Everything in One Go Now that we’ve confirmed it was a problem with both “file path” and “filename,” the solution became clear: don\u0026rsquo;t try to delete that nul file; instead, directly delete that “illegitimate” parent directory!\nMy final resolution steps were as follows:\nOpen Git Bash: This is the only tool capable of correctly “seeing” and handling these illegal names. Navigate to the parent directory of the “problem directory”: Verify the true name of the “problem directory”: Execute the “Ultimate Delete”: Using the rm command with the -r (recursive) and -f (force) options, combined with quotes, to delete the entire directory. After executing the command, the troublesome directory containing the nul file, which itself had an invalid name, was finally completely removed from my filesystem.\n","date":"2025-11-08","language":"en","permalink":"https://ttf248.life/en/p/local-development-pain-why-cant-you-delete-nul-files-a-solution-to-the-composite-file-system-problem/","tags":["AI Inspiration Hub","windows","File System"],"title":"Local Development Pain: Why Can't You Delete `nul` Files? A Solution to the “Composite” File System Problem","year":"2025"},{"categories":["Computer"],"content":" The convention is to open Trae and prepare to start coding, and a notification arrives: the Claude model has been shut down and cannot be used; it’s highly likely that it won\u0026rsquo;t be recovered. The official provided a compensation plan, increasing usage by 300 (as of January). Checking it out, as expected, Anthropic is following US regulations to prohibit domestic companies from continuing to use the Claude series models. I joined the trae Discord community and saw many people complaining about the shutdown of the Claude model – after all, most people came here for Claude. The signs had already appeared before the Claude 4.5 model was synchronized on Trae; it hadn\u0026rsquo;t launched. Attempt With a last-ditch effort, I experimented with other models that are still supported, including OpenAI’s gpt-3.5-turbo, gpt-4, and Google’s Gemini Pro.\nHow to put it… the results weren\u0026rsquo;t very ideal. I don’t know how the Trae offshore team developed them; according to logic, there shouldn’t be such a huge difference. The prompts used for testing were the same as those I practiced with on my previous hand-built project: Xiaolan Shu (Little Blue Book), which I had written about in articles before.\nAdding to that, I was dissatisfied with the Trae IDE itself, so I emailed the Trae team requesting a refund.\nChanges It wasn’t misremembered – Google released the first terminal-based AI programming, which was more general-purpose than daily smart suggestions in IDEs and allowed developers to continue using their original development environments.\nOpenAI and Anthropic both released Claude Code and Codex; these tools and models aren\u0026rsquo;t completely tied together, and you can integrate other models by modifying configuration files.\nIn the Discord community, someone mentioned minimax m2 and glm4 – both are small blue book projects domestically. I tried the former and it was pretty good.\nInstallation requires a VPN connection. To switch between different models, I recommend: https://github.com/farion1231/cc-switch\nclaude code Depends on node js, command: npm install -g @anthropic-ai/claude-code\n╭─── Claude Code v2.0.33 ────────────────────────────────────────────────────────────────────────────────╮ │ │ Tips for getting started │ │ Welcome back! │ Run /init to create a CLAUDE.md file with instructions for Claude │ │ │ ───────────────────────────────────────────────────────────────── │ │ ▐▛███▜▌ │ Recent activity │ │ ▝▜█████▛▘ │ No recent activity │ │ ▘▘ ▝▝ │ │ │ │ │ │ minimax-m2 · API Usage Billing │ │ │ F:\\dev\\notebook │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── \u0026gt; Try \u0026#34;create a util logging.py that...\u0026#34; ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ! for bash mode double tap esc to clear input ctrl + _ to undo / for commands alt + m to auto-accept edits alt + v to paste images @ for file paths ctrl + o for verbose output # to memorize ctrl + t to show todos tab to toggle thinking backslash (\\) + return (⏎) for newline codex Not yet experienced, reference materials: https://platform.minimaxi.com/docs/guides/text-ai-coding-tools#%E5%9C%A8-codex-cli-%E4%B8%AD%E4%BD%BF%E7%94%A8-minimax-m2\n","date":"2025-11-05","language":"en","permalink":"https://ttf248.life/en/p/command-line-ai-coding-interaction/","tags":["ai","ide","claude code","codex"],"title":"Command-line AI Coding Interaction","year":"2025"},{"categories":["The Seven Seconds of a Fish"],"content":" Analysis of NVIDIA’s “Play” Worth a Billion Investment The global capital market is witnessing an unprecedented wave of centralization in 2025, centered around artificial intelligence (AI). This narrative not only reshapes the tech industry\u0026rsquo;s landscape but also exacerbates wealth inequality on Wall Street. The former \u0026ldquo;Magnificent Seven\u0026rdquo; no longer adequately describes today’s dynamics; the market is now dominated by a handful of super winners. This article will delve into three key questions:\nWhat proportion of the entire stock market do the top ten U.S. companies represent in terms of market capitalization? Does AI constitute a bubble? Is NVIDIA’s (NVIDIA) multi-billion dollar “reciprocal investment” with OpenAI justified? What are NVIDIA\u0026rsquo;s recent investment moves, and what is the underlying strategic logic behind them? Write article: What proportion of the entire stock market do the top ten U.S. companies represent? Does AI constitute a bubble? Are NVIDIA’s investments and reciprocal investment with OpenAI justified? Compile NVIDIA’s recent investment actions and analyze their rationale.\nMarket Concentration: Top 10 Giants Dominate 40% of US Stock Market Capitalization Based on the latest data from October to November 2025, the concentration in the US stock market (represented by the S\u0026amp;P 500 Index) has reached a remarkable level.\nThe top 10 US companies in the S\u0026amp;P 500 currently account for approximately 40% of the index’s total market capitalization.\nThis figure represents an even greater increase than the roughly 30% held by the “Big Seven” a year or two ago. As of early November 2025, the top 10 US companies were approximately:\nNVIDIA: Market Cap Approaching $5 Trillion Apple: Market Cap Approximately $4 Trillion Microsoft: Market Cap Approximately $3.85 Trillion Alphabet (Google): Market Cap Approximately $3.4 Trillion Amazon: Market Cap Approximately $2.6 Trillion Broadcom: Market Cap Approximately $1.75 Trillion Meta Platforms: Market Cap Approximately $1.63 Trillion Tesla: Market Cap Approximately $1.52 Trillion Berkshire Hathaway: Market Cap Approximately $1.03 Trillion JPMorgan Chase: Market Cap Approximately $0.85 Trillion This high concentration means that the stock price performance of a few key companies can determine the entire market’s direction. And the core fuel driving this “super-concentration” is, without question – Artificial Intelligence.\nAI Bubble and the $100 Billion “Closed Loop”: NVIDIA’s “Mutual Investment” with OpenAI The “mutual investment” between NVIDIA and OpenAI, which you mentioned, became a global shock event by September 2025. This wasn\u0026rsquo;t traditional VC investment, but a strategic partnership valued at $100 billion, representing a significant shift in the AI landscape.\n1. The “Closed Loop” Structure of the Partnership:\nNVIDIA Investment: NVIDIA announced it would invest up to $100 billion in OpenAI. OpenAI Procurement: OpenAI will utilize this funding (and other financing) to purchase NVIDIA’s chip systems, committing to deploy at least 10 ExaWatts (EW) of computing power – involving millions of GPUs – and adopting NVIDIA\u0026rsquo;s next-generation “Vera Rubin” platform starting in 2026. 2. Is This Model Reasonable?\nThis is a highly controversial topic, with market opinions divided between “revolution” and “bubble.”\nPerspective 1: Reasonable - It’s the Inevitable Choice of the ‘AI Revolution’ (The Revolution Case)\nFor OpenAI (the Buyer): The path to Artificial General Intelligence (AGI) requires near-unlimited computing power. In today\u0026rsquo;s market, NVIDIA’s GPUs are the most powerful and have the most mature ecosystems – they are the “shovels.” Locking down supply of top-tier chips for several years is the only way to ensure its continued leadership in the AI arms race. For NVIDIA (the Seller): OpenAI is its largest and most important customer. By investing $100 billion and deeply binding itself with OpenAI, NVIDIA effectively secures a massive order for its next-generation platform (Vera Rubin), guaranteeing future revenue and absolute market dominance over several years. Perspective 2: Unreasonable - It’s a Classic ‘AI Bubble’ Feature (The Bubble Case)\n“Closed Loop Financing”: Critics argue this is a “left hand, right hand” capital game. NVIDIA gives money to OpenAI, which then uses that money to order from NVIDIA. This creates massive revenue and growth on paper, but significantly amplifies valuations and bubbles. Significant Financial Risk: Reports indicate NVIDIA was even discussing providing OpenAI with loan guarantees to build data centers. This means if OpenAI’s business model fails in the future (e.g., AGI doesn\u0026rsquo;t materialize or operating costs are too high leading to bankruptcy), NVIDIA faces risks of tens of billions – or even hundreds of billions – in debt. Raises Antitrust Concerns: This transaction is viewed by regulators and competitors as “anti-competitive.” Analysts worry that, as a market “arms dealer,” NVIDIA will use its investment to deeply bind itself with the largest “mercenary” OpenAI, incentivizing it to refuse selling chips to OpenAI’s competitors (like Anthropic, Google, etc.), or offer worse terms, thereby stifling innovation. Conclusion: This model is NVIDIA\u0026rsquo;s high-risk, high-reward strategic \u0026ldquo;play\u0026rdquo; to ensure its AI dominance. It’s both a catalyst for massive AI development and potentially the footnote on the largest bubble in history.\nNvidia\u0026rsquo;s Investment \u0026ldquo;Empire\u0026rdquo;: A Calculated Demand Creation Nvidia has long been more than just a “chip vendor.” Through its venture capital arm (NVIDIA GPU Ventures), it is actively transforming into the “banker” and “ecosystem builder” for the entire AI gold rush.\n📈 NVIDIA’s Recent Key Investment Actions NVIDIA\u0026rsquo;s investment pace has accelerated dramatically in 2024-2025. As of October 2025, NVIDIA has invested in 59 AI startups this year, surpassing the 55 invested in throughout 2024.\nIts investment portfolio covers almost every vertical within AI, with a focus on:\nOpenAI (Foundation Models): In September 2025, it reached a strategic investment and procurement agreement valued at $100 billion. Poolside (AI Programming): Revealed to lead an investment of up to $100 million, supporting the development of AI software engineers in October 2025. Nokia (6G/Telecoms): Announced a strategic partnership and invested $100 million jointly developing AI-RAN (Radio Access Network) to capture the 6G market. Figure AI (Humanoid Robots): Investing in this star robotics company, positioning itself for the future of “Embodied Intelligence.” Perplexity AI (AI Search): Investing in this OpenAI competitor, securing a foothold in the next-generation information gateway. Wayve (Autonomous Driving): Investing in the UK’s autonomous driving company to ensure its dominance in automotive chips. 🤔 Investment Logic Analysis: Why is it Reasonable? Nvidia CEO Huang Renjun’s strategy is very clear. The core logic of its investments isn\u0026rsquo;t purely financial returns, but rather to serve its core chip business, which can be summarized into three key objectives:\n1. Core Objective: “Invest, Then Buy My Chips”\nThis is Nvidia’s most direct investment logic. Nvidia injects capital into startups (like Poolside), who in turn use this money to purchase Nvidia\u0026rsquo;s expensive GB300 or next-generation GPUs. This not only locks in customers but also artificially creates demand, forming a “mutually beneficial” business ecosystem between Nvidia and its invested companies.\n2. Strategic Objective: Building a \u0026ldquo;CUDA Ecosystem Moat\u0026rdquo;\nNvidia’s true moat is its CUDA software platform. By scattering money across all levels of the AI ecosystem (robotics, biopharmaceuticals, autonomous driving, AI programming), Nvidia ensures that these most promising future companies develop from day one based on the CUDA platform. This prevents competitors (like AMD, Intel) from shaking Nvidia\u0026rsquo;s position even if their hardware keeps up in terms of performance – they simply can’t disrupt Nvidia’s dominance in the software ecosystem.\n3. Expansion Objective: Securing New Tracks for Chips\nNvidia needs to constantly find the next “AI wave” to support its $500 billion valuation. Its investment in Nokia (6G) is to push its AI chips into the massive telecommunications infrastructure market; its investment in Figure AI (robotics) is a bet on \u0026ldquo;embodied intelligence\u0026rdquo; becoming the next major consumer of computing power after cloud computing.\nSummary: “Trickery” Under Monopoly The unprecedented concentration in the US stock market reflects the productivity leap brought about by the AI revolution, but it also carries enormous risks of bubbles. The billion-dollar “closed loop” partnership between Nvidia and OpenAI is a microcosm of this high-stakes gamble.\nNvidia’s investment strategy is a meticulously planned “trickery”: It leverages its strong capital strength to not only become a “weapons supplier” in the AI era, but also to transform into a “banker” and “rule maker,” ensuring that all paths to the future are paved with Nvidia chips. This strategy is highly rational and efficient from a business perspective, but it also exposes it to significant antitrust pressure and potential financial risks.\nFor investors, understanding this game driven by AI, led by giants, and strengthened by capital closed loops is key to comprehending the current market.\n","date":"2025-11-03","language":"en","permalink":"https://ttf248.life/en/p/big-tech-dominance-in-the-us-stock-market-intensifies-the-top-10-companies-account-for-40-of-market-capitalization-is-ai-a-bubble-or-a-revolution/","tags":["AI Inspiration Hub","U.S. Stock Market","Market Concentration","AI Bubble","NVIDIA","OpenAI","investment","Technological Innovation"],"title":"Big Tech Dominance in the U.S. Stock Market Intensifies: The Top 10 Companies Account for 40% of Market Capitalization, Is AI a Bubble or a Revolution?","year":"2025"},{"categories":["The Seven Seconds of a Fish"],"content":" Data Mining Deep Learning Neural Network It’s undeniable that the surge of big data, coupled with recent news about competitive matches, always prompts me to take a look. Similar videos on TikTok have been proactively dismissed – I don\u0026rsquo;t want to keep receiving homogenous content. I also forgot about an account; unsurprisingly, TES lost decisively, and related topics were trending on Zhihu’s hot list. A highly-voted answer mentioned LPL’s Korean reinforcements and the concept of “all Chinese team.”\nWithout that year’s IG victory, League of Legends is likely already over. ldl\u0026rsquo;s strategic play, combined with multiple debuffs, contributed to LPL’s performance as a region.\nWriting article: Why does LPL, China’s League of Legends regional league, introduce Korean players? From the coaching staff to the players, reinforcements have been introduced, whether this limits the development of domestic players, and then domestically there is still hope for a Chinese all-star team to win, whether this belongs to the obsession of the Chinese people.\nSince the “Korean Wave” began flooding the LPL at the end of S4, Korean players and coaches have become an indispensable part of this region. From iG’s (Rookie, TheShy) in S8 and FPX’s (Doinb, GimGoon) in S9, to EDG’s (Scout, Viper) in S11, LPL has three times lifted the global World Championship (S-Series) trophy, with Korean players and coaches playing a crucial role in each victory.\nHowever, simultaneously, a resounding slogan has consistently permeated the LPL’s public opinion – “All Chinese Team.” While audiences celebrate LPL’s championships, they also harbor almost obsessive expectations for a “Chinese team” to win.\nWhy did LPL introduce Korean players? Does this limit the development of domestic players? And what exactly is the origin of the “All Chinese Team” obsession?\nWhy Introducing Korean Talent: A “Catalyst” From Chase to Lead The LPL’s introduction of Korean talent was initially driven by a purely pragmatic goal: to win.\nDuring the S3 and S4 periods, LCK (South Korea\u0026rsquo;s league) dominated League of Legends with its impeccable operations and unparalleled individual player abilities. As a challenger, the LPL’s fastest and most direct “copywork” strategy was to bring in “teachers” – top players and coaches.\n1. Demand for Battle-Ready Talent and Guaranteed Results\nFollowing the disintegration of Samsung White and Samsung Blue in S4, a large number of top Korean players entered the LPL. They brought with them the most advanced game understanding and the highest level of operational skill. The arrival of Rookies, Doinb, Pawn, and Mata quickly elevated the limits of teams like LNG, WE, and EDG. For clubs, this was a necessary commercial choice in pursuit of results.\n2. Introducing an Advanced “Esports Industrial System”\nThe LPL didn’t just bring in players; it also brought in coaching staff and the underlying training system. Korean esports is renowned for its strict discipline, data-driven approach, and high-intensity training model. The arrival of coaches like Kkoma and DanDy brought LCK management experience and tactical reserves into the LPL, forcing LPL clubs to transition from “internet cafe-style” management to “professionalized” management.\n3. \u0026ldquo;Catfish Effect\u0026rdquo;: Activating Internal Competition\nThe introduction of top Korean players was like introducing a catfish into a pond. Local players had to grow faster and adapt to higher levels of competition in order to maintain their starting positions. From this perspective, Korean talent (such as TheShy, Rookie) wasn’t just an “overseas player,” but also a “senior sparring partner” and “teammate teacher” for domestic players (such as JackeyLove, Ming, Knight), collectively raising the overall average level of the entire LPL league.\nA Double-Edged Sword: Has Korean Support Been a “Limitation” or a “Catalyst” for Domestic Development? This is one of LPL’s most controversial topics in history, and the answer is “both”.\nThe “Restrictive Viewpoint”:\nOccupied Survival Space: This is the most direct impact. When LPL\u0026rsquo;s top teams habitually reserved key C-positions (mid laner, top laner) for Korean players (like the infamous \u0026ldquo;Mid Laner Must Speak Korean\u0026rdquo; joke), it made it even harder for promising domestic rookies to get playing time. With only one position available per game, Korean players’ priority did, to a certain extent, “suppress” the rise of some domestic talents. Communication Costs and Tactical Monotony: Early \u0026ldquo;3-2\u0026rdquo; patterns (three Chinese players supporting two Korean players) often led to communication breakdowns. Team tactics sometimes became monotonous due to accommodating Korean players\u0026rsquo; habits, lacking the LPL-style \u0026ldquo;dare-to-play-boldly\u0026rdquo; style of domestic players. The “Promotional Viewpoint”:\nElevated Domestic Player’s “Lower and Upper Limits”: LPL domestic players (like Tian, Ming, Knight) grew up through competing with and learning from players like Rookie, Doinb, Ruler, and Viper. The opponents they faced in the S-Series were often stronger than their daily training game teammates. This intense internal competition was a key reason for the explosive growth of LPL domestic talent (especially support and jungler positions). LPL’s “Blood Generation” Capability is Now Number One Globally: The fact is, LPL currently has the largest and most complete youth system (LDL). LPL doesn\u0026rsquo;t lack \u0026ldquo;people\u0026rdquo;; it lacks the very top \u0026ldquo;towering\u0026rdquo; players. The introduction of Korean players was precisely to fill this final piece of the \u0026ldquo;tower.\u0026rdquo; Furthermore, LPL’s “assimilation” ability is extremely strong; Rookie and Doinb eventually became “LPL domestic players.” Overall, LPL, through introducing Korean players, traded “space” for “time.” It sacrificed some domestic players\u0026rsquo; short-term playing opportunities but gained the rapid elevation of the entire league’s competitive level and three S-Series championships, ultimately feeding back into its own youth system.\n“All-Chinese Team”: A Near-Obsessive National Pride Sentiment If introducing Korean reinforcements is a \u0026ldquo;rational\u0026rdquo; competitive choice, then pursuing the “All-Chinese Team” represents an “emotional” national sentiment. Simply labeling this desire as “fanaticism” is incomplete; it has deep cultural and historical roots.\n1. The Essence of Sports is “Nation/Region Confrontation”\nWhether it’s traditional sports (like the Olympics) or esports, when it rises to the international competition stage, it naturally carries a national/regional honor color. Viewers seeking excitement while watching games are not just looking for competitive thrills; they\u0026rsquo;re also seeking an identity affirmation of “our people” winning.\n2. The Ultimate Proof: \u0026ldquo;We Can Win Ourselves\u0026rdquo;\nThe LPL has already proven itself capable of winning through a combination of Chinese and Korean players. However, “All-Chinese Team winning” is another dimension of the narrative: it means that the LPL region achieved a holistic victory – from players and coaches to tactics and youth training systems. This represents the ultimate proof of \u0026ldquo;we can stand at the top of the world without external force.\u0026rdquo;\n3. Historical Regrets and RNG’s “Deification”\nThe obsession with the “All-Chinese Team” is deeply intertwined with the narrative of the RNG team (especially during Uzi\u0026rsquo;s time). In S8, that all-Chinese team RNG won MSI, giving countless LPL viewers hope for \u0026ldquo;All-Chinese Team winning a World Championship Series.\u0026rdquo; Although S8 ultimately failed, the regret of “just missing it” further reinforced this obsession.\n4. The Catalyst of the Asian Games\nThe 2018 Jakarta and 2023 Hangzhou Asian Games both required “All-Chinese Team” lineups for the “League of Legends” project. When esports combined with the traditional sports model of \u0026ldquo;contributing to national glory,\u0026rdquo; the “All-Chinese Team” evolved from a “fan’s expectation” into a “national team standard,” further deepening viewers\u0026rsquo; identification with domestic rosters.\nConclusion: From \u0026ldquo;Borrowing Strength\u0026rdquo; to \u0026ldquo;Legitimizing\u0026rdquo; The introduction of Korean support (韩援) into LPL was a necessary strategy in its early development, driven by the need to quickly catch up and achieve “overtaking” – a strategy that has been definitively proven successful by the championship trophies won by S8, S9, and S11.\nThe inclusion of Korean support did not \u0026ldquo;restrict\u0026rdquo; the development of LPL; instead, through the “catfish effect” (鲶鱼效应) and “internal teaching,” it significantly accelerated the growth of LPL’s native talent, transforming LPL into the now-recognized number one region.\nThe obsession with a “full Chinese team” (全华班) was not narrow xenophobia, but rather a peak of domestic confidence leading to a desire for “ultimate glory” – representing what LPL viewers hoped to see: a perfect closed loop where this region would transition from “reliance on foreign support” to “self-sufficiency and dominance.”\nThe story of LPL is a microcosm of the intersection of globalization and localization. We enjoy the extreme operations brought by Ruler and Scout, and we will also shed tears for RNG in 2018 and the \u0026ldquo;full Chinese team\u0026rdquo; representing China at the 2023 Asian Games. This is not contradictory; it’s simply different pursuits at different stages of a region\u0026rsquo;s journey from “student” to “master.”\n","date":"2025-11-03","language":"en","permalink":"https://ttf248.life/en/p/lpls-korean-invaders-and-the-all-chinese-squad-dream-a-game-about-results-development-and-belonging/","tags":["game","South Korea","LPL","Korean Support/Assistance","Full Chinese Team","League of Legends","Esports"],"title":"LPL’s Korean Invaders and the “All Chinese Squad” Dream: A Game About Results, Development, and Belonging","year":"2025"},{"categories":["Diary Ramblings"],"content":"Yesterday after watching the match, the feeling of “unsettledness” lingered in my heart for a long time. I happened to see a netizen’s words and felt a deep connection – he started his engagement with this sport from elementary school, while I only began to get involved in university.\nWhen I sat down to write, I thought of the \u0026ldquo;legendary twins\u0026rdquo; from the Yueshan Badminton Academy – Lin Dan and Li Zongwei. And Faker, he is like the “evergreen pine” or “perennial tree” in the esports world, a perfect combination of talent and extreme self-discipline.\nHe wasn’t without losses, but we hadn\u0026rsquo;t lost to LPL; when a friend asked me, was it because of a particular team’s fans? Not really. The domestic education system’s nurturing supports our own teams, which is natural. It’s not about a specific player or team’s fanbase – we like watching high-quality matches featuring the Chinese team.\nCommentators largely guide viewers\u0026rsquo; emotions; their embellishment of key match moments has magnified that feeling of unsettledness many times over.\n##转载\nThe article was something I saw on TikTok and didn’t know how to paste the original link.\nStarting with S3, I started playing League of Legends when I was in sixth grade because at that time we didn\u0026rsquo;t have a good computer and felt it would affect my studies, and I thought I wouldn’t get into university, so I played it sporadically. My rank consistently remained Gold and Silver. However, I also continued to watch tournaments intermittently. As a small kid, I was moved to tears watching it. But I always remember that year of Royal Never Give Up (RNG) and OMG relentlessly attacking the rookie version of Faker. The confident Faker easily took down two teams with a single play. Following that, the Samsung Blue vs. White match, the gap between the two regions’ broken players was overwhelming and couldn\u0026rsquo;t be compensated for.\nAfter going to university before enlisting in the army, I continued to be obsessed with League of Legends. I searched online for small and medium-sized videos, wanting to become a master player. But I would also be distracted by other small and medium-sized things. However, I clearly remember the night RNG won the championship, when I woke up the next day and saw the slice video, I burst into tears because it felt like LPL really had a chance. When I was in the army, I also heard about FPX winning the championship, as the situation was special at the time, so I didn\u0026rsquo;t pay much attention. To be honest, when EDG won the championship, I wasn’t particularly surprised, considering that a non-all-Chinese team had already achieved a championship once, and I hoped for an all-Chinese team to achieve a true championship. The fleeting RNG won all the games in that year, but lost the most crucial game, where Faker consecutively made five kills with Galio, and in the last game, he perfectly timed his “closing eyes to pray” play, completely destroying Uzi’s champion dream. I don\u0026rsquo;t know how many hearts were broken and players quit.\nAfter returning from military service, I followed the competition year after year, always unable to catch up with Faker. From WBG in the year of my postgraduate entrance exam to BLG last year, and now AL in today’s top eight, as I watched Faker use Xerath to get kills and steal Ethan\u0026rsquo;s Baron Nashor, I knew this game was lost. Honestly, it makes me feel really bad watching him. I really have a lot of feelings for the League of Legends game. Not only do I play well, but I also know the background stories of most major heroes. I also know the stories of LPL and LCK teams.\nOh, LPL this region is obviously lagging behind LCK in terms of atmosphere and strength comparison. I also hope that LPL will have a full Chinese team win the championship. I’ll end with Wang Duo Duo\u0026rsquo;s words: “Maybe one day we will lose confidence in electronic sports like League of Legends because the Korean control is still continuing today, but it won’t be today.”\nI still hold onto the dream of an all-Chinese team winning the championship, just as I have fantasies about some things in life.\n","date":"2025-11-01","language":"en","permalink":"https://ttf248.life/en/p/what-is-regret-in-olympic-games/","tags":["Regret","League of Legends","Youth"],"title":"What is regret?","year":"2025"},{"categories":["Investment"],"content":"No trading activity within the venue; we’re currently awaiting next month\u0026rsquo;s financial reports. Taking a half-day break this afternoon – nothing particularly noteworthy, just wanting to rest and recharge.\nYears Have Passed It’s been a long time since I last watched League of Legends (LOL) matches live, and suddenly it feels like four or five years have passed.\nAs I\u0026rsquo;ve mentioned in my previous articles related to games, I always had a complex feeling towards LPL teams (the domestic league). The frequent low-level mistakes made by many players in major tournaments felt lacking in professional demeanor, which significantly reduced the viewing experience – this is why I gradually drifted away.\nThis afternoon, on a whim, I took a half day off to tidy up my room, and the summer clothes were still unorganized. While doing so, I decided to watch some matches. The quarterfinals were still T1, that formidable mountain standing in front of LPL teams, seemingly impossible to overcome. Looking back, LPL hadn’t won any Bo5 (best-of-five) crucial matchups against them in the World Championship series; every team they faced felt immense pressure.\nAs I wrote these words, the match had entered its “classic” fifth game – the LPL team was leading 2-1 and in a great position to win, but their opponent tied it up, and both teams were about to enter a brutal final deciding game.\nUpdate before publishing: The operation wasn\u0026rsquo;t too bad, but their build strategy was completely crushed. The Queen composition led to Ashe dominating early on, preventing Miss Fortune from grouping and initiating fights; it was incredibly difficult.\nReview Meituan: Performance was stable with minimal fluctuation, punctuated by a brief rally. Xiaomi: This decline was largely driven by a confluence of negative factors.\nMacro Drag: The overall pullback in the Hong Kong tech sector (such as NetEase, Alibaba, and Tencent) performed poorly. Automotive Expectations: The new energy vehicle sector experienced intensified “internal competition” (“intense competition”), with market expectations for growth in companies like BYD already peaking, and Xiaomi’s automotive future space also under pressure. Industry Observations: UBS\u0026rsquo;s pre-earnings report highlighted the rising prices of solid-state drives and memory. The extent to which this cost increase will erode the profit margins of mobile business remains to be revealed in the earnings report. However, one thing is certain: In a market as intensely “competitive” as this, the Android smartphone ecosystem no longer has the luxury of raising prices arbitrarily. Reputation Backlash: Finally, returning to Xiaomi itself, its automotive business is facing reputation issues. The project’s early promotional volume was immense, with almost no negative feedback. Now, it seems to be experiencing a wave of public “backlash” following excessive exposure. ","date":"2025-10-31","language":"en","permalink":"https://ttf248.life/en/p/vacation-watching-games-when-t1-becomes-an-impenetrable-mountain-for-the-lpl-what-macro-industry-negative-factors-does-xiaomi-face-again/","tags":["Xiaomi","Hong Kong Stocks","game","League of Legends","Review Log"],"title":"Vacation Watching Games: When T1 Becomes an Impenetrable Mountain for the LPL – What “Macro + Industry” Negative Factors Does Xiaomi Face Again?","year":"2025"},{"categories":["Computer"],"content":"Updating the local Windows system installation package, it was found that version 25H2 has been released. The local system is still stuck on version 24H2. Microsoft’s update patches have been installed, but the local system hasn\u0026rsquo;t upgraded to version 25H2 yet. Curious about what steps were missing in between. This article is based on Microsoft official support documentation, outlining the core information of KB5054156 update to help users understand the key points for upgrading from Windows 11 24H2 to 25H2.\nUpdate Overview KB5054156 is a feature update for Windows 11 version 25H2, which activates new features through \u0026ldquo;Enable Package.\u0026rdquo; Its essence lies in leveraging the characteristic of Windows 11 24H2 and 25H2 sharing the “Universal Core System” – new features in 25H2 are included in the latest monthly quality update for 24H2 but are in a dormant state. Enabling the package then activates these features as a \u0026ldquo;master switch.\u0026rdquo;\nSupported Applications This update only supports devices running Windows 11, version 24H2. The specific versions include:\nWindows 11 Enterprise and Education, version 24H2 Windows 11 Enterprise Multi-Session, version 24H2 Windows 11 Home and Pro, version 24H2 Windows 11 IoT Enterprise, version 24H2 Core Advantages of Enabling Packages Compared to traditional feature updates, the core value of enabling packages lies in reducing update downtime:\nNo complex download and installation processes are required; only a single device reboot is needed to upgrade from 24H2 to 25H2; After upgrading, devices can immediately use the new features of the 25H2 version without waiting for a full system update. Update Acquisition Methods KB5054156 was released through three channels, with availability and steps varying by channel as follows:\n| Windows Update | Available | Automatically downloads and installs, feature updates displayed as “Windows 11, Version 25H2”, no manual triggering required |\nUpdate Acquisition Methods Distribution Channel Availability Next Steps Windows Update Catalog Unavailable None, this update is only available through Windows Update and WSUS channels Update Acquisition Methods Distribution Channel Availability Next Steps Windows Server Update Services (WSUS) Available Configure the following parameters for automatic synchronization: 1. Product: Windows 11\n2. Category: Upgrade\nRename the update to “Windows 11, Version 25H2” Upgrade Prerequisites Before applying KB5054156, the following conditions must be met:\nYour device’s current operating system version is Windows 11, Version 24H2 (upgrades from lower versions are not supported); and You must have installed the KB5064081 cumulative update released on August 29, 2025 (OS internal version 26100.5074, including Preview and higher builds). Reboot and Update Alternative Instructions Reboot Requirement: After installing KB5054156, you must restart your device to activate the 25H2 feature; Update Alternative: This update will not replace any previously released Windows updates, so there is no need to worry about overwriting historical update files. References Microsoft Official Documentation: KB5054156: Using the feature update for Windows 11 version 25H2 enabled by packages Glossary Reference: Microsoft Software Update Standard Terminology Explanation ","date":"2025-10-28","language":"en","permalink":"https://ttf248.life/en/p/kb5054156-windows-11-version-25h2-feature-update-package-deployment-guide/","tags":["windows","Windows 11","KB5054156","Enable Package","System Function Update","25H2 Version"],"title":"KB5054156: Windows 11 version 25H2 Feature Update (Package Deployment Guide)","year":"2025"},{"categories":["Computer"],"content":"My desktop computer is always kept on. Usually, I only turn off the monitor when I leave or don\u0026rsquo;t use it at night.\n🚨 Problem Description After a routine operation, I discovered that the display was consistently in a black screen state. Attempting to power cycle the monitor, the screen still displayed \u0026ldquo;No Signal Input\u0026rdquo;. Using UU Remote Control to view the status, I found that both the desktop PC and another mini host were showing as online, indicating that the host itself may not have been shut down. Troubleshooting Steps To resolve the \u0026ldquo;no signal\u0026rdquo; issue, I attempted the following:\nReplugged the DP data cable. Switched to using an HDMI data cable. Switched the source to the mini host (testing whether the display was faulty). 🔍 Results and Resolution All previous attempts to resolve the issue were unsuccessful. I searched on platforms like Douyin (TikTok) and saw suggestions stating “disconnect power for a few minutes and reconnect,” but after multiple trials, it was ineffective. Final Solution: Restarted the desktop computer. After restarting, the display signal returned to normal, and the problem was solved.\n","date":"2025-10-27","language":"en","permalink":"https://ttf248.life/en/p/computer-black-screen-troubleshooting-log/","tags":["troubleshooting","Monitor","Black Screen","desktop-pcs"],"title":"💻 Computer Black Screen Troubleshooting Log","year":"2025"},{"categories":["Investment"],"content":"Monday saw no panic sell-off, but the entire week was marked by a persistent downtrend, like a dull knife slicing flesh – a slow, gradual decline over the course of seven days.\nDisciplined Trading Yesterday afternoon, two new short positions on Xiaomi were added, with the original plan to sell out at the end. However, when I saw a slight loss in the final position, I hesitated and didn\u0026rsquo;t want to cut my losses, so I decided to observe for another day. This morning, the stock price fell slightly by 1%, and when it dropped to 2% in the afternoon, I decisively exited the position. Later, it was proven that this exit was correct, as the stock continued to fall after that.\nAI Analysis Follow-up Actions A few days ago, I saw someone in the blogosphere using AI to analyze football betting and won second prize with a tax refund of around 900 RMB. Let’s try it with stocks too, based on my experience with large models previously, DeepSeek is most suitable, and the investment plans generated by the other models don\u0026rsquo;t look quite right.\nHong Kong Stock Investment Plan: Currently holding Xiaomi, approximately 100,000 RMB, down 15%, Meituan 70,000 RMB, down 20,000 RMB. Query current stock prices and determine how to control positions moving forward. I’m planning a long-term investment strategy – Xiaomi was purchased due to the Yu9 IPO, Phase III factory ramp-up, and continued high sales, which should drive up the price; Meituan is after the end of the food delivery war stabilizes. I\u0026rsquo;d like to wait for the third quarter earnings report in Hong Kong next month before taking action – that seems more reasonable given my long-term investment strategy of around three years. Please provide me with an investment plan.\nHong Kong Stock Investment Plan: Xiaomi and Meituan Position Analysis \u0026amp; Long-Term Strategy Based on the information you provided (holding Xiaomi approximately HK$100,000 with a loss of 15% and Meituan approximately HK$70,000 with a loss of approximately 28.6%, investment horizon of 3 years), I have compiled the latest market data and analysis to develop a detailed investment plan for you. The following is core information extracted from comprehensive search results:\nCurrent Stock Prices (as of October 17, 2025):\nXiaomi Group-W (01810.HK): HK$45.88 (down 3.82%, cumulative monthly decline exceeding 15%) Meituan-W (03690.HK): HK$94.50 (down 4.30%, year-to-date cumulative decline of 37.71%) Hong Kong Stock Market Environment: The Hang Seng Index fell by 2.48%, with technology stocks leading the decline, and market sentiment is short-term weak. Validation of Your Purchase Rationale:\nXiaomi: The listing of Yu9, the ramp-up of Phase III factory, and sales potential represent a reasonable long-term logic, but the stock price is suppressed in the short term due to the impact of the Chengdu SU7 accident (door safety controversy, intervention by regulatory authorities). Meituan: Stabilization after the end of the food delivery war is key for the long term, but competition remains intense (京东 and Alibaba are involved), net profit fell 89% in the second quarter, and Wang Xing\u0026rsquo;s \u0026ldquo;no matter the cost\u0026rdquo; statement has intensified market concerns. Position Control Recommendations: Short-Term Caution, Long-Term Focus on Fundamentals Your current holdings are down approximately 18.8% (total holding of HKD 1.7 million, a loss of approximately HKD 374,000), but long-term investment requires avoiding emotional trading decisions. Here’s a phased recommendation:\n| Pre-Earnings Report (Short-Term: Now to Q3 Earnings Release) | Maintain current position, do not add to holdings. Closely monitor the progress of the SU7 accident investigation and Q3 vehicle delivery data. | Maintain current position, do not add to holdings. Focus on monitoring whether Q3 takeout UE (average order profit) improves. | Potential price volatility before earnings report: • Xiaomi will continue to be dragged down by safety incidents and is unlikely to rebound in the short term.\n• Takeout competition remains intense, and profitability recovery requires time. |\nPositioning Strategy Recommendations: Short-Term Cautious, Long-Term Focus on Fundamentals Trading Cycle Xiaomi Strategy Meituan Strategy Key Basis Post Earnings (Mid-term: November - Q1 2026) If earnings show steady vehicle sales growth and mobile gross margin bottoms out, consider adding to positions 5%-10%. If earnings confirm easing competition and narrowing losses, add to positions 5%-10%; otherwise maintain current holdings. • Xiaomi’s 2025 target sales volume is 350,000 units, and mobile premiumization is key to profitability.\n• Meituan SOTP valuation shows 121% upside potential, but requires a profit inflection point. Position Control Recommendations: Short-Term Cautious, Long-Term Focus on Fundamentals Trading Cycle Xiaomi Strategy Meituan Strategy Key Basis Long-term (3 years) Hold core positions, target price of 75 HKD (potential upside of 63%). Risk points: automotive safety regulation, smartphone demand weakness. Hold core positions, target price of 247 HKD (potential upside of 161%). Risk points: policy cost increase, new business losses. • Xiaomi’s car-home ecosystem closed loop is the long-term engine.\n• Meituan instant retail penetration rate is expected to improve. Positioning Strategy Recommendations: Short-Term Caution, Long-Term Focus on Fundamentals Should you trade after the financial reports?\nYes, we recommend waiting for the third quarter financial reports (released in November) before making additional investment decisions. The reason is:\nThe financial reports will validate your initial purchase logic: Xiaomi’s factory ramp-up sales volume and Meituan’s easing competition evidence. If the financial reports are below expectations, the stock price may fall, providing a better entry point; if they exceed expectations, it can confirm the right-side signal. Short-term market sentiment is driven by events (such as Xiaomi incidents and food delivery price wars), and financial reports will reduce uncertainty. Long-Term Investment Plan (3-Year Perspective) Based on the principles of “Hold Quality Assets + Bottom Hunting,” your plan can be detailed as follows:\nXiaomi Group: Strong Defense and Offense, Focus on Automotive Business Turning Point\nCore Opportunity: Vehicle business scale effect (target 350,000 units annual sales), AIoT ecosystem synergy. Financial health (Z-Score = 4.19, low bankruptcy risk). Risk Mitigation: If the SU7 safety issues continue to ferment, the stock price may fall to the 40-42 HKD range; set a trigger for adding positions (add 5% when the price drops by 10%). Long-term holding bottom line: Automotive quarterly delivery volume remains above 80,000 units. Position Allocation: Recommend maintaining 40%-50% of total portfolio weighting (currently 59% is high, can adjust after earnings reports). Meituan-W: Wait for Profitability Repair, Focus on Core Business\nCore Opportunity: Stable takeout market share (65%), takeaway business growth of 40%, valuation undervalued (SOTP target price of HKD 247). Risk Mitigation: If the takeout UE (average profit per unit) turns positive, it is a signal for adding positions; if competition intensifies, the stock price may fall to HKD 80, and we can buy back shares in batches. Long-term holding bottom line: Core local business operating profit rate recovers above 15%. Position Allocation: Recommend maintaining 30%-40% weighting (currently 41% is reasonable, but be wary of competition dragging it down). Diversified Investment Recommendation\nHong Kong tech stocks are under pressure recently, but long-term they still represent new quality products. Consider allocating 10%-20% of capital to high dividend assets (such as telecommunications operators) or Hong Kong tech ETFs to hedge the risk of a single stock. Key Monitoring Metrics and Time Nodes Time Node Xiaomi Focus Meituan Focus Action Guidance November 2025 Q3 Earnings Report: Vehicle Deliveries, Mobile Gross Margin Trend Q3 Earnings Report: Delivery UE Improvement, New Business Loss Rate If earnings report meets targets, increase position; otherwise maintain current position. Key Monitoring Metrics and Time Nodes Time Node Xiaomi Focus Meituan Focus Action Guidance Q1 2026 Xinjiang Model Road Testing Progress, Premium Phone Sales Volume Level of Reduced Delivery Subsidies, Profit Turning Point for Flash Purchase Assess Annual Target Completion and Adjust Portfolio. Key Monitoring Metrics and Time Nodes Time Node Xiaomi Focus Meituan Focus Action Guidance Long-Term (3 Years) Automotive business profitability, AIoT penetration rate Instant retail market share, policy cost absorption Hold until target price or downgrade fundamentals; consider reducing holdings. Key Monitoring Metrics and Milestones Summary Recommendations Take Immediate Action: Maintain the status quo, and avoid impulsive buying to cover positions before earnings. Current stock prices have partially reflected negative news, but volatility may increase pre-earnings. Long-Term Confidence Support: Xiaomi’s automotive ecosystem and smartphone premiumization are core logic drivers, and short-term incidents do not change the company\u0026rsquo;s long-term technological iteration capabilities. Meituan’s profitability will be significant once the food delivery war ends (referring to Alibaba’s observation of benefits from a distance). Risk Warnings: The overall Hong Kong stock market is highly sensitive to global liquidity, and if the Federal Reserve delays rate cuts, it could suppress technology stock valuations. Ensure investment funds are long-term idle capital. This plan is based on publicly available information and does not constitute investment advice. The market carries risk; decision-making requires caution. We recommend regular review (e.g., quarterly) to adjust strategies.\nSummary Recommendations It might not be appropriate to add more positions at this time, pending the release of financial reports. What if the stock price rises significantly then?\nSummary Recommendations The question you raised is extremely critical, and it has accurately pinpointed a classic dilemma faced by long-term investors: avoiding short-term risks (waiting for the earnings report) can conflict with pursuing the best cost (fearing missing out). Your concern that “adding to your position after the earnings report if the stock price surges will cause you to miss out” is very reasonable. The market often has a forward-looking nature, and if the earnings report is truly exceptional, the stock price is likely to react quickly in the short term. However, given your current holdings of these two stocks, “waiting for the earnings report” remains the more optimal strategy. Below, I will explain the reasons in detail and provide a step-by-step addition strategy that balances “risk” with “opportunity.”\nWhy is “Waiting for the Earnings Report” Still a More Reasonable Choice in the Current Situation? The core reason lies in: The uncertainty surrounding the two stocks you hold stems primarily from fundamental contradictions within their businesses, and the earnings report is key to validating these contradictions. There’s yet to be a significant “catalyst” (a substantial price increase) in current valuations.\nFor Xiaomi: The core contradiction is \u0026ldquo;a crisis of confidence in its automotive business\u0026rdquo;\nCurrent Situation: The negative impact of the SU7 safety incident is still unfolding, leading to market skepticism regarding Xiaomi’s car quality, reputation, and future sales expectations. This is the primary factor suppressing the stock price. The Validation Role of the Earnings Report: The third quarter earnings report will provide crucial vehicle delivery data. A strong delivery volume would effectively dispel market doubts and drive a sustainable rise in the stock price. Until then, any rally would likely be fragile. Risk vs. Opportunity Comparison: The Risk of Waiting (Missing Out): Given the prevailing negative sentiment, the probability of a significant, sustained price increase before the earnings report is relatively low. The Risk of Blindly Jumping In (Getting Trapped): If the report shows poor vehicle sales, the stock could continue to decline, leaving you with the greater risk of “buying in halfway down,” and at a higher cost. For Meituan: The core contradiction is \u0026ldquo;when will profitability be restored?\u0026rdquo;\nCurrent Situation: The market worries that intense competition will continue to erode profits from its core takeout business (UE – Unified Economy). The Validation Role of the Earnings Report: The core local business operating profit and adjusted net profit in the report are the only objective benchmarks for determining whether the “takeout war” has truly eased. Only improved data can prove that Wang Xiting’s “no matter the cost” phase is over. Risk vs. Opportunity Comparison: The Risk of Waiting (Missing Out): Again, before the profitability inflection point is confirmed, there\u0026rsquo;s a lack of a solid foundation for a significant rally in the stock price. The Risk of Blindly Jumping In (Getting Trapped): If the report shows competition intensifying and profits further declining, concerns about a “valuation trap” will intensify, and the stock could take another step down. Conclusion: For long-term investment, buying \u0026ldquo;correct\u0026rdquo; is far more important than buying \u0026ldquo;cheap.\u0026rdquo; The earnings report provides the key evidence for determining “correctness.” To avoid the risk of a minor “missed opportunity,” and to bear the risk of a deep “trap,” from a risk-reward ratio perspective, it’s not worthwhile.\nHere’s Your Specific Action Plan: Balancing “Waiting” and “Missing Out” Anxiety You don\u0026rsquo;t need to make extreme choices between \u0026ldquo;holding\u0026rdquo; and \u0026ldquo;going all in.\u0026rdquo; A smarter strategy is: “Base Position Observation, Pyramid-Style Adding”.\nStep 1: Immediately Establish “Observation Positions” and “Operational Discipline” (Now)\nMaintain your existing positions as a base position, ensuring you don’t completely detach from the market. Set a trigger for adding to your position. For example: Small Food Holdings (小米): The stock price breaks out with volume on a key technical level (e.g., 50 HKD) or there\u0026rsquo;s a clear positive investigation result regarding the SU7 accident. Meituan: News emerges of a competitor exiting the price war, or the stock price breaks through the 100 HKD integer barrier with volume. The benefit of doing this: If positive news drives the stock price up ahead of the earnings report, you can seize opportunities according to your pre-set discipline and avoid completely missing out. Step 2: Small Batch Investing Before Earnings (Optional – Suitable for Investors Seeking Smoother Costs)\nIf you’re very concerned about missing out, divide the funds earmarked for adding to your position into 10-20 portions. Before the earnings release, if the stock continues to decline in the shadows, invest one portion weekly or bi-weekly. This way, costs are gradually diluted, but each investment amount is small, and even if the earnings report is negative, losses can be controlled. Step 3: “Certainty” Adding After Earnings (Core Operation)\nThis is your main adding-to-position stage. Based on the earnings results, take three actions: Scenario A (Exceeds Expectations): The earnings data is strong and validates your investment logic. At this time, you should aggressively add to your position. Even if the stock price has already risen, the fundamental turning point has been confirmed, and from a long-term perspective, the current price level is still the base of the mountain. You can use a strategy of “chasing gains without chasing high prices,” buying in batches. Scenario B (Meets Expectations): The earnings report is neutral, with no surprises or shocks. Maintain your existing position or only modestly add to it, waiting for the next quarter’s signal. Scenario C (Falls Short of Expectations): The earnings report confirms market concerns. You should stop adding to your position and re-evaluate whether the long-term logic has been disrupted. The stock price may fall, but this also provides you with a lower, safer entry point for adding to your position. Summary: Optimized Long-Term Investment Plan Stage Trading Strategy Core Objective Pre-Reporting Period (Now - November) “Hold and Observe”: Maintain existing positions, without adding or only making very small regular investments. Set trigger conditions for adding to positions to avoid sudden positive developments. Control Risk, Preserve Capital. Ensure not to invest more funds when fundamentals deteriorate. Summary: Optimized Long-Term Investment Plan Stage Trading Strategy Core Objective Post Earnings (Mid to Late November) “Follow the Trend”: Make decisions based on earnings results. Aggressively add to positions if exceeding expectations; patiently wait for better opportunities if underperforming. Improve Decision Quality. Allocate capital to directions with higher fundamental certainty. Summary: Your Long-Term Investment Plan – Optimized Stage Trading Strategy Core Objective Long Term (3 Years) “Hold and Optimize”: Focus on the company’s long-term competitiveness (Xiaomi\u0026rsquo;s ecosystem, Meituan’s retail) rather than short-term stock price fluctuations. Achieve Compound Growth. Summary: Your Optimized Long-Term Investment Plan Please remember: In long-term investing, patience is a powerful competitive advantage. The market will always give you opportunities; if you miss one, there will be another. But once your principal has been lost, it’s difficult to recover. Waiting for the certainty of financial reports is one of the most effective ways to protect your capital and increase your chances of success.\nWe hope this comprehensive plan answers your questions and helps you make more confident decisions.\n","date":"2025-10-17","language":"en","permalink":"https://ttf248.life/en/p/attempt-ai-analysis-of-subsequent-holdings-operations/","tags":["Review Log","deepseek","Xiaomi","Meituan","Hong Kong Stocks","investment"],"title":"Attempt AI analysis of subsequent holdings operations.","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"In mature markets like the US stock market, the closing price (Closing Price) holds significant reference value. It’s not only a summary of daily trading sentiment but also a benchmark for index calculations, fund net asset valuation, and portfolio valuations. Consequently, trading demand focused on closing prices has emerged. Within the Interactive Brokers (IB) trading platform, MOC (Market-on-Close, Closing Price) and LOC (Limit-on-Close, Limit Price) are important order types that allow investors to execute trades at the close.\nThe core objective of both order types is to trade at or near the official closing price, but they differ fundamentally in terms of execution certainty and price control, suitable for different trading strategies and risk preferences.\nMOC (Market-on-Close) Closing Price Order Core Features: Guaranteed Execution, Price Not Guaranteed\nA MOC order is a market order designed to execute trades at the official closing price (or the price formed during the closing auction). How it Works:\nWhen you submit a MOC buy or sell order, the system holds it until the exchange’s closing auction period. At that time, your order will be matched with all other orders seeking to trade at close – including MOC and LOC orders – resulting in execution at the final single closing price.\nAdvantages:\nHighly Deterministic Execution: As long as market trading is normal, your MOC order will almost always execute. This is crucial for traders who must complete positions on a given day, such as index fund managers adjusting to track an index, or traders needing to liquidate positions before settlement. Risks:\nPrice Uncontrollable: You cannot predict the final closing price. In periods of significant market volatility or imbalance in buying and selling pressure during the close auction period, the final closing price may deviate significantly from your order placement price, leading to execution costs higher than expected (for buys) or sale prices lower than expected (for sells). This is known as “slippage” risk. Suitable Scenarios:\nIndex Fund or ETF Rebalancing: Requires precise matching of index component weights at close, guaranteeing execution. Trades Requiring Completion on a Given Day: Such as responding to a Margin Call or executing stock purchases/sales on an options expiration date. Strategies Where Execution Certainty Outweighs Price Precision. LOC (Limit-on-Close) Limit Order Close Core Features: Guarantee Price, Execution Not Guaranteed\nA LOC order combines the features of a limit order and a closing order. It allows you to set a maximum buy price or minimum sell price that you are willing to accept; the order will only be executed if the closing price is equal to or better than your specified limit price.\nHow it Works:\nWhen you submit a LOC order, you must specify a limit price. During the closing auction, the system compares the final official closing price and your limit price:\nFor Buy LOC Orders: If the closing price is lower than or equal to your limit price, the order will execute at the closing price. If the closing price is higher than your limit price, the order will not be executed and will automatically cancel. For Sell LOC Orders: If the closing price is higher than or equal to your limit price, the order will execute at the closing price. If the closing price is lower than your limit price, the order will not be executed and will automatically cancel. Advantages:\nPrice Control: By setting a limit price, you can effectively control transaction costs and avoid executing trades at unfavorable prices, mitigating the risk of significant price fluctuations during the closing period. Risks:\nExecution Uncertainty: If the closing price does not touch your specified limit price (i.e., it is unfavorable to you), your order will not be executed. This could cause you to miss trading opportunities and prevent you from completing your intended build or close operations. Suitable Scenarios:\nInvestors Sensitive to Transaction Costs: Wanting to trade at the closing time but unwilling to accept prices that deviate significantly. Opportunistic Traders: Believing the closing price may be favorable, but setting a price floor to prevent unexpected events. Investors Who Want to Trade in the Closing Period But Have No Hard Requirement for Execution. MOC vs. LOC Comparison Summary Feature MOC (Market On Close) LOC (Limit Order on Close) Trade Certainty High (Guaranteed to execute) Uncertain (Executes only if the closing price is better than or equal to the limit price) MOC vs. LOC Comparison Summary Feature MOC (Market On Close) LOC (Limit Order on Close) Price Control None (Accepts any final closing price) Yes (Trade price will not be lower than your set limit price) MOC vs. LOC Comparison Summary Feature MOC (Market On Close) LOC (Limit Order on Close) Core Advantage Strong Execution, Ensures Trade Completion Cost Control, Mitigates Price Risk MOC vs. LOC Comparison Summary Feature MOC (Market On Close) LOC (Limit Order on Close) Primary Risk Price slippage, execution cost may not be ideal Order may not be executed, missed trading opportunity Important Considerations When Using IB Platform Time Restrictions: MOC and LOC orders typically must be submitted before a specific time prior to market close. For example, the NYSE and NASDAQ have strict deadlines (usually 5 to 15 minutes before close), after which they cannot be submitted, modified, or cancelled. Be sure to check and comply with the specific rules of each exchange. Not All Stocks Support: While most listed stocks on major exchanges support MOC and LOC orders, some thinly traded or securities trading on specific exchanges may not. Direct Routing: When placing orders through the IB platform, you may need to route them directly to the corresponding exchange (e.g., NYSE, ARCA, NASDAQ) in order to use MOC or LOC options. Conclusion\nChoosing between a MOC and LOC order is essentially a trade-off between “execution certainty” and “price control.” If your primary goal is to ensure that your transaction will be executed regardless of the market close, then MOC is the appropriate choice. Conversely, if you are more concerned with the cost of the trade and can accept the possibility that the order may not ultimately execute, then LOC will provide you with an important layer of price protection. Understanding the differences between these two order types will help you to execute your closing trading strategies more flexibly and precisely.\n","date":"2025-10-15","language":"en","permalink":"https://ttf248.life/en/p/detailed-explanation-of-ibs-moc-and-loc-order-types-two-strategies-for-closing-price-trading/","tags":["ib","Closing Price Trading","MOC","LOC"],"title":"Detailed Explanation of IB’s MOC and LOC Order Types: Two Strategies for Closing Price Trading","year":"2025"},{"categories":["Financial Knowledge Base"],"content":" Hong Kong Stock Exchange (HKEX) dark pool trading involves numerous proprietary terms, with most being recognizable but some still unfamiliar. Reference: Everyone drew lots! Xuanzhe Biology - B(2575.HK) soared 127% on its first day of listing, 190,000 people chose to take a look\nThis is an article related to dark pools, outlining and explaining the proprietary terms within it: The company issued 67,333,350 shares globally for public offering, with a prospectus price of HK$11.6. The issuance ratio was 13%, raising approximately HK$781 million, using mechanism B allocation. The public offering fixed proportion was 10%. A cornerstone investor was introduced in the state-allocated portion, subscribing for approximately HK$77 million, accounting for 9.81% of the global offering. The company’s total subscription reached 376,000 people, with 190,000 choosing to subscribe one lot; another group subscribed for 19,516 people, hitting 2416 shares. The sales results showed that the company\u0026rsquo;s prospectus public offering multiple ratio reached 4908.33 times, state allocation subscription multiple was 10.15 times, with no adjustment; Xuanzhe Biology - B had a single-lot winning rate of only 1%, with everyone drawing lots, even hitting the top hammer it was unstable in the end, and ultimately 13,467 people were successful in getting in. Furthermore, the company’s IPO this time had no green shoe option.\nBelow is a systematic collation and explanation of the proprietary terms related to Hong Kong IPOs and dark pools within the article:\nOffering Structure and Allocation Mechanism Global Offering Refers to the offering of shares to global investors when a company first goes public (IPO), including Public Offering (targeting retail investors) and Institutional Placement (targeting institutional investors). This offering involved 67,333,500 shares for Huatong Biology-B, representing a 13% issuance ratio, meaning the public holding stake will account for 13% of the total share capital after listing.\nMechanism B Allocation Method A new stock allocation mechanism launched by the Hong Kong Stock Exchange in 2023, allowing issuers to pre-set a minimum public offering percentage (10% - 60%) and without a clawback mechanism. Huatong Biology-B chose a fixed public offering ratio of 10%, meaning it wouldn\u0026rsquo;t draw down shares from the institutional placement even with an international subscription multiple as high as 4908 times, resulting in a consistent public offering share of 6,733,400 shares.\nClawback Mechanism Under traditional Mechanism A, if the oversubscription multiple triggers a threshold (e.g., above 100x), shares from the institutional placement can be clawed back to the public offering, up to 50%. However, Mechanism B does not apply this rule, so Huatong Biology-B did not conduct a clawback.\nSubscription Group and Subscription Strategy Public Offering and International Placement Public Offering: Accounted for 10% (673.34 million shares) of the global offering, targeting retail investors, with 37.6 thousand applicants, including 19 thousand who only subscribed for one lot. International Placement: Accounted for 90% (6060.01 million shares), primarily allocated to institutional investors. One cornerstone investor was introduced in this round, subscribing for HKD 0.77 billion, representing 9.81% of the global offering, with a lock-up period typically lasting 6 months. Group A and Group B Group A: Small to medium investors with subscription amounts ≤ HKD 50 million, allocated 50% of the public offering shares (336.67 million shares). This group had 19 thousand applicants, including 19 thousand who only subscribed for one lot. Group B: High-net-worth investors or institutions with subscription amounts \u0026gt; HKD 50 million, allocated the remaining 50% of the public offering shares (336.67 million shares). This group had 19,516 applicants, with a maximum subscription amount (top hammer) of 2416 shares. Top Hammer Subscription Refers to Group B investors subscribing for the highest limit of public offering shares, typically allowing them to acquire 50% of the public offering shares. Bamboo Bio-B’s top hammer quantity was 2416 shares, but due to the extremely hot public offering (over-subscribed 4908 times), top hammer investors still needed a draw, with a very low hit rate. Subscription Data and Winning Rules Subscription Multiple\nPublic Subscription Multiple: Total subscription funds offered publicly divided by the offering amount, reflecting retail investor demand heat. Bamboo Bio-B reached 4908.33 times, setting a market record. Institutional Allocation Multiple: Institutional subscription amounts divided by the offering amount. Bamboo Bio-B was 10.15 times, indicating moderate institutional demand. One-Hand Winning Rate and All-Round Lottery Draw\nOne-Hand Winning Rate: The probability of successfully subscribing with one hand (typically the minimum trading unit). Bamboo Bio-B was only 1%, meaning that out of every 100 people, only 1 person would be successful. All-Round Lottery Draw: Due to the extremely high oversubscription multiple for the public offering, all subscribers (including Group B and last-hit hammer investors) were required to participate in a lottery draw to allocate shares, without a \u0026ldquo;steady win\u0026rdquo; mechanism. Fractional Share Allocation Publicly offered shares are allocated proportionally after being divided into fractional shares (such as 50 shares), and any remaining fractional shares will be consolidated and distributed from highest to lowest based on subscription amount. In Bamboo Bio-B, the number of successful investors was 13,467 people, and some investors may obtain additional shares through fractional share allocation.\nSpecial Mechanisms and Market Impact Anchor Investors Strategic investors who sign subscription agreements with the issuer before an IPO, typically well-known institutions or corporations. Xuzhou Biotech-B introduced one anchor investor who subscribed to HK$0.77 billion, representing 9.81% of the global offering, aiming to enhance market confidence.\nGreen Shoe Mechanism (Over-Allotment Option) Underwriters can issue an additional 15% of shares after listing within 30 days to stabilize prices. If the price falls below the IPO price, underwriters must buy back stocks from the secondary market to support the price. Xuzhou Biotech-B did not use a green shoe mechanism, which could lead to significant volatility in its initial stock price.\nDark Pool Trading Over-the-counter trading of new shares on the day before listing, typically provided by brokers. Dark pool prices reflect the market\u0026rsquo;s preliminary expectations for the new shares. If they are higher than the IPO price (as with Xuzhou Biotech-B’s dark pool price potentially rising), it indicates a good performance on its first trading day; otherwise, it could lead to a break-down.\nKey Term Comparison and Market Background Mechanism A vs. Mechanism B\nMechanism A allows for a buyback, enabling retail investors to obtain more shares during oversubscription; Mechanism B has a fixed public offering ratio, better suited for IPOs dominated by institutions. Bamboo Bio-B chose Mechanism B, likely because the underwriters wanted to balance the allocation between institutional and retail investors. Group A vs. Group B\nGroup A had a lower chance of winning but potentially higher returns per share (due to more dispersed allocation), while Group B had a higher chance of winning but incurred higher financing costs. Bamboo Bio-B Group B received 19,516 applications, reflecting high-net-worth investors\u0026rsquo; enthusiasm for pharmaceutical stocks. Cancellation of the Buyback Mechanism’s Impact\nUnder Mechanism B, there is no buyback, leading to Bamboo Bio-B’s public offering of only 6.73 million shares, exacerbating the “many crows, few pots” situation for retail investors, resulting in a historical low in the initial subscription rate. Summary The IPO case of Xuan Zhu Bio-B vividly illustrates the structural characteristics of the Hong Kong stock market: the application of Mechanism B limited retail investor allocation ratios, base investors stabilized institutional demand, while super-high subscription multiples and a full draw highlighted the market’s speculative fervor for biotech stocks. The absence of dark pool trading and a green shoe mechanism further amplified the uncertainty during the initial listing period. Investors should combine their risk preferences with rational assessments of new stock fundamentals and market sentiment, avoiding blind following.\n","date":"2025-10-15","language":"en","permalink":"https://ttf248.life/en/p/systematic-collation-and-explanation-of-proprietary-terms-related-to-hong-kong-ipos-and-dark-pools/","tags":["Hong Kong Stocks","IPO","Dark Web","Proper Nouns","Systematic Review","Explanation"],"title":"Systematic collation and explanation of proprietary terms related to Hong Kong IPOs and dark pools.","year":"2025"},{"categories":["Diary Ramblings"],"content":" This morning between 7:30 and 8:30, the internet at my house went down silently. The external service deployed on my computer precisely recorded the moment it disconnected, everything happening without warning. At noon, checking the router status via my phone, it was still offline. I’d experienced similar situations before, usually every few hours, with the network automatically recovering – assuming it was routine maintenance from our telecom provider. The network\u0026rsquo;s “self-repair” didn’t materialize as expected. Desperate, I embarked on a convoluted path to seek professional help. First, the apartment was self-service rented, and the living room had been renovated, creating a room with a balcony – the light cat and main router were located there, serving as the network hub. The door to this room, separated from the living room, was locked. Fortunately, the owner of this room – my roommate – had just moved out recently. This was a stroke of luck; otherwise, scheduling a repair appointment with a technician during weekdays would likely have been another protracted “tug-of-war.”\nI contacted self-service customer support to request a temporary password. Customer support advised me to submit a ticket for the network issue, which immediately transferred me to an outsourced third-party customer service representative. Then, that representative forwarded me to telecom customer service. After obtaining a temporary password, I opened the door to the room. I looked at the telecom’s light cat – the device had a yellowish exterior and looked quite old, possibly left by the previous tenant or sourced from self-service. It lacked any indicator lights or buttons to press. Considering restarting it seemed like a waste of time after all the troubleshooting, I just wanted to lie down and rest for a bit before heading back to work in the afternoon. Afternoon, telecom technician contacted me, sent the door password to the technician, relying on trust. After arriving at the site, the technician spent half a day troubleshooting, and the final solution was surprisingly simple – he simply restarted the light cat. Recently, I’ve downloaded a lot of data, which could potentially be due to sustained high load carrying causing the old light cat to crash. In the future, if there are any issues, I\u0026rsquo;ll ask the technician to replace it with a new one. Since it’s a self-service rental, this maintenance falls within the normal range.\n","date":"2025-10-15","language":"en","permalink":"https://ttf248.life/en/p/a-network-repair-incident-caused-by-being-too-lazytroublesome/","tags":["Network Failure","Light Cat","Telecommunications","Restart"],"title":"A network repair incident caused by “being too lazy/troublesome.”","year":"2025"},{"categories":["Investment"],"content":"Write a wrap-up record to translate investment thinking into text, clarifying one’s thoughts and resisting emotional biases. Trading itself is anti-human, requiring us to maintain clarity, objectivity, and discipline. Through recording and review, we can systematically examine the decision-making process, avoiding emotional pitfalls.\nAs previously mentioned, the sharp drop in US equities on Friday last week, and concerns regarding a potential “trade war 2.0,” have now settled as the market opened this Monday – essentially a “false alarm.”\nIndex Funds: Executing the Plan Initially anticipating a significant downturn, I added positions in the沪深300 (Shanghai-Shenzhen Stock Exchange 300) and恒生科技指数 (Hang Seng TECH ETF) through Alipay. However, most of the declines in the trailing market were recovered. Given the relatively small size of the initial capital allocation, I will not make any additional operations for now. Future index fund replenishment strategies will be more conservative and gradual, primarily utilizing fixed-income plus products for asset allocation.\nHong Kong Stocks: Rapid Response and Disciplined Trading to “Black Swans” Based on the current Hong Kong stock positions, if further declines persist, we will need to deploy new funds into trading.\nXiaomi Event and Cognitive Correction Today, Xiaomi experienced a “black swan” event: a fatal car accident involving one of its electric vehicles. My initial cognition was that the volume of traffic accidents is massive, and given the increasing vehicle fleet size for Xiaomi, isolated incidents are a matter of probability. As long as subsequent investigations rule out design flaws in the vehicle itself, the long-term impact on the stock price should be manageable.\nThis morning, Xiaomi’s decline was significantly greater than that of other stocks in the Hong Seng Technology sector. I missed the initial reaction due to being busy eating and not switching the Futu App interface to the news section.\nBased on technical analysis, I selected a range I considered a dense accumulation zone for potential bottoms, placing an order to buy at the next price differential. My plan was likely to wait for tomorrow’s traffic police notification, but unexpectedly, the investigative results were released in the afternoon – the driver involved was suspected of drunk driving and speeding. This news caused the stock price to rebound sharply.\nTrading Summary: Reinforce Discipline Disciplined Trading: This entry was explicitly defined as short-term speculation (“gambling”). Its core objective was to: If successful, quickly realize profits and exit with minimal risk to lower the average cost of existing holdings; If unsuccessful, decisively cut losses and exit. The original plan was to fulfill it today or tomorrow, ultimately completed within today’s market rebound.\nLooking back at previous trades: Compared to the initial capital planning, the position is now nearing full allocation. Reviewing Meituan and Xiaomi transactions from half a month ago, we found that several previous short-term purchases followed by declines, failing to timely cut losses and instead irrationally holding onto hopes of recouping losses, which is a significant problem.\nThe biggest progress in this trading was: being able to “not greedily chase profits” with short-term positions; strictly adhering to the trading plan, without blindly adding to positions at unsuitable times.\nTransaction Fees for Short-Term Trading In the past, during the development of brokerage systems, I had extensively researched transaction fees but never carefully considered their impact from a trader’s perspective. It wasn\u0026rsquo;t until today, when conducting a standard T+0 turnaround trade, that I deliberately calculated the returns and clearly realized that Hong Kong stamp duty (one-tenth of the transaction amount) is the largest component of trading costs.\nLooking back, my career began in developing brokerage systems for Hong Kong and US stocks. I deeply understood the importance of transaction fees within the system, but lacked firsthand experience as a trader regarding whether they were more or less, nor did I ever delve into how the Hong Kong Exchange (HKEX) generated profits as a listed company. When opening HKGS (Hong Kong Gold Shares) at the beginning of the year, my investment goals remained focused on the Hang Seng Tech Index without considering buying shares in HKEX itself. This mindset resembled a stubborn “wherever I fall, I’ll stand up” attitude.\nIt has been proven that limited knowledge framed the initial investment choices. Considering that the Shanghai and Shenzhen Stock Exchanges, both under the China Securities Regulatory Commission, are not listed companies, I had actually considered similar industries – domestic brokerage firms. Choosing a brokerage firm was primarily guided by the media narrative of “market makers,” but if comparisons were made, exchanges as market infrastructure have inherent scarcity and monopoly characteristics, undoubtedly making them a better choice than brokerages.\n","date":"2025-10-13","language":"en","permalink":"https://ttf248.life/en/p/reverse-human-nature-trading-review-xiaomis-black-swan-incident-t0-compliance-practices-and-the-neglected-hong-kong-stamp-duty/","tags":["Review Log","Position / Layout","Add to Position / Cover Short (depending on context – both are common translations)","Iron Law"],"title":"Reverse Human Nature Trading Review: Xiaomi’s “Black Swan” Incident – T+0 Compliance Practices, and the Neglected Hong Kong Stamp Duty","year":"2025"},{"categories":["Investment"],"content":"For investors seeking to steadily progress in the Hong Kong stock market, success doesn’t stem from precisely predicting every fluctuation of the market, but rather from establishing a scientific, rational, and strictly adhered-to investment system. This system\u0026rsquo;s core consists of three pillars: reasonable position control, intelligent rebalancing strategies, and unwavering trading discipline. This article will consolidate these key elements to provide investors with a comprehensive and detailed operational guide.\nPosition Control – The Cornerstone of Resilient Investing The primary goal of resilient investing is “to preserve capital and develop afterwards.” Position control serves as the “shield” to achieve this, determining your ability to withstand market volatility.\nOverall Allocation: Dependent on Risk Tolerance and Market Temperature Personal Risk Tolerance: This is the fundamental determinant of your allocation ceiling. Risk-averse investors should maintain a total position no higher than 60%, even in bull markets. Investors with slightly higher risk tolerance can set their ceilings at 70%-80%. At all times, maintain at least 20% cash as a strategic reserve to capitalize on extreme opportunities or unforeseen needs.\nMarket Temperature:\nHigh/Bubble Phase (Market Mania): Allocation should be reduced to 30%-50% or lower. Preserving profits is the priority. Neutral/Choppy Phase (Uncertain Direction): Allocation can remain at 50%-70%, making structural adjustments. Low/Panic Phase (Valuation Bottoming): This is the golden time to increase allocation, potentially reaching 70%-80% or higher. Individual Stock and Industry Exposure: Diversify Risk, Avoid Overconcentration Maximum Single Stock Position: Regardless of how optimistic you are about a particular stock, the recommended position size for any single stock should not exceed 20% of the total investment portfolio. For companies with limited understanding or higher risk profiles, the position size should be further reduced to 5%-10%. Maximum Single Industry Exposure: Given the high concentration of industries in Hong Kong (such as finance and technology), it’s important to diversify. The total exposure to any single industry should not exceed 30%-40% to mitigate the impact of industry-specific “black swan” events. Buyback Strategy – The Art of Transforming Passivity into Proactivity A buyback strategy is the “lever” for prudent investors to accumulate high-quality positions in a declining market. However, this requires only operating on companies with sound fundamentals and uncompromised core competitiveness. For companies with deteriorating fundamentals or “penny stocks,” the only correct action is to cut losses.\nHow much to buy on dips for adding to position? The core of accumulating during a decline is “buying lower,” but this must be executed with a plan and discipline.\nPyramidal Accumulation Strategy (Wide Base, Narrow Top): This is a relatively conservative approach where the amount purchased increases as the price falls further. Initial Position Building: Establish a base position within a reasonable valuation range. First Refill: When the price drops 15%-20% from the initial position building price. This is a common re-entry point, filtering out normal market fluctuations. Second Refill: When the price drops another 15%-20% from the first refill price (cumulative decline of approximately 30%-40%). Third Refill: When the price drops another 15%-20% from the second refill price (cumulative decline potentially reaching around 50%). At this point, it’s typically extreme panic. If the company\u0026rsquo;s fundamentals remain solid, it’s a great buying opportunity. Is it reasonable to add to the position a few times? To avoid overinvesting capital in a wrong decision, the number of times to add to the position should not be excessive.\nRecommended number of additions: 2-3 times is appropriate. Risk control: If the stock price still doesn\u0026rsquo;t improve after 2-3 major add-on purchases, you must re-examine your initial investment logic. Unlimited adding may lead to a single holding ratio being too high, dragging down the entire investment portfolio. Maintain cash reserves: Excessive additions will quickly deplete available funds, causing you to miss other better opportunities that appear in the market. Trading Discipline – The Core for Newbies’ Progression If position sizing and stop-lossing are “techniques,” then trading discipline is the “way.” For novice traders, adhering to discipline is a decisive factor in whether they can survive in the market long-term.\nPlanning and Execution Discipline: Never Go into Battle Without a Plan Plan Before Trade: Every trade must be preceded by a clear understanding of the buy rationale, target price (take profit), and stop-loss level. During the trade, strictly adhere to the plan and avoid emotional interference. Avoid Riding the Wave and Panic Selling: Overcome the fear of missing out (FOMO) and panic selling emotions. Only execute trades at points that align with your plan. Risk and Capital Management Discipline: Survival is the Priority Strict Stop-Loss, No Hesitation: A stop-loss is the lifeline for protecting your capital. The most dangerous habit for beginners is to hold onto losing trades. Set your stop-loss levels at -5% to -10%, and execute without hesitation upon reaching them. Don’t Add to Losing Trades to Average Down to Cost Basis: This is a fatal error. If a trade proves to be wrong (falling below the stop-loss), the correct approach is to exit, not to invest more money to “dilute the cost.” This can turn a small mistake into a major disaster. Mindset and Emotional Control Discipline: Be the Master of Your Emotions Accept Losses as Part of Trading: No one can win every battle. View small losses as a necessary cost of trading, focusing on the long-term overall profit/loss ratio. Don’t Get Greedy from Profits, Don’t Be Bitter from Losses: Break free from a “gambling mentality,” don\u0026rsquo;t take risks due to profits, and don’t retaliate with impulsive trades due to losses. Maintain a calm mindset and remain consistent. Learning and Review Discipline: Continuous Evolution Maintain a Trading Journal: Detailed record of your thought process and results for each trade, with regular reviews to analyze successes and failures. This is the most effective way to self-improve. Stick to Your Circle of Competence: Only invest in areas you understand and can truly comprehend. Avoid unfamiliar fields and complex financial products. Patience and Discipline are Superior to Everything Else As a prudent Hong Kong stock investor, your goal isn’t to be a speculator dancing on the crest of market waves, but rather to be like a discerning general, orchestrating strategy from behind the scenes. Please treat position control as your steadfast shield, opportunistic buying strategies as your sharp spear, and trading discipline as an immutable military code.\nIn the initial stages of trading, prioritize “minimizing losses” over “making big profits.” Through continuous learning, practice, and review, you will ultimately achieve long-term, steady wealth appreciation in this market brimming with opportunities and challenges. Remember, patience and discipline are always more important qualities than predicting the market.\n","date":"2025-10-13","language":"en","permalink":"https://ttf248.life/en/p/a-complete-guide-to-positioning-replenishing-positions-and-stop-loss-orders/","tags":["Position / Layout","Transaction","Emotion","Discipline","Xiaomi","Lei Jun"],"title":"A Complete Guide to Positioning, Replenishing Positions, and Stop-Loss Orders","year":"2025"},{"categories":["Investment","The Seven Seconds of a Fish"],"content":"Previously, investors focused on financial news. Since Trump’s return, they also needed to pay attention to his Twitter (a private version). The trade war continued to escalate, leading to a sharp decline on April 7th, which was quickly followed by a rebound. This time, though, are people still willing to jump in?\nBackground Review On April 7, 2025, following the impact of the U.S. implementation of an “equivalency tariff” policy, global stock markets experienced a “Black Monday.” The A-share market plunged, with the Shanghai Composite Index falling by 7.34% and the Shenzhen Component Index plummeting by 12.5%, with over 4,300 stocks declining by more than 9%. The Hang Seng Index in Hong Kong also fell by 13.22%, along with European and U.S. stock indices exceeding declines of 4%. China subsequently stabilized the market through state-owned enterprise (SOE) purchases and intervention by Huishang Securities.\nOn October 10th, U.S. stocks suffered another significant decline, with Chinese HShares falling by 6%, driven primarily by expectations of escalation in the U.S.-China trade war. Trump signaled a further increase in tariffs on China, and the U.S. would also impose hefty fees on Chinese ships. China announced retaliatory measures and levied special port fees, compounded by a government shutdown, declining consumer confidence, and market panic selling for safety.\nOriginal Link Position Control Currently, the state of short selling in A-shares isn\u0026rsquo;t a complete short position; there’s a small portion invested in index funds within Fixed Income Plus, but the bulk is still in the Hong Kong market. Xiaomi has already incurred principal losses, and Meituan remains a shareholder. The position control is somewhat unbalanced. Should we jump in and gamble on Monday? It\u0026rsquo;s a question to consider – currently, we don’t have enough cash flow. If we need to enter, we would rely on old friends like Alipay’s Jiebei for bridging funds. Greedy snakes swallow elephants – the position control is extremely unreasonable, and we should look for opportunities to reduce our holdings later.\nCompared to April 7th, the current position isn\u0026rsquo;t considered a low-level one; many stocks are at relatively high levels, particularly the technology stocks within the Heng Seng Tech index. If we were to add to positions, it would be more appropriate to use an ETF rather than individual stocks – for example: Turned around and couldn’t find anything suitable; gains were 20%-30%.\nRegarding the domestic market, long-term trends point towards a period of consolidation and decline, with potential for significant rallies in the short term. To make profits, it\u0026rsquo;s best to execute profit-taking operations within this timeframe.\nAssociated Term Definitions Black Swan The term \u0026ldquo;Black Swan\u0026rdquo; originates from Nassim Nicholas Taleb’s book The Black Swan.\nConcept: Refers to events that are extremely unlikely, unpredictable, but upon occurring, they generate extreme impact and disruptive consequences. Characteristics: Rarity/Unpredictability: These events have no precedent or warning signs before they occur, exceeding all conventional expectations and model predictions. Extreme Impact: Once they happen, they can cause catastrophic effects on markets, economies, and even societies. Post-hoc Rationalization: Despite being impossible to predict beforehand, people tend to find reasons and explanations after the event occurs, making it appear “understandable.” Source Legend: Before the discovery of Australia, Europeans believed all swans were white until black swans were discovered in Australia, completely overturning thousands of years of knowledge. Therefore, the Black Swan symbolizes unforeseen and cognitive breakthroughs. Stock Market Examples: The \u0026ldquo;9/11\u0026rdquo; terrorist attack in 2001 (a short-term shock to global markets). The initial impact of COVID-19 on the global economy and markets (although some argued it had grey rhino characteristics, its sudden outbreak and global spread, as well as the extent of its impact, were largely considered Black Swans). Gray Rhino The term “Gray Rhino” was coined by Michele Wucker.\nConcept: Refers to a potential crisis that is highly probable, has a significant impact, and yet is ignored or selectively delayed in addressing due to its obvious warning signs. Characteristics: High Probability/Predictability: The event has clear indicators and evidence before it occurs, making it a known risk. Easily Ignored: Because it’s not sudden but rather long-term or slowly developing, people become numb, exhibit optimism bias, or procrastinate, failing to take timely action. Significant Impact: Once it erupts, due to the lack of effective responses beforehand, it triggers a chain reaction and causes severe destructive consequences. Source Allusion: A gray rhino is large in size and has a slow reaction time; people can see it from afar, but often fail to avoid it because of negligence or indifference. Once it charges towards you, it will cause a fatal collision. Therefore, the gray rhino symbolizes obvious yet ignored major threats. Stock Market Example: The 2008 Global Financial Crisis (many experts had already warned about the high risk of the US subprime mortgage market, but were largely ignored). Sovereign Debt Crises, severe asset bubbles, systemic risks from climate change (these are long-accumulated, traceable major risks). ","date":"2025-10-11","language":"en","permalink":"https://ttf248.life/en/p/black-swan-goose-returns/","tags":["Position / Layout","stock-market","Black Swan","Rhino","U.S. Stock Market","Hong Kong Stocks","trade-war"],"title":"Black Swan Goose Returns","year":"2025"},{"categories":["Diary Ramblings"],"content":"Recently, I\u0026rsquo;ve been focusing on reducing fat and shaping my body, primarily through running at the gym to burn calories. I’m also supplementing this with some basic strength training to boost my basal metabolism. I’ve noticed a pattern: muscle soreness always lags behind, and not working out every day doesn’t cause as much pain; it\u0026rsquo;s really noticeable 48-72 hours after exercise.\nMy training goals are mainly to return to my ideal weight, so the intensity of strength training isn’t planned to be particularly high. Based on my experience hiking Mount Lu in September, this type of soreness usually takes about three days to fully resolve (when I was younger, I had some experiences with dieting and my physical condition was much better, recovery was much faster). Now that my leg muscles have adapted and recovered, but I feel like the main muscle groups throughout my body still need to be reactivated and adjusted one by one.\nDOMS (Delayed Onset Muscle Soreness) You mentioned this phenomenon is referred to as Delayed Onset Muscle Soreness (DOMS), often abbreviated as DOMS.\nIts main characteristic is that the onset of pain has a delay, and it’s not typically at the most intense immediately after exercise or the next day, but rather peaks between 24 to 72 hours post-exercise, which aligns with your experience (noticeable reaction two days later).\nHere\u0026rsquo;s a breakdown of the primary reasons why this occurs:\nMicroscopic Muscle Fiber Damage: DOMS is believed to be primarily caused by lactic acid buildup rather than lactic acid accumulation (lactic acid is cleared from muscles within an hour of exercise), but instead, it’s due to performing unfamiliar or high-intensity movements, particularly those involving a lot of eccentric contraction (muscle lengthening during exertion – for example, the lowering phase of a squat or running downhill) that cause microscopic tears or damage in muscle fibers and connective tissue. Inflammation Response: These microscopic injuries trigger the body’s inflammatory response, which is the process of the body repairing damaged tissue. The onset, development, and accumulation of this inflammatory response take time. During this process, tissues release chemicals (such as histamine, prostaglandins, etc.) to stimulate nerve endings, causing pain and soreness. Therefore, the soreness doesn\u0026rsquo;t become most noticeable until the second or third day after injury because it needs time for inflammation to fully develop. Your muscle soreness is delayed because it’s a process of your body undergoing muscle microscopic damage and an inflammatory response, rather than immediate lactic acid buildup. If you are currently doing basic training that includes a lot of strength training and eccentric contraction movements, it\u0026rsquo;s more likely to cause this delayed soreness.\nHow to Cope with and Address Rest and Recovery: Allow the affected muscles adequate rest time. Gentle Activity: Engage in light aerobic exercise or stretching, which can help improve blood circulation, accelerate metabolic waste removal, and promote recovery. Massage or Foam Rolling: Can relieve muscle tension and stiffness. Adequate Nutrition: It’s also important to replenish protein (to repair muscles) and carbohydrates (to replenish energy) promptly after exercise. Progressive Increase in Intensity: Avoid suddenly increasing exercise volume or intensity, allowing the body to gradually adapt to training. ","date":"2025-10-11","language":"en","permalink":"https://ttf248.life/en/p/delayed-muscle-soreness-dms/","tags":["Weight Loss","Exercise","Muscle Soreness"],"title":"Delayed Muscle Soreness (DMS)","year":"2025"},{"categories":["Repost / Share","Computer"],"content":"The frequency of article releases has noticeably increased with the use of AI, and I intend to differentiate this in the tags within the text as well. The author’s column will also note the names of large models. However, the issue persists: articles generated by AI have significantly reduced my level of involvement, with many articles being forgotten after a month or so. This occurs similarly when writing code – instead of analyzing problems based on existing knowledge, I instinctively turn to AI for analysis and troubleshooting, leading to a clear increase in “laziness.”\nGenerative AI may boost work efficiency, but its \u0026ldquo;gift\u0026rdquo; comes at a huge cost. A research study at Peking University analyzed 410,000 papers and longitudinal experiments, finding that AI accelerates knowledge production but leads to severe homogenization; a Harvard study showed that AI causes “credential bias,” with junior positions decreasing by 7.7%, exacerbating the Matthew effect. On a personal level, the creativity boost brought about by AI is a fleeting \u0026ldquo;illusion\u0026rdquo; – it disappears when deactivated, but ideological homogenization persists, forming “creative scars.”\nCurrent Situation Generative AI is not only reshaping industries across the board but fundamentally altering how humans write, think, and reason. Following the release of ChatGPT3.5, an optimistic expectation spread widely: AI would bring about “work leveling.”\nIn 2023, two MIT economics PhDs published empirical research on this claim in the Science journal, providing evidence to support it: that generative AI significantly boosts the performance of low-performing employees, potentially bridging the gap with high-performing ones and reducing inequality.\nThe Science journal editors summarized this as, “Weaker participants benefited most from ChatGPT, a finding with important implications for policies aimed at reducing productivity inequalities through AI.”\nHowever, two years later, reality seems to have not fully followed this ideal path.\nIn 2025, two Harvard economics PhDs, analyzing recruitment and employment data covering over 6.2 million employees and more than 1.5 billion instances between 2015 and 2025, revealed a stark truth: Generative AI is reshaping the labor market in a “credential-biased” way.\nThe data showed that between 2015 and 2022, the employment growth curves for junior and senior positions were roughly consistent, but starting in 2023, they began to diverge: Senior positions continued to rise, while junior positions started to decline.\nFor companies deeply embracing AI, the number of their junior-level positions decreased by approximately 7.7% over six quarters, while senior positions remained largely unaffected and even saw slight growth. This phenomenon was primarily due to a reduction in hiring rather than mass layoffs.\nAI has not brought about equitable leveling but has instead exacerbated the Matthew effect – “the rich get richer.” Cheng Travel CEO Liang Jianzhang commented on the paper: \u0026ldquo;AI will replace basic intellectual labor, exacerbating the difficulties faced by young people in education, marriage and early career stages.\u0026rdquo;\nThe structural changes in the labor market are just the tip of the iceberg. A deeper question then arises: as AI is integrated into our workflows, what impact is it having on human creativity itself? Is the efficiency boost brought about by AI truly internalized individual capabilities? Is it shaping – or even “homogenizing” – our thoughts in ways we haven’t yet perceived? Once individuals become overly reliant on AI, is their independent, original thinking ability enhanced, or is it subtly being weakened?\nRecently, Professor Li Guiquan\u0026rsquo;s research group at Peking University published a paper in the social science top journal Technology in Society, addressing these key issues head-on.\nThe core of the research comprised two parts. The first was a large-scale natural experiment that analyzed over 41,000 academic papers across all 21 disciplines before and after the release of ChatGPT3.5, dissecting AI’s true impact on global knowledge production. The second was a longitudinal behavioral experiment conducted over several months, exploring AI\u0026rsquo;s long-term causal effects on individual cognitive abilities in a laboratory setting.\nCombining breakpoint regression design and machine learning techniques, the research team revealed generative AI’s long-term and genuine impacts on both individual creativity and group homogeneity.\nThis journal is JCR 1-star, with an impact factor of 12.5, ranking 271 out of 271 journals in the socialscience, Interdisciplinary category.\n410,000 Papers\u0026rsquo; \u0026ldquo;Collective Unconscious\u0026rdquo; The most terrifying thing isn’t the noise, but the chorus of voices.\n410,000 Papers’ “Collective Unconscious” The study was a large-scale natural experiment. The research team extracted academic outputs spanning all 21 disciplines – physics, life sciences and biomedical sciences, applied sciences, social sciences, arts and humanities – from the authoritative Web of Science Core Collection database. Through random sampling of over 17,000 scholars, the team ultimately collected all 419,344 papers published before and after the release of ChatGPT-3.5, constructing a massive dataset to analyze the true impact of AI on global knowledge production. Illustration of homogeneity and creativity in academic papers before and after the release of Generative AI.\nAs shown in the figure above, prior to 2022, global academic output (red/blue lines) exhibited steady growth alongside homogeneity (gray line). However, following the release of ChatGPT3.5, both curves experienced a sharp increase in slope.\nIn other words, after GPT3.5’s release, academia not only accelerated knowledge production (creativity) at an unprecedented rate but also intensified the homogenization of its content at an even faster pace, clearly demonstrating the “double-edged sword” effect of generative AI on knowledge production.\nTo demonstrate that the observed changes were caused by AI and not due to chance, the research team employed a causal inference method called “Regression Discontinuity Design” (RDD).\nHow to Do They viewed the release of ChatGPT-3.5 in December 2022 as a natural “time breakpoint.” Whether a paper was published before or after that date posed numerous uncontrollable factors for individual scholars (such as review cycles), effectively creating a randomized “experimental group” (with the opportunity to use AI) and a “control group” (unable to use AI).\nWhy it’s Reliable This “pseudo-randomness” allows researchers to effectively isolate other long-term confounding factors and precisely identify the causal effects brought about by AI. To ensure the rigor of this method, the team also conducted a series of specialized statistical tests, confirming that scholars did not engage in strategic behaviors such as “delaying publication” or “early release” before or after the “breakpoint,” thereby guaranteeing the reliability of the research results.\nHow to Quantify “Creativity” and “Homogeneity” Metrics? Following the confirmation of causality, the research team conducted a quantitative analysis of these 40+ thousand papers across two dimensions: “creativity” and “homogeneity.”\nCreativity: Evaluated based on the number of paper publications and the quality of those publications (JCR Quartiles).\nNumber: The total number of papers published by an author. Quality: The JCR Quartile score of the journal in which the paper was published. This is a prestigious journal ranking system, with Q1 representing the top 25% of journals in a field and Q4 representing the bottom 25%. Homogeneity: Evaluated through content similarity and language style similarity.\nContent Similarity: Utilizing an SBERT deep learning model to convert paper abstracts into numerical “vectors,” then calculating the “cosine similarity” between these vectors to determine the degree of similarity in their core meaning. Language Style Similarity: Employing a character-level matching algorithm to scan and calculate repeated phrases and sentence structures between paper abstracts, thereby measuring the similarity of writing styles. A Double-Edged Sword: More Efficient, Yet More Monotonous As shown, the analysis results clearly reveal a “double-edged sword” effect.\nOn one hand, the emergence of AI has become a powerful “accelerator” for academic output: the average annual publication volume per scholar increased by 0.9 papers, and the quality of published journals averaged an increase of 6%. This effect is particularly prominent in fields such as technology and physical sciences.\nHowever, on the other hand, the gains in efficiency are coming at the cost of diversity in thought and expression. Data show that the average annual similarity of writing styles in papers increased surprisingly by 79%, while the thematic content of papers also showed a significant convergence, with the most serious phenomenon being homogenization in physics, arts, and humanities.\nThis large-scale natural experiment conducted by Peking University researchers provides us with real-world macro evidence: Generative AI is indeed a powerful “accelerator” for academic output, helping scholars to produce and publish faster in better journals. However, this increase in efficiency comes at the cost of diversity in thought and expression.\nGlobal knowledge production seems to be becoming more efficient and more “monotonous” in this “great exchange.”\nMeanwhile, research two also left a deeper question: what does this macro trend mean for individuals who are immersed in it? Does the creativity boost brought by AI represent genuine personal cognitive growth?\nTo answer this question, the research team conducted a longitudinal behavioral experiment tracking over several months in a controlled laboratory environment in research two to explore the long-term causal effects of AI on individual cognitive abilities.\nScars of Creativity Left by AI Once ideas submit to habit, they lose the possibility of creation.\nAI\u0026rsquo;s Creative Scars In fact, there have already been numerous laboratories using small-sample empirical studies from different angles to confirm the trends revealed by macro data. For example, research at Cornell University found that AI writing assistants sacrifice cultural uniqueness and cause users’ expressions to tend towards “Western paradigms”; research at Santa Clara University also showed that individuals who used ChatGPT were more similar in their creativity semantically. Notably, a research team from MIT directly observed the brains of individuals using electroencephalography (EEG) technology, finding that the brain activity level of the group of students who used ChatGPT was significantly lower than that of the group that relied solely on their own thinking or used search engines. These studies point to one conclusion: AI is sacrificing cognitive input and diversity to enhance efficiency. However, most research focuses on the immediate impact of using AI, with little exploration of whether the effects of AI “leaving the field” can be sustained and whether its long-term negative impacts will diminish. This study by Peking University made a new attempt in this area. It not only observed the immediate effect of AI in a seven-day experiment, but also systematically tested the long-term consequences of AI dependence through two independent tracking tests after the end of the experiment – on day 30 and day 60. This allowed us to truly see whether what AI brought was a transferable “ability” or a fleeting, uninternalizable “illusion.” Specifically, the Peking University research team randomly divided 61 college students into two groups: “AI experimental group” (able to use ChatGPT-4) and “pure brainpower control group.” The experiment design consisted of three key stages: first, all participants completed a creativity baseline test on day one without using AI; then, from days two to six, the “AI experimental group” completed daily creativity tasks with AI assistance, while the “pure brainpower control group” completed the tasks without assistance; finally, and most importantly, on day seven, day 30, and day 60, all participants had to complete the final tracking test without any AI assistance. To comprehensively evaluate “creativity,” the study used a composite task mode covering multiple dimensions. These tasks included:\nDivergent Thinking Test: The classic “Alternative Uses Task” (AUT), requiring participants to come up with as many novel uses as possible for everyday items (such as “a pen”). Creative Problem Solving: More realistic business scenario questions, such as asking participants to design innovative features for a “smart bicycle.” Convergent Thinking Test: The “Remote Association Test” (RAT) added during the tracking phase, requiring participants to find a word that can connect three unrelated words simultaneously. Insight Question: The classic “Candle Problem,” requiring participants to fix a candle on the wall with a box of nails, a candle, and a box of matches, without letting the wax drip onto the table. To ensure the scientificity of the assessment, the study used the “gold standard” in the field – expert consensus evaluation (CAT). Multiple expert judges independently scored thousands of creative outputs (including divergent thinking tasks and complex problem solutions) on multiple dimensions such as novelty, practicality, and flexibility in a “blind” condition where they were unaware of the grouping situation and research purpose. High data consistency (rating agreement ICCs \u0026gt; 0.90) ensured the scientific and fairness of the assessment results. The homogeneity measurement method used in Study II adopted the same technical methods as Study I to ensure consistency between the two studies’ evaluation standards. The experimental results clearly revealed a stark asymmetry: Creativity Enhancement is Transient and Unsustainable: During the AI usage phase (days 2-6), the “AI experimental group”’s creativity indicators were indeed far beyond that of the “pure brainpower group.” However, once the AI was removed, this advantage instantly disappeared. Starting from day seven until day 60, there was no significant difference in creativity performance between the two groups. More alarmingly, in the 60-day convergent thinking test, the participants in the experimental group’s performance was even significantly worse than that of the control group who had never used AI, what AI brought was not a transferable “ability,” but rather an uninternalizable “illusion.” The Homogenization of Thoughts is Long-lasting and Leaves \u0026ldquo;Creative Scars\u0026rdquo;: In contrast to the fleeting creativity enhancement, the homogenization of thought demonstrated surprising “stickiness.” Even after two months of not using AI, the output content from the “AI experiment group” – regardless of whether it was measured in terms of semantics or language style – still exhibited significantly higher similarity compared to the control group. This longitudinal study provided direct causal evidence confirming the long-term impact of AI on individual creativity. The potential brought by AI may only be a “creative illusion” that cannot be internalized, while the resulting tendency towards homogenization of thought could become an enduring “creative scar,” persistently embedded in our cognitive and expressive habits.\nIf the world had no new creativity It is the best of times, it is the worst of times.\nIf the World Lacked New Creativity This research from Tsinghua University, concluding that we shouldn’t abandon AI entirely just because of our own frustration, instead aims to remind us that we must consciously understand and address the long-term impact of prolonged reliance on AI on individual thinking and cognitive habits.\nThe “homogenization” trend revealed in the study is rooted in profound principles of cognitive science: AI outputs easily trigger a powerful “anchoring effect” in users. When AI quickly generates an apparently “decent” answer or framework, our minds become anchored to this initial solution, making it difficult for subsequent thought and creativity to significantly deviate, ultimately leading to the convergence of ideas at the group level.\nIn July of this year, when Huang Renjun made a calm assessment during an interview with CNN: \u0026ldquo;If the world lacks new creativity, then the productivity gains brought about by AI will translate into unemployment.”\nAs generative AI is increasingly used, the internet’s information and human knowledge base are becoming more homogenized at an unprecedented speed. Tsinghua University\u0026rsquo;s research cold-heartedly confirms that this trend exists. If society can continuously generate new ideas, AI will create more diverse employment opportunities; if it only repeats old tasks, AI can complete them in seconds.\nAI amplifies creativity but also accelerates the expulsion of “those with dry ideas.”\nIn the Age of AI, How to Maintain Sharp Thinking AI alleviates our workload, but we need to establish a thinking system capable of deep thought, one that can interact with AI, articulate the problems we want AI to solve, and also engage in reasoning about those problems. Simultaneously, we must evaluate whether AI has answered correctly – we need dialectical thinking. —Huang Renfu\nIn the Age of AI, How to Maintain Sharp Thinking As individuals navigating the age of AI, how should we position ourselves? How can we enjoy the convenience of AI while avoiding creative barrenness? Combining insights from research, here are some specific action recommendations:\nTreat AI as a “Thinking Drill”: Consider it an tireless companion that provides unlimited perspectives. Use it for brainstorming, generating multiple possibilities, and challenging your ingrained assumptions. However, the final filtering, deepening, decision-making, and accountability for the results must always be yours.\nDeliberately Practice \u0026ldquo;Cognitive Friction\u0026rdquo;: The most effective way to combat “anchoring bias” is to actively create “cognitive friction.” Don’t readily accept the AI\u0026rsquo;s first answer. Intentionally challenge it, find its logical flaws, and question aspects it hasn’t considered. This practice of critical thinking is key to maintaining our independent thinking abilities.\nEstablish \u0026ldquo;AI-Free Time\u0026rdquo;: Just as we need regular exercise to prevent muscle atrophy, we also need to regularly allow our brains to exercise without AI assistance. Regularly designate a weekly period of “AI-free time” for thinking, planning, and creating using the most basic tools – paper and pen or a blank document. This deliberate \u0026ldquo;cognitive detox\u0026rdquo; ensures that our core creative and reasoning abilities won’t deteriorate in comfort.\n","date":"2025-10-10","language":"en","permalink":"https://ttf248.life/en/p/all-the-gifts-of-ai-have-already-been-marked-up-with-prices-in-the-shadows/","tags":["ai","Wall Street Journal Insights"],"title":"All the gifts of AI have already been marked up with prices in the shadows.","year":"2025"},{"categories":["Computer"],"content":"Optimizing performance for a hot function involves the bulk of the time spent within internal loops. AI suggested using enumerate and ranges, so I consulted some related documentation.\nThe main content of the article was generated by AI, and I tested the code and added some supplementary explanations. Online Compiler – testing C++ code inevitably involves our old friend.\nOn gcc13, traditional for loops were slightly faster than std::views::enumerate, which is negligible in practice.\nOn gcc16, their performance was almost identical.\nIn debug mode, traditional for loops are noticeably faster—almost twice as fast as the new syntax.\nThis is a great question. std::views::enumerate is part of the Ranges library introduced in C++23, designed to provide a more concise and safer way to iterate over containers while simultaneously obtaining the element\u0026rsquo;s index.\nAccording to the design philosophy of C++, std::views::enumerate (along with most Ranges library Views) should perform at roughly the same level as traditional indexed loops or iterator loops in terms of performance, and may even have a slight advantage in some compiler optimizations because it provides more advanced semantic information. Compilers are typically able to optimize std::views::enumerate\u0026rsquo;s high-level structure using the principle of Zero-Overhead Abstraction by translating it into machine code that is equivalent to hand-written loops.\nBelow, we will detail the enumerate pattern and provide a complete C++ test demo to compare its performance with traditional patterns.\nstd::views::enumerate Pattern Explained std::views::enumerate is a view adaptor, it takes a Range (e.g., std::vector) and generates a new Range.\nNew Range\u0026rsquo;s Element Type: Each element in the new Range is a structured binding that can be unpacked as a tuple-like object, containing two parts: Index: The element’s zero-based index (std::size_t). Value/Reference: A reference (typically const auto\u0026amp; or auto\u0026amp;) to the corresponding element in the original Range. Usage: It is typically used together with C++17\u0026rsquo;s structured bindings, making code more concise and readable, similar to Python’s enumerate().\nAdvantages:\nHigh Code Clarity: Separates the index and element value within the loop header, making it immediately clear. Avoid Manual Index Management: No need to declare an index variable outside the loop or forget to increment it inside the loop body. Preserves Range-based For Loop Semantics: Combines the conciseness of Range-based For Loops with the traditional For Loop’s requirement for indices. Fully Executable Test Demo (C++23) To ensure a fair performance comparison, we use high-precision timing to measure the time taken by both modes when processing large datasets. Note: Running this code requires a compiler that supports C++23 (std::views::enumerate is part of the C++23 standard).\nComplete Runnable Test Demo (C++23) #include \u0026lt;iostream\u0026gt; #include \u0026lt;vector\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;numeric\u0026gt; #include \u0026lt;ranges\u0026gt; #include \u0026lt;algorithm\u0026gt; #include \u0026lt;cmath\u0026gt; #include \u0026lt;functional\u0026gt; // Alias simplification using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::milliseconds; // Define test data size constexpr size_t DATA_SIZE = 50000000; // 5000万个元素 constexpr int TEST_ITERATIONS = 5; // Run 5 times to take the average /** * @brief Fill a large vector for testing. */ std::vector\u0026lt;int\u0026gt; create_test_data() { std::vector\u0026lt;int\u0026gt; data(DATA_SIZE); std::iota(data.begin(), data.end(), 1); // Fill with 1, 2, 3, ... return data; } /** * @brief Traditional pattern: Using a indexed for loop. * * @param data The vector to iterate over. * @return long long Simulated calculation result. */ long long traditional_loop(const std::vector\u0026lt;int\u0026gt;\u0026amp; data) { long long sum = 0; // Use std::size_t to avoid compiler warnings about signed/unsigned for (std::size_t idx = 0; idx \u0026lt; data.size(); ++idx) { const int item = data[idx]; // Simulate complex calculation: element value + square root of index (to prevent the entire loop from being optimized away) sum += (long long)item + (long long)std::sqrt(idx); } return sum; } /** * @brief Enumerate pattern: Using std::views::enumerate. * * @param data The vector to iterate over. * @return long long Simulated calculation result. */ long long enumerate_loop(const std::vector\u0026lt;int\u0026gt;\u0026amp; data) { long long sum = 0; // Use structured binding [idx, item] for (const auto\u0026amp; [idx, item] : std::views::enumerate(data)) { // idx is the index (std::size_t) // item is a reference to the element (const int\u0026amp;) // Simulate complex calculation: element value + square root of index sum += (long long)item + (long long)std::sqrt(idx); } return sum; } /** * @brief Run performance test and print results. * * @param name Test name. * @param func Function to be tested. * @param data Data to be processed. * @return long long Running time (milliseconds). */ long long run_test(const std::string\u0026amp; name, std::function\u0026lt;long long(const std::vector\u0026lt;int\u0026gt;\u0026amp;)\u0026gt; func, const std::vector\u0026lt;int\u0026gt;\u0026amp; data) { std::cout \u0026lt;\u0026lt; \u0026#34;--- \u0026#34; \u0026lt;\u0026lt; name \u0026lt;\u0026lt; \u0026#34; ---\\n\u0026#34;; long long total_duration_ms = 0; for (int i = 0; i \u0026lt; TEST_ITERATIONS; ++i) { auto start = high_resolution_clock::now(); // Avoid compiler optimization away the function call volatile long long result = func(data); auto end = high_resolution_clock::now(); auto duration = duration_cast\u0026lt;milliseconds\u0026gt;(end - start); total_duration_ms += duration.count(); // Ensure that the result is used, avoid optimization, while verifying the results of both patterns are consistent if (i == 0) { std::cout \u0026lt;\u0026lt; \u0026#34; [Result Check]: \u0026#34; \u0026lt;\u0026lt; result \u0026lt;\u0026lt; \u0026#34;\\n\u0026#34;; } std::cout \u0026lt;\u0026lt; \u0026#34; Iteration \u0026#34; \u0026lt;\u0026lt; i + 1 \u0026lt;\u0026lt; \u0026#34; Time: \u0026#34; \u0026lt;\u0026lt; duration.count() \u0026lt;\u0026lt; \u0026#34; ms\\n\u0026#34;; } long long avg_duration_ms = total_duration_ms / TEST_ITERATIONS; std::cout \u0026lt;\u0026lt; \u0026#34; Average Time: \u0026#34; \u0026lt;\u0026lt; avg_duration_ms \u0026lt;\u0026lt; \u0026#34; ms\\n\u0026#34;; return avg_duration_ms; } int main() { std::cout \u0026lt;\u0026lt; \u0026#34;Starting Performance Comparison...\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Data Size: \u0026#34; \u0026lt;\u0026lt; DATA_SIZE \u0026lt;\u0026lt; \u0026#34; elements.\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Test Iter Summary \u0026amp; Comparison ============================== Final Performance Comparison Traditional Loop Average Time: [traditional_time] ms Enumerate Loop Average Time: [enumerate_time] ms\n```cpp #include \u0026lt;iostream\u0026gt; #include \u0026lt;vector\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;numeric\u0026gt; #include \u0026lt;ranges\u0026gt; #include \u0026lt;algorithm\u0026gt; #include \u0026lt;cmath\u0026gt; #include \u0026lt;functional\u0026gt; // Alias simplification using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::milliseconds; // Define test data size constexpr size_t DATA_SIZE = 50000000; // 5000万个元素 constexpr int TEST_ITERATIONS = 5; // Run 5 times to take the average /** * @brief Fill a large vector for testing. */ std::vector\u0026lt;int\u0026gt; create_test_data() { std::vector\u0026lt;int\u0026gt; data(DATA_SIZE); std::iota(data.begin(), data.end(), 1); // Fill with 1, 2, 3, ... return data; } /** * @brief Traditional pattern: Using a loop with an index. * * @param data The vector to iterate over. * @return long long Simulated calculation result. */ long long traditional_loop(const std::vector\u0026lt;int\u0026gt;\u0026amp; data) { long long sum = 0; // Use std::size_t to avoid warnings about signed/unsigned comparison for (std::size_t idx = 0; idx \u0026lt; data.size(); ++idx) { const int item = data[idx]; // Simulate complex calculation: element value + square root of index (to prevent the compiler from optimizing out the entire loop) sum += (long long)item + (long long)std::sqrt(idx); } return sum; } /** * @brief Enumerate pattern: Using std::views::enumerate. * * @param data The vector to iterate over. * @return long long Simulated calculation result. */ long long enumerate_loop(const std::vector\u0026lt;int\u0026gt;\u0026amp; data) { long long sum = 0; // Use structured binding [idx, item] for (const auto\u0026amp; [idx, item] : std::views::enumerate(data)) { // idx is the index (std::size_t) // item is a reference to the element (const int\u0026amp;) // Simulate complex calculation: element value + square root of index sum += (long long)item + (long long)std::sqrt(idx); } return sum; } /** * @brief Run performance test and print results. * * @param name Test name. * @param func Function to be tested. * @param data Data to be processed. * @return long long Running time (milliseconds). */ long long run_test(const std::string\u0026amp; name, std::function\u0026lt;long long(const std::vector\u0026lt;int\u0026gt;\u0026amp;)\u0026gt; func, const std::vector\u0026lt;int\u0026gt;\u0026amp; data) { std::cout \u0026lt;\u0026lt; \u0026#34;--- \u0026#34; \u0026lt;\u0026lt; name \u0026lt;\u0026lt; \u0026#34; ---\\n\u0026#34;; long long total_duration_ms = 0; for (int i = 0; i \u0026lt; TEST_ITERATIONS; ++i) { auto start = high_resolution_clock::now(); // Avoid compiler optimization by forcing function call volatile long long result = func(data); auto end = high_resolution_clock::now(); auto duration = duration_cast\u0026lt;milliseconds\u0026gt;(end - start); total_duration_ms += duration.count(); // Ensure the result is used to prevent optimization, while also verifying that both patterns produce consistent results if (i == 0) { std::cout \u0026lt;\u0026lt; \u0026#34; [Result Check]: \u0026#34; \u0026lt;\u0026lt; result \u0026lt;\u0026lt; \u0026#34;\\n\u0026#34;; } std::cout \u0026lt;\u0026lt; \u0026#34; Iteration \u0026#34; \u0026lt;\u0026lt; i + 1 \u0026lt;\u0026lt; \u0026#34; Time: \u0026#34; \u0026lt;\u0026lt; duration.count() \u0026lt;\u0026lt; \u0026#34; ms\\n\u0026#34;; } long long avg_duration_ms = total_duration_ms / TEST_ITERATIONS; std::cout \u0026lt;\u0026lt; \u0026#34; Average Time: \u0026#34; \u0026lt;\u0026lt; avg_duration_ms \u0026lt;\u0026lt; \u0026#34; ms\\n\u0026#34;; return avg_duration_ms; } int main() { std::cout \u0026lt;\u0026lt; \u0026#34;Starting Performance Comparison...\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Data Size: \u0026#34; \u0026lt;\u0026lt; DATA_SIZE \u0026lt;\u0026lt; \u0026#34; elements.\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Test ## Fully Executable Test Demo (C++23) if (traditional_time \u0026lt; enumerate_time) { std::cout \u0026lt;\u0026lt; \u0026#34;\\nConclusion: Traditional Loop was slightly faster.\\n\u0026#34;; double diff = (double)(enumerate_time - traditional_time) / traditional_time * 100.0; std::cout \u0026lt;\u0026lt; \u0026#34;Difference: \u0026#34; \u0026lt;\u0026lt; diff \u0026lt;\u0026lt; \u0026#34;% slower for enumerate mode.\\n\u0026#34;; } else if (enumerate_time \u0026lt; traditional_time) { std::cout \u0026lt;\u0026lt; \u0026#34;\\nConclusion: Enumerate Loop was slightly faster.\\n\u0026#34;; double diff = (double)(traditional_time - enumerate_time) / enumerate_time * 100.0; std::cout \u0026lt;\u0026lt; \u0026#34;Difference: \u0026#34; \u0026lt;\u0026lt; diff \u0026lt;\u0026lt; \u0026#34;% slower for traditional mode.\\n\u0026#34;; } else { std::cout \u0026lt;\u0026lt; \u0026#34;\\nConclusion: Both modes showed virtually identical performance.\\n\u0026#34;; } return 0; } ## Fully Functional Test Demo (C++23) ## Performance Analysis and Conclusion ### Theoretical Analysis In C++, the **fundamental reason for performance differences lies in whether the compiler can perform zero-overhead abstractions (Zero-Overhead Abstraction)**. - **Traditional Loops:** Directly manipulating memory addresses and indices is the most fundamental and efficient approach. - **`std::views::enumerate` Loop:** Introduces the `enumerate_view` abstraction layer. Internally, it implements pairing of index and value through iterators. For modern, highly optimized compilers (such as GCC/Clang with O2/O3 optimizations), they will **inline** `enumerate_view` and its iterator operations, and perform techniques like **loop unrolling**. Ultimately, the assembly code generated by `std::views::enumerate` loop is **almost always identical to the assembly code generated by traditional indexed loops.** ### Actual Test Conclusions Based on the results of actual running test demos (using O2/O3 optimization): | **Traditional Index Loop** | X (Baseline) | ≈ 0% | Low: Requires manual index management, prone to errors | ### Practical Test Conclusions | Pattern | Average Time (ms) | Performance Difference | Readability/Security | |---|---|---|---| | **`std::views::enumerate`** | X ± Minimal Variance | ≈ 0% | **High:** Automatic indexing, concise and safe | ### Practical Test Conclusions **Conclusion:** When using compiler optimizations, the **`std::views::enumerate` pattern is virtually indistinguishable from traditional indexing loop patterns in terms of performance; they can be considered equivalent. Therefore, **in C++23 or later, it is recommended to use the `std::views::enumerate` pattern** as it significantly improves code **readability, conciseness, and safety** without sacrificing performance. ","date":"2025-10-09","language":"en","permalink":"https://ttf248.life/en/p/c23-introduces-new-features-enumerate-and-ranges/","tags":["c++","Syntactic Sugar"],"title":"C++23 introduces new features enumerate and ranges","year":"2025"},{"categories":["The Seven Seconds of a Fish"],"content":"“As I recall, Xiaomi was able to break through initially thanks to its solid product quality and distinctive cost-performance advantage – in those early years, other brands would often price similar models at four or five thousand yuan, while Xiaomi could keep the price under two thousand yuan. Many people were switching phones at that time, and they chose Xiaomi because of the ‘low-cost entry into high configuration.’”\nCurrent Situation However, in the past two or three generations of flagship phones, the upgrade momentum has noticeably weakened. Every time I look at new product parameters and features, it’s hard to have a “wow” moment – most are minor adjustments: such as camera algorithm optimization, slight battery life improvements, or simply changing the color scheme. There\u0026rsquo;s a lack of core changes that leave a lasting impression.\nAfter reading the full text of Xiaomi 17’s launch event, this feeling is even more pronounced — this generation’s upgrades are still limited, whether it’s performance or features, they haven’t stepped out of the “minor repairs” category.\nActually, this isn\u0026rsquo;t just about Xiaomi; the entire digital technology industry now faces a similar situation: significant breakthroughs in hardware are becoming increasingly difficult to achieve, and the industry as a whole seems to be entering a slowdown. Unlike several years ago, when there were dazzling new developments every year – screen refresh rates increased, charging speeds doubled – it’s now much more difficult to achieve disruptive breakthroughs in hardware.\nWith many rational users dominating discussions on Zhihu (a Chinese Q\u0026amp;A platform), the related topics for Xiaomi 17\u0026rsquo;s launch are overwhelmingly critical, highlighting the small upgrade intensity.\nMarketing Prowess The runaway success of the Xiaomi SU7 unexpectedly reached a large number of previously overlooked female users, allowing Xiaomi to discover new user growth segments.\nAlmost simultaneously, the “Xiaomi 16 directly renamed to Xiaomi 17” event perfectly capitalized on this attention – not only did this break external stereotypes about Xiaomi phones, but it also leveraged “porting” to generate buzz.\nThe goodwill accumulated by the SU7’s users resonated with the public sentiment surrounding the rebranding: those interested in the SU7 would be curious about Xiaomi\u0026rsquo;s phone products, and those who noticed the renaming would also be more inclined to learn about Xiaomi’s reputation thanks to the SU7’s positive word-of-mouth.\nUltimately, this synergy allowed the Xiaomi 17 launch event to successfully break through to a significant number of non-traditional users who were previously unfamiliar with Xiaomi.\n","date":"2025-09-26","language":"en","permalink":"https://ttf248.life/en/p/productivity-and-marketing/","tags":["Product Sense","Marketing prowess","Xiaomi","Apple","Huawei","Mobile phone"],"title":"Productivity and Marketing","year":"2025"},{"categories":["Computer"],"content":"When assembling or upgrading a computer, we often see memory modules labeled with parameters like “DDR5-6000 CL36” and “DDR5-6000 CL30.” The “6000” represents the memory frequency (MHz), while “CL36” and “CL30” are abbreviations for “CAS Latency,” which is commonly referred to as “timings.”\nSo, what’s the difference between C36, C30, and C28? How do they affect performance when frequencies are the same? And how should you choose? Let\u0026rsquo;s discuss this topic in detail today.\nPreviously written content about memory frequency: 电脑组装那些事\nWhat is CAS Latency (CL)? Simply put, CAS Latency (CL) refers to the number of clock cycles a memory needs to wait between receiving a read command and actually starting to output data. The smaller this value, the faster the memory responds and the lower the latency.\nFor example:\nDDR5-6000 CL36: This indicates that the memory needs to wait 36 clock cycles to respond to a read request at a frequency of 6000MHz. DDR5-6000 CL30: At the same frequency, only 30 cycles are needed. Even though the frequencies are the same, a lower CL value results in smaller actual latency (Latency).\nHow to Calculate Actual Latency? Many people mistakenly believe that a higher frequency always equates to better performance, but in reality, actual latency = (CL ÷ Frequency) × 2000 (units: nanoseconds, ns). Let’s compare:\n| DDR5-6000 CL36 | 6000 | 36 | ((36 ÷ 6000) × 2000) ≈ 12.0 ns |\nHow to Calculate Actual Latency? Model Frequency (MHz) CL Value Actual Latency (ns) DDR5-6000 CL30 6000 30 ((30 / 6000) * 2000) ≈ 10.0 ns How to Calculate Actual Latency? Model Frequency (MHz) CL Value Actual Latency (ns) DDR5-6000 CL28 6000 28 ((28 ÷ 6000) × 2000) ≈ 9.33 ns How is Actual Latency Calculated? As you can see, the actual latency of CL28 is approximately 22% lower than that of CL36. In latency-sensitive applications (such as gaming, high-frequency trading, real-time rendering, etc.), this difference may result in a perceptible performance improvement.\nIs There Really a Big Performance Difference? In everyday scenarios like office work, web browsing, and video playback, the difference between CL36 and CL28 is almost imperceptible. However, the advantages of low-latency memory become more apparent in the following situations:\nGame Frame Time Stability: Lower latency helps reduce stuttering, especially in CPU-bound games (such as CS2, League of Legends, and Nioh). Content Creation \u0026amp; Compilation: Certain workflows that rely on memory bandwidth and latency (like large code compilation, 3D rendering caching) will also benefit. Overclocking Potential: Low-latency memory typically uses better dies (such as Hynix A-die, M-die), which are more suitable for further overclocking. However, it’s important to note that low latency often means a higher price and stricter requirements for motherboard/BIOS compatibility. If your motherboard doesn\u0026rsquo;t support EXPO/XMP 2.0 or your BIOS is older, you may not be able to stably run CL28 at high frequencies.\nSo, which one should I choose at 6000MHz? For most users, especially those pairing it with AMD Ryzen 7000/8000 Series processors, DDR5-6000 CL30 is currently the “sweet spot” configuration:\nThe official JEDEC specification recommends a frequency of 6000MHz, and CL30 is the stable timing verified by AMD; It offers high value for money, with moderate pricing and good compatibility; Actual latency is controlled around 10ns, balancing performance and stability. If you’re an extreme performance gamer or seeking ultra-high frame rates, and your motherboard supports it well (such as high-end B650/X670 models), you can consider models with CL28 or even CL26, but be prepared to potentially need manual tuning and voltage adjustments.\nAs for CL36, while it can be used, it’s typically entry-level DDR5 memory with high latency, unless your budget is extremely tight, we don\u0026rsquo;t recommend it.\nSummary C36, C30, and C28 refer to the memory’s CAS Latency (Timings); lower numbers indicate smaller latency. Under the same frequency, CL28 is approximately 22% faster than CL36 in actual latency, offering greater performance advantages. DDR5-6000 CL30 is currently the most balanced choice and suitable for most users. For extreme performance, choose CL28; if budget is limited, accept CL36, but weigh latency against price. ","date":"2025-09-24","language":"en","permalink":"https://ttf248.life/en/p/memory-timing-c36-c30-and-c28-what-do-these-mean-which-one-is-more-suitable-at-a-frequency-of-6000mhz/","tags":["desktop-pcs","DDR5","Memory Frequency"],"title":"Memory timing C36, C30, and C28 – what do these mean? Which one is more suitable at a frequency of 6000MHz?","year":"2025"},{"categories":["Computer"],"content":"In July, on a whim, with nothing better to do over the weekend, I decided to clean out the dust from my desktop PC – it hadn’t been cleaned in four or five years, and there was definitely quite a lot of dust accumulated. After cleaning it, I restarted the system, and everything worked perfectly fine. The computer wasn\u0026rsquo;t turned off regularly; it was left running constantly, with just the monitor switched off. Luckily, my wife came to stay, and she noticed various light sources at night, so she casually turned the computer off.\nHeatsink Originally, I should have been writing articles all day, mixed with reinstalling systems and various things, I forgot about it. The human brain is sometimes so magical. Suddenly remembered today. (Note: I\u0026rsquo;ve replaced the placeholder image URL with a generic example. You should replace this with the actual URL of the image.)\nBoot Failure Every other day I’d attempt to boot the system, and it would crash with a blue screen, with the error messages changing several times until ultimately it wouldn\u0026rsquo;t boot at all. Thinking it might be a dust issue or that the hard drive installation wasn’t fixed properly, causing it to drop and lose the system boot files, leading to a boot failure. The error message clearly indicated a failed boot loading process. Fortunately, a USB drive could successfully enter the PE system, so I didn\u0026rsquo;t panic and proceeded with a series of operations:\nReplugging the hard drive cables – many drives, primarily the boot drive. Escalating the situation by formatting the system partition and reinstalling. Switching other disks as the hard drive and reinstalling. Checking the hard drive for any issues, using a disk detection tool to scan it. Modifying the BOIS settings, trying various UEFI and compatibility modes. Based on these operations, attempting to convert the hard drive to MBR format, reconfiguring the bootloader, and installing the system. I spent almost the entire weekend getting it up and running, and the system booted normally without any other issues. But why did I need to switch back to the old boot mode? When I purchased the ASUS motherboard, it defaulted to UEFI mode. Over the many years in between, even after reinstalling the system, I always used UEFI mode. What was going on here that prevented it from working?\n","date":"2025-09-24","language":"en","permalink":"https://ttf248.life/en/p/desktop-boot-loader-failure/","tags":["troubleshooting","UEFI","MBR"],"title":"Desktop Boot Loader Failure","year":"2025"},{"categories":["Diary Ramblings"],"content":"In an era of information explosion, we all, to varying degrees, live within our own “information bubbles.” Algorithms recommend content that interests us, and over time, our horizons are subtly narrowed. This phenomenon seems equally applicable to the smartphone market – brand loyalty, media bias, and community voices are all weaving consumers into one bubble after another.\nHowever, Xiaomi’s recent move, like a stone thrown into a still lake, has created ripples, attempting to break down this invisible barrier.\nPrompt: Information bubbles, Xiaomi phone change 16 to 17 is not a temporary action, so much inventory, Huawei\u0026rsquo;s high-end path? Xiaomi’s high-end path ultimately relies on product strength to speak\nXiaomi’s “Concealed Strategy”: Skipping 16, Confronting 17 Xiaomi has resolutely renamed its upcoming flagship, set to be released as the “Xiaomi 17,” from the initially planned “Xiaomi 16,” revealing its intent – a direct challenge to Apple’s iPhone 17. This was not a spontaneous whim; for a company of this scale, any flagship product\u0026rsquo;s naming, preparation, and marketing is a massive undertaking that requires careful planning months, or even years in advance, involving millions of packaging materials, promotional items, and channel communications.\nThis renaming represents Xiaomi’s meticulously planned “concealed strategy,” a bold gamble on a brand-level strategic move. It sends a clear signal: Xiaomi is no longer content with the “value for money” label; instead, it intends to enter Apple and Huawei’s long-dominated high-end market territory with a “head-on confrontation” attitude.\nBy aligning itself digitally with the iPhone, Xiaomi aims to break consumers\u0026rsquo; ingrained thinking, placing its products in the same conversational context as top-tier flagships. This is Xiaomi’s bold and confident declaration of its product capabilities, and represents its most aggressive and decisive attempt to penetrate the high-end market after five years of effort.\nHuawei’s High-End Path: Rebuilding Glory in Adversity When the topic of the high-end market is mentioned, Huawei is unavoidable. After experiencing the widely known external pressures, Huawei\u0026rsquo;s path to the high-end has been exceptionally difficult yet remarkably steadfast. Leveraging continued deep cultivation in imaging technology and breakthroughs in self-developed chips, Huawei’s Pura and Mate series remain benchmark products in the high-end market.\nHuawei’s strategy is more like a “cultivation of inner strength.” It builds powerful technological barriers to entry, such as the XMAGE imaging brand, Kunlun Glass, HarmonyOS operating system, to create core differentiators for its products. Even when facing enormous challenges with supply chains, Huawei continues to enhance product quality, fostering extremely high user loyalty.\nToday, Huawei’s market share in China\u0026rsquo;s high-end market is steadily recovering – a story of victory based on resilience and product power. Its high-end path is one achieved through technological innovation and brand resilience, step by step, overcoming adversity.\nThe Battle of the Titans is Ultimately a Matter of “Product Power” Whether it’s Xiaomi\u0026rsquo;s “One-Step Completion,” or Huawei’s “Steady and Solid,” their paths to the premium market differ, but ultimately, the landing point is always “product power.”\nHigh-end users are willing to pay a higher price not just for a brand logo, but also for comprehensive recognition of the technology, experience, design, and services behind the product. After the noise of marketing, what truly retains users is genuine experience.\nLet’s focus our attention on the products themselves:\nImaging Capability: The Huawei Pura 70 Ultra continues to lead in the mobile photography field thanks to its unique retractable camera and powerful XMAGE imaging system. Meanwhile, Xiaomi 17 Series also features a camera system co-developed with Leica, along with new sensors and algorithms, aiming to challenge top industry standards. Core Performance: The Xiaomi 17 was the first to feature Qualcomm’s latest flagship Snapdragon chip, boasting natural advantages in performance release. Huawei, on the other hand, relies on iterative development of its self-designed chips, showcasing unique competitiveness in power consumption and system synergy. Screen \u0026amp; Design: Both sides are putting in their best efforts regarding screen quality, material, and design language. Kunlun Glass’s robust durability, combined with Xiaomi\u0026rsquo;s continued investment in display technology, have become distinctive labels for their respective products. Ecosystem Experience: HarmonyOS’s distributed capabilities enable Huawei to create a seamless ecosystem experience, while Xiaomi’s HyperOS is also working hard to build its own intelligent closed-loop ecosystem. Marketing strategies can break down consumers\u0026rsquo; “information silos,” allowing more people to see a brand’s ambition and transformation. But to truly let consumers “walk out of the house” willingly switching brands, it ultimately relies on solid product power to provide an irresistible choice.\nXiaomi turned the digital “16” into “17,” which is not just a change in name but also a leap in its brand mentality and market strategy. Huawei, meanwhile, has rebuilt the foundation of its premium brand amidst storms. This battle between the two giants in China’s high-end smartphone market is only beginning its most exciting chapter.\nFor consumers, this is undoubtedly good news. When all the giants lower their postures and refocus their attention on products themselves, we will ultimately see a more diverse and experience-driven era. And who can emerge victorious in this battle of the titans – time, and the fingertips of every user, will give the final answer.\n","date":"2025-09-19","language":"en","permalink":"https://ttf248.life/en/p/breaking-through-the-cocoon-examining-huawei-and-xiaomis-high-end-rivalry-following-xiaomi-17s-renaming/","tags":["AI Inspiration Hub","Xiaomi","Name Storm/Scandal"],"title":"Breaking Through the Cocoon: Examining Huawei and Xiaomi’s High-End Rivalry Following Xiaomi 17's Renaming","year":"2025"},{"categories":["AI Inspiration Hub","Computer"],"content":"In modern internet architectures, high availability is a crucial consideration in system design. This article will detail how to use Keepalived and HAProxy to build a highly available load balancing cluster, ensuring service continuity and reliability.\nThe practical configuration section was not validated, and the article planning relies on AI completion\n(Since I cannot see the image, I\u0026rsquo;m simply repeating the markdown as it was provided.)\nTechnical Overview Keepalived Introduction Keepalived is a high availability solution based on the VRRP (Virtual Router Redundancy Protocol) protocol, primarily used to implement server failover and load balancing.\nKey Features:\nVRRP Protocol Support: Enables virtual IP address master/slave switching Health Checks: Monitors service status and automatically performs failover Simple Configuration: Complex high availability architectures can be achieved through configuration files alone Lightweight: Low resource consumption and excellent performance Working Principle: Keepalived utilizes the VRRP protocol to share a virtual IP address across multiple servers. In normal operation, the master server holds the virtual IP and provides services; when the master server fails, the backup server automatically takes over the virtual IP, ensuring service continuity.\nHAProxy Overview HAProxy is a high-performance load balancer and reverse proxy server, widely used in high concurrency scenarios.\nKey Features:\nLoad Balancing: Supports various load balancing algorithms Health Checks: Monitors backend server status in real-time SSL Termination: Supports HTTPS traffic handling Statistical Monitoring: Provides detailed running state statistics Application Scenarios:\nWeb service load balancing Database connection pooling Microservice gateways API interface proxy Architecture Design Overall Architecture ┌─────────────────┐ │ Client │ └─────────┬───────┘ │ ┌─────────▼───────┐ │ Virtual IP │ │ (VIP) │ └─────────┬───────┘ │ ┌───────────────┼───────────────┐ │ │ │ ┌─────────▼───────┐ ┌─────────▼───────┐ │ HAProxy-1 │ │ HAProxy-2 │ │ (Master) │◄────────────►│ (Backup) │ │ + Keepalived │ VRRP │ + Keepalived │ └─────────┬───────┘ └─────────┬───────┘ │ │ └──────────┬─────────────────────┘ │ ┌────────────────┼────────────────┐ │ │ │ ┌───────▼───────┐ ┌──────▼──────┐ ┌───────▼───────┐ │ Web Server 1 │ │ Web Server 2│ │ Web Server 3 │ │ Backend │ │ Backend │ │ Backend │ └───────────────┘ └─────────────┘ └───────────────┘ Component Description Virtual IP (VIP): A unified entry point for clients to access. HAProxy Master-Backup Nodes: Provides load balancing services and achieves high availability through Keepalived. Backend Servers: The actual web servers providing the service. Environment Setup Server Planning Role IP Address Hostname Service HAProxy Master Node 192.168.1.10 lb-master HAProxy + Keepalived Server Planning Role IP Address Hostname Service HAProxy Backup Node 192.168.1.11 lb-backup HAProxy + Keepalived Server Planning Role IP Address Hostname Service Virtual IP 192.168.1.100 - VIP Server Planning Role IP Address Hostname Service Server Planning Role IP Address Hostname Service Server Planning Role IP Address Hostname Service Software Installation Install the necessary software on the HAProxy master and backup nodes:\n# CentOS/RHEL yum install -y haproxy keepalived # Ubuntu/Debian apt-get update apt-get install -y haproxy keepalived # Enable services to start automatically on boot systemctl enable haproxy keepalived Keepalived Configuration Master Node Configuration (lb-master) Create the configuration file /etc/keepalived/keepalived.conf:\n! Configuration File for keepalived global_defs { router_id LB_MASTER script_user root enable_script_security } # Script to check HAProxy service status vrrp_script chk_haproxy { script \u0026#34;/etc/keepalived/check_haproxy.sh\u0026#34; interval 2 weight -2 fall 3 rise 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass mypassword123 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_haproxy } notify_master \u0026#34;/etc/keepalived/notify.sh master\u0026#34; notify_backup \u0026#34;/etc/keepalived/notify.sh backup\u0026#34; notify_fault \u0026#34;/etc/keepalived/notify.sh fault\u0026#34; } LB Backup Configuration Create the configuration file /etc/keepalived/keepalived.conf:\n! Configuration File for keepalived global_defs { router_id LB_BACKUP script_user root enable_script_security } vrrp_script chk_haproxy { script \u0026#34;/etc/keepalived/check_haproxy.sh\u0026#34; interval 2 weight -2 fall 3 rise 2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass mypassword123 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_haproxy } notify_master \u0026#34;/etc/keepalived/notify.sh master\u0026#34; notify_backup \u0026#34;/etc/keepalived/notify.sh backup\u0026#34; notify_fault \u0026#34;/etc/keepalived/notify.sh fault\u0026#34; } Health Check Script Create the HAProxy health check script /etc/keepalived/check_haproxy.sh:\n#!/bin/bash # Check if the haproxy process is running if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then # Attempt to start HAProxy systemctl start haproxy sleep 2 # Check again, if it\u0026#39;s still not running exit if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then exit 1 fi fi # Check if HAProxy port is listening if ! netstat -tuln | grep -q \u0026#34;:80 \u0026#34;; then exit 1 fi exit 0 State Notification Script Create the state notification script /etc/keepalived/notify.sh:\n#!/bin/bash TYPE=$1 NAME=$2 STATE=$3 case $STATE in \u0026#34;MASTER\u0026#34;) echo \u0026#34;$(date): Became MASTER\u0026#34; \u0026gt;\u0026gt; /var/log/keepalived-state.log ;; \u0026#34;BACKUP\u0026#34;) echo \u0026#34;$(date): Became BACKUP\u0026#34; \u0026gt;\u0026gt; /var/log/keepalived-state.log ;; \u0026#34;FAULT\u0026#34;) echo \u0026#34;$(date): Fault detected\u0026#34; \u0026gt;\u0026gt; /var/log/keepalived-state.log ;; *) echo \u0026#34;$(date): Unknown state: $STATE\u0026#34; \u0026gt;\u0026gt; /var/log/keepalived-state.log ;; esac Set script execution permissions:\nchmod +x /etc/keepalived/check_haproxy.sh chmod +x /etc/keepalived/notify.sh HAProxy Configuration Main Configuration Create the same HAProxy configuration file /etc/haproxy/haproxy.cfg on the master node:\nglobal log 127.0.0.1:514 local0 chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon defaults mode http log global option httplog option dontlognull option log-health-checks option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 # Statistics page configuration listen stats bind *:8080 stats enable stats uri /stats stats realm HAProxy\\ Statistics stats auth admin:password123 stats refresh 30s # Frontend configuration frontend web_frontend bind *:80 default_backend web_servers # Backend server configuration backend web_servers balance roundrobin option httpchk GET /health server web1 192.168.1.20:80 check inter 2000 rise 2 fall 3 server web2 192.168.1.21:80 check inter 2000 rise 2 fall 3 server web3 192.168.1.22:80 check inter 2000 rise 2 fall 3 Configuration Instructions Global Configuration:\nlog: Log configuration chroot: Security sandbox stats socket: Management interface daemon: Background execution Default Configuration:\nmode http: HTTP mode balance roundrobin: Round robin load balancing option httpchk: HTTP health check timeout: Various timeout settings Backend Servers:\ncheck: Enable health checks inter 2000: Check interval of 2 seconds rise 2: Mark as available after 2 consecutive successful checks fall 3: Mark as unavailable after 3 consecutive failed checks Service Startup and Testing Start Service Start the service on the master and backup nodes:\n# Start HAProxy systemctl start haproxy systemctl status haproxy # Start Keepalived systemctl start keepalived systemctl status keepalived Verify VIP Binding Check if the virtual IP is correctly bound:\n# View IP address on the master node ip addr show # You should see output similar to: # eth0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 # inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0 # inet 192.168.1.100/24 scope global secondary eth0:0 Functional Testing 1. Load Balancing Testing # Repeatedly access the VIP and observe request distribution for i in {1..10}; do curl -s http://192.168.1.100/ | grep \u0026#34;Server\u0026#34; done 2. Failover Testing # Stop the HAProxy service on the primary node systemctl stop haproxy # Observe if the VIP switches to the backup node ip addr show # Test if the service is working normally curl http://192.168.1.100/ 3. Backend Server Failure Testing # Stop one of the web servers # On the web1 server: systemctl stop nginx # Observe the HAProxy statistics page curl http://192.168.1.100:8080/stats Monitoring and Maintenance Log Monitoring HAProxy Logs # View HAProxy logs tail -f /var/log/haproxy.log # View access statistics grep \u0026#34;HTTP/1.1\u0026#34; /var/log/haproxy.log | tail -20 Keepalived Logs # View Keepalived logs tail -f /var/log/messages | grep keepalived # View state change logs tail -f /var/log/keepalived-state.log Performance Monitoring Statistical Page Monitoring Access the HAProxy statistics page: http://192.168.1.100:8080/stats Key Metrics:\nSession Rate: Session rate Session Total: Total number of sessions Bytes In/Out: Traffic statistics Response Time: Response time Server Status: Server status Command Line Monitoring # Check HAProxy process status ps aux | grep haproxy # Check port listening status netstat -tuln | grep -E \u0026#34;(80|8080)\u0026#34; # Check connection count ss -ant | grep :80 | wc -l Troubleshooting FAQs 1. VIP cannot be switched Problem Description: After the master node fails, the VIP does not switch to the backup node. Troubleshooting Steps:\n# Check Keepalived configuration keepalived -t -f /etc/keepalived/keepalived.conf # View VRRP communication tcpdump -i eth0 vrrp # Check firewall settings iptables -L | grep vrrp Solution:\nEnsure that VRRP protocol communication is normal. Check network interface configuration. Verify authentication password consistency. 2. Health Check Failed Problem Description: Backend server marked as unavailable Troubleshooting Steps:\n# Manually execute health check curl -I http://192.168.1.20/health # View HAProxy logs grep \u0026#34;Health check\u0026#34; /var/log/haproxy.log Solution:\nEnsure the health check URL is accessible Adjust the check interval and thresholds Check the backend server status 3. Load Unbalance Problem Description: Requests are not evenly distributed to the backend servers. Troubleshooting Steps:\n# View statistics page curl -s http://192.168.1.100:8080/stats # Analyze access logs awk \u0026#39;{print $6}\u0026#39; /var/log/haproxy.log | sort | uniq -c Solution:\nCheck the load balancing algorithm configuration Verify server weights settings Consider session persistence requirements Optimization Suggestions 1. Performance Optimization # Adjust system parameters echo \u0026#39;net.core.somaxconn = 65535\u0026#39; \u0026gt;\u0026gt; /etc/sysctl.conf echo \u0026#39;net.ipv4.tcp_max_syn_backlog = 65535\u0026#39; \u0026gt;\u0026gt; /etc/sysctl.conf sysctl -p # Optimize HAProxy configuration # Increase maxconn value # Adjust timeout parameters # Enable compression functionality 2. Security Hardening # Restrict access to the statistics page # Add ACL rules in haproxy.cfg acl allowed_ips src 192.168.1.0/24 http-request deny if !allowed_ips # Enable SSL/TLS bind *:443 ssl crt /etc/ssl/certs/server.pem redirect scheme https if !{ ssl_fc } 3. Monitoring and Alerts # Integrate with a monitoring system # Configure Prometheus for monitoring # Set up Grafana dashboards # Define alert rules Summary By combining Keepalived and HAProxy, we successfully built a highly available load balancing cluster. This solution offers the following advantages:\nHigh Availability: Achieved through VRRP protocol for automatic failover. Load Balancing: Intelligently distributes requests to improve system performance. Health Checks: Real-time monitoring of service status, automatically removing faulty nodes. Ease of Maintenance: Simple configuration and convenient management. Cost Effectiveness: Utilizing open-source software to reduce operational costs. When deploying in a production environment, it’s also necessary to consider comprehensive aspects such as network security, monitoring and alerts, and backup/restore procedures to ensure stable and reliable operation of the system.\n","date":"2025-09-19","language":"en","permalink":"https://ttf248.life/en/p/keepalived-haproxy-for-high-availability-load-balancing/","tags":["Load Balancing","High Availability","Keepalived","HAProxy","Cluster","Operations \u0026 Maintenance (O\u0026M)"],"title":"Keepalived + HAProxy for High Availability Load Balancing","year":"2025"},{"categories":["AI Inspiration Hub","Investment"],"content":"In the turbulent and unpredictable stock market, we often use faith and expectations as our compass, attempting to navigate through the fog and reach the shores of wealth. However, when our voyage deviates from the guidance of the compass, it’s easy to lose direction, even to run aground. This essay is about one such journey, beginning with an unwavering obsession with Xiaomi, which rose and fell repeatedly amidst the waves of capital.\nThe Clash of Faith and Reality: Xiaomi\u0026rsquo;s Gains and Losses In June, I bought into Xiaomi with unwavering faith in Lei Jun and a hopeful vision for the company’s electric vehicles. At the time, faith was a powerful force, temporarily blinding me to Lei Jun’s shrewdness as a capitalist and overlooking the risks posed by the High-Level Flash Lightning Distribution Platform. Fortunately, several wave trading operations ended with modest profits, giving me a sweet taste of entering the Hong Kong stock market for the first time.\nHowever, this self-confidence soon followed. After making a small profit on Jiu Fang stocks, I became somewhat dazed, relying solely on the flow of net buying funds from the Hong Kong Connect indicator instead of rational analysis.\nMeituan\u0026rsquo;s \u0026ldquo;Waterloo\u0026rdquo; and Blind Re-positioning Guided by the flow of funds, I turned my attention to Meituan. However, this time, I didn’t delve into the company’s financial data, its historical trends, or even realize the raging food delivery war that was unfolding. When the stock price began to fall, I failed to cut my losses in time and instead blindly added to my position.\nShares trading at HK$20,000-30,000, limitations on capital prevented me from managing my positions freely, which undoubtedly exacerbated my losses in Meituan. This lesson deeply made me realize that in the Hong Kong stock market, blind re-positioning is like trying to fill a constantly leaking bathtub with more water – it only accelerates the loss.\n\u0026ldquo;Stupid People Are Lucky\u0026rdquo; - An Unexpected Gain While I was worrying about Meituan\u0026rsquo;s losses, an unexpected turn of events occurred – I bought Alibaba. Although I didn’t hold onto it, I quickly sold it and used the profit to offset some of Meituan’s losses. This might be what’s meant by “stupid people are lucky,” allowing me to temporarily escape Meituan\u0026rsquo;s predicament.\nFinance: More Important Fundamentals Than Investing This experience also made me re-examine my financial management approach, aside from the ups and downs of the stock market. At the time, I invested a sum intended for short-term emergency funds into Chinese bonds. This money was meant to be used for payment within two months, but the short-term holding yield on the bonds wasn\u0026rsquo;t high, and it also posed liquidity issues. If I had instead chosen to deposit this money into a money fund, I could have earned more stable returns and readily redeemed it, better meeting my funding needs.\n","date":"2025-09-18","language":"en","permalink":"https://ttf248.life/en/p/from-meituans-losses-to-bond-mismatch/","tags":["investment","Financial Planning","Stock","Hong Kong Stocks","Xiaomi","Meituan","Alibaba","Bond","Financial Management"],"title":"From Meituan’s Losses to Bond Mismatch","year":"2025"},{"categories":["Diary Ramblings","Investment"],"content":"Everyone has their own life trajectory, so the concept of “being a good teacher” often seems superfluous in adult circles.\nWorldview Our life’s journey begins with vastly different formative experiences, these experiences converging and flowing like rivers to ultimately shape our unique life paths. Each story, each choice, weaves together and merges within our minds, solidifying into our perception of the world – our worldview.\nWhat you\u0026rsquo;ve witnessed as tragedy may be merely a story in a book to another person. What you disdain as a lifestyle may be precisely the ideal someone else desperately pursues.\nUnderstanding and respecting each other’s differences is the first step in comprehending this diverse world. Sometimes, remaining silent is also a form of understanding.\nI prefer to share my experiences and insights rather than engage in empty chatter. However, inevitably, you will encounter moments where observing the slow flow of water is a worthwhile strategy.\nInvestment Philosophy My choice of fixed income plus as the primary investment approach is driven by its emphasis on stable returns and low risk. Therefore, I will allocate a significant portion of my asset allocation to this type of product.\nRegarding stocks, I differentiate between short-term and long-term investments. In my view, short-term investing carries a strong speculative nature, resembling more of a gambit; while long-term investing is genuine value investing. It’s like founding your own company, from fundraising to IPO – you not only reap stock dividends but also gain a profound understanding of economic laws and foresight for the future.\nI\u0026rsquo;ve recognized since childhood that I have a gambling addiction, however, studying allows me to rationally control my irrational desires.\nThe concept of digital currencies is something I generally dislike from an investment perspective – I haven’t found any real value, but we need to understand its principles and risks. There have previously been articles discussing stablecoins.\nEaster Eggs WeChat can fold group chats, and your private conversations with friends can also be folded, from a design perspective, all conversations belong to the same level and are only differentiated in display.\n","date":"2025-08-22","language":"en","permalink":"https://ttf248.life/en/p/sometimes-you-need-to-learn-how-to-interrupt/","tags":["investment","Worldview","Life Reflections","Personal Growth","Fixed Plus","Self-awareness"],"title":"Sometimes you need to learn how to interrupt.","year":"2025"},{"categories":["Computer"],"content":"After reinstalling my system, I’ve consistently been missing a decent PDF reader. Within the 360 Software Center, I saw Xundu PDF recommended, even with a “special edition.” I had already formed a slight impression of this brand at that point, wondering how a niche software like a PDF reader could possibly generate profits – surely the promotional costs wouldn’t pay off. Later, I encountered it again through Xunlei’s promotion, and my computer did indeed need one, so I conveniently installed it.\nEverything was fine\u0026hellip; until the weekend\u0026hellip; After installing the software, it worked perfectly without issue. I noticed some AI features within it, but they required a paid subscription – which wasn’t useful for me, so I didn\u0026rsquo;t purchase them. Back then, I naively thought, “How much money could those paid features really earn?”\nUntil this weekend, when QQmusic suddenly and inexplicably froze and crashed while I was developing locally. Instinctively, I opened Task Manager to see if there were any lingering processes. I discovered that the QQmusic process was still running but unresponsive, so after forcibly ending it, QQmusic could start up normally again.\nHowever, I inadvertently discovered a process named \u0026ldquo;PDF Engine,\u0026rdquo; which was consuming nearly 10% of CPU usage – while the entire system’s resource utilization was only 19%. Curious, I checked the file path and found that it was actually my previously installed Xoon PDF!\nLoss of Trust I don\u0026rsquo;t know if this is a defect in the software, but I’ve completely lost trust in it at this point. Considering its widespread promotion, I can’t help but wonder where all those high promotional costs are coming from – they must be earned somehow. The clandestine running of strange tasks in the background seems almost “reasonable” in retrospect.\n","date":"2025-08-16","language":"en","permalink":"https://ttf248.life/en/p/a-unexpected-software-uninstall-journey/","tags":["Software","Uninstall","Domestic","Scrambler"],"title":"A Unexpected Software Uninstall Journey","year":"2025"},{"categories":["Computer"],"content":"Previously used products, during code development, were largely satisfactory, but Byte’s SOLO introduced significant differences. Initially, participation in beta testing was through invitation codes, and now it involves submitting an email address for review. After approval, the product can be used. I’ve forgotten when I submitted the application, but today I received a notification from Trae indicating that my application had been approved.\nByteSolo’s Advantages Following a standard project development process, it incorporates UI design, requirements analysis, functional design, technical solution implementation, and finally code development. In other words, the overall interaction logic is more friendly for beginners. For complex projects, the traditional approach remains more effective – AI as an auxiliary tool to modify and optimize existing code.\nHong Kong \u0026amp; US Stocks App Development That’s right, the title is exactly what I wrote in the prompt statement, with no additional descriptions. In SOLO mode, first a requirements document and a technical architecture document were outputted. If the user confirms they are okay with it, code development will proceed.\nRequirements Document Technical Architecture Document As I said, while the design isn\u0026rsquo;t particularly perfect, it can be used as a draft. Due to my lack of UI design experience and not having tested the functionality of importing Figma design drafts, it’s perfectly acceptable as a first draft.\nDuring the code construction process, some documents were also discovered. In SOLO mode, the AI attempts to handle any existing issues on its own, such as needing to increase the field design in my local database, it first generates the corresponding script and then writes a js script to execute the database script.\nThere were also some highlights that I didn\u0026rsquo;t find while researching materials. The task decomposition feature was taken from a previous comic reading project. Byte is not short of money; one request can execute a lot of tasks, but this scenario doesn’t occur frequently, new projects will consume a large number of tokens. It’s only when users develop dependencies that they become profitable here. ","date":"2025-08-14","language":"en","permalink":"https://ttf248.life/en/p/bytedance-ais-solo-encoding-new-paradigm/","tags":["ai","trae","Byte"],"title":"ByteDance AI’s SOLO encoding new paradigm","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"Prompt: As a Chinese person, when seeing English financial news and information about actions of US listed companies, why are mergers and acquisitions written like this: NAOV reverse stock split: 1 for 10? Is this a unique English grammar that doesn\u0026rsquo;t conform to Chinese grammatical habits? Based on this, please explain the meaning of the stock split.\nHello! This is a very good question, and many investors who speak Chinese as their mother tongue will have the same confusion when first encountering English financial news. This is indeed a specific expression habit in English in the field of finance, which differs greatly from the order of Chinese grammar. I will explain the meaning of the stock split to you in detail.\nWhy is a 1 for 10 Reverse Stock Split Written as “1 for 10”? Let’s break down this expression: A for B\nWithin this structure:\nA represents the new thing you will receive (the result). B represents the old thing you are giving up (the cost/exchange). The word “for” here means \u0026ldquo;in exchange for”. Therefore, “1 for 10 reverse stock split” translates directly as: “1 new share for 10 old shares”.\nIn other words, your every 10 existing shares will be consolidated into 1 new share. This is precisely what the Chinese terms “10 combine with 1” or “10 shares merge into 1 share” mean.\nGrammatical Habit Comparison English Convention (Result for Reason/Cost): Places “the result obtained” at the front and “the cost paid” at the back. For example, You get 1 new share for your 10 old shares. Headlines are often shortened to 1 for 10 for brevity. Chinese Convention (Reason/Cost -\u0026gt; Result): Tends to follow a chronological or logical order, stating “the original state” first, followed by “the resulting outcome.” For example, “(originally) 10 shares merged into (now) 1 share.” Therefore, this isn’t a universal English grammar; it\u0026rsquo;s a very common convention and abbreviation used when expressing \u0026ldquo;exchange ratio\u0026rdquo; in business and finance. Illustrative Example (NAOV 1 for 10 Reverse Stock Split): Assume you hold 1000 shares of the NAOV company before a reverse stock split, with a share price of $0.5 per share.\nTotal Asset Value: 1000 shares * $0.5/share = $500 USD After the reverse split (1 for 10): Number of Shares Held: 1000 shares / 10 = 100 shares Theoretical Share Price: $0.5/share * 10 = $5 per share Total Asset Value: 100 shares * $5/share = $500 USD Conclusion: The primary purpose of the reverse stock split is to increase the price per share, which reduces the number of shares you hold, but (assuming no market fluctuations) your total asset value remains unchanged. Companies typically conduct reverse stock splits to meet exchange minimum price requirements (such as Nasdaq’s requirement for a share price to maintain above $1).\nStock Split Explanation Once you understand consolidation, a stock split is easily understood. A stock split is the opposite of consolidation. English is typically written like this: 2 for 1 stock split or 3 for 1 stock split. Using the A for B structure we’ve learned above to interpret it: 2 for 1 stock split means: \u0026ldquo;You will receive 2 new shares in exchange for your 1 old share.\u0026rdquo; This is exactly what the Chinese phrase “1拆2” or “1股拆为2股” means.\nExample (A Company’s 2 for 1 Stock Split):\nLet\u0026rsquo;s assume that before the split, you hold 100 shares of a company with a stock price of $200 per share.\nTotal Asset Value: 100 shares * $200/share = $20,000 After the split (2 for 1): Number of Shares Held: 100 shares * 2 = 200 shares Price Per Share (Theoretically): $200/share / 2 = $100 per share Total Asset Value: 200 shares * $100/share = $20,000 Conclusion: The purpose of a stock split is to lower the price per share, making it more attractive to small investors and increasing liquidity. It will increase your number of shares held, but equally so, your total asset value remains unchanged.\nSummary Company Action Chinese Description English Example English Meaning Impact on Share Holding Quantity Impact on Stock Price per Share Reverse Split 10合1 1 for 10 Exchange 10 old shares for 1 new share Decrease Increase Summary Company Action Chinese Description English Example English Meaning Impact on Shareholding Quantity Impact on Stock Price per Share Stock Split 1拆2 2 for 1 Exchange 1 old share for 2 new shares Increase Decrease Summary Hopefully, this explanation will help you better understand English financial news! It truly is a way of expression that requires a shift in mindset to get used to.\n","date":"2025-08-13","language":"en","permalink":"https://ttf248.life/en/p/understanding-spin-offs-and-splits-in-the-us-stock-market-can-be-challenging/","tags":["U.S. Stock Market","Reverse Stock Split","AI Inspiration Hub"],"title":"Understanding spin-offs and splits in the US stock market can be challenging.","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"The practice of “the same contract code, for transactions in the same direction, commission is only charged once” is commonly referred to as “Commission Aggregation / Combined Commission” within the securities industry. This is not a hard-and-fast regulation by the Hong Kong Exchange or regulatory bodies, but rather a business convention formed through market competition and brokers’ efforts to optimize customer experience.\nRegarding HK stocks, when the same contract code is used for transactions in the same direction, only one commission is charged – does this have any historical business background?\nKey Historical Turning Points: Cancellation of the Minimum Commission Rule in 2003 This is the most important background to understand this issue.\nPre-Reform (Before April 1, 2003): The Hong Kong stock market operated under a Minimum Commission Rule. At the time, brokers were required to charge clients a commission of no less than 0.25% of the transaction value. During this period, all brokerage commissions were essentially locked at the same level, and competition primarily focused on research capabilities, client relationships, and service quality; price wars were virtually non-existent. Therefore, there was no incentive to consolidate commissions for clients.\nPost-Reform (After April 1, 2003): The Hong Kong Exchange officially abolished the Minimum Commission Rule, allowing brokers and clients to freely negotiate commission rates. This reform instantly ignited competition in the Hong Kong securities industry, particularly commission price wars.\nA Product of Fierce Market Competition Following the removal of minimum commission fees, securities firms (particularly emerging internet brokers) have adopted various innovative pricing strategies to attract customers. “Consolidated Commission” is one such highly attractive initiative.\nAttracting Active Traders: For high-frequency traders or investors who prefer to buy and sell the same stock in batches (such as to avoid large single orders impacting market prices), per-trade fees can significantly increase transaction costs. The “Consolidated Commission” policy perfectly addresses this pain point, allowing investors to flexibly establish or liquidate positions within a day without worrying about multiple commission charges.\nReducing Customer Transaction Costs: This is the most direct objective. By consolidating calculations, customer actual commission expenses are reduced, making the broker’s platform more competitive in terms of cost.\nEnhancing Customer Experience and Loyalty: This customer-friendly policy greatly enhances the user experience, making customers feel that the broker is looking out for their interests, thereby strengthening customer loyalty and retention.\nBusiness Logic and Brokerage Interests Although superficially, brokerage revenue appears to be declining, from a holistic business logic perspective, it’s a win-win situation:\nLow Margin, High Volume: Reducing the effective cost of each transaction can stimulate customers to trade more frequently, thereby increasing overall trading volume. While brokers “give away” commissions on individual trades, they can compensate by increasing total transaction volume and earning other fees, such as platform usage fees and financing/margin interest.\nMarket Share Acquisition: In a fiercely competitive market, particularly for new internet brokerages, low commission rates and promotional policies are the most effective means of quickly acquiring users and capturing market share.\nKey Points to Note Not All Brokers Offer It: While “merged commission” has become mainstream, it’s still a broker\u0026rsquo;s business decision and not a mandatory regulation. Some traditional brokers or banks may still charge per trade for their securities services, so investors need to carefully review the broker’s fee schedule when choosing a broker. Only Applies to “Commission”: Be sure to note that the calculated merged amount only includes the “commission” charged by the broker. Any “fixed fees” collected by the government or exchanges are calculated per trade and cannot be merged. These include: Stamp Duty (印花税): 0.1% (Paid by both buyer and seller, rounded up to the nearest dollar) SFC Transaction Levy (交易征费): 0.0027% (Collected by the Securities and Futures Commission) HKEX Trading Fee (交易费): 0.00565% (Collected by the Hong Kong Exchanges and Clearing) FRC Transaction Levy (会财局交易征费): 0.00015% (Collected by the Financial Regulatory Authority) In summary, the “merged commission” policy of Hong Kong brokers is rooted in the abolition of the Minimum Commission System in 2003. It was a significant business strategy adopted by brokers in an environment of market liberalization and intense competition – to reduce customer costs, enhance service experience, attract and retain customers – representing a microcosm of Hong Kong’s financial market transitioning from traditional to modern, from high barriers to accessibility.\n","date":"2025-08-13","language":"en","permalink":"https://ttf248.life/en/p/hong-kong-stock-exchange-brokerage-fee-liberalization-and-market-competition/","tags":["AI Inspiration Hub","Hong Kong Stocks","Commission","Liberalization","Market Competition"],"title":"Hong Kong Stock Exchange Brokerage Fee Liberalization and Market Competition","year":"2025"},{"categories":["Diary Ramblings","Investment"],"content":"Using AI too much, we start thinking of AI for everything – often, learning new developments is more reliable with search engines plus official project documentation.\nHong Kong stocks entered on the dip, encountered a pullback, and then just randomly traded, resulting in basic losses.\nStrategy Trading Not necessarily to actually practice and make money, but rather to improve my own abilities through learning. I don\u0026rsquo;t believe in these trading indicators; I mostly trust the national fortune (luck) and investing in broad market indices via a buy-and-hold strategy.\nAlgorithmic Trading The inspiration from last month’s “AI-less project” didn\u0026rsquo;t prove useful, so I started trying to implement it with AI – and that’s where the problems began. The correct approach should have been to first gather information and see what existing projects were doing. Previously, I hadn’t done any algorithmic trading; I wasn’t familiar with indicators, market data handling, etc.\nThe initial plan was unreliable, entirely based on my own speculation (“YY”) through communication with AI. I learned about the backtesting framework this way, and looked at GitHub – the project was quite active.\nOver-reliance on AI led to wanting to use it for everything, even requesting an AI-generated learning resource, a vibrant project, and official documentation that’s well-maintained. Prioritizing official documentation or searching for high-quality blogs is better; the learning plans provided by AI were too weak and didn\u0026rsquo;t keep up with current code versions.\nProject Structure Adjustments:\nData Download: I chose Yahoo Finance – this provides daily candlestick data for price changes (price fluctuations). Backtesting Official Guide: Learning the basics of using the official backtesting guide. TA-Lib Installation and Usage: Installing and using TA-Lib, calculating common indicators, and displaying the data through backtesting. Implementing Alipay’s Fixed Investment Logic: This strategy is better suited for long-term ETF investments. Hong Kong Stock Trading Entering Hong Kong stock trading was roughly two months ago, a simple recap.\nThe timing and motivation for buying Meituan were straightforward – I saw the net inflow of domestic funds and didn’t delve deeply into Meituan\u0026rsquo;s recent situation; coincidentally, I caught the food delivery war and became a shareholder in Meituan. Buying Xiaomi was also at a high price point, and it was appropriate to reduce my position and exit some shares when an opportunity arose. The four factories were implemented, presenting an opportunity, but one that required persistence – about three years have passed.\nThe timing of entry was when Hong Kong’s new consumer and technology stocks were already expensive, coupled with the concept of virtual currencies; when technology stocks retraced, it was a recurring issue – the frequency of adding to positions is not suitable for long-term investment. Today, I thought about betting on a rebound, buying a hand full, but the next day it fell and I couldn’t bear to sell it. When encountering sustained declines, one easily gets trapped.\nAs a long-term investor, my trading frequency was too high – roughly twice a week would be sufficient. The Shanghai Composite Index is 3600; domestic large-cap stocks haven\u0026rsquo;t been much invested in through fixed deposits; this missed an opportunity as well.\n","date":"2025-08-01","language":"en","permalink":"https://ttf248.life/en/p/daily-musings/","tags":["investment","ai"],"title":"Daily Musings","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"To truly understand the significant differences between traditional stocks and digital currencies in terms of trading and settlement, we need to deeply grasp the core “components” and “rules” that make up each ecosystem. We can view them as two entirely different games: one a rigorous, multi-party collaborative “professional league,” and the other a code-as-law, open-to-all “open world.”\nRegarding the previous two questions, are there any foundational knowledge points we could explore to further expand this understanding? Let’s also compile some resources for you to learn more about this.\nPart 1: The Foundation of Traditional Stock Markets – A Chain of Trust Composed of Professional Institutions The core of traditional financial markets is “trust” and “intermediaries.” The entire system is designed as a multi-layered structure, with each stage played by regulated professional institutions to ensure market stability and security.\nThe Players You (Investor): The starting and ending point of the transaction. Broker: The sole gateway for you to enter the market. You cannot directly go to the Shanghai Stock Exchange or New York Stock Exchange to buy stocks; you must use a broker holding a license to execute your trading instructions and hold your funds and securities (as a nominal holder). Stock Exchange: The market’s “trading floor”. Examples include the New York Stock Exchange (NYSE) and NASDAQ. Its primary function is to provide a fair, open venue where buy and sell offers meet (matching), thereby discovering prices. The exchange only handles order matching; it does not handle subsequent fund and stock transfers. Central Counterparty Clearing Corporation (CCP): The market’s “risk guarantor”. This is at the core of risk management. After a trade is executed, the CCP intervenes between all buyers and sellers, becoming “all buyers to all sellers” and “all sellers to all buyers.” This way, any party\u0026rsquo;s default risk is borne by the CCP, preventing risks from spreading through the market like dominoes. Central Securities Depository (CSD): The market’s “ultimate vault” and “master registry”. Examples include DTCC in the US and China’s ZSDEC. This is a crucial institution that electronically centralizes and custodians the vast majority of securities in the entire market. Core Concepts: The “Paperless” and “Non-Moveable” Nature of Securities Dematerialization: The stocks you buy today are not physical paper certificates, but a series of electronic records within a CSD (Central Securities Depository) database.\nImmobilization: This is key to understanding settlement. When settlement occurs, there isn\u0026rsquo;t actually an “electronic stock file” being sent from one broker’s server to another. Instead, all the stocks are “fixed” stored in this central vault – the CSD. The settlement process simply involves the CSD making a transfer of shares from the seller broker’s omnibus account to the buyer broker’s omnibus account on its master ledger. Your broker then updates its own internal customer records to reflect that you now hold more shares.\nThis multi-tiered, clearly defined structure, while introducing time delays (T+N), has established a robust and mature risk isolation and management mechanism – the cornerstone of modern financial markets\u0026rsquo; stable operation.\nPart Two: The Foundation of the Digital Currency Market – A “Trustless” System Built on Code and Cryptography Digital currencies aim to reduce or eliminate reliance on traditional intermediaries, with its foundation being “cryptographic proof” rather than “institutional trust.”\nCore Technology (The Technology) Blockchain / DLT (Distributed Ledger Technology): Think of it as a distributed, globally maintained ledger that cannot be altered, held by countless individuals. Every transaction is publicly recorded and verifiable by anyone, but no single person or institution can control it. Public \u0026amp; Private Keys: This is the sole proof of ownership for your assets in the digital currency world. Public Key: Equivalent to your bank account number. You can safely share this with anyone to receive digital currencies. Your wallet address is generated from the public key. Private Key: Equivalent to your bank password + U盾 + signature combination, it’s the only key to access assets associated with that address. Whoever holds the private key has absolute control over the assets in that address. This is also the origin of the encryption world\u0026rsquo;s golden rule: “Not your keys, not your coins” (If you don’t hold the private key, you don’t own the cryptocurrency). Crypto Wallet: It doesn’t store any “coins” (coins always reside on the blockchain). The wallet’s essence is a tool for managing your private key and helping you sign transactions with your private key to interact with the blockchain network. Smart Contract: This is a piece of code that automatically executes on the blockchain. Its logic is “If…then…” (IF-THEN). For example, a decentralized exchange’s smart contract could be: “If I receive 1 ETH from User A, then automatically send 2000 USDC to User A\u0026rsquo;s address.” The entire process is automatically enforced by code with no human intervention and without requiring trust in anyone. Core Rules: Consensus Mechanism How do thousands of nodes in a network reach agreement on which transactions are valid when there is no central server? That’s the role of a consensus mechanism. The two most common types are:\nProof of Work (PoW): As exemplified by Bitcoin. It involves “miners” performing massive hash calculations (like solving an extremely difficult math problem) to compete for the right to record transactions. The first miner to solve the puzzle can package the latest transactions into a block and broadcast it to the entire network, which other nodes verify and accept. This method is highly energy-intensive but provides very high security.\nProof of Stake (PoS): Adopted by Ethereum after its upgrade. It no longer relies on a competition of computing power; instead, “validators” who hold and “stake” tokens are selected to create and validate blocks. The more tokens staked, the greater the probability of being chosen to record transactions. If they act maliciously, their staked tokens will be forfeited. This method is more energy-efficient and efficient.\nSummary and Comparison To better understand, we can use a table to summarize the fundamental differences between them:\n| Asset Type | Electronic Ledger (Dematerialized) in CSD | Native Digital Token on Blockchain |\nSummary and Comparison Feature Traditional Stock Market Digital Currency Market Proof of Ownership Depository records (beneficial ownership) Control over private keys (direct ownership) Summary and Comparison Feature Traditional Stock Market Digital Currency Market Trust Model Trust in regulated legal and financial institutions Trust in open-source code and cryptographic proofs (“trustless”) Summary and Comparison Feature Traditional Stock Market Digital Currency Market Core Ledger Centralized ledger maintained by a CSD Distributed ledger maintained by all network nodes Summary and Comparison Feature Traditional Stock Market Digital Currency Market Counterparty CCP (Central Counterparty) The other party in the trade or smart contract Summary and Comparison Feature Traditional Stock Market Digital Currency Market Summary and Comparison Through the above additions, you can see that traditional finance relies on establishing a complex “trust chain” to manage risk and complete settlements; while digital currencies attempt to build a system without intermediaries using technological means (cryptography and distributed networks) to achieve self-validation. These two fundamentally different underlying logics determine the stark differences in all aspects of transactions, clearing, and settlement.\n","date":"2025-07-28","language":"en","permalink":"https://ttf248.life/en/p/significant-differences-in-trading-and-settlement-between-stocks-and-digital-currencies/","tags":["AI Inspiration Hub","Stock","Digital Currency","Transaction","Write-off"],"title":"- Significant differences in trading and settlement between stocks and digital currencies","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"In today’s era of the global digital wave, we\u0026rsquo;ve become accustomed to instant transfers and near-instant payments. Therefore, many people are confused: why, after clicking “sell” on a stock, does my funds not immediately clear in full and become available, but instead takes one or two business days? This is precisely a crucial and historically significant concept within traditional stock trading – settlement.\nprompt: Why does traditional stock trading require the concept of settlement?\nHere\u0026rsquo;s the English translation:\n“Trading” and “Settlement” are two separate steps.\nTrading: This refers to the moment you place a buy or sell order on an exchange that is successfully matched. At this point, you and your counterparty have reached a legally binding contract committing to exchanging stocks and funds at some point in the future.\nSettlement: This is the process of fulfilling the terms of the agreed-upon contract – namely, the ownership of the stock officially and irrevocably transfers from seller to buyer, while the funds are officially and irrevocably transferred from the buyer’s account to the seller’s.\nThe need for these two separate steps and a time lag (such as T+1, T+2 systems) stems from historical evolution and rigorous risk management in finance.\nHistorical Roots: Originating in the “Paper” Era Prior to the widespread adoption of computer systems, stocks were tangible paper certificates. Following a trade executed orally or through gestures at an exchange, subsequent work was incredibly laborious:\nPhysical Transportation: The seller’s brokerage firm needed to retrieve the corresponding stock certificate from its vault. Endorsement Transfer: Signing and endorsing the back of the certificate to verify ownership transfer. Manual Delivery: These certificates and associated checks had to be delivered by personnel (couriers) throughout the city to the buyer\u0026rsquo;s brokerage firm. Verification \u0026amp; Reconciliation: The buyer’s brokerage firm needed to verify the authenticity of the certificates and the accuracy of the transaction details. The entire process involved a significant amount of manual labor and physical transfer, riddled with delays and uncertainty. Consequently, an settlement cycle of several days (initially as long as T+5) was established to complete these complex processes. In the late 1960s, Wall Street was plunged into a “Paperwork Crisis” due to a surge in trading volume; a large number of trades could not be completed on time, even forcing exchanges to shorten trading hours. This directly spurred the establishment of modern electronic clearing systems.\nModern Core: An Unreplaceable Risk Management Despite all transactions being electronic today, the T+N settlement system remains in place because its core function has evolved from “waiting for logistics” to managing the massive risks of the financial system. This process is primarily carried out by a key player – Central Counterparty (CCP) Clearinghouses, such as the Depository Trust \u0026amp; Clearing Corporation (DTCC) and the China Securities Depository and Clearing Corporation (CSDC) in the United States and China, respectively.\nThe settlement system is mainly designed to mitigate the following core risks:\nCounterparty Risk This is the most fundamental risk. If you sell shares, how can you be 100% certain that the buyer will pay on time? Conversely, how can the buyer be 100% certain that the seller will deliver genuine shares? If either party defaults, it could trigger a chain reaction.\nSolution: The intervention of a Central Counterparty (CCP).\nAfter a trade occurs, the CCP steps in between the buyer and seller, acting as both the seller’s “buyer” and the buyer’s “seller.” Through this legal arrangement called “novation,” the original buyer-seller relationship is no longer direct; instead, each party is responsible to the CCP.\nFor the Seller: As long as shares are delivered to the CCP, they will definitely receive money from the CCP. For the Buyer: As long as money is delivered to the CCP, they will definitely receive shares from the CCP. In this way, the default risk of a single participant is absorbed by the highly creditworthy central institution – the CCP – and does not spread throughout the market.\nClearing \u0026amp; Netting A large brokerage firm handles millions of transactions in a single day, involving both buying and selling. If each transaction were processed individually, the system would be overwhelmed.\nSolution: “Clearing” is performed before settlement date.\nAt the end of the trading day (T-day), clearing agencies consolidate all buy and sell transactions for each broker, known as “netting” or “clearing \u0026amp; netting.” For example, a brokerage firm might have bought $10 billion worth of stock and sold $9.8 billion on a given day. On settlement day, it only needs to pay a net difference of $20 million in cash, rather than engaging in a $19.8 billion exchange. Similarly, securities settlements are also processed on a net basis. This significantly improves the efficiency of the entire market and reduces liquidity requirements.\nThe Complete Lifecycle of a Stock Transaction Let’s take a simple example to see the entire process from trade to settlement (using a T+2 model):\nT Day (Trading Day): You click “Buy” 100 shares of a company\u0026rsquo;s stock in the morning and it immediately executes. At this point, you reach an agreement with the seller, but ownership of the stock and funds has not yet transferred.\nT Day Aftermarket ~ T+1 Day (Clearing Period):\nThe exchange sends your trade data to the Central Clearing Corporation (CCP). The CCP confirms the transaction information is accurate and performs a “contract swap,” becoming your counterparty for the trade. The CCP calculates the net amount of all your trades on that day through your brokerage firm, and notifies your broker how much money and securities you need to deliver by T+2. T+2 Day (Settlement Day):\nIn the morning, your broker transfers the net settlement funds to the CCP. The CCP confirms receipt of the funds and instructs the Securities Custody Agency to transfer 100 shares of stock from the seller’s brokerage account to your brokerage account. Your broker updates your account information internally, showing that you now hold these 100 shares of stock. At this point, settlement is complete, and you officially become the legal owner of these 100 shares of stock, with the right to receive dividends, participate in voting, etc.\nIn essence, the traditional concept of “settlement” in stock trading is a product of historical practice combined with modern risk control theory. It evolved from a mechanism to solve the problem of paper-based certificate circulation into a core system that uses a central counterparty and net settlement to ensure the stability and efficiency of the entire financial market. This seemingly \u0026ldquo;delayed\u0026rdquo; design is actually the key firewall protecting every investor from counterparty default risks.\n","date":"2025-07-28","language":"en","permalink":"https://ttf248.life/en/p/why-the-concept-of-settlement-is-necessary-in-traditional-stock-trading/","tags":["AI Inspiration Hub","Stock Trading","Same-day Delivery","Write-off"],"title":"Why the concept of “settlement” is necessary in traditional stock trading?","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"Unlike traditional stock markets with defined opening and closing times, the digital currency market has attracted the attention of global investors due to its 7x24-hour continuous trading feature. This characteristic has also raised a core question: how are digital currencies cleared and settled in a world without a “market close” concept? Does it completely overturn these concepts in traditional finance? The answer is that digital currencies not only have clearing and settlement, but the way they are implemented and their system design are key to supporting all-day trading.\nCore Difference: From T+2 to Real-Time Settlement Traditional stock trading follows a “T+N” settlement system (e.g., T+1 in China, T+2 in the US), meaning that the actual transfer of funds and securities after a trade is executed (on day T) takes one or more business days to complete. During this period, clearing agencies conduct offsetting, calculate the receivables and payables of each party, and settle differences. Digital currencies have completely changed this model. Its core settlement and delivery can be summarized as “Trade-to-Clear, Clear-to-Deliver,” primarily due to its underlying blockchain technology.\nBlockchain: A Natural Real-Time Full Settlement System Blockchain itself can be considered a decentralized, immutable public ledger. Each transaction is recorded in a “block” and linked to the previous block through cryptographic methods, forming an irreversible “chain.” This process has the following key characteristics:\nReal-Time: Once a transaction is validated by nodes on the network and packaged into a block, the transfer of assets is completed. Although confirmation times vary depending on the congestion and block generation speed of different blockchain networks (such as Bitcoin and Ethereum), ranging from seconds to several minutes, this is a qualitative leap compared to traditional finance’s “T+N.”\nFull Settlement: Unlike net settlement in traditional clearing systems, each transaction on the blockchain is independent and fully executed. When A transfers a bitcoin to B, it is clearly recorded in the ledger as A\u0026rsquo;s address decreasing by one and B\u0026rsquo;s address increasing by one, without any netting of multiple transactions before transfer.\nFinality: Once a block has been confirmed by enough subsequent blocks, this transaction is considered “final” and irreversible. This means that once settled, no one can undo or modify it.\nTherefore, fundamentally, asset settlement occurs on the blockchain, automatically completed through network consensus, without the need for traditional central clearing counterparties (CCPs) or custodians.\nCentralized vs. Decentralized Exchanges: Different Clearing and Settlement Pathways Although the underlying technology is decentralized, the primary venues where users conduct digital currency transactions – exchanges – are divided into two types: centralized (CEX) and decentralized (DEX), which have different clearing and settlement mechanisms.\nCentralized Exchanges (CEX): Internal Clearing + On-Chain Settlement When users trade on centralized exchanges like Binance and Coinbase, they are actually operating within the exchange’s internal centralized ledger, rather than directly on the blockchain.\nInternal Clearing (Ledgering): When users deposit digital currencies or fiat currency into an exchange, the exchange records corresponding balances in its database for the user\u0026rsquo;s account. All buy and sell actions a user takes on the platform, such as buying BTC with USDT, essentially just represents increases and decreases in numbers within different accounts in the exchange’s database. This process is completed quickly by the exchange’s “matching engine,” which can be considered a real-time internal clearing.\nOn-Chain Settlement (Withdrawal/Deposit): The actual settlement that occurs on the blockchain only happens when users “deposit” (transfer from an external wallet into the exchange) and “withdraw” (transfer out of the exchange to an external wallet). At this point, the exchange initiates a chain transaction to truly transfer asset ownership.\nSystem Design Key Points:\nHigh-Performance Matching Engine: Ensures rapid order matching under high concurrency. Cold \u0026amp; Hot Wallet Separation: Most user assets are stored in offline “cold wallets” to ensure security, while a small amount of assets is kept in online “hot wallets” to meet users’ daily withdrawal needs. This is the core design for ensuring 7x24 hours of asset safety operation. Internal Ledger Database: Utilizes a high-performance distributed database to ensure the accuracy and immediacy of internal transaction records. Decentralized Exchanges (DEXs): On-Chain Atomic Swaps In decentralized exchanges like Uniswap and SushiSwap, the trading process is radically different. Users always maintain control over their own wallet private keys, and transactions are executed directly on-chain through “smart contracts.”\nAtomic Swap: This is the core of how DEXs clear and settle trades. A smart contract is a program that automatically executes on a blockchain, ensuring that the exchange of assets is \u0026ldquo;atomic\u0026rdquo;—either both parties successfully exchange their assets, or neither does—preventing one party from sending assets without receiving confirmation from the other.\nClearing and Settlement Synchronized: Users authorize interactions with smart contracts through their wallets. Once a transaction is triggered and confirmed on the blockchain, clearing and settlement are instantly completed in a single step. The entire process requires no trust in any centralized intermediaries.\nSystem Design Key Points:\nSmart Contracts: The core logic of the exchange, including trading pairs, liquidity pools, and pricing algorithms (such as Automated Market Makers - AMMs) are all hardcoded into the smart contract, making them public and transparent. On-Chain Oracles: Used to securely feed external market price information onto the blockchain, providing price references for certain types of DEXs. Frontend: Provides a web or app interface that allows users to connect their wallets and interact with the backend smart contracts. Summary: The New Paradigm for Digital Currency Clearing and Settlement In essence, digital currencies are not without the concepts of clearing and settlement; rather, they have transformed from a multi-party, time-consuming back-office process into an efficient, transparent, and even real-time automated one through blockchain technology and innovative system designs.\nClearing Concepts Remain: This is evident in CEXs as real-time matching and ledger accounting, and in DEXs, smart contracts incorporate clearing rules. Settlement is the Core Transformation: Finality of settlement is guaranteed by blockchain consensus, enabling near real-time asset transfers – a cornerstone supporting 7x24 uninterrupted trading. System Design Serves Uninterrupted Operation: Whether it’s CEX cold and hot wallet architectures or DEX automated smart contracts, the primary design objective is to achieve a transaction environment without manual intervention and never closed, while ensuring security. This disruptive clearing and settlement mechanism is not only a significant distinguishing feature of digital currency markets compared to traditional finance but also provides important insights into the future evolution of financial infrastructure.\n","date":"2025-07-28","language":"en","permalink":"https://ttf248.life/en/p/over-the-counter-otc-clearing-and-settlement-of-digital-currencies-unveiling-the-mechanisms-behind-7x24-continuous-trading/","tags":["Digital Currency","Write-off","Same-day Delivery","7x24 hour trading"],"title":"Over-the-Counter (OTC) Clearing and Settlement of Digital Currencies: Unveiling the Mechanisms Behind 7x24 Continuous Trading","year":"2025"},{"categories":["Computer"],"content":"The host unexpectedly crashed with a blue screen, preventing it from booting. It’s using UEFI boot format and the system consistently fails to load properly. Switching to an MBR boot format (the older one) allows the system to start normally.\nFollowing standard troubleshooting steps, we enabled remote desktop access, and another machine tested successfully – all network components were functioning correctly. Users log in as usual with their Microsoft accounts.\nHowever, when attempting to log in via remote desktop, the error message \u0026ldquo;Login Failed\u0026rdquo; appears without any further information.\nSolution Because this is a system logged in with a Microsoft account, when using Remote Desktop login, it defaults to using the Microsoft account\u0026rsquo;s email address as the username. The system recommends enabling PIN code login.\nReferring to information found online, the first step is to disable security settings, specifically the To improve security, only allow this device to use Windows Hello sign-in (recommended) option within the Sign-in Settings. Disable it.\nThe key second step is to restart the system. At this point, you will see the login interface with PIN code login removed and an additional Microsoft Account option. Select account login and manually enter your username and password. Now, when attempting remote desktop login again, it works normally.\nReferences https://learn.microsoft.com/zh-cn/answers/questions/2191955/question-2191955\n","date":"2025-07-22","language":"en","permalink":"https://ttf248.life/en/p/win11-pro-professional-remote-desktop-login-error-login-failed/","tags":["windows","win11","Remote Desktop","rdp","Login Failed"],"title":"Win11 Pro Professional, Remote Desktop login error: Login failed","year":"2025"},{"categories":["Financial Knowledge Base","AI Inspiration Hub"],"content":"Driven by the tide of technological innovation, RWA (Real World Assets) and Web3 have become hot topics in the financial industry. Traditional financial institutions – once regarded as conservative and stable giants – are now actively embracing these emerging concepts, vigorously promoting the development of RWA and DeFi (Decentralized Finance). However, behind this technology-driven transformation lies a core question worth pondering: Are these dazzling new concepts truly disruptive innovation, or simply giving traditional financial businesses a “new look”?\nRWA and Web3: Decoding Core Concepts RWA (Real World Assets), referring to real-world assets, are tangible or intangible assets from the physical world that are issued and traded as digital assets on a blockchain through “tokenization” technology. These assets can encompass real estate, bonds, private credit, artwork, carbon credits, and more. Its core value lies in:\nEnhancing Liquidity: Dividing illiquid assets (such as real estate) into smaller shares, reducing investment barriers, and enabling them to be traded easily on secondary markets like stocks. Improving Transparency and Efficiency: Utilizing blockchain’s immutability and traceability to simplify asset issuance, trading, and settlement processes, reduce intermediaries and human error, ultimately lowering costs and improving efficiency. Expanding Financing Channels: Providing asset owners with a globalized, more efficient financing platform, breaking down geographical and traditional financial intermediary restrictions. Web3, often referred to as “the next generation internet,” has core principles of building a decentralized, user-owned and controlled internet ecosystem. Unlike the Web2 era dominated by a few tech giants, Web3 is based on blockchain technology, aiming to return data ownership and control to users. Its key features include:\nDecentralization: Information and applications are no longer stored on single company servers but distributed across numerous nodes in the network, reducing the risk of single points of failure and censorship. User Sovereignty: Users have greater control over their personal data, choosing with whom to share it and how it is used. Permissionless and Censorship-Resistant: Anyone can participate in the network, publish applications or use services without needing approval from centralized authorities. Why Are Traditional Financial Institutions Embracing RWA and DeFi? Traditional financial institutions are actively pushing for RWA and DeFi primarily due to the following strategic considerations:\nEfficiency Gains \u0026amp; Cost Reduction: The traditional financial system is characterized by significant manual auditing, complex clearing and settlement processes, and burdensome compliance steps, leading to inefficiency and high costs. Through smart contracts and blockchain technology, DeFi and RWA can automate many of these processes, significantly reducing operational costs. Creating New Revenue Streams \u0026amp; Markets: The emergence of RWA has opened up new asset classes and business models for financial institutions. For example, providing tokenized services for real estate or private credit projects, underwriting, and trading can generate new fees and consulting revenue. Responding to Competition \u0026amp; Maintaining Leadership: Competition from fintech companies and crypto native enterprises is intensifying. By proactively positioning themselves in RWA and DeFi, traditional financial institutions can demonstrate their innovative capabilities, attract a new generation of clients, and secure a favorable position in the future financial landscape. Enhancing Transparency \u0026amp; Risk Management: The transparency offered by blockchain helps improve the visibility of underlying asset information, allowing investors to better assess risks. Furthermore, standardized token protocols and automated compliance checks can also enhance risk management efficiency. Business Essence: New Wine in an Old Bottle? Despite RWA and DeFi bringing innovation in technology and models, from a core business logic perspective, the current RWA-related businesses undertaken by traditional financial institutions are largely extensions and digital upgrades of their traditional businesses.\nTaking RWA as an example, its core is to tokenize traditional assets. This process bears a striking resemblance to traditional Asset Securitization (ABS). ABS involves transforming illiquid assets with predictable cash flows into tradable securities in financial markets through packaging and layering. RWA simply shifts the carrier of securitization from traditional electronic certificates to blockchain-based tokens. Its essence remains credit intermediation and asset management – selecting high-quality assets, structuring them, and selling them to investors. For example, packaging the future rental income rights of a commercial property into tokens is no different than issuing Real Estate Investment Trusts (REITs) in terms of its core financial nature.\nSimilarly, in the DeFi sector, although its “decentralized” concept aims to disrupt traditional financial intermediaries, the way current institutions are participating is primarily to utilize their technological advantages to optimize existing businesses. For example, using smart contracts to simplify loan approval and disbursement processes or conducting more efficient cross-border payments and settlements through decentralized exchanges. Its core business of lending, trading, and payment remains the cornerstone of the financial system.\nIt can be said that traditional financial institutions driving RWA and DeFi is more like a “self-revolution,” namely, without changing its core financial functions, using new technologies to improve efficiency, reduce costs, and expand markets. They are not trying to completely overthrow themselves but rather hope to consolidate and expand their industry position through technological innovation.\nIn conclusion, RWA and Web3 have undoubtedly brought profound changes to the financial industry. They have solved many pain points in traditional finance through technology. However, for traditional financial institutions at this stage, embracing these technologies is more like a cautious and pragmatic strategic choice. Its core business logic has not fundamentally changed, still revolving around assets, credit, and transactions – these ancient financial themes. As technology matures and regulation improves, we may see more disruptive financial innovations; however, given the current situation, “new wine in an old bottle” is perhaps the most accurate description.\n","date":"2025-07-21","language":"en","permalink":"https://ttf248.life/en/p/rwa-real-world-assets-and-web3-a-new-bottle-of-old-wine/","tags":["rwa","web3","Fintech","Blockchain","investment"],"title":"RWA (Real World Assets) and Web3: A New Bottle of Old Wine?","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"We use an easy-to-understand analogy to explain the relationship between digital currency “mining” and “accounting,” as well as why Bitcoin and Ethereum have different supply caps.\nOkay, let’s use an easy-to-understand analogy to explain the relationship between digital currency “mining” and “accounting,” as well as why Bitcoin and Ethereum have different supply caps.\nMining and Accounting: A Public Participation Ledger Competition Imagine the entire Bitcoin network as a massive, public, and transparent electronic ledger. Every Bitcoin transaction (such as Zhang San sending a Bitcoin to Li Si) that occurs anywhere in the world needs to be recorded onto this large ledger for the transaction to be considered successful.\nBut who records these transactions? If anyone could just write them down arbitrarily, it would become chaotic!\nTo solve this problem, the Bitcoin system has designed an ongoing “accounting competition.”\nAccounting (Bookkeeping): This involves bundling all transactions that have occurred in the past approximately 10 minutes into a \u0026ldquo;block\u0026rdquo; (which can be understood as a page of the ledger). This block not only includes transaction records but also contains a link to the previous \u0026ldquo;block\u0026rdquo; (the previous page of the ledger), linking one page after another to form an immutable chain, which is called “blockchain.”\nMining: The core issue is: who has the right to record this page? The answer is: whoever first solves an extremely complex mathematical problem gets the accounting rights for that time. This solving process is形象地称为“mining”.\nWhy is it called \u0026ldquo;Mining\u0026rdquo;? Because this process requires a large amount of computing resources (mining machines) and energy (power), just like real-world mining requires equipment and labor.\nWhat is the purpose of solving the problem? This mathematical problem itself has no practical meaning; its sole purpose is to increase the difficulty of accounting, ensuring that an average person (or a mining pool) can solve it approximately every 10 minutes. This guarantees stable ledger update speed and ensures system security. Anyone who wants to tamper with the ledger must have twice the computing power of the entire network, which is practically impossible economically.\nTherefore, the relationship between mining and accounting can be summarized as:\n“Mining” is the process of competing for “accounting rights,” while “Accounting” is the reward and responsibility after successfully “mining.”\nMining and Accounting: A Public Participation Ledger Competition Successful “miners” who successfully mine a block will perform two tasks:\nPackage the latest transactions into a new block and connect it to the blockchain (completing the accounting). Receive rewards granted by the system. This reward consists of two parts: Block Reward: The system automatically generates a batch of newly created Bitcoins as a reward. This is the only way that new Bitcoin is created. Transaction Fees: The fees paid by the payers of all transactions within the block. Why Does Bitcoin Have a Cap, While Ethereum Doesn\u0026rsquo;t? This involves fundamental differences in the design philosophy and objectives of these two cryptocurrencies.\nBitcoin: Digital Gold, Limited Supply Bitcoin was designed from the outset to be a value storage tool like gold. Gold is valuable for one key reason: its scarcity – the amount on Earth is finite.\nTo mimic this scarcity, Satoshi Nakamoto, the creator of Bitcoin, established two immutable rules during design:\nLimited Supply: The total supply of Bitcoin is permanently limited to 21 million coins. Not a fraction more, not a fraction less.\nHalving Production: Approximately every four years (or with every 210,000 blocks mined), the block reward earned by miners will be reduced in half.\n2009 began at 50 BTC 2012 halving to 25 BTC 2016 halving to 12.5 BTC 2020 halving to 6.25 BTC 2024 halving to 3.125 BTC …and so on, until approximately 2140, when the new reward will approach zero indefinitely. This design gives Bitcoin deflationary characteristics. Over time, the output of new coins decreases, and if demand remains constant or increases, its value theoretically rises. This reinforces its positioning as “digital gold.” Once all bitcoins have been mined, miners’ income will depend entirely on transaction fees.\nEthereum: Decentralized Application Platform, More Flexible Supply Strategy Ethereum’s goals differ from Bitcoin. It\u0026rsquo;s not just a digital currency; it’s a \u0026ldquo;world computer,\u0026rdquo; a platform designed to run smart contracts and decentralized applications (DApps).\nYou can imagine Ethereum as a decentralized “app store” and “operating system.” Within this system, you need to pay “gas fees” to run your programs or make transactions, and this gas is Ether (ETH).\nTo maintain this vast and complex system, Ethereum continuously incentivizes miners (now validators) to protect the network’s security. If a hard cap were set like Bitcoin’s, with no new coins being mined after it\u0026rsquo;s finished, whether transaction fees alone would be sufficient to guarantee the network’s long-term security is unknown.\nTherefore, Ethereum chose a no-hard-cap strategy. However, this doesn’t mean it will experience unlimited inflation. Ethereum’s monetary policy has undergone several significant adjustments:\nEarly (Proof-of-Work PoW): Similar to Bitcoin, new coins were generated through mining, but there was no fixed total limit or set halving cycle. This resulted in a relatively high inflation rate. London Upgrade (EIP-1559): Introduced an “burn fee” mechanism. A portion of the base fees paid by users for transactions would be directly “burned” (permanently removed from circulation) instead of going to miners. This meant that when the network was active with transactions, the amount of ETH burned could exceed the newly issued amount, leading to deflation. The Merge (The Merge): Ethereum transitioned from “mining” (Proof-of-Work PoW) to “staking” (Proof-of-Stake PoS). No longer do miners expend electricity solving problems; instead, “validators” earn accounting rights and rewards by staking their own ETH. This shift significantly reduced the issuance rate of new ETH (over 90%). In summary, here are Ethereum’s key characteristics:\nNo Hard Cap: Provides flexibility for the network\u0026rsquo;s long-term security and development. Dynamic Supply: Through “burn mechanisms” and “staking rewards,” its total supply can be mildly inflationary or experience deflation during periods of high transaction activity. Its goal isn’t absolute scarcity, but rather to maintain sufficient security while ensuring ETH remains available as “fuel.” Key Differences Overview Feature Bitcoin Ethereum Core Purpose Digital Gold, Value Storage World Computer, Decentralized Application Platform Key Differences Overview Feature Bitcoin Ethereum Total Supply Limit Yes, 21 Million coins No Key Differences Overview Feature Bitcoin (BTC) Ethereum (ETH) Monetary Policy Deflationary (Fixed supply, halving production) Dynamic Supply (Minting + Burning, potentially inflationary or deflationary) Key Differences Overview Feature Bitcoin Ethereum Issuance Purpose Reward miners until the block is mined Long-term, continuous security and operation of the network Key Differences Overview Hopefully, this straightforward explanation will help you understand their relationship and differences!\n","date":"2025-07-21","language":"en","permalink":"https://ttf248.life/en/p/digital-currency-fundamentals/","tags":["Digital Currency","Blockchain","Cryptocurrency","monetary-policy","Fintech"],"title":"Digital Currency Fundamentals","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"[The company recently raised capital in the Hong Kong market](Nine Fang Zhi Tu.pdf), this fundraising is similar to Xiaomi’s operation, and this article breaks down the details. \u0026ndash;\u0026gt;\nNine Fang Intelligent Investment and Sales Interpretation What are the fees associated with participating in the offering; when can these stocks be sold, what other important information is contained in this document?\n✅ Fees Associated with Placement This placement activity is a pre-existing shareholder first, then new placement method, targeting new investors (placements), does not involve retail investor subscriptions, therefore:\nIf you are not a placement agent-selected placement recipient (i.e., professional/institutional/individual investors), you do not need to pay any fees.\n✅ Fees Associated with Placement However, if you are a placement agent, the fees involved include: | Placement Price | ✅ Yes | HKD 39.25 per share |\n✅ Fees Associated with Reselling Fee Type Borne by Reseller Notes Commission ✅ Yes Resell price excludes commission, transaction fees, stamp duty etc. ✅ Fees Associated with Brokerage Arrangement Fee Type Borne by Brokerage Agent Notes Transaction Fee / Exchange Trading Fee ✅ Yes Charged according to Hong Kong Stock Exchange rules ✅ Fees Associated with Brokerage Arrangements Fee Type Borne by Broker Notes Stamp Duty ✅ Yes Stamp duty of 0.13% is payable for Hong Kong stock purchases ✅ Costs Associated with Distribution ✅ When Shares Can Be Sold Based on the announcement content:\n“The share placement will be undertaken by the placing agents based on their best efforts to place shares with no less than six noteholders… It is anticipated that none of the noteholders will become a major shareholder of the Company immediately following completion of the share placement.”\n✅ When Can Shares Sold? This means:\nShares sold through the placement can be freely traded once settlement is complete; There is no lock-up period; They can be bought and sold freely on the Hong Kong Stock Exchange secondary market; The placement deadline is July 17, 2025, with expected settlement to occur shortly after July 17th. ✅ Important Information in Announcement Use of Funds (HK$7.4622 Billion Net) Nine Square Capital will use this money to do four things: | On-Chain Financial Resource Investment | Undefined | Invest in RWA underlying assets, digital asset exchanges, trust banks, and stablecoin operators |\n#### **Funding Allocation (HK$7.4622 Billion Net)** | Purpose | Percentage | Description | |---|---|---| | Digital Asset Services Layout | Undefined | Investment services for digital assets targeting consumers in Hong Kong and the Middle East regions | #### **Funding Allocation (HK$7.4622 Billion Net)** | Purpose | Percentage | Description | |---|---|---| | Digital Asset Investment Advisory New Model | Unspecified | AI + Research, Combining MCN Operational Experience | Funding Allocation (HK$7.4622 Billion Net) Purpose Percentage Description Supplemental Liquidity Funding Unspecified General corporate use Offer Price Discount is Significant Discounted by 6.0% compared to the closing price of 41.75 HKD on July 15th Discounted by 17.0% compared to the past 5-day average price of 47.30 HKD Discounted by 15.3% compared to the past 10-day average price of 46.36 HKD #### **Share Structure Changes** - Following the public offering, **total shares outstanding increased from 448 million to 468 million**. - Existing shareholders’ ownership percentages were **slightly diluted**, but they **continue to maintain a controlling stake**. - An additional 20,000,000 shares will be held by the underwriters, representing approximately **4.27%** of total outstanding shares. Risk Disclaimer The offering may not be completed, and requires fulfillment of multiple prerequisites (such as market stability, regulatory approval, and the absence of significant adverse events) If it is not completed within 14 days, the subscription matter will automatically become invalid. ✅ Summary in one sentence Retail investors are excluded from this placement; the placed shares have no lock-up period and can be traded immediately after settlement. Jiu Fang Investment plans to use HK$746 million to invest in digital assets and on-chain finance, potentially transitioning towards Web3 and AI robo-advisor directions in the future.\n\u0026ldquo;First Old, Then New\u0026rdquo; Distribution Method Explained Kimi: \u0026ldquo;Existing shareholders first old shares then new\u0026rdquo; is a common Hong Kong distribution method, known in English as Top-up Placement, which you can understand as a two-step operation of “major shareholders sell old shares first and then subscribe to new shares”.\n✅ Let\u0026rsquo;s take an example to understand it Taking the case of Jiutian Intelligence Investment as an example:\nStep 1: Major shareholders sell old shares (First Old) Existing shareholders (such as Coreworth Investments) sell their existing holdings of 20,000,000 old shares to market investors (the underwriter) at a price of HKD 39.25 per share. This results in the major shareholder reducing their holding, and the total issued capital remains unchanged. Step 2: Company issues new shares to major shareholders (Later New) The company then issues an equal number (20,000,000 shares) of new shares to these major shareholders at a price of HKD 39.25. The major shareholder uses the proceeds from selling old shares to buy back new shares, restoring their holding quantity to its original state. However, the total issued capital increases (from 448 million shares to 468 million shares), effectively meaning the company has successfully raised capital, while the major shareholder\u0026rsquo;s shareholding ratio is slightly diluted. ✅ Why are we doing this? Purpose Explanation Quick Fundraising Avoid the lengthy process of issuing new shares, instead selling old shares first and then supplementing with new shares to quickly raise capital. ✅ Why are we doing this? Purpose Explanation Maintain Control The majority shareholders will maintain their voting power, and control won\u0026rsquo;t be significantly diluted. ✅ Why are we doing this? Purpose Explanation Attract New Investors Through discounted share sales (private placements), attract institutional or high-net-worth investors to enter the market, optimizing the shareholder structure. ✅ Why are we doing this? ✅ Key Differences: Old Stocks vs. New Stocks Type Newly Issued Shares Immediately Tradeable Description Old Stocks ❌ Not newly issued ✅ Can be immediately traded These are existing shares on the market, which can be directly circulated after being sold to new investors. ✅ Key Differences: Old Stocks vs. New Stocks Type Newly Issued Shares Immediately Tradeable Description New Shares ✅ Newly issued ⚠️ Lock-up Period (typically 180 days) Shares newly issued by the company, given to original shareholders, and typically require a lock-up period. ✅ Key Differences: Old Stocks vs. New Stocks ✅ One-Sentence Summary \u0026ldquo;Sell Old, Buy New\u0026rdquo; refers to major shareholders initially selling their existing shares to the market and then purchasing an equal amount of new shares from the company, simultaneously raising capital for the company while maintaining control.\nHong Kong Stock Connect Issuance Rules Interpretation Kimi: Your question is very central: Why do Hong Kong-listed companies seem to be able to “freely” issue shares? Is the Hong Kong market rulebook particularly relaxed? The answer is: Yes, HKEX offers significantly more flexibility than the Shanghai A-share market, but it’s not “unlimited,” rather there\u0026rsquo;s a system of “relaxed but limited” rules.”\n✅ H Shares vs A Shares: Issuance Rules Comparison (Key Differences) Project H Share Rules A Share Rules Does it require shareholder meeting approval? ✅ The Board of Directors can authorize share issuance not exceeding 20% of the total equity annually at the annual general meeting, and no further meetings are required thereafter. ❌ Each issuance must be held with a separate shareholder meeting and pass by a 2/3 majority vote. ✅ H-Shares vs A-Shares: Issuance Rules Comparison (Key Differences) Project H-Share Rules A-Share Rules Does it require SEC approval? ❌ As long as it’s no more than 20% of share capital + offering price is no more than 20%, it can “flash allocation” ✅ Must undergo SEC case-by-case review, which takes longer ✅ H Shares vs A Shares: IPO Rules Comparison (Key Differences) Project H Share Rules A Share Rules Maximum Issuance Ratio ✅ Maximum of 20% per issuance, cumulative dilution within 12 months shall not exceed 25% ✅ Generally not exceeding 30% ✅ H-Shares vs A-Shares: Issuance Rules Comparison (Key Differences) Project H-Share Rules A-Share Rules Discount Margin Limit ✅ Offering price shall not be lower than 80% of the market price (maximum discount of 20%) ✅ Non-public placements shall not be lower than 80% of the market price ✅ H Shares vs A Shares: IPO Rules Comparison (Key Differences) Project H Share Rules A-Share Rules Lock-up Period ✅ Typically 30 days or none ✅ 6~36 months ✅ H Shares vs A Shares: Issuance Rules Comparison (Key Differences) Project H Share Rules A-Share Rules Use of Proceeds Restrictions ✅ Disclosure of use only, no substantive review ✅ Must detail use of proceeds, SEC can veto ✅ Hong Kong Stocks vs. A Shares: Issuance Rules Comparison (Key Differences) ✅ Why Does the Hong Kong Stock Exchange Look “Casual”? “General Mandate” Mechanism: Once a year, shareholders authorize the board to issue up to 20% new shares at their annual general meeting. Afterwards, no further shareholder meetings are required, and the board can selectively issue shares.\n“Flash Placement” Mechanism: If the issuance does not exceed 20% of the share capital and the discount is no more than 20%, the issuance can be completed within 24 hours without approval.\nNo SEC Case-by-Case Approval: The Hong Kong Stock Exchange only conducts formative review, without substantive intervention in the use of funds or company quality.\n✅ Let\u0026rsquo;s take an example: Why was JiuFang ZhiTou able to \u0026ldquo;do old and new\u0026rdquo; this time? JiuFang ZhiTou obtained a general authorization at the 2025 June 20th shareholder meeting, allowing for up to a 20% increase in new shares (i.e., up to 89,671,400 shares). This issuance of 20,000,000 shares represents only 4.46% of the capital, far below the 20% limit, and fully complies with the authorization conditions. Therefore, no further shareholder meeting is needed nor is approval from the Securities Regulatory Commission required; the board of directors can make the decision to implement it. ✅ Summary in one sentence Hong Kong stocks allow “board of directors + annual authorization” rapid issuance under a streamlined process, provided it doesn’t exceed 20% of the share capital and the price cap, enabling “flash placement,” while A-shares require shareholder approval plus SEC review, resulting in a longer, more restrictive procedure.\n✅ Summary in one sentence Therefore, Jiu Fang Zhi Tu (Nine Fang Intelligent Investment) is not “arbitrary issuance,” but rather legally and compliantly utilized the relaxed mechanisms of the Hong Kong stock market.\n","date":"2025-07-21","language":"en","permalink":"https://ttf248.life/en/p/hksg-flash-crash-sell-off-case/","tags":["Hong Kong Stocks","Available for sale","investment","financial"],"title":"HKSG Flash Crash Sell-Off Case","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"For mainland residents investing in Hong Kong and US stocks, understanding relevant tax regulations is crucial. This article will comprehensively analyze what capital gains tax is, why it applies to investments in Hong Kong and US stocks, and explain the workings of CRS (Common Reporting Standard). Furthermore, this article will also provide detailed answers regarding the tax responsibilities and specific tax rates for mainland residents investing in Hong Kong and US stocks through various channels (Hong Kong brokers, Hong Kong-Shanghai Link, and Shenzhen-Hong Kong Link).\nCore Concept Breakdown What is Capital Gains Tax (CGT)? Capital Gains Tax (CGT), often abbreviated as CGT, is a tax levied on the profits realized from selling assets. These assets can include stocks, bonds, real estate, precious metals, and more. When you sell an asset for a price higher than your purchase price, the resulting gains (known as capital gains) may be subject to Capital Gains Tax.\nPlease note that not all countries or regions levy Capital Gains Tax. For example, Hong Kong currently does not impose Capital Gains Tax.\nWhy are Hong Kong and US Stocks Subject to Capital Gains Tax? US Stocks: The United States is a country that levies capital gains tax. For non-U.S. taxpayers (such as most mainland investors), while selling US stocks typically qualifies for exemption from capital gains tax, certain conditions must be met (e.g., residency in the U.S. for no more than 183 days within a year). However, dividends received from US stocks are subject to withholding income tax at a rate of usually 30%, but according to the China-U.S. Tax Agreement, mainland Chinese residents can apply to reduce this rate to 10%. Hong Kong Stocks: As stated above, Hong Kong does not levy capital gains tax. Therefore, regardless of the channel through which you trade Hong Kong stocks, no tax is payable on the difference between purchase and sale prices. This doesn’t mean that mainland residents don\u0026rsquo;t need to declare this income to the Chinese mainland tax authorities. What is CRS Reporting (Common Reporting Standard)? CRS, or the “Common Reporting Standard,” is a global standard for the automatic exchange of financial account information. Its primary purpose is to combat tax evasion involving offshore accounts and cross-border tax avoidance.\nHow it Works: In simple terms, financial institutions (such as banks and brokers) that have signed up to CRS need to identify the non-resident taxpayers’ accounts and report their account information (including names, addresses, taxpayer status, account balances, and annual total income) to their local tax authorities. These tax authorities then exchange this information with the relevant tax authorities of the countries/territories where the account holders are residents.\nImpact on Mainland Investors: For mainland residents who open accounts with Hong Kong brokers, due to their tax residency being China, Hong Kong financial institutions will exchange their account information through the Hong Kong Customs and Excise Department to the Chinese State Taxation Administration. This means that the inland tax authorities can gain access to information about its residents’ overseas financial assets and income, providing a basis for collecting global income.\nInland Resident Hong Kong \u0026amp; US Stock Trading Tax Breakdown According to China’s Personal Income Tax Law, Chinese tax residents are required to pay personal income tax on their income sourced globally. This means that even if investment gains occur abroad and may be exempt in the local jurisdiction, there is still an obligation to declare and pay taxes to the Chinese tax authorities.\nRecently, the Chinese tax department has intensified its enforcement of taxation regarding individual overseas income.\nTrading Hong Kong and US Stocks via Hong Kong Brokers If you are a mainland resident, trading Hong Kong and US stocks through Hong Kong brokers (such as Futu Securities, Tiger Brokerage, etc.), your tax responsibilities are as follows:\nUS Stock Trading:\nCapital Gains: The profits you receive from the difference between buying and selling US stocks belong to “transfer pricing income.” According to China’s Personal Income Tax Law, it should be declared and paid at a rate of 20% to the Chinese tax authorities. Although the United States typically exempts non-residents from capital gains taxes, Chinese tax residents still need to pay taxes on this global income. Dividends: Dividends received from US stocks will usually have 10% withheld by the broker as estimated income tax (enjoying preferential tax agreements between China and the US). This tax paid abroad can be offset when declaring it in China, but the offset amount cannot exceed the taxable amount calculated according to Chinese tax laws. Hong Kong Stock Trading:\nCapital Gains: Although Hong Kong does not levy capital gains tax, profits from Hong Kong stock trading (price differences) are also considered “transfer pricing income” and must be declared and paid at a rate of 20% to the Chinese tax authorities. Dividends: Dividends received from H shares (companies registered in mainland China and listed on the Hong Kong Stock Exchange) will have 20% personal income tax withheld by the company. Dividends received from non-H shares (companies registered in Hong Kong or overseas and listed on the Hong Kong Stock Exchange) will have 10% dividend tax withheld in Hong Kong. This tax paid abroad can also be offset when declaring it in China. Trading Hong Kong Stocks via the HKSAR-Mainland China Bond Connect (HK \u0026amp; SH) To promote capital market connectivity between Mainland China and Hong Kong, the government has introduced targeted tax incentives.\nCapital Gains: According to announcements from the Ministry of Finance, the State Taxation Administration, and the Securities and Futures Commission, personal income tax is currently exempted on any capital gains realized by mainland individual investors through the HKSAR-Mainland China Bond Connect (HK \u0026amp; SH) when buying and selling listed stocks on the Hong Kong Stock Exchange. This incentive policy has been explicitly extended to December 31, 2027.\nDividend Income:\nFor dividend income received from investing in Hong Kong H Shares via the HKSAR-Mainland China Bond Connect (HK \u0026amp; SH), the H Share company will withhold personal income tax at a rate of 20%. For dividend income received from investing in Hong Kong Non-H Shares via the HKSAR-Mainland China Bond Connect (HK \u0026amp; SH), China Merchants Service Bureau will withhold personal income tax at a rate of 20%. Any pre-paid personal income tax paid in Hong Kong can be claimed for tax refund by submitting a valid withholding certificate to the relevant tax authority of China Merchants Service Bureau. Tax Highlights Summary Investment Channel Investment Target Capital Gains Tax Dividend/Bonus Tax Hong Kong Brokerage Firms US Stocks Reported to Mainland, 20% Rate US Withholding 10%, Can be Deducible in Mainland Tax Highlights Summary Investment Channel Investment Target Capital Gains Tax Dividend/Bonus Tax Hong Kong Stocks Reported to Mainland, Rate 20% H Shares: Withheld 20%; Non-H Shares: Hong Kong Advance 10%, Deductible in Mainland Tax Highlights Summary Investment Channel Investment Target Capital Gains Tax Dividend/Bonus Tax Hong Kong Connect (沪港通) Hong Kong Stocks Exempted (until end of 2027) H Shares: Deduction of 20%; Non-H Shares: Listing Deduction of 20%, Hong Kong Tax Already Paid Can Be Refunded Tax Highlights Summary Important Note: The information above is based on current policies. Tax regulations may change, and investors are advised to consult with a professional tax advisor or monitor the latest information released by the tax authorities before making investment decisions and filing tax returns to ensure compliance. The typical time frame for reporting foreign income is from March 1st to June 30th of the following year.\n","date":"2025-07-16","language":"en","permalink":"https://ttf248.life/en/p/comprehensive-analysis-capital-gains-tax-crs-and-inland-residents-hong-kong-us-stock-investment-tax-guide/","tags":["Taxation","investment","Financial Knowledge","CRS","Hong Kong Stocks and US Stocks"],"title":"Comprehensive Analysis: Capital Gains Tax, CRS, and Inland Resident Hong Kong \u0026 US Stocks Investment Tax Guide","year":"2025"},{"categories":["Investment"],"content":"It’s difficult for ordinary people to understand a policy document, and traditional financial planning is based on understanding annualized returns. However, the calculation method of an increasing term life insurance policy is Internal Rate of Return (IRR), and there\u0026rsquo;s a difference between these two – what’s the difference and why does it exist?\nWhen funds are invested in one go, Internal Rate of Return (IRR) and Annualized Return (Annualized Return) produce the same results.\nLayman\u0026rsquo;s Explanation Imagine you planted a tree.\nLump Sum Investment: You invested the money to buy the sapling and the fertilizer for the first year all at once. Annualized Return: This is like measuring how much your tree grows each year, then calculating the average percentage it grows by per year. It measures how much your money grew on average over one year. IRR (Internal Rate of Return): The IRR concept is broader and can handle situations with multiple cash inflows and outflows. However, in a simple scenario where you have a single investment and a single return, IRR also seeks to find an “average annual growth rate” that makes the money grow at this percentage over time, exactly equaling the amount you finally receive back. Because in a single investment, single return scenario, there are no intermediate cash flows (like regular dividends or additional investments), the calculation of IRR is simplified into finding a compound annual growth rate, which is exactly what the annualized return expresses. An Example Let’s assume you:\nInitial Investment: On January 1st, 2024, you invested 10,000 yuan. Investment Term: 3 years. Final Return: On January 1st, 2027, you received back 13,310 yuan. 1. Annualized Return: The formula for calculating annualized return is: $$\\text{Annualized Return} = \\left( \\frac{\\text{Ending Value}}{\\text{Beginning Value}} \\right)^{\\frac{1}{\\text{Investment Period}}} - 1$$ Substituting the data: $$\\text{Annualized Return} = \\left( \\frac{13310}{10000} \\right)^{\\frac{1}{3}} - 1$$ $$\\text{Annualized Return} = (1.331)^{0.3333} - 1$$ $$\\text{Annualized Return} = 1.1 - 1 = 0.1 = 10\\%$$ Therefore, the annualized return on this investment is 10%. This means your money grew an average of 10% per year.\n2. Internal Rate of Return (IRR): IRR is the discount rate that makes the net present value (NPV) of all cash flows zero. In this example, the cash flows include:\nJanuary 1, 2024: -10,000 (Cash outflow – investment) January 1, 2027: +13,310 (Investment recovery) We need to find a discount rate r such that: $$-10000 + \\frac{13310}{(1+r)^3} = 0$$ $$\\frac{13310}{(1+r)^3} = 10000$$ $$(1+r)^3 = \\frac{13310}{10000} = 1.331$$ $$1+r = (1.331)^{\\frac{1}{3}}$$ $$1+r = 1.1$$ $$r = 1.1 - 1 = 0.1 = 10\\%$$ Therefore, the internal rate of return (IRR) for this investment is 10%. Summary In this simple example of a one-time investment and one-time recovery, you will find that the results of calculating the annualized yield and internal rate of return are identical. This is because in this specific case, the IRR calculation logic is equivalent to the compound interest calculation logic used to determine the annualized yield.\nIRR truly comes into play when an investment involves multiple cash flows, such as investing in a fund where you contribute money each month, or investing in a project that pays dividends at different points in time and ultimately recovers a final sum of money. In this complex cash flow pattern, the annualized yield may not accurately measure the true return on investment, while IRR can better reflect the time value of money and the overall rate of return for the investment.\n","date":"2025-07-09","language":"en","permalink":"https://ttf248.life/en/p/premium-whole-life-insurance-policy-interpretation/","tags":["Insurance","investment","Financial Knowledge","Unit-Linked Life Insurance"],"title":"Premium Whole Life Insurance Policy Interpretation","year":"2025"},{"categories":["Investment","Computer"],"content":"Backtesting requires: proportionate method (price-weighted return method), a simple explanation, and examples. Also, why cannot use add-subtract method for adjustment, and recommendations for Python historical data sources using the proportionate method.\nOkay, let\u0026rsquo;s explain the “proportionate method (price-weighted return method)” in an easy-to-understand way, along with why the \u0026ldquo;add-subtract method\u0026rdquo; is not suitable, and we’ll recommend some Python historical data sources using the proportionate method.\nCore Concepts: Why is Time-Weighting Necessary? In the world of investing, stock prices don\u0026rsquo;t just fluctuate due to buying and selling. Corporate actions, such as dividends, stock splits, and cash dividends, directly impact share prices, but these changes don’t reflect the company’s true value growth or decline.\nImagine that yesterday your stock closed at a price of 100 yuan. Today, the company decides to pay out a dividend of 5 yuan per share. This process is called “ex-dividend.” When the dividend is paid, the company\u0026rsquo;s total value decreases, so the exchange will lower the stock price by 5 yuan, opening at 95 yuan.\nIf you directly used 95 yuan and yesterday’s 100 yuan to calculate the percentage change, you would arrive at a -5% conclusion. This is clearly incorrect because you now have 5 yuan in your account, and your total assets haven\u0026rsquo;t decreased.\nTime-Weighting (Reinvestment/Adjustment) aims to fill in these price “gaps” caused by non-market transactions (such as dividends, stock splits) and restore the true trend of the stock price, allowing you to accurately calculate returns and perform strategy backtesting.\nPercentage Method (Earnings Per Share Adjusted Method): A Simple Example Explanation Core Idea: The percentage method assumes that all dividends and stock splits you receive are immediately repurchased at the prevailing price on the date they are received. It focuses on “the growth rate of total assets”. Example: Assume you bought 1 share of “Magic Company” stock for $100 on Day 1. Your total asset is $100. On Day 2, the market hasn’t changed, but Magic Company announces a \u0026ldquo;cash dividend\u0026rdquo; of $2 per share.\nAfter the dividend payout, the price automatically drops from $100 to $98. At this point, your holding is: 1 share stock (valued at $98) + $2 cash. Your total assets remain at $98 + $2 = $100, unchanged. On Day 3, the market rises, and Magic Company’s stock price increases from $98 to $102.9. What is the increase? It\u0026rsquo;s (102.9 - 98) / 98 = 5%. How much are your total assets now worth? If you didn’t reinvest the dividend: 1 share stock (valued at $102.9) + $2 cash = $104.9. If we use the percentage method to calculate a “adjusted” price, we assume that the $2 cash was bought back on day 2 at $98. But for simplicity, the percentage method directly multiplies the previous price by today’s rise or fall. Percentage Method Calculation Logic: It assumes that the total assets (100) on Day 2 and Day 1 compared to each other have a growth rate of 0%. The total assets on Day 3 compared to Day 2 have a growth rate of 5%. So, it will construct a continuous, adjusted price sequence: Day 1 Adjusted Price: $100 Day 2 Adjusted Price: Since the total asset hasn’t changed, it will “discount” yesterday’s closing price to reflect today\u0026rsquo;s actual situation. The method is to multiply yesterday’s adjusted price by today’s real rise or fall. On the dividend payout day, the real rise or fall is 0 (because the total assets haven’t changed), so the adjusted price remains unchanged, or we directly look at Day 3. Day 3 Adjusted Price: Day 1 Adjusted Price * (1 + 0%) * (1 + 5%) is inaccurate. The correct logic is that it will use the pre-dividend price as a baseline and then perform a “discounting”. Let’s understand a more clear pre-adjusted perspective: Day 3 closing price is $102.9. (Baseline) Day 2 closing price is $98. Day 1 closing price is $100, but because Day 2 has a dividend payout (the price drops from $100 to $98, equivalent to a discount of 98/100 = 0.98), we need to adjust the first day’s price according to this proportion. Adjusted first day price = 102.9 / (1 + 5%) / (100/98) … This calculation is very complex. The simplest way to understand (Percentage Method): The core of the percentage method is to ensure that the rise and fall of any two adjusted prices in a period equals the total return rate you would have obtained if you had reinvested all dividends. From Day 1 closing price to Day 3 closing price, your real total return is (104.9 - 100) / 100 = 4.9%. (Assuming you didn’t reinvest). If the dividend is immediately invested, on Day 3 your total assets will be 100 * (1 + 5%) = 105 (because all $100 are in stocks and enjoy a 5% growth). So, the adjusted price sequence’s rise and fall should be 5%. Conclusion: The percentage method (Earnings Per Share Adjusted Method) adjusts historical prices to ensure that any period\u0026rsquo;s price rises and falls precisely correspond to the total return rate you would have obtained if you had reinvested all dividends. This is the most accurate Why Cannot Use “Add-Subtract Reconciliation”? Core Idea: Add-subtract reconciliation attempts to simply add the dividend amounts back into the pre-dividend stock price through addition.\nExample (Using the previous text):\nDay 1 Closing Price: 100 yuan Day 2 Dividend payout of 2 yuan, Closing Price: 98 yuan Day 3 Increases by 5%, Closing Price: 102.9 yuan The Flawed Logic of Add-Subtract:\nIt will assume that the 98 yuan on Day 2 is because of a 2 yuan dividend deduction, so it should add this 2 yuan “back.”\nIt calculates the second day’s “adjusted price” as 98 + 2 = 100 yuan. It calculates the third day’s “adjusted price” as 102.9 + 2 = 104.9 yuan. Now, let\u0026rsquo;s use this “adjusted price” sequence to calculate the percentage change on Day 3:\nPercentage Change = (104.9 - 100) / 100 = 4.9% Where Does the Error Lie?\nThis 4.9% percentage change is incorrect! As we analyzed earlier, the actual percentage increase in the stock price is (102.9 - 98) / 98 = 5%. The add-subtract method underestimates the true growth potential of the stock.\nWhy Does It Underestimate?\nBecause add-subtract does not consider the “compound interest” effect. The proportional method assumes that your 2 yuan dividend also grows at a rate of 5%, while add-subtract crudely assumes this 2 yuan is always 2 yuan, without participating in subsequent investment appreciation. Over time and with increasing dividend payments, this error will become larger, seriously distorting your backtesting results, especially for high-dividend stocks.\nIn one sentence: Add-subtract destroys the “growth rate” information of the price sequence, leading to incorrect yield calculations; proportional method preserves the true “yield,” making it the correct choice for backtesting.\nPython Getting Historical Data “Ratio Method” Data Source Recommendations In practice, we often don\u0026rsquo;t need to calculate the adjustments ourselves. Professional data providers directly offer already adjusted prices. You simply select the correct price type when calling the API. This is commonly referred to as \u0026ldquo;Adjusted Price\u0026rdquo; (Adjusted Pricing).\nHere are some highly-rated and effective data sources for obtaining back-adjusted historical data through Python:\nyfinance (Yahoo Finance)\nAdvantages: Completely free, easy to use, the preferred choice for individual developers and beginners. The data it provides is already back-adjusted using the ratio method (forward-adjusted). Disadvantages: Data may have occasional cleaning issues or delays. For very rigorous business strategies, a more professional data source might be needed. Python Usage Example: TuShare\nAdvantages: A very popular financial data interface in China, providing rich data for A-shares, Hong Kong shares, US stocks, etc. Data quality is high, with a points system, but basic data is free. It offers clear adjustment factors and back-adjusted行情 (market data) interfaces. Disadvantages: Requires registration to obtain a token; some advanced data or high frequency calls require points. Python Usage Example (Requires first registering for a token): baostock\nAdvantages: Free, open-source Chinese A-share securities data platform. Data is relatively stable and accurate, and it also provides back-adjustment options. Disadvantages: Primarily covers the A-share market. Python Usage Example: Commercial-Grade Data Sources (Quandl/FactSet, Refinitiv, Bloomberg)\nAdvantages: Highest data quality, widest coverage, and most up-to-date updates, providing professional APIs and technical support. Disadvantages: Expensive, primarily aimed at financial institutions and corporate users. Recommendations for Beginners: Start with yfinance or TuShare. They can fully meet the needs of learning, research, and personal backtesting projects, and will help you understand and apply the “ratio method” back-adjusted data effectively. Be sure to select the \u0026ldquo;Adjusted\u0026rdquo; or \u0026ldquo;Back-Adjusted\u0026rdquo; option when calling the API.\n","date":"2025-06-27","language":"en","permalink":"https://ttf248.life/en/p/where-can-i-find-backtest-data/","tags":[],"title":"Where can I find backtest data?","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"This report aims to deeply analyze the U.S. equity options code “SST1G182500500.U,” particularly why its underlying stock code portion is displayed as “SST 1” instead of the original “SST” when sent to Interactive Brokers (IB). By analyzing the standardization structure of option symbols, related company behavior, and broker’s internal processing mechanisms, this report will elucidate the reasons behind this phenomenon and its impact on options traders.\nU.S. Equity Options Symbol Standardization (OSI) To ensure the efficient operation and transparency of the options market, the U.S. Option Clearing Corporation (OCC) has established a standardized options symbol system known as the Options Symbol Initiative (OSI). This system employs a unified alphanumeric format to clearly encode key information about the option contract 1. Since February 12, 2010, the 21-character OSI standard has been fully implemented in the United States and Canada, replacing the previous chaotic five-character code format 1.\nA standard OSI options symbol typically contains the following four core components:\nUnderlying Asset Code (Root Symbol): This is the code for the underlying stock or ETF that the option is based on. This field can contain up to six characters, and is usually the same as the trading code for the underlying stock. For example, the root symbol for Nike options is “NKE” 2. If the root symbol is less than six characters, it must be padded with spaces to reach a length of six characters 1.\nExpiration Date: This portion consists of six digits representing the expiration date in “year year-month month-day day (yymmdd)” format. For example, \u0026ldquo;220624\u0026rdquo; represents an option that expires on June 24, 2022 2.\nCall/Put Indicator: This is a single-character field indicating the type of option. ‘C’ represents a call option (Call Option), which grants the holder the right to purchase the underlying stock at a specified price; ‘P’ represents a put option (Put Option), which grants the holder the right to sell the underlying stock at a specified price 2.\nStrike Price: This is the preset price at which the option can be exercised to buy (call) or sell (put) the underlying stock. In the OSI format, the strike price is represented by eight digits, with the last three digits representing the decimal place (“mills,” hundredths of a dollar). To read the actual strike price, you must divide these eight digits by 1,000, or move the decimal point three places to the left. For example, “00099000” represents a strike price of $99.00 2.\nOptions, as derivatives, derive their value from the underlying asset. Most U.S. options are traded on exchanges such as the Chicago Board Options Exchange (CBOE) and cleared through the OCC. As the world’s largest equity derivative clearing organization, the OCC operates under the supervision of the SEC and CFTC to ensure the stability and integrity of the options market 2.\nParsing Option Code SST1G182500500.U The option code “SST1G182500500.U” includes some elements of the OSI format, but also contains non-standard representations. This is often due to company-specific adjustments or broker internal display conventions.\nSST1: Adjusted Underlying Code “SST1” is the most important part of this option code, directly answering users’ core question about why the underlying code is “SST 1” rather than “SST.” The “1” suffix indicates that this option contract has undergone adjustments due to company actions (such as stock splits or mergers).\nAccording to OCC’s official memorandum #56689, dated June 11, 2025, which clearly states: “Option symbol: SST changed to SST1,” effective date is June 12, 2025 3. This memo provides a clear explanation as to why the underlying symbol is “SST1.” Brokers like Robinhood have also confirmed this convention, stating that “if held option contracts on shares experience a reverse split…the stock code will be appended with a number. For example, if holding ABC options contracts, after a reverse split they will display as ABC1” 4. This industry standard further confirms the validity and purpose of the “SST1” suffix.\nG1825: Expiration Date (Non-Standard Format) The “G1825” portion differs significantly from the OSI standard’s “Year-Month-Day (yymmdd)” format (e.g., 2025 July 18 should be “250718”) 2. Prior to OSI implementation, option symbols were typically represented by single-letter codes for the month of expiration 5. In this older convention, the letter “G” represented the call option for July 5. If following this logic, “18” would represent the date, and “25” would represent the year. Therefore, “G1825” most likely represents July 18, 2025.\nDespite the OSI standard’s explicit deprecation of this letter-code expiration date representation 1, “SST1” (a common OSI adjustment convention) persists alongside “G1825,” indicating that Interactive Brokers or its data sources may employ a hybrid or internal representation. This could be a legacy format for adjusting options, or a proprietary display convention used by the broker combining elements of the old symbol system with new adjustment indicators. The inconsistency in option symbols – the core OSI adjustment root symbol coexisting with a non-standard expiration date format – reflects the challenges in financial data standardization at the “last mile.” While central institutions strive for uniformity, brokers may introduce subtle variations or additional identifiers due to compatibility concerns, internal data management considerations, or platform functionality. This results in potential discrepancies between the “official” OSI symbol and the symbols a user might see or need to input on a specific trading platform. Therefore, options traders not only need to understand the general OSI standard but also must be aware of and adapt to any subtle differences in symbol representation employed by individual brokers.\n00500: Strike Price The “00500” provided by the user represents a five-digit number, which does not align with the eight-digit strike price field in the OSI standard [1]. If following OSI rules, dividing the eight digits by 1,000 would yield a strike price of $0.50 (as “00000500” equates to $0.50).\nConsidering that SST stock underwent a reverse split of 10 shares for every 1 share [9], strike prices are typically adjusted according to the split ratio (e.g., a $5.00 strike price would become $0.50 after a 1:10 split), making a very low strike price like $0.50 entirely reasonable for the adjusted options. The five digits “00500” likely represent the value 500, and when converted to “mills” (one-thousandth of a dollar), it equates to $0.50. The discrepancy in digit count may indicate that IB’s internal representation truncates leading zeros for very small strike prices before converting to the full 8-digit OSI format, or utilizes a different internal encoding.\n.U: Broker-Specific Suffix The \u0026ldquo;.U\u0026rdquo; suffix is not part of the standardized OCC/OSI 21 character format ¹. It is highly likely to be an internal identifier or marker used by Interactive Brokers (IB) or its specific market data vendors. Such suffixes are common in proprietary systems, used to convey additional information about contracts, such as their listed exchange, specific trading characteristics, or a unique identifier within their database.\nKey Focus: SST1 Root Symbol Despite potential minor deviations from the strict OSI specification for other option symbols, the “SST1” root symbol is undoubtedly the most critical element. It directly addresses the user’s core question and points to the company behavior that led to the symbol changes.\nCompany Behavior\u0026rsquo;s Impact: System1, Inc. (SST)\u0026rsquo;s Reverse Split Corporate Actions\u0026rsquo; Universal Impact on Option Contracts Adjustment Options are financial derivatives whose value is directly derived from the underlying asset, such as stock [1]. Therefore, any significant event affecting the underlying security (typically referred to as corporate actions) must be reflected in the terms of open option contracts. This ensures that the economic value and integrity of the derivative remain intact [^13].\nCorporate actions encompass a wide range of events, including stock splits (both forward and reverse), mergers, acquisitions, special dividends, and spin-offs [^13]. Each type of action can have a unique impact on option contracts.\nClearing Corporations (CCs) play a crucial role as the central clearinghouses for options in the United States. They are legally responsible for determining and implementing necessary adjustments to open option contracts in response to these corporate actions [^13]. These adjustments are formally communicated to market participants through detailed OCC Information Notices 3.\nThe method of adjustment varies depending on the corporate action, but may include changes to the option’s strike price, the number of shares (or other asset, referred to as the deliverable) represented by each contract, or even the option symbol itself. The overall objective of these adjustments is to preserve the total intrinsic value of the option contracts for option holders [^13].\nReverse Stock Splits and Their Typical Impact on Option Terms A reverse stock split is a corporate action designed to reduce the number of outstanding shares while proportionally increasing the price per share6. For example, a 1-for-10 reverse split means that shareholders previously holding ten shares now own one share, but the value of the new share is theoretically ten times that of the old share6.\nFor options contracts, reverse splits typically require adjustments to contract terms. The OCC (Options Clearing Corporation) is responsible for determining the specific adjustment methods, which may involve changing the number of underlying shares represented by each option contract (e.g., in a 1:10 split, reducing from 100 shares to 10 shares) and/or proportionally increasing the strike price[^13]. The goal is to ensure that the total value represented by the contracts remains consistent with the value before the split.\nCommon results of reverse stock splits are changes in option symbols, typically adding a numerical suffix to the original stock code (e.g., “1”). This helps distinguish these adjusted contracts from newly issued standard options after the split3. A significant side effect is that these adjusted options often experience a substantial decline in liquidity[^13].\nSystem1, Inc. (SST) 1-for-10 Reverse Stock Split Details System1, Inc. (NYSE: SST) is a full-channel customer acquisition marketing platform that announced a 1-for-10 reverse stock split. This corporate action became effective prior to the market open on June 12, 2025 6.\nThe primary motivation for this reverse split was to increase the per-share trading price of its Class A common stock, allowing the company to regain compliance with New York Stock Exchange (NYSE) listing requirements 6.\nAs a direct result of this split, each 10 shares of common stock (including restricted and outstanding shares) automatically converted into 1 new share 7. This significantly reduced the total number of issued and outstanding Class A common shares from approximately 79.8 million to 7.98 million 7.\nDespite the reverse split, the company’s Class A common stock continued to trade on the New York Stock Exchange using its existing trading code “SST”, but the CUSIP number was updated 7.\nOCC’s Role in Determining and Implementing Adjustments: The Symbolic Change from SST to SST1 To address System1, Inc.’s reverse stock split, OCC issued memorandum #56689 on June 11, 2025, detailing the specific adjustments for options contracts 3.\nThe memo explicitly stated that, effective June 12, 2025, “Option Symbol: SST changed to SST1” 3. This official instruction from OCC was the direct cause of the “SST1” root symbol appearing in user option codes.\nThe memo further clarified the adjustment terms: “Contract Multiplier: 1. Strike Price Divider: 1. New Multiplier: 100 (e.g., for any dollar extension to premium or strike price, 1.00 would equal $100)” 3. This indicated that while the nominal contract multiplier remained at 100, the underlying asset referenced by the “SST1” symbol had been adjusted to reflect a split of 10 shares for every 1 reverse stock split, effectively maintaining the total contract value. The memo explicitly stated, “The price of SST1 will be determined as follows: SST1 = 0.10 (SST)” 3. This meant that each “SST1” option contract now represented 100 units, but each unit corresponded to 0.1 shares of the original SST stock, thereby preserving the total contract value after the split.\nOCC Adjustments to SST Option Underlyings For a 1-for-10 reverse stock split, OCC’s adjustments to existing SST options contracts aim to maintain the total economic value of the contracts. OCC did not change the number of shares per contract from 100 to 10 (which could occur in some split scenarios), but instead chose to adjust the underlying symbol itself to “SST1”.\nThis “SST1” symbol indicates that the option contract continues to represent 100 units, but each unit now corresponds to 0.1 shares of the original SST stock 3. Therefore, an “SST1” option contract effectively represents 100 * 0.1 = 10 shares after the 10-for-1 split. The strike price remains nominal in the symbol, but is now applied to this revalued underlying. This approach ensures that the total exercisable value of the contract remains consistent with its pre-split value. For example, if an option was exercised at a strike price of $50 before a 1:10 split, the exercise value would be $5,000 (100 shares * $50). After the split, the new issued post-split SST option strike price will be $500. However, the adjusted “SST1” option maintains its original strike price (e.g., $50) and applies it to a value of 1/10 of the underlying, effectively preserving the $5,000 total value [^13].\nTable 1: Impact of SST Reverse Split on Option Contract Characteristics\n| Underlying Stock Symbol | SST | SST (Applicable to New Shares and New Options) |\nOCC Adjustment to the Deliverable of SST Options Contracts Feature Before 1-for-10 Reverse Split \u0026amp; 10-for-1 Split (Prior to June 12, 2025) After 1-for-10 Reverse Split \u0026amp; 10-for-1 Split (Post June 12, 2025) Adjusted Option Symbol SST (Root symbol of the standard option) SST1 (Root symbol of the existing, post-split option) OCC Adjustment to the Deliverable of SST Options Contracts Feature Before 1:10 Reverse Split (Prior to June 12, 2025) After 1:10 Reverse Split (Post June 12, 2025) Number of Shares Covered per Contract 100 shares SST 10 shares SST split (through 100 units of SST1) OCC Adjustment to SST Option Deliverable Feature Before Split-Reverse Split (Prior to June 12, 2025) After Split-Reverse Split (Post June 12, 2025) OCC Adjustment to SST Option Deliverable Feature Before 1-for-10 Reverse Split (Prior to June 12, 2025) After 1-for-10 Reverse Split (Post June 12, 2025) Underlying CUSIP Original CUSIP New CUSIP (87200P208) 10 OCC Adjustment to SST Option Deliverable Feature Before 1-for-10 Split and Reverse Split (Prior to June 12, 2025) After 1-for-10 Split and Reverse Split (Post June 12, 2025) Liquidity of Adjusted Options Normal Decreasing 13 OCC Adjustments to SST Option Deliverable Characteristics Company actions, particularly reverse stock splits, while crucial for a company’s finances, often have “unforeseen” impacts on the derivatives market, introducing significant inefficiencies. The creation of unique “post-split options” – characterized by low liquidity, complex pricing and trading – fragments this security\u0026rsquo;s option market. This fragmentation reduces overall market efficiency and can lead to wider bid-ask spreads and difficulty in price discovery. This situation reflects a trade-off between corporate governance needs (such as stock splits to meet listing requirements) and the expectation of a fully liquid and simple derivatives market.\nThe Options Clearing Corporation (OCC) plays a critical role in this process. Company actions fundamentally alter the nature of the underlying security. Without intervention, this would create material discrepancies and potentially unfair outcomes within derivative contracts. The OCC utilizes its regulatory authority and clearing corporation functions to adjust option terms. This ensures that the economic value of the options is preserved and that the market remains orderly and fair. This ongoing adjustment mechanism is crucial for maintaining overall market integrity and ensuring continuity of value for option holders as the underlying company evolves.\nWhy Interactive Brokers Requires “SST 1” Brokerage Handling of Adjustment Post-Expiration Option Symbols Interactive Brokers (IB) as a leading brokerage firm, adheres explicitly to industry standards for option symbols. Their documentation confirms that IB “utilizes the 21-character ‘Options Symbol Initiative’ (OSI) format” 8. This commitment signifies their adherence to conventions established by Options Clearing Corporations (OCC) regarding the consolidation and processing of option symbols.\nIB also provides clients with mechanisms to understand and view potential impacts on their holdings stemming from company actions. Their Trader Workstation (TWS) and Messaging Center offer tools for monitoring company behavior and its impact on positions [^15].\nThe practice of appending numerical suffixes (e.g., “1”) to original stock symbols to denote adjustment post-expiration is a common convention within the industry. This practice is often directly enforced by OCC to differentiate these contracts from newly issued, unadjusted underlying options related to company actions 3.\nOther brokerages also follow similar practices. For example, Robinhood explicitly states “If your holding of stock options experiences a reverse split,…the stock code will be appended with a number. For example, if you hold ABC options, after a reverse split, it will display as ABC1” 4. Similarly, Merrill Edge notes that an “A” (representing “Adjusted”) will appear alongside the symbol and that the symbol itself “will include an additional digit – representing the adjustment” [^13]. Questrade also mentions “A” icons or other special indicators [^14].\n“1” suffix as an industry convention for distinguishing contracts after adjustments The symbol “SST1” is most directly and primarily due to official changes made by OCC. As detailed in OCC Information Memorandum #56689, following the 1-for-10 reverse stock split conducted by System1, Inc., the memorandum explicitly stated: “Option Symbol: SST changed to SST1” 3. This is not an internal naming convention of IB, but rather a standardized industry protocol for identifying options contracts post-adjustment.\nThis convention is crucial because new, unadjusted option series will be listed and begin trading on the underlying stock after reverse stock splits like those undertaken by companies. These new options will continue to use their original symbols (e.g., “SST”). To prevent confusion between these new standard contracts and older, adjusted contracts (where the underlying asset or effective exercise value relative to the post-split stock has been changed), adjusted contracts are assigned a modified symbol, such as “SST1” [^13].\nTherefore, the “SST1” symbol is a clear identifier indicating that the terms of the option contract have been amended by OCC to reflect System1, Inc.’s 1-for-10 reverse stock split.\nHow does this convention maintain clarity in trading systems and prevent confusion? Without this unique symbol system, traders might inadvertently trade a “SST” option, mistakenly believing it represents the standard contract for 100 shares post-split. In reality, it would be an older, adjusted contract, potentially representing a different number of shares (e.g., effectively representing 10 shares post-split SST) or having a revalued strike price.\nUsing adjusted symbols like “SST1” ensures that trading systems, clearinghouses, and all market participants can accurately identify, price, process, and settle these contracts. This precision is crucial in preventing errors in order routing, pricing, exercise, and assignment, which could otherwise lead to significant financial discrepancies and disputes.\nFurthermore, this convention facilitates the simultaneous listing and trading of adjusted (legacy) options contracts and newly issued standard contracts on the same underlying security, with each contract identifiable by its unique symbol.\nHow Brokers Integrate These Adjusted Symbols into Their Platforms Interactive Brokers, along with other brokers like Interactive Brokers, seamlessly integrates these OCC-mandated symbol changes into their trading platforms, including Trader Workstation (TWS). When corporate actions occur and the OCC publishes adjustments, IB updates the symbols for options contracts affected in client portfolios and option chains 8.\nWhile the underlying stock itself continues to use its original symbol (“SST”) for trading, existing adjusted option positions will be displayed with their new symbol (“SST1”). For any order entry or queries related to these specific adjusted contracts, traders must use the “SST1” root symbol, which explains why users need to send “SST 1” to IB.\nHere’s a key observation: The underlying stock, System1, Inc., continues to use its original symbol “SST” for trading 7. However, for existing, adjusted option contracts, the underlying root symbol within the option contract is “SST1” 3. This creates a subtle situation where when trading new options (these options will be based on the split-adjusted “SST” stock going public), the underlying is “SST”; but when trading existing, adjusted options, the underlying in the option symbol is “SST1”. This is a nuanced yet crucial distinction that can easily confuse traders.\nThis phenomenon highlights a significant operational complexity within option trading, extending beyond simply understanding OSI formats. It underscores the need for continuous vigilance and a deep understanding of how corporate actions fragment the options market. Simply knowing the current stock code isn’t enough; traders must differentiate between the standard option on the underlying asset and its adjusted counterpart with a changed symbol. This further emphasizes the importance of carefully reviewing option chain details, company action notifications, and broker-specific guidance.\nThe implementation of adjusted option symbols (such as “SST1”) is clearly an \u0026ldquo;operational necessity\u0026rdquo; for exchanges and brokers. It’s a powerful mechanism to manage the complexity of corporate actions, maintain market integrity, and ensure accurate clearing and settlement 1. However, from the end-user perspective, this change can be a significant source of confusion, as evidenced by direct user queries. While brokers attempt to mitigate this confusion through visual indicators like an “A” icon 13 or automatic adjustments within client portfolios 7, potential complexities remain.\nThis reveals the ongoing tension and trade-off between robust financial market infrastructure technical requirements and user-friendly interface demands. While the “SST1” convention is efficient and necessary from a systems perspective, it places an additional burden on individual traders to understand its implications. This highlights the enduring value of expert analysis and detailed educational reports in bridging this knowledge gap, ensuring that market participants can effectively and confidently navigate these complexities.\nImpact on Traders \u0026amp; Best Practices How to Identify Adjusted Options Symbol Suffixes: The most direct and immediate indicator of adjusted options is the numerical suffix appended to the option root symbol (e.g., “1”, “7” for mini options, or other numbers) 9. For example, seeing “SST1” instead of “SST” in an option held within System1, Inc. is a clear signal. Visual Indicators on Trading Platforms: Many well-known trading platforms, including Merrill Edge and Questrade, include specific visual cues. Traders should look for prominent “A” icons (representing “Adjusted”) or other special indicators alongside the option symbol in the option chain, quote window, or portfolio view [^13]. Interactive Brokers also uses icons (e.g., “C” representing company behavior) within its tax optimizer and messaging center to highlight affected positions [^15]. Reduced Liquidity: A strong practical signal of an adjusted option is a significant decrease in trading volume and open interest compared to other options in the same series or newly issued, unlevered standard options based on the underlying asset [^13]. This activity reduction can lead to wider bid-ask spreads. Discrepant Strike Prices: Adjusted options may appear “out of whack” or inconsistent with other parts of the underlying stock option chain in terms of their strike prices [^13]. Furthermore, the presence of multiple put or call options with the same expiration date and strike price can indicate that an adjusted option is coexisting with newly issued standard options [^13]. Pricing Anomalies: If an option’s price appears unusually low or “priced incorrectly” (or vice versa – “too good to be true”), investigation is warranted, as an adjustment may have altered its intrinsic value or the deliverable asset [^13]. The Importance of Reviewing OCC Information Memorandums and Broker Notices The Options Clearing Corporation (OCC) is the final authority for determining and implementing adjustments to U.S. option contracts[^13]. Their “Information Memorandums” are the official and authoritative source for understanding the precise terms of any corporate action adjustment3. These memorandums provide key details regarding the deliverable (such as the number of shares per contract), strike prices, and changes in new option symbols.\nBrokers such as Interactive Brokers have a legal obligation and operational capability to notify their clients of upcoming corporate actions that may impact their positions. These notices are typically available through client messaging centers, corporate action tools, or platform alerts[^15]. They provide information on how the broker will process adjustments within its systems.\nRelying solely on visual cues or general understanding of corporate actions may be insufficient and can lead to costly misunderstandings. To ensure accurate position management and trading decisions, it is essential to review these official and broker-specific sources to determine the precise adjustment terms (such as cash in lieu of fractional shares, specific deliverable changes).\nPost-Adjustment Option Considerations Significant Reduction in Liquidity: The most significant impact of post-adjustment options is a severe reduction in liquidity[^13]. This typically leads to wider bid-ask spreads, making it more difficult and costly to enter or exit positions at fair market prices. Traders may find it challenging to locate counterparties willing to transact at the desired order size. Increased Pricing Complexity: Due to changes in the deliverable asset, valuing post-adjustment options becomes more complex. Standard option pricing models (such as the Black-Scholes model) may not directly apply unless carefully manual adjustments are made to account for the new number of shares or effective exercise prices. This complexity can lead to inefficient pricing and increase trader risk. Restricted Trading Capacity: Certain brokerage platforms, such as Robinhood, may impose restrictions on trading post-adjustment options, typically limiting them to “only sell” positions4. This means traders can sell existing adjusted contracts but are prohibited from opening new positions, significantly restricting strategy flexibility. Ambiguity Regarding Exercise/Settlement: Understanding the exact deliverable asset at exercise or settlement is crucial. According to OCC’s specific adjustment terms, post-adjustment options may deliver a combination of shares, stock and cash, or even solely cash[^13]. Misunderstanding these terms can lead to unforeseen financial outcomes. Recommendations for Options Traders Proactively Collect Information: Develop a habit of regularly monitoring financial news media and your broker’s corporate actions section to understand any announcements regarding the underlying stocks held in your options positions. Review Official Documentation: Immediately upon learning of company action, consult relevant OCC information memorandums (available on the OCC website or through your broker\u0026rsquo;s resources) as well as your broker’s specific notices. These are the authoritative sources for understanding precise adjustment terms. Reassess Your Strategy: Carefully evaluate how the adjustments affect the intrinsic value, breakeven points, and their role within your overall trading strategy for your specific option contracts. Determine if the adjusted contracts still align with your original investment thesis. Consider Position Management: Given the inherent complexity and typical liquidity constraints, it’s generally advisable to consider exiting positions if the adjustments render your options positions no longer aligned with your trading objectives or if liquidity issues become unmanageable. Monitor New Contracts: As a best practice, avoid establishing new positions in adjusted option contracts. Instead, focus on newly issued standard option series on the underlying stock following company action, as these options typically offer better liquidity and more direct pricing. Company actions have an impact on derivative markets, which is an inherent part of corporate finance; however, they often introduce significant inefficiencies. The creation of adjustments to options, with their lower liquidity and more complex pricing and trading dynamics (such as liquidity and pricing behavior), fragment the option market for a particular security. This fragmentation reduces overall market efficiency and can lead to wider bid-ask spreads and difficulty in price discovery.\nUser queries perfectly illustrate that simply recognizing standard OSI format option symbols is insufficient when dealing with company actions. The seemingly minor “1” suffix (making it “SST1”) within the “SST” symbol – does not merely represent a superficial change; it foreshadows a series of fundamental changes to the contract terms, underlying asset, and market dynamics (such as liquidity, pricing behavior). This requires traders to go beyond simple symbol recognition and delve into the reasons behind these changes. This proactive research is an indispensable part of effective risk management and trading execution.\nConclusion Option code “SST1G182500500.U” clearly indicates a tailored post-split option contract for System1, Inc. (SST). The key “SST1” root symbol was not arbitrarily assigned but is the direct result of an official adjustment enforced by the Options Clearing Corporation (OCC). This adjustment was necessary due to System1, Inc.’s 2025 June 12 effective one-for-ten reverse stock split.\nThis corporate action fundamentally altered the underlying deliverable of existing option contracts. While the nominal contract multiplier remains at 100, the “SST1” reference symbol now represents that each contract effectively corresponds to 10 shares of the post-split SST stock, thereby preserving the original economic value.\nInteractive Brokers, like other major brokers, follows these OCC-enforced symbol conventions. By requiring the “SST1” (or “SST 1”) reference code, IB ensures accurate identification, processing, and display of these adjusted contracts within its trading systems, preventing potential errors and maintaining market integrity. The “G1825” and “.U” elements in user symbols may represent specific broker-defined or legacy expiration dates and internal identifiers, but they do not alter the fundamental reason for the “SST1” root symbol.\nFor any serious options trader, a thorough understanding of option symbols, particularly within this complex corporate context, is not just beneficial – it’s absolutely critical. Corporate actions can fundamentally change the terms, deliverable, and liquidity characteristics of outstanding option contracts, transforming them into “post-split option contracts” with unique symbols and trading behavior. Therefore, proactively monitoring company announcements, diligently reviewing official OCC information memoranda, and being acutely aware of broker-specific symbol conventions are essential best practices. These measures are crucial for accurately interpreting option contract terms, effectively managing risk exposures, and making informed strategic trading decisions in a dynamic market environment. Ignoring these key adjustments could lead to unforeseen financial consequences, operational complexities, and potentially significant losses.\nConclusion Conclusion Option Symbology Initiative – IBKR Guides, accessed June 24, 2025, https://www.ibkrguides.com/kb/en-us/article-972.htm\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nHow to Read the Ticker Symbols for Stock Options – Investopedia, accessed June 24, 2025, https://www.investopedia.com/ask/answers/05/052505.asp\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nSystem1, Inc. – Reverse Split Option Symbol: SST New Symbol: SST1 Date: 06/12/2025 – Options Clearing Corporation, accessed June 24, 2025, https://infomemo.theocc.com/infomemos?number=56689\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nHow corporate actions affect your options | Robinhood, accessed June 24, 2025, https://robinhood.com/us/en/support/articles/how-corporate-actions-affect-your-options/\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nOption naming convention – Wikipedia, accessed June 24, 2025, https://en.wikipedia.org/wiki/Option_naming_convention\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nSystem1 Class A Common Stock to Begin Trading on a Split-Adjusted Basis on June 12, 2025 – Business Wire, accessed June 24, 2025, https://www.businesswire.com/news/home/20250611797981/en/System1-Class-A-Common-Stock-to-Begin-Trading-on-a-Split-Adjusted-Basis-on-June-12-2025\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nSystem1 Class A Common Stock to Begin Trading on a Split-Adjusted Basis on June 12, 2025, accessed June 24, 2025, https://www.streetinsider.com/news.php?id=24925768\u0026amp;classic=1\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nPrime Trade File Upload Instructions – IBKR Guides, accessed June 24, 2025, https://www.ibkrguides.com/traderworkstation/prime-trade-file-upload-instructions.htm\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nOption symbol – Wikipedia, accessed June 24, 2025, https://en.wikipedia.org/wiki/Option_symbol\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2025-06-25","language":"en","permalink":"https://ttf248.life/en/p/spdr-sp-500-etf-trust-options-code-analysis-sst1g182500500u-why-is-the-underlying-stock-code-sst-1-instead-of-sst/","tags":["ib","U.S. Stock Market","Options"],"title":"SPDR S\u0026P 500 ETF Trust Code Analysis: SST1G182500500.U Why is the underlying stock code SST 1 instead of SST?","year":"2025"},{"categories":["Diary Ramblings"],"content":"AI has been integrated into daily development workflows, and recent investments have shifted focus from external funds to internal stocks and ETFs.\nOpen Source Projects Project Log Last week, I was bored and tried to obtain GitHub badges, starting to use the Issue module. Previously, when writing code, I always wanted to find a place to record the content of each AI modification, but creating a separate document to record it felt disorganized. Now that we have the Issue module, tagging them to distinguish between bugs, features, enhancements, etc., has made the records clear and efficient. Even if I might not need them in the future, recording them is still a form of accumulation. View Issue List\nRelease Notes Release record, find the most recent related commits. Since all commits are AI-generated, copy all recent commit records from the web interface and give them to AI to organize – this is a good release record. https://github.com/ttf248/comic-reader/releases/tag/v1.9.0\nEngagement That time it was featured on GitHub’s personal page, it passively increased the motivation to write code – after all, the data visualization made things quite fascinating. Even simple positive feedback could provide the impetus to keep going.\nTrae Paid for a monthly trial, honestly, it’s better in VSCode using Claude4. The practical effect is also better. Sometimes, even with the same problem, Trae gives better answers. Should I buy an annual subscription later? Given my current chaotic usage frequency, Trae might not be enough; don\u0026rsquo;t think about it too much, we’ll see when we run out. Byte should still have other paid plans and purchase more call volumes. Simple small issues can be solved using Microsoft, GitHub Copilot, and various models can also be called. The plan is to fail – GitHub Copilot is now starting to limit the number of calls 618 opened restrictions How to check current usage\nInvestment Ultimately, I couldn’t resist. Since the Hong Kong Connect channel was opened, I hadn\u0026rsquo;t traded in the Hong Kong market, and I bought some Xiaomi stock thinking about their upcoming new car launch. It rose a bit, so I sold it, and when it fell, I bought it back again, repeating this process several times before the new car was released, making a small profit on the stock.\nAt this time, I didn’t know what to do but look at the cross-border capital flows of Hong Kong Connect, watching Meituan\u0026rsquo;s net inflow of funds, and followed suit by buying it in, successfully becoming a shareholder, forgetting to look at the overall capital flow, only a part of the domestic purchases, and there were still many foreign investors in the Hong Kong market. This time it was just an opportunity to practice with blue-chip stocks, slowly holding on to the final gains.\nControlling positions and losses are contrary to human nature, slow down, slow down, don’t rush. If Xiaomi\u0026rsquo;s new car doesn’t perform well, should I sell? That’s a question. My investment cognition is still insufficient, and I need to read more books and learn more. The Fed isn’t planning on cutting interest rates, and the Hong Kong market plunged once, if I missed the entry time? That wouldn\u0026rsquo;t be right, what if the news came out that interest rates were being cut and the Hong Kong market soared? This is investment, testing human nature. A phrase I often repeat: buying is for national fortune, but I don’t really believe in national fortune. Aside from the belief in national fortune, another one is attention. Since you\u0026rsquo;re going to do long-term investing, frequent monitoring of the market is pointless. Ten minutes in the morning and ten minutes at the close are enough. What is the final expected return rate? There’s still no clear stop-loss position.\nWhen the market falls sharply, Tencent is a hot commodity, with capital flocking to it. | 00700 | Tencent Holdings | 498.600 | 80.08 billion |\nInvestment Code Name Latest Price Turnover 03690 Meituan-W 128.100 6.881 Billion Investment Code Name Latest Price Volume 09992 Bubble Mate 247.200 5.703 Billion Investment Code Name Latest Price Volume 09988 Alibaba-W 109.800 532.2 Billion Investment Code Name Latest Price Turnover 01810 Xiaomi Group-W 53.050 41.05 Billion ","date":"2025-06-19","language":"en","permalink":"https://ttf248.life/en/p/daily-musings/","tags":["ai","investment","Attention","National Interest","github"],"title":"Daily Musings","year":"2025"},{"categories":["Computer"],"content":"The existing communication protocol within the group uses steady_clock as a timestamp to calculate the latency for each individual node. In a specific scenario, a message packet’s built-in timestamp was used, and this timestamp originated from another machine – resulting in an anomalous latency calculation.\nAs a side note: Gemini2.5 Pro shows promise of completely surpassing GPT-4.\nTroubleshooting I didn\u0026rsquo;t pay attention to the issue with the base layer timestamp calculation at the beginning, so I just shut down all services and accessed locally to analyze the logs. I found that one service kept failing to stop, continuously sending business data, and there was nothing I could do. I used packet capture on the communication port to locate the machine\u0026rsquo;s position.\nsudo tcpdump -nni any -B 4096 -s 0 -w tmp.pcap port 13100 The internal network situation was complex, and messages were being forwarded through proxies. First, I captured packets on port 13100 from the service\u0026rsquo;s local machine using tcpdump. Then, I switched to capturing packets on the proxy server on port 13100.\nAnalysis revealed that requests with excessive latency originated from the Shenzhen office. When troubleshooting the affected services, they were deployed in Shanghai.\nSteady Clock and System Clock Differences std::steady_clock and std::system_clock are the two primary clocks in C++ for time handling. They have the following key differences:\nstd::system_clock Represents \u0026ldquo;Wall Clock Time\u0026rdquo;: It represents the actual, real-world time within the system. This time is consistent with the time displayed by the operating system. Can be Adjusted: The time of this clock can be adjusted by a user or a system service (such as NTP Network Time Protocol) forward or backward. For example, if you manually modify the system time or the system synchronizes with a time server, the value of system_clock will jump. Not Suitable for Measuring Time Intervals: Because it can jump backward, using it to calculate the difference between two time points may result in a negative number or inaccurate results. Primary Use: To obtain the current calendar time, used in scenarios where it needs to correspond to real-world time (e.g., logging timestamp). std::steady_clock Monotonic Clock: This clock starts from a certain point and will only steadily move forward, never decreasing. Its rate may be fixed or not (although it\u0026rsquo;s usually fixed). Unadjustable: steady_clock is unaffected by system time changes. Even if the user modifies the system time, it will continue to advance steadily. Best for Measuring Time Intervals: Due to its monotonicity, it’s the best choice for measuring code execution time, timeout waits, etc., ensuring accuracy. Uncertain Startpoint: Its starting point (epoch) is typically when the system starts, but this isn\u0026rsquo;t guaranteed by the standard. Are steady_clock values the same across different machines? No. The value of steady_clock is not comparable between different machines. Even between two different startup instances on the same machine, its value is not comparable. This is because it was designed to precisely measure a time interval during a single program execution, rather than representing an absolute point in time. Its epoch (start) is undefined and is almost always different across systems or different startup sessions.\nSummary Feature system_clock steady_clock Type Wall Clock Monotonic Clock Summary Feature system_clock steady_clock Adjustable Yes, can jump forward or backward No, only moves forward Summary Feature system_clock steady_clock Primary Use Get current calendar time Measure time intervals, timeouts Summary Feature system_clock steady_clock Cross-machine/restart comparison Possible (after synchronization) Not possible Summary In simple terms:\nTo know “What time is it now?”, use system_clock. To know “How long did this code run for?”, use steady_clock. ","date":"2025-06-19","language":"en","permalink":"https://ttf248.life/en/p/cross-machine-computation-time-difference/","tags":["troubleshooting","c++","tcpdump"],"title":"Cross-machine computation time difference","year":"2025"},{"categories":["Computer"],"content":"Continuing AI\u0026rsquo;s random writing, Local Comic Browser, at the end, I discovered there was no return to homepage function; I extracted the issue and fed it to AI. The solution was to add breadcrumb navigation.\nWhat is Breadcrumb Navigation? Breadcrumb navigation is a common user interface design pattern typically used to help users understand their location within a website or application and provide quick paths to return to the previous level or homepage. Its name originates from the fairy tale Hansel and Gretel, where the protagonists used breadcrumbs to mark their path home.\nIn practical applications, breadcrumb navigation is usually presented in a hierarchical path format, such as:\nHomepage \u0026gt; Category \u0026gt; Subcategory \u0026gt; Current Page This navigation method not only improves user experience but also helps users quickly locate and jump to specific content, especially within deep, hierarchical content structures.\nWhat other navigation schemes exist besides breadcrumbs? While breadcrumb navigation is a good option, there are several other common navigation solutions depending on the different application scenarios:\nBack Button The simplest and most direct solution, typically placed in the top of the page or toolbar:\n← Return or ⬅ Back Pros: Simple and clear, low cognitive cost for users. Cons: Can only return to the previous level, cannot directly jump to higher levels. Navigation Bar Fixed navigation menu located at the top or side of a page:\nHome | Categories | Settings | About Advantages: Always visible, allowing direct jumps to any major page. Disadvantages: Occupies screen space, may need to be collapsed on mobile devices. Sidebar Typically displayed on the left or right side of a page to show a hierarchical structure:\n📁 Home ├── 📂 Anime │ ├── 📖 One Piece │ └── 📖 Naruto └── 📂 Settings Advantages: Clearly displays the complete structure, supports multi-level navigation Disadvantages: Occupies significant screen space Floating Action Button A floating action button is typically a circular, floating button that’s fixed to a specific location on the screen:\n🏠 (Floating in the bottom right corner) Pros: Doesn\u0026rsquo;t occupy layout space, always accessible Cons: Single function, may obscure content Gesture Navigation Navigate using hand gestures:\nSwipe right to go back one level Double tap to return to the homepage Advantages: Smooth operation, aligns with mobile usage habits Disadvantages: High learning curve, poor discoverability How to Choose the Right Navigation Scheme? When selecting a navigation scheme, consider the following factors:\nApplication Type: Desktop application, web application, or mobile application User Group: Technical proficiency, usage habits Content Hierarchy: Depth of hierarchy, structural complexity Screen Space: Available space size, layout restrictions Usage Frequency: Frequency of navigation feature use For scenarios like a local comic browser, it’s recommended to combine schemes:\nPrimary Scheme: Breadcrumb Navigation (clearly displays the path) Auxiliary Schemes: Keyboard Shortcuts (improves efficiency) + Floating Home Page Button (quickly returns to the starting point) This way, you can meet the habits of different users while providing a convenient navigation experience in various scenarios.\n","date":"2025-06-14","language":"en","permalink":"https://ttf248.life/en/p/breadcrumb-navigation/","tags":[],"title":"Breadcrumb Navigation","year":"2025"},{"categories":["Computer"],"content":"I regularly clear out data on my phone, including photos and WeChat chat logs, backing them up to my computer. Previously, it worked seamlessly, allowing me to easily identify both my mobile phone and desktop PC within the same local network and directly back up the chat records to my computer. However, today everything has been failing.\nTried Solutions Computer connected to WIFI, phone connected to WIFI, both devices are within the same local network, but still cannot be recognized. Phone turned on hotspot, computer connected to phone hotspot, still cannot be recognized. Solutions Desktops use a wired network, mobile phones use a wireless network, and when restoring WeChat backups, it cannot recognize this as a local area network. I have tested it, and the desktop can normally access the mobile phone\u0026rsquo;s IP address.\nSolutions Initially, I thought it was something from Tencent, so I asked “Junhun,” to see if he had any ideas. The results he provided were not helpful. I casually tossed it over to “Dubao,” and he offered a surprise – prompting me to realize that my local environment might have many virtual networks or multi-NIC environments.\nThis was indeed correct; my desktop has several virtual network cards, such as VMware, ZeroTier, Hyper-V, and Docker Desktop. My desktop also has multiple physical network cards, the primary network card connected to the router and a 2.5G network card forming a sub-local network for another machine.\nTherefore, I disabled all virtual network cards and extra physical network cards on my desktop, retaining the primary network card, and reattempted the backup – it was successful!\n","date":"2025-06-13","language":"en","permalink":"https://ttf248.life/en/p/wechat-backup-tool-local-network-recognition-failed/","tags":["WeChat","Backup","local-area-network","troubleshooting"],"title":"WeChat Backup Tool Local Network Recognition Failed","year":"2025"},{"categories":["AI Inspiration Hub"],"content":"Stablecoins have already gained legal status in the United States and Hong Kong. This allows for more efficient capital flows globally, and gray areas are bound to exist if not regulated – similar to how the US manages opioid addiction.\nStablecoins are crypto assets pegged to fiat currencies (such as the US dollar or Hong Kong dollar) or precious metals, designed to maintain their value stability. They are primarily divided into three categories: fiat-backed (such as USDT, USDC), commodity-backed (like stablecoins backed by gold reserves), and algorithmic (which do not rely on physical reserves but instead use algorithms to maintain their peg)([zh.wikipedia.org][1])\n🛠️ Why Should Legislation Support Stablecoins? 1. Enhance Payment Efficiency and Reduce Costs Stablecoins can provide instant, low-cost cross-border payment services, particularly in areas where banks are not covered. Their settlement speed is fast, fees are low, and they offer significant value for international trade and remittances ([ft.com][2]).\n2. Strengthening the Internationalization of the US Dollar / Currency From an American perspective, the rise of stablecoins can increase demand for short-term assets like U.S. Treasuries, thereby solidifying the dollar’s position and simultaneously driving financial innovation. The EU is also taking advantage of this opportunity to accelerate the launch of a digital euro.\n3. Addressing Regulatory Gaps and Mitigating Risks Historically, stablecoins have largely operated in the “shadow financial” system, lacking transparency and plagued by market irregularities, even involving risks such as money laundering and fraud. The U.S. proposed STABLE Act and GENIUS Act require clear regulation, disclosure of reserves, and capital/liquidation rules to ensure financial security and investor protection ([morganlewis.com][3]).\nHong Kong, meanwhile, has begun implementing the “Stablecoins Ordinance” from August 2025, requiring stablecoin issuers to obtain a license from the Hong Kong Monetary Authority (HKMA) and meet standards for reserves, redemptions, and anti-money laundering (AML/CFT), as well as prohibiting unlicensed institutions from advertising promotions ([morganlewis.com][4]).\nHow Do Stablecoin Companies Make Money? Interest Income on Reserve Assets For example, Circle’s USDC reserves are largely held in short-term US Treasury bonds, benefiting from current interest rates. In 2023, profits increased significantly, and approximately $5 billion in profit was projected for 2025 (ft.com) . Tether’s report showed earnings of $5.2 billion in the first half of 2024.\nTransaction Fees and Developer Tool Revenue In addition to minting/redemption fees, stablecoin platforms generate stable revenue by providing APIs, SDKs, settlement tools, etc., for DeFi, wallets, and corporate clients (marketwatch.com)\nFinancial Expansion Services Some stablecoin issuers profit through additional products (such as interest redemption, investment features, corporate settlements, etc.), but this may lead to regulatory restrictions on “interest-bearing stablecoins.”\n✅ Summary Stablecoins are payment tools designed to mitigate the volatility of cryptocurrencies, maintaining value through reserves or algorithms. Regulatory legislation aims to promote compliance, protect consumers, maintain financial stability, and foster innovation and international competitiveness. Revenue models primarily derive from interest on reserve assets, fees, and value-added services. Looking ahead, if regulated effectively, stablecoins could play a significant role in global payment systems and compete with Central Bank Digital Currencies (CBDCs).\nft.com reuters.com reuters.com markets.businessinsider.com ","date":"2025-06-12","language":"en","permalink":"https://ttf248.life/en/p/what-is-a-stablecoin/","tags":["Stablecoin","Digital Currency","Cryptocurrency","Blockchain","Fintech","Economics"],"title":"What is a Stablecoin?","year":"2025"},{"categories":["Diary Ramblings"],"content":"Lightstone debuted today, and a former roommate from university has been working inside for many years, leading the hardware development of a particular product.\nRegarding expertise, Lightstone’s core business is sports cameras, which is most closely related to his undergraduate major: Automation. Automation is a broad field; during his sophomore year, it was divided into smaller specializations. Regarding his former roommate, there were two groups – the first group were freshman roommates, and the second group were sophomore roommates, who were re-assigned when the majors were split up. Our specialization covers embedded systems, engineering automation control, and circuit design—basically a very diverse range.\nOverview After graduating from university, four people went in four different directions. Although they were all majoring in automation, each person’s choice was unique. It happened to be a fortunate coincidence that the four roommates – myself and three others – had briefly reunited in Shenzhen for two years. I was assigned to the Shenzhen branch.\nMyself As I\u0026rsquo;ve written in previous articles, I started working in financial IT immediately after graduation, always focusing on Hong Kong and US stocks. The related business content updates on the site are relatively infrequent. To put it another way, while I understand the business and have some knowledge of it, it’s not deep enough. I’ve consistently done transactional-related work, and later expanded to maintaining and monitoring system bottom-layer communications, doing a lot of miscellaneous tasks.\nRoommate A It seems he started in Ningbo, working on HVAC hardware sales, then moved to Shenzhen. I don\u0026rsquo;t know the details of his previous jobs, but he jumped to ZTE once, leaving during his probation period before it even ended, and then worked at Yijing Technology for several years, leading the R\u0026amp;D of a certain sports camera’s hardware.\nRoommate B I don’t know his background experiences, currently involved in automotive hardware R\u0026amp;D in Wuhan, having done so for many years.\nRoommate C Currently working at Vanke in Shenzhen, doing construction supervision for real estate.\nLife Choices I’m not really sure about the regrets of the other two, as we haven\u0026rsquo;t been in much contact – the last time I spoke to them was when they were leaving Shenzhen. We had a chaotic dinner with three “idiots” (a playful term) for our friend from Wuhan, and I made him a video call.\nBack during university, several of us always said, \u0026ldquo;I shouldn\u0026rsquo;t have gone into automation; I should have gone straight to the computer science department. I really loved writing code here, and we won’t go into detail about why I didn’t choose computer science – I’ve written about it in previous articles.”\nNow that I’m this age, money is an unavoidable topic. When I left Shenzhen, it was because of the high housing prices, with the intention of settling down in Hangzhou. Due to a lucky coincidence, I never settled in Hangzhou and instead worked in Shanghai for income. It was fortunate that I didn\u0026rsquo;t buy a property at a high level when Hangzhou’s houses were being absorbed. When I left Shenzhen, it coincided with the hottest period for Chinese-American stocks. I jumped from one company to another and received a salary increase, but lacked clear industry understanding: domestic lead flow is a gray area, with policy risks. Simply put, I circumvented the Hong Kong Connect and traded directly in Hong Kong and American stocks. In 2021, the government abruptly shut down domestic lead flow, causing Chinese brokerage firms to transform and their Hong Kong and American stock businesses to shrink significantly. Basically, in finance, you must comply with regulations.\nRegarding the reason for writing this article, Jieson Group surged dramatically – 270% – leading to an offer from within the company to subscribe. The specific amount here is not discussed. I can only say that Roommate A’s down payment on a house in Shenzhen was likely secured. Although we didn\u0026rsquo;t delve deeply into this subscription matter, I was also tempted to subscribe through his channels, but the scale of the investment was too large and I couldn’t handle the risk. Ultimately, Roommate A chose a safer subscription scheme.\nWe don’t have much capital, so we can’t withstand large losses; even if we could endure it, what good would it do to throw in fifty and try our luck? This kind of opportunity might not come around again in a lifetime.\nLife Choices To say I haven’t made any money in the past ten years is a lie – I do occasionally envy those who make more, and this decade has been happy because I\u0026rsquo;ve done what I wanted to do, without experiencing any workplace bullying or manipulation.\nReal estate inevitably brings up the topic of money; after all, a 30% down payment is sitting there, and whether you can make money depends not only on your effort but also on the industry’s cycle and whether it can trend upwards. That would have been an opportunity to invest in Jushi (影石), as they were early on, focusing on overseas products while their domestic reputation was still lacking. The circle of Hong Kong-American stocks had become accustomed to a relaxed lifestyle, and I\u0026rsquo;d essentially given back most of my specialized skills to the school.\nIt’s a rambling mess; it’s hard for young people to understand an entire industry, let alone formulate ten-year career plans.\nGoing Global with Products To make money in foreign trade, the same products can sell for 1,000 RMB domestically, 3,000 RMB abroad, and even more. Considering the current intense price competition within China, it’s even more advantageous. Jingjie (JingShi) and DJI have already started focusing on the panoramic camera sector.\nBoth Jingjie and DJI, aside from leveraging the advantages of the Shenzhen industrial chain, product going global is also a crucial factor. The domestic market is fiercely competitive with severe price wars, while foreign markets offer higher prices and larger profit margins, making it easier to survive in the early stages.\n","date":"2025-06-11","language":"en","permalink":"https://ttf248.life/en/p/university-dormitory-four-people-ten-years-later-they-went-in-four-different-directions/","tags":["University","Bedroom","Going Global / Overseas Expansion","Development Directions","life-lessons"],"title":"- Four people in a university dormitory, and ten years later they went in four different directions.","year":"2025"},{"categories":["Computer"],"content":"C++ service crashed. The service depends on a static library for compilation. The static library made modifications, adding members to the header file and re-publishing the binary static library file. The service relies on the new binary library file, compiles and runs normally, but then crashes. The crash point appears fine, similar to the crashes caused by compiler upgrades – undefined behavior, an untrustworthy stack trace. Updating the service’s dependent header files allows it to mutate correctly, and running also works normally. A detailed explanation is needed, involving computer science knowledge, I suspect it\u0026rsquo;s related to memory layout, with examples for a thorough explanation.\nThis is a typical crash caused by mismatches between static library header files and binary library files. It’s indeed related to memory layout. Here’s a detailed explanation:\nProblem Analysis Static libraries’ header files define the structure of classes (including member variables and methods), while their binary files contain the implementation code. During compilation, the compiler generates code based on the class definitions in the header files, including memory layout and access patterns. If the header file and the static library\u0026rsquo;s binary file are not compatible, it can lead to undefined behavior at runtime.\nKey Concepts Memory Layout:\nIn C++, the layout of class member variables in memory is determined by the compiler based on the header file definition. If a header file adds member variables, the memory layout of the class will change. For example, adding a new member variable may increase the size ( sizeof ) of the class or change the offset of the member variables. Binary Compatibility:\nStatic library binary files are generated based on the header files. If a service is compiled using older header files and links to a new static library binary at runtime, the service\u0026rsquo;s code will access class member variables according to the old memory layout, while the implementation code of the static library operates on the new memory layout. This inconsistency leads to undefined behavior. Undefined Behavior:\nUndefined behavior may manifest as crashes, incorrect stack traces, or even abnormal program execution results. This is because when the program accesses memory, it may access an incorrect address or an uninitialized region. Examples Let\u0026rsquo;s consider a static library whose header file originally defined the following class:\nclass MyClass { public: int a; void func(); }; The binary file of the static library is compiled based on this definition. Later, the header file was modified to:\nclass MyClass { public: int a; int b; // Added member variable void func(); }; A new static library binary file is compiled based on the modified header file. If the service compiles using the old header file, the following problems may occur:\nInconsistent Memory Layout: The service assumes that MyClass\u0026rsquo;s size is sizeof(int), while the static library assumes it’s sizeof(int) * 2. When accessing members of the MyClass object, the service may access an incorrect memory address. Method Call Issues: If the implementation code in the static library depends on the new member variable (e.g., b), and the service\u0026rsquo;s code does not correctly initialize b, a crash may occur at runtime. Solutions Maintain Consistency Between Header Files and Binary Files: During service compilation, ensure you are using header files that match the binary file of the static library. Avoid Incompatible Modifications to Binaries: When modifying class definitions, try to avoid directly adding member variables; instead, use inheritance or other methods. Recompile All Dependent Components: When a static library is modified, recompile all services that depend on it to ensure consistency between the header files and binary files. Summary The root cause of this issue is inconsistency between the header file and binary file, leading to errors in memory layout. The C++ compiler generates code based on the header file during compilation, while runtime behavior depends on the binary file. If these two don\u0026rsquo;t match, it results in undefined behavior. Ensuring consistency between the header file and binary file can prevent similar problems.\n","date":"2025-06-10","language":"en","permalink":"https://ttf248.life/en/p/memory-layout-and-binary-compatibility/","tags":["c++","troubleshooting","Memory Layout","Binary Compatibility","Computer Architecture"],"title":"Memory Layout and Binary Compatibility","year":"2025"},{"categories":["Diary Ramblings"],"content":"Record some scattered thoughts and fragments, so as not to need to write them up separately.\nInspired by friends, I also wanted to create a similar sharing page, and Notes has already been developed. However, the homepage display and historical data processing all have minor issues, which led me to think about creating an annual article to achieve a similar effect, and subsequently AI was developed to implement the article pinning function.\nFebruary 2025 DeepSeek Goes Viral Date: 2025-02-07\nOn the eve of Chinese New Year, DeepSeek had become a hot topic, attracting widespread attention on social media in just a few days. This sudden surge in popularity was surprising and triggered a chain reaction in the market. Meanwhile, NVIDIA’s stock plummeted, raising concerns among many investors, who conducted large-scale short selling during this period, seemingly pointing to a “carefully orchestrated” situation.\nAnalysis of Political Elements in Films During the Spring Festival Date: 2025-02-10\nIt’s been a long time since I went to the Spring Festival film release for the crowds, and this time I watched two movies that felt quite different.\nThis article explores the new changes in 2025\u0026rsquo;s Spring Festival films, focusing on Shanghai Detective 1900 and Nezha: The Devil’s Child. The former utilizes the backdrop of San Francisco Chinatown in 1900 to depict the discrimination and oppression faced by Chinese people, reflecting the social and political environment. The latter, as an animated film, employs rich metaphorical elements to subtly criticize the current international political landscape – such as the resemblance of Yu Huang Palace to the Pentagon mirroring the American political system, the dollar symbol on the Tian Yuan Ding symbolizing U.S. dollar hegemony, the jade amulet resembling an American green card representing status levels, and the Soul-Destroying Potion like a biochemical weapon reflecting malicious actions. Both films offer a new viewing experience and prompt reflection on the relationship between cinematic art and political expression.\nOnline vs. Offline Movie Ticket Price Differences Were Astonishing Date: 2025-02-11\nDuring the Spring Festival, a family of seven or eight people wanted to see a movie and initially planned to purchase tickets on platforms like Tao Piao Piao and Maoyan. They saw prices of 60 yuan. Luckily, they had a cinema recharge card, which required them to buy tickets at the cinema\u0026rsquo;s front desk, so they asked the staff if there were any discounts available. Surprisingly, the same showtime cost only 35 yuan when purchased directly at the front desk – this price difference was truly astonishing.\nNezha Goes Viral Date: 2025-02-15\nThe explosive popularity of Nezha during the Spring Festival box office has evoked a strange sense of national pride, reminiscent of films like \u0026ldquo;Wolf Warrior\u0026rdquo; and patriotic themes. While there’s been significant progress, it hasn\u0026rsquo;t reached this level. As gamers, many aspects feel overly greasy, and the combat scenes heavily resemble those found in online games. There are already numerous reports of people buying movie tickets for Nezha but not watching the film.\nMarch 2025 Trump Administration Imposes Tariffs, Triggering Trade Turmoil Date: 2025-03-04\nThe United States imposed 25% tariffs on goods from Mexico and Canada, triggering significant volatility in the North American trade chain. Canada announced retaliatory measures against U.S. goods worth $15.5 billion, while Mexico accelerated its signing of a free trade agreement with China to mitigate risks. This led to further diversification of global supply chains, presenting a window for Chinese steel companies to capitalize on domestic substitution of high-end steel materials.\nMay 2025 The Tiangong and Dong Xiyi Effect: A Butterfly Phenomenon Date: 2025-05-07\nThe Peking Union Medical College “4+4” Project (4 years of non-medical undergraduate + 4 years of medical doctorate) focuses on interdisciplinary elite cultivation. In 2025, the Dong Xiyi incident exposed its use of family background (medical/scientific research lineage) to enter the project, with questions regarding the validity of its degrees and allegations of plagiarism in her thesis, exposing contradictions between its elite recruitment model and fairness, as well as unresolved issues surrounding shortened study periods and internship training.\nSome say it’s a corner of Tiangong (the Space Palace), others claim it\u0026rsquo;s a case of class decline. Dong Xiyi didn’t need to be a doctor; it was her family’s unwillingness to settle for a life less than their own that led her to pursue the Peking Union College 4+4 project.\nSpecial Teacher Recruitment – A Sudden Decline Date: 2025-05-12\nThe recruitment of special teachers in Jiangxi Province has shown a significant reduction trend from 2020-2025: the number of special teacher recruits plummeted from 6,617 to just 32 (a decrease of 99.5%), while the number of national cadre teachers decreased from 11,324 to 2,146 (a decrease of 81.1%). The proportion of core subjects (Chinese, Mathematics, and English) remained stable but declined in total numbers, while the proportions of music, art, and physical education increased but in limited absolute quantities (e.g., in 2025, they only recruited 2 people each). Policy changes have implemented “retire one, replenish one” personnel adjustments to tighten teacher resources, which are being directed towards vocational training and remote areas, leading to a significant reduction in traditional primary and secondary school positions. In 2025, some subjects planned for recruitment were zero.\nThe Trade War Suddenly Paused Date: 2025-05-12\nThe trade war tariffs have followed a “escalation – retaliation – negotiation” cycle, with the US-China rivalry shifting from tariff confrontation to competition over rules. Although the short-term easing has alleviated market pressure, long-term uncertainty remains, and it’s crucial to monitor WTO rulings, supply chain adjustments, and geopolitical changes\u0026rsquo; sustained impact on the global economy.\nIndividuals aren’t making money beyond their own expectations; the stock market crash triggered by the initial trade war this year is now largely recovered, although countless small investors have been buried along the way.\nJune 2025 Super Hot SuSuper: Public Sports Economic Value Emerges Date: 2025-06-09\nThe Jiangsu Super League (SuSuper) third round of matches saw an average attendance of over 10,000 people, with the “Chu Han Clash” match in Xuzhou Olympic Center drawing 22,198 spectators, breaking the record for amateur events in China. Short videos on platforms like Douyin created buzz and drove cross-city consumption for over 180,000 people, boosting hotel occupancy rates by 20%-30%. Innovative sports commercialization models saw a surge in brand exposure for sponsors such as Jiangsu Bank and Jinshilu, validating the multiplier effect of “Sports + Tourism.”\n","date":"2025-06-08","language":"en","permalink":"https://ttf248.life/en/p/2025-major-events/","tags":["Year in Review / Major Events of the Year"],"title":"2025 Major Events","year":"2025"},{"categories":["Computer"],"content":"Continuing from the previous discussion, today we’ll be talking about local area network IP addresses. Last time, in order to synchronize code, the server configured a proxy, and the server and the desktop computer in the house were able to connect to the network. Within a local area network, the proxy program was deployed on the desktop, and the server accessed the internet through the proxy. Code synchronization was very slow, so it was abandoned. Half a month later, when verifying the code on the server, the Git code synchronization failed with a network error. Without much thought, I examined the error message.\nIncident Scene fatal: unable to access \u0026lsquo;https://cnb.cool/ttf248/learn/cpp.git/’: Failed to connect to 10.243.52.68 port 7897 after 7 ms: Couldn’t connect to server\nIncident Scene Naturally, they assumed that there was no network isolation between Alibaba Cloud services and the Tencent Cloud Native Development Platform, leading to code synchronization failures and error messages being thrown into the group. Smart people in the group saw the port information and said, \u0026ldquo;Is this a proxy IP? Then immediately someone said, \u0026lsquo;You\u0026rsquo;re using a local network, and the domain name resolution is incorrect,\u0026rsquo; and it was in the midst of memory loss, completely forgetting that they had configured a proxy.\u0026rdquo; Seeing the word local network, their brains returned to normal, and they remembered configuring the proxy. The error address was the local network address of their home desktop computer.\nHabitual thinking: 192.168.x.x is a local network address.\nIn computer networking, a Local Area Network (LAN) IP address refers to a private IP address used within a local network. These addresses are not directly exposed on the public internet and are primarily used for internal device communication. The 10.243.52.68 and 192.168.x.x you mentioned both belong to private IP address ranges, but they belong to different address ranges, and their application scenarios and logical planning also differ. Here\u0026rsquo;s a detailed comparison:\nPrivate IP Address Classification and Ranges According to RFC 1918, private IP addresses are divided into three ranges, each suitable for different sizes of local area networks:\n| 10.0.0.0/8 | 255.0.0.0 | Approximately 16 million | Large enterprises, campus networks |\nPrivate IP Address Classification and Ranges Address Range Subnet Mask Number of Available IPs Application Scenario 172.16.0.0/12 255.240.0.0 Approximately 1 Million Medium-sized Enterprise Networks Private IP Address Classification and Ranges Address Range Subnet Mask Number of Available IPs Application Scenario 192.168.0.0/16 255.255.0.0 Approximately 65,000 Small Local Networks (Home, Office) IP Address Resolution in Your Query: 10.243.52.68 Belongs to the 10.0.0.0/8 range, a typical address for large private networks, often used in enterprise local area networks or wide area networks (such as internal networks across multiple branches). 192.168.x.x Belongs to the 192.168.0.0/16 range, the most common address for small private networks, widely used in home routers and small offices etc. Key Differences Address Space Size 10.0.0.0/8: The address range of the subnet is 10.0.0.0 ~ 10.255.255.255, containing 16,777,216 available IP addresses, suitable for large networks (such as enterprises, schools, and data centers) that require a large number of IP addresses. 192.168.0.0/16: The address range is 192.168.0.0 ~ 192.168.255.255, containing only 65,536 available IP addresses, suitable for small networks with a low number of devices (such as home networks typically having fewer than fifty devices). Subnetting Flexibility 10.0.0.0/8: Due to the large address space, it can be further divided into multiple subnets (such as 10.1.0.0/16, 10.2.0.0/16, etc.) using a subnet mask for layered network management and traffic isolation in larger networks. 192.168.0.0/16: Typically uses the default subnet mask 255.255.0.0; subnetting requirements are less frequent, suitable for simple flat network structures. Common Use Cases 10.xxx.xxx.xxx: Enterprise Internal Networks: such as multiple branches of multinational companies connected via VPN, each branch can be assigned a separate subnet (e.g., 10.1.1.0/24, 10.1.2.0/24). Cloud Service Provider Internal Networks: private cloud environments like AWS and Alibaba Cloud often use the 10. address range. Industrial Control Networks: some industrial equipment defaults to using the 10. address range. 192.168.xxx.xxx: Home/Small Office: default addresses assigned by routers (e.g., 192.168.1.1 or 192.168.0.1). Small Local Area Networks for Sharing: such as WiFi networks built through a router, the number of devices is typically less than 200. Network Isolation Both are private addresses and cannot be directly accessed from the public internet. They require a connection to the public network via NAT (Network Address Translation) or VPN. However, in practical usage:\nThe 10. segment is commonly used for scenarios requiring more complex network architectures (such as subnets and VLAN segmentation). The 192.168. segment is preferred due to its smaller address space, making it suitable for plug-and-play simple networks. Why are you seeing addresses in the 10. segment? If you encounter addresses like 10.243.52.68 on your local network, possible reasons include:\nEnterprise Network Environment: Your company or organization may use the 10. segment as an internal IP address to differentiate between departments or devices (such as servers and office computers).\nVirtual Machine or Container Networks: Cloud platforms (like VMware, Docker) often default to using the 10. segment for assigning IP addresses to virtual machines.\nDevice Default Configuration: Some network devices (such as industrial switches and firewalls) may be pre-configured with the 10. segment by the manufacturer.\nSummary: How to Choose? Small Networks (Home/Office): Prioritize 192.168.x.x, simple configuration and sufficient for use. Medium to Large Networks (Enterprise/Campus): Use 10.x.x.x or 172.16.x.x for subnetting and managing a large number of devices. Both are fundamentally local area network addresses, the difference lies in address space and applicable scenarios, with no technical superiority – it depends on the networking planning needs.\n","date":"2025-06-06","language":"en","permalink":"https://ttf248.life/en/p/102435268-also-belongs-to-the-local-area-network/","tags":["ip","network","local-area-network","Computer Networks"],"title":"10.243.52.68 also belongs to the local area network.","year":"2025"},{"categories":["Computer"],"content":"Accessing GitHub domestically is slow, and you can speed it up by configuring a proxy. There’s also another way: find a domestic hosting platform like CodeOcean or Coding. Configure the corresponding build pipeline to sync your code to GitHub.\nI\u0026rsquo;ve been using ‘coding’ for many years – its interface is simple, and they recently released an announcement that the free version can no longer be used, requiring migration to Tencent’s new platform, cnb. Let me also complain a bit about Alibaba’s hosting platform; the entire interface design feels very dated/stuffy. It\u0026rsquo;s like eating a bowl of congee (班味 - ban wei).\nhttps://cnb.cool/ttf248\nRepository Migration The cnb website provides migration tools that can batch migrate code from github to cnb. https://docs.cnb.cool/zh/guide/migration-tools.html\nGit Proxy Configuration To avoid slow synchronization due to the lack of an accelerator, tools will first synchronize code to your local machine and then upload it to the remote repository.\nGit can be configured for HTTP proxies independently using the following commands, without affecting system-wide settings:\n# Set HTTP proxy git config --global http.proxy http://proxy.example.com:8080 # Set HTTPS proxy git config --global https.proxy http://proxy.example.com:8080 # Optional: Configure proxy for a specific domain git config --global http.https://github.com.proxy http://proxy.example.com:8080 To remove the proxy configuration, use the following commands:\ngit config --global --unset http.proxy git config --global --unset https.proxy To view your current proxy configuration:\ngit config --global --get http.proxy git config --global --get https.proxy ","date":"2025-06-06","language":"en","permalink":"https://ttf248.life/en/p/git-single-configuration-proxy/","tags":["git"],"title":"Git Single Configuration Proxy","year":"2025"},{"categories":["Computer"],"content":"Business systems designed monitoring metrics of type Summary, calculating the average duration: request_duration_milliseconds_sum / request_duration_milliseconds_count.\nReviewing the data, a particular interface was found to have very high average duration, and when examining the time series chart, the average duration suddenly increased – effectively, one request took a long time, which pulled up the overall average. The goal was to identify exactly when this request occurred, but due to the low number of requests within the period, the data retrieved remained empty.\nQ\u0026amp;A ✅ Why does _sum and _count have data? _sum and _count are the core metrics of the Summary type, and Prometheus always collects and records these values; They are cumulative counters, suitable for use with rate() or increase(); Regardless of request latency changes, as long as there are requests, _sum and _count will always have data. ❌ Why {quantile=\u0026quot;0.99\u0026quot;} might not display in a Time Series Chart Even if Summary is configured with quantile=\u0026quot;0.99\u0026quot;, this time series may not exist or be missing: Metrics are definitely configured, and the data hasn\u0026rsquo;t expired. 📉 The request volume is too small, preventing quantile calculation, due to the sliding window mechanism; after this period of time, it will no longer be included in the statistical range. Quantiles (such as p99) are calculated through sampling statistics:\nIf the request count over a certain period is too low (e.g., 1~2 requests), the calculation of p99 is unstable or lacks representativeness; Prometheus client SDK will choose not to expose this quantile time series to avoid misleading; Therefore, you\u0026rsquo;ll see _sum and _count accumulating normally, but quantile=\u0026quot;0.99\u0026quot; has no data. Histogram and Summary Differences Histogram How it Works:\nA histogram will bucket data, recording the number of samples falling into each bucket. For example, if buckets are defined as [10ms, 50ms, 100ms, 500ms, 1s], each request latency would be assigned to the corresponding bucket. Advantages: Can aggregate data from multiple instances (e.g., multiple service node request latencies) in Prometheus. Suitable for calculating percentiles (such as P50, P95, P99) and observing latency distributions. Provides flexible querying capabilities, supporting dynamic percentile calculation through PromQL. Disadvantages: Requires predefining the bucket range; an inappropriate choice can lead to uneven data distribution (e.g., all requests falling into one bucket). The more buckets you have, the greater the storage and computational overhead. Suitable Scenarios: Aggregating data from multiple instances. Dynamically adjusting percentiles or analyzing latency distributions. Summary How it Works: The Summary component calculates percentiles (such as P50, P95, P99) directly on the client and reports the results to Prometheus. It also records the total number and sum of samples for calculating averages. Advantages: Does not require predefined buckets, providing percentile results directly. Suitable for precise percentile calculations in single instances. Disadvantages: Percentile calculation is performed on the client side, preventing aggregation of data from multiple instances in Prometheus. Adjusting percentiles (e.g., changing from P95 to P99) requires modifying the code and redeploying. Use Cases: Single instance monitoring where precise percentile accuracy is a high priority. When aggregation of data from multiple instances is not required. Key Difference Comparison Feature Histogram Summary Quantile Calculation Calculated dynamically within Prometheus Calculated directly on the client side Key Differences Comparison Feature Histogram Summary Multi-Instance Aggregation Supported Not Supported Key Differences Comparison Feature Histogram Summary Bin Definition Requires pre-defined Does not require Key Differences Comparison Feature Histogram Summary Storage Overhead Depends on the number of buckets Fixed overhead Key Differences Comparison Feature Histogram Summary Flexibility High (dynamically adjustable bins) Low (requires code modification to adjust bins) Summary If you need to aggregate data from multiple instances or require flexible quantile adjustments, choose Histogram. If you only need the precise quantiles for a single instance and the quantiles are fixed, choose Summary. In your scenario, given that the service is distributed, it’s recommended to prioritize using Histogram so that all instance data can be aggregated in Prometheus and dynamically calculate quantiles and distributions of latency. Sliding Window Concept and Its Relationship with Histograms and Summaries Sliding Window Concept A sliding window is a time-windowing mechanism used to analyze changes in data over a period. It dynamically reflects the system\u0026rsquo;s real-time state by continuously moving a temporal range. The key characteristics of a sliding window are:\nFixed Time Range: The length of the window is fixed, such as the last 1 minute or 5 minutes. Real-Time Updates: As time passes, the window slides, old data is removed from the window, and new data is added to the window. Common Uses: Used for calculating real-time metrics (such as request rates, averages, percentiles, etc.). In Prometheus, sliding windows are typically implemented using query functions (like rate(), avg_over_time()).\nSliding Window and Histogram Relationship Histogram Data Structure: A histogram will bin sample data and record the count for each bucket. Prometheus periodically scrapes these counts. Sliding Window Implementation: In Prometheus, sliding windows can be applied to histogram data using query statements. For example: rate(http_request_duration_seconds_bucket[5m]): Calculates the request rate within each bucket over the past 5 minutes. histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])): Calculates the 95th percentile of the request duration over the past 5 minutes. Advantages: Sliding windows can dynamically reflect the recent request latency distribution. The binning mechanism of histograms combined with sliding windows allows for efficient calculation of percentiles and distributions. Sliding Window and Summary Relationship Summary Data Structure: Summary calculates percentiles directly on the client side and reports them to Prometheus. It also records the total sample count and sum. Sliding Window Implementation: In Prometheus, sliding windows can be applied to Summary data using query statements. For example: rate(http_request_duration_seconds_sum[5m]) / rate(http_request_duration_seconds_count[5m]): Calculates the average request duration over the past 5 minutes. Limitations: Summary percentiles are calculated on the client side and cannot be recalculated in Prometheus, therefore support for sliding windows with percentiles is limited. Sliding windows cannot directly operate on Summary percentiles when aggregating data from multiple instances. Sliding Window Applicability Real-time Monitoring: Sliding windows are suitable for monitoring system real-time status, such as request rates over the last minute and latency distributions. Anomaly Detection: By using a sliding window, it’s possible to quickly identify short-term anomalies (e.g., sudden increase in request latency). Dynamic Analysis: Sliding windows can dynamically reflect changes in system trends rather than static global statistics. Summary Histogram combined with a sliding window can dynamically calculate percentiles (such as P95, P99) and request latency distributions, suitable for monitoring distributed systems. Summary combined with a sliding window can calculate simple metrics such as averages, but lacks flexibility regarding percentiles and does not support multi-instance aggregation. In your scenario, due to the need to monitor extreme request latencies (such as P99) and the average latency of most requests, it is recommended to use Histogram and combine it with a sliding window query to dynamically analyze system performance.\n","date":"2025-06-04","language":"en","permalink":"https://ttf248.life/en/p/prometheus-monitoring-system-histogram-and-summary/","tags":["prometheus","histogram","summary"],"title":"Prometheus Monitoring System Histogram and Summary","year":"2025"},{"categories":["Computer"],"content":"Cultural Propagation: Its ideological influence, subtle and pervasive. AI Programming: Not performing software design, resulting in a lot of rework.\nCultural Propagation Initially, the project only supported English, Japanese, and Korean. Thinking it was just AI translation, we wondered if supporting more languages wouldn’t be a good idea. So, French, Russian, and Hindi were added. At this point, no problems were detected; when the program executed translations, formatting issues arose due to historical code problems, requiring re-translation of archived articles.\nStatistical timing reminders indicated that it would take nearly 20 hours to complete all translations, given that it was a large local model with 12b parameters. Considering reducing translation time, we deleted French, Russian, and Hindi. This is when things started to feel wrong – why did I instinctively choose Korean and Japanese among the initially supported languages?\nAccording to global population distribution, these two languages had relatively small audiences, especially Korean, which had approximately 80 million users worldwide. Japanese was slightly more prevalent, with around 1.2 billion people. In contrast, French, Russian, and Hindi had user populations exceeding 100 million.\nAt this point, we realized that the popularity of Korean and Japanese wasn’t due to the sheer number of language speakers, but rather the influence of cultural propagation. Korean and Japanese cultures have a wide-reaching impact globally, particularly in Asia. K-pop, anime, and television dramas attracted a large fanbase, leading these fans to naturally develop an interest in the corresponding languages.\nLooking back at our growth history, I frequently watched Japanese anime and manga as a child, and later watched many Korean films and TV series. This led me to instinctively choose these familiar languages when setting up the project’s initial language settings.\nSoftware Design and AI Programming The initial translation assistant was initially just a simple tool, but after experiencing Claude4’s coding capabilities, it gradually expanded its functionality, adding modules for article translation and tag translation. As the features increased, so did the code complexity. Although AI refactored the codebase to appear more organized, in expanding new functionalities or fixing bugs, AI-generated code often suffered from repetition issues.\nAI lacks a holistic understanding of overall structure and design principles when generating code. It typically modifies and extends existing code rather than effectively reusing existing modules, leading to redundant code. Manual cleanup of duplicate code is then required, which inadvertently increases development costs.\nFurthermore, while AI-generated code is syntactically correct, it often suffers from problems in logic and design. For example, a slight adjustment to the prompt in another project resulted in completely different webpage structures lacking consistency. This reflects a lack of proper initial design, with new features added arbitrarily and haphazardly, leading to a chaotic codebase.\nThis also reminds us that core software engineering experience remains indispensable. A rational design not only reduces rework but also enhances code maintainability and extensibility. While AI is a powerful tool, it cannot replace human deep understanding and planning of systems.\n","date":"2025-06-02","language":"en","permalink":"https://ttf248.life/en/p/blog-translation-project-musings-cultural-transmission-ai-programming/","tags":["ai","programming","Translation","Cultural Transmission","blog"],"title":"Blog Translation Project Musings: Cultural Transmission, AI Programming","year":"2025"},{"categories":["Computer"],"content":"The initial design of the blog translation project was overly complex – first parsing Markdown format, then using placeholders to protect the content, and finally sending it to a large model for translation. This was entirely unnecessary; large models inherently possess the ability to recognize Markdown syntax and can directly process the original content while maintaining formatting during translation.\nOur work shifted from debugging code to debugging the prompting of the model. Model: google/gemma-3-4b Hardware: Nvidia 3060 12GB Indeed, we chose a non-thinking model – thinking models were inefficient when executing translation tasks. We compared the performance of 4b and 12b parameters, and for translation purposes, gemma3’s 4b parameter was sufficient; there was no significant advantage in terms of 12b parameters. 12b parameter speed: 11.32 tok/sec , 4b parameter speed: 75.21 tok/sec.\nBackground Introduction Despite adding various constraints within the system, the output translation results still presented some issues, such as: lack of formatting protection, inclusion of extraneous explanatory content. When defining roles, it was already stated to protect Markdown format and only output translation results; ultimately, the translation remained unstable.\nAt this point, I remembered encountering a comic translation project previously, which also leveraged the capabilities of large models. Its translation effect seemed better than mine. Upon reviewing the code and comparing the request data, the comic translation project would include a set of context with each request, in addition to the current translation content, it would also include previous translation content.\nWhat were the benefits? Not only did this improve the coherence between preceding and following translations, but it also ensured the stability of the output format.\nThe Importance of Historical Conversations As large AI models (such as the GPT series, Claude, Gemini, etc.) become more prevalent, an increasing number of businesses and developers are accessing these models via APIs to build intelligent customer service, content generation, code assistant, and other applications. However, many people encounter a common issue during initial access: model outputs are disjointed, lack contextual understanding, and even answer the wrong questions.\nA key reason for this phenomenon is – not including historical conversation content in API requests.\nWhat is a History Dialogue? A history dialogue refers to the exchange records between a model and a user within a single conversation session. In most large language model APIs (such as OpenAI’s Chat Completions API), developers need to construct the complete messages array themselves, passing the historical dialogue in turn as user and assistant message format.\nExample { \u0026#34;model\u0026#34;: \u0026#34;gpt-4\u0026#34;, \u0026#34;messages\u0026#34;: [ {\u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;Write me a resignation letter\u0026#34;}, {\u0026#34;role\u0026#34;: \u0026#34;assistant\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;Okay, what do you want to write about as the reason for your resignation?\u0026#34;}, {\u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;I want to pursue personal career development\u0026#34;} ] } If you only send the last sentence:\n{\u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;I want to pursue personal career development\u0026#34;} The model won\u0026rsquo;t know you are writing a resignation letter, and its output quality will be very poor because it doesn’t understand the context.\nWhy Historical Dialogue is So Important? 1. Build Context, Enhance Coherence AI models are inherently “context-driven.” They cannot remember anything that has happened “previously,” unless you explicitly tell it. By passing in the dialogue history, the model can better understand your intent and topic context, resulting in outputs more aligned with expectations.\n2. Reduce Misunderstanding Rate If you want the model to complete a multi-turn instruction, such as writing, summarizing, or debugging code, historical context allows the model to gradually accumulate understanding and avoid going off-topic or losing focus midway through.\n3. Simulating Realistic Human Dialogue Behavior In practical applications such as customer service systems, educational assistants, and health consultations, user questions often unfold gradually rather than being expressed clearly in a single instance. Preserving dialogue history allows the AI to behave more like a “memoryful assistant.”\nHow to Correctly Add Historical Conversations in an API? Using OpenAI\u0026rsquo;s API as an example, we recommend following the structure below:\nmessages = [ {\u0026#34;role\u0026#34;: \u0026#34;system\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;You are a professional legal assistant\u0026#34;}, {\u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;What are the essential conditions for a contract?\u0026#34;}, {\u0026#34;role\u0026#34;: \u0026#34;assistant\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;Contract validity requires fulfilling several conditions: ...\u0026#34;}, {\u0026#34;role\u0026#34;: \u0026#34;user\u0026#34;, \u0026#34;content\u0026#34;: \u0026#34;Does an oral agreement count?\u0026#34;} ] response = openai.ChatCompletion.create( model=\u0026#34;gpt-4\u0026#34;, messages=messages ) Note:\nUse the system message to set the model\u0026rsquo;s behavior and identity. Only retain recent key conversations, not necessarily the entire history (to avoid exceeding token limits). In long sessions, truncate early content and maintain core information summaries to control token consumption. Practical Recommendations Dialogue State Management: The backend needs to design caching mechanisms to record each user’s conversation history (e.g., Redis, database). Limit Length: OpenAI GPT-4 has a context length of 128k tokens, Claude 3 can reach 200k~1M, and requires reasonable truncation. Dynamic Summarization of History: When the historical content is too long, use a model to first summarize the old conversations before adding them to the dialogue context. Summary AI large model capabilities are powerful, but developers need to “feed” it sufficient contextual information. By adding historical conversations within API requests, not only can the quality and coherence of the model’s output be significantly improved, but users can also experience a more natural and realistic conversation.\nRegardless of whether you\u0026rsquo;re building AI customer service, writing assistants, coding helpers, or educational applications, this is an optimization technique that cannot be ignored.\n","date":"2025-06-02","language":"en","permalink":"https://ttf248.life/en/p/blog-translation-project-musings-historical-conversations/","tags":["ai","Large Model","blog"],"title":"Blog Translation Project Musings: Historical Conversations","year":"2025"},{"categories":["Computer"],"content":"In a Go language project, using staticcheck to find unused functions is an efficient static analysis method.\n1. Install staticcheck Ensure that Go (version 1.16+) is installed, and then execute the following command to install staticcheck:\ngo install honnef.co/go/tools/cmd/staticcheck@latest 2. Basic Usage: Finding Unused Functions Run the following command in the project root directory:\nstaticcheck ./... Key Check Rules:\nU1000: Detects unused functions, methods, variables, or types. U1001: Detects unused parameters. 3. Filter Specific Check Rules If you only want to check unused functions, you can specify the rules:\nstaticcheck -checks=U1000 ./... 4. Output Format Default output format is {path}:{line}:{column}: {message}, for example:\nmain.go:10:2: func UnusedFunction is unused (U1000) 5. Configuration File (Optional) Create a .staticcheck.conf file in the project root directory to customize inspection rules:\n{ \u0026#34;checks\u0026#34;: [\u0026#34;U1000\u0026#34;, \u0026#34;-ST1000\u0026#34;] // Enable U1000, disable ST1000 (string formatting rule) } 6. Integration with VS Code Install the Go Extension. Add to settings.json: 7. Ignore Specific Code Adding a comment //lint:ignore U1000 reason above the function to ignore the check:\n//lint:ignore U1000 Used by generated code func UnusedButNeeded() {} Frequently Asked Questions Q: How do I handle unused functions in test files? A: staticcheck defaults to checking test files. To exclude them, use the -tests=false flag. Q: How do I integrate it into CI/CD? A: Add to GitHub Actions: Example Output $ staticcheck -checks=U1000 ./... internal/utils/helper.go:15:2: func privateHelper is unused (U1000) cmd/server/main.go:23:2: func initConfig is unused (U1000) Using the staticcheck rule U1000, you can quickly identify and clean up unused functions, improving code quality.\n","date":"2025-06-02","language":"en","permalink":"https://ttf248.life/en/p/find-all-functions-not-referenced-in-the-go-project/","tags":["golang","Function"],"title":"Find all functions not referenced in the Go project.","year":"2025"},{"categories":["The Seven Seconds of a Fish"],"content":" I saw a report on Douyin about an anti-corruption investigation in the Zhejiang financial sector. I had written about the prelude to financial corruption once before, but didn\u0026rsquo;t follow up on related reports afterward. I still check financial news every day, and previously I rarely saw any reports about financial corruption. However, there have been increasing reports of financial corruption over the past two years, with more and more senior executives from banks, securities firms, and other financial institutions being investigated. Financial Anti-Corruption Curtain Rise The recent systemic anti-corruption storm in the Zhejiang financial sector is one of the most iconic events in China’s financial field in recent years. This anti-corruption campaign, which began in 2023, centered around the collective downfall of the former presidents of Zhejiang branches of four major state-owned banks, exposing long-standing issues of power abuse and collusion between government and businesses within local financial systems. The following outlines the event timeline, core problems, underlying causes, and subsequent impacts from four dimensions:\nI. Event Timeline: From the Zhu Xiaoyu Case to the Collapse of the “Gang Leaders” of the Four Major Banks The Spark: The Zhu Xiaoyu Case Unearths a Rotten Financial System Case In May 2023, Zhejiang Provincial Vice Governor Zhu Xiaoyu was investigated, and his corrupt pattern of \u0026ldquo;eating off finance\u0026rdquo; became a breakthrough point. During his tenure, he obtained massive profits through interfering in corporate IPOs and loans, and formed an alliance of interests with financial institution executives. In November 2023, Zhu Xiaoyu was expelled from the Communist Party and public office, and the numerous clues provided during the investigation directly triggered subsequent seismic events within the financial system. Anti-Corruption Storm Intensifies: Original Heads of Zhejiang Branches of the Four Major Banks Fall April 2024: Guo XinGang, the former Chairman of the China Bank’s Zhejiang Branch, was investigated. After retiring, he made money through low-priced property purchases and equity premiums, abusing his authority in mineral loan approvals, resulting in significant losses of state assets. April 2025: Gao Qiang, the former Chairman of the Construction Bank’s Zhejiang Branch, was investigated. During his tenure, he illegally approved loans leading to multiple projects going bankrupt and receiving “consulting fees” exceeding tens of millions of yuan. May 2025: Feng Jianlong, the former Chairman of the Agricultural Bank’s Zhejiang Branch, voluntarily confessed, and during his tenure, he transformed the Zhejiang branch of the Agricultural Bank into a \u0026ldquo;family industrial business,\u0026rdquo; with relatives holding illegal positions and serious misconduct. May 30, 2025: Shen Rongqin, the former Chairman of ICBC’s Zhejiang Branch, was investigated. After retiring, he controlled institutions such as Changtang River Jinran Academy through “political rotation,” forming a network of interests with eight private enterprises. Within 15 months, all the original heads of the four major banks\u0026rsquo; Zhejiang branches fell, creating a closed-loop anti-corruption effort. Regulatory System Also Shakes In January 2025, Pan Guang’en, former Deputy Director of the Zhejiang Provincial Party Committee’s Financial Bureau, voluntarily confessed, using his privileged position to facilitate corporate equity reforms and investments, illegally receiving massive amounts of money. This marked a shift in the anti-corruption campaign from financial institutions to regulatory departments, revealing the deep entanglement of the “regulatory-financial institution-private enterprise” three-party interest chain. II. Core Issues: Credit Corruption and Rotating Door Interest Chains Misappropriation of Lending Power: The Core Tool of Corruption All four former heads of the major banks utilized their lending power to transfer interests: Guo XinGang violated regulations by issuing mineral loans, Gao Qiang manipulated credit through “consulting fees,” Feng Jianlong’s family-style lending led to bad debts, and Shen Rongqin used the Golden Research Institute platform to channel funds to related enterprises. Data shows that 68% of individuals investigated within the banking system in 2024 were involved in illegal lending or loan approvals, highlighting a deeply concerning loss of control over lending power. Rotational Corruption: Retirement is Not a Safe Deposit Box All four individuals continued to wield power through “identity transformation” after retirement: Guo XinGang served as the president of an industry association to intervene in credit lending, Gao Qiang transitioned to a securities dealer director to manipulate capital, and Shen Rongqin established a “financial-academic-research” platform to connect with private enterprises. This “retire and continue” model allowed retired executives to evade regulation and form hidden interest chains. The 2024 Financial Anti-Corruption White Paper revealed that 68% of cases involved retired executives, with the Zhejiang case serving as a typical example. Blurred Boundaries Between Government and Business: Interest Transfer from Banks to Private Enterprises The Changtang River Golden Research Institute, led by Shen Rongqin, was established with investments from eight private enterprises including Zhentai and Chuanhua, ostensibly an academic institution but in reality a political-economic nexus. Through this platform, Shen Rongqin directed banking resources towards related enterprises, forming a “banking institution – private enterprise think tank” binding model. Similar models were also evident in the cases of Guo XinGang and Gao Qiang, exposing the deep distortion of political-economic relations within local financial ecosystems. Three. Root Causes: Institutional Loopholes and Regulatory Failures Long-Term Absence of Local Financial Regulation As a major province for private economy, Zhejiang has been active in financial innovation, but the regulatory system hasn’t kept pace. Officials such as Zhu from Ju and Pan Guang\u0026rsquo;en have long dominated local financial policies, acting as both “athletes” and “referees,” leading to ineffective regulation. For example, during his tenure at the Financial Bureau, Pan Guang\u0026rsquo;en illegally interfered in corporate financing and share reform, but was not effectively restrained. Failure of Internal Controls within Financial Institutions The internal supervision mechanisms of the four major banks’ Zhejiang branches were essentially empty. When Feng Jianlong served as the chairman of Zhejiang Branch of Agricultural Bank, his relatives quickly rose through the system, and the “one-voice” credit approval phenomenon was prominent. Shen Rongqin\u0026rsquo;s \u0026ldquo;Employee Care Plan\u0026rdquo; ostensibly provided welfare, but actually consolidated power by controlling frontline employees to cover up corrupt behavior. Weak External Supervision Mechanisms The enabling of cross-provincial investigations (such as the Shen Rongqin case being handled by the Liaoning Provincial Supervisory Commission) demonstrated that local protectionism had severely hindered anti-corruption progress. Furthermore, the complex equity relationships between financial institutions and private enterprises (such as half of the top ten loan customers of Zhejiang Merchants Bank were real estate companies) made risk transmission hidden, making traditional regulatory measures difficult to penetrate. Four. Subsequent Impacts: Regulatory Upgrading and Industry Restructuring Normalization of Anti-Corruption and Systemic Plugging of Leaks\nCross-Provincial Supervision and Penetrating Regulation: The Central Commission for Discipline Inspection adopted remote case handling to cut through local protection networks, and extended the scope of scrutiny from on-duty behavior to interest chains after retirement. Technological Anti-Corruption Implementation: Zhejiang piloted AI risk control models for credit approval, automatically identifying “people-based loans” and “political-business loans,” effectively curbing corruption at its source. Restrictions on Departing Executives: Zhejiang Province is drafting the \u0026ldquo;List of Financial Executive Post-Employment Restrictions,\u0026rdquo; stipulating that bank chairpersons are prohibited from serving affiliated companies within three years after retirement, cutting off chains of power options. Restructuring of the Financial Ecosystem\nSystemic Risk Clearance in Banks: Institutions such as Zhejiang Business Bank and Hangzhou Bank were initiated internal restructuring due to the downfall of senior executives, and high real estate loan ratios (such as Zhejiang Business Bank’s real estate non-performing asset rate reaching 2.48%) forced business transformation. Optimization of Financing Environment for Private Enterprises: Following anti-corruption actions, Zhejiang Province launched policies such as “Zheke Loan,” providing 450 billion yuan in loans to 32,000 technology SMEs in 2024, driving finance back to its original purpose of serving the real economy. Social Warning Effect\nThe collective downfall of former branch managers of the four major banks in Zhejiang shattered the illusion of “safety after retirement,” conveying a signal of “zero tolerance and no blind spots” in financial anti-corruption. This event also provides a mirror for the entire Chinese financial system: only by strengthening power constraints and improving regulatory systems can we safeguard financial security. Conclusion The collapse of the Zhejiang financial circle was fundamentally a concentrated outburst of long-term loss of control over local financial power. This storm not only cleared out a number of “financial pests,” but also drove profound changes in regulatory models, institutional design, and industry ecosystems. In the future, how to balance financial innovation with risk management, and how to build “clean” government-business relationships will continue to be subjects of ongoing exploration for Zhejiang and even the entire Chinese financial sector.\n","date":"2025-06-02","language":"en","permalink":"https://ttf248.life/en/p/the-zhejiang-financial-circle-collapsed-and-the-anti-corruption-efforts-over-the-past-two-years-have-not-been-limited-to-government-departments/","tags":["Zhejiang","financial","anti-corruption","douyin","Financial News"],"title":"The Zhejiang financial circle collapsed, and the anti-corruption efforts over the past two years have not been limited to government departments.","year":"2025"},{"categories":["Computer"],"content":"There’s a Git repository locally where submodules were in temporary branches during the initial pull. I made commits on that temporary branch, and then switched back to the main branch. However, those committed changes seem to be lost and cannot be found within the main branch. I also can\u0026rsquo;t find any record of that temporary branch.\nSolutions After committing to a temporary branch within the Git submodule and switching back to the main branch, these commits are no longer found. This situation can be resolved by following the steps below:\nVerify Commit History: Navigate to the submodule directory and use reflog to find the lost commits. Create a New Branch to Save Commits: Create a new branch based on the lost commit. Merge or Cherry-Pick Commits to Main: Integrate the code into the main branch. Here are the specific steps:\n# Enter the submodule directory cd path/to/your/submodule # View reflog records all HEAD changes (including commits not associated with branches) git reflog PS F:\\dev\\notebook\\scripts\\hugo-content-suite\u0026gt; git reflog de05175 (HEAD -\u0026gt; main, origin/main, origin/HEAD) HEAD@{0}: checkout: moving from c8d070651310e90d283cb64d98da088c5fe05e73 to main c8d0706 HEAD@{1}: commit: feat: Add Markdown tag symbol usage documentation, provide detailed syntax examples and effect display 48250f5 HEAD@{2}: commit: feat: Remove article translation preview function, simplify the translation process b8280b6 HEAD@{3}: commit: feat: Add absolute path acquisition function, support converting relative paths to absolute paths 92c354b HEAD@{4}: commit: fix: Fix article scanning logic, ensure scanning using absolute paths de05175 (HEAD -\u0026gt; main, origin/main, origin/HEAD) HEAD@{5}: checkout: moving from main to de05175d4ec0828e3ae95d726b09dfff18f67a23 de05175 (HEAD -\u0026gt; main, origin/main, origin/HEAD) HEAD@{6}: clone: from https://cnb.cool/ttf248/hugo-content-suite.git # Create a new branch based on the lost commit (e.g., using 456def commit) git checkout -b saved-work 456def # Switch back to the main branch git checkout main # Merge the saved work into main (or use cherry-pick to select specific commits) git merge saved-work # Or git cherry-pick 456def # Return to the parent project directory and commit submodule updates cd .. git add path/to/your/submodule git commit -m \u0026#34;Update submodule to include new changes\u0026#34; Key Operational Instructions git reflog: Displays the entire history of HEAD, including commits not associated with any branch. git checkout -b: Creates a new branch from any commit and saves your work. git merge/cherry-pick: Integrates saved commits into the target branch. If the reflog doesn\u0026rsquo;t contain records, you may need to try using git fsck --lost-found to find orphaned commits, but this is a rare occurrence.\n","date":"2025-06-02","language":"en","permalink":"https://ttf248.life/en/p/git-submodule-merge-history-lost/","tags":["git","submodule"],"title":"Git Submodule Merge History Lost","year":"2025"},{"categories":["Computer"],"content":"Recently, my biological clock has been a bit off, still tinkering with GitHub Pages deployments around 2 AM.\nI went to eat after work, and I just wanted to sleep when I finished, then came back around 8:30 PM, feeling drowsy, thinking I’d take a nap, and ended up falling asleep immediately. When I woke up, it was already past 2 AM.\nCategories that haven\u0026rsquo;t even launched yet: AI Study Group\nFacepalm Yesterday we said there wouldn\u0026rsquo;t be much frontend development, but today it’s not frontend – it’s the experience of UI/UX.\nProject Please join our old friend, https://github.com/ttf248/ai-coding-demo. That’s the original self-selected stock project – we\u0026rsquo;re restructuring the overall project structure, and all subsequent AI programming content will be housed within this project.\nDeploying Multiple Pages The project is hosted domestically at https://cnb.cool/ttf248/ai-coding-demo. Due to well-known reasons, pages cannot be published within China, so we need to publish them on GitHub outside of it.\nThe blog is published on the external GitHub. I haven\u0026rsquo;t tried this before, and also, the current project I’m working on isn’t a traditional blog site; it simply contains a lot of documentation layered with several static HTML design mockups.\nThat’s right – this page is where I discovered that deploying multiple pages using pages won\u0026rsquo;t affect the blog’s publication, but instead adds a new path under the blog’s domain name.\nhttps://ttf248.life/ai-coding-demo/\nI was absolutely thrilled when I saw this!\nAI Study Group Yesterday, I created a new category and thought about using AI to learn many computer courses, such as algorithms and LeetCode practice problems. Each learning record is published on the blog to form a knowledge base. A new category was created: AI Study Group. Now it seems that different courses require creating separate projects, and all learning notes are written in the project\u0026rsquo;s Readme.md file.\n","date":"2025-05-28","language":"en","permalink":"https://ttf248.life/en/p/github-pages-easter-egg-deploy-multiple-sites/","tags":["github","github-pages","pages","deploy","multiple-pages"],"title":"GitHub Pages Easter Egg: Deploying Multiple Pages","year":"2025"},{"categories":["Computer"],"content":"For many years, I’ve focused on backend development, and recently started to explore AI programming while dipping my toes into some frontend-related content. However, during this period of tinkering, I gradually realized I was falling back into an old habit – being dazzled by shiny new things. I constantly try to use AI to create a frontend interface, but in reality, these attempts haven’t provided much practical benefit for my current work and are actually wasting my energy.\nAI Use Cases In small projects, AI tools can truly shine, particularly when writing independent functions with low coupling to the system and simple business logic. These tasks typically have clear inputs and outputs, and rely less on context – making them well-suited for the current capabilities of AI-assisted programming.\nHowever, when facing complex system architectures or deep business logic, AI’s limitations begin to emerge. It may generate code that appears reasonable but is actually detached from the project\u0026rsquo;s real needs, or even introduce potential issues that are difficult to debug. In these scenarios, AI is best suited as an assistive tool rather than a fully autonomous code generator. We need to conduct rigorous review and testing of the generated code to ensure it meets actual requirements.\nErrors and the Cost of Learning While attempting to generate frontend code using AI, I encountered numerous challenges. As frontend development isn\u0026rsquo;t a domain I’m familiar with, troubleshooting often proved time-consuming and frustrating. Even after adjusting prompts to have the AI rewrite the code, it was difficult to avoid the appearance of some low-level errors. This iterative process not only wasted time but also highlighted that my current focus should be on backend business logic rather than groping around in unfamiliar territory.\nLooking back at the project completed over the weekend, I’m even more convinced that focusing on backend development and user interaction logic, implementing functionality through a console, is the most efficient approach currently. Perhaps systematically learning frontend knowledge would be a better strategy when I have more time and energy.\nFrontend Learning Plan The frontend technology stack is complex and diverse, so it’s unrealistic to quickly master it. I plan to first choose a framework, such as Vue.js or React.js, and deeply learn its core concepts and usage methods. Only after becoming familiar with the fundamentals will I attempt to use AI to generate frontend code, which can effectively avoid errors and wasted time caused by unfamiliarity.\nIn short, the focus for this stage should be on backend development, steadily building my core skills. When the timing is right, I’ll then explore the combination of frontend and AI – potentially yielding greater rewards.\n","date":"2025-05-26","language":"en","permalink":"https://ttf248.life/en/p/old-ailment-stunning-flowers/","tags":["AI","Frontend","Backend"],"title":"Old problems, the flamboyant beauty of blossoming flowers. (This captures the essence and poetic nature of the original.)\n\nAlternatively, a more literal translation could be: “Old ailments, beautiful eyes like blooming flowers.” However, the first option is generally preferred for its aesthetic quality.","year":"2025"},{"categories":["Computer"],"content":"This site is developed using Hugo, but I’ve always used Chinese titles, which results in less friendly generated article links. In simpler terms, when shared, they don\u0026rsquo;t look as good because the Chinese characters are escaped into formats like %E4%BD%A0%E5%A5%BD within the links. While you can solve this by setting a slug, it’s tedious to do manually every time.\nTherefore, I decided to try using Claude4 to develop a translation assistant that automatically converts Chinese titles to English slugs and adds hyperlinks within the articles. This would eliminate the need for manual setup.\nClaude4 is amazing – its contextual understanding has significantly improved, as has its efficiency in handling complex tasks.\nProject Address Domestic Project Address: https://cnb.cool/ttf248/hugo-content-suite International Project Address: https://github.com/ttf248/hugo-content-suite\nCode Implementation Let\u0026rsquo;s first discuss the implementation approach: We need to scan all articles, extract tag information and article titles, and then call on our local large model (such as gemma-3-12b-it) for translation.\nIn actual development, Claude4 showcased several significant advantages compared to previous generation large models. Due to the diverse functional requirements, Claude4 automatically designed an interactive menu, comprehensively considering various usage scenarios. For example, in tag processing, Claude4 not only supports tag statistics and analysis but also includes classification statistics and can even detect unlabeled articles. Furthermore, it provides preview and tag page generation functionalities.\nWhether it\u0026rsquo;s integrating with local large models, adding translation caches, or performing large-scale code refactoring, Claude4 completes everything in one go, with almost no issues. Despite the relatively small project size, it includes many minor features. In previous development processes, large models often forgot earlier content, but Claude4 performed exceptionally well this time, virtually without any context forgetting issues.\nIn short, intelligence has increased, and we plan to switch to Claude4 for more development work as our primary coding model.\nTranslation Cache This approach, besides reducing the number of calls to large models, performs quite efficiently when running a 12b model locally – it doesn’t waste much time. However, if you need to call the large model every time, it will still be somewhat slow. Furthermore, to fix the connections within articles, if a full update operation is executed and the article title is very long, there\u0026rsquo;s occasionally a situation where the two translated results differ, causing the link to change – which is quite awkward.\nFeature Optimization The entire project was handed over to Claude4 to analyze the space for optimization and obtain the following suggestions:\nExternalize Configuration - Improve maintainability and flexibility Structured Logging - Facilitate troubleshooting and monitoring Performance Monitoring - Understand system running status User Experience - Visual feedback such as progress bars Error Handling - A more robust exception handling mechanism Code Organization - Clearer module division The code was reviewed, and there were no major issues, such as the configuration files. The original code\u0026rsquo;s configurations were converted to default settings, and if a corresponding configuration file wasn’t found during reading, a default one would be automatically generated to prevent user errors. Requirement: When translating text into English, dynamically calculate the current translation efficiency, estimate the remaining time, and output relevant information to the console: Now it has obtained the character count of the article, the character count for each line being translated, the translation time, and fits the calculation of the translation time for every 100 characters. Simultaneously, it calculates the estimated remaining translation time.\nThe code was completed, but the effect wasn\u0026rsquo;t very satisfactory, so I asked AI to provide a new design solution:\nProvide multiple efficiency calculation methods: Real-time efficiency, average efficiency, sliding window efficiency Improve display method: Progress bars, segmented statistics, dynamic refresh Add more useful metrics: API call counts, success rates, etc. After the code was completed, a new surprise was discovered – translation efficiency statistics flooded in in real time, but without endless scrolling.\nTranslating text to English (total 7163 characters)... Detected 53 lines to translate [1/53] Stage1/6 [░░░░░░░░░░░░░░░░░░░░░░░░░] 1.9% Translating 354 characters... ✅ Completed (3.1s) | API Call #1 ✅ Completed (1.5s) | API Call #2 ✅ Completed (0.9s) | API Call #3 ✅ Completed (0.2s) | API Call #4 ✅ Completed (1.0s) | API Call #5 ✅ Completed (1.0s) | API Call #6 ✅ Completed (0.2s) | API Call #7 📊 Progress: 13.2% (7/53) | 12.9% (925/7163) 114.6 characters/second 📊 ⚡ Efficiency: Real-time 76.4 | Average 117.9 | Recent 109.0 | Stage 113.6 characters/second 📊 🎯 Success Rate: 100.0% (7/7) | Remaining: 46 lines 7 seconds] 9.4% Translating 110 characters... ⏱️ Estimated remaining: 55s | Predicted completion time: 00:10:19 8s] 11.3% Translating 114 characters... 💾 Processing speed: 3211.3 lines/minute | Total time: 8s] 13.2% Translating 16 characters... [8/53] Stage1/6 [███░░░░░░░░░░░░░░░░░░░░░░] 15.1% Translating 166 characters... Previously, the control program wasn\u0026rsquo;t written with many features, so I was curious about how it was implemented and looked at the code:\n// Clear screen and redisplay (dynamic refresh effect) if translationCount \u0026gt; 1 { fmt.Print(\u0026#34;\\033[6A\\033[K\u0026#34;) // Move up 6 lines and clear } Performance Statistics Menu The newly added Performance Statistics Menu, which I myself designed, isn\u0026rsquo;t as well-designed as this one.\n📊 Performance Statistics: 🔄 Translation Count: 360 ⚡ Cache Hit Rate: 1.4% (5/365) ⏱️ Average Translation Time: 315.927234ms 📁 File Operations: 73 ❌ Error Count: 0\nData Mining Deep Learning Neural Network Progress Bar Display New Progress Bar Display, detailed progress, elapsed time, estimated remaining time. Please select function (0-13): 10 🔍 Collecting translation target\u0026hellip; 📄 Loaded cache file, containing 0 translation records 📊 Translation Cache Statistics: 🏷️ Total tags: 229 📝 Total articles: 131 ✅ Cached: 0 🔄 To be translated: 360 Confirm to generate full translation cache? (y/n): y 🚀 Generating full translation cache\u0026hellip; 📄 Loaded cache file, containing 0 translation records 🔍 Checking translations in cache\u0026hellip; 🔄 Need to translate 360 new tags [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 5/360 (1.4%) - Time taken: 3s - Estimated remaining: 3m8s 💾 Saved cache file, containing 5 translation records [█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 10/360 (2.8%) - Time taken: 6s - Estimated remaining: 3m28s 💾 Saved cache file, containing 10 translation records [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 15/360 (4.2%) - Time taken: 9s - Estimated remaining: 3m30s 💾 Saved cache file, containing 15 translation records [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 20/360 (5.6%) - Time taken: 13s - Estimated remaining: 3m36s 💾 Saved cache file, containing 20 translation records [███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 25/360 (6.9%) - Time taken: 16s - Estimated remaining: 3m33s 💾 Saved cache file, containing 25 translation records [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 30/360 (8.3%) - Time taken: 19s - Estimated remaining: 3m30s 💾 Saved cache file, containing 30 translation records [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 35/360 (9.7%) - Time taken: 22s - Estimated remaining: 3m25s 💾 Saved cache file, containing 35 translation records\n=== Hugo Blog Management Tool === 🚀 Core Features 1. One-click full blog processing (complete blog workflow) 📝 Content Management 2. Generate tag pages 3. Generate article slugs 4. Translate articles into multi-language versions 💾 Cache Management 5. View cache status 6. Generate full translation cache 7. Clear translation cache 0. Exit the program ","date":"2025-05-24","language":"en","permalink":"https://ttf248.life/en/p/claude-4-release-hugo-tags-hyperlink-translation-assistant/","tags":["ai","hugo","claude"],"title":"Claude4 released, attempting to develop: Hugo tags, hyperlink translation assistant","year":"2025"},{"categories":["AI Inspiration Hub"],"content":"China’s population control policies, while limiting growth and curbing family-style development, have disrupted traditional social structures, suppressed the expansion of family-owned businesses and political dynasty power, presenting a unique case compared to South Korean conglomerates and Indian family monopolies. Now that birth restrictions are being relaxed, despite facing challenges such as low fertility rates, it’s crucial to be wary of new monopoly risks and seek balance through multiple avenues.\nOne: The Disjunction Between Population Control and Family-Style Development The family planning policy, which has been a fundamental national strategy in China for nearly forty years, has achieved significant direct results. Data shows that from 1978 to 2007, the natural growth rate of China’s population declined from 12‰ to 5.2‰, resulting in a reduction of over 40 million people, and the proportion of the Chinese population worldwide decreased from 22.2% to 20.1%. This sharp decline in population growth profoundly reshaped family structures within Chinese society. Taking family-owned enterprises as an example, after the implementation of the family planning policy, the number of children born by business owners declined significantly: before the policy, the proportion of those having three or more children reached 40.63%, and after the policy it plummeted to 18.46%, the proportion of single sons born increased from 6.25% to 32.31%. This structural change directly reduced the range of potential internal successors for family-owned enterprises, objectively suppressing their generational expansion capabilities.\nIn contrast to Korea and India, the differences are significant. Although Korea did not implement strict family planning policies, its birth rate has remained low (0.7 in 2023), however, its chaebols have maintained control over the national economy through cross-shareholdings and tax avoidance mechanisms. The total revenue of the top five chaebols accounts for more than 50% of Korea’s GDP, with Samsung Group alone accounting for 20% of the country\u0026rsquo;s GDP. India, on the other hand, presents a different picture: 79% of economic output is contributed by family-owned enterprises, and six major conglomerates control key sectors such as telecommunications and steel, with twenty top companies earning 80% of national corporate profits. The core of this difference lies in the fact that China’s family planning policy, through limiting family size, has weakened the human resources base for family-owned enterprise expansion from the source, while Korea and India have been able to sustain their influence in economic sectors due to different policy environments.\nTwo. Monopoly Restraint and Social Structural Transformation The impact of the family planning policy on the economic sector is particularly evident in its suppression of monopoly phenomena. Due to the reduced number of children within Chinese family businesses, the formation of Han-Indian style conglomerates like those led by chaebols was difficult. Taking Korea as an example, chaebols maintained control through “circular investment,” with the Samsung family holding only 2% of the group’s shares but controlling the entire operation through complex equity structures. In China, after the family planning policy, family businesses generally faced the dilemma of “passing down from father to son,” often necessitating the introduction of professional managers or implementing equity diversification reforms. According to a湃新闻 (Papare News) study, the proportion of female successors in family businesses after family planning increased from 13.85% to 34.21%, and the education level of these successors significantly improved, with the percentage of college graduates rising from 43.75% to 98.46%. While this transformation has not completely eliminated family control, it has significantly reduced the possibility of a single family monopolizing the market.\nOn the social structural level, the family planning policy accelerated the disintegration of traditional family core models. The average household size in China decreased from 4.41 people/household in 1982 to 2.62 people/household in 2020, weakening the family’s functions in areas such as economics, education, and social support. In contrast, India maintains a family size of around 4 people, with the caste system deeply intertwined with family power, leading to low social mobility. China\u0026rsquo;s transformation of household structure created space for individualism, with the number of single adult citizens reaching 240 million in 2023, and a trend of “one-person economy” emerging in the consumer market – further diminishing the influence of family economies.\nThree. Decentralization of Power in the Political Sphere The impact of the family planning policy on the political landscape has been profound. Traditionally, family power structures had infiltrated grassroots politics through bloodlines and kinship relationships. For example, the 161 political families in Henan’s Xinye County virtually controlled all government departments, with 20% of cadres at deputy-level or above belonging to “officer’s children.” However, after the implementation of the family planning policy, shrinking family sizes limited the expansion of family networks. Research from Peking University showed that the number of offspring of officials decreased after family planning, and the complexity of family political networks significantly declined. Furthermore, the policy-driven promotion of education (the average years of schooling increased from 5.2 in 1982 to 10.9 in 2023) facilitated social mobility, weakening the monopoly of family power over political resources.\nIn comparison with South Korea and India, the deep entanglement between Korean conglomerates and politics (such as Samsung Group executives engaging in bribery with government officials) and the hereditary family politics under the Indian caste system highlighted the uniqueness of China’s policy. China objectively reduced the possibility of power succession through the family planning policy. Despite the presence of family phenomena in county-level politics, the overall trend is towards the decentralization of the power structure. During the 2025 National People\u0026rsquo;s Congress meeting, a CPPCC member proposed renaming “The Law on Population and Family Planning” to “The Law on Population and Reproduction,” fully opening up childbirth – a move that may further influence the future evolution of the political landscape.\nFour, Challenges and Opportunities Following Policy Adjustments The implementation of the 2016 comprehensive two-child policy and the 2021 three-child policy marked a significant shift in China’s birth policies. However, the effects were limited: In 2022, the birth rate was only 1.18, far below the replacement level (2.1). The relaxation of birth restrictions had a dual impact on family-owned enterprises: On one hand, some entrepreneurs may strengthen their family succession capabilities through multiple births, such as Zong Qinghui, the daughter of Zhong Quehui of Wahaha Group in Zhejiang, who took over as the sole heir; on the other hand, high childcare costs (the average cost of raising a child to 18 years old in first-tier cities reaches 10 million yuan) and declining fertility intentions among professional women limited the expansion of family size.\nIn the economic sphere, relaxing birth restrictions may give rise to new monopoly forms. The three-child policy has accelerated the concentration of the maternal and childcare industry, with the market size of infant and toddler care expected to reach 1621.3 billion yuan in 2025. Leading companies have consolidated smaller manufacturers through mergers and acquisitions, resulting in a CR5 market concentration exceeding 55%. This increase in concentration may bring efficiency, but it also needs to be wary of new monopoly risks. The government must seek a balance between encouraging births and preventing market concentration, such as strengthening regulation through antitrust laws while providing childcare subsidies (such as Hangzhou’s three-child families receiving a monthly milk powder subsidy of 3000 yuan) to reduce family burdens.\nIn the political sphere, relaxing birth restrictions may have subtle impacts on family power structures. Although it is unlikely to restore traditional family political networks in the short term, from a long-term perspective, multi-child families may form new influence in grassroots politics. Therefore, improving personnel selection mechanisms and strengthening supervision (such as establishing a cadre relative appointment avoidance system) are still crucial for preventing hereditary power.\nFive. International Mirroring and Future Outlook The experiences of South Korea and India demonstrate that the ebb and flow of family power is closely linked to policy orientations. South Korea achieved economic takeoff by supporting conglomerates, but at the cost of social inequality; India’s failure to implement effective policies to curb family monopolies has exacerbated wealth disparity. China\u0026rsquo;s population control policy effectively suppressed the expansion of family powers while simultaneously creating problems such as an aging population and labor shortages.\nLooking ahead, China needs to find a new balance between population policy and socio-economic development. On one hand, it should increase birth rates through fertility support policies (such as extending maternity leave and building accessible childcare institutions); on the other hand, it must strengthen antitrust enforcement to prevent family businesses from forming new monopolies through capital operations. In the political sphere, further progress is needed in grassroots democracy construction, strengthening oversight mechanisms, and ensuring transparency in governance.\nIn conclusion, population control policies were a key driver of social change in China, with impacts far exceeding the realm of population. They reshaped family structures, economic models, and the political landscape, providing a path for China to avoid falling into the trap of family monopolies seen in Korea and India. As policies are adjusted, balancing efficiency and equity, freedom and order within the new demographic context will be a long-term challenge facing China.\n","date":"2025-05-24","language":"en","permalink":"https://ttf248.life/en/p/china-family-planning-policy-impacts/","tags":["family-planning","population-policy"],"title":"Multi-dimensional impacts of the family planning policy: deep transformations from social structure to economic and political changes.","year":"2025"},{"categories":["Diary Ramblings"],"content":"Since we’ve established “AI Inspiration Collision Forum,” there’s been a lot of random content being created, with people experimenting with AI to record and publish things, but thoughtful reflection is becoming increasingly scarce. Moving forward, it would be beneficial to slightly control the output of this section and consolidate it into a monthly magazine format – releasing one article per month would suffice.\nThis feels like a sort of aftereffect or side effect; efficiency has increased, but the depth and breadth of thought have declined.\nEfficiency Boost: Undeniable The “Seven-Second Fish Sightseeing” column used to be poorly maintained, with only a few hot events covered. Due to laziness, I hadn’t searched the internet for relevant materials or compiled records. Now that various AI tools are available, all it takes is outlining the key points, and AI can automatically search for related events, generate articles as needed, simply format them, and publish them.\nIt\u0026rsquo;s like a blessing for lazy people – efficiency has increased significantly, almost to the point of doubling efforts.\nBeyond writing articles, efficiency gains are real when coding. Previously, writing code often required detailed reading of API interface documentation. Now, I can skip this entirely. This is incredibly valuable because familiarizing oneself with APIs is “physical labor,” not “mental labor.” AI handles this part perfectly.\nSpam Content Many articles have poor quality content, not to say that there’s nothing there; it just doesn\u0026rsquo;t read well, lacking a sense of reality and what people actually experience. It’s a style I didn’t enjoy before – like chewing wax.\nFrom another perspective, AI-generated content really does feel like products of a流水线 (liú shuǐ liàn - assembly line) production, lacking soul.\nNew Era Internet Spam\nForgetting This type of document is entirely AI-generated, and the reader’s context is unclear. However, over time, my own impressions will become blurred, or even forgotten.\nSimilar issues occur when writing code – without reviewing commit records, I can\u0026rsquo;t remember how I originally thought about it, or why I wrote it that way. This is particularly evident with code generated through repeated communication with AI, where the final code differs significantly from the initial ideas, sometimes drastically so.\nSearch Recently, the number of times I’ve opened Google and Baidu has noticeably decreased. Many questions are now being answered by AI for searching and interaction, and the results are much better than traditional search engines.\nLet\u0026rsquo;s mourn the bing ai, which may no longer be active, a pioneering AI tool from a major company that could connect to the internet and search.\nI’m using Google less, and the number of times I visit stackoverflow has decreased as well. Many questions are now simply asked of AI – this website is gradually being phased out by the times.\nConclusion My maintained blog, originally with very little traffic, is now even less expected of; it’s primarily a place for self-reflection and recording.\n","date":"2025-05-14","language":"en","permalink":"https://ttf248.life/en/p/ai-overuse-side-effects/","tags":["ai","internet"],"title":"AI overuse can lead to some lingering effects.","year":"2025"},{"categories":["Computer"],"content":"github-readme-stats is a GitHub profile statistics generator that allows users to display various statistics and charts within their GitHub profiles. It offers multiple customization options to tailor it to user needs.\nI manage my repository habits by grouping them by project; GitHub doesn\u0026rsquo;t support repository grouping, so I have to achieve this by splitting repositories across different organizations. The latest branch of github-readme-stats cannot support statistics for repositories spanning different organizations; I forked a branch and merged the corresponding code.\nFinal Result Pull Request Original Address Adds the ability to include data from organization repositories\nMerging a Pull Request into Your Forked Repository To merge a Pull Request (PR) into your forked repository, there are several ways to do this, depending on whether you want to:\nMerge the PR from the upstream repository into your fork, or Merge a PR from another person’s fork into your fork, or Merge a PR that was opened on your fork (e.g., someone forked and created a PR for you) I\u0026rsquo;ll first give you a common scenario: You have forked a repository and want to merge a PR from the upstream into your fork. Here’s the workflow below 👇\n✅ Method One: Command Line (Most Universal) Step 1: Clone your own fork git clone https://github.com/your-username/repository-name.git cd repository-name Step 2: Add Upstream (Original Repository Address) git remote add upstream https://github.com/original-author-username/repository-name.git Step 3: Fetch the Upstream PR Branch Find the PR number you want to merge, for example PR #123. You can then checkout the code for that PR like this:\ngit fetch upstream pull/123/head:pr-123 Step 4: Switch and Merge Branches git checkout main # Or your own target branch git merge pr-123 If everything goes well, you can push to your forked GitHub repository:\ngit push origin main ✅ Method Two: GitHub Web Interface (Simple but Limited) If you see a PR on GitHub’s web interface that is against the upstream repository, you can:\nNavigate to the PR page. Click “Commits” or “Files changed” in the top-right corner to see which branch this PR is based on. On your fork page, create a new branch and then manually cherry-pick the PR’s commit (requires Git knowledge). Or, click “Open in GitHub Desktop” and use the GUI tool to merge. 🚀 If someone has created a fork and submitted a PR to it, simply navigate to the PR page, click the \u0026ldquo;Merge pull request\u0026rdquo; button, and you’re done. Would you like me to walk you through it step-by-step based on your specific scenario (e.g., PR link, whether you\u0026rsquo;re using a web interface or the command line)? Or, please provide the link and I can analyze the simplest approach for you.\n","date":"2025-05-07","language":"en","permalink":"https://ttf248.life/en/p/merge-pullrequest-to-forked-repo/","tags":["github","fork"],"title":"Merge the Pull Request into the Repository of the Fork","year":"2025"},{"categories":["Computer"],"content":" Script for batch modifying Git history commit author information, rewriting Git history records using git filter-branch. You provided the script to modify the author information in the Git repository history in bulk. The overall approach is correct, but using an array (e.g., OLD_EMAILS=(\u0026quot;...\u0026quot;)) within the git filter-branch’s --env-filter might cause compatibility issues because some shell environments (such as /bin/sh) do not support array syntax. To improve compatibility, it\u0026rsquo;s recommended to replace the array with space-separated strings and use a for loop to iterate through each old email address. Here is an example of the modified script:\n#!/bin/sh git filter-branch --env-filter \u0026#39; OLD_EMAILS=\u0026#34;TianlongXiang51@gmail.com nick@qq.com tianlongxiang51@gmail.com\u0026#34; CORRECT_NAME=\u0026#34;tianlong.xiang\u0026#34; CORRECT_EMAIL=\u0026#34;tianlong.xiang@foxmail.com\u0026#34; for OLD_EMAIL in $OLD_EMAILS do if [ \u0026#34;$GIT_COMMITTER_EMAIL\u0026#34; = \u0026#34;$OLD_EMAIL\u0026#34; ] then export GIT_AUTHOR_NAME=\u0026#34;$CORRECT_NAME\u0026#34; export GIT_AUTHOR_EMAIL=\u0026#34;$CORRECT_EMAIL\u0026#34; fi if [ \u0026#34;$GIT_AUTHOR_EMAIL\u0026#34; = \u0026#34;$OLD_EMAIL\u0026#34; ] then export GIT_COMMITTER_NAME=\u0026#34;$CORRECT_NAME\u0026#34; export GIT_COMMITTER_EMAIL=\u0026#34;$CORRECT_EMAIL\u0026#34; fi done \u0026#39; --tag-name-filter cat -- --branches --tags Notes:\nIt is recommended to back up your repository before executing this script to prevent any unexpected issues. This operation rewrites Git history, modifying the author information of commits, which may cause changes in commit hash values. If you have already pushed the changes to a remote repository, you need to use a forced push: Please use forced pushes cautiously, especially in collaborative projects, to avoid affecting others. Count all unique authors\u0026rsquo; email addresses in the repository\ngit log --format=\u0026#39;%an \u0026lt;%ae\u0026gt;\u0026#39; | sort -u ","date":"2025-05-07","language":"en","permalink":"https://ttf248.life/en/p/git-modify-commit-message/","tags":["git"],"title":"Commit messages in Git’s history","year":"2025"},{"categories":["Computer"],"content":" Last month, we experimented with cursor, but due to the limitations of the free quota, we didn\u0026rsquo;t develop overly complex features; we just did some basic testing. We discovered then that Byte also released similar products, both using the same large models – Claude-3.5 – at their core. Byte’s product is called Trae, initially launched in the Mac version and finally released its Windows version in February of this year. Big companies are good because you can freely “white嫖” (literally translates to \u0026ldquo;free-eat\u0026rdquo;), without having to pay, with unlimited use of Claude-3.5 – this model performs quite well. Ultimately, we got stuck on the development of candlestick charts. As I don’t understand React at all, I had to give up. To continue developing, I would need to supplement my knowledge of front-end basics, breaking down the task into smaller, more manageable pieces instead of directly giving me a large task: developing candlestick charts.\nIssues Found Due to the lack of training data caused by using foreign AI models and Vue3 + Element-Plus, React was chosen as the frontend framework. Occasional syntax errors may exist and require manual fixes. Solutions for some complex problems require manual guidance. Code structure optimization requires manual instruction. The most time-consuming part was packaging the frontend code into a container, due to my zero foundation in .env.production and tsconfig.json, I had no concept of these either; I only straightened out the corresponding logic by asking for help from bean sprouts halfway through. There are significant differences between the dev mode and build mode of frontend development, and the checks performed on the code. Backend database and service container scripts were completed in a total of five minutes. Currently, AI mainly improves the efficiency of development; having a foundation is best, not that AI will solve all problems for you. Repository Address As the title indicates, this time we’re going to try a chat-based approach with AI instead of writing code, aiming to design and develop a self-trading module. Let\u0026rsquo;s see what results we can achieve.\nRepository address: https://github.com/ttf248/trae-demo\nFor detailed usage instructions, please refer to the README.md file in the repository.\nThe repository contains numerous submission records, most of which are dialogues between me and Trae, along with my testing of Trae’s functionalities, and notes on whether manual intervention was required to implement each feature.\nPrompt The project is to develop functionality from scratch, based on the following project prototype diagram:\nBased on the project prototype diagram, develop features: stock selection (watchlist), which needs to support adding, deleting, modifying, and querying contracts. The watchlist interface should display basic market data. Support multiple different market switches. Frontend: react Backend: golang gin gorm Database: PostgreSQL The backend needs to support cross-origin requests, while also considering data validation and error handling. If the backend service is unavailable, the frontend should display an alert message. The backend needs to display request and response logs; the frontend also prints communication logs for troubleshooting purposes. UI and Interaction Optimization The design of the front-end interface relies entirely on Grok. We initially created a prototype within Trae, but it lacked aesthetics. Because the model used has strong coding capabilities but weaker other abilities, we need to use Grok to optimize the front-end UI.\nBy taking screenshots of the current interface and uploading them to Grok, we can receive numerous optimization suggestions at once. We then manually evaluate these suggestions and copy them into Trae to execute and observe the results of the optimizations.\nTechnology Stack Frontend: React + TypeScript Backend: Golang + Gin + GORM Database: PostgreSQL 17 System Architecture Backend Architecture The backend utilizes the Gin framework (Go) to implement RESTful APIs, with the following key modules:\nDatabase Module Utilizes GORM as an ORM framework Supports database connection configuration via environment variables Automatically performs database schema migrations Routing Module RESTful API design A unified error handling mechanism Built-in request logging Cross-Origin Handling Supports cross-origin requests from local development environments Configurable CORS policies Supports cookie-based cross-origin access Frontend Architecture The frontend was built using React + TypeScript, implementing the following features:\nStock list display Watchlist management Real-time quote data display Error handling mechanism ","date":"2025-02-27","language":"en","permalink":"https://ttf248.life/en/p/design-develop-custom-stock-module-no-code/","tags":["ai","trae"],"title":"No coding, design and develop a self-selected stock module.","year":"2025"},{"categories":["Computer"],"content":"The US stock market has three trading sessions: pre-market, live market, and post-market. The logic for pushing data – whether it’s full data or numerical increments – is optimized to conserve bandwidth (sending as little data as possible). Initially, only the full dataset is sent in the first transmission; subsequent transmissions are incremental updates of all fields.\nWhy not use the optimal solution? This involves multiple project teams, some of which have been live for many years. As we’re a new integration, we can only strive for compatibility.\nA Series of Issues Just from the summary, it might seem like there aren\u0026rsquo;t any problems, but once the system architecture is brought in, a series of issues arise. Immediately after resolving the previous issue, a new one emerged – this problem was caused by the prior one.\nUnable to Identify Trading Intervals The market phase is defined in protobuf as 0, but due to incremental push data delivery, the business side cannot effectively identify whether this \u0026lsquo;0\u0026rsquo; represents the default value or a genuine business value.\nIn simpler terms: Each time a \u0026lsquo;0\u0026rsquo; is received, it’s impossible to determine if it’s the new market phase setting or the protobuf default value.\nIntroducing Optional Since protobuf release 3.15, proto3 supports using the optional keyword (just as in proto2) to provide presence information for a scalar field.\nThe group’s communication protocol is based on protobuf, but due to historical reasons, the version selected was older and did not support the optional keyword. As you know, because we introduced protobuf from the ground up, publishing the project as a static library, this resulted in needing to upgrade the entire build chain, which was a very high cost.\nGCC Version Issues After painstakingly devising a solution, we planned to release two different underlying versions to control the propagation of dependencies for the new protobuf version as much as possible. However, during compilation, we discovered that the gcc version was too low and did not support the new features of protobuf.\nThe commonly used server types in our team are CentOS7 and CentOS8. The default gcc version on CentOS7 is 4.8, while the default gcc version on CentOS8 is 8.3. Since the new features of protobuf require a gcc version of 7.4 or higher, CentOS7 could not support it.\nBug 82461 - [7 Regression] Temporary required for brace-initializing (non-literal-type) member variable.\nUltimately, after a lot of troubleshooting, we moved the deployments of related services and the compilation server to CentOS8, resolving this issue.\nReasonable Enumeration Reviewing the entire problem, there’s a simpler and more efficient solution: adjust the enumeration definition to start numbering from 1 instead of 0. This effectively distinguishes between default values and business values, avoiding all the aforementioned issues.\nWhy Starting from 1 is More Reasonable? In protobuf, enum types have a default value fixed to 0. If we define meaningful business values as 0 (e.g., \u0026ldquo;Market Open\u0026rdquo;), in incremental pushes, the business side cannot determine whether the received 0 is a business value or an unset default value. However, if the enum starts from 1, 0 can be reserved for a meaningless default value or “Unknown” state, solving the problem directly.\nRecommended Practice: When designing protobuf enums, always define 0 as a meaningless default value (e.g., UNKNOWN or RESERVED). Assign actual business values starting from 1 to ensure they are distinguished from the default value of 0.\nWith this small adjustment, we not only resolved the issue of identifying market hours but also provided a valuable lesson for future protocol design.\n","date":"2025-02-20","language":"en","permalink":"https://ttf248.life/en/p/protobuf-zero-value-trap/","tags":["troubleshooting","protobuf","communication-protocol"],"title":"Protobuf Zero Value Pitfalls: When Default Values Become an Invisible Killer of Business Logic","year":"2025"},{"categories":["The Seven Seconds of a Fish"],"content":"On the eve of the 2024 National Day holiday, China’s stock market experienced a remarkable surge, attracting considerable attention. However, following the holiday, the market unexpectedly turned to a dramatic plunge. This “polarization” of the stock market – a rollercoaster ride between soaring highs and plummeting lows – not only subjected investors to a thrilling yet nerve-wracking experience, but also prompted deep reflection within the market regarding policy, economic conditions, and fundamental market rules.\nPre-National Day Stock Market Surge: A Policy-Driven Frenzy Over the five trading days leading up to National Day, China’s stock market surged from a slump into “boiling mode.” On September 30th, the A-share market saw a full-scale rally with all indices hitting historic highs. The Shanghai Composite Index rose by 8.06%, the Shenzhen Component Index increased by 10.67%, and the Innovation Board China Advanced Index soared by 15.36%, while the STAR 50 Index achieved its largest single-day rise in history, jumping 22.84%. Market sentiment was extremely exuberant, with daily trading volumes across the Shanghai, Shenzhen, and Northern Exchanges reaching RMB 2611.5 billion, a significant increase of RMB 11559 billion compared to the previous trading day. More than 5300 stocks on the main board rallied collectively, creating a “sea of red.”\nThe core driver behind this rally was the concentrated release of a series of unexpectedly positive policies by the government and the resulting changes in market expectations. On September 24th, the People’s Bank of China announced a cut in the reserve requirement ratio and interest rates, reducing existing mortgage loan interest rates and standardizing the minimum down payment ratios. The Politburo Standing Committee’s meeting on September 26th emphasized the need to intensify counter-cyclical fiscal and monetary policy adjustments to boost capital markets and actively guide medium and long-term funds into the market. On September 30th, a series of real estate support policies were released. These measures conveyed the government\u0026rsquo;s determination to stabilize the market and promote growth.\nPost-National Day Stock Market Plunge: Calm and Adjustment After the Frenzy However, market sentiment plummeted sharply after the National Day holiday. On October 8th, the A-share market opened strongly with nearly a limit-up rise, but following a significant high opening, the market experienced violent fluctuations before closing down. Since then, the market’s center of gravity has continuously shifted downwards, and as of October 16th, the Shanghai Composite Index rose and fell by more than 15%, cumulatively falling by over 470 points. From October 8th to 10th, core A-share indices all declined, with the Shenzhen Component Index down 6.21%.\nThe reasons for this plunge are multifaceted. On one hand, it was a digestion of risks accumulated from the rapid rise in the previous period; on the other hand, it was also related to adjustments in market expectations regarding policy. Some investors believed that the short-term effects of policies were already evident, but the long-term effects still needed to be observed. Furthermore, volatility in global markets also impacted A-shares. On October 9th, the Hang Seng Index fell by 9.41%, and A50 futures fell by 10.4%, further exacerbating market declines.\nReflection and Outlook on the Market The dramatic volatility in the stock market around National Day highlighted a deep reflection among investors regarding policy, economics, and market fundamentals. On one hand, the short-term stimulus effects of policies were significant, but their long-term impact remains to be observed. On the other hand, the rapid rise and fall of the market served as a reminder for investors to maintain rationality and avoid emotional investment.\nLooking ahead, whether A-shares can usher in a genuine “long bull” trend depends on whether policy can effectively transmit to the real economy and ultimately drive substantive improvements in economic fundamentals. Investors should closely monitor the specific implementation of policies and changes in economic data to rationally adjust their investment strategies.\nThe sharp rises and falls in the stock market around National Day were a game between policy and the market, and also a test of investors’ mentality. In this “two-pronged” market environment, we saw the power of the market and the influence of policy. How the market will unfold in the future remains to be seen.\n","date":"2025-02-15","language":"en","permalink":"https://ttf248.life/en/p/long-time-no-see-bull-market-in-stocks/","tags":["stock-market","national-day","spike-surge","stock-crash","policy-updates"],"title":"Long time no see bull market in stocks","year":"2025"},{"categories":["Computer"],"content":"Business Model: The backend service establishes a connection with the group’s market data gateway using TCP. Each time a connection is established, it must first send an authorization request and then continuously send heartbeat packages to maintain the connection status.\nHowever, one day, an alert message was received indicating that the service had disconnected. After carefully examining the logs, it was discovered that the backend service was continuously sending heartbeat packages, but the other party did not respond at all, yet the connection remained open.\nField Summary I was originally working in the office, pushing project progress, when an alarm message suddenly popped up in the company group. At first glance, I thought it was just a recurring issue – likely due to network timeouts causing heartbeat failures, leading to service disconnection. However, after careful log examination, the actual situation turned out to be different. The backend had sent an authorization login message, but hadn’t received a response; meanwhile, heartbeat packets continued to send persistently, yet the other party never replied with any heartbeat data. After in-depth analysis of the logs, several key issues were exposed:\nNo Response to Authorization Message: This was likely due to the other system being in the process of restarting, preventing the authorization message from being processed promptly. Sending Heartbeat Data Without Successful Authorization: Upon investigation, it was found that this was a logical flaw in the program’s logic. The heartbeat sending function\u0026rsquo;s judgment logic had a defect; it only checked the connection status but missed verifying the authorization status. Service Did Not Disconnect: If the service could have disconnected, it would have triggered a reconnection mechanism and re-sent the authorization message. Currently, there’s one remaining critical issue that needs to be resolved – why didn\u0026rsquo;t the service disconnect? Solving this problem requires more in-depth and detailed troubleshooting work.\nAnalyzing Network Packets tcpdump is a very powerful network packet capture tool that can be used to capture network packets. By analyzing network packets, we can gain a more intuitive understanding of the details of network communication. Here, we can use tcpdump to capture network packets for further analysis. Analyzing the data in the diagram, I see that the heartbeat is constantly being sent normally, and the other server did not respond with any data, but it sent an ACK, which prevents the connection from disconnecting proactively.\nCommon Flag Bit Explanations In the TCP protocol, PSH (Push) and ACK (Acknowledgment) are two important flag bits used to control data transmission and traffic confirmation, respectively. Their functions are as follows:\n1. PSH (Push Flag) Function: The PSH flag’s purpose is to request that the receiver immediately push data from its buffer to the upper-layer application (rather than waiting for the buffer to fill). This means that once a data segment with the PSH flag is received, the receiver will process and transmit it as quickly as possible to the application, rather than storing it in an operating system buffer. Typical Scenarios: HTTP/HTTPS Requests: Clients setting the PSH when sending requests (e.g., GET /index.html) to ensure immediate response from the server. SSH Protocol: Each keystroke triggers a PSH, ensuring real-time transmission of input characters. Real-Time Communication: Low-latency scenarios like video streaming or online games may utilize PSH to reduce latency. Note: PSH is not mandatory; the receiver can choose to ignore this flag (but still process the data normally). The sender may not set PSH, in which case the receiver will determine when to push data based on its own buffering strategy. 2. ACK (Acknowledgment Flag) Function: The ACK flag indicates that the previous data segment has been correctly received. Each ACK contains an acknowledgment number (Acknowledgment Number), which represents the next byte sequence expected to be received. It is the core mechanism of TCP reliable transmission. Working Principle: When the sender sends a data segment, it carries the expected ACK value from the receiver (e.g., ACK = Sequence Number + Data Length). Upon receiving the data, the receiver generates an ACK message to confirm the received byte sequence number. The sender only retransmits unacknowledged data after receiving the corresponding ACK. Example: If the sender sends a data segment with sequence numbers 100~199, then the expected ACK from the receiver should be 200. If the receiver has not received some of the data in 100~199, it will inform the sender to retransmit via ACK=150. 3. Combination of PSH and ACK In the TCP header, PSH and ACK can appear simultaneously, commonly seen in the following scenarios:\nHTTP Request Response: When a client sends a POST request (including data), it sets both PSH and ACK (to acknowledge previous responses). Command Transfer after SSH Handshake: After the client enters a command, it sends a data segment with PSH and ACK to ensure that the command is immediately transmitted and processed by the server. 4. Other Flagged Associations Flag Name Brief Description SYN Synchronize Initiate connection (three-way handshake) 4. Other Flagged Associations Flag Name Brief Description FIN End Graceful connection closure 4. Other Flagged Associations Flag Name Brief Description RST Reset Forcefully terminates the connection (exceptional circumstances) 4. Other Flagged Associations Flag Name Brief Description URG Urgent Marks an urgent pointer (rarely used) 4. Other Flagged Associations Summary PSH focuses on data arriving at the application layer as quickly as possible, reducing latency. ACK focuses on reliable data transmission, avoiding packet loss or out-of-order delivery. The two work together to balance TCP protocol efficiency and reliability.\n","date":"2025-02-14","language":"en","permalink":"https://ttf248.life/en/p/backend-service-tcp-communication-troubleshooting/","tags":["troubleshooting","TCP","network-communication"],"title":"Background Service TCP Communication Anomaly Troubleshooting","year":"2025"},{"categories":["Investment"],"content":"Reflecting on years of stock trading experiences, although I didn’t make a fortune, I also didn\u0026rsquo;t lose too much. The biggest issue was an unreasonable allocation of funds and an unstable mindset. Currently, my primary source of income is work, earning a fixed salary each day through part-time jobs, and my ability to withstand financial fluctuations remains at the level of bonds and bank deposits. However, people are inherently greedy; if you buy too little, even when prices rise, you won’t make money; and if you buy too much, you will lose money. At this point, maintaining a stable mindset is particularly important, as it can help us keep our wealth afloat.\nHistorical Loss Cases Aside from when I first entered the market, I’ve encountered small-cap and near-new stocks. Later, my focus shifted to blue-chip large-cap stocks: Industrial Bank, China Unicom, Hisense Electronics, ZTESC, and various large index funds.\nInvesting in blue chips is like aligning with “old money”:\nWhen Evergrande’s problems arose, bank stocks plummeted alongside it, successfully identifying the exit point. This reflected a lack of understanding regarding the broader economic market; real estate accounted for too much of China\u0026rsquo;s economy, and the implications were too extensive to simply “land” – the subsequent continued decline in the stock market saw blue-chip stocks like Industrial Bank continue to rise for about two years.\nDuring the initial stages of the trade war, ZTESC suffered a severe blow, with its share price also falling dramatically. It has since gradually recovered.\nHisense Electronics is an old veteran; after Ant Financial withdrew, its stock price also plummeted significantly. However, this stock had a controlling shareholder manipulating it, and it could surge several times each year. With reasonable position sizing, you wouldn’t lose much.\nBond Investment Let’s just say it was a lucky outcome, essentially benefiting from falling interest rates. There were changes at my job in Hangzhou, leading me to abandon the idea of buying a house and liquidate my existing bank term deposits. I then focused on reinvesting previously held bonds, significantly increasing my bond investment ratio. Fortunately, interest rates have been declining for several years, allowing me to capitalize on the “bull market” in bonds.\nDuring my six months back in Hangzhou, I had plenty of time to reflect and gain clarity. Real estate isn’t a necessity, nor is staying in a particular location – my ability to handle stress was thus improved. If I were to lose my job, the mortgage would be like a mountain to climb.\nInvestment Return Expectations “The expected annualized oral commitment is comparable to a three-year fixed bank deposit,” but in reality, it’s greedy and wants more. From the initial frantic increase (adding positions), to later exhausting cash flow. Purchases of insurance, real estate, and weddings represent significant outflows of capital, and overall, there wasn\u0026rsquo;t enough capital flow left over, leading to insufficient funds later on.\nThe subsequent plan is to long-term hold brokerage ETFs and the Hang Seng Tech Index, with an asset allocation that still includes insurance as a base, medium-to-long term bonds, and stock funds.\n","date":"2025-02-14","language":"en","permalink":"https://ttf248.life/en/p/investing-takes-time/","tags":["investment","stock-trading","mindset","wealth"],"title":"“Making an investment and making money isn’t urgent, and getting anxious won’t help either.”","year":"2025"},{"categories":["AI Inspiration Hub"],"content":"As the earliest web novel readers entered middle age, the type of “revenge” stories catered to them also evolved. The protagonists often appeared as fathers, mentors, or elderly figures, meeting the different needs and demands of middle-aged readers for life and emotion. These works no longer solely focused on upgrades and reversals; instead, they emphasized emotional resonance and life reflections.\nTarget Audience: Shifting Reader Base Amidst the Passage of Time Former web novel readers have largely transitioned into middle age. They’ve experienced the trials and tribulations of life, leading to shifts in their mindset and values. The passionate, adventurous elements they once chased are no longer the sole focus for them. Instead, they seek emotional resonance with their current lives and a sense of nostalgia for past years, as well as aspirations for the future. Middle-aged爽文 (shuangwen - a popular genre) emerged specifically to meet this psychological need. It utilizes plot settings that closely align with the lives and attitudes of middle-aged readers, attracting this particular demographic.\nRole Shift: From Young Hero to Middle-Aged Guardian My Students Are All Villains: The protagonist, Lu Zhou, after becoming a master, faces a group of disciples with diverse personalities and formidable strength. They teeter between good and evil, and Lu Zhou needs to guide them towards the right path. This novel showcases the challenges and confusion faced by middle-aged individuals when educating the next generation through interactions with their disciples. Furthermore, the growth and transformation of the disciples offer hope and a glimpse into the future, mirroring expectations for one’s children or younger generations.\nEmotional Resonance: Life Reflections and Family Responsibilities The Sixty-Year-Old Birthday System: The protagonist gained a system upon turning sixty, embarking on a new life journey. This setting allows middle-aged readers to feel a sense of “it’s never too late” hope and inspiration. Even having reached old age, the protagonist can still realize their value and dreams through the system. This plot encourages readers to reflect on missed opportunities and unfulfilled dreams in their own lives, while also conveying an optimistic attitude, encouraging them not to give up pursuing their goals at any age.\nPlot Design: Aligning with the Rhythm and Humor of Middle Age Life Plot designs for middle-aged “revenge” novels often place a greater emphasis on the details of life and the nuanced expression of emotions. Unlike young adult revenge novels that prioritize rapid upgrades and adventures, they focus more on relationships between characters and emotional entanglements. For example, in The Greatest Master Craftsman, the protagonist’s friendship with his apprentice, their brotherhood with fellow disciples, etc., are all depicted in detail. This plot design allows middle-aged readers to feel a sense of warmth and familiarity, as if they were seeing their own family relationships, friendships, and love lives.\n","date":"2025-02-13","language":"en","permalink":"https://ttf248.life/en/p/years-of-settling-alternative-fantasy-and-emotional-attachment/","tags":["novel","swen-novel","middle-aged-people","father-love","shi-tu"],"title":"Echoes of bygone years, offering unconventional fantasies and emotional solace.","year":"2025"},{"categories":["Computer"],"content":"Ollama is an open-source AI tool designed to enable users to run and deploy large language models (LLMs) locally. Its goal is to provide a convenient and efficient way for developers to use models like GPT on their local machines without relying on cloud services. Ollama supports multiple models and focuses on optimizing performance, allowing even resource-constrained devices to smoothly run these models.\nThrough Ollama, users can utilize text-based AI applications and interact with locally deployed models without worrying about data privacy or high API usage fees. You can invoke different models via a command-line interface (CLI) for tasks such as natural language processing and question answering.\nOllama is suitable for experimenting with various models; after testing the Windows version, it couldn\u0026rsquo;t fully leverage the hardware’s performance, possibly due to the Windows version. When deploying 32b parameter models, with low memory and GPU load, the response speed is slow.\nHardware Overview Operating System: Windows 11 CPU: i7-10700K Memory: 40GB Graphics Card: RTX 3060 12GB Environment Setup Add the system environment variable to facilitate subsequent use:\nset OLLAMA_MODELS=E:\\ollama This variable specifies the location where Ollama models are stored. E:\\ollama is a folder path indicating that all local model files will be stored in this directory. Ollama will load and use the language models you download or deploy based on this path. You can store model files in other locations by simply changing this path. set OLLAMA_HOST=127.0.0.1:8000 This environment variable sets the host and port for the Ollama service. 127.0.0.1 is the localhost address, meaning the Ollama service will only listen for requests from the local machine. 8000 is the specified port number, indicating that the Ollama service will wait for and process requests on port 8000. You can change the port number if needed, but make sure it\u0026rsquo;s not already in use by another application. set OLLAMA_ORIGINS=* This environment variable controls which origins are allowed to access the Ollama service. * indicates that all origins (i.e., all domains and IP addresses) can access the Ollama service. This is typically used in development and debugging environments, and in production environments, it\u0026rsquo;s usually necessary to specify stricter origin control, limiting only specific domains or IPs to access your service for enhanced security. DeepSeek-R1 Model Deployment ollama installation is straightforward, so we won\u0026rsquo;t detail it here.\nPost-installation verification:\nC:\\Users\\core\u0026gt;ollama -v ollama version is 0.5.11 To deploy the model, refer to the official model page and select the appropriate parameter model: ollama run deepseek-r1:14b\nThe 14b parameter version effectively remembers conversation context; smaller parameter versions cannot retain context. The 32b parameter version is very sluggish when deployed locally and hasn\u0026rsquo;t been further tested.\nReferences https://www.ollama.com/library/deepseek-r1 https://mp.weixin.qq.com/s/SPEvYTmTBxhoEkJqm1yPmw https://blog.csdn.net/x18990027/article/details/145368094 ","date":"2025-02-07","language":"en","permalink":"https://ttf248.life/en/p/ollama-local-deployment-deepseek-r1/","tags":["ollama","deepseek","ai"],"title":"ollama local deployment of deepseek-R1","year":"2025"},{"categories":["Computer"],"content":"“I’d gotten used to using zsh on Linux, and when I was writing a blog post the other day, I suddenly realized that PowerShell 7 also supports persistent command-line prediction views, so I tried it out. It turned out to be pretty useful after all.”\n“I don\u0026rsquo;t know what I did to enable this feature, but it just appeared—that’s all.”\nIn today\u0026#39;s diverse operating system environment, system administrators and developers have been constantly seeking a tool that is cross-platform, efficient, and powerful to meet their needs in system management and automation tasks. PowerShell 7 is precisely such a noteworthy tool, offering not only robust scripting capabilities but also the ability to run across Windows, Linux, and macOS operating systems, bringing users unprecedented convenience. PowerShell 7: A Powerful Tool Across Platforms Cross-Platform Features PowerShell 7 breaks down platform limitations, allowing you to perform enterprise-level server management on Windows systems, system administration in Linux environments, or daily development tasks on macOS – all with a unified PowerShell 7 tool. This significantly increases productivity and reduces the learning curve and operational complexity associated with platform differences.\nPowerful Features It possesses powerful scripting capabilities, supporting object-oriented programming, functions, modules, and other advanced programming features. Through PowerShell 7, users can easily operate the file system, create, delete, copy, move, and perform other operations on files and folders; it can access and modify the registry to deeply adjust system configurations; it can manage processes and services to effectively monitor and control the system\u0026rsquo;s running status. Furthermore, PowerShell 7 can interact with various Windows and non-Windows technologies, such as user and permission management in Active Directory and resource allocation and management on the Azure cloud platform.\nOpen Source Ecosystem PowerShell 7 is open source, a feature that allows developers and enthusiasts worldwide to actively participate in its development and improvement. A large number of open-source modules and tools are constantly emerging, enriching the functionality and application scenarios of PowerShell 7. Users can find suitable modules within the open-source community to extend the capabilities of PowerShell 7 or contribute their own code to drive the overall development of the community.\nCompatibility and Stability PowerShell 7 maintains compatibility with older versions of PowerShell while introducing many new features and improvements. These enhancements not only improve performance but also increase stability, allowing users to complete various tasks more smoothly and reducing disruptions caused by software failures.\nEnable Command-Line Prediction View Within the many useful features of PowerShell 7, the Set-PSReadLineOption -PredictionViewStyle ListView command is a practical tool that enhances the user\u0026rsquo;s command-line input experience.\nWhile the command itself isn’t necessary to achieve auto-completion, it only provides in-line completion; once enabled, it allows for prediction view, displaying all possible completion options in a list format. Users can then select the desired option using the up and down arrow keys, thereby improving the accuracy and efficiency of command input.\nMethods to Make Commands Persistent To ensure that the Set-PSReadLineOption -PredictionViewStyle ListView command takes effect every time PowerShell starts, we can add it to PowerShell\u0026rsquo;s profile. A PowerShell profile is a special script that automatically executes its commands when PowerShell launches.\nDetermine Configuration File Path In PowerShell, we can use the $PROFILE variable to view the path of the configuration file. If the file does not exist under that path, users can manually create one.\necho $PROFILE Open Configuration File Use a text editor, such as the powerful Notepad++ or the lightweight Visual Studio Code, to open the file corresponding to the configuration file path obtained through the $PROFILE variable.\nAdd Command In the opened configuration file, add the command Set-PSReadLineOption -PredictionViewStyle ListView. Ensure that the command is written accurately to guarantee that the configuration file takes effect correctly when executed.\nSave Configuration After adding the command, save the configuration file and close the text editor. At this point, the configuration file contains the commands we want to execute every time PowerShell starts.\nVerification Settings Close the current PowerShell window and restart PowerShell. In the newly launched PowerShell, when entering commands, the command-line input prediction view style should already be displayed in list view according to our settings, indicating that our settings have been successfully applied.\nThrough these steps, we not only gained a deeper understanding of the powerful features and characteristics of PowerShell 7 but also learned how to use the command-line input prediction view style to enhance the user experience, and how to make these settings persistent. We hope this knowledge can help you operate PowerShell 7 more confidently and efficiently complete various system management and automation tasks.\nReferences https://github.com/PowerShell/PowerShell/releases https://www.v2ex.com/t/911909 ","date":"2025-02-07","language":"en","permalink":"https://ttf248.life/en/p/powershell-7-persisting-settings-commandline-prediction-view/","tags":["windows","powershell"],"title":"PowerShell 7 and Persistent Settings Command-Line Prediction View","year":"2025"},{"categories":["Repost / Share"],"content":" The U.S. stock market’s sustained bull run is largely driven by the “watering” of the dollar, rather than America’s inherent “hard power.” The modern monetary system has gradually become an important theoretical cornerstone for many economies worldwide since the 2008 financial crisis, emphasizing the subjective initiative of large governments in intervening in markets and utilizing government fiscal deficits as a primary tool to achieve full employment while stabilizing inflation. The term \u0026ldquo;large government\u0026rdquo; is most commonly associated with Keynesianism, which highlights the government’s role in “smoothing peaks and troughs” during economic cycles – for example, suppressing overheating and stimulating contraction. It places great emphasis on the multiplier effect of government spending, i.e., how much an increase in monetary stimulus can amplify consumer multipliers; a 1-unit increase in government expenditure stimulates an equivalent increase in corporate and individual income, leading to business expansion and job creation, and ultimately mitigating economic downturns. Furthermore, it adopts a relatively conservative approach to fiscal deficit limits and sustainability. The multiplier effect will drive market recovery, thereby increasing government revenue, especially during periods of overheating, where government debt potential and interest rate levels can be accumulated as stimulus funds for the next cycle. The modern monetary system is more like an extreme extension of Keynesianism, but with differences; its biggest characteristic is the limitation on government debt, which means the central bank should not have independent autonomy, primarily focused on inflation and full employment. With limited resources and productivity, inflation refers to the government continuously increasing purchasing power through unlimited fiscal deficits as technological progress improves production efficiency, until it reaches the ideal level of full employment and production bottlenecks; continuing to increase monetary supply will lead to inflation, at which point it chooses to set a limit on fiscal deficits, as long as there are idle production resources, increased debt will not trigger inflation. After the Financial Crisis Of course, reality is not an ideal world, and execution in each stage involves human participation. Keynesianism is also selectively applied, leading to more economic stimulus during downturns and less overheating suppression. Economic imbalances generate achievements, while overheating also does, making it extremely difficult to suppress them. The numerous economic problems brought about, even a new financial crisis, are not inferior to the economic shocks caused by traditional overcapacity. The 2008 global financial crisis was actually a market self-reinforcement resulting from extreme Keynesianism, leading to the proliferation of speculative structural financial investment products such as real estate and financial investment products derived from real estate as their underlying assets. Even before the crisis erupted, there was a lack of risk awareness at academic, political, and market levels, treating debt-fueled prosperity as achievements, and more people benefited from it, such as the enormous financial system: losses are yours, dividends are ours, it’s bankruptcy – we made a fortune, money cannot be spat out. Ultimately, this led to massive investment by participants, bearing the profits of previous stages.\nAt this time, the shadow of the modern monetary system entered the financial crisis, characterized by rapid monetization of fiscal deficits and central banks\u0026rsquo; unlimited quantitative easing, as well as so-called emergency central bank lending policies. As the final lender, the central bank supplied bullets endlessly, allowing governments to continue borrowing debt. The central bank coordinated with fiscal policy, supporting government fiscal deficit spending through methods such as purchasing bonds, ensuring consistency of policy objectives. This is also why the boundaries between modern monetary and fiscal policies are becoming increasingly blurred – the base money injection relies heavily on the central bank’s direct participation in bond purchases, with one hand printing money and the other buying bonds.\nThe Eurozone and the United States exhibited similar trends. In 2008, the EU government debt was approximately €6.7 trillion, and the government leverage ratio was around 66%, slightly above the generally recognized warning line of 60%. By 2014 – the five years of saving the market – the debt scale reached €9.5 trillion, and the leverage rose to 93%. The United States was even more exaggerated: in 2008, US government debt was approximately $10 trillion, reaching about $18 trillion by 2014, and recently again raising the government debt ceiling. Of course, each farce is staged with a government shutdown, but it will always break through the government debt limit. Currently exceeding $36 trillion, compared to $26 trillion growth in 2008, considering GDP growth factors, the government leverage has grown from 60% to over 120%. The Federal Reserve, as the final lender, played an important role in multiple rescue operations and is one of the main purchasers of government debt.\nFlaws and Limitations of the Modern Monetary System This government-led stimulus scheme, though not a planned economy, faces consistent problems. How can you guarantee the market’s omniscience and all participants’ selfless dedication at every stage? Let\u0026rsquo;s take a simple example: if a government department increases its budget for a particular direction by 1 million, is it going to go to the mayor’s nephew or a more cost-effective market auction? Of course, in reality, interests will form in increasingly complex ways, leading to the result that even though the government has expanded debt and spending, it flows completely out of control. The recent American establishment of a Government Accountability Office is an extension of this type of problem. These issues manifest differently across varying corrupt economies; we’re focusing on discussing the more prevalent problems.\n1. Inflation Issues With the development of the modern information network, governments have a much greater grasp on market information than in the past, but this is not omniscience; markets inherently contain variables and are always subject to change based on expectations, leading to nested loops (or “Russian dolls”). I anticipate your predictions. Taking actual performance as an example, while between 2008 and 2020, the practice of Modern Monetary Theory (MMT) performed well, achieving short-term economic recovery and inflation stabilization – even the Eurozone experienced phase-wise deflation, and U.S. inflation remained roughly within the expected 1-3% range, leading people to believe in extreme tools like Keynesianism again.\nHowever, if we look back, it was primarily due to continued high growth in manufacturing in developing countries after 2008, such as our country gradually securing its position as a global production base and Southeast Asian and Indian economies following suit, all maintaining relatively high industrial value added, which offset the biggest limitation of MMT – resource supply constraints. Even under de-industrialization and excessive financialization in Europe and America, they simultaneously experienced increased government debt and monetary supply surges, while maintaining relatively stable inflation.\nHowever, after 2020, with the use of larger-scale stimulus policies, both the Eurozone and the United States saw more significant inflation, peaking at around 10% – even today, despite rising interest rates for nearly three years, the U.S. labor market continues to exhibit abnormal overheating, and financial markets experience divergence from economic growth supported by monetary support, with inflation running towards 3% as the base effect disappears. This overheating performance during rate hikes is closely related to fiscal deficits. Raising interest rates is a contractionary monetary policy, while fiscal policy remains expansionary, compounded by the ultra-massive money injection in 2020, which has made U.S. inflation remarkably persistent. The biggest limitation of MMT is high inflation.\n2. Government Debt Issues In principle, governments can indefinitely finance debt repayment through borrowing, but this is only possible if the central bank becomes a complete puppet, meaning full alignment of monetary and fiscal policy – a key element of modern monetary systems known as policy coherence. The Federal Reserve has no intention of granting the government completely unfettered authority, especially considering the accumulated government debt balance over many years, particularly interest expenses, which are increasingly becoming a significant burden on finances.\nFiscal Year 2023: In fiscal year 2023, the United States generated $4.439 trillion in revenue. The proportion of interest payments on its debt to this revenue was approximately 15%. In 2024, this high-interest environment continued, according to data released by the U.S. Treasury Department.\nFiscal Year 2024: The U.S. federal government’s budget deficit reached $1.833 trillion, with net interest payments on debt totaling $882 billion – approximately 18% of U.S. revenue. This even exceeded Social Security expenditures.\nThis highlights the sustainability issues within fiscal policy. If persistently maintained at low interest rates and low inflation, high levels of debt (such as in Japan) could theoretically lead to a slow, incremental increase under a quasi-modern monetary system. According to the 72 rule, if interest costs are sufficiently low, debt repayment can double over 72 years – assuming inflation breaks this delicate balance, the accumulation of interest payments on debt will lead to runaway debt levels, with principal becoming a secondary factor. If the central bank subsequently diverges from the government’s objectives, these issues will become even more acute. Furthermore, Donald Trump\u0026rsquo;s political agenda starkly contrasted with the current Federal Reserve\u0026rsquo;s hawkish stance, contributing significantly to tensions between the U.S. government and the Fed during his term. The primary focus of observers is whether the current chairman can successfully complete his term.\n3. Financial Bubbles and Monetary Credit Issues Ideally, government-expanded spending enters the household and corporate sectors, leading everyone to expand their spending, thereby boosting the increase in effective demand. However, given that people are all experienced from numerous financial bubbles since 2000, it’s clear that investment and consumption choices will exhibit a strong tendency towards large investment appreciation, especially when one or more products with extremely high expected appreciation appear, people will flock to the financial market seeking higher appreciation, even willing to compress living standards and leverage up. This is similar to what happened in Japan, the United States, and China during periods of high real estate growth. Combined with policy stimulus and the pursuit of maximum self-interest by practitioners, issues such as subprime loans are rampant. Many so-called bailout policies are actually encouraging borrowing.\nTherefore, historical performance shows an astonishing consistency: when monetary and fiscal policies are deployed on a large scale, it often leads to asset bubbles and wealth redistribution frenzies. The asset bubble comes first, followed by wealth redistribution. This results in another problem – the extreme Keynesianism or Modern Monetary Theory (MMT) frequently encountered – leading to economic Ponzi schemes (Minsky Moment). As long as there is hot money, asset prices continue to rise; as long as they keep rising, latercomers will flock to hold cash; while the CPI measuring changes in basic living expenses doesn\u0026rsquo;t change significantly, money circulates within specific areas, and latercomers have no way out. After the frenzy comes the collapse, which is the judgment of the Minsky Moment – repeatedly proven effective.\nFurthermore, currency itself has a supply and demand relationship. When market supply exceeds demand, traditional investment products cannot accommodate it, or when it harvests too much capital that cannot attract investment, such as repeated real estate bubbles (Japanese people haven\u0026rsquo;t dared to touch real estate investments for decades), tax policies like increasing property holding taxes to reduce speculative demand will increase the cost of financial speculation. In a situation of excessive monetary supply, the market urgently needs investment-and-tax-exempt investment products, and various virtual investment products emerge accordingly, even including the US President and First Lady joining in. One saying is to dig into the dollar, but it’s actually the inevitable result of global currency issuance and financial circulation under the damage of fiat currency credit. MMT relies most on countries with monopoly rights over credit money, which are also challenged. What kind of soil breeds what kind of financial game?\nIn summary, Modern Monetary Theory (MMT) and Keynesianism are more like a progression and replacement relationship, emphasizing greater government intervention in the market and adopting a more aggressive attitude towards fiscal deficits and central bank independence. Excessive use of Keynesianism leads to stagflation and financial crises; MMT quietly took over after 2008 to clear out this artificially overheated economy. Under global economic globalization, productivity continues to improve, it quickly restored growth in the short term while maintaining inflation levels in the country using it, but also accumulated large government debt and asset bubbles. When inflation rebounded, with inconsistent goals between the central bank and the government, high interest rates and high leverage coexist, further exacerbating the fiscal burden brought about by government bond issuance. Fiscal sustainability is significantly weakened. Furthermore, excessive government participation has led to monetary base expansion, creating asset bubbles, while unlimited printing of money weakens the creditworthiness of the currency itself. It may appear that the dollar is strong, but it’s just a reflection of others. The massive investment demand creates fertile ground for various new types of financial investment and speculative tools, even escaping tax restrictions on traditional financial investment products – this is a microcosm of the global economy. MMT may not be the future, but it\u0026rsquo;s more like the past used after 2008, superimposed on the decline of economic globalization, the larger the financial bubble blown by governments, the higher the accumulated government debt, and the more frantic the financial speculative tools, the higher the efficiency of distorting wealth allocation. The greater the risk of a hard landing – including economic and social risks. Whether it’s Keynesianism or MMT, no matter how much monetary supply is provided, it cannot truly solve the problem of wealth structure; instead, it exacerbates risks in asset bubbles and Ponzi schemes. People are repeatedly falling into the same pit in different postures, but never learn anything from it.\n","date":"2025-02-06","language":"en","permalink":"https://ttf248.life/en/p/modern-monetary-theory-future-global-economy/","tags":["financial-crisis","modern-monetary-theory","fiscal-policy","monetary-policy","inflation","government-debt","financial-bubble","monetary-credit"],"title":"Is Modern Monetary Theory the future of global economies?","year":"2025"},{"categories":["Financial Knowledge Base"],"content":"In the foreign exchange market, particularly at banks or currency exchange points, we often see terms like “buy rate” and “sell rate.” Many people may not be clear about these concepts, or even confuse them. Today, let’s help everyone understand the meaning of these rates and their functions through a simple example.\n1. What are “Buy Rate” and “Sell Rate”? Buy Rate: The bank or currency exchange institution is willing to purchase foreign currencies at this rate, meaning when you sell your foreign currency (such as US dollars) to the bank, the bank will pay you RMB according to the buy rate. Sell Rate: The bank or currency exchange institution is willing to sell foreign currencies at this rate, meaning when you buy foreign currency with RMB, the bank will sell you the foreign currency at the sell rate. Simply put:\nBuy Rate: The price at which the bank buys foreign currency from you. Sell Rate: The price at which the bank sells foreign currency to you. It is important to note that the buy and sell rates of banks are usually different, and the sell rate is generally higher than the buy rate. This difference is the source of profit for the bank.\n2. Specific Case Analysis To help everyone better understand the practical application of these exchange rates, let’s look at a specific example: Assume you go to a bank to exchange dollars, and the bank provides the following exchange rate:\nBuy Rate: 1 US Dollar = 7.0 RMB Sell Rate: 1 US Dollar = 7.2 RMB Scenario 1: You Sell US Dollars to a Bank Let’s assume you have $1,000 USD and want to sell these dollars to a bank. The bank will calculate the transaction using the buying rate:\n\\[ 1000 \\, \\text{USD} \\times 7.0 \\, \\text{CNY/USD} = 7000 \\, \\text{CNY} \\]This means the bank will give you 7,000 CNY. The exchange rate is the buying rate because you are selling USD to the bank.\nScenario Two: You Buy US Dollars with Renminbi Assume you have 7,000 RMB and want to exchange it for US dollars. The bank will calculate the amount in USD based on the selling rate:\n\\[ 7000 \\, \\text{RMB} \\div 7.2 \\, \\text{RMB/USD} = 972.22 \\, \\text{USD} \\]In this case, you can exchange 7,000 RMB for approximately 972.22 USD. The exchange rate here is the selling rate, because you are purchasing US dollars from the bank.\n3. Why Buying and Selling Currency Differ? You may have noticed that a bank’s buying rate (7.0 RMB/USD) is lower than its selling rate (7.2 RMB/USD). This is because banks typically profit from this exchange rate spread when engaging in foreign exchange transactions. In other words, banks earn profits by charging a higher selling rate and paying a lower buying rate.\nFor example, in the above case, the bank’s spread is:\n\\[ \\text{Selling Rate} (7.2) - \\text{Buying Rate} (7.0) = 0.2 \\, RMB \\]This difference in price is the source of the bank\u0026rsquo;s profit.\n4. Summary Buying Rate: The bank buys foreign currency from you at this rate (the same rate you sold the foreign currency for). Selling Rate: The bank sells foreign currency to you at this rate (the same rate you bought the foreign currency for). Exchange Rate Difference: The difference between the buying and selling rates is the bank’s profit margin. Understanding these two rate concepts allows us to clearly know how much foreign currency we will receive, or how much Renminbi we need to spend to buy foreign currency when conducting foreign exchange. We hope this simple example helps everyone better understand the basic principles of foreign exchange rates!\n","date":"2025-02-06","language":"en","permalink":"https://ttf248.life/en/p/understanding-buy-and-sell-exchange-rates/","tags":["exchange-rate","forex"],"title":"Understanding “buy rate” and “sell rate” in exchange rates","year":"2025"},{"categories":["Computer"],"content":"When debugging programs under Windows using Visual Studio, if the PDB file does not match the executable file, Visual Studio will display \u0026ldquo;Unable to load symbol file.\u0026rdquo; The program crashes and generates a crash dump. If it\u0026rsquo;s an mismatched PDB file, Visual Studio cannot smoothly enter the crash site.\nWhat is a PDB File? A PDB file is a debugging information file created by Microsoft, used for debugging programs. It contains information such as the symbol table, source code filenames, line numbers, and other debugging data. A PDB file can be generated during program compilation to aid in debugging.\nWinDbg Debugging WinDbg is a debugging tool from Microsoft that can be used to debug Windows programs. WinDbg can load mismatched PDB files, but this requires manual loading. The .reload /f /i command forces the loading of mismatched PDB files.\nHowever, WinDbg is less convenient to use than Visual Studio, so we want Visual Studio to also be able to load mismatched PDB files.\nVisual Studio Cannot Load Matching PDB Files Source code is now generally managed through Git, allowing you to find the corresponding version of the code and recompile it to generate matching PDB files. Why can’t they be loaded? The main reason is that metadata doesn\u0026rsquo;t match.\nThere’s a small tool that can modify metadata, generating a new PDB file based on the EXE file information so that Visual Studio can load it.\nChkMatch download address: https://www.debuginfo.com/tools/chkmatch.html Site cache address: chkmatch.zip\nThe ChkMatch utility can be used to check whether an executable and debug information file match. It can also be used to enforce matching between an executable and a debug information file if they are compatible. For more information about debug information matching and related issues, see this article. Supported debug information formats: DBG, PDB 2.0, PDB 7.0. chkmatch [-c ExeFile DebugInfoFile ] | [-m ExeFile DebugInfoFile] -c Check matching between the executable and the debug information file. -m Make the executable and the debug information file match. ExeFile The name of the executable file. DebugInfoFile The name of the debug information file. Using chkmatch First, perform the check operation to analyze the cause of mismatches and prompt signature mismatch.\nC:\\Users\\tianlong.xiang\\Downloads\\chkmatch\u0026gt;ChkMatch.exe -c \u0026#34;D:\\Program Files\\Rolan\\trade\\UAT_YinStrade\\YinTrade.Main.exe\u0026#34; E:\\YinTech\\ykcz_securities_trading_client\\Sec_Trade\\YinTrade.Main\\bin\\Release\\YinTrade.Main.pdb ChkMatch - version 1.0 Copyright (C) 2004 Oleg Starodumov http://www.debuginfo.com/ Executable: D:\\Program Files\\Rolan\\trade\\UAT_YinStrade\\YinTrade.Main.exe Debug info file: E:\\YinTech\\ykcz_securities_trading_client\\Sec_Trade\\YinTrade.Main\\bin\\Release\\YinTrade.Main.pdb Executable: TimeDateStamp: c26d9be3 Debug info: 2 ( CodeView ) TimeStamp: f86b0a4f Characteristics: 0 MajorVer: 0 MinorVer: 0 Size: 122 RVA: 001cdc44 FileOffset: 001cbe44 CodeView format: RSDS Signature: {428c9b95-39a3-4a8d-a8e5-7be453684757} Age: 1 PdbFile: D:\\stock_UAT\\ykcz_securities_trading_client\\Sec_Trade\\YinTrade.Main\\obj\\Release\\YinTrade.Main.pdb Debug info: 16 ( Unknown ) TimeStamp: 00000000 Characteristics: 0 MajorVer: 0 MinorVer: 0 Size: 0 RVA: 00000000 FileOffset: 00000000 Debug information file: Format: PDB 7.00 Signature: {06fae08e-c0a2-4f3d-9c7c-dfc684445dd1} Age: 1 Result: Unmatched (reason: Signature mismatch) Then perform the modify operation to match the pdb file with the exe file.\nC:\\Users\\tianlong.xiang\\Downloads\\chkmatch\u0026gt;ChkMatch.exe -m \u0026#34;D:\\Program Files\\Rolan\\trade\\UAT_YinStrade\\YinTrade.Main.exe\u0026#34; E:\\YinTech\\ykcz_securities_trading_client\\Sec_Trade\\YinTrade.Main\\bin\\Release\\YinTrade.Main.pdb ChkMatch - version 1.0 Copyright (C) 2004 Oleg Starodumov http://www.debuginfo.com/ Executable: D:\\Program Files\\Rolan\\trade\\UAT_YinStrade\\YinTrade.Main.exe Debug info file: E:\\YinTech\\ykcz_securities_trading_client\\Sec_Trade\\YinTrade.Main\\bin\\Release\\YinTrade.Main.pdb Executable: TimeDateStamp: c26d9be3 Debug info: 2 ( CodeView ) TimeStamp: f86b0a4f Characteristics: 0 MajorVer: 0 MinorVer: 0 Size: 122 RVA: 001cdc44 FileOffset: 001cbe44 CodeView format: RSDS Signature: {428c9b95-39a3-4a8d-a8e5-7be453684757} Age: 1 PdbFile: D:\\stock_UAT\\ykcz_securities_trading_client\\Sec_Trade\\YinTrade.Main\\obj\\Release\\YinTrade.Main.pdb Debug info: 16 ( Unknown ) TimeStamp: 00000000 Characteristics: 0 MajorVer: 0 MinorVer: 0 Size: 0 RVA: 00000000 FileOffset: 00000000 Debug information file: ## References - [forcing-to-load-unmatched-symbols-in-visual-studio-2015-debugger](https://stackoverflow.com/questions/38147487/forcing-to-load-unmatched-symbols-in-visual-studio-2015-debugger) ","date":"2025-01-23","language":"en","permalink":"https://ttf248.life/en/p/visual-studio-load-unmatched-pdb/","tags":["visual studio","pdb","debugging","troubleshooting"],"title":"Visual Studio loading a mismatched PDB file","year":"2025"},{"categories":["Computer"],"content":"It seems like another year has passed, and the biggest change at work is a significant increase in AI participation. Previously, switching between different development languages required developers to be familiar with various language-specific API interfaces. Now, these basic code snippets can all be generated by AI, which is a huge blessing for developers.\nChatGPT As early as 2023, I’ve written two simple introductory articles about it. Now it\u0026rsquo;s been 25 years – how to put this… I haven’t felt a significant improvement. It still needs to develop its own cognition, be able to reasonably break down tasks, and, of course, most importantly, identify whether AI-generated code contains bugs.\nGithub Copilot It was a long time ago, but I saw some information saying that Singapore deployed the server and it’s available for use in China. No longer need to maintain a VPN connection for extended periods. Of course, when logging in, you still need to connect to a VPN, but this VPN only needs to be used during login, and then you can turn it off.\nIn daily use, Github Copilot is also heavily relied upon. This plugin can be directly used in VS Code and Visual Studio without switching between the two applications. Compared to ChatGPT, Github Copilot provides better support for projects, is more user-friendly in interaction, and allows you to feed partial local files to it – “training” the AI – so that the generated code is more aligned with your project.\nCursor AI Recently I’ve seen a new AI programming IDE, Cursor AI. This IDE is based on Github Copilot, but this IDE is more intelligent and can help you create files directly. I tried it briefly and found it to be pretty good, but its understanding of existing projects isn\u0026rsquo;t quite there yet. When working with large local project files, or for major refactoring, optimization, and adjustments, developers still need to break down tasks. Here’s an example: Switching to Cursor’s engineering mode, inputting the following content: “Create a personal resume webpage, supporting multiple different styles switching, and remember to fill in some personal information for data display.” After several back-and-forths (pulling), you can get the following webpage. Of course, this webpage is relatively simple, but it’s still pretty good for beginners.\nCurrently, registered users can enjoy a free trial of 150 advanced APIs, while paying users are limited to 5000 advanced APIs.\nCursor AI Resume\n","date":"2025-01-23","language":"en","permalink":"https://ttf248.life/en/p/cursor-ai-programming-ide-trial/","tags":["ai","copilot","cursor","programming","ide"],"title":"Cursor AI Programming IDE Trial","year":"2025"},{"categories":["Computer"],"content":"In actual C++ development, bitwise operations are a common technique, especially when dealing with system states, flags, or control bits. Bitwise operations can provide very efficient solutions. This article will illustrate how to use bitwise operations to retrieve and set specific flags through an example.\nBitwise Operations Fundamentals In computers, data is stored in binary bits (0 and 1). Bitwise operations are operations performed on these binary bits. C++ provides several commonly used bitwise operators:\nBitwise AND (\u0026amp;): Used to check if a particular bit is set to 1. Bitwise OR (|): Used to set a particular bit to 1. Bitwise XOR (^): Used to flip a particular bit. Bitwise NOT (~): Inverts all the bits. Left Shift (\u0026laquo;): Shifts all bits to the left by a specified number of positions. Right Shift (\u0026raquo;): Shifts all bits to the right by a specified number of positions. In this example, we need to perform a series of bitwise operations on an unsigned short variable wInfo to represent different states using various flags.\nflowchart LR A[Original Value: 00010000] --\u0026gt; B[Left Shift: 00010000 \u0026lt;\u0026lt; 1] B --\u0026gt; C[Result: 00100000] C --\u0026gt; D[Right Shift: 00100000 \u0026gt;\u0026gt; 1] D --\u0026gt; E[Result: 00010000] subgraph Left Shift Operation direction LR A --\u0026gt; B --\u0026gt; C end subgraph Right Shift Operation direction LR C --\u0026gt; D --\u0026gt; E end Requirement Analysis Based on the description, we have a 16-bit flag to represent different states. These states are represented by various binary bits, with each binary bit corresponding to a specific meaning. For example:\nbit0: Failure status bit1: Compression status bit2: Incremental status bit3: Presence of subsequent packets bit5: Normal request or cancellation Using Bitwise Operations We will use bitwise operations to set and retrieve these flags. Specifically:\nBitwise AND: Retrieve the value of a particular bit (0 or 1). Bitwise OR: Set a particular bit to 1. Bitwise XOR: Set a particular bit to 0. We first define an unsigned short type variable wInfo to store these flags. Then, we use bitwise operations to check and set the corresponding flags.\nC++ Example Code #include \u0026lt;iostream\u0026gt; #include \u0026lt;bitset\u0026gt; // Define flag constants const unsigned short BIT_0_FAIL = 1 \u0026lt;\u0026lt; 0; // bit0 failed? const unsigned short BIT_1_COMPRESSED = 1 \u0026lt;\u0026lt; 1; // bit1 compressed? const unsigned short BIT_2_INCREMENT = 1 \u0026lt;\u0026lt; 2; // bit2 incremented? const unsigned short BIT_3_HAS_MORE = 1 \u0026lt;\u0026lt; 3; // bit3 has more packets? const unsigned short BIT_5_CANCEL = 1 \u0026lt;\u0026lt; 5; // bit5 normal request(0) or cancel(1) // Check if a bit is set bool isBitSet(unsigned short wInfo, unsigned short bitMask) { return (wInfo \u0026amp; bitMask) != 0; } // Set a bit to 1 void setBit(unsigned short\u0026amp; wInfo, unsigned short bitMask) { wInfo |= bitMask; } // Clear a bit (set it to 0) void clearBit(unsigned short\u0026amp; wInfo, unsigned short bitMask) { wInfo \u0026amp;= ~bitMask; } int main() { // Assume wInfo\u0026#39;s initial value is 0 unsigned short wInfo = 0; // Set bit0 (failure flag) setBit(wInfo, BIT_0_FAIL); // Set bit1 (compressed flag) setBit(wInfo, BIT_1_COMPRESSED); // Print wInfo\u0026#39;s binary value std::cout \u0026lt;\u0026lt; \u0026#34;wInfo (in binary): \u0026#34; \u0026lt;\u0026lt; std::bitset\u0026lt;16\u0026gt;(wInfo) \u0026lt;\u0026lt; std::endl; // Check each flag std::cout \u0026lt;\u0026lt; \u0026#34;bit0 (failed?): \u0026#34; \u0026lt;\u0026lt; (isBitSet(wInfo, BIT_0_FAIL) ? \u0026#34;yes\u0026#34; : \u0026#34;no\u0026#34;) \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;bit1 (compressed?): \u0026#34; \u0026lt;\u0026lt; (isBitSet(wInfo, BIT_1_COMPRESSED) ? \u0026#34;yes\u0026#34; : \u0026#34;no\u0026#34;) \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;bit2 (incremented?): \u0026#34; \u0026lt;\u0026lt; (isBitSet(wInfo, BIT_2_INCREMENT) ? \u0026#34;yes\u0026#34; : \u0026#34;no\u0026#34;) \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;bit3 (has more packets?): \u0026#34; \u0026lt;\u0026lt; (isBitSet(wInfo, BIT_3_HAS_MORE) ? \u0026#34;yes\u0026#34; : \u0026#34;no\u0026#34;) \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;bit5 (canceled?): \u0026#34; \u0026lt;\u0026lt; (isBitSet(wInfo, BIT_5_CANCEL) ? \u0026#34;yes\u0026#34; : \u0026#34;no\u0026#34;) \u0026lt;\u0026lt; std::endl; // Clear bit1 (compressed flag) clearBit(wInfo, BIT_1_COMPRESSED); // Print the updated wInfo std::cout \u0026lt;\u0026lt; \u0026#34;Updated wInfo (in binary): \u0026#34; \u0026lt;\u0026lt; std::bitset\u0026lt;16\u0026gt;(wInfo) \u0026lt;\u0026lt; std::endl; return 0; } Run the code, recommended for old friends: https://wandbox.org/\nwInfo (in binary): 0000000000000001 bit0 (failed?): yes bit1 (compressed?): no bit2 (incremented?): no bit3 (has more packets?): no bit5 (canceled?): no Updated wInfo (in binary): 0000000000000000 Code Explanation Flag Definition: Use shift operations (1 \u0026lt;\u0026lt; n) to define each flag bit. For example, 1 \u0026lt;\u0026lt; 0 corresponds to bit0, 1 \u0026lt;\u0026lt; 1 corresponds to bit1, and so on. This way, we allocate a unique binary position for each flag. Check a Bit: The isBitSet function uses the bitwise AND operation (wInfo \u0026amp; bitMask) to check if a specific flag is set to 1. If the bit is 1, the function returns true, otherwise it returns false. Set a Bit: The setBit function uses the bitwise OR operation (wInfo |= bitMask) to set a specific flag bit to 1. Clear a Bit: The clearBit function uses the bitwise AND operation (wInfo \u0026amp;= ~bitMask) to clear a specific flag bit to 0. Summary Through bitwise operations, we can efficiently handle multiple state flags. This technique is particularly useful in practical development. For example, in embedded development, network protocols, and system status management scenarios, bit flags are often used to represent multiple binary states, saving space and improving efficiency.\nWe hope this blog post helps you understand how to use bitwise operations in C++ to perform bitwise selection and setting, and mastering these skills is very helpful for writing efficient and maintainable code!\n","date":"2025-01-17","language":"en","permalink":"https://ttf248.life/en/p/cpp-bitwise-operations-flags/","tags":["c++","bit-operations","flag-status"],"title":"C++ Bitwise Operations Fundamentals: Bitwise Extraction and Flag Setting","year":"2025"},{"categories":["Computer"],"content":"Desktop hardware three-in-one, in the previous text we mentioned PCIe adapter for solid state drives, where did the old SSDs go? Of course there was no waste, were any of them broken, disassembled and installed on the newly purchased ‘MechMaker Mini-3765H’ (bought a year ago).\nThe new machine has powerful hardware specifications: 2.5G dual network interface, PCIe4.0, WiFi6.\nRecently moved house and my room doesn\u0026rsquo;t have a dedicated router for networking, all the machines are connected via wireless network; the ASUS motherboard desktop wireless card performance wasn’t great, or perhaps it was the router’s wireless access, which resulted in slow upload speeds between local networks, leading to poor network speeds between the machines. I purchased a 2.5G NIC and installed it on the desktop.\nThus, all the slots on the motherboard are now full: graphics card, wireless card, 2.5G NIC, PCIe adapter for solid state drives.\nNetwork Instructions Both machines connect to the internet using their original wireless network cards, but are directly connected via Ethernet cables between the two, with both ends equipped with 2.5G network cards. The specifics of how to physically connect the cables aren\u0026rsquo;t detailed here – numerous tutorials are available online; just remember to disable your firewall. You can select either machine as the gateway.\ngraph TD; A[Machine 1\u0026lt;br\u0026gt;IP: 192.168.4.1\u0026lt;br\u0026gt;Subnet Mask: 255.255.255.0\u0026lt;br\u0026gt;Default Gateway: - \u0026lt;br\u0026gt;Obtain DNS Automatically] --\u0026gt;|Ethernet Connection (2.5G)| B[Machine 2\u0026lt;br\u0026gt;IP: 192.168.4.2\u0026lt;br\u0026gt;Subnet Mask: 255.255.255.0\u0026lt;br\u0026gt;Default Gateway: 192.168.4.1\u0026lt;br\u0026gt;Obtain DNS Automatically]; A --\u0026gt;|Wireless Card| Internet; B --\u0026gt;|Wireless Card| Internet; Two Subnet Speed Testing Router LAN C:\\Users\\core\\Desktop\\iperf-3.1.3-win32\u0026gt;iperf3.exe -c 192.168.3.237 Connecting to host 192.168.3.237, port 5201 [ 4] local 192.168.3.122 port 1656 connected to 192.168.3.237 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 9.17 MBytes 76.7 Mbits/sec [ 4] 1.00-2.00 sec 9.91 MBytes 83.2 Mbits/sec [ 4] 2.00-3.00 sec 8.74 MBytes 73.3 Mbits/sec [ 4] 3.00-4.00 sec 10.2 MBytes 85.2 Mbits/sec [ 4] 4.00-5.00 sec 9.23 MBytes 77.1 Mbits/sec [ 4] 5.00-6.00 sec 8.80 MBytes 73.9 Mbits/sec [ 4] 6.00-7.01 sec 8.00 MBytes 66.8 Mbits/sec [ 4] 7.01-8.00 sec 7.69 MBytes 64.9 Mbits/sec [ 4] 8.00-9.01 sec 9.72 MBytes 81.1 Mbits/sec [ 4] 9.01-10.01 sec 7.63 MBytes 63.6 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.01 sec 89.0 MBytes 74.6 Mbits/sec sender [ 4] 0.00-10.01 sec 89.0 MBytes 74.6 Mbits/sec receiver iperf Done. Direct LAN Connection C:\\Users\\core\\Desktop\\iperf-3.1.3-win32\u0026gt;iperf3.exe -c 192.168.4.1 Connecting to host 192.168.4.1, port 5201 [ 4] local 192.168.4.2 port 1524 connected to 192.168.4.1 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.01 sec 178 MBytes 1.48 Gbits/sec [ 4] 1.01-2.00 sec 204 MBytes 1.72 Gbits/sec [ 4] 2.00-3.00 sec 214 MBytes 1.80 Gbits/sec [ 4] 3.00-4.00 sec 229 MBytes 1.92 Gbits/sec [ 4] 4.00-5.00 sec 202 MBytes 1.69 Gbits/sec [ 4] 5.00-6.00 sec 213 MBytes 1.79 Gbits/sec [ 4] 6.00-7.00 sec 230 MBytes 1.93 Gbits/sec [ 4] 7.00-8.00 sec 192 MBytes 1.61 Gbits/sec [ 4] 8.00-9.00 sec 220 MBytes 1.84 Gbits/sec [ 4] 9.00-10.00 sec 230 MBytes 1.93 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 2.06 GBytes 1.77 Gbits/sec sender [ 4] 0.00-10.00 sec 2.06 GBytes 1.77 Gbits/sec receiver iperf Done. References Adding Mermaid Support to Hugo ","date":"2025-01-10","language":"en","permalink":"https://ttf248.life/en/p/desktop-upgrade-to-2-5g-network-card-accelerates-local-area-network-interconnection/","tags":["windows","desktop-pcs","network","2-5g-network-card","local-area-network","hugo","mermaid"],"title":"Upgrading from a desktop to a 2.5G network card, accelerating local area network connectivity.","year":"2025"},{"categories":["Computer"],"content":"Continuing from the previous text, an issue suddenly arose where the wireless network card was unable to be recognized. Before rebuilding the partitions, I had also researched other solutions online, such as: removing the motherboard battery and disconnecting power for fifteen minutes; upgrading to the latest version of the BOIS driver, but all attempts were unsuccessful.\nThinking there were still tasks to complete, I switched to a limited network by pulling a web across from the living room into the room. However, this is when the problem returned – wired networking was also unable to be recognized. I then resorted to the ultimate solution of reinstalling the system, which resulted in partition loss during the boot process. If the issue had consistently occurred, I wouldn’t have spent so long troubleshooting it; the ASUS disk conflict is intermittent and triggered by unstable system restarts.\nLast week, I purchased a new 2TB solid-state drive from长江存储 (Jiangang Chengsu – Yangtze Storage) with an M.2 interface, and the machine never rebooted until yesterday when I shut it down once.\nReinstalling the System It’s been almost two years since I last reinstalled the system, and my C drive is completely full. Windows keeps throwing old issues, and various software likes to store things on C: Drive. So, I decided to reinstall the system. After reinstalling the system, the network card issue was resolved, and I restored my daily development environment the next day. While preparing to create a system backup, a new problem arose: after restarting the system, the boot partition disappeared.\nFollowing the steps in the previous article, I rebuilt the boot partition; however, it wasn’t stable, and the partition would frequently fail to load upon restart. I started to wonder if the chassis was being tampered with when I realized that the hard drive cable was loose, but after several checks, there were no issues.\nMemory Retrieval Many years ago, this machine had once been equipped with a solid-state drive; it was like buying a new PCIE converter (plugged into the graphics card slot) instead of directly installing the hard drive onto the motherboard. This time, it’s installed directly on the motherboard, which may be due to an issue with the motherboard. Motherboard Manual The motherboard manual has issues, with the labeled SATA port positions differing from the actual positions. Due to a large number of disks, all ports are populated with hard drives, with older SSDs utilizing SATA ports. According to the manual, there is a conflict between the ports. However, after testing, this conflict was found to be unstable and would trigger, causing the corresponding disk to fail to load – specifically, as it’s the system disk, the bootloader is also located on that disk, resulting in boot loader failure during system startup.\nSolutions Reinstall the solid state drive onto a PCIe adapter, at this point, the SATA ports on the motherboard will no longer conflict and the system starts normally.\n","date":"2025-01-10","language":"en","permalink":"https://ttf248.life/en/p/asus-z490-motherboard-disk-recognition-issues/","tags":["windows","asus","motherboard","disk"],"title":"ASUS Z490 motherboard has too many disks, resulting in intermittent disk unrecognition.","year":"2025"},{"categories":["Computer"],"content":"I’m not sure from what version it started, but in Windows 11, the Disk Cleanup tool has been significantly improved and become much smarter.\nThe key is that it\u0026rsquo;s an official tool, so it won’t accidentally delete files, won’t have ads, won’t have pop-ups, won’t have background processes, or any unnecessary elements.\nYou can access the Disk Cleanup tool in Windows 11 by going to Settings \u0026gt; System \u0026gt; Storage \u0026gt; Temporary Files.\nFor ordinary users, simply selecting “Clean up” is sufficient; the system will provide suggestions based on your usage.\nAs a developer, I have many temporary files on my disk, so I choose “Temporary Files,” which contains items like Visual Studio temporary files and Windows Update temporary files, etc.\n","date":"2025-01-06","language":"en","permalink":"https://ttf248.life/en/p/windows-disk-cleanup-storage/","tags":["windows"],"title":"Windows Built-in Disk Cleanup Tool: Storage","year":"2025"},{"categories":["Computer"],"content":"Deploying Docker on domestic servers, after deployment, if the company doesn’t provide a registry center, the first thing developers need to do is configure a domestic registry mirror address. It\u0026rsquo;s lucky that today there was a server configured with a registry mirror address, but when pulling images, it kept failing to pull.\nError response from daemon: “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)\nTroubleshooting and Repair Attempts Initially, we attempted to switch to alternative mirror acceleration addresses, hoping to resolve the issue. However, as expected, the problem persisted.\nSubsequently, we began modifying the local DNS configuration in an attempt to find a breakthrough at the network resolution level. Unfortunately, after debugging, the fault remained.\nAt this point, the stability of the local network was heavily questioned, so we decisively switched to a mobile hotspot, attempting to bypass potential local network faults. However, the result was discouraging – there were no signs of improvement.\nProblem Propagation We currently have a few servers deployed domestically with Docker environments, and all of them failed to successfully pull the image. We initially hoped to find an alternative solution, but we found that they all consistently failed with identical error messages, indicating that the issue isn\u0026rsquo;t isolated to a single device.\nFurther investigation revealed that the image proxy seemingly malfunctioned instantaneously. In this critical moment, we quickly switched to a machine outside of the country, and thankfully, image pulls were restored at this location. This suggests that the problem is likely related to the domestic network links or associated configurations.\nStrategy Adjustment: Circumventing the Issue Given that direct image pulling methods within China have been heavily restricted, while foreign mirrors remain accessible, to expedite project progress, we’ve decided to employ a circumvention tactic. Initially, we switched to foreign servers to successfully pull the required images, subsequently pushing them to domestic mirror repositories to establish a “data bridge.”\nAt the same time, we synchronized modifications to the Dockerfile files, replacing image addresses with those adapted for the Chinese environment and then rebuilt the images, ultimately achieving successful deployment.\n","date":"2025-01-04","language":"en","permalink":"https://ttf248.life/en/p/docker-domestic-image-proxy-failure/","tags":["docker","mirror-proxy","domestic"],"title":"Docker Domestic Mirror Proxy Failed","year":"2025"},{"categories":["AI Inspiration Hub"],"content":"The esports industry has experienced rapid development over the past decade and a half, becoming an increasingly significant cultural phenomenon worldwide. Particularly MOBA games like League of Legends (LoL), which is often abbreviated as LOL, not only provide players with the joy of competition but also inject powerful momentum into capital, driving the flourishing development of various esports platforms and events. However, all of this has entered a phase of gradual decline with the influx of capital and the rise of the entertainment industry. The rise and fall of PandyTV, the competition between DouYu and Huya, marks the end of the “wild capitalism era,” and the favorable conditions – time, place, people, and heaven – for esports seem to be starting to change.\nChapter 1: The Rise of Esports and Capital Injection 1.1 The Early Days of Electronic Sports: From Grassroots to Professionalization\nThe early esports industry started relatively grassroots, especially in China. Many players participated in competitive games like StarCraft and Dota, driven by their passion for the games. However, the true rise of esports began with the release and promotion of League of Legends. Following the official entry of League of Legends into the Chinese market in 2011, esports gradually evolved from a niche community to part of mainstream culture. Notably starting in 2013, the LPL (China Professional League) was established, and League of Legends became the cornerstone of China’s esports industry.\n1.2 Capital Frenzy Influx: The Rise of PandaTV and Esports Live Streaming Platforms\n2015 marked a watershed moment for the Chinese esports industry. The influx of capital transformed esports from a purely competitive event into a much larger ecosystem. PandaTV, one of the representatives, became a product of excessive capital. Invested by one of its founders, Wang Sicong, PandaTV quickly rose to prominence with its innovative content and massive investment, attracting a large number of viewers and users. However, this was also a typical example of capital “barbaric” inflow – the relentless pursuit of markets often lacks patience and long-term vision. Although PandaTV’s short-term investments achieved certain results due to management issues and excessive reliance on high fever caused by capital, it ultimately declared bankruptcy in 2019.\n1.3 Live Streaming Platform Competition: The “Capital War” Between DouYu and Huya\nThe demise of PandaTV did not lead to the decline of the esports live streaming industry; instead, it propelled the rise of platforms like Douyu and Huya. Douyu and Huya became leading players in the esports industry, and their competition intensified. Early on, Douyu established itself as a benchmark for esports live streaming through the broadcasting of League of Legends professional competitions and the signing of top streamers. Huya, meanwhile, gradually narrowed the gap with Douyu by increasing its investment in esports events and diversifying its platform layout.\nThroughout this process, capital played a huge role again. In 2018, Douyu successfully went public, and Huya also completed its IPO the same year. The rapid flow of capital led to industry consolidation and intensified competition between platforms in terms of streamers and copyrights, forming a “capital war.”\nChapter 2: The Fusion of Mass Entertainment and Esports 2.1 The Trend Towards Mass Entertainment: Capital Flows into Diversified Entertainment Projects\nAs capital has heavily invested in the esports industry, esports platform content is gradually becoming mass-entertained. Esports anchors are no longer limited to match commentary and event live streaming; they have begun to expand into singing, dancing, interactive live streams, and other entertainment forms. The content on platforms is becoming more diverse, gradually forming an ecosystem centered around esports but also incorporating various entertainment elements.\nHowever, this mass entertainment trend has also brought problems – the original focus of esports culture has been marginalized, replaced by a trend of entertainment above all else. This trend has caused some fans who originally loved esports culture to feel alienated, and capital has begun to pay more attention to other entertainment fields. The excessive influx of capital and profit-seeking behavior have gradually blurred the essence of the esports industry, and the original value concept centered around competition has been weakened.\n2.2 The Rise of Mass Entertainment Industry: Capital Withdrawal and Transformation\nAs short video platforms, live streaming platforms, and the entertainment industry have risen, capital has gradually shifted funds from esports to a wider range of entertainment content. In this process, giants such as Tencent, Alibaba, and ByteDance no longer rely solely on esports projects as sources of revenue, but are increasing their investments in areas such as film, music, and short videos. In particular, the rise of ByteDance, through the explosive growth of platforms like Douyin (TikTok), has overshadowed the limelight of esports with other entertainment content.\nChapter 3: League of Legends’ “Yellow Not Following Yellow”: The Decline of the Era’s Advantage Since League of Legends entered the Chinese market in 2011, it has almost become synonymous with China\u0026rsquo;s esports industry, achieving countless professional players, teams, and events, and also spawning a massive esports ecosystem. However, after more than ten years, as a leading project in Chinese esports, League of Legends has entered a phase of “Yellow Not Following Yellow” – a period of decline. Particularly in recent years, the influence of League of Legends is gradually waning, even exhibiting obvious signs of recession.\n3.1 The “Fracture” in Player Groups\nThe most noticeable change is the fragmentation of player groups. Initially, esports’ rapid development relied on the support of a large number of young players, many of whom became professional players or spectators thanks to League of Legends. That generation of \u0026ldquo;internet addiction\u0026rdquo; teenagers almost grew up under the “era’s advantage,” immersed in the competitive charm of LOL and thus driving the rapid expansion of the entire industry. However, as time went on, these players gradually matured, entered society, and began to shift towards other life and career paths. At the same time, a new generation of young players are not as enthusiastic about League of Legends as in its heyday, and the esports audience has exhibited a clear age bias and decline in interest.\n3.2 The “Weakness” in Game Content\nLeague of Legends, after multiple updates and revisions, still maintains a certain competitive charm, but the game’s own innovation in content appears somewhat lacking. Each year\u0026rsquo;s version updates, hero balance adjustments, and new gameplay introductions seem unable to fundamentally address players’ demand for freshness. Meanwhile, the MOBA market has become saturated, and other types of games (such as Honor of Kings and Game For Peace) have rapidly risen, diverting a large number of players who originally belonged to League of Legends. This competitive situation has left League of Legends unable to escape the role of “follower.”\nConclusion: Where Does the Esports Industry Go From Here? The esports industry is like a skyscraper that sprung up seemingly overnight, with excessive capital roaming the internet sector, searching for the next big trend – and esports has become one of their targets. Leveraging China’s demographic dividend, the industry achieved tremendous success in a short period, but this success wasn\u0026rsquo;t built on a solid foundation. Excessive capital influx, talent shortages, and weak game content are all hindering the healthy development of the esports industry.\nPrior to university, I didn’t play many games; Alliance essentially accompanied my growth alongside generations. I watched countless World Finals, and as an outsider, comparing ourselves to Korean and Chinese players, especially Faker, domestic players always felt hesitant during major tournaments. I also know that athletes face immense psychological pressure, but this hasn\u0026rsquo;t been prioritized by teams. Over a decade of development, these mental health issues should be taken seriously, yet they weren’t. Domestic gameplay still relies on the innate talent of the players themselves.\n","date":"2024-12-31","language":"en","permalink":"https://ttf248.life/en/p/end-of-league-of-legends-era/","tags":["game","esports","panda-tv","dou-yu","huya","capital","social-media"],"title":"The End of the Age of Wild Capitalism: The Era of League of Legends Esports Concludes","year":"2024"},{"categories":["Financial Knowledge Base"],"content":" Bitcoin once again elected as US President, also bringing virtual currencies back into the public eye. The Hong Kong Exchange has been actively deploying related business, and here’s a brief record of its virtual currency development history. Reviewing the details of relevant contract listings, we found that the initial introduction wasn\u0026rsquo;t spot contracts but futures – which was reasonable due to their better liquidity and easier attraction of institutional investors. Subsequently introducing spot ETFs was also sensible, as they are a more readily accepted investment tool.\nVirtual Currency List The Hong Kong Exchange’s market data does not provide identifiers to distinguish between contracts that are virtual currencies. However, they can be determined by the contract name. The official trading list provides corresponding subcategories virtualasset.\nhttps://www.hkex.com.hk/Market-Data/Securities-Prices/Exchange-Traded-Products?sc_lang=en\u0026amp;asset=virtualasset\nDecember 16, 2022 Hong Kong Exchange Welcomes First Batch of Crypto Asset ETFs in Asia The Hong Kong Exchanges and Clearing Limited (HKEX) today (Friday) welcomed the listing of the first batch of crypto asset ETFs in Asia, further expanding its product ecosystem and providing more choices for investors in Hong Kong and internationally.\nThe two new ETFs listed today – Southern East One Bitcoin Futures ETF (stock code: 3066) and Southern East One Ethereum Futures ETF (stock code: 3068) – are managed by Southern East One Asset Management Co., Ltd. and track standardized, cash-settled bitcoin futures contracts and ether futures contracts traded on the Chicago Mercantile Exchange (CME).\n“The two crypto asset ETFs listed today add another layer of richness to Hong Kong’s increasingly diverse exchange trading product ecosystem,” said Mr. Yao Jia Ren, Chief Operating Officer and Head of Market Development at HKEX. “These new products will provide investors in Asia for the first time with an opportunity to participate in digital asset investment, reflecting our focus on the digital economy and market demand. We look forward to bringing more thematic ETFs and digital asset products in the coming months.”\nETF is one of the fastest-growing businesses under HKEX, with its product range continuously expanding and becoming increasingly diversified, including the launch of Hong Kong’s first Metaverse ETF, first Carbon Futures ETF, and first Blockchain ETF within the year. It also marked the first time ETFs were included in the滬深港通 (HKSG Connect).\nFurthermore, the average daily trading volume of HKEX\u0026rsquo;s buy-and-sell products (ETPs – including ETFs and leveraged and inverse products) for the first eleven months of this year reached HK$118 billion, a 50% increase from last year’s same period of HK$78 billion, reflecting the growing popularity of ETPs among investors. As of November 2022, there were 168 ETPs listed on HKEX with a market capitalization of HK$3,735 billion.\nApril 30, 2024 Hong Kong Exchange Welcomes First Batch of Spot Virtual Asset ETFs The Hong Kong Exchanges and Clearing Limited (HKEX) today (Tuesday) welcomed the listing of Asia’s first batch of spot virtual asset ETFs, adding to the variety of products in the Hong Kong market and providing investors with more choices, further solidifying Hong Kong\u0026rsquo;s position as a leading ETF market in Asia.\n“Today’s newly listed spot virtual asset ETFs will enrich the diversified and dynamic ETF market ecosystem of the Hong Kong Exchange, offering investors new investment opportunities in asset classes,” said Robert Lin, Head of Securities Product Development at HKEX. “Following the successful launch of the first virtual asset futures ETF a year ago, these first Asian spot virtual asset ETFs will further enhance the product variety and liquidity for the Hong Kong Exchange’s buy-and-sell products. We look forward to continuing to work closely with market stakeholders to introduce more new products into our internationalized market.”\nThe first batch of virtual asset futures ETFs, which were listed in 2022, have been favored by investors and traded actively. The average daily trading volume of the three spot virtual asset ETFs listed on HKEX increased from HK$890 million in 2023 to HK$5.13 billion in the first quarter of 2024, while attracting HK$5.29 billion in inflows.\nExchange-traded products (ETPs), including ETFs, leveraged and inverse products, are one of the fastest-growing markets for HKEX, with the product variety continuously increasing over the past year. The 16 new ETPs launched in 2023 and the first quarter of 2024 include the first Saudi Arabian ETF in the Asia Pacific region, Hong Kong’s first callable option ETFs, and currently there are 179 ETPs listed on HKEX.\nOctober 28, 2024 Hong Kong Exchange to Launch Virtual Asset Index Series The Hong Kong Exchanges and Clearing Limited (HKEX) announced today (Monday) that it will launch the Hong Kong Exchange Virtual Asset Indices Series (the “Series”) on November 15, 2024, providing a reliable benchmark price for the rapidly growing asset class of virtual assets, supporting Hong Kong’s development as a leading digital asset hub in Asia.\nThe index series will provide transparent and reliable benchmarks for pricing Bitcoin and Ethereum within the Asian time zone, aiming to offer a unified reference price for virtual assets, addressing price discrepancies between this asset class across global exchanges.\nHKEX Group Chief Executive Officer Chen Yiting stated: “We are pleased to launch the Hong Kong Exchange Virtual Asset Indices Series to meet the demand for this rapidly growing asset class regionally. By providing transparent and reliable real-time benchmarks, we hope to help investors make informed investment decisions, supporting the healthy development of the virtual assets ecosystem and solidifying Hong Kong’s position as an international financial center.”\nThe launch of the index series is part of HKEX\u0026rsquo;s commitment to exploring emerging areas, supporting the development of Hong Kong fintech while also providing investors with important benchmarks and solutions in a constantly evolving market environment.\nThe index series will include reference indices for Bitcoin and Ethereum, as well as reference exchange rates.\nThe reference indices are based on the weighted average spot price of Bitcoin or Ethereum over 24 hours’ trading volume, calculated using aggregated market prices from major virtual asset exchanges, and denominated in US dollars in real-time. The reference exchange rate is designed for financial product settlement and is calculated daily at 4:00 PM Hong Kong time.\nThe index series will be the first virtual asset index series developed in Hong Kong that complies with European Union Benchmark Regulation (EUBMR) standards, managed and calculated jointly by a benchmark management company registered in the UK and a virtual assets data and index provider, CCData.\nIn 2022, the Government of the Hong Kong Special Administrative Region issued a policy statement on the development of virtual assets, hoping to cultivate a vibrant virtual asset industry and ecosystem in Hong Kong. The launch of the Hong Kong Exchange Virtual Asset Indices Series will help the public increase their understanding of virtual asset investment trends through providing real-time data and daily reference prices within the Asian time zone.\nMore details regarding the design and calculation methods of the index series will be announced as appropriate.\nReferences https://www.hkex.com.hk/news/news-release/2022/221216news?sc_lang=zh-hk https://www.hkex.com.hk/News/News-Release/2024/240430news?sc_lang=zh-HK https://www.hkex.com.hk/News/News-Release/2024/241028news?sc_lang=zh-HK ","date":"2024-12-31","language":"en","permalink":"https://ttf248.life/en/p/hong-kong-exchange-virtual-currency-history/","tags":["hkex","virtual-currency"],"title":"Hong Kong Exchange, History of Virtual Currency Development","year":"2024"},{"categories":["Repost / Share"],"content":" Hua Tai Bei Rui HongShan 300 ETF and related funds issued a notice lowering the overall fee rate to the lowest among peers. On November 19th, Hua Tai Bei Rui Fund announced that, in order to better meet the investment and financial needs of investors, starting from November 22nd, Hua Tai Bei Rui HongShan 300 ETF and its related funds will lower their management fees and custodial fees, and revise relevant fund contract contents. After the adjustment, the annual management fee for Hua Tai Bei Rui HongShan 300 ETF and its related funds is reduced to 0.15%, and the annual custodial fee is reduced to 0.05%, all set to the lowest rate among index funds. Almost simultaneously, other leading industry ETFs such as Huaxia HongShan 300 ETF, Huaxia ShangZheng 50 ETF, Nanfang ZhongCheng 500 ETF, JiaShi HongShan 300 ETF, and YiFangDa Entrepreneurial Board ETF also issued notices lowering management and custodial fees, with all rates reduced to 0.15% and 0.05%. Unlike previous ETF rate reductions, this reduction was initiated by market-leading products with significant scale advantages, which will have a substantial impact on the industry’s subsequent developments. Exchange data showed that as of November 18th, Hua Tai Bei Rui HongShan 300 ETF had a scale exceeding 370 billion yuan, making it currently the largest ETF in terms of size. The largest batch of super ETFs leading the way in reducing fees demonstrated their proactive willingness to benefit investors and allowed investors to invest in popular and liquid products at higher value for money. Industry analysts believe that ETFs with significant scale advantages lowering fees will, on one hand, facilitate the public fund’s role in providing inclusive financial services, helping investors reduce holding costs and enhance returns and investment satisfaction across a wider area; On the other hand, low rates will also further improve the competitiveness of the products themselves. With the added benefits of liquidity diversion effects and cost operation advantages, the products are expected to attract more medium-to-long term incremental funds into the market, helping build a good ecosystem for “long money long investment.” In recent years, thanks to its flexible trading, high transparency, strong liquidity, low investment barriers, and other unique advantages, broad-based ETFs have become the main channel for capital entering at low levels and “long money long investment.” This reduction in fees may serve as an \u0026ldquo;accelerator,\u0026rdquo; making it easier for long-term funds to enter the A-share market.\nEpilogue Although the Tianhong Fund that I invested in hasn\u0026rsquo;t yet released an announcement, it should be followed up on. If no update is provided, I will consider switching funds. Original Management Fee: 0.5%, Custody Fee: 0.1%. New Management Fee: 0.15%, Custody Fee: 0.05%. This reduction is quite significant.\n","date":"2024-11-21","language":"en","permalink":"https://ttf248.life/en/p/etf-fees-cut-china/","tags":["fund","ETF","reduce-costs"],"title":"“Fee reduction, fee reduction! Domestic mega-ETFs are experiencing a large-scale fee reduction.”","year":"2024"},{"categories":["Repost / Share"],"content":" The hammer is falling. Following the surge of short videos, investment advisory services are reportedly entering a fast lane. In late September, after a period of intense activity in the A-share market, Douyin (TikTok) recommendations for stocks garnered attention from various parties. Numerous financial commentators have risen to prominence on Douyin, indirectly causing some volatility in capital markets. Behind these rapidly rising financial commentators lies a significant force: third-party investment advisory service companies. It’s understood that many third-party advisory firms operate multiple accounts on short video platforms, using content distribution (投流) to attract users to watch investment teaching videos and boost enthusiasm for purchasing corresponding products. There are even rumors that one third-party advisory firm achieved revenue of 10 billion yuan in October alone, exceeding its first-half earnings. However, “good times” are facing more uncertainties. Since November, multiple departments have issued notices requiring securities service institutions to strengthen the compliance management of self-media accounts. On November 15th, Futu Securities (300033.SZ) announced that a subsidiary was penalized by the China Securities Regulatory Commission for engaging in suggestive stock recommendations through livestreaming. This may be signaling a stricter regulatory environment. The expansion of third-party investment advisory service firms like Fangyuan Intelligence Investment (9636.HK) is likely to face greater pressure. Close Monitoring by Regulators The rise of short video platforms like Douyin (TikTok) has amplified emotional voices and indirectly impacted trading behavior.\nAccording to Giant Network, from September 27th to October 8th, when transaction volumes hit record highs, the Douyin A-share keyword search index soared from 4.2384 million to 12.7786 million, expanding by more than twice that amount.\nUnder these circumstances, the “stirring up” behavior of third-party investment advisory firms is attracting the attention of regulatory authorities.\nInvestment advisors recommending stocks through live broadcasts constitutes a high-frequency violation.\nOn November 8th, the Guangdong Securities Regulatory Bureau took measures to suspend new clients for a company’s livestreaming that presented “implicit stock recommendations.”\nOn November 14th evening, the Guangdong Securities and Futures Industry Association issued an announcement titled \u0026ldquo;Live Streaming Control Lacking Effectiveness, Institutions Suspended Business,\u0026rdquo; directly addressing situations where some institutions with securities consulting qualifications had inadequate controls during live streaming operations and engaged in recommending stocks.\nThe Guangdong Securities and Futures Industry Association stated: “Strictly prohibit livestreaming stock recommendations. Livestreaming is a public media dissemination platform, and livestreaming personnel, regardless of whether they are registered as securities investment advisors, shall not recommend stocks during live broadcasts.”\nThis is not an isolated case.\nOn November 7th, the Shanghai Securities Regulatory Bureau disclosed a penalty notice involving illegal stock recommendations on social media platforms.\nFollowing regulatory investigation, Wang Yong, a consultant at Haishun Securities Investment Consulting Co., Ltd.’s Shanghai branch, violated professional norms by publishing misleading videos through WeChat Video No., which contradicted industry standards.\nThe Shanghai Securities Regulatory Bureau subsequently issued a supervisory management measure to issue a warning letter to Wang Yong.\nAccording to Wind (ID:TradeWind01) information, some unqualified investment advisory firms have been using “rented” brokerage accounts to promote stocks on Douyin and have since been suspended from broadcasting.\n“Some people are livestreaming in the industry, but they are actually renting under a brokerage firm, which gives them investment advisor qualifications, then they use live streaming to generate leads, and sell investment advisory product bundles offline,” said a consultant from South China to Wind (ID:TradeWind01). “However, because they recommended stocks during the livestreaming, they were discovered and subsequently suspended.” Regular brokerages typically discuss sector trends but do not involve individual stock recommendations.\nCurrently, regulators are closely monitoring illegal stock recommendations on social media platforms.\nFor example, the Shenzhen Securities Regulatory Bureau recently notified that some institutions or individuals were using self-media to illegally recommend stocks, in order to further regulate the self-media operations of securities investment consulting agencies in the辖区, all institutions should further strengthen company self-media operation management.\nThis may pose more challenges for the business development of various third-party investment advisory service firms.\n“The Flow Business” is False Whether retail investors who were attracted by short videos made a profit remains unknown, but the valuation of third-party investment advisory service companies as \u0026ldquo;water sellers\u0026rdquo; in the secondary market has soared.\nAs “China’s first online teaching stock,” JiuFang Intelligence’s market capitalization rose from 2.878 billion yuan at the beginning of September to 12.464 billion yuan on November 13, with an increase of 333.08% over 49 trading days.\nThe semi-annual report showed that in the first half of the year, JiuFang Intelligence conducted brand exposure on social media platforms such as Douyin and Xiaohongshu, and by the end of June, it had 488 accounts and 46 million followers.\nFor example, as JiuFang Intelligence’s Chief Investment Advisor, “Hongbangzhuxi” has 2.26 million fans on Douyin.\n“We have deeply cultivated MCN operations, focusing on users, and synergistically promote the comprehensive development of traffic, brands, and products,” JiuFang Intelligence stated. “By deeply integrating live streaming, short videos, and other new media tools, leveraging AI technology to build a fan network, and actively exploring e-commerce models, we effectively achieve the efficient conversion of traffic.”\nJiuFang Intelligence’s investment advisory course packages cover price ranges from tens of yuan to more than ten万元. The most expensive package, “Super Investor,” is priced at 139,600 yuan per six months, including exclusive insights and private advisor services.\nHowever, JiuFang Intelligence’s investment advisory product refund rate is above 10%.\nIn the first half of 2024, the refund rates for JiuFang Intelligence’s flagship series and JiuFang Intelligence’s Qionglong Series reached 14.7% and 18.5%, respectively.\nHowever, under regulatory scrutiny, whether JiuFang Intelligence\u0026rsquo;s business development will be affected remains to be further observed.\nRecently, media reports said that accounts belonging to third-party investment advisory companies such as JiuFang Intelligence have been impacted.\nOn November 7th, a media report stated that “Hongbangzhuxi” was suspended from live streaming.\nHowever, on November 15th, XinFeng (ID:TradeWind01) searched the account and found that the appointment for “Hongbangzhuxi’s” livestream on November 18th was still available in the livestream interface.\nAt the same time, market sources said that relevant departments have entered JiuFang Intelligence for inspection.\nHowever, a close source to JiuFang Intelligence told XinFeng (ID:TradeWind01) that the inspection belonged to routine inspections and had already ended.\nThis is not the only company involved in this round of regulatory storm rumors.\nThere are reports that Tianhong Securities was investigated for illegal stock recommendations and may suspend business.\nIn response, Tianhong Securities stated on November 15th, “There were no illegal stock recommendation cases, and there was no investigation.”\nHowever, that same evening, Tianhong Securities announced that its subsidiary Zhejiang Tianhong Cloud Software Co., Ltd. was penalized with a three-month new customer suspension due to inadequate compliance controls in the promotion of livestreaming business and the existence of scenarios suggesting recommendations of stocks, by the Zhejiang Securities Regulatory Bureau.\nThis may also mean that regulatory departments are further focusing on荐股 (recommendation of stocks) content on social media platforms such as Douyin.\nIn fact, the cake of short videos has also attracted many securities firms, but due to compliance requirements, securities firms are currently cautious about this.\nA securities industry insider told XinFeng (ID:TradeWind01) that the company is exploring methods for short video operations and lead generation, and it has organized personnel to visit short video platform companies for learning, but due to compliance requirements, it is still in an exploratory stage.\nIn fact, behind the various regulatory compliance requirements is because the content on short video platforms has a distinct emotional color, but investment requires market participants to maintain rationality, and the two exist in a natural conflict.\nIf uncontrolled emotions influence the capital market, it can easily trigger violent fluctuations in the market, which goes against the long-term healthy development of the capital market.\nWhat manner should securities holding institutions embrace the arrival of the short video era to avoid “stepping on red lines”? This is clearly a difficult question for all parties.\n","date":"2024-11-21","language":"en","permalink":"https://ttf248.life/en/p/third-party-wealth-managers-scrutiny-tiktok-stock-winners-crackdown/","tags":["financial-advisor","douyin","stock-trading","regulation-oversight"],"title":"“Increased scrutiny of third-party advisor regulation, and the beneficiaries behind the ‘Douyin (TikTok) stock trading’ phenomenon face a crackdown?”","year":"2024"},{"categories":["Computer"],"content":"CentOS Stream is the upstream open-source development platform prior to Red Hat’s Linux distribution.\nI first noticed the open-source operating system lifecycle redhat and centos life cycle had ended, and I was wondering what was going on. Besides security issues, dnf wasn’t working, and I recently encountered failures when installing tools – checking the repository sources revealed that CentOS 8 Stream had reached its end of life.\nCentOS Stream Introduction Positioning and Roles CentOS Stream sits between Fedora Linux (upstream development) and RHEL (Red Hat Enterprise Linux, downstream development), acting as a bridge.\nIt can be considered a version for experiencing the latest Red Hat-based Linux features, suitable for those who want to try out new things.\nOrigins and Background Over time, Red Hat began to seek more effective ways to develop its enterprise-grade Linux platform, leading to the launch of CentOS Stream.\nCentOS 8 ended maintenance at the end of 2021, and CentOS Stream continued to be updated as its successor, becoming the future direction of the CentOS project.\nFeatures and Advantages CentOS Stream is a rolling release Linux distribution that provides faster updates. It offers greater transparency and more opportunities for community, partner, and customer participation, allowing users to contribute to Red Hat Enterprise Linux (RHEL) more quickly and directly. The content of CentOS Stream is software that Red Hat intends to include in the next stable version of RHEL, therefore it provides a stable ABI/API for developers and testers within the community.\nUse Cases and Target Users CentOS Stream is suitable for those CentOS users who want to continue receiving the latest Linux feature updates, as well as developers and partners who wish to participate in Red Hat Enterprise Linux development.\nIt also aims to help community members, Red Hat partners, and others take full advantage of innovative open-source software in a more stable and predictable Linux ecosystem.\nEnd of Life Release Released Active Support Security Support Latest 9 3 years ago (15 Sep 2021) Ends in 2 years and 6 months (31 May 2027) Ends in 2 years and 6 months (31 May 2027) 9 End of Life Release Released Active Support Security Support Latest 8 5 years ago (24 Sep 2019) Ended 5 months and 3 weeks ago (31 May 2024) Ended 5 months and 3 weeks ago (31 May 2024) 8 Solutions Rather than bothering with upgrades, we opted for the long-term support version of Ubuntu 24.04.\n","date":"2024-11-16","language":"en","permalink":"https://ttf248.life/en/p/centos-8-stream-eol/","tags":["centos stream","centos"],"title":"CentOS 8 Stream EOL","year":"2024"},{"categories":["Computer"],"content":"Browsing through the historical commit records, the site has undergone numerous theme switches. Each theme switch involved some custom modifications, and this is where I’m documenting the approach to customizing themes. My Github repository briefly maintained the even theme, but due to my obsessive-compulsive tendencies, I resisted upgrading the hugo compiler to the latest version, which resulted in incompatibility with the even theme, so I switched back to the stack theme.\nHugo\u0026rsquo;s Modularity When we talk about modularity, many people think of Nginx modules and IDEA plugins, among others. Typically, I can upload some modules to satisfy my differentiated needs. The reason everyone likes this kind of module is that it’s sufficiently flexible – you don’t have to put in too much effort to meet your own requirements. Because often, even though the overall situation is similar, there are always some details that differ. This also illustrates the complexity of software, not just technically but also from a business perspective. Most of the time, we face business complexity. This is precisely where the saying “it’s like crossing a mountain range” best applies. Today, not only the internet industry and finance, but even traditional manufacturing industries are using information systems to help businesses with their production and management. Even a leave system can have differences between companies in the same industry.\nUnlike the modules you might be familiar with, Hugo\u0026rsquo;s modules are different – they don’t focus on meeting differentiated needs based on functionality. Instead, they rely primarily on directory structure to identify identical structures.\nResource link: 07. Hugo Architecture — Hugo Modules\n[[imports]] path = \u0026#34;github.com/CaiJimmy/hugo-theme-stack/v3\u0026#34; The git submodule approach can still be used, and this article doesn’t recommend it. If you introduce a theme, maintaining it will be more complicated – you\u0026rsquo;ll need to manage the theme as a separate Git repository.\nTheme Modification Logic Once you have a solid understanding of the foundational concepts of modularization, customizing themes becomes much simpler. Hugo themes are currently assembled from multiple different modules. To modify one module, simply locate its corresponding template file and make the changes directly.\nAs extracted from the official stack documentation:\nUsing this method, there will be no files under the themes directory. To modify a theme, you must copy the file you want to modify into the same directory under the layouts directory.\nFor example, to modify the themes/hugo-theme-stack/layouts/partials/head/custom.html file, you must copy it to layouts/partials/head/custom.html and modify it there (copying the code from the theme\u0026rsquo;s repository). The same applies to the assets and static directories.\nHow to Find Template Files Conventional Approach Review the source files of the topic, understand its design rationale, identify the corresponding template file, and modify it.\nBrute Force Approach As I’m not very familiar with frontend code, I sometimes resort to a brute force approach, such as opening the corresponding page directly in the browser, finding the areas I want to modify, and using “Inspect Element” to pinpoint the css name, then searching the source code for the relevant file, copying it into the site directory, and making changes.\nTips The official setup provides a default file for customizing styles. To modify specific areas, we can split them into multiple files and import them using custom.scss. This approach allows for better management of style files. Consolidated Modifications (6h) It’s now the first year of AI coding, and detailed content will not be pasted here for brevity; instead, we\u0026rsquo;ll simply list some of the modifications made to this site, such as adjusting the copy button styles, reconfiguring the code block styles, and ChatGPT was easily handled.\nOverall: Global text style, retaining the display style previously used by merging even with info cn, which is friendly for Chinese Homepage: Added mouse interaction animation to the right navigation Homepage: New article summaries added (took quite a while to implement using a clever workaround) Scroll Bar: Improved the styling of the scroll bar Code Blocks: Introduced the highlight.js code highlighting plugin, beautifying the code block styles Article Details: Some content is from reprints, with new author information display and original link display Archive Pages: Removed the color mask from the category images at the top to display the original image Archive Pages: Added a statistical display panel for categorization by year Archive Pages: Two-column layout The stack theme has a high component reuse rate, which also led to the lengthy time taken to add new article summaries to the homepage. After modifying the corresponding components, changes occurred in the article details page as well, resulting in redundant display of content. The golang template syntax wasn\u0026rsquo;t very familiar, so it took up quite a bit of time. Component parameter passing was never resolved, and ultimately, through a clever workaround, a JavaScript script was independently introduced to the homepage to implement the summary preview by using custom special variables.\nSometimes, high component reuse can also be a problem, leading to unintended consequences when modifying one place affecting others. Therefore, when modifying themes, you must pay attention not to disrupt existing logic.\nComments This guy\u0026rsquo;s modifications are more refined: https://blog.reincarnatey.net/2024/0719-better-waline/ This site simply enabled the Waline comment system, as the stack theme defaults to supporting Waline. Just configure it in the config.toml file.\nRecommend contacting via email on the homepage, this site does not open the comments section\n","date":"2024-11-15","language":"en","permalink":"https://ttf248.life/en/p/hugo-module-customizing-themes-ideas/","tags":["hugo","theme","customized"],"title":"Hugo Module Customizing Theme: Explanation of Approach","year":"2024"},{"categories":["AI Inspiration Hub","Diary Ramblings"],"content":" Recently, the popular \u0026ldquo;Da Bing\u0026rdquo; (Big Ice) on Douyin (TikTok) has been frequently seen with short video accounts extracted from her live streams. A listener who joined a live call asked: “Da Bing, I want to sell my house in Xi’an and return home to settle down.” Da Bing responded: “At your age, you\u0026rsquo;re in your early thirties; you can\u0026rsquo;t settle down. Your parents are on the path of aging, your children haven’t started a family or established themselves, and if you return home, you’ll still need to deal with the poren.” Let’s set aside whether the viewpoint is right or wrong, what does the term “poren” mean? Township Brahmins: The “Big Shots” of Small Places In many small county towns, people often talk about so-called \u0026ldquo;township brahmins\u0026rdquo;—the existence of these individuals seems to be a symbol of local society. They are not necessarily genuine religious figures and do not possess “high-level” titles; rather, they are seemingly ordinary but nonetheless influential people. They represent “power, status, and influence” within that county town, symbolizing a particular class or stratum in that area.\nWhat is an “Xiancheng Babao?” First, we need to understand that “Babao” originally referred to the highest caste in Indian society, representing wisdom, authority, and spiritual supremacy. In China’s county towns, the term “Xiancheng Babao” doesn\u0026rsquo;t have such a complex religious background; it’s more of a metaphor for a social phenomenon.\nSimply put, an “Xiancheng Babao” can be understood as some “cultural authorities” within the county town – such as teachers, doctors, well-known merchants, and officials. Although their positions may seem ordinary, in this relatively closed environment, they possessed a comparatively higher social status, or their opinions and actions had influence that could not be ignored.\nWho is the “County Town Brahmin”? In county towns, you’ll find figures like this – the “Brahmin” – in almost every industry. They might be:\nEducators: Particularly teachers who have spent decades working in the area, not necessarily graduates of prestigious universities, but who understand how to build credibility through knowledge and are widely respected. Local Government Officials: Deputy county magistrates, section chiefs, etc., who control certain resources and power – even if their positions aren’t high-ranking, their limited scope of authority can make them local “Brahmins.” Local “Entrepreneurs”: Some business owners in county towns, though not large in scale, hold a certain amount of wealth and have a voice in the area. They might run one or two well-known small local businesses, wielding considerable influence within the county town. These people, while not as prominent as figures in larger cities or high-ranking officials, hold a status almost equivalent to “cultural elders” or “centers of power” within this small community.\nThe Status of “County Town Brahmins” – How Does it Impact Society? To truly understand the significance of “county town brahmins,” we must consider the unique environment of the county town. Here, information flow is slower than in large cities, and social class mobility is relatively fixed. These “brahmins” often gained prestige, knowledge, and networks through long-term dedication to the local area. They influence various aspects of local politics, economics, and culture.\nCultural Influence: In small places, especially where education systems are not as developed and people have limited choices, local \u0026ldquo;brahmins\u0026rdquo; subtly shape the cultural atmosphere through knowledge transmission in classrooms, explanations in media, and even moral guidance in social settings.\nConcentration of Social Resources: Due to the limited population and resources of county towns, these “brahmins” are often one of the primary controllers of local resources. Whether it’s social welfare, policy implementation, or approval of certain projects, they invariably have an influence. Their power of speech and decision-making allows them to hold a prominent position in local society.\nA Networked Structure of Relationships: In a relatively closed small society, interpersonal relationships are crucial. These “county town brahmins” build strong social networks to control information flow and resource allocation, enabling them to play a decisive role at critical moments.\nThe Metaphor of the “County Sharma” Despite often being revered and admired, this position of “high above” is not without its issues. In modern society, it’s easy to see that many “Sharmas” – those in county-level positions – lack genuine ability and innovative spirit; instead, they maintain their status through hereditary relationships and resource monopolies. With the development of informatization, these “Sharmas’” power is gradually being broken, and new social mobility is beginning to influence the appearance of small counties.\nOverall, “County Sharma” is a fascinating social phenomenon that reflects the power and cultural structures within local societies. Although their “power” may not directly threaten national governance, they are undoubtedly key figures within the region. In this era of rapid information flow and accelerating social change, these “Sharmas” in county towns may be facing unprecedented challenges.\nConclusion None of this would have happened if we hadn’t started with curiosity about what a ‘purohito’ was, and then tossed it to kimi. The result was surprisingly funny – I could see the web interface already pulling up search results, but suddenly they were unable to be displayed as related content. Then I wondered, did this word have some special significance? So I threw it at ChatGPT, and that\u0026rsquo;s how this article came about.\n","date":"2024-11-13","language":"en","permalink":"https://ttf248.life/en/p/county-brahmins-big-shots-in-small-towns/","tags":["dai-bing","tangping","brahmin"],"title":"Town Brahmin: The “Big Man” of Small Places","year":"2024"},{"categories":["Computer"],"content":"In the history of C++ development projects, we utilized a custom protocol for communication, which employed a two-dimensional array pattern. When processing large volumes of data, the protocol required iterating through the arrays and performing serialization operations to generate logs. Due to its low efficiency, this resulted in noticeable lag or stuttering within the system under heavy load, as reported by the business departments.\nProblem Identification When troubleshooting the issue, we first performed a performance analysis of the system and discovered that CPU utilization increased significantly when processing large amounts of data, and system response times became longer. By analyzing the system logs, we identified numerous serialization operations, which were inefficient when handling two-dimensional arrays, leading to a decline in system performance.\nThe pstack tool captured thread information for the service, pinpointing that the log threads spent most of their time processing string concatenation.\nThis is today’s focus: different accumulation methods have significant efficiency differences. Historically, the code used the + operator, which frequently creates temporary objects and is very inefficient. You know it\u0026rsquo;s bad, but you don\u0026rsquo;t know how bad it is.\nDemo Verification Based on the project code, we extracted the business logic and wrote a simple demo to verify the efficiency issues of string concatenation. We compiled and ran it in Release mode using the vs2022 compiler under windows and the gcc8.5 compiler under linux, comparing the efficiencies.\nKey Point Explanation The project utilized Method Four, and before obtaining test data, readers were encouraged to consider which method was most efficient and which was least efficient. I was quite surprised by the results.\nMethod 1 (+= Concatenation): Directly concatenates each field using += into a string. Method 2 (std::ostringstream Concatenation): Uses a stream (std::ostringstream) to concatenate fields, which is more efficient, especially when dealing with large amounts of data. Method 3 (Pre-allocated Memory += Concatenation): Pre-allocates enough memory for the string using reserve, reducing the overhead of memory reallocation and improving performance. Method 4 (bodys = bodys + body + \u0026quot;\\n\u0026quot;): Creates a new temporary string object each time it concatenates, leading to decreased performance, particularly when dealing with large-scale concatenation due to repeated memory allocation and copying. Referring to the results, we can see that the project inadvertently selected the least efficient method.\nFurthermore, let\u0026rsquo;s analyze the optimization efficiency of different platforms and compilers. Microsoft’s visual studio consistently performs excellently in terms of string optimization, while the gcc compiler has somewhat lower optimization efficiency in this area.\nWhen running the code on different machines, direct comparison between the two datasets is meaningless; instead, we can compare the differences between the various concatenation methods.\nKey Points Explanation Windows platform under VS2022 compiler ---------------------------------------- Data Generation Time: 0.054 seconds. ---------------------------------------- ---------------------------------------- Data Merging Performance: ---------------------------------------- + Data merging (+=) took: 0.053 seconds. + ostringstream Data merging took: 0.054 seconds. + Pre-reserved Data merging took: 0.045 seconds. + Data merging (bodys = bodys + body + \u0026#34;\\n\u0026#34;) took: 16.108 seconds. ---------------------------------------- Data Merging Complete. ---------------------------------------- Program finished. Linux platform under gcc8.5 compiler ---------------------------------------- Data Generation Time: 0.108 seconds. ---------------------------------------- ---------------------------------------- Data Merging Performance: ---------------------------------------- + Data merging (+=) took: 0.100 seconds. + ostringstream Data merging took: 0.083 seconds. + Pre-reserved Data merging took: 0.057 seconds. + Data merging (bodys = bodys + body + \u0026#34;\\n\u0026#34;) took: 29.298 seconds. ---------------------------------------- Data Merging Complete. ---------------------------------------- Program finished. #include \u0026lt;iostream\u0026gt; #include \u0026lt;string\u0026gt; #include \u0026lt;vector\u0026gt; #include \u0026lt;random\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;sstream\u0026gt; #include \u0026lt;iomanip\u0026gt; typedef std::vector\u0026lt;std::string\u0026gt; DataRow; typedef std::vector\u0026lt;DataRow\u0026gt; DataGroup; struct ResponsePackage { std::string ErrorInfo; DataRow Head; std::string ClientId; std::string UUID; std::string MsgID; std::string SessionID; std::string ExtraInfo1; std::string ExtraInfo2; DataGroup DataBody; }; // Generate specified length of random string std::string generateRandomString(size_t length) { const char charset[] = \u0026#34;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\u0026#34;; const size_t max_index = sizeof(charset) - 1; std::string random_string; random_string.reserve(length); std::random_device rd; std::mt19937 generator(rd()); std::uniform_int_distribution\u0026lt;\u0026gt; distribution(0, max_index); for (size_t i = 0; i \u0026lt; length; ++i) { random_string += charset[distribution(generator)]; } return random_string; } void create_large_string() { // Example request package with 50 fields ResponsePackage requestPackage; requestPackage.Head = { \u0026#34;Field1\u0026#34;, \u0026#34;Field2\u0026#34;, \u0026#34;Field3\u0026#34;, \u0026#34;Field4\u0026#34;, \u0026#34;Field5\u0026#34;, \u0026#34;Field6\u0026#34;, \u0026#34;Field7\u0026#34;, \u0026#34;Field8\u0026#34;, \u0026#34;Field9\u0026#34;, \u0026#34;Field10\u0026#34;, \u0026#34;Field11\u0026#34;, \u0026#34;Field12\u0026#34;, \u0026#34;Field13\u0026#34;, \u0026#34;Field14\u0026#34;, \u0026#34;Field15\u0026#34;, \u0026#34;Field16\u0026#34;, \u0026#34;Field17\u0026#34;, \u0026#34;Field18\u0026#34;, \u0026#34;Field19\u0026#34;, \u0026#34;Field20\u0026#34;, \u0026#34;Field21\u0026#34;, \u0026#34;Field22\u0026#34;, \u0026#34;Field23\u0026#34;, \u0026#34;Field24\u0026#34;, \u0026#34;Field25\u0026#34;, \u0026#34;Field26\u0026#34;, \u0026#34;Field27\u0026#34;, \u0026#34;Field28\u0026#34;, \u0026#34;Field29\u0026#34;, \u0026#34;Field30\u0026#34;, \u0026#34;Field31\u0026#34;, \u0026#34;Field32\u0026#34;, \u0026#34;Field33\u0026#34;, \u0026#34;Field34\u0026#34;, \u0026#34;Field35\u0026#34;, \u0026#34;Field36\u0026#34;, \u0026#34;Field37\u0026#34;, \u0026#34;Field38\u0026#34;, \u0026#34;Field39\u0026#34;, \u0026#34;Field40\u0026#34;, \u0026#34;Field41\u0026#34;, \u0026#34;Field42\u0026#34;, \u0026#34;Field43\u0026#34;, \u0026#34;Field44\u0026#34;, \u0026#34;Field45\u0026#34;, \u0026#34;Field46\u0026#34;, \u0026#34;Field47\u0026#34;, \u0026#34;Field48\u0026#34;, \u0026#34;Field49\u0026#34;, \u0026#34;Field50\u0026#34; }; requestPackage.ClientId = \u0026#34;ClientID\u0026#34;; requestPackage.UUID = \u0026#34;UUID\u0026#34;; requestPackage.MsgID = \u0026#34;MsgID\u0026#34;; requestPackage.SessionID = \u0026#34;SessionID\u0026#34;; requestPackage.ExtraInfo1 = \u0026#34;ExtraInfo1\u0026#34;; requestPackage.ExtraInfo2 = \u0026#34;ExtraInfo2\u0026#34;; // Start timing for data generation auto start_gen = std::chrono::high_resolution_clock::now(); // Generate 10,000 rows of data, each with 50 fields for (size_t i = 0; i \u0026lt; 10000; ++i) { DataRow dataRow(50, \u0026#34;This is a test string\u0026#34;); requestPackage.DataBody.push_back(dataRow); } // End timing for data generation auto end_gen = std::chrono::high_resolution_clock::now(); std::chrono::duration\u0026lt;double\u0026gt; duration_gen = end_gen - start_gen; // Display result generation time std::cout \u0026lt;\u0026lt; \u0026#34;\\n----------------------------------------\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Data Generation Time: \u0026#34; \u0026lt;\u0026lt; std::fixed \u0026lt;\u0026lt; std::setprecision(3) \u0026lt;\u0026lt; duration_gen.count() \u0026lt;\u0026lt; \u0026#34; seconds.\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;----------------------------------------\\n\u0026#34;; // Data merging using different methods std::cout \u0026lt;\u0026lt; \u0026#34;\\n----------------------------------------\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Data Merging Performance:\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;----------------------------------------\\n\u0026#34;; { // Method 1: Using \u0026#39;+=\u0026#39; string concatenation auto start_merge = std::chrono::high_resolution_ ```markdown ## Complete Code { // Method 2: Using ostringstream auto start_merge = std::chrono::high_resolution_clock::now(); std::ostringstream bodys; for (auto\u0026amp; vec : requestPackage.DataBody) { std::ostringstream body; body \u0026lt;\u0026lt; \u0026#34;This is a test string\u0026#34;; for (auto\u0026amp; item : vec) { body \u0026lt;\u0026lt; item \u0026lt;\u0026lt; \u0026#34; \u0026#34;; } bodys \u0026lt;\u0026lt; body.str() \u0026lt;\u0026lt; \u0026#34;\\n\u0026#34;; } auto end_merge = std::chrono::high_resolution_clock::now(); std::chrono::duration\u0026lt;double\u0026gt; duration_merge = end_merge - start_merge; std::cout \u0026lt;\u0026lt; \u0026#34;+ ostringstream Data merging took: \u0026#34; \u0026lt;\u0026lt; std::fixed \u0026lt;\u0026lt; std::setprecision(3) \u0026lt;\u0026lt; duration_merge.count() \u0026lt;\u0026lt; \u0026#34; seconds.\\n\u0026#34;; } { // Method 3: Pre-allocated memory auto start_merge = std::chrono::high_resolution_clock::now(); std::string bodys; bodys.reserve(1000 * 50 * 20); // Pre-allocate enough memory for (auto\u0026amp; vec : requestPackage.DataBody) { std::string body(\u0026#34;This is a test string\u0026#34;); body.reserve(50 * 20); // Pre-allocate memory for each row for (auto\u0026amp; item : vec) { body += item + \u0026#34; \u0026#34;; } bodys += body + \u0026#34;\\n\u0026#34;; } auto end_merge = std::chrono::high_resolution_clock::now(); std::chrono::duration\u0026lt;double\u0026gt; duration_merge = end_merge - start_merge; std::cout \u0026lt;\u0026lt; \u0026#34;+ Pre-reserved Data merging took: \u0026#34; \u0026lt;\u0026lt; std::fixed \u0026lt;\u0026lt; std::setprecision(3) \u0026lt;\u0026lt; duration_merge.count() \u0026lt;\u0026lt; \u0026#34; seconds.\\n\u0026#34;; } { // Method 4: Using \u0026#39;bodys = bodys + body + \u0026#34;\\n\u0026#34;\u0026#39; auto start_merge = std::chrono::high_resolution_clock::now(); std::string bodys(\u0026#34;\u0026#34;); for (auto\u0026amp; vec : requestPackage.DataBody) { std::string body(\u0026#34;This is a test string\u0026#34;); for (auto\u0026amp; item : vec) { body = body + item + \u0026#34; \u0026#34;; // Note the use of \u0026#39;body = body + item\u0026#39; } bodys = bodys + body + \u0026#34;\\n\u0026#34;; // Again, using \u0026#39;bodys = bodys + body\u0026#39; } auto end_merge = std::chrono::high_resolution_clock::now(); std::chrono::duration\u0026lt;double\u0026gt; duration_merge = end_merge - start_merge; std::cout \u0026lt;\u0026lt; \u0026#34;+ Data merging (bodys = bodys + body + \\\u0026#34;\\\\n\\\u0026#34;) took: \u0026#34; \u0026lt;\u0026lt; std::fixed \u0026lt;\u0026lt; std::setprecision(3) \u0026lt;\u0026lt; duration_merge.count() \u0026lt;\u0026lt; \u0026#34; seconds.\\n\u0026#34;; } std::cout \u0026lt;\u0026lt; \u0026#34;\\n----------------------------------------\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;Data Merging Complete.\\n\u0026#34;; std::cout \u0026lt;\u0026lt; \u0026#34;----------------------------------------\\n\u0026#34;; } int main() { try { create_large_string(); } catch (const std::exception\u0026amp; e) { std::cerr \u0026lt;\u0026lt; \u0026#34;Caught exception: \u0026#34; \u0026lt;\u0026lt; e.what() \u0026lt;\u0026lt; std::endl; } std::cout \u0026lt;\u0026lt; \u0026#34;\\nProgram finished.\\n\u0026#34;; return 0; } ","date":"2024-11-13","language":"en","permalink":"https://ttf248.life/en/p/linux-backend-slow-string-processing/","tags":["c++","linux","troubleshooting"],"title":"Linux backend services handling large volumes of string data – performance is slow.","year":"2024"},{"categories":["Computer"],"content":"In C++, lambda expressions are a convenient way to create anonymous functions that can capture external variables and use them within their bodies. This makes lambdas a flexible programming tool. However, the lifetime of parameters in a lambda expression is an aspect that requires careful attention, especially when capturing and passing parameters.\n1. Lambda Expression Parameter Lifetime The lifetime of parameters in a lambda expression is typically the same as that of other C++ functions. Parameters exist while the function is being called, and their lifetime ends when the function call terminates. However, due to the possibility of lambdas capturing external variables, the parameter\u0026rsquo;s lifetime is also affected by how it’s captured.\n2. Capturing the Relationship with Parameter Lifecycles 2.1 Capturing External Variables C++ lambda expressions allow capturing external variables in two ways:\nCapture by Value: When capturing by value, the value of the external variable is copied into the lambda\u0026rsquo;s internal scope. The lifetime of this copy is controlled by the lambda’s own lifetime. Capture by Reference: When capturing by reference, a reference to the external variable is retained. The lambda’s reference points to the original external variable, and its lifetime depends on the external variable’s lifetime. int x = 10; auto lambda_by_value = [x]() { std::cout \u0026lt;\u0026lt; x \u0026lt;\u0026lt; std::endl; }; // Captures a copy of x auto lambda_by_reference = [\u0026amp;x]() { std::cout \u0026lt;\u0026lt; x \u0026lt;\u0026lt; std::endl; }; // Captures a reference to x lambda_by_value(); // Prints 10 lambda_by_reference(); // Prints 10 For captured variables, the lifetimes are as follows:\nCapture by Value: When capturing, the external variable’s value is copied into the lambda, and the copy is destroyed when the lambda’s lifetime ends. Capture by Reference: The lambda holds a reference to the external variable; the external variable must be valid at the time the lambda is used, or undefined behavior results. 2.2 Lambda Parameters Lambda parameters are similar to regular function parameters; their lifetime is limited to the lambda function body. That is, lambda parameters are created when the lambda is called and their lifetime ends when the lambda call finishes.\nauto lambda = [](int a, int b) { std::cout \u0026lt;\u0026lt; a + b \u0026lt;\u0026lt; std::endl; }; lambda(5, 10); // a and b are the parameters of the lambda here In this example, a and b are the parameters of the lambda expression, they are created when the lambda is called and destroyed after the lambda executes.\n3. Lifecycle Issues When Capturing External Variables 3.1 Whether Captured Variables Can Be Effective Outside Lambda Value Capture: Even if the external variable is destroyed after the lambda call, the lambda internally still holds a copy of the external variable. Therefore, the copy within the lambda can be safely used even if the external variable no longer exists. int x = 10; auto lambda = [x]() { std::cout \u0026lt;\u0026lt; x \u0026lt;\u0026lt; std::endl; }; x = 20; // x is modified after the lambda call lambda(); // Prints 10, captures a copy of x Reference Capture: If the external variable is captured by reference, the lambda\u0026rsquo;s access to this reference depends on the lifetime of the external variable. If the external variable is destroyed before the lambda executes, a dangling reference issue will occur, leading to undefined behavior. int x = 10; auto lambda = [\u0026amp;x]() { std::cout \u0026lt;\u0026lt; x \u0026lt;\u0026lt; std::endl; }; x = 20; // x is modified before the lambda call lambda(); // Prints 20, captures a reference to x It\u0026rsquo;s important to ensure that the external variable is valid when the lambda executes if the execution order of the lambda is uncertain.\n","date":"2024-11-13","language":"en","permalink":"https://ttf248.life/en/p/cpp-lambda-parameter-lifetime/","tags":["c++","lambda"],"title":"C++ Lambda Expression Parameter Lifetimes","year":"2024"},{"categories":["Computer"],"content":"Picking up where we left off, I discovered that GitHub had an update, which was a little exciting. The customer service team said the issue with the driver not loading properly was resolved. However, after going through all of this – reinstalling and uninstalling – it still wasn’t working correctly.\nBackground Continuing to contact customer service to inquire about a resolution, I was informed that an engineer could provide remote assistance. However, the engineer’s working hours coincided exactly with my own, leaving me with no option but to abandon the effort. Reviewing the documentation from the previous troubleshooting issue, I decided to attempt a manual driver installation.\nObtaining Driver Installation Packages Logitech does not provide separate driver installation packages for devices. How can I obtain the driver files?\nIn conjunction with the system image package left over from the previous system reinstallation, we can reinstall the system once in a local virtual machine, and then deploy a clean copy of Ghub in the pure system, inserting the headset device into the virtual machine to find the driver path and copy it out.\nRelevant paths:\nC:\\ProgramData\\LGHUB C:\\Windows\\System32\\DriverStore\\FileRepository\\logi_audio.inf_amd64_010b035044e24be4 Device Manager The focus is on how to find the second path – let’s first briefly outline how to manually manage driver files in a Windows 11 system. This content is identified using the method of controlling variables by repeatedly plugging and unplugging devices, analyzing device information within Device Manager inside a virtual machine, and identifying three drivers that need to be handled for headphones. Two of these drivers are system-provided, while one is provided by Logitech.\nIn the second driver shown in the image, it’s provided by Logitech. Let\u0026rsquo;s analyze the current driver program for the device and then search all driver paths within the virtual machine. Of course, you first need to find files starting with “logi,” then compare the files, which will help you pinpoint the driver folder. Copying the entire folder gives you the driver installation package.\nInstalling the Driver In the device manager interface, click: Update driver, then click: Browse my computer to find drivers, and you’ll arrive at the following interface:\nOf course, when you open it, you\u0026rsquo;ll only see one driver – the standard USB driver. Select \u0026ldquo;Install from disk\u0026rdquo; and the path is the folder we copied earlier. After installation, you’ll be able to add Logitech-specific drivers in the dropdown list. Switch the device driver to the newly installed driver.\nHuman Anatomy Device-Driven These driver files are provided by the system. You only need to check if there is an exclamation mark preceding the device driver name. If there is, enter the Driver Selection interface, randomly switch to a different type of driver, and then revert it back to restore normal operation.\nCompleted The microphone volume on the headphones has been restored to normal, and the familiar in-ear functionality has returned. ","date":"2024-06-05","language":"en","permalink":"https://ttf248.life/en/p/win11-logitech-g431-headphone-driver-installation/","tags":["Logitech","troubleshooting"],"title":"Win11 Logitech G431 Headset Driver Installation","year":"2024"},{"categories":["Computer"],"content":"If you completely don\u0026rsquo;t understand these things, contacting official customer service first will also avoid wasting several hours.\nMain Text Recently, the C drive on my desktop computer, which I use for development, had run out of space. I specially took out a 256GB semi-retired solid state hard drive and used it as the C drive. Unfortunately, I kept messing around with it. Since moving to Shanghai, I’ve been busy with various things, and last week I finally took some time to reinstall the system.\nThe system reinstallation went smoothly, and installing everyday software and deploying development environments didn\u0026rsquo;t encounter any problems. A few days later, I planned to relax and play a few games when I realized that the drivers for my mouse and headphones hadn’t been installed. Both devices are from Logitech, so I downloaded the GHUB software, which can automatically identify hardware and install drivers.\nHowever, an unexpected problem occurred. The mouse driver installed successfully, but the headphone driver kept displaying “Loading…”. I suspected that the latest version of Windows 11 might be incompatible with Logitech’s drivers, causing the installation to fail. So, I started searching for information and trying to manually install the drivers, but the problem remained unresolved.\nLet\u0026rsquo;s briefly explain what the functions of these two devices’ drivers are:\nThe mouse driver is mainly used to adjust mouse movement speed and other functions. I rarely use macro functions; I just need to restore previously remembered parameters. The headphone driver primarily focuses on the headset function, which is very useful during team voice chats, allowing me to hear my own voice. Although there’s a similar listening function in the system\u0026rsquo;s microphone settings, it doesn’t perform as well as the driver implementation. Despite repeatedly trying, the headphone driver always failed to load properly. Today, I finally thought of contacting customer support to inquire about the situation and see if there were any solutions. The customer service representative told me that their servers had recently experienced an issue, causing driver downloads to be abnormal. They are currently working on resolving the problem, asking me not to panic, and promising a solution with the next update.\nAlthough the headphone driver issue hasn’t been resolved yet, at least I now know the cause, and I hope the problem can be solved as soon as possible.\nMouse Driver Settings ","date":"2024-05-31","language":"en","permalink":"https://ttf248.life/en/p/logitech-headphone-driver-installation-failure/","tags":["Logitech"],"title":"Logitech Headset Driver Installation Failed","year":"2024"},{"categories":["The Seven Seconds of a Fish"],"content":" Cancellation of Property Mortgage Interest Rate Floor Public Housing Fund (Prudential Loan) Interest Rate Will Be Reduced by 0.25% Starting Tomorrow First-Time Homebuyers Down Payment Ratio Reduced to 15% 300 Billion Yuan in Guaranteed Affordable Housing Repurchase Loans Cancellation of National-Level First and Second-Tier Commercial Personal Housing Loan Interest Rate Policy Lower Bounds The Shanghai Headquarters of the People\u0026rsquo;s Bank of China, branches of the People’s Bank of China in provinces, autonomous regions, municipalities directly under the central government, and planned cities; branches of all state-owned commercial banks, Postal Savings Bank of China, and all joint-stock commercial banks:\nIn order to implement the decision deployment of the Central Committee of the Communist Party of China and the State Council, adapt to the new supply and demand relationship in China’s real estate market and the new expectations of people for high-quality housing, and promote the stable and healthy development of the real estate market, the following matters regarding adjustments to commercial personal housing loan interest rate policies are hereby notified:\nI. The lower bounds of interest rates on commercial personal housing loans for first-tier and second-tier housing nationwide are cancelled.\nII. Branches of the People’s Bank of China at provincial levels will, in accordance with the principle of tailoring measures to local conditions, guide provincial market interest rate pricing self-regulatory mechanisms to determine independently whether to set lower bounds on commercial personal housing loan interest rates and their respective levels (if any), based on the real estate market situation within each jurisdiction and local government regulatory requirements.\nIII. Financial institutions in the banking industry shall reasonably determine the specific interest rate level for each loan, taking into account the interest rate limits determined by provincial market interest rate pricing self-regulatory mechanisms (if any) and factors such as the operating conditions of the institution and its customer risk profile.\nReducing Personal Housing Mortgage Loan Interest Rates by 0.25 Percentage Points The People\u0026rsquo;s Bank of China, Shanghai Headquarters, branches of the People’s Bank of China in provinces, autonomous regions, municipalities directly under the central government, and planned special-purpose cities; policy banks, state commercial banks, Postal Savings Bank of China, and joint-stock commercial banks:\nThe People’s Bank of China has decided to reduce personal housing mortgage loan interest rates by 0.25 percentage points, effective May 18, 2024. The interest rates for first-time and second-home personal housing mortgage loans with a term of less than 5 years (including 5 years) will be adjusted to 2.35% and 2.85%, respectively. The interest rates for first-time and second-home personal housing mortgage loans with a term of less than 5 years (including 5 years) will also be no lower than 2.775% and 3.325%, respectively.\nDown Payment Ratio Adjusted to No Less Than 15% The People\u0026rsquo;s Bank of China, Shanghai Headquarters, branches of the People’s Bank of China in provinces, autonomous regions, municipalities directly under the central government, and planned unitary cities; the Regulatory Bureau of the National Financial Supervision and Administration; all state-owned commercial banks, Postal Savings Bank of China, and all joint-stock commercial banks:\nIn order to implement the decision-making deployment of the Central Committee of the Communist Party of China and the State Council, adapt to the new supply and demand relationship in China’s real estate market and the new expectations of people for high-quality housing, and promote the stable and healthy development of the real estate market, the following matters regarding personal mortgage loans are hereby notified:\nFor residential households purchasing commercial first-time home purchases, the minimum down payment ratio for commercial personal mortgages on first-time home purchases will be adjusted to no less than 15%, and the minimum down payment ratio for commercial personal mortgages on second-time home purchases will be adjusted to no less than 25%.\nBased on this, the branches of the People’s Bank of China at each provincial level, and the派出机构 (outposts) of the National Financial Supervision and Administration will, according to the control requirements of local governments, independently determine the minimum down payment ratio limits for first-time and second-time home purchases in various cities based on a principle of tailoring policies to local conditions.\nThe Central Bank Will Establish a 30 Billion Yuan Guarantee Housing Re-Loan At 4:00 PM, representatives from the Ministry of Housing and Urban-Rural Development, the Ministry of Natural Resources, the People’s Bank of China, and the National Financial Supervision and Administration Commission gathered at a routine policy briefing by the State Council to introduce measures to effectively ensure contract fulfillment (保交房).\nAt the meeting, People\u0026rsquo;s Bank of China Vice Governor Tao Ling announced that the central bank will establish a 30 billion yuan guarantee housing re-loan facility to support local state-owned enterprises in purchasing completed but unsold commercial properties at reasonable prices for use as self-built or rental-based affordable housing. This is expected to drive an additional 50 billion yuan in bank loans.\nAccording to the People’s Bank of China, the guarantee housing re-loan term can be extended up to four times annually, with a rate of 1.75%, aimed at 21 nationwide banks. It incentivizes banks to lend to local state-owned enterprises selected by city governments to purchase completed but unsold commercial properties for use as affordable housing. The purchased properties are strictly limited to those commercially available properties built by real estate developers that have not yet been sold.\nRegarding this policy, the central bank will soon issue the Notice on Measures Concerning the Establishment of the Guarantee Housing Re-Loan Facility.\n","date":"2024-05-17","language":"en","permalink":"https://ttf248.life/en/p/promoting-real-estate-and-central-bank-four-measures/","tags":["real-estate"],"title":"Promoting Real Estate and Central Bank’s Four-pronged Measures","year":"2024"},{"categories":["AI Inspiration Hub"],"content":"Recently, the renovation project at home has led to a surge in daily expenses. I’ve also been using credit cards, paying them off within the billing cycle, although I have enough cash on hand, I prefer to keep it in money funds to earn some additional interest income. Furthermore, to ensure financial stability, I\u0026rsquo;ve set up automatic payment functionality so that my credit card bills can be paid promptly upon maturity.\nBank Status: Deposits Increase, Loans Decrease Amidst increasing economic uncertainty, people are more inclined to save rather than consume or invest. This has led to an increase in bank deposits, but it also means banks have to pay higher interest rates to depositors. Conversely, due to reduced consumer and investment activity, loan demand has decreased, making it difficult for banks to generate interest income through lending.\nTo attract and retain customers, banks are forced to offer more competitive deposit rates, further compressing the bank’s net interest margin. Simultaneously, in order to stimulate economic growth and consumption, central banks may implement policies of lowering benchmark interest rates, which will also impact bank loan rates and consequently affect their profitability.\nBanking Marketing Strategies: Cultivating User Habits The due date is almost here. First, the Bank of Communications contacted me, offering a one-year free installment payment service with no interest charges. Shortly after, China Merchants Bank also provided installment interest discounts of 2.5% off, equivalent to an annualized interest rate of 1.9%. Faced with these offers, I chose to accept installment services from both banks.\nI realized that banks are truly willing to invest heavily in cultivating user habits. According to the bank’s definition of “flow,” I should be a premium customer. In the current context of difficulty for banks in lending and deploying funds, by fostering my installment awareness, the bank is actually preparing for potential liquidity difficulties that may arise from me in the future, at which point they can earn more interest income from me. After all, as we know, interest rates on credit card bill analysis are not low.\nBanks use free installment services and low-interest installment offers to not only increase the frequency and amount of credit card usage but also to establish a positive image in the minds of users. This shift in strategy reflects the bank’s rapid response to market changes and its deep understanding of customer needs. In this way, the bank not only solves the problem of difficulty in lending and deploying funds, but also lays the groundwork for future profits – it\u0026rsquo;s not just about making money today; looking ahead is key to long-term success.\nThe Importance of Personal Financial Management Despite the appealing offers of installment financing from banks, as users, we should recognize the risks associated with over-reliance on credit card installments. We should carefully consider our repayment ability and future financial needs to avoid falling into long-term debt traps due to short-term financial convenience. Key to personal financial management is balancing current needs with future planning.\n","date":"2024-03-31","language":"en","permalink":"https://ttf248.life/en/p/bank-marketing-personal-finance-balance/","tags":[],"title":"Balancing Bank Marketing Strategies with the Art of Personal Financial Management","year":"2024"},{"categories":["AI Inspiration Hub"],"content":"In today’s digital age, games have evolved far beyond a simple form of entertainment and become an integral part of people\u0026rsquo;s daily lives. From a psychological perspective, games play different roles in the mental development of individuals across various age groups, while also being closely intertwined with social and recreational activities.\nMental State Young people are in the stage of self-exploration and identity formation. Games provide them with a low-cost environment to try and explore. Through games, they can experiment with different roles and lifestyles, satisfying their curiosity and desire for exploration. As they grow older, individuals’ interests and values gradually stabilize, and games may no longer align with their life goals and interests.\nSocial Attributes Simultaneously, the game has also become a part of social activities, particularly for young people. They make friends and build social networks through games, making games a bridge for socialization. However, as people age, their social circles gradually stabilize, and social needs may be met through more mature ways, leading to a relative reduction in the role of games in socialization.\nSocial Attributes: Bringing a Sister Within China, due to a lack of education regarding romantic relationships, parents often simply expect you to study diligently and then immediately focus on finding a partner after graduation. This phenomenon is quite common.\nBecause of busy studies, work, or a lack of social skills, individuals are unable to establish stable emotional relationships in real life, leading to feelings of loneliness and a desire for attention. The “bringing a sister” behavior within games provides them with an outlet to release this craving. By helping and protecting female players, they can experience being needed and valued, achieving emotional satisfaction.\nFurthermore, the interactive rules within games are clearly defined, and the environment is controllable, offering a sense of certainty and security compared to the complexity and uncertainty of real life, reducing fear of the uncertainties in real-life interactions. However, long-term reliance on virtual gratification within games can potentially impact their ability to build and maintain healthy emotional relationships in reality.\nReal-World Pressure Games provide a virtual world where players can temporarily escape the pressures, challenges, or unpleasant emotions of real life. Particularly for young people facing academic pressure, family issues, or interpersonal relationship challenges, games may become a way to seek comfort and relaxation.\nGames are typically designed to give players a sense of accomplishment and recognition when completing tasks, leveling up, or defeating opponents. Young people may become addicted to games because they can experience a feeling of being appreciated and recognized within them – a feeling that may be lacking in their real lives.\nDislike Playing After Getting Older When young, individuals face relatively fewer social responsibilities and pressures, allowing them more time and energy to invest in gaming. As they enter the workforce or start families and other social responsibilities increase, time and energy become more valuable, and games may be seen as a drain on resources rather than a prioritized leisure activity.\nAs people age, their cognitive abilities and interests also change. They might have been interested in fast-paced, visually stunning games when younger, but with increased experience, they may prefer strategy games, those with strong storylines, or games with greater depth. If the market doesn’t meet these changing needs, interest naturally diminishes.\n","date":"2024-03-30","language":"en","permalink":"https://ttf248.life/en/p/games-multidimensionality-psychological-development-social-entertainment/","tags":["game","psychology","social-media"],"title":"The multifaceted nature of gaming: the intersection of psychological development and social entertainment.","year":"2024"},{"categories":["Financial Knowledge Base"],"content":"The fluctuations in the Renminbi exchange rate and the decline in the A-share market may be related to the dynamics of global central banks, the unexpected interest rate cut by the Swiss Central Bank, the performance of U.S. economic data, and adjustments in market expectations regarding inflation and interest rate cuts. These factors jointly acted on the foreign exchange market and stock market, leading to fluctuations in the Renminbi and the decline in the A-share market.\nBased on the provided link content, on March 22, 2024, the Renminbi experienced significant volatility. Here’s a detailed breakdown:\nDollar/Offshore RMB Exchange Rate Breaks Through: At opening, the Renminbi weakened, with the dollar-offshore RMB rising to a high of 7.24926 and the on-shore RMB rising to a high of 7.22360, both breaking new highs since November 17, 2023. As of the time of release by Lianhe Chat, the dollar-offshore RMB broke through the 7.26 mark, with the lowest reported at 7.2639 and the trend remained unchanged.\nCentral Bank Mid-Exchange Rate Adjustment: On March 22nd, the central bank announced the Renminbi’s midpoint exchange rate against the dollar at 7.1004, a devaluation of 62 basis points, with the adjustment magnitude expanded.\nA-Share Market Reaction: Affected by various factors, the three major A-share indices opened low and continued to fall, with declines exceeding 1% overall.\nReasons for Volatility in the Foreign Exchange Market: A senior foreign exchange trader from a Hong Kong investment institution stated that the volatility in the foreign exchange market was mainly due to the unexpected interest rate cut by the Swiss Central Bank boosting the dollar, coupled with strong U.S. economic data and the potential persistence of inflation delaying interest rate cuts, leading to an increase in the Dollar Index.\nGlobal Central Bank Dynamics: This week is the “Super Central Bank Week” for global markets, with the central banks of the United States, Japan, Britain, Australia, and other countries all announcing interest rate decisions this week. The Swiss Central Bank unexpectedly announced a cut in interest rates, becoming the first G10 currency central bank to cut rates since the outbreak of the pandemic, which broke the market balance.\nForecast for Renminbi Trend: Zhou Miaohua, researcher at Light Industry Bank’s Financial Market Department, stated that despite some fluctuations in the Renminbi recently, the overall magnitude is significantly smaller than that of major currencies such as the dollar, and short-term volatility will not change the RMB\u0026rsquo;s trend of steady appreciation throughout the year.\n","date":"2024-03-23","language":"en","permalink":"https://ttf248.life/en/p/renminbi-exchange-rate-volatility/","tags":["exchange-rate","renminbi","forex","a-stock","central-bank","dollar-us"],"title":"The Renminbi exchange rate has experienced significant fluctuations, breaking above 7.26.","year":"2024"},{"categories":["Computer"],"content":"In Python programming, a dictionary is a very powerful data structure that allows us to associate key-value pairs and efficiently search and manipulate these data. When we try to store custom objects in a dictionary, we often encounter a crucial concept: In Python, object assignment is actually reference assignment, not a deep copy of the object itself. This means that when you put a custom object into a dictionary, the dictionary stores a reference to that object, rather than a brand new copy of the object.\nBasic Example of Storing Custom Objects Let\u0026rsquo;s consider a simple Person class:\nclass Person: def __init__(self, name, age): self.name = name self.age = age # Create a Person object p1 = Person(\u0026#34;Alice\u0026#34;, 30) # Store the object in a dictionary people_dict = {} people_dict[\u0026#34;alice\u0026#34;] = p1 In this example, the people_dict dictionary now contains an item with a key \u0026quot;alice\u0026quot; and its value is a reference to the Person type object p1. If we modify the properties of this object:\np1.age = 31 Then when accessing this object through the dictionary, we will find that its age has also been updated:\nprint(people_dict[\u0026#34;alice\u0026#34;].age) # Output: 31 This is because the dictionary stores references to Person objects rather than independent copies of them. It stores a reference to the same memory address.\nDeep Copy vs. Shallow Copy This referencing behavior can lead to unexpected results when dealing with nested data structures or custom objects. For example, if a custom object contains mutable attributes (such as lists or another custom object), directly storing such an object in a dictionary and modifying it will affect the object obtained through the dictionary.\nclass Address: def __init__(self, street, city): self.street = street self.city = city class Person: def __init__(self, name, age, address): self.name = name self.age = age self.address = address address = Address(\u0026#34;Main St.\u0026#34;, \u0026#34;Springfield\u0026#34;) p1 = Person(\u0026#34;Bob\u0026#34;, 40, address) people_dict[\u0026#34;bob\u0026#34;] = p1 # Modify the original address object address.city = \u0026#34;Shelbyville\u0026#34; # The person in the dictionary\u0026#39;s address also changed print(people_dict[\u0026#34;bob\u0026#34;].address.city) # Output: Shelbyville Solution: Deep Copy\nTo avoid problems caused by shared state, we sometimes need to ensure that the dictionary stores a complete copy of the object, rather than a reference to it. Python provides the copy module\u0026rsquo;s deepcopy function to achieve this goal:\nimport copy # Use deep copy to store objects people_dict[\u0026#34;bob_deepcopy\u0026#34;] = copy.deepcopy(p1) # Now even if you modify the original address object, the deep copied object is not affected address.city = \u0026#34;Capital City\u0026#34; print(people_dict[\u0026#34;bob\u0026#34;].address.city) # Output: Capital City print(people_dict[\u0026#34;bob_deepcopy\u0026#34;].address.city) # Output: Shelbyville In summary, when using dictionaries to store custom objects in Python, be sure to pay attention to the fact that they default to storing object references. For situations where you need to maintain independent states, use deepcopy to perform a deep copy to avoid unexpected data changes due to shared referencing.\n","date":"2024-03-22","language":"en","permalink":"https://ttf248.life/en/p/python-dictionary-custom-objects-reference-vs-deepcopy/","tags":["python"],"title":"Python Dictionary Storage of Custom Objects: The Importance of References vs. Deep Copies","year":"2024"},{"categories":["The Seven Seconds of a Fish"],"content":"315 actually did not report on “chicken mud,” and this issue itself has been confusing the official exposure of CCTV’s 3·15 Gala with other food safety hotspots that occurred concurrently.\nZhihu Answer: Journalism The 315 evening event mentioned nine manufacturers, and none of them included potato starch (daoniansan). Now, the major brands that were nominated have lost all heat, while this potato starch – which is a national staple (found on almost every street food corner across China with a large number of stalls, likely the most prevalent) – has been brought out to argue and it feels like potato starch is being entirely scapegoated. I’ve looked at online news sources; CCTV released a report on ham on 3.15, listing only a few manufacturers\u0026rsquo; ingredients, and none of those manufacturers were primarily producers of potato starch. There was nothing obviously wrong with their ingredients, and then this reporter used information from an employee at one factory who said they sometimes use chicken bone meal to substitute for meat – something that was rumored – and she went to inquire on Taobao about pet food suppliers selling chicken bone meal: “Can people eat it?” This isn’t a stupid question, is it? They dare to sell it to pets? Then rumors spread that potato starch contained chicken bone meal.\nNow, many factories are likely to close down, and tens of thousands of small street vendors across the country face the situation of having goods unsold and no business.\nReal Life on Earth According to Xiaoxiang Morning News reports on March 17th, the day after the “stuck starch tube collapse” incident in Sanmenxia, Henan, an elderly woman set up a stall selling starch tubes two days later, but after two hours, she still didn’t attract any customers and ultimately quietly ate the starch tubes herself. The photographer said that he himself usually eats four or five starch tubes at once, but after learning that the starch tubes contained chicken bone mud, he refused to eat them. That day, out of curiosity about whether anyone would still buy her sausages after they were exposed, he saw that the vendor hadn’t sold a single tube in two hours.\nThe aunt didn\u0026rsquo;t know anything about the starch tube incident; she only knew that suddenly no one was buying her grilled sausages today.\nThe elderly woman was right; she was just trying to make a living, and the elderly woman didn’t even know if the product had any problems or whether it was qualified, nor did she know what bone mud was. She didn\u0026rsquo;t know about the internet; she was simply a bottom-level person finding ways to survive.\nThe starch tubes collapsed, but the bill was paid by one after another of bottom-level vendors. It’s a painful process.\nZhihu Answer: Regulatory Issues A few years ago, during an afternoon, my colleague who was working in Beijing and I went to have lunch. We passed by a small stall selling sausages and sizzling beef skewers.\nI blurted out, “With all this black technology starch sausage and sizzling beef, are people even going to eat it?” Because in my view, the last time I ate a starch-based ham sausage was probably about fifteen years ago.\nMy colleague hesitated and then said tactfully, \u0026ldquo;Maybe you\u0026rsquo;ve been living in a big city. Actually, in our hometown, pickled cabbage, instant noodles, and ham sausages are everyday staples.\u0026rdquo;\n“When I was in school, my dad would only let me have a sausage on the road if I got full marks. It wasn’t because they were unhygienic; sausages simply cost 1.5 yuan, enough to buy two pounds of vegetables.”\n“The way we call instant noodles, carbonated drinks, and spicy strips ‘junk food’ – I only learned about that after coming to Beijing for school.”\nI realized how arrogant my casual words had been and stopped talking. But this incident left a deep impression on me.\nIn reality, this is the daily life of most Chinese people.\nTheir lives don\u0026rsquo;t include fancy “Mediterranean diets,” “green organic vegetables,” or “non-GMO soybeans.” They only care about whether they can buy some cheap and delicious vegetables, meat, and snacks, and enjoy the few moments of happiness their families have.\nThey’re curious about what ingredients make up the things on shelves, whether they might harm their health, and if there are any strange chemical components.\nIt\u0026rsquo;s simply not something they should be concerned with or understand.\nThey simply believe that if there’s a problem, someone should be in charge, and it shouldn’t appear on the shelves.\nBut after watching a 315 episode, we realized that wasn’t the case.\nHigh-tech modifications were found in electronic scales and gasoline pumps, requiring YouTubers to take videos risking beatings to expose them, allowing regulators to “suddenly realize” and investigate;\nThe pork belly and starch sausages sold on live streams and small stalls turned out to be made with rotten meat and bone meal, requiring CCTV reporters to go undercover and film before anyone verified the source and tracked it down;\n“Health wines” heavily promoted on television and airport advertisements needed someone to expose their entire backstory through videos before they were urgently removed overnight, disappearing from the public’s sight.\nOnce a year\u0026rsquo;s 315 event, every six or seven products are randomly pulled – is that enough?\nHow do you find those who have already eaten or bought them?\n","date":"2024-03-18","language":"en","permalink":"https://ttf248.life/en/p/sausages-and-street-vendors-capital-news-influence/","tags":[],"title":"Starch noodles and roadside stalls: The new influence of capital’s news.","year":"2024"},{"categories":["Computer"],"content":"Want your home network to be lightning fast? The key is understanding cable selection, optical terminals (ONTs), and router configuration, as well as those seemingly insignificant details. This blog post will guide you through easily learning how to build a gigabit network using six types of cables, and how to ensure your network speed isn\u0026rsquo;t restricted by simple device checks and configurations. Let’s explore together and make your home network fly!\nChapter 1: An In-Depth Analysis of Network Transmission Media When discussing achieving gigabit network access, the carrier that supports high-speed information transmission – cables – plays a crucial role. Below we will provide detailed interpretations of Cat5, Cat6, and Cat7 cables.\n1. Five-Category Cables (CAT5) CAT5 cables, also known as CAT5, are an earlier and more widely adopted type of twisted pair cable. Each pair of wire pairs is designed with a precise helical structure to reduce crosstalk. It’s primarily used for 10/100Mbps Fast Ethernet, with a maximum transmission frequency of approximately 100MHz. While it was once widely applied, CAT5 cables cannot meet current demands for gigabit and even higher speeds due to physical limitations.\n2. Six-Category Cables (CAT6) With the development of technology, six-category cables have emerged. Compared to five-category cables, six-cable materials adopted stricter manufacturing standards and more advanced structural designs, significantly improving anti-interference capability and transmission efficiency, supporting data transfer rates up to 1Gbps, and with a transmission distance of up to 100 meters under ideal conditions, which perfectly meets the access requirements of Gigabit networks.\n3. Seven-Category Cables (CAT7) Seven-category cables represent the current cutting edge of twisted pair cabling technology. It not only offers a significant leap in transmission rates, theoretically supporting speeds up to 10Gbps, but also incorporates a complete shielding system, including shielding between each pair and overall external shielding, which greatly reduces external electromagnetic interference and near-end crosstalk, ensuring data transmission stability and accuracy. However, CAT7 cables are primarily used for future 10 Gigabit Ethernet or specific high-requirement scenarios.\nWhen setting up a gigabit home network environment, choosing six-category cables is the most economical and efficient choice to fully unleash the potential of the gigabit fiber optic. Furthermore, ensuring that all cabling materials meet quality standards and strictly adhering to standard wiring practices are also crucial elements in guaranteeing network performance.\nChapter Two: Deep Dive into Core Network Devices – The Impact of Optical Cat (PON) and Router LAN Port Bandwidth The Importance of Optical Cat (ONT) and its LAN Port Bandwidth An Optical Cat, or Optical Network Terminal (ONT), is the core device for home broadband access. Its function is to convert optical signals from fiber optic cables into digital signals for use by home network devices. For users with gigabit fiber connections, whether the ONT supports gigabit transmission is particularly important. If the ONT’s WAN port only supports 100 Mbps, even if the incoming fiber rate is high, it will be limited to 100 Mbps due to this bottleneck. Similarly, the ONT’s LAN port also needs to have a gigabit output capability; otherwise, routers or other devices connected to it cannot obtain the true gigabit rate.\nThe Role of Bandwidth on Router LAN Ports The router’s LAN ports are responsible for distributing the data received to various terminal devices. When a router\u0026rsquo;s LAN port is only 100 Mbps, even if other devices are configured well, it can only achieve 100 Mbps local network communication. Therefore, when building a Gigabit home network, it’s crucial to ensure that the router’s WAN port can receive 1 Gbps data and that the LAN ports also provide data output capabilities at the Gigabit level, allowing all smart devices in your home to enjoy the smooth experience brought by high-speed networks.\nFurthermore, it\u0026rsquo;s important to note that some older or low-end routers may have a LAN port rate auto-negotiation mechanism, which means that even if the router itself supports 1 Gbps, it might be downgraded to 100 Mbps mode due to cable issues, device compatibility, and other factors. Therefore, correctly configuring router parameters, enabling forced Gigabit mode, and pairing it with a Gigabit switch or direct connection devices are key steps in achieving a full Gigabit network.\nAfter upgrading to gigabit fiber optic, be sure to check and replace them with a gigabit optical gateway and a gigabit router, ensuring that all device interfaces reach the Gigabit level.\nChapter Three: The Hidden Mystery – How a Broken Subline Impacts Gigabit Network Speed Line Fault and Network Performance Degradation During the speed tests, the network consistently maintained a connection without any apparent disconnects. As it was a newly deployed broadband for residential customers, the distribution box was cluttered with equipment, and the technician frequently adjusted the fiber optic ONT’s cabling and power adapter placements. This occasionally resulted in speed test results reaching gigabit speeds.\nBased on the previous analysis, we had already investigated and ruled out network cable types and ONT LAN port speeds. Ultimately, the culprit was discovered to be a brown sub-cable within the network cable that had fractured.\nThe cause of the break: When the technician installed the crystal head, he applied a little too much force, causing one of the sub-cables to snap in half. It wasn’t completely severed, and subsequent adjustments to the ONT position caused it to eventually break off entirely.\nSix Category Cable Lines Function Analysis Six category cables adhere to the TIA/EIA-568-B standard and contain eight twisted pairs of wires, color-coded as follows:\nWhite Orange / Orange White Green / Green White Blue / Blue White Brown / Brown Under the standard of Gigabit Ethernet (1000BASE-T), these eight lines consist of four pairs working simultaneously, with the following division of labor:\nThe White Orange and Orange pair of wires (1\u0026amp;2) is used for transmitting data (Tx+/-); The White Green and Green pair of wires (3\u0026amp;6) is used for receiving data (Rx+/-); The White Blue and Blue pair of wires (4\u0026amp;5) and the White Brown and Brown pair of wires (7\u0026amp;8) were not originally primary in Gigabit Ethernet, but may be enabled in certain advanced applications (such as some PoE power delivery or future technology expansions). In traditional 100 Mbps networks, only four lines – 1, 2, 3, and 6 – could be used. Impact of Breakaway Pairs on Network Speed In the above scenarios, if a brown sub-cable (i.e., a brown or brown-white wire) breaks, theoretically it will cause speed degradation in gigabit networks, as gigabit networks require all four pairs of wires to transmit bidirectionally simultaneously to achieve full speed. However, due to the automatic negotiation function often found in home network devices, when a cable issue is detected, they will revert to a lower operating mode that can still function normally, namely 100 Mbps mode. This explains why even with a broken sub-cable, the network remains connected and operates at 100 Mbps speeds.\nIn short, while a broken brown sub-cable does not affect the basic operation of a 100 Mbps network, it can become a key limiting factor for network speed in a gigabit environment. Until thorough diagnostics and repairs are performed, the full potential of a gigabit fiber optic cable cannot be realized. This also reminds us that when encountering similar situations, we should not ignore any potential network infrastructure issues, even seemingly minor faults that do not affect basic connectivity, as they can become hidden obstacles to high-speed network performance.\n","date":"2024-03-18","language":"en","permalink":"https://ttf248.life/en/p/gigabit-fiber-slow-speed/","tags":["network","troubleshooting"],"title":"Why does a newly installed gigabit fiber to the home (FTTH) connection only test at 100 Mbps?","year":"2024"},{"categories":["Computer"],"content":"When developing desktop applications, particularly when using the Windows Presentation Foundation (WPF) framework to build rich client applications, properly handling the user interface (UI) thread is crucial for ensuring the application’s smoothness and responsiveness. The UI thread, also known as the main thread, is the core thread responsible for processing window and control events, layout calculations, and rendering the UI. Any interaction with UI elements should be executed on the UI thread; this is a fundamental principle followed by WPF and most other GUI frameworks.\nWhat is the UI Thread? The UI thread is created by the operating system when a WPF application starts and initializes the main application window. It’s the only thread within the application that can directly access and modify the state of UI components. This means all user interactions, such as button clicks, text box input, and window size changes, are processed in this thread context. Furthermore, WPF\u0026rsquo;s dependency property system, data binding mechanism, and layout logic are all synchronized on the UI thread.\nScreen Stuttering and Its Causes When the UI thread is heavily occupied or blocked for an extended period, such as when performing time-consuming calculations, loading large amounts of data, database queries, or other I/O-intensive tasks, it becomes unable to promptly respond to user interaction requests. This results in the UI freezing – what we commonly refer to as \u0026ldquo;stuttering.\u0026rdquo; In this situation, users will noticeably feel the application\u0026rsquo;s lag and lack of fluidity, and in severe cases, an “Application Not Responding” (ANR) warning may appear.\nTwo Basic Rules for the UI Thread To avoid the above scenarios, WPF developers should adhere to the following two key rules:\nDo not perform time-consuming operations on the UI thread: Any operation that could cause the UI thread to block should be moved to a background thread as much as possible to ensure the UI thread can promptly respond to user input and render screen changes.\nDo not directly update UI elements from non-UI threads: Due to WPF’s security mechanism design, only the UI thread has permission to modify UI elements. Attempting to change UI state directly from another thread will throw an exception. Therefore, even if a background thread completes calculations or data preparation, you must use appropriate cross-thread communication mechanisms to display the results on the UI.\nSolutions: Asynchronous Programming and Thread-Safe Updates To execute time-consuming tasks while maintaining UI fluency, WPF provides various asynchronous programming models and tools to assist developers in achieving this goal:\nDispatcher Object: The WPF Dispatcher class allows you to schedule work items into the UI thread\u0026rsquo;s task queue for execution. You can use the Dispatcher.Invoke or Dispatcher.BeginInvoke methods to safely update the UI from a background thread. async/await Keywords: Leveraging C#’s asynchronous features, you can write asynchronous methods and utilize the await keyword within them to wait for background tasks to complete, automatically returning to the UI thread to execute subsequent UI update code upon completion. Case Studies Updating the UI using Dispatcher.Invoke method private void Button_Click(object sender, RoutedEventArgs e) { // Assume this is a time-consuming operation Task.Run(() =\u0026gt; { var result = LongRunningOperation(); // This is a simulated long-running calculation method // When the time-consuming operation is complete, update the UI on the UI thread Application.Current.Dispatcher.Invoke(() =\u0026gt; { LabelStatus.Text = $\u0026#34;Calculation Result: {result}\u0026#34;; }); }); } private string LongRunningOperation() { // Simulate a long-running operation Thread.Sleep(5000); return \u0026#34;Completed\u0026#34;; } Using the async/await keyword with Task.Run private async void Button_ClickAsync(object sender, RoutedEventArgs e) { Button button = sender as Button; button.IsEnabled = false; // Prevent duplicate clicks by the user try { // Start a background task var result = await Task.Run(() =\u0026gt; LongRunningOperation()); // Automatically switch back to the UI thread to update the UI after the background task completes LabelStatus.Text = $\u0026#34;Calculation Result: {result}\u0026#34;; } catch (Exception ex) { MessageBox.Show($\u0026#34;An error occurred: {ex.Message}\u0026#34;); } finally { button.IsEnabled = true; // Re-enable the button } } ","date":"2024-03-12","language":"en","permalink":"https://ttf248.life/en/p/wpf-ui-thread-and-freezing-solutions/","tags":["wpf","c#","troubleshooting"],"title":"WPF UI Thread Blocking Issues and Solutions","year":"2024"},{"categories":["Computer"],"content":"In the same business code scenario, the program compiled and ran normally in a CentOS 7 environment. However, when switching to CentOS 8 and using an updated version of GCC for compilation, the program crashed. It’s worth noting that the issue only occurs in Release mode, while Debug mode does not exhibit any problems. This is the first time we\u0026rsquo;ve encountered a situation like this; after three days of investigation, we finally identified the root cause.\nProblem Identification After investigation, the root cause of the issue was the function lacked a return value. In Release mode, new versions of GCC perform more optimizations, which caused an unknown logic to occur within the function that originally did not have an explicit return value during execution, ultimately triggering a crash. Our conclusion is that compiler warnings should not be ignored, especially in legacy projects where some warnings may be dismissed, but it’s also important to avoid suppressing all warnings.\nEnvironment Details CentOS 7 GCC Version: CentOS 8 GCC Version: Crash Phenomena When analyzing the stack information for program crashes, we observed the following stack details:\n[New LWP 1385902] [Thread debugging using libthread_db enabled] Using host libthread_db library \u0026#34;/lib64/libthread_db.so.1\u0026#34;. Core was generated by `./pstack_main`. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007ffe894b4420 in ?? () (gdb) bt #0 0x00007ffe894b4420 in ?? () #1 0x00000000004008e9 in main () This stack doesn\u0026rsquo;t appear intuitive; the crash function’s stack information shows a ??, which makes troubleshooting even more complex.\nCode Example To better understand the issue, here is a minimal code example that reproduces the crash:\n#include \u0026lt;iostream\u0026gt; #include \u0026lt;map\u0026gt; int test() { std::cout \u0026lt;\u0026lt; \u0026#34;1\u0026#34; \u0026lt;\u0026lt; std::endl; } int main() { test(); return 0; } The test() function in this code clearly does not explicitly return a value, and its return type is int. According to the C++ standard, when a function is declared as an int type, it must have a return value, otherwise it may lead to undefined behavior.\nCompilation Warning In our project, the CMake script suppresses many compile-time warnings, including the following:\n/root/pstack/main.cpp: In function ‘int test()’: /root/pstack/main.cpp:7:1: warning: no return statement in function returning non-void [-Wreturn-type] This warning indicates that the test() function does not return a value, which is the root cause of the problem. Newer versions of GCC (such as 8.5.0) may make unstable optimizations with this undefined behavior when optimizing code, potentially leading to program crashes.\nAssembly Code Differences To explain the differences in GCC compiler optimization behavior, we compared assembly code generated by different versions of GCC:\nGCC 4.8.5 Generated Assembly Code:\nThe assembly code is relatively verbose and includes handling logic for standard output streams (such as std::cout). This indicates that the compiler performed more conservative optimizations, not optimizing excessively for the missing return value issue in the test() function, possibly to avoid a crash.\nGCC 8.5.0 Generated Assembly Code:\nThe new version of GCC performed more optimizations, reducing the code volume. However, this optimization may have resulted in unpredictable behavior when executing functions without returning values, leading to program crashes.\nConclusion Through this troubleshooting process, we deeply realized that in C++, function return values must be explicit, particularly when a function is declared as int, a return value must be provided. When upgrading from older versions of compilers to newer versions of GCC, more optimization and stricter warning mechanisms may be encountered. Therefore, we recommend not disabling all warnings during compilation, but rather selectively addressing them, especially common issues such as function return values and type matching. Ultimately, by adding a return value to the test() function, the problem was resolved, and the program returned to normal operation.\n","date":"2024-03-10","language":"en","permalink":"https://ttf248.life/en/p/gcc-upgrade-causes-program-crash-code-irregularities/","tags":["c++","linux","troubleshooting"],"title":"Upgrading the GCC version caused program crashes: hidden issues due to code non-compliance.","year":"2024"},{"categories":["Computer"],"content":"Background: The business system, running in Windows version, is deployed locally and consumes approximately 5% of CPU resources. The Linux version of the business system, deployed within a VMware-installed CentOS8 environment, exhibits abnormal resource consumption.\nProblem Description Host Machine: Windows 10 Enterprise VMware: 17.5 Virtual Machine: CentOS8 The virtual machine resource allocation is 4C8GB, running the business system. The business system is deployed in the Linux system within the virtual machine, and the internal top command observes system resource usage. CPU utilization is not high, while the external Windows system’s Task Manager shows very high CPU resource consumption. Examining processes reveals that the VMware process consumes a large amount of CPU resources. +\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;+ | Windows | | | | +\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026ndash;+ | | | VMware | | | | Program | | | +\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026ndash;+ | | | +\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;+\nKey Concepts Troubleshooting this issue wasn’t smooth, as the root cause wasn\u0026rsquo;t the business system itself but the virtual machine. How to shift thinking from conventional business code to system load, then from abnormal load data to pinpoint a soft interrupt, and finally arrive at the critical point – what factors affect VMware soft interrupt efficiency? This article will first introduce various concepts and then provide solutions.\nHyper-V The virtualization technology for Windows operating systems underwent a significant transformation. When Microsoft initially released WSL, enabling the Hyper-V service would prevent VMware virtual machines from working simultaneously. It wasn\u0026rsquo;t until subsequent versions that VMware could be compatible with the Hyper-V service.\nSystem Load In Linux systems, \u0026ldquo;load\u0026rdquo; refers to the number of processes currently running or waiting to be executed. The load is typically represented by three numbers: the average process count in the run queue over 1 minute, 5 minutes, and 15 minutes respectively. These numbers can be viewed by running the uptime command or the top command.\nSpecifically, these three numbers represent:\n1-minute load: The average number of processes in the run queue over the past 1 minute. 5-minute load: The average number of processes in the run queue over the past 5 minutes. 15-minute load: The average number of processes in the run queue over the past 15 minutes. The meaning of the load is the number of processes waiting to be executed within the system. If this number exceeds the logical CPU count for the system, it indicates a high system load, meaning many processes are waiting for processor resources. This can cause the system to become slow or unresponsive, depending on the severity of the load and the configuration and performance of the system.\nIdeally, the load should remain within the logical CPU count range to optimize system performance. If the load consistently exceeds the CPU count, it may be necessary to further analyze processes in the system to identify the cause of the high load and take appropriate measures to adjust system resource allocation or optimize how processes run.\nAnalyzing Load with mpstat The mpstat command is used to report multiple pieces of information about one or more processors, including average load, CPU utilization, interrupts, and context switches. Within the sysstat package, mpstat is a valuable tool for analyzing system load conditions. Here\u0026rsquo;s how to perform load analysis using mpstat:\nInstall sysstat: If sysstat isn’t installed on your system, use your system\u0026rsquo;s package manager to install it. Run mpstat: Use the mpstat command to view CPU usage and load. By default, mpstat displays CPU utilization averages once per second. You can adjust the output frequency by specifying an interval. For example, to run mpstat at a rate of one time per second, use the following command: mpstat -P ALL 2, where irq represents interrupt resource usage. Analyze Output: The output from mpstat includes CPU utilization for each processor, as well as the system\u0026rsquo;s average load. Pay particular attention to the average load and the utilization of each CPU to understand the system’s load conditions. If the load is high, further analysis can be done to determine which processes are causing it and whether there are any performance bottlenecks. Combine with Other Tools: In addition to mpstat, you can use tools like sar, pidstat, and iostat to comprehensively analyze system performance. By combining the outputs of multiple tools, you can gain a more complete understanding of the system’s load conditions and identify the root causes of performance issues. Interrupt This section doesn\u0026rsquo;t elaborate on the content too much, Recommended: System Guide for Application Developers - CPU Part - Soft Interrupt Frequent triggering of soft interrupts will also be reflected in system load.\nTroubleshooting Considering that analysis solely from the CPU perspective couldn’t pinpoint the issue, should we start to suspect that the system had become abnormal? It might be due to excessive load on the Linux operating system, causing VMware to consume an unusually high amount of CPU resources. By using mpstat to analyze local virtual machines, we found that irq utilization was abnormally high, approaching 25% per core, while in normal circumstances, when business processes were idle, irq should have accounted for approximately 5%.\nIn a colleague’s development environment within the group, his CentOS 7 was deployed on VMware with normal resource usage. Conversely, in the Shanghai development environment, although also running on VMware, we couldn\u0026rsquo;t directly observe the host machine’s CPU resource situation. At this point, we faced multiple variables: VMware virtual machines, the Linux operating system, and the GCC version.\nShifting our focus to the test environment, the Shenzhen test environment was deployed on a physical machine running low-version GCC compiled services and was running on CentOS 8. Interestingly, in the Shenzhen environment, irq utilization was normal.\nTo investigate potential issues introduced by the GCC version, we deployed a program compiled with a high-version GCC to the Shenzhen environment for testing, which also yielded normal results.\nThe problem seemed to become clearer, and we began to suspect that the operating system might be experiencing an issue. After all, CentOS 8 is no longer officially supported. Even after deploying clean CentOS 7 and CentOS 8, the problem persisted.\nAt this point, we started to suspect the only remaining uncertainty: the VMware virtual machine software itself. Suddenly, a flash of insight occurred – could we have inadvertently enabled Hyper-V previously without fully disabling it, thereby causing this issue? After all, interrupts are also implemented through virtualization software. Do different virtualization technologies have bugs? These questions deserved in-depth consideration and investigation.\nConclusion According to the Microsoft official documentation, after completely disabling the Hyper-V service on the machine as described, VMware recovered normal operation on the host. This finally resolved the issue. As initially stated, this experience was convoluted and arduous, requiring comprehensive analysis and judgment. It was also our first time troubleshooting and pinpointing the problem down to the virtual machine level.\nDisable-WindowsOptionalFeature -Online -FeatureName Microsoft-HyperV-Hypervisor bcdedit /set hypervisorlaunchtype off https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/application-management/virtualization-apps-not-work-with-hyper-v ","date":"2024-03-10","language":"en","permalink":"https://ttf248.life/en/p/vmware-virtual-machine-cpu-usage-anomaly/","tags":["vmware","troubleshooting"],"title":"VMware Virtual Machine CPU Resource Usage Anomaly","year":"2024"},{"categories":["Computer"],"content":" This article aims to reveal the potential for program crashes when `std::map` containers are incorrectly used in C++ programming. Specifically, attempting to access a non-existent key using bracket operator automatically adds an empty element. We will delve into this misunderstanding and demonstrate its potential risks through example code. Storing simple values poses no problem; however, if you store pointers, issues arise. Because a pointer is an address, and if it\u0026#39;s not initialized, the address is undefined, leading to program crashes. Text In the C++ standard library, std::map is an associative container that stores elements in ascending order of keys (key) and provides efficient keyword lookup functionality. However, novice developers sometimes fall into trouble because they misunderstand the behavior of the square bracket operator [] in std::map. In fact, when using [] to access a non-existent key, std::map inserts a new key-value pair, and the default constructor will be used to initialize the value type corresponding to that key.\n#include \u0026lt;iostream\u0026gt; #include \u0026lt;map\u0026gt; int main() { std::map\u0026lt;std::string, int\u0026gt; myMap; // Incorrect usage: assuming here that we are trying to access a non-existent key and assume it will return 0 std::cout \u0026lt;\u0026lt; \u0026#34;Value for \u0026#39;nonexistent_key\u0026#39;: \u0026#34; \u0026lt;\u0026lt; myMap[\u0026#34;nonexistent_key\u0026#34;] \u0026lt;\u0026lt; std::endl; // In fact, the above line of code creates a new key-value pair, where the value is initialized by the default constructor of int (usually 0) return 0; } Although the above code does not directly cause the program to crash, this implicit insertion behavior can lead to unexpected side effects in some cases, such as resource leaks or changes that do not meet expectations. Worse still, in a multithreaded environment, concurrent access to uninitialized memory areas may even cause the program to crash.\nTo prevent these problems, it is recommended to use std::map::find() or std::map::count() methods to check if the key exists, or explicitly insert elements using std::map::insert():\nstd::map\u0026lt;std::string, int\u0026gt; safeMap; if (safeMap.count(\u0026#34;nonexistent_key\u0026#34;) == 0) { std::cout \u0026lt;\u0026lt; \u0026#34;Key does not exist.\u0026#34; \u0026lt;\u0026lt; std::endl; } else { std::cout \u0026lt;\u0026lt; \u0026#34;Value for existing key: \u0026#34; \u0026lt;\u0026lt; safeMap[\u0026#34;nonexistent_key\u0026#34;] \u0026lt;\u0026lt; std::endl; } // Or explicitly insert a key-value pair, specifying the initial value safeMap.insert({ \u0026#34;new_key\u0026#34;, 0 }); If the map container stores objects of pointer type, the implicit insertion behavior will save an uninitialized pointer, and any operation on this pointer will cause the program to crash.\n","date":"2024-03-10","language":"en","permalink":"https://ttf248.life/en/p/cpp-programming-traps-std-map-crash-details/","tags":["c++","troubleshooting"],"title":"C++ Programming Traps: A Detailed Explanation of Program Crashes Caused by Improper Use of `std::map`","year":"2024"},{"categories":["Computer"],"content":"In software development and operations, deadlocked processes are frequently encountered. This situation can lead to performance degradation or service unavailability. This article introduces how to use the pstack tool to troubleshoot deadlocked process issues by analyzing process stack information to identify the root cause and resolve it.\nBackground: A child service within the risk control system experienced a deadlocked state, resulting in the unavailability of the risk control service. Due to the lack of service availability monitoring, the deadlocked process situation was not detected in a timely manner, leading to system unavailability.\nText A hung process refers to a process that has stopped responding but hasn\u0026rsquo;t exited. This situation can be caused by various reasons, such as deadlocks, resource exhaustion, or exceptions. To resolve these issues, we can use the pstack tool to analyze the process’s stack information and identify the root cause.\nSteps pstack is a commonly used tool, often provided alongside gdb (GNU Debugger). You can install it using the following command:\nsudo apt-get install gdb Obtain Process ID: First, we need to obtain the process ID (PID) of the zombie process. We can use the ps command to list all processes and find the PID of the process we want to investigate.\nUse the pstack tool to analyze the process stack. Once you have obtained the process ID, you can use the pstack tool to retrieve the stack information for that process. Run the following command:\npstack \u0026lt;PID\u0026gt; This will output the stack information of the process, displaying the sequence of function calls currently being executed. By analyzing this information, you can identify where the process is stuck and subsequently pinpoint the problem.\nAnalyze Stack Information: By examining the stack information, you can find the cause of the process becoming zombie. You may discover deadlock situations, infinite loops, or other abnormal conditions. Take appropriate measures based on the specific situation, such as releasing locks, fixing code logic, etc.\nCase Study Simple demo, after the main function starts, a child thread is created and the actual function enters an infinite loop, causing the program to fail to terminate normally and enter a state of false death.\ncmake_minimum_required(VERSION 3.0.0) project(pstack_main VERSION 0.1.0 LANGUAGES C CXX) include(CTest) enable_testing() # Find the Threads library find_package(Threads REQUIRED) add_executable(pstack_main main.cpp) # Link with the Threads library target_link_libraries(pstack_main PRIVATE Threads::Threads) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) #include \u0026lt;iostream\u0026gt; #include \u0026lt;thread\u0026gt; #include \u0026lt;chrono\u0026gt; void infiniteLoop() { while (true) { // Main thread enters an infinite loop } } int main() { std::thread thread(infiniteLoop); // Create a thread to execute the infinite loop function thread.join(); // Wait for the thread to end return 0; } Running the program, and examining the pstack results:\nThread 2 (Thread 0x7eff3619b700 (LWP 1315017)): #0 infiniteLoop () at /root/pstack/main.cpp:6 #1 0x0000000000402ca9 in std::__invoke_impl\u0026lt;void, void (*)()\u0026gt; (__f=@0x2260eb8: 0x4029a6 \u0026lt;infiniteLoop()\u0026gt;) at /usr/include/c++/8/bits/invoke.h:60 #2 0x0000000000402b02 in std::__invoke\u0026lt;void (*)()\u0026gt; (__fn=@0x2260eb8: 0x4029a6 \u0026lt;infiniteLoop()\u0026gt;) at /usr/include/c++/8/bits/invoke.h:95 #3 0x0000000000403150 in std::thread::_Invoker\u0026lt;std::tuple\u0026lt;void (*)()\u0026gt; \u0026gt;::_M_invoke\u0026lt;0ul\u0026gt; (this=0x2260eb8) at /usr/include/c++/8/thread:244 #4 0x0000000000403126 in std::thread::_Invoker\u0026lt;std::tuple\u0026lt;void (*)()\u0026gt; \u0026gt;::operator() (this=0x2260eb8) at /usr/include/c++/8/thread:253 #5 0x000000000040310a in std::thread::_State_impl\u0026lt;std::thread::_Invoker\u0026lt;std::tuple\u0026lt;void (*)()\u0026gt; \u0026gt; \u0026gt;::_M_run (this=0x2260eb0) at /usr/include/c++/8/thread:196 #6 0x00007eff36bceb23 in execute_native_thread_routine () from /lib64/libstdc++.so.6 #7 0x00007eff36ea91ca in start_thread () from /lib64/libpthread.so.0 #8 0x00007eff361d58d3 in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7eff372e1740 (LWP 1315016)): #0 0x00007eff36eaa6cd in __pthread_timedjoin_ex () from /lib64/libpthread.so.0 #1 0x00007eff36bceda7 in std::thread::join() () from /lib64/libstdc++.so.6 #2 0x00000000004029d2 in main () at /root/pstack/main.cpp:13 It can be seen that the program is in a false death state because of the infinite loop, the main thread enters an infinite loop, and the child thread cannot\n","date":"2024-02-24","language":"en","permalink":"https://ttf248.life/en/p/pstack-troubleshooting-process-hangs/","tags":["troubleshooting"],"title":"pstack troubleshoot a hung process","year":"2024"},{"categories":["Diary Ramblings"],"content":"If things had gone as the family planned, I would have stuck to studying power grids honestly and diligently, without venturing into coding. Had I erased the dust from my memory, it all stemmed from a chat with my roommate near the Spring Festival, which led to a review of my experiences over the years.\nChapter One The results of the gaokao (national college entrance examination) couldn’t be described as good or bad; I got into a 211 university, and according to Dad\u0026rsquo;s original plan, I should have studied power grids and returned to work for the local electricity supply bureau. Earlier accounts had also mentioned how to gradually transition onto the IT path – something that hadn’t been fully articulated before: financial perspective and self-discipline.\nI started my education in a rural school, and after primary school two, my family arranged for me to transfer to a school in the city district. Like Grandma Liu entering the Grand View Garden, I initially struggled to adapt to the bustling prosperity of the city. I hadn’t been to the cinema very often, and specifically, I hadn\u0026rsquo;t gone with my parents, but relatives would take me. Heaven always bestows luck upon you; back then, I met a few like-minded friends, though we lost contact later on. Looking back, that period of youth was truly wonderful. After weekend tutoring, we’d clean out the classroom plastic bottles, quickly stepping on them to flatten and pack them into our backpacks to take home for Mom to save up – accumulating them until they were enough to find a waste collector to handle disposal. We\u0026rsquo;d play chess, badminton, and Mahjong together, with push-ups as punishment for losing, which we still felt a little fortunate about; Dad had been taking me through various exercises since childhood. From this point on, my financial perspective was slightly skewed, I felt somewhat inferior, but these small misfortunes quickly passed. Our family wasn’t struggling financially, and we didn\u0026rsquo;t have much pocket money, sometimes couldn’t join our classmates in their activities, especially on weekends. Seeing our parents’ efforts as they moved us from the village to the city. At this time, the seed had been planted, waiting for it to sprout.\nMy simple-minded self was generally very happy during my studies, much like many graduates can only appreciate after graduation – studying wasn\u0026rsquo;t really a difficult task; the investment and output converted relatively easily.\nChapter One I layered in the memories of the Age of Empires, and during university, I encountered a laptop – it was like Pandora’s Box opening, introducing me to games and connecting me with game merchants. Initially, I was a low-level salesperson, sourcing goods upstream and selling them through my own community channels, earning a little money. Later, I gradually understood the operational logic of the entire chain. The products we sold were simply mass-produced by upstream programs, and their costs approached zero. At this point, the road had already started to veer off course; there were further subdivisions within the field – on the left was power grids, and on the right was automation (very complex, chip programming, factory electrical automation) – I realized that software could make money, but it wasn’t much. Although the upstream channels did earn a lot, combined with my previous background in programming, I started tinkering here and there, making a little money. When choosing between specialized fields, I naturally chose automation. After finishing my third year of coursework, I didn\u0026rsquo;t attend many classes, constantly thinking about writing code to make money.\nAs mentioned in last year’s article, inspired by the beautiful vision of hackers, I came into programming through self-study – I learned assembly language, penetration testing, game cheats, DLL hijacking, and data theft, familiarizing myself with various blackware and greyware. My parents taught me how to be a good person, and the law ultimately dissuaded me from going too far down that path; the road didn’t completely deviate.\nChapter 1 Previous Post Link: That Time When I Was Young\nI also talked about a brief romance during university. Looking back, it was mostly longing for the love depicted in television dramas. As an immature mind at the time, I couldn\u0026rsquo;t understand how to love someone, let alone achieve: settling down and starting a family.\nChapter Two Amidst the torrent of times, I was fortunate – university’s tribulations led me to not pursue graduate studies; I immediately entered employment and enjoyed a smooth career path riding the wave of IT. It\u0026rsquo;s now my eighth year in this profession, but the hype money vanished as the industry matured, leading to its decline. Sometimes, I question whether my initial choice was correct – perhaps entering the power grid as suggested by my father would have been a better option. Such thoughts might linger during the first five years of employment, but they gradually fade away with time. My recruitment into HSBC lasted five years without a change of company, which resulted in certain deficiencies regarding technical understanding, industry knowledge, and self-awareness. Following arrangements from the Hangzhou headquarters, I relocated to the Shenzhen branch, experiencing a workplace struggle (which, upon reflection, proved detrimental to both sides – ultimately benefiting the board) fueled by my passion for technology. I returned to Hangzhou with a youthful exuberance, only to later withdraw and head to Shanghai.\nInitially, I planned to settle in Hangzhou, register, and purchase property during the highest interest rates and peak housing prices, risking being trapped; my finances were limited, making it impossible to bear the burden of mortgage payments, compounded by an industry downturn, leading to emotional instability.\nChapter Three Having been around for so many years, having seen so much, I’ve made my own mistakes and wasted time. Currently, I\u0026rsquo;m doing well. Through experiences and through people, one inevitably grows and matures. If I were to remain at home all the time, I don’t know what form my flaws would manifest in.\n","date":"2024-02-08","language":"en","permalink":"https://ttf248.life/en/p/come-out-for-a-walk-is-good/","tags":["life-lessons"],"title":"Getting out for a walk is always good.","year":"2024"},{"categories":["Computer"],"content":"Designed a行情 SDK, implementing different callback function implementations, and performed an extensive test. Recently I’ve been looking into C++ function programming, where functions have become first-class citizens, flowing within the program internally – what\u0026rsquo;s the difference in performance?\nPrevious article link: Compiler, Callback Functions, Performance Testing leimao大佬 also did similar tests, so I borrowed their code.\nMain Content The execution platform remains our old friend, https://wandbox.org/\n#include \u0026lt;cassert\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;functional\u0026gt; #include \u0026lt;iostream\u0026gt; #include \u0026lt;vector\u0026gt; int add_one(int input) { return input + 1; } bool validate_vector_add_one(std::vector\u0026lt;int\u0026gt; const\u0026amp; input_vector, std::vector\u0026lt;int\u0026gt; const\u0026amp; output_vector) { bool is_valid{true}; for (size_t i{0}; i \u0026lt; input_vector.size(); ++i) { if (output_vector.at(i) != input_vector.at(i) + 1) { is_valid = false; break; } } return is_valid; } void reset_vector(std::vector\u0026lt;int\u0026gt;\u0026amp; input_vector) { for (size_t i{0}; i \u0026lt; input_vector.size(); ++i) { input_vector.at(i) = 0; } } template \u0026lt;typename T, typename Func\u0026gt; void unitary_function_pass_by_lambda_function(T\u0026amp; output, T const\u0026amp; input, Func const func) { output = func(input); } template \u0026lt;typename T\u0026gt; void unitary_function_pass_by_std_function_value(T\u0026amp; output, T const\u0026amp; input, std::function\u0026lt;T(T)\u0026gt; const func) { output = func(input); } template \u0026lt;typename T\u0026gt; void unitary_function_pass_by_std_function_reference( T\u0026amp; output, T const\u0026amp; input, std::function\u0026lt;T(T)\u0026gt; const\u0026amp; func) { output = func(input); } template \u0026lt;typename T\u0026gt; void unitary_function_pass_by_function_pointer(T\u0026amp; output, T const\u0026amp; input, T (*func)(T)) { output = func(input); } int main() { // Set floating point format std::cout with 3 decimal places. std::cout.precision(3); size_t const num_elements{10000000}; std::vector\u0026lt;int\u0026gt; input_vector(num_elements, 0); std::vector\u0026lt;int\u0026gt; output_vector(num_elements, 0); auto const lambda_function_add_one{[](int const\u0026amp; input) -\u0026gt; int { return input + 1; }}; std::function\u0026lt;int(int)\u0026gt; const std_function_add_one{lambda_function_add_one}; std::cout \u0026lt;\u0026lt; \u0026#34;The size of a function pointer: \u0026#34; \u0026lt;\u0026lt; sizeof(\u0026amp;add_one) \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;The size of a std::function pointer: \u0026#34; \u0026lt;\u0026lt; sizeof(\u0026amp;std_function_add_one) \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;The size of a std::function: \u0026#34; \u0026lt;\u0026lt; sizeof(std_function_add_one) \u0026lt;\u0026lt; std::endl; // Call function frequently in a vanilla way. // The compiler knows what function to call at compile time and can optimize // the code. // This is the best performance we could get. std::chrono::steady_clock::time_point const time_start_vanilla{ std::chrono::steady_clock::now()}; for (size_t i{0}; i \u0026lt; num_elements; ++i) { output_vector.at(i) = add_one(input_vector.at(i)); } std::chrono::steady_clock::time_point const time_end_vanilla{ std::chrono::steady_clock::now()}; auto const time_elapsed_vanilla{ std::chrono::duration_cast\u0026lt;std::chrono::nanoseconds\u0026gt;(time_end_vanilla - time_start_vanilla) .count()}; float const latency_vanilla{time_elapsed_vanilla / static_cast\u0026lt;float\u0026gt;(num_elements)}; std::cout \u0026lt;\u0026lt; \u0026#34;Latency Pass Vanilla: \u0026#34; \u0026lt;\u0026lt; latency_vanilla \u0026lt;\u0026lt; \u0026#34; ns\u0026#34; \u0026lt;\u0026lt; std::endl; assert(validate_vector_add_one(input_vector, output_vector)); reset_vector(output_vector ```markdown ## Text // Sometimes, we don\u0026#39;t know what function to call at compile time. // We can use `std::function` to pass a function as an argument. // In this case, we pass the `std::function` by value. // Because the size of a `std::function` is 32 bytes, passing by value // results in a lot of copying and bad performance. std::chrono::steady_clock::time_point const time_start_pass_by_std_function_value{std::chrono::steady_clock::now()}; for (size_t i{0}; i \u0026lt; num_elements; ++i) { unitary_function_pass_by_std_function_value( output_vector.at(i), input_vector.at(i), std_function_add_one); } std::chrono::steady_clock::time_point const time_end_pass_by_std_function_value{std::chrono::steady_clock::now()}; auto const time_elapsed_pass_by_std_function_value{ std::chrono::duration_cast\u0026lt;std::chrono::nanoseconds\u0026gt;( time_end_pass_by_std_function_value - time_start_pass_by_std_function_value) .count()}; float const latency_pass_by_std_function_value{ time_elapsed_pass_by_std_function_value / static_cast\u0026lt;float\u0026gt;(num_elements)}; std::cout \u0026lt;\u0026lt; \u0026#34;Latency Pass By Std Function Value: \u0026#34; \u0026lt;\u0026lt; latency_pass_by_std_function_value \u0026lt;\u0026lt; \u0026#34; ns\u0026#34; \u0026lt;\u0026lt; std::endl; assert(validate_vector_add_one(input_vector, output_vector)); reset_vector(output_vector); // Instead of passing the `std::function` by value, we can pass it by // reference (pointer). In this case, object copying is eliminated. The // performance is better than passing the `std::function` by value. However, // the performance is still not as good as the vanilla way. std::chrono::steady_clock::time_point const time_start_pass_by_std_function_reference{ std::chrono::steady_clock::now()}; for (size_t i{0}; i \u0026lt; num_elements; ++i) { unitary_function_pass_by_std_function_reference( output_vector.at(i), input_vector.at(i), std_function_add_one); } std::chrono::steady_clock::time_point const time_end_pass_by_std_function_reference{ std::chrono::steady_clock::now()}; auto const time_elapsed_pass_by_std_function_reference{ std::chrono::duration_cast\u0026lt;std::chrono::nanoseconds\u0026gt;( time_end_pass_by_std_function_reference - time_start_pass_by_std_function_reference) .count()}; float const latency_pass_by_std_function_reference{ time_elapsed_pass_by_std_function_reference / static_cast\u0026lt;float\u0026gt;(num_elements)}; std::cout \u0026lt;\u0026lt; \u0026#34;Latency Pass By Std Function Reference: \u0026#34; \u0026lt;\u0026lt; latency_pass_by_std_function_reference \u0026lt;\u0026lt; \u0026#34; ns\u0026#34; \u0026lt;\u0026lt; std::endl; assert(validate_vector_add_one(input_vector, output_vector)); reset_vector(output_vector); ## Text // `std::function` is a general-purpose wrapper for function pointers, // callable objects, and lambda functions. Because it\u0026#39;s general purpose, // it\u0026#39;s not as efficient as a function pointer. In this case, we pass a // function pointer to a function. The performance is better than passing // the `std::function` by reference. std::chrono::steady_clock::time_point const time_start_pass_by_function_pointer{std::chrono::steady_clock::now()}; for (size_t i{0}; i \u0026lt; num_elements; ++i) { unitary_function_pass_by_function_pointer(output_vector.at(i), input_vector.at(i), \u0026amp;add_one); } std::chrono::steady_clock::time_point const time_end_pass_by_function_pointer{std::chrono::steady_clock::now()}; auto const time_elapsed_pass_by_function_pointer{ std::chrono::duration_cast\u0026lt;std::chrono::nanoseconds\u0026gt;( std::chrono::steady_clock::now() - time_start_pass_by_function_pointer) .count()}; float const latency_pass_by_function_pointer{ time_elapsed_pass_by_function_pointer / static_cast\u0026lt;float\u0026gt;(num_elements)}; std::cout \u0026lt;\u0026lt; \u0026#34;Latency Pass By Function Pointer: \u0026#34; \u0026lt;\u0026lt; latency_pass_by_function_pointer \u0026lt;\u0026lt; \u0026#34; ns\u0026#34; \u0026lt;\u0026lt; std::endl; assert(validate_vector_add_one(input_vector, output_vector)); reset_vector(output_vector); // We can also pass a lambda function to a function. // The compiler knows what function to call at compile time and can optimize // the code. The performance is also better than passing the `std::function` // by reference. std::chrono::steady_clock::time_point const time_start_pass_by_lambda_function{std::chrono::steady_clock::now()}; for (size_t i{0}; i \u0026lt; num_elements; ++i) { unitary_function_pass_by_lambda_function( output_vector.at(i), input_vector.at(i), lambda_function_add_one); } std::chrono::steady_clock::time_point const time_end_pass_by_lambda_function{std::chrono::steady_clock::now()}; auto const time_elapsed_pass_by_lambda_function{ std::chrono::duration_cast\u0026lt;std::chrono::nanoseconds\u0026gt;( std::chrono::steady_clock::now() - time_start_pass_by_lambda_function) .count()}; float const latency_pass_by_lambda_function{ time_elapsed_pass_by_lambda_function / static_cast\u0026lt;float\u0026gt;(num_elements)}; std::cout \u0026lt;\u0026lt; \u0026#34;Latency Pass By Lambda Function: \u0026#34; \u0026lt;\u0026lt; latency_pass_by_lambda_function \u0026lt;\u0026lt; \u0026#34; ns\u0026#34; \u0026lt;\u0026lt; std::endl; assert(validate_vector_add_one(input_vector, output_vector)); reset_vector(output_vector); Body # The default optimization for the team is to enable O2, and the compiler selected was gcc13. Performance and execution times vary slightly between different versions of gcc, with higher versions resulting in better lambda performance. # Function pointer size: 8 # std::function pointer size: 8 # std::function size: 32 # Vanilla Pass Latency: 0.418 ns # Latency Pass By Std Function Value: 3.47 ns # Latency Pass By Std Function Reference: 1.36 ns # Latency Pass By Function Pointer: 0.396 ns # Latency Pass By Lambda Function: 0.44 ns References https://leimao.github.io/blog/CPP-Function-Call-Performance/\n","date":"2024-01-24","language":"en","permalink":"https://ttf248.life/en/p/cpp-function-call-timing/","tags":["c++"],"title":"C++ Function Call Latency","year":"2024"},{"categories":["Repost / Share"],"content":"Regarding byte order: A layman\u0026rsquo;s explanation Host Order, Network Order, observed directly via debugger\nIn the field of computer science, certain design habits have formed due to historical reasons, just like the width of a hip dictates the width of a rocket\u0026rsquo;s thrusters – there’s no need to rigidly analyze their “advantages” and “disadvantages”; it’s simply a matter of historical convention.\nOriginal Link Author: Beiji (North Pole) Link: https://www.zhihu.com/question/637413724/answer/3346032134 Source: Zhihu Copyright belongs to the author. For commercial reprints, please contact the author for permission. Non-commercial reprints must indicate the source.\nText Translation Here\u0026rsquo;s the translation of the provided text into English:\nData Mining Deep Learning Neural Network Nowadays, the current situation is a result of historical habits plus commercialization, and it has little to do with technology itself. ARM can be set up as big-endian or little-endian. The TCP/IP header still uses big-endian (network byte order). There are also many storage protocols/specifications that use big-endian to store data.\nTherefore, the three questions posed by the user seem incorrect in today\u0026rsquo;s view:\nWhy do computers generally adopt little-endian storage? –\u0026gt; Incorrect. Why is storing the low byte in a little-endian manner more efficient than in a big-endian manner? –\u0026gt; Efficiency will not be higher. Any argument about these three questions using current technology is like shooting an arrow first and then drawing the target.\nHowever, if we say that the choice of big-endian or little-endian did have some objective factors in the history of computer development: The advantage of host-byte order (little-endian) is that a 8-bit * 4 adder can be easily made, requiring only an 8-bit adder to sequentially add all bytes from low to high, and the carry circuit is very simple. If it were big-endian, it would require loading 32 bits once, which cannot perform calculations. Nowadays, the difference between loading 8 bits or 32 bits is not significant, but in the early days when storage prices were expensive, simplicity was always preferred, so the host-byte order chose little-endian based on cost considerations. The advantage of network byte order (big-endian) is that early devices had very small caches. Taking the high byte first could quickly determine the message information: packet length (need to prepare how much cache), address range (IP addresses are matched from front to back). Early network devices\u0026rsquo; caches were at the byte level, and taking the high byte was indeed a little faster. Therefore, network devices used big-endian based on cost considerations.\nSo, the choice of byte order has historically been more influenced by application scenarios and costs (such as PPC/MIPS being more suitable for network devices), and the configuration of big-endness and little-endness has been carried over to this day due to compatibility reasons. In today\u0026rsquo;s view, these advantages no longer exist, they are merely historical habits.\n","date":"2024-01-24","language":"en","permalink":"https://ttf248.life/en/p/little-endian-storage-why/","tags":["byte-order","little-endian","big-endian","host-byte-order","network-byte-order"],"title":"Why do computers generally use little-endian storage?","year":"2024"},{"categories":["Computer"],"content":"Suddenly, I was feeling the urge to browse for new wallpapers, sticking with my usual black series, with some areas colored in, and the desktop needing to display icons. Other color schemes would result in blurry icons.\nI stared at the assembly code, trying to figure it out, but couldn\u0026rsquo;t understand it. I tried throwing it to an AI, explaining the instructions, but it failed to explain the context – clearly, this was a command used for a specific scenario. Regular code isn’t like that.\nThe AI was no longer as useful as a search engine at this point; its knowledge base of assembly language was insufficient.\nWallpaper Assembly Code PUSHFD MOV DWORD PTR [ESP],0X100 POPFD Actual Application Scenario\nbool IsDebugged() { __try { __asm { pushfd mov dword ptr [esp], 0x100 popfd nop } return true; } __except(GetExceptionCode() == EXCEPTION_SINGLE_STEP ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_EXECUTION) { return false; } } Explanation TrapFlag is a flag bit in the register file. When this flag is set, it throws an exception SINGLE_STEP. Because when we trace the code, this flag will be cleared by the debugger, so we won\u0026rsquo;t see this exception.\nIn actual testing, if you directly step over detecting functions, debugging will not be detected. Only when entering the detection function to execute will it be detected (based on research materials, yet to be verified in practice).\nReferences Chinese related materials are based on the English articles from websites, which introduce many anti-debugging techniques.\nhttps://anti-debug.checkpoint.com/ techniques/assembly.html https://song-10.gitee.io/2021/08/08/Reverse-2021-08-08-anti-debug/ ","date":"2024-01-23","language":"en","permalink":"https://ttf248.life/en/p/program-anti-debug/","tags":["anti-debug"],"title":"How to Anti-Debug","year":"2024"},{"categories":["Computer"],"content":"Recently, someone asked how to download Focus Interview videos. My mind immediately went to the usual – eight or nine out of ten times it’s encrypted using an m3u8 method, and a bit of simple processing is all it takes.\nDownloader https://github.com/nilaoda/N_m3u8DL-CLI m3u8 downloader is an open-source command-line m3u8/HLS/dash downloader that supports ordinary AES-128-CBC decryption, multi-threading, custom request headers, etc. Supports Simplified Chinese, Traditional Chinese and English. English Supported.\nBrowser Extensions Live Stream Downloader\nHoneyed Confidence Getting the address, assuming it was solved, turned out to be nothing – unable to parse segments normally, query information, and discover that the official had processed the download address, requiring manual replacement of the key parsed by the plugin into the following links.\nhttps://newcntv.qcloudcdn.com/asp/hls/2000/0303000a/3/default/***********************/2000.m3u8 As of January 2024, the address is still valid; if there are any changes in the future, analyze the webpage independently. Historical Address Backup: https://hlswx.cntv.kcdnvip.com/asp/hls/main/0303000a/3/default/一串字符/main.m3u8?maxbr=2000\nReferences http://jln.cn/post/517.html\n","date":"2024-01-23","language":"en","permalink":"https://ttf248.life/en/p/how-to-download-focus-interview-cctv-videos/","tags":["focus-interview","CCTV"],"title":"How to Download Focus News/CCTV Video Files","year":"2024"},{"categories":["Computer"],"content":"The company adjusted its security policies. Ultimately, ‘Mechanical Mini’ was relocated back home as a backup server, along with a full system reinstallation. Ubuntu switched to Windows Server; due to an irregular activation method – used at home – it seemed like it wouldn\u0026rsquo;t be activated, and that was fine. An unconventional activation triggered Microsoft’s detection (running normally for half a month), the server would automatically shut down after running for one hour. After reviewing the system logs, it was discovered that this was due to using a pirated version.\nThere wasn’t much else to do, so the system was reinstalled again, and SQL Server also needed to be reinstalled – it\u0026rsquo;s always a bit of a pain each time. File permission control is very strict, making it impossible to attach the database normally.\nError Message After the system reinstallation, SqlServer may encounter error 5120, an operating system access denied error, when attaching a database.\nProcessing Script Referencing the previous link: Batch Update Local Git Repository, it’s that familiar script all over again – modified to, we iterate through folders while modifying file permissions. Currently used with full editing permissions.\nMost tutorials online have you manually modify files. They only need to change a few files each time? I always have to process batches of files; doing everything manually is going to drive me crazy.\n$currentUserName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $rootDirectory = \u0026#34;D:\\data\\2013_RujiaInfo\u0026#34; Get-ChildItem -Path $rootDirectory -Recurse | ForEach-Object { $itemPath = $_.FullName if ($_ -is [System.IO.DirectoryInfo]) { $icaclsResult = icacls $itemPath /setowner \u0026#34;$currentUserName\u0026#34; 2\u0026gt;\u0026amp;1 if ($LASTEXITCODE -eq 0) { Write-Host \u0026#34;Changed the owner of folder $itemPath to $currentUserName\u0026#34; # Grant current user write permissions Invoke-Expression \u0026#34;icacls `\u0026#34;$itemPath`\u0026#34; /grant `\u0026#34;$($currentUserName):(OI)(CI)F`\u0026#34;\u0026#34; Write-Host \u0026#34;Granted $currentUserName editing permissions for the folder\u0026#34; } else { Write-Host \u0026#34;Unable to change the owner of folder $itemPath. Error message: $icaclsResult\u0026#34; } } else { $takeownResult = icacls $itemPath /setowner \u0026#34;$currentUserName\u0026#34; 2\u0026gt;\u0026amp;1 if ($LASTEXITCODE -eq 0) { # Grant current user write permissions Invoke-Expression \u0026#34;icacls `\u0026#34;$itemPath`\u0026#34; /grant `\u0026#34;$($currentUserName):(F)`\u0026#34;\u0026#34; Write-Host \u0026#34;Granted $currentUserName editing permissions for the file\u0026#34; } else { Write-Host \u0026#34;Unable to change the owner of file $itemPath. Error message: $takeownResult\u0026#34; } } } ","date":"2024-01-23","language":"en","permalink":"https://ttf248.life/en/p/bulk-modify-sqlserver-database-disk-permissions/","tags":["SqlServer"],"title":"Bulk Modify SQL Server Database Disk File Permissions","year":"2024"},{"categories":["Computer"],"content":"Windows platform has RuMaster (Entertainment Master), which isn\u0026rsquo;t known for highly accurate data, but it’s still useful as a reference. Of course, there are other professional benchmarking software options available. When it comes to Linux systems, there haven’t seemed to be any particularly suitable benchmarking software found.\nSysbench is a versatile benchmark testing tool that can be used to test CPU, memory, file I/O, thread performance, and more. You can use Sysbench to execute various performance testing tasks.\nI currently have three machines available for testing: the Mechanical Artist mini laptop, a local small host machine, an Alibaba Cloud Dev development cloud server, and a Huawei Cloud Dev server.\nInstalling Sysbench On most Linux distributions, you can use the package manager to install Sysbench. For example, on CentOS 8, you can use the following command:\nsudo dnf install sysbench Sysbench Usage Examples Testing CPU performance: sysbench --test=cpu run Testing memory read performance: sysbench --test=memory run Testing file I/O performance: sysbench --test=fileio --file-test-mode=rndrw prepare sysbench --test=fileio --file-test-mode=rndrw run sysbench --test=fileio --file-test-mode=rndrw cleanup Testing multi-threaded performance: sysbench --test=threads --num-threads=4 run Testing MySQL database performance (requires adjusting the maximum connection number): sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=yourusername --mysql-password=yourpassword --oltp-table-size=1000000 prepare sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=yourusername --mysql-password=yourpassword --max-time=60 --oltp-read-only=off --oltp-test-mode=complex --max-requests=0 run sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=yourusername --mysql-password=yourpassword cleanup Score Report Run Score Report ABCD1Local TechnicianAlibaba CloudHuawei Cloud2System ConfigurationSystem Information\nOperating System Ubuntu 23.04\nKernel Linux 6.2.0-36-generic x86_64\nModel Machenike Machenike DT Computer\nMotherboard Machenike Machenike DT Computer\nBIOS American Megatrends International, LLC.\nDB19V012\nCPU Information\nName Intel Core i7-12650H\nTopology 1 Processor, 10 Cores, 16 Threads\nIdentifier GenuineIntel Family 6 Model 154 Stepping 3\nBase Frequency 4.60 GHz\nL1 Instruction Cache 32.0 KB x 8\nL1 Data Cache 48.0 KB x 8\nL2 Cache 1.25 MB x 2\nL3 Cache 24.0 MB\nMemory Information\nSize 62.6 GBSystem Information\nOperating System CentOS Stream 8\nKernel Linux 4.18.0-513.el8.x86_64 x86_64\nModel Alibaba Cloud Alibaba Cloud ECS\nMotherboard N/A\nBIOS SeaBIOS 449e491\nCPU Information\nName Intel(R) Xeon(R) Platinum\nTopology 1 Processor, 1 Core, 2 Threads\nIdentifier GenuineIntel Family 6 Model 85 Stepping 4\nBase Frequency 2.50 GHz\nL1 Instruction Cache 32.0 KB\nL1 Data Cache 32.0 KB\nL2 Cache 1.00 MB\nL3 Cache 33.0 MB\nMemory Information\nSize 1.65 GBSystem Information\nOperating System Ubuntu 22.04.1 LTS\nKernel Linux 5.15.0-60-generic x86_64\nModel OpenStack Foundation OpenStack Nova - 64 GB 3CPUsysbench 1.0.20 (using Benchmark Data Report system LuaJIT 2.1.0-beta3\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nPrime numbers limit: 10000\nInitializing worker threads\u0026hellip;\nThreads started!\nCPU speed:\nevents per second: 4032.48\nGeneral statistics:\ntotal time: 10.0004s\ntotal number of events: 40330\nLatency (ms):\nmin: 0.25\navg: 0.25\nmax: 0.73\n95th percentile: 0.25\nsum: 9997.55\nThreads fairness:\nevents (avg/stddev): 40330.0000/0.00\nexecution time (avg/stddev): 9.9975/0.00\nsysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nPrime numbers limit: 10000\nInitializing worker threads\u0026hellip;\nThreads started!\nCPU speed:\nevents per second: 1062.51\nGeneral statistics:\ntotal time: 10.0008s\ntotal number of events: 10628\nLatency (ms):\nmin: 0.91\navg: 0.94\nmax: 22.84\n95th percentile: 1.06\nsum: 9993.46\nThreads fairness:\nevents (avg/stddev): 10628.0000/0.00\nexecution time (avg/stddev): 9.9935/0.00\nsysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nPrime numbers limit: 10000\nInitializing worker threads\u0026hellip;\nThreads started!\nCPU speed:\nevents per second: 1125.56\nGeneral statistics:\ntotal time: 10.0005s\ntotal number of events: 11258\nLatency (ms):\nmin: 0.86\navg: 0.89\nmax: 1.70\n95th percentile: 0.99\nsum: 9995.40\nThreads fairness:\nevents (avg/stddev): 11258.0000/0.00\nexecution time (avg/stddev): 9.9954/0.00\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nRunning memory speed test with the following options:\nblock size: 1KiB\ntotal size: 102400MiB\noperation: write\nscope: global\nInitializing worker threads\u0026hellip;\nThreads started!\nTotal operations: 101993199 (10198146.52 per second)\n99602.73 MiB transferred (9959.13 MiB/sec)\u0026lt; - Benchmark Data Report system LuaJIT 2.1.0-beta3\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nPrime numbers limit: 10000\nInitializing worker threads\u0026hellip;\nThreads started!\nCPU speed:\nevents per second: 4032.48\nGeneral statistics:\ntotal time: 10.0004s\ntotal number of events: 40330\nLatency (ms):\nmin: 0.25\navg: 0.25\nmax: 0.73\n95th percentile: 0.25\nsum: 9997.55\nThreads fairness:\nevents (avg/stddev): 40330.0000/0.00\nexecution time (avg/stddev): 9.9975/0.00\nsysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nPrime numbers limit: 10000\nInitializing worker threads\u0026hellip;\nThreads started!\nCPU speed:\nevents per second: 1062.51\nGeneral statistics:\ntotal time: 10.0008s\ntotal number of events: 10628\nLatency (ms):\nmin: 0.91\navg: 0.94\nmax: 22.84\n95th percentile: 1.06\nsum: 9993.46\nThreads fairness:\nevents (avg/stddev): 10628.0000/0.00\nexecution time (avg/stddev): 9.9935/0.00\nsysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nPrime numbers limit: 10000\nInitializing worker threads\u0026hellip;\nThreads started!\nCPU speed:\nevents per second: 1125.56\nGeneral statistics:\ntotal time: 10.0005s\ntotal number of events: 11258\nLatency (ms):\nmin: 0.86\navg: 0.89\nmax: 1.70\n95th percentile: 0.99\nsum: 9995.40\nThreads fairness:\nevents (avg/stddev): 11258.0000/0.00\nexecution time (avg/stddev): 9.9954/0.00\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nRunning memory speed test with the following options:\nblock size: 1KiB\ntotal size: 102400MiB\noperation: write\nscope: global\nInitializing worker threads\u0026hellip;\nThreads started!\nTotal operations: 101993199 (10198146.52 per second)\n99602.73 MiB transferred (9959.13 MiB/sec)\u0026lt;\nRun Score Reports random number generator from current time\nRunning memory speed test with the following options:\nblock size: 1KiB\ntotal size: 102400MiB\noperation: write\nscope: global\nInitializing worker threads\u0026hellip;\nThreads started!\nTotal operations: 48418803 (4841004.79 per second)\n47283.99 MiB transferred (4727.54 MiB/sec)\nGeneral statistics:\ntotal time: 10.0001s\ntotal number of events: 48418803\nLatency (ms):\nmin: 0.00\navg: 0.00\nmax: 25.26\n95th percentile: 0.00\nsum: 4578.95\nThreads fairness:\nevents (avg/stddev): 48418803.0000/0.00\nexecution time (avg/stddev): 4.5789/0.00\nMachine Learning\nNeural Networks - Run Score Reports random number generator from current time\nRunning memory speed test with the following options:\nblock size: 1KiB\ntotal size: 102400MiB\noperation: write\nscope: global\nInitializing worker threads\u0026hellip;\nThreads started!\nTotal operations: 48418803 (4841004.79 per second)\n47283.99 MiB transferred (4727.54 MiB/sec)\nGeneral statistics:\ntotal time: 10.0001s\ntotal number of events: 48418803\nLatency (ms):\nmin: 0.00\navg: 0.00\nmax: 25.26\n95th percentile: 0.00\nsum: 4578.95\nThreads fairness:\nevents (avg/stddev): 48418803.0000/0.00\nexecution time (avg/stddev): 4.5789/0.00\nMachine Learning\nNeural Networks\nScore Report Data enabled, calling fsync() each 100 requests.\nCalling fsync() at the end of test, Enabled.\nUsing synchronous I/O mode\nDoing random r/w test\nInitializing worker threads\u0026hellip;\nThreads started!\nFile operations:\nreads/s: 1593.12\nwrites/s: 1062.08\nfsyncs/s: 3406.64\nThroughput:\nread, MiB/s: 24.89\nwritten, MiB/s: 16.60\nGeneral statistics:\ntotal time: 10.0164s\ntotal number of events: 60600\nLatency (ms):\nmin: 0.00\navg: 0.16\nmax: 31.32\n95th percentile: 0.54\nsum: 9956.30\nThreads fairness:\nevents (avg/stddev): 60600.0000/0.00\nexecution time (avg/stddev): 9.9563/0.00\n2147483648 bytes written in 18.29 seconds (111.98 MiB/sec).\nRunning the test with following options:\nNumber of threads: 1\nInitializing random number generator from current time\nExtra file open flags: (none)\n128 files, 16MiB each\n2GiB total file size\nBlock size 16KiB\nNumber of IO requests: 0\nRead/Write ratio for combined random IO test: 1.50\nPeriodic FSYNC enabled, calling fsync() each 100 requests.\nCalling fsync() at the end of test, Enabled.\nUsing synchronous I/O mode\nDoing random r/w test\nInitializing worker threads\u0026hellip;\nThreads started!\nFile operations:\nreads/s: 1665.88\nwrites/s: 1110.59\nfsyncs/s: 3563.77\nThroughput:\nread, MiB/s: 26.03\nwritten, MiB/s: 17.35\nGeneral statistics:\ntotal time: 10.0112s\ntotal number of events: 63355\nLatency (ms):\nmin: 0.00\navg: 0.16\nmax: 205.01\n95th percentile: 0.78\nsum: 9972.64\nThreads fairness:\nevents (avg/stddev): 63355.0000/0.00\nexecution time (avg/stddev): 9.9726/0.00\n6Multi-threadedRunning the test with following options:\nNumber of threads: 4\nInitializing random number generator from current time\nInitializing worker threads...\nThreads started!\nGeneral statistics:\ntotal time: 10.0002s\ntotal number of events: 197956\nLatency (ms):\nmin: 0 Score Report sum: 40050.41\u0026lt;br\u0026gt;\u0026lt;br\u0026gt;Threads fairness:\u0026lt;br\u0026gt; events (avg/stddev): 4590.0000/94.36\u0026lt;br\u0026gt; execution time (avg/stddev): 10.0126/0.00 Running the test with following options: Number of threads: 4 Initializing random number generator from current time\u0026lt;br\u0026gt;\u0026lt;br\u0026gt;\u0026lt;br\u0026gt; Initializing worker threads...\u0026lt;br\u0026gt;\u0026lt;br\u0026gt; Threads started!\u0026lt;br\u0026gt;\u0026lt;br\u0026gt;\u0026lt;br\u0026gt; General statistics: total time: 10.0004s total number of events: 28536\u0026lt;br\u0026gt;\u0026lt;br\u0026gt; Latency (ms): min: 0.23 avg: 1.40 max: 3.56 95th percentile: 1.47 sum: 39975.16\u0026lt;br\u0026gt;\u0026lt;br\u0026gt; Threads fairness:\u0026lt;br\u0026gt; events (avg/stddev): 7134.0000/39.87 execution time (avg/stddev): 9.9938/0.01 Epilogue Whether ChatGPT is a good thing or not, the table above could not be arranged according to the previously mastered Markdown, and it was not made into a table to display, which would result in a very poor effect. Customizing the theme limited the maximum page width, and a series of page configurations were adjusted accordingly, changing the width to percentage limits.\nA simple method is to use tools like TablesGenerator to generate HTML tables (content complexity is not suitable). Or write it using Google Docs online and then download and save it as an HTML document, directly copy it into the blog (simple and direct, ultimately adopted). Ensure that the config configuration is enabled with unsafe configuration items, and independently configure the page width. In Hugo, you can set the width of a page individually. This can be achieved by adding a custom parameter in the page\u0026rsquo;s Front Matter. Here’s an example: In your Markdown page\u0026rsquo;s Front Matter section (usually at the beginning of the file), add a custom parameter such as custom_width: --- title: \u0026#34;My Page\u0026#34; date: 2024-01-09 custom_width: \u0026#34;800px\u0026#34; # Set width to 800 pixels --- Content... In your Hugo theme, find or create the corresponding single page template file (e.g., layouts/_default/single.html). In the single page template, check if there is a custom_width parameter in the Front Matter and apply it to the appropriate HTML elements, such as div: {{ define \u0026#34;main\u0026#34; }} \u0026lt;div style=\u0026#34;max-width: {{ with .Params.custom_width }}{{ . }}{{ else }}100%{{ end }}; margin: 0 auto;\u0026#34;\u0026gt; {{ .Content }} \u0026lt;/div\u0026gt; {{ end }} In this example, we used inline styles (the style attribute) to set the max-width property for the div element when no custom_width parameter is specified, defaulting the width to 100%. margin: 0 auto; centers the div element.\nPlease note that in actual applications, you may need to adjust this example based on your theme structure and CSS styling details. Ensure that when adjusting styles, you maintain consistency and readability with the theme.\nDue to the slight difference in the enabled theme, the site\u0026rsquo;s custom CSS configuration was finally adjusted.\n","date":"2024-01-09","language":"en","permalink":"https://ttf248.life/en/p/linux-system-benchmark-test/","tags":["hugo","linux","Sysbench"],"title":"Linux System Benchmark Test","year":"2024"},{"categories":["Computer"],"content":"Updated habit software version, unsure which Git version to start from, prohibiting fetching code from Http repositories.\nfatal: Unencrypted HTTP is not supported for GitLab. Ensure the repository remote URL is using HTTPS Background Introduction Environment: Windows platform, I’ve always used Tiny Turtle to operate Git, and key configuration was also handled through it. I previously created a script to batch update local repositories. Previous article link: Batch Update Local Git Repository Today when I went home to execute the code update, the previous error occurred, and the repository could no longer be updated normally. I was planning to use Git’s configuration to continue using the http protocol to update the repository, but I searched everywhere without finding the corresponding configuration item. The simplest solution is of course to switch to the ssh protocol to update the repository, as the gitlab configured by the company will not provide the https protocol in the short term.\nLegacy Issues When writing the batch update local repository script previously, we initially planned to use ssh to pull the repository and didn\u0026rsquo;t investigate thoroughly. The git configuration information configured via Small Turtle was not synchronized to the config file, resulting in a \u0026ldquo;permission denied\u0026rdquo; error when executing with the command line:\ngit pull # prompts for permission issues and cannot update the repository normally Checking the key configuration using the command was correct: ssh -T git@gitlab.yintech.net\nIf you can successfully pull code using Small Turtle (TortoiseGit), but receive a \u0026ldquo;key not recognized\u0026rdquo; error when using the git pull command from the command line, this may be because Small Turtle uses PuTTY\u0026rsquo;s SSH key while the command line uses OpenSSH\u0026rsquo;s SSH key.\nThe key configuration in Small Turtle does not read key file information from the system .ssh folder; instead, it configures the path to the key file separately through the interface when configuring the repository. There’s a useful trick: configuring the first pulled repository with its key allows other repositories to reuse that same key file. PuTTY loads the key and doesn\u0026rsquo;t immediately exit but starts a proxy service.\nBy adjusting the global configuration to not use the system default ssh configuration, Git Bash will use TortoisePlink for SSH operations. This configuration is suitable for situations where you are using TortoiseGit with the built-in PuTTY tool.\ngit config --global core.sshCommand \u0026#34;\u0026#39;C:/Program Files/TortoiseGit/bin/TortoisePlink.exe\u0026#39; -batch -ssh\u0026#34; Please modify the execution file path in the above configuration to match your Small Turtle installation path. Since the full path is configured, no need to add it to the system environment variables.\n","date":"2024-01-08","language":"en","permalink":"https://ttf248.life/en/p/git-disable-http-repositories/","tags":["git"],"title":"Git Disable HTTP Repository","year":"2024"},{"categories":["Computer"],"content":"Two years ago, I added a copy function to the site, which took me half a day of tinkering. Ultimately, the rendering effect wasn\u0026rsquo;t quite satisfactory, and as a somewhat mediocre frontend developer, I didn’t plan on improving it – if it worked, it was good enough. This year, I used AI to develop a mini-program, which has also made me more familiar with frontend development. I refactored it (the AI redesigned it).\nRealization: Breaking down tasks really helps; many small tasks are quite natural for the AI to develop. For the closed mini-program, 75% of the code was provided by AI, broken down into multiple tasks delivered, and manually assembled the project code.\nPrevious Context Making simple things easier: Adding a code copy button\nMain Text promot: Design CSS and JavaScript code to locate webpage elements with the class \u0026ldquo;highlight\u0026rdquo;, and within their container, add a copy button to enable copying of the content.\nThe first draft of the code was immediately problematic; I generated a revised version that is largely functional, but the copied content is incorrect, containing redundant text. Further guidance led to optimization, specifying core color design and effects.\nHaving learned your specific requirements for button size and color, we redesigned the button styles to accommodate these demands. Here’s the adjusted CSS style sheet, incorporating your provided color scheme and optimizing the button size:\n.copy-btn { position: absolute; top: 2px; /* Adjust position */ right: 2px; padding: 3px 6px; /* Reduce size */ font-size: 12px; /* Decrease font size */ background-color: #8FD1E1; /* Button background color */ color: #272822; /* Text color */ border: 1px solid #272822; /* Border color */ border-radius: 3px; /* Rounded corners */ cursor: pointer; opacity: 0.7; /* Default semi-transparent */ transition: opacity 0.3s ease, background-color 0.3s ease; /* Smooth transition effect */ } .copy-btn:hover { opacity: 1; /* Unhide on hover */ background-color: #A3D4E5; /* Background color on hover */ } .highlight { position: relative; } In this style sheet, I reduced the button\u0026rsquo;s size and font size to create a more refined look. The button’s default state is semi-transparent, becoming fully opaque when hovered over, with a slightly brighter background color for visual feedback. This design meets your color requirements while maintaining modern and user-friendly characteristics.\nHere’s a simpler JavaScript implementation:\ndocument.addEventListener(\u0026#39;DOMContentLoaded\u0026#39;, function() { // Find all .highlight elements const highlights = document.querySelectorAll(\u0026#39;.highlight\u0026#39;); highlights.forEach(function(highlight) { // Create copy button const copyBtn = document.createElement(\u0026#39;button\u0026#39;); copyBtn.textContent = \u0026#39;Copy\u0026#39;; copyBtn.classList.add(\u0026#39;copy-btn\u0026#39;); // Add the button to each .highlight element highlight.appendChild(copyBtn); // Add click event listener copyBtn.addEventListener(\u0026#39;click\u0026#39;, function() { // Assume the first \u0026lt;code\u0026gt; element within .highlight contains the code to copy const code = highlight.querySelector(\u0026#39;code\u0026#39;) ? highlight.querySelector(\u0026#39;code\u0026#39;).textContent : \u0026#39;\u0026#39;; navigator.clipboard.writeText(code).then(() =\u0026gt; { // Display success message copyBtn.textContent = \u0026#39;Copied!\u0026#39;; setTimeout(() =\u0026gt; { copyBtn.textContent = \u0026#39;Copy\u0026#39;; }, 2000); }).catch(err =\u0026gt; { console.error(\u0026#39;Copy failed: \u0026#39;, err); }); }); }); }); Epilogue While I had hoped to see a copy button added in the top-right corner of the code area, due to my lack of familiarity with frontend development, I was unable to accurately describe the functionality based on keywords and spent several rounds iterating with AI without achieving the desired results.\nIt remains to be seen what impact AI will have on software development as time goes on.\n","date":"2023-12-22","language":"en","permalink":"https://ttf248.life/en/p/ai-programming-and-task-decomposition/","tags":["chatgpt","ai","task-breakdown","code-area","copy-button"],"title":"AI Programming and Task Decomposition","year":"2023"},{"categories":["The Seven Seconds of a Fish"],"content":"The Oriental Zen Selection short essay incident was a online uproar triggered by Oriental Zen Selection’s official account denying that anchor Dong Yufei was the author of all the short essays. The truth is now unrecoverable, and the company\u0026rsquo;s power struggles have pushed this matter into the spotlight.\nFish’s seven-second memory will be handed over to AI for writing, having experimented with Bing AI and ChatGPT Plus. The former provided more complete information, while the search engine still obtained more data, but the output blog content was not as complete and had a rigid format; the latter generated content based on keywords, which wasn’t as complete but could obtain full blog content. If given the URLs of reference materials, it could optimize the generated article.\nMain Text The Dongyu He incident, involving a short essay by Oriental Select, is a dispute centered around copyright and creative ownership. Beginning on December 5, 2023, it involved a series of interactions between anchor Dong Yuhe and Oriental Select. This storm not only revealed the complexities of commercial operations but also sparked profound reflections on contemporary commercial culture and online society.\nDecember 5, 2023: Event Origin Dongyu Hui, a host from Oriental Zhentan, quickly went viral after reciting “short essays” in a pre-release video. Oriental Zhentan stated in the video comments that most of these short essays were created by the copywriting team and not entirely from Dongyu Hui’s own hand. December 13, 2023: Dong Yufei’s Response Dong Yufei published a lengthy article opposing the defamation of anyone under the guise of “fan circles,” stating her position on the matter. December 14, 2023: Management Response Dong Xuhe (CEO of Oriental Zhensheng) released an apology video, admitting to management loopholes within the company. Yu Minhong (Chairman of Oriental Zhensheng) also responded to the incident, expressing apologies to Dong Yuhui. December 16, 2023: Major Decisions Oriental Zhentan officially removed Sun Dongxu from the CEO position, with Yu Minhong assuming the role. On the same day, Yu Minhong published an apology letter, stating that he would unblock users who had been banned from live streams. December 18, 2023: Dong Yufei’s New Role New Oriental Education \u0026amp; Technology Group appoints Dong Yufei as Chairman and Cultural Assistant of New Oriental Education \u0026amp; Technology Group, concurrently serving as Vice President of New Oriental Culture \u0026amp; Tourism Group. -俞敏洪 (Yu Minhong) revealed that he will establish a studio with Dong Yufei to open new live broadcast accounts and live rooms. Conclusion and Reflection This storm was not only a dispute over copyright and creative ownership, but also deeply reflected the collision between culture and commerce. In today’s digital and fragmented era, the ownership of content copyrights has become a topic worthy of deep consideration. The Oriental Sanshifen Incident, not only a media storm, but also a profound reflection on contemporary commercial culture and online society.\nAs observers, how should we view this collision between culture and commerce? While pursuing commercial interests, how can we protect and respect the creative labor of creators? These questions are worth deep consideration for each of us.\n","date":"2023-12-20","language":"en","permalink":"https://ttf248.life/en/p/dongfang-zhenxuan-essay-controversy-culture-vs-commerce/","tags":[],"title":"Oriental Zhentan Short Essay Incident: A Collision of Culture and Commerce","year":"2023"},{"categories":["AI Inspiration Hub"],"content":" Games of the \u0026ldquo;pay-to-win\u0026rdquo; type, here we will not discuss this; within the gaming community, this is collectively referred to as “Renminbi Warriors” – requiring an affluent wallet rather than understanding game settings. Their enjoyment lies in the entourage of smaller players surrounding them and the thrill of “raid.” Competitive games with a large audience, such as: League of Legends, DOTA, Honor of Kings, PUBG, these types of games have complete worldviews and their game competitions have entered a benign cycle. Psychology is indeed a key field in game design, and social psychology is particularly important. Understanding people’s behavior, needs, and motivations can help design more engaging gaming experiences. Regarding the relationship between “showing off” and social psychology, we can look at it from the following angles:\nSocial Identity: People often seek to establish a sense of identity within social groups. In games, if designs allow players to feel they are outstanding in some way, attracting the attention of other players, this may increase their social identity. This could manifest as boasting skills or showcasing earned rewards. Social Competition: Some games have adopted social competition elements, encouraging players to showcase their achievements on social networks. This can be achieved through leaderboards, achievement systems, or multiplayer battles. Such designs stimulate competitive psychology between players and may lead some players to perform more impressively to gain social recognition. Self-Expression: Some games allow players to express themselves through customizing characters, virtual items, etc. This self-expression is not just for showing off; it can also be a way of expressing personality and social communication. Teamwork: Some games emphasize teamwork, achieving game goals through social interaction. In such situations, boasting behavior may not be encouraged but rather emphasizes collaboration and mutual support. Psychological Reward Systems: Game design can adopt psychological reward systems to stimulate positive social behaviors in players. For example, rewarding or granting privileges to players to encourage them to actively participate in social interactions. Overall, social psychology in game design can be used to shape player interaction and social experiences. Boasting behavior may exist in some situations, but game designers typically strive to balance this behavior to ensure that the gaming experience is positive and interesting for all players. Thinking about where I was writing, without a complete outline, it’s a bit chaotic. The author often plays League of Legends, which is a memory of our generation. Most parents don\u0026rsquo;t like their children playing games because they haven\u0026rsquo;t deeply understood or experienced this type of game; of course, it has to do with the game settings. Each game is a new beginning, and for many children, when they play, they don’t bring much thought into it, belonging to self-exploration gameplay. Under this mode, the outcome of the game depends more on the child\u0026rsquo;s inherent gaming talent. Based on my actual experience, a large part of the players belong to this type, for them.\nThe biggest cost is not money, but time.\nThere’s also entertainment mode within the game, designed to cater to recreational players. League of Legends, this competitive game, for me, was more about realizing a “Three Kingdoms dream.” Starting off, you have nothing in your pockets, relying on your own understanding, farming, spending money, controlling vision, setting traps and ambushes for the opponent – it’s largely about thinking your way through the game. Without exceptional gaming talent, you can still find immense enjoyment. The feeling of commanding the overall situation, the joy of turning a losing game around. And there are also many viewers who often mention “casual players” – they no longer play the game but still watch the matches during major world events. It’s worth mentioning “game time.” This isn\u0026rsquo;t referring to the duration of a single match, but rather the amount of time you spend in the game – on weekends in the afternoons, or evenings between 7 pm and 10 pm after work. You’ll find that you can usually communicate normally with your teammates, and your signals are understood and responded to. If you switch to other times, such as playing through the night, you\u0026rsquo;re more likely to encounter “gaming addicts,” favorable situations where nothing happens, and in unfavorable situations, they’ll complain about you to your family – you can almost feel their resentment through the screen. As someone who works in the IT industry and plays a lot of games, I’ve tried various types, always preferring to think my way through the game rather than relying on reaction speed or talent. Compared to professionals or younger players, my reactions are slower, and I\u0026rsquo;m accustomed to coordinating with teammates and taking command of the team’s strategy. When I first started playing, it was during my student years, guided by older brothers from an YY guild. Now, regarding the current game environment, it feels quite agitated and lacks the purity of before.\nAfter graduating, playing high-level segment games was really exhausting. The entire game required intense focus, thinking about the opponent\u0026rsquo;s plans, and how to counter their setups. It’s that kind of experience where you don’t want to continue after finishing it. Let’s be honest, if you’re considered a very good player, without professional competition, it wouldn’t have much impact on your life trajectory. While it can serve as a social tool, it\u0026rsquo;s not something you can make a living from or establish yourself in society. Single-player games and online games are two different types of games that differ significantly in their gameplay, experience, and technology. Here are some key aspects to understand the differences between single-player and online games:\nConnection Method: Single-Player Games (Offline/Single-player): These games are played on a local device alone, without requiring an internet connection. Players can enjoy the game experience even without network connectivity. Online Games (Online/Multiplayer): This type of game typically requires an internet connection because players need to interact with other players in real time. Online games can be cooperative or competitive, involving online social interaction and esports. Player Interaction: Single-Player Games: Players primarily interact with artificial intelligence, pre-set tasks, or opposing elements within the game. The gaming experience is generally more personalized, influenced by the in-game design and storyline. Online Games: Players can interact with other real players from around the world. This may include collaborating on missions, competing against each other, or participating in esports competitions, as well as social elements like chat, guild systems, etc. Game Design and Content: Single-Player Games: Game design focuses more on providing a complete, independent storyline and gaming experience. The game content is typically pre-designed, and players explore, solve puzzles, or fight within the game. Online Games: Game design needs to consider real-time interaction and player competition or collaboration. The game content may be more dynamic, including regular updates, online events, and social interactions. Technical Requirements: Single-Player Games: Generally run offline, with relatively low requirements for device performance and internet connectivity. Online Games: Require a strong internet connection and high demands on server and network performance to ensure smooth real-time interaction. Business Models: Single-Player Games: Typically use one-time purchase or download business models, where players buy the game to play it fully on their local devices. Online Games: May employ various business models such as free-to-play, advertising, item purchases, or subscriptions to maintain server operations and continuously update game content. Understanding these differences helps players clarify their preferences when choosing games and allows game designers to better meet player expectations.\n","date":"2023-12-11","language":"en","permalink":"https://ttf248.life/en/p/game-psychology-competitive-gaming/","tags":["game","psychology","competitive-gaming"],"title":"Game Psychology: Competitive Gaming","year":"2023"},{"categories":["Computer"],"content":" Data Mining\nDeep Learning\nNeural Network\nAn Alibaba Cloud server was recently purchased during the Double Eleven event: an economy version with a price of 99 per year and low configuration, which is used as a jumpboard to proxy home services, it’s also a decent option. The activity lasts until 2026.\nSpecifically, a Shanghai region server was selected to minimize latency when proxying home machines. Windows 11 and Windows Server 2022 were installed, with the server version being deployed later. Suddenly, a \u0026ldquo;access denied\u0026rdquo; message appeared, initially assuming it was due to a server update that would resolve itself. After five minutes, attempting to connect again still resulted in denial of login. Searching for related error messages indicated that someone was attempting to log in, and excessive incorrect password attempts were preventing access. I had previously encountered security attack scripts, so I immediately suspected a brute-force login attempt by malicious actors. The firewall settings were simplified, without enabling whitelisting, exposing ports 3389 for two machines publicly, much like bait in a fish pond. Once identified as being targeted by script kiddies, the next steps were straightforward: setting up a firewall whitelist to allow only the company’s and home network IP addresses to access the proxy service. frps proxy server previously had no logging configuration, but after enabling logging, it was quite amusing – all sorts of domestic and international IP addresses were attempting to log into the home server. Fortunately, there was one server version running, which made me realize that if the Windows 11 machine hadn’t been targeted, it would have eventually been compromised due to the relatively simple password settings.\n2023/11/17 16:51:14 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [101.43.98.211:50486] 2023/11/17 16:51:14 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [218.93.202.63:56970] 2023/11/17 16:51:14 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [222.179.106.174:60812] 2023/11/17 16:51:15 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [58.16.204.238:2839] 2023/11/17 16:51:15 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [124.223.47.24:50274] 2023/11/17 16:51:16 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [43.248.128.22:55883] 2023/11/17 16:51:16 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [43.143.53.138:56955] 2023/11/17 16:51:16 [I] [proxy.go:204] [639d8947325142ac] [host-remote] get a user connection [43.228.7.250:61550] 2023/1 ```shell Nov 16 04:46:34 aliyun-sh sshd[156625]: Failed password for root from 120.55.164.64 port 53410 ssh2 Nov 16 04:46:34 aliyun-sh sshd[156623]: Failed password for root from 111.16.215.122 port 36548 ssh2 Nov 16 04:46:58 aliyun-sh sshd[156630]: Failed password for invalid user share from 139.9.233.78 port 53872 ssh2 Nov 16 04:47:23 aliyun-sh sshd[156634]: Failed password for invalid user spark from 139.9.233.78 port 36134 ssh2 Nov 16 04:47:26 aliyun-sh sshd[156636]: Failed password for root from 120.55.164.64 port 46142 ssh2 Nov 16 04:47:47 aliyun-sh sshd[156640]: Failed password for root from 111.16.215.122 port 42962 ssh2 Nov 16 04:48:24 aliyun-sh sshd[156652]: Failed password for root from 120.55.164.64 port 38868 ssh2 Nov 16 04:48:25 aliyun-sh sshd[156654]: Failed password for root from 111.16.215.122 port 46164 ssh2 Nov 16 04:48:39 aliyun-sh sshd[156657]: Failed password for invalid user test from 139.9.233.78 port 39386 ssh2 Nov 16 04:48:50 aliyun-sh sshd[156659]: Failed password for root from 111.16.215.122 port 38892 ssh2 Nov 16 04:48:53 aliyun-sh sshd[156662]: Failed password for root from 120.55.164.64 port 49348 ssh2 Nov 16 04:48:53 aliyun-sh sshd[156664]: Failed password for invalid user test from 139.9.233.78 port 49864 ssh2 Nov 16 04:50:02 aliyun-sh sshd[156672]: Failed password for root from 111.16.215.122 port 45294 ssh2 Nov 16 04:50:30 aliyun-sh sshd[156680]: Failed password for invalid user zabbix from 139.9.233.78 port 52206 ssh2 Nov 16 04:50:50 aliyun-sh sshd[156683]: Failed password for root from 120.55.164.64 port 34820 ssh2 Nov 16 04:50:51 aliyun-sh sshd[156685]: Failed password for root from 111.16.215.122 port 58978 ssh2 Nov 16 04:51:18 aliyun-sh sshd[156689]: Failed password for root from 120.55.164.64 port 45306 ssh2 Nov 16 04:51:25 al ## Epilogue Developing a self-hosted server requires setting up a whitelist for public Windows access, and on Linux systems, it’s recommended to disable password logins and enable key file login. ","date":"2023-11-20","language":"en","permalink":"https://ttf248.life/en/p/cloud-servers-and-script-kids/","tags":[],"title":"Cloud Servers and Script Kiddies","year":"2023"},{"categories":["Computer"],"content":"The projects within the team have dependencies on each other, and due to historical reasons, submodules haven’t been used to manage these project dependencies. Daily development requires manually updating the repository code one by one, otherwise various strange issues may arise.\nReferring to online resources, the structure is generally similar. A local manual repository directory (git_list.txt) is maintained, and a script iterates through the directories to perform an update in one go. Before starting each project, this script needs to be executed.\nlinux create new file: batch_pull.sh\n#!/bin/bash echo \u0026#34;============ Updating Repository ===================\u0026#34; # Check if git_list.txt exists if [ ! -f \u0026#34;git_list.txt\u0026#34; ]; then echo \u0026#34;git_list.txt file does not exist! Please create and add the Git repository URLs to pull.\u0026#34; exit 1 else echo \u0026#34;============ Detected Git Repository List File ===================\u0026#34; fi # Read each URL from git_list.txt and execute the pull operation while read -r url; do if [ -d \u0026#34;$url\u0026#34; ]; then cd \u0026#34;$url\u0026#34; || continue git pull cd .. echo \u0026#34;Pull $url completed!\u0026#34; echo \u0026#34;========================================\u0026#34; else echo \u0026#34;Directory $url does not exist, skipping pull.\u0026#34; fi done \u0026lt; \u0026#34;git_list.txt\u0026#34; Windows Create a new file: batch_pull.bat\n@echo off chcp 65001 \u0026gt; nul rem Enter the directory of the script cd /d \u0026#34;%~dp0\u0026#34; rem Check if git_list.txt exists if not exist \u0026#34;git_list.txt\u0026#34; ( echo git_list.txt file does not exist! Please create and add the Git repository URLs you want to pull. exit /b 1 ) else ( echo ============ Detected Git repository list file ========= ) rem Read each URL from git_list.txt and execute the pull operation for /f %%i in (git_list.txt) do ( if exist \u0026#34;%%i\u0026#34; ( pushd \u0026#34;%%i\u0026#34; git pull popd echo Pull %%i completed! echo ======================================== ) else ( echo Directory %%i does not exist, skipping pull. ) ) Historical Issues Also addressed the git folder permission files encountered after reinstalling the system: Fatal error \u0026ldquo;unsafe repository (\u0026rsquo;/home/repon\u0026rsquo; is owned by someone else)\u0026rdquo;. Most suggested solutions online originate from stack overflow:\nAdd trust to the repository directory: git config --global --add safe.directory /home/repon Manually modify the configuration file .gitconfig, specifying the directory to add trust [safe] directory = /home/repon After using this method, repository updates are normal, but there are many warning messages displayed in the console every time git pull is executed, indicating owner errors.\nDesktop System Reinstallation Machines developed for a long time without system reinstallation, the system partition contained an explosion of garbage files, so I took some time to reinstall the system and encountered this permission issue again. Previous scripts would not run because the permissions were incomplete.\nUsing the new approach, directly add *, so that git automatically trusts all directories.\ngit config --global --add safe.directory \u0026#34;*\u0026#34; It is suspected to be a user permission problem, or whether everyone has not adapted to the windows platform. There are similar chown commands. You can modify folder ownership. Of course, if your directories are few, manually modifying ownership also works. However, this work computer has added domain information. I don\u0026rsquo;t know if it\u0026rsquo;s an abnormal domain deployed by the company or whether there is an anomaly in the local system settings. The user list cannot find the user used for login, and finally processed through command-line operations.\nWith administrator permissions, execute the powershell script change_ower.ps1, remember to adjust the script file encoding to gbk so that it doesn\u0026rsquo;t display garbled characters in Chinese operating systems.\n# Get the current user\u0026#39;s username $currentUserName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name # Set PowerShell\u0026#39;s character encoding to UTF-8 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 # The root directory path to change ownership $rootDirectory = \u0026#34;G:\\workspace\u0026#34; # Replace with the actual directory path # Recursively iterate through directories and change file and folder owners Get-ChildItem -Path $rootDirectory -Recurse | ForEach-Object { $itemPath = $_.FullName # Check if it\u0026#39;s a file or a folder if ($_ -is [System.IO.DirectoryInfo]) { # If it\u0026#39;s a folder, use icacls to change the owner permission $icaclsResult = icacls $itemPath /setowner \u0026#34;$currentUserName\u0026#34; 2\u0026gt;\u0026amp;1 if ($LASTEXITCODE -eq 0) { Write-Host \u0026#34;Changed the owner of folder $itemPath to $currentUserName\u0026#34; } else { Write-Host \u0026#34;Unable to change the owner of folder $itemPath. Error information: $icaclsResult\u0026#34; } } else { # If it\u0026#39;s a file, use icacls to change the owner permission $takeownResult = icacls $itemPath /setowner \u0026#34;$currentUserName\u0026#34; 2\u0026gt;\u0026amp;1 if ($LASTEXITCODE -eq 0) { # Write-Host \u0026#34;Changed the owner of file $itemPath to $currentUserName\u0026#34; } else { Write-Host \u0026#34;Unable to change the owner of file $itemPath. Error information: $takeownResult\u0026#34; } } } Unexpected situations still occurred, and the Chinese information output by the script was garbled. I tried setting the console character encoding and adjusting the script encoding, but the output was all garbled. It is likely that my brain wasn\u0026rsquo;t clear at all. I tried enabling the beta feature in Control Panel - Region - Language Settings to globally enable Unicode encoding, and the script executed normally. Several development software programs could not work properly. Later, when reviewing materials, I remembered to adjust the script file encoding to gbk.\nResources https://ganzhixiong.com/p/f1b9f4fc/ https://stackoverflow.com/questions/71901632/fatal-error-unsafe-repository-home-repon-is-owned-by-someone-else ","date":"2023-10-19","language":"en","permalink":"https://ttf248.life/en/p/bulk-update-local-git-and-legacy-permissions/","tags":["git"],"title":"- Batch update local Git repositories and resolve legacy permission issues.","year":"2023"},{"categories":["Computer"],"content":"The potholes in the mini-program development haven’t been filled, and we’ve just dug a new one with WPF. Recently, the company has been experiencing some turbulence, and remote collaboration communication is invariably less efficient than desired. So, we\u0026rsquo;ve taken on the development of client interfaces.\nWPF WPF Microsoft Official Learning Resources WPF Basic Summary (Learning Suggestions) WPF Chinese Website WPF Personal Summary and Learning Recommendations WPF interface design uses many concepts similar to web frontend design, striving to isolate UI design from business logic as much as possible, which is the desired division of labor in internet companies. This year I just finished tinkering with Mini Programs, and many concepts are common, making it relatively easy to get started. These are considered the “Dao” in modern UI design – mastering the basic framework concepts makes the path less prone to deviation.\nFor readers who have previous WinForms development experience, it is recommended to read: WPF Basic Summary (Learning Suggestions). The content is not long and is suitable for experienced readers to plan their learning path.\nFor beginners, it is recommended to read: WPF Chinese Website, which introduces basic concepts, the development history, and the logical reasoning of underlying classes from scratch. This website happens to be quite lucky – the author just released it in August this year, timed perfectly with my content to attract readers to purchase courses. If I waited any later, I’d probably have no chance.\nFor the most authoritative learning materials, of course, Microsoft\u0026rsquo;s official resources are preferred, but they can be a bit dry, and new learners need patience. Classic electronic books also exist, but they are not recommended; there isn\u0026rsquo;t much time to sit down and read them in daily work, so it’s more suitable to practice with projects.\nC# and .NET Release History Regarding previous learning languages, there have been a number of new features released in recent years, and the versioning of syntax has been iterating annually. https://en.wikipedia.org/wiki/C_Sharp_(programming_language)\nOfficial Learning Resources:\nhttps://learn.microsoft.com/zh-cn/dotnet/csharp/ https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/with-visual-studio?pivots=dotnet-7-0 ","date":"2023-10-17","language":"en","permalink":"https://ttf248.life/en/p/wpf-learning-resources/","tags":["WPF"],"title":"WPF Learning Resources","year":"2023"},{"categories":["The Seven Seconds of a Fish"],"content":"The Central Committee of the Communist Party of China: will intensify anti-corruption efforts in state-owned enterprises and the financial sector, and thoroughly rectify “the four prevailing tendencies.”\nCommunist Party of China Central Politburo The Political Bureau of the Central Committee of the Communist Party of China held a meeting on September 27, reviewing the Comprehensive Report on the First Round Supervision of the First Session of the Twentieth Party Congress. Xi Jinping, General Secretary of the Communist Party of China, chaired the meeting. The meeting emphasized that the supervision and oversight work should be used as an opportunity to further strengthen the leadership of the Communist Party in all aspects, urging supervised party organizations to raise their political stance, conscientiously fulfill the responsibilities and missions assigned by the Central Committee, continuously enhance the core functions and competitiveness of state-owned enterprises, consolidate the important material and political foundations of socialism with Chinese characteristics, intensify financial institutions\u0026rsquo; service to the real economy and national strategies, and promote high-quality development. It was stressed to coordinate development and security, firmly establish bottom-line and limit thinking, adopt effective measures to prevent and mitigate major risks, and safeguard the safety line. It was also necessary to advance comprehensive Party self-discipline to greater depths, consolidate the responsibility of the secretary of the党委 (party committee) as the first person, strengthen the responsibilities of leadership committees members “dual duties in one position,” and enhance the supervision responsibilities of disciplinary and supervisory organizations, highlight strengthening supervision of all levels’ “one leader”, intensify anti-corruption efforts in state-owned enterprises and financial sectors, deeply rectify “four prevailing styles,” deepen reform, improve systems, promote source governance, and facilitate treatment of problems comprehensively. (Xinhua)\nCreating Major Financial Risks! Liu Liange, former Party Secretary and Chairman of China Merchants Bank, has been expelled from the Communist Party. According to the website of the Central Commission for Discipline Inspection and Supervision, with the approval of the Communist Party of China, the Central Commission for Discipline Inspection and Supervision initiated an investigation into Liu Liange’s serious violation of disciplinary and illegal acts as the former Party Secretary and Chairman of China Merchants Bank Co., Ltd. Upon investigation, Liu Liange lost his ideological conviction, betrayed his original mission, was firm and resolute in implementing the decisions and plans of the Communist Party Central Committee, failed to guard against financial risk prevention responsibilities, recklessly intervened in loan projects and issued loans illegally, causing major financial risks, was ineffective in fulfilling his role as the main body of comprehensive self-discipline of the Party, seriously damaged the political ecology of his unit, privately brought prohibited books into the country, plotted against organizational scrutiny; ignored the spirit of the Eight Rules, accepted gifts and valuables illegally, visited private venues, and received skiing and tourism arrangements; failed to report personal matters in accordance with regulations, did not truthfully explain when questioned by the organization, showed favoritism in appointing and promoting personnel; violated regulations regarding commercial operations; illegally interfered with capital lending, secretly retained confidential materials; was morally corrupt, had an improper family style, failed to properly manage his relatives and educate them; lacked a bottom line of discipline and law, abused power, “ate from finance,” used his position for the benefit of others in loan financing, project cooperation, and illegally accepted huge amounts of money.\nLiu Liange seriously violated the Party’s political conduct, organizational conduct, integrity conduct, work conduct, and lifestyle conduct, constituted serious disciplinary violations and was suspected of criminal offenses related to illegal loan issuance and fraud, and did not curb or restrain himself after the 18th Party Congress, had a severe and adverse impact, warranted serious handling. In accordance with relevant provisions of the Disciplinary Punishment Code of the Communist Party of China and the Law of the People’s Republic of China on Supervision, and after deliberation by the Central Commission for Discipline Inspection and Supervision Committee and approval by the Communist Party of China, it was decided to expel Liu Liange from the Communist Party with a dismissal sanction; cancel his benefits in accordance with regulations; terminate his representation in the Nineteenth National Congress; recover illegally obtained income; transfer his suspected criminal issues to the Public Prosecutor’s Office for investigation and prosecution, and related property to be transferred to the Public Prosecutor’s Office.\nLi Xiaopeng, former Party Secretary and Chairman of China Everbright Bank, has been expelled from the Communist Party and public office due to serious violations and illegal acts (CCTV News).\nThe website of the Central Commission for Discipline Inspection and Supervision reported: According to a report from the Guiyang Municipal Committee of the Communist Party of China, Li Zhi Ming, former Party Secretary and Chairman of Guiyang Rural Commercial Bank, was suspected of serious violation of discipline and law and is currently under investigation by the Guiyang Municipal Committee of the Communist Party of China.\nAfter an Eight-Year Hiatus, Huijin Boosts Holdings in Four Major Banks On October 11th, Industrial Bank, Agricultural Bank of China, Bank of China, and Construction Bank – the four major state-owned commercial banks – respectively announced that Huijin Company had increased its holdings, totaling 276.1 million shares, 372.7 million shares, 248.9 million shares, and 183.8 million shares, respectively. Huijin Company plans to continue increasing its holdings in the four major banks on the secondary market over the next six months.\n","date":"2023-10-09","language":"en","permalink":"https://ttf248.life/en/p/financial-anti-corruption-curtain-rise/","tags":["financial","anti-corruption","central-political-bureau"],"title":"The Opening of Financial Anti-Corruption","year":"2023"},{"categories":["Diary Ramblings"],"content":"Live streamers sending iPhones? Mini-program ranking rewards? Various live streaming platform gift giveaways?\nThese three seemingly unrelated items are, in essence, different monetization models for free traffic – a bit like a financial game.\nPlatform Lottery for Gifts In typical scenarios, users reset their acquisition of platform currency and purchase gifts to send to the host, \u0026ldquo;Xin Yi\u0026rdquo; (Hearty), with each platform having another gameplay mechanic. After users acquire platform currency, they no longer directly send gifts but instead spend a certain amount of currency to participate in lottery activities, obtaining limited high-value gifts.\nAt this point, the online lottery is simply understood as the platform opening a casino. With enough participants, it’s guaranteed not to lose money. \u0026ldquo;屌丝\u0026rdquo; (literally \u0026ldquo;loser,\u0026rdquo; often used colloquially to describe lower-income individuals) users, fueled by a desire to try their luck and win big, hoping to hit a jackpot and then send gifts – gaining face and acting as a “big brother”!\nLive Stream Gifts (Physical Items) The lottery mentioned previously targets users’ own writing. Each month, the hosts have water flow tasks and popularity tasks. The gameplay of opening gift giveaways allows fans to send specific gifts or gifts of a specified amount, giving them the opportunity to participate in the lottery. The prizes could be high-end phones or cash red envelopes.\nFor popular hosts, this activity is very profitable, essentially equivalent to temporary zero-cost purchases. If enough people participate, the host also makes money. This tests the host’s operational capabilities.\nOf course, there\u0026rsquo;s another gameplay where the rewards are very high (cash value), and many outdoor anchors operate in this way, effectively turning it into an online gambling. Users only care about whether they can win, not the content of the live stream.\nAside from show-type hosts, through PK mode, they induce fans to consume and recharge, and ordinary game anchors cannot drive players’ consumption sentiment. Playing games and watching live streams are both ways to pass the time and don\u0026rsquo;t want to incur additional expenses, especially competitive games. The lottery method can cultivate users’ recharging habits, consumption habits, and occasionally even impulsive spending (sending a lot, hoping to win).\nMini Program Ranking Rewards Design a mini program with some useless workflows or provide partial game-related auxiliary services. The above are all cover stories, designed to pass Tencent’s audit – the mini program’s gameplay incorporates a ranking mechanism. Users earn points by browsing promotional ads and completing tasks, and the backend sets rankings based on these points, with higher-ranked users receiving designated rewards.\nCore Logic: Advertising Revenue \u0026gt; Operating Costs + Reward Expenses\nThe mini program can also operate normally by providing reasonable services and earning revenue through appropriate advertising – this may not generate much income, but it’s a steady trickle and is acceptable.\n","date":"2023-09-19","language":"en","permalink":"https://ttf248.life/en/p/traffic-monetization-business-model-raffle/","tags":["traffic-monetization","raffle-draw","gift-ideas","live-stream","mini-program","ranking"],"title":"Revenue Generation Business Model: Raffle/Sweepstakes","year":"2023"},{"categories":["Computer"],"content":" I recently got a mini host for the office, thinking it would be convenient to configure an environment and have occasional access at home. I temporarily deployed internal network penetration using frp – specifying port forwarding, which requires a public server with a connection quality dependent on its bandwidth. Instead, I experimented with a fresh Zerotier virtual LAN, similar to a VPN, where I created a virtual network card locally and all machines joined it into a single virtual network. What is ZeroTier ZeroTier is a software-defined wide area network (SD-WAN) solution that allows users to create secure virtual networks between devices in different geographic locations. Through ZeroTier, you can easily connect multiple computers, servers, and devices into a virtual, encrypted network – as if they were on the same local network. This helps developers and IT professionals securely share data and resources across different locations without complex network setups or VPN configurations.\nZeroTier Networks: A ZeroTier network is a virtual, global LAN that allows different devices to connect together over the internet, as if they were on the same physical network. This network can contain multiple subnets, with all devices connected through ZeroTier technology.\nPlanet Servers: Planet servers are a key component of the ZeroTier network. They are global and responsible for maintaining and managing the entire ZeroTier network topology, routing information, and network status. The planet server acts as a central control center for the global network, without directly transferring data. User devices need to connect to at least one planet server to participate in the ZeroTier network.\nTransit Servers: Transit servers are auxiliary nodes within the ZeroTier network that help establish direct communication channels between devices. When devices cannot connect directly, they can use transit servers to transmit data. This helps improve network reachability and performance. Transit servers are typically located around the world, acting as data transmission hubs.\nIn essence, ZeroTier uses the assistance of planet servers and transit servers to enable devices to create virtual local networks globally, achieving secure and fast communication between devices. The planet server is responsible for global network management, while the transit server helps devices establish connections when needed.\nInstallation \u0026amp; Deployment Visit the ZeroTier official website (https://www.zerotier.com/) to obtain installation files and documentation. Download and install the ZeroTier One client according to your operating system. It supports Windows, macOS, Linux, and many other platforms. Launch the ZeroTier One client after installation. Register a ZeroTier account if you don\u0026rsquo;t already have one. You can create an account within the client. Log in with your ZeroTier account and create a new network. This network will have a unique 16-character ID, which you need to remember. Join this network on your device. You can either enter the network ID in the client or use the QR code scanning feature. Devices installed and configured with the ZeroTier client will be added to the same virtual network. These devices can now communicate directly with each other as if they were on the same local area network. You can manage network settings, add devices, and monitor network traffic in the ZeroTier control panel. Installing and Deploying Moon Many domestic operators have banned UDP tunneling, and the frp service is stable. Due to using the TCP protocol, deploying Zerotier intermediate servers can achieve similar effects. The firewall needs to open udp 9993.\ncurl -s https://install.zerotier.com/ | sudo bash Check installation success:\nzerotier-cli info Join the local network:\nzerotier-cli join network-id Create moon:\ncd /var/lib/zerotier-one \u0026amp;\u0026amp; sudo zerotier-idtool initmoon identity.public \u0026gt; moon.json Edit the configuration file, adjust the stableEndpoints node, \u0026ldquo;server public IP/9993\u0026rdquo;\nGenerate a signature configuration, create the moons.d folder, move the previous files to this folder, and restart the service:\nsudo zerotier-idtool genmoon moon.json mkdir moons.d \u0026amp;\u0026amp; mv 000000eb444ec0d8.moon moons.d/ systemctl restart zerotier-one.service Client nodes join the moon server, taking the ID from the JSON configuration file\u0026rsquo;s id field:\nzerotier-cli.bat orbit ztaddr ztaddr # Observe whether new moon nodes appear, with IDs and information matching the server configuration [root@idv-36f9d5 ~]# zerotier-cli listpeers 200 listpeers \u0026lt;ztaddr\u0026gt; \u0026lt;path\u0026gt; \u0026lt;latency\u0026gt; \u0026lt;version\u0026gt; \u0026lt;role\u0026gt; 200 listpeers 0cccb***** 35.236.*.*/64393;110;10726 327 1.6.3 LEAF 200 listpeers 3a46f***** 185.180.*.*/9993;110;757 -1 - PLANET 200 listpeers 3ed7c***** 39.97.*.*/9993;172;79 32 1.6.3 MOON 200 listpeers 4f838***** - -1 - LEAF 200 listpeers 62f86***** 50.7.*.*/9993;110;4796 351 - PLANET 200 listpeers 778cd***** 103.195.*.*/9993;5148;4887 253 - PLANET 200 listpeers 992fc***** 195.181.*.*/9993;10161;4921 226 - PLANET 200 listpeers 9d2b5***** - -1 - LEAF On the Windows platform, start the terminal with administrator privileges and use the zerotier-cli.bat command-line interface. On the Linux platform, use the zerotier-cli interface. The listpeers subcommand displays connected nodes and shows all nodes when using listpeers, indicating a successful join.\nUninstalling How to uninstall on the Windows platform is beyond the scope of this document, as it follows standard operating procedures – typically through the Control Panel. We will focus on the Ubuntu instructions:\nRemove the zerotier-one service using dpkg: sudo dpkg -P zerotier-one Delete the zerotier-one directory, which stores the address information; deleting it will result in a new address upon reinstallation: sudo rm -rf /var/lib/zerotier-one/ Epilogue They were originally all decommissioned, and when the servers arrived, there weren’t suitable services as proxy nodes. Alibaba was doing sales promotion, providing development trial servers with low configurations, priced affordably in 1999, and used them for two years. What was valued was the bandwidth provided by the servers.\nReferences https://www.wnark.com/archives/152.html https://www.cnblogs.com/Yogile/p/12642423.html ","date":"2023-09-19","language":"en","permalink":"https://ttf248.life/en/p/zero-tier-remote-lan/","tags":["ZeroTier","inner-network-penetration"],"title":"ZeroTier VPN","year":"2023"},{"categories":["Computer"],"content":"When installing a development system with VMware virtual machines, it’s generally recommended to allocate extra disk space. Over time, the local disk space consumed by the VM will far exceed the actual size of its files.\nScenario Description The df -h command revealed that the current machine was using 60GB of disk space, and after deleting all snapshots and clone images, the local virtual machine still occupied significantly more than 60GB, further straining the already limited hard drive.\nPrerequisites When installing the virtual machine, do not select \u0026ldquo;pre-allocate disk.\u0026rdquo; The local hard drive where the virtual machine is stored must have sufficient free disk space greater than the currently used space of the virtual machine. If there isn\u0026rsquo;t enough space, consider temporarily moving the virtual machine to a portable hard drive, optimize the disk, and then migrate it back. Tools The official provides the open-vm-tools package, which can be installed via yum or by installing the VMware-Tools image package.\nCommands vmware-toolbox-cmd disk shrink / After execution, the virtual machine will automatically shut down, and the VMware host program will perform disk compression. The execution time depends on the volume of the virtual machine and the speed of the disk access.\nThe effect is quite good; the disk space occupied by the virtual machine is essentially equal to the disk information as shown in df -h.\n","date":"2023-06-21","language":"en","permalink":"https://ttf248.life/en/p/vmware-virtual-machine-disk-space-optimization/","tags":["vmware"],"title":"VMware Virtual Machine Disk Space Optimization","year":"2023"},{"categories":["Computer"],"content":"Domestic resources are basically all recommending Autumn Leaf’s one-click deployment package, thinking that they are open-source projects based on Python, so deployment wouldn\u0026rsquo;t be very complicated, let\u0026rsquo;s try to start from scratch.\nI was messing around with AI-generated images and specifically changed my graphics card, a beginner version of the 3060 12g; the seven-year-old 960 retired gloriously.\nThe core pytorch cuda installation, which I previously encountered issues with when writing Python game helper scripts (I had installed it locally before), still presented problems – the cuda encryption consistently failed to activate.\nTo Do Replan the article structure, first introduce PyTorch, version correspondence, and how to check versions. How to create a new virtual environment from scratch locally and deploy PyTorch. Translate the manuscript from scratch: https://stable-diffusion-art.com/install-windows/ Organize reference materials Steps Step-by-step installation tutorials in Chinese may not be readily available. When you search in English on Google, you’ll find many similar tutorials starting from scratch. After a brief introduction, we need to install git and then explain the need to install python. Then, you go ahead and download the repository – simply double-clicking the script does the trick.\nhttps://github.com/AUTOMATIC1111/stable-diffusion-webui\nFor detailed usage and Q\u0026amp;A, consult the issues, https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki. I don’t know why no one explains what this repository is for. Actually, the name itself isn\u0026rsquo;t difficult to understand – it’s a graphical control console that makes it easier to use. During installation, it downloads the official repository content and obtains the actual SD code.\nThe repository also provides an installation and startup script that automatically recognizes the current folder and whether there is a Python virtual environment. If one exists, it defaults to using the Python in the current path.\nFor beginner users, we recommend checking out: https://stable-diffusion-art.com/install-windows/\nPyTorch https://pytorch.org/get-started/locally/\nHere’s what I wanted to talk about today. Don\u0026rsquo;t just follow their steps and run the script directly. Python uses requirement files to install dependencies, which is a minor issue. The core thing is your GPU version and driver version, which need to match PyTorch. Many people have discussed this relationship online – you can find it by searching.\nRefer to: https://blog.csdn.net/weixin_40660408/article/details/129896700\nCreating a virtual environment is like creating an empty virtual environment, where you first execute the official script and install PyTorch within it.\npython -c \u0026#34;import torch; print(torch.version.cuda)\u0026#34; python -c \u0026#34;import torch; print(torch.__version__, torch.cuda.is_available())\u0026#34; The above two scripts can check the CUDA version you need to install and also check if PyTorch has been installed successfully.\nIt’s not recommended to do fancy operations here – just follow the logic on the official page and copy it over directly to install. Directly using pip to install PyTorch is likely to fail or won\u0026rsquo;t activate CUDA.\npip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 Key point: Don’t use messy folder names, as this could cause PyTorch to not work correctly. I spent a lot of time installing and reinstalling, trying to upgrade to version 2.0 because the official documentation said it would be faster. I hadn\u0026rsquo;t used it much before, and wasn\u0026rsquo;t sure if Python versions had an impact. I also reviewed the official manual, which recommended using version 3.8. This created a small conflict since I’d previously used a one-click installation package that contained version 3.10. Finally, I started from scratch by creating a new folder, creating a virtual environment, and ensuring PyTorch was installed successfully.\nThen I moved the newly installed virtual environment into the web UI folder. At this point, running the script to install other dependencies didn’t cause any problems.\nAfter moving it, you need to execute: python -m pip install --upgrade --force-reinstall pip to fix Pip.\nIt might seem a bit strange, but I spent quite a long time troubleshooting this because it couldn\u0026rsquo;t correctly recognize my PyTorch. I realized that by installing it first, then installing other dependencies, I could eliminate all sources of interference.\nXformers It is recommended to enable this, which can accelerate image generation and reduce memory usage. However, a side effect is that generated images are relatively less stable with the same set of parameters. stable-diffusion-webui:Xformers huggingface optimization | 100.00% | 2m 57.03s | 7440/10058 MiB | 12288/12288 MiB (100.0%) |\nXformers Optimization Ratio Time taken Torch active/reserved Sys VRAM 51.02% 1m 29.21s 4547/7164 MiB 9298/12288 MiB (75.67%) Xformers ((masterpiece)),((best quality)),((high detail)),((realistic,)) Industrial age city, deep canyons in the middle, Chinese architectural streets, bazaars, Bridges, (rainy days:1.2), (steampunk:0.8), Chinese architecture Negative prompt: nsfw,((cowboy)),(((pubic))), ((((pubic_hair))))sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality:2.0), (low quality:2.0), (blurry:2.0), horror, geometry, bad_prompt, (bad hands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), crown braid, ((2girl)), (deformed fingers:1.2), (long fingers:1.2), succubus wings,horn,succubus horn,succubus hairstyle, (bad-artist-anime), bad-artist, bad hand, borrowed character, text focus, watermark, sample watermark, character watermark, lofter username, photo date watermark, movie poster, magazine cover, journal, cover, cover page, doujin cover, album cover, manga cover, brand name imitation, EasyNegative,Tights, silk stockings,shorts Steps: 35, Sampler: DPM adaptive, CFG scale: 5.5, Seed: 2223996555, Size: 1088x1088, Model hash: 543bcbc212, Model: base_Anything-V3.0-pruned, Clip skip: 2, ENSD: 31337 Epilogue We didn’t recommend the one-click deployment package because it contained some settings that were customized by the author and differed from the official, out-of-the-box configuration. If you\u0026rsquo;re a beginner, you might not understand why those parameters are optimal; it’s generally best to start with the official version. As you use it more and more, take time to read the official documentation, and you’ll learn which parameters need adjustment.\nGPU Selection Following the cryptocurrency mining boom, GPU prices have become relatively less high; for entry-level players choosing between the 3060 and 3060ti, it’s generally recommended to opt for the 12G version of the 3060 due to its larger VRAM, as it can generate larger resolution images. Why do you need a higher resolution? Because you can increase the resolution during generation, which will result in clearer and more detailed images. If you only want to generate small images, then 8GB of VRAM is sufficient.\nThere’s also the Super Resolution Upscaling option, which enhances details and makes the image richer in detail, requiring more VRAM.\nBelow is a summary table of the single-precision (FP32), half-precision (FP16), and double-precision (FP64) floating-point computing capabilities of NVIDIA GeForce GTX 970, GeForce RTX 3060 Ti, GeForce RTX 3060, GeForce RTX 3080, and GeForce RTX 3080 Ti:\n| GeForce GTX 970 | 2014 | 3.49 | 87.2 | 0.109 |\nGraphics Card Selection Graphics Card Model Release Year Single-Precision Floating Point Compute Capability (TFLOPS) Half-Precision Floating Point Compute Capability (TFLOPS) Double-Precision Floating Point Compute Capability (TFLOPS) Graphics Card Selection Graphics Card Model Release Year Single-Precision Floating-Point Compute Capability (TFLOPS) Half-Precision Floating-Point Compute Capability (TFLOPS) Double-Precision Floating-Point Compute Capability (TFLOPS) Graphics Card Selection Graphics Card Model Release Year Single-Precision Floating-Point Compute Capability (TFLOPS) Half-Precision Floating-Point Compute Capability (TFLOPS) Double-Precision Floating-Point Compute Capability (TFLOPS) Graphics Card Selection Graphics Card Model Release Year Single-Precision Floating-Point Compute Capability (TFLOPS) Half-Precision Floating-Point Compute Capability (TFLOPS) Double-Precision Floating-Point Compute Capability (TFLOPS) GPU Selection Excerpted from various GPU performance test data\nUpdates Every six months, I originally planned to revisit and refine the installation steps, and explain more basic concepts. However, I discovered that most people using AI image generation are simply adjusting parameters based on images provided by experts, or re-rendering existing images with formatting changes.\nI had previously attempted a project using AI to generate UI materials for mini programs, but after struggling for half a day, the results were unsatisfactory compared to just pulling resource images directly from the official mini program documentation.\n","date":"2023-04-13","language":"en","permalink":"https://ttf248.life/en/p/stable-diffusion-zero-install-story/","tags":["stable-diffusion","pytorch","python"],"title":"Stable Diffusion – The Love, Hate, and Drama of Installing it from Scratch","year":"2023"},{"categories":["Computer"],"content":"one loop thread, the time taken has already been at the microsecond level, switching servers resulted in a backlog of up to 60,000 packets, to almost none.\nIn single-threaded loop processing data scenarios, the CPU performance depends on factors such as clock frequency, cache size, and instruction set architecture. Generally, CPUs with higher clock frequencies, larger caches, and more advanced instruction set architectures perform better in single-threaded data processing.\nSingle-Threaded Performance improvements aren\u0026rsquo;t always achieved by adding threads; it’s not necessary to overcomplicate things. Refine the project workflow, identify time-consuming bottlenecks, and determine if a single thread can meet the requirements. Considering single-threaded approaches reduces complexity and minimizes potential issues.\nIt’s often a bit misguided to jump straight into suggesting threading.\nEvents All processed market data, latency sensitive. Working late into the night to release a new optimized version, local API removal for testing, speed was okay, tps: 42,000 Deployed to server, tps dropped significantly: 21,000, went home to try on a desktop, tps: 79,000, started suspecting that the internal service virtual machines might have some issues, initially suspected frequency-related problems, the difference between the home desktop and the server’s CPU is the biggest, namely the frequency.\nTest Server A\nprocessor\t: 7 vendor_id\t: GenuineIntel cpu family\t: 6 model\t: 47 model name\t: Intel(R) Xeon(R) CPU E7- 4807 @ 1.87GHz stepping\t: 2 microcode\t: 0x34 cpu MHz\t: 1866.733 cache size\t: 18432 KB physical id\t: 1 siblings\t: 4 core id\t: 3 cpu cores\t: 4 apicid\t: 7 initial apicid\t: 7 fpu\t: yes fpu_exception\t: yes cpuid level\t: 11 wp\t: yes flags\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm pti dtherm arat bugs\t: clflush_monitor cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit bogomips\t: 3733.46 clflush size\t: 64 cache_alignment\t: 64 address sizes\t: 40 bits physical, 48 bits virtual power management: Test Server B\nprocessor\t: 7 vendor_id\t: GenuineIntel cpu family\t: 6 model\t: 63 model name\t: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz stepping\t: 2 microcode\t: 0x3c cpu MHz\t: 2599.998 cache size\t: 20480 KB physical id\t: 14 siblings\t: 1 core id\t: 0 cpu cores\t: 1 apicid\t: 14 initial apicid\t: 14 fpu\t: yes fpu_exception\t: yes cpuid level\t: 15 wp\t: yes flags\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault epb pti fsgsbase smep xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts bugs\t: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit bogomips\t: 5199.99 clflush size\t: 64 cache_alignment\t: 64 address sizes\t: 40 bits physical, 48 bits virtual power management: Consulting OpenAI Initially, regarding core count and clock frequency, the Intel(R) Xeon(R) CPU E7-4807 @ 1.87GHz has 6 physical cores and 12 logical cores with a clock speed of 1.87GHz; while the Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz has 8 physical cores and 16 logical cores with a clock speed of 2.60GHz. Therefore, from the perspective of core count and clock frequency, the E5-2640 v3 should be more advantageous in single-threaded data processing compared to the E7-4807.\nSecondly, considering cache size, the E7-4807 has a cache size of 12MB, while the E5-2640 v3 has a cache size of 20MB. Therefore, the E5-2640 v3 possesses larger cache space, which can improve data access speed and cache hit rate.\nFinally, regarding architecture, the E5-2640 v3 utilizes the more advanced Haswell architecture, while the E7-4807 employs the older Nehalem architecture. The Haswell architecture offers performance improvements compared to the Nehalem architecture, which may also influence the E5-2640 v3’s performance in single-threaded data processing.\nTherefore, considering everything comprehensively, in scenarios involving single-threaded loop processing of data, the E5-2640 v3 should exhibit better performance than the E7-4807. However, specific performance differences will be influenced by various factors including data processing algorithms, memory bandwidth, system load, and so on, requiring a case-by-case analysis.\nHardware Specifications https://www.cpubenchmark.net/compare/3786.2vs2365.2/%5BDual-CPU%5D-Intel-Xeon-E7–4807-vs-%5BDual-CPU%5D-Intel-Xeon-E5-2640-v3 | Price | Search Online $78 - BUY | |\nHardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Turbo Speed Not Supported Up to 3.4 GHz Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Number of Physical Cores 6 (Threads: 12) 8 (Threads: 16) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Max TDP 95W x 2 90W x 2 Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Yearly Running Cost $34.68 $32.85 Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) First Seen on Chart Q3 2020 Q3 2014 Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) # of Samples 1 46 Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) CPU Value 69.1 225.6 Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) Single Thread Rating 721 (-59.2%) 1767 (0.0%) Hardware Specifications Specification Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3) CPU Mark 6223 (-64.6%) 17600 (0.0%) ","date":"2023-04-07","language":"en","permalink":"https://ttf248.life/en/p/program-optimization-dont-fight-hardware/","tags":[],"title":"Program optimization should not attempt to fight against hardware.","year":"2023"},{"categories":["Computer"],"content":"Just as we needed to learn the techniques of searching engines back then, we also need to learn some techniques for communicating with AI, providing reasonable and sufficient constraints, and efficiently obtaining the answers we need.\nIf you look at it from a different angle, current AI is like a very good student with excellent memory – it has the ability to memorize everything. What we need to do is learn how to communicate with AI correctly, effectively, and precisely describe our needs to help AI generate the expected results.\n##科普 The incredibly popular AI – specifically Generative Pre-Training – literally translates to generative pre-training. It’s a deep learning model that trains text generation based on internet-available data, used for tasks like question answering, text summarization generation, machine translation, classification, code generation, and conversational AI. Currently, there have been various versions of models such as GPT-1, GPT-2, GPT-3, and GPT-4, each larger and more powerful than the previous one.\nDoes it Really Have Intelligence? Similarity is high, accuracy increases accordingly. Basic, repetitive tasks, after specific training, no longer require human intervention. Generative AI is a technology that utilizes existing data such as text, audio, and images to create new content. It can be used for various tasks including text generation, speech synthesis, image generation, and dialogue systems. The logical reasoning of Generative AI depends on its training data and model structure. Generally, Generative AI can follow grammar, logic, and common sense to a certain extent, but it may also produce errors, biases, or unrealistic content. Therefore, the output of Generative AI requires human judgment and verification; it should not be blindly trusted or used.\nPrompt Engineer Time flows only forward, and people need to learn to adapt to the current. You can think of AI as not intelligent, lacking logic, and often producing unusable code.\nIf you shift your perspective, the current AI is like a child with excellent memory – it has the ability to memorize after reading something repeatedly, much like copying homework. What we need to do is learn how to communicate correctly, effectively, and with AI, precisely describing our needs to help AI generate the desired results.\nDialogue Patterns Two years ago, when GitHub Copilot was released, no one could have imagined that two years later, OpenAI would appear out of nowhere, allowing humans to recognize the capabilities of large language models.\nBased on comment-based programming and conversational programming, the interaction logic is completely different. The dialogue pattern is friendly for novice users, and it’s necessary to mention NewBing providing follow-up prompts after each question. Microsoft is trying to guide users to obtain more content from the AI knowledge base.\nExample Scenario Scene: A long high-speed train journey, coding is a good choice. With limited traffic, processing a few images, obtaining image materials, downloading software to process images is a bit extravagant, and network conditions don’t allow it. Requirement: There are a batch of picture materials with transparent background images used as navigation bars for small programs. The selected state is colored, and the unselected state is black and white. The materials are all in color, and they need to be preprocessed. Prompt: Write a python code snippet to read all pictures from a folder, convert the pictures into black and white, maintain the transparent background, save the pictures, optimize the image quality, reduce file size, and display it in the console, comparing the sizes before and after optimization. # Import necessary libraries import os from PIL import Image # Define a function to convert images to black and white, maintain transparency, save images, and return file sizes def convert_and_save(image_file): # Open the image image = Image.open(image_file) # Get the image mode, if it\u0026#39;s RGBA mode, indicating a transparent background mode = image.mode if mode == \u0026#34;RGBA\u0026#34;: # Create a white background image with the same size as the original image background = Image.new(\u0026#34;RGB\u0026#34;, image.size, (255, 255, 255)) # Paste the original image onto the white background, ignoring transparent pixels background.paste(image, mask=image.split()[3]) # Convert the composite image to grayscale mode gray_image = background.convert(\u0026#34;L\u0026#34;) # Convert the grayscale image back to RGBA mode to preserve transparency final_image = gray_image.convert(\u0026#34;RGBA\u0026#34;) else: # If it\u0026#39;s not RGBA mode, directly convert the image to grayscale mode final_image = image.convert(\u0026#34;L\u0026#34;) # Get the original image file name and extension file_name, file_ext = os.path.splitext(image_file) # Define the new image file name with _bw suffix for black and white new_file_name = file_name + \u0026#34;_bw\u0026#34; + file_ext # Save the new image and optimize quality, reduce file size final_image.save(new_file_name, optimize=True) # Get the original and new image file sizes and return old_size = os.path.getsize(image_file) new_size = os.path.getsize(new_file_name) return old_size, new_size # Define a folder path to store all images folder_path = \u0026#34;images\u0026#34; # Iterate through all files in the folder for file in os.listdir(folder_path): # Concatenate the full file path file_path = os.path.join(folder_path, file) # Check if the file is an image file based on extension (can add or modify extensions as needed) if file_path.endswith((\u0026#34;.png\u0026#34;, \u0026#34;.jpg\u0026#34;, \u0026#34;.jpeg\u0026#34;, \u0026#34;.gif\u0026#34;)): # Call the function to convert and save the image, and get the file size old_size, new_size = convert_and_save(file_path) # Display the comparison of file sizes before and after optimization in the console print(f\u0026#34;{file}: {old_size} bytes -\u0026gt; {new_size} bytes\u0026#34;) AI quickly provided an answer, looked very beautiful, and worked well, experienced programmers would find that the code below was not very generic, and couldn’t be put into production:\nFixed parameters No log files, all information is printed to the console The task of image processing is suitable for a multi-threaded model NewBing appeared, based on the prompt, chose a question: What can be improved in this code? The answer given this time was far beyond expectations, and most programmers would think of optimization measures, AI gave corresponding suggestions. This code may still have some improvements, such as: You can use the argparse library to allow users to specify the folder path and extension through command-line parameters instead of hardcoding them in the code. You can use the logging library to record the running status of the program instead of printing it directly to the console. You can use try-except statements to catch potential exceptions, such as file opening failure, image conversion failure, etc., and handle them ## Let\u0026#39;s illustrate with an example ```python # Import necessary libraries import argparse import logging import multiprocessing import os from PIL import Image # Define a function to convert and save the image, maintaining transparent background and optimizing file size def convert_and_save(image_file): # Open the image try: image = Image.open(image_file) except Exception as e: logging.error(f\u0026#34;Failed to open {image_file}: {e}\u0026#34;) return None, None # Get the image mode; if it\u0026#39;s RGBA, it has a transparent background mode = image.mode if mode == \u0026#34;RGBA\u0026#34;: # Create a white background image with the same size background = Image.new(\u0026#34;RGB\u0026#34;, image.size, (255, 255, 255)) # Paste the original image onto the white background, ignoring transparent pixels background.paste(image, mask=image.split()[3]) # Convert the combined image to grayscale mode gray_image = background.convert(\u0026#34;L\u0026#34;) # Convert the grayscale image back to RGBA mode to preserve the transparent background final_image = gray_image.convert(\u0026#34;RGBA\u0026#34;) else: # If it\u0026#39;s not RGBA, directly convert the image to grayscale mode final_image = image.convert(\u0026#34;L\u0026#34;) # Get the original image file name and extension file_name, file_ext = os.path.splitext(image_file) # Define the new image file name with _bw suffix for black and white new_file_name = file_name + \u0026#34;_bw\u0026#34; + file_ext # Save the new image, optimizing quality to reduce file size try: final_image.save(new_file_name, optimize=True) except Exception as e: logging.error(f\u0026#34;Failed to save {new_file_name}: {e}\u0026#34;) return None, None # Get the original image and new image file sizes, and return old_size = os.path.getsize(image_file) new_size = os.path.getsize(new_file_name) return file_name, old_size, new_size # Define a function to parse command-line arguments and return the folder path and extension list def parse_args(): # Create an argument parser object parser = argparse.ArgumentParser(description=\u0026#34;Convert images to black and white and optimize quality.\u0026#34;) # Add a required positional argument, representing the folder path parser.add_argument(\u0026#34;folder_path\u0026#34;, help=\u0026#34;The path of the folder that contains the images.\u0026#34;) # Add an optional argument, representing the extension list, defaulting to png, jpg, jpeg, and gif parser.add_argument(\u0026#34;-e\u0026#34;, \u0026#34;--extensions\u0026#34;, nargs=\u0026#34;+\u0026#34;, default=[\u0026#34;.png\u0026#34;, \u0026#34;.jpg\u0026#34;, \u0026#34;.jpeg\u0026#34;, \u0026#34;.gif\u0026#34;], help=\u0026#34;The extensions of the image files.\u0026#34;) # Parse command-line arguments and return the result object args = parser.parse_args() return args.folder_path, args.extensions # Define a function to print the comparison of file sizes before and after optimization def print_result(result): # If the result is not empty, indicating successful conversion and saving if result: # Unpack the result into a tuple of filename and file size tuple if len(result) == 3: file, old_size, new_size = result # Display the comparison of file sizes before and after optimization in the console logging.info(f\u0026#34;{file}: {old_size} bytes -\u0026gt; {new_size} bytes\u0026#34;) else: # Log the result if it\u0026#39;s not a tuple of 3 elements logging.info(f\u0026#34;{result}\u0026#34;) # Configure the logger, outputting logs to the console and files, setting the log level to INFO logging.basicConfig(level=logging.INFO, format=\u0026#34;%(asctime)s %(levelname)s %(message)s\u0026#34;, handlers=[logging.StreamHandler(), logging.FileHandler(\u0026#34;log.txt\u0026#34;)]) # Call the function to get the folder path and extension list folder_path, extensions = parse_args() if __name__ == \u0026#34;__main__\u0026#34;: # Windows needs this function because Windows lacks the fork() function (not entirely accurate). # Therefore, on Windows, forking is simulated by creating a new process, and the code - Additionally, this new process is instructed to run the code passed through a pipe by passing the `--multiprocessing-fork` command-line argument to it. - If you examine the implementation of the `freeze_support()` function, its task is to check which process it\u0026#39;s running in and whether it should execute the code passed through a pipe. - `multiprocessing.freeze_support()` - A process pool is created, automatically allocating processes based on the number of cores on the computer. - An empty list, `results`, is created to store the result objects of asynchronous tasks. - The script iterates through all files in the folder: - The full file path is constructed using `os.path.join()`. - It checks if the file ends with any of the extensions specified in the `extensions` list (you can modify this list as needed). - If it\u0026#39;s an image file, the `convert_and_save` function is called to convert and save the image asynchronously, without blocking the main process. The file size is also obtained. The result object is then added to the `results` list using `pool.apply_async()` with the callback function `print_result`. - The process pool is closed to stop accepting new tasks. - `pool.join()` is called to wait for all tasks in the pool to complete. ## Epilogue Due to local development being on a `windows` system, the first answer given by `AI` did not include the `main` function and also lacked `multiprocessing.freeze_support`. The code was fixed after following up and encountering an error. Just as learning the techniques of search engines required skill, we also need to learn how to communicate with `AI`, providing reasonable and sufficient constraints to efficiently obtain the desired answers. Note: **If you are a programming beginner, if you still don\u0026#39;t understand certain parts of the code based on the given comments, please continue to ask related questions.** ","date":"2023-03-26","language":"en","permalink":"https://ttf248.life/en/p/prompt-engineer/","tags":["chatgtp","ai"],"title":"Prompt Engineer","year":"2023"},{"categories":["Computer"],"content":"WeChat Mini Program Introduction and Development Preparation\nWhy Mini Programs Exist Better Experience: Slow web loading and blank screens; native app experience is faster. Standards \u0026amp; Management: For WeChat, onboarding and management Before mini programs were released, WeChat published an SDK called JSDk to open up some of the original WeChat capabilities: WeChat Pay, coupons. However, developers used web development languages to develop logic, bypassing some WeChat regulations. Mini Programs have their own description language. What are Mini Programs? Mini programs are applications that can be used without needing to download and install them. They realize the dream of having applications within easy reach.\nUsers can open an application simply by scanning a code or searching for it. This also embodies the concept of use-it-and-leave-it – users don’t need to worry about installing too many apps. Applications will be ubiquitous and available at any time, but without needing to install or uninstall.\nDifferences Between Mini Programs and Mobile Applications No installation required, doesn\u0026rsquo;t occupy memory, easy to spread: QR code scanning, mini program cards, Search One Search (Sohu Search)\nWhat Mini Programs Can Do Content Tools: Zhihu Hot Rankings, Weibo Hot Topics, Mobike Bikes, Today Headline, Tencent Maps, Tencent Translate Retail: Pinduoduo, JD.com Shopping, Mugujie, Daily Fresh, Xiaomi Mall, Watsons Games: Jump Rope, Happy Mahjong, Happy Dou Dizhu, Duoyue Live Streaming, YY Live Streaming Course content is from 2018; some application vendors have already gone bankrupt now.\nDevelopment Preparation Register a Mini Program Account: Simply fill in the information normally, and click the activation link on the email. Information Registration Log into the Mini Program Management Backstage Complete Mini Program Information Bind Developer: For individual developers, use the WeChat account you’re logged in with as the administrator account; no additional binding is required. Email has certain restrictions – it needs a new email address, but you can apply aliases for QQ emails, and the WeChat background will not verify them. After trying this, the name of the mini program is quite troublesome. As soon as it involves trademarks, it’s prone to audit failure.\nYou can select service categories and also add custom ones; a Mini Program can add five categories.\nIn Settings, you can view the Mini Program\u0026rsquo;s ID information and enable message push notifications. Enabling message push allows you to use the Message Template function.\nDeveloper Tools (as described by the author) Normal download and installation, with no special notes – just a basic understanding. Simply enter in Guest Mode, and if you want to enable mobile debugging (i.e., view the mini-program development version on your phone), you need to log into the mini-program developer account, then click Settings, and switch to the specified mini-program’s ID within Project Details.\nCode Structure js: Interaction logic json: Data configuration wxml: UI elements wxss: UI styles ","date":"2023-03-24","language":"en","permalink":"https://ttf248.life/en/p/wechat-mini-program-background-and-development-environment/","tags":["wechat-mini-program"],"title":"WeChat Mini Program Background and Development Environment","year":"2023"},{"categories":["Computer"],"content":"Administrative notice, office relocation from the second floor to the fifteenth floor – a standard, routine desk move.\nDesign Sense Migration Closing up shop, packing everything away, a familiar route, a new workstation – adjusting computer cabling, finding a comfortable posture to start working. (ÒωÓױ)! – Connecting the network cable, the servers frequently used by the team were inaccessible. I tried switching to wireless networking, and access was normal again.\nInitially, I thought it was a problem with the server’s IP address range settings. The wired network at the new workstation wasn\u0026rsquo;t included in the firewall configuration list. After contacting IT colleagues to adjust it, the issue was resolved. This IP address range wasn’t just for one server; when trying to access other servers, they were all functioning normally. Gradually, I began to feel confused? Let professional people handle professional matters – eventually, the operations department colleague identified that this server had docker deployed, and the default network of the docker0 service conflicted with the wired network configuration of the office, causing data packets sent to it to not receive responses and being routed to the docker service.\nOther servers didn’t have the docker service deployed, so only this one was affected. I frequently used it, and occasionally used containers to deploy some testing services – I never expected to encounter such a scenario. Later, thinking about it in detail, since the entire group was located within the same office building, IT colleagues divided IP address ranges using addresses starting with 172, which wasn’t unusual.\ndocker0 # vim /etc/docker/daemon.json { \u0026#34;bip\u0026#34;:\u0026#34;172.200.0.1/24\u0026#34; } Restart the service and switch to the new network; the server recovers normal access.\nReferences Docker from Beginner to Advanced - docker0\n","date":"2023-03-11","language":"en","permalink":"https://ttf248.life/en/p/office-move-server-inaccessible/","tags":["network","docker"],"title":"Office migration, the servers are inaccessible.","year":"2023"},{"categories":["Computer"],"content":"Here’s the English translation:\n“When I think of embedded systems, my mind immediately goes back to the 51-pin single-chip microcomputers and Texas Instruments we used in university labs.\nLPA3399Pro is a visual host developed on the HiSilicon RK3399Pro platform, designed for portable computing hosts that require extensive visual computation. It features an integrated NPU compute unit with 3.0 TOPS of processing power and supports various algorithm models.\nRV1109 is HiSilicon’s SoC for machine vision within its AI branch, featuring a dedicated NPU. RV1109 provides 1TOPS of processing power.”\nSystem on Chip SoC stands for System on a Chip, meaning “chiplet system.” It’s a technology that integrates multiple electronic systems onto a single chip. This technology can significantly reduce the size and weight of electronic products while simultaneously improving performance and lowering power consumption.\nSoC (System on a Chip) and CPU (Central Processing Unit) are both important components of computer systems, but they have some distinctions between them.\nThe CPU is the core processor within a computer system, responsible for executing program instructions. It typically only contains basic components such as arithmetic logic units, control units, and registers.\nAn SoC, on the other hand, integrates multiple electronic systems onto a single chip, including a CPU, along with other components like memory, graphics processors, and input/output interfaces. This allows for significant reductions in product size and weight while boosting performance and reducing power consumption.\nIn essence, the CPU is a component of an SoC, whereas the SoC represents a more complex and highly integrated electronic system.\nMicrocontroller Unit SoC (System on a Chip) and MCU (Microcontroller Unit) are technologies that integrate multiple electronic systems onto a single chip, but there are also some differences between them.\nAn MCU is a microcontroller, typically containing a CPU, memory, input/output interfaces, and other basic components. It’s commonly used to control other electronic devices such as household appliances and automotive electronics systems.\nAn SoC, on the other hand, integrates more electronic systems onto a single chip, in addition to the basic components of an MCU, it can also integrate other components like graphics processors and wireless communication modules. This significantly reduces the size and weight of electronic products while improving performance and reducing power consumption.\nIn essence, an MCU is a simple microcontroller, whereas an SoC is a more complex and highly integrated electronic system.\n","date":"2023-03-07","language":"en","permalink":"https://ttf248.life/en/p/embedded-entry-professional-terms/","tags":["embedded-systems"],"title":"Embedded Systems – Getting Started Part 1 – Technical Terms","year":"2023"},{"categories":["Computer"],"content":"“GitHub Copilot” was released less than two years ago, and “ChatGPT” has appeared. I don’t fully understand the underlying principles; I\u0026rsquo;ve been using them for a while. The two tools’ levels of assistance are completely different, but they have both achieved a significant increase in productivity.\nFor things that are too complex, AI still can’t do it, because they lack logic, or they rely on patterns or fixed frameworks – the training data is sufficient, and AI’s effect is nine out of ten.\nGitHub Copilot When publishing, I looked at the official introduction’s “demo” and found it wasn\u0026rsquo;t very smart. After trying it out, it wasn’t great, so I gave up on it.\nBefore 2022, when I had some free time, I switched to the new version to try it out, and the effect was already quite good. The only issue was that the speed in China was a bit slow, likely due to network reasons. For languages like Python, the code generated based on comments was pretty good, and much faster than researching and writing code myself.\nChatGPT Github Copilot still focuses on developers, i.e., from a development perspective when designing the product, requiring you to understand how to program and guide AI assistance through comments. ChatGPT has moved to the next level, allowing non-experts to quickly get started. A conversational chat interface where you can pose questions, describe requirements, and ask for clarification if needed.\nLet\u0026rsquo;s take an example: You know about tokenization but don’t know how to code, wanting to calculate the similarity of strings:\nPython 分词计算 維天運通 LOGORY 和 合肥維天運通信息科技股份有限公司 两个字符串的相似度； 比较前，统一处理字符串，英文转换为小写； 第二个字符中如果能找到第一个字符的首字符，将第二个字符串截位，截位的长度为第一个字符串的长度 Hello, this is Bing. 😊\nAccording to online information 123, Python tokenization can be implemented using the jieba library. The jieba library supports three segmentation modes: precise mode, full mode, and search engine mode. You can choose an appropriate mode based on your needs.\nTo compare two strings, you first need to tokenize them and then calculate their word vectors or edit distance metrics. You can use libraries like NumPy or SciPy for mathematical operations.\nTo standardize string processing, converting English to lowercase, you can use Python\u0026rsquo;s built-in lower() function.\nTo slice the second string, you can use Python’s slicing operator [].\nHere is a possible code example:\nimport jieba import numpy as np from scipy.spatial.distance import cosine # Define two strings str1 = \u0026#34;維天運通 LOGORY\u0026#34; str2 = \u0026#34;合肥維天運通信息科技股份有限公司\u0026#34; # Standardize the string, convert English to lowercase str1 = str1.lower() str2 = str2.lower() # Find the position of the first character of the first string in the second string index = str2.find(str1[0]) # If found, slice the second string if index != -1: str2 = str2[index:index+len(str1)] # Tokenize the two strings using the jieba library words1 = list(jieba.cut(str1)) words2 = list(jieba.cut(str2)) # Calculate the word vectors of the two strings (using frequency as weights) vector1 = np.zeros(len(words1)) vector2 = np.zeros(len(words1)) for i, word in enumerate(words1): vector1[i] += 1 # Count the number of times each word appears in the first string if word in words2: vector2[i] += 1 # Count the number of times each word appears in the second string # Calculate the similarity between the two strings (using cosine distance as an index) similarity = 1 - cosine(vector1, vector2) print(\u0026#34;The similarity between the two strings is:\u0026#34;, similarity) Furthermore, consult the results of running and congratulations, you have discovered a problem. The result is fabricated, it does not actually run the code, but will give you a good result.\nExample Question: SQL statement to retrieve records from the product code table where the product code is within the range 80000-89999.\nHello, this is Bing. 😊 According to search result 12, you can use the SQL BETWEEN operator to select values within a given range. The BETWEEN operator includes both the start and end values. You need to first specify the table name and column name that you want to query, and then use the BETWEEN operator and the range value in the WHERE clause. For example, if you want to retrieve records from the product code table where the product code is between 80000 and 89999, you can use the following statement: SELECT * FROM product_code WHERE code BETWEEN 80000 AND 89999; Here, \u0026#39;*\u0026#39; represents selecting all columns [3]. If you only want to select specific columns, such as name and price, you can separate them with commas, as shown below: SELECT name, price FROM product_code WHERE code BETWEEN 80000 AND 89999; I hope this helps. Continue questioning, negating it: The product code is a string, your code is wrong\nSorry, I didn\u0026#39;t notice that the product code is a string. If that’s the case, you need to add single quotes around both ends of the range values, as follows: SELECT * FROM product_code WHERE code BETWEEN \u0026#39;80000\u0026#39; AND \u0026#39;89999\u0026#39;; Please forgive my mistake. 🙏 Congratulations, it will recognize mistakes. ","date":"2023-02-28","language":"en","permalink":"https://ttf248.life/en/p/ai-assisted-programming-productivity-evolution/","tags":["github copilot","chatgpt","ai"],"title":"AI-assisted programming, the evolution of productivity","year":"2023"},{"categories":["Computer"],"content":"Less commonly used, but very useful git commands\nReinstalling the system caused changes to folder ownership on Windows. The new version of git has added security checks, prompting an unsafe state and preventing further operation.\ngit config --global --add safe.directory git config --global --add safe.directory \u0026#34;*\u0026#34; New Computer Saving Account Password Information git config --global credential.helper store If the saved information needs to be updated, first clear out the old credentials\ngit config --system --unset credential.helper ","date":"2023-02-17","language":"en","permalink":"https://ttf248.life/en/p/less-common-git-commands-summary/","tags":["git"],"title":"A Collection of Less Commonly Used Git Commands","year":"2023"},{"categories":["Financial Knowledge Base"],"content":"The Hong Kong Exchange and Clearing (HKEX) announced on December 13th that it will soon launch the “Hong Kong-Renminbi Dual Counter Model” (hereinafter referred to as “Dual Counter Model”) and dual counter broker mechanisms for its securities markets, further supporting RMB-designated listings, trading, and settlement in Hong Kong.\nDual-Listing Model and Dual-Listing Broker Mechanism Hong Kong Exchanges and Clearing (HKEX) stated that the registration procedures for these new measures are expected to begin implementation in the first half of 2023, pending regulatory approval and market readiness. Under the dual-listing model, HKEX will optimize related trading and settlement arrangements, allowing investors to swap securities issued by the same issuer on both the Hong Kong Dollar (HKD) and Renminbi (RMB) trading venues.\nTo enhance liquidity in the RMB trading venue and narrow the price difference between the two venues, HKEX will introduce a dual-listing broker mechanism. Once relevant legislation is passed by the Legislative Council, market makers engaging in supply activities will be exempt from stamp duty when conducting specific transactions. Simultaneously, these new measures will also prepare for subsequent mainland investors to trade securities priced in RMB through the Hong Kong Connect (HKT) scheme.\n“The launch of the dual-listing model of Hong Kong Dollar-Renminbi and the dual-listing broker mechanism is a key measure for the development of our market. In conjunction with our other market initiatives, this arrangement will help attract more dual-listing securities to be listed in Hong Kong, complementing the existing mainland products at HKEX. HKEX is committed to actively promoting the internationalization of RMB and continuously enhancing Hong Kong’s position as a leading offshore RMB center globally.” Said Mr. Yao Kai-yan, Chief Operating Officer and Head of Markets at HKEX.\nIt is noted that the current listing, trading, settlement, and clearing arrangements in the Hong Kong stock market will largely apply to RMB securities under the dual-listing model. HKEX will announce the implementation date of the dual-listing model and the list of eligible dual-listing securities included in the broker mechanism at an appropriate time.\nHow to Identify Hong Kong Dollar-Renminbi Trading Booths Hong Kong Exchanges and Clearing (HKEX) documentation indicates that the Hong Kong dollar-Renminbi dual listing arrangement will largely follow the existing stock code allocation plan, meaning Hong Kong dollar booths will have stock codes starting with “0” followed by five digits, while Renminbi booths will have stock codes starting with “8” followed by five digits. The last four digits of both Hong Kong dollar and Renminbi booth stock codes will be identical. Renminbi booth stock abbreviations will be appended with \u0026ldquo;-R\u0026rdquo;.\nRegarding trading arrangements, based on the fact that securities in both the Renminbi and Hong Kong dollar booths belong to the same category and can be converted into each other, if one booth (such as the Hong Kong dollar booth) allows for short selling of specified securities, the other booth (such as the Renminbi booth) can also be included as eligible for short selling according to exchange rules. Correspondingly, both booths will be listed in the specified securities lists that are available for short selling on the exchange.\nGiven that the stocks in both booths belong to the same category and can be converted into each other, buying or holding the stock in Renminbi while selling it in Hong Kong dollars will be considered a carry trade (short sale), and vice versa. Settlement times between the two booths are T+2.\nFor specified securities eligible for short selling, such as borrowing stocks in Hong Kong dollars and then selling them on the Renminbi booth, this will be treated as a secured short sale, and vice versa.\nIt’s worth noting that under the dual booth model, since the Renminbi booth is only for trading and settlement, it will not provide physical stock deposits or withdrawals; physical stocks can only be deposited after being held in the Hong Kong dollar booth and then converted to the Renminbi booth. Similarly, the Renminbi booth must be converted to the Hong Kong dollar booth before physical stocks can be withdrawn.\nAll Hong Kong settlement and clearing fees, excluding dividend collection service fees and interest collection service fees, will be calculated and charged in Hong Kong dollars. Dividend collection service fees and interest collection service fees will be calculated using the currency adopted for the relevant securities.\nReferences HKD-RMB-Dual-Counter-Model Source: HKEx Pulse / HKEx, Broker China\n","date":"2023-02-16","language":"en","permalink":"https://ttf248.life/en/p/hk-rmb-dual-counter/","tags":[],"title":"Bonded Customs Clearance with Hong Kong Dollar and Renminbi","year":"2023"},{"categories":["Computer"],"content":" Last year, an SDK was designed to handle encapsulating certain events and provide a class interface externally. During service initialization, the caller implements the corresponding classes and passes the object pointer to the module. Familiarity with C11 piqued my curiosity, leading me to explore what would happen if these interfaces were implemented using lambda function objects instead of pure virtual function definitions. Compared to the traditional interface definition method, it seemed more flexible. The question arose: with two different syntaxes, which one is faster from a performance perspective? Not understanding compiler principles, I decided to try out some code to find out. Introduction Online website, allowing you to select different compilers, compilation parameters, run code on the linux platform, or view corresponding assembly code.\nhttps://wandbox.org/ : Sometimes useful for technical validation; executing small code snippets in a web browser is very convenient. https://godbolt.org/ : Using different colors to distinguish the corresponding assembly code for each line, it’s more convenient than using a local debugger. Body The Standards Committee established grammatical rules, and at the compilation level, how it’s implemented depends on each compiler vendor. It\u0026rsquo;s worth noting that Microsoft’s compiler is quite powerful here. Syntax sugar isn’t a panacea; callback interfaces aren’t abundant, using lambda expressions is more convenient and eliminates the need to define empty callback function interfaces. When callback interfaces become numerous, traditional virtual functions are advantageous for unifying business interface definitions.\nOn the windows platform, performance is close, with little difference. On the linux platform, a comparison of virtual functions and lambda reveals a 1.35ns overhead per call. In typical business system development, this level of performance loss can be ignored; introducing lambda brings greater convenience in design. This is particularly noticeable when dealing with multi-signal processing – the underlying event triggering mechanism, along with handling functions for logging objects when events are triggered. When more business processing interfaces are needed, lambda objects are stored in a vector, and they’re iterated through sequentially during event triggering, similar to Qt\u0026rsquo;s signals and slots; logging, monitoring, business 1, and business 2 are completely decoupled. Code Counter: 1000000 Time: 3966us Counter: 1000000 Time: 5316us #include \u0026lt;iostream\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;memory\u0026gt; #include \u0026lt;functional\u0026gt; #include \u0026lt;atomic\u0026gt; #include \u0026lt;string\u0026gt; std::atomic_int64_t counter = 0; // Define the callback interface class UserInterface { public: virtual void name() = 0; virtual void full_name() = 0; }; class User : public UserInterface { public: void name() {} void full_name() { counter++; } }; void to_string(UserInterface* user) { user-\u0026gt;name(); user-\u0026gt;full_name(); } using name_handler = std::function\u0026lt;void()\u0026gt;; using full_name_handler = std::function\u0026lt;void()\u0026gt;; class Test { name_handler name_; full_name_handler full_name_; public: void set_name_handler(name_handler name) { name_ = name; } void set_full_name_handler(full_name_handler full_name) { full_name_ = full_name; } void to_string() { name_(); full_name_(); } }; int main() { User user; auto start = std::chrono::high_resolution_clock::now(); for (int i = 0; i \u0026lt; 1000000; i++) { to_string(\u0026amp;user); } auto end = std::chrono::high_resolution_clock::now(); std::cout \u0026lt;\u0026lt; \u0026#34;Counter: \u0026#34; \u0026lt;\u0026lt; counter \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;Time: \u0026#34; \u0026lt;\u0026lt; std::chrono::duration_cast\u0026lt;std::chrono::microseconds\u0026gt;(end - start).count() \u0026lt;\u0026lt; \u0026#34;us\u0026#34; \u0026lt;\u0026lt; std::endl; counter = 0; auto name = []() {}; auto full_name = []() { counter++; }; Test test; test.set_name_handler(name); test.set_full_name_handler(full_name); start = std::chrono::high_resolution_clock::now(); for (int i = 0; i \u0026lt; 1000000; i++) { test.to_string(); } end = std::chrono::high_resolution_clock::now(); std::cout \u0026lt;\u0026lt; \u0026#34;Counter: \u0026#34; \u0026lt;\u0026lt; counter \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;Time: \u0026#34; \u0026lt;\u0026lt; std::chrono::duration_cast\u0026lt;std::chrono::microseconds\u0026gt;(end - start).count() \u0026lt;\u0026lt; \u0026#34;us\u0026#34; \u0026lt;\u0026lt; std::endl; return 0; } Epilogue While researching, I came across similar code snippets functionperformance.cpp\n#include \u0026lt;iostream\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;memory\u0026gt; #include \u0026lt;functional\u0026gt; using namespace std; using namespace std::chrono; class Base { public: Base(){} ~Base(){} virtual int func(int i) = 0; }; class Derived : public Base { public: Derived(int base = 10) : base{base} { } ~Derived(){} virtual int func(int i) { return i*base; } private: int base; }; struct Func { int base; int operator()(int i) { return i*base; } Func(int base) : base {base} { } }; const int base = 10; int calculate(int i) { return base*i; } int main() { const int num = 10000; Base *p = new Derived{10}; int total = 0; auto start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += p-\u0026gt;func(i); } auto end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\nvirtual call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; total = 0; start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += calculate(i); } end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\ndirect function call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; Func functor{10}; total = 0; start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += functor(i); } end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\nfunctor call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; int base = 10; function\u0026lt;int(int)\u0026gt; lambda = [base](int i) { return i*base; }; total = 0; start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += lambda(i); } end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\nlambda call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; return 0; } /* test on mac mini i7 2.7GHz clang++ -std=c++11 chronotest.cpp -O0 output: result: 499950000 virtual call elapsed: 43171 nanoseconds. result: 499950000 direct function call elapsed: 31379 nanoseconds. result: 499950000 functor call elapsed: 41497 nanoseconds. result: 499950000 lambda call elapsed: 207416 nanoseconds. =================================================== clang++ -std=c++11 chronotest.cpp -O1 output: result: 499950000 virtual call ``` /* Here are two modes that have been added: a regular function and a functor. They provide an interface callback mechanism and comparison with direct calls, resulting in a qualitative difference in performance loss. Functors perform close to functions, and sometimes even outperform them. The compilation principle is somewhat of a knowledge blind spot; I suspect it\u0026#39;s due to the addresses of accessed variables and the proximity of functions, which benefits `CPU` processing. Attached is the output from running with `wandbox`. */ ``` ## Epilogue While searching for materials, I came across a similar code snippet [functionperformance.cpp](https://gist.githubusercontent.com/benloong/8050171/raw/fa577ec923b460862078b8b40233a42a1c619eeb/functionperformance.cpp) ```c++ #include \u0026lt;iostream\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;memory\u0026gt; #include \u0026lt;functional\u0026gt; using namespace std; using namespace std::chrono; class Base { public: Base(){} virtual ~Base(){} virtual int func(int i) = 0; }; class Derived : public Base { public: Derived(int base = 10) : base{base} { } ~Derived(){} virtual int func(int i) { return i*base; } private: int base; }; struct Func { int base; int operator()(int i) { return i*base; } Func(int base) : base {base} { } }; const int base = 10; int calculate(int i) { return base*i; } int main() { const int num = 10000; Base *p = new Derived{10}; int total = 0; auto start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += p-\u0026gt;func(i); } auto end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\nvirtual call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; total = 0; start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += calculate(i); } end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\ndirect function call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; Func functor{10}; total = 0; start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += functor(i); } end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\nfunctor call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; int base = 10; function\u0026lt;int(int)\u0026gt; lambda = [base](int i) { return i*base; }; total = 0; start = high_resolution_clock::now(); for (int i = 0; i \u0026lt; num; ++i) { total += lambda(i); } end = high_resolution_clock::now(); std::cout\u0026lt;\u0026lt;\u0026#34;result: \u0026#34;\u0026lt;\u0026lt;total\u0026lt;\u0026lt;\u0026#34;\\nlambda call elapsed: \\t\u0026#34;\u0026lt;\u0026lt;duration_cast\u0026lt;nanoseconds\u0026gt;(end-start).count()\u0026lt;\u0026lt;\u0026#34; nanoseconds.\\n\u0026#34;\u0026lt;\u0026lt;std::endl; return 0; } /* test on mac mini i7 2.7GHz clang++ -std=c++11 chronotest.cpp -O0 output: result: 499950000 virtual call elapsed: 43171 nanoseconds. result: 499950000 direct function call elapsed: 31379 nanoseconds. result: 499950000 functor call elapsed: 41497 nanoseconds. result: 499950000 lambda call elapsed: 207416 nanoseconds. =================================================== clang++ -std=c++11 chronotest.cpp -O1 output: result: 49995000 ## Epilogue ```shell result: 499950000 virtual call elapsed: 6143 nanoseconds. result: 499950000 direct function call elapsed: 30 nanoseconds. result: 499950000 functor call elapsed: 31 nanoseconds. result: 499950000 lambda call elapsed: 15134 nanoseconds. ","date":"2023-02-15","language":"en","permalink":"https://ttf248.life/en/p/compiler-callback-performance-testing/","tags":[],"title":"- Compiler\n- Callback Function\n- Performance Testing","year":"2023"},{"categories":["Computer"],"content":"Throughout the history of computer development, there has been no unified standard for data storage. There are two commonly used rules for byte arrangement. For example, if the low-order bits of a multi-digit number are placed at smaller addresses and the high-order bits are placed at larger addresses, it is referred to as little-endian; conversely, it is called big-endian. In network applications, byte order is a factor that must be considered because different types of machines may adopt different standards, so they are all converted according to the network standard. According to reading habits, big-endian byte order is more consistent with the left-to-right reading order.\nProcessor Architecture Processors such as x86, MOS Technology 6502, Z80, VAX, and PDP-11 use little-endian byte order. Processors like Motorola 6800, Motorola 68000, PowerPC 970 use big-endian byte order. The byte order of processors such as ARM, PowerPC (excluding PowerPC 970), DEC Alpha, SPARC V9, MIPS, PA-RISC and IA64 is configurable. Network Byte Order Network transmission generally uses big-endian byte order, also known as network byte order or network order. The IP protocol defines big-endian as the network byte order.\nThe Berkeley sockets API defined a set of conversion functions to convert 16 and 32-bit integers between network byte order and host byte order.\n#include \u0026lt;arpa/inet.h\u0026gt; uint32_t htonl(uint32_t hostlong); // Converts a uint32_t from host byte order to network byte order uint16_t htons(uint16_t hostshort); // Converts a uint16_t from host byte order to network byte order uint32_t ntohl(uint32_t netlong); // Converts a uint32_t from network byte order to host byte order uint16_t ntohs(uint16_t netshort); // Converts a uint16_t from network byte order to host byte order If using asio as the networking library, its internal namespace provides cross-platform adaptation functions with different names:\nboost::asio::detail::socket_ops::network_to_host_long boost::asio::detail::socket_ops::network_to_host_short boost::asio::detail::socket_ops::host_to_network_long boost::asio::detail::socket_ops::host_to_network_short Visual Studio Debugger In debugging mode, select the Debug menu, Window, and checkmark the Memory window. Within Visual Studio, you can directly view data in memory using the debugger, as shown in the following image:\nWays to View Memory The window directly outputs \u0026amp;variable name and jumps to the corresponding variable address. If the variable is originally a pointer, double-click on the variable to select it and drag it to the memory window to display the content at the corresponding address. If the variable is not a pointer, add it to the calculation window to obtain its address, then manually copy it to the memory window. Let\u0026rsquo;s illustrate with an example Receive a data segment, stored in the buffer object, convert network byte order to host byte order, resulting in body_length being 30. The server allocates four bytes for transmitting this data.\nbool NetworkMessage::decode_header() { // Network byte order to host byte order body_length_ = boost::asio::detail::socket_ops::network_to_host_long(*(int *)buffer_.data()); return auto_reserve(body_length_); } Big-endian byte order: When observing the buffer_ content in memory, Little-endian byte order: When observing the content of body_length_ in memory, ","date":"2023-01-10","language":"en","permalink":"https://ttf248.life/en/p/host-network-byte-order-debugger/","tags":["byte-order"],"title":"Host byte, network byte, observe directly through debugger","year":"2023"},{"categories":["Diary Ramblings"],"content":"It’s my seventh year in the job, and I’m not getting as much positive feedback on the code I write. Let me reflect on how I ended up on this coding path. People’s choices, especially when they\u0026rsquo;re younger, tend to follow positive reinforcement more closely – actively avoiding harm and seeking benefit.\nI. Childhood Moving to the city and coming into contact with computer books? Hacker’s materials? Meeting Windows systems – these are all anecdotes.\nThe time should be positioned around childhood and sneaking around with my cousin to play games on our parents\u0026rsquo; computer. My cousin and I ran a shop with our uncle at the computer store.\nI started having exposure to computers relatively early, and basic understanding was established. Later, in school, taking the microcomputer course also sparked an interest.\nIn middle school, I heard about computer competitions, which seemed really cool, but after transferring schools, this fell by the wayside.\nDuring my junior high years, I was familiar with basic computer operations, and I could easily stand out during microcomputer classes. If you’re still familiar, yes, you\u0026rsquo;ve noticed, it wasn’t proficiency – being familiar with office software would be even more impressive.\nII. Moving / Relocation Let’s revisit the moving situation. When we moved to the city center, due to the neighbors, we came into contact with the library. Although we read quite a few novels, we also read a lot of magazines, such as:\nComputer News 大众软件 (Greatest Software) This led to an increasingly growing interest in computers as a product. The childhood fascination with hackers was actively pursued through relevant knowledge at school.\nWe learned the basics of operating systems: control panel, CMD commands, VBS scripts.\nComputer News is suitable for beginners; each time it explains system operations in the form of case studies. Greatest Software recommends various software, industry news, and of course, game news – this was the initial motivation, and it also planted the seed for gaming. III. High School When I was in high school, Bo Ge transferred to our class, and several seniors had been guaranteed admission through computer competitions in the previous two years. The school leaders also paid a lot of attention to this competition.\nThere was also a prerequisite hardware foundation – an alumnus from America donated a building to the school, which resulted in a new library and a new computer lab; it all seemed so coincidental.\nPlus Bo Ge’s popular science lectures, he was considered the computer guru in our class at that time.\nA scholar + computer expert, knew how to hack into other people\u0026rsquo;s computers and disable classroom surveillance software.\nIII. High School The competitions were bumpy and ultimately ended in the finals, where I didn’t quite understand the material and the questions were mostly basic algorithms. However, it was still a worthwhile experience – like taking a short trip.\nFour. University Waiting for university major selection, I chose automation based on my parents\u0026rsquo; recommendation, but I actually wanted to pursue electrical engineering, intending to join the power supply bureau upon graduation. I didn’t learn much in the courses of my major.\nMy self-driven learning ability was almost non-existent within the major courses; however, I found computer courses within the large curriculum very easy to grasp.\nI attended classes for the major course while skipping lectures and diligently studied computer courses. I spent my daily time browsing forums: “JingYi Forum” (“I Love Crack”), Combining what I learned from that bit of assembly and C++ knowledge with the skills gained from taking on orders from the forums, I earned more positive feedback and went further and further down this path, unable to be pulled back.\nUltimately, the choice of a minor led me to choose writing code for chips, and my parents didn’t interfere much, letting me make my own decision. At that time, the third key figure: my cousin had a high education and worked at Baidu.\nMy elder sister understood me and knew that I hadn\u0026rsquo;t been focused on research back then, so she encouraged me to talk to my cousin.\nI confirmed the future development path, didn’t go home during the summer vacation, followed my advisor to work on projects, and gained experience.\nThanks to my still-passable grades, I was admitted to Hengsheng Electronics.\nFive. Graduation Here’s a key point I know – I learned how to bypass firewalls, took elective courses in Computer Information Retrieval, and quickly found and located information and problems. A valuable colleague, Mr. [硕哥\u0026rsquo;s nickname], appeared at work, gave me time to learn independently, troubleshoot issues down to their roots, and introduced me to the leaders of the R\u0026amp;D center. These experiences laid the groundwork; in Shenzhen, everyone outside viewed me as exceptionally skilled, successfully leading the transaction channel group. That’s where the problem lies: I lacked systematic learning in computer operating systems, algorithms, and software engineering design. All my knowledge was based on my own past experience. This led to frequent self-doubt regarding my code designs, a lack of guidelines for module design, and ultimately, fatigue after seven years.\n","date":"2023-01-09","language":"en","permalink":"https://ttf248.life/en/p/that-boy-talent-maybe-but-not-much/","tags":["life-lessons"],"title":"Back then, as a young boy, he might have had talent, but it wasn’t common.","year":"2023"},{"categories":["The Seven Seconds of a Fish"],"content":"The policy announcement was incredibly sudden, and its implementation was swift – the Health Code QR code was lifted, and checks for green codes in public places ceased. Browsing the Chinese-language version of The New York Times, the entire front page was dominated by discussions about China’s reopening.\nI won\u0026rsquo;t comment on the policies; I’m simply recording what’s happening around me. Originally, Beijing had no zero-COVID policy, but the relaxation of restrictions spread rapidly, resulting in widespread infections. Among my friends, none were seriously ill. Shenzhen, bordering Guangzhou, also began to develop quickly. As I write this, with colleagues based in the suburbs of Shanghai, there haven’t been any large-scale outbreaks.\nBack home, the protective measures were minimal, and they spread rapidly. Most people likely experienced a similar feeling – suddenly, restrictions were lifted, with new policies announced weekly until a full reopening was achieved.\nIt\u0026rsquo;s undeniable that the three years of zero-COVID policy had an effect; we must adapt to the situation.\n","date":"2022-12-22","language":"en","permalink":"https://ttf248.life/en/p/china-coronavirus-end-lockdown/","tags":[],"title":"China’s COVID-19 lockdown easing","year":"2022"},{"categories":["Computer"],"content":"While reviewing the code, std::this_thread::yield() suddenly popped into my view, a syntax sugar from C11 that I’d used quite a bit, but hadn\u0026rsquo;t noticed before.\nI didn’t consult the manual; first, I thought it had something to do with asynchronous operations – the word was used in the coroutine implementation of the Boost library. Clearly, it wasn’t related to coroutines; it’s about controlling logic within a regular thread.\nDocumentation yield The accuracy of this function depends on the implementation, particularly the OS scheduler mechanism and system state used. For example, the First-Come, First-Served (FCFS) real-time scheduler (Linux’s SCHED_FIFO) will suspend the current thread and place it at the end of the queue for other threads with the same priority that are ready to run (and has no effect if there are no other threads with the same priority).\nsleep_for Blocks the current thread\u0026rsquo;s execution for at least the specified sleep_duration. This function may block longer than sleep_duration due to scheduling or resource contention delays. The standard library recommends measuring durations using a monotonic clock. If implementing with system time instead, waiting times may be sensitive to clock adjustments.\nAnalysis Both functions are designed to release the current thread and its associated resources, with the actual effect depending on the platform. I’m still a bit unclear at this point, so let\u0026rsquo;s run the code to see the execution results.\nThinkPad laptop (Visual Studio Community 2022), Tencent Cloud S2 Standard Server (gcc8.5)\nAnalysis Execution Platform Function First/us Second/us Third/us Analysis Execution Platform Function First Time / us Second Time / us Third Time / us Analysis Execution Platform Function First/us Second/us Third/us Analysis Execution Platform Function First/us Second/us Third/us Analysis From the results, it’s clear that due to differences in operating system implementations, the stability of high-precision sleep varies greatly. If you want high-precision sleep, using yield is more appropriate.\nWhen the time precision is increased to ms, the difference between the two methods is not significant.\nReferences https://qingcms.gitee.io/cppreference/20210212/zh/cpp/header/thread.html https://qingcms.gitee.io/cppreference/20210212/zh/cpp/thread/sleep_for.html ","date":"2022-09-20","language":"en","permalink":"https://ttf248.life/en/p/c11-sleep-for-vs-yield/","tags":["c++"],"title":"C11: sleep for vs yield","year":"2022"},{"categories":["Computer"],"content":"I had an idle Tencent Cloud server that was expiring at the end of the year and I hadn\u0026rsquo;t planned to renew it. So, I decided to deploy a MySQL database for development purposes. When reinstalling the system, I wanted to save time and chose a third-party image provided by Tencent Cloud, which already had MySQL installed. I thought the system should include a Readme file or similar documentation explaining the password and deployment path.\nThe Tencent Cloud server reinstalled very quickly, taking about a minute. Once logged in, systemctl status mysql showed that the service was running. I started searching for the password but couldn\u0026rsquo;t find it anywhere, and I began to panic.\nThen, I thought, since I had already accessed the server with root privileges, there must be a way to reset the password. I searched through documentation and found a forum post on Alibaba Cloud’s forum, continuing to tinker.\nReset Password Edit the configuration file vim /etc/my.cnf, add the following configuration to the mysqld node: skip-grant-tables, and execute the command to restart the database: systemctl restart mysql.\nThen, log in directly to the data using mysql, after which everything will proceed normally. To reset the root user password and enable allowing remote login simultaneously:\nUSE mysql; UPDATE user SET authentication_string = password(\u0026#39;pass\u0026#39;) WHERE User = \u0026#39;root\u0026#39;; GRANT ALL PRIVILEGES ON *.* TO \u0026#39;root\u0026#39;@\u0026#39;%\u0026#39; IDENTIFIED BY \u0026#39;pass\u0026#39; WITH GRANT OPTION; FLUSH PRIVILEGES; To revert the modified configuration file, restart the database, and you’re done.\nReferences https://help.aliyun.com/document_detail/42520.html ","date":"2022-09-20","language":"en","permalink":"https://ttf248.life/en/p/linux-server-reset-mysql-password/","tags":["mysql"],"title":"Linux Server, Reset MySQL Password","year":"2022"},{"categories":["Diary Ramblings"],"content":"Here\u0026rsquo;s the English translation of the provided text:\nWithin the vast system of Chinese characters, the character “命” (life/fate) is utterly unique; there isn’t even a single homophone. Perhaps this subtly suggests that each person’s life has only one opportunity, cannot be replicated, and cannot be relived.\nDuring leisure time, I browsed the rankings on Qidian Chinese Net, and “The Nomenclature of Nights” consistently topped the charts with an overwhelming number of monthly votes, far surpassing the second-place book – a gap that was truly daunting. For many years, I had primarily read works by well-known authors like Tang Jiaqian and Ergen. This time, I decided to try a new author’s work and experience a different reading sensation.\nAs of early August, “The Nomenclature of Nights” had amassed a staggering two million monthly votes, while the second book only garnered eight hundred thousand – the disparity was astonishing.\nI acknowledge my own lack of knowledge and ability to critically evaluate the author\u0026rsquo;s writing style. However, after reading through more than fifteen chapters, I found that the plot was tightly woven and intricately connected, captivating and engaging. Given such high monthly vote numbers, it’s undeniably well-deserved.\nInterestingly, just like “命,” the character “死” (death) also has no homophones within the Chinese character system. Does this similarly imply a unique and irreplaceable depth regarding the end of life?\n","date":"2022-08-11","language":"en","permalink":"https://ttf248.life/en/p/nights-naming-art/","tags":["start-point","novel"],"title":"Onomatopoeia of the Night","year":"2022"},{"categories":["Computer"],"content":"The investment in testing for financial trading systems far exceeded that of other systems, with tedious test steps repeatedly executed and a low ROI. As projects and personnel changed, uncontrollable factors inevitably introduced, a common situation being the modification of a field output from Interface A impacting the results of Interface B. With each version release, risk also accumulated.\nTheoretical Knowledge How to Measure the Value of Automation? An automation testing ROI = (Manual Execution Time) * (Number of Runs) / (Development Cost + Maintenance Cost) Which Features Should Be Automated? Frequently used features that are unlikely to change. Writing automated test code for this type of interface yields the highest returns. Why Choose This Timing to Drive Automation Testing? Not appropriate near project launch – distant water doesn’t quench immediate thirst; automation is a long-term return model. It\u0026rsquo;s most suitable when the project is already in a production environment and within a stable release cycle. Framework Selection Given the task of automation testing without prior practical experience, a typical starting point is to open a search engine and find tools and frameworks that can be used with the current system’s technology stack, review the user manuals, and get started. If you can immediately find a suitable tool, congratulations, perfect start!\nLet me preface this by saying I might be wrong. After reviewing relevant materials, it\u0026rsquo;s not that these frameworks don’t exist; rather, they are too complex and consume excessive resources. For beginners, what’s needed is something small, streamlined, and concise. Consulting with colleagues in the testing group led to the suggestion of a Python self-built framework – essentially, wrapping existing unit testing frameworks into an automated testing framework.\nReferencing the design thinking for this project: https://github.com/wintests/pytestDemo\nWhy Use a Framework? Services have multiple different deployment environments – development, testing, and live testing environments. The purpose of a framework is to act as an abstraction layer, separating test cases and data. This allows for configuring different case data according to various environment configurations, and it also supports shared data.\nThe core logic is focused on increasing the utilization of automation. When scenarios become more complex, the data between different environments is completely unrelated and has no bearing on each other. Simply add a label tag when specifying case data to indicate the supported environment.\nReferences Best Value Automation Testing\n","date":"2022-08-04","language":"en","permalink":"https://ttf248.life/en/p/automated-testing-overview/","tags":["automation-testing","architect","geek-time","auto-test"],"title":"A Brief Overview of Automated Testing","year":"2022"},{"categories":["Computer"],"content":"Starting from my academic years, I’ve been working with C++ for over ten years. So, why do I need to learn other programming languages?\nWork experience: Lacking experience in elegant module design, C++ syntax is freeform. Learning other languages helps me guide the development of more elegant designs.\nI often use them when writing some tools. The design principles for low-level libraries and business modules are also becoming clearer.\n","date":"2022-08-04","language":"en","permalink":"https://ttf248.life/en/p/why-learn-a-new-language/","tags":["c++","python","golang"],"title":"Why Do We Need to Learn a New Language?","year":"2022"},{"categories":["Computer"],"content":"C++ cross-platform development. Commonly encountered on Chinese operating systems: error C2001 - constant contains a newline character.\nVisual Studio cmake organizes the project compilation script, generating a temporary solution under the windows system for development. The reason for cross-platform compatibility is that the file encoding is chosen as utf-8.\nThe cited reference provides a detailed explanation of the causes of the problem from first principles.\nRegarding encoding, MSVC has dedicated compilation options /source-charset and /execution-charset. The former indicates the encoding of the file itself, and the latter indicates what encoding the byte array inside the compiled character set is. Encoding issues can basically be solved using these two options.\nFor example, the windows cmd console defaults to displaying gbk encoding. However, the code file itself is utf-8. Because of cross-platform considerations and it\u0026rsquo;s inconvenient to directly convert it to gbk, we don’t include the method of writing encoding conversion code for different platforms. On Win10, we can set these compilation options to /source-charset:utf-8 /execution-charset:gbk, indicating that the compiler reads in with utf-8 encoding and then converts it to gbk to store in the array, so printf can display Chinese characters normally in the cmd console.\nCMake Configuration for Visual Studio if(WIN32) message(STATUS \u0026#34;Configuring trade on WIN32\u0026#34;) set(CMAKE_CXX_FLAGS \u0026#34;${CMAKE_CXX_FLAGS} /source-charset:utf-8 /execution-charset:gbk\u0026#34;) endif() References https://zhuanlan.zhihu.com/p/146543940 ","date":"2022-08-04","language":"en","permalink":"https://ttf248.life/en/p/visual-studio-character-set/","tags":["visual studio","cmake","character-sets"],"title":"Visual Studio Compilation Character Set [Converted]","year":"2022"},{"categories":["The Seven Seconds of a Fish"],"content":"Don\u0026rsquo;t know politics, don’t make comments, record this “carnival” on the internet.\nMusings The Tangshan Assault Incident and the Primary School Textbook Cultural Invasion Incident – I wonder how many people even remember them anymore. These trending news stories have become numbingly commonplace, without much feeling, and I just watch TV as usual after work, observing the spectacle. The economic situation is already dire; a war wouldn’t make things any better. I don\u0026rsquo;t understand politics or offer commentary, simply recording this internet-fueled “carnival.”\nWiki Overview The Nancy Pelosi visit to Taiwan, also known as the Pelosi visit to Taiwan, refers to U.S. House Speaker Nancy Pelosi’s 2022 visit to Asia, specifically her itinerary which included a stop in Taiwan.\nDue to the U.S. House Speaker being considered the third-highest official in the United States and plans to visit Taiwan, the date was approaching shortly before the Chinese People\u0026rsquo;s Liberation Army\u0026rsquo;s (PLA) 70th Founding Day on August 1st, and long-term it approached the Communist Party of China’s Twentieth National Congress, the 2022 U.S. elections, and the 2022 Taiwan local elections. The government of the People\u0026rsquo;s Republic of China issued a strong protest, dispatching destroyer task forces to the northeast waters of the Taiwan Strait and mobilizing the Shandong and Liaoning aircraft carrier strike groups, with the Eastern Theater Command and Southern Theater Command conducting large-scale live-fire exercises in the East Sea and South China Sea respectively. On the U.S. side, the Ronald Reagan aircraft carrier strike group arrived around the Taiwan Strait to guard Pelosi’s possible visit itinerary, and multiple waves of reconnaissance aircraft and aerial refueling tankers were deployed on standby at Japan\u0026rsquo;s Camp Hikawa Air Base.\nChinese President Xi Jinping and U.S. President Joe Biden had a video meeting before the visit, which covered the issue of Taiwan. Taiwanese and international media reported that Speaker Pelosi and the House delegation would arrive at Songshan Airport in Taipei on the 2nd, stay overnight, and meet with Taiwan’s Presidential Office level officials including President Tsai Ing-wen on the 3rd. Some analysts believe this visit could potentially lead to a new crisis in the Taiwan Strait, similar to the 1996 Taiwan Strait Missile Crisis, after 26 years.\n08-11 By today, this has pretty much settled down. During this time, the headlines were dominated by various naval exercises, and Zhihu was putting in a lot of effort to update its trending charts every day, talking about all of this. Let the reporters work hard.\n","date":"2022-08-02","language":"en","permalink":"https://ttf248.life/en/p/pelosi-visits-taiwan/","tags":["pelosi","taiwan"],"title":"Pelosi Visits Taiwan","year":"2022"},{"categories":["Computer"],"content":"The Linux platform is very simple: du -sh * – just one line of code solves the problem. What about Windows? With many disks and a desire to clean up, with numerous files, the system’s built-in Resource Manager is too slow to calculate folder sizes, making you want to give up.\nEverything For developers working on the windows platform, you probably haven\u0026rsquo;t personally used everything, and should at least have heard of it. Its search speed far exceeds that of the built-in file explorer. Given that system-level support for fast indexing exists, we can certainly find similar tools that build file indexes while also calculating file sizes.\nWizTree Website: https://www.diskanalyzer.com/ Use the standard installation method or the green version to unzip and run. It’s fast, with a wide variety of data display types – the left side features a tree diagram mode, the right side displays file types, and there\u0026rsquo;s also graphical visualization available at the bottom of the software.\nSpaceSniffer (Update 2023 No Longer Maintained) Software Website: http://www.uderzo.it/main_products/space_sniffer/\nThe operation is very simple – select the corresponding drive letter, and the software will display folder sizes in a graphical way, with larger volumes resulting in larger matrices in the images. Other operations are easily understood by simply clicking on them. It supports inputting filter conditions for files:\nFile size filtering File date filtering References https://moe.best/software/spacesniffer.html\n","date":"2022-08-01","language":"en","permalink":"https://ttf248.life/en/p/windows-platform-quick-folder-size-statistics/","tags":["Everything","SpaceSniffer","windows","WizTree"],"title":"Quickly calculate folder size on the Windows platform","year":"2022"},{"categories":["Computer"],"content":"Static blog themes, the mainstream is based on foreign templates, modified and adjusted without much consideration for Chinese content layout.\nMain Text About half a month ago, I adjusted the blog’s stylesheet – as I\u0026rsquo;ve been developing backend services for many years, I’m a pure newbie in frontend. After struggling with it for half a day, the design wasn’t quite reasonable. Suddenly an idea struck me: I looked at the technical blogs I often read – infoq and OpenChina – and their layouts look really good. Could I borrow some of those? After reviewing the source files, I got lost trying to locate the relevant elements.\nFrontend developers might be laughing at this point… I didn’t understand how to locate the specified elements, but that\u0026rsquo;s okay; I have plenty of free time on weekends, so I stopped and thought about it. It reminded me of when I wrote Python crawlers – I had used something similar before.\nElement Inspection That’s right, it’s the browser\u0026rsquo;s built-in element inspection tool – copying stylesheets, locating specific elements, all done in minutes. selector to locate elements, hugo to create a “user define css”\nCopy element Copy outerHTML Copy selector Copy JS path Copy styles Copy XPath Copy full XPath ","date":"2022-07-31","language":"en","permalink":"https://ttf248.life/en/p/how-to-copy-webpage-css-element-inspect/","tags":["style-sheets","CSS"],"title":"How to Copy Webpage Stylesheets (CSS): Element Inspector","year":"2022"},{"categories":["Computer"],"content":"The Shanghai GuoAn database incident, which caused a huge stir within the black hacking circles, remains unclear whether it’s true or false. Let\u0026rsquo;s see what we remember in two years and look back on it then. Based on past experience, I updated a batch of local social engineering databases, and I encountered a massive SQL file: 17.9G. A regular text editor couldn\u0026rsquo;t even preview it, let alone open it. Chatting with netizens, someone mentioned EmEditor.\nText Website: https://www.emeditor.com/ I took a look at it over the weekend and found it quite convenient. The design supports editing large files, and when sufficient memory is available, the entire file is loaded into memory, resulting in fast search and editing speeds. It also supports splitting files.\n","date":"2022-07-31","language":"en","permalink":"https://ttf248.life/en/p/windows-platform-edit-large-files-emeditor-text-editor/","tags":["windows","EmEditor","editor-page","large-files"],"title":"Editing Extremely Large Files on the Windows Platform: EmEditor (Text Editor)","year":"2022"},{"categories":["The Seven Seconds of a Fish"],"content":"The leadership team insisted for two days that Shanghai wouldn’t be locked down, that Shanghai was important. But in the end, facing the reality or to preserve their own prestige, they came up with a strategy of closing across the Huangpu River first for a period of time, and then locking down this side of the river.\nLockdown Growing up, I experienced the SARS epidemic and have very little memory of it. After seeing related materials, it ended because its incubation period was short and there wasn’t a nationwide spread yet. I remember being in primary school back then, with classes ending early every day, and the smell of disinfectant always lingering in the air.\nSince the end of 2019, COVID-19 has been raging for almost three years. Workers who travel abroad have become accustomed to it, wearing masks when they need to. The recent wave of outbreaks in Shanghai has repeatedly fluctuated, originating from Hong Kong and then spreading across the border into Shenzhen, and here in Shanghai was due to a surge of imported cases from Hong Kong. The official announcement stated that the spread of the epidemic was caused by inadequate protection measures at quarantine hotels, and the mutated virus had reduced its toxicity but increased its transmission speed through ventilation systems in hotels. Initially, it wasn’t very serious and could be contained.\nPeople are often confident. Shanghai\u0026rsquo;s leaders were like that too. They would choose to implement grid-based risk control with us for precise containment.\nLockdown As you can all see from the results, the new cases have already exceeded 20,000, leaving us with no choice but to implement a lockdown. Notably, it didn’t use the word “lockdown” externally, as it had previously stated during a press conference that Shanghai did not need a lockdown, in order to preserve its last shred of face.\nGrocery Shopping The delivery industry is a new emerging sector driven by the internet. The core of it relies on someone delivering groceries for you, right? However, due to widespread lockdowns in many areas during the pandemic, merchants could operate but no one was available to deliver, which removed the final link in the chain. People outside of this may not fully understand – how could a cosmopolitan metropolis like Shanghai, with its residents going everywhere, all rush out to buy groceries together en masse? In reality, most people are also migrant workers who come here to work and live in rented apartments, typically eating at company canteens or restaurants, rarely cooking at home. When this route becomes blocked, those with the means will start buying groceries. Because this lockdown announcement was not made in advance, people didn\u0026rsquo;t have much food or vegetables stored up, which led to the chaotic rush to buy groceries seen in the video. In that situation, gathering together directly resulted in a resurgence of the epidemic.\nIndustry All of us are working in the IT industry. I experienced the impact of the pandemic, getting a taste of remote work. Back in 2019, I stayed at home for almost a month, changing my train tickets back and forth ten times, with no certainty about when I would be able to return to Shenzhen. I can’t even imagine how those people in the catering, tourism, or many service industries have been getting by these past few years.\n","date":"2022-03-30","language":"en","permalink":"https://ttf248.life/en/p/shanghai-yuanyang-pot-sealed/","tags":[],"title":"Shanghai Fen Yong Guo (Shuang Yang Pot) Lockdown","year":"2022"},{"categories":["Diary Ramblings"],"content":"Ordinary people are social animals, that’s right – you are an individual, and also a bipedal animal, with strong social attributes; you have feelings of inferiority and vanity, and society is constantly changing and eroding your everydayness. We don\u0026rsquo;t discuss those great figures, those who willingly burn themselves for society or the nation.\nMy Current Situation Looking at average salaries or my hometown wages, my current income is significantly above the average – what’s there to be dissatisfied with?\nOnce you earn one million, you start thinking about earning one hundred million; once you earn one hundred million, you start thinking about earning a billion. This is natural for ordinary people; we must face our inner selves.\nMy Current Situation What’s red are the more relaxed ways to make money: short videos. Everyone knows it\u0026rsquo;s not easy to enter an industry. What you see is short video content, but you don’t see the behind-the-scenes work of filming and copywriting. But everyone has their own dream – I’m suited for that industry, I was born to be in it.\nGetting Started I’ve watched so many videos. If you analyze a lot of the shots with your own mind, you can clearly see professional editing techniques and strong cinematic elements. Basically, some of them are from people who have formal training – film school graduates, for example. Of course, there\u0026rsquo;s also the logic of grassroots success, but that doesn’t apply to most people, does it? On TikTok, you’ll also find many videos teaching you how to make videos. At this point, people are starting to wake up. If they could really make money, why would they teach others how to do it instead of doing it themselves?\nAnti-Human Recommendation Algorithms Previously, the Douyin algorithm would recommend movie clips and anime clips while I was scrolling – you’d start to find them interesting. However, when I looked into how Douyin makes money, it started recommending various tutorial videos non-stop, flooding my entire recommendation stream. As someone in the IT industry myself, I began to feel that the “big brothers” behind these algorithms were having a bit of a problem – you recommend like this, are you thinking I’m stupid or are you stupid? Crucially, they keep finding new ways to recommend videos on how to make money with Douyin, covering different angles and various types. It\u0026rsquo;s as if they\u0026rsquo;re constantly trying to figure out the most effective way to exploit my time. I started wondering how long this business model could last, and how much time they could drain from me.\nFinding Clarity When teaching people how to do things, presenting a set of rules for them and then being unable to control yourself when doing it is ridiculous. As I’m not a purely technical blog writer, I haven\u0026rsquo;t published some things domestically, so here I casually rant. If one day I get banned, that can only be said to move somewhere else. I can’t say I haven’t done anything with Douyin – at least now it actively cooperates in the dissemination of real-time news and the propaganda of national policies, because in our country, you can\u0026rsquo;t defy the Communist Party, right?\nNow think back to when you were studying. When you truly can’t find the meaning of life, quietly reading a book is enough. In this era, how many people can still quiet their minds and quietly read books?\nEpilogue I also want to thank the progress of science and technology. If you’re seeing this line, you’ll realize that the entire manuscript is very colloquial. And I really just kept writing and writing it. The input method I usually used was Sogou Input Method, which I\u0026rsquo;d been using for about seven or eight years. However, when it came to voice input, it had to be said that Xunfei was more professional.\nIn 2022, the article number was changed to 002. Why did it have two zeros? There’s a dream – this year I wanted to break the hundred articles, which is just a dream, right? It\u0026rsquo;s not really articles; it’s more like records. I reflect on myself every day, and you must be able to think of some things, right?\n","date":"2022-03-27","language":"en","permalink":"https://ttf248.life/en/p/when-you-want-to-make-money/","tags":["life-lessons","social-media","douyin"],"title":"When you want to make money","year":"2022"},{"categories":["Computer"],"content":" Spent four hours on this, and when I saw the sentence, it was hilarious. How could it have taken so long? Finally looked at the time: three hours.\nThis was the first draft of the year 2022, and it wasn’t complicated – exactly as the title said. (At that time, I was still quite young), I thought simply copying 作业 would be enough, putting it in my favorites folder, and letting it sit for over a month before finally remembering the task.\nWhen migrating to hugo, I always felt that the plugins were too few, couldn’t copy code, which made copying notes from Evernote to the blog very cumbersome, seriously hindering my motivation for writing a casual blog.\nForeword First, carefully read the original author’s draft, read it through completely and flip through their introduction. Wow, I ran into a big shot – Tsinghua University undergraduate, has been exposed to computers since early on, huh? Just a facade, let\u0026rsquo;s take a look at this blog first, completely forgot what he was supposed to do. Also, check out the author’s Github repository; this modified ‘even’ theme is much prettier than now and has more features, let’s get started, merge the relevant code into it. New Features: View Article History, Associate Submission Records The effect is still good, and you can experience it by dragging it to the end of the article.\nBefore taking action, I didn’t carefully examine the author\u0026rsquo;s original repository history, assuming a simple merge would fix everything. Ultimately, I merged a huge amount of code with numerous conflicts and N times of manual overrides – all of which were frontend and rendering template code, using the one that matched my requirements.\nRepository Address: https://github.com/TianlongXiang/hugo-theme-even\nA Chinese pitfall: if git doesn’t adjust this parameter, it will cause the generated link to not be able to obtain the current article\u0026rsquo;s commit hash, resulting in history link generation failure. When generating the complete historical record of the article, you also need to modify the automatic integration script and remember to pull the entire historical record of the current repository.\nfeat: Attempt to fetch the full GitHub repository to dynamically update the last modification record of the article chore: Path contains Chinese, hugo GitInfo needs to enable this setting name: Build Github run: git config --global core.quotePath false \u0026amp;\u0026amp; hugo -b \u0026#34;https://www.xiangtianlong.com/\u0026#34; -d \u0026#34;github_public\u0026#34; \u0026amp;\u0026amp; ls Style Adjustments Adjust website content width, the previous design was suitable for both mobile and desktop devices; in reality, no one actually viewed it on their phones, and I personally view it on my computer. The directory bar should support automatic expansion/contraction. Body Referenced ouuan’s code records for half an hour or so, and still couldn\u0026rsquo;t quite understand how to increase the copy button.\nTime travel, a month later, it came back to this matter again\nText Since I didn’t understand this assignment, I switched to copying from another source – it was definitely easier to grasp. The results of my search were surprisingly helpful; a forum post on the official hugo website detailed how to add a copy button. After checking it out, I realized that the code block styles generated by even differed from the descriptions in the documentation – this part was quite complicated. So, I’m just going to record this for reference.\nBecause I don\u0026rsquo;t really understand front-end development, when I encounter something I don’t get, I open my browser’s “Inspect” tool and analyze the code alongside the style information on the right; I use JavaScript logs to help me understand the logic. There were many things I didn’t understand at first. Taking a deep breath and carefully breaking down the logic helped me find a solution eventually.\nThe \u0026lt;pre\u0026gt; nodes are multiple, this refers to a single code block. The theme itself rendered line numbers, which resulted in the copy button appearing twice. I wanted to disable the theme’s built-in code highlighting; unfortunately, I wasn\u0026rsquo;t familiar with the settings for this theme. I consulted the hugo website and read some documentation – it was a bit confusing at first, but I learned that the markup setting could control code highlighting. I adjusted the configuration file, but it didn’t work; the rendered output differed from my expectations. I discovered this bunch of settings called pygmentsOptions, so I continued to consult documentation and adjust the settings, first removing the line numbers. I configured a custom CSS stylesheet and a custom JavaScript script. Since I’d already done so much, my brain suddenly remembered seeing a nice color palette recently, so I modified the button styles: Let\u0026rsquo;s go with the traditional Chinese sky blue! I spent four hours on this, and when I saw that sentence, I even found it funny – how could it take so long? Finally, I looked at the time: It was only three hours.\nReferences https://ouuan.github.io/post/from-hexo-to-hugo/ https://gohugobrasil.netlify.app/content-management/syntax-highlighting/ https://gohugo.io/getting-started/configuration-markup#highlight https://www.dannyguo.com/blog/how-to-add-copy-to-clipboard-buttons-to-code-blocks-in-hugo/ ","date":"2022-02-25","language":"en","permalink":"https://ttf248.life/en/p/add-copy-button-for-simple-task/","tags":["blog","button"],"title":"Adding a code copy button for seemingly simple things","year":"2022"},{"categories":["Repost / Share"],"content":" Wang Yi-zi said: Human relationships, spanning a lifetime of mutual support and dependence, may be held within one’s embrace, understood in the confines of one room; or they may arise from entrusted messages, dissolving into the vastness beyond.\nIn a lifetime, like a fleeting flower. Like grass and trees blossoming and withering, like the rising and setting of the sun and moon. Yet, in this life, desires are numerous. As a child, I lay under lotus plants and hemp in the stream, busy catching the east wind to fly kites, chasing yellow butterflies in haste, Also learned to grow gourds by the shade of mulberry trees, returning home with a full meal after dusk, not shedding my cloak to lie beneath the moonlight. As I grew older, I hoped to be inscribed on the gold list, to have a beautiful woman accompany me, to have endless wealth, to rise continuously, to have a full table of guests, to sing and play every night. When old, I wanted health and longevity, welcome childhood servants, young children waiting at the door, a chessboard, a confidant, a bottle of wine, a courtyard, enjoying family harmony. You see people rushing about in a panic, only seeking a few taels of broken silver. Yet, this broken silver, can it dispel all kinds of melancholy in the world?\nHalf the people are still struggling with their lives, where do they have time to seek meaning? In fact, human life is just an experience, like plants, sun and moon – experiencing the cycle of desire. If you don’t understand it, you’ll feel like a fleeting moment in the vastness of the world, a tiny grain of sand on the Yangtze River. When you understand it, you’re happy with what you encounter, temporarily possessing yourself, content and self-sufficient, unaware of your approaching old age. You can pursue wealth and fame, or poetry, wine, flowers, and tea. You can pursue the clear breeze on the river or the bright moon in the mountains. But don’t overly concern yourself with the results; they will all eventually pass away. After a lifetime of hardship, when you arrive in this world, try to experience the joys and sorrows, birth, old age, sickness, and death. I really like the quote from The Tale of the Sea Deer: Our lives are short, and we will eventually lose them, so why not be a little bolder – love someone, climb a mountain, chase a dream – there are many things with no answers.\nI greatly enjoyed The Analects of Zan Gong and Red Cliff.\nReflecting on the rise of past generations, one feels a sense of longing; if only they could be brought together as one, never to have lamented or mourned, unable to convey it within my heart. I know that dying in one’s lifetime is an absurdity, and the tragedy of Zang and Peng is a false fabrication. Those who look upon us now are like we look upon them then. Alas!\n","date":"2021-08-31","language":"en","permalink":"https://ttf248.life/en/p/what-we-seek-throughout-life/","tags":["life-lessons","","pursuit-of"],"title":"What we have been seeking throughout our lives is…","year":"2021"},{"categories":["Financial Knowledge Base"],"content":"Uncommon, it will definitely encounter it over time; related stock code: Berkshire Hathaway\nText Some stock ticker symbols contain periods or other special characters in their names. When submitting these to Interactive Brokers (IB) via Fix, certain transformations of the stock code name are required.\nBRK/B -\u0026gt; BRK B\nBody For the Fidelity Securities case, it’s possible to analyze and implement the conversion rules are fixed through coding. When the rules are not fixed, generally the system needs to store the corresponding mapping relationships, which are updated periodically by business operations personnel.\nReference Links How do I enter the symbol for Berkshire Hathaway Class B shares onto TWS?\n","date":"2021-08-30","language":"en","permalink":"https://ttf248.life/en/p/interactive-brokers-stock-code-format-explanation/","tags":["ib","interactive-brokers"],"title":"Futu Securities Stock Code Special Format Instructions","year":"2021"},{"categories":["Diary Ramblings"],"content":" Often, at some stage of life, people find themselves in a state of confusion, not knowing what they truly want, and gradually losing their pursuit of the meaning of work amidst the mundane daily routines. Looking back to when I first graduated, my heart was full of fervent aspirations – then I would without hesitation say, “I yearn to write code, to create brilliant, eye-catching code.” However, working until today, I’ve had more exposure to business-level affairs, which is largely due to the benefits brought by industry development. In terms of my lifestyle, I haven\u0026rsquo;t yet included marriage and having children, or establishing a family, in my thinking; my mind is almost blank, only focused on enjoying the present moment. Whenever weekends arrive, I enjoy quietly playing games, often spending an entire day staying at home, immersed in my own little world.\nIn life, we always need something we truly love and dedicate ourselves to wholeheartedly.\nBuying a House Two years ago, I was full of enthusiasm and planned to save diligently to buy my own property. I meticulously budgeted every day towards this goal. However, as house prices continued to rise, I transitioned from initial anxiety and disappointment to eventually becoming numb, gradually feeling that even if I bought a house, it would simply be a heavy burden I’d been carrying around – ultimately leading me to abandon the idea.\nSaving Money Initially, saving money was about achieving some small goals, such as building a high-performance desktop computer, purchasing a long-desired camera, or taking an impromptu trip. However, now I approach saving with a more relaxed and “chill” attitude, no longer worrying too much about daily expenses – I indulge in things I want to eat and boldly try new and exciting things.\nReturning Home In the end, I realized that what I most longed for deep down was simply to go home. There wasn’t anything particularly to do, just returning to that familiar place, feeling the warmth and tranquility of home.\n","date":"2021-08-26","language":"en","permalink":"https://ttf248.life/en/p/lost-and-confused/","tags":["life-lessons","lost-and-confused"],"title":"Lost/Confused","year":"2021"},{"categories":["Financial Knowledge Base"],"content":"As financial markets continue to evolve, investors have begun seeking more effective investment tools to enhance their investment returns. To meet investor demand, The Hong Kong Exchanges and Clearing Limited (HKEX) has launched a range of stock futures contracts, all of which represent stocks listed on its wholly-owned subsidiary, the Hong Kong Stock Exchange (HKEX), which boasts high trading volumes and active liquidity. Through investing in stock futures, investors can participate in the performance of individual companies while also benefiting from the short selling and leverage effects offered by the derivatives market.\nGiven that the underlying stocks represented by stock futures are typically leading companies within their respective industries, investors can strategically select to invest in those industry-specific futures if they believe a particular sector’s performance will outperform or underperform the overall stock market.\nBasic Definition A stock futures contract is an agreement to buy or sell a specified quantity of financial value (contract size) equivalent to a specified number of shares (the underlying stock) at a predetermined price (the agreed-upon price) on a future, specified date.\nAll stock futures contracts are settled in cash and do not involve the physical delivery of shares upon expiration.\nContract Expiry Upon contract expiry, the profit or loss amount is calculated as the difference between the agreed-upon price and the final settlement price multiplied by the contract multiplier, which will be deducted from the clearing member’s margin account.\nThe final settlement price refers to the official closing price of the stock reported by the Shanghai Stock Exchange on the last trading day.\nIf a futures investor wishes to close out their position before expiry, a short seller only needs to buy back one futures contract, while a long position holder must sell one futures contract.\nMargin Deposit In futures trading, both buyers and sellers must initially deposit a basic margin as collateral to fulfill the contract. After each daily settlement, the clearing organization calculates profits or losses for all open contracts based on the closing market price and uses this to deduct from investors’ margin accounts. If unfavorable market conditions result in an investor incurring losses that cause their margin to fall below the specified level, the exchange will require the investor to top up their margin within a designated timeframe to maintain it at the original basic margin level (i.e., to cover).\nAdvantages Low Transaction Costs: The fees are low relative to the value of the underlying shares. Each futures contract is equivalent to thousands of shares, and commissions depend on the number of contracts traded, resulting in a very low cost per unit of value. Easier Short Selling: Because investors can easily short stocks through futures contracts, they can profit during market declines by shorting stock futures. Market Maker System: To ensure market liquidity, The Hong Kong Exchange \u0026amp; Clearing Limited (HKEX) mandates that market makers provide buy and sell prices within a specified range, maintaining circulation in the stock futures market. Leverage Effect: Investors only need to pay a margin representing a small portion of the contract value when buying and selling stock futures contracts, making hedging and trading more cost-effective. Reduced Foreign Investor Currency Risk: Stock futures contracts provide foreign investors with access to invest in high-quality local stocks because they only pay a margin instead of the full contract value, significantly reducing the currency risk borne by foreign investors. Electronic Trading System: Stock futures contracts are traded through The Hong Kong Exchange \u0026amp; Clearing Limited’s (HKEX) electronic trading system. All trades are executed according to price and time priority, with immediate display of buy prices, sell prices, and transaction prices, achieving the highest level of market transparency. Clearing Company Performance Guarantees: Stock futures contracts will be registered, settled, and performance guarantees provided by HKEX’s wholly owned subsidiary, Hong Kong Futures Clearing Limited (the Clearing Company). Because the Clearing Company is the counterparty to all unsettled contracts, participants in the clearing house will not have to bear counterparty risk. However, this guarantee does not include the financial responsibility of the clearing participant for its clients; investors choosing a broker to trade must exercise caution. Market Making Market participants or individual stock futures contracts may register as market makers on the exchange and simultaneously provide both buy and sell prices within the specified maximum spread. Exchange participants and their clients should be aware that individual stock futures contracts may not have a market maker registered to provide bid-ask spreads, and their trades will be based on market unit pricing. Investors should note that stock futures without registered market makers may involve liquidity risk, and caution should be exercised before entering the market.\nRisks of Trading Stock Futures Stock futures involve high risks. Losses arising from trading stock futures may exceed the initial margin paid, potentially requiring you to pay additional margins within a short period. If unable to meet these payments, your position may be liquidated, and you will bear all resulting losses. Therefore, it is crucial to fully understand the risks associated with trading stock futures and assess whether it’s suitable for you. Before engaging in transactions, consult with a broker or financial advisor to determine if futures and options contracts are appropriate based on your financial situation and investment objectives.\nAdjusting Comments When a listed company alters its capital structure through measures such as a cash offer or the issuance of bonus shares, this will lead to changes in share prices at the time of net asset valuation or the effective date, and may also affect uncovered positions.\nIf other circumstances remain unchanged, the value of holdings held by shareholders will not be adjusted on the settlement day; however, this is different for buyers or holders of stock futures. Unless the futures contract is appropriately adjusted, changes to the share price will unfairly and unjustly impact the value of a stock futures position. The adjustment ratio determined by the Settlement Corporation is based on maintaining the fair value of the futures contract and only made when there are significant changes. The Hong Kong Exchange will announce the details of the adjustments, and participants in the exchange must inform customers about the changes.\nFutures Contracts Overview News Provider Code References Hong Kong Exchange - Derivatives / Stocks / Stock Futures HKEX_Stock_Futures_SC.pdf\n","date":"2021-08-18","language":"en","permalink":"https://ttf248.life/en/p/hong-kong-futures-basics/","tags":["futures"],"title":"Hong Kong Futures Basic Concepts","year":"2021"},{"categories":["The Seven Seconds of a Fish"],"content":"Recent two trading days have seen a significant downturn in the stock market, exposing newcomers to the risks of the market. China is about to enter an aging demographic phase, and birth rates are dismal, with the decline exceeding the estimates of relevant experts, hindering industries that obstruct declining birth rates; the Party will take decisive action.\nReducing Student Burden Those of us born in the 1990s didn’t have as many interest classes or tutoring sessions; after school, we would run wild playing. This was first due to the limitations of our families\u0026rsquo; conditions and second because tutoring centers hadn’t yet established a brand effect, convincing parents to trust them. Twenty years have passed in a flash, and since 2019, the capitalization of K12 education has seen the rise of online tutoring companies like猿辅导 (Yuancu Tu), bolstered by capital, which have created various high-end tutoring centers by concentrating excellent resources. Despite exorbitant fees, parental enthusiasm remains unstoppable.\nIn the process of urbanization, many parents see education as a path to escape the constraints of the peasantry and achieve a social class leap. As cogs in the machine themselves, they don’t have much time to care for their children, not only because they are highly competitive but also because they don\u0026rsquo;t want their children to fall behind their peers. “It’s difficult for nobles to become commoners,” and with ordinary education levels, it is hard for families in China to maintain their current social standing or make another class leap. If they enter vocational high schools, in today’s society, they believe this represents a downward slide in social status, which is something most parents cannot accept.\nReducing Student Burden Let’s revisit the reasons behind extracurricular tutoring and why parents seek it out. Textbook knowledge and example problems are straightforward – many students can understand them easily. However, many subjects cover broad concepts superficially without delving deeply. The talent selection mechanism requires differentiation, leading to a contradiction: exam questions based solely on textbook knowledge cannot effectively filter candidates. This necessitates horizontal and vertical expansion of learning. These areas are aspects that teachers simply cannot cover in the classroom, creating the fertile ground for extracurricular tutoring.\nThe document contains numerous clauses and specifications, outlining multiple aspects and providing a summary of the guiding document’s outline:\nCompletely reduce the total amount and duration of homework assignments to alleviate students\u0026rsquo; excessive workload. Improve the level of after-school services offered by schools to meet diverse student needs. Strictly govern extracurricular training activities and comprehensively standardize their behavior. Significantly enhance teaching and learning quality to ensure that students master what they learn at school. Strengthen supporting governance and improve support capabilities. Carefully organize and implement it, aiming for tangible results. Elite Education There’s also a phenomenon in the education sector – the increasing prevalence of powerful private schools. Public schools are struggling to provide sufficient high-quality resources (leading to enclaves/gated communities). Various sized educational groups are attracting excellent teachers with high salaries, establishing quality learning environments, and gradually building their own brands, most notably: Hen Shuai Model. Old Home Corporation averages over 3000 RMB, powerful private primary schools charge between 9000 and 10000 RMB per year. Educational groups form a virtuous cycle – my tuition is expensive, but the teachers are excellent, students achieve good grades, I raise tuition fees, and parents will still send their children here. Public resources (teachers) are gradually being drawn to private schools, ultimately becoming synonymous with substandard education.\nAlgorithmic Optimization There is data showing that Meituan’s contracted delivery riders have approached 4 million, with approximately 400,000 active riders. Many people rely on this job to support their families and livelihoods. The relentless algorithmic pressure to minimize delivery times reduces individuals into measurable units, feeding them into algorithms for constant calculation, continually exploring the boundaries of delivery rider collapse. Believing themselves clever, they violate human nature and serve capital. The market operates here, allowing everyone to play and enjoy sustainable play, rather than monopolizing, wielding privileges, the gameplay of capitalism, a reckless and brutal growth that will ultimately come to an end.\nStock Market Volatility On July 24, 2021, education stocks represented by New Oriental performed a dramatic plunge, followed by Hao Pai Futures in the pre-market session. Stock prices plummeted by half.\nChina has gradually entered an aging population, and various social phenomena affecting family planning must be rectified; monopolistic and overtime internet companies were fined, and the capital-concentrated education industry was also scrutinized.\nStock Market Volatility The education industry is not allowed to be capitalized on; a single vote directly negated related industries\u0026rsquo; IPO financing, and there was wailing everywhere.\nNew Oriental \u0026ldquo;Takes a Plunge\u0026rdquo; Meituan Crashes References Regulatory Intensive Efforts Cause Online Education to “Brake Suddenly” The State Council Office issued the \u0026ldquo;Opinions on Further Reducing the Homework Burden and Extracurricular Training Burden of Students in Compulsory Education Stages\u0026rdquo;\n","date":"2021-07-28","language":"en","permalink":"https://ttf248.life/en/p/capital-monopoly-and-the-fall-of-online-education/","tags":["xin-dong-fang"],"title":"Capital Monopoly and the Demise of the Online Education Industry","year":"2021"},{"categories":["Computer"],"content":"A pattern of disruption to test system stability.\nMain Text The domestic internet industry is always fond of playing with new things, often introducing terms that most people wouldn’t be able to guess what they are. After reading some articles, this definition specifically for the early stages of Chaos Engineering is relatively easy to accept:\nEarly exploration of Chaos Engineering has actually been ongoing within the industry, previously existing under the guise of fault testing and disaster recovery exercises. As microservice architectures continue to develop and distributed systems grow ever larger, Chaos Engineering has begun to emerge and gain increasing importance. Following Netflix’s formal proposal of the Chaos Engineering concept, related theories have also rapidly enriched. Netflix\u0026rsquo;s practices have also demonstrated the significant impact Chaos Engineering has on stability.\nReference Links ByteDance Chaos Engineering Practices Summary\n","date":"2021-07-28","language":"en","permalink":"https://ttf248.life/en/p/chaos-engineering/","tags":["chaos-engineering"],"title":"Chaos Engineering","year":"2021"},{"categories":["Computer"],"content":"Deployment controllers implement a crucial function within a Kubernetes cluster: the ability to horizontally scale and shrink Pods. This capability was essential for traditional cloud-era platforms.\nEncountering a business scenario where you need to modify data in a database, restarting Pod nodes after adjustments. However, during Pod operation, table fields are continuously modified, requiring temporary pausing of application updates to tables, adjusting the data, and then restoring the Pod.\nBesides abruptly deleting the Deployment, are there other ways to achieve a similar pause effect?\nkubectl scale --replicas=0 deployment/\u0026lt;your-deployment\u0026gt; Before seeing the answer, many people might have thought that simply operating processes was the way to go, stuck in the mindset of directly manipulating business processes instead of realizing the solution.\nReference Links How to Stop/Pause a Pod in Kubernetes\n","date":"2021-07-12","language":"en","permalink":"https://ttf248.life/en/p/kubernetes-pause-pod/","tags":["kubernetes"],"title":"Kubernetes paused pod","year":"2021"},{"categories":["Investment"],"content":"Those of us born in the 90s, we didn’t really feel the impact of the 2008 financial crisis – after all, we were young and hadn\u0026rsquo;t yet started to focus on finance. The roaring bull market of 2015 came with a lot of fanfare, and when it ended, it made quite a stir, ultimately requiring government intervention to stabilize the markets. Simultaneously, this brought the concept of “funds” into the view of ordinary people.\nAnt Financial and Alipay As a natural traffic entry for Ant Financial, Alipay was born with the positioning of a payment tool. When purchasing funds, Alipay and WeChat both saw widespread adoption – most people chose Alipay. Alipay has successfully transformed fund sales into an ordinary shopping experience. Starting in 2019, during the small bull market, fund managers’ “warming up” recruitment, ultimately driven by the monetary easing guided by the COVID-19 pandemic. Those who entered made a profit, those who didn\u0026rsquo;t enter envied them and rushed to join. The scale of new funds broke through the hundred billion mark at an increasingly rapid pace, and with grandmothers starting to buy funds, another trillion fund is not far off.\nPrior to Alipay’s explosive rise as a code-driven internet fund sales platform, ordinary people\u0026rsquo;s contact with fund sales was primarily when depositing money in banks, where the branch manager would enthusiastically introduce various investment products. The internet packaging and promotional page information guidance, the exorbitant advertising fees given by fund sales institutions, completely detached Alipay’s fund advertisements from rationality.\nNormal bank fixed-term investment returns are 4%, P2P investments that played wildly in recent years were 8%, credit card repayment interest rates are 12%. Our protagonist, Alipay\u0026rsquo;s promoted funds – 150% and 250% – were popular in the market, making everyone happy, both inside and outside the market? Alipay was playing with fire. The advertised returns only showed the three-year cumulative yield chart, while traditional fund companies only presented annualized average yields. Why didn’t they dare to present the annual average yield alone? Because it wouldn\u0026rsquo;t look good, and it wouldn\u0026rsquo;t guide customers to purchase funds.\nFixed Income Investment China hasn\u0026rsquo;t yet entered a negative interest rate era, making bank deposits and government bonds the most secure fixed-income products. Pure credit funds are also a good option. You can refer to the data published by local statistical bureaus to find China’s average wage levels. I’ll present a simple scenario: with an asset size of 2 million (CNY), an annualized yield of 4%, the annual income will exceed most cities\u0026rsquo; average wages.\nEpilogue This is largely based on my personal experiences, and there’s much more I could write. If you want to learn more, I recommend reading a variety of economic books yourself – don\u0026rsquo;t blindly follow. For ordinary families, the core of financial planning is preservation, not chasing risky dreams of getting rich quick.\nMy uncle often says:\nThe right thing at the right time has the greatest value; study diligently when you’re studying, and getting a good degree is better than earning pocket money by distributing flyers; work seriously when you first graduate, and the growth in your salary will bring you substantial returns; and when you start a family, learn to take care of your home.\nEpilogue Those interested can take a look at this speech transcript: On Time, you need to read many books to find the answer. The text transcript is available on our site.\n","date":"2021-07-09","language":"en","permalink":"https://ttf248.life/en/p/funds-and-fixed-income-wealth-management/","tags":["fund","fixed-income","investment"],"title":"Fixed Income Funds / Bond Funds","year":"2021"},{"categories":["Financial Knowledge Base"],"content":"Having spent five years developing financial software, I’ve become most familiar with the interface documentation of various exchanges. I\u0026rsquo;m particularly well-versed in the Hong Kong Exchange’s documents, and recently while handling the ChinaBond business, I also reviewed materials from the Shanghai Stock Exchange (SSE) and Shenzhen Stock Exchange (SZSE).\nHong Kong Exchange Official Website\nFrequently Used Resources Trading Hours, Trading and Settlement Calendar Trading Mechanism Hong Kong \u0026amp; China Financial Terminology Glossary Shanghai Hong Kong Stock Connect and Shenzhen Hong Kong Stock Connect Trading Calendar PDF Shanghai Hong Kong Stock Connect and Shenzhen Hong Kong Stock Connect Trading Calendar CSV Hong Kong \u0026amp; China Financial Terminology Glossary PDF Trading Circuit Breaker Trigger Record Securities List: Basic Information, Securities Classification Closing Auction Session (CAS) Securities Trading Hours Volatility Control Mechanism (VCM) Securities Designated Securities Eligible for Short Selling Securities List: Basic Information, Securities Classification XLSX Market Data Interface Documentation: Hong Kong Stocks + China Fortune (中化通) Market Data Interface Summary Link Frequently Asked Questions, Guidance on Development Manuals, Historical Market Data Interface Documents can be obtained by searching for download addresses in the search bar. Search for historical version numbers.\nHong Kong Stock Exchange Market Data Interface China Fortune Market Data Interface HKEX_OMDC_Binary_Interface_Specifications_v_1,-d-,32c.pdf HKEX_OMDC_Developers_Guide_1_11.pdf OMDC_Connectivity_Guide_Securities_Market-Index_datafeed(v2_2).pdf OMD_Interface_Specification_China_Connect_Securities-(v1-3).pdf OMD_Connectivity_Guide_China_Connect_Securities.pdf OMD_Developers_Guide_China_Connect_Securities.pdf Trading Interface Document: H Shares + China Tong Trading Interface Document Summary Link\nH Shares FIX Protocol Interface Document PDF H Shares Dual Pricing Scheme Interface Document PDF HKEX Error Code List XLSX China Tong FIX Protocol Interface Document PDF China Tong Binary Interface Document PDF SSE (Shanghai Stock Exchange) Market Data and Trading Link Documentation Error Interface Documentation can be found in other menus Trading Error Interface Documentation XLSX\nStock Exchange Market Data Query Interface Documentation The Stock Exchange does not provide separate error message explanations; supplementary information can be found in Chapter 6 of the Market Data Query Interface Documentation. Shenzhen Securities Trading Center Binary Transaction Data Interface Specification (Ver1.18) PDF\nNasdaq Holiday Schedule New Issue Information Closing Price Global Market Closing Prices\n","date":"2021-01-27","language":"en","permalink":"https://ttf248.life/en/p/exchange-interface-documentation/","tags":["hkex","hkex","china-tong","shanghai-stock-exchange","shenzhen-stock-exchange","nasdaq","api-documentation"],"title":"Exchange Interface Documentation Summary","year":"2021"},{"categories":["Computer"],"content":"Having worked with CentOS for many years, content may not apply to macOS or Ubuntu users in some cases.\nYou can refer to the documentation from Tsinghua University for installation guidance: https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/\nInstallation Due to unknown mysterious forces, domestic Docker installation is recommended to set the cloud vendor\u0026rsquo;s repository address. Here we recommend using Alibaba Cloud.\nSet Repository Source Address yum install yum-utils device-mapper-persistent-data lvm2 \u0026amp;\u0026amp; \\ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo Deploy the Latest Version Docker is a commonly used background service, we recommend setting it to start on boot. The following command applies to CentOS 7:\nsudo yum install -y docker-ce docker-ce-cli containerd.io \u0026amp;\u0026amp; systemctl enable --now docker Deploying a Specific Version The releases of kubernetes and docker are not fully synchronized. If you need to deploy kubernetes subsequently, refer to the kubernetes deployment instructions and install a specific version of docker.\nyum list docker-ce --showduplicates | sort -r sudo yum install -y docker-ce-18.09.2-3.el7 docker-ce-cli-18.09.2-3.el7 containerd.io-18.09.2-3.el7 \u0026amp;\u0026amp; systemctl enable --now docker Adding Docker Permissions for Regular Users sudo usermod -aG docker ${USER} Uninstall sudo yum erase -y docker-ce docker-ce-cli containerd.io Everyday Use Mirror Acceleration There’s still an unknown mysterious force that causes slow image pulls. At this time, domestic cloud vendors have emerged and provided many acceleration services, which are still recommended – Alibaba Cloud.\nThe acceleration addresses can be managed by you registering an Alibaba Cloud account; this service is free. Alibaba Cloud also offers a free image build service.\ncat \u0026gt; /etc/docker/daemon.json \u0026lt;\u0026lt;EOF { \u0026#34;registry-mirrors\u0026#34;: [ \u0026#34;https://docker.nju.edu.cn\u0026#34;, \u0026#34;https://mirror.baidubce.com\u0026#34;, \u0026#34;https://docker.m.daocloud.io\u0026#34;, \u0026#34;https://docker.mirrors.sjtug.sjtu.edu.cn\u0026#34; ] } EOF systemctl daemon-reload \u0026amp;\u0026amp; \\ systemctl restart docker Recommended Control Panels docker volume create portainer_data \u0026amp;\u0026amp; \\ docker run -d --name=portainer --restart=always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.20.3-alpine Frequently Used Image Pull List docker pull rancher/rancher:stable \u0026amp;\u0026amp; docker pull portainer/portainer-ce:2.0.1 \u0026amp;\u0026amp; \\ docker pull centos:7 \u0026amp;\u0026amp; docker pull ubuntu:20.04 \u0026amp;\u0026amp; docker pull ubuntu:18.04 \u0026amp;\u0026amp; \\ docker pull redis:5 \u0026amp;\u0026amp; docker pull redis:6 \u0026amp;\u0026amp; \\ docker pull alpine:3.11 \u0026amp;\u0026amp; docker pull busybox:1.32 \u0026amp;\u0026amp; \\ docker pull rabbitmq:3.7-management \u0026amp;\u0026amp; \\ docker pull mariadb:10.2 \u0026amp;\u0026amp; \\ docker pull nginx:1.18 \u0026amp;\u0026amp; docker pull nginx:1.19 \u0026amp;\u0026amp; \\ docker pull mysql:5.6 \u0026amp;\u0026amp; docker pull mysql:8 \u0026amp;\u0026amp; \\ docker pull elasticsearch:6.8.11 \u0026amp;\u0026amp; docker pull logstash:6.8.11 \u0026amp;\u0026amp; docker pull kibana:6.8.11 \u0026amp;\u0026amp; \\ docker pull zookeeper:3.4 \u0026amp;\u0026amp; \\ docker pull influxdb:1.7 \u0026amp;\u0026amp; docker pull grafana/grafana:7.3.1 \u0026amp;\u0026amp; \\ docker pull percona:8 \u0026amp;\u0026amp; docker pull percona:5.6 \u0026amp;\u0026amp; \\ docker pull cloverzrg/frps-docker:0.34.3 \u0026amp;\u0026amp; docker pull cloverzrg/frpc-docker:0.34.3 Common Command Combinations https://docs.docker.com/engine/reference/commandline/docker/\nView container running status, append the format parameter to view detailed container information, and ignore image information.\ndocker ps --format \u0026#34;{{.Names}}: {{.Ports}}: {{.Size}}\u0026#34; #portainer: 0.0.0.0:8000-\u0026gt;8000/tcp, 0.0.0.0:9000-\u0026gt;9000/tcp: 0B (virtual 172MB) #influxdb: 0.0.0.0:8086-\u0026gt;8086/tcp: 183B (virtual 311MB) Stop all containers with one command\ndocker stop $(docker ps -a -q) Delete all images with one command\ndocker rmi $(docker images -a -q) Export image\ndocker save \u0026lt;IMAGE NAME\u0026gt;:\u0026lt;IMAGE TAG\u0026gt; \u0026gt; XXX.tar Export image and compress it\ndocker save \u0026lt;IMAGE NAME\u0026gt;:\u0026lt;IMAGE TAG\u0026gt; | gzip \u0026gt; XXX.tar Import image\ndocker load -i XXX.tar ","date":"2021-01-21","language":"en","permalink":"https://ttf248.life/en/p/docker-two-three-things/","tags":["docker","linux","centos"],"title":"Docker Basics, Intermediate, and Advanced","year":"2021"},{"categories":["Computer"],"content":"The author has a strong interest in hardware and used JMeter to conduct load testing, documenting the process of deploying JMeter, InfluxDB, and Grafana on CentOS 7. They shared installation and command usage for JMeter, InfluxDB’s features and Docker installation method, as well as a simple deployment and configuration for Grafana. They summarized experience and references related to high-performance programming patterns.\nBackground As widely known, I have a very strong interest in hardware. By chance, the test team was using JMeter to perform load tests and discovered that performance wasn\u0026rsquo;t improving. As a curious individual, I decisively took action to see how the company conducted its testing. There’s also a small story: at some point in the distant past, I read a post on OpenChina about how to create more impressive-looking performance test graphs – after observing Windows versions execute tests and achieving visualized TPS data display, what\u0026rsquo;s the use of configuring a web panel?\nThinking is all well and good, but you have to try it yourself to understand. Don’t use GUI mode for load testing! only for Test creation and Test debugging.\nBackground Officially, it’s recommended to obtain test reports via the command line and display them using a GUI, which introduces data errors. I don\u0026rsquo;t have deep knowledge of JMeter – at least I found a reason to tinker with a Linux version console panel. The openchinese post’s core component deployment isn’t friendly; you need to follow their WeChat channel to download the required files, so as a young millennial, of course I used Docker instead. Basically, my server is located domestically, and accessing the overseas source addresses is very slow – at least using an image service, Alibaba Cloud has a free acceleration.\nRegarding docker installation and deployment, this will not be elaborated on here; please refer to previous articles for recommendations.\nThe following content focuses on two main areas: setting up the basic test environment components and a simple explanation of each component.\nJMeter Apache JMeter is a Java-based load testing tool developed by the Apache Software Foundation. It’s used to perform stress tests on software, initially designed for web application testing but later expanded to other testing domains. It can be used to test static and dynamic resources, such as static files, Java microservices, CGI scripts, Java objects, databases, FTP servers, etc. JMeter can simulate massive loads from various stress categories to test the strength of servers, networks, or objects and analyze overall performance. Furthermore, JMeter can perform functional/regression testing on applications by creating scripts with assertions to verify that your program returns the expected results. To maximize flexibility, JMeter allows using regular expressions to create assertions.\nApache jmeter can be used to perform performance tests on static and dynamic resources (files, Servlets, Perl scripts, Java objects, databases and queries, FTP servers, etc.). It can be used to simulate heavy loads on servers, networks, or objects to test their strength or analyze overall performance under different stress types. You can use it for performance graphing or large concurrent load testing of your server/script/object.\nJmeter Deployment on CentOS7 Install the JDK runtime environment, download the Jmeter installation package:\nyum install java-1.8.0-openjdk -y \u0026amp;\u0026amp; \\ wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.tgz \u0026amp;\u0026amp; tar -xf apache-jmeter-5.4.tgz Configure environment variables:\nexport JMETER_HOME=$HOME/jmeter/apache-jmeter-5.4 export PATH=$JMETER_HOME/bin:$PATH JMeter Commands Finally, it will be connected to the Grafana dashboard, and you don\u0026rsquo;t need to input the -l parameter to observe data in the web console.\njmeter -n -t /tmp/order-500-10s.jmx -l /tmp/jmeter-order-report-20200109/order-500-10s.jtl # Generally, don\u0026#39;t use test results and test reports to simplify the command jmeter -n -t /tmp/order-500-10s.jmx InfluxDB InfluxDB is an open-source distributed time series database written in Go. It requires no external dependencies. The database is now primarily used for storing large volumes of timestamped data such as DevOps monitoring data, app metrics, IoT sensor data, and real-time analytics data.\nInfluxDB Features InfluxDB’s features can be summarized into the following 9 aspects:\nSchema-less (Schemaless): Can contain an arbitrary number of columns; Metric Retention Time Setting: Allows setting the retention time for metrics; Support for Time-Related Functions: Supports functions related to time (such as min, max, sum, count, mean, median, etc.) for convenient statistical analysis; Storage Policy Support: Can be used for data deletion and modification (InfluxDB does not provide methods for deleting or modifying data); Continuous Query Support: Automatically scheduled sets of statements that run within the database, combined with storage policies to reduce InfluxDB’s system footprint; Native HTTP Support: Built-in HTTP API; Support for Similar SQL Syntax: Supports a syntax similar to SQL; Support for Setting Data Replica Count in Clusters: Allows setting the number of replicas for data within clusters; Support for Periodic Sampling of Data: Writes data to another measurement, facilitating granular data storage. InfluxDB Docker Installation mkdir influxdb \u0026amp;\u0026amp; cd influxdb \u0026amp;\u0026amp; \\ docker run -p 8086:8086 -d --name influxdb -v $PWD:/var/lib/influxdb influxdb:1.7 docker exec -it influxdb /bin/bash enters the container, executes commands, and manually creates a database\nroot@bce0a55bbc72:/# influx Connected to http://localhost:8086 version 1.7.10 InfluxDB shell version: 1.7.10 \u0026gt; Execute commands in the interactive shell InfluxDB Database and User Creation Create database: create database jmeter_t2 View databases: show databases Switch to database: use jmeter_t2 Create user: create user \u0026quot;admin\u0026quot; with password 'admin' with all privileges View users: show users\n\u0026gt; show users user admin ---- ----- admin true If the user permissions for admin are displayed as true, the database setup is complete.\nGrafana When writing test cases, it was found that the chart visualization effect is not very necessary; the tps data from the interface can be observed when executed in the command line, and more importantly, we wanted to know the internal timing of the program.\nA simple deployment of the grafana console panel, importing a configuration file to connect with InfluxDB, was performed. The console supports filtering test results through tags; generally, only one InfluxDB database needs to be configured:\nApplication Name Test Case Name docker run -d --name=grafana -p 3000:3000 grafana/grafana:7.3.1 Due to the sampling interval in the web version, the calculated TPS and related values do not match the aggregated report from JMeter. Refer to this link for reference: https://www.vinsguru.com/jmeter-real-time-results-influxdb-grafana/\nThe documentation also describes how to customize the listener.\nEpilogue High-performance program patterns invariably are one-loop thread; any locks, enqueueing, and dequeueing will cause unnecessary performance loss. The time spent on core business logic is greater than the time spent introducing other code, concurrency can effectively improve efficiency; if the core latency is sufficient, be cautious about introducing other code. References JMeter Series - JMeter + Grafana + InfluxDB Real-time Monitoring InfluxDB Official Image Grafana Official Image JMeter Website To install Apache JMeter in CentOS7 ","date":"2020-12-22","language":"en","permalink":"https://ttf248.life/en/p/linux-setup-jmeter-testing-environment/","tags":["linux","jmeter","stress-testing","docker"],"title":"Linux Setup JMeter Test Environment","year":"2020"},{"categories":["Computer"],"content":"Production environment operating systems, with Red Hat and CentOS being the mainstream choices. The documentation includes links to two system lifecycles and shares experience upgrading from CentOS 8 to CentOS Stream 8.\nIntroduction In the current domestic environment, Red Hat and CentOS are the mainstream choices for production environments. After experiencing the retirement of Red Hat 6 two years ago, this record includes the official website links for the lifecycles of both systems.\nMain Content Red Hat Enterprise Linux Life Cycle CentOS Product Specifications Red Hat Enterprise Linux (RHEL) and CentOS are the mainstream choices for enterprise servers. RHEL provides stable support and update cycles, suitable for enterprise applications. CentOS as RHEL\u0026rsquo;s community edition, offers similar functionality and stability but without official support. Follow-up When publishing this article, I didn’t expect to update it two years later. Just a few days ago, I upgraded my daily virtual machine from CentOS 8 to CentOS 8 Stream. I can\u0026rsquo;t say much about what to choose in production – I prefer to keep the latest version in my local environment.\nCentOS 8 Stream is a rolling release version that offers faster updates and new features than traditional CentOS, making it suitable for development and testing environments.\n","date":"2020-07-21","language":"en","permalink":"https://ttf248.life/en/p/redhat-centos-lifecycle/","tags":["linux","centos","redhat"],"title":"Red Hat and CentOS Lifecycle","year":"2020"},{"categories":["The Seven Seconds of a Fish"],"content":"Let’s start with some tangential points, the differences between Chinese-style socialism and capitalism. From the mouths of the older generation, we heard that to get rich, you first needed to build roads. China\u0026rsquo;s infrastructure construction – these things are all funded by the state, and in a capitalist society, they would be contracted out. In remote areas, there’s no profit motive, so companies wouldn’t willingly take on those projects. Talking too much is getting off-topic, and ordinary people might feel that trade wars don\u0026rsquo;t have much impact on their lives. However, China’s high-end manufacturing has always been relatively weak. The IT industry I work in – memory, hard drives, CPUs, graphics cards – the core configuration of assembling a computer comes from factories abroad. These components account for 50% of the total cost, and high-end manufacturing is undoubtedly essential. The collision between China and the United States is inevitable.\nReferences Trade War Between the US and China Starting in 2018 Made in China 2025 Wikipedia 2018-2020 China–United States trade war (often referred to as the “China–United States trade war,” “US–China trade dispute,” “US–China trade friction,” or “US-China trade war”) was a trade war between the People\u0026rsquo;s Republic of China and the United States.\nThe trade dispute originated when U.S. President Donald Trump signed a memorandum on March 22, 2018, claiming that \u0026ldquo;China is stealing US intellectual property and trade secrets,\u0026rdquo; and under Section 301 of the Trade Act of 1974, imposing tariffs on goods imported from China totaling an estimated $600 billion. On July 6, 2018, the U.S. imposed additional tariffs of 25% on $340 billion worth of Chinese goods shipped to the United States. The Ministry of Commerce of China retaliated in kind with a 25% additional tariff on $340 billion worth of U.S. goods exported to China, including soybeans, the largest export product from the United States to China.\nThe two sides had temporarily reached an agreement to pause the trade war in May 2018 and issued a joint statement seeking reconciliation. However, the Office of the U.S. Trade Representative subsequently released its first list of tariffs on $500 billion worth of Chinese goods shipped to the United States on June 16, raising the existing 10% tariff to 25%. The China’s State Administration of Foreign Exchange (SAFE) then retaliated with equivalent measures, and the Ministry of Commerce of China also restarted anti-dumping investigations into various U.S. products exported to China. On July 6, the Trump administration formally implemented tariffs on the first list of $340 billion worth of Chinese goods shipped to the United States, marking the formal implementation of Trump’s trade policy towards China (the remaining $160 billion was subsequently added with a 25% tariff on August 23). The Ministry of Commerce of China stated afterward that \u0026ldquo;The United States violated WTO rules and launched the largest trade war in economic history.\u0026rdquo; The General Administration of Customs of China (GACC) indicated that China’s counter-measures were implemented immediately after the U.S. imposed tariffs.\nOn December 1, at the G20 Buenos Aires Summit, leaders Xi Jinping and Donald Trump agreed to hold a nine-month negotiation and suspend new trade measures during the negotiation period. After the deadline of March 1, 2019, the U.S. side announced significant progress and extended the suspension of new trade measures.\nOn May 5, 2019, U.S. President Donald Trump announced tariffs of 25% on approximately $200 billion, totaling $250 billion worth of Chinese goods shipped to the United States, which took effect on June 1. On May 13, the China’s State Administration of Foreign Exchange (SAFE) announced that tariffs on $600 billion worth of imported U.S. products would be raised to a range of 5% to 25%, starting from June 1. On June 1, the Office of the U.S. Trade Representative announced that the implementation date for tariffs of 25% on U.S. goods would be postponed to June 15, and SAFE stated that China’s tariff measures took effect as scheduled on June 1.\nOn June 29, leaders Xi Jinping and Trump held a meeting at the G20 Osaka Summit, agreeing to restart economic consultations, with the United States ceasing to impose new tariffs on Chinese products.\nOn August 1, due to concerns about China’s purchasing process of U.S. agricultural products, Trump announced on Twitter that tariffs of 10% would be imposed on the remaining $300 billion worth of all Chinese goods shipped to the United States starting September 1, 2019. On August 5, the Renminbi exchange rate against the US dollar fell below 7 yuan. The same day, the U.S. Treasury Department announced that China was designated as a currency manipulator. Subsequently, the Chinese government announced a suspension of purchases of U.S. agricultural products and announced tariffs of 10% or 5% on approximately $750 billion worth of U.S. goods, and resumed tariffs on U.S. automobiles and parts, while the U.S. side responded by increasing the tariff rates on its existing $300 billion Chinese goods to 15%, and its current $250 billion Chinese goods to 25% as retaliation, but these measures were subsequently shelved.\nOn January 16, 2\n","date":"2020-07-21","language":"en","permalink":"https://ttf248.life/en/p/us-china-trade-war/","tags":["trade-war","exchange-rate","manufacturing"],"title":"US-China Trade War","year":"2020"},{"categories":["Computer"],"content":"The author has long had an interest in building computers from a young age, and began to delve into hardware assembly after university. They recommended websites for comparing hardware performance and offered purchasing suggestions, including CPU, solid-state drives, hard disk drives, and memory frequencies. They also shared their experience and advice regarding hardware selection and important considerations.\nWonder – Unspeakable Ever since I was young, I’ve dreamed of building my own computer, but unfortunately, economic conditions didn\u0026rsquo;t allow it. Finally, after a lot of hard work, I reached university and built a laptop for portability. If I had to pinpoint a specific time when the idea started, it would be when I first began thinking about assembling computers at my hometown’s library. After all, it was a sizable city-level library, with not only an electronic reading room (though I never actually used it – it was billed by the hour) but also a magazine reading room, where I discovered magazines like Popular Science and Computer News. For someone who had limited exposure to computers, these were practically divine科普资料 (scientific popularization materials). When I read about players “doing dungeons” and “killing monsters,” I thought about building my own computer to do the same, acting as the main output. And when I saw “black technology,” I fantasized about replicating what was described in the books, hoping to achieve similar effects (regarding the use of hacking tools).\nEven though I had a heavy workload in high school, with my limited understanding at the time, reading and playing were both important. It could be said that we lived a \u0026ldquo;naive and carefree\u0026rdquo; life, using the excuse of going to the library to read as an alibi, and I would often carry a small bag and walk there. The city wasn\u0026rsquo;t that big, so it was generally a walk. Arriving at the library, I enjoyed the air conditioning, reading novels, comics, and game magazines, occasionally even delving into more serious books.\nIt’s easy for older people to forget things, and this is where the library sparked the initial seed. When I was in junior high school, relatives had assembled a computer, but I don\u0026rsquo;t know what it was used for back then. The operating system was Windows 2003, and there were built-in games like Paper Cards + Empire. We all thought about “outsmarting” each other to steal keys, playing games together with my cousin.\nWhen I entered junior high school, the school offered basic computer training, and later I transitioned to a computer competition concept. I even qualified for NOIP (National Olympiad in Informatics) once. Speaking of this, it’s worth mentioning the power of our alumni. The high school\u0026rsquo;s computer building was donated by alumni, including a computer teaching room + library. At that time, it was also the initial wave of China’s internet boom. School leaders supported participation in computer competitions, as several senior classmates had been admitted to key universities through computer science.\nI have never reflected on my relationship with computers like this way. It\u0026rsquo;s no wonder that after graduating, I stubbornly switched from automation to computer science – the seed had already been planted, and those within the circle didn’t realize it. Having encountered more things from a young age, I thought I was very skilled, but in reality, I only understood the surface level. My biggest advantage was the initial passion.\nHardware Assembly Browse through stores like Carda, Chiphell, and Zhihu’s computer assembly forums – newcomers can relatively easily put together a list of the components they need. After 2019, when purchasing CPUs with limited financial resources, prioritize AMD for higher performance.\nI recommend a commonly used hardware performance comparison website: https://cpu.userbenchmark.com/. You can compare prices with US-imported parts on Xianyu (a Chinese online marketplace). True experts can find great deals by buying secondhand on Xianyu – it’s significantly cheaper. If you\u0026rsquo;re not very familiar, I don’t recommend buying from Xianyu; I purchased fake memory myself, and while it hasn’t caused any problems so far, I’m not entirely sure about its reliability – the model and specifications don’t match at all.\nSN550 VS SN750 The difference between the SN550 1TB and the SN750 1TB is that they consistently read and write slower by a factor of two – one reads at 850MB, while the other reads at 1.6GB. However, for everyday use, there’s no noticeable difference because both support 4K equally. Of course, this refers to the 1TB SN550; speeds are significantly slower in sequential read/write operations with the 500G and 250G versions. In my opinion, if you\u0026rsquo;re not a spendthrift, buying the SN550 is sufficient – my main reason for not purchasing it wasn’t its sequential read/write speed, but rather that it only comes in a 1TB capacity, while the SN750 offers 2TB. For me, given the circumstances and without needing to expand further, my motherboard\u0026rsquo;s M.2 NVMe interface is more valuable than these SSD differences.\nBased on a consensus of online user feedback, purchasing an adapter board – a B150 motherboard can also support M.2 interfaces for SSDs.\nHard Disk Drive Selection Currently, the prices of hard disk drives are relatively stable. For users with large storage needs, it is necessary to select a suitable mechanical hard drive. Users who frequently download resources are recommended to choose enterprise-grade hard drives. Common ones include:\nWestern Blue Disc Seagate Exos Large capacity mechanical hard drives are recommended to be partitioned, and frequent download operations should be fixed on a specific partition. If bad sectors appear later, they can be concentrated in one partition, and the current partition can be discarded, which can effectively extend the lifespan of the mechanical hard drive.\nSeagate series official introduction Memory Frequency From a daily usage perspective, frequency will not have a significant impact on performance. Memory timings (also known as RAM timings) are four parameters that describe the performance of Synchronous Dynamic Random Access Memory (SDRAM): CL, TRCD, TRP, andTRAS, measured in clock cycles. They are typically written as four digits separated by hyphens, for example 7-8-8-24. The fourth parameter (RAS) is often omitted, and sometimes a fifth parameter: Command rate (command rate), usually 2T or 1T, also written as 2N, 1N is added. These parameters specify the latency (delay time) that affects the speed of random access memory. Lower numbers generally indicate faster performance. The final element determining system performance is the actual latency, typically measured in nanoseconds.\nWhen converting memory timings to actual latency, it’s important to note that they are measured in clock cycles. Without knowing the clock cycle time, it\u0026rsquo;s impossible to determine whether a set of numbers is faster or slower than another set.\nFor example, DDR3-2000 memory with a clock frequency of 1000 MHz has a clock cycle of 1 ns. Based on this 1 ns clock, CL=7 gives an absolute latency of 7 ns. A faster DDR3-2666 (clock 1333 MHz, each cycle 0.75 ns) might use a larger CL=9, but the generated absolute latency of 6.75 ns is shorter.\nModern DIMMs include a Serial Presence Detect (SPD) ROM chip that contains recommended memory timings for automatic configuration. The BIOS on the PC may allow users to adjust timings to improve performance (with the risk of instability), or in some cases increase stability (such as using suggested timings).\nNote: Memory bandwidth is a measure of throughput for memory and is typically limited by transfer rates rather than latency. By interleaving access to multiple internal banks of SDRAM, it\u0026rsquo;s possible to transmit at peak rates continuously. Increasing latency may be used to increase bandwidth. Specifically, each new generation of DDR memory has higher transmission rates, but absolute latency has not changed significantly, especially in the first-generation products on the market, which often have longer delays than the previous generation.\nEven with increased memory latency, increasing memory bandwidth can improve the performance of computer systems with multiple processors or multiple execution threads. Higher bandwidth will also boost the performance of integrated graphics cards that do not have dedicated video memory. References Memory Time Series Parameter Explanation ","date":"2020-07-18","language":"en","permalink":"https://ttf248.life/en/p/computer-assembly/","tags":["hardware","disk","desktop-pcs","memory"],"title":"Building PCs","year":"2020"},{"categories":["Computer"],"content":"Due to slow access to GitHub Pages from within the country, the author applied for a personal domain and purchased CDN acceleration services from a domestic cloud host provider. During the configuration process, the author encountered an issue where the www subdomain could not be accessed, which was ultimately resolved by deleting the generic domain DNS record and setting up a second-level domain separately. The author also shared the principles and configuration experience of CDN acceleration, as well as their attempts and lessons learned using reverse proxy with Nginx.\nBackground The website is hosted on GitHub Pages, and due to some well-known reasons, accessing GitHub Pages internally can be slow. Therefore, I applied for a personal domain name and purchased CDN acceleration services from a domestic cloud host provider. When configuring the acceleration service, I thought about my development machine, which has Docker, frp, k8s, and other services deployed on it – all with their respective dashboards. Following the principle of not wasting anything, I configured several reverse proxies, all using subdomains.\nWhen I was happily using these subdomains, I discovered that the www subdomain could no longer be accessed. In the Alibaba Cloud console, I had configured DNS to resolve both www.xiangtianlong.com and xiangtianlong.com, and hadn’t yet enabled CDN acceleration; at that time, both domains were working normally.\nWhen configuring CDN acceleration, due to a large number of subdomains, I enabled generic domain rules, which unified routed all traffic to the development machine. As a result, the www subdomain also went down – yes, you read that right, the “www” prefix was a subdomain. In reality, the website is deployed on GitHub Pages, and the development machine has no caching information for the site.\nAs for why the website wasn’t deployed on the development machine, it\u0026rsquo;s because it’s a static blog, paired with GitHub’s action to automatically integrate publishing – truly delicious!\nDomain Non-professional web development, the understanding of domains does not involve SEO or cross-origin issues. As a blog site, a bare domain easily highlights the blogger\u0026rsquo;s site, such as myself who uses Chinese pinyin as my domain name, and given that mobile access is now more prevalent, it’s preferable to input fewer characters.\nKeyboard shortcuts can be used on desktop to avoid entering “www” and “com”.\nCDN I\u0026rsquo;ve used both Alibaba Cloud and Tencent Cloud, and it’s easy for newcomers to get started. Tencent Cloud also has dedicated video explanations of the related concepts. The principle of CDN acceleration is similar to that of a JD.com warehouse: new products are pre-distributed to warehouses across China, and when delivery requests are triggered, they\u0026rsquo;re distributed locally.\nOrigin Address: The address where the original website resources are stored.\nCache file settings: Using F12 in your browser’s developer console to analyze static and dynamic resources.\nAll 0 days validity .php;.jsp;.asp;.aspx 0 days validity .jpg;.png;.js;.css;.woff2 1 day validity Tencent Cloud configuration rules:\nYou can configure up to 10 cache expiration rules. The priority of multiple cache expiration rules is bottom-first. Cache expiration time can be set up to a maximum of 365 days. Miserable Confession I had never used Nginx before, assuming that just searching for a website would reveal the configuration for reverse proxy. The result was quite confusing, and I spent half a day without even getting a 302 redirect to work. So, I decided to take a brute-force approach – deleting wildcard domain resolution patterns in DNS parsing and setting up individual second-level domains. Suddenly, I noticed that Alibaba Cloud DNS had a feature called \u0026ldquo;Display URL Redirect,\u0026rdquo; which worked perfectly as a 302 redirect.\nI set up the first second-level domain normally, and then when I tried to set up the second one, it didn\u0026rsquo;t work. I was starting to doubt my sanity. After waiting for a while, it suddenly started working – apparently, Alibaba Cloud DNS sometimes has hiccups with its DNS propagation.\nReferences Why are more and more website domain names not prefixed with \u0026ldquo;www\u0026rdquo;? What\u0026rsquo;s the difference between domains with and without \u0026ldquo;www\u0026rdquo;? Docker nginx reverse proxy setup ","date":"2020-06-20","language":"en","permalink":"https://ttf248.life/en/p/website-acceleration-and-domain-setup/","tags":["blog","domain","CDN","Nginx"],"title":"Website Acceleration and Domain Settings","year":"2020"},{"categories":["Computer"],"content":"This article introduces the basic concepts of Markdown and its applications in various software, recommends using VSCode as an IDE, and lists recommended plugins. The author shares their experience switching from Hexo to Hugo, emphasizing Hugo’s flexibility and customization capabilities. Finally, it provides some suggestions for quickly getting started with new technologies and shares a trick for resolving the issue of Hugo theme styles not updating.\nIntroduction Markdown A lightweight markup language that allows people to write documents in an easy-to-read and -write plain text format.\nMarkdown Detailed Markdown syntax will not be elaborated upon in this document. We recommend an ebook, click here. Many software applications on the market now support MD as a writing format. The csdn blog system has launched an online editor that supports MD syntax; the default article when first using it is an introduction to MD syntax, which I think is quite good. Evernote added support for MD notes in 2018, with various MD markers available in the shortcut bar, making it almost as easy to use as editing a regular article, and the overall interaction process is friendly to beginners.\nIDE Recommendations When writing this article, it’s already 2020 – you’ve undoubtedly heard of VS Code, after all, anyone thinking about using Git Page to build a blog system is an industry professional. In the early years, Sublime and Atom were also good choices. Thanks to two years of promotion by the open-source community, VS Code has developed rapidly and has gradually become the preferred choice for newcomers.\nThe relationship between Microsoft’s giant corporation and the open-source community has successfully transitioned from a state of division into a honeymoon phase: embracing open source. My company has also actively introduced the Java ecosystem in recent two years, meaning that in business development, Java\u0026rsquo;s ecosystem is currently very fragrant domestically.\nVS Code Plugin Recommendations All plugins have their own Readme files, introducing basic usage, core functions, and some authors even provide demo screenshots. Paste Image, combined with Hugo\u0026rsquo;s image plugin method, is very convenient for importing images.\nDon’t remember the shortcuts, open the VS Code shortcut management menu, search for “md”, read it several times; review it again to see the plugin usage instructions.\nHugo I switched from Hexo to Hugo, as I love tinkering – it’s just my nature! Ultimately, I couldn\u0026rsquo;t resist the urge to quietly write articles.\nHugo supports placing images and Markdown documents in a single folder. The Academic theme supports various article styles in its design. Various convenient customization extensions. academic The default website is exampleSite, and menu introduction uses the #component approach. It’s recommended to use url.\nThe URL pattern allows for single-page navigation when clicking on navigation links, rather than scrolling to the homepage. This is purely a matter of personal preference.\nStyle: Notebooks, Speeches, eBooks Flexibility: Customization of overall style and custom CSS styles This theme’s Chinese support isn\u0026rsquo;t fully complete; primarily from a visual perspective, the font sizes don’t align well with Chinese reading habits. However, Hexo’s development team is largely comprised of Chinese developers, which is an advantage over Hugo in this regard. Nevertheless, “you get what you build” – manually customize your browser elements. When locating an element to determine the CSS style name to modify, clicking Insert Style Rule Below allows you to easily obtain the node name even with nested CSS layers.\nIntroduce custom.css Introduce custom_js The theme’s built-in syntax highlighting settings can be found here: Official Link Conclusion The kids are complaining again, saying you talk in such a vague and unclear way, without mentioning any details.\nWhat I want to say is that with these things, you have enough to work with:\nOfficial Manuals Plugin Documentation When quickly getting started with new technologies, it’s recommended to first read the official website documentation, scanning through – not aiming for a single thorough reading. The results you get from search engines may not always be consistent with the latest version and could potentially mislead you. Reviewing a new book in the same way is also advisable: first look at the table of contents to understand what the author intends to cover, and sometimes it’s beneficial to read the introduction – particularly with translated foreign books, the preface often covers the core content of the book and its scope.\nEaster Eggs Switching the Hugo Academic built-in style settings and publishing to the site, the style didn\u0026rsquo;t change when accessed. A clever teammate already figured it out – clearing local browser cache solved the problem. I, being equally ingenious, used: F12 developer mode, switched to network, checked disable cache, refreshed, and voila!\n","date":"2020-03-31","language":"en","permalink":"https://ttf248.life/en/p/blog-ide-environment-and-ramblings/","tags":["markdown","hugo","academic","blog"],"title":"Blog IDE Environment and Ramblings","year":"2020"},{"categories":["Computer"],"content":"Use GitHub Actions to automatically deploy your Hugo blog to GitHub Pages and Gitee.\nBackground Introduction Yesterday while updating the blog, I discovered that the travis service was unavailable. Upon checking the travis webpage, I noticed the progress was stuck during source code retrieval, and a flash of insight occurred – I thought about GitHub’s previously launched action service.\nDue to being busy at the time and also needing to apply for access to use action, it has now officially gone live. With some free weekend time, I decided to try out a new toy?\nOfficial documentation can be found by entering the website yourself; this article won\u0026rsquo;t provide further reprints. If you’ve used Kubernetes before, you’ll find that the action YAML file configuration is very similar.\nRegarding introductory tutorials or Chinese introduction materials, I recommend searching for 阮一峰’s blog. There are two articles – the first introduces the basic syntax, and the second provides a practical case study.\n#### Content Required Knowledge Points - GitHub Secrets - Action Syntax Core jobs use existing components to complete, pushing to domestic Gitee uses command implementation, this command part is quite brutal, all are forced pushes, inherited from the logic used with Travis. ```yaml name: github pages and gitee pages on: push: branches: - hugo jobs: deploy: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 with: submodules: true - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: \u0026#39;latest\u0026#39; extended: true - name: Build Github and Gitee ## Single step can only write one run command run: hugo -b \u0026#34;https://www.xiangtianlong.com/\u0026#34; -d \u0026#34;github_public\u0026#34; \u0026amp;\u0026amp; hugo -b \u0026#34;https://www.xiangtianlong.com/\u0026#34; -d \u0026#34;gitee_public\u0026#34; \u0026amp;\u0026amp; ls - name: Deploy Github uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.BLOG_TOKEN }} publish_dir: ./github_public publish_branch: master cname: xiangtianlong.com - name: Deploy Gitee run: cd ./gitee_public \u0026amp;\u0026amp; git init \u0026amp;\u0026amp; git config user.name \u0026#34;TianlongXiang\u0026#34; \u0026amp;\u0026amp; git config user.email \u0026#34;tianlongxiang51@gmail.com\u0026#34; \u0026amp;\u0026amp; git add . \u0026amp;\u0026amp; git commit -m \u0026#34;Update TianlongXiang\u0026#39;s Blog\u0026#34; \u0026amp;\u0026amp; git push --force \u0026#34;https://xiangtianlong:${{ secrets.GITEE_PASSWORD }}@gitee.com/xiangtianlong/xiangtianlong.git\u0026#34; master:master #### Epilogue Based on the actions provided by the official market, currently there are quite a few supported playstyles. After building a Docker image, it’s no longer dependent on services offered by Docker Hub. Reviewing the Hugo issues, using GitHub Actions to automatically deploy Git Pages results in the final published website needing to be on the master branch. If deployed from another branch, the settings interface will prompt an error indicating that the deployed webpage has syntax problems. This is simply because Hugo’s source files are located on the master branch, and GitHub treats it as the Jelly blog\u0026#39;s source code for detection, unable to check and resolve any errors resulting in the error message. The solution is straightforward: move Hugo source files to another branch and publish static files to the master branch. ","date":"2020-03-29","language":"en","permalink":"https://ttf248.life/en/p/auto-integration-system-switch/","tags":["travis","github action","ci","blog"],"title":"Automatic System Switchover","year":"2020"},{"categories":["Repost / Share"],"content":"I hope that twenty years from now, I’ll be a cute old man, spending time with a cute old woman. I don\u0026rsquo;t seek great wealth or status; just to be healthy and strong enough to travel and explore.\nVideo Transcript Go to Youku Search, and no further links will be provided.\nTranscript I said that in 10 years, I’ll be a charming old man, and I will work hard to become a charming old man. The future of China must be one with good old men and good old women. Even if I am 60 years old in 10 years, I will be the youngest person in this world\u0026rsquo;s third kingdom.\nFrankly speaking, if everyone sees the 50-year-old Chinese man with this physique, it’s quite impressive. But behind this physique is a phrase I believe in: the more disciplined you are, the freer you become! When it rains, I want to go for a run; tomorrow afternoon, I will play soccer. At 50 years old, I can still play big games, and it\u0026rsquo;s not a joke. Moreover, I often play with professionals. But what’s behind this? It’s discipline. I spend my remaining days running, and people might find running very monotonous. The more disciplined you are, the freer you become. Because of my discipline, I can run freely, without listening to music – because I think my own breathing is the most beautiful music while running.\nI basically don\u0026rsquo;t run on a treadmill. And many people in Beijing experience severe smog; I run 5 days a week, and two days are left for the smog. Then, jokingly, I say it might be because I never stop. Every month, I draw one day of my running experience in my diary – at least 18 days each month, and when I run, they just flash by. When I run, I also take off my glasses, but more importantly, I still play soccer every week. My graduate students’ last lecture is always held at our home on that particular day, with a theme called “Fun.” I think fun is very important. I never deal with people who lack any joy or hobbies.\nI would rather avoid such people – they are too frightening; if you don\u0026rsquo;t have fun, you feel like you have nothing to enjoy. You like what kind of job? In early January this year, one of my graduate students wrote for China Weekly, and we had a special issue called “Looking Ahead.” Ten years from now, my graduate students will, at the end of each graduation year, write an essay for me – and I keep those essays. Then, ten years later, I’ll continue to develop them, and I\u0026rsquo;ll also write one as a 50-year-old to a 60-year-old; 60 is a distant land that I never thought of before, but it’s just another stop on my way to 20 – writing to my students who are 30. That’s like a love letter from spring to summer. But when I\u0026rsquo;m 50 and write to 60, it’s like autumn whispering to fall. Now, I’m writing to myself ten years from now, from the whole world, about my bed, a meal, and the company of my family – this is normal.\nBut what will I be at 60? My title is very clear: in this long article, I said that in 10 years, I’ll be a charming old man, and China wants to be charming not just because there will be more young people like citizens who become citizens, no longer just ordinary people; energetic young people, young people who understand rules. The future of China must be one with good old men and good old women. Currently, over 60-year-olds in China exceed 2.3 billion – and that number will definitely exceed three billion in 10 years, meaning that if you consider only the population over 60, China would be among the top five countries in the world, or even the third. Imagine how frightening that is!\nI don’t find it frightening. I wonder if you\u0026rsquo;ve seen online a table of the average life expectancy in various provinces and municipalities of China – Shanghai and Beijing both exceed 80 years, including men and women. Men naturally occupy a larger share of the female population. That means even if I am 60 years old in 10 years, I will be one of the youngest people in this world\u0026rsquo;s third kingdom.\nLooking to the future. If women retire at 55 with an average life expectancy of 80 years, and they continue for 25 years after retirement; if men retire at 60 with an average life expectancy of 80, and they continue for 20 years after retirement! You won’t do anything but dance square dances. And I can say that the older ladies and gentlemen who are dancing square dances today are cultural habits and entertainment styles brought to them by the times.\nTwenty - I was one of the youngest members of the team when I was 60 years old, and I should be what kind of person? Chinese painting says that at 60, your ears become attuned, and I believe I wouldn’t listen to anything then, always happy, still annoyed by things I shouldn\u0026rsquo;t mention, and even happiness would turn into unhappiness. More importantly, I need to figure out what to do for the young people!\nWhat should we do for good things? Don’t be lazy, don’t easily compromise, speak up when you need to oppose, because young people might harm their interests, can you stand in front of them and block their way? I often look at myself in the mirror now. My good friend, Tao Wei, passed away – he used to gather with us at our home, and once told me a true story. We collectively mourned together, and back then, the older generation like Chen Lao would hoard things at home, spilling everything out of the box, hiding 30-odd items under the bed. You need to tell him how much that piece of clothing cost – over 500 yuan – and then support it, lighting incense every day. Therefore, this generation of ours is used to fighting with our parents, arguing about knowledge and ideas. How much did we buy back for 700 yuan? But it’s risky. Once, Tao Wei bought a T-shirt for his father for over 400 yuan. That shirt was really good – how much did it cost? 99, I wore it. The next day, disaster struck. When he came back from work, he praised Tao Wei and gave him 400 yuan to buy four more shirts for me. After I wore it out, Zhang Shu Li Da Ye all thought it was great, and later said the risk of lying like this is very large. Don’t do such things in the future. I don\u0026rsquo;t want to mention a specific person – in the hospital orthopedic department, an elderly man broke his bone, and the most important reason was that he bought shoes from a street vendor. Of course, I’m only talking about this on a material level. Even when you get old, you still need spiritual life and curiosity, and you should be willing to shield young people from the wind and rain, live one day happily. I\u0026rsquo;m very curious and excitedly waiting for my 60th birthday to arrive. I think it’s the beginning of a beautiful time. Thank you all. ","date":"2020-02-15","language":"en","permalink":"https://ttf248.life/en/p/future-china-with-good-grandparents/","tags":["bai-yansong","speech-talk"],"title":"The future of China will undoubtedly be a China of good elders and good old people.","year":"2020"},{"categories":["Repost / Share"],"content":"The very common phrase information fragmentation – since graduating from high school, aside from the time I spent reading novels, I haven’t really taken the time to sit down and read a book quietly and attentively for a long time. Sometimes, looking back, after so many years of work, I still remember what I did each year? Often, by the middle of the year, I\u0026rsquo;ve forgotten a lot of things from the first half. Writing a blog is a good habit, even though much of what I write isn’t appropriate and doesn’t matter – it was originally written for myself to read.\nMy most loyal readers are myself.\nVideo Transcript Go to Youku Search, and no further links will be provided.\nTranscript Each of my own 18 years was like a gaze of anticipation and questioning, and each person occasionally asks themselves, \u0026ldquo;Are you the way you wanted to live back then?\u0026rdquo; I\u0026rsquo;m afraid that everyone now has countless circles, no friends, chatting all day long, no one to have a heart-to-heart conversation with, unlimited knowledge acquisition, yet far from wisdom. Everyone should use your 18 years to ask yourself, \u0026ldquo;Are you the way you wanted to live back then?\u0026rdquo;\nI think each of my own 18 years was like a gaze of anticipation and questioning. You can deceive others, but you cannot deceive your 18-year-old self. Is today you the way you were supposed to be at 18? I feel it\u0026rsquo;s okay. Today, material fame and many other things have been obtained, which is much more than what I thought when I was 18, but on the other hand, we are always on the road. When I was in journalism school at the Broadcasting Academy, I wanted to become a top reporter like Faraway, and today I\u0026rsquo;m still on that path. But this is exactly what many people say about Mr. Bai – \u0026ldquo;How have you stayed on CCTV because you want to be a good journalist?\u0026rdquo; News is still there. This is my 18-year-old gaze, so I think everyone occasionally asks themselves, “Are you the way you wanted to live back then?”\nThis is truly impossible to deceive others. This is my appearance at 18, but it’s gone in a blink of an eye. Twenty-eight years have passed. Every person who comes to Beijing to study will have such a photo album. In that era, the wrinkled suit on Tianmen Square, and the school badge pinned to the chest, because at that time there were few college students, no school badges, feeling very proud. Their hair was long back then, but they still liked their 18-year-old appearance. Many years later, I suddenly realized I was grateful for the things I faced at 18, because it silently shaped me. In 1986, on May 8th, I bought a selection of Misty Poems at Wangfujing Bookstore. That year, I listened to Cui Jian’s “One and All” at the Workers\u0026rsquo; Stadium. Today, I suddenly realized that my writing style was most influenced by it, including my personality being influenced by Misty Poetry, Rock Music, and Lu Guhong’s martial arts novels.\nWhat did you experience at 18? You can carry that with you. I especially want to know what the 18-year-olds today are experiencing? Are they being carved up like a knife chopping wood? What tools are they using? What kind of appearance are they shaping? I\u0026rsquo;m afraid that everyone now has countless circles, no friends, chatting all day long, no one to have a heart-to-heart conversation with, unlimited knowledge acquisition, yet far from wisdom, knowing nothing and seemingly everyone is talking about individuality. But as an observer, I find that today’s young people are very similar. What should I do? What should I let the 18-year-old experience? I really like 1986 because 1986 was the best way to solve 1966.\n1966 Cultural Revolution was ended by 76 in 1986, which had a degree of chance; it could only be ended by the enlightenment and awakening of human nature and the growth of every individual. This truly allows you to dig up the concerns you have. I think we still need enlightenment, we still need to fully understand human nature. No matter how much economic progress or changes China has made, if we don’t truly fill in the understanding of human nature, and then respond to the good side of human nature and control the bad side, there will still be many things that worry us in the future. So my 18 years were also this era\u0026rsquo;s 18 years, it\u0026rsquo;s gone too far, don’t forget why you started in the first place, now condensed into four big words: “初心”.\nSo I think no matter how far you go, everyone should use your 18 years to ask yourself. So taking a photo at 18 is good, and often take it out to ask yourself. What others say doesn’t matter? It\u0026rsquo;s too difficult to deceive yourself. I just said to today’s 20-year-olds, “You should always let your 18-year-old be the eyes that watch you.” I also mentioned earlier that in my twenties, you should try many doors, because you don’t know which one is most suitable for you\n","date":"2020-02-15","language":"en","permalink":"https://ttf248.life/en/p/my-18th-might-be-different/","tags":["bai-yansong","speech-talk"],"title":"My 18 years old is probably different from yours.","year":"2020"},{"categories":["Repost / Share"],"content":"This excerpt recounts the author’s perspective on the profession of journalism, emphasizing that reporters should possess a social conscience, a broad knowledge base, and perseverance. The author also shares their reflections at age 50, including maintaining curiosity, achieving balance between material and spiritual pursuits, and contemplating the future.\nVideo Transcript Go to Youku Search, and no further links will be provided.\nTranscript The best journalist is first, having a social conscience; second, possessing knowledge; and third, being able to run long distances. I couldn’t handle running 100 meters – I ran it. I believe these three things combined, people expect the safety concerns surrounding vaccines to be completely resolved, just like with the melamine scandal. We always move forward in a logic loop of problems arising, solving problems, and completely resolving them. Otherwise, what is there for a journalist to do?\nTranscript I believe the best journalist first has a social conscience, second has knowledge reserves, and third can run long distances – I’ve outrun the 100 meters, so it’s no problem. I think these three things combined, at 50 years old, you’ll understand that I seem to be well-suited for journalism. I\u0026rsquo;m naturally intertwined with China’s 40 years of reform, and on my 30th birthday, standing by the banks of the Songhua River, when I was 40, my birthday coincided with the 2008 Olympics, and I came out of the Olympic broadcast in which I went in. At 50 this year, as China commemorates 40 years of reform and opening up, there’s certainly a corresponding connection – whether the “Great Era” is at forty or China’s reform is at fifty-five?\nI believe that after walking through 40 years of road, China has already given people enough in terms of material things, and to the country enough. However, anxiety and confusion have increased, not decreased. We thought we were strong and wealthy, so everything was OK, but we discovered that material wealth is just a foundation; it’s difficult to become spiritually rich and truly a great power. The United States is already attacking your high-tech, we need to attack agricultural products. There\u0026rsquo;s always been a saying in the world: \u0026ldquo;It\u0026rsquo;s hard for second place to be achieved!\u0026rdquo; How many Second Place countries has America fixed? Therefore, we must go through a long period of time to transform “not one” into surpassing ourselves. I can’t get everything.\nI was fortunate that I started doing television at 25, first from figure interviews, and I contacted hundreds or thousands of figures with various halos. At that time, young people thought that these halos must make them very happy, but when they got closer, they found no, the halos have little to do with their happiness, and sometimes they are inversely proportional. Recently, I just finished reading about Guo Moruo’s last 29 years – Guo Moruo barely escaped persecution, serving as Deputy Minister of State Council, Vice Chairman of CPPCC, Vice Chairwoman of National People\u0026rsquo;s Congress, etc. But his two sons committed suicide, and the other may have been thrown to death from a building? Would he be happy?\nWhat do you use to measure happiness? When you are in your sixties, two of your sons leave you in a few years; even if you’re a Deputy Minister, can you be happy? Many famous paintings can make people happy, and spending many years safely is enough to make you happy. What do you want? So I think looking at people is the best mirror. To say something more important, I think much of our anxiety now comes from thinking too much and reading too little books. This is Yang Geng’s reply to a young person – if you don\u0026rsquo;t read books, you rely on fast food; you pick up a mobile phone and plan to find a miracle pill. How can that be? I learned cleverness through the slow process of more and more books; subtraction comes from reading more books.\nTherefore, I don’t expect everyone to achieve it, but I hope the proportion increases – more and more Chinese people can read themselves better in books, which is the most important thing. No one sits on the ground and looks up at the stars, trying to figure out everything. I can\u0026rsquo;t do that. But I can look in a mirror. A few years ago, when a BBC news anchor came to Beijing, claiming to be the “most awesome” news anchor in BBC, he had someone organize a dialogue between him and a Chinese news anchor; we talked. That guy asked me during the conversation, \u0026ldquo;What do you think BBC should learn from CCTV?\u0026rdquo; I first made a joke and said, of course, they should first learn Chinese.\nNext, after making a joke, I said, “I think BBC most needs to learn from CCTV is their curiosity about this world.” We’ve been observing the world with great curiosity these years as we quickly reach out to the world; we have more than 70 correspondents now, and we feel that when a student sees something new in foreign countries, he feels very curious. We carry a huge sense of curiosity and observe the world, while BBC has already considered Britain itself as the world. You don’t need to be curious anymore. The brother slapped the table and said, “What we lack is this thing.” In 2007, when I interviewed a Japanese writer, he told me, \u0026ldquo;Japan\u0026rsquo;s country besides lacking hope, has everything else.\u0026rdquo; Later I realized that this sentence was really deep; from another angle, ten years ago, I thought China Okay, here’s the English translation of the provided text:\n“To be honest, I\u0026rsquo;m very worried that China will one day end up on the downside – feeling truly impoverished even when everything is available. I fear that by the time I’m 50, I’ll become a person who, despite having all material comforts, is incredibly poor. The problem in our reality is that there are many highly educated people with no culture, and many impoverished individuals with countless numbers on their bank accounts. That\u0026rsquo;s really what\u0026rsquo;s wrong with this era. True poverty isn\u0026rsquo;t frightening because there’s a forward direction and hope. This is why I say that a lack of morality and human failings are the root cause. Therefore, I believe scientists invented so much not because they initially carried great missions, but out of curiosity.\nI want to be able to figure it out myself. So I\u0026rsquo;ve always encouraged myself to be curious, especially around 50 years old. That’s why I’m happy now. One thing that bothers me is persistence – as you were saying you’re still persisting. I said don’t say that persistence leads to death. In the past, we used to say ‘persistence equals success,’ and ‘China football will persevere even during the black minutes,’ or ‘persevere,’ but it loses its fun and method, so we rely on perseverance. Sometimes persistence is important, but often it has an opposite side. I’m afraid that when I do something, like chatting with people, I\u0026rsquo;ll persist in finishing what I started – which is now too late for my time, but I’m curious to see how these conversations will turn out.\nI give myself a small keyword and engage in conversation with others. At 50 years old, as long as you can still maintain a great deal of curiosity, there\u0026rsquo;s no problem. I like all fun things, but not necessarily the most popular things today. Trendy terms change quickly – do you remember some of them? Will a media outlet on the internet 10 years from now become a traditional media outlet? So fun things always have their own intrinsic appeal. I respect everyone’s preferences; there must be a reason behind it, but when viewed over the long term, we see that Chinese people most enjoy playing mahjong. If you also like eating fast food, then restaurants serving large meals will naturally decline.\nMany things aren\u0026rsquo;t just about expressing an emotion and moving on. How much fragmented reading do you get from your daily mobile phone use? How much longer-form reading do you have? But this is also a process – the mobile phone is becoming our handcuffs. So, seeing shorter content more often leads to short-sightedness. However, I don’t worry about ‘content is king.’ It will always return. You won\u0026rsquo;t keep entertaining yourself until your 40s, like I see teenagers drinking soda and telling them to drink less, but you know they will still drink it. On the other hand, I’m optimistic – he’ll eventually return to a tea-drinking lifestyle. This is the life of a Chinese person.\nIt\u0026rsquo;s normal, but I hope the transformation will happen faster. We just express an emotion, and there are fewer investigative reporters now. You don\u0026rsquo;t read investigations. Thank you everyone.”\n","date":"2020-02-15","language":"en","permalink":"https://ttf248.life/en/p/what-kind-of-journalists-does-society-need/","tags":["bai-yansong","speech-talk"],"title":"What kind of journalist does society need?","year":"2020"},{"categories":["Repost / Share"],"content":"The supplementary reader responses were mostly hastily written in 2021. The time it took to transcribe Wang Yi’s speeches at the beginning of the pandemic was still when things were just starting – don\u0026rsquo;t say twenty years later, or even a year or two later; the world is always beyond people’s expectations. Now that the epidemic has ended domestically in China, the overseas ones are still making a fuss. Regarding football, Chinese national team played quite well over the past few years; the coach dared to give them free rein and attack, which was much better than when they were just starting out and accompanying Grandpa to watch games was somewhat interesting. What kind of experience is it that a national team’s game makes even an old man unwilling to change channels?\nVideo Transcript Go to Youku Search, and no further links will be provided.\nTranscript Are you still curious about Chinese football? Curious, very curious, what could be the difference? So you find that Chinese football plays badly because everyone is afraid to lose the ball in their own area and pass it to others, leaving themselves out; there\u0026rsquo;s no such way of playing.\nOf course, this is just one of many small reasons. When talking about 20 years of football, 20 years from now China’s football seems so distant – the first expansion became 48 teams, and China might go or not go; the best age for a national team is 26-30, so 20 years later, those children aged 6 to 10 will be considered optimistic, but 20 years later it’s definitely going to be fine. When I mention children aged 6-10 today, you immediately look serious. Therefore, cause and effect – what are we planting today? What will grow if we plant soybeans today? We almost planted soybeans that would make the national team play in the league, and what would come out of it? Whoever initiates this action will be prepared to be dismissed; this goes against the rules, so I didn’t think about it too much.\nBut you should really think about those children aged 6-10 today – are they playing football? If you know what Chinese football will be like in 20 years…\n","date":"2020-02-15","language":"en","permalink":"https://ttf248.life/en/p/china-football-in-20-years/","tags":["bai-yansong","speech-talk"],"title":"What will Chinese football be like in 20 years?","year":"2020"},{"categories":["Repost / Share"],"content":"Here’s the translation:\n“To do things properly, first and foremost, you need to have a clear conscience. This allows you to sleep soundly, without minor ailments or major issues. It\u0026rsquo;s best to avoid making mistakes in the first place. If you do make a mistake, it should be about trying to rectify it, not concealing it or hoping to forget it yourself – humans are also capable of excellent memory. Inner peace is the destination; being able to answer your own questions with integrity allows you to live more lightly.”\nVideo Transcript Click here to view the original video link. If there is any infringement, please contact the author to remove this text; this document is solely for translating the text transcript.\nTranscript I have eight words to say that are quite heavy, and I feel we’re currently experiencing a moral deficit, a depletion of humanity, and the times are constantly presenting problems that require solutions – a completely resolved logical cycle forward. You need patience to wait for its shuffling. For a country like China, many things are a slow shuffling process, so don\u0026rsquo;t be pessimistic about change; it\u0026rsquo;s being shuffled.\nThese past few days, China has been battling two typhoons: one was intangible, and the other was tangible. The intangible typhoon is the vaccine, which is impacting our inner security dam. The other typhoon rarely landed in Shanghai, and then caused trouble for Beijing and Tianjin – a rare occurrence over several decades. This is an aside; next, you need to consider whether you can improve yourself, whether you’ve undergone significant changes, and whether you have many answers. If the surrounding environment remains unchanged, will you be happy? I have eight words to say that are quite heavy: I feel we currently have a moral deficit and a depletion of humanity – this is the biggest deficit and the greatest loss at present.\nHowever, people expect the vaccine’s safety risks to be completely resolved. This is like the case with melamine milk powder, so sometimes you need to look at history and understand that you know about the establishment and formation of the US Food and Drug Administration, which is closely related to the initial unsafe milk and dairy products. The Sanlu Milk Powder incident forced China to undergo significant changes in the dairy industry. While vaccines are not happening one after another, I hope this time it’s a halt. You need to know that times always present problems, solve them completely – this is the logical cycle forward; otherwise, what do reporters do? What do citizens do?\nTherefore, I believe that each of us can do is to be concerned. But the problem is that Chinese people are easily forgetful, like I just said, after bumping into someone’s car, we stop on the side of the road and run away; no one blocks us. Our neighbors and colleagues have a large proportion of these kinds of people. So we need to change slowly. And as ordinary citizens, what we can do is to pay attention and not forget. I don\u0026rsquo;t think it’s a lack of something; when you’re hungry and cold, you talk about ideals all the time – that doesn’t have persuasive power. But when he’s full and warm, he turns himself into China’s number one country for diabetes and high blood pressure, etc., you realize that Chinese people start running and dieting, and you ask the ladies present here, who hasn\u0026rsquo;t experienced the hardship of not being able to lose weight because they didn\u0026rsquo;t eat a good meal? This is a small change.\nWe are talking about the spiritual level, which must be the same principle. When you’re full and warm, you start running and dieting, then your spiritual needs will gradually increase. For example, I used to smoke, but after I started running, I unconsciously found that I hadn\u0026rsquo;t smoked for 20 days. I haven’t smoked since. Of course, I wouldn’t deliberately say, “I completely quit smoking,” because it feels too ritualistic; it doesn’t rule out occasionally smoking two or three cigarettes during the year. When your lifestyle changes, many things will change with it. I think for Chinese people, you need patience to wait for its shuffling.\nMore and more people feel unhappy and unwilling to indulge themselves. Although depression is increasing, on the other hand, isn’t there also an increasing number of people seeking positive ways to live? At this time, spiritual things will grow. Don\u0026rsquo;t be pessimistic; look at the same thing in different ways. I often see drivers cutting people off in traffic, and I feel frustrated. But then I realize that the queue on the other side is longer than before – this is how it is. You are sitting here on a rainy evening, willing to chat about useless things, isn’t that fun?\nThis is also a transformation; therefore, many things need to be thought of in a different way. Of course, I think there will be more and more things to grow in the future, such as when you start a business, who doesn\u0026rsquo;t start a business? Everyone\u0026rsquo;s life is starting a business. Su Shi wasn’t starting a business? Li Bai wasn’t starting a business? - Data Mining\nDeep Learning Neural Network Here’s the English translation of the text:\n“There will be countless failures throughout a lifetime, and ultimately, creating your own brand is what matters. Most failures don\u0026rsquo;t matter if you don’t create them, as long as you live a life full of flavor and believe it’s worth it. I feel that China particularly lacks a good value system: failure is another form of success. People only accept the successful outcome, but failing well is also a success – they don’t accept this.\nThat\u0026rsquo;s why I find it difficult; you see many reasons why Chinese football isn’t playing well, and one of them is that everyone is afraid to lose possession and pass it to someone else. There’s no such strategy. Of course, this is just a small part of the problem. As I get older, at 30 years old, writing about the preface and happiness doesn\u0026rsquo;t come quickly; now at 50, there’s some urgency because time is passing too fast, and you expect many things to become reality. But on the other hand, I understand that for a country like China, many things are a slow shuffling process. You see older generations – some were once nothing more than traffic lights, but occasionally you\u0026rsquo;ll see children pulling their fathers along as they change. They’re changing and being shuffled; so I think you need to be patient.”\n","date":"2020-02-15","language":"en","permalink":"https://ttf248.life/en/p/moral-deficit-humanity-loss/","tags":["bai-yansong","speech-talk"],"title":"Ethical deficit, erosion of humanity","year":"2020"},{"categories":["Repost / Share"],"content":"In general, the country is getting better and stronger, richer – and that’s without diminishing the importance of individual vanity. Looking back from the 1990s to now, within the families I’ve encountered, people\u0026rsquo;s lives have undeniably improved significantly. Simultaneously, the number of wealthy individuals has increased. As market-oriented economic development inevitably leads to widening income inequality, issues like class solidification and blocked upward mobility are prevalent globally.\nWhat is often discussed – such as rigid social strata and limited opportunities for advancement – are common problems worldwide. However, it’s important to acknowledge the Communist Party\u0026rsquo;s contributions to people’s basic welfare and social security, something everyone should take note of. Life will continue to improve; if you don’t want to buy a house, you can rent one. There are still inequalities in educational resources for children, requiring choices between better job opportunities, improved work environments, or more time with family. Don\u0026rsquo;t impose your own ideas on others, including your children and family members. Sit down and talk it through – life will inevitably get better.\nVideo Transcript Click here to view the original video link, if there is any infringement, please contact the author to remove this article; this text is only for the translation of the transcript.\nThirty Years Old I’m now exactly 50 years old this year, and in the past I never thought about it; I felt that this was an old man. Now I realize it\u0026rsquo;s truly an old man – this is what I looked like at 30. When I was 30, I didn’t feel very young, good-looking, and when I was 50 years old, looking back, it’s not bad; the biggest life lesson at 30? Looking back. I think it\u0026rsquo;s subtraction – the key word is subtraction. Somehow, \u0026ldquo;painfully happy\u0026rdquo; is also a kind of subtraction, letting you experience and write down many things, then leave them there on a new blank sheet, or running; but for me, at 30, I really feel that whether it’s about myself or reminding others, subtraction is very important.\nI\u0026rsquo;m currently guiding college students from China Central Television (CCTV), and I often remind them to \u0026ldquo;go all out\u0026rdquo; to add before they turn 30 – to try things, you don\u0026rsquo;t know what kind of possibilities you have, you don’t know what opportunities fate will give you. It’s not about knowing; but some people work hard in their twenties, adding everything, but forget to stop when it’s time for subtraction. I think 30 is a very important period in life – after doing a series of additions and running around everywhere, you need to do a significant subtraction; otherwise, it\u0026rsquo;s too late. Why do you need to subtract? Not everything suits you, not everything is suitable for you; you should do all things, but not necessarily all things.\nHow far can 8 lines of rope hold you if they’re tangled? By the time I was 30, I had been promoted to a full professor – in other words, academically speaking, it\u0026rsquo;s called a professor; as for journalism, it\u0026rsquo;s a senior journalist. I was promoted at 29, and this kind of thing is rare now, but I started to feel a huge confusion when I did the Sydney Olympics in 2000. I suddenly felt that everything wasn’t right. I had to ask myself, “What exactly do you want to do? Which things should be discarded?” That year, I made an important subtraction – I stopped my show for a year, without appearing anywhere, and at that time people told me, \u0026ldquo;As a host, if you don\u0026rsquo;t appear on screen for a month, it’s okay; if you don’t appear for six months, no one will remember you.” I said, “My face is really cheap.”\nThat year, I started to develop new programs. This was after finishing “Painfully Happy” in 2001 – I stopped for a whole year. Everything I see today is a reflection on that time of subtraction. At that time, I could do many things – I could do sports, I could do E (likely referring to the internet), I could do many other fun things, and be a producer; but I said no, I realized I could only do news, and I should do news most of all. Then I was the producer for three programs, and I quit them overnight, and that’s what I am today. I became simpler. Just recently, I was chatting with a colleague, and I said, “When I was in my 30s, I made a very important decision – not just because there were many things I could do, but I felt like I was just doing news; this deep well is something that might promote you to deputy director; I refused it, and returned to a normal level.”\nNow, I’m a central television station\u0026rsquo;s senior editor – not someone who graduated from university (undergraduate). You know our system, but I refused. I wanted to see how far a bachelor’s degree could go, and why a bachelor’s degree shouldn’t constantly learn and take students as assistants? Yes, now I have 11 students under my guidance, this is the result of subtraction. Of course, it\u0026rsquo;s a reflection looking back. It’s also easy to feel in your youth that everything should be obtained – if anything hasn’t been obtained, if something has a defect, you’ll feel very uncomfortable.\nPlease don’t learn to subtract yourselves; when you’re about to turn 30, at 28, when I saw the Olympics in 1996, I came up with a sentence: “Defect is an important part of “The moon is best when it’s not yet full. But for ordinary people, it will always be seen as a flaw, not perfect enough, not reaching the extreme. The worst way to ruin someone is to make them pursue perfection and reach the ultimate goal.”\nFlower Not Fully Open\n“This world isn’t like that; the most wonderful time is when the flower hasn\u0026rsquo;t fully bloomed. When it’s full, it’s close to falling; when the moon starts to become full, it’s close to becoming a waning crescent. Therefore, I think this was a very important boost and inspiration for me at 30. 40 wasn’t as beautiful then. But I felt relaxed. More free. Why not stop dressing in suits and ties, why not always be black and white? Let\u0026rsquo;s start asking about happiness?”\nForty Years Old The Chinese say that 40 is not confused, while 30 is about subtraction. 40 is about confusion, not wisdom. I think in today’s era, 40 is likely the most confused age. My midlife crisis started surprisingly early, around thirty-six or seventy, when I began to question whether everything I had done was valuable and meaningful. I wondered what happiness I truly desired. This book was born out of this confusion – you\u0026rsquo;ll find that at 30, many of your happiness goals are tied to material possessions. “Thirty and established” refers to having your education firmly in place. You need a car and a house; otherwise, your mother-in-law won’t consider marrying off your wife to you—it’s very materialistic. However, \u0026ldquo;40 is not confused\u0026rdquo; is difficult to achieve. I think ancient people had longer life expectancies than we do now, so they condensed 40 years into one, hence the lack of confusion. I\u0026rsquo;m currently 40 and feeling confused, and material things haven’t brought me happiness as I thought they would. Similarly, when many people ask me at 40, “Are you happy?” My book title is \u0026ldquo;Happiness Waves,\u0026rdquo; which represents a question—it reflects my inner turmoil. The emergence of the midlife crisis: at 40, you need to answer yourself many questions, talk to yourself frequently, and read extensively to find answers. I’m fortunate that when I was thirty-six or seventy, I entered the world of the Tao Te Ching. In White Talk, I already discussed this; at 40, if your surroundings don\u0026rsquo;t change, especially the soft environment – if you can stroll out of the house with a good mood and encounter countless red lights—buying something is often fake, getting vaccinated is questionable.\nI said that recently China has been battling two typhoons, one visible and one tangible. The invisible typhoon is vaccines, which attacks our inner security dam. The other typhoon, Chinese typhoons rarely land in Shanghai – this is a tangent; next, you need to think about whether you can focus on your own well-being. If your surroundings don’t change, will you be happy? I have an eight-character idiom that I find quite heavy: we are currently experiencing a deficit of morality and a loss of humanity—this is the biggest deficit and loss at present. Recently, I witnessed two cars colliding; it wasn\u0026rsquo;t too serious. The responsible party was because he had stopped on the side of the road, and the other driver was preparing to stop. But the car in front sped away without stopping him. Is that a responsible father? Is that a responsible son? Never mind how he would be a responsible citizen—he might even be your colleague. This is the deficit of morality and loss of humanity, which inevitably affects you. No matter how great a person you are, unless you haven’t left your home, it doesn\u0026rsquo;t prevent your children from getting vaccinated, or sending takeout that may have problems!\nTherefore, how can Chinese people learn to transform from an ordinary citizen into a citizen—this might be at my 40, both asking myself and posing an important question to society.\nIf 30 is about subtraction, 40 is about confusion, I think 50 should be about curiosity. 50 is awkward; you’re neither in the village nor out of it – you can attack if you go forward, retreat if you go back, and blend in if you stay put. If you lie down for ten years on something you\u0026rsquo;ve achieved, perhaps until retirement, that seems possible.\nRecently I read a book that said that truly successful entrepreneurs in Silicon Valley are often older—50s or 60s. This is different from our concept. How can China stop treating entrepreneurship as a young career—just like how China doesn’t treat youth volunteers as youth volunteers. Last week, I did a program to recruit retired primary and secondary school teachers; they receive a subsidy of two or three hundred thousand yuan per year and go teach in rural areas – and must be excellent. This is truly opening the door for retirees to find new employment—of course, it’s not just charity, but getting back to 50 is still a distance away. How do you move forward?\nFifty Years Old More importantly, for a 50-year-old person, there are two challenges: the first is yourself – are you still curious about many things? What is your outlook on life? I think my biggest gain at 50, or the way I’m living now, is to treat every today well. Twenty years old tends to live in tomorrow, and at 50, it\u0026rsquo;s easy to dwell on yesterday. But I try to restrain myself, neither living in tomorrow nor in yesterday; I treat every today well. A 50-year-old shouldn’t always say “we’ll talk about it tomorrow” or “it was better back then!”\nLooking back now, I realize I was young once too, I had so many hair, so I should cherish every day of today, because when you look back two years later, it\u0026rsquo;s best to see yourself as you are.\nJust like Shen Shing said, \u0026ldquo;When my legs couldn’t walk anymore, I sat in a wheelchair and constantly reminisced about the time when I could run and play basketball. Every day was filled with pain in my memories.\u0026rdquo; Years later, I developed bedsores on my wheelchair and felt miserable. At that time, I always remembered those peaceful moments of sitting quietly on the wheelchair. After even more years, I got kidney failure and had to go dialysis. At that time, I would always remember the days when I only had bedsores on the wheelchair. If I hadn’t reached the point of treating every today well at 50, those next 50 years would have been wasted.\nFifty Years Old I actually feel that it’s not until you reach 50 to truly understand this principle; you should grasp it in your 30s or 40s, as all things are easily missed if you wait. Whether it\u0026rsquo;s a meal during a trip – if you don’t eat it, you can still have it thirty years later, and even then, it might not be the same taste. Therefore, I believe treating every day with kindness is my first feeling at 50.\nThe second point is curiosity. I’ve realized that I can stop being curious about many things at any time, because I\u0026rsquo;ve seen so much and experienced so much, but I encourage myself to remain curious. So when I do a lot of things now, I approach them with a sense of curiosity – can you hold your phone up for a shot? Yes, you can. You can do live reporting, attend seemingly large and solemn conferences, and even make the connection easier. It’s more fun and makes a bigger impression. You can then use new media to disseminate it. I believe curiosity is the most important driving force for human progress. Why shouldn\u0026rsquo;t it be the most important driving force for individual progress? A nation will wither if it loses its curiosity. On a broader level, 50 is an important test. What kind of vested interests do you become at forty or fifty years old in China? I’m very worried that many people around me had dreams when they were young and went to achieve them, but once they achieved their dreams and became vested interests, they turned into those who blocked others from achieving their dreams, right? They would suddenly treat young people and things in the way they used to dislike.\nTherefore, several years ago, I started recruiting one graduate student each year as a volunteer, and they’ve stayed for two years; now five groups have graduated, with 55 pure graduate students. I believe it\u0026rsquo;s a happy thing to become a vested interest – you have certain insights, you can also guide them. After every class, I invite them to dinner, which doesn’t cost much. But this is what a good vested interest should do: a vested interest can be two aspects—one is to pave the way again. I once said that I don\u0026rsquo;t want to say thank you too often to those who helped me, because I want to repay them tenfold with new young people. This is how I express my gratitude.\nIf you’re constantly saying “thank you” and then become a blocker… The next thing is to pave the way for others. I hope that in China, whether it\u0026rsquo;s material, economic, ideological, or cultural, all vested interests – when you become one, what should you do? Yesterday, someone was pushing a cart; today they’re blocking the train. This has happened throughout Chinese history. It won’t be like this; sometimes it will even be worse, so I call on all vested interests to return to how they felt when they were young – to do things as they did then. Perhaps I wasn\u0026rsquo;t good enough, but I thought about it, did it, and said it.\n","date":"2020-02-14","language":"en","permalink":"https://ttf248.life/en/p/about-time-and-books/","tags":["bai-yansong","speech-talk"],"title":"Regarding time, you need to read many books to find the answers.","year":"2020"},{"categories":["Computer"],"content":"A custom allocator can improve performance, increase memory utilization efficiency, and address the issue of frequent, small memory allocations.\nAntecedent Recently, I\u0026rsquo;ve been working on the development of network data packets, requiring frequent allocation and release of small blocks of memory. Initially, I considered using a memory pool, reviewing several existing ones and discovering this: https://github.com/cacay/MemoryPool When looking at the interface, I was quite puzzled by how the memory pool\u0026rsquo;s implementation was a bit strange. The MemoryPool implementation logic involves allocating fixed-size memory blocks. Having reviewed Boost’s memory pool interface, it provides a template that is instantiated when used. Fortunately, this library already had an article describing it, mentioning the concept of an ‘allocator’.\n#### [wiki](https://zh.wikipedia.org/wiki/%E5%88%86%E9%85%8D%E5%99%A8_(C%2B%2B)) In C++ programming, an allocator is a key component of the C++ standard library. The C++ standard library defines various data structures commonly referred to as \u0026#34;containers\u0026#34; (such as linked lists, sets, etc.). A common feature of these containers is that their size can be changed at runtime; therefore, dynamic memory allocation becomes necessary to achieve this. The allocator is used to handle memory allocation and deallocation requests made by the containers. In other words, the allocator encapsulates the low-level details of memory management for Standard Template Library (STL) containers. By default, the C++ standard library uses its built-in generic allocator, but programmers can customize allocators to replace it as needed. The allocator was originally invented by Alexander Stepanov as part of the C++ Standard Template Library (STL), with the intention of creating a mechanism that would \u0026#34;make the library more flexible and allow independent use of low-level data models,\u0026#34; and enable programmers to utilize custom pointer and reference types within the library; however, when the STL was incorporated into the C++ standard, the C++ standards committee realized that complete abstraction of the data model would result in unacceptable performance penalties. To compromise, restrictions on the allocator were made more stringent, and compared to Stepanov\u0026#39;s original vision, the degree to which the current standard describes allocators is greatly limited. Although customization of the allocator is somewhat restricted, it is still needed in many cases, typically for encapsulating access to different types of memory spaces (such as shared memory and reclaimed memory), or for improving performance when using a memory pool for memory allocation. In addition, from the perspective of memory usage and execution time, in programs that frequently perform small amounts of memory allocation, introducing a dedicated allocator can also yield benefits. - Data Mining - Deep Learning - Neural Network #### [Usage Requirements](https://zh.wikipedia.org/wiki/%E5%88%86%E9%85%8D%E5%99%A8_(C%2B%2B)) The primary reason for defining custom allocators is to improve performance. Utilizing a dedicated custom allocator can increase program performance, or improve memory usage efficiency, or both [4][8]. The default allocator uses the `new` operator to allocate storage [Reference 5], which is often implemented using the C language heap allocation function (malloc()) [9]. Because heap allocation functions are optimized for occasional large memory allocations, the default allocator generally works well when allocating memory for containers that require a single large memory allocation at once, such as vectors and doubly-ended queues [8]. However, for associative containers and linked lists that frequently allocate small amounts of memory, using the default allocator typically results in low efficiency [4][9]. In addition, the malloc()-based default allocator also has many problems, such as poor reference locality [4], and may cause memory fragmentation [4][9]. In short, this section (…)(like) is a “Dream” speech for this standard regarding allocators. Before dreams come true, programmers concerned with portability will be limited to using stateless custom allocators. — Scott Meyers, *Effective STL* Given this, in this situation, people often use memory pool-based allocators to solve the problem of frequent small allocations [8]. Unlike the default “on-demand” allocation method, when using a memory pool-based allocator, the program pre-allocates large blocks of memory (i.e., \u0026#34;memory pool\u0026#34;) and then the custom allocator simply returns a pointer to an available memory location in the pool to the requester. When objects are destructed, it does not actually deallocate memory; instead, it is deferred until the lifetime of the memory pool ends [Note 1][8]. In the topic of “custom allocators,” many C++ experts and authors have participated in discussions, such as Scott Meyers’s *Effective STL* and Andrej Alexandrescu’s *Modern C++ Design*, which mention it. Meyers realized that if an allocator instance is required to be equal for a specific type T, the portable allocator instance must not contain state. Although the C++ standard encourages library implementers to support stateful allocators [Reference 4], Meyers said that this paragraph is “(seemingly) a wonderful view,” but it’s almost nonsense, and he considered the restrictions on allocators “too strict” [4]. For example, the list in STL allows the `splice` method, which means a node in one list object A can be directly moved into another list object B, which requires that the memory allocated by A\u0026#39;s allocator be released by B\u0026#39;s allocator, thus deducing that the allocator instances of A and B must be equal. Meyers’s conclusion is that allocators should be defined as types using static methods. For example, according to the C++ standard, the allocator must provide a `rebind` method other class template. Furthermore, in *C++ Programming Language*, Bjørn Strubø suggests “‘restricting the allocator to avoid different information for each object’ is obviously not a problem” (roughly), and points out that most allocators do not need state, or even perform better without state. He proposed three use cases for custom allocators: memory pool-type allocators, shared memory-type allocators, and garbage collection-type allocators, and demonstrated an implementation of an allocator using an internal memory pool to quickly allocate/deallocate small amounts of memory [3]. However, he also mentioned that such optimization may already be implemented in the sample allocator he provided. Another use for custom allocators is to debug memory-related errors [10]. To do this, you can write an allocator that allocates extra memory when allocating and stores debugging information. This type of allocator not only ensures that memory is allocated/deallocated by the same type of allocator, but also can protect the program to some extent from cache overflows [11]. ","date":"2019-12-30","language":"en","permalink":"https://ttf248.life/en/p/standard-library-container-memory-allocator/","tags":["c++","allocator"],"title":"Standard Library Container Memory Allocators: allocator","year":"2019"}]
