小编lol*_*ter的帖子

在Mac OSX上为OpenCV编译Android JNI

忍受我 - 这是一个很长的描述,但我想包括所有细节.我正在尝试使用Android NDK和JNI来构建OpenCV Android应用程序.

我正在按照本教程安装所有内容:http: //www.stanford.edu/class/ee368/Android/Tutorial-2-OpenCV-for-Android-Setup-Macintosh-API8.pdf

以下安装就好了:

/usr/bin/g++
/usr/local/bin/swig
/usr/bin/cmake
/usr/bin/make
/Developer/pcre-8.32/
Run Code Online (Sandbox Code Playgroud)

我的.bashrc文件的内容:

export  NDK=/Users/Me/Code/Android/android-ndk-r4-crystax
export  SDK=/Users/Me/Code/Android/adt-bundle-mac-x86_64-20130219/
export  OPCV=/Users/Me/Code/OpenCV/opencv
export  PATH=$NDK:$SDK/tools:$SDK/platform-tools:$PATH
export NDK_ROOT=$NDK
Run Code Online (Sandbox Code Playgroud)

使OpenCV库运行得很好.

由于使用投诉make,我不得不做一个小编辑,/Users/Me/Code/OpenCV/opencv/android/android-jni/local.env.mk其中看起来像这样:

#ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax
ANDROID_NDK_ROOT=/Users/Me/Code/Android/android-ndk-r4-crystax
Run Code Online (Sandbox Code Playgroud)

然后再次尝试make在android-jni目录中,灾难来袭:

/Users/Me/Code/Android/android-ndk-r4-crystax/ndk-build OPENCV_CONFIG=../build/android-opencv.mk \
    PROJECT_PATH= ARM_TARGETS="armeabi armeabi-v7a" V= 
Gdbserver      : [arm-eabi-4.4.0] /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi/gdbserver
Gdbsetup       : /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi/gdb.setup
Gdbsetup       : + source directory /Users/Me/Code/OpenCV/opencv/android/android-jni/jni
Gdbserver      : [arm-eabi-4.4.0] /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi-v7a/gdbserver
Gdbsetup       : /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi-v7a/gdb.setup
Gdbsetup       : + source directory /Users/Me/Code/OpenCV/opencv/android/android-jni/jni
SharedLibrary  : libandroid-opencv.so
/Users/Me/Code/Android/android-ndk-r4-crystax/build/prebuilt/darwin-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: cannot find -lopencv_calib3d
collect2: ld returned …
Run Code Online (Sandbox Code Playgroud)

c++ java java-native-interface android opencv

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

sqlalchemy并发更新问题

我有一个表,jobs与领域id,rank和日期时间started在一个MySQL的InnoDB数据库。

每次流程获得一项工作时,它都会“签出”该工作以将其标记为已开始,以便其他任何流程都无法对其进行处理。

我希望具有会话的单个进程能够:

  1. 寻找排名最高的工作
  2. 将此作业的开始字段更新为当前时间戳

而不会冒任何其他会话也可以选择并开始排名最高的工作的风险。其他会议也随时改变排名。

这是我的尝试:

session.execute("LOCK TABLES jobs READ")
next_job = session.query(Jobs).\
    filter(Jobs.started == None).\
    order_by(Jobs.rank.desc()).first()

# mark as started
smt = update(Jobs).where(Jobs.id == next_job.id).\
    values(started=datetime.now())
session.execute(smt)
session.execute("UNLOCK TABLES")
Run Code Online (Sandbox Code Playgroud)

但这失败了:

OperationalError: (OperationalError) (1099, "Table 'jobs' was locked with a READ lock and can't be updated")
Run Code Online (Sandbox Code Playgroud)

无论如何,我宁愿以SQLAlchemy提供的更加Python化的方式进行操作。我怎样才能做到这一点?


编辑:澄清一下,我说的是数据库中的读/写并发,而不是线程/进程同步。我的工作人员将遍布网络。

python mysql sql concurrency sqlalchemy

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

简单映射分区作业(py)spark

这是我的代码:

