summaryrefslogtreecommitdiff
path: root/blog
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2023-11-14 02:16:44 -0500
committerGravatar Chris Xiong <chirs241097@gmail.com> 2023-11-14 02:16:44 -0500
commit4115f9466b8a92580527e62d7b6d1215cf4fc4cc (patch)
treed0217ebf9f29e6e0ebf81c75da98e6cd832fe385 /blog
parentb2668f32fe74a8c01d446e96090fcc569170848d (diff)
downloadweb-4115f9466b8a92580527e62d7b6d1215cf4fc4cc.tar.xz
new blog post.
Diffstat (limited to 'blog')
-rw-r--r--blog/list/0.html14
-rw-r--r--blog/list/1.html12
-rw-r--r--blog/list/2.html12
-rw-r--r--blog/list/3.html12
-rw-r--r--blog/list/4.html12
-rw-r--r--blog/list/5.html12
-rw-r--r--blog/list/6.html12
-rw-r--r--blog/list/7.html12
-rw-r--r--blog/list/8.html12
-rw-r--r--blog/list/9.html14
-rw-r--r--blog/list/computer-repairing/0.html7
-rw-r--r--blog/list/device-review/0.html12
-rw-r--r--blog/list/device-review/1.html5
-rw-r--r--blog/list/hands-on/0.html2
-rw-r--r--blog/post/2022-07-23.html338
-rw-r--r--blog/post/2023-11-13.html278
16 files changed, 638 insertions, 128 deletions
diff --git a/blog/list/0.html b/blog/list/0.html
index ec5319b..8276af4 100644
--- a/blog/list/0.html
+++ b/blog/list/0.html
@@ -57,6 +57,11 @@ function ol()
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#special-page</span>
<span class="right" id="">2019-09-03/2019-09-03</span></div>
</div><div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2023-11-13.html">Framework Laptop: Repasting &amp; Two Year Report</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #computer-repairing</span>
+ <span class="right" id="">2023-11-13/2023-11-14</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2022-11-27.html">(Not really) Musical Answers &amp; Rants</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#music #midi</span>
@@ -65,18 +70,13 @@ function ol()
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2022-07-23.html">Framework Laptop: The next thing in the laptop world?</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on #computer-repairing</span>
- <span class="right" id="">2022-07-23/2022-07-25</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2021-10-10.html">EDIROL SD-20: the Crumbling of the Canvas?</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #midi #music</span>
- <span class="right" id="">2021-10-10/2022-07-01</span></div>
+ <span class="right" id="">2022-07-23/2023-11-14</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="#">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">1/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">1/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/1.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/1.html b/blog/list/1.html
index b50b889..0c60a17 100644
--- a/blog/list/1.html
+++ b/blog/list/1.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2021-10-10.html">EDIROL SD-20: the Crumbling of the Canvas?</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #midi #music</span>
+ <span class="right" id="">2021-10-10/2022-07-01</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2021-06-03.html">No, I'm not dead</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #midi #music #hands-on</span>
<span class="right" id="">2019-04-25/2022-06-30</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2019-02-13.html">Site Revamp and Other Rants -- 2019 Edition</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#web #random-xp #garbage</span>
- <span class="right" id="">2019-02-13/2019-07-24</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/0.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">2/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">2/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/2.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/2.html b/blog/list/2.html
index 41982d9..3b68430 100644
--- a/blog/list/2.html
+++ b/blog/list/2.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2019-02-13.html">Site Revamp and Other Rants -- 2019 Edition</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#web #random-xp #garbage</span>
+ <span class="right" id="">2019-02-13/2019-07-24</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-12-06.html">小米 MIX 3 上手体验</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#sophistry</span>
<span class="right" id="">2018-06-05/2018-10-16</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-05-18.html">Ideology vs Pragmatism &amp;c.</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#sophistry #garbage</span>
- <span class="right" id="">2018-05-18/2018-10-11</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/1.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">3/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">3/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/3.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/3.html b/blog/list/3.html
index b286edc..a3195a8 100644
--- a/blog/list/3.html
+++ b/blog/list/3.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-05-18.html">Ideology vs Pragmatism &amp;c.</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#sophistry #garbage</span>
+ <span class="right" id="">2018-05-18/2018-10-11</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-05-08.html">Respecting your job</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#sophistry #garbage #acmicpc</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#linux #garbage #sophistry</span>
<span class="right" id="">2018-04-17/2018-10-11</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-03-17.html">Some rants on SMELT, QMidiPlayer and Virtools</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#devel #qmidiplayer #opengl</span>
- <span class="right" id="">2018-03-17/2018-10-11</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/2.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">4/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">4/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/4.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/4.html b/blog/list/4.html
index eb39d0a..663c2e8 100644
--- a/blog/list/4.html
+++ b/blog/list/4.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-03-17.html">Some rants on SMELT, QMidiPlayer and Virtools</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#devel #qmidiplayer #opengl</span>
+ <span class="right" id="">2018-03-17/2018-10-11</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-02-05.html">Does gaming make me merrier &amp; more relaxed or the opposite?</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage #device-review</span>
<span class="right" id="">2017-12-21/2019-02-12</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-11-25.html">A short post on Cakewalk's death and my music production</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#music #garbage</span>
- <span class="right" id="">2017-11-25/2018-10-11</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/3.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">5/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">5/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/5.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/5.html b/blog/list/5.html
index b027568..fd88ca6 100644
--- a/blog/list/5.html
+++ b/blog/list/5.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-11-25.html">A short post on Cakewalk's death and my music production</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#music #garbage</span>
+ <span class="right" id="">2017-11-25/2018-10-11</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-06-29.html">Trash dump for the fourth semester</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage #daily-life</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#devel #web</span>
<span class="right" id="">2017-04-11/2018-10-11</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-02-13.html">[多大图警告]ls /dev</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review</span>
- <span class="right" id="">2017-02-13/2019-02-12</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/4.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">6/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">6/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/6.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/6.html b/blog/list/6.html
index 910cf77..8fad1d6 100644
--- a/blog/list/6.html
+++ b/blog/list/6.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-02-13.html">[多大图警告]ls /dev</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review</span>
+ <span class="right" id="">2017-02-13/2019-02-12</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-01-18.html">Trash dump for the third semester</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage #daily-life</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage #daily-life</span>
<span class="right" id="">2016-06-21/2018-10-11</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2016-05-12.html">ThinkPad X1 Yoga初体验</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review</span>
- <span class="right" id="">2016-05-12/2019-02-12</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/5.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">7/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">7/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/7.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/7.html b/blog/list/7.html
index 7f37340..e9efb28 100644
--- a/blog/list/7.html
+++ b/blog/list/7.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2016-05-12.html">ThinkPad X1 Yoga初体验</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review</span>
+ <span class="right" id="">2016-05-12/2019-02-12</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2016-04-09.html">The MIDI File Format Specification and MIDI Implementation in QMidiPlayer</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#devel #qmidiplayer #midi</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#sophistry</span>
<span class="right" id="">2016-02-14/2018-10-11</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2016-01-25.html">放假...</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#daily-life</span>
- <span class="right" id="">2016-01-25/2018-10-11</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/6.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">8/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">8/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/8.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/8.html b/blog/list/8.html
index 8a3b5e7..ed4dc07 100644
--- a/blog/list/8.html
+++ b/blog/list/8.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2016-01-25.html">放假...</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#daily-life</span>
+ <span class="right" id="">2016-01-25/2018-10-11</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2016-01-16.html">QMidiPlayer Progress-2016-01-16</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#devel #qmidiplayer</span>
@@ -66,17 +71,12 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#devel</span>
<span class="right" id="">2015-12-23/2018-10-11</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2015-12-20.html">忙</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#random-xp</span>
- <span class="right" id="">2015-12-20/2018-10-11</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/7.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">9/10</span>
+ <span style="text-align:center;display:table-cell;" id="page">9/11</span>
<span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/9.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
diff --git a/blog/list/9.html b/blog/list/9.html
index 5991048..50383ea 100644
--- a/blog/list/9.html
+++ b/blog/list/9.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2015-12-20.html">忙</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#random-xp</span>
+ <span class="right" id="">2015-12-20/2018-10-11</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2015-11-22.html">Raspberry Pi2 初体验</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#hands-on #device-review</span>
@@ -66,18 +71,13 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#contest</span>
<span class="right" id="">2015-10-30/2018-10-11</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2015-10-29.html">noname01.pas</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage</span>
- <span class="right" id="">2015-10-29/2018-10-11</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
<div id="pagesw" class="TText" style="display:table;width:100%;padding:1em 0;">
<span style="display:table-cell;"><a id="prepage" href="/blog/list/8.html">&lt;&lt;</a></span>
- <span style="text-align:center;display:table-cell;" id="page">10/10</span>
- <span style="text-align:right;display:table-cell;"><a id="nexpage" href="#">&gt;&gt;</a></span>
+ <span style="text-align:center;display:table-cell;" id="page">10/11</span>
+ <span style="text-align:right;display:table-cell;"><a id="nexpage" href="/blog/list/10.html">&gt;&gt;</a></span>
</div>
<div style="text-align:center;" class="TText">
Proudly powered by SSBS <reduced style="font-size:70%;">(the static stupid blogging system)</reduced> 2.5
diff --git a/blog/list/computer-repairing/0.html b/blog/list/computer-repairing/0.html
index 8e5d2ff..50e8c6c 100644
--- a/blog/list/computer-repairing/0.html
+++ b/blog/list/computer-repairing/0.html
@@ -47,10 +47,15 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2023-11-13.html">Framework Laptop: Repasting &amp; Two Year Report</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #computer-repairing</span>
+ <span class="right" id="">2023-11-13/2023-11-14</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2022-07-23.html">Framework Laptop: The next thing in the laptop world?</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on #computer-repairing</span>
- <span class="right" id="">2022-07-23/2022-07-25</span></div>
+ <span class="right" id="">2022-07-23/2023-11-14</span></div>
</div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-01-09.html">[多大图警告]终究还是改不了修电脑的命</a></h3>
<br>
diff --git a/blog/list/device-review/0.html b/blog/list/device-review/0.html
index e332b4f..4878b3a 100644
--- a/blog/list/device-review/0.html
+++ b/blog/list/device-review/0.html
@@ -47,10 +47,15 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2023-11-13.html">Framework Laptop: Repasting &amp; Two Year Report</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #computer-repairing</span>
+ <span class="right" id="">2023-11-13/2023-11-14</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2022-07-23.html">Framework Laptop: The next thing in the laptop world?</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on #computer-repairing</span>
- <span class="right" id="">2022-07-23/2022-07-25</span></div>
+ <span class="right" id="">2022-07-23/2023-11-14</span></div>
</div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2021-10-10.html">EDIROL SD-20: the Crumbling of the Canvas?</a></h3>
<br>
@@ -66,11 +71,6 @@ function ol()
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #midi #music #hands-on</span>
<span class="right" id="">2019-04-25/2022-06-30</span></div>
- </div><div class="block TText" id="" style="display:block;">
- <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-12-06.html">小米 MIX 3 上手体验</a></h3>
- <br>
- <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on</span>
- <span class="right" id="">2018-12-06/2021-01-30</span></div>
</div></div>
<div id="insanch" style="height:5em;"></div>
<div id="footer">
diff --git a/blog/list/device-review/1.html b/blog/list/device-review/1.html
index 46896cc..8e2a236 100644
--- a/blog/list/device-review/1.html
+++ b/blog/list/device-review/1.html
@@ -47,6 +47,11 @@ function ol()
<div id="postslist">
<div class="block TText" id="" style="display:block;">
+ <h3 style="line-height:1.5em;"><a id="" href="/blog/post/2018-12-06.html">小米 MIX 3 上手体验</a></h3>
+ <br>
+ <div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on</span>
+ <span class="right" id="">2018-12-06/2021-01-30</span></div>
+ </div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2017-12-21.html">为什么我<i>就是不</i>使用Mac</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#garbage #device-review</span>
diff --git a/blog/list/hands-on/0.html b/blog/list/hands-on/0.html
index b85517a..4d0f64a 100644
--- a/blog/list/hands-on/0.html
+++ b/blog/list/hands-on/0.html
@@ -50,7 +50,7 @@ function ol()
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2022-07-23.html">Framework Laptop: The next thing in the laptop world?</a></h3>
<br>
<div style="display:table;width:100%;table-layout:fixed;"><span class="left" id="">#device-review #hands-on #computer-repairing</span>
- <span class="right" id="">2022-07-23/2022-07-25</span></div>
+ <span class="right" id="">2022-07-23/2023-11-14</span></div>
</div><div class="block TText" id="" style="display:block;">
<h3 style="line-height:1.5em;"><a id="" href="/blog/post/2019-04-25.html">EDIROL SD-80: A Trapped Beast</a></h3>
<br>
diff --git a/blog/post/2022-07-23.html b/blog/post/2022-07-23.html
index f858a6c..7be3a0b 100644
--- a/blog/post/2022-07-23.html
+++ b/blog/post/2022-07-23.html
@@ -52,7 +52,7 @@ function ol()
<li><a class="toctarg" href="#tocanch0">Rationale for a new laptop</a></li><li><a class="toctarg" href="#tocanch1">Why Framework?</a></li><li><a class="toctarg" href="#tocanch2">Important dates</a></li><li><a class="toctarg" href="#tocanch3">Configuration ordered</a></li><li><a class="toctarg" href="#tocanch4">Unboxing and setting up</a></li><li><a class="toctarg" href="#tocanch5">Performance</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch6">Processing power</a></li><li><a class="toctarg" href="#tocanch7">Graphics</a></li><li><a class="toctarg" href="#tocanch8">Thermal &amp; Emissions</a></li><li><a class="toctarg" href="#tocanch9">Others</a></li></ul></li><li><a class="toctarg" href="#tocanch10">Issues</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch11">Instabilities</a></li><li><a class="toctarg" href="#tocanch12">Port interference? …</a></li><li><a class="toctarg" href="#tocanch13">… and a general lack of ports</a></li><li><a class="toctarg" href="#tocanch14">Keyboard</a></li></ul></li><li><a class="toctarg" href="#tocanch15">Customer Service</a></li><li><a class="toctarg" href="#tocanch16">Y no upgrade to 12th gen?</a></li><li><a class="toctarg" href="#tocanch17">Any buyer’s remorse?</a></li></ul>
</li>
<li style="margin-left:-0.5em"><a id="prevp" href="2021-10-10.html">Prev post</a></li>
- <li style="margin-left:-0.5em"><a id="nextp" href="Privacy.html">Next post</a></li>
+ <li style="margin-left:-0.5em"><a id="nextp" href="2022-11-27.html">Next post</a></li>
</ul>
</div>
<div id="content">
@@ -61,22 +61,77 @@ function ol()
<hr><div id="article" class="TText"><article>
<p>This review came at the very least 6 months too late.</p>
<h2 id="tocanch0" class="tvis">Rationale for a new laptop</h2>
-<p>My old trusty first gen ThinkPad X1 yoga is showing its age: its U-tier ultra-low voltage processor is having trouble keeping up with the “modern web” that is constantly putting increasing pressure on the browser. Its integrated GPU can barely handle Minecraft at 60 fps, not to mention hundreds of virtual instruments I mess with are struggling with the processing power of this machine which wasn’t anything to brag about even when it first came out. It also took a lot of beatings, which are mainly from my own abuse, like <a href="https://chrisoft.org/blog/post/2017-01-09.html">this one</a> (warning: post is in Chinese), and is nearly falling apart. Considering I’m not well settled in this land that is alien to me, a full fledged desktop is hard to justify. So a new laptop it is.</p>
-<p>Additionally, unlike their 11th gen desktop processors, Intel’s 11th gen ultrabook offerings looks extremely compelling due to the new Xe integrated graphics introduced in this generation. Its (theoretical) performance is finally catching up with previous generation entry-level gaming graphics and current generation dedicated graphics found in slim laptops (1050 Ti and MX 350/450). Of course this is Intel and theoretical performance doesn’t mean much when their driver kind of sucks (severe performance drops and incompatibilities in some games). But it’s been rock solid for daily desktop usage (and Minecraft gaming because that’s literally the only game I play now). So I decided I’m just going to roll with it.</p>
+<p>My old trusty first gen ThinkPad X1 yoga is showing its age: its
+U-tier ultra-low voltage processor is having trouble keeping up with the
+“modern web” that is constantly putting increasing pressure on the
+browser. Its integrated GPU can barely handle Minecraft at 60 fps, not
+to mention hundreds of virtual instruments I mess with are struggling
+with the processing power of this machine which wasn’t anything to brag
+about even when it first came out. It also took a lot of beatings, which
+are mainly from my own abuse, like <a href="https://chrisoft.org/blog/post/2017-01-09.html">this one</a>
+(warning: post is in Chinese), and is nearly falling apart. Considering
+I’m not well settled in this land that is alien to me, a full fledged
+desktop is hard to justify. So a new laptop it is.</p>
+<p>Additionally, unlike their 11th gen desktop processors, Intel’s 11th
+gen ultrabook offerings looks extremely compelling due to the new Xe
+integrated graphics introduced in this generation. Its (theoretical)
+performance is finally catching up with previous generation entry-level
+gaming graphics and current generation dedicated graphics found in slim
+laptops (1050 Ti and MX 350/450). Of course this is Intel and
+theoretical performance doesn’t mean much when their driver kind of
+sucks (severe performance drops and incompatibilities in some games).
+But it’s been rock solid for daily desktop usage (and Minecraft gaming
+because that’s literally the only game I play now). So I decided I’m
+just going to roll with it.</p>
<h2 id="tocanch1" class="tvis">Why Framework?</h2>
-<p>I’m not a fan of laptops in the desktop replacement category, even I often use mine as one (in terms of the workload I run on it). They are just too chunky for liking.</p>
-<p>Trackpoint is essential for my survival when using a laptop. Instead with torturing myself with a huge touchpad, I’d rather stick with an old ThinkPad with no touchpad.</p>
-<p>Wait, don’t these two criteria alone restrict my choice to ThinkPads and a few other business laptops?</p>
-<p>Well, true… but when I laid my hands on a 9th generation X1 Carbon, it feels so different that I wasn’t even convinced that I was interacting with a ThinkPad anymore: especially the new keyboard with further reduced travel and the trackpoint buttons with virtually no tactile response. I decided to extend my radar to include models that don’t have a trackpoint, and use an external trackpoint keyboard with it if I get one of such models instead. Of course I was not ruling out ThinkPads, I was just allowing myself to get something other than a ThinkPad.</p>
-<p>In Feburary 2021 I saw a few news articles about this new “Framework” thing popping up. I find it interesting, but the modular expansion thing is just a gimmick, and I had suspicion that they are trying to ride the hype around right to repair – not to say that is wrong. Of course the hardware configuration is all fine and dandy, but I’m no buying something with a single selling point of expansion modules (which at the time of writing offers nothing but ports and features found on almost every single laptop on the market).</p>
-<p>When further details on the laptop surfaced, it started to get interesting. It was suggested that motherboard of future revisions can act as drop-in upgrades, and that the motherboard can be easily transformed into a small form-factor PC. Also display and keyboard assembly would be available for consumers to purchase online in case a replacement is necessary. This immediately bring this laptop to a level higher in my tier list, as it was becoming apparent that they are doing actual work.</p>
-<p>And then just a few weeks after I got into the States, my X1 yoga started experiencing random system-wide freezes once again. It was a good excuse for a new laptop, I thought. I checked Lenovo’s website but found out (pretty shockingly) that there was no discount active during that time, and all X1s were ludicrously priced. And then I placed my pre-order of the Framework Laptop. (Of course I ordered the DIY edition, saved me a decent chunk of funds!)</p>
+<p>I’m not a fan of laptops in the desktop replacement category, even I
+often use mine as one (in terms of the workload I run on it). They are
+just too chunky for liking.</p>
+<p>Trackpoint is essential for my survival when using a laptop. Instead
+with torturing myself with a huge touchpad, I’d rather stick with an old
+ThinkPad with no touchpad.</p>
+<p>Wait, don’t these two criteria alone restrict my choice to ThinkPads
+and a few other business laptops?</p>
+<p>Well, true… but when I laid my hands on a 9th generation X1 Carbon,
+it feels so different that I wasn’t even convinced that I was
+interacting with a ThinkPad anymore: especially the new keyboard with
+further reduced travel and the trackpoint buttons with virtually no
+tactile response. I decided to extend my radar to include models that
+don’t have a trackpoint, and use an external trackpoint keyboard with it
+if I get one of such models instead. Of course I was not ruling out
+ThinkPads, I was just allowing myself to get something other than a
+ThinkPad.</p>
+<p>In Feburary 2021 I saw a few news articles about this new “Framework”
+thing popping up. I find it interesting, but the modular expansion thing
+is just a gimmick, and I had suspicion that they are trying to ride the
+hype around right to repair – not to say that is wrong. Of course the
+hardware configuration is all fine and dandy, but I’m no buying
+something with a single selling point of expansion modules (which at the
+time of writing offers nothing but ports and features found on almost
+every single laptop on the market).</p>
+<p>When further details on the laptop surfaced, it started to get
+interesting. It was suggested that motherboard of future revisions can
+act as drop-in upgrades, and that the motherboard can be easily
+transformed into a small form-factor PC. Also display and keyboard
+assembly would be available for consumers to purchase online in case a
+replacement is necessary. This immediately bring this laptop to a level
+higher in my tier list, as it was becoming apparent that they are doing
+actual work.</p>
+<p>And then just a few weeks after I got into the States, my X1 yoga
+started experiencing random system-wide freezes once again. It was a
+good excuse for a new laptop, I thought. I checked Lenovo’s website but
+found out (pretty shockingly) that there was no discount active during
+that time, and all X1s were ludicrously priced. And then I placed my
+pre-order of the Framework Laptop. (Of course I ordered the DIY edition,
+saved me a decent chunk of funds!)</p>
<h2 id="tocanch2" class="tvis">Important dates</h2>
<ul>
-<li>Pre-order placed: 2021-09-16, Batch 4 (I swear this is totally unrelated to Linus Sebastian’s Framework investment video)</li>
+<li>Pre-order placed: 2021-09-16, Batch 4 (I swear this is totally
+unrelated to Linus Sebastian’s Framework investment video)</li>
<li>Remaining balance charged: 2021-10-06</li>
<li>Shipped: 2021-10-11</li>
-<li>Received: 2021-10-13 (probably leaks my rough geological location, but whatever)</li>
+<li>Received: 2021-10-13 (probably leaks my rough geological location,
+but whatever)</li>
</ul>
<h2 id="tocanch3" class="tvis">Configuration ordered</h2>
<ul>
@@ -86,14 +141,23 @@ function ol()
<li>No SSD (Bring your own). 1 TB Samsung 970 Pro installed.</li>
<li>Intel AX210 wireless</li>
<li>ANSI keyboard (US layout)</li>
-<li>2x USB Type-A expansion modules, 4x USB Type-C expansion modules, and 1x HDMI expansion module</li>
+<li>2x USB Type-A expansion modules, 4x USB Type-C expansion modules,
+and 1x HDMI expansion module</li>
<li>With power adapter</li>
<li>Windows 10 Professional license</li>
<li>$2153 before tax + $230 for the SSD</li>
</ul>
<h2 id="tocanch4" class="tvis">Unboxing and setting up</h2>
-<p>The laptop arrived in an inconspicuous shipping box, with symbols on it suggesting it contains stuff that may explode. Inside is the actual box with intriguing designs. There was only minimal amount of paperwork in the package.</p>
-<p>Despite being the DIY edition, the laptop comes almost completely pre-assembled. There’s <a href="https://frame.work/blog/the-evolution-of-the-framework-laptop-diy-edition">a blog post</a> on the official website explaining why that is the case. For this reason putting the thing together is incredibly straight forward. Within minutes I got the thing up and running (while booting into nothing of course).</p>
+<p>The laptop arrived in an inconspicuous shipping box, with symbols on
+it suggesting it contains stuff that may explode. Inside is the actual
+box with intriguing designs. There was only minimal amount of paperwork
+in the package.</p>
+<p>Despite being the DIY edition, the laptop comes almost completely
+pre-assembled. There’s <a href="https://frame.work/blog/the-evolution-of-the-framework-laptop-diy-edition">a
+blog post</a> on the official website explaining why that is the case.
+For this reason putting the thing together is incredibly straight
+forward. Within minutes I got the thing up and running (while booting
+into nothing of course).</p>
<table>
<tbody><tr>
<td>
@@ -110,7 +174,8 @@ function ol()
<tr>
<td>
<div style="text-align:center;max-width:98%;">
-<a href="//filestorage.chrisoft.org/blog/img/fwunbox2.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwunbox2.jpg"></a> <br>The box inside the box
+<a href="//filestorage.chrisoft.org/blog/img/fwunbox2.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwunbox2.jpg"></a> <br>The box inside the
+box
</div>
</td>
<td>
@@ -127,13 +192,22 @@ function ol()
</td>
<td>
<div style="text-align:center;max-width:98%;">
-<a href="//filestorage.chrisoft.org/blog/img/fwassembled.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwassembled.jpg"></a> <br>Components in place
+<a href="//filestorage.chrisoft.org/blog/img/fwassembled.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwassembled.jpg"></a> <br>Components in
+place
</div>
</td>
</tr>
</tbody></table>
-<p>I decided to get Windows working first, even it hasn’t been my primary operating system for almost a decade. I prepared the first release of Windows 11 on a USB stick. But of course I decided to torture myself by not using the official installation media (it doesn’t matter anyway, as after the first attempt failed I tried the official installation media and it also failed for some reason, see the pictures below). Eventually I got the dism installation procedure working.</p>
-<p>Windows, being Windows, gave me a few silly errors when I was going through the OOBE. The official driver package is necessary to get all devices working.</p>
+<p>I decided to get Windows working first, even it hasn’t been my
+primary operating system for almost a decade. I prepared the first
+release of Windows 11 on a USB stick. But of course I decided to torture
+myself by not using the official installation media (it doesn’t matter
+anyway, as after the first attempt failed I tried the official
+installation media and it also failed for some reason, see the pictures
+below). Eventually I got the dism installation procedure working.</p>
+<p>Windows, being Windows, gave me a few silly errors when I was going
+through the OOBE. The official driver package is necessary to get all
+devices working.</p>
<table>
<tbody><tr>
<td>
@@ -165,14 +239,18 @@ function ol()
</td>
</tr>
</tbody></table>
-<p>Next step will be my daily driving operating system. Of course it’s going to be Gentoo. What do you mean I’m insane?</p>
-<p>I used the Arch Linux ISO to bootstrap the installation. Now I made people from both distros hate me.</p>
-<p>After roughly 10 hours of CPU stress testing, a basic KDE plasma desktop was emerged. Not too bad for a slim laptop.</p>
+<p>Next step will be my daily driving operating system. Of course it’s
+going to be Gentoo. What do you mean I’m insane?</p>
+<p>I used the Arch Linux ISO to bootstrap the installation. Now I made
+people from both distros hate me.</p>
+<p>After roughly 10 hours of CPU stress testing, a basic KDE plasma
+desktop was emerged. Not too bad for a slim laptop.</p>
<table>
<tbody><tr>
<td>
<div style="text-align:center;max-width:98%;">
-<a href="//filestorage.chrisoft.org/blog/img/fwarchtrigger.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwarchtrigger.jpg"></a> <br>Trigger warning
+<a href="//filestorage.chrisoft.org/blog/img/fwarchtrigger.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwarchtrigger.jpg"></a> <br>Trigger
+warning
</div>
</td>
<td>
@@ -183,75 +261,219 @@ function ol()
</tr>
</tbody></table>
<h2 id="tocanch5" class="tvis">Performance</h2>
-<p>For a comprehensive performance review of the Framework laptop, you should be reading a more professional review, not this article. This section will focus on my personal use cases instead.</p>
+<p>For a comprehensive performance review of the Framework laptop, you
+should be reading a more professional review, not this article. This
+section will focus on my personal use cases instead.</p>
<h3 id="tocanch6" class="tvis">Processing power</h3>
-<p>My daily work, when it comes to the processing power intense parts, mainly involves running tests, building small-to-moderate sized projects, and performance profiling. Of course there is also routine rebuilds of huge applications due to my choice of distro. Plus some music mixing when I have the time for it.</p>
-<p>Thanks to the two additional cores and drastically improved clocks and IPC, the 11th gen i7 is more than 3 times more powerful than my old 6th gen i7 for code compilation workloads, while having similar sustained power consumption under such workload (RAPL reports ~28 watts for both machines). As an example, Chromium 98.0.4710.4 took 883 minutes to emerge on my old i7, while on the Framework it took 273 minutes. The new processor is also able to handle music projects with over 100 tracks, even with a decent performance headroom. In some other cases where the load is less than “all-cores”, it even had more than 4 times the performance of its older counterpart. To achieve an even better result the only option is to go AMD, which they hadn’t yet offer <a id="n1" href="#note1" class="note">[1]</a>. Overall the performance is a win for me.</p>
+<p>My daily work, when it comes to the processing power intense parts,
+mainly involves running tests, building small-to-moderate sized
+projects, and performance profiling. Of course there is also routine
+rebuilds of huge applications due to my choice of distro. Plus some
+music mixing when I have the time for it.</p>
+<p>Thanks to the two additional cores and drastically improved clocks
+and IPC, the 11th gen i7 is more than 3 times more powerful than my old
+6th gen i7 for code compilation workloads, while having similar
+sustained power consumption under such workload (RAPL reports ~28 watts
+for both machines). As an example, Chromium 98.0.4710.4 took 883 minutes
+to emerge on my old i7, while on the Framework it took 273 minutes. The
+new processor is also able to handle music projects with over 100
+tracks, even with a decent performance headroom. In some other cases
+where the load is less than “all-cores”, it even had more than 4 times
+the performance of its older counterpart. To achieve an even better
+result the only option is to go AMD, which they hadn’t yet offer
+<a id="n1" href="#note1" class="note">[1]</a>. Overall the performance is
+a win for me.</p>
<h3 id="tocanch7" class="tvis">Graphics</h3>
-<p>As mentioned above, the performance of the integrated Xe graphics is finally catching up with entry-level gaming GPUs within the last 2 generations. While the Linux Mesa driver has been rock solid for desktop usage for quite some time, a lot more could be expected for gaming as online benchmark results show wild variations among different titles. Not to mention the erroneous behavior with certain aspects of legacy rendering APIs. Modern APIs behave a lot better in general.</p>
-<p>On real-world performance, for the first time in history, Minecraft with ultra shaders (BSL) can run (correctly!) on one of my laptops with a stable 60 fps. They wouldn’t even apply correctly on any of the older Intel GPUs I’ve used. With compromises, Microsoft Flight Simulator runs (with Valve’s Proton) at a stable-ish 30 fps with acceptable visuals.</p>
+<p>As mentioned above, the performance of the integrated Xe graphics is
+finally catching up with entry-level gaming GPUs within the last 2
+generations. While the Linux Mesa driver has been rock solid for desktop
+usage for quite some time, a lot more could be expected for gaming as
+online benchmark results show wild variations among different titles.
+Not to mention the erroneous behavior with certain aspects of legacy
+rendering APIs. Modern APIs behave a lot better in general.</p>
+<p>On real-world performance, for the first time in history, Minecraft
+with ultra shaders (BSL) can run (correctly!) on one of my laptops with
+a stable 60 fps. They wouldn’t even apply correctly on any of the older
+Intel GPUs I’ve used. With compromises, Microsoft Flight Simulator runs
+(with Valve’s Proton) at a stable-ish 30 fps with acceptable
+visuals.</p>
<h3 id="tocanch8" class="tvis">Thermal &amp; Emissions</h3>
<p>One word: bad.</p>
<p>Not intolerable, but pretty bad.</p>
-<p>Maybe this is just the inescapable curse of all ultrabooks. But under heavy load the upper region of the keyboard is almost too hot to touch. To make things worse, the unibody-inspired design (where the gaps between keys is part of the top cover of the machine’s lower half, rather than part of the keyboard assembly) means the metal part that is between keys are at a even higher temperature. It’s not exactly enjoyable to type on the built-in keyboard when the processor is under heavy load.</p>
-<p>Under constant max load, the processor temperature maintains steadily at around 100 degrees Celcius. This is considerably higher than my X1 yoga, which peaks at 95 degrees and drops to 85 degrees if the load is sustained.</p>
-<p>The fan noise is also way worse on the Framework. The fan curve is quite aggressive, ramping up rapidly when the processor temperature reaches 60 degrees, and maxes out at 80 degrees and beyond. The noise is audible even in a moderately noisy room. In contrast the fan in my X1 ramps up much slower with more steps.</p>
-<p>Also there’s no manual undervolting on tigerlake-U platforms, likely as a mitigation to the plundervolt vulnerability.</p>
+<p>Maybe this is just the inescapable curse of all ultrabooks. But under
+heavy load the upper region of the keyboard is almost too hot to touch.
+To make things worse, the unibody-inspired design (where the gaps
+between keys is part of the top cover of the machine’s lower half,
+rather than part of the keyboard assembly) means the metal part that is
+between keys are at a even higher temperature. It’s not exactly
+enjoyable to type on the built-in keyboard when the processor is under
+heavy load.</p>
+<p>Under constant max load, the processor temperature maintains steadily
+at around 100 degrees Celcius. This is considerably higher than my X1
+yoga, which peaks at 95 degrees and drops to 85 degrees if the load is
+sustained.</p>
+<p>The fan noise is also way worse on the Framework. The fan curve is
+quite aggressive, ramping up rapidly when the processor temperature
+reaches 60 degrees, and maxes out at 80 degrees and beyond. The noise is
+audible even in a moderately noisy room. In contrast the fan in my X1
+ramps up much slower with more steps.</p>
+<p>Also there’s no manual undervolting on tigerlake-U platforms, likely
+as a mitigation to the plundervolt vulnerability.</p>
<h3 id="tocanch9" class="tvis">Others</h3>
-<p>One of the last consumer MLC SSDs, Samsung 970 Pro, performs well in benchmarks.</p>
-<p>Keyboard is not great (see below). Trackpad is … meh. I don’t use that thing anyway.</p>
+<p>One of the last consumer MLC SSDs, Samsung 970 Pro, performs well in
+benchmarks.</p>
+<p>Keyboard is not great (see below). Trackpad is … meh. I don’t use
+that thing anyway.</p>
<table>
<tbody><tr>
<td>
<div style="text-align:center;max-width:98%;">
-<a href="//filestorage.chrisoft.org/blog/img/fwssdspeeds.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwssdspeeds.jpg"></a> <br>The best consumer grade PCIe 3.0 SSD in the west (asterisk)
+<a href="//filestorage.chrisoft.org/blog/img/fwssdspeeds.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwssdspeeds.jpg"></a> <br>The best
+consumer grade PCIe 3.0 SSD in the west (asterisk)
</div>
</td>
<td>
<div style="text-align:center;max-width:98%;">
-<a href="//filestorage.chrisoft.org/blog/img/fwbadarrowklayout.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwbadarrowklayout.jpg"></a> <br>Awkward arrow key layout
+<a href="//filestorage.chrisoft.org/blog/img/fwbadarrowklayout.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fwbadarrowklayout.jpg"></a> <br>Awkward
+arrow key layout
</div>
</td>
</tr>
</tbody></table>
-<p>ACPI reports a 8-hour estimate on battery. Running on battery for 90 minutes with light-to-moderate usage usually uses 20% of the capacity (screen always on, wireless on, typing with browser running in background), give or take, consistent with the estimation. I’ve yet to run the battery until it’s flat.</p>
-<p>The screen is fabulous. Way more vibrant than that LCD on my first generation X1 yoga. Not a professional graphic designer or in any other job that depends on an accurate display, so that’s just my personal opinion.</p>
-<p>Speaker is at least 10 times better than any ThinkPads I’ve ever used. Still not on par with an Apple laptop though.</p>
+<p>ACPI reports a 8-hour estimate on battery. Running on battery for 90
+minutes with light-to-moderate usage usually uses 20% of the capacity
+(screen always on, wireless on, typing with browser running in
+background), give or take, consistent with the estimation. I’ve yet to
+run the battery until it’s flat.</p>
+<p>The screen is fabulous. Way more vibrant than that LCD on my first
+generation X1 yoga. Not a professional graphic designer or in any other
+job that depends on an accurate display, so that’s just my personal
+opinion.</p>
+<p>Speaker is at least 10 times better than any ThinkPads I’ve ever
+used. Still not on par with an Apple laptop though.</p>
<h2 id="tocanch10" class="tvis">Issues</h2>
<h3 id="tocanch11" class="tvis">Instabilities</h3>
-<p>The system sometimes goes into a complete lockup, unresponsive to any inputs (except a forceful power off), when it has been left idle for an extended period. This never happens if the system is loaded. I could not obtain any useful diagnostics.</p>
-<p>With the release of BIOS version 3.09, which claims to resolve an “issue where the system will sometimes abnormally shutdown unexpectedly”, hopefully this such freezes will be gone. However I haven’t been running 3.09/3.10 for long enough to come to such conclusion.</p>
+<p>The system sometimes goes into a complete lockup, unresponsive to any
+inputs (except a forceful power off), when it has been left idle for an
+extended period. This never happens if the system is loaded. I could not
+obtain any useful diagnostics.</p>
+<p>With the release of BIOS version 3.09, which claims to resolve an
+“issue where the system will sometimes abnormally shutdown
+unexpectedly”, hopefully this such freezes will be gone. However I
+haven’t been running 3.09/3.10 for long enough to come to such
+conclusion.</p>
<h3 id="tocanch12" class="tvis">Port interference? …</h3>
-<p>My ThinkPad wireless mouse suffers from stuttery movement when used on the Framework laptop. I’ve never had similar issues with this mouse before. This affects both operating systems installed. It doesn’t happen all the time, the chance of it happening is higher when the system is more heavily loaded.</p>
-<p>Occasionally, the ports on the right side stop working altogether, and the kernel message gets flooded with output like this:</p>
+<p>My ThinkPad wireless mouse suffers from stuttery movement when used
+on the Framework laptop. I’ve never had similar issues with this mouse
+before. This affects both operating systems installed. It doesn’t happen
+all the time, the chance of it happening is higher when the system is
+more heavily loaded.</p>
+<p>Occasionally, the ports on the right side stop working altogether,
+and the kernel message gets flooded with output like this:</p>
<pre><code>[75512.894957] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[75517.158969] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[75521.422973] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[75525.686857] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[75529.950973] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?</code></pre>
-<p>On Windows, a notification “USB Device not recognized” is repeatedly displayed.</p>
-<p><a href="https://knowledgebase.frame.work/en_us/one-port-on-my-laptop-does-not-function-correctly-r1mqMnTet">This knowledge base article</a> is not relevant to my particular case, as my unit doesn’t have the problematic EMI shield.</p>
-<p>However I’ve noticed that this issue hasn’t reoccurred for a while. Perhaps It could be a BIOS issue that has been patched since.</p>
+<p>On Windows, a notification “USB Device not recognized” is repeatedly
+displayed.</p>
+<p><a href="https://knowledgebase.frame.work/en_us/one-port-on-my-laptop-does-not-function-correctly-r1mqMnTet">This
+knowledge base article</a> is not relevant to my particular case, as my
+unit doesn’t have the problematic EMI shield.</p>
+<p>However I’ve noticed that this issue hasn’t reoccurred for a while.
+Perhaps It could be a BIOS issue that has been patched since.</p>
<h3 id="tocanch13" class="tvis">… and a general lack of ports</h3>
-<p>But this one can’t be resolved by a BIOS patch. With the laptop plugged in, I have a whopping 3 USB ports for USB peripherals. It reduces to 2 when I use it with the trackpoint keyboard (which is pretty much all the time as I need a trackpoint to survive). This is nowhere close to enough – considering my old X1 also has 3 USB ports, not to mention it has dedicated ports for two external monitors.</p>
-<p>This is why I maintain my opinion that the expansion modules are currently a gimmick. There are no expansion cards that are unique enough to justify them – no WWAN card, no full size SD card reader, nor even an ethernet port (until very recently). Full size DisplayPort and storage expansion are cool, but they take up precious USB ports which means for my use case a dock is mandatory anyway if one of those cards is installed, nullifying the point of using these cards. I personally would favor a design with more fixed ports (which is already the case for the audio jack on the Framework), maybe 3 fixed USB Type-C ports on the left and 2 expansion card slots on the right. More useful expansion cards could also be a solution, like a mini hub with two USB Type-C ports. Even a proprietary port for connecting expansion cards to the computer (like two sets of USB 4 signals in a single port) is acceptable for me, to allow simpler designs of some dual function cards (e.g. storage card with a USB port); as these on board connectors aren’t meant to be used directly, users are always expected to plug an expansion card into them.</p>
+<p>But this one can’t be resolved by a BIOS patch. With the laptop
+plugged in, I have a whopping 3 USB ports for USB peripherals. It
+reduces to 2 when I use it with the trackpoint keyboard (which is pretty
+much all the time as I need a trackpoint to survive). This is nowhere
+close to enough – considering my old X1 also has 3 USB ports, not to
+mention it has dedicated ports for two external monitors.</p>
+<p>This is why I maintain my opinion that the expansion modules are
+currently a gimmick. There are no expansion cards that are unique enough
+to justify them – no WWAN card, no full size SD card reader, nor even an
+ethernet port (until very recently). Full size DisplayPort and storage
+expansion are cool, but they take up precious USB ports which means for
+my use case a dock is mandatory anyway if one of those cards is
+installed, nullifying the point of using these cards. I personally would
+favor a design with more fixed ports (which is already the case for the
+audio jack on the Framework), maybe 3 fixed USB Type-C ports on the left
+and 2 expansion card slots on the right. More useful expansion cards
+could also be a solution, like a mini hub with two USB Type-C ports.
+Even a proprietary port for connecting expansion cards to the computer
+(like two sets of USB 4 signals in a single port) is acceptable for me,
+to allow simpler designs of some dual function cards (e.g. storage card
+with a USB port); as these on board connectors aren’t meant to be used
+directly, users are always expected to plug an expansion card into
+them.</p>
<h3 id="tocanch14" class="tvis">Keyboard</h3>
-<p>Like many people coming from a ThinkPad with 1.8 mm key travel, I find the keyboard of the Framework laptop lacking in tactile response. Even when compared to the keyboard on a 9th gen X1 Carbon which has the same 1.5 mm travel, Framework’s keyboard still loses by quite a large margin. Also the keyboard features the rather bad (in my opinion) layout of arrow keys.</p>
-<p>This is not to say the built-in keyboard is completely unusable as such. But I do still prefer using a ThinkPad keyboard, whenever it’s available to me.</p>
+<p>Like many people coming from a ThinkPad with 1.8 mm key travel, I
+find the keyboard of the Framework laptop lacking in tactile response.
+Even when compared to the keyboard on a 9th gen X1 Carbon which has the
+same 1.5 mm travel, Framework’s keyboard still loses by quite a large
+margin. Also the keyboard features the rather bad (in my opinion) layout
+of arrow keys.</p>
+<p>This is not to say the built-in keyboard is completely unusable as
+such. But I do still prefer using a ThinkPad keyboard, whenever it’s
+available to me.</p>
<h2 id="tocanch15" class="tvis">Customer Service</h2>
-<p>This is where Framework really shines as a new player in the world of laptop manufacturers. I wouldn’t expect to get in touch directly with someone on their hardware team by simply reporting a firmware issue.</p>
-<p>So I decided to try out the latest development version of memtest86+. I built it myself, however it booted on all my machines but the Framework laptop. I reported the issue to memtest86+ developers, and came to the conclusion that it has something to do with the firmware. So I contacted support, and linked the github issue in the support request. The support team wrote back pretty fast (within 24 hours), and to my surprise, agreed to connect me with the hardware team directly. After a few back and forth between the hardware team and memtest86+ developers, it was determined that the cause is 8254 timer gating. Later I heard back from the person on the hardware team that the relevant setting will be added in BIOS version 3.09, which was released a few days ago. I installed the update and set 8254 timer gating to disabled, and memtest86+ worked as expected.</p>
-<p>That was my only, yet pretty bizarre experience of Framework’s customer service. I don’t think there could be any chance ever that I could get in touch with someone on the hardware team of any prominent laptop brands, but Framework can do it. Kudos to the Framework support team, and I hope they would be able to maintain this level of customer service when they get bigger.</p>
+<p>This is where Framework really shines as a new player in the world of
+laptop manufacturers. I wouldn’t expect to get in touch directly with
+someone on their hardware team by simply reporting a firmware issue.</p>
+<p>So I decided to try out the latest development version of memtest86+.
+I built it myself, however it booted on all my machines but the
+Framework laptop. I reported the issue to memtest86+ developers, and
+came to the conclusion that it has something to do with the firmware. So
+I contacted support, and linked the github issue in the support request.
+The support team wrote back pretty fast (within 24 hours), and to my
+surprise, agreed to connect me with the hardware team directly. After a
+few back and forth between the hardware team and memtest86+ developers,
+it was determined that the cause is 8254 timer gating. Later I heard
+back from the person on the hardware team that the relevant setting will
+be added in BIOS version 3.09, which was released a few days ago. I
+installed the update and set 8254 timer gating to disabled, and
+memtest86+ worked as expected.</p>
+<p>That was my only, yet pretty bizarre experience of Framework’s
+customer service. I don’t think there could be any chance ever that I
+could get in touch with someone on the hardware team of any prominent
+laptop brands, but Framework can do it. Kudos to the Framework support
+team, and I hope they would be able to maintain this level of customer
+service when they get bigger.</p>
<p>The full issue report on github is <a href="https://github.com/memtest86plus/memtest86plus/issues/40">here</a>.</p>
<h2 id="tocanch16" class="tvis">Y no upgrade to 12th gen?</h2>
-<p>Intel’s 12th gen processors are winning grounds on the desktop front, but in the mobile sector they don’t look so hot. I’ve seen people with their shiny new 10th gen X1 Carbon complaining about poor battery life and even worse thermal performances. Also in order to upgrade without letting the original motherboard fall into disuse, I would either buy new RAM and SSD for it, or sell it somehow. Either option is hard to justify for me. That’s why I decided against upgrading for now. I may consider upgrading to 13th gen whenever that gets released.</p>
+<p>Intel’s 12th gen processors are winning grounds on the desktop front,
+but in the mobile sector they don’t look so hot. I’ve seen people with
+their shiny new 10th gen X1 Carbon complaining about poor battery life
+and even worse thermal performances. Also in order to upgrade without
+letting the original motherboard fall into disuse, I would either buy
+new RAM and SSD for it, or sell it somehow. Either option is hard to
+justify for me. That’s why I decided against upgrading for now. I may
+consider upgrading to 13th gen whenever that gets released.</p>
<h2 id="tocanch17" class="tvis">Any buyer’s remorse?</h2>
-<p>Hate to break it for you, but I’m still not daily driving my Framework laptop – in fact, I’m typing this sentence on my old X1.</p>
-<p>But there’s no buyer’s remorse in general. Not being a daily driver doesn’t mean it has fallen out of favor. Instead, there are now clear roles assigned to these two laptops. I’ve moved all my music production setup and games to the Framework laptop. It also functions as a build server now (both for binary Gentoo packages, and as a networked build server). The X1 only functions as a typewriter and web browser nowadays.</p>
-<p>All current issues I had with this machine have either been resolved, or have existing workarounds. There is no trackpoint, no WWAN, no touch screen or digitizer, or connecting to 3 USB devices and an external monitor while charging compared to my old X1 – this is not a ThinkPad after all. But it does have third party board level repair with support from the company itself (they have started to provide full schematics to third party repair shops under NDA), easy access to parts, open source firmware, upgradable platform, and promise of a coreboot BIOS. These are the reasons I chose to support Framework as a company. So let my first purchase be a small contribution to them.</p>
+<p>Hate to break it for you, but I’m still not daily driving my
+Framework laptop – in fact, I’m typing this sentence on my old X1.</p>
+<p>But there’s no buyer’s remorse in general. Not being a daily driver
+doesn’t mean it has fallen out of favor. Instead, there are now clear
+roles assigned to these two laptops. I’ve moved all my music production
+setup and games to the Framework laptop. It also functions as a build
+server now (both for binary Gentoo packages, and as a networked build
+server). The X1 only functions as a typewriter and web browser
+nowadays.</p>
+<p>All current issues I had with this machine have either been resolved,
+or have existing workarounds. There is no trackpoint, no WWAN, no touch
+screen or digitizer, or connecting to 3 USB devices and an external
+monitor while charging compared to my old X1 – this is not a ThinkPad
+after all. But it does have third party board level repair with support
+from the company itself (they have started to provide full schematics to
+third party repair shops under NDA), easy access to parts, open source
+firmware, upgradable platform, and promise of a coreboot BIOS. These are
+the reasons I chose to support Framework as a company. So let my first
+purchase be a small contribution to them.</p>
</article>
</div><br><hr>
- <div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>: and I’m not going to choose even if there is one, due to previous traumatic experience I had with AMD platforms. Unreasonable I know, but it’s hard to overcome.<br></span></div>
+ <div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>: and I’m not going to choose even if there is one, due to
+previous traumatic experience I had with AMD platforms. Unreasonable I
+know, but it’s hard to overcome.<br></span></div>
<div id="insanch" style="height:3em;"></div>
<div id="footer" style="">
<div id="pagesw" class="TText" style="width:100%;height:0.5em;"></div>
diff --git a/blog/post/2023-11-13.html b/blog/post/2023-11-13.html
new file mode 100644
index 0000000..30ffa11
--- /dev/null
+++ b/blog/post/2023-11-13.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html><html><head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="theme-color" content="#000000">
+<title>Chrisoft::Blog</title>
+<script type="text/javascript" src="/panel.js"></script>
+<script type="text/javascript" src="/themer.js"></script>
+<script type="text/javascript" src="/blog/footnoter.js"></script>
+<script type="text/javascript" src="/blog/aes-js.js"></script>
+<script type="text/javascript" src="/blog/scrypt.js"></script>
+<script type="text/javascript" src="/blog/sha256.js"></script>
+<script type="text/javascript" src="/blog/decryptor.js"></script>
+<link rel="stylesheet" type="text/css" href="/common.css">
+<link rel="stylesheet" type="text/css" href="/panel.css">
+<link rel="stylesheet" type="text/css" href="/theme0a.css" id="theme0a">
+<link rel="stylesheet" type="text/css" href="/theme0b.css" id="theme0b">
+<link rel="stylesheet" type="text/css" href="/theme1a.css" id="theme1a">
+<link rel="stylesheet" type="text/css" href="/theme1b.css" id="theme1b">
+<link rel="stylesheet" type="text/css" href="/theme2a.css" id="theme2a">
+<link rel="stylesheet" type="text/css" href="/theme2b.css" id="theme2b">
+<link rel="stylesheet" type="text/css" href="/theme3a.css" id="theme3a">
+<link rel="stylesheet" type="text/css" href="/theme3b.css" id="theme3b">
+<link rel="stylesheet" type="text/css" href="/blog/blogext.css">
+<script>
+function ol()
+{
+ window.onresize=function()
+ {
+ if(window.innerWidth<768)
+ setupevents();
+ else unsetevents();
+ }
+ window.onresize();
+ loadTheme();
+ _decryptonload();
+}
+</script>
+</head>
+<body onload="ol()" style="overflow-x:hidden;">
+ <div id="panel" class="TText">
+ <ul id="panellist">
+ <li><a href="/"><h1>Chrisoft</h1></a></li>
+ <li><a href="/blog"><h2>Blog</h2></a></li>
+ <li><a href="#"><h3 id="title">Framework Laptop: Repasting &amp; Two Year Report</h3></a></li>
+ <li><span>Tags</span>
+ <ul id="tagslist">
+ <li><a href="/blog/list/device-review/">device-review</a></li><li><a href="/blog/list/computer-repairing/">computer-repairing</a></li></ul>
+ </li>
+ <li id="tocouter">
+ <span>Table of Contents</span>
+ <ul id="tocroot">
+ <li><a class="toctarg" href="#tocanch0">“Repasting” with PTM 7950</a></li><li><a class="toctarg" href="#tocanch1">Semi-long term review</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch2">Disassembly reveals …</a></li><li><a class="toctarg" href="#tocanch3">Other early adopter issues</a></li><li><a class="toctarg" href="#tocanch4">How well did it hold up?</a></li><li><a class="toctarg" href="#tocanch5">Random rants</a></li></ul></li><li><a class="toctarg" href="#tocanch6">Contemplating upgrades</a></li></ul>
+ </li>
+ <li style="margin-left:-0.5em"><a id="prevp" href="2022-11-27.html">Prev post</a></li>
+ <li style="margin-left:-0.5em"><a id="nextp" href="Privacy.html">Next post</a></li>
+ </ul>
+ </div>
+ <div id="content">
+ <h2 id="titleh" class="TText" style="font-wight:normal;">Framework Laptop: Repasting &amp; Two Year Report</h2>
+ <div id="datetags" class="TText" style="margin-bottom:1em;">2023-11-13<br>#device-review #computer-repairing</div>
+ <hr><div id="article" class="TText"><article>
+<h2 id="tocanch0" class="tvis">“Repasting” with PTM 7950</h2>
+<p>I’ve been reading testimonials from people replacing thermal paste in
+their laptops with
+<a href="https://thermalmanagement.honeywell.com/content/dam/thermalmanagement/en/documents/document-lists/technical/pmt-am-tims-ltm6300-pcm45f-ptm5000-series-data-sheet.pdf">PTM
+7950</a>, mostly praising the amazing effectiveness of the material,
+with some reporting a drastic 20 degrees C reduction. I was skeptical of
+such claims. Such temperature reduction just seemed impossible to me,
+especially considering the conductivity of PTM 7950 is pretty much the
+same as most non-terrible thermal pastes on paper.</p>
+<p>Anyway I decided to give it a try myself when I saw this mystic
+material on sale for barely above $10 the other day.</p>
+<p>The repasting process went pretty smoothly. However I did notice that
+the screw marked “3” on the heatsink seemed a lot looser than the other
+two. Maybe that has something to do with the horrible thermal I had
+before…</p>
+<p>Time for the results. Spoiler alert: it’s impressive. I cannot do a
+scientific before and after comparison, but I did ran a few of my
+day-to-day tasks as tests. Idle temperatures are already much better:
+50°C before vs 38°C after. Under a short code compilation load (around 5
+minutes), the initial temperatures are similar (~100°C before vs 96°C
+after), but the CPU was able to boost much closer to its designated PL2
+power (58W vs 45W, advertised PL2 being 60W). After the processor
+stabilizes at its PL1 power it goes down to below 80°C, while the under
+the old paste it was a constant 90+°C. The task also finishes ~10%
+faster than before.</p>
+<p>While my results aren’t as insane as some others got, it was still
+huge. The biggest improvement is that merely browsing the Internet
+without setting CPU power policy to powersave is now bearable – I’ve
+mentioned in my previous post that the fan noise of the Framework laptop
+is a pretty big issue for me personally, as the noise it emits when the
+processor is above 55°C is extremely distracting in a quiet room. I also
+got ~10% more performance out of this CPU, which probably makes this the
+best $10 I spent on tech-related products for the past few years.</p>
+<p>So would I recommend the PTM 7950? Yes, but only when you
+<em>have</em> to do a repaste. As I mention before, I was skeptical of
+claims about the magical power of PTM 7950. To be clear I wasn’t
+doubting the thermal conductivity of the material, but rather the cause
+of the temperature reduction people have been reporting – maybe their
+old paste had completely dried out, or the factory paste application is
+utter garbage. For my specific case – I have my reasons to suspect the
+same due to the aforementioned loose screw on the heatsink I had. While
+I have never touched the heatsink assembly myself since day one until
+today, and the thermal profile of the machine was fairly consistent for
+the past 2 years, I couldn’t rule out everything. So I don’t really know
+if it is a factory defect or something else. Also I’ve seen reports that
+<a href="https://www.reddit.com/r/LenovoLegion/comments/tfxomi/">certain
+newer laptops already use similar phase change material as its <span title="Thermal Interface Material" style="text-decoration-line:underline;text-decoration-style:dotted;">TIM</span></a>.
+So if you’re considering to repaste your brand new laptop (which isn’t
+always a great idea in the first place) with PTM 7950, do remember to
+check if that’s the case.</p>
+<table>
+<tbody><tr>
+<td>
+<div style="text-align:center;max-width:98%;">
+<a href="//filestorage.chrisoft.org/blog/img/fw-factorypaste.jpg"><img style="width: 33%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fw-factorypaste.jpg"></a> <br>Factory
+thermal paste application
+</div>
+</td>
+<td>
+<div style="text-align:center;max-width:98%;">
+<a href="//filestorage.chrisoft.org/blog/img/fw-unp.jpg"><img style="width: 33%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fw-unp.jpg"></a> <br>Factory paste
+removed
+</div>
+</td>
+<td>
+<div style="text-align:center;max-width:98%;">
+<a href="//filestorage.chrisoft.org/blog/img/fw-ptm7.jpg"><img style="width: 33%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1024x1024_fw-ptm7.jpg"></a> <br>PTM 7950 applied
+</div>
+</td>
+</tr>
+</tbody></table>
+<h2 id="tocanch1" class="tvis">Semi-long term review</h2>
+<h3 id="tocanch2" class="tvis">Disassembly reveals …</h3>
+<div style="text-align:center;max-width:90%;">
+<a href="//filestorage.chrisoft.org/blog/img/fw-batsw.jpg"><img style="width: 50%;" src="//filestorage.chrisoft.org/blog/img/ssbsthumb_1536x1536_fw-batsw.jpg"></a> <br>First disassembly
+in 2 years.
+</div>
+<p>A few things jumped out when I opened up the laptop for repasting.
+The first, very obvious and somewhat worrying one is the mildly swollen
+battery (also known as SpicyPillows). I did not ran the laptop a lot
+during the first year, but the second year saw more usage with it
+unplugged (still not as frequent as my ThinkPad X1 yoga 1st gen). The
+swelling isn’t anywhere near extreme, and there’s not a significant
+reduction of battery life since I got the machine. For this reason I’m
+not yet very compelled to replace it. But I will definitely be
+monitoring it much more closely from this point on, as it’s very well
+known that SpicyPillows are potentially dangerous.</p>
+<p>The second, less obvious one is also about a battery, but this time
+the CMOS battery. It was completely flat. I was aware of a
+<a href="https://community.frame.work/t/rework-instructions-for-11th-gen-mainboards-to-enable-powering-the-rtc-circuit-from-the-main-battery/26922">design
+flaw</a> in these 11th gen Intel machines that the CMOS battery only
+gets charged when the laptop is on AC power. However I’m not sure this
+is the cause in my case as my laptop spends most of its lifetime powered
+on and connected to AC power. While I do appreciate the original,
+extremely detailed makeshift solution (which is under the “Archived”
+section of the post linked above), I’m not comfortable with the idea of
+scratching a trace off an expensive motherboard. Anyway now that there’s
+a solution that doesn’t involve scratching a trace off the motherboard,
+I’m going to install the
+<a href="https://guides.frame.work/Guide/RTC+Battery+Substitution+on+11th+Gen+Intel%C2%AE+Core%E2%84%A2/203">RTC
+battery substitute module</a> and update this post when that’s done.</p>
+<h3 id="tocanch3" class="tvis">Other early adopter issues</h3>
+<p>The touchpad is flaky. Being a touchpad hater as I am (and a
+trackpoint user for more than half my life), I had to deal with it when
+I’m on the go. A few months ago I found that physical clicks on the
+touchpad no longer works, and apparently I’m not the only one.
+<a id="n1" href="#note1" class="note">[1]</a> There appears to be a
+<a href="https://framework.kustomer.help/articles/-SJQQqt2Hu">simple
+fix</a> which consists of a single step that sounds a little ridiculous
+(“Try pressing the bottom middle of the Touchpad firmly a few times”),
+but it worked for me.</p>
+<p>I do venture out to become an early adopter of certain products
+sometimes, My ThinkPad X1 yoga 1st gen being another example where
+Lenovo experimented with the “yoga” form factor in their ThinkPad
+line-up for the first time. Being an early(-ish) adopter of the
+Framework laptop, I fully expected that there could be issues. So far
+I’ve come across the CMOS battery design flaw, touchpad issue, BIOS
+bugs, unreasonable level of CPU throttling and fingerprint reader driver
+overheating the power button. None of these are severe enough to be a
+deal breaker for me, and all of the listed issues have been more or less
+fixed. I guess my overall experience of being an early adopter has been
+overall positive.</p>
+<h3 id="tocanch4" class="tvis">How well did it hold up?</h3>
+<p>Performance wise, it’s still a beast in its class. These Willow Cove
+cores still eats the Rust compilation workload that I now have to deal
+with on a daily basis as breakfast. Gaming still is an option for me
+considering the only game that I play nowadays is Minecraft, but is
+likely a no-no for any heavier games. While it’s not the most power
+efficient solution available today, it still meets the requirements of
+my setup just fine.</p>
+<p>Battery life isn’t too great in the first place. But the lifetime
+seems to hold up decently despite having a slightly swollen battery
+pack. Again, still fulfills my needs.</p>
+<p>Internals…
+<a href="//filestorage.chrisoft.org/blog/img/fw-fanfilth.jpg">doesn’t
+look great</a> (CW: filthy looking fan). The fan seems to attract dust
+much faster than the one in my ThinkPad X1 yoga.</p>
+<h3 id="tocanch5" class="tvis">Random rants</h3>
+<p>I still find the default fan curve of the laptop downright stupid.
+Ramping it up to 80% of full speed at 60°C doesn’t seem wise to me. Yes
+there are third party tools that can force a fan speed, but I’d rather
+program a more sane fan curve instead.</p>
+<p>Intel’s Xe driver for Windows is still hot garbage for graphics
+development.</p>
+<p>I do not like the forum software Framework uses (Discourse). The idea
+of infinite scrolling never clicked with me. You simultaneously get the
+worst from pagination and single-paged designs. And their page search is
+still crippled to this day. Okay I’ll stop here and keep my other 10
+objections to Discourse with myself.</p>
+<h2 id="tocanch6" class="tvis">Contemplating upgrades</h2>
+<p>Framework promised to provide an upgrade path to owners of their
+laptops and they delivered. Now I have the choice of replacing the
+motherboard in my Framework with a 12th/13th gen Intel board, or a Zen 4
+based AMD board. I’ve explained why I didn’t upgrade to the 12th gen
+Intel board in my previous post, and I’ll state the most important part
+here again: I don’t want to ditch my old board that’s perfectly
+functional. I’ll also say the silent part that was omitted in the
+previous post aloud: I don’t want to purchase the extra parts to build a
+complete computer out of the old board either.</p>
+<p>There are additional reasons that I didn’t upgrade to specific
+available boards. 13th gen Intel boards are especially objectionable due
+to the fact that they still use DDR4 memory. This is year 2023 and DDR5
+memory isn’t hard to find now. Yes I guess you get to keep your old
+memory sticks, but I don’t want an upgrade that seems half-baked thank
+you very much.</p>
+<p>AMD boards seem way more compelling, especially considering the
+performance boost they could bring at the price point they are sold at.
+But I’ve heard that they produce pretty much the exact same noise as the
+original boards once installed, runs as hot under heavy load, and would
+result in increased pain just by the virtue of being AMD <a id="n2" href="#note2" class="note">[2]</a>.
+And I would need to reconfigure the entire kernel <a id="n3" href="#note3" class="note">[3]</a>. For this reason
+I’ve pretty much shelved the idea of upgrading the motherboard in the
+very near future. The only reason for a motherboard upgrade for me now
+would be the old one straight up failing or become unsuitable for my
+tasks.</p>
+<p>There is one upgrade I want to make though. I would absolutely love
+to replace the glossy screen from factory with the new matte one. I was
+never a fan of glossy screens on any laptop and will take a matte
+replacement any day of the week. The price is a little steep though.</p>
+<p>There’s another upgrade that I’d love to get. A trackpoint keyboard
+with proper mouse buttons. I’m sure Lenovo would do anything to sabotage
+it, but I can always dream.</p>
+</article>
+</div><br><hr>
+ <div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>:
+<a href="https://community.frame.work/t/touchpad-clicking-issues/37059">[1]</a>
+<a href="https://community.frame.work/t/touchpad-click-not-working-and-getting-loose/16408">[2]</a>
+<br></span><span class="TText"><a id="note2" href="#n2">[2]</a>: their
+crappy GPU driver being a major PITA for me – my experience with AMD
+graphics seems very inconsistent with most Linux users. No I refuse to
+elaborate here because that would derail the entire post.<br></span><span class="TText"><a id="note3" href="#n3">[3]</a>: Because I
+run Gentoo. Now laugh at me as you wish.<br></span></div>
+ <div id="insanch" style="height:3em;"></div>
+ <div id="footer" style="">
+ <div id="pagesw" class="TText" style="width:100%;height:0.5em;"></div>
+ <div style="text-align:center;" class="TText">
+ Proudly powered by SSBS <reduced style="font-size:70%;">(the static stupid blogging system)</reduced> 2.5
+ <br>
+ Content licensed under CC BY-SA 4.0. <span id="purgep" style="display:none;font-size:70%;">This page has passphrase(s) stored. Click <a href="javascript:_purgep()">here</a> to purge.</span>
+ </div>
+ </div>
+ <div id="cmdbuf" class="TText" style="transition:500ms;padding:1em;font-size:2em;color:white;position:absolute;background-color:rgba(0,0,0,0.6);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;">
+ </div>
+ </div>
+ <div id="decryptui" style="display:none;opacity:0;color:white;z-index:1000;position:fixed;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4);transition:opacity 0.5s;">
+ <div id="decryptdlg" class="TText" style="padding:10px 20px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:rgba(0,0,0,0.6);">
+ <div id="keyhint" style="margin-bottom:8px;"></div>
+ <div style="margin-bottom:8px;">Key: <input id="keyinp" type="text" style="color:#fff;"></div>
+ <div style="height:2.25em;">
+ <button id="btndecrypt" onclick="decryptor(decid,document.getElementById('keyinp').value);" style="position:absolute;left:20px;">Decrypt</button>
+ <button onclick="hidedecryptui();" style="position:absolute;right:20px;">Cancel</button>
+ </div>
+
+ </div>
+
+
+</div></body></html> \ No newline at end of file