小编Gde*_*lin的帖子

如何在Perl中获取给定索引处的字符?

如果我有一个Perl字符串:

$str = "Hello";
Run Code Online (Sandbox Code Playgroud)

如何获得与charAt(index)类似的给定索引的字符?

string perl

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

在Meteor中,如何在服务器确认之前将新插入的数据显示为灰色?

假设我的应用程序有一个某种项目列表,用户可以在列表中插入新项目.

Meteor通常做的是:当用户在列表中插入项目时,它会立即显示在浏览器中,而无需等待服务器确认.

我想要的是:当一个项目处于此状态(已提交但尚未被服务器确认)时,它将显示在列表中的正确位置,但显示为灰色.

有没有办法让Meteor这样做?

meteor

31
推荐指数
1
解决办法
2708
查看次数

如果用户未使用Devise进行身份验证,则重定向到登录页面

我正在使用Devise和Ruby on Rails.

如果未经身份验证的用户尝试访问需要身份验证的页面,建议将其重定向到会话#new页面?

现在我得到一个错误,说明没有路由匹配他们尝试访问的路由(导致生产中出现404错误).

ruby-on-rails devise warden ruby-on-rails-4

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

何时在Ruby on Rails中使用memoization

2008年7月中旬,Memoization被添加到Rails核心.这里使用的演示.

我还没有找到任何关于何时应该记忆方法的好例子,以及每个方法的性能影响.例如,这篇博客文章表明,通常不应该使用备忘录.

对于可能具有巨大性能影响的东西,除了提供简单的教程外,似乎没有什么资源可供使用.

有没有人看到他们自己的项目中使用的memoization?哪些因素会让您考虑记忆方法?


在我自己做了一些研究之后,我发现在Rails核心中使用了很多次memoization.

这是一个例子:http://github.com/rails/rails/blob/1182658e767d2db4a46faed35f0b1075c5dd9a88/actionpack/lib/action_view/template.rb.

这种用法似乎违背了上述博客文章的发现,发现备忘可能会损害性能.

ruby performance ruby-on-rails memoization

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

android OneSignal导入错误

嗨,我正在尝试在Android中使用OneSignal,我正在按照本教程在Android Studio中安装SDK.这里

我能够编译依赖项并同步gradle文件.但是当我要导入com.onesignal.OneSignal;它时说:无法解析符号!

这是我在app.gradle文件中的依赖项

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.onesignal:OneSignal:1.10.+@aar'
    compile 'com.google.android.gms:play-services-gcm:+'
    compile 'com.google.android.gms:play-services-analytics:+'
    compile project(':gson-2.2.2')
    compile project(':java_websocket')
    compile project(':signalr-client-sdk')
    compile project(':signalr-client-sdk-android')
}
Run Code Online (Sandbox Code Playgroud)

我完成的事情:

1. File > Synchronize
2. File > Invalidate Cashes and Restart
Run Code Online (Sandbox Code Playgroud)

更新:

我做了一个新项目的步骤,这没关系!为什么我不能在这个具体项目中做到这一点?

编辑:

整个build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "ir.irsapardaz.sina.gamev01"
        manifestPlaceholders = [manifestApplicationId:"${applicationId}"]
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    } …
Run Code Online (Sandbox Code Playgroud)

android build.gradle onesignal

8
推荐指数
2
解决办法
4981
查看次数

使用OneSignal,我正在尝试将玩家ID保存为javascript变量,API不清楚

我有一个连接到Cordova/iOS应用程序的OneSignal帐户.我需要将播放器ID保存在我自己的数据库中,这样我就可以在任务到期或事件发生时向特定用户发送推送通知.

我在这里查看了API:https://documentation.onesignal.com/reference#view-device 但我不知道如何调用JavaScript函数将标识符保存到变量中.没有这方面的例子.

任何帮助将非常感激.

javascript ios cordova onesignal

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

Milkman的推动ANE不适用于iOS10

我在我的iOS和Android应用程序中使用Milkman EasyPush ANE进行推送通知.与OneSignal后端一起使用.

一切都适用于iOS 9和Android,但没有iOS 10设备注册.我正在使用AnimateCC(与Flash CC Pro相同)和Air SDK 23构建.

如果我在iOS 10设备上调试并监听onRegFailed事件,我得到:

"找不到有效的aps-environment权利申请"

如上所述,iOS 9没有问题.

当我将IPA上传到App Store时,我收到以下消息:

缺少推送通知权利 - 您的应用程序包含Apple推送通知服务的API,但应用程序签名中缺少aps-environment权利.要解决此问题,请确保在Provisioning Portal中为推送通知启用了App ID.然后,使用包含aps-environment权利的分发配置文件为您的应用签名.这将创建正确的签名,您可以重新提交您的应用程序.有关详细信息,请参阅"本地和推送通知编程指南"中的"供应和开发".如果您的应用不使用Apple推送通知服务,则无需执行任何操作.您可以从将来的提交中删除API以停止此警告.如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息.

但是为什么它在iOS 9上运行,而不是在iOS 10上呢?

谢谢您的帮助

