• Поиск. КМП-алгоритм

    Недавно на досуге решил написать алгоритм КМП  (Кнута — Морриса — Пратта) для Scala. Изначально, мне нужно было решить простенькую задачку — найти последовательность байт в потоке байтов. Сделал на Java. Потом, решил сделать тоже самое на Scala. Занятно, но в стандартной библиотеке коллекций Scala используется именно КМП поиск. Вот мой вариант.

    Читать далее…

  • GWT. Обработка серверных исключений на клиенте.

    В целом обработка исключений при работе в GWT через RPC довольно детально описана в разделе документации DevGuideHandlingExceptions Важный момент на который следуют обратить внимание — throws для метода. Например, вот Ваш интерфейс: public interface MyService extends RemoteService {   public String myMethod(String s); } Допустим Вы сделали класс MyException который наследуется от RuntimeException. Например, это исключение вы создали для своих прикладных нужд и хотите чтобы оно могло быть перекинуто и обработано на клиенте. Это конечно удобно, т.к. полученный тип исключений является Unchecked Exception. Таким образом его не нужно явно декларировать, оно может произойти где угодно (не надо прописывать везде throws) и…

    Читать далее…

  • Читерство в NetBeans. Ввод и использования мат. символов и букв греческого алфавита.

    Оригинальная идея взята из поста Gabriel’s software development blog. Статья довольно старая, опубликована еще в прошлом году . Если коротко: def √(x:Double)=Math.sqrt(x) def ∑(r:Range)(f:Int => Int)=r.foldLeft(0)(_+ f(_)) def ∏(r:Range)(f:Int => Int)=r.foldLeft(1)(_* f(_)) val s= ∑(1 to 100)(x=>√(x)) Это обычный Scala код! Выглядит он прикольным, потому что мы используем знакомые всем со школы/института символы. Но как сделать так, чтобы было удобно вводить эти символы для меня было загадкой. В итоге недавно случайно придумал как это можно сделать просто и удобно средствами IDE, а точнее в NetBeans. Я вбил все нужные мне символы в Code Templates (Tools → Options → Editor →…

    Читать далее…