天道酬勤,学无止境

使用 Julia Plots 访问后端特定功能(Accessing backend specific functionality with Julia Plots)

问题

Plots简单而强大,但有时我想对情节的各个元素进行更多控制以微调其外观。

是否可以直接更新后端的绘图对象?

例如,对于默认的pyplot后端,我试过

using Plots
p = plot(sin)
p.o[:axes][1][:xaxis][:set_ticks_position]("top")

但情节没有改变。 之后调用po[:show]()也无济于事。

换句话说:有没有办法将PyPlot界面用于最初使用Plots创建的Plots

编辑:

保存图形时,对PyPlot对象的更改变得可见(也在 gui 中):

using Plots
using PyPlot
p = Plots.plot(sin, top_margin=1cm)
gui() # not needed when using the REPL
gca()[:xaxis][:set_ticks_position]("top")
PyPlot.savefig("test.png")

在这里,我使用了po[:axes][1] == gca() 。 必须设置top_margin=1cm因为绘图区域不会自动调整(对于我的实际微调,这无关紧要)。

只要仅使用PyPlot接口,这也适用于后续更新。 例如,在执行以下命令后,除了顶部的标签外,绘图还会有一个红色的右边框:

gca()[:spines]["right"][:set_color]("red")
PyPlot.savefig("test.png")

然而,当使用像plot!(xlabel="foo")这样的Plots命令时,所有以前使用PyPlot所做的更改PyPlot被覆盖(这并不奇怪)。

剩下的问题是如何以交互方式更新 gui,而不必显式调用PyPlot.savefig

回答1

否 - 绘图是 Plots 对象,而不是 PyPlot 对象。 在您的具体示例中,您可以执行plot(sin, xmirror = true )。

回答2

我正在尝试做同样的事情,但没有找到更新现有图的解决方案。 但这是部分答案:您可以从 PyPlot 轴对象中查询信息

julia> Plots.plot(sin, 1:4)

julia> Plots.PyPlot.plt[:xlim]()
(1.0,4.0)

julia> Plots.plot(sin, 20:24)

julia> ax = Plots.PyPlot.plt[:xlim]()
(20.0,24.0)

