小编vik*_*eve的帖子

Haskell:读取包含Int和Float的行的简单方法?

我想从一个看起来像这样的文件中读取行:

1 2.1
2 2.2
3 2.3
Run Code Online (Sandbox Code Playgroud)

每行都有一个简单的Int和Float

这就是我想出来的,阅读每一行:

readFoo :: String -> (Int, Float)
readFoo line = (read (splitOn " " line !! 0), read (splitOn " " line !! 1))
Run Code Online (Sandbox Code Playgroud)

或者我也做了一个数据类型,然后read部分很简单.

data Foo = Foo Int Float deriving (Show, Read)
getM (Foo m p) = m
getP (Foo m p) = p

readFoo :: String -> Foo
readFoo line = read $ "Foo " ++ line :: Foo
Run Code Online (Sandbox Code Playgroud)

但是必须有一种更简单的方法来做到这一点,对吧?

haskell

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

如何在"简单"中将Exchange属性转换为大写?

如何在Apache Camel表达式语言中将Apache Camel Exchange上的属性转换为大写?

例如

.when(simple("${property.countryCode.toUpperCase} regex 'NO?'"))
Run Code Online (Sandbox Code Playgroud)

但我得到:

org.apache.camel.language.bean.RuntimeBeanExpressionException:
Failed to invoke method: .toUpperCase on null
Run Code Online (Sandbox Code Playgroud)

我已经证实我的财产确实存在.log("${property.countryCode}").

这应该不是那么难,以获得toUpperCaseApache Simple(但它是).

我不想toUpperCase用Java,Groovy或其他任何东西 - 必须有一个更简单的方法

java apache-camel simple-el

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

确定ISO-8859-1与US-ASCII字符集

我想确定是否使用

