天道酬勤,学无止境

技术分享

moment.js date validation from array of formats

问题 我需要测试正确日期格式的输入。 我想接受几种日期格式,所以我创建了一个验证函数来测试至少一种格式是否正常,在这种情况下返回 true。 我使用 moment.js 来测试日期。 当我简单地使用硬编码字符串日期格式键入条件时,该函数可以正常工作: var multiDateValidator = function (value) { if ((moment(value, 'DD/MM/YYYY', true).isValid()) || (moment(value, 'D/M/YYYY', true).isValid()) || (moment(value, 'DD.MM.YYYY', true).isValid()) || (moment(value, 'D.M.YYYY', true).isValid()) || (moment(value, 'DD. MM. YYYY', true).isValid()) || (moment(value, 'D. M. YYYY', true).isValid())) { return true; } return false; }; 但是如果我想使用允许的日期格式列表,它就不起作用,它永远不会返回 true。 var allowedDateFormats = ['DD/MM/YYYY', 'D/M/YYYY', 'DD.MM.YYYY

2022-07-11 10:01:53   javascript   momentjs

ERROR: The requested URL could not be retrieved

问题 我在 CodeIgniter 中有一个项目并托管在子域中,但它有一个错误: 所请求的网址无法检索 这是它的图片:错误 回答1 回答2 在将您的代码从 localhost 移动到实时服务器之前,请使用此强制性部分。 在配置文件中更改base_url 。 在.htaccess文件中进行必要的更改更改数据库连接credentials 这将对您有所帮助。 回答3 以下步骤对我有用 - 在 windows 机器上搜索代理设置禁用所有代理设置

2022-07-11 10:01:45   php   codeigniter   cpanel

Test if a variable is read-only

问题 为了测试一个变量是否是只读的,有以下丑陋的黑客: # True if readonly readonly -p | egrep "declare -[:lower:]+ ${var}=" # False if readonly temp="$var"; eval $var=x 2>/dev/null && eval $var=\$temp 有没有更优雅的解决方案? 回答1 使用 subshel​​l 似乎有效。 具有本地和导出变量。 $ foo=123 $ bar=456 $ readonly foo $ echo $foo $bar 123 456 $ (unset foo 2> /dev/null) || echo "Read only" Read only $ (unset bar 2> /dev/null) || echo "Read only" $ $ echo $foo $bar 123 456 # Still intact :-) 重要的是,子shell 甚至可以挽救您的 RW(在这种情况下为 $bar)在当前 shell 中未设置。 用 bash 和 ksh 测试。 回答2 您还可以向变量添加一个空字符串,它仍然保留其值,但比使用子外壳更快,例如: foo+= 2>/dev/null || echo "Read only" 捕获为函数,它将是: is

2022-07-11 10:01:42   bash

How to Set an existing ECS cluster to a compute environment in AWS Batch

问题 我在我的环境中运行了一个ECS cluster ,它配置了任务、存储库和服务以及自动缩放。 我正在发现AWS Batch服务,当我创建一个新的compute environment时,一个新的集群被添加到ECS服务中。 我想知道如何为我现有的集群设置compute environment ? 回答1 我知道这是一个很老的问题,而且情况并不完全相同,但我正在努力解决类似的问题,所以它可能对某人有帮助。 在我的情况下,Batch 覆盖了我的ECS_DISABLE_IMAGE_CLEANUP设置,导致我特殊的专用超高优先级作业队列(及其计算环境)丢失其图像,当它们必须再次被拉出时会导致令人讨厌的延迟。 为了解决这个问题,我必须创建一个启动模板(在 EC2 控制台中),将所有内容设置为“不要更改”,以及一些额外的“用户数据”(在高级部分的末尾): MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo ECS_DISABLE_IMAGE_CLEANUP=true>>/etc/ecs/ecs.config --=

2022-07-11 10:01:38   amazon-web-services   cluster-computing   solution   amazon-ecs

How do I specify URL resolution in python's requests library in a similar fashion to curl's --resolve flag?

问题 我正在编写一些 python 客户端代码,并且由于一些环境限制,我想指定一个 URL 并控制它的解析方式。 我可以通过 curl 使用 --resolve 标志来完成此操作。 有没有办法用 Python 的 requests 库做类似的事情? 理想情况下,这将在 Python 2.7 中工作,但我也可以让 3.x 解决方案工作。 回答1 在做了一些挖掘之后,我(不出所料)发现 Requests 通过要求 Python 来解析主机名(这是要求你的操作系统来做)。 首先,我找到了一些示例代码来劫持 DNS 解析(告诉 urllib2 使用自定义 DNS),然后我在套接字文档中找到了有关 Python 如何解析主机名的更多细节。 然后只需将所有内容连接在一起即可: import socket import requests def is_ipv4(s): # Feel free to improve this: https://stackoverflow.com/questions/11827961/checking-for-ip-addresses return ':' not in s dns_cache = {} def add_custom_dns(domain, port, ip): key = (domain, port) # Strange parameters

2022-07-11 10:01:34   python   python-requests

How to render edges as cylinders?

问题 我已经加载了一个 OBJ 多面体,并使用 EdgesGeometry() 来提取它的边缘: var edges = new THREE.LineSegments(new THREE.EdgesGeometry(child.geometry), new THREE.LineBasicMaterial( {color: 0x000000}) ); 但我想将每个边缘渲染为具有可配置半径的圆柱体。 像这样的东西: 回答1 可定制的解决方案,您可以从以下方面着手: var edgesGeom = new THREE.EdgesGeometry(dodecahedronGeom); //EdgesGeometry is a BufferGeometry var thickness = 0.25; // radius of a cylinder for (var i = 0; i < edgesGeom.attributes.position.count - 1; i+=2){ // when you know that it's BufferGeometry, you can find vertices in this way var startPoint = new THREE.Vector3( edgesGeom.attributes.position.array[i * 3 + 0

2022-07-11 10:01:30   three.js   rendering   edges

Removing ggplot2's geom_point icons from the legend

问题 注意:这是对这个问题的跟进。 首先是重现数据的代码: mydf <- data.frame(year = c(rep(2000, 3), rep(2002, 3), rep(2004, 3), rep(2006, 3), rep(2008, 3), rep(2010, 3), rep(2012, 3), rep(2014, 3), rep(2016, 3)), answer = rep(c("A great deal", "Hardly any", "Only some"), 9), result = c(0.3015940, 0.1399303, 0.5584757, 0.2269548, 0.1792754, 0.5937698, 0.2955301, 0.1309859, 0.5734840, 0.3008197, 0.1344499, 0.5647303, 0.1919454, 0.2026290, 0.6054256, 0.1059793, 0.4190533, 0.4749674, 0.1190636, 0.3631279, 0.5178085, 0.1518314, 0.3181203, 0.5300483, 0.1424715, 0.3094615, 0.5480669)) mydf$year <- factor(mydf$year) mydf$answer

2022-07-11 10:01:23   r   ggplot2

Cmake override find_package for a given target

问题 我们有一个 CMakeLists.txt,它将(例如)opencv 链接到我们的各种二进制文件。 这是按如下方式完成的: find_package(OpenCV REQUIRED core imgproc highgui contrib) target_link_library(XXX opencv_core) 我们还希望允许构建库的人提供自己的 opencv 库。 似乎这可以通过将 -DCMAKE_PREFIX_PATH 设置为正确的路径来完成。 cmake -DCMAKE_PREFIX_PATH=".../mybuild/include;.../mybuild/lib" . 但是我想确保使用的库正是客户端指定的库(即,如果 /mybuild/lib 中没有任何内容,则配置失败)。 如何允许构建库的人覆盖使用的库? (如果没有指定它应该回退到 find_package-s) 回答1 简而言之 如果包提供<package>Config.cmake脚本,用户可以指定<package>_DIR CMake 变量来定位这个脚本。 在这种情况下,可以使用find_package()的NO_DEFAULT_PATH选项禁用搜索其他地方。 如果使用Find<package>.cmake脚本搜索包,如果用户提供了提示变量但它是错误的,则没有(通用)方法可以禁用搜索其他地方。 解释 首先,

2022-07-11 10:01:20   cmake

In for each loop i want to skip ", " in last iteration

问题 我想在最后一次迭代中跳过打印“,”。 我想要名称,名称,名称等输出 现在我得到的输出是名字,名字,名字, StringBuffer stringBuffer = new StringBuffer(); for(MovieModel.Cast cast : movieModelList.get(position).getCastList()){ stringBuffer.append(cast.getName() + ", "); } 回答1 StringBuffer stringBuffer = new StringBuffer(); for(MovieModel.Cast cast : movieModelList.get(position).getCastList()){ if (stringBuffer.length() != 0) { stringBuffer.append(","); } stringBuffer.append(cast.getName()); } 回答2 // copied from https://commons.apache.org/proper/commons-lang/apidocs/src-html/org/apache/commons/lang3/StringUtils.html public static String join

2022-07-11 10:01:16   java   android   arrays   android-layout

Check key exist in python dict

问题 下面是文件输出: apples:20 orange:100 下面是代码: d = {} with open('test1.txt') as f: for line in f: if ":" not in line: continue key, value = line.strip().split(":", 1) d[key] = value for k, v in d.iteritems(): if k == 'apples': v = v.strip() if v == 20: print "Apples are equal to 20" else: print "Apples may have greater than or less than 20" if k == 'orrange': v = v.strip() if v == 20: print "orange are equal to 100" else: print "orange may have greater than or less than 100" 在上面的代码中,我写的是“if k == 'orrange':”,但根据输出文件,它实际上是“橙色”。 在这种情况下,我必须打印或输出文件中不存在范围键。 请帮我。 这个怎么做 回答1 使用in关键字。 if 'apples' in d: if d[

2022-07-11 10:01:12   python   python-2.7