跳到主要內容

發表文章

營養代謝影響基因表達

 轉錄因子 長期茹素卻脂肪肝 有一種基因S1,他負責編碼肝臟脂肪的合成酶,如果這種基因被激活了,那肝臟上就非常容易堆積脂肪,導致脂肪肝。 一般來說,負責激活S14的轉錄因子,沒那麼活躍。但有一種營養素可以激活它,就是葡萄糖。 茹素可能長期高碳飲食,激活轉錄因子,又激活了脂肪合成酶基因,肝臟脂肪越來越多,脂肪肝就出現了。 表觀遺傳學印記 懷孕的媽媽,不忌口,高糖高脂的飲食,後來出生的小孩即使飲食健康,小孩的肥胖高血脂和糖尿病的風險也會顯著增加。 這種母子間的傳遞,是透過表觀遺傳學印記實現的,這種傳遞,甚至會延續三代以上。 不少營養素,葉酸,B12,膽鹼一些礦物質,必需氨基酸都是表觀遺傳學印記的原材料。 胎兒身上的表觀遺傳學印記,可能來自媽媽吃下去的菜。某種植物的自帶的表觀遺傳學印記,可以進入媽媽的血液,透過胎盤轉移,直接調控胎兒的基因表達。營養可來引響基因表達。 我們吃的東西可以可以用一種有趣的方式和我們體內的基因產生連結。 節錄, 仝卿·營養科學20講

測試學習法

 在學一門課前,先給自己做個測試,測完再學,效率能上一個大大的台階。 可以問自己四個問題 這門課/這本書的標題,我認為他應該著要是談什麼問題? 關於這個主題,在學習之前,我知道些什麼? 關於這個主題,在學習前的觀點是什麼? 接下來我要開始學習,我最想知道的,最想通過老師解決的問題是什麼?

不壞靠家庭,優秀靠遺傳,卓越靠學習

家庭對人的影響有很小的上限,孩子好像一顆成長中的小樹,你想要毀掉這棵樹,那非常容易。但你要這棵樹長得出類拔萃不取決於你。 耶魯大學心理學家桑德斯說:父母只要避免暴力虐待,不要漠不關心即可,除此之外,父母做的任何事情都不會產生顯著影響。 育兒不用焦慮,只要做個合格的父母就行了。孩子的優秀跟你的本人優不優秀很有關係,因為他會遺傳你的基因,但是跟你是不是優秀的父母關係不大。 天賦決定了一個人能不能從普通躍遷到優秀。一個普通人,只要環境不太差,優秀不優秀自己的事。 名校對人的影響,有實力去著名大學,但是出於各種原因選擇了普通大學,他們工作以後的收入水平跟那些上了著名大學的人也是一樣的。 名校只是選擇了你,只是證明你的優秀,並沒有把你變成優秀。優秀的人就是優秀,不上名校也是優秀。 但是智商的影響有上限。成為有影響力的人必需從優秀到達卓越。有兩點到達卓越 內在驅動 能理解和處理複雜的問題 要達到這兩點,靠的就是終身學習。 學習動力是可以訓練的,只是得自己訓練自己,不能被別人逼著訓練。學習是孩子的課題不是你的課題,你可以把一匹馬領到河邊,但是最終喝不喝水,那是他自己的決定。 精英日課

考試腦科學

 演化因素,因為空間(大腦皮層)有限,大腦只會記住重要的事。海馬迴決定何事要記住,何事要忘記。 如何影響海馬迴 好奇 緊張 興奮 期待的狀態,下載美劇劇本,邊看邊複習劇情,用此替代英語作文素材 處於移動狀態,公車地鐵也可以,只要正在移動的狀態 情緒喚醒,對歷史事件感動或帶入更容易記憶 關聯,記憶宮殿法 輸出,可以讓海馬迴判定此訊息很重要,一次輸出可以替代4-5次輸入,寫習題,向他人講述都是輸出。 人的記憶是模糊的,模糊性對動物的生存有著重要的意義,動物的生存環境時時刻刻都在發生複雜的變化。完全相同的狀況一般不會發生第二次。為了在不斷變化的環境生存下來,他們必須根據情況隨機應變。 當我們想要記住某一領域的知識時,不應該一下進到那些細節當中,更有效的方法是分佈推進:先從全局入手,了解全局有哪些分區或子類,之後再進入各個子類,一點點向下細化。