PrintWriter pw = new PrintWriter(outputFilename, "ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)

要么

PrintWriter pw = new PrintWriter(outputFilename, "US-ASCII");
Run Code Online (Sandbox Code Playgroud)

我正在阅读所有有关字符集的内容,以确定我必须通过java代码以相同编码创建的示例文件的字符集.

当我的示例文件包含"欧洲"字母(挪威语:åøæ)时,以下命令告诉我文件编码为"iso-8859-1"

file -bi example.txt
Run Code Online (Sandbox Code Playgroud)

但是,当我获取同一个示例文件的副本并修改它以包含不同的数据时,没有任何挪威文本(假设我将"Bjørn"替换为"Bjorn"),那么相同的命令告诉我文件编码是" US-ASCII".

file -bi example-no-european-letters.txt
Run Code Online (Sandbox Code Playgroud)

这是什么意思?如果没有"欧洲"字符,ISO-8859-1在实践中是否与US-ASCII相同?

我应该只使用charset"ISO-8559-1",一切都会好吗?

java ascii iso-8859-1 character-encoding character-set

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

Mattermost(团队聊天)-如何通过 curl 发布到频道?

我们正在使用mattermost作为内部托管的替代品slack

我怎样才能写到mattermost的频道,例如通过脚本,使用curl

我需要知道:

  • 如何从mattermost获取“集成密钥”
  • curl命令格式

我的脚本的一个例子slack

SLACK_URL='https://hooks.slack.com/services/my-long-integration-key'
message='Project XYZ was released successfully.'

curl -X POST -H "Content-Type: application/json" \
    --data "{ \"channel\": \"#releases\", \"username\": \"$me\", \"text\": \"$MESSAGE\" }" \
    $SLACK_URL &> /dev/null
Run Code Online (Sandbox Code Playgroud)

确实有一个Mattermost API(相当于slack-api),但我正在努力寻找一个很好的例子来说明我想要做什么。

谢谢

curl slack-api slack mattermost

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

Chef:如何在*收敛*而不是*编译*时获取时间戳

请考虑我的食谱末尾的这段代码deploy_to_tomcat

  unless Chef::Config[:solo]
    chat_message "Deployed #{artifact_name} `#{Time.new.strftime("%Y-%m-%d %H:%M")}`"
  end
Run Code Online (Sandbox Code Playgroud)

它发布一条消息进行聊天:部署了 my-web-app 2016-11-03 12:31

但是,我注意到时间戳有点Time.new过时 - 它似乎是编译配方时的时间戳而不是几分钟后资源覆盖并运行时的时间戳。

所以我尝试了这个,但它不起作用(timeNow 仍然是undefined发布消息聊天时的时间)

  timeNow = "undefined"
  ruby_block "set-time-now" do
    block do
      timeNow = Time.new.strftime("%Y-%m-%d %H:%M:%S")
    end
  end

  unless Chef::Config[:solo]
    chat_message "Deployed #{artifact_name} `#{timeNow}`"
  end
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法让我的时间戳反映实际时间(而不是食谱开始时)?

ruby date chef-infra convergence chatops

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

JBoss Fuse和Fuse ESB有什么区别?

看来Fuse ESB已被Red Hat收购,现在将作为JBoss Fuse提供。

假定它们本质上是相同的技术,加上或减去一些改进,是否正确?

我看到这两者都是开源的,并且基于相同的技术堆栈构建,因此我希望这只是名称更改,而不会对现有项目产生任何重大影响。

fuseesb jbossfuse

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

正则表达式intellij-idea替换

我正在使用IntelliJ,希望获得正则表达式的帮助,以获取如下结果:

    patient.setIdentificationDate(new Date()); -> {IdentificationDate} and {new Date()}
    patient.setIdentificationNumber(153698); -> {IdentificationNumber} and {153698}
    patient.setIdentificationSeries("33 02"); -> {IdentificationSeries} and {"33 02"}
Run Code Online (Sandbox Code Playgroud)

ps非常感谢

regex intellij-idea

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

Java - 24小时为每小时的每分钟生成一个时间戳

我正在编写一个程序,为每一小时的每一分钟生成一整天的时间戳.我使用Calendar类来获取时间戳,我必须使用它,所以没有必要建议其他方法.

我创建文件的想法是使用for循环24小时和嵌套for循环60分钟,其中时间戳将打印到.dat文件.我认为这会起作用,会打印一整天的数据然后停止.

但是我错了,完全错了!

结果是从现在起2年后每隔一分钟打印一次数据.

到目前为止,这是我的代码;

public static void main (String [] args) throws FileNotFoundException
{ 
    try
    {
        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        Date date = new Date();
        File fileName = new File(df.format(date) + ".dat");
        RandomAccessFile raf = new RandomAccessFile(fileName, "rw");

        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
        cal.add(Calendar.MILLISECOND, -cal.get(Calendar.MILLISECOND));
        cal.add(Calendar.SECOND, -cal.get(Calendar.SECOND));
        cal.add(Calendar.MINUTE, -cal.get(Calendar.MINUTE));
        cal.add(Calendar.HOUR_OF_DAY, -cal.get(Calendar.HOUR_OF_DAY));

        for(int hourInMinutes = 0; hourInMinutes < 1440; hourInMinutes++) //1440 is the total minutes in a day
        {   
            for(int minute = 0; minute <= hourInMinutes; minute++)
            {   
                    raf.writeLong(cal.getTimeInMillis());       //Timestamp …
Run Code Online (Sandbox Code Playgroud)

java datetime calendar

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

如何防止在php"exec"的参数中恶意注入(webhook - > bash script)

我写了一个webhook来集成到chat(slack/mattermost api)中.

启动和运行的最简单方法是一个快速的PHP脚本,如下所示:

<?php
$token = $_POST["token"];
$arg = $_POST["text"];

$output = exec("./webhook_script.sh {$token} {$arg}");
Run Code Online (Sandbox Code Playgroud)

目前,脚本工作正常,但我担心有人可以恶意地执行http POST,其中查询参数text(脚本:) $arg具有某种注入攻击.

例: http://myserver/webhook.php?token=abc&text=123;rm -rf *

因此$arg变得123; rm -rfexec命令执行恶意rm -rf *

这与我熟悉的"sql注入"本质上类似,但我不确定如何使bash脚本安全...

是以某种方式引用参数,或者使用a regex来检查脚本参数是一件简单的事情吗?

php bash http-post code-injection webhooks

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