它得到更新。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Accessing backend specific functionality with Julia Plots
    Plots is simple and powerful but sometimes I would like to have a little bit more control over individual elements of the plot to fine-tune its appearance. Is it possible to update the plot object of the backend directly? E.g., for the default pyplot backend, I tried using Plots p = plot(sin) p.o[:axes][1][:xaxis][:set_ticks_position]("top") but the plot does not change. Calling p.o[:show]() afterwards does not help, either. In other words: Is there a way to use the PyPlot interface for a plot that was initially created with Plots? Edit: The changes to the PyPlot object become visible (also in
  • Julia PyPlot:绘制 3D 表面,将表面颜色作为表面梯度的范数(Julia PyPlot: plot 3D surface with as face colors the norm of surface gradient)
    问题 有谁知道如何使用 Julia 的 Pyplot 绘制 3D 表面,例如将表面梯度的范数作为面部颜色? 类似于 Python 的这个主题:Color matplotlib plot_surface command with surface gradient 回答1 我看到了这个,我只需要让它工作。 使用 PyPlot 后端,它几乎被 Plots.jl 支持开箱即用。 我只需要换一个自定义 matplotlib 着色器来应用不同的 z 矩阵。 您会注意到我正在访问 numpy 的梯度函数(通过PyCall导入),并且我正在包装梯度矩阵G以便它不会被分成列。 总而言之......比python示例简单得多! using Plots; pyplot(); x = y = LinRange(-5.0, 5.0, 30) z = sin(sqrt(Float64[xi^2+yi^2 for xi = x, yi = y])) surface(x, y, z, alpha = 0.7) using PyCall Gx, Gy = Plots.pynb.pymember(:gradient)(z) surface(x, y, z, alpha = 0.8, zcolor = wrap(G))
  • 具有后端特定操作符的持久化示例(Example of persistent with backend-specific operator)
    问题 我想持久地做一个 LIKE 查询,我正在使用 sqlite。 yesod 书给出了使用原始 SQL 来执行此操作的示例,但是说: 由于 Persistent 0.6 中添加的一项功能,您可以直接在正常语法中表达 LIKE 运算符,该功能允许后端特定的运算符 不过,我找不到这样的例子。 有人会举个例子说明将像 LIKE 这样的特定运算符与selectList或等效的东西一起使用selectList什么吗? 谢谢! 回答1 我知道我以前用过它,但我不记得在哪里。 无论如何,一个简单的例子(未经 GHC 检查,抱歉)是: selectList [Filter PersonName (Left $ PersistText "%Michael%") (BackendSpecificFilter "ILIKE")] [] 显然你可以创建一些辅助函数,例如: icontains field val = Filter field (Left $ PersistText $ T.concat ["%", val, "%"]) (BackendSpecificFilter "ILIKE") selectList [Personname `icontains` "Michael"] []
  • 是否有用于 Java 反射的通用“后端”库(Is there a general “backend” library for Java reflection)
    问题 我目前正在使用一种用 Java 实现的专门的解释型编程语言。 作为该语言的一小部分,我想添加调用 Java 的功能。 在我深入研究反射的所有细节之前,我想知道是否有人知道一个通​​用库来执行反射调用 Java 代码的“后端”部分。 也就是说,我将一个字符串(我定义了语法)解析成一些表示 Java 方法调用(或构造函数或字段访问)的数据结构,然后将该数据结构传递给调用该调用并返回结果的库。 特别是,我希望它已经处理了我不想弄清楚的所有边缘情况: 根据参数类型自动选择正确的方法(例如智能 Class.getDeclaredMethod()) 处理数组和普通对象引用的区别等等 我花了一点时间研究 JVM 上动态语言的实现,但这些实现通常比我想要的复杂得多,或者针对特定语言进行了高度优化。 另一种选择是将我的语法转换为某种动态语言的字符串,然后用 Rhino 或其他东西调用它,但这比我正在寻找的开销要多一些。 谢谢! 回答1 只是对您自己的答案的评论; 实际上 beanutils 支持在给定一组参数的情况下获得“接近匹配”。 参见 getMatchingAccessibleMethod() BeanUtils 真的很强大,有很多用于检查类的实用方法。 相同的支持自然可用于构造函数。 回答2 尝试 FEST 反射模块。 这是一种进行 Java 反射的流畅方式。 例如: String
  • 本地 React 前端,Django REST 框架后端(在 CORS 下访问 CSRF cookie 时遇到问题)(Local React Frontend, Django REST Framework Backend (Trouble accessing CSRF cookie under CORS))
    问题 我正在创建一个带有 React 前端和 Django REST Framework 后端的 Web 应用程序。 由于某些情况,我必须在本地开发 React 前端,而后端服务器位于远程位置。 后端服务器要求我在登录后为每个 POST 使用 CSRF 令牌,并且我应该能够从后端发送的 cookie 中检索 csrftoken。 我已经验证 cookie 确实通过网络发送并以以下形式包含在响应标头中: Set-Cookie:csrftoken=******; Domain=localhost; expires=Sat, 09-Dec-2017 18:50:56 GMT; Max-Age=31449600; Path=/ 不幸的是,由于前端(localhost)的域和后端(remote.com)的域不同,浏览器忽略了这个set-cookie header,我无法访问它。 如果我启用 CORS_ALLOW_CREDENTIALS(并将 localhost 指定为接受域),并从前端使用 withCredentials,则 cookie 确实设置但在 remote.com cookie 存储下,在这种情况下,由于同源,我仍然无法访问它cookie 访问策略。 如何访问此 csrftoken cookie? 或者我应该让 Django 将 csrftoken 作为身体的一部分发送到某个地方?
  • Haproxy基础知识 -运维小结
    开源软件负载均衡器现在常用的三大开源软件负载均衡器分别是Nginx、LVS、Haproxy。 在之前的文章中已经对比了这三个负载均衡软件, 下面根据自己的理解和使用经验, 再简单说下这三个负载均衡软件各自特点:LVS负载均衡的特点1) 抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低 2) 工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。 3) 稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived) 4) 应用范围比较广,可以对所有应用做负载均衡; 5) 不支持正则处理,不能做动静分离。 6) 支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接) 7) 配置 复杂,对网络依赖比较大,稳定性很高。Ngnix负载均衡的特点 1) 工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构; 2) Nginx对网络的依赖比较小,理论上能ping通就就能进行负载功能; 3) Nginx安装和配置比较简单,测试起来比较方便; 4) 也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发; 5) 对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。 6)
  • 多个进程访问 Django db 后端; 直到手动调用 _commit 才会显示记录(Multiple processes accessing Django db backend; records not showing up until manually calling _commit)
    问题 我有一个 Django 项目,其中多个进程正在访问后端 mysql db。 一个进程正在创建记录,而第二个进程正在尝试读取这些记录。 我遇到了一个问题,即在我手动调用 connection._commit() 之前,尝试读取记录的第二个进程实际上无法找到记录。 之前有人问过这个问题:caching issues in MySQL response with MySQLdb in Django OP 表示他解决了问题,但没有完全解释如何解决。 任何人都可以对此有所了解吗? 我希望能够在不手动调用 _commit() 的情况下访问记录。 谢谢, 阿西夫 回答1 他说: Django 的自动提交不是数据库中的实际自动提交。 因此,您必须确保在数据库级别设置自动提交。 否则,由于事务隔离,进程将不会看到不同进程(不同连接)所做的更改,直到完成提交。 AFAIK 这不是一个 Django 问题,除了关于 Django autocommit != db autocommit 的文档中缺乏清晰性。 更新:从 MySQL 文档中稍微解释一下: REPEATABLE READ 是 InnoDB 的默认隔离级别。 对于一致性读取,与 READ COMMITTED 隔离级别有一个重要区别:同一事务内的所有一致性读取都读取第一次读取建立的快照。 (我的重点。) 因此,使用 REPEATABLE
  • 用 Keepalived+HAProxy 实现高可用负载均衡的配置方法
    1. 概述软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技术。Keepalived和HAProxy是众多软负载技术中的两种,其中Keepalived既可以实现负载均衡也可以实现高可用,而HAProxy则更加专注于提供高性能TCP和HTTP反向代理和负载均衡能力。1.1 KeepalivedKeepalived工作在OSI模型中的四层传输层。最初它是为了管理并监控Linux虚拟服务器(LVS)集群中各服务节点的状态,后来又加入了路由冗余协议(VRRP)来实现高可用功能,所以Keepalived除了可以管理配置LVS外,还可以作为Nginx、HAProxy等的高可用解决方案。Keepalived同时运行于主服务器(Master)和备服务器(Backup)之上,所有的服务器上运行的Keepalived之间通过VRRP交互,VRRP设计目的是为了解决静态路由单点故障问题,保证个别节点宕机时,整个网络可以不间断的运行。Keepalived不但可以实现主备服务器的高可用性,同时还可以管理LVS实现后端服务器的负载均衡并进行后端服务器节点的健康检查。它启动核心进程时读取keepalived.conf配置文件。在主服务器上keepalived进程按照配置文件配置的负载均衡策略开启LVS转发并对后端服务进行健康检查。利用VRRP协议主服务器周期性的发送广播至备服务器
  • Varnish代理缓存详解
    Varnish理论知识一、Varnish 简介 Varnish 是一款高性能且开源的反向代理服务器和 HTTP 加速器,其采用全新的软件体系机构,和现在的硬件体系紧密配合,与传统的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等诸多优点,很多大型的网站都开始尝试使用 varnish 来替换 squid,这些都促进 varnish 迅速发展起来。挪威的最大的在线报纸 Verdens Gang(vg.no) 使用 3 台 Varnish 代替了原来的 12 台 Squid,性能比以前更好,这是 Varnish 最成功的应用案例。目前,Varnish可以在FreeBSD6.0/7.0、solaris、 Linux2.6内核上运行。二、Varnish与Squid的对比下面是Varnish与Squid之间的相同点。都是一个反向代理服务器。都是开源软件。下面是它们的不同点,也是Varnish的优点。Varnish的稳定性很高。两者在完成相同负荷的工作时,Squid服务器发生故障的几率要高于Varnish,因为Squid需要经常重启。Varnish访问速度更快。Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而Squid是从硬盘读取缓存数据,因此Varnish在访问速度方面会更快。Varnish可以支持更多的并发连接
  • 实操教程丨如何在K8S集群中部署Traefik Ingress Controller
    在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责。Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给该集群中运行的服务。这与Ingress控制如何将外部流量路由到集群有异曲同工之妙。接下来,我们举一个实际的例子来更清楚的说明Ingress的概念。首先,想象一下在你的Kubernetes集群中有若干个微服务(小型应用程序之间彼此通信)。这些服务能够在集群内部被访问,但我们想让我们的用户从集群外部也能够访问它们。因此,我们需要做的是使用反向代理将每个HTTP(S)(例如,service.yourdomain.com)路由与相应的后端关联,并在该服务的不同实例之间(如,pod)进行负载均衡。与此同时,由于Kubernetes的性质会不断发生变化,因此我们希望跟踪服务后端的更改,以便能够在添加或删除新Pod时将这些HTTP路由重新关联到新Pod实例。使用Ingress资源和关联的Ingress Controller,你可以实现以下目标:将你的域app.domain.com指向你的私有网络中的微服务应用程序将路径domain.com/web指向你的私有网络中的微服务web将你的域backend.domain.com指向你的私有网络中的微服务后端,并在该微服务的多个实例之间(Pod)进行负载均衡现在,你理解了Ingress的重要性
  • 用 Keepalived+HAProxy 实现高可用负载均衡的配置方法
    1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技术。Keepalived和HAProxy是众多软负载技术中的两种,其中Keepalived既可以实现负载均衡也可以实现高可用,而HAProxy则更加专注于提供高性能TCP和HTTP反向代理和负载均衡能力。 1.1 Keepalived Keepalived工作在OSI模型中的四层传输层。最初它是为了管理并监控Linux虚拟服务器(LVS)集群中各服务节点的状态,后来又加入了路由冗余协议(VRRP)来实现高可用功能,所以Keepalived除了可以管理配置LVS外,还可以作为Nginx、HAProxy等的高可用解决方案。 Keepalived同时运行于主服务器(Master)和备服务器(Backup)之上,所有的服务器上运行的Keepalived之间通过VRRP交互,VRRP设计目的是为了解决静态路由单点故障问题,保证个别节点宕机时,整个网络可以不间断的运行。 Keepalived不但可以实现主备服务器的高可用性,同时还可以管理LVS实现后端服务器的负载均衡并进行后端服务器节点的健康检查。它启动核心进程时读取keepalived.conf配置文件。在主服务器上keepalived进程按照配置文件配置的负载均衡策略开启LVS转发并对后端服务进行健康检查
  • Nginx和Haproxy负载均衡小结
    Nginx和Haproxy负载均衡小结 Nginx Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。 Nginx因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名。业界一致认为它是Apache2.2+mod_proxy_balancer的轻量级代替者,不仅是因为响应静态页面的速度非常快,而且它的模块数量达到Apache的近2/3。对proxy和rewrite模块的支持很彻底,还支持mod_fcgi、ssl、vhosts ,适合用来做mongrel clusters的前端HTTP响应。 Nginx专为性能优化而开发,可以支持高并发连接。性能是其最重要的考量,实现上非常注重效率,处理响应请求很快 。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。 Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术
  • Matplotlib图未显示在Mac OSX中?(Matplotlib plots not showing up in Mac OSX?)
    问题 我正在运行Mac OSX 10.5.8。 我使用macports安装了matplotlib。 我从matplotlib画廊获得了一些像这样的示例,而没有做任何修改: http://matplotlib.sourceforge.net/examples/api/unicode_minus.html 我运行它,没有错误,但是图片没有显示。 在Linux Ubuntu中,我明白了。 您知道这里可能出什么问题吗? 回答1 我也可以在这方面进行验证。 要解决,这是我所做的 sudo port install py25-matplotlib +cairo+gtk2 sudo port install py26-matplotlib +cairo+gtk2 另外,我们需要将默认后端更改为基于GUI的后端。 编辑文件~/.matplotlib/matplotlibrc ,然后添加: backend: GTKCairo 另外,您可以尝试以下操作,这可能使您不需要GTK或Cairo后端。 编辑~/.matplotlib/matplotlibrc并添加: backend: MacOSX 安装了具有这些变体的端口后,它也可以正常工作,但是不需要X11。 顺便说一句,我看到的错误如下: /opt/local/Library/Frameworks/Python.framework/Versions/2
  • 缓存varnish配置详解
    一 工作原理在当前主流的Web服务架构体系中,Cache担任着越来越重要的作用。常见的基于浏览器的C/S架构,Web Cache更是节约服务器资源的关键。而最近几年由FreeBSD创始人之一Kamp开发的varnish更是一个不可多得的Web Cache Server。严格意义上说,Varnish是一个高性能的反向代理软件,只不过与其出色的缓存功能相比,企业更愿意使用其搭建缓存服务器。同时,由于其工作在Web Server的前端,有一部分企业已经在生产环境中使用其作为旧版本的squid的替代方案,以在相同的服务器成本下提供更好的缓存效果,Varnish更是作为CDN缓存服务器的可选服务之一。Varnish主要有以下几点特性:1.缓存位置:可以使用内存也可以使用磁盘。如果要使用磁盘的话推荐SSD做RAID12.日志存储:日志也存储在内存中。存储策略:固定大小,循环使用3.支持虚拟内存的使用。4.有精确的时间管理机制,即缓存的时间属性控制。5.状态引擎架构:在不同的引擎上完成对不同的缓存和代理数据进行处理。可以通过特定的配置语言设计不同的控制语句,以决定数据在不同位置以不同方式缓存。类似于netfilter中的钩子,在特定的地方对经过的报文进行特定规则的处理。6.缓存管理:以二叉堆格式管理缓存数据,做到数据的及时清理。二 基本架构1. 状态引擎2.内部处理流程三 配置详解1. 简单安装
  • 高并发Haproxy压力测试与优化之道
    压力测试--压测及调优 HAProxy 实现 200 万并发 SSL 连接的过程先观察上面截图,可以看到两个关键信息: • 这台机器已经建立了 2.3 万个 TCP 连接• 使用内存大约在 22G。测试目标 我们要测试的组件是 HAProxy 1.6 版。生产环境是在 4 核 30 G 的机器上运行该软件,当前所有的连接都是非 SSL 的。测试目标有两方面: 当将整个负载从非 SSL 连接转移到 SSL 连接时,CPU 使用率增加的百分比。CPU 的使用率肯定会增加,这是由于 5 次握手的加长和数据包加密的开销所带来。 其次,希望能够测试单个 HAProxy 每秒请求数和最大并发连接数的上限组件和配置 • 使用多台客户端机器来执行 HAProxy 压力测试。• 有各种配置的 HAProxy 1.6 的机器 4核,30G 16核,30G 16核,64G• 相关后端服务器,用于支持所有并发访问。HTTP 和 MQTT 我们的整个基础设施支持两种协议:• HTTP• MQTT在我们的技术栈中,没有使用 HTTP 2.0,因此在 HTTP 上没有长连的功能。所以在生产环境中,单个 HAProxy 机器(上行 + 下行)的最大数量的 TCP 连接在(2 * 150k)左右。虽然并发连接数量相当低,但每秒请求的数量却相当高。另一方面,MQTT 是一种不同的通信方式
  • Webpack后端?(Webpack for back-end?)
    问题 我只是想知道,我开始将Webpack用于一个新项目,到目前为止一切正常。 我几乎会说我比以前使用过的Grunt更喜欢它。 但是现在我很困惑如何以及如何在Express Express后端上使用它? 看,我正在创建一个带有前端(ReactJS)和后端(ExpressJS)的应用程序。 该应用程序将在Heroku上发布。 现在看来,我也应该将Webpack与ExpressJS一起使用,以通过一个命令(前端和后端)启动并运行该应用程序。 但是写此博客文章http://jlong​​ster.com/Backend-Apps-with-Webpack--Part-I的人似乎使用Webpack将所有后端js文件捆绑在一起,在我看来,这确实没有必要。 为什么要捆绑我的后端文件? 我想我只想运行后端,观察后端文件中的更改,并仅将Webpack的其余功能用于前端。 你们如何捆绑前端,但同时运行后端的nodejs部分? 还是有充分的理由将后端文件与Webpack捆绑在一起? 回答1 为什么在节点后端上使用Webpack 如果我们谈论的是React和Node App,则可以构建同构的React App。 而且,如果您在客户端的React应用程序中使用import ES6模块,也可以-它们由客户端的webpack捆绑在一起。 但是问题出在使用相同的React模块的服务器上
  • KrakenD网关V1.0.0文档初步翻译
    1. 入门 1. KrakenD简介 KrakenD是高性能的开源API网关。 它的核心功能是创建一个API,该API充当许多微服务到单个端点的聚合器,为您自动完成繁重的工作:聚合,转换,过滤,解码,限制,身份验证等。 KrakenD**不需要编程,**因为它提供了创建端点的声明方式。它具有良好的结构和层次结构,可以使用社区或内部开发的即插即用中间件来扩展其功能。 KrakenD专注于成为一个纯净的API网关,不与HTTP传输层耦合,并且自2017年初以来已在欧洲的大型Internet企业中投入生产。 2. 为什么要使用API网关? 当API内容的使用者(尤其是微服务中的使用者)查询后端服务时,其微服务响应的大小和复杂性会给实现带来很多复杂性和负担。 KrakenD是位于客户端和所有源服务器之间的API网关,添加了一个新层,该层消除了客户端的所有复杂性,仅向它们提供UI所需的信息。 KrakenD可以将许多来源聚合为单个端点,并允许您对响应进行分组,包装,转换和收缩。此外,它支持多种中间件和插件,使您可以扩展功能,例如添加OAuth授权或安全层(SSL,证书,HTTP严格传输安全性,Clickjacking保护,HTTP公钥固定,MIME嗅探预防,XSS保护)。 KrakenD是用Go编写的,支持多种平台,并且基于KrakenD框架。 一个实际的例子 移动开发人员需要构建一个首页
  • HAproxy指南之haproxy配置详解1(理论篇)
    HAProxy主要提供两个功能:http协议反向代理(不提供缓存功能)、基于tcp层的负载均衡(如https、mysql协议)。适用于需要会话保持或七层处理的且负载特别大的站点。可支持数以万计的并发连接。说到haproxy就不得不说与其相关的配置文件了,下面就让我们一起来了解haproxy配置语法。一. haproxy配置文件详解haproxy配置分为五部分,分别如下:1 global: (全局配置主要用于设定义全局参数,属于进程级的配置,通常和操作系统配置有关)2 default : (配置默认参数,这些参数可以被用到frontend,backend,Listen组件) 在此部分中设置的参数值,默认会自动引用到下面的frontend、backend、listen部分中,因引,某些参数属于公用的配置,只需要在defaults部分添加一次即可。而如果frontend、backend、listen部分也配置了与defaults部分一样的参数,Defaults部分参数对应的值自动被覆盖。3 frontend:( 接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend) frontend是在haproxy 1.3版本以后才引入的一个组件,同时引入的还有backend组件。通过引入这些组件,在很大程度上简化了haproxy配置文件的复杂性
  • 前端和后端的JWT令牌策略(JWT Token strategy for frontend and backend)
    问题 我正在编写一个应用程序,其前端在emberjs中,后端/服务器端在nodejs服务器中。 我已经配置了emberjs,以便用户可以通过第三方Oauth(Google,Twitter,Facebook)登录/注册。 我有一个托管在RESTful API的express nodejs服务器中编写的后端。 我没有将数据库连接到emberjs,我也不认为应该这样做,因为它严格是客户端代码。 我正在计划使用JWT在客户端和服务器端之间进行通信。 当用户使用其oauth凭据登录时,我从提供程序返回了一个JSON对象,其中包含uid,名称,登录名,access_token和其他详细信息。 我正在努力选择一种如何处理用户注册的策略。 由于是OAuth,因此没有注册过程。 因此,流程是,如果用户不在我的数据库中,请创建它。 我不支持电子邮件/密码身份验证。 用户首次使用OAuth提供程序登录时的流程是什么? emberjs是否应该在每次登录时将所有详细信息发送到后端,以便后端可以向数据库添加新用户? 我的JWT机构应包括什么? 我在想uid和provider提供的访问令牌。 我在这里可以想到的一个问题是,提供程序特定的访问令牌可以更改。 用户可以从提供商的站点撤消令牌,然后再次使用emberjs进行注册。 如果愿意,我愿意在任何其他javascript客户端框架中编写前端。 回答1
  • 在Julia Lang中获取当前变量的列表(Get a list of current variables in Julia Lang)
    问题 我是朱莉娅·朗(Julia Lang)的新手。 我来自Matlab的背景。 在Matlab中,当按下whos命令时,我将获得当前作用域中的所有变量。 而且,我可以将它们存储在另一个变量中,例如x=whos; 朱莉娅中是否存在这样的命令? Matlab中的示例代码: >> a=3; >> b=4; >> whos Variables in the current scope: Attr Name Size Bytes Class ==== ==== ==== ===== ===== a 1x1 8 double b 1x1 8 double prefix 1x16 16 char Total is 18 elements using 32 bytes. 回答1 不知道是否有更好的东西,但是 names(Main)[4:end] 似乎有效。 [4:end]部分是因为它包括:Main , :Core和:Base ,我认为您不希望这样做。 我希望他们永远是开始。 回答2 您可以像使用Matlab命令一样使用Julia的whos函数。 julia> whos() Base Module Core Module Main Module ans Nothing julia> x = 5 5 julia> whos() Base Module Core Module Main Module