小编Mik*_*H-R的帖子

elixir或erlang程序可以编译成独立的二进制文件吗?

它看到elixir有一个名为的工具,elixirc而erlang有一个工具,erlc用于编译模块以供使用.它在此之后立即说您可以使用elixir命令行工具运行代码.

有没有办法用elixir或erlang编译二进制可执行文件?(一个我可以chmod +x binary_name然后从同一个目录运行./binary_name)

erlang compilation elixir

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

这是一个有效的类型,我如何满足它?(组成两个二元函数)

我的问题很简单,因为任何人开始使用haskell我一直在考虑类型,功能组成以及如何应用它们.我开始考虑((+) . (*))可能的结果.

现在很明显,这个问题的解决方案是开放ghci并找出答案.所以我这样做并检查了类型:

?> :t ((*) . (+))
((*) . (+)) :: (Num (a -> a), Num a) => a -> (a -> a) -> a -> a
Run Code Online (Sandbox Code Playgroud)

这种类型可能吗?我很难理解它可能是什么或它意味着什么?

再次为这个简单化的问题道歉,我试图加入到函数中的一切都失败了.我只是试图通过二元函数来开发函数组合的直觉.

haskell composition

9
推荐指数
2
解决办法
154
查看次数

proc,Proc.new,lambda和stabby lambda之间的速度差异

Procs和lambdas 在方法范围和关键字的影响方面有所不同return.我对它们之间的性能差异很感兴趣.我写了一个测试,如下所示:

def time(&block)
  start = Time.now
  block.call
  p "that took #{Time.now - start}"
end
def test(proc)
  time{(0..10000000).each{|n| proc.call(n)}}
end
def test_block(&block)
  time{(0..10000000).each{|n| block.call(n)}}
end
def method_test
  time{(1..10000000).each{|n| my_method(n)}}
end

proc1 = Proc.new{|x| x*x}
proc2 = proc{|x| x*x}
lam1 = lambda{|x| x*x}
lam2 = ->x{x*x}

def my_method(x)
  x*x
end

test(proc1)
test(proc2)
test(lam1)
test(lam2)
test_block{|x| x*x}
test(method(:my_method))
method_test
Run Code Online (Sandbox Code Playgroud)

此代码的结果如下所示.

"that took 0.988388739"
"that took 0.963193172"
"that took 0.943111226"
"that took 0.950506263"
"that took 0.960760843"
"that took 1.090146951"
"that …
Run Code Online (Sandbox Code Playgroud)

ruby performance lambda proc

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

我可以从调用代码中退出ipython吗?

我有一些像这样的代码:

form IPython import embed
for item in my_item_list:
    embed()
Run Code Online (Sandbox Code Playgroud)

如果我然后运行此程序

python my_example_program.py
Run Code Online (Sandbox Code Playgroud)

在循环的第一次迭代中,我被放入一个ipython shell中,可以item像我想的那样检查和环境.

在退出ipython时,循环恢复,然后我可以item按照您的预期检查下一个和环境.

有没有办法让我从ipython中退出这段代码(这样我就会返回shell提示符).以任何方式打开另一个shell并杀死进程?

python ipython

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

gravatar如何自动调整图像中的颜色?

我决定将我的gravatar改为循环.我在我的博客上用css循环并且更喜欢效果所以决定使用一些imagemagick给我的图像一个圆形的alpha通道(所以我也可以在SO上等它).几个快速命令后来我被分类:

# crop to square 422x422 with 0x0 offset
convert mike_gravatar.jpeg -crop 422x422+0+0 mike_gravatar_square.jpeg
# give circular alpha channel around it NOTE this is for a 422x422 image (note the 211x211)
convert mike_gravatar_square.jpeg \( +clone -threshold -1 -negate -fill white -draw "circle 211,211,211,0" \) -alpha off -compose copy_opacity -composite mike_gravatar_circle.png
Run Code Online (Sandbox Code Playgroud)

