小编caw*_*caw的帖子

何时使用Facebook的新Android SDK 3.0请求权限?

随着Facebook的新Android SDK 3.0(几天前发布),身份验证过程发生了变化.

那么你如何申请阅读权限,例如"friends_hometown"?

以下代码是我试图这样做的 - 但我很确定这不是你应该这样做的方式:

版本1:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Session.openActiveSession(this, true, new Session.StatusCallback() { // start Facebook login
        @Override
        public void call(Session session, SessionState state, Exception exception) { // callback for session state changes
            if (session.isOpened()) {
                List<String> permissions = new ArrayList<String>();
                permissions.add("friends_hometown");
                session.requestNewReadPermissions(new Session.NewPermissionsRequest(FBImport.this, permissions));
                Request.executeGraphPathRequestAsync(session, "me/friends/?access_token="+session.getAccessToken()+"&fields=id,name,hometown", new Request.Callback() {
                    ...
                });
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

版本2:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Session currentSession = Session.getActiveSession();
    if (currentSession == null || currentSession.getState().isClosed()) { …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-authentication facebook-android-sdk

37
推荐指数
3
解决办法
4万
查看次数

在Heroku上获取客户端的真实IP地址

在Heroku Cedar上,我想获得客户端的IP.第一次尝试:

ENV['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为所有请求都通过代理传递.所以替代方案是使用:

ENV['HTTP_X_FORWARDED_FOR']
Run Code Online (Sandbox Code Playgroud)

但这不太安全,是吗?

如果它只包含一个值,我就拿这个.如果它包含多个值(以逗号分隔),我可以选择第一个值.

但是,如果有人操纵这个价值呢?我不能相信ENV['HTTP_X_FORWARDED_FOR'],我可以用ENV['REMOTE_ADDR'].并且我也没有可以使用的可信代理列表.

但总是必须有一些方法来可靠地获取客户端的IP地址.你知道吗?

他们的文档中,Heroku描述了X-Forwarded-For"连接到Heroku路由器的客户端的原始IP地址".

听起来好像Heroku可能会X-Forwarded-For用原始的远程IP 覆盖它.这样可以防止欺骗,对吧?有人可以验证吗?

http ip-address heroku

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

MySQL:为什么使用VARCHAR(20)而不是VARCHAR(255)?

可能重复:
对所有基于文本的字段使用泛型varchar(255)是否有缺点?

在MYSQL中,您可以为VARCHAR字段类型选择长度.可能的值为1-255.

但是如果你使用最大的VARCHAR(255)而不是VARCHAR(20),它有什么优势?据我所知,条目的大小仅取决于插入字符串的实际长度.

size(字节)=长度+ 1

因此,如果在VARCHAR(255)字段中有"示例"一词,则它将具有8个字节.如果你在VARCHAR(20)字段中有它,它也会有8个字节.有什么不同?

我希望你能帮助我.提前致谢!

mysql database varchar types

30
推荐指数
3
解决办法
6万
查看次数

提示用户对应用内的Android应用进行评分

在我的Android应用程序中,我想在某个时间点提示用户对Android市场中的应用进行评级.

在搜索了一种方法之后,我在这个网站上找到了一些代码.这段代码似乎运行得很好.

但遗憾的是,当Android市场未安装在用户的手机上时,此代码似乎会引发"强制关闭"错误消息.有没有办法检查Android市场是否已安装,如果没有,请不要尝试执行代码?

引发错误的行可能就是这个,因为它无法解析URI:

mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME)));
Run Code Online (Sandbox Code Playgroud)

顺便说一下,那个代码还有其他可以改进的东西吗?

编辑:

几年后,我将所有代码放入一个小型库项目:GitHub上的AppRater

android user-input voting rating

30
推荐指数
4
解决办法
3万
查看次数

PHP setcookie"SameSite = Strict"?

我最近在属性"Same Site"上阅读了"RFC 6265",我看了一些在2016年4月讨论过的文章,为Chrome 51和Opera 39实现了"同站点"属性...

我想知道当前的PHP是否支持使用此属性创建cookie?

参考:

php security cookies

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

足球模拟游戏

我想建立一个可以模拟足球(足球联赛)比赛的模拟引擎.如果你可以帮助我,那将是很酷的.对我来说重要的是决定哪些行动发生.每个操作的事件侦听器都可以在以后轻松实现.该功能应该只模拟游戏结果和对正在发生的动作的评论.不需要2D/3D图形.我们谈论像Hattrick这样的游戏.


我建议你先做几分钟的行动.

$ minutes = array(1,3,4,7,11,13,...,90,92);

对于这些分钟中的每一分钟,您都可以模拟攻击.

攻击团队由骰子决定:$ attacking = mt_rand(1,2);

所以对我来说最重要的部分是攻击功能.

请编辑我的方法或将其用作样本.你能帮我改进一下吗?该功能应该是复杂的,以便结果尽可能真实.但是你需要在高可预测性和过于随机的结果之间找到一些东西.我只想改进这个功能.

我的方法:

<?php
function Chance_Percent($chance, $universe = 100) {
    $chance = abs(intval($chance));
    $universe = abs(intval($universe));
    if (mt_rand(1, $universe) <= $chance) {
        return true;
    }
    return false;
}
function simulate_attack($teamname_att, $teamname_def, $strength_att, $strength_def) {
    global $minute, $goals, $_POST, $matchReport, $fouls, $yellowCards, $redCards, $offsides, $schuesse, $taktiken;
    // input values: attacker's name, defender's name, attacker's strength array, defender's strength array
    // players' strength values vary from 0.1 to 9.9 …
Run Code Online (Sandbox Code Playgroud)

php simulation

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

在Android的IntentService中等待异步回调

我有一个IntentService在另一个类中启动异步任务,然后应该等待结果.

问题是方法运行完毕后IntentService会立即onHandleIntent(...)完成,对吧?

这意味着,通常,IntentService在启动异步任务后会立即关闭,并且不再存在以接收结果.

public class MyIntentService extends IntentService implements MyCallback {

    public MyIntentService() {
        super("MyIntentService");
    }

    @Override
    protected final void onHandleIntent(Intent intent) {
        MyOtherClass.runAsynchronousTask(this);
    }

}

public interface MyCallback {

    public void onReceiveResults(Object object);

}

public class MyOtherClass {

    public void runAsynchronousTask(MyCallback callback) {
        new Thread() {
            public void run() {
                // do some long-running work
                callback.onReceiveResults(...);
            }
        }.start();
    }

}
Run Code Online (Sandbox Code Playgroud)

如何使上面的代码段工作?我已经尝试在启动任务后放入Thread.sleep(15000)(任意持续时间)onHandleIntent(...).它似乎工作.

但它绝对不是一个干净的解决方案.也许甚至有一些严重的问题.

更好的解决方案?

java android asynchronous intentservice

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

从Activity启动IntentService并在IntentService完成时刷新Activity

在我的Android应用程序中,我有一个带适配器的简单列表视图.有一个繁重的查询是用数据填充列表视图.所以我把它放到另一个线程中运行的IntentService.

IntentService通常单独运行,只是为了查询一些数据并将其插入SQLite数据库.

但现在我想有以下可能性:

  1. 该活动使用startService()启动IntentService.
  2. IntentService做了很多工作.
  3. 当IntentService完成时,它应该通知活动有关结果的信息,以便可以刷新活动以显示新数据.

这可能吗?我在这个主题的Stack Overflow上阅读了很多问题.但在每个问题中,都有另一种解决方案.所以我想问你们所有人:哪种解决方案最符合我的目的?

  • 将IntentService绑定到Activity似乎不是最佳解决方案,因为可能存在与活动的配置更改等冲突.正确吗?
  • 这篇博文建议使用带有Parcelables的AIDL - 这对我来说听起来非常复杂.有一种更简单的方法,不是吗?
  • 可以在活动中设置广播接收器,并在完成后在IntentService中触发此广播.
  • 有人说你应该使用createPendingResult()将PendingIntent传递给IntentService.如果IntentService在其附加内容中发现PendingIntent,则使用它来触发Activity中的onActivityResult().这是选择的方式吗?

multithreading android broadcastreceiver android-intent android-activity

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

PHP:intval()等价于数字> = 2147483647

在PHP 5中,每当我将数字作为输入时,我都使用intval().这样,我想确保我没有字符串或浮动数字.我的输入数字应该都是整数.但是当我得到数字> = 2147483647时,超过了有符号整数限制.

对于所有大小的数字,我能做些什么的intval()?

这就是我想要的:

<?php
$inputNumber = 3147483647.37;
$intNumber = intvalEquivalent($inputNumber);
echo $intNumber; // output: 3147483647
?>
Run Code Online (Sandbox Code Playgroud)

非常感谢你提前!

编辑:根据一些答案,我试图编写一个等效的函数.但它并不像intval()那样完全正常.我怎样才能改进它?这有什么问题?

function intval2($text) {
    $text = trim($text);
    $result = ctype_digit($text);
    if ($result == TRUE) {
        return $text;
    }
    else {
        $newText = sprintf('%.0f', $text);
        $result = ctype_digit($newText);
        if ($result == TRUE) {
            return $newText;
        }
        else {
             return 0;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php types integer numbers

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

如何为国际象棋编程神经网络?

我想编写一个国际象棋引擎,学习如何做出好的动作并赢得其他玩家.我已经编写了国际象棋棋盘的代表和一个输出所有可能动作的函数.所以我只需要一个评估功能,它可以说明董事会的特定情况有多好.因此,我想使用人工神经网络,然后应该评估给定的位置.输出应该是一个数值.值越高,白人玩家的位置越好.

我的方法是建立一个由385个神经元构成的网络:棋盘上有六个独特的棋子和64个场.因此,对于每个场,我们采取6个神经元(每个1个).如果有白色片段,则输入值为1.如果有黑色片段,则值为-1.如果那个场上没有那种,那么值就是0.除此之外,玩家应该有1个神经元移动.如果是白色,则输入值为1,如果是黑色,则值为-1.

我认为神经网络的配置非常好.但缺少主要部分:如何将这种神经网络实现为编码语言(例如Delphi)?我认为每个神经元的权重在开始时应该是相同的.根据匹配的结果,然后应调整权重.但是怎么样?我想我应该让两个电脑玩家(都使用我的引擎)互相对抗.如果White获胜,Black会得到其权重不佳的反馈.

因此,如果您可以帮助我将神经网络实现为编码语言(最好的是Delphi,否则是伪代码)会很棒.提前致谢!

chess artificial-intelligence neural-network

23
推荐指数
4
解决办法
3万
查看次数