小编Rob*_*oli的帖子

在Android OS上运行Haskell程序

前言:这是在/ r/haskell上启动的线程的扩展

让我们从事实开始:

  • Android是一个很棒的操作系统
  • Haskell是这个星球上最好的编程语言

因此,很明显,将它们结合起来可以使Android开发更好.所以基本上我只想知道如何为Android OS编写Haskell程序.我的问题是:

如何在Android OS上执行/运行Haskell程序?

executable android haskell

210
推荐指数
6
解决办法
3万
查看次数

可以在robots.txt中使用相对站点地图网址吗?

在robots.txt中,我可以为站点地图文件编写以下相对URL吗?

sitemap: /sitemap.ashx
Run Code Online (Sandbox Code Playgroud)

或者我必须使用站点地图文件的完整(绝对)URL,例如:

sitemap: http://subdomain.domain.com/sitemap.ashx
Run Code Online (Sandbox Code Playgroud)

为什么我想知道:

  • 我拥有一个新的博客服务www.domain.com,允许用户在accountname.domain.com上发布博客.
  • 我使用通配符,因此所有子域(帐户)都指向:"blog.domain.com".

在blog.domain.com中,我放了robots.txt让搜索引擎找到站点地图.但是,由于通配符,所有用户帐户共享相同的robots.txt文件.这就是为什么我不能使用第二种方法.而目前我不能使用url重写txt文件.(我想IIS的更高版本可以处理这个?)

sitemap seo robots.txt

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

Haskell函数组合(.)和函数应用程序($)成语:正确使用

我一直在阅读真实世界的哈斯克尔,我即将结束,但风格问题一直在与我(.)($)操作员徘徊.

当你编写一个由其他函数组成的函数时,你可以这样写:

f = g . h
Run Code Online (Sandbox Code Playgroud)

但是当你在这些函数的末尾应用某些东西时,我会这样写:

k = a $ b $ c $ value
Run Code Online (Sandbox Code Playgroud)

但是这本书会像这样写:

k = a . b . c $ value
Run Code Online (Sandbox Code Playgroud)

现在,对我来说,他们看起来功能相同,他们在我眼中完全一样.然而,我看的越多,我就越看到人们以书的方式编写他们的函数:(.)首先构成,然后仅在最后使用($)附加值来评估该批次(没有人用很多美元组成) .

是否有理由使用比使用所有($)符号更好的书籍方式?或者这里有一些我没有得到的最​​佳实践?或者它是多余的,我根本不应该担心它?

haskell coding-style function-composition

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

最新GHC中弃用的DatatypeContexts:为什么?

我只是做了一些Haskell开发,并在新版本的GHC上重新编译了一些旧代码:

The Glorious Glasgow Haskell Compilation System, version 7.2.1
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

警告:不推荐使用-XDatatypeContexts:它被广泛认为是错误的,并且已从Haskell语言中删除.

当您拥有以下格式的代码时,会出现这种情况:

data Ord a => MyType a
    = ConstructorOne a
    = ConstructorTwo a a
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么这个功能首先被弃用,而我应该做些什么而不是实现相同或类似的功能呢?

haskell deprecated language-extension

65
推荐指数
2
解决办法
6006
查看次数

Android:为什么我不能将onClickListener赋予VideoView?

我写了这些代码行:

 mVideoView = (VideoView) findViewById(R.id.video_view);
    mVideoView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.v("LOG_TAG, click");
        }
    });
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,从不调用click事件.

所以我想知道,在VideoView上注册OnClickListener是不可能的?如果是这样,为什么会这样呢?

android android-videoview

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

OpenGL ES 2.0多个程序或多个着色器还是什么?它是如何工作的?

问题(TL; DR)

从根本上说,我的问题是我不知道OpenGL ES 2.0希望我如何编写和使用多个着色器; 或者如果一个人会这样做甚至是可取的/预期的.

这里的基本问题是:如果我有一个苹果,一块发光的岩石和一个模糊的网格,都在同一个3D世界中,最好用不同的着色器程序绘制但是使用相同的mvpMatrix然后我将如何使用它们相同的OpenGL渲染,以便他们都使用我写的最合适的着色器?

我做了什么

