понедельник, 13 января 2014 г.

Крит 2013. Ущелье Платанья.

Зима  окончательно вступила в свои права. За окном минус 8, самое время вспомнить прошлое лето и гостеприимный остров Крит.
Решили мы посетить ущелье Платанья. Оно не так известно, как другие природные красоты Крита, однако фотографии в сети убедили нас, что место стоящее. Информацию я почерпнул отсюда: http://www.psiloritis-natural-park.gr/2/69.html. Ну и наши греческие друзья решили тоже отправиться с нами за компанию. 
Проблема с Платанья в том, что на Крите вы найдёте как минимум 3 деревни с созвучными именами. Поэтому будьте аккуратны в своих поисках, если решите последовать по нашим стопам. Наша цель находится в номе Ретимно, в 38 км южнее города.


пятница, 10 января 2014 г.

Dzone puzzle: Maze Solver

Assume you have a 2D array that represents a maze. Spaces are denoted by a 0 and walls are denoted by a 1. Devise the most efficient way to get through this maze, while following these two simple rules: 
- You can only move right (not left) 
- You can only move down (not up) 

My solution in Scala:

 

package mazesolver


case class Pos( x: Int, y: Int){
  def move(m: Move):Pos = m match {
   case Right => Pos(x+1, y)
   case Down => Pos(x, y+1)
  }
}

class Move
case object Right extends Move
case object Down extends Move

object Solver {
 
  def solve( maze: Maze, start: Pos, end: Pos): List[Move] = {
    
    
    def canMove( p:Pos, m: Move ): Boolean = {
      val newPos = p.move(m)
      if( newPos.x < 0 || newPos.y < 0 || 
          newPos.y >= maze.size || newPos.x >= maze(newPos.y).size ||
          maze(newPos.y)(newPos.x) == 1  ) false
      else true
    } 
    
    def findPathFrom( curr: Pos, moves: List[Move] ):List[Move] = 
     if ( curr == end) moves.reverse
       
     else{
         val pathR= if (canMove( curr, Right)  ) 
              findPathFrom( curr.move(Right), Right::moves)
               else Nil
         val pathD = if (canMove( curr, Down)  ) 
              findPathFrom( curr.move(Down), Down::moves)
            else Nil
         
         if( pathR == Nil ) pathD else  pathR
     }    
    
    findPathFrom( start,  Nil)
  }     
  
}

понедельник, 6 января 2014 г.

Jenkins : How to push Jenkins enviroment properties to Ant

По каким - то причинам Jenkins сам не передаёт переменные в Ant-плугин.
Но это можно сделать вручную,



после чего все переменные становятся доступными с префиксом env , например

env.SVN_REVISION

четверг, 2 января 2014 г.

... Орнелла Мути имеет эстонские корни

Вот кто бы мог подумать? Читаем в Википедии:

"Родилась 9 марта 1955 года в Риме, Италия. Её отец неаполитанец, а мать родом из Эстонии. "

Продолжаю изучать Жизни Замечательных Людей .