<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:ru_scala</id>
  <title>Язык программирования Scala</title>
  <subtitle>Язык программирования Scala</subtitle>
  <author>
    <name>Язык программирования Scala</name>
  </author>
  <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom"/>
  <updated>2012-05-31T07:13:19Z</updated>
  <lj:journal userid="16084018" username="ru_scala" type="community"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://ru-scala.livejournal.com/data/atom" title="Язык программирования Scala"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:29601</id>
    <author>
      <name>varg242</name>
    </author>
    <lj:poster user="varg242" userid="32786194"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/29601.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=29601"/>
    <title>Вакансия: Новосибирск, Java/Scala/Clojure-разработчик (платформа Eclipse), в офис, 110 000 р.</title>
    <published>2012-05-31T07:13:19Z</published>
    <updated>2012-05-31T07:13:19Z</updated>
    <lj:music>Diva Destruction - Cruelty Games | Powered by Last.fm</lj:music>
    <content type="html">&lt;span style="color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; line-height: 19px; text-align: left; background-color: rgb(255, 255, 255); "&gt;Одной хорошей компании (не российской) в офис в Новосибирск требуются Java/Scala/Clojure-разработчики, знающие и любящие платформу Eclipse. Кандидаты из других городов/стран горячо приветствуются.&lt;/span&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Собеседование по скайпу, приезд на очную ставку оплачивается компанией, помощь при релокации. Множество плюшек.&lt;/div&gt;&lt;div&gt;Нам не важно, знаете ли вы Java, С#, и т.д. Дело в том, что скорее всего вы не знаете Fantom, а на нем вам тоже, возможно, придется программировать. Кроме того, если вы знакомы со Scala или Clojure на достойном уровне - мы готовы с вами работать минуя всякие собеседования.&lt;br /&gt;&lt;br /&gt;Название компании - в личку.&lt;/div&gt;&lt;div&gt;Резюме присылайте на&amp;nbsp;&lt;a href="mailto:russianvarg@gmail.com?subject=%D0%92%D0%B0%D0%BA%D0%B0%D0%BD%D1%81%D0%B8%D1%8F%20Java-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA"&gt;russianvarg@gmail.com&lt;/a&gt;.&lt;/div&gt;&lt;a name='cutid1-end'&gt;&lt;/a&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:29312</id>
    <author>
      <name>Махалыч</name>
    </author>
    <lj:poster user="rmihael" userid="4173873"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/29312.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=29312"/>
    <title>Скала-волонтёр</title>
    <published>2012-05-29T07:48:15Z</published>
    <updated>2012-05-29T16:30:11Z</updated>
    <content type="html">Добрый день. Есть желание освоить скалу как язык и, в большей степени, как способ мышления. В активе имею около 10-и лет в разработке софта, в основном С++ (Александреску читал и понимал) и Python, поверхностное знание Haskell и Scala, общее понимание функциональной парадигмы и мозговитость, свободный английский. В пассиве -- нагруженная основная работа, не оставляющая много времени на сторонние проекты и всё больше смещающаяся от реального программирования в архитектуру и менеджмент.&lt;br /&gt;С радостью бы подключился к какому-нибудь проекту, в котором будут готовы "оплатить" мою работу объяснением разных тонких моментов и ответом на глупые поначалу вопросы. Конечная цель -- хорошо разобраться в вещах типа монад, функторов, стрелок и иже с ними, а так же как их видеть и применять на практике.&lt;br /&gt;&lt;br /&gt;Upd. Договорились с уважаемым &lt;span class='ljuser ljuser-name_sorhed' lj:user='sorhed' style='white-space:nowrap'&gt;&lt;a href='http://sorhed.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif?v=92.2' alt='[info]' width='16' height='16' style='vertical-align: bottom; border: 0; padding-right: 1px;'/&gt;&lt;/a&gt;&lt;a href='http://sorhed.livejournal.com/'&gt;&lt;b&gt;sorhed&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, вперёд к знаниям!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:29124</id>
    <author>
      <name>Vlad Patryshev</name>
    </author>
    <lj:poster user="ivan_gandhi" userid="1498833"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/29124.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=29124"/>
    <title>amt vs pt</title>
    <published>2012-05-26T08:15:11Z</published>
    <updated>2012-05-26T08:15:11Z</updated>
    <content type="html">&lt;pre&gt;

  trait Functor {
    // mapping on objects of a category
    type f0[_]

    // mapping on arrows of a category
    def f1[A, B](f: A =&amp;gt; B): f0[A] =&amp;gt; f0[B]
  }

  trait FunctorWithParameter[T[_]] extends Functor { type f0[X] = T[X] }
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Проблем-то, из одного другое сделать. Эквивалентно.&lt;br /&gt;Что-то раньше не доходило.&lt;br /&gt;&lt;br /&gt;Этот второй трейт - это ж типа лямбда. Тони Моррис на днях тут писал, что они рутинно &lt;br /&gt;typed lambdas используют.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:28885</id>
    <author>
      <name>Владимир Купцов</name>
    </author>
    <lj:poster user="ext_1209171" userid="49495373"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/28885.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=28885"/>
    <title>Вакансия Scala-developer'a (Москва)</title>
    <published>2012-05-14T19:11:06Z</published>
    <updated>2012-05-14T19:22:47Z</updated>
    <content type="html">Здравствуйте, коллеги.&lt;br /&gt;Компания &lt;a href="http://inn.ru" rel="nofollow"&gt;Иннова&lt;/a&gt; ищет Scala-программиста для разработки высоконагруженного серверного приложения (application server). Приложение обслуживает миллионы пользователей в России и Европе и является сердцем игровой платформы 4game.com.&lt;br /&gt;&lt;br /&gt;Нужен человек, который понимает как создавать ПО, которое может работать без остановки круглые сутки, которому нравятся функциональные языки и возможность совмещать функциональный подход с ООП.&lt;br /&gt;&lt;div&gt;Описание вакансии - &lt;a href="http://hh.ru/vacancy/5911270" rel="nofollow"&gt;http://hh.ru/vacancy/5911270&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Ждем резюме на vacancy@inn.ru</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:28519</id>
    <author>
      <name>d_drake</name>
    </author>
    <lj:poster user="d_drake" userid="3133093"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/28519.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=28519"/>
    <title>Вторая Scala-конференция в Петербурге </title>
    <published>2012-05-14T12:43:48Z</published>
    <updated>2012-05-14T12:43:48Z</updated>
    <content type="html">&lt;b&gt;19 мая&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;&amp;nbsp;в&amp;nbsp;&lt;/span&gt;&lt;a href="http://bit.ly/IQMiKK" rel="nofollow"&gt;офисе JetBrains&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;&amp;nbsp;состоится вторая встреча&amp;nbsp;&lt;/span&gt;&lt;b&gt;Scala-разработчиков&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;&amp;nbsp;в Санкт-Петербурге. Первая встреча прошла 1 октября, отчет с видео можно посмотреть&amp;nbsp;&lt;/span&gt;&lt;a href="http://habrahabr.ru/company/e-Legion/blog/130545/" rel="nofollow"&gt;по ссылке&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;.&lt;/span&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;a href="http://scaladev.ru/" rel="nofollow"&gt;&lt;img alt="image" src="http://img99.imageshack.us/img99/5049/logoscala.png" /&gt;&lt;/a&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;Подробнее о докладах на&amp;nbsp;&lt;/span&gt;&lt;a href="http://scaladev.ru/" rel="nofollow"&gt;странице мероприятия&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;&amp;nbsp;или под катом.&amp;nbsp;&lt;/span&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;Мероприятие&amp;nbsp;&lt;/span&gt;&lt;b&gt;бесплатное&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;, для посещения необходимо&amp;nbsp;&lt;/span&gt;&lt;a href="http://elegion.timepad.ru/event/21310" rel="nofollow"&gt;зарегистрироваться&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;.&lt;/span&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;span style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); "&gt;В этот раз с докладами выступят:&lt;/span&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;br style="color: rgb(0, 0, 0); font-family: Verdana, sans-serif; line-height: 20px; text-align: left; background-color: rgb(255, 255, 255); " /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Евгений Бурмако&lt;/b&gt;&amp;nbsp;(EPFL) &amp;mdash; &amp;laquo;scala.reflect&amp;raquo;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Василий Ременюк&lt;/b&gt;&amp;nbsp;(Viaden) &amp;mdash; &amp;laquo;Курс молодого подрывника, или как с помощью Akka2.0 и одного сервера положить кластер онлайн игры&amp;raquo;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Александр Подхалюзин&lt;/b&gt;&amp;nbsp;(JetBrains) &amp;mdash; &amp;laquo;Магия Scala изнутри&amp;raquo;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Светлана Исакова&lt;/b&gt;&amp;nbsp;(JetBrains) &amp;mdash; &amp;laquo;Язык Kotlin&amp;raquo;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:28272</id>
    <author>
      <name>Егор Кошелько</name>
    </author>
    <lj:poster user="mnemosha" userid="48329087"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/28272.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=28272"/>
    <title>А требуются ли в России scala программисты</title>
    <published>2012-04-09T17:22:44Z</published>
    <updated>2012-04-09T17:22:44Z</updated>
    <content type="html">Добрый день уважаемое сообщество. Давно уже изучаю Scala/lift и настал момент поиска работы. Но, как не сложно догадаться, устроиться очень и очень не просто.&amp;nbsp;&lt;br /&gt;Кому в России требуются scala программисты ? Куда можно устроиться ? И возможно ли устроиться удаленно ?&lt;br /&gt;P.S. Возмите меня куда-нибудь :) Знаю хорошо Lift.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:28136</id>
    <author>
      <name>sassa_nf</name>
    </author>
    <lj:poster user="sassa_nf" userid="21717255"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/28136.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=28136"/>
    <title>implicit - как?</title>
    <published>2012-03-15T10:36:41Z</published>
    <updated>2012-03-15T10:36:41Z</updated>
    <content type="html">я пока не очень понимаю тонкости implicit.&lt;br /&gt;&lt;br /&gt;Есть парсер. Есть функция конвертирующая java.io.InputStream в Stream[Token]. Возможно ли / как объявить оную так, чтобы допустим:&lt;br /&gt;&lt;br /&gt;System.in.filter( ... )&lt;br /&gt;&lt;br /&gt;- т.е. неявно конвертировать InputStream в Stream[Token] и потом вызывать методы Stream.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:27839</id>
    <author>
      <name>sbos</name>
    </author>
    <lj:poster user="xsbos" userid="9745588"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/27839.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=27839"/>
    <title>Конструктор по умолчанию</title>
    <published>2012-02-24T22:27:04Z</published>
    <updated>2012-02-24T22:27:04Z</updated>
    <content type="html">Столкнулся с очень дурацкой проблемой. Есть произвольный наскальный класс:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;class Widget {

  def action() { .. }
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Я потом его передаю на растерзание некой java-библиотеке,которая очень хочет создавать объекты этого класса через конструктор по умолчанию. Но вот ведь беда, наскальный компилятор в байт-коде не создает оного!&lt;br /&gt;&lt;br /&gt;Единственный конструктор, который я вижу, декомпилируя все хозяйство, jd-gui это:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;public Widget(Widget $outer) { }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Что же делать? Как заставить скалу сделать мне конструктор по умолчанию? Версия 2.9.1-final</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:27407</id>
    <author>
      <email>livejournal@webmaster.ms</email>
      <name>zhengxi</name>
    </author>
    <lj:poster user="zhengxi" userid="7066619"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/27407.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=27407"/>
    <title>Parallel collection</title>
    <published>2012-02-08T23:21:26Z</published>
    <updated>2012-02-09T00:16:31Z</updated>
    <content type="html">Вот &lt;a href="http://jcranky.com/2011/08/26/scalas-parallel-collections-are-useful-even-in-the-most-simple-cases/" rel="nofollow"&gt;написал&lt;/a&gt; один товарищ &lt;b&gt;listOfFiles&lt;font color="red"&gt;.par&lt;/font&gt; foreach(file =&amp;gt; sendToS3(file))&lt;/b&gt; вместо &lt;b&gt;listOfFiles foreach(file =&amp;gt; sendToS3(file))&lt;/b&gt;, получил ускорение в 2 раза (по числу ядер) и возрадовался.&lt;br /&gt;&lt;br /&gt;А чему тут радоваться?&lt;br /&gt;Он же распараллелил аплоад файлов по числу ядер процессора.&lt;br /&gt;Мог бы и 50 файлов одновременно закачивать, да скаловская библиотека не даёт, там захардкожено так - использовать именно число ядер процессора.&lt;br /&gt;&lt;br /&gt;Как же, имея длинный список файлов, закачивать по 50 файлов одновременно ?&lt;br /&gt;&lt;br /&gt;В Java есть ThreadPoolExecutor, но какой-то странный - если все его треды работают, то попытка дать ему новую задачу... бросит исключение. И &lt;a href="http://stackoverflow.com/questions/3446011/threadpoolexecutor-block-when-queue-is-full" rel="nofollow"&gt;предлагаемые&lt;/a&gt; &lt;a href="http://today.java.net/pub/a/today/2008/10/23/creating-a-notifying-blocking-thread-pool-executor.html" rel="nofollow"&gt;решения&lt;/a&gt; какие-то очень многословные.&lt;br /&gt;&lt;br /&gt;Дак есть ли для Scala (или хотябы Java) готовая реализация параллельного map ? &lt;br /&gt;Такая, чтобы можно было явно задать число воркеров ?&lt;br /&gt;Или таки у каждого свой велосипед ?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:27390</id>
    <author>
      <name>ezhariur</name>
    </author>
    <lj:poster user="ezhariur" userid="11307734"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/27390.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=27390"/>
    <title>Подскажите, кто знает про pattern matching</title>
    <published>2012-01-29T07:57:35Z</published>
    <updated>2012-01-29T07:57:35Z</updated>
    <content type="html">Почитал Pattern Matching in Scala Michael R ̈ egg, mrueegg@hsr.ch December 18, 2009, погуглил (может плохо). В исходники scala лезть не хочеться. Подскажите ленивому где рыть:&lt;br /&gt;&lt;br /&gt;scala&amp;gt; Seq((1,2)).map ((a,b) =&amp;gt;)&lt;br /&gt;&amp;lt;console&amp;gt;:1: error: illegal start of simple expression&lt;br /&gt;&lt;br /&gt;scala&amp;gt; Seq((1,2)).map {case (a,b) =&amp;gt;}&lt;br /&gt;res7: Seq[Unit] = List(())&lt;br /&gt;&lt;br /&gt;{case (a,b) =&amp;gt;} - это что? мы создаем PartialFunction? что там under the hood? Как это работает? Какой документ почитать, описывающий этот механизм, если есть? Или это просто syntatic sugar, тогда как это выглядит без сахара? :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:27037</id>
    <author>
      <name>rastafarra</name>
    </author>
    <lj:poster user="rastafarra" userid="10182490"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/27037.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=27037"/>
    <title>ковариантность и контрвариантность</title>
    <published>2011-12-12T10:56:23Z</published>
    <updated>2011-12-12T10:56:23Z</updated>
    <lj:music>Dimension - The Last Word | Powered by Last.fm</lj:music>
    <content type="html">&lt;pre&gt;class C [T+] {
  var v : T = _
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;не нравится. вопрос: почему? как сделать правильно?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:26771</id>
    <author>
      <name>sassa_nf</name>
    </author>
    <lj:poster user="sassa_nf" userid="21717255"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/26771.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=26771"/>
    <title>circular dependency not allowed</title>
    <published>2011-11-23T22:29:00Z</published>
    <updated>2011-11-23T22:29:00Z</updated>
    <content type="html">хочется вот такого:&lt;br /&gt;&lt;br /&gt;type State[A] = (A, A=&amp;gt;State[A])&lt;br /&gt;&lt;br /&gt;как?&lt;br /&gt;&lt;br /&gt;(т.е. состояние как A плюс функция перехода в следующее состояние)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:26472</id>
    <author>
      <name>Евгений Жуленев</name>
    </author>
    <lj:poster user="ezhulenev" userid="44128529"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/26472.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=26472"/>
    <title>Dependency Injection в Scala</title>
    <published>2011-11-22T16:38:48Z</published>
    <updated>2011-11-22T16:38:48Z</updated>
    <content type="html">Что вы используете для DI в своих скала проектах?&lt;br /&gt;&lt;br /&gt;1. Java based DI: Spring, Guice, etc&lt;br /&gt;2. Cake pattern&lt;br /&gt;3. Может быть есть еще какие то варианты.&lt;br /&gt;&lt;br /&gt;Сейчас изучаю Cake pattern, вроде да, модно, круто, все его используют для скалы, но не нравится он мне и все тут. Spring уже как родной и в голове не укладывается как можно жить без него. Может есть у кого то сильно положительный опыт отказа от спринга?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:26340</id>
    <author>
      <email>alexott@gmail.com</email>
      <name>Alex Ott</name>
    </author>
    <lj:poster user="alexott" userid="167514"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/26340.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=26340"/>
    <title>Русская книга по Scala?</title>
    <published>2011-11-15T19:49:41Z</published>
    <updated>2011-11-15T19:50:06Z</updated>
    <content type="html">Издательство "ДМК-Пресс" планирует выпустить книгу по Scala для людей с нею не знакомых, и у них есть несколько вопросов (я с ними работаю по нескольким проектам, поэтому они попросили задать вопрос и по Scala):&lt;br /&gt; - какую книгу стоит перевести на русский язык? Я посмотрел, сейчас из актуальных книг я вижу "Scala in Action" (которая скоро выйдет) и "Programming in Scala, 2ed". Первая на мой взгляд (вариант MEAP) более практическая, с примерами и т.п., в то время как вторая - почти в 2 раза больше и скорее справочник по языку, хорошо написанный, но направленный на человека который уже решил Scala заниматься серьезно.&lt;br /&gt; - не хочет ли кто-нибудь взяться за перевод одной из этих книг? Я финансовых условий не знаю, но выдам контакты на стороне издателя.&lt;br /&gt; - а может быть кто-то возьмется книгу по Scala написать? Издательство готово рассмотреть и такой вариант...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:25953</id>
    <author>
      <name>sassa_nf</name>
    </author>
    <lj:poster user="sassa_nf" userid="21717255"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/25953.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=25953"/>
    <title>what the ...?</title>
    <published>2011-11-03T19:09:29Z</published>
    <updated>2011-11-03T19:09:29Z</updated>
    <content type="html">Map.getOrElse (key: A, default: &amp;rArr; B): B&lt;br /&gt;&lt;br /&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; val dict = scala.collection.mutable.Map[String,Int]( ) ++ (for( val i &amp;lt;- 0 to 255 ) yield ( i.asInstanceOf[Char].toString -&amp;gt; i ))&lt;br /&gt;&lt;br /&gt;lzw.scala:7: error: type mismatch;&lt;br /&gt;&amp;nbsp;found&amp;nbsp;&amp;nbsp; : () =&amp;gt; Int&lt;br /&gt;&amp;nbsp;required: Int&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c:Char =&amp;gt; dict.getOrElse( {s=s+c; s;}, () =&amp;gt; { dict.put(s, dict.size); s=c.toString; c.toInt; } )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br /&gt;one error found&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;br /&gt;почему required: Int?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:25646</id>
    <author>
      <name>Michael</name>
    </author>
    <lj:poster user="mikkim08" userid="12306198"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/25646.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=25646"/>
    <title>Учебный пример</title>
    <published>2011-11-02T11:41:58Z</published>
    <updated>2011-11-02T11:41:58Z</updated>
    <content type="html">Я ищу небольшую, но не тривиальную задачку, которая бы демонстрировала преимущества Скалы перед Джавой с т.зр. компактности и читабельности. Было бы крайне желательно, чтобы решение использовало immutale data structures и демонстрировало преимущество их использования по сравнению с mutable (с разных т.зр.).&lt;br /&gt;&lt;br /&gt;Может ли кто-нибудь предложить такую задачку с решением ?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:25373</id>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/25373.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=25373"/>
    <title>Scala IDE vs. IDEA Scala Plugin </title>
    <published>2011-10-13T10:28:26Z</published>
    <updated>2011-10-13T10:28:26Z</updated>
    <content type="html">У меня в жж — &lt;a href="http://sorhed.livejournal.com/557352.html"&gt;сабжевый мини-обзор&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:25158</id>
    <author>
      <name>d_drake</name>
    </author>
    <lj:poster user="d_drake" userid="3133093"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/25158.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=25158"/>
    <title>ScalaDay SPb</title>
    <published>2011-09-08T13:19:29Z</published>
    <updated>2011-09-08T13:19:29Z</updated>
    <content type="html">В субботу 1 октября в бизнес-инкубаторе &amp;quot;Ингрия&amp;quot; пройдёт первая&amp;nbsp;в Петербурге&amp;nbsp;встреча Scala-разработчиков.&amp;nbsp;Вы из первых рук узнаете о реальном опыте применения этого языка и пообщаетесь лично с представителями компаний из Петербурга и других городов, использующих scala в своих проектах.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Участие бесплатное, зарегистрироваться для участия можно &lt;a href="http://elegion.timepad.ru/event/10880" rel="nofollow"&gt;здесь&lt;/a&gt;. Чуть позже мы вывесим подробное расписание и другую полезную информацию о встрече.&lt;br /&gt;&lt;br /&gt;Мы всё ещё ищем спикеров. Если вам есть что рассказать о Scala или близкой теме (concurrency, ФП, ещё-что-то интересное), пишите на yuri.buyanov at e-legion.com.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:24952</id>
    <author>
      <name>Michael</name>
    </author>
    <lj:poster user="mikkim08" userid="12306198"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/24952.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=24952"/>
    <title>Аппликативный Функтор</title>
    <published>2011-08-30T10:12:29Z</published>
    <updated>2011-08-30T10:14:03Z</updated>
    <content type="html">Я, кажется понял, что такое &amp;quot;аппликативный функтор&amp;quot; с т.зр. опредeления. Но не могу сообразить, где и для чего его можно применить.&amp;nbsp; Может быть, у кого-то есть пример применения &amp;quot;аппликативного функтора&amp;quot; на Скале ?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:24805</id>
    <author>
      <name>alexanderkuprin</name>
    </author>
    <lj:poster user="alexanderkuprin" userid="26535379"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/24805.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=24805"/>
    <title>Вакансия scala developer (Москва)</title>
    <published>2011-08-30T08:54:44Z</published>
    <updated>2011-08-30T08:54:44Z</updated>
    <content type="html">&lt;table&gt; &lt;tbody&gt;  &lt;tr&gt;   &lt;td style="font-family: verdana, tahoma, helvetica, arial; background-color: rgb(255, 255, 255); padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; "&gt;    &lt;font size="2"&gt;Открыта вакансия в молодом проекте.&lt;br /&gt;Собственно, ищется scala (или разработчик Java, интересующийся языком Scala) программист&lt;br /&gt;    &lt;br /&gt;Стартап neonavigation существует 1.5 года и сейчас происходит масштабное развитие проекта.&lt;br /&gt;Вкратце, мы занимаемся навигацией в очень больших закрытых помещениях &amp;mdash; выставки, торговые центры, бизнес центры и в обозримом будущем даже музеи, вузы и метро!&lt;br /&gt;Идея такова:&lt;br /&gt;Конечный пользователь может на своем смартфоне, посмотреть где, что находится в здании, посмотреть фотки товаров и быстренько построить туда маршрут.&lt;br /&gt;Бизнес-клиенты администраторы зданий и арендаторы получают тулзы для фасилити менеджмента, кастомизации страниц и распространения промо-материалов&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Что нужно делать:&lt;br /&gt;Разрабатывать серверную часть с использованием Lift Framework&lt;br /&gt;Работать полный рабочий день (приход на работу до 12:00)&lt;br /&gt;Давать свои хорошие советы&lt;br /&gt;    &lt;br /&gt;Наши требования к Вам:&lt;br /&gt;Опыт работы программистом по Java/Scala от 2-3 лет&lt;br /&gt;Знание Ajax/Comet и других вебтехнологий&lt;br /&gt;Умение и желание писать тесты&lt;br /&gt;Знание и умение работать с jetty&lt;br /&gt;Активность и желание развиваться&lt;br /&gt;Технический английский&lt;br /&gt;    &lt;br /&gt;Будет плюсом:&lt;br /&gt;Умеете работать с линуксом&lt;br /&gt;Знаете Html5&lt;br /&gt;Работали с Lift Framework&lt;br /&gt;Любите современные красивые мобильные девайсы&lt;br /&gt;    &lt;br /&gt;Что вы получаете взамен:&lt;br /&gt;Белую зарплату (80-90 т.р. на руки)&lt;br /&gt;Офис в Научном Парке МГУ на Мичуринском на свежем воздухе&lt;br /&gt;Частичную компенсацию питания и проезда&lt;br /&gt;    &lt;br /&gt;Звоните или ишите.&lt;br /&gt;Александр,&amp;nbsp;&lt;span dir="ltr" tabindex="-1"&gt;&amp;nbsp;&lt;span dir="ltr" skypeaction="skype_dropdown" title="Call this phone number in Russia with Skype: +79039771759"&gt;&lt;span skypeaction="skype_dropdown"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span skypeaction="skype_dropdown" title="Skype actions"&gt;&lt;span skypeaction="skype_dropdown"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;+7 (903) 977-17-59&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;ak@neonavigation.com&lt;/font&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:24423</id>
    <author>
      <email>cheatexmail@gmail.com</email>
      <name>cheatex</name>
    </author>
    <lj:poster user="cheatex" userid="10176064"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/24423.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=24423"/>
    <title>Реквистируются докладчики о scala и смежных областях</title>
    <published>2011-08-25T13:13:46Z</published>
    <updated>2011-08-25T13:13:46Z</updated>
    <content type="html">Всем привет,&lt;br /&gt;&lt;br /&gt;В конце сентября в Петербурге планируется устроить пробную встречу Scala user group. Ищутся докладчики, готовые поделиться теоретическими познаниями о языке или суровым жизненным опытом его применения.&lt;br /&gt;&lt;br /&gt;Предложения докладов можно отправлять на почту Yuri(тчк)Buyanov(сабака)e-legion(тчк)com или ко мне в личку.&lt;br /&gt;&lt;br /&gt;Следите за хэштэгом &lt;a href="http://twitter.com/#!/search?q=%23ScalaSPB" rel="nofollow"&gt;#ScalaSPB&lt;/a&gt;!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:24274</id>
    <author>
      <name>Michael</name>
    </author>
    <lj:poster user="mikkim08" userid="12306198"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/24274.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=24274"/>
    <title>Вопрос про функтор в scalaz</title>
    <published>2011-08-17T19:07:47Z</published>
    <updated>2011-08-17T19:24:03Z</updated>
    <content type="html">В scalaz функтор определяется следующим образом:&lt;br /&gt;&lt;pre&gt;
trait Functor[F[_]] {
  def fmap[A, B](r: F[A], f: A =&amp;gt; B): F[B]
}&lt;/pre&gt;Как видим, F здесь является дженериком с одним параметром. &lt;br /&gt;Однако, в scalaz есть функторы для дженериков, у которых есть несколько параметров.&lt;br /&gt;Таких как Tuples и Functions, например,&lt;br /&gt;&lt;pre&gt;
implicit def Tuple2Functor[R]: Functor[PartialApply1Of2[Tuple2, R]#Apply] =
  new Functor[PartialApply1Of2[Tuple2, R]#Apply] {
    def fmap[A, B](r: (R, A), f: A =&amp;gt; B) = (r._1, f(r._2))
  }&lt;/pre&gt; PartialApply1Of2[Tuple2, R] определен как&lt;br /&gt;&lt;pre&gt;
trait PartialApply1Of2[T[_, _], A] {
  type Apply[B] = T[A, B]

  type Flip[B] = T[B, A]
}&lt;/pre&gt;К сожалению я не понимаю синтаксиса выражения PartialApply1Of2[Tuple2, R]#Apply. &lt;br /&gt;Кто-нибудь может мне его пояснить?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update:&lt;/strong&gt; Вопрос снимается. &amp;quot;Решетка&amp;quot; это всего лишь указание на inner type Apply, &lt;br /&gt;определенный в&lt;span style="font-family: monospace;"&gt; &lt;/span&gt;PartialApply1Of2.&amp;nbsp; Но все равно мудрено ...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:23926</id>
    <author>
      <name>Michael</name>
    </author>
    <lj:poster user="mikkim08" userid="12306198"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/23926.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=23926"/>
    <title>Примеры функторов</title>
    <published>2011-08-04T15:55:19Z</published>
    <updated>2011-08-04T17:25:41Z</updated>
    <content type="html">Из постинга &lt;a href="http://blog.tmorris.net/just-what-the-funk-is-a-functor-anyway/" rel="nofollow"&gt;Тони Мориса&lt;/a&gt; я, кажется понял, что такое функтор. Увидел пример функтора, который преобразует дерево из слов в дерево их длин.&lt;br /&gt;&lt;br /&gt;Однако, если мне надо преобразовывать деревья мне не нужен абстрактмый функтор, а нужен только конкретный преобразователь деревьев. По-моему, функтор имеет смысл, только если есть какой-то преобразователь, который одинаково работает с разными типами (категориями): и с деревьями, и со списками, и с какими-то еще другими тоже.&lt;br /&gt;&lt;br /&gt;Может быть, кто-нибудь может привести пример таких функторов ?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:23778</id>
    <author>
      <name>Michael</name>
    </author>
    <lj:poster user="mikkim08" userid="12306198"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/23778.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=23778"/>
    <title>Еще раз об акторах с неограниченными почтовыми ящиками</title>
    <published>2011-07-16T16:01:27Z</published>
    <updated>2011-07-16T17:37:24Z</updated>
    <content type="html">Итак, предлагают использовать pull вместо push. То есть, вместо того, чтобы посылатель просто слал получателям сообщения, получатели должны сначала сами послать запрос посылателю на получение нового сообщения, а тот уже должен послать свое сообщение в качестве ответа на этот запрос. (Ну, и естественно посылателю придется заводить какую-то внутреннюю очередь сообщений у себя).&lt;br /&gt;&lt;br /&gt;Как вам такая идея ?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:ru_scala:23429</id>
    <author>
      <name>Michael</name>
    </author>
    <lj:poster user="mikkim08" userid="12306198"/>
    <link rel="alternate" type="text/html" href="http://ru-scala.livejournal.com/23429.html"/>
    <link rel="self" type="text/xml" href="http://ru-scala.livejournal.com/data/atom/?itemid=23429"/>
    <title>Акторы и утечки памяти</title>
    <published>2011-07-12T10:54:52Z</published>
    <updated>2011-07-12T17:39:21Z</updated>
    <content type="html">Я тут не понимаю простой вещи. У мейлбоксов стандартных акторов нет ограничений по размеру. Это значит, что когда актор читает сообщения медленнее чем ему их посылают, возникает утечка памяти. Мне кажется, что спроектировать хоть сколько-нибудь сложную систему, чтобы избежать такой ситуации, трудно или даже невозможно. Я не прав ?&lt;br /&gt;&lt;br /&gt;Насколько я понимаю, стандартная практика это мейлбоксы ограниченного размера с API, который при попытке писать в заполненный мейлбокс либо возвращает ошибку, либо блокируется. В Акке вроде такие мейлбоксы есть, но что делать со стандартными ?</content>
  </entry>
</feed>

