小编3oc*_*ene的帖子

如何在Vim中更改标签大小?

每次我在CSS中添加一个选择器,我按Enter下来定义属性,它最终会像这样:

#selector {
        property: value;
}
Run Code Online (Sandbox Code Playgroud)

(8个空格标签)

如何配置Vim使其像这样:

#selector {
    property: value;
}
Run Code Online (Sandbox Code Playgroud)

(4个空格标签)

vim tabs

140
推荐指数
6
解决办法
18万
查看次数

根据设备宽度使用CSS更改div顺序

我正在开发一个响应式网站,并遇到了一个有趣的问题.我有一些divs并排.它们可能有2到6个左右.当屏幕宽度不足以正确显示所有内容时,div会垂直堆叠.简单到使用CSS.

问题是,我需要它们按照不同的顺序排列.这很容易使用2或3个div(根据宽度更改div顺序),但在添加第四个时更具挑战性.

我可以使用position: absolute;并手动设置位置,但这会导致父级缩小而不能正确包含它们.

为了使这更复杂,我不能使用JavaScript.

使用两列:

(另)

HTML:

<div id="container">
    <div class="column-half column-half-2">
        First div on mobile, right div on desktop
    </div>
    <div class="column-half column-half-1">
        Second div on mobile, left div on desktop
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.container {
    width: 80%;
    max-width: 1200px;
    margin: 0 auto;
    padding-bottom: 20px;
    position: relative;
}
.column-half {
    display: table-cell;
    padding: 25px;
    vertical-align: top;
    width: 40%;
}
.column-half-1 {
    float: left;
}
.column-half-2 {
    float: right;
}
Run Code Online (Sandbox Code Playgroud)

HTML,有4列:

<div id="container">
    <div class="column-quarter …
Run Code Online (Sandbox Code Playgroud)

html css css3 flexbox

23
推荐指数
1
解决办法
3万
查看次数

单字符签名方案(最小安全性)

注意:我最初将其发布到信息安全,但我开始认为它可能更相关,因为它确实是关于确定我应该如何处理请求而不是保护信息.

情况

系统A:

我有一个A向用户提供请求的系统.此服务器执行某些操作,然后将用户重定向到系统B.在该重定向期间,服务器A可以向用户提供32个字符的字母数字信息串以传递给系统B.需要31个字符的信息,但其中一个可用作校验和.此字符串可以或多或少地被视为请求ID.

系统B:

当系统B接收来自用户的请求时,它可以验证该请求(以及ID-等字符串)是有效的通过解析31个字符的字符串,查询数据库,再跟系统A.本系统可以绝对肯定验证请求有效并且没有被篡改,但它的计算成本非常高.

攻击者:

该系统可能会看到许多欺骗ID的尝试.这可以通过以后的检查进行过滤,因此我并不担心单个角色完全签署ID,我确实希望避免花费更多资源来处理这些请求.

我需要的

我正在寻找一个校验和/签名方案,它可以用一个字符让我很好地了解请求是否应该继续进行验证过程,或者是否应该立即将其丢弃为无效.如果一条消息被丢弃,我需要100%确定它是无效的,但如果我保留无效的消息也没关系.我相信理想的解决方案意味着保留1/62无效请求(攻击者必须猜测检查字符),但作为最小解决方案,丢弃所有无效请求的一半就足够了.

我试过的

我看过使用卢恩算法(这是用于信用卡相同),但我想能够使用一键生成的字符,使其更难以攻击者欺骗校验.

作为创建签名方案的第一次尝试,我用一个31字节的密钥对31字节的id进行按位,对结果字节求和,转换为十进制并将数字加在一起直到它小于62,然后映射它到集合中的字符[a-bA-Z0-9](下面的伪代码).问题是虽然我很确定这不会丢弃任何有效的请求,但我不确定如何确定这将通过无效ID的频率,或者是否可以使用最终值检索密钥.

Set alphabet to (byte[]) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Set keystring to "aLaklj14sdLK87kxcvalskj7asfrq01";

Create empty byte[] key;
FOR each letter in keystring
  Push (index of letter in alphabet) to key;

Create empty byte[] step1;

FOR each (r, k) in (request, key)
  Push r XOR s to step1;

Set step2 to …
Run Code Online (Sandbox Code Playgroud)

javascript checksum signing check-digit node.js

13
推荐指数
1
解决办法
164
查看次数

Chart.js 2.0使用货币和数千个分隔符格式化Y轴

我在格式化图表轴时遇到问题,我无法找到更新版本2.0的示例.

我怎么能(例如)2000000到€2.000.000?

我的小提琴:https://jsfiddle.net/Hiuxing/4sLxyfya/4/

