精华内容
下载资源
问答
  • User Code是用户自己用编译语言(例如C,C++或Fortran)编写的函数,用来和Simcenter STAR-CCM+动态链接,实现标准界面无法完成的一些需求(比如自定义边界,自定义初始化等)。下面我们通过将入口边界设置为层流充分...

    User Code是用户自己用编译语言(例如C,C++或Fortran)编写的函数,用来和Simcenter STAR-CCM+动态链接,实现标准界面无法完成的一些需求(比如自定义边界,自定义初始化等)。

    下面我们通过将入口边界设置为层流充分发展边界这样一个简单的例子来介绍其使用方法

    模型如下:

    584027369ac06abf40bf2fc5326de543.png

    3c74b12d635836d06c1545676a98f778.png

    物性参数:

    密度:1kg/m³

    粘度:2×10-3N·s/㎡

    管道层流入口充分发展满足下面的关系:

    ffa7a97f84743f074e0536877b255d8f.png

    其中:

    Um表示入口的平均速度

    r0表示管径

    User Code的编写步骤如下:

    ①新建一个头文件,命名为uclib.h,内容如下:

    fc31509cc93950eac452451dfed37ffa.png

    注:上面头文件的名称和格式都是固定的,照着写就行了,不要去改动

    ②编写User Code的源码,新建一个.c或者.cpp文件都可以,这里我们新建一个demo.cpp文件,内容如下:

    d11e0369b042f805db12df7689a2787d.png

    说明:

    上面的源码主要分为三个部分

    e3c0b12d40929900e3f87d4d084551c0.png

    这部分是头文件,不用多说,注意uclib.h这个头文件必须要包含,其他的都是c语言或者c++的头文件了

    94b84b8eaa7001d0596c34c5da8b9ea0.png

    这部分User Code自定义函数的主体部分,格式是固定的,其格式为:

    e360fe5e35ec6d44d90a2ff95c1a0fcf.png

    Name表示函数名,名称可以随便,只要符合c或者c++的命名规则即可。

    对于返回值是标量(比如温度、压力和合速度)的时候result就写为

    Real *result

    这里可以将result理解为一个数组

    注:数组和指针不能直接划等号。

    对于返回值是矢量(比如速度的三个分量)的时候result就写为

    Real (*result)[3]

    这里可以将result理解为一个二维数组,(*result)[0]、(*result)[1]、(*result)[2]分别是一个一维数组,存储不同的量,比如速度三个分量就分别放在三个一维数组当中。

    第二个参数size是前面result的维数,对应的单元(面单元,体单元)的数量,比如以本例来说,入口面有4263个面单元,那么这里的size就等于4263,那么这里的Real *result就相当于Real result[4263]。

    而args...表示不定参数,表示后面跟的参数可能不止一个,类似printf,下图将固定格式和对应例子结合说明一下。

    f56df845f59b959a7b79f0f8ab63d4be.png

    本例中args表示一个参数,当然后面还可以有更多的参数,比如Simcenter STAR-CCM+ 2019.2 User Guide当中就的

    3bb5deeee16ba2ba055a055805b565b2.png

    就跟着两个参数

    args声明参数的方法和对应方式参考下表

    16f3e6d964f5988f32440c6d175042b1.png

    这么声明的方法,基本上和上面的result参数理解类似,比如本例我们需要获取入口面单元的坐标信息,因为前面有size参数,在本例中这个size参数等于4263,那么这里的

    CoordReal (*centroid)[3]

    就相当于

    CoordReal centroid[4263][3]

    4263表示单元数目,后面的3表示x,y,z的索引,那么centroid[0][0]就表示第一个单元的x坐标,centroid[0][1]就表示第一个单元的y坐标,centroid[0][2]就表示第一个单元的z坐标,所以centroid[xxx][0]就表示第xxx个单元的x坐标,centroid[xxx][1]就表示第xxx个单元的y坐标,centroid[xxx][2]就表示第xxx个单元的z坐标,其他类似的理解。

    当然用户自定义函数不止一个,有多少个就写多少即可

    39009c3cd8660c5b26b973377d05caf7.png

    751e78d9a09a5c5202c74c29edeaa894.png

    最后一部分见上图是注册用户自定义的函数,格式是固定的,格式如下:

    9e612ad7a767756e56fab293518e3517.png

    每个用户自定义函数都需要注册,每个用户自定义函数传入的不定参数也需要注册

    注册用户的自定义函数的函数格式为

    ucfunc(void *func, char *type, char *name);

    其中:

    func是用户自定义函数的函数名,比如本例中我们的函数名为ParabolicVelocity,

    type必须是

    "BoundaryProfile"、

    "RegionProfile"、

    "ScalarFieldFunction"、

    "VectorFieldFunction"

    这四种当中的一种,比如本例中我们是设置边界条件,故选择BoundaryProfile

    name则表示为在STAR-CCM+中模型树的Tools->User Code->libuser.dll显示名称和调用时选取的名称,比如本例中我们设置的是边界条件,那么在模型树和边界条件设置的名称就应该是这里的name,见下图

    a09ec0194d5fffac9b6ec8ec81dfffd0.png

    866c0c914b0127b88f94c3a77f02369d.png

    注意一下有多少个用户自定义函数就需要写多少个这样的变量注册用户自定义函数的函数

    注册用户自定义函数传入的不定参数的函数格式为

    ucarg(void *func, char *type, char *variable, int size);

    其中:

    func参数含义与上面ucfunc函数中func参数的含义是一致

    type参数必须是

    "Cell"、

    "Face"、

    "Vertex"、

    这三种当中的一种,Cell表示获取体单元的属性,Face表示获取面单元的属性,Vertex表示获取点的属性。

    比如本例中我们是设置边界条件,故选择Face

    variable参数必须是STAR-CCM+中可用的变量,比如温度(Temperature)、矩心(Centroid)等等

    最后一个参数size的写法是固定的,但是注意一下这里的size和前面用户自定义函数传入的那个size参数是不一样的,这里的size需要传入变量数组的一个元素所需的字节数,采用sizeof来计算,比如本例中sizeof(CoordReal[3]),其他的类似sizeof(Real)、sizeof(int[2])等等,注意一下用户自定义函数当中的不定参数传入了多少个参数就需要写多少个这样的变量注册函数,比如本例不定参数只传入了1个参数,所以我们就需要注册1个。

    总结一下上面注册函数的内容,由于本例当中我们只编写了1个用户自定义函数,不定参数只传入了1个参数,所以们写为下面的形式

    37e55dcd46e75157f99cbd837512c9d7.png

    如果多个用户自定函数和不定参数传入多个参数的情况就参照Simcenter STAR-CCM+ 2019.2 User Guide当中的写法

    b1a1044d8bc4a13a8d2cc107ababa3a7.png

    接下来就是编译User Code

    首先我们找到UserFunctions.lib

    我的路径为:

    1346d1a09258d08c2aa049161040aec7.png

    然后我们再找到vcvarsall.bat

    由于我安装了两个版本的vs,所以会有两个vcvarsall.bat文件,我们vs2013的路径

    98147c6f17723ea5cbd0b2d290ac3294.png

    我们以管理员权限启动cmd

    a14745fc1b8575286d0e3687e3738c27.png

    输入下面的命令

    fce0ced1fc80a3cf777f16c613f24e08.png

    19254610c412e4ba423226fe4b35a0b7.png

    2d74f9e44fbd6fd706e3d3face8d598c.png

    a445aa5a0432a87927837fd01dc3172f.png

    a144a00f1e732d6a3696fd8711a36770.png

    上面命令汇总一下:

    "D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

    cl /MD /EHsc /DDOUBLE_PRECISION /D_WINDOWS -c *.cpp

    link -dll /out:libuser.dll *.obj "D:\Program Files\Siemens\14.04.011-R8\STAR-CCM+14.04.011-R8\star\lib\win64\intel18.3vc14-r8\lib\UserFunctions.lib"

    f1c15e20e214408704feeadb2f255e86.png

    启动STAR-CCM+,新建一个项目,展开模型树的Tools,找到User Code,然后加载User Code。

    33d899003c10619bdad3b18e15353f64.png

    其余的设置没什么难点

    在边界中使用User Code

    dee21381c08dd83ebffe6f21d182bc8d.png

    计算残差

    21541d1ecf82cf30552f37598c127056.png

    计算完成后速度分布云图897d00ade11efaf88337fba620a7314a.png

    入口速度分布

    34d529cdb0b2cf22a3566d3689c825a7.png

    从上面的结果可以看出User Code的设置满足我们的需求

    展开全文
  • 我刚刚安装了Visual Studio Code v1.25.1。 在Windows 7 Professional SP1计算机上。 我想详细了解工作区,所以我花了几个小时来弄清楚它们在这个版本的VS Code中是如何工作的。 我认为我的研究结果可能会引起社区的...

    我刚刚安装了Visual Studio Code v1.25.1。 在Windows 7 Professional SP1计算机上。 我想详细了解工作区,所以我花了几个小时来弄清楚它们在这个版本的VS Code中是如何工作的。 我认为我的研究结果可能会引起社区的兴趣。

    首先,Microsoft在VS Code文档中将工作空间称为“多根工作空间”。 用简单的英语表示“多文件夹(A.K.A”root“)工作环境。” VS Code工作区只是文件夹的集合 - 您希望的任何集合,您可以按照您希望的任何顺序。 典型的文件夹集合构成了一个软件开发项目。 但是,文件夹集合可用于正在开发软件代码的任何其他内容。

    VS Code处理工作空间的机制有点复杂。 我认为传达我学到的最快捷的方法是给你一套指令,你可以用它来看看你的计算机上的工作空间是如何工作的。 我假设你开始全新安装的VS Code v1.25.1。 如果您使用的是VS Code的生产版本,请不要建议您遵循我的说明,因为您可能会丢失一些或所有现有的VS代码配置! 如果您已经安装了VS Code v1.25.1的TEST版本,并且您愿意丢失已存在的任何配置,则必须执行以下操作才能将VS代码恢复到全新安装状态:

    删除以下文件夹(如果存在):

    C:\Users\%username%\AppData\Roaming\Code\Workspaces (where "%username%" is the name of the currently logged-on user)

    您将向VS Code添加文件夹以创建新工作区。 如果您打算用于创建此新工作区的任何文件夹先前已与VS Code一起使用,请删除将用于创建新工作区的每个文件夹中的“.vscode”子文件夹(如果存在)。

    启动VS Code。 如果显示“欢迎”页面,请将其关闭。 如果显示,则对Pan

    展开全文
  • 深度学习报错一级目录 一级目录 老师让我做ANN去对比一下,以前有很多方法可以做,用 nnet包/RSNNS包/lattice 包等等,之前碍于深度学习环境没有搭好,就没用... ValueError: in user code: C:\Users\Bpbim-01\anaconda3\

    深度学习报错

    一级目录

    老师让我做ANN去对比一下,以前有很多方法可以做,用 nnet包/RSNNS包/lattice 包等等,之前碍于深度学习环境没有搭好,就没用keras,这回可以以使用了,就想用一下.感觉应该不难,但是还是出了问题.
    就是下面这种情况

     Error in py_call_impl(callable, dots$args, dots$keywords) : 
      ValueError: in user code:
    
        C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:571 train_function  *
            outputs = self.distribute_strategy.run(
        C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:951 run  **
            return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
        C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2290 call_for_each_replica
            return self._call_for_each_replica(fn, args, kwargs)
        C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2649 _call_for_each_replica
            return fn(*args, **kwargs)
        C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:531 train_step  **
            y_pred = self(x, training=True)
        C:\Users\Bpbim-01\ana 
    

    我感觉我过程完全没有问题,怎么改都是报错。最后找到了问题,数据输入不对
    在训练集的X需要改成matrix如下:

     train_x <- as.matrix(train_data[,-length(train_data)])
    

    这样就可以了,找了好几个小时,我都要吐血了,也不是我找到了,是以前好像遇到过,类似方法解决了。
    对简单的方法就是使用str()一下数据集,要是显示data.frame应该就是不能运行的。
    说句实话,真想吐槽下R语言做深度学习,哎,报错也看不懂(都是python转译),也查不到,偶尔能查到大概是哪里错了还不知道怎么改,这次报错后期我改的过程中变成了另一种报错,我在stackover flow上面大概查了查,说是数据没转成numpy,问题是我他吗咋知道在R上面改。幸好以前有过类似的经验,麻蛋的。做完这个我就要用python了!

    展开全文
  • Code Server 是什么

    千次阅读 多人点赞 2021-01-28 09:50:06
    1、什么是 code server? code server是coder公司基于微软开源的Visual Studio Code开发的一款产品。 2、code server 的目标是什么? code server 的目标是为开发者构建一个便捷统一的开发环境,让开发者能从任意...

    原文链接:https://www.jiangzhuolin.com/4882.html

    概要

    1、什么是 code server?

    code server 是 coder 公司基于微软开源的 Visual Studio Code 开发的一款产品。

    2、code server 的目标是什么?

    code server 的目标是为开发者构建一个便捷统一的开发环境,让开发者能从任意设备、任意位置通过浏览器来进行代码的编写。从而免去了常规的 IDE 开发流程中的环境搭建的问题。

    3、code server 有哪些优点?

    a、环境统一

    code server 解决的第一个问题就是跨设备的环境一致性。因为 code server 始终运行在一个远程的云端环境,因此他的开发环境始终是一致的,不会出现不同平台或者不同设备运行相同的代码而出现各种问题的情况。

    我相信有不少程序员遇到过类似的问题。比如,同样的代码在 MacOS 上运行正常,在 Windows 上运行报错;或者在同事 A 的电脑上运行正常,而在同事 B 的电脑上运行报错。

    而 code server 解决了这个问题,对于同一个项目的代码开发,不管是谁,运行代码的环境都是 code server 所在的服务器环境,这有效的避免的环境不同带来的问题,让程序员把精力更多地放在代码编写上,而不是去解决各种平台切换带来的问题上。

    b、任意设备

    有时候,有些程序的运行环境或者调度环境要求较高,需要较高的配置,而较高的配置一般都意味着昂贵以及不那么便携,相信肯定有人在开发及运行程序时需要使用专门的工作站设备而不是个人电脑。

    但如果你刚好有事需要出差或者离开岗位,这时有需要修复一个 BUG 时,你带上工作站意味着你需要一直背着一个厚重的 10 斤往上的设备,如果你不带着那么你连修复 BUG 的设备或者环境都没有。还有人可能使用的是台式电脑进行开发,这就更加不具备便携的能力了。

    而使用 code server 也能完全避免此类问题,我们的运行环境位于远程的一个高配置服务器或者云端环境,而我们只需要使用我们的任意带有浏览器的功能连接到网络,打开 code server 的访问地址,就可以编写代码。

    我们可以在手机、平板、电脑等等设备上来进行开发,它更多便携更加方便,而且不需要我们的设备具有高配置的环境。

    c、安全性

    有些产品对代码安全有较高要求。比如需要防止程序员将代码直接 clone 打包带走去了竞争公司,这显然危害巨大。

    而 code server 也可以避免这个问题,因为可以把代码的管理完全只放在 code server 服务器上,程序员不能完整的克隆或者打包完整代码,每个程序员只能访问自己开发的部分代码。这样有效地使产品安全性有了保障。

    4、code server 的缺点?

    a、code server 需要网络

    虽然目前的网络发展已经非常成熟,不管是宽带还是移动互联网都非常方便,但还是不能保证在任何地方都有非常完善的网络环境。如果你没有完好的网络环境,那么写代码本身就变得不可能。

    b、操作便捷性

    由于是在浏览器中进行编辑。因此,部分操作可能无法像在本地的 IDE 中那样方便,比如各种快捷键的使用等。(此处为我体验后补充,code-server 支持大部分与 vs code 一样的快捷键,而且还根据访问平台有不同的适配,比如我使用 MacOS 访问 code-server,那么快捷键就适配了 MacOS 的键盘特征,大赞!不过也有少部分的快捷键与 vs code 不同,比如新建文件的快捷键 code-server 默认没有设置,因为它与浏览器的默认打开新标签页的快捷键冲突了)

    c、稳定性

    由于 code-server 是一个后台服务进程,所以一旦这个进程由于各种原因 DOWN 了,那么所有人的工作将直接停滞。所以,保证服务的稳定性是一个需要考虑的问题。但我觉得不应该是它的缺点,毕竟它是有解的。

    注:以上的这些优缺点仅是本人根据自己的浅显理解总结而来,难免会有理解错误。因此,以上内容仅供参考,也欢迎指正我的错误。

    5、安装环境

    官方推荐至少需要 1 GB Ram 和 2 cores 的机器,可以是物理机器,虚拟机,各种云环境。操作系统推荐 Linux。同时也支持 MacOS 及 FreeBSD.

    本次安装环境是一台虚拟机,配置如下:

    OS: Ubuntu 18.04.1
    CPU: 4 cores
    Memory: 16 GB Ram
    Softwares: curl 7.58.0,code-server 3.5.0
    
    

    安装步骤

    官方提供了一个 shell 脚本便于一键自动化安装过程,不过在国内使用体验还是比较勉强..

    1、使用脚本打印安装过程

    官方脚本提供了一个 –dry-run 的参数,使用这个参数会将该安装脚本安装 code server 所需要的几个步骤都打印出来以供参考,这个脚本会检测你当前的操作系统,并根据不同的操作系统来进行不同的安装过程。

    curl -fsSL <https://code-server.dev/install.sh> | sh -s -- --dry-run
    
    

    如下示例:

    jiangzl@ubuntu:~$ curl -fsSL <https://code-server.dev/install.sh> | sh -s -- --dry-run
    Ubuntu 18.04.5 LTS
    Installing v3.5.0 deb package from GitHub releases.
    + mkdir -p ~/.cache/code-server
    + curl -#fL -o ~/.cache/code-server/code-server_3.5.0_amd64.deb.incomplete -C - <https://github.com/cdr/code-server/releases/download/v3.5.0/code-server_3.5.0_amd64.deb>
    + mv ~/.cache/code-server/code-server_3.5.0_amd64.deb.incomplete ~/.cache/code-server/code-server_3.5.0_amd64.deb
    + sudo dpkg -i ~/.cache/code-server/code-server_3.5.0_amd64.deb
    To have systemd start code-server now and restart on boot:
      sudo systemctl enable --now code-server@$USER
    Or, if you don't want/need a background service you can run:
      code-server
    
    

    可以看到安装过程大概分四步:

    a、创建一个 code-server 的 cache 目录

    b、从 github 上下载安装包程序

    c、使用 dpkg 安装下载的安装包程序

    d、启动服务

    注:如果执行此脚本的过程中出现报错如下,请在当前博客搜索此错误查看解决方案

    curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
    
    

    2、使用脚本安装

    执行如下命令进行安装

    curl -fsSL <https://code-server.dev/install.sh> | sh
    
    

    如下示例:

    jiangzl@ubuntu:~$ curl -fsSL <https://code-server.dev/install.sh> | sh
    Ubuntu 18.04.5 LTS
    Installing v3.5.0 deb package from GitHub releases.
    + mkdir -p ~/.cache/code-server
    + curl -#fL -o ~/.cache/code-server/code-server_3.5.0_amd64.deb.incomplete -C - <https://github.com/cdr/code-server/releases/download/v3.5.0/code-server_3.5.0_amd64.deb>
                                                                               0.1%-#O#- #   #
    
    

    下载过程可能需要一定时间… 没办法.

    3、使用安装包进行安装

    • 下载安装包

    如果你使用脚本安装不方便或者太慢,也可以尝试下载该软件包然后离线安装。

    注意,离线安装的方式需要你根据你要安装的环境选择对应平台及版本的安装包,比如,Ubuntu 使用 .deb 的包安装 3.5.0 版本,则下载如下安装包:

    <https://github.com/cdr/code-server/releases/download/v3.5.0/code-server_3.5.0_amd64.deb>
    
    

    github 各版本下载地址:

    <https://github.com/cdr/code-server/releases>
    
    

    v3.5.0 .deb 安装包百度网盘地址:

    链接: <https://pan.baidu.com/s/1thjmIDY2onWaf3OyxCHGWA>  密码: 9bf4
    
    
    • 安装

    执行如下命令进行安装

    sudo dpkg -i ${file_path}/code-server_3.5.0_amd64.deb
    
    

    其中 ${file_path} 表示你的软件包下载存放的目录,需要替换成自己的软件包所有的目录。

    如下示例

    jiangzl@ubuntu:~$ pwd
    /home/jiangzl
    jiangzl@ubuntu:~$ ls
    code-server_3.5.0_amd64.deb  Desktop  Documents  Downloads  elk  examples.desktop  Music  Pictures  Public  Templates  Videos
    jiangzl@ubuntu:~$ sudo dpkg -i ~/code-server_3.5.0_amd64.deb
    [sudo] password for jiangzl:
    Selecting previously unselected package code-server.
    (Reading database ... 169777 files and directories currently installed.)
    Preparing to unpack .../code-server_3.5.0_amd64.deb ...
    Unpacking code-server (3.5.0) ...
    Setting up code-server (3.5.0) ...
    
    

    到此即安装完成,可以说安装还是非常方便的。

    4、运行 code server

    由于 code server 是一个远程服务。因此,它需要运行一个进程并监听一个端口

    如下示例:

    jiangzl@ubuntu:~$ code-server
    [2020-09-06T17:19:35.484Z] info  Wrote default config file to ~/.config/code-server/config.yaml
    [2020-09-06T17:19:35.486Z] info  Using config file ~/.config/code-server/config.yaml
    [2020-09-06T17:19:35.637Z] info  Using user-data-dir ~/.local/share/code-server
    [2020-09-06T17:19:35.640Z] info  code-server 3.5.0 de41646fc402b968ca6d555fdf2da7de9554d28a
    [2020-09-06T17:19:35.643Z] info  HTTP server listening on <http://127.0.0.1:8080>
    [2020-09-06T17:19:35.643Z] info      - Using password from ~/.config/code-server/config.yaml
    [2020-09-06T17:19:35.643Z] info      - To disable use `--auth none`
    [2020-09-06T17:19:35.643Z] info    - Not serving HTTPS
    
    

    从上面可以看到,code-server 运行并监听了本地的 8080 端口。此时,我们能从 code-server 运行的服务器本地浏览器访问到 code-server 服务,但还不能从其他设备访问到 code-server 服务。

    https://www.jiangzhuolin.com/storage/2020/11/7709e3b07ffe561baa65fe57995394b2.png

    这是因为 code-server 服务默认绑定到 127.0.0.1:8080,如果我们想远程远程 code-server 服务应该怎么做呢?

    很简单,我们只需要给 code-server 运行命令传入如下参数即可:

    jiangzl@ubuntu:~$ code-server --bind-addr=0.0.0.0:8080
    [2020-09-06T17:28:22.822Z] info  Using config file ~/.config/code-server/config.yaml
    [2020-09-06T17:28:22.964Z] info  Using user-data-dir ~/.local/share/code-server
    [2020-09-06T17:28:22.967Z] info  code-server 3.5.0 de41646fc402b968ca6d555fdf2da7de9554d28a
    [2020-09-06T17:28:22.970Z] info  HTTP server listening on <http://0.0.0.0:8080>
    [2020-09-06T17:28:22.970Z] info      - Using password from ~/.config/code-server/config.yaml
    [2020-09-06T17:28:22.970Z] info      - To disable use `--auth none`
    [2020-09-06T17:28:22.970Z] info    - Not serving HTTPS
    
    

    code-server 可使用参数可参考附录部分。

    注:通过命令行参数来配置 code-server 的运行挺方便但不是特别推荐,因为如果我们需要在生产环境部署,可能有很多的配置项,全部都通过命令行来传参控制运行显示比较乱而且不方便管理。建议通过配置文件来进行配置和管理,具体方法请参考下文部分。

    配置体验

    1、配置远程可访问

    code-server 的配置文件默认是在 ~/.config/code-server/config.yaml,当我们使用 code-server 命令默认运行之后就会生成一个位于当前用户 home 目录下的 .config/code-server 目录下的 config.yaml 配置文件。

    如下示例:

    jiangzl@ubuntu:~/.config/code-server$ pwd
    /home/jiangzl/.config/code-server
    jiangzl@ubuntu:~/.config/code-server$ cat config.yaml
    bind-addr: 127.0.0.1:8080
    auth: password
    password: this is a password
    cert: false
    
    

    可以看到 bind-addr 是 127.0.0.1:8080,auth 是 password 方式,password 则生产了默认的,cert 表示未使用 ssl 连接。

    这里我们需要 code-server 可以被远程访问,我们只需要将配置文件改为如下的内容:

    bind-addr: 0.0.0.0:8080
    auth: password
    password: this is a password
    cert: false
    
    

    https://www.jiangzhuolin.com/storage/2020/11/427bb6ef40b771d1b8ac0cc25664620f.png

    保存退出,再使用 code-server 运行试试

    jiangzl@ubuntu:~$ code-server
    [2020-09-06T17:40:14.656Z] info  Using config file ~/.config/code-server/config.yaml
    [2020-09-06T17:40:14.800Z] info  Using user-data-dir ~/.local/share/code-server
    [2020-09-06T17:40:14.803Z] info  code-server 3.5.0 de41646fc402b968ca6d555fdf2da7de9554d28a
    [2020-09-06T17:40:14.805Z] info  HTTP server listening on <http://0.0.0.0:8080>
    [2020-09-06T17:40:14.805Z] info      - Using password from ~/.config/code-server/config.yaml
    [2020-09-06T17:40:14.805Z] info      - To disable use `--auth none`
    [2020-09-06T17:40:14.806Z] info    - Not serving HTTPS
    
    

    注:如果你不想先运行一次 code-server 生成默认配置文件,也可以手动创建一个 ~/.config/code-server 目录并创建 config.yaml 文件,并加入配置内容即可。

    如下示例:

    mkdir -p ~/.config/code-server
    cd ~/.config/code-server
    vim config.yaml
    
    

    2、配置系统管理进程

    在命令行执行如下命令进行系统服务管理注册

    sudo systemctl enable --now code-server@$USER
    
    

    如下示例

    jiangzl@ubuntu:~/.config/code-server$ sudo systemctl enable --now code-server@$USER
    [sudo] password for jiangzl: 
    Created symlink /etc/systemd/system/default.target.wants/code-server@jiangzl.service → /usr/lib/systemd/system/code-server@.service.
    
    

    然后,就可以使用如下命令来管理 code-server 的服务了

    jiangzl@ubuntu:~/.config/code-server$ sudo systemctl status code-server@$USER
    ● code-server@jiangzl.service - code-server
       Loaded: loaded (/usr/lib/systemd/system/code-server@.service; indirect; vendor preset: enabled)
       Active: failed (Result: exit-code) since Sun 2020-09-06 10:58:23 PDT; 2min 54s ago
      Process: 125534 ExecStart=/usr/bin/code-server (code=exited, status=1/FAILURE)
     Main PID: 125534 (code=exited, status=1/FAILURE)
    Sep 06 10:58:23 ubuntu systemd[1]: code-server@jiangzl.service: Service hold-off time over, scheduling restart.
    Sep 06 10:58:23 ubuntu systemd[1]: code-server@jiangzl.service: Scheduled restart job, restart counter is at 5.
    Sep 06 10:58:23 ubuntu systemd[1]: Stopped code-server.
    Sep 06 10:58:23 ubuntu systemd[1]: code-server@jiangzl.service: Start request repeated too quickly.
    Sep 06 10:58:23 ubuntu systemd[1]: code-server@jiangzl.service: Failed with result 'exit-code'.
    Sep 06 10:58:23 ubuntu systemd[1]: Failed to start code-server.
    
    
    jiangzl@ubuntu:~/.config/code-server$ sudo systemctl status code-server@$USER 
    ● code-server@jiangzl.service - code-server
       Loaded: loaded (/usr/lib/systemd/system/code-server@.service; indirect; vendor preset: enabled)
       Active: active (running) since Sun 2020-09-06 11:02:16 PDT; 1min 24s ago
     Main PID: 126156 (node)
        Tasks: 22 (limit: 19127)
       CGroup: /system.slice/system-code\\x2dserver.slice/code-server@jiangzl.service
               ├─126156 /usr/lib/code-server/lib/node /usr/lib/code-server
               └─126174 /usr/lib/code-server/lib/node /usr/lib/code-server
    Sep 06 11:02:16 ubuntu code-server[126156]: [2020-09-06T18:02:16.866Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:02:16 ubuntu code-server[126156]: [2020-09-06T18:02:16.882Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:02:36 ubuntu code-server[126156]: [2020-09-06T18:02:36.936Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:02:36 ubuntu code-server[126156]: [2020-09-06T18:02:36.953Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:02:57 ubuntu code-server[126156]: [2020-09-06T18:02:57.000Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:02:57 ubuntu code-server[126156]: [2020-09-06T18:02:57.015Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:03:17 ubuntu code-server[126156]: [2020-09-06T18:03:17.082Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:03:17 ubuntu code-server[126156]: [2020-09-06T18:03:17.100Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:03:37 ubuntu code-server[126156]: [2020-09-06T18:03:37.150Z] warn  discarding socket connection: vscode is not running
    Sep 06 11:03:37 ubuntu code-server[126156]: [2020-09-06T18:03:37.169Z] warn  discarding socket connection: vscode is not running
    
    

    常用命令

    sudo systemctl status code-server@$USER # 查看 code-server 进程状态
    sudo systemctl start code-server@$USER    # 启动 code-server 进程
    sudo systemctl stop code-server@$USER    # 停止 code-server 进程
    sudo systemctl restart code-server@$USER    # 重启 code-server 进程
    
    

    3、远程访问

    我从局域网内的另一台设备访问 code-server 服务,出现如下页面,表示访问成功。

    https://www.jiangzhuolin.com/storage/2020/11/ab7655359382311cd32c179e53c1daff.png

    密码是 ~/.config/code-server/config.yaml 文件中生成的,从文件中拷贝密码然后输入并提交,出现如下的界面。啊,是不是有内味儿了…

    https://www.jiangzhuolin.com/storage/2020/11/75cadf9760cb6d16f8c8989570ae02d1.png

    注:

    1、密码是 32 位的加密密文,请自行妥善保存,将用于安全认证。你也可以自己生产密文并在配置文件中进行配置。

    2、右下解的通知消息可得知,如果是非 SSL 的方式,则 code-server 的功能将有部分限制,这也是安全性的考虑。

    https://www.jiangzhuolin.com/storage/2020/11/003bc43029d3558714b0a3aa797c9eb8.png

    4、hello-world 初体验

    这里以写一个 python hello word 来进行初体验。

    a、安装 python 扩展

    https://www.jiangzhuolin.com/storage/2020/11/83327807c4752e0d2e63b8dc3de60b15.png

    b、创建一个 hello-world.py 文件

    https://www.jiangzhuolin.com/storage/2020/11/58640ad3e3e85a37605a17bb7367858b.png

    按 command + s (MacOS)保存文件,可以看到保存文件的位置是在远程的服务器上。

    c、编写代码

    在代码编辑区编写如下代码

    # -*- coding:utf8 -*-
    print('hello world!')
    
    

    d、运行代码

    右键编辑区,选择 “Run Python File in Terminal”,即可看到在下方的 TERMINAL 窗口输出了 hello world!

    https://www.jiangzhuolin.com/storage/2020/11/b886c9a32024c647e7ee5b98a718f26d.png

    总结

    1、个人初体验的感觉是非常棒的,code-server 做到了非常贴近原生 vs code IDE 的使用体验,而这一切你只需要在浏览器上就可以完成,它真的是非常非常的酷!!!

    2、如果你是个人使用,只是为了给自己提供一个方便的可远程访问的开发环境。那么你可以配合内网穿透来实现外网访问。IT’S SO COOOOOL! TRY IT!

    比如,下面是我通过我的 ipad 上的 Chrome 浏览器访问 code-server 并运行我刚才创建的 hello-world.py 程序的截图,是不是非常的棒呢!

    https://www.jiangzhuolin.com/storage/2020/11/3e4b25d09821875cdc8a65064fb89076.png

    3、如果你是企业级的使用,强烈推荐使用 SSL 配置,这是安全性上必不可少的一环!

    附录

    参考:

    <https://github.com/cdr/code-server/blob/v3.5.0/doc/guide.md>
    
    

    code-server 命令:

    jiangzl@ubuntu:~$ code-server --help
    [2020-09-06T17:21:43.124Z] info  Using config file ~/.config/code-server/config.yaml
    code-server 3.5.0 de41646fc402b968ca6d555fdf2da7de9554d28a
    Usage: code-server [options] [path]
    Options
          --auth                The type of authentication to use. [password, none]
          --password            The password for password authentication (can only be passed in via $PASSWORD or the config file).
          --cert                Path to certificate. Generated if no path is provided.
          --cert-key            Path to certificate key when using non-generated cert.
          --disable-telemetry   Disable telemetry.
       -h --help                Show this output.
          --open                Open in browser on startup. Does not work remotely.
          --bind-addr           Address to bind to in host:port. You can also use $PORT to override the port.
          --config              Path to yaml config file. Every flag maps directly to a key in the config file.
          --socket              Path to a socket (bind-addr will be ignored).
       -v --version             Display version information.
          --user-data-dir       Path to the user data directory.
          --extensions-dir      Path to the extensions directory.
          --list-extensions     List installed VS Code extensions.
          --force               Avoid prompts when installing VS Code extensions.
          --install-extension   Install or update a VS Code extension by id or vsix. The identifier of an extension is `${publisher}.${name}`. To install a specific version provide `@${version}`. For example: 'vscode.csharp@1.2.3'.
          --enable-proposed-api Enable proposed API features for extensions. Can receive one or more extension IDs to enable individually.
          --uninstall-extension Uninstall a VS Code extension by id.
          --show-versions       Show VS Code extension versions.
          --proxy-domain        Domain used for proxying ports.
       -n --new-window          Force to open a new window. (use with open-in)
       -r --reuse-window        Force to open a file or folder in an already opened window. (use with open-in)
    -vvv --verbose             Enable verbose logging.
    
    
    展开全文
  • HTTP协议状态码详解(HTTP Status Code

    千次阅读 2021-01-14 16:15:47
    服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置...
  • 1、User 和System版本的区别是你的系统登录的是管理员账号,也就是Administrator就用System版本,否则用user版本。 查看登录账号,在系统开始菜单单击,在弹出的菜单最上面右侧图片下面,就是用户名,如果是...
  • Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件...
  • **问题描述:**在用...错误1: systemctl服务部署错误:code=exited, status=217/USER 具体看了https://blog.csdn.net/vector_yuge/article/details/74838634这篇文章,执行了:mysqld --initialize,服务还是启动失
  • “工作区设置”仅适用于当前目录的VS Code的设置。注:“工作区设置”会覆盖“用户设置”。用户设置和工作区设置VS Code提供了两种设置方式:- 用户设置: 这种方式进行的设置,会应用于该用户打开的所有工程;- ...
  • 在程序设计中,abs是什么函数?,程序中ABS代表什么意思?在程序设计中,abs是什么函数?-,程序中ABS代表什么意思?匿名网友:matlab中的abs(x)是去绝对值的函数例如:x=-1.23abs(x)ans1.23以上即是取了-1.23的绝对值...
  • 今天再次进行.NET Core应用部署的时候,自定义一个用于开机启动监视应用的service,怎么都启动不了,报错如下: 原来指定的用户错误,在我们的service...导致不明白这个User代表的究竟是个什么东东!!! ...
  • } /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //如果没有APP,则会进入死循环,LED灯以300ms交替闪烁 HAL_GPIO_...
  • 遇到一个问题,是国际化的配置文件中没有找到相关的属性 配置都是正常得,在resources下创建一个文件夹i18n下有国际化文件 并在application.yml文件中配置了 spring: # 资源信息 messages: ...
  • Fatal signal 6 (SIGABRT), code 0 (SI_USER) in tid 2377 (Thread-2), pid 2335
  • 关于安卓 table xxx has no column named userpassword(code 1 SQL_ERROR)的解决方法!修改超过10小时的坑!希望大家看了这篇文章之后不要再和我一样踩坑了 在对安卓数据库进行操作的时候,发现我的数据一直无法插入...
  • 使用VSCode编译器提交代码到gitlab,编译器提示“Make sure you configure your 'user.name' and 'user.email' in git.”,如
  • STM32 HAL库 基于U盘模式升级固件 - IAP

    千次阅读 2021-01-29 16:41:47
    分别用来保存 Bootloader 和 Application 程序,这里有两个有两个 FLASH 起始地址 0x8000000 和 0x8008000: 为什么是 0x8000000 这个地址呢?而不是其他地址呢?这是由 M3 内核硬件上的设计就已经这么做了,人为设计...
  • Android11.0(R) MTK user版本打开MtkLog功能

    千次阅读 2021-12-16 14:21:25
    MTKLog 功能很好用,在 userdebug 和 eng 版本中可以帮助我们分析问题。 今天来搞一下,在 User 版本中也启用这个功能。 修改清单 device/mediatek/system/common/mtklog/mtklog-config-bsp-eng.prop device/...
  • 摘要Http状态码(HTTP Status Code)是用来表示网页HTTP响应状态中的3位数字代码。(也就是我们在打开某些网址的提示的比如403,404之类的代码)Http状态码(HTTP Status Code)是用来表示网页HTTP响应状态中的3位数字代码...
  • Mybatis中关于resultMap

    2021-12-08 16:43:16
    目录 1.association(多对一 关联 ) 1.1复杂的类型关联 1.2属性: 1.3依赖: 1.4实体类: 1.5mapper接口: 1.6 UserMapper.xml: 1.7测试: 2.collection (一对多 集合) ...3.3user.projperties 1.associ
  • "user1" } 11.1.3 返回参数 1)出参表 序号 输出参数 类型 备注 1 code Int 否 返回码,0:成功 其它:失败 2 message String 否 描述 3 data object 是 返回信息实体(成功时不为空) 3.1 userId int 否 用户编号 ...
  • java中的vo是什么

    千次阅读 2021-03-05 18:19:17
    ######回复 @求是科技 : 表单,不是requestBody######发送是... public ResultObject login(@RequestBody UserLogin user) { ……} 然后,UserLogin 是一个javaBean######你这个是mybatis吧 我说的是mvc表单到模型的...
  • TaskGroup结构说明: // source code: src/bthread/task_group.h class TaskGroup { public: // 在前台创建一个bthread,并且立即执行,对应于外部接扣bthread_start_urgent接口 // 将当前的bthread压入待执行队列...
  • public class UserDaoImpl implements UserDao{ @Override public User getLoginUserInfo(Connection conn, String userCode) { PreparedStatement pstmt = null; ResultSet rs = null; User user = null; if (conn...
  • 文章目录现象2. 分析定位3. 解决方案 现象 nacos配置文件中有值,但是代码初始化时未赋上值 2. 分析定位 既然nacos已经配置了,获取不到只能存在二种情况, 第一种:获取的不是最新的nacos的配置 ...
  • 之前在... Visual Studio Code Remote - SSH扩展允许你在任何远程机器、虚拟机或具有运行SSH服务器的容器上打开远程文件夹,并充分利用VS Code的功能集。连接到服务器后...
  • VSCode中插件Code Spell Checker

    千次阅读 2021-03-19 19:44:27
    Code Spell Checker 是在VSCode中的一款插件,能够帮助我们检查单词拼写是否出现错误,检查的规则遵循 camelCase (驼峰拼写法)。 安装方法 打开VSCode 在应用商店中搜索Code Spell Checker。 点击安装,...
  • /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code -------------------------...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 945,149
精华内容 378,059
关键字:

usercode是什么