我有一组打印机通过网络连接,并为每台打印机分配静态IP.
现在我有一个在Linux服务器上运行的PHP Web应用程序需要通过网络向这些打印机发送打印作业.
这可能是使用lpr或杯子,我该怎么做呢.
我在Win XP上使用Eclipse Indigo,使用Maven 3.0.3.我已经创建了一个Selenium 2测试,我希望在Eclipse中进行调试.它设置为在Maven集成测试阶段运行.我正在使用Maven Cargo插件和Tomcat作为容器.这是我的pom.xml中的相关部分......
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>tomcat${tomcat.major}x</containerId>
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-${tomcat.major}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz</url>
<downloadDir>${project.build.directory}/downloads</downloadDir>
<extractDir>${project.build.directory}/extracts</extractDir>
</zipUrlInstaller>
<output>${project.build.directory}/tomcat${tomcat.major}x.log</output>
<log>${project.build.directory}/cargo.log</log>
</container>
<configuration>
<home>${project.build.directory}/tomcat-${tomcat.version}/container</home>
<properties>
<cargo.logging>high</cargo.logging>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
</configuration>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
<goal>deploy</goal>
</goals>
<configuration>
<deployer>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<pingURL>http://localhost:8080/${project.artifactId}</pingURL>
<pingTimeout>30000</pingTimeout>
<properties>
<context>${project.artifactId}</context>
</properties>
</deployable>
</deployables>
</deployer>
</configuration>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- Skip the normal tests, we'll run them in the integration-test phase -->
<skip>true</skip> …Run Code Online (Sandbox Code Playgroud) 如何使用sbt 0.11.x来使用公司Maven存储库(排除其他存储库),如我如何让sbt使用本地maven代理存储库(Nexus)中所述??ivyRepositories在github的新sbt wiki中没有提到,所以我假设已经过时的解决方案已经过时了.
如何查看Scala编译器为表达式等推断的类型?我有一些复杂的类型推断和隐式转换的代码,很难通过阅读代码看到发生了什么.
我试过添加
scalacOptions in Compile += "-Xprint-types"
Run Code Online (Sandbox Code Playgroud)
在build.sbt中,但这没有任何效果.
直接使用scalac并不是很吸引人,因为我有很多依赖项.
我使用Eclipse Scala插件和ENSIME编写代码,使用SBT构建.
如果我IORef在多个线程之间共享,并使用atomicModifyIORef写入它:
atomicModifyIORef ref (\_ -> (new, ()))
Run Code Online (Sandbox Code Playgroud)
用普通的旧版读取价值是否安全readIORef?或者有可能readIORef在atomicModifyIORef修改后在另一个线程中返回旧值吗?
我认为这就是文档所暗示的:
atomicModifyIORef充当重新排序的障碍.多个atomicModifyIORef操作以严格的程序顺序发生.在任何早期(在程序顺序中)IORef操作之前,或在任何后来的IORef操作之后,都不会发现atomicModifyIORef.
我只是想确定一下.
我的git树中有一个文件:
$ git ls-files | grep /Expression.java
sm/src/main/java/cl/utilities/sm/Expression.java
Run Code Online (Sandbox Code Playgroud)
我想得到它的活动日志,而不必输入整个路径.基本上我想要这个输出:
$ git log --oneline -2 sm/src/main/java/cl/utilities/sm/Expression.java
2718cdc cleaned up some warnings
f30cf15 Added missing @Overrides
Run Code Online (Sandbox Code Playgroud)
......但无需打字sm/src/main/java/cl/utilities/sm.我尝试了很多东西,但没有一个有效:
$ git log -- \*/Expression.java
$ git log -- \*Expression.java
$ git log -- \*\*/Expression.java
$ git log -- '*/Expression.java'
$ git log -- '**/Expression.java'
Run Code Online (Sandbox Code Playgroud) 我想创建一个按钮,当按下该按钮时,会向表单添加一个新输入(或textarea).
我想我需要一个受限制的HList,它的所有元素都是某种类型的子类型.LUBConstraint似乎是我想要的,事实上它确实限制了这样一个HList 的构造 - 但是我看不出如何再次获取证据,所以我可以映射(实际上,遍历,因为它需要是monadic)在HList上并调用每个元素上的方法(存在于LUB类型中).
另外,我希望从遍历操作得到的HList的类型与输入HList的类型完全相同.
用例是一种功能性的"监听器列表" - HList的所有元素都是"监听器",必须通知"事件",接受或拒绝它们,并返回更新的"内部状态"的新版本.如果这就是我所需要的,那么我可以使用普通的不可变Scala集合.但我也希望直接键入单个元素而不使用asInstanceOf- 因此尝试使用HList的动机.
签名modifyIORef很简单:
modifyIORef :: IORef a -> (a -> a) -> IO ()
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不是线程安全的.有一个替代方案可以解决这个问题:
atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b
Run Code Online (Sandbox Code Playgroud)
这两个功能之间到底有什么区别?b在修改IORef可能从另一个线程读取的参数时,我应该如何使用该参数?