使用空间点types在MySQL中存储Lat Lng值

技术使用:MySQL 5.1和PHP 5.3 我只是为我正在撰写的网站devise一个新的数据库。 我正在研究现在存储Lat和Lng值的最佳方法。 在过去,我一直在使用DECIMAL,并使用PHP / MySQLselectforms: SQRT(POW(69.1 * (fld_lat – ( $lat )), 2) + POW(69.1 * (($lon) – fld_lon) * COS(fld_lat / 57.3 ), 2 )) AS distance find最近的匹配地点。 开始阅读更多关于新技术,我想知道如果我应该使用空间扩展。 http://dev.mysql.com/doc/refman/5.1/en/geometry-property-functions.html 虽然信息很薄弱,但是如何存储数据还是有问题的。 而不是使用DECIMAL,我现在将使用POINT作为数据types? 另外,一旦存储为POINT,只需要从中获取Lat Lng值,以便我想将其绘制在地图上,还是应该再次将经纬度值存储为DECIMALS? 我知道我应该使用PostGIS作为这里的大多数post说我只是不想学习一个新的数据库,但! 跟进 我一直在玩新的POINTtypes。 我已经能够使用以下添加Lat Lng值: INSERT INTO spatialTable (placeName, geoPoint) VALUES( "London School of Economics", GeomFromText( 'POINT(51.514 […]

JavaScriptparsing器生成器

