PHP是我定期使用的那种语言之一,但是当我再次开始使用它时,通常不得不关闭蜘蛛网.本周同样适用于我将一些C代码移植到PHP.这使用了大量的AES加密和SHA256散列 - 到目前为止一切正常.但是,解密的字符串以"C"形式出现 - 即以零字节后跟"垃圾"填充字节终止.
我目前使用以下内容将这些C风格的字符串"修剪"为PHP表单:
$iv = strpos( $hashsalt8, "\0");
if ($iv)
$hashsalt8 = substr( $hashsalt8, 0, $iv );
Run Code Online (Sandbox Code Playgroud)
似乎啰嗦而且应该有一个单行函数调用,但我找不到它?
注意:虽然在这种情况下"哈希盐"名称意味着我可能知道原始字符串的长度,但在一般情况下这是未知的.显然,substr()当先验已知长度时,可以使用单线解决方案.
我一直在为北美和西欧/中欧的路线距离和旅行时间使用商业解决方案.我正在考虑将项目扩展到其他国家 - 也许是整个世界.各个商业提供商的预算和区域覆盖范围非常有限,可能使本地托管的OpenStreetMap成为唯一可行的选择.在有人建议在线解决方案之前,我的应用程序需要大量的密集路由计算 - 如果使用Web服务执行,这将花费很多或非常不礼貌(并且可能被禁止).计算结果将放回公共领域,因此重新编写OpenStreetMaps不是问题.
我的问题是如何评估OpenStreetMap数据库中各个国家/地区的路由数据覆盖率?这样的评估可以确定项目是否可行,以及适当的处理顺序(即,首先覆盖最佳的国家).
高端商业数据提供商通常可以提供统计描述,以及调查覆盖范围的区域描述.OpenStreetMap更加零散 - 一个区域通常包括一些道路,但不是所有道路.几米甚至10-20米的个别位置误差对我的应用来说不是问题(我正在看城市距离),但路线图连通性是.IE浏览器.道路矢量必须在交叉点逻辑上正确地相遇.
有没有人试图创建描述OpenStreetMap数据库数据覆盖范围的统计数据?
如果没有,你会怎么做?
我能想到的最好的方法是对地方(例如城市)进行随机抽样,然后尝试计算路线.必须假设主要道路将倾向于在次要道路之前添加.因此,两个遥远城市之间的路线将使用逻辑主要道路,而不是较小的道路(通常较长/较慢),因为主要道路缺失.
另一个问题是,实际上不可能在许多城镇之间开车.这通常是由于岛屿的存在(可以使用渡轮),但通常没有地面路线(例如努纳武特的定居点).那么,在(比方说)汤加和阿富汗之间进行比较时,如何使用这些统计数据.阿富汗的数据覆盖率可能非常低.汤加可能更好,但定居点遍布群岛.
关于我的申请的一些细节:所有起点和终点都是城镇和城市,其位置取自Geonames数据库.通常情况下,我正在查看一个国家中人口至少为1000的1000个最大城市.目前,路线一式两份计算为最快路线和最短路线.合理的道路速度根据广泛的道路类别而变化.估计的行程时间与道路距离一起计算.这些细节是对一致性的偏好 - 它们不是一成不变的.
给定定向的未加权图并且问题是找到最大长度的简单路径(起始顶点和结束顶点不固定).它显然可以在O(n ^ 2*2 ^ n)中解决,但我听说有O(n*2 ^ n)算法,我不知道.那么如何在O(n*2 ^ n)中解决它?// n = | V |
我正在使用AWS基础架构开发更广泛的Web应用程序.它有两个'worker'组件,它们从SQS读取工作并将结果写入RDS数据库.其中一个是Python,我已经在单个Elastic Beanstalk实例上工作了.第二个使用.NET,我目前正在研究如何部署它.对于生产,两者都具有多个实例的弹性.
由于这些处理组件不是Web应用程序(即它们不响应http请求),我必须明确地启动它们.对于Python示例,我使用.ebextensions文件:
container_commands:
02-start-command:
command: "nohup python scannerapp.py > foo.out 2> foo.err < /dev/null &"
leader_only: false
Run Code Online (Sandbox Code Playgroud)
如何使用.NET应用程序执行相同的操作?与上面的Python/Linux示例一样,Windows配置文件支持"命令"和"容器命令",但这些文件适用于启动程序(例如安装程序).IE浏览器.在命令退出之前,启动/安装不会完成.nohup命令解决了Python的问题.如何使用.NET worker应用程序执行此操作?
或者它太难了,我应该考虑首先移植到MONO并使用其中一个Linux选项?(MONO运行成本预计会更具成本效益,因此它已经列入未来的待办事项列表)
我想将"EPSG:4326"设置为OpenLayers地图的投影,但是当我尝试它时,我总是得到"EPSG:900913".
function init() {
var options = {
projection: new OpenLayers.Projection("EPSG:4326") // ignored
};
map = new OpenLayers.Map('map', options);
var layer = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
map.addLayer(layer);
...
alert(map.getProjection()); // returns "EPSG:900913"
...
}
Run Code Online (Sandbox Code Playgroud)
基本地图是开放的街道地图.
如何将投影设置为EPSG:4326?
我使用python中的postgresql更新了数据库表我的代码是
import psycopg2
connection=psycopg2.connect("dbname=homedb user=ria")
cursor=connection.cursor()
l_dict= {'licence_id':1}
cursor.execute("SELECT * FROM im_entry.usr_table")
rows=cursor.fetchall()
for row in rows:
i=i+1
p = findmax(row)
#print p
idn="id"
idn=idn+str(i)
cursor.execute("UPDATE im_entry.pr_table SET (selected_entry) = ('"+p+"') WHERE image_1d ='"+idn+"'")
print 'DATABASE TO PRINT'
cursor.execute("SELECT * FROM im_entry.pr_table")
rows=cursor.fetchall()
for row in rows:
print row
Run Code Online (Sandbox Code Playgroud)
我显示了更新的表格
但当我通过psql显示更新的表作为homedb =#SELECT*FROM im_entry.pr_table; 我显示了一个空表...有什么不对?请帮我
我想序列化这样的东西,其中有一个标题和一个正文.
第一部分"galleryData"是标题第二部分是"imageData" - 为图库中的每个图像重复
<galleryData>
<title>some title</title>
<uuid>32432322</uuid>
<imagepath>some path</imagepath>
</galleryData>
<imageData>
<title>title one</title>
<category>nature</category>
<description>blah blah</description>
</imageData>
<imageData>
<title>title two</title>
<category>nature</category>
<description>blah blah</description>
</imageData>
<imageData>
<title>title three</title>
<category>nature</category>
<description>blah blah</description>
</imageData>
Run Code Online (Sandbox Code Playgroud)
如果我不需要标题区域,我会看到如何做到这一点.我目前只是使用xmlwriter来创建它,但我想将对象序列化为xml.
我有以下代码连接到InputSheet的Worksheet_Change事件:
Private Sub Worksheet_Change(ByVal Target As Range)
' First, make sure we're working with an InputRange cell
' ALL OTHER CELLS: Exit, no action
Dim rngCells As Range
Set rngCells = Intersect(Target, InputSheet.Range("InputRange"))
If rngCells Is Nothing Then
Exit Sub
End If
' Do interesting stuff that updates InputSheet
End Sub
Run Code Online (Sandbox Code Playgroud)
此代码仅用于处理单元格子集(InputRange),但更新此范围之外的其他单元格.每个更新(可能有几百个)都会触发Worksheet_Change事件.
有没有办法在执行期间禁用它,然后在最后重新启用?
例如.某些语言有函数调用来执行此操作,或者甚至在VBA中,可以通过暂停计时器来禁用计时器事件.
我可以添加一个简单的标志,这将避免Intersect通话.毫无疑问,这会提高速度,但仍会导致不必要的事件回调.
我对 Espresso 很陌生,但我正在尝试测试一个相对简单的 Activity。我的 android 应用程序有自己的自定义 Application 类。我如何告诉 Espresso 使用此类的模拟(或自定义)版本?
这是我的应用程序的自定义版本。它创建了一些测试数据(为简洁起见在此处进行了编辑)。接下来,我还将覆盖一些方法。
public class MockMyApplication extends MyApplication {
@Override
public void onCreate() {
super.onCreate();
// create some location data for testing
DataRecord rec = new DataRecord(1);
rec.setName("TestLoc1");
rec.setDescription("an important customer");
MyData.add(rec);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用它进行测试,如下所示:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class LocEditActivityTest extends AndroidJUnitRunner {
@Rule
public ActivityTestRule<LocEditActivity> activityTestRule
= new ActivityTestRule<>(LocEditActivity.class);
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws IllegalAccessException, ClassNotFoundException, InstantiationException {
return super.newApplication(cl, MockMyApplication.class.getName(), context);
}
@Test
public void …Run Code Online (Sandbox Code Playgroud) android unit-testing android-espresso android-application-class
我正在使用 SPARQLWrapper 将 SPARQL 查询发送到 Wikidata。目前我正在尝试查找实体的所有属性。例如。使用一个简单的元组,例如:wd:Q11663 ?a ?b. 这本身就有效,但我正在尝试为返回的属性和实体找到人类可读的标签。
尽管SERVICE wikibase:label可以使用 Wikidata 的 GUI 界面工作,但这不适用于 SPARQLWrapper - 它坚持为变量及其“标签”返回相同的值。
查询属性rdfs:label适用于实体 (?b),但此方法不适用于属性 (?a)。
看起来该属性正在作为完整的 URI 返回,例如http://www.wikidata.org/prop/direct/P1536. 使用 GUI 我可以成功查询wd:P1536 ?a ?b.. 如果我将它作为第二个查询发送 - 但不是在第一个查询中,这适用于 SPARQLWrapper。
这是我的代码:
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://query.wikidata.org/sparql")
sparql.setQuery("""
SELECT ?a ?aLabel ?propLabel ?b ?bLabel
WHERE
{
wd:Q11663 ?a ?b.
# Doesn't work with SPARQLWrapper
#SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
#?prop wikibase:directClaim ?p
# but …Run Code Online (Sandbox Code Playgroud)