<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Me | Dezhi Yu</title><link>https://halfrost.me/authors/me/</link><atom:link href="https://halfrost.me/authors/me/index.xml" rel="self" type="application/rss+xml"/><description>Me</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 12 Jun 2026 00:00:00 +0000</lastBuildDate><image><url>https://halfrost.me/media/authors/me_hu_2c3bb047e2f70e67.jpg</url><title>Me</title><link>https://halfrost.me/authors/me/</link></image><item><title>Efficient Cross-GPU Communication for Disaggregated LLM Serving</title><link>https://halfrost.me/publication/efficient-cross-gpu-communication-disaggregated-llm-serving/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/efficient-cross-gpu-communication-disaggregated-llm-serving/</guid><description/></item><item><title>Direct Preference Optimization for Chatbot Fine-Tuning: An Empirical Study</title><link>https://halfrost.me/publication/dpo-chatbot-finetuning/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/dpo-chatbot-finetuning/</guid><description/></item><item><title>Generative Modeling of Bach-Style Symbolic Music: A Comparative Study of Autoregressive, Latent-Variable, and Adversarial Approaches</title><link>https://halfrost.me/publication/bach-style-symbolic-music-generation/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/bach-style-symbolic-music-generation/</guid><description/></item><item><title>How Far Are Video Models from True Multimodal Reasoning?</title><link>https://halfrost.me/publication/video-models-multimodal-reasoning/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/video-models-multimodal-reasoning/</guid><description/></item><item><title>ROSE: A Reward-Oriented Data Selection Framework for LLM Task-Specific Instruction Tuning</title><link>https://halfrost.me/publication/rose-reward-oriented-data-selection/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/rose-reward-oriented-data-selection/</guid><description/></item><item><title>DK-RRT: Deep Koopman RRT for Collision-Aware Motion Planning of Space Manipulators in Dynamic Debris Environments</title><link>https://halfrost.me/publication/dk-rrt-space-manipulators/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/dk-rrt-space-manipulators/</guid><description/></item><item><title>AdaMixup: A Dynamic Defense Framework for Membership Inference Attack Mitigation</title><link>https://halfrost.me/publication/adamixup-membership-inference-defense/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/adamixup-membership-inference-defense/</guid><description/></item><item><title>Deep Adaptive Control with Frequency Modulation for Aerospace Robotic Manipulators in Dynamic Object Transportation</title><link>https://halfrost.me/publication/deep-adaptive-control-aerospace-manipulators/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/deep-adaptive-control-aerospace-manipulators/</guid><description/></item><item><title>KVDirect: Distributed Disaggregated LLM Inference</title><link>https://halfrost.me/publication/kvdirect-disaggregated-llm-inference/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/kvdirect-disaggregated-llm-inference/</guid><description/></item><item><title>LaySummX at BioLaySumm: Retrieval-Augmented Fine-Tuning for Biomedical Lay Summarization Using Abstracts and Retrieved Full-Text Context</title><link>https://halfrost.me/publication/laysummx-biolaysumm/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/laysummx-biolaysumm/</guid><description/></item><item><title>Machine Learning Optimizes the Efficiency of Picking and Packing in Automated Warehouse Robot Systems</title><link>https://halfrost.me/publication/warehouse-picking-packing-ml/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/warehouse-picking-packing-ml/</guid><description/></item><item><title>Research on Reinforcement Learning Based Warehouse Robot Navigation Algorithm in Complex Warehouse Layout</title><link>https://halfrost.me/publication/warehouse-robot-navigation-rl/</link><pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/warehouse-robot-navigation-rl/</guid><description/></item><item><title>Predicting 30-Day Hospital Readmission in Medicare Patients: Insights from an LSTM Deep Learning Model</title><link>https://halfrost.me/publication/medicare-readmission-lstm/</link><pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/medicare-readmission-lstm/</guid><description/></item><item><title>Deep Reinforcement Learning-Based Obstacle Avoidance for Robot Movement in Warehouse Environments</title><link>https://halfrost.me/publication/warehouse-obstacle-avoidance-drl/</link><pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/warehouse-obstacle-avoidance-drl/</guid><description/></item><item><title>LeetCode Cookbook</title><link>https://halfrost.me/publication/leetcodecookbook/</link><pubDate>Thu, 13 Aug 2020 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/leetcodecookbook/</guid><description/></item><item><title>Segment Tree Basics</title><link>https://halfrost.me/talk/segment-tree-basics/</link><pubDate>Wed, 15 Jan 2020 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/segment-tree-basics/</guid><description/></item><item><title>Redis Multi-Data Center Two-Way Synchronization</title><link>https://halfrost.me/talk/redis-multi-data-center-two-way-synchronization/</link><pubDate>Thu, 31 Oct 2019 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/redis-multi-data-center-two-way-synchronization/</guid><description/></item><item><title>Redis Design Ideas and Usage Specifications</title><link>https://halfrost.me/talk/redis-design-ideas-and-usage-specifications/</link><pubDate>Tue, 18 Jun 2019 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/redis-design-ideas-and-usage-specifications/</guid><description/></item><item><title>Detailed HTTP/2 header compression algorithm-HPACK</title><link>https://halfrost.me/post/detailed-http-2-header-compression-algorithm-hpack/</link><pubDate>Sun, 16 Jun 2019 10:05:36 +0000</pubDate><guid>https://halfrost.me/post/detailed-http-2-header-compression-algorithm-hpack/</guid><description>&lt;p&gt;在 HTTP/1.1（请参阅
）中，header 字段未被压缩。随着网页内的请求数增长到需要数十到数百个请求的时候，这些请求中的冗余 header 字段不必要地消耗了带宽，从而显着增加了延迟。&lt;/p&gt;
&lt;p&gt;
最初通过使用
格式压缩 header 字段来解决此冗余问题，事实证明，这种格式非常有效地表示了冗余 header 字段。但是，这种方法暴露了安全风险，如 CRIME（轻松实现压缩率信息泄漏）攻击所证明的安全风险（请参阅
）。&lt;/p&gt;
&lt;p&gt;本规范定义了 HPACK，这是一种新的压缩方法，它消除了多余的 header 字段，将漏洞限制到已知的安全攻击，并且在受限的环境中具有有限的内存需求。
介绍了 HPACK 的潜在安全问题。&lt;/p&gt;
&lt;p&gt;HPACK 格式特意被设计成简单且不灵活的形式。两种特性都降低了由于实现错误而引起的互操作性或安全性问题的风险。没有定义扩展机制；只能通过定义完整的替换来更改格式。&lt;/p&gt;
&lt;p&gt;点击
看全文。&lt;/p&gt;</description></item><item><title>Golang Message Streaming Practice in Eleme</title><link>https://halfrost.me/talk/golang-message-streaming-practice-in-eleme/</link><pubDate>Fri, 15 Mar 2019 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/golang-message-streaming-practice-in-eleme/</guid><description/></item><item><title>SQL Practical Optimization</title><link>https://halfrost.me/talk/sql-practical-optimization/</link><pubDate>Tue, 25 Dec 2018 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/sql-practical-optimization/</guid><description/></item><item><title>How to understand gradient descent?</title><link>https://halfrost.me/post/how-to-understand-gradient-descent/</link><pubDate>Sun, 21 Oct 2018 10:05:36 +0000</pubDate><guid>https://halfrost.me/post/how-to-understand-gradient-descent/</guid><description>&lt;p&gt;Gradient descent is a first-order iterative optimization algorithm for finding a local minimum of a differentiable function. To find a local minimum of a function using gradient descent, we take steps proportional to the negative of the gradient (or approximate gradient) of the function at the current point. But if we instead take steps proportional to the positive of the gradient, we approach a local maximum of that function; the procedure is then known as gradient ascent. Gradient descent is generally attributed to Cauchy, who first suggested it in 1847, but its convergence properties for non-linear optimization problems were first studied by Haskell Curry in 1944.&lt;/p&gt;
&lt;p&gt;Click
to read full article.&lt;/p&gt;</description></item><item><title>TLS 1.3 Handshake Protocol</title><link>https://halfrost.me/post/tls-1.3-handshake-protocol/</link><pubDate>Sun, 21 Oct 2018 10:05:36 +0000</pubDate><guid>https://halfrost.me/post/tls-1.3-handshake-protocol/</guid><description>&lt;p&gt;握手协议用于协商连接的安全参数。握手消息被提供给 TLS 记录层，在记录层它们被封装到一个或多个 TLSPlaintext 或 TLSCiphertext 中，它们按照当前活动连接状态进行处理和传输。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;enum&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;client_hello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;server_hello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;new_session_ticket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;end_of_early_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;encrypted_extensions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;certificate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;certificate_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;certificate_verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;finished&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;key_update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;message_hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;254&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;HandshakeType&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;HandshakeType&lt;/span&gt; &lt;span class="n"&gt;msg_type&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* handshake type */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;uint24&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* remaining bytes in message */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;select&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Handshake&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;msg_type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;client_hello&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ClientHello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;server_hello&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ServerHello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;end_of_early_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;EndOfEarlyData&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;encrypted_extensions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;EncryptedExtensions&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;certificate_request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;CertificateRequest&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;certificate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Certificate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;certificate_verify&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;CertificateVerify&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;finished&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Finished&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;new_session_ticket&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;NewSessionTicket&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nl"&gt;key_update&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;KeyUpdate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;Handshake&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;协议消息必须按照一定顺序发送(顺序见下文)。如果对端发现收到的握手消息顺序不对，必须使用 “unexpected_message” alert 消息来中止握手。&lt;/p&gt;
&lt;p&gt;点击
看全文。&lt;/p&gt;</description></item><item><title>Fundamentals of Cryptography</title><link>https://halfrost.me/talk/fundamentals-of-cryptography/</link><pubDate>Sun, 15 Jul 2018 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/fundamentals-of-cryptography/</guid><description/></item><item><title>The Practice of Spatial Index in Geographic Service</title><link>https://halfrost.me/talk/the-practice-of-spatial-index-in-geographic-service/</link><pubDate>Sun, 14 Jan 2018 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/the-practice-of-spatial-index-in-geographic-service/</guid><description/></item><item><title>Getting started with Machine Learning</title><link>https://halfrost.me/talk/getting-started-with-machine-learning/</link><pubDate>Wed, 08 Nov 2017 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/getting-started-with-machine-learning/</guid><description/></item><item><title>How to design and implement a thread-safe Map data structure</title><link>https://halfrost.me/post/how-to-design-and-implement-a-thread-safe-map-data-structure/</link><pubDate>Sun, 10 Sep 2017 10:05:36 +0000</pubDate><guid>https://halfrost.me/post/how-to-design-and-implement-a-thread-safe-map-data-structure/</guid><description>&lt;p&gt;Map 是一种很常见的数据结构，用于存储一些无序的键值对。在主流的编程语言中，默认就自带它的实现。C、C++ 中的 STL 就实现了 Map，JavaScript 中也有 Map，Java 中有 HashMap，Swift 和 Python 中有 Dictionary，Go 中有 Map，Objective-C 中有 NSDictionary、NSMutableDictionary。&lt;/p&gt;
&lt;p&gt;上面这些 Map 都是线程安全的么？答案是否定的，并非全是线程安全的。那如何能实现一个线程安全的 Map 呢？想回答这个问题，需要先从如何实现一个 Map 说起。&lt;/p&gt;
&lt;p&gt;点击
看全文。&lt;/p&gt;</description></item><item><title>iOS Master Book WWDC 2017</title><link>https://halfrost.me/publication/iosmasterbookwwdc2017/</link><pubDate>Fri, 01 Sep 2017 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/iosmasterbookwwdc2017/</guid><description/></item><item><title>Functional Reactive Programming Thinking</title><link>https://halfrost.me/talk/functional-reactive-programming-thinking/</link><pubDate>Thu, 15 Jun 2017 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/functional-reactive-programming-thinking/</guid><description/></item><item><title>iOS Master Book Summer</title><link>https://halfrost.me/publication/iosmasterbooksummer/</link><pubDate>Thu, 01 Jun 2017 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/iosmasterbooksummer/</guid><description/></item><item><title>Eleme Quarterly Newcomer Report</title><link>https://halfrost.me/talk/eleme-report/</link><pubDate>Tue, 18 Apr 2017 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/eleme-report/</guid><description/></item><item><title>Weex layout engine powered by FlexBox algorithm</title><link>https://halfrost.me/post/weex-layout-engine-powered-by-flexbox-algorithm/</link><pubDate>Fri, 31 Mar 2017 10:05:36 +0000</pubDate><guid>https://halfrost.me/post/weex-layout-engine-powered-by-flexbox-algorithm/</guid><description>&lt;p&gt;在上篇文章里面谈了Weex在iOS客户端工作的基本流程。这篇文章将会详细的分析Weex是如何高性能的布局原生界面的，之后还会与现有的布局方法进行对比，看看Weex的布局性能究竟如何。&lt;/p&gt;
&lt;p&gt;打开Weex的源码的Layout文件夹，就会看到两个c的文件，这两个文件就是今天要谈的Weex的布局引擎。&lt;/p&gt;
&lt;p&gt;Layout.h和Layout.c最开始是来自于React-Native里面的代码。也就是说Weex和React-Native的布局引擎都是同一套代码。&lt;/p&gt;
&lt;p&gt;当前React-Native的代码里面已经没有这两个文件了，而是换成了Yoga。&lt;/p&gt;
&lt;p&gt;点击
看全文。&lt;/p&gt;</description></item><item><title>iOS Master Book Spring</title><link>https://halfrost.me/publication/iosmasterbookspring/</link><pubDate>Wed, 01 Mar 2017 00:00:00 +0000</pubDate><guid>https://halfrost.me/publication/iosmasterbookspring/</guid><description/></item><item><title>iOS Architecture Smalltalk</title><link>https://halfrost.me/talk/ios-architecture-smalltalk/</link><pubDate>Thu, 25 Aug 2016 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/ios-architecture-smalltalk/</guid><description/></item><item><title>Phabricator Introduce</title><link>https://halfrost.me/talk/phabricator-introduce/</link><pubDate>Wed, 20 Jan 2016 13:30:00 +0000</pubDate><guid>https://halfrost.me/talk/phabricator-introduce/</guid><description/></item></channel></rss>