辉煌,现在我们只是将其上传到gravatar,我将有一个漂亮的圆形裁剪图像,一切都将与世界很好.


正如你可能从这个问题中猜到的一切都不好:

黑暗的重力图像

好吧,我必须清楚搞砸了我的imagemagick并没有检查前后图像是否相同,重新打开彼此相邻的图像,并看到它们确实是相同的.我尝试再次上传到gravatar并注意到他们似乎在"裁剪"阶段之后处理图像,这是在文件上传之后(在裁剪混乱之前)在浏览器中的样子:

工作的gravatar图片

好吧,让我们做一些挖掘,其他人必须在此之前偶然发现,所以我环顾四周,在一个荒凉的论坛里,一个孤独的灵魂在哭泣.现在没有回应,但相关文字在这里:

似乎如果上传到Gravatar's cropper的照片或图片没有黑色,它会将最近的灰色自动调整为黑色并使整个图像变暗,包括将白色变成灰色.可以确认任何具有灰色背景或具有足够大比例的PNG图像都会发生这种情况,无论它是否具有255个白色,无论它是否具有alpha混合

所以好像我可以通过将在一个黑色像素解决这个问题,这听起来还不错,所以我尝试添加一个黑色像素,那么单一的黑色和一个白色像素,结果是:

该死的gravatar

所以基本上现在我没有想法:

  • 有没有人知道什么后处理gravatar做什么,所以我可以撤消它或通过预处理抵消它的影响?
  • 这个"功能"是在任何地方记录下来的,还是可以关闭,或者被解决?

我认为对图像进行预处理以抵消它们会对它做的变暗是很酷的,但这需要确切知道它们为了改变事物而做了什么,显然可能是不可能的(取决于每种颜色的相对运动,我想)

编辑:

我尝试制作一个反转图像,看它是基于平均值还是极端值进行处理,而且也变暗,看起来它更可能是平均值:

反圆圈变暗

gravatar imagemagick

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

您是否可以使用包含语句的find_each查询?

例:

Foobar.joins(:baz).includes(:baz).count
=> 22926
Foobar.joins(:baz).includes(:baz).find_each.count
=> 998
Foobar.joins(:baz).find_each.count
=> 22926
Run Code Online (Sandbox Code Playgroud)

在正确的情况下生成的sql(第三个)是几批sql,如下所示:

SELECT  "foobar".* FROM "foobar" INNER JOIN "baz" ON 
"baz"."foobar_id" = "foobar"."id" ORDER BY "foobar"."id" ASC LIMIT $1
Run Code Online (Sandbox Code Playgroud)

在失败的(第二个)情况下,有一个看起来像的查询:

SELECT  "foobar"."id" AS t0_r0
 "baz"."id" AS t1_r0
 "baz"."foobar_id" AS t1_r1
 FROM "foobar" INNER JOIN "baz" ON "baz"."foobar_id" = "foobar"."id" 
 ORDER BY "foobar"."id" ASC LIMIT $1
Run Code Online (Sandbox Code Playgroud)

其中所有字段都被列为t0_r0每个表上不同列的不同临时变量(例如)(在实际查询中,第一个对象上有37个分割30,第二个对象上有7个).

这是一个错误吗?都includes在一个不允许find_each查询?难道我做错了什么?

Foobar和之间的关系BazFoobar has_one BazBaz belongs_to Foobar.

activerecord ruby-on-rails

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

adb.exe:错误:无法绑定侦听器:不允许的操作

我想使用以下命令将模拟器与自己本地计算机上的后端应用程序连接:

adb -s emulator-5554 reverse tcp:8085 tcp:8085
Run Code Online (Sandbox Code Playgroud)

但是它返回结果:

adb.exe: error: cannot bind listener: Operation not permitted.
Run Code Online (Sandbox Code Playgroud)

请帮我解决。