# map function
def echo(lines):
    if lines:
        for i, line in enumerate(lines):
            print i, "=>", line

# load the data
idsFile = "ids.txt"  # Should be some file on your system
linesData = sc.textFile(idsFile).cache()

# clean it
cleanLinesData = linesData.map(lambda line: line.strip())
filteredLinesData = cleanLinesData.filter(lambda line: True if line else False)

# setup task
answers = filteredLinesData.mapPartitions(echo, 2)  # split file into 2 pieces
Run Code Online (Sandbox Code Playgroud)

和文件ids.txt:

1,2,3,4,5,1
6,4,8,3,2
9,9,9,9,9,9
100000000,1
10,10,10
1,2,4,2
Run Code Online (Sandbox Code Playgroud)

要运行它,我运行:

$ IPYTHON=1 pyspark --master local[2] …
Run Code Online (Sandbox Code Playgroud)

python ipython apache-spark

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

Tensorflow数据集.map()API

关于这一点的几个问题

对于我想在Tensorflow中执行以下操作的情况(假设我通过加载WAV文件创建训练示例):

import tensorflow as tf 

def _some_audio_preprocessing_func(filename):
   # ... some logic here which mostly uses Tensorflow ops ...
   with tf.Session(graph=tf.Graph()) as sess:
        wav_filename_placeholder = tf.placeholder(tf.string, [])
        wav_loader = io_ops.read_file(wav_filename_placeholder)
        wav_decoder = contrib_audio.decode_wav(wav_loader, desired_channels=1)
        data = sess.run(
                [wav_decoder],
                feed_dict={wav_filename_placeholder: filename})
        return data

dataset = tf.data.Dataset.list_files('*.wav')
dataset = dataset.map(_some_preprocessing_func)
Run Code Online (Sandbox Code Playgroud)
  1. 如果我有一个使用张量操作的parse_image()函数 - 它应该是主图的一部分吗?按照Google自己的音频TF教程中的示例设置,看起来他们创建了一个单独的图表!这不会破坏使用Tensorflow使事情变得更快的意义吗?
  2. 每当任何一行不是来自tensorflow库时,我都会使用tf.py_func()吗?再次,我想知道性能影响是什么以及何时应该使用它...

谢谢!

python tensorflow tensorflow-datasets

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

ECS Fargate NGINX 容器未在 CloudWatch 日志中显示错误

我的 nginx Dockerfile:

FROM nginx:1.15.12-alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY ./nginx/nginx.conf /etc/nginx/conf.d

# Forward request logs to Docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
  && ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80
ENTRYPOINT ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)

我的 ECS 任务定义中的容器:

[
  {
    "name": "nginx",
    "image": "<ECR REPO HERE>",
    "networkMode": "awsvpc",
    "essential": true,
    "portMappings": [
      {
        "containerPort": 80,
        "protocol": "http"
      }
    ],
    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
        "awslogs-group": "mygroup",
        "awslogs-region": "us-east-1",
        "awslogs-stream-prefix": "nginx"
      }
    },
    "essential": true
  }
]
Run Code Online (Sandbox Code Playgroud)

然而,当部署任务时,它失败了,并且在 …

nginx amazon-ecs amazon-cloudwatch docker aws-fargate

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

无法在 Mac OSX 上使用 clang++ 编译 C++17

铿锵++版本:

Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Run Code Online (Sandbox Code Playgroud)

尝试一些 C++ 并行性:

Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Run Code Online (Sandbox Code Playgroud)

我尝试过使用所有这些进行编译:

#include <algorithm>
#include <execution>
#include <iostream>
#include <vector>
#include <random>
#include <math.h>

#define N 10000000

double myFunction(double x) {
    return pow(x, x) / (int(x) % 3);
}

