вторник, 14 февраля 2012 г.

Scala, переопределение операторов


Продолжаю изучать Скалу.
Скала, как известно, тотально обьектно ориентирована. Здесь нет ни примитивов, ни операторов в прямом смысле этого слова. Однако, это совсем не значит, что вы не можете использовать "+","-" и другие операторы в своём коде.

"+" и "-" можно определить как методы в соответствуюших классах. Например, создадим класс Num

class Num (val intgr: Int){
  def +(num: Num)= {
    new Num( intgr + num.intgr)
  }

  def -(num: Num)= {
    new Num( intgr - num.intgr)
  }

  override def toString = "Num "+ intgr
}
и запустим такой скрипт, чтобы протестировать наш код:
val num1 = new Num(10)
val num2 = new Num(5)
println ( num1 + num2 )
println ( num1 - num2 )
Как нетрудно догадаться, результаты будут 15 и 5. Очень полезная возможность, не так ли?

четверг, 9 февраля 2012 г.

Хорошо быть Java - девелопером

Особенно в штатах :)

http://www.indeed.com даёт такую информацию:
Интересный факт. Быть Ява девелопером выгоднее, чем работать с ДотНет или ПэХаПэ. И даже ИТ аналитики зарабатывают меньше... Однако!


среда, 1 февраля 2012 г.

Java vs Scala vs Groovy performance. Так кто же быстрее?

Несколько лет назад начал интересоваться альтернативными языками для JVM. Groovy даже нашёл своё применение в некоторых "живых" проектах. Однако плохая производительность сильно ограничивала использование языка в реальных приложениях.

Прошло несколько лет, появился Groovy 1.8, который, по заявлениям разработчиков, справился с проблемами производительности. Так ли это на самом деле? Чтобы ответить на этот вопрос, я написал примитивные тесты на 3-х популярных языках для JVM.

Groovy.
 static void main(args) {
    long l = System.currentTimeMillis()
    int cnt = 0;
    100000.times { i->
      //def customer = new Tester(id: i, name:"Gromit", dob:new Date())
      //String s = ("Hello ${customer.name} ${i}")
      String s = ("Hello  ${i} Groovy")
      cnt += s.length()
    }    
    println( "${System.currentTimeMillis() - l} - ${cnt}")
}
Результат - 438 миллисекунд. То же самое в Scala :
 
override def main(args: Array[String])  {
    val l = System.currentTimeMillis()
    var cnt = 0;
    for (i <- 0.until(100000)){
      val s = "Hello " + i + " Times scala"
      cnt += s.length()      
    }
    
    println((System.currentTimeMillis() - l) + " - " + cnt)
  }
187 миллисекунд, лучше более чем в 2 раза? И теперь чистая Java (версии 1.7):
 
public static void main(String [] args) {
    long l = System.currentTimeMillis();
    int len = 0;
    for(int i = 0; i < 100_000; i++){
      String s = "Hello " + i + " Java";
      len += s.length();
    }

    System.out.println( (System.currentTimeMillis() - l)+ " - " + len) ;
}
32 миллисекунды! более чем в 10 раз быстрее аналога на Groovy. Java заруливает всех своих JVM опонентов, если речь идёт о производительности.

среда, 25 января 2012 г.

среда, 18 января 2012 г.

Что везти из Греции

В Греции есть всё. Однако не всё, что там есть, возможно привезти с собой домой. Солнце и море, главные греческие богатства, с собой не заберёшь. Однако кое-что вполне поместится в ваш чемодан и будет радовать вас на Родине.

Так что же прихватить с собой из Эллады?

* Товары из оливкового масла. Многим придутся по вкусу натуральная оливковая косметика, мне  же нравится мыло. Может, выглядит оно и не очень, но по своим качествам оно даст фору любому магазинному.

* Собственно оливковое масло. В Греции его великое множество. Какое же выбрать? Для себя сделал выбор в пользу масла Сития Экстра Вёрджин, кислотностью 0,3% . Цена, конечно, кусачая, где-то около 12-15 евро за литр, но оно того стоит. Нежное, ароматное, золотистого цвета, обладает отличным вкусом.
* Мёд. Особенно тимьяновый. Вот например баночка, купленная в бухте Балос. Очень ароматная штука.
* Алкогольные напитки. Метаксу, узо, цикудью. А мне очень нра их вина, особенно от конторы Дулуфакис. Увидите - берите смело.
А ещё мальвазия. Как раз одна бутылочка всё ещё ждёт своей очереди на антресолях.

* Самое ценное, что можно привезти из Греции  - это Ваши загар, хорошее настроение и воспоминания. Они бесценны.

воскресенье, 8 января 2012 г.

10 древнейших деревьев на земле.

Писал про древнейшую оливу и задумался: а какие ещё деревья пережили все мировые катаклизмы? Ответ здесь.

Крит 11. Элафониси и древняя олива из Ано Вувес.

За окном белый снег и 5 градусов мороза. Кажется, что зима всё же вспомнила про Эстонию и решила почтить нас своим присутствием. А я вспоминаю жаркий день 7-го сентября, когда мы посетили Элафониси на западном побережье Крита.

  Элафониси - это весьма раскрученное среди туристов место на западном Крите, славится оно розовым песком, мелкой тёплой водой и живописными окрестностями. В сети есть восторженные рассказы туристов, живших в Элафониси дикарями. Естественно, такой райский уголок не мог нас не заинтересовать.

четверг, 5 января 2012 г.

Прощай, одинадцатый.

Очередной год прошёл. Хороший был год, интересный.
- Слетали в Грецию, 2 недели на Крите. Впечатлений столько, что в блог не помещаются. Надо будет ещё парочку сообщений добить, чтобы закрыть эту тему.
- Совершён очередной заезд в осеннюю Прагу, по сугубо рабоче-образовательным делам. Убеждён, что в Прагу надо ездить минимум раз в год, дабы вкуса не забыть.

- Усиленно изучал английский под руководством Кимберли из Америки. С трепетом жду Экзамена.
- Прочёл множество интереснейших книг особо отмечу   Энеиду Виргилия, "Мой дед - истребитель" Олди, Снафф и "Чапаев и пустота"от Пелевина
- Научил Антоху читать. Горд за него, и за себя тоже :)

Уроки Греческого языка скоропостижно закончились. Адонис улетел, а нового преподавателя греческое государство в Эстонию не послало. Видимо, у них сейчас в Греции есть дела посерьёзнее. Надеюсь когда-нибудь снова взяться за изучение языка.