小编Rak*_*Pai的帖子

访问没有``sudo``的GPIO(树莓派)

当然,这个问题可能并不特定于树莓派.另外,我对Linux比较陌生.

我想写一个小库(在node.js中,如果这很重要)来使用sysfs访问raspberry pi的GPIO.但是,访问sysfs需要sudo访问权限,这显然是有原因的.

Quick2Wire似乎有一个解决方案,但我想更好地理解它,而不是盲目地使用它.他们当然使用了C语言,但从我的理解来看,代码并不复杂,而且可能只用bash就可以完成,即使不那么优雅.但是,最重要的是,我不确定它为什么会起作用.

任何帮助都会很棒.

编辑:感谢您的评论.很明显,我需要重新解释这个问题.这里说:一旦安装(作为root),应用程序不再需要使用根权限吗?在这种情况下,如何将某人添加到群组中?/sys/devices/virtual/gpio不是gpio sysfs可用的位置,那有什么诀窍呢?我真的是一个n00b,所以这些问题可能是n00b-ish,所以请耐心等待.

linux sudo gpio raspberry-pi

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

ID(来自mongo的ObjectIds)是否可以在URL中使用?

我最近被告知在URL中使用mongodb _id字段是不安全的.我想知道这是不是真的.

我的网站仅限注册用户,每个用户的URL端点都包含来自mongo的ID.这是典型的mongodb _id字段 - SHA1.AFAIK,id是不可取的,即使有人点击别人的id,我的应用程序中基于会话的身份验证也不允许访问.除应用程序本身外,没有人可以直接访问数据库.

我很想知道是否有任何我想念的东西.

编辑:澄清的问题.(mongodb ObjectID不是SHA1)

security url mongodb

15
推荐指数
2
解决办法
4064
查看次数

在Node.js上通过XMPP连接到Google Talk

我尝试过为Node.js使用各种XMPP库,但是无法连接到Google Talk的XMPP服务器.我想连接和阅读朋友的状态,但我甚至无法出门!

  1. 我有一个通过Google Apps for Domains托管的个人域名,例如mydomain.com.
  2. 我已经编写了以下代码 - 它使用了node-xmpp库(https://github.com/astro/node-xmpp):

    jid = 'ryan@mydomain.com';
    password = 'my_google_password';
    
    // Establish a connection
    var conn = new xmpp.Component({
        jid         : jid,
        password    : password,
        host        : 'talk.google.com',
        port        : 5222
    });
    conn.on('online', function(){
        sys.put("ONLINE");        
    });
    conn.on('error', function(e) {
         sys.puts(e);
    });
    
    Run Code Online (Sandbox Code Playgroud)

建立连接,但身份验证失败,我从Google Talk收到此消息:

<stream:error xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
    <not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-streams"/>
</stream:error>
Run Code Online (Sandbox Code Playgroud)

......我错过了什么吗?我已经尝试过其他库(https://github.com/mwild1/xmppjs),甚至是Python库,但仍然无法进行身份验证.我100%确定我的Google用户名和密码是否正确 - 任何提示/想法?

xmpp google-talk node.js

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

将所有http重定向到nginx中的https,但一个文件除外

我目前正在http上运行我的网站,并希望将其移至https,以便nginx自动处理重定向.我想,这是相当微不足道的.

但是,有一个文件(由于多种原因)与其他网站热链接,其中一些是通过http而一些通过https.我想确保该文件可通过http和https使用,以确保浏览器不会抱怨"混合内容"对话框.该文件的路径如下所示:

HTTP(S)://mydomain.com/scripts/ [some_sha1_hash] /file.js

因此,nginx规则应该说:"如果请求已经通过https,一切都很好,只需反向代理它.否则,将所有请求从http重定向到https,除非请求这一个文件,在这种情况下,请做任何这样的http-> https重定向."

任何人都可以告诉我在哪里学习这样的配置,或者帮我配置本身?提前致谢.(对不起,但我在nginx配置上还不够熟练.)

ssl https redirect http nginx

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

查找字符串是否与模式匹配

在我的应用程序的某一点上,我需要在模式上匹配一些字符串.假设一些示例字符串如下所示:

  1. 嗨,约翰.
  2. 今天多么美好的一天!
  3. 今天可爱的日落,约翰,不是吗?
  4. 约翰,你今天会见琳达吗?

这些字符串中的大多数(不是全部)来自预定义的模式,如下所示:

  1. "你好,%s."
  2. "今天多么美好的一天!"
  3. "今天可爱的日落,%s,不是吗?"
  4. "你今天会见到%s,%s?"

这个模式库不断扩展(目前约为1,500),但需要手动维护.但是输入字符串(第一组)在很大程度上是不可预测的.虽然它们中的大多数都会匹配其中一种模式,但有些模式不会.

所以,这是我的问题:给定一个字符串(来自第一组)作为输入,我需要知道它匹配的模式(已知的第二组).如果没有匹配,它需要告诉我.

我猜测解决方案涉及从模式中构建正则表达式,并迭代检查哪一个匹配.但是,我不确定构建这些正则表达式的代码是什么样的.

注意:我在这里给出的字符串仅用于说明目的.实际上,字符串不是人类生成的,而是计算机生成的人性友好字符串,如上所示,来自我无法控制的系统.由于它们不是手动输入的,因此我们不需要担心拼写错误和其他人为错误.只需要找到它匹配的模式.

注意2:我可以将模式库修改为其他格式,如果这样可以更容易地构造正则表达式.printf样式为%s的当前结构并非一成不变.

regex pattern-matching node.js

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

使用Firefox扩展名将焦点设置到地址栏

我正在开发一个扩展程序,该扩展程序需要在某个时候将焦点设置到地址栏。我一直在尝试RTFM,但是FM太难读了!

有人知道在Firefox扩展中将焦点设置到地址栏的任何方法吗?

TIA。

javascript firefox-addon setfocus

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

在正在运行的系统上交换逻辑

我想设计这个有两个主要组成部分的系统:

  1. 基础/核心的东西.永远不变.
  2. 东西在核心上运行.经常变化.

这将在Java中开发,但问题适用于任何经典的OO语言.如何在正在运行的系统中替换2以上而不重新编译1,并且在运行时甚至不停止1.重新编译2是可以的,但我不应该打扰1.

有没有任何设计模式可以做到这一点?我认为这有点类似于插件行为,但2实际上对应用程序的工作至关重要,而不仅仅是附加组件.

java oop design-patterns

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