Jenkins Git-plugin on Windows pauses when cloning.
If you have Jenkins & Msysgit on Windows, and you find that the git-plugin is pausing at the cloning stage, it is likely that the ssh child process is blocking for input.
Mawson's Hut |
Jeremy Mawson |
If you have Jenkins & Msysgit on Windows, and you find that the git-plugin is pausing at the cloning stage, it is likely that the ssh child process is blocking for input.
Book reviews never change my mind. That is until I read this review of DSLs in Action. I will buy this book.
Did many people know about Option.apply before a few days ago? If my twitter stream is any indicator, it was a hidden gem waiting to be uncovered.
How, oh how could I have forgotten SBT-GH-Issues? It allows management of github issues via SBT. This is the plugin that initially got me thinking ‘what other wonderful jewels are out there’?.
Since I wrote my last post, the Jenkins CI plugin has diverged from the Hudson version. (It’s been updated by @uzi_landsmann)
And then there’s a newly emerged code coverage plugin “name_pending”. It’s in beta and there has been at least one report of it not working well. But it’s early days yet, and I have hope in it.
SBT, the Simple Build Tool, has excellent plugin support. The official list of SBT plugins is on the SBT Wiki. I suspect it is not entirely up-to-date.
Here’s a list of plugins currently available. Some I have used personally, most I have not.
I’m sure to have missed a few. If so, let me know. Or better still, head over to the SBT Wiki and update it.
To keep up with new plugins (and libraries) as they are published, I recommend a subscription to implicit.ly
I'm not in Brisbane, so I can't see how my property is doing right now. It's in a flood affected area, so I sought a way to see if it was flooded.
Bot name: Synesso
Unoficial rank: 500-600
Language: Scala
Source: https://github.com/Synesso/ai-contest-scala-impl Whilst my bot is not a top performer (it's ranking about the top 11-12%), I thought it may be interesting to some to see idiomatic Scala with higher-order functions, method lifting, immutable types and specification tests (most of my bot was written using BDD). I completely re-wrote the app entry-point from the Java starter pack and it is much more succinct. (I made this pack available to other contestants via the forums). The specifications are here. Here's a good example of one. It deals with the behaviour of planets to project their future state given the incoming fleets. The bot logic is here. Distinct operations were separated into different methods. These were lifted to functions and tested as closures in the specs. Not having done any AI or game logic before I took a naive approach. I aimed for simplicity and treated each move independently. I did not differentiate between enemy targets and neutral targets. If it is a good deal (distance, regen and population wise) I take it. I sought to expand my collection of planets as a group rather than jumping to make distant colonies. I would have loved to work with someone else during this project. Next year my local Scala user group will submit a collective bot. I can't wait. I spent a long time trying to implement the same type of bot in Java, rewriting it maybe 5 times. It just got too messy for my liking. As soon as I could no longer make changes without side-effects I had to start again with a slightly revised algorithm. Using Scala made the task far simpler.
Scala's for-comprehensions are syntactical sugar for underlying higher order methods. The following two lines produce identical results. Which do you prefer, and why?
Here is my solution to James Carr's recent Kata - Pascal's Triangle. Implemented in Scala.
I needed to quickly obtain the cumulative size of all log files in the current path. Here's how I did it: