YeeKal

02_html2

YeeKal
"#"

HTML5

intro

新增

new elements

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8"/>
  <title>Title</title>    
  </head>

  <body>
   Content ... 
  </body>

</html>

新特性

  • 新的语义元素,比如
    ,
    ,
    , and
  • 新的表单控件,比如数字、日期、时间、日历和滑块。
  • 强大的图像支持(借由
  • 强大的多媒体支持(借由
  • 强大的新 API,比如用本地存储取代 cookie。

被删元素

  • </li> <li><strike></li> <li><tt></li> </ul> <p><strong>新增8个块级元素</strong></p> <div class="codehilite"><pre><span></span><code>header, section, footer, aside, nav, main, article, figure </code></pre></div> <h2 id="_2">迁移</h2> <table> <thead> <tr> <th>典型的 HTML4</th> <th>典型的 HTML5</th> </tr> </thead> <tbody> <tr> <td><div id="header"></td> <td><header></td> </tr> <tr> <td><div id="menu"></td> <td><nav></td> </tr> <tr> <td><div id="content"></td> <td><section></td> </tr> <tr> <td><div id="post"></td> <td><article></td> </tr> <tr> <td><div id="footer"></td> <td><footer></td> </tr> </tbody> </table> <h1 id="_3">图形</h1> <h2 id="canvas">Canvas</h2> <ul> <li>使用javascript在网页上绘图</li> </ul> <h2 id="svg">SVG</h2> <h1 id="_4">媒体</h1> <h2 id="audio">Audio</h2> <p><strong>使用插件</strong></p> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">object</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">data</span><span class="o">=</span><span class="s">&quot;song.mp3&quot;</span><span class="p">&gt;&lt;/</span><span class="nt">object</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">embed</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;/i/horse.mp3&quot;</span><span class="p">&gt;&lt;/</span><span class="nt">embed</span><span class="p">&gt;</span> </code></pre></div> <p><strong>audio</strong></p> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">audio</span> <span class="na">controls</span><span class="o">=</span><span class="s">&quot;controls&quot;</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;song.mp3&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;audio/mp3&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;song.ogg&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;audio/ogg&quot;</span> <span class="p">/&gt;</span> Your browser does not support this audio format. <span class="p">&lt;/</span><span class="nt">audio</span><span class="p">&gt;</span> </code></pre></div> <p><strong>结合</strong></p> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">audio</span> <span class="na">controls</span><span class="o">=</span><span class="s">&quot;controls&quot;</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;100&quot;</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;song.mp3&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;audio/mp3&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;song.ogg&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;audio/ogg&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;</span><span class="nt">embed</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;100&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;song.mp3&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;/</span><span class="nt">audio</span><span class="p">&gt;</span> </code></pre></div> <p><strong>yahoo媒体播放器</strong></p> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;song.mp3&quot;</span><span class="p">&gt;</span>Play Sound<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;text/javascript&quot;</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;http://mediaplayer.yahoo.com/js&quot;</span><span class="p">&gt;</span> <span class="p">&lt;/</span><span class="nt">script</span><span class="p">&gt;</span> </code></pre></div> <h2 id="video">Video</h2> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">video</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;320&quot;</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;240&quot;</span> <span class="na">controls</span><span class="o">=</span><span class="s">&quot;controls&quot;</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;movie.mp4&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;video/mp4&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;movie.ogg&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;video/ogg&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;</span><span class="nt">source</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;movie.webm&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;video/webm&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;</span><span class="nt">object</span> <span class="na">data</span><span class="o">=</span><span class="s">&quot;movie.mp4&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;320&quot;</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;240&quot;</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">embed</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;movie.swf&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;320&quot;</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;240&quot;</span> <span class="p">/&gt;</span> <span class="p">&lt;/</span><span class="nt">object</span><span class="p">&gt;</span> <span class="p">&lt;/</span><span class="nt">video</span><span class="p">&gt;</span> </code></pre></div> <p><strong>优酷</strong></p> <p>上传到优酷,引入链接</p> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">embed</span> <span class="na">src</span><span class="o">=</span><span class="s">&quot;http://player.youku.com/player.php/sid/XMzI2NTc4NTMy/v.swf&quot;</span> <span class="na">width</span><span class="o">=</span><span class="s">&quot;480&quot;</span> <span class="na">height</span><span class="o">=</span><span class="s">&quot;400&quot;</span> <span class="na">type</span><span class="o">=</span><span class="s">&quot;application/x-shockwave-flash&quot;</span><span class="p">&gt;</span> <span class="p">&lt;/</span><span class="nt">embed</span><span class="p">&gt;</span> </code></pre></div> <h1 id="html5-api">html5 API</h1> <h2 id="_5">地理位置</h2> <h2 id="_6">拖放</h2> <h2 id="web">web存储</h2> <h2 id="web_1">web语义化标签</h2> <div class="codehilite"><pre><span></span><code><span class="p">&lt;</span><span class="nt">em</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">strong</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">dl</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">dt</span><span class="p">&gt;</span> <span class="p">&lt;</span><span class="nt">dp</span><span class="p">&gt;</span> </code></pre></div> <h2 id="ref">ref</h2> <ul> <li><a href="https://onaircode.com/awesome-html5-canvas-examples-source-code/">awesome-html5-canvas-examples</a></li> </ul> </div> <div class="text-center mt-8"> <a href="/notes/web" class="bg-gray-100 px-5 py-3 rounded-md hover:bg-gray-200 transition"> ← Back to <span class="font-bold text-slate-800 hover:bg-orange-400 rounded-md py-1 px-1">web</span> </a> </div> </div> <style> @font-face { font-family: 'NotoSansSC-Medium'; src: url('/fonts/Noto_Sans_SC/NotoSansSC-Medium.otf') format('otf'); font-weight: normal; font-style: normal; font-display: swap; } p { font-family: 'NotoSansSC-Medium', sans-serif; } </style> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/javascript" src="/static/js/yee_mathjax_config.js"></script> <!-- load search datas --> <script src="https://cdn.jsdelivr.net/npm/fuzzysort@2.0.4/fuzzysort.min.js"></script> <script type="text/javascript" src="/static/js/yee_fuzzy_search.js" defer></script> <script type="application/json">[{"title": "\u5927\u8bed\u8a00\u6a21\u578b(Large Language Model)", "category": "agi", "file_name": "00_llm"}, {"title": "chatgpt", "category": "agi", "file_name": "01_chatgpt"}, {"title": "LLaMA", "category": "agi", "file_name": "02_llama"}, {"title": "\u56fd\u5185\u5927\u6a21\u578b", "category": "agi", "file_name": "03_chinese_llm"}, {"title": "\u5927\u6a21\u578b\u5de5\u5177", "category": "agi", "file_name": "04_llm_deploy_tool"}, {"title": "application powered by llm", "category": "agi", "file_name": "05_llm_application"}, {"title": "\u6587\u672c\u5d4c\u5165", "category": "agi", "file_name": "06_embedding"}, {"title": "AIGC", "category": "agi", "file_name": "07_aigc"}, {"title": "LLM(Large multimodal models) \u5927\u578b\u591a\u6a21\u6001\u6a21\u578b", "category": "agi", "file_name": "08_lmm"}, {"title": "gemini model", "category": "agi", "file_name": "09_gemni"}, {"title": "\u5173\u4e8e\u56fe\u7247\u7684\u5927\u6a21\u578b", "category": "agi", "file_name": "10_vision_model"}, {"title": "Stable Diffusion", "category": "agi", "file_name": "11_stable_diffusion"}, {"title": "midjourney", "category": "agi", "file_name": "12_midjourney"}, {"title": "Runway", "category": "agi", "file_name": "13_runway"}, {"title": "text-to-image generator", "category": "agi", "file_name": "14_vggan_clipit"}, {"title": "Music AI", "category": "agi", "file_name": "15_music_ai"}, {"title": "\u6570\u636e", "category": "agi", "file_name": "20_data"}, {"title": "\u641c\u7d22\u0026\u6570\u636e", "category": "agi", "file_name": "21_search_and_data"}, {"title": "deploy models on colab", "category": "agi", "file_name": "22_colab_server"}, {"title": "robotics collection", "category": "agi", "file_name": "23_robotics_data"}, {"title": "\u5927\u6a21\u578b\u9a71\u52a8\u7684\u667a\u80fd\u4f53", "category": "agi", "file_name": "30_agent"}, {"title": "\u5927\u6a21\u578b\u9a71\u52a8\u7684\u667a\u80fd\u4f53-\u6a21\u578b", "category": "agi", "file_name": "31_agent_models"}, {"title": "Embodied AI(\u5177\u8eab\u667a\u80fd)", "category": "agi", "file_name": "32-embodied-ai"}, {"title": "product", "category": "agi", "file_name": "40_product"}, {"title": "ComfyUI", "category": "agi", "file_name": "41-tool-comfyui"}, {"title": "prompt engineer", "category": "agi", "file_name": "42-prompt"}, {"title": "open model", "category": "agi", "file_name": "43-open-model"}, {"title": "ai tools navigation site", "category": "agi", "file_name": "44-ai-tools-navigation-site"}, {"title": "\u72ec\u7acb\u5f00\u53d1", "category": "agi", "file_name": "indiehacker"}, {"title": "2021\u9762\u8bd5\u7ecf\u9a8c", "category": "algorithm_interview", "file_name": "2021_interview"}, {"title": "\u5251\u6307offer\u9898\u89e3", "category": "algorithm_interview", "file_name": "code-offer-sol"}, {"title": "c++ \u7f16\u7a0b\u5237\u9898\u603b\u7ed3 - \u6709\u6548\u7684\u6570\u72ec", "category": "algorithm_interview", "file_name": "coding-analyse-1-sudoku"}, {"title": "C++\u9762\u8bd5", "category": "algorithm_interview", "file_name": "cpp-interview"}, {"title": "k-d_tree", "category": "algorithm_interview", "file_name": "k-d_tree"}, {"title": "xcode develop", "category": "app", "file_name": "intro"}, {"title": "arduino \u5165\u95e8\u4ecb\u7ecd", "category": "arduino", "file_name": "00_intro"}, {"title": "ESP8266 AT\u6307\u4ee4", "category": "arduino", "file_name": "01_esp8266"}, {"title": "\u667a\u80fd\u5c0f\u8f66-\u5f00\u7bc7", "category": "arduino", "file_name": "10_intelligent_car"}, {"title": "\u667a\u80fd\u5c0f\u8f66-\u7535\u5b50\u5668\u4ef6\u63a7\u5236", "category": "arduino", "file_name": "11_electron_device"}, {"title": "\u81ea\u52a8\u9a7e\u9a76\u51b3\u7b56\u89c4\u5212", "category": "autopilot", "file_name": "00_intro"}, {"title": "Frenet\u5750\u6807\u7cfb", "category": "autopilot", "file_name": "01_frenet_frame"}, {"title": "\u81ea\u52a8\u9a7e\u9a76-\u8fd0\u52a8\u5b66\u6a21\u578b", "category": "autopilot", "file_name": "02_kinematic_model"}, {"title": "\u535a\u5f08\u8bba", "category": "autopilot", "file_name": "100_game_theory"}, {"title": "\u611f\u77e5", "category": "autopilot", "file_name": "10_perception"}, {"title": "\u81ea\u52a8\u9a7e\u9a76\u4e2d\u7684\u8fd0\u52a8\u89c4\u5212", "category": "autopilot", "file_name": "20_planning"}, {"title": "\u81ea\u52a8\u9a7e\u9a76\u4e2d\u7684\u8fd0\u52a8\u89c4\u5212", "category": "autopilot", "file_name": "21_hybrid_a_star"}, {"title": "time elastic band", "category": "autopilot", "file_name": "23_teb"}, {"title": "\u81ea\u4e3b\u505c\u8f66\u4e2d\u7684\u8fd0\u52a8\u89c4\u5212", "category": "autopilot", "file_name": "25_parking_planner"}, {"title": "apollo \u4e2d\u7684 openspace path planner", "category": "autopilot", "file_name": "26_apollo_openspace_path_planner"}, {"title": "spiral based planner", "category": "autopilot", "file_name": "27_spiral_planning"}, {"title": "\u8d1d\u585e\u5c14\u66f2\u7ebf", "category": "autopilot", "file_name": "28_bezier_curve"}, {"title": "parallel parking planner", "category": "autopilot", "file_name": "29_parallel_parking"}, {"title": "\u81ea\u52a8\u9a7e\u9a76\u4e2d\u63a7\u5236\u4f18\u5316\u65b9\u6cd5", "category": "autopilot", "file_name": "30_optimal_control"}, {"title": "\u8f68\u8ff9\u8ddf\u8e2a-MPC", "category": "autopilot", "file_name": "31_mpc_tracking"}, {"title": "POMDP", "category": "autopilot", "file_name": "33_pomdp"}, {"title": "34_optimal_control", "category": "autopilot", "file_name": "34_optimal_control"}, {"title": "40_behavior_planning", "category": "autopilot", "file_name": "40_behavior_planning"}, {"title": "50_project_by", "category": "autopilot", "file_name": "50_project_by"}, {"title": "waymo \u81ea\u52a8\u9a7e\u9a76\u65b9\u6848", "category": "autopilot", "file_name": "51_waymo"}, {"title": "\u7279\u65af\u62c9AI day", "category": "autopilot", "file_name": "52_tesla"}, {"title": "\u4f4e\u7ef4\u4e0b\u7684\u8fd0\u52a8\u89c4\u5212", "category": "autopilot", "file_name": "60_parking_planner"}, {"title": "sample based parking planner", "category": "autopilot", "file_name": "61_parking_planner_sample_based"}, {"title": "sample \u0026 search based parking planner", "category": "autopilot", "file_name": "61_parking_planner_search_based"}, {"title": "optimization based parking planner", "category": "autopilot", "file_name": "62_parking_planner_optimization_based"}, {"title": "multistage based parking planner", "category": "autopilot", "file_name": "63_parking_planner_multistage_based"}, {"title": "trajectory_optimization_based_MIQP", "category": "autopilot", "file_name": "64_trajectory_optimization_based_MIQP"}, {"title": "", "category": "autopilot", "file_name": "64_trajectory_optimization_based_ocean"}, {"title": "convex corridor", "category": "autopilot", "file_name": "65_convex_corridor"}, {"title": "CFS \u51f8\u53ef\u884c\u96c6\u7b97\u6cd5", "category": "autopilot", "file_name": "66_convex_feasible_set"}, {"title": "Mathematical Program with Complementarity Constraints", "category": "autopilot", "file_name": "67_MPCC"}, {"title": "CBF(control barrier functions)", "category": "autopilot", "file_name": "68_cbf"}, {"title": "Hyperplane Separation based Collision Avoidance", "category": "autopilot", "file_name": "69_hyperplane_separation"}, {"title": "\u901f\u5ea6\u89c4\u5212", "category": "autopilot", "file_name": "70_speed_planning"}, {"title": "longitudinal speed planning", "category": "autopilot", "file_name": "71_speed_profile_0"}, {"title": "longitudinal speed planning", "category": "autopilot", "file_name": "71_speed_profile_1"}, {"title": "st\u56fe", "category": "autopilot", "file_name": "72_st_graph"}, {"title": "TW \u578bS-T\u56fe\u901f\u5ea6\u89c4\u5212", "category": "autopilot", "file_name": "73_st_graph_tw"}, {"title": "Autonomous Valet Parking", "category": "autopilot", "file_name": "80_avp_planning"}, {"title": "\u4e00\u884c\u4ee4\u540d\u5f00\u542f Jupyter Notebook \u7684\u8fdc\u7a0b\u8bbf\u95ee", "category": "blog", "file_name": "0816-remote-access-jupyter-notebook"}, {"title": "\u56de\u65cb\u87ba\u7ebf", "category": "blog", "file_name": "20220722_clothoid"}, {"title": "Optimization based path planning for car parking in narrow environments", "category": "blog", "file_name": "20230212_paper_read_parking_planner"}, {"title": "\u6263\u5b50(coze)\uff1a \u5b57\u8282\u53d1\u5e03\u56fd\u533a gpts \u5e73\u53f0", "category": "blog", "file_name": "20230308_coze"}, {"title": "Apollo \u673a\u5668\u4eba\u51c6\u5907\u4e3a\u5954\u9a70\u642c\u7816\u4e86", "category": "blog", "file_name": "20230318_apptronik_apollo"}, {"title": "Claude 2", "category": "blog", "file_name": "20230724_claude2"}, {"title": "Vercel \u56fd\u5185\u65e0\u6cd5\u8bbf\u95ee? CloudFare \u57df\u540d\u89e3\u6790\u89e3\u9664\u5c01\u5370\uff01", "category": "blog", "file_name": "20230729_vercel_blog"}, {"title": "python \u540c\u6b65 notion \u6570\u636e\u5e93", "category": "blog", "file_name": "20240304_notion_database_synchronization_with_python"}, {"title": "Claude 3\u53d1\u5e03\uff0cGPT-4 \u548c Gemini \u53c8\u88ab\u6309\u5728\u5730\u4e0a\u6413", "category": "blog", "file_name": "20240305_claude3"}, {"title": "Perplexity AI \u4f1a\u6210\u4e3a\u4e0b\u4e00\u4ee3\u641c\u7d22\u5f15\u64ce\u8303\u5f0f\u4e48", "category": "blog", "file_name": "20240311_perplexity_ai"}, {"title": "Figure 01: \u8fd9\u4e0d\u662f\u7279\u6548\uff0c\u8fd9\u662fChatGPT\u7248\u7684\u673a\u5668\u4eba", "category": "blog", "file_name": "20240314_figure_01"}, {"title": "suno ai v3 \u2014\u2014 \u7528ai\u751f\u6210\u6b4c\u66f2", "category": "blog", "file_name": "20240325_suno_ai"}, {"title": "Voice Engine: 15\u79d2\u590d\u5236\u4f60\u7684\u58f0\u97f3", "category": "blog", "file_name": "20240330-voice-engine"}, {"title": "GR00T\u8981\u505a\u673a\u5668\u4eba\u754c\u7684GPT", "category": "blog", "file_name": "20240407-gr00t"}, {"title": "Github \u4e2a\u6027\u5316\u4e3b\u9875", "category": "blog", "file_name": "20240411-github-profile-readme"}, {"title": "Punyo \u2014\u2014 \u50cf\u6c14\u6ce1\u4e00\u6837\u8f6f\u7684\u673a\u5668\u4eba", "category": "blog", "file_name": "2024240403-punyo"}, {"title": "\u4e2a\u4eba\u535a\u5ba2\u642d\u5efa \u2014\u2014 2.Django\u90e8\u7f72\u53ca\u8e29\u5751\u8bb0\u5f55", "category": "blog", "file_name": "blog-django-deploy"}, {"title": "\u4e2a\u4eba\u535a\u5ba2\u642d\u5efa \u2014\u2014 1.\u7b14\u8bb0\u7cfb\u7edf", "category": "blog", "file_name": "blog-note-taking"}, {"title": "\u5e7b\u517d\u5e15\u9c81\u4e91\u4e0a\u670d\u52a1\u5668", "category": "blog", "file_name": "blog-palworld"}, {"title": "takoviz: AI \u641c\u7d22\u5f15\u64ce\u7684\u53ef\u89c6\u5316", "category": "blog", "file_name": "blog-takoviz"}, {"title": "ch1-introduction", "category": "computerVision", "file_name": "ch01_introduction"}, {"title": "ch2 feature detection", "category": "computerVision", "file_name": "ch02_feature_detection"}, {"title": "\u7279\u5f81\u70b9\u63d0\u53d6 ORB\u7279\u5f81", "category": "computerVision", "file_name": "ch02_feature_detection_orb"}, {"title": "ch3 object detection", "category": "computerVision", "file_name": "ch03_object_detection"}, {"title": "ch4 hsv segmentation", "category": "computerVision", "file_name": "ch04_hsv_segmentation"}, {"title": "\u8ba1\u7b97\u76f8\u673a\u8fd0\u52a8", "category": "computerVision", "file_name": "ch05_camera_transform"}, {"title": "\u89c6\u89c9\u91cc\u7a0b\u8ba1", "category": "computerVision", "file_name": "ch06_visual_odometry"}, {"title": "ch07_triangulation", "category": "computerVision", "file_name": "ch07_triangulation"}, {"title": "PNP\u7b97\u6cd5", "category": "computerVision", "file_name": "ch08_pnp"}, {"title": "command for detection and grasping", "category": "computerVision", "file_name": "detection_and_grasping"}, {"title": "feature detection for point cloud", "category": "computerVision", "file_name": "feature_detection_point_cloud"}, {"title": "icp-basic concepts", "category": "computerVision", "file_name": "icp_basic_concepts"}, {"title": "icp-multiple variants", "category": "computerVision", "file_name": "icp_multiple_variants"}, {"title": "filter", "category": "computerVision", "file_name": "pcl01_filter"}, {"title": "ch1-introduction", "category": "computerVision", "file_name": "pcl01_io_operation"}, {"title": "point cloud matching", "category": "computerVision", "file_name": "point_cloud_registration"}, {"title": "RANSAC", "category": "computerVision", "file_name": "ransac"}, {"title": "data type", "category": "cpp", "file_name": "DataTypeAndAlgorithm"}, {"title": "acado", "category": "cpp", "file_name": "acado"}, {"title": "c1", "category": "cpp", "file_name": "c1"}, {"title": "c2", "category": "cpp", "file_name": "c2"}, {"title": "c3", "category": "cpp", "file_name": "c3"}, {"title": "cpp-io", "category": "cpp", "file_name": "cpp-io"}, {"title": "cpp-linked_list_and_tree", "category": "cpp", "file_name": "cpp-linked_list_and_tree"}, {"title": "cpp-thread", "category": "cpp", "file_name": "cpp-thread"}, {"title": "cpp1", "category": "cpp", "file_name": "cpp1"}, {"title": "cpp2", "category": "cpp", "file_name": "cpp2"}, {"title": "cpp3", "category": "cpp", "file_name": "cpp3"}, {"title": "cpp4-stl", "category": "cpp", "file_name": "cpp4-stl"}, {"title": "cpp5-tips", "category": "cpp", "file_name": "cpp5-tips"}, {"title": "conversition between eigen", "category": "cpp", "file_name": "eigen"}, {"title": "goosle test \u4f7f\u7528", "category": "cpp", "file_name": "gtest"}, {"title": "intro", "category": "cpp", "file_name": "intro"}, {"title": "opengl", "category": "cpp", "file_name": "opengl"}, {"title": "shared memory", "category": "cpp", "file_name": "shared_memory"}, {"title": "\u52a0\u901f\u8fd0\u7b97", "category": "linux", "file_name": "accelerated_process"}, {"title": "cmakelist", "category": "linux", "file_name": "cmakelist"}, {"title": "\u66f4\u9ad8\u6548\u7684\u4ee3\u7801", "category": "linux", "file_name": "code_trick"}, {"title": "linux command", "category": "linux", "file_name": "command"}, {"title": "debug with gdb", "category": "linux", "file_name": "debug_with_gdb"}, {"title": "docker \u4f7f\u7528", "category": "linux", "file_name": "docker"}, {"title": "\u4e34\u65f6\u7b14\u8bb0 \u5b9a\u671f\u6e05\u7406", "category": "linux", "file_name": "fragment"}, {"title": "git command", "category": "linux", "file_name": "git"}, {"title": "git on ipad", "category": "linux", "file_name": "ipad"}, {"title": "leetcode\u5237\u9898\u5957\u8def", "category": "linux", "file_name": "leetcode"}, {"title": "mysql learning", "category": "linux", "file_name": "mysql"}, {"title": "post installation for ubuntu", "category": "linux", "file_name": "post_installation_for_ubuntu"}, {"title": "postgresqpl notes", "category": "linux", "file_name": "postgresql"}, {"title": "shell", "category": "linux", "file_name": "shell"}, {"title": "tmux tutorial", "category": "linux", "file_name": "tmux"}, {"title": "\u57ce\u5e02\u6982\u5ff5", "category": "literature", "file_name": "city"}, {"title": "\u7eaa\u5f55\u7247", "category": "literature", "file_name": "document"}, {"title": "\u53e4\u5e0c\u814a\u54f2\u5b66", "category": "literature", "file_name": "greece_philosophy"}, {"title": "\u53e4\u5e0c\u814a\u53f2", "category": "literature", "file_name": "his-ancient-greek"}, {"title": "\u4e0a\u53e4", "category": "literature", "file_name": "his-china-00"}, {"title": "\u4e0a\u53e4", "category": "literature", "file_name": "his-china-01-shanggu"}, {"title": "\u6625\u79cb", "category": "literature", "file_name": "his-china-02-chunqiu"}, {"title": "\u5f85\u770b\u5217\u8868", "category": "literature", "file_name": "media"}, {"title": "\u6587\u5b66\u5927\u7eb2", "category": "literature", "file_name": "outline-of-literary-history"}, {"title": "\u7b56\u5170\u6587\u5b66\u8bc4\u8bba", "category": "literature", "file_name": "paul_celan"}, {"title": "\u5c0f\u5f20\u5927\u6768\u8bfb\u4e66\u8ba1\u5212", "category": "literature", "file_name": "reading_plan"}, {"title": "\u8bfb\u4e66\u8bb0\u5f55", "category": "literature", "file_name": "reading_record"}, {"title": "\u4e66\u9009", "category": "literature", "file_name": "yudu"}, {"title": "00-readme", "category": "machineLearning", "file_name": "00-readme"}, {"title": "01-regressiion", "category": "machineLearning", "file_name": "01-regressiion"}, {"title": "02-classification", "category": "machineLearning", "file_name": "02-classification"}, {"title": "03-regularization", "category": "machineLearning", "file_name": "03-regularization"}, {"title": "04-GLM", "category": "machineLearning", "file_name": "04-GLM"}, {"title": "05_bayesian_learning", "category": "machineLearning", "file_name": "05_bayesian_learning"}, {"title": "05_learning_theory", "category": "machineLearning", "file_name": "05_learning_theory"}, {"title": "06_svm", "category": "machineLearning", "file_name": "06_svm"}, {"title": "07_clustering", "category": "machineLearning", "file_name": "07_clustering"}, {"title": "07_em_gmm", "category": "machineLearning", "file_name": "07_em_gmm"}, {"title": "07_hmm", "category": "machineLearning", "file_name": "07_hmm"}, {"title": "08_dimension_reduction", "category": "machineLearning", "file_name": "08_dimension_reduction"}, {"title": "10_graph_model", "category": "machineLearning", "file_name": "10_graph_model"}, {"title": "NN", "category": "machineLearning", "file_name": "11_NN"}, {"title": "\u56fe\u795e\u7ecf\u7f51\u7edc1 - \u5165\u95e8\u7b80\u4ecb", "category": "machineLearning", "file_name": "20_graph_network01_intro"}, {"title": "\u56fe\u795e\u7ecf\u7f51\u7edc02 - \u56fe\u5377\u79ef\u795e\u7ecf\u7f51\u7edc", "category": "machineLearning", "file_name": "21_graph_network02_gcn"}, {"title": "\u56fe\u795e\u7ecf\u7f51\u7edc03 - \u56fe\u7f16\u7801\u5668GAE", "category": "machineLearning", "file_name": "22_graph_network03_gae"}, {"title": "\u56fe\u795e\u7ecf\u7f51\u7edc03-survey", "category": "machineLearning", "file_name": "23_graph_network03_survey"}, {"title": "\u56fe\u795e\u7ecf\u7f51\u7edc03 - \u56fe\u6ce8\u610f\u529b\u7f51\u7edcGAT", "category": "machineLearning", "file_name": "24_graph_network04_gat"}, {"title": "activation function", "category": "machineLearning", "file_name": "activation_function"}, {"title": "concepts", "category": "machineLearning", "file_name": "concepts"}, {"title": "cross_entropy", "category": "machineLearning", "file_name": "cross_entropy"}, {"title": "gan", "category": "machineLearning", "file_name": "gan"}, {"title": "\u56fe\u795e\u7ecf\u7f51\u7edc", "category": "machineLearning", "file_name": "graph_sage"}, {"title": "\u6a21\u4eff\u5b66\u4e60", "category": "machineLearning", "file_name": "imitation_learning"}, {"title": "lagrangian_algorithm", "category": "machineLearning", "file_name": "lagrangian_algorithm"}, {"title": "linear-discriminant-analysis", "category": "machineLearning", "file_name": "linear-discriminant-analysis"}, {"title": "loss function", "category": "machineLearning", "file_name": "loss_function"}, {"title": "\u51b3\u7b56\u6811", "category": "machineLearning", "file_name": "model03_decision_tree"}, {"title": "\u51b3\u7b56\u6811\u7684\u96c6\u6210\u5b66\u4e60", "category": "machineLearning", "file_name": "model03_ensemble"}, {"title": "gradient boosting", "category": "machineLearning", "file_name": "model04_gradient_boosting"}, {"title": "lightgbm", "category": "machineLearning", "file_name": "model05_lightgbm"}, {"title": "xgboost", "category": "machineLearning", "file_name": "model05_xgboost"}, {"title": "Monte Carlo algorithm", "category": "machineLearning", "file_name": "monte_carlo"}, {"title": "NN", "category": "machineLearning", "file_name": "resnet"}, {"title": "NN", "category": "machineLearning", "file_name": "tensorflow_cnn"}, {"title": "terminology", "category": "machineLearning", "file_name": "terminology"}, {"title": "differential geometry", "category": "math", "file_name": "differential_geometry"}, {"title": "\u6cdb\u51fd\u5206\u6790", "category": "math", "file_name": "functional"}, {"title": "manifold optimization", "category": "math", "file_name": "manifold_optimization"}, {"title": "\u77e9\u9635\u7406\u8bba", "category": "math", "file_name": "matrix_theory"}, {"title": "Riemann geometry", "category": "math", "file_name": "riemann_geometry"}, {"title": "\u8fd0\u52a8\u89c4\u5212 \u7efc\u8ff0", "category": "motionPlanning", "file_name": "00_overview"}, {"title": "01_search_based_planner", "category": "motionPlanning", "file_name": "01_search_based_planner"}, {"title": "02_configuration_space", "category": "motionPlanning", "file_name": "02_configuration_space"}, {"title": "03_cell_decompositions", "category": "motionPlanning", "file_name": "03_cell_decompositions"}, {"title": "03_roadmap", "category": "motionPlanning", "file_name": "03_roadmap"}, {"title": "RRT\u7cfb\u5217\u89c4\u5212\u7b97\u6cd5", "category": "motionPlanning", "file_name": "04_rrt"}, {"title": "05_lqr_trees", "category": "motionPlanning", "file_name": "05_lqr_trees"}, {"title": "Voronoi \u56fe\u548c\u4e09\u89d2\u5256\u5206", "category": "motionPlanning", "file_name": "06_Voronoi_diagram"}, {"title": "\u8fd0\u52a8\u89c4\u5212\u5f00\u6e90\u9879\u76ee", "category": "motionPlanning", "file_name": "100_project"}, {"title": "ompl algorithms", "category": "motionPlanning", "file_name": "103_ompl"}, {"title": "openrave learning", "category": "motionPlanning", "file_name": "104_openrave"}, {"title": "hpp api 1", "category": "motionPlanning", "file_name": "105_hpp"}, {"title": "sampled_based_kinodynamic_motion_planning", "category": "motionPlanning", "file_name": "10_sampled_based_kinodynamic_motion_planning"}, {"title": "humanoid and legged robots", "category": "motionPlanning", "file_name": "110_biped_robots"}, {"title": "\u8f68\u8ff9\u4f18\u5316\u4e4b", "category": "motionPlanning", "file_name": "13_TO_TEMP"}, {"title": "\u5173\u4e8e\u8f68\u8ff9\u4f18\u5316(trajectory optimization)", "category": "motionPlanning", "file_name": "20_trajectory_optimization"}, {"title": "\u6700\u4f18\u63a7\u5236\u95ee\u9898\u7684\u6570\u503c\u89e3\u6cd5", "category": "motionPlanning", "file_name": "21_TO_OC_00_numerical_methods_for_optimal_control"}, {"title": "shooting method for trajectory optimization", "category": "motionPlanning", "file_name": "21_TO_OC_01_shooting"}, {"title": "collocation method for trajectory optimization", "category": "motionPlanning", "file_name": "21_TO_OC_02_collocation"}, {"title": "pseudospectral", "category": "motionPlanning", "file_name": "21_TO_OC_03_pseudospectral"}, {"title": "\u8f68\u8ff9\u4f18\u5316\u4e4b", "category": "motionPlanning", "file_name": "21_TO_OC_04_dynamic_programming"}, {"title": "mpc", "category": "motionPlanning", "file_name": "21_TO_OC_05_mpc"}, {"title": "LQR and iLQR", "category": "motionPlanning", "file_name": "21_TO_OC_06_ilqr"}, {"title": "\u57fa\u4e8e\u6700\u4f18\u5316\u7684\u8f68\u8ff9\u89c4\u5212/\u8fd0\u52a8\u89c4\u5212", "category": "motionPlanning", "file_name": "21_optimal_control_based_motion_planning"}, {"title": "\u8f68\u8ff9\u63d2\u503c\u548c\u8f68\u8ff9\u62df\u5408", "category": "motionPlanning", "file_name": "22_TO_fit_and_interpolation"}, {"title": "\u8f68\u8ff9\u4f18\u5316\u4e4b\u8f68\u8ff9\u62df\u5408", "category": "motionPlanning", "file_name": "22_TO_parametric-trajectory"}, {"title": "22_optimization_based_motion_planning", "category": "motionPlanning", "file_name": "22_optimization_based_motion_planning"}, {"title": "optimal motion planning", "category": "motionPlanning", "file_name": "23_TO_MIQP"}, {"title": "24_TO_riemannian_optimization", "category": "motionPlanning", "file_name": "24_TO_riemannian_optimization"}, {"title": "through contact mathod for trajectory optimization", "category": "motionPlanning", "file_name": "25_TO_through_contact_mathod"}, {"title": "pose graph for trajectory optimization", "category": "motionPlanning", "file_name": "26_TO_pose_graph"}, {"title": "", "category": "motionPlanning", "file_name": "30-TO-overview"}, {"title": "GSTOMP", "category": "motionPlanning", "file_name": "31_TO_planner_GSTOMP"}, {"title": "ITOMP", "category": "motionPlanning", "file_name": "31_TO_planner_ITOMP"}, {"title": "CHMOP planner", "category": "motionPlanning", "file_name": "31_TO_planner_chomp"}, {"title": "Gaussian Process Motion Planner (GPMP)", "category": "motionPlanning", "file_name": "31_TO_planner_gpmp"}, {"title": "K-Order Markov Optimization", "category": "motionPlanning", "file_name": "31_TO_planner_komo"}, {"title": "obca", "category": "motionPlanning", "file_name": "31_TO_planner_obca"}, {"title": "STOMP", "category": "motionPlanning", "file_name": "31_TO_planner_stomp"}, {"title": "trajopt: Trajectory Optimization for Motion Planning", "category": "motionPlanning", "file_name": "31_TO_planner_trajopt"}, {"title": "trajectory optimization on Lie group", "category": "motionPlanning", "file_name": "32_TO_lie_group"}, {"title": "obstacle avoidance", "category": "motionPlanning", "file_name": "40_obstacle_avoidance"}, {"title": "ellipsoidal approximation", "category": "motionPlanning", "file_name": "41_ellipsodial_approximation"}, {"title": "Differentiable Collision", "category": "motionPlanning", "file_name": "42_differential_collision"}, {"title": "Signed Distance Field(SDF)", "category": "motionPlanning", "file_name": "43_sdf1_introduction"}, {"title": "kinodynamic planning", "category": "motionPlanning", "file_name": "kinodynamic_planning_on_manipulator"}, {"title": "paper collection", "category": "motionPlanning", "file_name": "paper_collect"}, {"title": "reactive_planning", "category": "motionPlanning", "file_name": "reactive_planning"}, {"title": "throw objects", "category": "motionPlanning", "file_name": "throw_objects"}, {"title": "trajectory_optimization", "category": "motionPlanning", "file_name": "trajectory_optimization"}, {"title": "DWA\u7b97\u6cd5", "category": "navigation", "file_name": "dwa"}, {"title": "Motion Planning for Dynamic Environments", "category": "navigation", "file_name": "dynamic_planning"}, {"title": "gmapping", "category": "navigation", "file_name": "gmapping"}, {"title": "introduction", "category": "navigation", "file_name": "intro"}, {"title": "Occupancy Grid Map", "category": "navigation", "file_name": "occupancy_grid_map"}, {"title": "PGO(pose graph optimization)", "category": "navigation", "file_name": "pose_graph_optimization"}, {"title": "simulate with agv", "category": "navigation", "file_name": "simulate_with_agv"}, {"title": "simulate with turtlebot", "category": "navigation", "file_name": "simulate_with_turtlebot"}, {"title": "about slam", "category": "navigation", "file_name": "slam"}, {"title": "01-intro", "category": "nlp", "file_name": "01_intro"}, {"title": "01-Bow", "category": "nlp", "file_name": "02_BoW"}, {"title": "03_word_embedding", "category": "nlp", "file_name": "03_word_embedding"}, {"title": "04_text_classification", "category": "nlp", "file_name": "04_text_classification"}, {"title": "05 language model", "category": "nlp", "file_name": "05_language_model"}, {"title": "06 neural network language model", "category": "nlp", "file_name": "06_lm_nn"}, {"title": "06 rnn", "category": "nlp", "file_name": "07_rnn"}, {"title": "08 lstm", "category": "nlp", "file_name": "08_lstm"}, {"title": "09 seq2seq", "category": "nlp", "file_name": "09_seq2seq"}, {"title": "10 transformer", "category": "nlp", "file_name": "10_transformer"}, {"title": "11 bert", "category": "nlp", "file_name": "11_bert"}, {"title": "11 nlp \u5b9e\u6218\u7ec3\u4e60", "category": "nlp", "file_name": "12_nlp_practice"}, {"title": "12 nlp \u76f8\u5173\u5f00\u6e90\u5e93\u6559\u7a0b", "category": "nlp", "file_name": "13_open_library_tutorial"}, {"title": "dataset collections", "category": "nlp", "file_name": "dataset"}, {"title": "normalization", "category": "nlp", "file_name": "normalization"}, {"title": "api doc link", "category": "ompl", "file_name": "api_doc_link"}, {"title": "api examples", "category": "ompl", "file_name": "api_examples"}, {"title": "calibration AX=XB", "category": "ompl", "file_name": "calibration_ax=xb"}, {"title": "cartesian path planning", "category": "ompl", "file_name": "cartesian_path_planning"}, {"title": "constraint", "category": "ompl", "file_name": "constraint"}, {"title": "what happened when selecting sampler", "category": "ompl", "file_name": "construct_sampler"}, {"title": "grasp", "category": "ompl", "file_name": "grasp"}, {"title": "interpolation in local planning", "category": "ompl", "file_name": "interpolate"}, {"title": "kdl 1", "category": "ompl", "file_name": "kdl_1"}, {"title": "local-planner", "category": "ompl", "file_name": "local-planner"}, {"title": "moveit kinematics", "category": "ompl", "file_name": "moveit_kinematics"}, {"title": "open source for motion planning", "category": "ompl", "file_name": "open_source"}, {"title": "planner in ompl", "category": "ompl", "file_name": "planner_in_ompl"}, {"title": "planning in moveit - ompl interface", "category": "ompl", "file_name": "planning_in_moveit_1"}, {"title": "planning in moveit - constraint sampling", "category": "ompl", "file_name": "planning_in_moveit_2"}, {"title": "planning in moveit - collision checking", "category": "ompl", "file_name": "planning_in_moveit_3"}, {"title": "planning scene monitor", "category": "ompl", "file_name": "planning_scene_monitor"}, {"title": "robot model from urdf", "category": "ompl", "file_name": "robot_model_loader"}, {"title": "sampler in ompl", "category": "ompl", "file_name": "sampler"}, {"title": "State and StateSpace", "category": "ompl", "file_name": "state_and_space"}, {"title": "time parameterization", "category": "ompl", "file_name": "timeParameterization"}, {"title": "01_intro", "category": "opencv", "file_name": "01_intro"}, {"title": "02_mat", "category": "opencv", "file_name": "02_mat"}, {"title": "03_highgui", "category": "opencv", "file_name": "03_highgui"}, {"title": "04_feature_detection", "category": "opencv", "file_name": "04_feature_detection"}, {"title": "05_vo", "category": "opencv", "file_name": "05_vo"}, {"title": "06_operation", "category": "opencv", "file_name": "06_operation"}, {"title": "optimization1 intro", "category": "optimization", "file_name": "00_intro"}, {"title": "\u51f8\u96c6\u548c\u51f8\u51fd\u6570", "category": "optimization", "file_name": "01_convex_set"}, {"title": "\u51f8\u4f18\u5316\u95ee\u9898", "category": "optimization", "file_name": "02_convex_optimization"}, {"title": "linear programming(LP)", "category": "optimization", "file_name": "03_lp"}, {"title": "\u4e8c\u6b21\u89c4\u5212", "category": "optimization", "file_name": "04_qp"}, {"title": "semidefinite programming", "category": "optimization", "file_name": "05_sdp"}, {"title": "\u9525\u89c4\u5212", "category": "optimization", "file_name": "06_cp"}, {"title": "\u975e\u7ebf\u6027\u4f18\u5316", "category": "optimization", "file_name": "07_nlp"}, {"title": "\u725b\u987f\u6cd5\u548c\u68af\u5ea6\u4e0b\u964d", "category": "optimization", "file_name": "10_newton_method_and_gradient_decent"}, {"title": "\u62df\u725b\u987f\u6cd5", "category": "optimization", "file_name": "11_newton_method_variants"}, {"title": "12_gradient_decent", "category": "optimization", "file_name": "12_gradient_decent_2"}, {"title": "12_gradient_decent_variants", "category": "optimization", "file_name": "12_gradient_decent_variants"}, {"title": "\u62c9\u683c\u6717\u65e5\u4e58\u5b50\u6cd5", "category": "optimization", "file_name": "13_lagrange_multiplier"}, {"title": "duality", "category": "optimization", "file_name": "14_duality"}, {"title": "subgradient", "category": "optimization", "file_name": "15_subgradient"}, {"title": "31_kalman_filter", "category": "optimization", "file_name": "31_kalman_filter"}, {"title": "smooth function", "category": "optimization", "file_name": "32_smooth_function"}, {"title": "geometric programming", "category": "optimization", "file_name": "33_geometric_programming"}, {"title": "34_non_convex_optimization", "category": "optimization", "file_name": "34_non_convex_optimization"}, {"title": "40_optimization_library", "category": "optimization", "file_name": "40_optimization_library"}, {"title": "cvxpy", "category": "optimization", "file_name": "41_cvxpy"}, {"title": "intro to ceres", "category": "optimization", "file_name": "42_ceres"}, {"title": "barrier function", "category": "optimization", "file_name": "barrier_function"}, {"title": "semi-convex function", "category": "optimization", "file_name": "semi_convex"}, {"title": "closed constraint motion planning", "category": "paper", "file_name": "closed_constraints"}, {"title": "jacobian and tangent space", "category": "paper", "file_name": "jacobian"}, {"title": "motion planning four pouring water", "category": "paper", "file_name": "pouring_fluid"}, {"title": "task constraint motion planning", "category": "paper", "file_name": "task_constraints"}, {"title": "track ik", "category": "paper", "file_name": "track_ik"}, {"title": "\u8718\u86db |", "category": "posts", "file_name": "2017-11-22-inspects"}, {"title": "\u77ed\u7ae0-\u6d77\u5b50", "category": "posts", "file_name": "2018-10-13-poem-haizi"}, {"title": "\u5bf9\u8bdd\u96c6 |", "category": "posts", "file_name": "2018-10-23-talk1"}, {"title": "\u6c5f\u996e |", "category": "posts", "file_name": "2018-11-12-poem-yee"}, {"title": "\u5e84\u5b50", "category": "posts", "file_name": "2018-11-23-zhuangzi"}, {"title": "\u5c71\u6d77\u7d93", "category": "posts", "file_name": "2018-12-10-shanhaijing"}, {"title": "\u8349\u5730 |", "category": "posts", "file_name": "2019-05-15-caodi"}, {"title": "\u8349\u5730 |", "category": "posts", "file_name": "jotting"}, {"title": "\u5f02\u6b65IO\uff08asynchronous IO\uff09", "category": "python", "file_name": "coroutine"}, {"title": "Crawl4ai", "category": "python", "file_name": "crawler-tool-crawl4ai"}, {"title": "django notes", "category": "python", "file_name": "django"}, {"title": "adjango \u8fdb\u9636\u5b9e\u8df5", "category": "python", "file_name": "django_advanced"}, {"title": "faiss", "category": "python", "file_name": "faiss"}, {"title": "gradio", "category": "python", "file_name": "gradio"}, {"title": "itchat", "category": "python", "file_name": "itchat"}, {"title": "keras", "category": "python", "file_name": "keras"}, {"title": "\u5e38\u7528\u6a21\u5757", "category": "python", "file_name": "modules"}, {"title": "numpy", "category": "python", "file_name": "numpy"}, {"title": "pandas", "category": "python", "file_name": "pandas"}, {"title": "pygame", "category": "python", "file_name": "pygame"}, {"title": "python \u6559\u7a0b 1", "category": "python", "file_name": "python1"}, {"title": "python \u6559\u7a0b 2", "category": "python", "file_name": "python2"}, {"title": "sklearn_01", "category": "python", "file_name": "sklearn_01"}, {"title": "tkinter", "category": "python", "file_name": "tkinter"}, {"title": "python trick", "category": "python", "file_name": "trick"}, {"title": "visualize with python", "category": "python", "file_name": "visualize"}, {"title": "\u7f51\u7edc\u722c\u866b1", "category": "python", "file_name": "web_spider"}, {"title": "\u7f51\u7edc\u722c\u866b2", "category": "python", "file_name": "web_spider2"}, {"title": "\u7f51\u7edc\u722c\u866b3", "category": "python", "file_name": "web_spider3"}, {"title": "xgboost \u5165\u95e8", "category": "python", "file_name": "xgboost"}, {"title": "aa_paper", "category": "recsys", "file_name": "aa_paper"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u7b80\u4ecb", "category": "recsys", "file_name": "rs00_intro"}, {"title": "\u641c\u7d22\u63a8\u8350\u5b9e\u8df5\u70b9", "category": "recsys", "file_name": "rs00_practice"}, {"title": "\u534f\u540c\u8fc7\u6ee4", "category": "recsys", "file_name": "rs01_cf"}, {"title": "\u57fa\u4e8e\u77e9\u9635\u5206\u89e3\u7684\u534f\u540c\u8fc7\u6ee4", "category": "recsys", "file_name": "rs02_mf"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684ctr\u9884\u6d4b", "category": "recsys", "file_name": "rs03_lr"}, {"title": "fm\u6a21\u578b", "category": "recsys", "file_name": "rs04_fm"}, {"title": "GBDT+LR", "category": "recsys", "file_name": "rs05_gbdt_lr"}, {"title": "\u6df1\u5ea6\u5b66\u4e60\u5728\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5e94\u7528", "category": "recsys", "file_name": "rs10_deep_leaning_in_recsys"}, {"title": "\u6df1\u5ea6\u5b66\u4e60\u5728\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5e94\u7528-\u6df1\u5ea6\u5174\u8da3\u7f51\u7edc", "category": "recsys", "file_name": "rs12_deep_learning_in_recsys_din"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5411\u91cf\u68c0\u7d2200-\u6982\u8ff0", "category": "recsys", "file_name": "rs20_emdedding_retrieval00"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5411\u91cf\u68c0\u7d2201-\u53cc\u5854\u6a21\u578b", "category": "recsys", "file_name": "rs21_emdedding_retrieval01"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5411\u91cf\u68c0\u7d2202-\u5355\u5854\u6a21\u578b", "category": "recsys", "file_name": "rs22_emdedding_retrieval02"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5411\u91cf\u68c0\u7d2203-\u56fe\u5d4c\u5165", "category": "recsys", "file_name": "rs23_emdedding_retrieval03_graph_embedding"}, {"title": "\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u5411\u91cf\u68c0\u7d2204-\u5927\u5382\u5b9e\u8df5", "category": "recsys", "file_name": "rs24_emdedding_retrieval04"}, {"title": "\u641c\u7d22\u63a8\u8350\u4e2d\u7684rerank\u65b9\u6cd5", "category": "recsys", "file_name": "rs30_rank"}, {"title": "\u6df1\u5ea6\u63a8\u8350\u7cfb\u7edf\u4e2d\u7684\u635f\u5931\u51fd\u6570", "category": "recsys", "file_name": "rs31_rank_loss"}, {"title": "lambdamart \u6392\u5e8f\u7b97\u6cd5", "category": "recsys", "file_name": "rs32_rank_lambdamart"}, {"title": "\u5f3a\u5316\u5b66\u4e60 - \u521d\u8bc6", "category": "reinforcement_learning", "file_name": "note00_intro"}, {"title": "note09_robot_gps", "category": "reinforcement_learning", "file_name": "note09_robot_gps"}, {"title": "note10_differentiable_programming", "category": "reinforcement_learning", "file_name": "note10_differentiable_programming"}, {"title": "note11_auto_differentiable", "category": "reinforcement_learning", "file_name": "note11_auto_differentiable"}, {"title": "\u5f3a\u5316\u5b66\u4e60 - Q learning", "category": "reinforcement_learning", "file_name": "note1_q_learning"}, {"title": "note2_rl", "category": "reinforcement_learning", "file_name": "note2_rl"}, {"title": "note3_value_fu_approx", "category": "reinforcement_learning", "file_name": "note3_value_fu_approx"}, {"title": "note4_value_based", "category": "reinforcement_learning", "file_name": "note4_value_based"}, {"title": "note5_policy_based", "category": "reinforcement_learning", "file_name": "note5_policy_based"}, {"title": "note6_model_based", "category": "reinforcement_learning", "file_name": "note6_model_based"}, {"title": "note7_sim_based", "category": "reinforcement_learning", "file_name": "note7_sim_based"}, {"title": "note8_trpo_ppo", "category": "reinforcement_learning", "file_name": "note8_trpo_ppo"}, {"title": "MDP \u9a6c\u5c14\u53ef\u592b\u8fc7\u7a0b", "category": "reinforcement_learning", "file_name": "note_mdp"}, {"title": "\u673a\u5668\u4eba\u5b66\u53c2\u8003", "category": "robotics", "file_name": "00_intro"}, {"title": "01_spatial_description", "category": "robotics", "file_name": "01_spatial_description"}, {"title": "02_forward_kinematics", "category": "robotics", "file_name": "02_forward_kinematics"}, {"title": "03_inverse_kinematics", "category": "robotics", "file_name": "03_inverse_kinematics"}, {"title": "04_velocity", "category": "robotics", "file_name": "04_velocity"}, {"title": "05_jacobian", "category": "robotics", "file_name": "05_jacobian"}, {"title": "06_dynamics", "category": "robotics", "file_name": "06_dynamics"}, {"title": "07_trajectory_generation", "category": "robotics", "file_name": "07_trajectory_generation"}, {"title": "08-screw-theory-kinematics", "category": "robotics", "file_name": "08-screw-theory-kinematics"}, {"title": "lie-group", "category": "robotics", "file_name": "09_lie_group"}, {"title": "10_manifold", "category": "robotics", "file_name": "10_manifold"}, {"title": "11_quaternion", "category": "robotics", "file_name": "11_quaternion"}, {"title": "\u4eba\u5de5\u667a\u80fd\u9a71\u52a8\u7684\u673a\u5668\u4eba", "category": "robotics", "file_name": "20_agi_in_robotics"}, {"title": "\u673a\u5668\u4eba\u4e2d\u7684\u5f3a\u5316\u5b66\u4e60", "category": "robotics", "file_name": "21_rl_for_robotics"}, {"title": "\u673a\u5668\u4eba\u786c\u4ef6", "category": "robotics", "file_name": "50_robotics_hardware"}, {"title": "industrical driver basic class", "category": "ros", "file_name": "industrical_driver"}, {"title": "motoman driver structure", "category": "ros", "file_name": "motoman_driver"}, {"title": "moveit source installation", "category": "ros", "file_name": "moveit_source_installation"}, {"title": "web camera in ros", "category": "ros", "file_name": "rgb"}, {"title": "ros begining", "category": "ros", "file_name": "ros_concepts"}, {"title": "\u914d\u8272\u65b9\u6848", "category": "tool", "file_name": "color"}, {"title": "\u6570\u636e\u53ef\u89c6\u5316", "category": "tool", "file_name": "data_visualization_art"}, {"title": "Figma", "category": "tool", "file_name": "figma"}, {"title": "icons", "category": "tool", "file_name": "icons"}, {"title": "introduction to latex", "category": "tool", "file_name": "latex"}, {"title": "markdown advanced tutorial", "category": "tool", "file_name": "markdown"}, {"title": "\u5173\u4e8e presentation", "category": "tool", "file_name": "presentation"}, {"title": "\u4f7f\u7528svg\u753b\u56fe", "category": "tool", "file_name": "svg"}, {"title": "\u4f7f\u7528svg\u753b\u56fe2", "category": "tool", "file_name": "svg_calendar"}, {"title": "svg_plot", "category": "tool", "file_name": "svg_plot"}, {"title": "useful tools", "category": "tool", "file_name": "tool"}, {"title": "unicode \u0026 emoji symbol", "category": "tool", "file_name": "unicode_emoji"}, {"title": "plot with unicode characters", "category": "tool", "file_name": "unicode_plot"}, {"title": "01_html1", "category": "web", "file_name": "01_html1"}, {"title": "02_html2", "category": "web", "file_name": "02_html2"}, {"title": "CSS basic", "category": "web", "file_name": "03_css1"}, {"title": "CSS advance", "category": "web", "file_name": "04_css2"}, {"title": "JavaScript 2", "category": "web", "file_name": "05_javascript-2"}, {"title": "JacaScript tutorial", "category": "web", "file_name": "05_javascript"}, {"title": "svg \u57fa\u672c\u6559\u7a0b", "category": "web", "file_name": "06_svg_tutorial"}, {"title": "request", "category": "web", "file_name": "07_request"}, {"title": "\u7d20\u6750\u5e93", "category": "web", "file_name": "11_asserts"}, {"title": "\u7f51\u7ad9\u6a21\u677f", "category": "web", "file_name": "12_templates"}, {"title": "ui \u7ec4\u4ef6\u5e93", "category": "web", "file_name": "13_ui"}, {"title": "\u6d89\u53ca\u5de5\u5177", "category": "web", "file_name": "14-design"}, {"title": "21_three_js", "category": "web", "file_name": "21_three_js"}, {"title": "tauri \u8de8\u5e73\u53f0\u5f00\u53d1", "category": "web", "file_name": "22_tauri"}, {"title": "vue \u5f00\u53d1\u6559\u7a0b", "category": "web", "file_name": "23_vue"}, {"title": "Tailwind CSS", "category": "web", "file_name": "24-tailwind"}, {"title": "React", "category": "web", "file_name": "26-react"}, {"title": "Next.js", "category": "web", "file_name": "27-next-js"}, {"title": "API collections", "category": "web", "file_name": "30_api"}, {"title": "nginx", "category": "web", "file_name": "41-nginx"}, {"title": "database", "category": "web", "file_name": "42-database"}, {"title": "google cloud api", "category": "web", "file_name": "api-google"}, {"title": "\u4f01\u4e1a\u5fae\u4fe1", "category": "web", "file_name": "api-qiyeweixin"}, {"title": "open library collection", "category": "web", "file_name": "open-library"}, {"title": "boost page load speed", "category": "web", "file_name": "seo-performance"}, {"title": "SEO", "category": "web", "file_name": "seo-search"}, {"title": "seo skills", "category": "web", "file_name": "seo-skills"}, {"title": "\u72ec\u7acb\u5f00\u53d1", "category": "web", "file_name": "web-saas"}, {"title": "backend", "category": "web", "file_name": "web-security"}, {"title": "Tools for web development", "category": "web", "file_name": "web-tool"}]</script> <div id="search_mode" style="pointer-events: auto; position: relative; z-index: 1; display: none"> <div class="w-screen h-screen top-0 left-0 items-center justify-center fixed z-20"> <!-- for blur background --> <div style="position: absolute;backdrop-filter: blur(20px);inset: 0px;background: rgba(20, 20, 20, 0.3); opacity: 0.8;"> </div> <!-- search location --> <div class="relative px-6 py-2 z-20 top-[30%] left-[50%] lg:max-w-2xl md:max-w-xl sm:max-w-lg mx-0 my-auto gap-4 transform -translate-x-1/2 rounded-lg bg-gray-100 shadow-2xl"> <!-- search bar --> <div class="relative mb-1 flex flex-row"> <input id="user_search_input" type="search" class="h-12 flex-auto border-transparent rounded-md focus:ring-0 focus:border-transparent" placeholder="Search" aria-label="Search" aria-describedby="button-addon2" name="q" /> <!--Search icon--> <kbd class="inline-flex items-center justify-center text-gray-900 dark:text-white h-5 min-w-[20px] text-[11px] px-1 rounded font-medium font-sans bg-gray-100 dark:bg-gray-800 ring-1 ring-gray-300 dark:ring-gray-700 ring-inset"><!--[-->Ctrl<!--]--></kbd> <kbd class="inline-flex items-center justify-center text-gray-900 dark:text-white h-5 min-w-[20px] text-[11px] px-1 rounded font-medium font-sans bg-gray-100 dark:bg-gray-800 ring-1 ring-gray-300 dark:ring-gray-700 ring-inset"><!--[--> Q <!--]--></kbd> <span class="input-group-text flex items-center whitespace-nowrap rounded px-3 py-1.5 text-center text-base font-normal text-neutral-700 dark:text-neutral-200" id="basic-addon2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-5 w-5"> <path fill-rule="evenodd" d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z" clip-rule="evenodd" /> </svg> </span> </div> <!-- search result --> <div class="max-h-[300px] h-[300px] overflow-y-auto overflow-x-hidden whitespace-nowrap text-ellipsis"> <a id="search_results_template" href="/blog//" style="display: none;"> <div class="relative flex cursor-default select-none hover:font-bold group rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-gray-200 hover:rounded-lg overflow-hidden" cmdk-item="" role="option" data-value="documentation" aria-selected="true" data-selected="true"> <span class="overflow-x-hidden inline-block whitespace-nowrap rounded-full border-amber-900 px-[0.65em] text-left align-baseline text-[0.75em] leading-none text-amber-600 group-hover:font-bold text-sm "> category </span><p>title</p> </div> </a> <div id="replaceable-notes-result" class="p-1 text-foreground "> <div class="relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none" cmdk-item="" role="option" data-value="documentation" aria-selected="true" data-selected="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-5 w-5"> <path fill-rule="evenodd" d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z" clip-rule="evenodd" /> </svg>🦔 Type any keywords </div> </div> </div> </div> </div> </div> <!-- script --> <script> const user_input_var = $("#user_search_input"); const notes_result_div = $('#replaceable-notes-result') const endpoint = '/blog/'; const delay_by_in_ms = 200; let scheduled_function = false; var is_composing = false; //const clsList = document.documentElement.classList; //if(!clsList.contains('dark-mode')) { // document.documentElement.classList.add('dark-mode'); //} let ajax_call = function (endpoint, request_parameters) { $.getJSON(endpoint, request_parameters) .done(response => { notes_result_div.html(response['notes_from_view']); }) } user_input_var.on('compositionstart', function () { is_composing = true; }); user_input_var.on('compositionend', function () { is_composing = false; }); user_input_var.on('keyup', function () { if (is_composing) { return; } const request_parameters = { q: $(this).val() // value of user_input_var: the HTML element with ID user-input } // if scheduled_function is NOT false, cancel the execution of the function if (scheduled_function) { clearTimeout(scheduled_function) } var use_db = (typeof search_data === 'undefined'); // trim query var query = $(this).val().toLowerCase().replace(/(^\s*)|(\s*$)/g, ""); if(query == null || query == "" || query == "underfined"){ const results_box = document.createElement("div"); results_box.innerHTML = "🦔 Typing ..."; notes_result_div.html(results_box); return; } if(use_db){ // setTimeout returns the ID of the function to be executed scheduled_function = setTimeout(ajax_call, delay_by_in_ms, endpoint, request_parameters) }else{ console.log("use fuzzysearch"); const startms = getms(); const options = { limit: 10, // don't return more results than you need! threshold: -1000000, // don't return bad results keys:['title', 'file_name', 'content'] } const results = fuzzysort.go(query, search_data, options); const duration = formatnumber(getms()-startms); console.log("fuzzysearch duration: " + duration + "ms"); const search_summary = "🦔 search " + results.length + " results: "+ duration + "ms"; const search_summary_box = document.createElement("div"); search_summary_box.innerHTML = search_summary; if(results.length == 0){ notes_result_div.html(search_summary_box); return; } const results_box = document.createElement("div"); results_box.appendChild(search_summary_box) const search_results_template = document.getElementById("search_results_template"); for(var i=0;i<results.length;i++){ const cur_r = results[i]; const cur_template = search_results_template.cloneNode(true); cur_template.href = "/blog/" + results[i].obj['category'] + "/" + results[i].obj['file_name']; cur_template.style.display = "block"; cur_template.children[0].children[0].innerHTML = results[i].obj['category']; if(cur_r[0] != null){ cur_template.children[0].children[1].innerHTML = fuzzysort.highlight(cur_r[0]); //}else if(cur_r[2] != null){ // const b_start_index = cur_r[2]._[0]; // const b_end_index = cur_r[2]._[0]+cur_r[2]._.j; // const start_index = Math.max(0,b_start_index-5); // const end_index = Math.min(b_end_index+5, cur_r.obj['content'].length); // const inner_str = cur_r.obj['content'].slice(start_index, b_start_index)+'<b>'+cur_r.obj['content'].slice(b_start_index, b_end_index)+'</b>'+cur_r.obj['content'].slice(b_end_index, end_index); // cur_template.children[0].children[1].innerHTML = inner_str; // console.log(inner_str); }else{ cur_template.children[0].children[1].innerHTML = results[i].obj['title']; } results_box.appendChild(cur_template); } notes_result_div.html(results_box); } }) document.onkeydown = function (e) { var e = e || window.event; // ctrl+ p if (e.ctrlKey && e.keyCode == 81) { e.cancelBubble = true; e.preventDefault(); e.stopImmediatePropagation(); var search_mode = document.getElementById("search_mode"); var user_search_input = document.getElementById("user_search_input"); if (search_mode.style.display == "block") { search_mode.style.display = "none"; } else { search_mode.style.display = "block"; } user_search_input.focus(); } } function search_key_listen() { var search_input = document.getElementById("search_input"); search_input.addEventListener("keyup", function (event) { if (event.keyCode === 13) { event.preventDefault(); document.getElementById("search_btn").click(); } }); } function searchKeyDown() { let x = document.getElementById("user_search_input"); x.value = x.value.toUpperCase(); } </script> </div> </main> </div> <footer class="my-20"> <p class="text-center text-sm text-slate-500"> Copyright © 2024. All rights reserved. </p> <p class="text-center text-xs text-slate-500 mt-1"> Made with ❤️ by Yeekal </p> </footer> </body> <script> // document.documentElement.classList.add("dark"); const menuToggle = document.getElementById('astronav-menu'); const elementsToToggle = document.querySelectorAll('.menu-button'); // 监听菜单按钮的点击事件 menuToggle.addEventListener('click', toggleMenu); // 切换菜单的显示/隐藏状态 function toggleMenu() { elementsToToggle.forEach(element => { element.classList.toggle('hidden'); }); } </script> </html>