小编Ric*_*k77的帖子

Clojure“反复”让“未来”依次运行

虽然这个片段

(dorun 
  (map deref 
    (map #(future 
            (println % (Thread/currentThread))) 
         (range 10))))
Run Code Online (Sandbox Code Playgroud)

打印 10 条混合线,显示不同的线程:

0 #object[java.lang.Thread 0x5f1b4a83 Thread[clojure-agent-send-off-pool-26,5,main]]                                                                                                                           
2 #object[java.lang.Thread 1 0x79dfba1f #object[Thread[clojure-agent-send-off-pool-28,5,main]java.lang.Thread]                                                                                                 
3 4 #object[java.lang.Thread #object[java.lang.Thread 0x7ef7224f Thread[clojure-agent-send-off-pool-27,5,main]0x5f1b4a83 ]Thread[clojure-agent-send-off-pool-26,5,main]]                                       
5                                                                                                                                                                                                              
67  #object[java.lang.Thread #object[0x79dfba1f java.lang.Thread Thread[clojure-agent-send-off-pool-28,5,main]]0x77526645                                                                                      
 8 #object[java.lang.Thread #object[java.lang.ThreadThread[clojure-agent-send-off-pool-29,5,main] ]9 #object[java.lang.Thread 0xc143aa5 0x7ef7224f                                                             Thread[clojure-agent-send-off-pool-31,5,main]]Thread[clojure-agent-send-off-pool-27,5,main]]                                                                                                                       

0x1ce8675f 0x379ae862 Thread[clojure-agent-send-off-pool-30,5,main]Thread[clojure-agent-send-off-pool-32,5,main]]]
Run Code Online (Sandbox Code Playgroud)

正如我所料,以下代码段:

(dorun
  (map deref 
    (map #(future 
            (println % (Thread/currentThread))) 
         (repeatedly 10 #(identity 42)))))
Run Code Online (Sandbox Code Playgroud)

使用相同的线程生成 10 个整齐对齐的字符串:

42 #object[java.lang.Thread 0x1e1b7ffb Thread[clojure-agent-send-off-pool-39,5,main]]                                                                                                                              
42 #object[java.lang.Thread 0x1e1b7ffb Thread[clojure-agent-send-off-pool-39,5,main]]                                                                                                                              
42 #object[java.lang.Thread 0x1e1b7ffb Thread[clojure-agent-send-off-pool-39,5,main]]                                                                                                                              
42 #object[java.lang.Thread 0x1e1b7ffb Thread[clojure-agent-send-off-pool-39,5,main]]                                                                                                                              
42 …
Run Code Online (Sandbox Code Playgroud)

clojure

12
推荐指数
1
解决办法
372
查看次数

测试Google Play的APK扩展服务

我有一个需要大型媒体文件的Android应用程序。

该应用程序运行良好:我可以从本地存储中读取自己的.obb文件格式,并且唯一需要实现的是扩展文件的手动下载过程,因为Google Play无法自行执行此操作。

所有这一切,是因为Google提供了免费好用的文件扩展服务,但不能仅靠信任就可以开始工作。我知道,这与适当的问题无关,但让所有人都沉迷一下吧……

网址https://developer.android.com/google/play/expansion-files.html足够清楚地说明了这一点,以便以任何方式测试手动下载过程,您都需要从商店下载应用,因此您不得不:

  1. 创建apk的签名版本
  2. 在Google Play的Alpha频道上发布
  3. 关联正确的obb

您可以欣喜地看到您的手动下载实施(可能依赖于他们提供的极其易于使用的库)是否可以正常工作。

他们在指南中没有写的是:

  1. 与从头开始执行该过程相比,他们的库可能是一个容易得多的解决方案,但是集成起来仍然很复杂,并且很多事情可能出错
  2. 当您提交新的APK时,发布过程可能需要几个小时
  3. 您需要测试很多边缘情况,并可能进行修复(断开连接,下载服务被终止等)。
  4. 每张纸条,每一个错误都可能意味着要额外上传

归结为:很多事情都会出错,并且每次我需要查看我的代码是否有效时,都会有一个多小时的延迟

我知道我可以在不依赖Google Play服务的情况下单独测试某些组件(例如,唤醒动态),但是当涉及到.obb文件正确时,此繁琐的过程可能会带来很多麻烦。

有一个更好的方法吗?

android google-play google-play-services apk-expansion-files

10
推荐指数
1
解决办法
272
查看次数

XCode 5.x + Maverick在文件操作时崩溃

将操作系统更新为Maverick后,每次尝试"文件操作"时,Xcode 5.01都会崩溃.

对于文件操作,我的意思是需要出现文件选择器窗口的任何操作(例如:分发.ipa,向项目添加文件,打开新项目等),延迟时间从秒到分秒.

错误总是一样的:

Process:         Xcode [2802]
Path:            /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.dt.Xcode
Version:         5.0.1 (3335.23)
Build Info:      IDEApplication-3335023000000000~2
App Item ID:     497799835
App External ID: 84192765
Code Type:       X86-64 (Native)
Parent Process:  launchd [273]
Responsible:     Xcode [2802]
User ID:         501

Date/Time:       2013-10-29 11:06:35.763 +0100
OS Version:      Mac OS X 10.9 (13A603)
Report Version:  11
Anonymous UUID:  0AABAF71-6C8C-CCB9-2914-202CABCF1236


Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
ProductBuildVersion: 5A2053
UNCAUGHT EXCEPTION (NSRangeException): *** -[__NSArrayM …
Run Code Online (Sandbox Code Playgroud)

macos ios xcode5 osx-mavericks

6
推荐指数
1
解决办法
3620
查看次数

无法在Ubuntu上配置/构建CouchNode

我已经通过npm安装了nodejs和模块bedbase。Sofabase也已安装,我可以通过浏览器访问后端。

在Windows上也可以使用相同的server.js文件。

我已经安装了python 2.7。我错过了什么吗?

我收到错误消息:

marcel@servermarcel:~/game$ nodejs server.js

/home/marcel/game/node_modules/couchbase/lib/binding.js:156
  throw new Error('Failed to locate couchnode native binding' +
        ^
Error: Failed to locate couchnode native binding (maybe check builderror.log!)
    at Object.<anonymous> (/home/marcel/game/node_modules/couchbase/lib/binding.js:156:9)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/marcel/game/node_modules/couchbase/lib/couchbase.js:3:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
Run Code Online (Sandbox Code Playgroud)

当我查看builderror.log时,我看到:

$all to 'node -e "require('nan')"' returned exit status 1.le trying to load binding.gyp

gyp ERR! configure error
gyp ERR! stack …
Run Code Online (Sandbox Code Playgroud)

ubuntu node.js couchbase node-gyp couchnode

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

具有可选属性的GLSL着色器

我正在尝试创建一个übershader来表示一些可能不包含某些属性的波前数据,例如:

  1. 一个或多个对象可能包含uv坐标和纹理
  2. 每个顶点可能包含一个或多个对象的法线贴图
  3. 一种或多种材质可能使用不同的照明类型渲染,并且包含用于凹凸贴图的纹理

等等。

现在,为此创建一个übershader可能是(或不是)一个好主意(我正在实验),但是我面临的问题是指定了某些属性而没有指定某些属性(缺少制服,例如未设置纹理采样器)用布尔制服进行处理,以开启和关闭采样功能)。

是什么在GLSL 3.00 v发生时的属性 没有被分配(这意味着没有glEnableVertexAttribArray,比如,还没有缓冲势必/任何东西),并没有在GLSL程序用于读取(例如,我将使用一个统一的boolean,以转缺少UV坐标时,可以进行纹理查找,尽管我仍然可以在顶点着色器和片段着色器之间插入/插入坐标,如下所示:

// Vertex shader
in vec3 vn;
out vec3 fvn;

[...]

fvn = vn;
Run Code Online (Sandbox Code Playgroud)

...)?

这是对glsl的合法使用吗?还是会引起奇怪的兼容性问题(正如OpenGL ES3.0标签所暗示的,我正在为移动设备开发)?

我正在寻找第一手经验或权威信息,

谢谢!

opengl-es glsl opengl-es-3.0

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