小编Jay*_*esh的帖子

在Node.js中读取环境变量

有没有办法在Node.js代码中读取环境变量?

比如Python的os.environ['HOME'].

javascript environment-variables node.js

1240
推荐指数
7
解决办法
57万
查看次数

清理旧的远程git分支机构

这是我的git工作流程.

我在两台不同的计算机(A和B)上工作,并在dropbox目录中存储一个公共git远程.

假设我有两个分支主人和开发人员.两者都在追踪他们的远程对手origin/master和origin/devel.

现在,在计算机A上,我删除了分支开发 - 本地和远程 - 如下所示:

git push origin :heads/devel

git branch -d devel
Run Code Online (Sandbox Code Playgroud)

现在如果我git branch -a在电脑A上做,我明白了

master
origin/HEAD
origin/master
Run Code Online (Sandbox Code Playgroud)

我现在去电脑B.做git fetch.我可以删除本地开发分支

git branch -d devel
Run Code Online (Sandbox Code Playgroud)

但我无法删除远程开发分支.

git push origin :heads/devel

error: unable to push to unqualified destination: heads/proxy3d
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
fatal: The remote end hung up unexpectedly …
Run Code Online (Sandbox Code Playgroud)

git git-branch

646
推荐指数
7
解决办法
30万
查看次数

从Python字典对象中提取键值对的子集?

我有一个大的字典对象,有几个键值对(大约16),但我只对它们中的3个感兴趣.实现这一目标的最佳方式(最短/最有效/最优雅)是什么?

我所知道的最好的是:

bigdict = {'a':1,'b':2,....,'z':26} 
subdict = {'l':bigdict['l'], 'm':bigdict['m'], 'n':bigdict['n']}
Run Code Online (Sandbox Code Playgroud)

我相信有比这更优雅的方式.想法?

python dictionary associative-array

278
推荐指数
8
解决办法
18万
查看次数

如何直接跳转到Vim中的列号

有时为了调试目的,我必须做一些令人兴奋的工作,涉及到缩小的javascript代码.这些线宽达600列.异常报告库非常友好,可以以行号和列号的形式为我提供准确的崩溃坐标.但是我找不到直接跳转到列号的方法,即使我可以很容易地跳到这一行.

我该怎么做?

vim

219
推荐指数
4
解决办法
7万
查看次数

使用python中的map处理列表时获取项目的索引

在使用map()处理列表时,我想在lambda内部访问项目的索引.我怎样才能做到这一点?

例如

ranked_users = ['jon','bob','jane','alice','chris']
user_details = map(lambda x: {'name':x, 'rank':?}, ranked_users)
Run Code Online (Sandbox Code Playgroud)

如何在上面的示例中获得每个用户的排名?

python

59
推荐指数
4
解决办法
5万
查看次数

在Android上将音频路由到蓝牙耳机(非A2DP)

我有一个非A2DP单耳BT耳机(Plantronics 510),并希望与我的Android HTC Magic一起使用,以收听播客/有声读物等低质量音频.

经过大量的谷歌搜索,我发现只有电话呼叫音频可以路由到非A2DP BT耳机.(我想知道您是否找到了将各种音频路由到非A2DP BT耳机的现成解决方案)

所以我想,不知怎的,我可以通过编程方式将音频引导到携带电话音频的流.这样我就会欺骗手机将我的mp3音频传输到我的BT耳机.我写了以下简单的代码.

import android.content.*;
import android.app.Activity;
import android.os.Bundle;
import android.media.*;
import java.io.*;
import android.util.Log;

public class BTAudioActivity extends Activity
{
    private static final String TAG = "BTAudioActivity";

    private MediaPlayer mPlayer = null;
    private AudioManager amanager = null;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        amanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        amanager.setBluetoothScoOn(true);
        amanager.setMode(AudioManager.MODE_IN_CALL);

        mPlayer = new MediaPlayer();

        try {
            mPlayer.setDataSource(new FileInputStream(
                "/sdcard/sample.mp3").getFD());

            mPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);

            mPlayer.prepare();

            mPlayer.start();
        } catch(Exception e) {
            Log.e(TAG, e.toString());
        }
    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

audio android bluetooth

41
推荐指数
3
解决办法
5万
查看次数

这个HTML5截屏动画是如何创建的?

我今天访问了http://www.sublimetext.com,并对网站在其开始页面上的截屏动画感兴趣.它看起来像是视频和幻灯片之间的混搭.我也在其他现代网站上看过它们,但我认为这是一些HTML5视频标签的诡计.但是当我查看sublimetext网页的来源时,我很困惑.