脂肪

脂類的包含膽固醇,磷脂,醣脂,這些都和心血管疾病有關,脂類的代謝通路分為出和入。 第一部分是脂類被吸收,通過血管運到肝臟,這是攝入的過程。第二部分是肝臟重新合成脂類,再通過血管運輸到各個組織加以利用,這是輸出的過程。兩部分的交疊是血管通道和肝臟中間站。 如果脂類在血液中含量過高,就會導致高血脂。如果脂類堆積在肝臟,就會導致脂肪肝。 想避免高血脂,脂肪肝,光限制攝入不一定管用,還得看輸出有沒有問題。 以送快遞來比喻,脂類就是快遞員要送的包裹。低密度脂蛋白專門送件,他們負責把脂肪和膽固醇送到身體各處。高密度脂蛋白專門負責退貨,他們會專門搜集膽固醇帶回肝臟。 如果低密度脂蛋白有問題,脂肪累積在肝臟,就有脂肪肝,如果高密度脂蛋白有問題,脂肪沒有回收,就有血脂。 輸出有問題,就要找醫生治療,再營養調理。 高膽固醇會增加心臟病的風險,指的不是食物的含量,而是血液的含量。食物的脂類吃下去之後到了身體裡,會被分解,等待身體統籌分配。血液裡的膽固醇並不一定來自你吃下去的膽固醇,關注食物裡的脂類並沒有那麼重要,在日常飲食,關注更大比例的脂肪就行了。 攝入脂肪會發胖的背後原因,其實是食物總熱量超標,控制好了總熱量,吃脂肪並不會引起肥胖。 節錄, 仝卿·營養科學20講

Here’s how Android apps on Windows 11 are going to work

 https://arstechnica.com/gadgets/2021/06/microsofts-windows-subsystem-for-android-sounds-a-lot-like-chrome-os/ 官方稱為 Windows Subsystem for android,如同Windows Subsystem for Linux在此架構上,新增Android framework, 因為Android實際是運行在Linux上。 Windows 底下的Android apps像原生程式一樣 可以放在windows的 taskbar, window 利用proxy介接Android apps , Windows apps 。 x86 和 arm 架構的app都可以跑,但是x86 比較好 arm架構還要介接 Microsoft 不使用Google Play 生態系  他藉由Amazon App Store來下載 android。所以不能用google play的api 必須用amazon 的api 替代。

Is SwiftUI ready?

 https://www.jessesquires.com/blog/2021/07/01/is-swiftui-ready/ 此文討論 swiftui 可以用在關鍵apps(serious apps)嗎? 以下分享幾個摘要。 twitter 上 737投票 Yes 30.7 reeady for iOS 23.1 Not 45.7 開發完整的app並不成熟 部分APIs無法使用,必須橋接UIKits 還是有bugs並且部分有效能問題,還是必須使用UIKits 優點 SwiftUI 可以開發的比較快速,以利害取捨來說是值得的 關鍵是必須習慣混用SwiftUI和UIKits. 純SwiftUI可能還要幾年 SwfitUI向下相容性差,iOS 15算是大部分相容 14還不成熟 13更糟 建議以UIKits 架構當殼,混用SwiftUI 避免SwiftUI某些功能無法使用, 仍可回來使用UIKits SwiftUI 文件仍不完整,還是依靠開發者自行測試 文中舉了一些例子 SwiftUI部分元件 仍然無法設定一些基礎特性 譬如table 背景色 status bar Style 結論: 如果開發目標放在iOS 15,聽起來可以開始嘗試使用SwiftUI

Mac m1 安裝cocoapods

  https://blog.csdn.net/chocolateloveme/article/details/115586219 找到终端,右键选择显示简介,勾选使用Rosetta打开,避免后续pod时候报错 如果還沒選rosetta 就裝過 cocoapod  進入rosetta後 要再裝一次 sudo gems install cocoapods sudo arch -x86_64 gem install ffi pod install 指令改為 arch -x86_64 pod install

UI找不相對應的textfield

設了indentifier 一直找不到 用Accessibilty inspector 也確定沒設錯 後來看到用另外的方法去列所有元件,去看線索 UI Testing: Get element tree? let app = XCUIApplication() print(app.debugDescription) 可以印出相對應的element 才發現是 SecureTextField 密碼樣式與一般textfield不一樣 卡了一天

在mac 建立排程送出ip到Slack 群組

起因 server ip 固定時間會換,無法使用dns。看能不能有方法獲得server 最新ip 思路 1.  印出ip 2. 串slack 3. 排程 最終成果 ip.sh MSG=`ifconfig  | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' |awk '{print $2}'` CHANNEL="#serverip" USERNAME="Server" EMOJI=":ghost:" PAYLOAD="payload={\"channel\": \"$CHANNEL\", \"username\": \"$USERNAME\", \"text\": \"$MSG\", \"icon_emoji\": \"$EMOJI\"}" HOOK=https://hooks.slack.com/services/XXXXXX/BOOOOOO/n2345566 curl -X POST --data-urlencode "$PAYLOAD" "$HOOK" 建立排程檔 com.postip.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.postip.plist</string> <key...

[iOs] SDWebImage 下載後 圖片上下留白

