小编zsl*_*ltg的帖子

我在哪里?(Geolocation,Emacs,Perl)

这是其中之一"肯定有一些通用实用程序比我提出的快速和肮脏的东西更好"问题.就像我一样,我知道如何以几种临时方式做到这一点,但是我喜欢使用标准.

简介:我正在寻找合理的标准和无处不在的工具来确定我目前的地理位置.可从Linux/UNIX命令行,Perl,Emacs等调用.

详情:

一个微不足道的情况激发了这个问题(但毫无疑问,更重要的应用程序):我使用emacs org-mode,经常记录日志或日记.我实际上并没有太多使用官方组织模式日记 - 主要是,我将时间戳放在普通的组织模式日志中,隐藏在看起来像链接的元数据中.

[[metadata: timestamp="<2014-01-04 15:02:35 EST, Saturday, January 4, WW01>" <location location="??" timestamp="??"/>][03:02 PM]]
Run Code Online (Sandbox Code Playgroud)

如你所见,我很久以前就添加了记录我位置的功能.但到目前为止我不得不手动设置它.我很懒,经常忽略手动设置位置.(次要注意:我记录了我最后一次手动设置位置,在移动时有用,而忽略了手动更改我的位置.

我更希望有自动推断我的位置的代码.特别是因为我上个月旅行的时间相当多,但是对于我每天都在这里工作的六个地方来说可能更有用:家庭,工作,海边,标准餐厅,我在吃午餐或早餐. .

我可以使用任何一种工具来计算我的位置,例如

  • 我在哪里 - 在Google地图上查看您当前的位置 - ctrlq.org/maps/where/

  • http://www.wolframalpha.com/input/?i=Where+am+I%3F

  • Perl CPAN包,例如IP :: Location - 将IP地址映射到某个位置

    • 注意:NAT后面的私有IP地址不一定有用
    • 但可以与traceroute结合使用

和启发式,如查看WiFi SSID等.

我已经编写了一些东西.

但是......这比我编码的更深入.

上述技术都不是完美的 - 例如,我可能没有net.connectivity等.有些是特定于操作系统的.

如果已经有一些开源设施,我应该使用它.

因此我的问题是:有没有合理无处不在的地理位置服务?

我的收藏

  • 跨越OS操作

    • Cygwin的
    • Linux的
    • Android的?OS-X?(只使用OS标准)
    • 例如尝试执行像Windows netsh这样的命令,如果失败...
  • 命令行实用程序

    • Perl等
    • 可以在emacs中调用
    • 因为那是我想要使用它的地方
    • 但我相信我希望能够在其他地方使用它.
  • 可以连接到广泛可用的标准地理定位服务

    • 例如Perl CPAN IP ::位置,IP-> country/city/...
    • 例如谷歌等,从浏览器推断地理位置
  • 即使无法连接到标准地理定位服务或Internet,也能正常工作

    • 例如缓存最后位置
    • 例如,将名称与专用网络环境相关联的能力
    • 例如,如果在与网络隔离的实验室中
    • 或在家里,连接到WiFi,但宽带下来
    • 例如,看看无线SSID
  • 定制

    • 可以使用属于任何普遍存在的地理定位数据库的信息
    • 例如,我可能会将某些SSID视为我的家或办公室.
  • 学到了

    • 知道(或可以了解)某些SSID是移动的,而不是地理位置固定的(例如我手机上的移动热点) …

linux emacs perl cygwin geolocation

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

在数据库中存储不平衡树

我正在一个需要在数据库中存储Tree结构的项目中,过去我已经处理过相同的情况,并且使用了特定的解决方案(如下所述)。

我知道没有BEST解决方案,通常最好的解决方案是提供主要优点的解决方案,但是毫无疑问,这是最糟糕的解决方案,我不想使用它。

正如我所说的,我需要:

  • 存储不平衡的树结构
  • 任何节点都可以有“无限”个子节点
  • 能够轻松(递归)获得一个节点的所有子代
  • 能够轻松“重建”树状结构

我过去使用的解决方案包括使用VARCHAR(X * Y)主键,其中:

  • X是可能的“假设”最大水平
  • Y是一个节点的“假设”最大直接子代数的字符数...

如果我具有:-最多3个级别,则X = 3-
每个节点最多20个直接子代,Y = 2(20个有两个字符-然后可以存储多达99个子代)

PRIMARY KEY列将创建为 VARCHAR(6)

ID是PARENT ID+的组合NODE_ID

NODE ID是一个增量数值,在左侧用零填充。

然后,第一层中的节点将存储为:
[01,02,03,04,...,99]

第二层中的节点将存储为:
[0101, 0102, 0103, ..., 0201, 0202, 0203, ... , 9901, 9999]

第三层中的节点将存储为:
[010101, 010102, 010103, ..., 020101, 020102, 020301, ... , 990101, 999999]

等等...

优点:

  • 重建树很容易
  • 获得一个特定节点(例如select ... where id like '0101%')的子级列表非常容易
  • 标识符和父链接只有一列。

缺点:

  • 必须定义最大数量的儿童/水平
  • 它的XY值是伟大的id关键将是太长了
  • VARCHAR类型作为主键
  • 更改树结构(将一个节点从一个父节点移动到另一个父节点)将很困难(如果不是不可能的话),而且很费力,因为有必要为该节点及其所有子节点重新创建整个id。 …

mysql sql tree

5
推荐指数
0
解决办法
164
查看次数

如何使用 curl 删除 GitLab 存储库?

我可以使用 GitHub 实现这一点。但是我无法对 GitLab 做同样的事情。目前,我所拥有的是:

curl -u "$user:$token" -H "Content-Type:application/json" -H "PRIVATE-TOKEN:$token" \
-X DELETE https://git.lab.com/api/v4/projects/$repo_name
Run Code Online (Sandbox Code Playgroud)

然后我收到这个错误:

curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
Run Code Online (Sandbox Code Playgroud)

我已经有一个使用 curl 在命令行上创建 GitLab 存储库的工作脚本,所以我的 curl 工作正常。我只需要删除部分。

git rest curl token gitlab

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

如何使用 zkCli 从 ZooKeeper 访问受保护的 znode?

我使用以下命令创建了一个 znode:

zookeeper-0:/opt/zookeeper/bin # ./zkCli.sh create /mynode content digest:user:pass:cdrwa
Run Code Online (Sandbox Code Playgroud)

现在如何使用 zkCli.sh 实用程序访问 znode?

zookeeper-0:/opt/zookeeper/bin # ./zkCli.sh get /mynode
Connecting to localhost:2181

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
Authentication is not valid : /mynode
zookeeper-0:/opt/zookeeper/bin #
Run Code Online (Sandbox Code Playgroud)

getAcl 显示以下内容:

zookeeper-0:/opt/zookeeper/bin # ./zkCli.sh getAcl /mynode
Connecting to localhost:2181

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
'digest,'user:pass
: cdrwa
zookeeper-0:/opt/zookeeper/bin #
Run Code Online (Sandbox Code Playgroud)

apache-zookeeper

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

标签 统计

apache-zookeeper ×1

curl ×1

cygwin ×1

emacs ×1

geolocation ×1

git ×1

gitlab ×1

linux ×1

mysql ×1

perl ×1

rest ×1

sql ×1

token ×1

tree ×1