air push-notification entitlements ios onesignal

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

applicationId显示占位符,表示多个构建版本无法正常工作

我正在修改当前的android项目,因此它可以安装在同一设备上,用于多种口味和构建配置.

的build.gradle:

{
    // ...
    defaultConfig {
        applicationId "com.myapp"
        manifestPlaceholders = [
            manifestApplicationId: "${applicationId}",
            onesignal_app_id: "xxxx",
            onesignal_google_project_number: "xxxx"
        ]
    // ...
    }

    productFlavors {
        production {
            applicationId "com.myapp"
            // ...
        }

        dev {
            applicationId "com.myapp.dev"
            // ...
        }

        // ...
    }

    buildTypes {
        release {
            // ...
        }

        debug {
            applicationIdSuffix ".debug"
            // ...
        }
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml:

<manifest ... >
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    <permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />      
    <!-- ... -->

    <receiver
        android:name="com.onesignal.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action …
Run Code Online (Sandbox Code Playgroud)

android buildconfig gradle android-manifest manifest-merging

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

在ruby进程之间使用大型数据对象

如果使用Marshal.dump写入文件,我有一个大约10兆字节的Ruby哈希.在gzip压缩之后它大约是500千字节.

迭代和更改此哈希在ruby中非常快(一毫秒的分数).即使复制它也非常快.

问题是我需要在Ruby on Rails进程之间共享此哈希中的数据.为了使用Rails缓存(file_store或memcached)执行此操作,我首先需要Marshal.dump文件,但是在序列化文件时会产生1000毫秒的延迟,在序列化时会产生400毫秒的延迟.

理想情况下,我希望能够在不到100毫秒的时间内从每个进程保存和加载此哈希.

一个想法是生成一个新的Ruby进程来保存这个哈希,为其他进程提供一个API来修改或处理其中的数据,但我想避免这样做,除非我确定没有其他方法可以共享这个对象很快.

有没有一种方法可以更直接地在进程之间共享此哈希,而无需序列化或反序列化它?

这是我用来生成类似于我正在使用的哈希的代码:

@a = []
0.upto(500) do |r|
  @a[r] = []
  0.upto(10_000) do |c|
    if rand(10) == 0 
      @a[r][c] = 1 # 10% chance of being 1
    else
      @a[r][c] = 0
    end
  end
end

@c = Marshal.dump(@a) # 1000 milliseconds
Marshal.load(@c) # 400 milliseconds
Run Code Online (Sandbox Code Playgroud)

更新:

由于我的原始问题没有得到很多答复,我假设没有像我希望的那样简单的解决方案.

目前我正在考虑两种选择:

  1. 创建Sinatra应用程序以使用API​​存储此哈希以修改/访问它.
  2. 创建一个C应用程序,与#1一样,但速度要快得多.

我的问题的范围已经增加,使得哈希可能比我原来的例子更大.所以#2可能是必要的.但是我不知道从哪里开始编写暴露适当API的C应用程序.

通过如何最好地实施#1或#2的良好演练可能会获得最佳答案.

更新2

我最终将它实现为一个用Ruby 1.9编写的独立应用程序,它具有与应用程序实例通信的DRb接口.我使用Daemons gem在Web服务器启动时生成DRb实例.启动时,DRb应用程序从数据库加载必要的数据,然后与客户端通信以返回结果并保持最新.它现在在生产中运行得很好.谢谢您的帮助!

c ruby performance serialization ruby-on-rails

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

OneSignal和Xamarin iOS的问题

我在我的Xamarin iOS应用程序中使用OneSignal服务,符合以下文档:https://documentation.onesignal.com/docs/xamarin-sdk-setup

我已经完成了所有步骤,但是如果我覆盖了AppDelegate方法

OnResignActivation
DidEnterBackground
WillEnterForeground
WillTerminate
OnActivated
Run Code Online (Sandbox Code Playgroud)

我收到了下一个错误:

ObjCRuntime.RuntimeException: Cannot get the method descriptor for the selector 'oneSignalApplicationDidBecomeActive:' on the type 'AppDelegate', because the selector does not correspond to a method
Run Code Online (Sandbox Code Playgroud)

我需要覆盖那些方法,我的错误是什么?

谢谢!

xamarin.ios ios xamarin onesignal

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

推送通知需要很长时间才能到达

iOS和Android的adobe air应用程序中的推送通知存在一个奇怪的问题.

我正在使用Milkman Games的Easy Push ANE以及One Signal服务.

问题是通知确实到达,但有时(随机),消息发送后可能需要15分钟才能到达设备.

这对我的应用程序(出租车预订应用程序)至关重要,因为我依赖于出租车应用程序和用户应用程序之间通信的推送通知.因此,例如,如果用户请求出租车,则可能需要长达15分钟才能通知出租车应用程序.

与One Signal支持人员交谈,根据他们的说法,一切都很好,如果我查看One Signal仪表板,通知几乎会立即发送.

这种延误可能是什么原因?我能做些什么才能让事情变得更好?

谢谢.

air android push-notification ios onesignal

3
推荐指数
1
解决办法
5566
查看次数