小编Fla*_*vio的帖子

如何获取所有维基百科文章的标题列表

我想获得所有维基百科文章的所有标题列表.我知道有两种方法可以从维基媒体的wiki中获取内容.一个是API,另一个是数据库转储.

我不想下载wiki转储.首先,它是巨大的,其次,我对查询数据库并不是很有经验.另一方面,API的问题在于我无法找到一种只检索文章标题列表的方法,即使它需要> 4 mio请求,这可能会让我阻止任何进一步的请求.

所以我的问题是

  1. 有没有办法通过API获取维基百科文章的标题?
  2. 有没有办法将多个请求/查询合并为一个?或者我实际上是否必须下载Wikipedia转储?

mediawiki wikipedia wikipedia-api mediawiki-api

22
推荐指数
1
解决办法
7051
查看次数

为什么我需要在webgl着色器中定义精度值?

我试图让本教程工作,但我遇到了两个问题,其中一个是以下问题.

当我按原样运行代码时,我在片段着色器中得到一个错误:THREE.WebGLShader: gl.getShaderInfoLog() ERROR: 0:2: '' : No precision specified for (float).所以我所做的是为我定义的每个浮点数/向量指定精度varying highp vec3 vNormal.这消除了错误,但我不明白为什么?我找不到任何其他将精度值添加到变量声明的示例.任何人都能解释为什么会这样吗?它与我的浏览器(Chrome 38)有关吗?

shader glsl webgl fragment-shader three.js

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

在threejs中将对象加载为Geometry而不是BufferGeometry

我正在尝试将.stl文件加载到three.js中.一切正常,我使用此代码将模型作为BufferGeometry:

    var loader = new THREE.STLLoader();
    loader.addEventListener( 'load', function ( event )
    {

        var material = new THREE.MeshLambertMaterial({
            color: 0x888888,
            side: THREE.DoubleSide
        });

        var bufferGeometry = event.content;
        var mesh = new THREE.Mesh(geometry, material);
        scene.add( mesh );
    });
    loader.load( 'model.stl' );
Run Code Online (Sandbox Code Playgroud)

为了更容易进一步操作模型,我希望将几何图形设置为常规THREE.Geometry而不是THREE.BufferGeometry.是否有可能以.stl某种方式加载,因此我可以将其作为a THREE.Geometry或者是否可以转换THREE.BufferGeometryTHREE.Geometry?或者这可能是使用.obj文件还是其他?

javascript 3d three.js stl-format

8
推荐指数
1
解决办法
7616
查看次数

Knex:获取连接超时

从今天开始,当我尝试使用 knex.js 在本地连接到 postgres 数据库 (v 12) 时,出现以下错误。

Unhandled rejection TimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
Run Code Online (Sandbox Code Playgroud)

这种情况发生在我已经工作了一年的项目上,没有出现任何问题。为了解决这个问题,我创建了一个包含一张表的新数据库。运行以下代码行时,我收到相同的错误:

const knex = require('knex');

const db = knex({
  client: 'pg',
  connection: 'postgresql://postgres:postgres@localhost/a_test',
  pool: {
    min: 0,
    max: 10,
  },
});

db.from('test_table')
  .select(['id'])
  .then(r => {
    console.log(r);
  });

Run Code Online (Sandbox Code Playgroud)

我不知道是什么原因造成的。几周前,一切都运行良好,在此期间我没有改变任何东西。我使用postgresapp在本地运行 postgres ,当我使用 连接到数据库时psql,一切正常。我有什么想法可以解决这个问题吗?

postgresql node.js knex.js postgresql-12

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

sveltejs 中的响应式全宽画布

我对 svelte 很陌生,我正在尝试使用 svelte 在全屏上渲染画布。听起来很容易做到,但我无法让它正常工作。我将 awidthheight变量绑定到父级的clientWidth/clientHeight并使用这些变量来设置画布的尺寸。现在的问题是,当onMount调用时,widthheight变量已设置,但它们尚未应用于画布元素。这意味着当画布第一次渲染时,它仍然具有初始尺寸,而不是父级的尺寸。只有当我第二次渲染它时,它才具有正确的尺寸。如何使画布在第一次渲染时具有正确的尺寸或在画布具有正确的尺寸时再次渲染画布?