window.onload = function() {
    var ctx = document.getElementById("canvas").getContext("2d");
    window.myBar = new Chart(ctx, {
        type: 'bar',
        data: barChartData,
        options: {
            title: {
                display:true,
                text:"Figure"
            },
            legend: {
                position: "bottom"
            },
            tooltips: {
                mode: 'label',
                bodySpacing: 10,
                cornerRadius: 0,
                titleMarginBottom: 15
            },
            scales: {
                xAxes: [{
                    ticks: {}
                }],
                yAxes: [{
                    ticks: {
                        beginAtZero: true,
                        stepSize: 500000
                    }
                }]
            },
            responsive: true
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

javascript format jquery charts chart.js

11
推荐指数
2
解决办法
2万
查看次数

Chart.js - 无法读取null的属性'getContext'

我的main.js文件中有以下Javascript :

//array object of API stuff

function createChartWinLoss(wins, losses) {

  var pieData = [
    {
      value: losses,
      color: "#F7464A",
      highlight: "#FF5A5E",
      label: "Losses"
    },
    {
      value: wins,
      color: "#46BFBD",
      highlight: "#5AD3D1",
      label: "Wins"
    }
  ];

  var pieOptions = {
    segmentShowStroke : false,
    animateScale : true
  }


  var winLossChart = document.getElementById('winLossChart').getContext('2d');
  new Chart(winLossChart).Pie(pieData, pieOptions);
}

//creates the chart with test data
createChartWinLoss();

function summonerLookUp() {
  var SUMMONER_ID = "";
  var API_KEY = "keyhere";
  var sumID = $("#theKey").val();
  var …
Run Code Online (Sandbox Code Playgroud)

javascript charts

7
推荐指数
1
解决办法
3万
查看次数

在Kubernetes pod中克隆一个安全的git仓库

我遇到了一个有趣的情况,我需要将私有github repo克隆到我在Kubernetes中运行的docker容器中.最初我尝试使用gitRepo挂载,但是,在我的部署清单中有一个OAuth密钥是不可接受的,我想使用repo deploy密钥而不是附加到我的GitHub帐户的OAuth密钥.

理想情况下,我会使用一个使用秘密进行身份验证的gitRepo挂载,但在撰写本文时此功能尚不可用.

约束

我需要以下内容:

  • 容器内的回购,我可以在容器运行时间歇性地拉出
  • 必须使用GitHub部署密钥访问repo
  • 密钥必须保持安全(在Kubernetes秘密中)并且不存储在docker镜像中
  • repo必须在同一个pod中的两个容器之间共享 - 一个写入,一个读取

可能的解决方案:

将SSH密钥挂载为机密和克隆:

我尝试使用在单独的pod中运行的bash脚本将repo克隆到emptydir中(无论如何这个脚本都必须运行,我也将它用于其他事情),然后我遇到了将ssh键放入其中的问题.荚.这个问题是关于这个问题的,但它似乎没有办法实现.我能够使用秘密安装获取密钥,但随后权限设置为777.为了解决这个问题,我将密钥安装到/test/目录中,然后尝试将cp它们插入/root/.ssh/.这给了我这些奇怪的错误:

cp: '/test/id_rsa' and '/root/.ssh/id_rsa' are the same file
cp: '/test/id_rsa.pub' and '/root/.ssh/id_rsa.pub' are the same file
Run Code Online (Sandbox Code Playgroud)

我也尝试使用cat并将它们管道到他们的文件但是没有用.当我遇到错误的路径时,它首先给了我这些错误:

cat: /keys/id_rsa: input file is output file
cat: /keys/id_rsa.pub: input file is output file
Run Code Online (Sandbox Code Playgroud)

一旦我修复了路径,它就什么也没做,而且默默地失败了.kubectl exec进入容器显示没有文件/root/.ssh/.

我想我已经走到了这条道路的尽头,所以我认为这不是解决方案.

配置ssh以忽略密钥权限

如果SSH有办法忽略密钥的权限 - 默认情况下它强制执行644或更少,我相信 - 然后上述解决方案是可能的.我很惊讶我没有找到任何方法来做到这一点,但我的google-fu总是出现结果,说你只需要正确设置权限.

将钥匙安全地放入容器的其他方法

理想情况下,我希望在容器中有一个密钥,用于使用其他回购项目进行此项目的未来扩展.可能还有其他一些方法可以做到这一点,我没有想过或尝试过.

在容器中使用OAuth密钥进行克隆

我曾考虑尝试在环境变量中使用OAuth密钥,然后使用它来通过HTTPS克隆repo.这不太理想,但如果它有效,我会接受它.现在唯一阻止我这样做的是我无法使用部署密钥.如果有一种方法可以使用部署密钥使用OAuth,我还没有找到它,但如果有人知道更多,它可能是解决方案.

克隆在docker图像中

回购中没有任何东西我会在码头图像中感到不舒服,所以我可以走这条路.这个问题是我需要能够下载回购的更新.如果我把它放在容器中,我将无法在没有钥匙的情况下拉动它.可能有一些解决方法,我没有尝试过.

我觉得我什么都没有尝试,所以任何建议都值得一试.


类似的问题

这个问题与我正在尝试的问题 …

git ssh github docker kubernetes

7
推荐指数
1
解决办法
2997
查看次数

生成的JavaScript函数中的变量不按预期运行

我在循环中生成函数时遇到了一些JavaScript问题.

我想要的是:

我想要这个工作的方式是一个for循环,每次迭代,生成一个名为doStuff+ 的函数i.例如,第一次迭代将生成doStuff1()第二次生成doStuff2(),依此类推等等.功能本身(为了示例)只需要打印出来i- 即doStuff1()打印1,doStuff2()打印2等.

我得到了什么:

实际发生的是i,不会"坚持"在功能中.它成为全球范围的一部分或其他东西,所以每个功能都是10.如果单击下面代码段中的第一个按钮,则可以看到此信息.

我试过的:

使用生成器功能

在示例二中,我尝试使用function*符号来创建适当的函数生成器.我很确定我之前已经实现了它,但我之前从未使用过这种表示法,所以我可能会离开.如果是这样的话,请告诉我.

其结果与示例2相同.

使用字符串而不是整数

例如三,我决定尝试使用字符串而不是整数,它的工作原理!对于每次迭代,a都附加到一个字符串,所以当我按顺序运行生成的函数时,我会得到一个漂亮的小金字塔a.

在不同的地方声明和分配变量

由于我必须stringOut在示例3 中将变量定义在不同的范围内,所以我决定尝试使用与示例4中的数字相同的变量,并且它再次起作用!这对我来说没有多大意义,因为在更高的范围内似乎更容易遭受与例1和2相同的问题.

我想知道的:

  • 例3和4如何工作,而1和2不工作?编辑:我的代码坏了.它都不起作用.
  • 我是否function*正确使用了发电机声明?
  • 什么是最好的(最简单,最简洁,最易读)的方法呢?我知道制作一系列函数可能是最好的,但在这种情况下这是不可能的.

示例代码:

function test1() {
  document.getElementById("output").innerHTML = "#1 Output:";
  var myFunctions = [];

  for (var i = 0; i < 10; i++) {
    myFunctions[i] = function() {
      document.getElementById("output").innerHTML …
Run Code Online (Sandbox Code Playgroud)

javascript scoping

6
推荐指数
1
解决办法
70
查看次数

根据变量选择Vue过滤器

我拥有的

我正在基于 Vue2 中的二维数组生成一个表。我可以让表格在正确位置显示所有值,但我在格式化时遇到了问题。模板看起来像这样:

<table>
  <thead>
    <tr>
      <th>Title</th>
      <th>Column 1</th>
      <th>Column 2</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="row in data">
      <td>{{row[0]}}</td>
      <td>{{row[3]+row[1]+row[4]}}</td>
      <td>{{row[3]+row[2]+row[4]}}</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

数据看起来像这样:

var data = [
  ['revenue', 123.4, 153.48, '$'],
  ['cost', 93.26, 109.48, '$'],
  ['profit', 30.14, 44, '$'],
  ['margin', 24.425, 28.668, '', '%']
];
Run Code Online (Sandbox Code Playgroud)

我失败了

这有效... ish。我可以有我想要的任何行,我可以指定单位 - 前缀或后缀 - 但它并不完美。最大的问题是货币有不同的小数位数。我可以将这些值存储为字符串,但其中一些值在计算中重复使用,这意味着我必须解析它们。

我试过的

正是在这一点上,我遇到了过滤器。由于我继承的这个项目已经内置了一堆,看起来他们会做我想做的。我可以把它改成它,{{row[1] | currency}}然后它会以很好的格式吐出它。唯一的问题是我有混合的数据类型。在示例中revenuecost、 和profit都是货币值,但它margin是一个百分比。

理想情况下,我想在每个数组的第 4 个索引中指定过滤器:

var data = [
  ['revenue', 123.4, 153.48, …
Run Code Online (Sandbox Code Playgroud)

html javascript vue.js vuejs2

4
推荐指数
1
解决办法
1703
查看次数

尝试随机选择一个短语

我试图通过创建带有Javascript函数的HTML文件来帮助婆婆,该函数将通过在chrome上打开文件并单击来为她随机选择一个短语<button>。但是,由于某种原因,它不起作用。

这是我对javascript函数的支持<head>

<script> 
myfunction(array,randInt,item,){
  var array = ["phrase here", "here", "and here"];
  var randInt = randomGenerator(0, array.length-1);
  var item = array[randInt];
  document.getElementById('outputdiv').value = randInt;
}
</script>
Run Code Online (Sandbox Code Playgroud)

然后在<body>我有:

<button type="button" onclick=myfunction(array,randInt,item,)>click me!</button>
<div id="outputdiv"></div>
Run Code Online (Sandbox Code Playgroud)

我尝试使用HTML验证程序,它说代码没有错。但是,当我加载网页时,该按钮没有任何作用。我敢肯定我缺少某个愚蠢的简单错误/修复,但是对于我一生来说,我不知道该在哪里。请帮我。提前致谢!

html javascript

3
推荐指数
1
解决办法
69
查看次数