int main() {
    std::random_device rd;
    std::uniform_real_distribution<double> uniform(0.0, 20.0);

    std::vector<double> inputs;
    std::vector<double> returnValues;
    for (int i = 0; i < N; ++i) {
        double r …
Run Code Online (Sandbox Code Playgroud)

c++ macos g++ clang++ c++17

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

通过家庭网络传输高清视频

只是寻找一些建议,指示和进一步阅读的建议.

我有:

  1. 1个路由器
  2. 1个linux服务器(ubuntu 10.04)
  3. 2台电视
  4. 各种发言者
  5. 2台桌面
  6. 1台iPad

我想创建一个家庭网络,以便向我的服务器发出请求(可能是对PHP脚本的GET请求),我的服务器可以开始将音频或视频流式传输到任何设备.我认为使用IP(台式机,iPad等)的东西会更容易,但对其他东西不确定(我没有IP电视).我想通过无线方式做到这一点,但我可能需要以太网用于高清视频等.

你能推荐什么?我被推荐给MBone.也许我的问题源于我无法理解如何将流式视频推送到电视,这是"愚蠢"(没有处理器甚至IP地址).

linux video streaming networking video-streaming

4
推荐指数
1
解决办法
8804
查看次数

DynamoDB 插入(放置)项目 - 返回创建的项目?

在我的 Python 脚本中,我将一条记录(项目)插入 DynamoDB 表中,但我意识到来自 AWS 的响应不包括插入的实际项目:

{'ResponseMetadata': {'HTTPHeaders': {'connection': 'keep-alive',
   'content-length': '2',
   'content-type': 'application/x-amz-json-1.0',
   'date': 'Fri, 27 Jan 2017 23:31:22 GMT',
   'server': 'Server',
   'x-amz-crc32': '234324243',
   'x-amzn-requestid': 'xxxxxxxxxx'},
  'HTTPStatusCode': 200,
  'RequestId': 'xxxxxxxxxx',
  'RetryAttempts': 0}}
Run Code Online (Sandbox Code Playgroud)

这很不幸,因为我的逻辑如下:

if not user.exists():
    user = create_user()
else:
    user = get_user()

user.do_something()
Run Code Online (Sandbox Code Playgroud)

我不想再做一次往返只是为了获取我刚刚插入的用户对象。

当然,我可以模拟该对象,因为boto3在 Python 中使用该user对象只是一个类似字典的东西,但能够仅使用单个表示形式是很好的。似乎也有put_item电话

r = user_table.put_item(Item={'user_id': uid, 'info' : { ... }})
Run Code Online (Sandbox Code Playgroud)

应该能够返回放置的项目?或者其他一些端点可以吗?

感谢您的任何见解!

python amazon-web-services amazon-dynamodb

4
推荐指数
1
解决办法
4923
查看次数

Vue.js支持道具验证

我有一个带有以下道具声明的子组件:

   props: {
        count: Number,
        maxNum: Number
   }
Run Code Online (Sandbox Code Playgroud)

这通常很好,但我也已maxNum映射到输入字段:

<input type="text" v-model="maxNum" value="maxNum">
Run Code Online (Sandbox Code Playgroud)

因此,即使用户在输入中输入"4",Vue.js也认为它是一个字符串,而实际上如果正确解析则它是一个有效数字.

我尝试这样做,但它没有在输入"apple"上正确失败:

   props: {
        maxNum: {
            validator: function (v) {
                parseInt(v);
                return true;
            }
        }
   }
Run Code Online (Sandbox Code Playgroud)

当涉及v模型时,验证道具的规定方式是什么?

javascript vue.js vuejs2

4
推荐指数
1
解决办法
1978
查看次数

使用 AWS ALB 让子域指向不同的目标组

现在我有一个域 ( example.com),我在 Google Domains 上托管,但使用 Amazon 的 Route 53 DNS 服务器,并且我创建了一个托管区域并使用 ACM 免费注册了 SSL 证书。所以我让它接受请求example.com并将它们转发到目标组(EC2 实例)。

我想将其扩展为:

  • staging.example.com
  • prod.example.com

每个人都有自己的目标群体。

这可以用 ALB 实现吗?我将如何将其编码到负载均衡器的路由规则中?

(另外:我是否必须重新验证子域的 SSL 证书?)

subdomain ssl-certificate amazon-web-services aws-application-load-balancer

4
推荐指数
1
解决办法
1672
查看次数