contentMode 設AspectFit 寬比高長 [ self . picImageView sd_setImageWithURL :[ NSURL URLWithString :url] placeholderImage :[ UIImage imageNamed : @"pic_offer_n" ] completed :^( UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {                          double width = image. size . width ;             double height = image. size . height ;             double apect = width/height;             double imageViewWidth = weakSelf. picImageView . frame . size . width ;             double nHeight = imageViewWidth /  apect;             [weakSelf. picImageView . heightAnchor constraintEqualToConstant :nHeight]. active = YES ;                      }]; 設定 height 的c...

[Android] 指紋辨識

Android 官方文件 https://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt Demo https://www.jianshu.com/p/1eae12582a31 https://tpu.thinkpower.com.tw/tpu/File/html/201712/20171219171112_f.html?f=3dj6j8kd38895ksgtdddd93865jhr9sn3rqkh https://xnfood.com.tw/android-fingerprintmanager-api/

iOS 性能優化

source: https://juejin.im/post/5b7a9c466fb9a019eb43b0d5 卡頓優化 -CPU  盡量用輕量級的對象,比如用不到事件處理的地方,可以考慮使用CALayer取代UIView 不要頻繁地調用UIView的相關屬性,比如frame、bounds、transform等屬性,盡量減少不必要的修改  盡量提前計算好佈局,在有需要時一次性調整對應的屬性,不要多次修改屬性  Autolayout會比直接設置frame消耗更多的CPU資源  圖片的size最好剛好跟UIImageView的size保持一致  控制一下線程的最大並發數量  盡量把耗時的操作放到子線程 卡頓優化 -GPU  盡量避免短時間內大量圖片的顯示,盡可能將多張圖片合成一張進行顯示  盡量減少視圖數量和層次  減少透明的視圖(alpha 盡量避免出現離屏渲染 離屏渲染  在OpenGL中,GPU有2種渲染方式  On-Screen Rendering:當前屏幕渲染,在當前用於顯示的屏幕緩衝區進行渲染操作  Off-Screen Rendering:離屏渲染,在當前屏幕緩衝區以外新開闢一個緩衝區進行渲染操作  離屏渲染消耗性能的原因  需要創建新的緩衝區  離屏渲染的整個過程,需要多次切換上下文環境,先是從當前屏幕(On-Screen)切換到離屏(Off-Screen);等到離屏渲染結束以後,將離屏緩衝區的渲染結果顯示到屏幕上,又需要將上下文環境從離屏切換到當前屏幕  哪些操作會觸發離屏渲染?  光柵化,layer.shouldRasterize = YES  遮罩,layer.mask  圓角,同時設置layer.masksToBounds = YES、layer.cornerRadius大於0 考慮通過CoreGraphics繪製裁剪圓角,或者叫美工提供圓角圖片  陰影,layer.shadowXXX 如果設置了layer.shadowPath就不會產生離屏渲染 優化方案...

優化記憶體管理

使用ARC 延遲加載懶加載 重用在正確的地方使用reuseIndentifier 緩存NSCache 保存計算數據 處理內存警告移除對緩存,圖片object 和其他一些可以重創建的objects 的強引用 5.1 app delegate 中使用`applicationDidReceiveMemoryWarning:` 的方法 5.2 自定義UIViewController 的子類(subclass)中覆蓋`didReceiveMemoryWarning` 5.3在自定義類中註冊並接收UIApplicationDidReceiveMemoryWarningNotification 的通知 重用大開銷對象NSDateFormatter和NSCalendar 懶加載/單例_formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy”; 設置和創建速度一樣慢 自動釋放池手動添加自動釋放池 是否緩存圖片imageNamed imageWithContentOfFile 混編 循環引用delegate block nstimer 移除kvo nsnotificationcenter 並未強引用,只記錄內存地址,野指針報 UIViewController自動移除一般在dealloc中 performselector 延遲操作[NSObject cancelPreviousPerformRequestsWithTarget:self]

memory leak

1.打印殭屍對象,進行野指針的檢測   2.靜態檢測方法product->Analyze   3.動態檢測方法Build Setting -> Analyze During ‘Build’ ->Yes   4.xcode自帶工具instruments  5.dealloc 打印測試是否運行  6.第三方內存檢測工具 如:mleak

Block and copy

block也經常使用 copy 關鍵字,具體原因見官方文檔:Objects Use Properties to Keep Track of Blocks: block使用copy 是從MRC 遺留下來的“傳統”,在MRC 中,方法內部的block是在棧區的,使用copy 可以把它放到堆區.在ARC 中寫不寫都行:對於block使用copy還是strong 效果是一樣的,但寫上copy 也無傷大雅,還能時刻提醒我們:編譯器自動對block 進行了copy 操作。 如果不寫 copy ,該類的調用者有可能會忘記或者根本不知道“編譯器會自動對block進行了 copy 操作”,他們有可能會在調用之前自行拷貝屬性值。這種操作多餘而低效。

Objective-C extern

extern  下面的代碼聲明了一個全局變量,它用於告訴編譯器:“你現在編譯的文件中,有一個標識符雖然沒有在本文件中定義,但是它是在別的文件中定義的全局變量,你要在其它文件內查找!” #define ANIMATION_DURATION 0.5 // 替换成 static const NSTimeInterval kAnimationDuration = 0.5; // 全局常量 // QiShare.h extern const NSTimeInterval QiShareAnimationDuration; // QiShare.m const NSTimeInterval QiShareAnimationDuration = 0.3;

Print log in swift

Swift has  #file ,  #function ,  #line  and  #column . From  Swift Programming Language : #file  - String - The name of the file in which it appears. #line  - Int - The line number on which it appears. #column  - Int - The column number in which it begins. #function  - String - The name of the declaration in which it appears. 下log用。

View-Related Notifications in ViewController

A viewcontroller push b viewController B loadView() B viewDidLoad() A viewWillDisappear B viewWillAppear B viewWillLayoutSubviews() B viewDidLayoutSubviews() A viewDidDisappear B viewDidAppear B vc back to A vc B viewWillDisappear A viewWillAppear B viewDidDisappear A viewDidAppear 從來沒認真過這個順序,考過之後,才發現跟認知有點距離。我應該也背不下來。XD