小编Par*_*roX的帖子

printf如何使用前导零进行浮点运算

我知道如何做X量的前导零,我知道如何做X小数点.但是,我怎么做他们两个?

我希望有4个前导零到小数精度2:0000.00.因此43.4将是0043.40

php c java perl printf

13
推荐指数
2
解决办法
8569
查看次数

getopts不会连续两次调用?

由于某种原因,选项在第一次调用时运行良好lib_progress_bar -c "@" -u "_" 0 100,但在第二次调用时超出一切都是默认值,因为getopts c:u:d:p:s:%:m: flag第二次看似不是真的,或者至少在我使用时从未执行过的情况set -x

#!/bin/bash



lib_progress_bar() {
    local current=0
    local max=100 
    local completed_char="#"    
    local uncompleted_char="."  
    local decimal=1 
    local prefix=" ["
    local suffix="]"
    local percent_sign="%"
    local max_width=$(tput cols)

    local complete remain subtraction width atleast percent chars
    local padding=3

    while getopts c:u:d:p:s:%:m: flag; do
        case "$flag" in
            c) completed_char="$OPTARG";;
            u) uncompleted_char="$OPTARG";;
            d) decimal="$OPTARG";;
            p) prefix="$OPTARG";;
            s) suffix="$OPTARG";;
            %) percent_sign="$OPTARG";;
            m) max_width="$OPTARG";;
        esac
    done
    shift $((OPTIND-1))


    current=${1:-$current} 
    max=${2:-$max} 


    if (( decimal > …
Run Code Online (Sandbox Code Playgroud)

bash shell getopts

12
推荐指数
2
解决办法
4446
查看次数

具有64位整数的哈希表

我期待为二进制四键实现O(1)查找

我知道javascript没有真正的哈希表,而是使用对象和o(1)查找其属性,但问题是密钥总是转换为字符串.

我怀疑在内存中有超过1000万个条目,如果我必须依赖键是字符串,并且平均四键字符串是11.5个字符,相当于(1000万条目*11.5长度*2字节)= 230,000,000字节或230 MB.

与存储为int64(1000万个条目*8个字节)= 80,000,000个字节或80 MB相比

我知道javascript本身不支持int64,但是有些库可以帮助我完成我想要的按位操作.

现在,即使存在可以处理int64的库,它们最终也不是真正代表8字节的对象,所以我相信我不能在哈希表中使用任何int64库,而是考虑使用2-deep哈希表和2 INT32.第一个键是前4个字节,第二个键是最后4个字节.它不像1次操作查找那样理想找到一个值,但是2次操作仍然足够好.

但是,如果所有键都存储为字符串,或者所有数字都是双精度浮点格式数字(8字节),那么我认为这不值得,因此每个哈希条目将占用16个字节(两个" int32"数字).

我的问题是:

1.如果存储一个数字作为属性的键,是否会占用8个字节的内存,或者它会转换为字符串并占用长度*2字节?

  1. 有没有办法将二进制四元组编码为javascript采用的双精度浮点格式数字标准,即使数字没有意义,基础位也有用(构造的唯一标识).

PS:我用nodejs标记这个,因为可能存在可以帮助我最终目标的库


编辑1:

似乎1Map()和节点0.12.x + 是可能的

至于数字2,我能够使用int64 lib(bytebuffer)并将64int转换为缓冲区.

我想只使用缓冲区作为Map()的键,但它不会让我因为缓冲区内部是一个对象,每个实例都充当Map()的新键.

所以我考虑将缓冲区恢复为原生类型,64位双倍.

使用readDoubleBE我读取缓冲区作为double,它代表我的64int二进制文件并成功让我在地图中使用它并允许O(1)查找.

var ByteBuffer = require("bytebuffer");

var lookup = new Map();


var startStr = "123123738232777";
for(var i = 1; i <= 100000; i++) {
    var longStr = startStr + i.toString();
    var longVal = new ByteBuffer.Long.fromValue(longStr);

    var buffer = new ByteBuffer().writeUint64(longVal).flip().toBuffer();
    var doubleRepresentation = buffer.readDoubleBE();
    lookup.set(doubleRepresentation, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

如何使用Perl在字符串中删除HTML?

有没有比这更容易使用Perl从字符串中删除HTML?

$Error_Msg =~ s|<b>||ig;
$Error_Msg =~ s|</b>||ig;
$Error_Msg =~ s|<h1>||ig;
$Error_Msg =~ s|</h1>||ig;
$Error_Msg =~ s|<br>||ig;
Run Code Online (Sandbox Code Playgroud)

我会同时修饰一个精简的正则表达式,例如:

$Error_Msg =~ s|</?[b|h1|br]>||ig;
Run Code Online (Sandbox Code Playgroud)

是否存在从字符串中删除任何/所有HTML的现有Perl函数,即使我只需要粗体,h1标题和br剥离?

html regex perl strip

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

2部分CSS"壁纸"调整大小到浏览器

我的设计师认为这不可能做到,但对我来说似乎是可能的.(虽然我的CSS经验有限).但是,他也说过背景无法修复,而且过去的堆栈溢出证明了他的错误; 所以我质疑他的知识.

如果无法在纯CSS中完成此操作,则可以使用JQuery. 替代文字

上半部分是一个渐变,具有完全灵活的左,右,上,下倾斜而没有太多失真.下半部分是理想的1280 x 1024分辨率图像(因为这是最流行的浏览器显示分辨率).然后根据所需的要求,它将绘制和倾斜到它需要的任何尺寸.仍然允许看到所有图像.

上半部分和下半部分之间的比例始终为50%50%,与浏览器分辨率无关.

如果顶部和底部都固定,我也想.

在一个完美的世界(一个没有IE),id喜欢用1个DIV中的css3渐变和多个背景来做到这一点.但是,因为IE9尚未出现,我认为接近它的最佳方式是在DIV容器中使用2个div并使用PNG重复背景作为顶部div.

应该注意我将使用css3pie.com为IE6-8允许一些CSS3(但我不想依赖它,除非100%证明)

这只能用CSS吗?你会怎么做?

如果只用CSS不可能,有没有办法让JavaScript/JQuery帮助?我认为1280 x 1024的基础不是最好的主意,因为它似乎有一个奇怪的无线电.

Edit 1

哦,是的,我也有一个WIP:http: //meyers.ipalaces.org/extra/

它在1280 x 1024看起来不错......现在它只是将顶级DIV的整个大小调整为50%,因此图像为50%.

我仍然喜欢看到所有的水,因为我喜欢底部岩石的外观.但是,我愿意接受那些没有达到我想要的100%的替代想法,而是接近.

Edit 2

如何使用顶部渐变作为真正的CSS2背景,然后只是<img>在其底部放置一个调整大小?也许这将允许CSS2能力.我在这里引用一些解决方法:列表分开

Edit 3

我仍然在寻找可以在IE6上运行的结果,也不会导致Internet Explorer停滞不前.我正在设置50的奖金,以帮助吸引更多的关注.

html javascript css jquery layout

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

保留UnionAggregate中的起始点

DECLARE @Geom TABLE 
( 
   shape geometry, 
   shapeType nvarchar(50) 
); 

INSERT INTO @Geom(shape,shapeType) 
VALUES('LINESTRING(1 2, 3 4)', 'A'), 
('LINESTRING(3.2 4, 7 8)', 'B'); 

SELECT *
FROM @Geom

SELECT geometry::UnionAggregate(shape).ToString(), geometry::UnionAggregate(shape)
FROM @Geom;

Run Code Online (Sandbox Code Playgroud)

输出的WKT是

MULTILINESTRING ((7 8, 3.2 4), (3 4, 1 2))

当我想要的时候

MULTILINESTRING ((1 2, 3 4), (3.2 4, 7 8))

其中"A"和"B"行的开始应该是(1 2)(3.2 4)尊敬.

这种行为UnionAggregate似乎并不关心几何的"方向",以便维持A联合B和B联合A是相同的结果.不过,我想保留的开始/终点,因为我unioning街道几何,我希望所有的线串在其原来的方向去了.

这里讨论这个问题:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/89e95366-3649-4294-a0bc-f3921598157f/union-of-linestrings-and-reversing-direction?forum= sqlspatial

他们似乎建议在检查最终结果的可能解决方案,但我不清楚如何做到这一点.它是在一个链接的线程中暗示的

MultiLineString始终表示距离原点最远的点的图形.

我不清楚这究竟意味着什么,但我认为我不能假设UnionAggregate的结果总是与我想要的相反

如果很难知道方向意图,那么我可以添加M个度量,其中方向应该跟随增加的M值.

假设我有一种方法可以反转积分,我该如何解决这个问题呢?

我找到了一个模拟STUnionZ和M测量的附加支持的功能:http://www.spatialdbadvisor.com/files/SQLServer.html#robo48但是注意到"他们的方向可能会改变(例如,开始/起点关系) ).",这是我想要避免的.

t-sql sql-server geometry spatial sql-server-2017

10
推荐指数
2
解决办法
304
查看次数

笛卡尔坐标到极坐标

看一下这里的例子:http://www.brianhare.com/physics/so.html

看看我在使用这两个主要功能的console.log:

    function distanceBetween2pts(x1, y1, x2, y2) {
        console.log("Particle: ("+x1+","+y1+") Mouse: ("+x2+","+y2+")");
        //  Pythagoras Theorem
        // PQ = sqrt( (x2-x1)^2 + (y2-y1)^2 )
        var x = (x2-x1);
        var y = (y2-y1);

        this.radius = Math.sqrt(x*x + y*y);
        this.x = x;
        this.y = y;
    }

    function polar2cartesian(R, theta) {
        this.x = R * Math.cos(theta);
        this.y= R * Math.sin(theta);
    }
Run Code Online (Sandbox Code Playgroud)

当鼠标位于粒子的上方和右侧(中心圆)时,例如: 在此输入图像描述

控制台日志显示:

Particle: (300,250) Mouse: (326,223)
artan(-27 / 26) = angle: -46.08092418666069 - theta -0.8042638494191191
Run Code Online (Sandbox Code Playgroud)

它应该是arctan(27/26)=角度:46:theta = 0.8.因为即使老鼠在中心"上方",它也会将y2-y1读为-27,因为坐标系统基于左上方的0,0.

那么问题是当X和Y都为负时使θ为正,而它应该指向相反的方向(从中心点向外).我知道我可以在这里做一个180度的技巧,但我想知道我做错了什么.

javascript math geometry cartesian polar-coordinates

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

浏览器滚动条移位

当你在我的网站上转到有额外内容的页面时,滚动条会出现在右侧,但是我的内容有一个明显的向左移动.你注意到这一点,点击主页,然后在我的网站上再次托管和返回(www.ipalaces.org)

如何在我的页面上考虑浏览器滚动条?我可以制作它,以便滚动条始终可见至少吗?

我的网站是www.ipalaces.org,请告诉我.

html css scrollbar css3

8
推荐指数
3
解决办法
7781
查看次数

发送多个应用程序协议请求(类似于mailto :)

我使用的应用程序已经创建了自己的协议,就像MS为其MSN客户端所做的那样 msnim:chat?contact=test@test.com

但是,我需要创建一个PHP或javascript(或组合)来基本上尽快向协议发送3个请求.如果最终结果是www.test.com/send.php用户链接<a href='www.test.com/send.php'>不会弹出或重定向到页面,我也想要它

<?php header('Location: msnim:chat?contact=test@test.com'); ?> 用户点击href时不会创建新页面或重定向

这是我的概念证明的JQUERY和JSBin

http://jsbin.com/etubas/11/

$(document).ready(function(){
    $("a#click_me").click(function(){
        setTimeout(function(){
            console.log('test ran');
            window.location = 'mailto:test@test.com';
        }, 100);
        setTimeout(function(){
            console.log('new ran');
            window.location = 'mailto:new@new.com';
        }, 200);
    });
});
Run Code Online (Sandbox Code Playgroud)

这似乎适用于IE9,据我所知IE8.Firefox 10似乎也可以,但Chrome 17只能发送第一封电子邮件.

编辑1:更新了MSN而不是AIM链接,以便更加通用于测试,并包括jquery示例和JSbin

编辑2:更新到mailto链接

javascript php jquery protocols header

8
推荐指数
2
解决办法
851
查看次数

MongoDB和DBRef与空间数据一起使用

我有一个包含1亿个几何文档的集合.

我有第二个集合,其中包含与每个其他几何相关联的时间数据.这将是365*96*1亿或3.5万亿个文档.

我不想存储超过需要的1亿个条目(365*96),而是将它们保存在单独的集合中,并在MongoDB中执行一种JOIN/DBRef /尽我所能.

首先,我想通过使用geoIntersection从几何集合中获取GUID列表.这将把它过滤到1亿到5000.然后使用那些5000几何guids我想根据我指定的5000个goemetries和附加日期标准过滤3.5万亿个文档,并汇总数据并找到平均值.对于您指定的日期条件,剩下5,000个几何和5000个平均值.

这基本上是我在SQL中知道的JOIN,这在MongoDB中是可能的,并且可以在不到10秒的时间内以最佳方式完成.

澄清:据我所知,这就是DBrefs所使用的,但我读到它根本没有效率,并且处理这么多数据时它不适合.

join mongodb dbref

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