我见过一些JavaScriptparsing器生成器: Jison( http://zaach.github.com/jison/ ) PEG.js( http://pegjs.majda.cz/ ) ANTLR( http://www.antlr.org/ ) JS / CC( http://jscc.jmksf.com/ ) 有没有人有任何经验? 优缺点都有什么? 这些库准备好了吗? 和性能? 编辑 : 我想parsing和运行在JavaScript中的另一种语言

Git合并到另一个分支是一个双向合并?

我的git回购看起来像这样: _ branch_a / master / \_ branch_b 现在我想将branch_b合并到branch_a中, 而不是分支到master。 所以我做了 git checkout branch_a git merge branch_b 而git去了,发现了一些冲突。 当我做混合git mergetool使用meld在控制台上得到的是 {local}: modified file {remote}: modified file 和一个只显示LOCAL和REMOTE的窗口。 我想知道的是: 为什么不显示主人的共同基础? 在LOCAL和REMOTE之间,我应该编辑哪一个?

同时使用多个前端包pipe理器(Bower,NuGet)

为前端库编写NuGet包的(非官方)惯例似乎是去除JavaScript文件,并将它们放在Scripts文件夹中,然后去掉CSS文件并将它们放在Content文件夹中。 很less将这些文件放在子文件夹中,所以最终会有大量的文件丢弃脚本和内容文件夹。 将自己的代码分开的唯一方法是把它放在一个子文件夹或者一个完全不同的文件夹中(参见添加“App”文件夹的SPA模板Durandal和HotTowel)。 我个人喜欢Twitter Bower提供的“unopinionated”解决scheme。 把所有的前端软件包放在一个名为“组件”的根文件夹中, 不要混淆软件包的原始结构。 我想知道放弃前端图书馆的NuGet,并使用鲍尔,只是想知道是否有任何经验结合这两个? 或者,有没有办法直接使用NuGet来安装GitHub仓库而不创buildNuGet包?

如何使用JACK编译器执行缩小和混淆?

Google已经发布了Android Studio 2.1的Android开发者的新JACK编译器的testing版本。 我的问题是,我们如何使用JACK为APK启用混淆处理? 下面的文章说JACK在本地执行混淆,并且不需要Proguard: 用Jack编译 而下面的文章说JACK使用Proguardconfiguration文件(即.pro文件)来执行模糊处理: 实验新的Android工具链 – 杰克和吉尔 。 它也是这样说的 在这个过程中,Jack还处理任何请求的代码缩小 (缩小和/或混淆 )。 这到底是什么意思? 我们是否必须使用minifyEnabled选项并定义包含Proguard选项的.pro文件? 综上所述: 我们究竟如何使用JACK启用混淆? 我们可以绕过Proguard的使用,还是Proguard在混淆处理中扮演一个事实上的angular色,即使我们用JACK编译? JACK目前是否支持混淆,是否可以在Android Studio的稳定(即非beta / canary)版本中使用? 注意: 我已经提到以下post: 如何在android studio中启用Jack(Java Android编译器工具包) 。 错误:Jack需要支持Java 8语言function 。 更多参考文献 杰克和吉尔在X86上的介绍 。 杰克和吉尔的黑暗面 。 Java 8语言特性 。 更新: Matt Insko的答案是有帮助的,但是我想要更多的细节,以及更精确,规范的答案。

像LinkedIn这样的网站如何有效地在每个人的姓名旁边显示1/2/3级关系?

我最近通过回答一个简单的问题来糟糕的回答了一个面试问题:像LinkedIn这样的网站如何有效地向您显示每个在网页上显示的人的关系距离(第一/第二/第三)(例如,在人员search结果,工作人员列表在一家公司等)? 我得到了解决scheme的基本“技巧”:find“距离我”是一个常见的操作(例如,在一个页面上20x +,每个login会话100个),所以你可以做一部分“距离我X“,将其caching,然后多次重复使用该caching的部分结果,以使其他操作更便宜。 我也猜测,部分结果很可能是我的二级连接,因为“caching所有三级连接”在RAM和CPU中的成本太高。 </ EDIT> 但是,当试图将这种见解转化为解决scheme时,我想出了一个令人尴尬的答案,涉及到创build持久的caching,这个caching是网站上每个人的二级连接(这将会非常昂贵,而且维护复杂)莫名其妙地绕过布鲁姆filter ,这种方式几乎没有技术意义。 我不会在这样的答案之后雇用自己的! 后来,当我在没有面试压力的情况下思考这个问题时,我想出了一个更合理的答案。 build立一个非常快速的方式来获得每批用户ID的第一级连接(批量大小可达〜1000?)。 这可能意味着一个RAM专用服务器集群,它可以将整个networking的第一级连接caching在内存中。 幸运的是,有五千万会员x平均。 每个成员100个连接x每个成员4个字节ID = <25GBcaching在RAM中,这可以通过合理定价的硬件来实现。 而且每天的变化数量将在1%以下,所以保持caching最新不是太难。 (请注意,关系数据库可能是一个不好的select来实现这个caching,因为“大量的随机I / O”访问模式杀死了关系数据库的性能。) 当用户login时,通过获取每个第一级连接的第一级连接来caching他的第二级连接,并且使用散列表(键=第二级ID,值=连接你的第一级连接的数组) 。 同样caching你的第一级连接,这样你就可以通过一次调用将你的第一级和第二级拉回远程caching服务器。 用户ID很容易分区,所以像memcached这样的分布式caching可能会很好地工作。 对于任何用户ID,要查找它是否在您的“networking”中,以及它与您(第一,第二,第三)有什么关系,请执行以下操作: 如果ID在您的一级连接中,请停止。 试着在你的caching二级连接哈希表中查找ID。 如果find,返回连接你的连接数组。 获取ID的第一级连接,并为它们中的每一个重复步骤#2。 将所有结果汇总到一个数组中并返回。 (EDIT)重构为一个批处理实现(“从我到N个不同的用户查找距离”),所以你可以从步骤#3获得所有的远程结果,而不必弥补N个远程调用。 </ EDIT> 但我相信有更好的答案。 你的是啥呢? 如果你想要额外的挑战,试着模拟一个inteview的情况(不能在网上查找解决scheme)。 请注意,这个问题是关于一个最佳的解决scheme,无论LinkedIn今天是如何实际做到的 ,在我写上自己的答案之后,我看了一下。

有和没有指定域名的Cookie(浏览器不一致)

我注意到,在浏览器之间有一些cookie的真正的不一致之处。 这对我来说将是相当长的。 注意:我在我的主机文件“testdomain.com”中设置了一个域,这个bug在使用“localhost”的时候工作。 注2:我很好奇,知道如果这个工作在Apache / PHP上时,如果它返回一个cookie的集合,如果你通过名字检索一个cookie。 维基百科 维基百科指出: http : //en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path 域和path Cookie域和path定义了Cookie的范围 – 它们告诉浏览器,cookies应该只发送给给定域和path的服务器。 如果未指定,则默认为请求的对象的域和path。 所以如果我们按下: Response.Cookies.Add(new HttpCookie("Banana", "2") { }); 我们应该从所请求的对象中获得一个域作为域的cookie,在这种情况下,它应该是“testdomain.com”。 W3 W3在cookies的规范中声明: http : //www.w3.org/Protocols/rfc2109/rfc2109 域=域名 可选的。 “域”属性指定cookie有效的域。 明确指定的域必须始终以点开头。 所以如果我们按下: Response.Cookies.Add(new HttpCookie("Banana", "1") { Domain = Request.Url.Host }); 我们明确地推下了主机名,我们应该在cookie上设置一个域名,这个域名会以“.testdomain.com”作为前缀。 它还说明了维基百科上的内容: 域默认为请求主机。 (请注意,请求主机的开头没有点。) 跟我到目前为止? 如果我使用第一种方法,定义一个域: Response.Cookies.Add(new HttpCookie("Banana", "1") { Domain = Request.Url.Host }); […]

Android持久套接字连接规则

我一直在使用持久套接字对Android设备进行自定义推送通知解决scheme的testing。 我想分享我的发现并validation结果。 简单的描述 应用程序运行前台服务,并build立与服务器的连接,并通过主动ping(10秒间隔)来维护连接。 如果连接被检测为死亡,应用程序会一直试图无限期地重新连接。 服务器通过双工通道发送通知。 testing1: Pinging is done using a timer at 10 second intervals. Server sends notification every minute. Applications acquires wifi and wake locks. Duration : 8 hours Battery loss : ~14% testing2: Pinging is done using AlarmManager at 10 second intervals. Server sends notification every minute. Application acquires only a […]

docker工人如何使用主机操作系统的CPU核心?

基于Docker基于LXC的事实,我的理解是,Docker容器共享来自主机操作系统的各种资源。 我关心的是CPU内核。 这是一个场景: 主机linux操作系统有8个核心 我必须在上面的主机操作系统上部署一组docker容器。 我需要部署的一些docker集装箱将更适合使用2个核心 a)因此,如果我在该主机上运行所有Docker容器,它们是否会按照需要使用CPU /内核,就像它们在该主机操作系统上作为正常安装的应用程序运行一样? b)Docker容器是否会消耗自己的进程,并且其中包含的所有处理都将卡在该父进程的CPU内核中? c)如何指定docker容器使用多个核心(例如4个)。 我看到有一个-C标志,可以指向一个核心ID,但似乎没有选项指定容器随机挑选N个核心。

Cordova:意外机器代码 – 您的上传包含位代码和本地机器代码

我正在构build一个iOS Cordova应用程序。 当我将它上传到iTunes Connect时,它会返回以下错误。 意外的机器码 – 您的上传包含位码和本地机器码。 当你提供位码时,也没有必要包含机器码。 要减less上传的大小,请使用Xcode 7.3或更高版本,或任何其他删除机器代码的工具链。 我今天在config.xml改变了很多设置,所以我不确定自己是否做了错误的事情,并且是某种新的iTunes Connect事情。 据我了解,修改它在Xcode中的一些设置是很容易的,但我想避免碰到Xcode – 有没有办法使用config.xml来修复它? 谢谢 UPDATE 那么,这似乎是一个苹果的问题 – 我能够提交一个构build这样的警告给TestFlight,实际上通过TestFlighttesting,并提交给AppStore。 它还没有通过苹果的审查,但我相信这将是好的,通常情况下,在二进制文件的任何实际问题的情况下,构build立即被拒绝。 更新2 具有这种警告的应用程序(实际上有3个应用程序)实际上已经通过AppStore审查并上市销售。 所以我相信这个问题可以放心的忽略。