一/python中类的使用
    - 当前文件夹下建立一个专门放class的文件夹
    - 文件夹下建一个__init__.py文件
    - 使用子文件夹中的自定义类
        from oneclass.onedb import Onedb
            #oneclass #当前文件夹下的一个子文件夹
            #onedb    #oneclass下一个名字叫onedb.py的文件, 这个文件里包含类
            #onedb里面可以有多个类, 而import Onedb是引入叫Onedb的这个类
            #也可以引入多个类,用","分隔
二/pandas
    初始化pandas
        import pandas as pd
        df=pd.DataFrame()	#初始化
    io(input/output)
        read_csv()
            -导入csv其中第一列为index
                stocklist = pd.read_csv(r"./2022.csv",index_col=0)
        to_csv(encode="GBK" / "UTF-8"?)
    dataframe定位一个单元格
        kdata [ 'ma30' ] [ ttlk-1 ] = kdata.ma30[ttlk-1]
    显示dataframe每一列的名称
        cols = stocklist.columns.tolist()
    改变pandas列的顺序(或挑选出一些列组成新的pandas)
        df = df[['a','b','c','d']]  #重点是要有两层中括号,单层会报错
    修改列名称
        self.havelist=self.havelist[['代码','成本','数量','名称']]
        self.havelist.columns=['code','cost','qty','name']        
    给dataframe里所有的NaN(not a number)数据统一填充赋值
        df=df.fillna("")
    pandas Query [mac是否支持,ubuntu20测试通过]
        ms=stocklist.query('"-1" in month')
        ms=ms.query('week.str.contains("-1abc",na=False)')
        monthxg=stocklist.query('(month.str.contains("-1ab",na=False)) & (week.str.contains("-1ab",na=False))')
    Query的替代解决方案:
        for key,stock in stocklist.iterrows():
            if "-1abc" in stock.month and "-1abc" in stock.week:
                newlist=newlist.append(stock)
    修改index值
        #达到index从1而不是从0开始计数的效果
        self.havelist.index = self.havelist.index + 1
