I was testing SimulANT+ software from www.thisisant.com. Application was working without problem, but document with API was not readable. Only index was visible, but no content.
The API documentation is stored in file SimilANT+ Scripting Interface.chm. The problem with CHM content is classical gotcha on Windows.
When you download ZIP with CHM then Windows will automatically mark this file as downloaded from Internet. You have to unblock content of file manually.
Other alternative is to use 7-zip or other extractor which does not keep this flag.
Note: SimulANT+ has Python API, hooray!
Gradle has support for PMD. You can find following example on internet:
apply plugin: 'pmd'
ruleSets = [ "basic", "strings" ]
This code is not working with Gradle 2.0. Here is error message:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':pmdMain'.
Can't find resource null. Make sure the resource is a valid file or URL and is on the CLASSPATH. Here's the current classpath: C:\Users\georgik\tmp\install\gradle-2.0\lib\gradle-launcher-2.0.jar
The reason is simple. In case of Gradle 2.0 you must add language prefix before name of rule. You must use java-strings instead of plain strings.
Here is correct example (available also on YSoftDevs Github):
apply plugin: 'pmd'
ruleSets = [ "java-basic", "java-strings", "java-braces" ]
You can find more rules for PMD in official documentation.
Thanks Matt Sicker for correct solution.
After upgrade of Linux distribution Courier stopped to accept emails delivered over TLS or SSL.
There was just nice error message in the log file:
couriertls: /etc/courier/esmtpd.pem: error:0906D06C:PEM routines:PEM_read_bio:no start line
Long story short. The problem was in pem file.
Previous versions of Courier-SSL were able to read files with Windows EOL. The new version is failing with this nice error.
Solution is simple: get rid of Windos EOL.
You can use e.g. dos2unix
Restart services and everything will work
One very cool feature of Python 2.x is instant web server. You can type following command and Python will start simple http server.
python -m SimpleHTTPServer
This command does not work in Python 3.x. The reason is that SimpleHTTPServer was merged to http.server module.
Correct command for Python 3.x is:
python -m http.server
First of all: do not use daemon mode for debugging.
IntelliJ Idea is automatically spawning daemon when you start any Gradle task. You have to attach to remote process.
I wrote small “How to debug” based on info from forums.gradle.org.
You’ll need to set GRADLE_OPTS environment variable to:
Here is example in PowerShell:
Configure Remote debugging in Idea:
You do not need to change anything in default configuration.
Now return to command line with your project and invoke task. Gradle will automatically stop and it waits for debugger.
Here we go
There is small limitation. You can stop code execution outside DSL e.g. in class method (line 3). You won’t be able to stop execution in Gradle DSL line 10.
You can download sample build script from Github.
I had an opportunity to be one of Lightning talks speakers at Gradle Summit 2014 in Santa Clara – California.
I’d like to share with you slides from my talk about Bamboo and Gradle integration which we successfully deployed in Y Soft.
Link to Speaker Deck
It was exciting to hear about experience with Gradle from other speakers from companies like Netflix, Prezi or JFrog.
Cookbook provides short and easy to understand chapters about wide range of features. Each chapter contains some links to web sites or related technologies.
I recommend to read the book one chapter a day. Learn new stuff, experiment with it and next day continue with next chapter.
What you can find inside the book? Here is selection of some interesting topics
Chapter 1: Discovering Visual Studio 2013
- contains productive tips how to use Visual Studio in effective way (keyboard shortcuts, navigation in project)
Chapter 2: Getting Started with Windows Store Application
- good starting point for building own application for Windows Store
- introduction to analysiss of application performance
Chapter 3: Web development
- learn how to work with Bootstrap
Chapter 4: .NET 4.5.1 Development
- unit testing of .Net apps
- managing packages with NuGet
Chapter 5: Debugging .NET Application
- debugging with IntelliTrace
- debugging parallel code
Chapter 6: Asynchrony in .NET
- introduction to popular way of programming applications
- integration of async concepts with web applications
Chapter 7: Unwrapping C++ Development
- Native Unit Test Project for C++
- graphics programming – 3D, DGSL and diagnostics
Chapter 8: Working with Team Foundation Server
- getting feedback from users
- git integration
Chapter 9: Languages
- highly improved integration with further languages like TypeScript or Python
- Python support is simply awesome
Visual Studio 2013 Cookbook is available at Packt Publishing store.
Slides available in formats: PDF, SlideShare
Source code: GitHub/georgik
IntelliJ Idea has neat feature – Terminal Window.
Unfortunately on Windows it’s set just to old school cmd. Good news is that it’s possible to change it to something better. E.g. PowerShell.
Go to project settings, type “terminal”. Change value in Shell path to powershell.exe.
Then you can invoke Terminal:
Note: If you’re using 32bit version of Idea then it will open 32bit version of PowerShell. This is important when you want to change Set-ExecutionPolicy. 32bit and 64bit PowerShell have two different settings.
If you’re using Debian and you want to get rid of Hearbleed bug then it’s not sufficient to upgrade openssl package.
The really important package is libssl1.0.0:
apt-get install libssl1.0.0
It will restart all services which depends on this package.