<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      日志篇 告示欄

      告示欄


      博文日志,內容不一定對,但請指出.

      本博客已經完成了它的使命.
      現在內容已經全鎖并且不再對外開放.


      跳轉到末尾

      日志

      20251104
      自從發現圖紙集是為了不需要手工排圖紙以及索引ctrl+鼠標跳轉,
      發現很多東西都是基于"圖框"定制,桌子選擇了"布局"為"圖框"基礎要素,
      因為繪圖員是要比較多張圖紙差異的,例如材質/尺寸.
      桌子標準是一布局一張,這種行為只能是拆圖了,然而桌子沒有這個流程和功能.
      這樣很多人產生了割裂感.

      桌子為什么這樣做呢?
      因為這是最少步驟實現.

      桌子為什么不是選擇塊做圖框呢?
      因為圖框塊內容是自由定義的,例如公司logo,這樣不如只約束"字段".
      變得過于自由了,連紙張大小也可以自由了.

      二次開發直接從左邊面板的"偽圖紙集"拖拽一個索引出來,右鍵插入一個圖框,
      圖框內的屬性根據標記自增,攔截復制命令進行自增.
      甚至4個立面圖在一張圖,這個圖數字,我希望是一個遞增復制自動排列.
      剩下比較麻煩是目錄表,用excel-OLE或者cad圖元都行,
      不過太多圖紙之后也需要自動加一個圖框和圖紙...難以標準化的樣子.

      當我想到這里的時候,發現原來它們設計得真是輕松,但凡要自由的地方從來不約束.
      雖說如此,顛覆掉這個畫圖模式還是有些方式.
      1,把布局視口從64擴展到1024.就是不知道視口太密集之后顯示會不會有問題.
      2,revit模式,通過切片顯示圖元.
      3,每張圖紙左右顯示一個可視化跳轉,也就是翻頁,
      這樣就不需要布局選項卡這種東西了,然后多張圖紙用命令緊湊一起.
      這個還有啥方法更好呢?

      ...
      標注關聯是因為有跨空間關聯bug才重構,四舍五入就是min約束求解器.
      貌似我已經從:"如果這個功能我做的話會怎么做?"
      變成:"自己實現這個功能有bug的話還能自己修"

      ...
      外部參照+剪塊,這個模式去做立面圖小平面會遇到一個問題,
      當發生大平面圖整體平移之后,會聯動很多東西修改.
      1,平面布局全部視口,依照平移向量實現:視口框不變+視口角度和視點平移(比例貌似不需要改).
      2,立面小平面,再剪塊.就需要一個逆矩陣變換.
      其實這個功能我寫了很久了,
      不過簡單實現,直接點擊小平面進行,先保存剪塊框,去剪塊,平移,再剪塊.
      總是感覺如果cad有個消息隊列的話,就可以實現基于"項目"的分發任務,
      我的命令MoveEx平移大平面圖.

      ...
      發現很多地方如果重寫move命令,這樣會引發一些問題,
      文檔鎖事件否訣之前的命令,然后執行我的,但是可能是別人重寫過的.
      例如我的同事a因為要移動它的圖元:視口影子(是一個瞬態圖元).
      而我也需要移動xx瞬態圖元.
      這樣我們還得使用一個公共隊列去存任務?這個東西沒有公約啊.
      如果我的同事有一萬個人,這樣的話豈不是沒有一個任務鏈?

      20251029
      我發現有些東西說了大家就會做,不說大家就沒有想到.
      真的很神奇,會突然的改變工作流,但是會發現超爽.
      就好像用外部數據庫模擬圖紙集,這樣單布局多圖紙了,依然可以通過ctrl+鼠標跳轉字段.
      就好像布局映射,實現模型拖拽視口,也就是拖拽攝像機耶.

      20251025
      我了個豆,寫了半天發現圖元更改事件沒有否決(禁止回調),
      桌子為了全局不被事件否決后,導致有可能的出錯或者數據泄露?
      才發現原來是這樣設計的.
      我還想如果有否決的話,在位編輯長事務workSet to Lisp豈不是可以上裝飾器模式?
      為了強上裝飾器模式,我甚至需要克隆原始信息,然后末尾結束命令時候還原,也就是反改.
      但是克隆圖元和替換這個操作是最慢的,只能說勉強能接受.
      如果要做得好怎么辦呢?
      還是要提供一個長事務函數給Lisp進行改代碼...無法接受...
      ...

      revit的角色扮演的協同辦公,
      如果我在cad模擬,主dwg進行顯示,會遇到id分配問題.
      幾個dwg分配的id可能是不同的,
      可以采用數據庫合并策略奇偶延伸,不過,我們沒有辦法控制分配器.
      這就很有趣了,需要高頻通過克隆功能進行雙邊置換圖元,相當于id重寫,
      這樣效率不如中央id分配器...


      20251024
      我發現了重寫在位編輯塊命令,剔除重生成,這樣編輯速度快好多哦.

      20251021
      我開始認為聯合感知不會成為CAD未來十年的技術發展方向了.
      單一感知不光是debug簡單,還沒有引入混亂不堪的多重概率.
      雖然汽車上面早已經有聯合感知的決策系統,但是它控制簡單.
      CAD上面如果"視覺模型"缺失,不是應該引入CV模型,而是去通過"掃描線"獲取空間.
      同樣是解決看問題,這工程好實現可預測.

      20251020
      矢量問題搞不定就通過光柵化其實蠻蠢的,
      就好像肚子餓了就吃點觀音土.
      關鍵是偶爾吃一下能解決問題,但是長期吃下去不是個事.
      我十年前就想明白的事情為什么有人現在還不明白...

      圖靈機+LLM讓我知道怎么實現審圖這個操作了.
      我感覺這個東西肯定會被端到端淘汰的,不過這個東西確實是簡單耶.
      甚至是:投入的人工越多就越智能.

      20250914
      和CAD相關,
      發現了一個專注平面幾何和EDA算法的人,
      B站叫: 高等教育失敗人士
      自動布局布線算法程序設計前傳-嗶哩嗶哩
      發現短鏈接其實會之后失效,未來可能需要按照名稱搜索.

      和AI相關,
      AI還是太有吸引力了,各種架構的本身其實只是大型實驗現場.
      理論不一定有效才是AI的魅力之處,然后它有效了之后人們就會賦予給更多的理解.
      效果不好的模型就立馬放手...這種稱為快速失敗嘗試...

      雖然實現了繪圖補全架構,但是我覺得價值太低了,簡而言之沒有客戶人群.
      Cursor創始人:說說我們為什么放棄CAD+AI
      在過程撿點邊角料的AI知識,嘻嘻

      發現ClaudeCode創新點居然只是問法上面改變就可以迎來那么大的效果,真是刮目相看.
      這種問題的改變本質還改變了認知和任務操作的復雜度.

      任務場景 普通人問法(低效/模糊) Claude Code 推薦問法(高效/精準) 效果差異
      功能實現 “寫個登錄功能” “使用 React 和 Node.js 實現一個登錄表單。前端需要包含郵箱和密碼輸入框、提交按鈕,并進行客戶端驗證。后端需要接收 POST 請求,驗證用戶憑證,并返回 JWT token。請包含錯誤處理。” 前者產出代碼片段,后者產出生產就緒的完整模塊16。
      Bug 修復 “這個頁面報錯了” “修復登錄頁面的 Bug:用戶輸錯密碼后看到的是空白頁面而不是錯誤提示。前端文件是  src/components/Login.js ,后端 API 是  api/auth/login 。請分析可能的原因并提供修復。” 前者無法定位,后者能精準定位問題并提供修復方案47。
      項目重構 “把這個改成 Vue 3” “將當前基于 Vue 2 的電商項目重構至 Vue 3。需使用 Composition API,保留所有現有功能(商品列表、購物車、訂單)。請先分析項目結構,制定遷移計劃,并注意 Vuex 到 Pinia 的轉換。” 前者指令無效,后者能生成可行的分步重構計劃并執行26。
      代碼解釋 “這段代碼是干嘛的?” “解釋文件  services/payment.js  中的  processRefund  函數。說明其業務邏輯、參數含義、錯誤處理機制,以及它與數據庫模型  RefundRequest  的交互過程。” 前者得到泛泛而談,后者得到深入、結合上下文的精準解釋7。
      添加測試 “給這個加測試” “為  utils/calculations.js  中的  calculateTax  函數編寫單元測試。需覆蓋正常計算、邊界值(如零收入、高收入)、無效輸入異常等場景。使用 Jest 框架。” 前者產出基礎測試,后者產出覆蓋多種場景的高質量測試套件67。

      20250911
      AI模型學習法:它做了什么?有什么效果?不足是什么?
      理論如何足矣支撐模型?

      找到圖片目標有兩種模型,
      YOLO和DETR,YOLO很常見,通過手工標記數據構造先驗知識.
      DETR是預設一百個框,自動在一個圖片底下找到n個目標,大部分框是標記背景.
      但是怎么知道框的目標呢?
      通過二分圖匹配算法來有監督學習.
      也就是預設100個問題,這100個問題其實是隱向量.
      通過Transformer會問其他99個目標在框什么,喂入大量圖片就能知道了.
      但是它損失函數才是決定一個框在做什么,也就是分類+位置,
      因此分類也是有先驗知識存在的.
      這樣圖片領域居然不再需要手工標記了耶,但是貌似訓練成本太高了.
      而且百度居然在這方面有工作推出了RT-DETR來降低訓練成本.

      20250908
      如果我也制作一個神經網絡去控制不同的激活函數等,
      那么我豈不是不需要調整代碼?自動化超參數.

      20250906
      AI課: 所謂的天賦就是出生就是全局最優點,而我們需要學習才行...
      VAE: 當我第一次理解了卷積隱變量z就是壓縮采樣,讓x和y都是一個正態分布,呈現概率云,
      然后在神經元wx+b進行逼近曲線擬合,感覺把一切都串聯起來了.
      而且wx+b就是最小二乘法,就是一條線,多條線的交點就是控制點,以直控曲.

      用GCN可以輸入一整個圖紙,每個節點就是一個圖元,
      預測就是圖元就是分類,用交叉熵.
      預測圖元值長度,用均方誤差.
      也就是這是一個雙預測任務就可以完成CAD圖紙的輸入推薦.
      不過這個信息熵似乎巨大,尤其是"沙發推薦"這操作出現長程依賴,所以是不行的.
      更有可能是通過網格化,把每個節點標記為"物體/背景",
      神經網絡就可以切分地圖面積一樣標記位置,進行推薦.

      20250903
      我感覺美團做的東西真的很技術耶,longcat速度真的很快...

      20250902
      還是自回歸比擴散模型容易一些,畢竟擴散模型需要先驗知識,
      難怪text2cad也是自回歸,不過它效果貌似也不是很好啊...
      還是得自己搭設模型,畢竟原理我覺得VAE在CAD上面效果應該會很好.
      LoRA是一個風格遷移的微調,貌似和我們這個想要AI助手完全不搭噶.

      20250901
      退出明經通道.

      20250827
      這個AI助手還是要基于位圖
      http://www.rzrgm.cn/JJBox/p/19056186

      20250822
      發現有人居然想把cad.net API全部轉換成MCP協議調用,
      想對著LLM說:幫我畫一個大樣圖...嗎?
      關鍵是輸入啥子才可以輸出對應的圖元啊...

      a:理想的交互是輸入圖片,量數紙,然后輸出平面圖.
      不過我發現這個世界有電子尺就可以完成這個事情,即使有AI能完成貌似也只是練手,沒有什么實際價值,
      b:截圖,指出剖面號,幫你畫一個大樣圖.
      繪圖期間像代碼助手一樣灰顯推薦.

      自己做模型的話,現在講究端到端,要用神經網絡完成功能.
      并且防止上下文溢出造成亂碼和記憶丟失,要像claude一樣寫大量的代碼組成策略引擎.

      現在有兩個方向,
      一個是純位圖卷積+多模態,好處是已有技術成熟.
      一個是依舊cad圖元的卷積,原理不詳..
      還要構造項目信息關聯,前后圖紙聯想,調用圖庫.

      20250820
      很多人不知道寫大型工程一定要理想化一切.
      就類似造火箭一定要畫一個魚骨圖,難的卡住了,要么攻克要么繞過,
      關鍵點還不是把火箭造出來,而是你會發現某項技術居然可以用于其他地方,
      正所謂有心栽花花不開,無心插柳柳成蔭,
      例如火箭=>風洞,原子彈=>冰淇淋...嘻嘻.

      20250818
      原來圖片轉矢量那么有趣,下一個課題寫它好了.
      突然發現學了cad之后,怎么那么多課題都是相關的,
      例如圖形的曲線表達,矩陣,SIMD,GPU,
      比較不搭噶的但是全世界都會告訴你要做的索引和搜索,
      然后搜索引擎會進入NLP,NLP就進入位置編碼,
      然后到了GPT,它的基礎是Transformer以及位置編碼,
      然后到了如何生成圖片轉矢量,又需要貝塞爾曲線的定義,
      目前的擴散模型和卷積兩個方向,暫時沒看到和Transformer的整合.

      20250816
      在學習cad.net的時候會時不時遇見一種詭異的按順序入參問題.
      然后研究了n年之后領悟了,
      這就是一種"Fluent Interface"(流暢接口)或"Builder Pattern"(建造者模式)的變種.
      例如:

      var text = MyDbText.Create()
          .Content("xx")
          .Height(1.5)
          .Width(1)
          .AlignMode(DbText.Left)
          .Builder();
      

      好處是配置像是自由加進去,而且鏈式表達很優美.
      壞處是違反快速失敗原則,
      你必須順序入參,需要內容才可以計算包圍盒接著才可以計算對齊點.
      這種設計模式使得隱匿了參數和參數之間的關聯性,
      會的人會忘記,不會的人會一直試,
      也就是沒有什么加密性,反而降低了理解,倒是防范同事的好功能.
      修改方式:
      1,Create就提供全部默認值,之后怎么Builder都不會出錯,RAII思想.
      2,改用一個函數多參數方式一次性入參
      3,報錯優化,若某個參數不滿足時候提示應該在某個地方加入,而不是單純報參數不足.

      如果API都設計成這樣,那業務的復雜性必然會給你再來一擊重拳.

      20250814
      由于我不想標錯材質,想實現自動標注材質功能,
      一直想要revit那種點擊表面自動生成材質標注的功能.
      但是在CAD中,沒有記錄表面材質信息,尤其是轉角面材質識別.
      因而我首先就要做的功能是:把房間n個立面圖+平面去反造三維模型.

      平面圖的標準定義通常是1.2m高位置水平切一刀,
      并且有家具就畫投影,高于1.2m要反映就虛線表達.

      這說明了水平刀不一定切到全部元素,
      例如平面是有張服務臺,上方1.8m有個嵌墻燈箱,在立面肯定看見,但是平面冇表達.
      這說明了要有個根據立面反造平面的問題,
      以此獲取最大可能保留材質深淺,以及轉角關系.

      階段性發掘:
      轉角信息和深淺關系要如何連續表達?
      平面圖的完成面線可以用xdata等方式記錄材質,立面和節點也可以進行關聯.
      甚至我允許不使用DWG這種格式記錄數據,只要你造得出來就行.

      立面圖通過水平掃描線求交每個垂直線(中點,消重后)提取表面尺寸,
      但是這樣沒有深度信息(沒有完成面深度尺寸:內部轉角/燈箱內部),
      把每行尺寸和平面圖完成面尺寸對比,得到一個相似度,進而得到深度.
      就可以知道該行水平剖切線的材質深淺關系了.

      那么其他行(1.8m剖切到燈箱)怎么辦呢?
      在人工繪制上面通常是大樣圖節點表達.
      但是和甲方溝通是階段性提交圖紙...因此我只有平立面階段也要標注材質啊.

      由于我無法完成其他行的尺寸識別,造成無法進行材質識別.
      只能上AI?蒙特卡洛樹?
      我甚至不想靠AI,想要一種空穴填空方式讓用戶填寫進去,
      能夠實現計算機輔助,而不是計算機聯想,
      或者聯想部分就做個標記,需要填空部分也做個標記.

      大家可能覺得改用revit就好了,實際上我的目的并不是這樣,
      我要處理全部歷史數據轉三維,所以二維轉三維是具備某種強硬意義.
      并且我還需要去檢測圖紙錯誤標注材質,還要打造一套約束關聯的系統,

      例如AI腦補了材質和深淺關系,
      我可以更改材質再更改表面尺寸,它自動更換節點圖的底層結構.
      我勒個豆,這種不就是自動節點圖...
      整個功能和斷層掃描重建很類似,問題是我還沒有完整的斷層...

      2025080
      CAD的選擇集欄選怎么實現?
      我覺得它可以不用什么BVH樹啊,因為這樣需要構造多一層索引.
      直接把欄選的線按照/100的方式劃分矩形,然后進基礎的八叉樹選擇.
      如果底層已經從八叉樹改為z-order,那么就可以并行范圍查詢了.

      20250801
      題材枯竭期,感覺做完z-order之后,什么CAD謎題都解開了,
      要速度有速度,沒速度的講究流程.
      AI太費神,各種模型更新來更新去沒看見啥有意思.

      20250726
      我發現了AI修代碼時候是懂Print大法的,因此我每次都叫它try每個函數,
      再補充一些關鍵點插入Print打印.

      20250708
      想必大家的水平已經從入門抄代碼,逐漸演變為調包俠,然后到了看到論文就會寫代碼了.
      那么我以后就在明經通道不貼代碼了.

      沒錯,我又是在搜SIMD的時候找到的這個.
      主要也是想再次提高掃描線算法的效率.
      雖然掃描線已經很快,但就像1BRC優化極限上面,
      為什么不嘗試拉到極限呢?
      難道有人不想0.2s內直接生成全圖封閉區嗎?

      雙調排序原理
      雙調排序還可以用硬件電路實現,直接用FPGA整一個排序模塊...
      雙調排序是不穩定的排序,穩定的還有SIMD版本的歸并排序.

      NET80之后,
      除了單獨使用SIMD,還可以結合ILGPU(注意冷數據的延遲成本),實現多級并行.

      在掃描線算法上面,我們存在數據并行難的困境.
      在處理兩個圖元求交算法時候,是調用了桌子的求交函數.
      它是一個串行的CPU執行計劃.
      例如is line... is circle... is curves...
      然后各自進入直線方程聯立,直線圓方程聯立,曲線二分法&數值離散化求交.

      這樣做的缺陷是同一個圖元會被讀取多次,尤其是掃描線密集時候.
      讀取是從數據庫的樹或者表中撈出來,降低速度很多原因,多級解引用,觸發缺頁中斷,等等...
      怎么想也是比較慢...

      掃描線的我們生成出來的,而圖元是讀取出來的.
      那么讀取圖元數據之后,利用SIMD廣播復制,
      就可以并行和每條掃描線進行求交.
      這樣我們就是手動拆開每個求交公式到SIMD上面.

      一個圖元先求交完自己全部的掃描線交點,再處理下一個圖元.

      不知道這樣是不是真的快,還多了一個排序問題.
      并且掃描線是通過快速選擇算法進行獲取,
      是兩次二分法,有可能緩存沒有命中.
      感覺我們二次開發已經到了一個新高度了.
      嘻嘻.

      20250701
      近期學完了約束求解器,就想著數學上面如果可以整一個從頭到尾的定理證明,
      那么證明鏈的邊界檢查豈不是無所遁形.
      然后發現陶哲軒Lean+AI...

      20250611
      大視口套小視口,怎么激活小視口?

      Env.Editor.SwitchToModelSpace();
      AcadCoreApp.SetSystemVariable("CVPORT", vp.Number); // 切換到指定視口
      Env.Editor.WriteMessage($"\n已切換到視口號 {vp.Number},中心位置 {vp.CenterPoint}。");
      

      20250520
      ZLinq這個庫是用SIMD+Span.

      20250502
      C#語法,
      既然返回值類型肯定要寫在函數位置,
      那么為什么不構建一個result關鍵字進行捕獲返回值呢?
      return new result;
      不過這也是破壞性更新,和引入field一樣.
      好像現在更傾向于通過庫模式 Option<T> 或者 Result<T>
      而非核心語法擴展來實現此類需求.

      20250501
      發現一種點壓縮算法,
      點 點 點 若它們在一條射線上面,
      那么它們與原點之間的 夾角,距離,記錄的double就很少,
      也就是相當于把點旋轉重合到x軸,這樣只用記錄夾角和距離,距離只是一個值,
      所以同一條射線的點越多,壓縮越狠,而且還是無損壓縮.

      那么不構成射線的,還可以構成曲線,記錄曲線方程,
      例如最小二乘法/多項式曲線,
      然后比較兩者信息熵少的那個,不過這通常是有損壓縮.

      20250317
      突然想到,
      尾插法+臟數據標記+定時并行分塊排序+選擇時排序,
      這樣的結構可以惰性排序...
      而且每個分塊標記為臟,
      select的時候大概率擊中已經排序.此時臟數據標記false,直接選擇.
      大量插入的時候,就只是尾插.
      雙向惰性,不過我不知道什么地方需要

      20250310
      盡可能不要遍歷數據庫,改用字典索引,Xrecord還支持事務回滾的.
      不過合并圖層/文字樣式這些必然需要遍歷.

      減少continue/break,
      先過濾:用Linq的Where,它本身是逆轉條件,
      如果遇到非泛型接口可以btr.Cast<ObjectId>().Where(...)
      再執行:用for/foreach,
      因為過濾是惰性求值,執行時候才真正運行.

      不過遇到需要using對象的時候,這個操作行不通啊.
      無可避免都是for里面進行多個任務...

      減少for/foreach來制作集合類型,
      先Where過濾
      +Select選擇器模式,
      +FirstOrDefault只選擇第一個,
      +ToArray/ToList/ToHashSet/ToDictionary;

      20250128 結構體委托
      因為class的委托需要尋找虛函數表,所以它不一定內聯,
      而結構體委托就可以完成這件事...
      并且可以結構體放在非托管堆,而不是托管堆,降低STW.
      那豈不是和C++一樣了?
      起碼這一部分由程序員直接管理可以很快...

      20250103
      發現CAD的靜態字段必然跨數據庫,既然是必然,我們就不應該亂用,
      static Dictionary<Database, value> map = new()
      這說明了value是我們的四叉樹,字典,這些數據庫內的緩存,
      相當于尋址是二級跳躍.
      不用Document作為key是因為后臺開圖也可以緩存,
      其他地方根本不需要靜態字段了,除非你明確知道這個地方是單例.
      雖然多了編程一條規則,但是少了亂用的地方.

      20241216
      http://www.rzrgm.cn/JJBox/p/12433735.html
      更新一下,發現using新語法真好,不然把代碼寫成回調地獄款式...

      20241206
      重修了一次cad.net 自執行初始化接口IExtensionApplication
      加入了PLinq并行遍歷,利用Linq循環減少for的出現.
      約束只反射當前dll程序集,排除了反射WPF程序集的錯誤,只反射公共部分.
      雙緩存機制,確保實例化和釋放時處于同一個;
      描述了加載順序和兩種加載時機的處理;
      把例子變得簡短,但是似乎加入并行之后例子又變得復雜起來...

      20241119 壓縮性質的bitmap

      一直想要一個壓縮性的bitmap,就是叫這個名字RoaringBitmap
      壓縮原理就是分塊,稀疏的就單個分塊,數組容器/位圖容器/行容器,
      然后連續的整數就起始值,長度.因為有序,查詢的時候具備二分條件.

      20241109
      博客上面怎么有幾個錨點跳轉不了,細查之后發現是:
      錨點跳轉不了的是:
      0S
      01S
      0X
      可以:
      0s
      0x

      20241107
      微軟多選文件夾的功能
      microsoft.codepack包:
      https://learn.microsoft.com/en-us/windows/win32/shell/common-file-dialog

      新版:
      https://www.nuget.org/packages/Microsoft-WindowsAPICodePack-Shell/1.1.3.2?_src=template#supportedframeworks-body-tab
      這個庫的遠古版本,net35的:
      https://github.com/aybe/Windows-API-Code-Pack-1.1

      20241101
      瘋狂青蛙故事:
      他居然在cad14加載net45的dll,然后產生了錯誤:出現異常:0x0000005(訪問沖突)
      然后原來是因為他一直net framework框架上面寫代碼,
      net framework是利用復制幾個.csproj文件,
      然后修改net版本,不過這樣輸出目錄是相同的,容易造成引用出錯.

      現在大家都轉到net standard工程上面了,
      net standard只需要寫一個.csproj,里面提供了多框架功能,
      多net版本是生成不同文件夾的,這樣就很舒服,不需要擔心錯亂問題了.

      然后青蛙又問:
      iTextSharp庫在低版本沒有啊?難道不提供這個功能?

      這樣只需要一些手法,
      創建一個非cad的net4.8獨立進程,
      它來引用低版本沒有的包,
      然后進行跨進程通訊,返回值少就傳輸,返回值大就共享內存.
      并且cad層不做預處理,而是引入接口層,
      在接口層來預處理,實現解耦.
      這樣多爽?net3.5也可以用高版本功能...

      20240111
      現在的c#:
      StringBuilder sb = new StringBuilder();
      StringBuilder sb = new();
      StringBuilder? sb = null;
      var sb = new StringBuilder();

      1是歷史遺留,
      2-3是字段用的,
      4是為了同時兼容返回值為可空類型和非空類型,以傳播它們可空檢查,
      這樣才能在變量上面寫對齊變量的代碼:
      var x = ...
      var y = ...
      var z = ...
      既然吐槽了,那么更好是怎么做呢?
      微軟在編譯器做可空類型檢查啊,讓我們加問號干什么,害我們復制粘貼都不一樣了.

      未來會不會后置類型,然后
      var sb = StringBuilder?

      重新設計,類型后置,可空類型檢測在編譯器做.
      var sb1 = "xx":string;
      var sb2 = null:string;
      var sb3 = new:StringBuilder();
      var sb4 = StringBuilder.Create();
      然后字段也可以寫成sb1和sb2形式,以此減少字段和變量不一致.
      我認為既然null和new設計為關鍵字,就應該設計為一致性,我非常不喜歡斷開的關鍵字.
      var sb5 = new StringBuilder();此方案否決

      20231126 偽自定義圖元
      關于cad.net沒有自定義圖元怎么處理...那就造一個偽功能.
      相信看過四叉樹的朋友們已經知道了,四叉樹可以制作碰撞檢測,而其中最厲害的方式是快速過濾某些圖元.那么其實我們經常需要的自定義圖元,其目的也是為了過濾,進行快速選擇.
      怎么制作呢?先等等...
      mysql的b+樹目的是什么?答案是可以更有效的制作更多索引呀.
      所以我們把想要的"自定義圖元"名字加入一個字典,把它擁有的子圖元id們加入value,是不是就是一種快速索引的方式了.
      在什么地方加呢?那就需要構造一系列圖元反應器了,在加入圖元的時候歸類.
      有了這個方式之后,標注鏈式選擇功能就可以改為,從字典上面獲取圖元集合了,而不是每次再從四叉樹上面獲取,效率更快...每次從四叉樹進去的方式就是mysql的回表方式.
      那么標注鏈被修改了怎么辦?通過圖元修改反應器聯動修改就好了...
      存在的問題如下:
      問題1,如果詞典名key+圖元集合value,那么這個value的類型用鏈表,10w個圖元加入,就有20w個指針...這里需要用到一種特別的優化方式.
      問題2,存不存在一種方式跳過圖元修改反應器,例如組塊命令時候,對于圖元沒有修改,但是被歸類到塊內.獲取時候然后通過字典實現了一種"越權"訪問圖元.

      20230404
      看了一下UE5的技術原理,發現真的好復雜,學到了一個有向距離場,
      lumen渲染器代碼居然三個人寫兩年,光測試時間的代碼應該就有一堆...
      其他如SOA這樣會把代碼寫很復雜的技術就為了省下0.1毫秒,在渲染上面也很重要,以及優簡三角面,稀疏矩陣...

      20230326
      sql 走了索引但很慢
      https://blog.csdn.net/qq_29374433/article/details/113735535

      小表驅動大表原來是跟連接數相關...

      20230324
      真是見鬼了,居然把日記日期寫錯了好幾個年份..
      net8的為性能而生類型是不是專門弄了一個類型去減少GC的根查找...畢竟這幾個月沒去了解net了....

      20230323
      我怎么感覺這些不是什么有意思的技術,分布式這種東西不是是個人看看就會嗎?
      用openCV提取一個外輪廓,那才帥呆了哇..

      20230318
      Reentrantlock的非公平鎖原來會退化成公平鎖,原因是非公平鎖嘗試兩次之后會進入隊列.
      所以說不是所有的非公平鎖都是反復嘗試,而是考慮CPU負載.

      20230315
      net7代碼生成器有個不卡的API方案是IIncrementalGenerator,本質上還是代碼生成樹.
      看了一下net8,發現沒有沒有想象的給力,發現微軟從來不把東西做到最好,只是慢慢推進.
      c#還是要有runtime方案,沒有轉為rust的無GC,說實話轉了可能也沒有什么必要.

      20230311
      原來集群重啟的時間還不能立馬重啟,要等票選之后才能重啟.
      這么深入的東西,感覺不是現在的我應該研究的.

      redis的zset是跳表,也可以用來排序,并非只有紅黑樹才可以排序.

      延遲雙刪:刪緩存-更數據庫-延遲刪緩存
      t是線程.
      周期{
      t1先刪除緩存,如果這一步錯誤,那后續不執行,此步重試.
      . t2進入讀取緩存,找不到,去db拷貝到緩存,返回.
      . t3+++和t2之間很緊:緩存也找不到,也要去db拷貝,大量的請求造成緩存擊穿.通過分布式鎖再讀取,以此避免擊穿.
      t1更改數據庫.
      . t4+++因為t2已經緩存有,直接返回.
      t1延遲刪除緩存(緩存是t2造成的).
      }
      t5在上一個周期結束后來讀取,發現緩存沒有,去db拷貝到緩存,返回.
      延遲的時間必須大于查詢時間.
      第二次刪除緩存可能存在失敗,需要不斷重試.

      這個方案的從設計上面來說味道就很怪異,
      不如監控binlog然后發送修改緩存,只是binlog也是異步的,存在延時.
      但是網上都說延時雙刪一致性效率會更高,不曉得怎么測試...

      寫方案比較
      https://juejin.cn/post/6964531365643550751
      分布式鎖
      https://blog.csdn.net/az44yao/article/details/103996062

      緩存擊穿,擊穿犯罪嫌疑人心理防線,所以擊穿(不好),表示一個不存在的數據被訪問.
      緩存雪崩,就是多個,類似鬼子進村.
      緩存穿透,類似偷襲,繞過redis襲擊數據庫.
      核心問題是,那布隆過濾器怎么刪除?重新初始化替代.

      什么時候覺得阿里巴巴技術比騰訊好的?是spring cloud alibaba嗎?
      不是,是微信小程序的購買流程.
      支付寶退出小程序之后有活躍通知欄,
      而微信小程序內大部分程序員會去小程序內置訂單界面,
      我每次都要進入小程序才能看到我的咖啡訂單號成功不成功,
      跟別人聊完微信再去取貨的時候也要再次點進去.
      如果我不去看,那么此時商家有事退單,我將會餓死在地球.

      20230309
      ChatGPT寫正則表達式啊,嘿嘿

      找到一篇分布式事務的概念文...很長...
      https://zhuanlan.zhihu.com/p/183753774?utm_id=0
      然后知道了Mysql的XA分布式事務,XA是最慢的也是強一致性(還有一個對應的概念是最終一致性),實現方式簡單說就是協調者發送一次準備消息并阻塞全部分機數據庫,再告訴分機告訴協調者OK了,協調者再發一個執行信號到全部分機數據庫一起跑更新,就是2PC(兩階段提交).

      XA是數據庫層面.
      其他都是業務層面:
      AT是折衷,自己分析sql語句并生成一個undolog在錯誤時候回滾,但是分布式讀取也屏蔽了,防止臟讀.好處是不用自己去手寫,也就是用得最多...
      其他侵入代碼的,但是性能高:
      TCC..
      SAGA..

      GC原理
      計數法和分代回收..無論Java還是c#都是后者
      計數回收:...略,缺點就是不允許循環引用.
      分代回收:
      年輕代是標記復制,
      年輕代就是0,1,2區,也就是e,s1,s2.
      老年代是標記清除和標記整理(標記壓縮).

      Java基本上所有都是針對CMS的參數優化,
      而其中最為年輕代是標記復制不會有碎片,而老年代是通過標記清除所以有.
      而SWT是在標記階段暫停JVM除了GC的線程(native的也可活動),
      CMS核心是三色標記法,黑色是自己和成員標記完成,灰色是自己標記完成,白色無標記.
      四個階段:初始標記(SWT),并發標記,重新標記(SWT),并發清理.
      為什么需要重新標記?因為標記會出現引用更改,造成錯標漏標,具體俺也不知道了,八股文背一背算球了.
      而G1基本上不用優化.

      20230308
      原來單片機是用看門狗實現抗干擾,既有軟件也有硬件.發現硬件真麻煩呀...

      20230306
      感覺壓榨性能這方面基本上沒什么好學的了的.數據庫方面還沒有圖形學來得多東西.

      20230301
      原來解析器是這樣做了一棵樹
      https://zhuanlan.zhihu.com/p/112460676?utm_id=0
      還有AST樹...說難也不難,只是懶得記

      20230224
      谷歌:不要通過共享內存來通信,而應該通過通信來共享內存.
      看了半天人家怎么理解的.
      共享內存會涉及到多個線程同時訪問修改數據的情況,那得保證數據的安全性,可見性,
      那就會加鎖,加鎖會讓并行變為串行,cpu也忙于線程搶鎖.
      不如換一種方式,把數據復制一份,每個線程有自己的,只要一個線程干完一件事其他線程不用去搶鎖了,這就是一種通信方式,把共享的以通知方式交給線程,實現并發.
      那具體是怎么做的呢?
      原來是不要鎖資源而是利用管道順序來獨占通知.隊列就是管道+鎖.

      20230223
      今天看了一個java陸總監的視頻是說多線程+分布式鎖.
      多線程環境下,兩個線程分別無鎖讀到了數據.
      線程1獲取分布式鎖并寫入數據庫成功.
      線程2也已經讀取數據,但是此時因為線程1已經修改數據庫,線程2就是過期數據,出現臟讀,線程2臟讀數據在判斷條件真,也去寫數據,出現了臟寫.
      為了防止臟寫,所以分布式鎖在寫入更新時候要[查詢舊值+更新]合并構造一個CAS原子操作,而在此之前可以無鎖查詢,這樣跟單例模式一樣了.
      既然有CAS的思想,那直接操作數據庫不也一樣嗎?
      update goods set stock = stock - 1 where goods_id = #{id} and stock >0
      為什么要上分布式鎖呢?答案就是高并發令數據庫壓力劇增,會出現數據庫連接或者因為超時等待而報錯
      結論就是:
      1,無高并發可以不用redis(分布式鎖),直接打數據庫上面就好了.
      2,有redis緩存還是要用上,避免bug找不到,同時也要去掉sql判斷語句,減少sql內執行.

      在程序員鄭清的視頻《庫存超賣問題》也有講過一些相同的結構.
      double-cas思想(樂觀鎖),也就是添加版本號.
      但是要警告秒殺不要用版本號,而是用庫存數進行比較:
      是因為當庫存100,100人秒殺,高并發如果仍然對比版本號,就會導致明明有庫存,還是導致有些線程搶不到貨.搶不到還不能重試,因為這樣就是ddos數據庫了...

      20230221
      cad數據庫的邊緣測試,一個事務如果過長那么它會爆的.
      是提交了十萬條多段線發現的,但是cad是閉源的,
      然后看了一下mysql結構,發現這個爆的地方是可能是undo log,是cad寫了一個閾值或者根本就是bug導致的..

      mysql的大事務處理
      https://blog.csdn.net/wang_luwei/article/details/123107735
      話說起來一個大型系統的mysql事務要把他們分別作為小事務再回滾來完成并發控制.
      可謂是一條簡單好記的事務優化策略.

      編程能干啥?看透了一切之后選條路耕耘吧...
      前端,圖形學:
      三維模型,渲染,游戲,仿真.
      照片,視頻(編碼),網頁
      后端:
      數據庫,高并發系統,生產系統,金融系統.
      通訊:
      糾錯編碼,加密編碼,網絡通訊模型(P2P...).
      人工智能:
      照片,視頻,自然語言處理.
      硬件設備:
      驅動(抗干擾設計,醫療設備,手機,電腦....)

      20230218
      上次說到了一個弱引用,那么c#弱引用有什么用呢?
      看了這篇文章知道了一個很核心的問題,那就是弱事件,如果被調用者注冊了,那么就難以卸載了,尤其是多線程環境中.
      http://www.rzrgm.cn/instance/p/3484739.html

      20230217
      泛型的痛,c#寫matrix<int>和matrix<double>需要寫兩個的時候我就覺得這非常蛋疼,
      他們不提供一個類似cpp泛型固化編譯...這事情我能說十年...
      http://www.rzrgm.cn/feng9exe/p/11975975.html

      鐵路售票系統的后臺為什么難,主要是QPS達到百萬,
      為什么淘寶相比它還是難,主要是淘寶是多商品多品類,它的TPS是分散的.
      而鐵路售票系統是沿線聯鎖,屬于這樣的鎖達到了平均QPS兩百萬(2020年數據),
      那么問題來了,怎么實現呢?
      俺不知道,俺是2016年左右看來去之間轉發的(或者回答)
      但是俺看過一些人在回答,例如前端還做了一個隨機布爾數(我猜是一種哈希站點數),直接顯示無票...
      后端在這里提及了
      《分布式集群內存數據技術引領12306技術革命》
      除了一些反搶票機器人之外的業務之外,退款要退到內部錢包(防止黃牛)...
      首先是DNS--Nginx--哈希IP分流.
      然后消息隊列的流量削峰,令牌桶限流,有界數組限流...
      他們需要分布式動態擴容內存,然后還得不停機擴容,所以它們做了一個分布式全內存數據庫,
      連SQL解析器都不要會怎么樣?...
      它背后數據庫也肯定是一個大型的列車表/站點表,
      例如要防止超賣,寫個count>0,就需要一個count字段在列車作為表上面,不過bitmap表示每一列車座位,這樣有個好處就是可以CAS修改.
      這讓我想起了怎么統計int的1..這樣
      甚至有人寫了這個方案出來了,這里
      數據修改也可以分段式,同一條線路無中轉的,鎖的粒度變小...
      接著就是常規的讀寫分離,主從同步,
      磁盤SSD,備份方案也考慮更改為多級,或者節假日閑時備份...如果SSD沒有誕生豈不是全內存死扛...

      20230215
      學了一個LRU結構,屬于一看就會系列.這就是redis回收內存的策略,它的改版還有LFU,不過不同的LRU實現本來就不同,所以很蛋疼,明明是同種異構,偏偏要加個名字...
      LRU最近最少使用淘汰算法,時間比較.
      LFU最不經常使用淘汰算法,計數比較.

      redis的哈希容器擴容機制居然和java的不一樣,叫漸進式擴容,記憶哈希容器擴容機制挺蛋疼的...跟正則一樣,看一次忘一次系列.
      漸進式就是兩個哈希容器,一個原始的,一個擴容的,然后搬數據的時候重新散列單個閾值超過的.

      比redis快的還有EhCache和Dragonfly,但是也不是全部場景...
      沒有redis還真不知道這個世界在干什么...
      開源就是好,他們不愧是對自己技術十分自信的團隊.

      20230212
      隨著ChatGPT爆火使得微軟服務器崩潰,連帶崩潰的還有win激活服務.
      一億用戶的涌入,微軟是不是用win server來抗這個高并發的...

      看了很多java面試的,發現了一件事...背不下來...
      哈希容器原理這樣的東西不就是看了就忘記的嗎...記得它是個O(1)就好了啊...
      互斥鎖和讀寫鎖這樣的東西不是會用就行了嗎...這些可以記一下,畢竟各種鎖原理是編程核心.
      AQS這樣的東西壓根就不用會的啊,又沒有人去改造,當然了,如果是利用其他語言去復刻...那還是要去看源碼

      原來雪花算法是推特推出的...
      雪花算法超過69年,并且已經用完1024臺服務器,此時怎么辦?
      ..那么極限的問題,能有那么多id要生成,那就換算法啊,一個int64不夠用了.
      發現時鐘回撥問題沒有什么優美的解決方案,這就是為什么互聯網大廠要取消潤秒.
      ..有用一個map存一段時間的,有延遲等待的美團leaf.
      每毫秒能夠生成4096個id,那么一毫秒打進來5000個請求怎么辦?
      ..在當前毫秒數4095的時候打到下一個毫秒去.畢竟一秒鐘四百多萬個id.

      發現SQL規則應該做一個內部代碼審查機器人,例如末尾要強制使用limit...
      話說這樣的公司內代碼審查機器人,應該很多人喜歡做這個工作才對,然后發現實際上除了大公司沒人會做...
      但是我最喜歡做這樣的工作了...

      一個發動機小知識:
      渦噴<渦扇<超燃沖壓發動機<核裂熱能發動機<核聚變熱能發動機
      渦扇是渦噴的升級款,主要是省油,省油方式是雙涵道,以及三涵道.
      但是美國已經有三涵道渦扇發動機,號稱領先世界20年.
      超燃沖壓發動機就是高超音速導彈用的,基本上是飛發一體,就是能打到半個地球的...
      它主要的問題是外形氣動方式會有嗆氣...
      核能的在上個世界美國也做了大量的實驗,只是美蘇冷戰結束就沒了...目前報道是會重啟...

      20230211
      原來學到epoll才知道為什么redis只能在linux安裝,
      感覺微軟應該把這個提供出來才對啊,服務器市場不要了嗎?
      噢!原來微軟也有自己的.
      Epoll 是當事件資源滿足時發出可處理通知消息,而 IOCP 則是當事件完成時發出完成通知消息.
      從應用程序的角度來看,
      Epoll 本質上來講是同步非阻塞的,而 IOCP 本質上來講則是異步操作.
      現在我只要看到異步這兩個字,就知道可能破壞了CPU高速緩存...

      發現微軟很喜歡發揮自己的無窮智慧來抵抗世界耶...這玩意沒有專利吧...

      20230209
      所謂的計算機視覺算法,就是一堆的矩陣算子,也就是筆畫.
      所謂的AI視覺算法,就是在此基礎上面加入神經網絡.
      說是這樣簡單,實際上相關度就抓頭了

      20230207
      現在是不是應該有軍事AI,
      把推演放入神經網絡跑一跑,
      把集群無人機通過AI自動控制打擊目標,還能自動跑去充電...

      什么叫時序數據庫...

      20230203
      今天想既然redis是epoll來實現IO多路復用,
      那么豈不是socket是mmap的,查了一下發現還真是,linux是利用了mmap的,
      而Java的可能在虛擬機層面實現的...控制不了
      epoll是用一個紅黑樹對socket排序,
      再通過網卡的信號中斷來判斷是否就緒,然后拷貝到就緒數組,以此避免遍歷,
      利用就緒數組減少內核態拷貝到用戶態時間消耗,盡可能留下更多的操作在內核態.
      實際上這個性能會卡在紅黑樹上面,不知道這個紅黑樹是不是CAS那個...

      20230130
      速刷了vue,發現蠻簡單的,就是一個文件三種語言,
      很多概念都是WPF已有的,例如MVVM和屬性通知,這下我反而覺得WPF不是優美,
      例如vue可以實現對一個文件的復制粘貼來實現復用元素,而WPF偏偏多一個cs后臺,
      難怪那么多人喜歡vue.
      而且屬性通知不需要自己寫,而是利用不同的集合名進行來控制,
      一些緩存模型可以形成規范書寫,而不是細粒化書寫.
      主要是細粒化書會引起一件:每個人寫起來都不一樣的事情.

      但是我怎么感覺寫界面的含金量和難度不如數據庫的并發模型來得有意思...

      每秒600萬QPS的技術是?disrupto?r?,用于股票交易所上面的消息隊列.

      20230122
      發現了幾個講解代碼和數學教材
      【562 快速傅里葉變換 FFT算法 高精度乘法-嗶哩嗶哩】 https://b23.tv/woojbge

      【這絕對是你在B站能找到的最通俗易懂的【傅里葉變換】教程!計算機博士一個多小時帶你感受優美的數學!-嗶哩嗶哩】 https://b23.tv/PBG8DJe

      20230121
      ACID數據庫事務處理.
      想到了我文檔欄的線程模型寫錯了,在消息循環上面用post/send插入任務的時候,要在事務外才可以,不然破壞了事務的原子性,所以需要在執行任務的時候判斷當前cad事務棧數量是0才行.
      當時為什么這么寫呢?因為cad支持嵌套事務的,沒注意也沒測試到回滾會引起問題,但是思考一下就能知道,嵌套會引起上拋錯誤,引起了全局錯誤.
      而插入的事務本身只是一個獨立任務.
      而mysql和redis它們是不支持嵌套.
      至于嵌套事物有什么好處呢?沒想到...不曉得桌子為什么要這樣設計.
      電腦壞了一直沒改...

      然后這幾天看了很多分布式數據庫設計,主要是CAP三角...看暈了我,非常復雜的樣子.

      20230114
      mysql是用b+樹結構儲存數據
      redis是用跳表和壓縮表.

      20230113
      為什么c#沒有軟引用
      https://www.ssfiction.com/ckf/957494.html

      20230105
      既然人工智能可以做蛋白質模型,那么有一天用它來設想更小的邏輯門,豈不是硬件自舉了...

      20221223 無鎖隊列

      靠手機學了一個無鎖隊列,發現它原來就是用CAS來實現的,
      CAS就是原子性對比交換,因為無鎖的特性,所以少量并發時候比加鎖快,
      CAS有個ABA問題,ABA就是一個線程把它交換了又交換,另一個線程覺得跟條件一樣就去交換.
      這樣造成了任務完成的順序性不同,
      那么只需要加個版本號(換另一個原子類含版本號)就能解決.

      無鎖隊列就是判斷是不是最后,是就加入任務,多線程高并發插入隊列就成為了一種流量削峰的操作.
      并且這樣比加鎖更快.

      高并發的紅黑樹通過無鎖隊列來制作,需要一次獲取它四個節點再做操作具體
      這樣就是保證它無論何時都是一棵真紅黑樹...
      而最高性能是破壞紅黑樹結構,分離寫入和旋轉,等到讀取時候再旋轉.

      20221221
      電腦壞了.
      去銀行辦理業務,銀行還即日起暫停營業.

      20221208 糾錯碼校驗編碼

      如何做一個迅雷.
      先說一下tcp,tcp最麻煩就是有個粘包問題,也就是多次發送短報文的話,可能存放在一個包里.
      所以報文需要一個消息頭(結構體)指名長度,然后按照長度切割接收的數據.
      長文件切割的話,消息頭中要有個消息號(私有協議頭)讓客戶端回傳,不回傳就重試,n次后放棄.
      客戶端接收報文后,通過消息頭長度切割bytes(稱為body),
      如果消息頭長度超過報文長度,就放棄(此時服務端會因為沒有回傳而重發),
      然后消息頭+body一起去MD5校驗.
      那MD5可以放消息頭后面.
      因為tcp的校驗和,實際上不準確,會因為硬件的電子反轉而成功通過.具體
      發送的MD5是不怕電子反轉的,
      如果反轉了,那么發送的MD5和本機校驗的頭尾MD5相同的概率極低.
      如果還怕,那就頭尾各一個MD5,或者頭中尾各一個,或MD5的MD5...概率無限拉低.
      MD5成功校驗就回傳消息號給服務端.
      這里方案是有個缺點,
      一個包的重發次數滿足n,那么就放棄了全部.這是得不償失的.
      就連重發這個成本也是有點大(就算包非常小)
      所以需要一種前向糾錯FEC的奇偶校驗技術來進行.具體
      并且百度百科介紹了很多種糾錯碼技術:
      海明碼:糾錯一位,內插糾錯編碼到2次冪中.
      Rs碼:多位糾錯,本質就是利用矩陣逆運算特性來進行.
      具體
      具體2
      還有簡簡單單的熱門LDPC碼具體
      迅雷是udp做的,udp沒有粘包問題,但是具體的校驗還是必須的,這就是為什么迅雷下載了99%就可以改成rar解壓縮了.
      當然了還有分布式下載技術....

      20221207
      如何做一個搜索引擎,
      除了爬蟲(蜘蛛)之外的遍歷互聯網技術之外,
      還有一個就是數據庫分詞,利用網站的句子去切割為關鍵詞,
      關鍵詞寫入到數據庫索引上,這樣可以避免遍歷數據庫,使得查詢效率大大提高.

      20221111
      C# WPF 當前上下文中不存在名稱InitializeComponent
      我發生了這個錯誤,但是編譯是可以的,并且打開解決方案的時候上面老是有一條警告工程需要重新載入.
      這是因為我有一個x工程里面有一個命名空間是: AA.BB
      然后wpf工程是 AA.BB.CC 命名空間,此時就出現這個警告了.
      我把wpf工程改成 AA.CC 就好了...

      20221001
      cad的wmfout為什么用c#的meta類讀不出來呢?
      害我剪貼板沒完成,惹

      20220719
      多線程下靜態構造函數是不用加鎖的,鏈接,說實話,不是微軟回復的話,總感覺會因為測試數過少或測試環境問題,導致我不敢相信...

      20220705
      在cad,ps上面都會遇到一個問題,ctrl+z之后再畫一個東西,此時ctrl+y是失效的.
      這就是備忘錄模式產生的一個無分支的問題,
      要是像git一樣做一個分支嘛,你甚至不曉得如何把這個分支呈現給用戶.
      奇怪吼,按理說應該有很多人想過這個問題,怎么我搜不到呢?

      net60真快...

      20220626
      [操作篇 cad一個小技巧--復制視口帶凍結信息] 添加方案三

      20220625 c#不支持模板約束運算符

      //c#不支持模板約束運算符,
      //使得值類型之間需要通過一層接口來委婉處理拉低了效率.引用類型倒是無所謂.
      //這樣令人很失望,無法寫出來高效的 Matrix<int>() Matrix<double>() 函數.
      
      //約束 方法/重載符
      public interface IConstraints_Add
      {
          //有這個!
          public int Add<T>(T a);
      
          //c#不允許!
          //導致值類型都要通過方法約束,從而令所有步驟都進入函數棧內,而不是直接MSIL匯編,
          //而且編譯器對于+-*/會在編譯期求值,以此減少運行時壓力.
          //所以說c#在這個方面的能力比cpp弱了
          public operator <T> + (T a, T b);
      }
      
      public class Cdemo<T> where T : IConstraints_Add
      {
          public int Add(T a, T b)
          {
              return a.Add(b);
          }
      
          //c#不允許!
          public operator+(T a, int b)
          {
              return a + b;
          }
      }
      

      說明此模板問題的C++:

      #include <iostream>
      #include <string>
      
      using namespace std;
      
      template <typename T>
      T const& Max(T const& a, T const& b)
      {
          return a < b ? b : a;
      }
      
      class Cdemo {
      public:
          int real;
      };
      
      bool operator<(const Cdemo& a, const Cdemo& b)
      {
          return a.real < b.real;
      }
      ostream& operator<<(ostream& os, const Cdemo& c)
      {
          os << c.real;
          return os;
      }
      
      int main()
      {
          int i = 39;
          int j = 20;
          cout << "Max(i, j): " << Max(i, j) << endl;
      
          double f1 = 13.5;
          double f2 = 20.7;
          cout << "Max(f1, f2): " << Max(f1, f2) << endl;
      
          string s1 = "Hello";
          string s2 = "World";
          cout << "Max(s1, s2): " << Max(s1, s2) << endl;
      
          Cdemo demo1;
          demo1.real = 53;
      
          Cdemo demo2;
          demo2.real = 52;
          cout << "Max(demo1, demo2): " << Max(demo1, demo2) << endl;
      }
      

      20220623
      紅黑樹做點樹過濾不了Y范圍...
      然后我找了一下資料,發現這不就是一個點樹嘛,那白嫖的代碼呢?沒有.
      轉眼一想,那不就是可以加入一個現在很火的點云嘛...耶...原來做一個超越acad那么簡單??

      20220622
      從小我就不會舉一反三....
      后來發現,人家也不會,都是通過閱讀大量案例才曉得的...這個詞語簡直誤導我很久...

      想到了四叉樹儲存cad點可以通過紅黑樹進行大小排序,
      然后發現net35不支持,我又跑去抄微軟的net48代碼,
      然后發現這個東西不太行啊,跳轉了很多次函數指針,
      為了linq準備的東西很容易引起CPU緩存失效,在cad這樣高性能運算就是慢了,
      還得自己寫一個紅黑樹...

      然后我想,四叉樹的rect有記錄重復的double值,是否可以內存復用,以此減少內存大小?
      接著想了一下,rect可以是int,long,這樣可以利用位運算它平方,
      最小就是1,并且可以控制四叉樹深度,不至于無限遞歸.
      而且指針長度跟值是一樣的,所以就不需要復用了,跳轉一個函數地址更麻煩.

      20220621
      volatile+雙重鎖校驗這樣的東西在c#為什么很少看到人寫呢?
      看了java之后反而有點迷...

      為什么mysql不加事務處理起來賊慢,一萬條34s,加了事務0.08s,慢什么地方啊??

      20220619
      一天一片非布司他,對抗尿酸一年了,仍然發現隔幾天就疼,然后跑醫院檢查,指標顯示著我在溶晶,
      看檢查單之后醫生讓我減少非布司他藥量,每天半片,但是聽了我說一天一片的時候,覺得我應該保持一天一片.
      那不可能一年內都在溶晶...甚至吃了雙氯芬酸鈉還是感到疼痛...
      我覺得是因為身體的炎癥因子無法順利排出...
      然后病友們有說碳酸氫鈉(小蘇打)可以堿化尿液,我覺得比止痛藥安全一點,
      吃了之后發現連續幾天不疼了,妙極了!我得把這個發現告訴醫生??
      (藥物治療請遵循醫囑,嘗試前需詢問醫生)

      20220616
      現在cad二次開發的群友就是學c#的想學cpp,學cpp的想學c#,都想摸摸對方

      20220615
      編程本不需要接口,只需要虛函數.

      20220611
      圖都學完了,再學個馬爾可夫鏈不過分吧.

      20220610
      如果一個動態數組擴容的時候,當前數組后面也有適當的內存長度是擴容長度,
      此時能不能直接利用那塊,來減少數組的拷貝?
      我想微軟/英特爾應該有這樣的東西吧...(SIMD?懶得查API,希望有人直接告訴我??)

      c#居然沒有加入序的哈希容器,而有加入排序的紅黑樹結構.

      20220607
      突然想到一個好玩的東西,如果用人工智能進行反編譯,會不會使得這個時間大大壓縮??

      20220606
      看了一下cpp的優化,發現懂內存結構才是第一步,還得靠著反編譯來玩.
      難怪高性能渲染是那么難做的...
      分支預測直接if高概率還算容易記,
      有些是SIMD指令和GCC和MSVC是有區別的...這cpp開局就很難的樣子??

      20220601
      我給你解釋一下這個代碼世界.
      1,代碼是不會騙人的
      2,沒有人會幫助你理解代碼的
      3,你不會,入場券都不給你
      4,費曼讀書法:從頭看,看到不懂的地方,再從頭看

      20220530
      學了一個稀疏結構,發現原來這就是渲染的數據結構呀,太妙了,都想放棄c#去玩cpp了??

      20220528
      0x01
      這幾天看了一篇linux如何控制磁盤讀寫的文章,說占用CPU導致影響了其他進程,所以會用DMA來進行相關操作.
      這個東西貌似在大文件拷貝的時候可以用得到的概念0拷貝.

      0x02
      這個破微軟弄了一個內存復用技術,然后不給net45用,然后我把它改好了...
      說起來也是神奇,首先山人把元組和切片特性拿過來了,
      然后小賤賤給我看了內存復用技術,發現不能用,這里面有些東西跟元組切片重疊的,修修改改弄好了.
      然后我又想把Span抄來net35,然后發現抄的東西很多,準備放棄時,猛然發現我居然在研究net底層代碼,
      跟著山人混著混著,居然研究了那么多我之前從來沒有想過的東西...

      20220526
      0x01
      因為有一個nuget包是切片語法包,
      不知道為什么net standard2.0的net45項目用不了,net35,40都是可以..
      然后山人為了處理元組和切片的dll,準備做源碼nuget包,然后功能扒拉到自己的基礎dll中,
      發現改變代碼行為的是利用CLS這些特性,真有趣...(好像也沒啥有趣)
      屬于修改語法行為了.

      我總算了解什么叫代碼量作為KPI要去抄公共庫代碼了...
      net35沒有Span?抄一個進來就行.
      net45沒有切片語法?抄一個進來就行.

      0x02
      猜測cad的布局視口那么慢是不是每個視口都遍歷一次模型,然后提取圖元信息重繪.
      如果真的是這樣...
      a 切換視圖之前記錄所有修改的圖元,這樣才能進行嵌套塊更新.
      b 如果是每個視口都緩存整個模型,那么改成視口選區緩存,缺點每次拉伸視口都重繪.
      c 雙緩沖進行異步,不卡死用戶,雖然這樣帶來不會立即顯示.
      這樣的方式主要是用空間換時間,需要一個龐大的內存記錄更改部分.我怎么老想一次開發的事情...??

      20220521
      發現布隆過濾器和后臺選擇集有驚人相似的地方.
      首先我們找到一個射線法來判斷點在多段線內,然后發現這太慢了,然后引入軸向矩形實現四叉樹,
      是一種把"肯定不可能"扔掉,把"可能"留下來,再進行深入判斷.
      然后回頭發現,布隆過濾器也是這樣的耶??

      20220519 國產cad的netSDK,真不怪它

      0x01
      不是很滿意cad的SDK封裝的地方很多,
      有一些合理但是詭異的地方,濫用了"屬性"而不是用"字段"
      例如當前數據庫=數據庫這樣是set了,
      但是指定允許后臺還是前臺?自己試吧,起碼接受是set吧.
      然后它出現了圖層.On=圖層.On才會生效,我賦值我,以此觸發數據更新...簡直了,多寫一個函數會感受到生命遭遇威脅嗎?
      接著不要懷疑,其他地方會有updata函數....
      然后又接著一些中望/浩辰之類國產cad廠商實現這個netSDK表示:怎么一模一樣也有人抱怨不一樣.??

      0x02
      發現litcad不支持spline,要不我去支持它一下?

      0x03
      gitee的政策使得很多無關緊要的cad問答遭遇了屏蔽,還是換源去了.

      0x04
      發現某個軟件明明支持了某個專利功能,但是卻要以第三方插件去提供,很好的避開了法律法規.
      簡直妙到不行.

      20220516 曲線

      做曲線的時候發現了原來cad的spline的控制點構造時居然是偽造knots,
      因為knots只有擬合點才可以算出來,
      而API需要提供knots,導致knots是共用的,
      因此控制點生成的knots是 0,0,0,0,1,2,3,4,5,6....n,n,n,n 這樣的形式偽造一份的.
      不愧是你自動桌子,為了數據對稱性居然這樣干,而且還沒有Default方式,而是讓人填充進去.
      然后e大利用entityInfo分析數據就找出來了.
      然后我發現cad的擬合點變控制點,再變回來,會保留原本knots,說明了一但生成就會儲存了一份.
      若擬合點改控制點,更改控制點,再變成擬合點,此時還能保留嗎?

      讀cpp的spline代碼的時候發現沒有一個統一的模板標準,不說不同公司,不同的人寫出來都是不一樣的代碼.
      然后又出現有無法避免的問題,調用微軟的頭文件,然后微軟還不按照vs的格式化進行格式化.(制定標準的人不標準)
      難怪說c/cpp的代碼潔癖并不嚴重,都是無奈...

      曲線代碼一直有個問題,擬合點畫曲線的時候占用速度比控制點很多,而且不是全局繪圖參數帶來的問題.
      今天終于分析出為什么畫曲線會慢了,
      因為會循環過程中找到一個min數,用它作為累加單位①,
      累加數②就是曲線參數u,用它來采樣全部曲線擬合點,然后gui畫小段直線上就是曲線了.
      這樣造成在前面部分是大單位,后面全是小單位,轉變地方是拐角處.
      此時應該作為動態規劃,在密的地方密,在不密的地方回退到大單位,
      難怪我加了并行處理也沒能很好優化此處速度(?≧へ≦)?

      20220515
      發現優化才是程序的重中之重,要時常想著這個東西怎么加入并行才能更快.
      反倒結構這樣的東西最后都是服務于優化??

      然后想了半天,找了半天資料也沒有看到四叉樹八叉樹怎么并行計算(. ????? )

      在抖音上面看了小山,然后推薦了一堆java視頻,
      意外的發現java居然沒有ref和out,難怪他們說java只有值傳遞.
      現在c#為了性能可以ref x = xx;以安全指針賦值.
      這個java沒辦法了,說實話,這樣抄代碼更難了.

      20220512 數組的內存模型
      今天Rust群上面有一個很好理解切片和數組的圖,當然了其他結構還有鏈表什么的不在此范圍.
      按照這個模型來說,
      c#的沒有數組,
      c#的數組是切片,List是Vec(動態數組),Box(是IEnumerable)

      20220511
      終于成功在winform生成與cad一模一樣的樣條曲線了
      連干了我16小時

      20220510
      昨天把人家博客的曲線反算cpp代碼轉為c#然后溢出了...??
      今天群友發我一個新的,然后也沒有在openGL預覽成功,我很慌

      其實學完圖算法之后會發現所謂的互聯網用戶畫像實際上就是基于這個制作,敢敢單單

      20220509
      好煩gitee,用手機登陸了一次電腦就會退登,而且手機網頁縮放萬能bug不修.
      而且手機登陸因為移動網IP屬地是會去到廣東省其他地方...每次都提示我賬號有問題...

      看了我十二個小時終于看到幾個曲線的定義了,還好國人寫的cpp demo我能接受,
      純看數學推理可能要更久(直接放棄),
      其實主要白嫖了一段生成的代碼,發現有點妙就繼續學下去了.

      20220508
      圖形算法真是智商碾壓,反算曲線控制點,模擬cad的spl命令.....
      http://www.whudj.cn/?p=623

      20220507
      用控制點創建樣條曲線在e大的幫助下弄出來了:創建樣條曲線

      然后用了一個winform實現了cad的樣條曲線.嘻嘻

      20220501
      在cad2022的jig出現重繪出現了bug,然后搜一下國外的,
      發現了怎么國外也搬走了我的國外的programmerall
      自己修復了這個bug:cad2022需要防止刷新過程中更改隊列 cad.net 封裝jig
      誤導國際+1??

      20220430
      c#接入生命周期,居然不是搞一個r#??
      為了處理字符串的0代垃圾,出了一個span

      20220429
      總結git沖突合并

      20220427 利用bing搜索博客園

      沒有博客園賬號的話,用bing搜索我的博客指定內容

      想破小腦袋啦,Bo算法推翻了好幾次想法.
      它似乎是鄰接表的一種超集算法.
      超越鄰接表范圍處理范圍:兩個節點之間存在雙弧成環,此時遍歷一次O(n)完全處理不了.

      20220422 哈希值

      今天和山人研究了半天哈希值,因為bo算法里面需要詞典,詞典的key現在是字符串,想轉成哈希值(其實官方推薦是不要這樣做!)
      然后x^y^z會發生交換算一樣的問題,
      而元組(x,y).GetHashCode()^z,元組是膨脹了首位(x<<5+x)^y就可以避免交換沖突(膨脹系數不同).
      然后發現double值需要四舍五入
      但是!這個哈希值本質仍然的三個數的累加值,仍然會在概率上沖突!
      而且其后的深度優先或者廣度優先造成的bug是非必顯的.
      哈希一樣大概率一樣,哈希不一樣肯定不一樣.
      解決方案:1,詞典用字符串作為key;2,造一棵三維二叉樹.

      為什么官方不給這樣做:
      原因是Dictionary的key集合是存放指定對象,
      用哈希作為key可能存在太多的不確定因素導致沖突和不同.
      當類發生哈希沖突的時候(手動寫死返回的哈希值),是詞典內部自動指定節點存放.

      20220421
      bo日志放入博文內

      20220418
      新寫AOP注入事務

      發現edge安卓手機版復制不了網頁路徑到qq,
      但是可以粘貼到edge的另一個頁面的,因為我一直用的是快速復制按鈕,
      要用修改按鈕,然后選擇復制才能進剪貼板...
      微軟這是什么神奇設計啊!!你就為了不污染一次剪貼板嗎??

      20220416
      自從開始拒絕低質量代碼之后,就喜歡刨人家算法的什么點能比其他快,
      然后居然有人說能跑就別動,我給你把頭扭下來.

      20220414
      總算把IFoxAOP搞定了,山人起床就可以看到將近千行代碼變動.??

      原本以為我的成長曲線也是學java那樣,線程池,單例模式,設計模式,數據庫...
      后來發現敲著敲著,是圖形計算,并行計算,函數圖像,圖論...
      到現在我都不曉得數據庫優化之類的,雖然看了很多視頻...但是沒有實操過,建設于虛空.

      發現了博客園一個問題,md格式傳入的圖片是沒有清理機制的,也就是我傳了,然后沒有放到博客上.
      按照圖片地址,我瀏覽器還能訪問到..是不是有延遲刪掉我就不知道了,按理說應該檢查博文引用..

      20220413
      博客園的搜索怎么壞掉了啊啊啊啊啊啊
      當時貪圖edge瀏覽器可以全平臺使用,發現手機端真的差,首頁展示收藏不是每次都彈出來...

      vs的for tabtab居然不能自動把i換成j,把j換成k...你把i換成ii,然后iii,iiii,iiiii也好啊...

      20220412
      改著改著ifox發現事務有問題,然后發現我的需求其實蠻難實現的,
      我需要在已經 cad命令特性(無權改動) 的函數末尾注入一個函數.
      先反射人家的特性倒是簡單,怎么注入呢?
      Fody 是反射自己的特性.
      Mono.Cecil 它不能動態注入.
      Harmony2 最后用替換函數指針就好了.
      http://www.rzrgm.cn/jeason1997/p/6694115.html

      20220409
      繼續bo算法,狐哥的代碼基本上被我和山人改得七七八八了,
      剩下最后一個圖算法,而我發現可以壓縮一下圖關系,
      把一些肯定是首尾相連無多叉先做成一個多段線,剩下兩個首尾點參與進鄰接表,
      因為鄰接表關系判斷需要窮舉...
      而且窮舉也不能都舉,要以逆時針深度優先,否則會獲取一個日字外框.而我們需要是兩個口.

      20220408
      原來合作開發那么爽,我搞不定他搞,他搞不定的我搞...
      于是乎bo功能已經差不多了

      20220402
      被鄰接表和圖搞得死去活來.在廣度優先和深度優先徘徊不前.

      在制作bo功能,因為當時想得有點ugly,看了人家的論文之后發現了一片新大陸,
      然后正和群友們磨合這個東西,發現人家電子cad上面早有這個技術,
      我尋思我這個知識破壞者,得擼個開源的出來.

      20220331
      數學篇 cad.net 葛立恒凸包算法和面積最小包圍盒
      被發現有bug了...感謝jiegou(杰狗)

      20220327
      今天想了一個簡單但不是很簡單的問題:一個非公開的靜態字段有什么用?

      今天拋了一個簡單但不是很簡單的題目,
      用最短時間來判斷四個點為一個矩形(帶旋轉),寫到此處

      20220326
      該死的痛風.

      前一日志說了,盡可能不用感嘆號來處理為空檢查,但是我發現了一個不用感嘆號反而是一種罪的地方.
      雙向鏈表的頭一旦不為空,那么其他節點必然不是空,此時若還檢查一遍才繞開為空檢查,那么就是挺傻的.

      jig篇最后重繪圖元的函數用錯了

      20220322 為空檢查和重載等號運算符

      痛苦地改了六百多個可空檢查了...
      要巧妙的騙過編譯檢查,重寫==運算符的時候要寫成

      public static bool operator ==(classX? a, classX? b)
      {
      if(b is null) 
        return (a is null);
      else if (a is null) 
        return false;
      if (ReferenceEquals(a,b))//同一個對象
        retrun true;
       ...類成員對比...
      }
      

      還發現其他地方不能單純if(xx is null),因為這玩意還有傳染性,可以傳入下級函數再攔截.
      如果拆箱的時候,確定不是null,例如遇到符號表或者符號表記錄,強轉就可以消除警告.
      盡可能不用感嘆號去處理為空檢查才是王道??

      20220321
      改了ifox的雙向鏈表反轉了,終于有個舒服的雙向鏈表了...然后因為山人用了一些新語法,逼著我也要用,
      把可空類型檢查打開,爆了2000個警告??,修死我了...

      利用感嘆號只是讓為空檢查閉嘴,它只是語義層面檢查,不會編譯和運行時,
      你所做的就只需要符合它檢查,
      例如if(xx is null)return;

      20220319
      把鏈式標注改成了四叉樹版本,以及用鏈表完成選擇,發現除了百萬標注無壓力之外,在日常并沒有什么卵用..
      那就不更新了吧

      發現微軟的類惡心心,
      雙向鏈表反轉居然是要手動克隆一個再載入,說好的二分法交換成員呢,只能自己實現一次.
      然后rect類不給繼承,只能自己實現一個

      20220314
      增加了兩篇文章...

      20220309
      懶惰...懶惰...這幾天相當懶惰...
      根本沒有研究cad的心情了...
      感覺研究這方面要學c/cpp,然后我現在除了看的明白還不曉得怎么敲得明白...(我好像懂了,又好像什么都不懂)
      還是去找個敲c#的工作玩玩...
      原本從alisp上面學到面向過程,然后從c#面向對象,要處理非常多點的時候告訴我要面向數據...
      真是技術深似海...
      懶惰...
      深圳啥時候結束疫情,我還要去找工作呢(. ????? )

      20220304 核磁共振原理

      你真的懂二維了嗎?研究二維可以拿到一個諾貝爾獎.
      之前某形針就說過相關的視頻,然后僅僅讓人弄懂了是傅里葉變換成就了核磁共振,但是沒有細究.
      核磁共振為何知道-嗶哩嗶哩
      然后出現了這個硬核的UP主,真的太硬了,說了四十多分鐘,
      他很細心的講解T1T2片子是怎么看些什么,有啥作用,數學原理,(我覺得順序有點問題,應該先想片子應該怎么做的,然后怎么想的,不過二刷就可以關聯,不成問題,讓原理成為更普遍的知識)
      能研究出來的人真是超厲害的,全是難上加難的數學原理和電信號原理.

      20220302
      在糖君的群里中獎了,選了本圖形學的書,拿到書之后,最重要就是看目錄,之后看了之后再過了一次全部章節,
      發現真的很難,
      一來是寫書的人有一種蘇聯式教材法,壓縮很多知識在一個篇章,讓人覺得書很深奧,
      二來是書都是偽代碼,給點抄的都沒有,
      這樣的教材只能說是給循序漸進的人學的,完全學會幾年...大學四年?
      我覺得正常人不應該看這樣的東西,應該拿一份源碼,然后做一份工程...
      至今圖形學B站的人也只是片段化講解,因為它真的蠻多內容??

      20220301
      網絡開發真多東西學,k8s集群,wasm是web....

      之前做PPT提案的時候用過WPS,發現它有個問題,滿鋪PPT的時候打印為PDF會有四周白邊,
      聯系客服發現并沒有解決方案...所以用了office進行相關操作.
      然后之后出了"導出"PDF功能,但是PPT元素很多則會出現丟失元素或者導出時軟件崩潰.
      任重道遠?'?' ?
      我懷疑過這個bug產生是Adobe沒有提供相關參數讓WPS適配,讓其忽略默認紙張出血位,
      或者單純就是版權(技術付費之類),然后需要自行根據PDF開源工程來進行數據交換(導出)

      深圳現在商場只能24h核酸才能進,那么家門口又沒有免費核酸點,
      此時此刻一個即將拉肚子的人怎么辦?
      幸好我每到一個地方都必須熟悉各個地方廁所以及布局...
      還是有不需要碼能進的廁所....

      OOP:
      我感覺rust還是丑丑的,
      js用的是原型鏈繼承,起碼也有點繼承的感覺,
      rust可以說是沒有,那我覺得c類語法還是蠻香的啊.
      而且rust既然會編譯改名字,那么為什么不提供方法重載...需要通過泛型重載...
      微軟還是快出一個VisualRust吧 ??(????? ??)?л??a?a?

      20220222
      無鎖代碼真好玩,這是不是就是最快的處理多線程安全修改的方案了(???? )

      20220214
      實在熟悉vs那套的快捷鍵,
      然后我再想為什么會保存toml的時候會自動打開文件夾,
      vsCode有二分查找出問題的插件,找到了rust的crates插件...
      并且每次打開的是我存的git的安裝包目錄(非安裝目錄),很神奇,這個目錄毫不關聯,也不在環境變量里...如果我把它改個名字,那么就會打開"win我的文檔"目錄,并且一次彈四個文件夾.
      然后我就卸載了git,再清理掉一些git配置,然后裝了最新版的git,
      結果ok了.還是用回vscode.

      某群群友跟我說了rust并行庫,然后搜了一下,發現調用蠻簡單的.

      20220213
      用vsCode開發Rust老是發現打開.toml會彈出一些文件夾,然后轉移陣地去IDEA了..
      發現也有界面翻譯和翻譯插件...蠻不錯的...
      并且一定要安裝了MSYS2再安裝Rust,否則cargo會提示缺少cfg-if的,老煩人了
      而且也有Rust插件,主要是需要Toml插件,不然不會自動下載包...
      IDEA的快捷鍵是另一套...令人煩惱....

      20220210
      把Rust語法看完了...然后看了一下Flutter,發現它也沒有啥學習難度,就是苦力活.

      20220208
      起初以為Rust不就是一個編程語言,后來發現這群人實際上是做了cargo,
      然后我覺得這樣的設計蠻巧妙的: 就跟有個教練盯著你敲代碼似的.
      因為會其他語言之后,入門Rust還是蠻快的.
      閉包(匿名函數)真的丑陋...我用它就是為了減少代碼,你卻給我來個去語法糖?_?

      20220207
      沒有幾門語言的功力,我還真的看不懂Rust教程的范例...估計人家做教程的也是默認你就有幾門語言的功力了..
      記得我第一次看編程書,cpp的...看到數值類型定義,我還傻傻的背 ?????

      20220206
      我現在懷疑Rust是老美發明出來讓阿三好好寫代碼的.

      感覺Rust無法斷點調試是蠻糾結的...一切都是通過測試覆蓋來完成...
      但是Rust怎么做腳本化呢?
      雖然我根本沒有想過把它嵌入到cad...

      20220205
      學Rust的第三天,發現它沒有預處理...我想#if false來看看某些段落的運行正確與否,結果只有if′<_`

      學過c/cpp的會遇到煩人的頭文件,定義順序,多重包含,以及21種字符串的種種煩惱...
      學過java/c#的會遇到GC掃描,把很多東西放到運行時,令運行速度比較慢...
      那么有沒有java/c#這樣新式語法,又有c/cpp的速度的,還反編譯不出來源碼的,那就是:Rust.
      相當于把歷史包袱扔掉了一大半.
      但是它生命周期的表現就一面光鮮一面糞便.′<_`

      20220209
      學了一下Rust,發現生命周期真的蠻難看,臭臭的語法和臭臭的語法糖′<_`

      20220128
      種一棵樹最好的時間是十年前,其次是現在.這句話真美.

      cad.net 四叉樹把一些foreach扔掉了,
      因為CPU預讀的好處,所以也改成了判斷子節點為null,而不是扔掉數組內的null再返回,這樣反而運行更快了,有點喵喵的.
      總算把十萬碰撞變成74毫秒.從3秒到74毫秒?(ˊ?ˋ*)?

      跟gzxl研究好了四叉樹了,
      特喵的發現自己的代碼跟高手寫起來區別好大.
      不光區別很大,連分析能力都是差了一大截,主要是不曉得CPU怎么干才是最快的.
      像盲目使用屬性已經成為了C#的常態,
      但是字段才不跟屬性一樣跳轉一次函數指針并出棧入棧造成耗時.

      20220126
      cad.net 封裝兩個填充類 增加填充邊界獲取方式.

      20220125 CPU緩存機制和SIMD指令

      為什么UE5能干上億個三角面還不卡頓?

      CPU 詳解緩存 緩存壓榨真有意思,那么點云之類的就可以重新構造了..

      戰地3的優化共享

      20220118
      cad.net 封裝一個填充類 新寫

      20220115
      debug完四叉樹的所有內容了,發現人家找鄰居的那版cpp代碼實際上不適用在cad,他把點加入給做成個鏈表就完事了,
      點實際上要放在 目前對應的空間最下層 的節點內.
      而且搜索最近圖元并不是鄰居,嘻嘻.

      20220114
      cad.net 事務處理報錯增加了報錯2.

      20220113
      cad.net 定義Lisp和發送同步命令 增加多線程同步命令

      20220112
      四叉樹增加了找鄰近圖元的功能,嘻嘻.

      20220107
      cad.net 后臺選擇集和內接正交矩形算法
      修改多邊形邊界選區細粒度的問題,就是不用點集矩陣判斷了,改用每條邊信息

      20220102
      修復后臺選擇集的邊界采集,發現單邊采集是可以處理自交選取...就是效率老感覺不如其他軟件的模板..
      總感覺應該看看開源cad源碼先...一個鏈式三角形寫了兩天沒寫好...

      20211229
      http://www.rzrgm.cn/JJBox/p/14179921.html 增加思維導圖和排版

      20211228
      今天找cad.net如何插入OLE對象,發現沒有!!
      stackoverflow:
      沒有正確的答案

      兩個官方:B有部分代碼
      A
      B

      CadLib的拉米:解釋為什么沒有

      感覺這個東西不好做...但是為什么QQ截圖是可以粘貼到cad上面的?
      總不可能是騰訊適配了cad,而是通過某項微軟的ole標準,令cad可以接收到剪貼板相同的東西..
      留下了沒有技術的眼淚 (;′??Д??`)

      20211225
      這幾天我嘗試去修復之前制作的一個對齊圖元的功能,增加三維對齊,
      當我完成了圖元部分,再進行了對齊視口內圖元時,發現了在布局視口上進行(getpoint)是不會有z高的,即使是開了捕捉.
      這樣導致了視口呈現三維的時候(觀察軸),無法依據我給出的一條對齊線來進行對齊.
      (復現方式:在視口內按shift+鼠標中鍵平移一個三維觀察軸,然后在視口外執行getpoint(捕捉有z高的圖元),得到pt.z都是0)
      這樣狀態下,需要進行z高獲取...

      發現這其實是Acad一次開發的問題:
      如果是一次開發:
      那么執行"捕捉點"時,順帶獲取圖元id,找到拉伸點.Z即可;
      而二次開發非常麻煩:
      需要利用獲取點(getpoint)擴展成方形(大小依照?),然后置換(chspace)入到模型去選擇方區的圖元,
      再找到捕捉部分的圖元,獲取置頂圖元的z高.
      而觀察軸會影響選擇,需要把四叉樹重建,把包圍盒變換到DCS再重建....
      相當復雜,要測試的東西太多,準備放棄了,去賺點工資再回來敲這個功能.

      20211217
      昨天修改了一下jig封裝,就多了點東西.

      突然發現桌子的填充面板做得賊差,還是一個群友問起怎么做"填充預覽"我才猛然發現,
      桌子是每次打開填充面板都一次性讀取所有的填充文件,這樣導致用戶自定義的填充份量大的時候會卡界面.
      所以優化的點的,cad程序啟動的時候啟動一個泵式線程,
      讀取支持路徑所有的pat,然后把這些pat生成一份bmp,填充面板利用這些bmp顯示,還可以做成滾動下滑讀取,這樣就不會卡了.
      接著用戶可能修改pat,這樣這個泵式線程只需要監控文件修改,然后對比文件哈希值(還得儲存一份pat和bmp的對應關系表),有改就再替換bmp就行了.
      一個軟件好不好用,就看細心不細心.
      估計桌子50年后也不會改這個東西,該自己干的活還是要自己干.

      20211211
      要來了青蛙的博客園賬號,然后把它裝修得跟我一樣,嘻嘻

      今天發現了pi的爭議:
      https://baike.baidu.com/item/τ/2858554
      http://tauday.com/

      說實話,我比較接受這樣,
      τ==3.1415926
      π==τ*2
      結果是反過來的
      π==3.1415926
      τ==π*2
      他們希臘人不懂象形嗎(嘻嘻)
      

      20211209
      馬里奧制造的新用戶也可以進入去玩舊版地圖使用同樣的舊bug操作(超級跳),而新做的地圖就修復了.....
      相當于每次升級都把舊程序給重新導向了,有點強...
      國內游戲每次升級就進行顛覆性更新,所以才把策劃罵成狗....

      之前看過一個TSP問題的代碼是通過類對象里面的靜態成員進行類構造,
      這樣可以讓構造函數保持最小初始化,
      而拆分參數不同的類型到指定類型則是靜態函數完成,
      它主要的好處是在IOC容器反射構造時候就需要一個最小構造,
      代碼真是越寫越感覺有趣.

      20211206
      cad.net 封裝jig新寫

      20211203
      cad.net 句柄遍歷數據庫 大改.

      20211201
      vs2022真奇怪,net35還有,net40卻不見了..

      氣鼠我辣,移植vs2019的擴展到vs2022的時候在實驗環境是正常的,但是裝到正常環境的時候不出現了!
      現在用也用不了,卸載也沒有按鈕,重新安裝卻提示已經安裝了...

      20211129
      今天想了一個畫面,要是人類已有的知識都做成一個多叉樹,這個樹該有多龐大呀.
      然后人類不就可以針對未發掘的地方看到對應的關系了,
      然后發現這樣的需求分析可以成為一門職業...學科分析師?!
      然后人類迎來了全球學科分工?
      人類工業分工已經打得不可開交了,搞學科分工該不會要組成一個國家再說,又或者一小搓人憑借著自己的先發優勢去盡力碰撞每個方方面面,最后發現"自己還是有些東西沒有碰撞出來,但是對面搞出來就是比自己做得好...".

      修了一下上篇曲線類操作的一些圖示,置頂的入門數學增加了一下凸度事件測試

      20211127
      整理了一下cad.net 曲線類操作,因為有人問起GetParameterAtPoint這個方法怎么肥事...

      20211124
      今天發現c#的泛型約束不能約束基本類型,這導致矩陣類居然是要單獨做一個整數矩陣和浮點數矩陣??

      20211123 文件編碼UTF-8

      今天發現我的文件很多種編碼格式,然后網絡了一番,BOM就是簽名的意思.
      發現UTF-8(不帶簽名)很不錯,因為除了微軟都用它,結果發現把.sln改成UTF-8(不帶簽名)之后,vs是打不開的...
      林的C#判斷文件編碼提到的信息來看,簽名還是挺好的.

      甚至發現了win內部是UTF-16,因為這是配合cpu一次讀4個為一頁.
      跨平臺的net standard/net core/net5之后變成了UTF-8(不帶簽名)的配置文件,而.sln僅為UTF-8(BOM).
      覺得文件帶簽名是很高明的做法呀,但是恰恰那群mac和linux又喜歡不帶,一股誰也不服誰的感覺...

      然后我的cs文件又有GB2312...
      本來想通過代碼解決的,擔心被改錯,還是用vscode一個個看了.所以我的文件變成:
      UTF-8:
      .json
      .md

      UTF-8(BOM):
      .cs .sln 工程文件(管他什么跨平臺)

      GB2312:
      .lsp 為了cad08,所以不能變成UTF-8

      冇眼睇...

      20211122 遺傳算法

      看到網絡上關于遺傳算法的東西,分成兩類,一類是解方程,一類是TSP.
      然后擼代碼的時候,老是想把他們共同方法抽起來寫接口(統一起來)--需求
      但是代碼太長并且穿插著,沒能一下子理解,于是乎做了一張圖(果然思維導圖敲好用)--分析方法

      然后發現了,居然是旅游路線之間交配,交配的時候是不允許同城共存(這很好理解,因為同一個城市不許旅游兩次.)

      首先我并不是一個聰明人,看到概念就能敲那是很可怕的存在,但是人可以偷懶,卻不能停止學習...
      而這主要掌握不是代碼,而是掌握一種歸納后分析的方法...(可謂是很哲學了)
      盡力避免 使其昏昏 ,我只能把理解方式提供給大家了,畢竟聞道有先后,這樣比提供結果更重要.

      20211119
      有一天我問人工智能是怎么體現"智慧"的,然后小軒軒告訴我去看一下遺傳算法.
      然后發現,原來遺傳算法就是暴力算法的一種概率碰撞然后挑選概率大的,有點喵啊.
      還真是勤奮可以讓人學得更多有意思的東西.

      20211118
      第一次看到手機版比電腦版好用的軟件是思維導圖XMind,在電腦上面用的時候就很奇怪,為什么連鼠標中間都平移都沒有做好啊?然后今天下載了才發現,手指并不會做到鼠標中間按下之后快速滑動...
      可以說是很網頁端思維了.(好歹做一個小手啊)

      20211117
      cad.net 反射com獲取包圍盒從參數獲取返回的數據+net5不能用Marshal.GetActiveObject解決方案
      因為內容重復,此文合并到 cad.net Acad外部啟動程序

      20211112
      發現后臺選擇集的采集邊界誤差太大,我想了一種輪詢邊界采集的方法,但是還沒有完成...估計這就是桌子的選擇集采集法.
      一步一步揭開前人的構思.這感覺真是美妙.

      20211111
      今天日期好多1,光棍節節節高升...
      前幾天悄悄改了cad變量獲取和反應器
      也改了上日期的后臺選擇集,修改了些許邏輯.

      今天發現南方cass用了pycad,但是沒有留下木蘭許可協議.??

      20211109
      cad.net 后臺選擇集和內接正交矩形算法 我也不知道有沒有缺少函數...有些按照文字改成自己的內褲就好了...懂的都懂...
      終于完成內接正交矩形了,基本上就是全速選擇集了,沒想到這個玩意居然那么有意思.

      20211106
      我利用四叉樹建立了一個后臺選擇集,然后發現點集邊界會出現凹多邊形選區,
      接著想怎么用正交矩形逼近多邊形內部,又衍生出內接正交矩形,內接最小矩形,內接最大矩形...
      我勒個擦,怎么那么復雜,但是我又不想遍歷判斷...

      20211105
      cad.net 四叉樹新寫一篇.

      突然發現寫作一大技巧:
      舉一個可能錯誤但是理解接近的例子.

      20211103
      e大給了我一個視口功能玩,然后我整理完了,然后git reset了,沒有git add,結果需要重新整理了...
      擦...git居然沒有reset前自動commit...

      今天完成了cad調用四叉樹,發現速度蠻快的,再來擼一個八叉樹...

      20211101
      cad.net 定義Lisp和發送同步命令重新梳理了所有的函數,并且增加了同步cad命令,
      用了讀取PE來動態讀取兩個文件,因為一些函數被桌子轉移到另一個dll了,而且他們名字差不多...
      但是委托容器的實現很糟糕,查了一下居然沒有人實現...

      教育是為了保持最少的溝通成本,
      就是,我們在建設一個房子,你說了句會不會驚動山神,我們除了把你趕走別無他法.
      既然你要說話,那么就需要證據和邏輯推演.
      懷疑論和懷疑是兩種東西.

      20211031
      本來想實現一個字符串+參數輸入到委托容器,然后從委托容器內調用功能.
      因為調用的接口太多,裹的接口的安全操作太多了.
      首先我是把cad的exe和dll的pe讀取出來,然后將函數名轉為指針,指針轉為委托,再把委托放入容器...
      不過委托通用的狀態找不到,導致整個功能失敗...
      還得一個個委托慢慢寫...
      不過倒是想用動態編譯生成這些委托,但是這不撿了芝麻丟西瓜了....

      20211029
      cad.net 關于圖元初始化注意事項 新寫
      cad.net 復制圖元的時候按下多次esc導致復制中斷的bug 覺得之前寫的不好,現在改了一下.
      測試篇 創建nuget包 增加csproj直接生成nuget包
      cad.net GeometricExtents出錯了 增加包圍盒的集中出錯方式


      麻了,原來git不支持路徑或者文件有空格,我用ctrl打不開文件啦!

      20211027
      cad.net 錯誤日志log4
      因為之前看過網上一些net core的教程,有講怎么用log4寫日志,
      然后我在cad插件上面實現有點問題,因為大量采用了人家的文章內容,本來不打算公開,不過有人問起來了,所以...

      20211026
      cad.net 二度封裝居然少寫了隱式轉換...

      有些人覺得英語不好就給編程設定義域,然后認定自己接觸的是人家吃剩的.
      難道學校不好,知識就不好嗎?
      難道英語不好,數學就不好嗎?
      難道數學不好,你體力就不好嗎?
      人不能總為自己找理由,一開始這么想就輸了.
      要玩就認真玩,先有立足地,后有出頭天.

      20211025
      兩直線求交點發現了忘了演示兩條線都是斜著的情況.

      有的公司為了突破數據庫提交極限,想出了各種布隆算法,輪盤式數據庫.
      有的公司為了把甲方抓在手里,想出了幾百次提交就休眠線程....

      20211023
      笑死,昨天的演示圖片沒有更新,還是掃不出來,但是代碼是對的...改了...同時增加了控制臺...

      cad.net 二度封裝增加了迭代器的自舉類型模板,封裝再封裝0.0

      20211022
      cad.net 二維碼 修復了手機qq掃描不出來的問題

      20211020
      因為十分討厭cad08的point在debug的時候看不見信息,所以我做了一個PointV用來轉換所有的點到這里,
      加上封裝了一些線性代數的函數變成一個超級類...(超級累)
      它在我共享工程里面

      cad.net 入門數學增加了旋轉矩陣.

      20%是切割字符串,
      30%是學習數學,
      10%是數據交換,
      40%是處理各種面板的關系.
      ??

      20211016
      我就想知道x^x=c,c已知,怎么求得x,看了一下資料是郎伯W函數
      然后搜了一下,發現人家用的迭代法

      20211013
      有個群友寫了一個太陽系行星運行的cad程序,發現蠻好玩的,但是沒有做好,然后我去收集星球信息用于模擬真實的.
      打開了維基百科,列出excel表的時候,做了前面一堆,然后發現斜角有三個...
      怎么還有的斜著黃道面公轉的...弄懂每個名詞都很困難...

      20211012
      cad.net 入門數學

      1. 修改了二維叉乘求方向的說明和函數名MathHelper.CrossAclockwise,明明的逆時針為真的,被我寫成了順時針了;
      2. 因為這是基礎篇,免得大家找函數無法debug,所以增加了鏡像函數在求導函數上面;

      cad.net 復雜實體

      1. 根據上面叉乘問題也聯動修改了;
      2. 日志20211001中提及了修改多段線點集會引起ctrl+u的錯誤;
      3. 為了貼合數學的逆時針為真,因此修改多段線點集的方向性全部改成逆時針;
      4. 并且補充了覆蓋點集函數;

      數學篇 cad.net 凸包

      1. 根據上面叉乘問題也聯動修改了;

      今天看了一個虛數視頻 https://b23.tv/v9NjIA

      20211009
      cad.net 入門數學增加了導數應用

      20211006
      cad.net 入門數學增加了二維旋轉和三維旋轉,發現有的人看不懂矩陣.

      database.Purge() 只列能刪除的清單,不刪除.

      突然間覺得圖形開發沒啥樂趣,又不曉得干什么好,想研究mysql又沒有應用的東西.

      20211003
      cad.net 入門數學增加了凸度求弧長.

      20211001 曲線

      1. 這幾天在做倒角命令,發現多段線 polyline.Reset(false, 0); 會引起ctrl+u回退不了...
        然后換了一個思路,修改節點,這個時候有舊節點數和新節點數,
        若是polyline節點數小于新節點數,先add不足的節點數(節點都是0,0就行),
        再修改節點,
        若是polyline節點數大于新節點數,最后移除多余節點.

      2. 然后看了一下怎么做一條曲線
        https://blog.csdn.net/qq_40597317/article/details/81155571
        https://zhuanlan.zhihu.com/p/50626506
        感覺曲線這個東西是2d圖形學的最后一個問題.
        (其實我是想火車在軌道上面跑成曲線,怎么求火車在這條曲線的曲長和坐標...然后通過曲長判斷前后車距防止區間占用失效后沒有自動停車裝置...雖然cad有這個功能,但是數學不能落下啊...)
        不過我并沒有完全弄懂..嘻嘻

      20210929
      感覺復刻cad的命令一個月頂多四個,例如倒角之類的寫起來是很費神的...
      況且我喜歡邊做邊思考能不能替換成自己的數學庫,不用cad自帶的,他的本質是怎么樣的...
      難怪他們說制作一個cad需要50億美金

      20210928
      飛詩:
      測試高版本2020+ 有個bug
      用Editor.CurrentUserCoordinateSystem修改了坐標系原點
      再用dimordinate命令標注,標注原點還是沒動~
      要加Editor.UpdateTiledViewportsInDatabase();

      20210926
      有沒有技術是把云系統的東西載入到客戶端,然后在客戶端的cad上面邊畫邊上傳,
      這樣可以異步提交,
      也就是我在本地拼命畫,然后突然關機,這個時候只是少量的操作信息沒有上傳服務器,重畫部分能夠接受.
      天哪嚕,我居然能想到這個方法應對數據庫備份的難題.

      20210920 地球史與人類

      地球被一顆大隕石(小行星)忒伊亞撞擊之后,軌道來到了太陽宜居帶,也因此地球有了一顆大月亮.
      此時是太陽系初期,在行星之間彌漫著各種氣體,其中氧和氫被收集到地球上變成海洋,也可能因為忒伊亞就收集了再撞過來.
      然后地球融合了各種氣體越來越多,地球的自旋開始甩動著氣體,氣體之間產生了電荷,隨著一道道閃電在大氣和海洋中打擊,將無機物變成了有機物,此時氨基酸誕生了(米勒實驗).
      大量的氨基酸飄動在海洋里,而海底火山此時不斷噴發著,一些細小的孔洞被塞入了氨基酸(石質細胞),也因為海底火山持續的噴發造成的翻滾運動,此時微小作用下將有機物撞擊成可以相互契合的東西:RNA.
      RNA也在持續的翻滾下契合了核糖體,然后產生了蛋白質.
      此時此刻地球上面的迎來了RNA組合大爆發,有RNA首尾相連組成了環的,有RNA抓住蠟質給自己做了個細胞壁的,可以說這個階段是病毒大爆發呀(⊙o⊙)

      蛋白質里面有一種叫水解酶的,它在RNA身上上下其手,將RNA凹陷的地方與游離物凸起的地方放一起,這是自然力的平滑運動(堿基互補配對,就跟抹灰似的把它抹平抹圓滑),然后誕生了DNA.
      DNA再通過中心法則等等一系列操作復制粘貼自己,成功把自己擠出了石質細胞后還可以存活,然后一口呼吸!
      "死了",這是一個厭氧細胞.
      "活了",這是一個喜氧細胞.
      然后葉綠體誕生,然后演變各種植物...
      然后單細胞生物誕生了,演變成多細胞生物,蟲,魚都出現了...

      之后水揮發到太空了,海里的植物露出水面了.
      此時陸地上因為大量的水氣和云層令到植物瘋狂生長,甚至沒有腐敗植物的細菌和真菌.而蜉蝣生物在此時死了一批又一批.
      這個過程存在上億年,大量的煤碳和石油在此時被掩埋地里.

      在這上億年間,魚變成了千萬種生物狀態,有用呼吸器官吸附巖石的,有分泌粘液掛壁的,有很多很多方式,目的就是DNA的復制需要能量(活下來吃東西).
      然后是陸地這批生物長出了手,而有的長了手的又回到水里了,這一批叫螃蟹,蝦,青蛙,鱷魚等等...實際上只是一種生態位占據,并不是說它們就傻.

      上億種生物里面,從蟲態變成魚態,變成蜥態,變成恐龍態,變成鳥態.
      然后至今6500萬年前的一顆小隕石砸到之后,大量的飛濺塵籠罩了整個地球,令全球生物滅絕了70%,不過同樣威力的也有宇宙射線爆發說.
      滅絕所有恐龍所占據的所有生態位是一種很刁鉆的操作,不過換個角度想,翼龍后裔的雞和鳥就飛到了安全區留下來了.
      或許恐龍的DNA鏈比較長導致射線撞擊斷裂呢?
      或許隕石撞擊之后含氧量降低支持不了恐龍的呼吸呢?
      (6500萬年太遠了,超過了碳十四支持范圍了...DNA也變成無用的了)

      在上億種生物里面,有一種魚,從蟲態變成魚態,變成蜥態,從變成鼠態(哺乳類),變成猴態,變成猿態,變成人態...其中鼠態的時候還和恐龍打了個照面,甚至追著我的祖先吃了起來...(⊙o⊙)

      在經歷了全球大冰期(剛剛的隕石灰,射線植物死亡說等等),大陸迎來了陽光,地球最熱的地方--非洲,猿類們因為氣溫升高,開始掉毛了...然后猿類出現了人種分支,逐步離開非洲,然后持續掉毛...

      最后一批走的人叫智人,走出非洲之后又和之前的丹尼索瓦人和尼安德特人進行雜交...
      隨后,在非洲這片高原上面,紫外線越來越強,紫外線令體內葉酸瘋狂掉,生育需要葉酸,所以產生了抵抗極強的物質:黑色素!--黑種人.
      所以在原地也會有進化.
      所以人類至今是頭發沒有掉完就是為了抵抗陽光,而雄性激素多掉發,是因為這是強關聯...嘿嘿...

      黃種人怎么來的?其中要提及了如何推翻了多地智人起源.
      DNA的變異每次都有標靶位置,這些標靶位置在地圖上面是可以看出線性關系的,從而可以分析出人類遷移路線(人類遷移路線圖)而絕大部分的亞洲人都是來自于東非(⊙o⊙)
      而其中北非也是有部分人類在其后進入世界島,這部分人在中東上游走,然后分叉走入了歐洲和亞洲.

      大概2億年后,地球就把所有的水蒸發到太空了.
      大概45億年后,太陽就變成紅巨星將地球包裹.

      參考文章:
      RNA起源論.
      人類遷移圖.
      古人是否有生殖隔離
      中國的八個原始女性.

      20210918
      cad怎么做定時備份?
      可以分別做兩個功能,然后一個功能開計時線程保存,然后一個做監控目錄,監控修改之后直接拷貝一份出來.
      如果cad支持序列化,那么保存的東西都可以git存起來,然后用文本對比,可惜cad這個狗東西不支持.
      就算cad支持,天正圖元也不支持,一堆狗東西.
      有啥用?你可以快照形式做備份.

      這幾天發現vs的翻譯插件失效了.

      20210915

      看不懂Fody的源碼,不曉得用什么機制完成引用就感染了工程,然后改里面的特性.
      關鍵是這個東西肯定是編譯時候完成的,好煩哦...感覺此時此刻自己無比的笨...

      20210911

      發現做技術的遇到困難心理只需要一句話就行:這個問題除了你之外沒有人會幫你解決.

      20210908 anycad

      一個開源的cad工程 https://github.com/anycad
      發現博客園有用這個開發三維圖元,感覺有點意思. http://www.rzrgm.cn/anycad/

      20210831

      感覺現在終于有那種回憶代碼發現邏輯bug的能力了...
      很久之前還是畫cad的時候有相同的感覺,然后意識到這樣畫可以更好...

      20210830

      敲代碼多了之后,發現為什么vs沒有把當前行帶入到if()的括號內呢...
      然后看了一下代碼片段寫法,里面有$selected$觸發后臺選擇函數,但是不知道要怎么寫才可以指定函數,
      我想要個$GetLine$獲取這行...
      因此放棄了代碼片段觸發...(主要是懶得看那一千多頁的PDF說明)

      然后我在之前插件工程改了一下,發現也可以做到:`if觸發 `foreach觸發

      近期做了一個gdi+畫拼圖驗證碼,就是仿網頁的那種拖拉拼圖驗證碼.
      沒想到微軟居然封裝的多段線是沒有凸度的,這不坑爹嘛...還好擼個一天就擼完了...

      20210822

      繼續醫療篇的胡思亂想,看到一門截肢手術動畫視頻,是通過和大腿骨接駁假肢鋼管,
      然后有評論說這樣并不能保證骨頭和鋼管在日后使用中無菌,會造成股骨頭壞死,越截越上.
      那么未來是不是有一種技術可以將骨頭進行漸變鋼化,利用某種機制替代局部骨質為鋼質,
      再通過之前亂想的"角質化"進行封口.
      不過當我想完這些之后,發現那不如直接克隆一條肉腿(如果局部克隆更方便的話).
      但是如果是機械零件替代全身的話,那么肉體克隆似乎變得重要性不強.

      20210814

      在煩一個事情,不想修改代碼的情況下,給工程下的所有全部加一個計時函數,想注入msil,發現有csproj有編譯任務,但是我走不通代碼??
      又在擼msil注入,覺得這個東西資料好少...

      晚上網終于通了....
      增加了些許的說明,更好地理解:
      數學篇 cad.net 判斷點在多段線內-射線法
      測試篇 c#枚舉類型怎么用

      20210813

      斷網的一天,即將迎來第二天...村里修整電線居然把一個箱子的光纖都剪掉了??

      突然想起來,我寫博客的目的是為了若干年后有一個讀高中或者大學的小朋友看到一道他不會的編程題,
      然后一搜,直接搜到了有代碼實現,并且具有邏輯和說明,
      所以有時候啰嗦的注釋往往是用來橋接思路的,我才不會去刪掉啰嗦的地方(除非我第二次看它的時候真的啰嗦).

      20210812

      突然發現居然有一個全國cad軟件第三的公司在我一個半小時地鐵上...
      不知道會不會要我?? ?????

      20210811

      抖音app更新了十幾個版本都沒有解決切換直播間之后,前面一個直播間有幾率仍然在播放,
      怕不是后臺線程常駐用來進行轉流...

      今天測試了一下網上的c#快速平方根倒數,
      發現c#測試速度比起 1/Math.Sqrt() 慢...
      安全代碼和不安全代碼都測試了,安全賊慢,不安全還行,但是仍然比數學庫的慢,賊特喵奇怪...
      叫了e大幫測試一下cpp的表現,發現他運行卻是正確的...

      20210808

      寫了一篇新文章cad.net 透視變換

      20210722

      小時候因為看了鋼之煉金術師,看到了機械鎧這個東西,然后我的夢想變成了做出給殘疾人用的機械臂,機械眼,結果現在我不光離我的夢想越來越遠,甚至到了遙不可及.
      干.
      我想過沒有解決的問題:
      神經與電路接駁.
      斷臂末端可以觸生角質化的話,那么是不是就可以制作不需脫卸和透氣的機械臂了.

      20210721

      想了一個問題,均衡負載服務器如果崩了會怎么樣...貌似不知道哪里學得到這些知識...

      20210719

      鏈接
      沒想到學mysql索引知道了二叉樹,紅黑樹(二叉平衡樹),B+樹(多叉樹帶雙向指針)的這幾種結構.
      之前怎么看怎么奇怪,為什么那么多樹.之前也想過,每次加數據進去的時候扭動一下分支不就很慢嗎?(比數組慢)
      后來想想,查詢快才是真的快.(彎道快才是真的快,誰直線不會踩油門啊)

      看完mysql的索引,就幾個要點.
      創建索引.
      查詢索引:查詢要滿足最左前綴.
      其中查詢索引時候觸發mysql底層機制,mysql索引條件下推:當滿足了最左前綴原則之后,索引項查找條件不完全滿足,后面的條件會繼續判斷,這就是觸發下推,下推判斷結束之后再進行回表(5.6前是回表之后再判斷).
      另見此鏈接

      16號的最后問題,原來查詢的表存儲起來的變量,原來是視圖...

      存儲過程和函數也看完了,這兩個東西差別就是返回值啊...
      感覺sql沒什么難的...就是要多練習...
      我現在想知道如果數據庫出現斷電損壞了,這樣可回溯或者可備份的容災方案是怎么樣的...

      20210716

      發現學一門技能,又覺得它的內容可以搜索得到,那么要把這個學習程度劃分成三個部分:
      熟練掌握,可能深入,搜索得到.

      學sql和cad一樣,都是操作命令.
      cad需要掌握兩百個命令完成熟練,而sql居然比較少...
      但是眾所周知sql的學習本質不在于sql語言,而是多線程高并發訪問.

      看完一遍基礎sql語句,發現它的ACID的D是永久性,
      這很奇怪,居然不是事務提交鏈組成的,可回溯所有的事務呢?
      就連git也是有提交鏈來回溯.感覺不太符合認知需求.

      學基礎篇的時候發現教程上面的把返回a表作為條件插入到b表查詢內.
      怎么沒有變量呢?

      20210715

      本來高高興興去學習mysql,發現mysql的dll很奇怪,會影響net35的WPF.
      但是編譯又是正常的...就是會報個錯在那里...
      苦惱.
      我只能用獨立的高版本工程學習了...

      嘻嘻,歪哥不愧是做了論壇的,又用了sqlsugar重建一下ORM了,
      接下來再擼多幾遍sql語句,然后再學數據庫鎖,自從懂得多線程阻塞機制果然概念都是相似的,起碼知道底層原理.
      感覺現在腦子轉的賊快,之前沒聽懂的現在都聽懂了.

      今天的內容大概歸納了重點,
      sql的數據表設計三大范式.組合條件查詢.聯表查詢.排序.
      我尋思這些東西不都是用到就搜嗎....這會很尷尬:上司問我會不會用,我說會,上司問我怎么用?我:bing一下就知道.
      一面圖形算法,一面數據庫熟練度,要兩個并存有點難...

      20210714

      今天突然想到一個實現"cad偽卸載dll"的方法.
      卸載cad的dll是為了可以重復載入函數,那么我只需要將命令這一個函數制作成客戶端,
      缺點就是你客戶端調用的接口需要全部擼一遍,也就是全部cad的函數需要擼成接口暴露,加上remoting需要的接口.
      嘻嘻,誰會愿意這樣干呢...就免了一個重啟cad而已...
      不知道可不可以把cad的dll反編譯之后上這個MarshalByRefObject接口,以及生成對應的函數接口,然后重新打包..
      感覺還是可行的,是個不錯的遠程調用方法...

      e大:這和動態編譯差不多.
      感覺確實動態編譯也蠻香的.
      破桌子怎么不把每個函數弄成遠程.
      e大:多線程都沒有的的玩意還想遠程.

      20210712

      福蘿卜:WPF net3.5如果ComboBox綁定了一個屬性,當ComboBox的DataContext改變時,會把之前的DataContext的這個屬性給清空了

      記錄一下:dwgFiler序列化圖元這個方法不能使用裝飾器模式,只能用組合模式,貌似大部分擴展開發都不能這樣干,還是原生開發好...各種概念在很多時候都是擼一遍就天然覺得應該那么干,就好像mvc,即使沒有學過,也會在經驗積累中逐漸分離出來.

      20210711

      我又想去摸sql了,雖然dwg的數據庫本身就是一個數據庫,但是沒有sql語句.
      發現大部分的人編程就是為了增刪改查,而我在畫畫改改??
      看B站還說得零零碎碎的...而且居然要學那么多種數據庫,什么redis,sqlservice,mysql....
      感覺不知道怎么練習起來,雖然我還看過分布式數據庫設計來著...
      從練習到生產感覺要經歷蠻長時間的...不知道找份工作邊做邊學行不行...

      認識了一個在寧德時代的電氣工程師,然后人家剛學c#,嘿嘿發現c#的工控類工作也不少.
      群友說有一家醫療公司兩個程序員就撐起了一個開發部,其重要性在于他們提供了一個行業解決方案,一臺設備200w...

      今天想了一下,net standard的工程是有文件監控的,監控了文件新增就修改到csproj里.
      那微軟為什么不一次性修改好所有的工程,例如vcproj.
      不過就連同為c#的net framework也不整...
      想必有什么私心...
      要是一家大公司豈不是會把各種環境給擼成這樣的模式,想想就很有趣.

      今兒發現了,原來我一直沒有說明白.net standard工程的同net版本需要加載同net最低版本的dll,
      如果有用到高版本的方法,就反射調用.
      增加此說明到這里 cad.net 從.net framework移植到.net standard

      [有心人-問道]他一直是多個net版本配置,想每個cad版本對應每個工程(.net framework確實是這樣干的)
      他是我遇到的第二個對我這么說的人了,明明就是一個復制粘貼csproj的活,問了一天,他也操了一天...
      然后他沒有做基本的測試就說不要net3.5,結果cad12就是net3.5的.

      怒睡!!!

      20210710

      移除這兩天的日志困惑,寫了一篇新文cad.net 跨進程通訊

      20210709

      今天發現一個vs的bug,在打開vs解決方案之后設定一個啟動項目,然后用文件夾刪除這個項目,
      此時vs是不會立即刷新工程的,然后執行編譯,那么vs會找不到工程而卡死...

      20210705

      做完注入了...沒想到園子的資料比想象的多...只是有點舊而已

      20210704

      這幾天在研究反編譯....學會看msil...
      首先是若海問了一個問題,怎么在出現錯誤的時候打印變量名.
      然后是我想攔截屬性的get和set訪問器,在它們里面注入一些代碼,使得它們調用的時候可以debug.writeline(我真正的目的并不是這樣,這只是舉個例子)
      不過目前能力有限,研究不是很成功...還是先找份工作吧??

      目前的成果是先交換GetGetMethod和new Action的函數指針.
      獲取舊的get方法加入一條舊方法鏈中.
      這樣獲取屬性的時候就能觸發到新Action,然而因為我是遍歷class下面所有的成員的,也就造成我需要造一個觸發鏈.
      但是我并不能獲取到是什么成員對象觸發了我的Action,也就沒法直接對應使用舊的get方法.
      感覺其中沒有邏輯問題,而是需要深入函數觸發的機制,因此我在研究msil...

      今天還看了一下什么叫AOP,原來最后就是用特性來減少代碼的重復/冗余的,
      例如WPF都會實現INotifyPropertyChanged接口來實現通知,通知了什么成員需要自己去寫,而每個成員都需要寫通知的方式.
      如果你覺得這個方法很蠢,那么它就真的很蠢,
      所以肯定有前人解決了:如何優雅的實現INotifyPropertyChanged接口
      在這篇文章中就有Fody的解決方案.
      還看到了有人在前面寫了多種處理方案
      不過NFox.WPF中使用的是第四種,更為推薦是Fody的方案就是了.

      既然Fody用的是msil注入,那么代表里面也有我想要的方法,而不是修改函數指針...妙...去看源碼好了
      透過上面的文章,還知道有c#攔截器這個東西...

      今天還學習了單元測試...
      滿滿的一天

      20210701 c# Interactive

      今天我的log4出錯了,原來是我作死去按了OzCodeBreak On All CLR Exceptions這個東西,
      導致所有的異常全部攔截了...也就是Common Language RunTime Exceptions都打開了...
      還好按了的話,再按一次就取消異常攔截了.

      今天還發現了選中代碼再ctrl+e e,就可以在c# Interactive執行求值.
      跟lisp一樣選中就執行似得!!
      甚至可以自己在cmd實現 https://b23.tv/HUoSGrM

      真是美好的一天呢.

      20210627

      修改了文章 cad.net 調用顏色對話框及處理背景色
      增加了cad的背景顏色設置處理,一個學lisp就想知道的處理....

      20210625

      vscode保存json會導致觸發三次監控文件修改事件,記事本保存打開只會一次.....我找了半天這個bug!!!!
      今天終于找到了修改塊編輯器背景顏色然后立即刷新的方法了,開心.

      20210624

      蠢斃了,原來md的`這樣`就是<kbd>這樣</kbd>,效果是: 這樣 然后我自己實現的kbd是加js渲染的 這樣

      20210623

      這幾天在研究ns的文件,終于,我把存檔弄回來了...??

      20210620

      弄了一個新倉庫ObjectArx日志讓大家一起來更新Arx的學習日志,因為市面上的資料過于陳舊,而一個人維護太難了.

      修改了操作篇 cad問題小百科_Acad增加S5

      20210615 歸納vs插件

      把關于vs插件的日志都移動到這里來了.

      阿驚插件

      阿驚插件 詳細操作已經在項目readme上面寫了,可以替代以下功能:

      1. Format document on Save 保存時候進行格式化
      2. Code alignment 對齊符號,沒有保存設置,而且需要手選
      3. Trailing Whitespace Visualizer 保存文件刪除行尾的空格

      翻譯插件

      安裝:vs2019-工具欄上面-擴展(x)-擴展管理-搜索:Visual-Studio-Translator(沒有china那個),重啟vs,安裝開始執行.
      就可以劃詞,然后ctrl+shift+d翻譯了.
      它背后的實現是先切割了駝峰命名的單詞,再上傳到翻譯,這樣準確度可以上升.
      翻譯了之后會彈個小窗口,鼠標點擊小窗口就可以將翻譯的內容替換到文本上.
      然后可以多劃幾行,看看翻譯效果.

      其他插件

      知乎這里還發現有幾個挺好用的:

      1. OzCode 調試用
      2. VSColorOutput 輸出窗口不同顏色的輸出
      3. Highlight all occurrences of selected word++ 匹配選中高亮顯示
      4. Code Metrices 代碼復雜度評估插件

      20210607 項目設計準則

      涉及了一些例如集合類不要作為返回值的,而是采用它的繼承,用只讀集合來操作...或者傳參進去...大概這樣的東西

      https://docs.microsoft.com/zh-cn/dotnet/standard/design-guidelines/

      20210606

      打苗苗成功了.還不用排隊...但是老爸高血壓,醫生不給打...

      20210605

      打苗苗沒打成功...工作人員說先安排去比較靠近鹽田的點先.

      今天一直在弄等號對齊,但是發現僅僅做上下對齊是不對的,
      應該是大括號內且上下對齊,還要扔掉注釋部分,總而言之滿麻煩的...加上還有注釋對齊...
      我不知道微軟是否提供了語義分析的功能...我尋思應該有,只是我懶得看,畢竟工具挺小的,直接擼,
      結果語義分析敲了足足一天...
      因為我敲過十幾天cpp,發現vs并不像c#一樣有代碼風格約束,
      難道敲cpp的公司都自己寫個插件支持代碼風格插件嗎?...也不是不可能...
      怒睡!

      20210604

      在e大的幫助下完成了插件,發現原來有個緩沖區,才能無選擇拿文本數據...
      (睡前刷手機看微軟的方法和e大給的一樣,結果醒來e大發我代碼了)
      現在想知道怎么注冊成命令,然后用DTE發送命令...發了半天沒發成功
      不過功能已經實現了,自己寫的vs插件代替了前面找到小插件,開心??

      明天要打苗苗了...園山啥時候才有公交車.

      20210603

      雖然已經做好了vs插件了,但是有個滾動條我沒搞定...

      20210601

      看完新手鏈接的內容,發現本質上是通過DTE來控制的,
      它背后是調用了vs的語言服務器的代碼規則里面的項目規則,項目是c#的,所以是c#規則,
      c#的規則里面有代碼塊的定義就是大括號基礎,然后切換到代碼頭和尾的光標處.
      之后我就是要摸會DTE...

      發現了java有后綴補全,這個宇宙最強IDE怎么沒有..

      今天還碎片化學了python的jieba分詞庫,提取人名信息.

      20210531

      看到那么多vs插件,本來想自己做一個的...結果發現微軟的幫助文檔并不是立即就能入門的...也就長達2060頁...
      然后指引了一個新手教程
      白嫖失敗,還是要從頭研究...狐哥說了很久的LSP協議和微軟教程也在這個鏈接上.

      修改了cad.net 實現不重復打開文件夾補充特殊文件夾的處理.

      20210528

      社區隔離中,公交車都停了.

      因為之前看了net5教程,上面有個很秀的操作是net5框架把配置文件全部做成了文件監控形式,若有修改則讀取并更新.
      然后我打算用在cad上面,通過監控文件來實現對.pgp文件的即改即用,修改了就發送一個(setvar "re-init" 16),
      做完之后,接著監控.cui也可以發送一個刷新界面,不過出現了cs.SaveAs(path)會觸發兩次文件監控,令它刷新兩次...不知道怎么解決了...

      PeInfo文中的構造函數訪問不到c盤,現已修改.
      Cui文中完善了PeInfo的函數指針調用.

      原來c#工程上面可以通過.editorconfig文件來頂替vs本身的縮進設置,也就是可以令團隊都不進行換行操作...我逐漸覺得括號不換行還挺好的,看代碼行行都是內容,尤其是匿名函數的箭頭換行,vs的格式化對這表現的賊奇怪,有時候需要進行格式化兩次才有正確效果.

      20210524

      發現深圳蠻多醫療行業需要cad轉gcode的,這些企業又在龍華片區,明明離橫崗20公里,偏偏兩個鐘到,但是工資又高,
      然后...我要是有輛車我需要那么糾結...分分鐘都去上班了...哎...人生總那么多無奈...

      20210521

      https://zhuanlan.zhihu.com/p/105433460 云點的發展

      https://tool.lu/ 在線運行各種代碼.

      20210518

      補充了PE內容到此處,cui操作

      記錄一下未來更博客的動力

      二維排料算法和三維排料算法,感覺應該有數學大牛做過啊...居然市場需求還挺大...
      如果我以后做了我就整個"論一個平板鍋怎么放雞排最多的方法研究"

      貌似圖元切變沒有人寫過c#代碼
      貌似樣條曲線偏移也沒有
      貌似平面圖變穹頂立面也沒有

      20210517

      測試篇 c#讀PE文件x86和x64 e大幫我測試了昨天的代碼發現無法用x64,然后我弄了弄,寫了一篇新的

      20210516

      正在做PE文件解析.

      20210515

      1.昨天的文章少了射線,補充了進去.

      2.刪除了20210513日志,把內容修改到了數學篇 cad.net 葛立恒凸包算法和面積最小包圍盒
      子函數:cad曲線采樣: GetLength 和 CurveSplit的Dispose上面.

      3.發現了一個做gis又懂CV的人,這算法可以位圖轉矢量,留個爪,畢竟GL和CV雙修才是我的路子.
      https://malagis.com/gis-vector-data-conversion-algorithm.html

      20210514

      寫了一篇新文章 cad.net 后臺選擇集

      20210512

      小賤賤:例如你的cad為何能打開加密文檔?就是你的加密軟件實時監控你的文檔,判斷當前文檔你是用什么軟件打開,如果軟件文檔在白名單上就自動將文件解密.所以處理加密文件時候需要進行復制一次.

      20210511

      今天聽到一個有意思的觀點,因為成就而喜歡,而沒有成就的喜歡大多數會沉淪.

      發現還是要找個干圖形的工作才好,尤其是我想側底研究完計算機圖形...
      因為現在想知道養條曲線偏移和擬合減少,看到一篇CNC機床需要這樣的算法的文章,結果文章沒有代碼,我尋思應該很多人干過呀,但是我的朋友們都沒有寫過...不過我知道熊掌有處理過cad的偏移bug,他重寫過一次隨鼠標偏移,就是不知道有沒有對應樣條曲線.
      擬合減少,用小腦瓜子想了一下,發現就是獲取一遍采樣點之后,依照采樣點曲率進行刪點和設置控制點.

      近期看到一個戶外掃描直接掃出云點數據的機子,有點帥.

      20210510

      我放棄了之后再撿起來看了看,結果修著修著修好了cad.net 文字偏移及符號表
      當時在想對齊樣式會出現文字/屬性,處理完之后需要處理塊內屬性,結果我尋思不如靠反射處理全部.
      重構了一下居然就好了.
      現在還有一個疑問是標注上的文字肯定不是左對齊,我的方法是不會設置到它的,
      但是已經通過了我的樣圖測試了,只是日后會不會有新宋體標注再導致這個問題呢...
      該不會這就是導致克隆文字偏移的真兇吧...

      20210509

      不知道為什么克隆塊表防止文字偏移的代碼有點問題,回滾回去又好像好麻煩,于是我調試了許久后決定放棄.
      反正是桌子的問題,讓他們自己解決吧
      問題如下
      因為我要處理文字偏移,
      1.后臺開圖之后提取塊信息和屬性,并且設置"屬性"對齊方式,這個時候如果"屬性"是非左,把它變成左才不會有問題.
      奇怪的地方是,此時無法正確從塊表記錄讀取到塊內"屬性"的對齊方式,它全部都是左,但是塊外"屬性"可以讀取到對齊方式.
      2.克隆后臺圖紙塊表記錄到當前圖紙,還原對齊方式.
      還原了之后會導致屬性位置和原始不同,又不能單純跟同步屬性命令一樣調整,畢竟保存原始克隆狀態才是正確的操作..

      估計是因為數據是塊中屬性塊導致的問題.
      我想到了一個特別繞的方案:
      因為拿不到后臺開圖的屬性實體點,那我去讀取dxf信息拿,克隆之后設置.

      20210508 cad組塊原理

      發現蠻多人不知道組塊原理的,這里留個爪讓他們來看.

      組塊步驟: 首先選擇了一堆圖元,然后獲取插入點,將圖元們克隆一份,刪除舊圖元們,
      用克隆的圖元,把它們從插入點平移到0,0,
      再根據鼠標坐標系逆變換到世界坐標系,
      加入new塊表記錄,讓new塊參照承載塊表記錄.

      插入塊步驟: 將塊參照插入到0,0,再從世界坐標系變換到鼠標坐標系,然后平移塊參照到插入點.

      ps:別描述那么多點,只有兩個點:0,0和插入點,弄懂了點關系就完成了一半.(0,0=原點,插入點=基點)

      20210507

      1.有人覺得為什么反射IAutoGO接口不去反射特性...
      其實是因為文章很早出的,而且之后南勝寫了自動cuix了,我就懶得寫了.
      不過我還是更新了這篇,嘿嘿cad.net IExtensionApplication接口的妙用_分開寫啟動運行函數

      2.很多論文的公式寫得雞兒復雜,是因為這論文人家寫了幾年,你怎么可能半天就弄懂了.
      某些是等你真的干起來才知道里面的含義.況且,不夠復雜老師不收的...

      3.看見我博客很多#if DEBUG2,#if true2,它作用跟flase一樣,不過有時候我需要調試,flase改成true太麻煩,刪掉個2又回來了...

      20210505

      修改了鏈式加載類cad.net dll動態加載和卸載
      修改了測試篇 關于vs的obj的Debug目錄占用
      目的是為了vs不要去占用obj,那干脆刪掉這幾個文件,它就占用不了,然后vs就可以編譯了,我之前怎么沒有想到呢...
      我們為此還研究了那么久vs占用obj是什么原理??

      20210503

      今天去獻血轉氨酶64.7不給獻了,感覺是咖啡和茶喝多了...
      我還是萬能的O型血,下個月再來.

      20210502

      青蛙說得對,為什么博客園沒有更新浮動到最上的功能??

      修改了原本的文章cad.net 關于動態塊的處理變成了動態塊專篇了.
      增加了一個屬性值讀取和設置的方法.

      新文章cad.net 一個選擇集的bug寫了很久,居然忘記了發布?

      新文章cad.net 標注樣式替代的處理

      20210430

      修改了文章cad.net dll動態加載和卸載補充了卸載dll的操作,但是有穿透程序域的bug...臍帶有一天能解決...臍帶...

      20210424

      修正了文章打開dwg文件夾
      把if if if...改成一個遞歸操作,我之前是怎么想到那么ugly的代碼的...

      20210422

      今天知道了qml.net這個項目 https://github.com/qmlnet/qmlnet
      在.net上面運行qml?

      20210421

      efan說熊掌是晨豐的技術主管.我第一次去定制一個功能就是模仿賤人工具箱的刷塊,然后找的熊掌定制的,接著我就開始了模仿他的代碼,開始了二次開發之路,再認識了山人,山人提點了我去學習c#,接著就有了這個博客.??

      20210420

      看到一個視頻是關于linux上檢測mysql什么函數耗時多的,然后針對那個耗時的做優化.雖然我除了dwg之外沒有怎么摸數據庫,但是感覺這樣優化的操作真優秀呀,要是dwg也可以就好了...

      很多人寫代碼很注重卡不卡,但是會忽略掉一個前提:能做不能做.

      win系統斷電恢復機制,根據資料是Vista前后的,但是我測試環境是win10 20H2:
      以前:
      睡眠,單備份到內存
      休眠,單備份到硬盤.
      之后:
      睡眠,雙備份,
      休眠,單備份到硬盤.
      輪子哥微博之前回復過人家,硬盤的暫存區取決于內存條大小.

      20210419

      寫了一篇新文章cad.net 操作cui和cuix
      嘿嘿...
      好像剩下Ribbon沒有寫了...

      20210417

      Acad2020調試的時候出現以下錯誤,我刪掉了所有的代碼依然會出現,是什么問題導致的呢?

      System.Runtime.InteropServices.SEHException:“外部組件發生異常。”
      發生在 ntdll.dll
      
      0x00007FF936B4EF4D (accore.dll)處(位于 acad.exe 中)引發的異常: 0xC0000005: 讀取位置 0x0000000000000000 時發生訪問沖突
      發生在 accore.dll
      

      20210415

      修改了操作篇 cad的快捷圖標中的啟動參數+替換啟動logo
      在文章后面增加了一些替換Acad啟動logo的方法,方法是Koz教我們的.

      今天有人問:
      怎么將首尾相連的直線和弧線連接成一條多段線?

      這就要說到join命令的實現了,
      首先判斷選擇集item1和item1+存在點和點相同,距離<1e-10,
      然后你得到一個有向數組,這個數組就是一條圖元鏈條,也就是多段線的每一段組成的.
      然后求每段是直線還是弧線,設置多段線凸度即可.

      20210411

      飛詩今天說,剛生成的標注/文字這類,還沒在圖中顯示,直接GeometricExtents出錯
      需要Draw一次,才能獲取.

      修改了文章cad.net 文字偏移及符號表解決方案2的代碼,
      提供完整的克隆代碼(但是不一定完全保證沒有問題).

      20210410

      發現Typora可以支持url空格,但是博客園不支持,所以要換成%20,否則導致url中斷.

      20210407

      vs的幫助文件只有微軟的可以采用F1在線,而在線和離線只能2選1,
      也就是如果我用了桌子的離線幫助,也要去下載一份微軟的離線幫助,
      那為什么不能加一個桌子的網站就好了呢?或者是vs提供共存辦法,有離線優先或者在線優先,找不到再切換.

      20210406

      修改了文章cad.net 重置cad之后創建文檔出錯,攔截cad致命錯誤內的一些代碼,和CadLabelBar工程保持一致.

      20210405

      修改了文章移植到.net standard修改了cad的nuget包.

      才知道%求余的細則.
      例如將數據們非平均分到3個數據庫,
      先將數據求哈希值,然后對哈希值求余,%3,結果就是0,1,2三個上面...蠻有意思的.

      然后還學了一個布隆算法,100億才占一個G的內存.

      20210404

      排版了昨天文章的幾個段落,不能按照發現時間來寫,我的思維太跳躍了,應該按照執行時間來寫,
      離散的知識點串成鏈的時候,是要按照鏈順序,不然讓讀者不知道你在干什么...

      20210403

      刪除了文章: "cad.net 在主線程中插入子線程的上下文同步方法"
      將此與 "cad.net WPF嵌入技術3_等待cad界面完成+Acad多線程的解決方案"
      合并改為:cad.net WPF嵌入技術3_等待界面完成+在主線程中插入子線程的上下文同步方法

      因為發現一個重大缺陷,直接運行Acad08的時候空閑事件不起作用,
      要放子類化攔截上面才可以.我就想扔掉個WinForm載體居然那么麻煩...
      要學線程阻塞標記,要上下文切換,要子類化..還好有福蘿卜教過我子類化
      代碼都在組織工程的CadLabelBar上面,忙這個我這兩天竟然都沒有咖啡時光了...

      20210331

      寫了一篇新文章:cad.net 在主線程中插入子線程的上下文同步方法

      20210329

      寫了一篇新文章:cad.net 投影三維圖元到某個平面上+求圖元交點

      修改了昨天的文章和日志,把日志的描述也扔到里面了.

      20210328

      寫了一篇新文章:cad.net 反射com獲取包圍盒從參數獲取返回的數據+net5不能用Marshal.GetActiveObject解決方案

      20210326

      博客園審查結束鳥...

      20210318

      續上,現在5:42,我沒有睡,連續刷了13集B站的openCV,覺得有點好玩,就是用一個個算子(卷積核)來處理圖片的清晰度,反差,以及橫線保留等等,之前看過李永樂老師講卷積核,大概知道是個什么東西,零碎的知識居然在這里串聯起來了...原來這就是計算機視覺...
      識別異形的文字之類,我猜是通過切變之后,然后通過算子過濾,再通過算子看筆畫,然后賦予筆畫的"權重",比較重量就認為它是某個字了?
      呃...這么感覺起來cad/pdf要想用上這個識別文字,需要有一份專用詞匯表,把詞匯表的文字權重拉高一點...建筑文字識別就不算什么難事了.
      睡!

      20210317

      放下了前端的學習...感覺畫界面工作量很大,不是很好學,尤其是自己學習會缺乏例子,需要大量的模仿才能成大神...

      然后在Y哥的幫助下開始學習openCV,然后發現demo全部都是cpp代碼,連B站視頻也是...畢竟我也會點吹泡泡,主要是想識別cad的文字變換,因為cad的文字變圖片或者pdf會丟失部分矢量信息,而這個技術似乎和識別車牌是一個東西..圖片轉cad..pdf轉cad...想去打工的話,會這個應該比較加分??

      20210314

      今天敲完了net core后端項目開發例子,按照B站例子個人博客項目來做的,終于知道了全套流程...
      感覺展示的技術很少,但是記憶點很多,然而我也沒有接觸過這樣的項目開發,實際工作應該會更麻煩...
      是沒有cad好玩...

      今天小軒軒問了一個問題:怎么分堆組塊?
      然后我研究了一下,此算法是鏈式選擇的擴展,如果鏈選是一維,那么它是二維.

      第一次設想:
      拿到所有圖元集合,
      循環,判斷圖元a包圍盒與圖元a+包圍盒是否碰撞?
      ,就兩盒相加(提取兩個矩形min和max)成為新包圍盒,加入群集an,然后用新包圍盒再判斷下一個.這樣默認會存在一條鏈條a,b,c...只是我們一直使用頭尾兩個組合的包圍盒.
      ,雖然沒有碰撞,但是仍可能與鏈條包圍盒相碰,甚至是子集(但一般會先過濾圖元,拿出top圖元,top就是最外面的),然后一旦鏈條加入一個新盒,就需要再次判斷,直到不再加入新盒.這樣完成其中一個集群的判斷.
      下一個集群再通過剩余的圖元們循環.
      但是時間復雜度是O(n2)
      這也等同ssget c法.

      e大來了一句:先排序
      我腦子里飛速閃過葛立恒凸包點集排序法!猛的發現,這樣時間復雜度才是O(n)

      a例子,圖元是x軸分布的.
      去除子集,拿top圖元.
      提取最左邊的圖元和每個top圖元的距離.
      距離是有分幅度的,
      例如0,1,2,3,17,20,99,100
      這樣0,1,2,3/17,20/99,100分組,大于設定容差就分組.

      b例子,此為a例子擴展...圖元們是發散的集群(菌落).為了解決斜的圖元群.
      去除子集,拿top圖元.

      提取所有top圖元的基點,計算出點集的左下角點(min點).
      提取所有top圖元與左下角圖元的距離,并且按照角度排序.(代碼可以看看我博客葛立恒凸包算法)
      因為設置了左下角,這樣范圍只有90度,也就是1/4圓,從x軸按長度掃描的感覺
      距離之間幅度變化不強(距離容差)的,就按照1/4圓環分了一次圖元集合.(分出菌落環狀帶)
      最后通過角度幅度不強的(角度容差)圖元一次排序.(從環中分出菌落)
      然后,需要把基點拓展成包圍盒兩個點,就不用計算包圍盒碰撞.
      把最大的圖元包圍盒的兩點距離設置為容差值,把兩點角度也,那就是智能判斷了.

      幾天之后魚與熊掌給了我這個:希爾伯特R樹

      net程序內存優化

      今天有個群討論了net內存優化,然后看了這篇文章SetProcessWorkingSetSize 和內存釋放.

      20210313

      寫了一篇新文章cad.net 仿貓老師的vlisp小助手
      總算把坑都弄完了.

      修改了<cad.net DeepCloneObjects WasErased>文章,將標題也改為:
      cad.net 所有的克隆方式
      總結了所有克隆圖元所遇到的問題..

      20210312

      博客園居然還沒調整好手機寫博客打一個字就換一行..真是服了..
      今天把小賤賤的Lisp小助手給修改成Acad08也能用了,但是不知道為什么copyhist不能在同一個同步命令內調用兩次,真的很奇怪.以至于我不能發出來成為一篇博文...
      等debug完成之后再發...
      可能要異步才行,但是異步的話不知道什么時間點才能去拿剪貼板...調用剪貼板修改通知?!
      怒睡!

      20210310

      修改了cad.net 塊裁剪邊界反向修剪
      修改了<繼承DwgFiler的類>和增加了<一個json序列化例子>更好地看cad圖元序列化...
      我是在cad08和cad21測試的,但是若海是在cad14測試的,它不需要特性也能序列化,導致我很郁悶,
      我所有的ObjectId部分都不能序列化...

      我們為什么要做序列化呢?
      其實是為了看動態塊的參數實現,但是貌似看不出個所以然...
      e大說:
      1:弄一個空的dxf
      2:構造一個有動態塊的塊定義
      3:刪除后的
      弄三個自己比較.

      把css看得七七八八了,跟WPF的style很像嘛...原來界面技術都差不多...
      我還以為有特別的東西,莫非js跟WPF的動作很像??
      這么看來WPF就不能和人家html一樣嗎...非要自己做一個...
      但是我的學習要先停下來了,去敲一個實戰開發的工程先.

      20210309

      一打開博客園的Markdown編輯,發現一邊寫一邊預覽的模式出現了,然后發現手機修改的時候每敲一個字換行一次...

      把HTML跳著看完了,開始學習css...

      20210308

      山人在重構了nfox,然后我才發現git的組織成員不加入倉庫成員也可以修改倉庫的.
      然后問了一下山人關于git clone下來的倉庫看不見master分支以外的倉庫關聯,
      然后得到了一個我沒做過的答案,直接切換分支就好了,之前用循環切割的方法果真不是主流,主要是我老想把那句子放快捷鍵上面放不了...

      手敲了一次IOC容器,發現沒有什么坑,就是視頻最后留了個環形依賴的處理,簡單,就加入前需要判斷一下是否存在即可.倒是我很想知道他其他課程的千萬級并發是怎么處理數據的...

      然后手敲了一次責任鏈模式,然后發現視頻作者代碼寫錯了一個地方...
      他把中間件集合轉單向鏈的時候返回了末尾,單向鏈是不能從末尾找前面的,返回了的末尾next是null,害我查半天...
      無論是誰都要debug一下...

      20210307

      cad08調試啟動的時候,什么都不干就被vs反匯編檢測到一個空值位置,
      然后vs好心的彈出了AdInfoCenter.dll出錯位置出來,然后我用了一個同名空文件替代就好了...

      繼續net5,在看了手寫IOC容器和文件配置,發現微軟繞來繞去就是為了符合"開閉原則",
      然后利用集合+抽象解決了所有的問題,
      管道是中間件的集合,然后通過接口抽象關聯起來,中間件就可以單獨拓展,
      配置環境是配置文件的集合,然后通過接口抽象關聯起來,配置文件也就可以單獨拓展(json,xml,ini...).

      看了科學火箭叔關于織毛衣一樣編織內存,才關聯了宇宙射線令內存電子反轉這個零散的知識點,大致就是做得大一點然后改變了讀寫組成,讓射線撞上去也不改變電子狀態,因為是磁場方向決定了.

      很久之前看神探伽利略(日劇)知道了航天器衛星的CPU比手機的CPU精度還低,
      因為信息論里面有干擾無不不在,那么聰明的人類就用可修復編碼來傳輸和儲存,以及抗輻射硬件設計,
      但是太空環境運算階段也不能保證CPU沒有電子反轉,所以馬斯克用了三顆U來進行一致性校驗.

      20210305

      寫了一篇新文章cad.net 在cad生成二維碼

      寫了一篇新文章cad.net 動態編譯

      gitee的readme.md文件不能有"漢化"兩個字,然后會被移除了文件.加上之前倉庫的測試文件放不下的問題,我覺得還是盡量用github了.????

      20210304

      今天的算法是對比兩份圖的不同之處.
      但是在cad數據庫來說怎么對比都好像挺難的.
      因為需要打開圖元,找數據,再關圖元,數據的特征值還自己做一遍?
      不對,肯定是別的方法,例如若能理解dwg序列化,從序列化對比圖元,再標記出不同,應該才是最快的方法.
      然而我沒有能知道dwg序列化的方式.可能是要利用dwgout和dwgin方法.

      ps.魚與熊掌:用句柄比較.

      cad的句柄關閉圖紙依然不變.
      然后我想了一下,cad數據庫應該是有順序的,即使B圖修改過,那么此時,數據庫句柄大概會是:
      A圖:0,1,2,3
      B圖:0,1,4,5,3
      通過索引器下標取(沒有就先遍歷了造一個),這樣可以減少反復遍歷的困擾,從O(n2)減少到O(1).

      20210302

      修改了文章cad.net 鏈式選擇和標注斷分
      增加了一個磁鐵體的概念.

      今天是牙醫日,嘿嘿,牙醫告訴我下個月摘掉牙套了.
      持續物色公司中,看到了一家在深圳做人工智能+建筑的公司.一看陣容還蠻蠻蠻厲害的...
      工資高到飛起,但是要求也高...全是碩士博士的谷歌回歸的...
      阿驚感到自己不是很ok...感覺我都要放棄cad了,還是乖乖去做一些winform和WPF應用算了...
      阿驚面試都不知道怎么辦,一問算法,我百度的,一問架構,我忘記了...
      一問mvvm和mvc,我只能解釋個前后端分離的設計模式,
      甚至clr,cls,cts全拼一下,不會答...
      啊,緊張......

      20210228

      寫教程多了,發現教程的世界分成兩派,
      一類是直接告訴你怎么做,然后會讓人思考為什么是這樣,當你思考不到的時候,你就斷片了...
      這類跟教科書一樣,還必須配個老師講解.
      一類是在過程中一邊反問,一邊補充反問的答案,然后又插入一個反問,又補充反問的答案,
      遇到歧義就說歧義是什么,從而消除歧義,
      這類會把老師寫在里面,但是太啰嗦也是種罪.
      后者肯定是比較好,就是章節要分明一點,也口語化一點,不需要你"閱讀理解",只需要你按路線閱讀.

      20210227

      我在學習一些.net5編程思想,準備學完再去面試來著.
      感覺.net5這個檢測文件系統修改很先進,
      例如修改cad的命令文件,然后通過端口返回通知給你,然后調用委托更新就好了.
      跟WPF的綁定資源似的.

      20210226

      修改了數學篇 cad.net 向量+點乘+叉乘+矩陣+凸度
      增加了c#的凸度計算.

      寫了一篇新文章cad.net 鏈式選擇和斷分標注
      主要是想提供一些思路給不懂鏈式選擇的人看的.

      青蛙做了用爬蟲爬標準網們,用來提取最新的國家標準規范圖集號.
      然后這樣就可以提供給工程圖紙的說明更新標準了.
      感覺這個功能是每個畫圖都需要的,但是標準網們的沒有提供公開API或者合作渠道API...
      具體實操是:
      用一個軟件爬了之后,生成了數據庫,例如標準合并的信息樹.
      然后和別人進行傳輸交換節點,防止多爬攔截.
      最后做一個cad命令,正則替換特定格式的標記.
      為了"最新標準",缺點就是每天一爬,可能會被驗證碼/IP封禁/大數據預判封禁打掉.
      但是畢竟是個查詢服務,所以基于攻防戰的成本,他們也不會投入時間和精力進去,
      而且讓用戶之間共享數據庫已經是最低成本了.
      由于存在法律問題,所以請在合規范圍內爬取喲.
      為了替換個標準號...竟需要費盡心思...撓破頭腦...煞費苦心...傾盡全力...

      20210224

      修改了日志篇 原生git筆記
      增加了《項目規范參考》學習大廠存放文件的標準.

      20210221

      寫了一篇新文章cad.net 替換Polyline2d和Polyline3d的點

      修改了cad.net 塊裁剪邊界反向修剪
      由于很早之前優化了自己程序的代碼,而博客中的這份代碼有點舊和冗余,為了相同版本,所以修改了.

      修改了cad.net的undo返回操作
      修正了例子代碼的冗余,增加了中望/浩辰的相關說明.

      20210220

      今天繼續看了依賴注入,ioc容器,就是通過這個ioc容器作為一個服務集合,而創建類都不需要自己去new,
      直接通過指定接口和指定類型,讓容器幫你實例化,目的是專注于當前對象,不需要管父類,有點意思.

      今天發現了vs有反編譯到源
      原本的F12只能看到函數名,這下可以看到dll內部的方法.雖然cad的都是不安全代碼....

      修改了cad.net Attsync命令導致屬性塊的屬性位置在高低cad版本產生不同的效果
      提供了修正代碼僅作參考.

      刪除了仿lisp函數的所有文章,統一實現在 cad.net 仿lisp函數專篇
      保留了純lisp的文章,創建了分類cad.lisp,主要是一些古怪的lisp技術.

      刪除的仿lisp函數文章分別是:
      <cad.net c#仿lisp的mapcar函數>
      <cad.net 與lisp函數ssnamex一樣的,獲取選擇集的選擇的方式>
      <像lisp一樣獲取ldata>

      動態調用dll

      在文章里cad.net 仿lisp函數專篇
      修改了<仿vlax-ldata-get函數>的內容,實現了不同cad版本動態調用dll,其中有一個委托調用函數指針的技術.

      20210218

      修改了cad.net 文字偏移及符號表的排版,并提供了一個CloneBlock函數

      修改了cad.net 塊裁剪邊界反向修剪排版,
      以及"判斷和設置部分"中將缺少的BlockBoundaryInfo/AddSpatialFilter兩個函數增加上去.

      20210215

      修改了委托的學習開頭上面增加了委托的兩大特點.

      刪除了文章<cad.net 做一個啟動cad的程序吧,通過注冊表獲取cad安裝路徑>
      相關內容合并到了文章 cad.net 獲取所有已經安裝的cad版本信息并制作一個外部啟動程序 以此減少博客啰嗦的部分.

      20210214

      修改了日志篇 原生git筆記
      因為一直覺得git status是\223\241\552之類的...
      今天偶然覺得這樣不對勁,然后去搜了一下發現還真的可以改...
      為什么默認不是utf-8...
      因此修改了這個部分.

      修改了cad.net 讀寫pc3,pmp打印機文件
      文章排版,加入了發布引擎參考,根據文章下的網友提問補充信息到文章上

      修改了一下博客園風格,詳情在博客園小女孩這篇博客中.

      20210212

      除夕休息了一天,今天是大年初一啦,廣東人喜歡講:“恭喜發財”!
      歪鍋說在學神經網絡,雖然不知道會學成什么樣...
      嘿嘿,我也想學,但是好像先找一份工作再學習工作技能比較重要.
      尤其是想研究"基于神經網絡的位圖與矢量圖元的轉換",教會計算機看建筑圖,根據平立剖產生一個建筑模型,然后基于材質又自動填入revit這樣的模型,這該多好玩呀.
      感嘆一下,因為初中畢業時候感到家庭壓力和所處環境并不適合學習,所以早早去工作了.
      26歲的我已經在建筑行業打滾十年了,做設計以來無論是室內園建電氣幕墻我都感覺喜歡不起來,唯獨覺得敲代碼蠻開心的,有一種“為什么人家想到這個我沒想到”這樣的錯愕而開心.
      突然想想,可能就是不務正業才意外地接觸了編程,再從編程接觸到了線性代數,因為當時十分想在cad制作一個“時間名組塊”功能,這個功能一定要完美,所以需要三維旋轉,所以就去補充了這部分的學業,突然間還悟了之前沒懂lisp貓老師寫的圖形切變...
      然后想弄懂cad的樣條曲線,還學了半個月微積分,發現這玩意就是求曲線面積和小數點精度的,應用到編程就是循環,但是掌握不太容易...再之后的建筑力學知識上面,由于沒有交流和應用,感覺真的難學...
      不久之后開始寫博客,能幫助了同樣不懂的人,也是蠻開心的.
      我總是覺得凡事不會太晚,在學車的時候教練對我說,一個人五十歲學車,那么他的駕照可以用到七十歲,還有二十年.
      我現在學代碼,雖然可能在之后找不到同類的工作,但是我還有五十年可以把知識傳授給別人呢.
      而學得會和學不會的問題上,在一次看第五人格直播時候,頭魚說過一句話:“是有的人學得快,有的人學得慢,哪有什么學不會啊.”所以何必懼怕學習新知識呢?Let's try ??

      20210210

      日志這里增加了一些博客鏈接.

      修改了日志篇 原生git筆記的一些排版和描述,
      把強制推送這個誤導人的操作,再后面注明正確的用法 ??

      阿驚正在學net5和net core做網站,看看到底為什么net coer那么受歡迎,過了年也準備去找個工作.

      20210209

      1.在文章上加入了后話 cad.net 讀寫pc3,pmp打印機文件

      2.把一些比較水但是挺有意義的短文放到日志這里來,這樣就不會觸發博客園的短文拉黑模式了......

      博客中多個[返回目錄]的錯誤
      今天會看 cad.net 委托的學習 的時候發現怎么重復出現多個[返回目錄]的東西!

      段落...
      [返回目錄]
      [返回目錄]
      段落...
      [返回目錄]
      [返回目錄]
      

      這個東西和目錄是js生成出來的...

      我原本是在Tinymce編輯器工作的,重新排列幾次無果,所以轉到Markdown編輯器了...

      但是Markdown不能折疊代碼行...比較惱火...

      從我電腦的Typora粘貼到博客園的Markdown時,文章如果過短是自動加入```來作為代碼段的.

      要是博客園有ssh鏈接,然后用git提交博客那多好玩呀....

      一些開源的cad

      用c#.Net寫的

      LitCad https://github.com/wangyao1052/LitCAD

      用VC++寫的

      http://www.newxing.com/Code/VC/TXCL/3671.html

      http://www.newxing.com/Code/VC/TXCL/3507.html

      http://www.newxing.com/Code/SoftPic.asp?id=3366

      九款免費輕量的 AutoCAD 的開源替代品推薦

      CAD DWG/DXF文件C++解析庫libdxfrw

      20210208
      遷移工程《Acad打印配置解析庫》到gitee

      修改了文章 cad.net 讀寫pc3,pmp打印機文件
      文中的說明仍然有非常重要的作用,尤其是創建pmp這些代碼并沒有在工程內.
      我把工程從github移植到gitee了,并且將github倉庫廢棄掉了.

      并且更新了如下內容:
      將PianoCN工程類型從net framework修改為net standard了,更好支持其后的net版本.
      將PianoCN_Form修改為net5工程.
      可點入文章查看,查看相關修改.

      增加多人調試的方法

      通過修改win系統的環境變量來實現 cad.net vs調試問題

      修改了博客的排版

      學會用上了Markdown這款軟件,唯一覺得不是很好的地方是,圖片是離文檔的,也就是我改博客的時候要單獨截屏到博客上才可以.
      不過git可以用相對路徑...

      操作篇 cad問題小百科_Acad 同時公開了備份器工程.可點入文章到最后查看相關修改.

      同時修改了整個博客的所有分類....并且加入了目錄的js代碼....

      20210125

      發現爬蟲爬了我的博客之后.
      其他技術類網站例如csdn喜歡爬博客園的博客,然后貼個轉載就算了,
      這不是很大的問題,只是大家都不愿意寫博客了,愿意出書了....但是我認為畢竟寫出來都是讓人家看的...
      博客園沒有什么廣告也沒有阻礙人家爬蟲的驗證碼,干凈....所以才是個好網站.
      然后比較有問題的是搜索網站的爬蟲,例如百度.搜索同一個問題會變成:

      csdn的轉載答案
      csdn2的轉載答案
      csdn3的轉載答案
      csdn4的轉載答案...

      這就比較糟糕了...
      然后還發現爬蟲們其實不會更新博客,爬新不爬舊,
      也就是我先寫一版錯的,等被爬了之后我再改好,
      這樣我的錯誤答案就全網流通了.....
      因為我會重復看幾次我自己的博客看看能不能二次理解,
      不能的話就改一改...

      20191026 末尾

      隨著win10更新到最新..我發現電腦出了點狀況..
      0x01
      是電腦睡眠主機不關閉...然后用了此方法
      修改注冊表 計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power
      【AwayModeEnabled】選項,在打開的編輯頁面將【數值數據】修改為0,就完成了.
      0x02
      是微軟把txt文本默認改成utf-8了,重要的是Acad不可以識別 utf-8 的 .lsp 文件,只能用 ANSI,
      但是用戶可能會保存我的 .txt 配置文件更改成 utf-8.
      所以我的c#程序在識別 .txt 配置文件的時候,使用了獲取文件格式,然后再打開文件.
      具體引用

      跳轉到開頭

      博客園:
      阿驚博客倉庫
      edata博客
      瘋狂青蛙博客
      南勝博客
      尼克勞斯博客

      CSDN的:
      小蜜蜂

      明經通道的:
      雪山飛狐:狐哥是明經通道的net版主,他是pycad的作者,也是個大學老師.
      落魄山人:他的lisp內庫,同時他也在維護IFox內庫,他是組織發起人.
      我們的gitee組織:躍動方程

      AcadLisp和一些cad圖形算法網站:mac-Lee
      一些沒有列出來的僅僅是沒有博客和外鏈 ?? 晗子軒,小賤賤,飛詩,高飛鳥,若海,福蘿卜....

      田草博客

      Autodesk官方人員的鏈接:
      官方博客: https://adndevblog.typepad.com/autocad
      員工kean博客: https://www.keanw.com
      AutoCAD綜合討論區: https://forums.autodesk.com/t5/autocad-zong-he-tao-lun-qu/bd-p/923

      阿驚點亮:
      .net:
      Winform,WPF,.net framework,.net standard,.net5,socket通訊,WCF通訊
      IOC
      net服務器程序
      c/c++:
      MFC,QT...知道但是沒有點亮的std,boots...
      用過但是不怎么會的Sql server,但是知道上面用SqlSugar做ORM.
      也看過java,vue.

      (完)

      posted @ 2021-02-09 08:10  驚驚  閱讀(2652)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 狠狠躁夜夜躁人人爽蜜桃| 中文字幕人妻无码一区二区三区| 九九在线精品国产| 久久超碰97人人做人人爱| 日本一区二区三区后入式 | 久久99精品久久久久久| 女人色熟女乱| 国产成人高清精品亚洲| 亚洲av噜噜一区二区| 999久久久免费精品播放| 新宁县| 亚洲 欧美 综合 另类 中字| 欧美成本人视频免费播放| а天堂中文最新一区二区三区| 色av专区无码影音先锋| 欧美巨大极度另类| 五月天天天综合精品无码| 97精品伊人久久大香线蕉APP| 国产精品一区二区三区性色 | 国产午夜亚洲精品福利| 无码精品国产VA在线观看DVD| 国产不卡一区二区四区| 国产女人在线视频| 波多野结衣视频一区二区| 先锋影音男人av资源| 激情综合色综合啪啪五月| 精品人妻二区中文字幕| 彰化市| 久久爱在线视频在线观看 | 久久综合亚洲色一区二区三区| 久久综合伊人| 国产日韩综合av在线| 无码人妻久久久一区二区三区| 亚洲综合伊人五月天中文 | 厨房与子乱在线观看| 国产成人精品亚洲一区二区| 成人做受视频试看60秒| 66亚洲一卡2卡新区成片发布| 日韩 一区二区在线观看| 国产成人 综合 亚洲欧洲| 天堂va蜜桃一区二区三区|