小编Jul*_*lhé的帖子

Bundle不想安装gem(尚未签出)

我想在rails服务器上运行Ruby,但某个gem不想安装.这个rails程序与ruby 2.0不兼容,所以我想使用我安装的ruby 1.9.3,但我不能再捆绑安装...

$ bundle install
# ...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
$ bundle exec rails s
git://github.com/goodtouch/jbuilder.git (at master) is not yet checked out. Run `bundle install` first.
$ bundle show jbuilder
/Users/julien/.bundler/ruby/2.0.0/jbuilder-7fb0eae924c7
$ ruby --version
ruby 1.9.3p545 (2014-02-24 revision 45159) [x86_64-darwin13.1.0]
Run Code Online (Sandbox Code Playgroud)

Gemfile,我指定ruby "1.9.3",然后我又跑bundle install了,得到了:

Your Ruby version is 2.0.0, but your Gemfile specified 1.9.3
Run Code Online (Sandbox Code Playgroud)

Gemfile这个特定宝石的行:

gem 'jbuilder', git: "git://github.com/goodtouch/jbuilder.git" …
Run Code Online (Sandbox Code Playgroud)

ruby gem ruby-on-rails bundler

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

如何使用套接字地址获取自己的IP地址?

我想获取我的程序启动的计算机的IP地址,然后能够将其发送到客户端,但我总是得到0.0.0.1而不是真正的IP地址(例如127.0.0.1).

我目前能够获得端口,但不能获得IP地址.

我怎么才能得到它?

最好的解决方案是能够获得它sockaddr_in.这是我目前正在做的事情:

int open_connection(char* ip, int* port)
{
  int                   sock;
  struct sockaddr_in    sin;
  socklen_t             len;
  int                   i;

  i = 0;
  len = sizeof(sin);
  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
    return (-1);
  bzero(&sin, sizeof(struct sockaddr_in));
  sin.sin_family = AF_INET;
  if (bind(sock, (struct sockaddr *) &sin, sizeof(sin)) != 0)
    perror("Error on bind");
  if (getsockname(sock, (struct sockaddr *)&sin, &len) != 0)
    perror("Error on getsockname");
  strcpy(ip, inet_ntoa(sin.sin_addr)); // IP = 0.0.0.0
  *port = sin.sin_port;
  return (sock);
}
Run Code Online (Sandbox Code Playgroud)

编辑:我理解我用我的思维方式走错了方向.所以我的问题是:获取自己的IP地址的最佳方法是什么?

c sockets linux networking

7
推荐指数
2
解决办法
2万
查看次数

如何使用传单显示"Google API指示"折线?

我想在带有传单的地图上显示行程.

为此,我在Google地图路线API上发出了获取请求.我得到一个这样的json:

{
    "routes" : [
        {
            "bounds" : {
                "northeast" : {
                    "lat" : 51.5103406,
                    "lng" : -0.0627423
                },
                "southwest" : {
                    "lat" : 51.5049264,
                    "lng" : -0.0898856
                }
            },
            "copyrights" : "Données cartographiques ©2014 Google",
            "legs" : [
                {
                    "distance" : {
                        "text" : "3,0 km",
                        "value" : 2959
                    },
                    "duration" : {
                        "text" : "7 minutes",
                        "value" : 427
                    },
                    "end_address" : "29 Fowey Close, Londres E1W 2JP, Royaume-Uni",
                    "end_location" : {
                        "lat" : 51.5064421,
                        "lng" : …
Run Code Online (Sandbox Code Playgroud)

gis google-maps google-maps-api-3 leaflet

7
推荐指数
2
解决办法
4840
查看次数

使用yarn工作区和typescript的项目引用来引用另一个包子目录

我使用yarn工作区,并具有以下软件包:

  • 包/ x-cli
  • 包/ x-core

我希望能够以相同的方式从x-core子目录导入符号import map from 'lodash/map',例如:

import { fn } from '@mycompany/x-core/test';
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

tsc -b packages/x-core packages/x-cli
packages/x-cli/src/main.ts:1:20 - error TS2307: Cannot find module '@mycompany/x-core/test'.

1 import { fn } from "@mycompany/x-core/test";
                     ~~~~~~~~~~~~~~~~~~~~~~~~

error Command failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

但是,如果将其导出到库的根目录中,则可以使用:

import { otherFn } from '@mycompany/x-core';
Run Code Online (Sandbox Code Playgroud)

我在GitHub上做了一个小项目来展示我的设置,基于lerna-yarn-workspaces-example:https : //github.com/julienfouilhe/example-subdirectory-workspace-typescript-import

有没有办法做到这一点,我找不到任何有效的方法。我对模块分辨率了解不多,所以我无法确切指出问题所在!

typescript typescript-typings yarnpkg yarn-workspaces

7
推荐指数
1
解决办法
305
查看次数

最有效的算法是在二维图中找到最大的正方形

我想知道不同的算法,找到点缀着障碍物的二维地图中的最大正方形.

一个例子,哪里o是障碍:

...........................
....o......................
............o..............
...........................
....o......................
...............o...........
...........................
......o..............o.....
..o.......o................
Run Code Online (Sandbox Code Playgroud)

最大的广场将是(如果我们选择第一个):

.....xxxxxxx...............
....oxxxxxxx...............
.....xxxxxxxo..............
.....xxxxxxx...............
....oxxxxxxx...............
.....xxxxxxx...o...........
.....xxxxxxx...............
......o..............o.....
..o.......o................
Run Code Online (Sandbox Code Playgroud)

找到它的最快算法是什么?复杂度最小的那个?

编辑:我知道人们对接受的答案中解释的算法感兴趣,所以我做了一个文档,解释了它,你可以在这里找到它:

https://docs.google.com/document/d/19pHCD433tYsvAor0WObxa2qusAjKdx96kaf3z5I8XT8/edit?usp=sharing

algorithm

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

有没有办法列出使用过的变量?

假设我有一个基本的 go 文本/模板:

{{.var}} is another {{.var2}}
Run Code Online (Sandbox Code Playgroud)

我想获得模板中使用的变量名称的数组,如果它们在我传递给执行的数据中不可用,则能够跳过执行,是否有可能以某种方式做到这一点?

由于我的数据不是结构而是映射,执行 .var 总是会返回一些东西:如果它不存在,它会在我希望在执行模板时出现错误时返回一个空字符串。

所以对于上面的例子,我希望得到:

[var var2]
Run Code Online (Sandbox Code Playgroud)

templates go go-templates

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

MongoDB聚合,按子对象键分组

我有一个mongo集合,其架构如下所示:

_id: ObjectId(),
segments: {
  activity: 'value1',
  activation: 'value2',
  plan: 'value3'
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用聚合框架来找出我的多少文档具有细分活动的value1。

问题是,如果可能的话,我想针对同一请求中的每个细分进行此操作,而且我不知道我将拥有多少个细分,甚至不知道它们的名称。

基本上,这就是我想要做的:

如果我有这两个文件:

{ _id: 1, segments: { activity: 'active', activation: 'inactive', plan: 'free' }
{ _id: 2, segments: { activity: 'inactive', activation: 'inactive', plan: 'free' }
Run Code Online (Sandbox Code Playgroud)

我希望能够看到其中两个将激活段设为非激活和免费计划,并且该活动具有1个非激活值和1个激活值。这是我想要得到的:

{ 
  activity: {
    active: 1,
    inactive: 1
  },
  activation: {
    inactive: 2
  },
  plan: {
    free: 2
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,基本上,如果您只需要$group按键就可以了!像这样:

{
  $group: {
    _id: { $concat: [ '$segments.$key', '-', '$segments.$key.$value' ],
    count: { $sum: 1 }
  } …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

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

如何在 React Native 中获取 Native 元素的尺寸和位置

我正在使用一个框架react-native-svg来在 React Native 视图中绘制 SVG 元素。

我的目标是当我点击视图时(我PanResponder在全局视图上使用 a来获取它),最接近点击的元素会发生变化。

我拥有我需要的一切,除了一件事:我需要能够知道我的 svg 元素的位置以及它们的大小,以便找到最接近点击事件的元素。

现在,我已经尝试了大部分可用的东西:

  • onLayout:那些 svg 元素似乎不是视图,因此不会调用 onLayout 回调。
  • this.refs.elem.measure: 与 相同onLayout,它们不是视图,因此measure函数未定义。
  • UIManager.measure(ReactNative.findNodeHandle(this.refs.elem), callback): 除了 react-native-svg 组件 Svg 之外,所有值都返回 0,但不是所有其他值:G、Path、Line 等。

所以我想知道是否还有其他解决方案,或者我是否注定要失败。:) 我是否必须更改 react-native-svg 中的某些内容才能让我找到这些值,或者是否有任何解决方案适合我?

谢谢!

react-native

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

获取位于 Assets.xcassets 的数据集中文件的路径

我的文件中有一组音频文件Assets.xcassets

Assets.xcassets

我正在尝试获取这样的音频文件之一的路径:

let path: String = Bundle.main.path(forResource: "acoustic_grand_piano/A4", ofType: "f32")!
Run Code Online (Sandbox Code Playgroud)

但我得到一个EXC_BAD_INSTRUCTION. 我试图在互联网上查看,但在数据集上找不到任何内容。

如何获取这些文件之一的内容?

谢谢!

bundle swift swift3

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

将pcm加载到AVAudioPCMBuffer

我有以下代码:

func loadSoundfont(_ pitch : String) {
    let path: String = Bundle.main.path(forResource: "\(self.id)/\(pitch)", ofType: "f32")!
    let url = URL(fileURLWithPath: path)

    do {
        let file = try AVAudioFile(forReading: url, commonFormat: AVAudioCommonFormat.pcmFormatFloat32, interleaved: true)
        let format = file.processingFormat
        let capacity = AVAudioFrameCount(file.length)
        self.buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: capacity)
        try file.read(into: self.buffer!)
    } catch let error as NSError {
        print("ERROR HERE", error.localizedDescription)
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:1954115647这是:kAudioFileUnsupportedFileTypeError

我的A4.f32文件包含PCM浮点32。在这里我缺少什么吗?我的文件中没有标题,是否可能导致此问题?

avfoundation swift swift3

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