我正在使用Android Studio,我的后端运行节点

adb android-studio

7
推荐指数
2
解决办法
2448
查看次数

定位命令在mac上的Documents文件夹中找不到任何内容

正如它在描述中所说的那样.我首先检查我们的数据库是最新的

mh547:bin crashandburn4$ sudo /usr/libexec/locate.updatedb
Password:       #password entered and function executed without errors
Run Code Online (Sandbox Code Playgroud)

然后我尝试在我的Documents文件夹中搜索某些内容

mh547:bin crashandburn4$ cd ~/Documents/
mh547:Documents crashandburn4$ ls
    Mamp_workspace/                         Scenarios.docx                          gc01/
mh547:Documents crashandburn4$ locate Scenarios.docx    #nothing returned
Run Code Online (Sandbox Code Playgroud)

然后我尝试另一个随机文件夹:

mh547:Documents crashandburn4$ cd ..
mh547:~ crashandburn4$ ls
    Applications/                Movies/                      drawable/                    untitled-2.pdf
    Desktop/                     Music/                       drawable-xhdpi/              untitled-2.synctex.gz
    Documents/                   Pictures/                    dwhelper/                    untitled-2.tex
    Downloads/                   Public/                      linux_ssh*                   website-terminal-copy-paste
    Dropbox/                     Samsung/                     scripts/                     workspace/
    Google Drive/                Sites/                       untitled-2.aux               workspace_copy_to_linux*
    Library/                     android-sdks/                untitled-2.log
mh547:~ crashandburn4$ locate website-terminal-copy-paste 
/Users/crashandburn4/website-terminal-copy-paste #correct result returned
Run Code Online (Sandbox Code Playgroud)

谁能帮我?我已经坚持了半个小时左右.

macos bash documents locate

6
推荐指数
2
解决办法
2934
查看次数

为什么是身份验证:'plain'是rails中的actionmailer的默认设置(使用gmail smtp)?

我正在阅读关于rails的actionmailer.我的问题是关于这里描述的默认设置:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => 'baci.lindsaar.net',
  :user_name            => '<username>',
  :password             => '<password>',
  :authentication       => 'plain',
  :enable_starttls_auto => true  }
Run Code Online (Sandbox Code Playgroud)

现在从空气污染指数在这里它说:

":身份验证 - 如果您的邮件服务器需要身份验证,则需要在此处指定身份验证类型.这是一个符号,其中之一为:plain(将以明文形式发送密码)"

所以我的问题是,这是否将密码作为明文发送?我觉得很难相信它确实如此但我在文档中看不到它对它进行加密,它是否与该行有关::enable_starttls_auto => true?让我知道我的错误在哪里,enablestarttls如何保证安全连接(如果这是加密的地方)?

一如既往地链接到文档/参考文献表示赞赏和鼓励:)

提前致谢.

authentication gmail ruby-on-rails actionmailer

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

你如何编写emacs lisp函数来替换单词?

我尝试过两种不同的方式来编写我的函数.我决定编写一个小函数来转换为驼峰大小写并返回使用这个elisp字符串库.首先通过搜索我发现这个教程在点上更换东西并实现了这个功能:

; use string manipulation library to switch between camel and snake (s.el)
(defun my_test ()
  "test"
  (interactive)
  ;; get current selection or word
  (let (bds p1 p2 inputStr resultStr)
    ;; get boundary
    (if (use-region-p)
        (setq bds (cons (region-beginning) (region-end) ))
      (setq bds (bounds-of-thing-at-point 'word)) )
    (setq p1 (car bds) )
    (setq p2 (cdr bds) )
    ;; grab the string
    (setq inputStr (buffer-substring-no-properties p1 p2)  )
    (setq resultStr (s-lower-camel-case inputStr))
    (message inputStr)

    (delete-region p1 p2 ) …
Run Code Online (Sandbox Code Playgroud)

emacs elisp

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