此页面上的动画是在HTML5 2D画布上创建的,使用基本PNG图像的纯JavaScript.每张幻灯片都是从PNG文件加载的.通过仅修改图像中的少数像素来实现动画.动画javascript定期在原始PNG上应用这些更改.您将在脚本中找到存储在*_timeline变量中的这些增量.

我的问题是什么工具可以产生这样的增量?如何记录一个桌面屏幕并创建这样的基本PNG +动画增量?

我喜欢这种方法,因为对于截屏来说,它似乎是最有效的格式,其中连续帧的变化是最小的.

更新1我知道有一些技术可以使用GIF实现这一点(检查https://askubuntu.com/q/107726),但是什么很酷的工具可以生成这个可以将PNG增量转换为动画的javascript代码.谷歌搜索并没有帮助我找到它.

更新2截屏视频(和sublimetext)的作者在sublimetext论坛上回复了我的问题.他是使用自定义python脚本完成的,并计划在某个时候写一篇关于它的博客文章http://www.sublimetext.com/forum/viewtopic.php?p=34252#p34252

html5 animation png canvas

26
推荐指数
1
解决办法
4328
查看次数

android app特定的软键盘

有没有办法在Android上创建特定于应用程序的软键盘?在阅读了有关InputMethodService文档并检查其他键盘应用程序之后,我认为备用键盘只能配置为系统范围的使用(通过设置 - >区域设置和文本).

如果上述问题的答案为否,那么至少有一种方法可以加载自定义词典并覆盖系统键盘的默认词典(仅当我的应用程序正在使用时)?这将有助于在用户仅轻敲几个键时向用户提供非常相关的建议.

keyboard android

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

打包到vec4 - 这段代码如何工作?

我正在尝试在WebGL中研究阴影贴图.我看到在各种库和实例中复制了相同的着色器代码.然而,我找不到它是如何工作的解释.

我们的想法是将深度值(单个浮点数)保存到颜色缓冲区(vec4)中.有一个pack函数可以将float保存到vec4和unpack函数,从vec4中检索float.

vec4 pack_depth(const in float depth)
{
    const vec4 bit_shift = vec4(256.0*256.0*256.0, 256.0*256.0, 256.0, 1.0);
    const vec4 bit_mask  = vec4(0.0, 1.0/256.0, 1.0/256.0, 1.0/256.0);
    vec4 res = fract(depth * bit_shift);
    res -= res.xxyz * bit_mask;
    return res;
}

float unpack_depth(const in vec4 rgba_depth)
{
    const vec4 bit_shift = vec4(1.0/(256.0*256.0*256.0), 1.0/(256.0*256.0), 1.0/256.0, 1.0);
    float depth = dot(rgba_depth, bit_shift);
    return depth;
}
Run Code Online (Sandbox Code Playgroud)

我想象将一个浮动包装到vec4应该是一个微不足道的问题,只需将其复制到vec4的4个插槽中的一个并留下其他未使用的.这就是为什么上面代码中的位移逻辑让我感到困惑的原因.

任何人都能解释一下吗?

opengl-es glsl webgl

19
推荐指数
2
解决办法
8601
查看次数

如何从node.js上传文件

我在查询此问题时发现了很多帖子,但它们都是指如何将文件从浏览器上传到node.js服务器.我想将node.js代码中的文件上传到另一台服务器.我试图根据我对node.js的有限知识来编写它,但它不起作用.

function (data) {
  var reqdata = 'file='+data;
  var request = http.request({
    host : HOST_NAME,
    port : HOST_PORT,
    path : PATH,
    method : 'POST',
    headers : {
      'Content-Type' : 'multipart/form-data',
      'Content-Length' : reqdata.length
    }
  }, function (response) {
      var data = '';
      response.on('data', function(chunk) {
        data += chunk.toString();
      });
      response.on('end', function() {
        console.log(data);
      });
    });

  request.write(reqdata+'\r\n\r\n');
  request.end();
})
Run Code Online (Sandbox Code Playgroud)

上述函数由生成数据的其他代码调用.

我尝试使用curl -F"file = @ <filepath>"上传相同的数据文件,上传成功.但我的代码失败了.服务器返回特定于应用程序的错误,该错误暗示上载的文件无效/损坏.

我收集了tcpdump数据并在wireshark中对其进行了分析.从我的node.js代码发送的数据包缺少多部分数据所需的边界.我在wireshark包中看到了这条消息

The multipart dissector could not find the required boundary parameter.
Run Code Online (Sandbox Code Playgroud)

知道如何在node.js代码中完成此任务吗?

file-upload node.js

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