所以我为我的Android游戏编写了一个基本的OpenGL ES 2.0程序,它可以完美地工作,因为它可以将对象的轮廓绘制到屏幕上.但它没有别的; 几乎是因为着色器看起来像这样:

顶点着色器

uniform mat4 uMVPMatrix;
attribute vec4 aPosition;

void main() {
    gl_Position = uMVPMatrix * aPosition;
}
Run Code Online (Sandbox Code Playgroud)

片段着色器

void main() {
    gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
Run Code Online (Sandbox Code Playgroud)

现在它们非常基本.我没有走得更远的原因是因为我无法弄清楚我是否应该编写一个着色器来应用于我的所有不同对象,或者我是否应该使用多个着色器.如果我应该使用多个着色器来绘制多个不同的对象,那么我该如何以有效的方式去做呢?

我觉得这对于每天都在做OpenGL ES 2.0的人来说必须是基本的知识,所以我希望有人可以回答我的问题或者指出我正确的方向.

我有:

  • 看了多个教程; 除了最基本的着色器外,其中任何一个都不使用.
  • 阅读整个OpenGL ES 2.0 GLSL规范(其中没有一个提到它是如何使用的;它只是关于所做的一切而不是它如何组合在一起).
  • 试图稍微修改我的着色器.

所以我希望我接近理解OpenGL工作流程,但我似乎还没有.

编辑:之后我发现这个很好:

如果您的应用程序是为OpenGL ES 2.0编写的,请不要创建一个具有大量开关和条件的着色器,这些开关和条件执行应用程序渲染场景所需的每个任务.相反,编译多个着色器程序,每个程序执行特定的,重点突出的任务.

这是来自iOS OpenGL ES 2.0指南.

shader android opengl-es-2.0

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

如何在android中插入%20代替空格

我有一个xml URL文件,其中有空格我想用%20替换空格..怎么做????

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();

/** Send URL to parse XML Tags */
URL sourceUrl = new URL(
                "http://www.arteonline.mobi/iphone/output.php?gallery=MALBA%20-%20MUSEO%20DE%20ARTE%20LATINOAMERICANO%20DE%20BUENOS%20AIRES");

XMLHandlerartistspace myXMLHandler = new XMLHandlerartistspace();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
Run Code Online (Sandbox Code Playgroud)

java android urlencode

32
推荐指数
3
解决办法
4万
查看次数

如何写弯曲的文字?

我想写这样的弯曲文字:

弯曲的文字

我怎样才能做到这一点?

android

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

LHS和Markdown:代码块

我碰巧真的喜欢Markdown(可能是因为SO)而且我喜欢在Haskell中编程.我最近发现了Literate Haskell(LHS),我想一起使用Markdown和LHS.让我给你这个愚蠢的例子:

Crazy Literate Haskell
======================

This is an example of some literate Haskell Code:

> module Main where

Look at that IO Monad work:

> main = return 2 >>= print

Wasn't that cool?
Run Code Online (Sandbox Code Playgroud)

这是一个有文化的haskell文件的例子,后来由Markdown解析.但是,我希望代码实际上出现在html代码块中,并且没有>之前的>.因此,我不能仅仅将所有代码行缩进四,因为这会产生您在上面看到的降价.基本上,我希望html像这样出来:

<h1>Crazy Literate Haskell</h1>

<p>This is an example of some literate Haskell Code:</p>

<pre><code>module Main where
</code></pre>

<p>Look at that IO Monad work:</p>

<pre><code>main = return 2 &gt;&gt;= print
</code></pre>

<p>Wasn't that cool?</p>
Run Code Online (Sandbox Code Playgroud)

需要注意的是它没有>符号.我该怎么办?

markdown haskell literate-programming

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

是否有Subversion Checkout Hook或类似的东西?

我正在使用一个subversion存储库,我想知道每当有人要求我的存储库进行结账时; 比如'svn co'或'svn up'.是否有人可以使用钩子或其他方法,以便每当有人从我的svn服务器请求信息时运行脚本或发送电子邮件?如何在不依赖apache日志的情况下实现这一目标?

BTW它是一个非常简单的存储库,仅用于教育目的.

(如果您需要更多信息,请提出.先谢谢.)

svn hook svn-hooks svn-checkout

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