在这里您可以找到“工作”版本。

<script>
  import { onMount } from "svelte";

  let canvas;
  let ctx;
  let width = 1007;
  let height = 1140;

    const draw = () => {
    ctx.clearRect(0, 0, width, height);
    ctx.beginPath();
    ctx.moveTo(width/2 - 50, height/2);
    ctx.arc(width/2, height/2, 50, 0, 2 * Math.PI);
    ctx.fill();
    }
    
  onMount(() => {
    ctx = canvas.getContext("2d");
        draw();
        setTimeout(draw, 5000);
  });
</script>

<style>
  .container {
    width: …
Run Code Online (Sandbox Code Playgroud)

javascript html5-canvas svelte svelte-3

5
推荐指数
1
解决办法
4599
查看次数

使用redcarpet在jekyll中突出显示语法

我正在尝试将代码突出显示用于使用jekyll构建的简单博客.我希望能够在markdown中编写的帖子中进行代码突出显示,因此我启用了redcarpet作为标记语言.这很好用,代码在<pre></pre>标签中格式化,代码的所有各种元素都得到相应的类.例如

<span class="n">function</span>
<span class="n">saySomething</span>
<span class="p">()</span>
<span class="p">{</span>

etc.
Run Code Online (Sandbox Code Playgroud)

这很棒但是这并没有给我们实际的突出显示(颜色).所以我想必须有一些css准备好复制和粘贴,这实际上是不同代码元素的样式.还是我完全错过了什么?

我查看了一些突出显示像美化棱镜这样的库的代码,但这些代码在浏览器中使用javascript进行自己的格式化.但由于redcarpet已经完成了格式化代码的繁重工作,因此不必再进行此操作.

任何提示?

css ruby syntax-highlighting jekyll redcarpet

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

D3更新画笔的比例不更新画笔

我想要创建的是D3版本3.5.6中的可缩放,可刷新的时间轴.目前我没有使用D3的缩放行为,只有两个缩放按钮.我的问题如下:当单击一个按钮时,我更新比例并重新绘制轴和画笔.由于某种原因,画笔不会更新范围矩形和手柄,而只更新背景.我知道我实际上并没有更新.extent()刷子.但是,当规模改变时刷子应该更新吗?

这是代码的相关部分.其余的可以在这个小提琴中找到.

document.getElementById('in').addEventListener('click', zoom.bind(null, .1));
document.getElementById('out').addEventListener('click', zoom.bind(null, -.1));

function zoom(step) {
  var offset;

  zoomScale += step;

  if(zoomScale < 1)
    zoomScale -= step;

  offset = (zoomScale * width - width) / 2;

  // updating the scale
  xScale
    .range([-offset, width + offset]);

  // redrawing the brush which doesn't seem to have effect I expected
  brushGroup
    .call(brush);

  // redrawing the axis which works fine
  xAxisGroup
    .transition()
    .call(xAxis);      
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

javascript svg data-visualization d3.js

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

如何使用susy有效删除最后一列的边距?

我使用susy制作一个简单的12列网格.我想除了一件事,我或多或少已经弄清楚了.我有以下标记:

<div class="news">
    <div class="tweet">
        <p>the tweet<p/>
    </div>
    <div class="blog">
        <h3>Recent News</h3>
        <div class="excerpt">
            <p>the excerpt<p/>
        </div>
        <div class="excerpt">
            <p>the excerpt<p/>
        </div>                
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我希望"新闻"占据一整行,"推特"占据这一行的一半而"博客"占据另一半.这两个"摘录"应占据"博客"栏目的一半.因此,我有以下scss:

.news {
    @include container();
}
.tweet {
    @include span(6);
}
.blog {
    @include span(6 at 7);
}
.excerpt {
    @include span(3 of 6);
}
Run Code Online (Sandbox Code Playgroud)

当然,第二段摘录现在也有一个正确的排水沟,这使它跳上一条新线.因此,我认为我会使用该last标志作为:last-childSusy提供的摘录,但这不起作用.右边的排水沟已经设置好了@include span(3 of 6),因此会留下来.唯一能解决问题的方法就是删除正确的边距:

.excerpt:last-child {
    margin-right: 0;
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我认为必须有另一种解决方案.在那儿?

html css sass susy-compass susy-sass

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

着色器中的Threejs正常值设置为0

我正在尝试使用本教程,但我遇到了两个问题,其中一个问题可以在这里找到.另一个是以下.

为方便起见,这是应该工作的代码,这里是一个jsfiddle.

顶点着色器:

uniform mat4 projectionMatrix;
uniform mat4 modelViewMatrix;
attribute vec3 position;
uniform vec3 normal;
varying vec3 vNormal;

void main() {
    test = 0.5;
    vNormal = normal;
    gl_Position = projectionMatrix *
                modelViewMatrix *
                vec4(position,1.0);
}
Run Code Online (Sandbox Code Playgroud)

片段着色器:不同的mediump vec3 vNormal;

void main() {
    mediump vec3 light = vec3(0.5, 0.2, 1.0);

    // ensure it's normalized
    light = normalize(light);

    // calculate the dot product of
    // the light to the vertex normal
    mediump float dProd = max(0.0, dot(vNormal, …
Run Code Online (Sandbox Code Playgroud)

shader webgl vertex-shader fragment-shader three.js

2
推荐指数
1
解决办法
896
查看次数

为什么 request.on() 在 Node.js 中不起作用

我正在尝试使用节点请求模块从第三方服务获取一些数据,并将此数据作为字符串从函数返回。我的看法是request()返回一个可读的流,因为你可以这样做request(...).pipe(writeableStream)- 我认为 - 意味着我可以做到

function getData(){
    var string;

    request('someurl')
        .on('data', function(data){
             string += data;
        })
        .on('end', function(){
            return string;
        });
}
Run Code Online (Sandbox Code Playgroud)

但这并不奏效。我想我对 request() 或节点流的真正工作方式有一些错误的看法。有人可以在这里澄清我的困惑吗?

javascript stream node.js node-request

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

与d3可重复使用模式的交互性

在D3中:我正在尝试使用可重用的图表模式来实现图表,这允许我添加在实际图表之外处理的事件.例如,我有一个简单的条形图,我可以点击每个单独的条形图.现在,我希望能够在创建图表实例的位置处理它,而不仅仅是处理图表组件中的click事件.例如,我想编辑与单击的条形元素对应的数据,或者我想根据我单击的条的位置更新某个其他元素的位置.为了使图表组件尽可能模块化和独立,我不希望在其中完成某些任务.

我提出了一个非常直接的解决方案,但我觉得必须有一个更好的解决方案.这样我就必须考虑外界可能感兴趣的每一个可能的事件.JSFiddle

function clickHandler(d, i) {
  // do something with the element/event/data
}

var svg = d3.select('#container')
  .append('svg');

var myChart = chart()
    .onClick(clickHandler);

svg.append('g')
  .datum(data)
  .call(chart);

function chart() {
  var onClick = function() {};

  function _chart(selection) {
    selection.each(function(d, i) {

      selection.selectAll('rect')
        .data(d)
        .enter()
        .append('rect')
        .attr('x', 0)
        .attr('y', function(d, i) {return i * 11;})
        .attr('width', function(d, i) {return d;})
        .attr('height', 10);
        .on('click', _onClick);

    });
  }

  function _onClick(d, i) {
    d3.select(this)
      .attr('fill', 'red');

    onClick(d, i);
  }

  _chart.onClick = function(_) …
Run Code Online (Sandbox Code Playgroud)

javascript charts event-handling javascript-events d3.js

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