三/Mysql
四/vim
    折叠功能
        打开全部折叠：zR。
        关闭全部折叠：zM。
    跳转到函数、变量定义处： 
        [+ctrl+i 跳转到函数、变量和#define
        [+ctrl+d 跳转到#define处
        ctrl+i 向前跳到前几次光标位置
        ctrl+o 向后跳到后几次光标位置
    函数体跳转 ： 
        [[
        ]]
        []
        ][
        {}
        页内跳转
            hjkl 这是代替箭头键功能的 
            H M L 跳到屏幕的顶上 中间 下方 
        行内跳转
            w 跳到下一个单词的开始(-连在一起的中文算一个单词)
            e 跳到单词的结束
            b 向后跳
            ta 跳到下一个a 前面
            fa 跳到下一个a 后面 
            大写的意思相反 Ta Fa
            ^ 行首 
            $行尾
            0 第一个字符
        行间跳转
            gg 跳到文件的开始 = B
            G 跳到文件的结束  = E
            10gg 或10G 跳到第10行(等同于:加行号的底部命令) 
        全篇跳转
            另外还有%(跳到文件的%多少) 和|(跳到第几列) 不过我很少用 
            上面的都可以加上数字前缀 表示第几个匹配 
            CTRL-F   向前一页   pagedown 
            CTRL-B   向后一页   pageup
            上面不是重要的 
            CTRL-D 向下半页 
            CTRL-U 向上半页
            我觉得更实用 这样看文章时就不会跳转出错
            另外还有
            CTRL-E 向下一行(是整个屏幕移动而不是光标移动)
            CTRL-Y 向上一行

        另外上面也作为vim其它命令的定位符 如删除d
        dt)    (动词 + 介词 + 名词)
        一直删除到这行的) 

        另外 懂了跳转键后 那删除或是复制时就不再是以行为单位了 可以指定到某个条件 
        我觉得这是新手成长的必要方法

        另外还有ctrl-t ctrl-i ctrl-]
        如果已经使用了ctags 或是cscope创建索引文件的话 那看代码时很是方便

        如何选中括号中的内容 进行：
            将光标移至括号内，按shift+v进入行选模式，然后
            i｛ － 选小括号中内容，不包括小括号
            a｛ － 选小括号中内容，包括小括号
            ib － 选中括号中内容，不包括括号
            ab － 选中括号中内容，包括括号
            i｛ － 选大括号中内容，不包括大括号
            a｛ － 选大括号中内容，包括大括号

        :h text-objects

        下面还有些相关的tips，未全部验证：
            vi{ 选中{}中间的内容,不包括{}
            va{ 选中{}中间内容，包括{}
            vi( 选中()中间内容
            vi< 选中<>中间内容
            vi[ 选中[]中间内容
            vit 选中中间的内容
            vi” 选中”"中间内容
            vi’ 选中”中间的内容
            vis 选中一个句子
            vib 选中一个block
            viw选中一个单词
            vip 选中一个段落

        在normal模式下光标停在某个字符上ga可以查看该字符的ascii码
        
        复制删除粘贴的操作：按V（shift+v），进入可视模式，jk上下选择需要的行，然后按
            y 复制
            d 删除
            x 剪切
            p 粘贴
        可视模式很好用，例如想把两行的所有单词变成小写，按V然后按j或k选中这两行，按gu即可
        
        #跳到行首按0，但实际更好用的是^, 跳到行首非空白字符
        #折行前空出4字符显示折行标识
        set foldcolumn=4
        #折叠或展开（在折叠的那一行左右移动光标也可展开折叠）
        za
        #删除光标所在行所处的范围的折叠
        zd
        #当在:set foldmethod=marker后，折行会把{{{和}}}之间的内容折叠
        #不在单词中间断行。 设置了这个选项后， 如果一行文字非常长， 无法在一行内显示完的话，
        它会在单词与单词间的空白处断开， 尽量不会把一个单词分成两截放在两个不同的行里。
        set lbr
        #sw是shiftwidth的缩写，表缩进列数
        fx把光标移动到该行的下个x字符上，这个x也可以是一个汉字，;重复fx操作。Fx把光标移动到该行的上一个x字符上。
        gg光标定位到第一行开头，G定位到最后一行开头
        H光标跳到当前窗口显示文本的第一行
        M光标跳到当前窗口显示文本的中间一行
        L光标跳到当前窗口显示文本的最后一行
        g*查找包含当前单词的所有单词(*只查找与当前单词精确匹配的单词)，
        -d光标下跳半屏，文本上滚半屏
        -u光标上跳半屏，文本下滚半屏
        -e文本向上滚动一行
        zz屏幕滚动使得当前行成为屏幕的中间一行
        normal模式下按J删除此行末尾的换行符,从而合并两行
        :e!重新读进上次保存的此文件内容
        :ab myname william_djj
        以后再编辑时键入myname，然后空格或回车myname串就会被william_djj代替
        :r !date
        在当前位置插入系统时间（linux下的date命令），同理当前位置插入某文件的内容就是
        :r filename
        :set ignorecase
        查找时取消case sensitive
        :set noignorecase
        查找时case sensitive
        ############ 使用tags ###################
        以下命令递归当前目录下的所有文件创建tags文件
        ctags -R .
        vim打开当前目录下的任意一文件，命令模式下键入下面语句以指定刚才创建的tags的位置，以后就可以在不同文件间查阅函数
        set tags=..\tags
        #分割窗口显示当前函数的定义
        -w ]
        ##########################################
        如果插件目录下有echofunc.vim，用以下命令生成tags，以后编辑代码函数名后打“（“时有参数提示。
        $ ctags -R –fields=+lS .
        :Tlist打开左边一个taglist的窗口，显示symbols。要注意的是在windows下如果tags文件路径中有空格或中文会报找不到tags文件的错误,
        +w+w 或者+w+left/right 窗口切换
        +] 进入光标所指的symbol的定义（如果用鼠标也是+鼠标左键，跟SI的用法一样）
        +t 返回第一个用+t 跳转位置,注意+o是跳回上一个视图，而+t是跳回上一次按+]的位置
        #以下命令分裂出一个窗口显示定义处
        ptag 函数名
        #以下命令关闭刚才打开的分裂窗口
        pclose

        #垂直分裂窗口打开一文件
        vsplit 文件名

        #水平分裂窗口打开一文件
        split 文件名
        变量名写成\name表示匹配模式
        停在某个括号上按%，跳到匹配的括号处，#if跳到匹配的#else或#endif处
        set fdm=syntax折叠函数体
        双击]往后逐个函数跳读，双击[往前逐个函数跳读

        #在vim下对比两个文件,原来打开了fnpro.c,现在和fnpro.c.bak对比
        #垂直分割
        :vert diffsplit fnpro.c.bak
        #水平分割
        :diffsplit fnpro.c.bak
        #跳到下一个不同之处
        :]c
        #跳到上一个不同之处
        :[c
        #展开折叠:zo
        #折叠:zc

        #不论何种情况下－o都可以上一次跳转的地方

        #查看变量和函数的申明
        [i

        #以下为查看vim环境参数makeprg的值的例子:
        :set makeprg?

        #重新对文件代码进行缩进
        gg=G

        跳 转 到函数 、变量定义处： 
        [+ctrl+i 跳 转 到函数 、变量和#define
        [+ctrl+d 跳 转 到#define处
        ctrl+i 向前跳 到前几次光标位置
        ctrl+o 向后跳 到后几次光标位置

        如何选中括号中的内容 进行：
        将光标移至括号内，按shift+v进入行选模式，然后
        i｛ － 选小括号中内容，不包括小括号
        a｛ － 选小括号中内容，包括小括号
        ib － 选中括号中内容，不包括括号
        ab － 选中括号中内容，包括括号
        i｛ － 选大括号中内容，不包括大括号
        a｛ － 选大括号中内容，包括大括号

        :h text-objects
        下面还有些相关的tips，未全部验证：
        vi{ 选中{}中间的内容,不包括{}
        va{ 选中{}中间内容，包括{}
        vi( 选中()中间内容
        vi< 选中<>中间内容
        vi[ 选中[]中间内容
        vit 选中中间的内容
        vi” 选中”"中间内容
        vi’ 选中”中间的内容
        vis 选中一个句子
        vib 选中一个block
        viw 选中一个单词
        vip 选中一个段落

        vim文件跳转
        如果使用vim 打开了多个文件 ，如vim file1 file2 ... fileN
        :n 或 :prev来跳转 到前一个或者后一个文件
        :first或:last来跳转到第一个和最后一个文件

        如果你只打开一个文件，如vim file1
        然后在使用过程中，通过:e file2编辑了第二个文件，这时, :prev是不起作用的
        可以用:e#返回上一个编辑的文件

        无论哪两种方式都可以用
        :bN跳转到打开的第N个文件
        如:b1跳转到第一个打开的文件

        :基础按键#
        ZZ保存退出=:wq
        ZQ不保存退出=:q!
        u撤销 U或Ctrl+r反撤销
        r替换光标所在字符（适合修改配置文件0->1）
        dd删除一行 5dd删除五行 5j向下五行
        o下方插入新行 O上方插入新行
        $跳转行尾 ^跳转行首
        gg跳转首行 15gg转到15行 G跳转尾行

        选择复制#
        之前复制都是用yy复制整行再p慢慢删除
        其实可以按v进入visual模式hjkl移动选择，按y复制p粘贴

        批量注释/取消#
        类似的，按Ctrl+v进入visual block模式，选取对角线包含的整个block进行操作
        注释：选取多行行首后按I插入注释符号#后按两次Esc
        取消：选取多行行首后按d或x即可删除注释

        底部终端#
        :bo term打造一个类似VScode的简易IDE，上面editor下面shell
        通过Ctrl+ww来回跳转。

        高亮查找#
        :set nu显示行号（可选）
        :set hls开启高亮模式，用/keyword进行查找
        n/N下一个/上一个

        终端内搜索#
        这个惊为天人，配合终端分屏，上面写代码下面编译
        编译出现了error想定位问题，在终端窗口输入Ctrl+w N（大写N）或Ctrl+\ Ctrl+n (小写n)
        可以将终端的标准输出转化为文本从而响应/error的查找
        完成后按i进入编辑模式即可还原shell

        快速打开文件#
        :e ~/.bashrc打开文件
        :e .直接打开文件管理器

        分屏新窗口#
        :sp /path/to/file 左侧生新窗口，打开文件
        :vsp /path/to/file 上方生成新窗口，打开文件
        省略路径则打开当前文件new 新建文件
五/Linux(Ubuntu)
    #sudo ln -s /usr/bin/python3 /usr/bin/python
    手机挂载远程samba服务器
        alanliuhui999.mynetgear.com:7777 /samba /Cd33
        App?
        sudo service smbd restart / stop / start

        sudo adduser samba
        sudo apt install samba
        samba -V
        cd /etc/samba
        sudo cp smb.conf smb.conf.bak
        sudo vim smb.conf
            [k]                                                                                   
                comment = oneshare 
                path = /home/samba
                read only = no
                browsable = yes  
            [global]
                smb ports = 7777
        sudo smbpasswd -a samba
        sudo ufw allow samba
        sudo ufw allow 'Samba'
        sudo service smbd restart
        sudo systemctl status nmbd
        sudo netstat -tlnp |grep smb
        sudo systemctl stop nmbd
六/html
    基本标签(Basic Tags)
        <h1>最大的标题</h1>
        <h2> . . . </h2>
        <h3> . . . </h3>
        <h4> . . . </h4>
        <h5> . . . </h5>
        <h6>最小的标题</h6>
        <p>这是一个段落。</p>
        <br> （换行）
        <hr> （水平线）
        <!-- 这是注释 -->
    文本格式化(Formatting)
        <b>粗体文本</b>
        <code>计算机代码</code>
        <em>强调文本</em>
        <i>斜体文本</i>
        <kbd>键盘输入</kbd> 
        <pre>预格式化文本</pre>
        <small>更小的文本</small>
        <strong>重要的文本</strong>
        <abbr> （缩写）
        <address> （联系信息）
        <bdo> （文字方向）
        <blockquote> （从另一个源引用的部分）
        <cite> （工作的名称）
        <del> （删除的文本）
        <ins> （插入的文本）
        <sub> （下标文本）
        <sup> （上标文本）
    链接(Links)
        普通的链接：<a href="http://www.example.com/">链接文本</a>
        图像链接： <a href="http://www.example.com/"><img src="URL" alt="替换文本"></a>
        邮件链接： <a href="mailto:webmaster@example.com">发送e-mail</a>
        书签：
        <a id="tips">提示部分</a>
        <a href="#tips">跳到提示部分</a>
    图片(Images)
        <img loading="lazy" src="URL" alt="替换文本" height="42" width="42">
    样式/区块(Styles/Sections)
        <style type="text/css">
        h1 {color:red;}
        p {color:blue;}
        </style>
        <div>文档中的块级元素</div>
        <span>文档中的内联元素</span>
    无序列表
        <ul>
            <li>项目</li>
            <li>项目</li>
        </ul>
    有序列表
        <ol>
            <li>第一项</li>
            <li>第二项</li>
        </ol>
    定义列表
        <dl>
        <dt>项目 1</dt>
            <dd>描述项目 1</dd>
        <dt>项目 2</dt>
            <dd>描述项目 2</dd>
        </dl>
    表格(Tables)
        <table border="1">
        <tr>
            <th>表格标题</th>
            <th>表格标题</th>
        </tr>
        <tr>
            <td>表格数据</td>
            <td>表格数据</td>
        </tr>
        </table>
    框架(Iframe)
        <iframe src="demo_iframe.htm"></iframe>
    表单(Forms)
        <form action="demo_form.php" method="post/get">
        <input type="text" name="email" size="40" maxlength="50">
        <input type="password">
        <input type="checkbox" checked="checked">
        <input type="radio" checked="checked">
        <input type="submit" value="Send">
        <input type="reset">
        <input type="hidden">
        <select>
        <option>苹果</option>
        <option selected="selected">香蕉</option>
        <option>樱桃</option>
        </select>
        <textarea name="comment" rows="60" cols="20"></textarea>
        </form>
    实体(Entities)
        &lt; 等同于 <
        &gt; 等同于 >
        &#169; 等同于 ©
    缩写
        标签	英文全称	中文说明
        a	Anchor	锚
        abbr	Abbreviation	缩写词
        acronym	Acronym	取首字母的缩写词
        address	Address	地址
        alt	alter	替用(一般是图片显示不出的提示)
        b	Bold	粗体（文本）
        bdo	Direction of Text Display	文本显示方向
        big	Big	变大（文本）
        blockquote	Block Quotation	区块引用语
        br	Break	换行
        cell	cell	巢
        cellpadding	cellpadding	巢补白
        cellspacing	cellspacing	巢空间
        center	Centered	居中（文本）
        cite	Citation	引用
        code	Code	源代码（文本）
        dd	Definition Description	定义描述
        del	Deleted	删除（的文本）
        dfn	Defines a Definition Term	定义定义条目
        div	Division	分隔
        dl	Definition List	定义列表
        dt	Definition Term	定义术语
        em	Emphasized	加重（文本）
        font	Font	字体
        h1~h6	Header 1 to Header 6	标题1到标题6
        hr	Horizontal Rule	水平尺
        href	hypertext reference	超文本引用
        i	Italic	斜体（文本）
        iframe	Inline frame	定义内联框架
        ins	Inserted	插入（的文本）
        kbd	Keyboard	键盘（文本）
        li	List Item	列表项目
        nl	navigation lists	导航列表
        ol	Ordered List	排序列表
        optgroup	Option group	定义选项组
        p	Paragraph	段落
        pre	Preformatted	预定义格式（文本 ）
        q	Quotation	引用语
        rel	Reload	加载
        s/ strike	Strikethrough	删除线
        samp	Sample	示例（文本
        small	Small	变小（文本）
        span	Span	范围
        src	Source	源文件链接
        strong	Strong	加重（文本）
        sub	Subscripted	下标（文本）
        sup	Superscripted	上标（文本）
        td	table data cell	表格中的一个单元格
        th	table header cell	表格中的表头
        tr	table row	表格中的一行
        tt	Teletype	打印机（文本）
        u	Underlined	下划线（文本）
        ul	Unordered List	不排序列表
        var	Variable	变量（文本）
    参考手册
        标签	            描述
        <!--...-->	        定义注释
        <!DOCTYPE>	        定义文档类型
        <a>	                定义超文本链接
        <abbr>	            定义缩写
        <acronym>	        定义只取首字母的缩写，不支持HTML5
        <address>	        定义文档作者或拥有者的联系信息
        <applet>	        HTML5中不赞成使用。定义嵌入的 applet。
        <area>	            定义图像映射内部的区域
        <article>New	    定义一个文章区域
        <aside>New	        定义页面的侧边栏内容
        <audio>New	        定义音频内容
        <b>	                定义文本粗体
        <base>	            定义页面中所有链接的默认地址或默认目标。
        <basefont>	        HTML5不支持，不赞成使用。定义页面中文本的默认字体、颜色或尺寸。
        <bdi>New	        允许您设置一段文本，使其脱离其父元素的文本方向设置。
        <bdo>	            定义文字方向
        <big>	            定义大号文本，HTML5不支持
        <blockquote>	    定义长的引用
        <body>	            定义文档的主体
        <br>	            定义换行
        <button>	        定义一个点击按钮
        <canvas>New	        定义图形，比如图表和其他图像,标签只是图形容器，您必须使用脚本来绘制图形
        <caption>	        定义表格标题
        <center>	        HTML5不支持，不赞成使用。定义居中文本。
        <cite>	            定义引用(citation)
        <code>	            定义计算机代码文本
        <col>	            定义表格中一个或多个列的属性值
        <colgroup>	        定义表格中供格式化的列组
        <command>New	    定义命令按钮，比如单选按钮、复选框或按钮
        <datalist>New	    定义选项列表。请与 input 元素配合使用该元素，来定义 input 可能的值。
        <dd>	            定义定义列表中项目的描述
        <del>	            定义被删除文本
        <details>New	    ***用于描述文档或文档某个部分的细节
        <dfn>	            定义定义项目
        <dialog>New	        定义对话框，比如提示框
        <dir>	            HTML5不支持，不赞成使用。定义目录列表。
        <div>	            定义文档中的节
        <dl>	            定义列表详情
        <dt>	            定义列表中的项目
        <em>	            定义强调文本
        <embed>New	        定义嵌入的内容，比如插件。
        <fieldset>	        定义围绕表单中元素的边框
        <figcaption>New	    定义<figure> 元素的标题
        <figure>New	        规定独立的流内容（图像、图表、照片、代码等等）。
        <font>	            HTML5不支持，不赞成使用。定义文字的字体、尺寸和颜色。
        <footer>New	        定义 section 或 document 的页脚。
        <form>	            定义了HTML文档的表单
        <frame>	            定义框架集的窗口或框架
        <frameset>	        定义框架集
        <h1> to <h6>	    定义 HTML 标题
        <head>	            定义关于文档的信息
        <header>New	        定义了文档的头部区域
        <hr>	            定义水平线
        <html>	            定义 HTML 文档
        <i>	                定义斜体字
        <iframe>	        定义内联框架
        <img>	            定义图像
        <input>	            定义输入控件
        <ins>	            定义被插入文本
        <kbd>	            定义键盘文本
        <keygen>New	        规定用于表单的密钥对生成器字段。
        <label>	            定义 input 元素的标注
        <legend>	        定义 fieldset 元素的标题。
        <li>	            定义列表的项目
        <link>	            定义文档与外部资源的关系
        <main>	            定义文档的主体部分。
        <map>	            定义图像映射
        <mark>New	        定义带有记号的文本。请在需要突出显示文本时使用 <em> 标签。
        <menu>	            不赞成使用。定义菜单列表。
        <meta>	            定义关于 HTML 文档的元信息。
        <meter>New	        定义度量衡。仅用于已知最大和最小值的度量。
        <nav>New	        定义导航链接的部分
        <noframes>	        定义针对不支持框架的用户的替代内容。HTML5不支持
        <noscript>	        定义针对不支持客户端脚本的用户的替代内容。
        <object>	        定义内嵌对象
        <ol>	            定义有序列表。
        <optgroup>	        定义选择列表中相关选项的组合。
        <option>	        定义选择列表中的选项。
        <output>New	        定义不同类型的输出，比如脚本的输出。
        <p>	                定义段落。
        <param>	            定义对象的参数。
        <pre>	            定义预格式文本。
        <progress>New	    定义运行中的进度（进程）。
        <q>	                定义短的引用。
        <rp>New	            <rp> 标签在 ruby 注释中使用，以定义不支持 ruby 元素的浏览器所显示的内容。
        <rt>New	            <rt> 标签定义字符（中文注音或字符）的解释或发音。
        <ruby>New	        <ruby> 标签定义 ruby 注释（中文注音或字符）。
        <s>	                不赞成使用。定义加删除线的文本。
        <samp>	            定义计算机代码样本。
        <script>	        定义客户端脚本。
        <section>New	    <section> 标签定义文档中的节（section、区段）。比如章节、页眉、页脚或文档中的其他部分。
        <select>	        定义选择列表（下拉列表）。
        <small>	            定义小号文本。
        <source>New	        <source> 标签为媒介元素（比如 <video> 和 <audio>）定义媒介资源。
        <span>	            定义文档中的节。
        <strike>	        HTML5不支持，不赞成使用。定义加删除线文本。
        <strong>	        定义强调文本。
        <style>	            定义文档的样式信息。
        <sub>	            定义下标文本。
        <summary>New	    <summary> 标签包含 details 元素的标题，"details" 元素用于描述有关文档或文档片段的详细信息。
        <sup>	            定义上标文本。
        <table>	            定义表格。
        <tbody>	            定义表格中的主体内容。
        <td>	            定义表格中的单元。
        <textarea>	        定义多行的文本输入控件。
        <tfoot>	            定义表格中的表注内容（脚注）。
        <th>	            定义表格中的表头单元格。
        <thead>	            定义表格中的表头内容。
        <time>New	        定义日期或时间，或者两者。
        <template>New	    定义在页面加载时隐藏的一些内容。
        <title>	            定义文档的标题。
        <tr>	            定义表格中的行。
        <track>New	        <track> 标签为诸如 video 元素之类的媒介规定外部文本轨道。
        <tt>	            定义打字机文本。
        <u>	                不赞成使用。定义下划线文本。
        <ul>	            定义无序列表。
        <var>	            定义文本的变量部分。
        <video>New	        <video> 标签定义视频，比如电影片段或其他视频流。
        <wbr>New	        规定在文本中的何处适合添加换行符。
七/mac
    - 连接smb
        mount -t smbfs "//ab;cd:%40123@alanliuhui999.mynetgear.com/k" /Volumes/one
        其中反斜杠用分号代替，
        @用%40替换
        /Volumes/Metrics 是本地的目录，需要自行创建mkdir /Volumes/Metrics
        -t smbfs [文件系统的类型为 smbfs]
        mount -t smbfs //guest:@192.168.0.132/UDE-Mac /Volumes/UDE-Mac
        mount -t smbfs //samba:@alanliuhui999.mynetgear.com/k /Volumes/k 
        sudo mount -t smbfs //samba:Cfindddd3321@alanliuhui999.mynetgear.com:7777/k /Volumes/one
        sudo mount -t smbfs //samba:Cfindddd3321@alanliuhui999.mynetgear.com:7777/k ~/onev
        sudo umount /Volumes/one
        mount -t smbfs //samba:Cfindddd3321@alanliuhui999.mynetgear.com:7777/k ~/onevol
八/微信小程序
    - 性能问题
        - 只能连接授权的 https:// (通过 php获取数据)
        - 只能连接授权的 mysql (通过 mysql获取数据)
        - 如果不使用https://和mysql, 那么每次更新数据, 都需要更新小程序然后等待审核?
        - ??? 用php功能,使yifanjiankang.club变成中转站,是否能提升性能
            并发访问量
            响应速度
                - gethq.php
                - mysqlgetdata.php (通过这个php取存放在具有公网ip的mysql服务器上的数据,是否更快些)
                - 让ubuntu的docker中的程序完成所有运算
                    - 用户发送就就php请求给yifanjiankang.club
                    - 把用户就请求重新定向到 10700 上处理, 并把数据返回给 yifanjiankang.club
                    - 将数据传给用户
                    - 这样做是否会降低效率
                    - 如果可以 htpc 专门负责 mysql

    - 小程序框架
        - wxml: html
        - wxss: css, 美化页面. 类对象?
        - js  : javascript功能,实现数据处理
            - 每一个js文件,都是写在page{}中的处理函数, 可以调用自己的函数库
            - onLoad()
            - onShow()
            - onReady()
            - 实现屏幕旋转功能
            - 实现定时刷新功能 (定时读取股票行情 gethq.php)
            - 保持屏幕常亮
        - json: 数据库文件类型
        - 云函数:实现特殊的数据处理
            - 云函数通过 event传递参数[具体方法参见 mysql和sendmail的源码]
            - 连接mysql: 
                - 操作mysql数据库非常方便, 但是后续所有针对获取的数据的操作, 都应该在res=>success中进行,否则会显示返回的数据为空
                - 在app.js中,只用初始化,不用实际打开数据库或者返回mysql版本,这样做会节省启动时间 
            - 发送邮件
            - 文字转语音: wechatSI插件失效?目前没有更好的插件, 是否可以通过php中转实现
                生成文字
                php发送到对应服务器 (需要通过中转来提升性能)
                服务器使用文本生成 mp3 或语音文件后存放到服务器上
                小程序自动播放存放在服务器上的mp3文件
                原则上这项功能是可以实现的, 现在就是看延迟是否能接受 (增值服务!!!)

        - 插件: 