小编gal*_*ath的帖子

在Vim中,如何删除单词的后缀?

在vim中,在正常模式下,如果光标位于单词中,而不是最后一个字母de,则从光标位置删除单词的后缀.如果光标位于最后一个字母上,x那么它de也会跳到下一个字的末尾.

你会使用什么命令在两种情况下都可以使用,最后一封信是不是?

目的是将命令包含在宏中.

vim keyboard-shortcuts

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

将学生与课程限制的课程相匹配(匈牙利语,最大流量,最小成本流程......)

我目前正在编写一个将学生映射到课程的程序.目前,我正在使用SAT-Solver,但我正在尝试实现一个多项式时间/非贪心算法,它解决了以下子问题:

  • 有学生(50-150)
  • 有科目(10-20),例如'数学','生物','艺术'
  • 每个科目(至少一门)都有课程,例如'math-1','math-2','biology-1','art-1','art-2','art-3'
  • 学生选择一些(固定的)科目(10-12),并且对于每个科目,学生必须被分配到现有的一门课程(如果可能的话).选择哪个课程'math-1'或'math-2'并不重要.
  • 这些课程允许的学生人数最多(20-34)
  • 每门课程都在一个固定的区块内(=时间段1到13)
  • 学生可能不会被分配到同一区块的课程

我现在描述到目前为止我所做的事情.

(1)忽略课程 - 学生限制

我能够用匈牙利算法/二分匹配来解决这个问题.每个学生可以通过如下建模来单独计算:

  • 左节点代表主题'数学','生物','艺术'(学生)
  • 右节点表示块'1','2',....'13'
  • 从"主题"到"阻止"的每个过程插入一条边

通过这种方式,学生被分配到课程的每个科目,而不参加同一区块的课程.但课程限制被忽略了.

(2)忽略学生的选定科目

我能够用max-flow-algorithm解决这个问题.对于每个学生,建模如下:

  • 第1层:从源到每个学生,流量为13
  • 第2层:从每个学生到他/她的个人区块,流量为1
  • 第3层:从每个学生块到该块中的每个课程,流程为1
  • 第4层:通过'max-student-limit'从每个球场到水槽

通过这种方式,学生选择任意课程,并且课程限制已满.但是他/她可能不幸并被分配到'数学-1','数学-2'和'数学-3'而无视主题'生物'和'艺术'.

(3)贪婪的匈牙利人

我的另一个想法是一次匹配一个学生与匈牙利算法并调整权重,以便"更多空课程"是首选.例如,可以建模:

  • 左节点是学生的主题
  • 右边节点是块
  • 对于每个球场,插入一个边缘从主体到球场的块重量=自由座位数

然后计算最大权重匹配.

我真的很感激任何建议/帮助.

谢谢!

bipartite graph-algorithm np max-flow hungarian-algorithm

5
推荐指数
0
解决办法
324
查看次数

如何在我的活动中动态添加片段?

我正在使用Android Studio来实现片段类的所有功能.我遇到了运行时异常:

must implement OnFragmentInteractionListener
Run Code Online (Sandbox Code Playgroud)

这是我的代码,我OnFragmentInteractionListener在我的主要活动中实现了.

主要活动:

public class MainActivity extends FragmentActivity implements BlankFragment.OnFragmentInteractionListener {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (findViewById(R.id.fragment_container) != null) {
            BlankFragment fragment = new BlankFragment();
            android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
            android.support.v4.app.FragmentTransaction ft = manager.beginTransaction();
            ft.add(R.id.fragment_container, fragment).commit();
        }
    @Override            
    public void onFragmentInteraction(Uri uri) {}

}
Run Code Online (Sandbox Code Playgroud)

BLANK FRAGMENT:

public class BlankFragment extends android.support.v4.app.Fragment {
    private OnFragmentInteractionListener mListener;
    public interface OnFragmentInteractionListener {
        public void onFragmentInteraction(Uri uri);
    }

    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try { …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-fragments

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

如何在hibernate中使用单个表连接三个表?

我有三个表A,BC和映射表A_B_C具有外键的所有三个表和其他一些属性(比方说X,Y).现在,我想在我的java类中加入代表这三个表.

这些表之间的关系是一对多的.因此,我希望我的Java类看起来像这样.

@Entity(name = "A")
@Table(name = "A")
public class A {

       ??? Hibernate Annotation or query
       Map<B,List<C>> BMapC;
}

@Entity(name = "B")
@Table(name = "B")
public class B {
      ...
}

@Entity(name = "C")
@Table(name = "C")
public class C {
      ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以利用Hibernate Annotations.如果没有,有没有办法可以编写自定义查询并填充变量?

java hibernate jpa

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

在Spark中按时间戳对Parquet文件进行分区的最佳实践是什么?

我对Spark非常陌生(2天),并且正在考虑对镶木地板文件进行分区的最佳方法。

我的粗略计划ATM是:

  • 使用com.databricks.spark.csv读取源TSV文件(这些文件具有TimeStampType列)
  • 写出实木复合地板文件,按年/月/日/小时划分
  • 将这些实木复合地板文件用于以后将要发生的所有查询

获得一个简单的版本一直很容易(对Spark开发人员来说是个荣誉)-除了按照我想要的方式进行分区之外。这是在python BTW中:

input = sqlContext.read.format('com.databricks.spark.csv').load(source, schema=myschema)
input.write.partitionBy('type').format("parquet").save(dest, mode="append")
Run Code Online (Sandbox Code Playgroud)

映射RDD的最佳方法是添加年,月,日,小时的新列,然后使用PartitionBy吗?那么对于任何查询,我们必须手动添加年/月等?考虑到到目前为止我已经发现火花如此优雅,这似乎有点奇怪。

谢谢

apache-spark pyspark

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

nix-shell 错误 - mkdir:无法创建目录“/nix/store/...”:只读文件系统

我正在nix-shell用来调试我的包。配置脚本如下所示:

configurePhase = ''
  mkdir -p $out
  ...
'';
Run Code Online (Sandbox Code Playgroud)

运行 via 时nix-build,此代码没问题,但是运行时nix-shell我无法$out在运行时创建目录configurePhase

mkdir: cannot create directory '/nix/store/...': Read-only file system
Run Code Online (Sandbox Code Playgroud)

我明白为什么会发生这种情况,但如何解决这个问题?

nixos

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

无法从 crontab 作业进行 git 提交

git commit我正在尝试使用 bash 脚本进行操作。我已经设置了一个 cron 作业来定期执行该脚本。如果我直接执行脚本,一切都会按预期进行。由于某种原因,当从 调用脚本时crontab,会git commit失败。这是脚本:

#!/bin/bash
cd /mnt/ebs2/sitemap
echo "Calling java application to generate sitemap"
java -jar SiteMap-1.0-jar-with-dependencies.jar -i sitemapconfig.xml -o /mnt/ebs2/sitemap/website_sitemaps -url ADSKContentURL
echo "sitemap generation complete.."
cd website_sitemaps
chmod 750 *
echo "Updated file permission, commiting to git..."
git commit -am 'automated weekly update'
git push -u
echo "git commit done..."
cd ..
Run Code Online (Sandbox Code Playgroud)

这是 crontab 的输出:

Calling java application to generate sitemap
sitemap generation complete..
Updated file permission, commiting to …
Run Code Online (Sandbox Code Playgroud)

git shell cron git-commit

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

强制LeadingMarginSpan2的文本方向

我正在LeadingSpanMargin2按照建议使用我的样式TextView以便它会绕过Image,问题是我设置的文本是动态的,可以是rtl或ltr.

我尝试了任何我能想到的东西来修复leadingMargin它,以便它在两种情况下都是正确的或者是左的,都无济于事.

此外,我已经尝试FlowTextView在github上发布的小部件,它在rtl情况下效果不佳,所以请不要提示.

非常感谢.

这是我使用的代码,在另一个答案中提出:

public void setFlowText(CharSequence text, int width , int height, TextView messageView)
{
    float textLineHeight = messageView.getPaint().getTextSize();

    // Set the span according to the number of lines and width of the image
    int lines = (int)Math.ceil(height / textLineHeight);
    //For an html text you can use this line: SpannableStringBuilder ss = (SpannableStringBuilder)Html.fromHtml(text);
    SpannableString ss = new SpannableString(text);
    ss.setSpan(new MyLeadingMarginSpan2(lines, width), 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //ss.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE), 0, ss.length(), …
Run Code Online (Sandbox Code Playgroud)

java android

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

如何在BroadcastReceiver中添加Snackbars?

Snackbars通过在屏幕底部显示简短消息来提供有关操作的轻量级反馈.Snackbars可以包含一个动作.

Android还提供了一个toast,主要用于系统消息传递.Toasts与snackbars类似,但不包含动作,不能在屏幕上滑动.

我的问题

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class TestReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        Toast.makeText(context, "status", Toast.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

难道是更多钞票来显示SnackbarBroadcastReceiver一样Toast

android broadcastreceiver android-support-library snackbar android-support-design

4
推荐指数
2
解决办法
3980
查看次数

如何将三个RDD加入到一个元组中?

我对 Python 中的 Apache Spark 比较陌生,这就是我正在尝试做的事情。我输入的数据如下。

  • rdd_row是行索引 (i) 的 RDD,
  • rdd_col是列索引 (j) 的 RDD,
  • rdd_values是 Values (v) 的 RDD。

上面三个RDD都很大。

我正在尝试将它们转换为稀疏 rdd 矩阵

rdd_mat= ([rdd_row],[rdd_col],[rdd_values])
Run Code Online (Sandbox Code Playgroud)

IE,

rdd_mat=([i1,i2,i3 ..],[j1,j2,j3..], [v1,v2,v3 ..])
Run Code Online (Sandbox Code Playgroud)

我努力了:

zip where rdd_row.zip(rdd_col).zip(rdd_val) 
Run Code Online (Sandbox Code Playgroud)

但它最终给出了

[(i1,j1,v1),(i2,j2,v2) ..]
Run Code Online (Sandbox Code Playgroud)

rdd1.union(rdd2) 
Run Code Online (Sandbox Code Playgroud)

不会创建元组。

非常感谢帮助引导我走向正确的方向!

python tuples apache-spark rdd pyspark

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