Пользователь
57,4
рейтинг
16 мая 2012 в 18:08

Разработка → Судья Алсуп умеет программировать и поучает адвоката Oracle

Java*
На сайте Groklaw публикуется текстовая трансляция судебных слушаний Oracle против Google, где речь идёт о возмещении ущерба $150 тыс. за «воровство» для Android функции rangeCheck и тестовых файлов. В обсуждении встречаются интересные моменты. Например, вчера судья Алсуп, ведущий это дело, вступил в небольшую перепалку с адвокатом Дэвидом Бойзом, который представляет интересы Oracle: см. запись разговора.

Oracle: Вопрос не в том, насколько велик ущерб. Вопрос в том, можно ли закрыть глаза на коммерческую выгоду нарушителя исходя из того, что объём нарушений мал.

Кроме того, для меня не ясно, что справедливо сравнение девяти строк кода и 15 миллионов, потому что из них 10 миллионов составляет ядро Linux. Но всё равно, девять строк — это небольшой процент. Тестовые файлы гораздо больше, но они не присутствуют, по крайней мере, в текущей версии Android.

Но и то, и другое принесло прибыль Google, ускорив сроки разработки Android. Скорость разработки для Android была критическим фактором; мы уже продемонстрировали это ранее, и мы дополнительно ещё проиллюстрируем данный факт. Они хотели быстрее, быстрее, быстрее. Это копирование кода позволило им задействовать меньше ресурсов и ускорить разработку. Предположим, что они ускорили разработку на два дня. Они зарабатывают сейчас $3 миллиона в день, активируя 700 тысяч или 800 тысяч телефонов. [По оценке Google, они зарабатывают от $8 до $10 на каждом устройстве]. Если вы просто получите ускорение на два дня, то это шесть или семь миллионов долларов, и эта сумма не следует напрямую из ценности непосредственно [украденного] кода.

Они [Google] хотят представить ситуацию так, что если нечто маленькое, то нарушитель не получает прибыли. Да, кто-нибудь другой мог написать этот код, но сколько времени у него это бы заняло?

Судья Алсуп: Я ничего не знал о Java до [разбора] этой проблемы.Но я раньше, да и сейчас довольно много занимаюсь программированием на других языках. Я писал фрагменты кода вроде rangeCheck сотни раз раньше. Я мог это сделать, вы могли это сделать. Другими словами, вы можете скопировать это с такой же скоростью, что и написать самостоятельно. Это была случайность. Ни в коем случае нельзя говорить, что это ускорило их выход на рынок. Вы один из лучших адвокатов в Америке, как вы вообще можете приводить такие аргументы?

Oracle: Я хочу вернуться к функции rangeCheck.

Судья: rangeCheck! Да она только проверяет, что числа на входе принадлежат диапазону, и генерирует нечто вроде исключения. Тот свидетель сказал, что даже школьник может написать это.

Речь идёт о возмещении ущерба за «воровство» девяти строчек функции rangeCheck. Компания Oracle требует за них $150 тыс. компенсации. Есть подозрение, что Oracle пытается создать прецедент, чтобы утвердить «тариф» за строчку кода.
Анатолий Ализар @alizar
карма
751,5
рейтинг 57,4
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (135)

  • +77
    Какой умный судья попался.
    Ораклу — да, это 150к — ни холодно ни жарко.
    Интересно, своим программистам они тоже платят 150к за каждые 10 строчек кода? Ну или хотя бы 1% — 150 долларов за строчку кода.
    • 0
      Это будет 0,1%
      • +7
        150'000 — 10 строчек, 15000 — 1 строчка, 150 — 1% за 1 строчку.
        • +1
          1% от 150k -> 1.5k
          • +4
            150 долларов за строчку кода.
            • +13
              да что уж там, для ровного счета 146
              • +15
                Ох уж эти новые тенденции на хабре, 128 или 256 были вытеснены какими-то «ровными» 146…
              • +3
                Разве не 147? 150 минус три рубля комиссии за перевод…
            • +1
              Ещё комментарии по 50 за строку :)
              • +1
                Вроде же по 80
          • +5
            да, собственно не о том речь шла )
            • +13
              offtop
              У меня глюк на вашем нике
              /offtop
              • +10
                могу аватарку поменять для большего эффекта :)
    • +2
      А открывающая и закрывающая скобки там есть? Если они на отдельных строках, то тоже считаются по $15K каждая?
      • +3
        Будет забавно если окажется, что ребята из Oracle сами скопипастили эту функцию из какого-нибудь проекта. :-)
        • +4
          Ребята из Oracle эту функцию не писали. Они получили ее в наследство от Sun.
          • +1
            А штат работников Sun не влился в коллектив Oracle?
            • +8
              конктретно этот кусок кода писал человек, который нынче работает в google. Чисто теоретически он мог такое написать и по памяти.
              • 0
                он уже не работает в гугол
    • +1
      Если потом эти строчки смогут приносить 3 лимона баксов в день, то можно и дороже платить за строчку. :)
    • +3
      Поставим вопрос по-другому: «Oracle платит своим программистам, исходя из количества строк кода?» :)
      • +3
        Ну а что? У индусов вполне есть такие расценки — по количеству строк кода
  • +16
    Тариф на строчку кода? т.е. если оракл выиграет слушание, то строчка кода будет стоить 16.7к долларов? :D
    • +6
      Интересно было бы дать им победить, а потом найти за что прижать оракл по такому тарифу) На пару тысяч строк)
      • +6
        Я думаю ораклу будет пофигу на такую сумму 35 млн $ мелочи за 2000 строк, но вот маленькие компании будут просто очень трястись за такие ситуации, ведт найдут у тебя 50 строк и все банкрот
        • +1
          расчёт идёт относительно прибыли в день, у маленьких компаний соответственно и доходы будут маленькие
          • +2
            я хз как идет рассчет ибо код андройда написанный гуглом — это пара миллионов строк точно, исходя из этого стоимость строки в день была бы не более 1$
        • +8
          Эй, компашка, строчка кода есть? А если найду...?
          • +5
            Ты еще за int i; не отсидел!
            • 0
              За public static void main(String[] args) все должны, без вариантов :-)
              • 0
                А если я пишу под Java EE например, или под тот же Android?
        • +5
          Компания B украла у компании A 2000 строк кода, каждая из которых содержала закрывающую фигурную скобку.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Перейти на brainfuck :-)
    • +13
      Боюсь за писателей драйверов
  • +43
    Ай молодца!
  • +13
    > Oracle:… исходя из того, что объём нарушений мал

    Интересно… А ведь раньше Oracle говорил что объём большой. Как быстро меняются взгляды когда ружьё у соперника.
    • +5
      «Хороший, плохой… Главное — у кого ружьё!» /Нэш, отдел скобяных товаров/

      Судье три раза «ку!»
  • –7
    1. Пишем работающий код
    2. if(false){/*пишем не работающий код*/}
    3. ????
    4. PROFIT

    Не похоже ли это на китайцев или индусов?
  • +44
    Хочу чтоб наши судьи писали на нескольких я.п.
    • +2
      простите, а зачем? в школе все должны были изучать. но поголовно программировать, кому-то может рыбачить интереснее.
      • +22
        Это хотябы говорит о том, что человек компетентен в области, по которой проходит суд. Я в школе и ОБЖ проходил, но ничего не помню.
        • +20
          Судья должен быть компетентен в вопросах права в первую очередь. Для всего остального есть MasterCard судебная экспертиза.
          • +27
            Но согласитесь, неплохо когда есть и специализированные. Если бы этот суд вёл судья-рыбак, он бы врятли бы смог так усмирить заносчивого оракловского адвоката.
            • +9
              Вообще усмирять заносчивого оракловского адвоката дело адвоката защиты. Судья лишь должен принять доводы одного и опровергнуть другого. В любом случае, судья должен иметь представление о предмете спора.
            • +8
              Подозреваю что даже судья рыбак согласится что проверка, находится ли одно число между двумя другими, является довольно таки простой задачей как для 150000$
              • +9
                :) В том то и дело что нет, если бы он не умел програмировать, то с подачи Оракл, ему бы это показалось супер-секретным ноу-хау.
                • +2
                  Подозреваю что без экспертов он бы не выносил вердикта =)
                  • +18
                    На сколько я понял, суд с присяжными. А в этом случае большую роль играет производимое впечатление. Если судья прилюдно отбривает обвиняющего адвоката — это отразится на решении присяжных.
                    • +1
                      или не отразится. зависит от присяжных.

                      есть нюанс, что показания экспертов стали расходиться — по поводу нарушения патента, Dr. Mitchell считает что в dex-файле есть символические ссылки которые разрешаются с помощью симуляции, а эксперты от гугла — что их нет и что там pattern matching. Здравый смысл на стороне гугла, и эксперты у гугла более компетентны (тогда как эксперт от oracle не читал доклад, на который он ссылался в своей экспертной оценке).
                      при вынесении вердикта присяжные посчитали файлы тестов не скопированными, т.е. они уже не доверяли словам Митчелла. аналогично, с учётом расхождения в показаниях, они могут начать меньше верить словам Митчелла, что «да, студент-выпускник, если им руководить, может в принципе написать rangeCheck» и принять сторону судьи и, соответственно, не иметь ничего против полоскания оракловского адвоката.

                      но это всё ничего не значащие спекуляции уже
                  • +3
                    Ага, а с экспертами вынес бы решение типа заблокировать сайт на blogger.com по IP, причём только по одному из четырех в А-записях.

                    В решениях суда важна ведь не только оценка правомерности действий ответчика (тут и привлекаются эксперты), но и собственно формулировка решения и расчёт суммы ущерба. Особенно в странах с де-юре прецедентным правом.

                    Допустим суд признает вину Google и заставит заплатить 150 000$. Очень многое будет зависеть от формулировки приговора, может функцию всю оценят в 150 000, может 10 строк, может два дня прибыли Гугла. Но тем или иным образом установят «расценки» по таким делам. Вот каким образом это очень важно, т. к. все участники аналогичных процессов будут ссылаться (если им это будет выгодно, конечно) на данное решение.
                • +8
                  Не просто ноу-хау, а они еще говорят что создание такого кода занимает два дня работы целой команды, которая занимается разработкой софта.
        • +11
          Очевидно, что среднестатистический судья и адвокат не может защищать или принять верное решение по ИТ тематике, если он не знает, что такое браузер, cookies и т.п.
          Поэтому в странах где развиты судебные институты, адвокаты и судьи специализируются в какой-то сфере: медицина, ИТ, семейное право, автомобили и т.п. — это нормально и правильно.
          • +2
            Судебрая экспертиза должна быть, да. Судье все предоставляют уже в простой форме, ему пофигу есть ли куки в браузере итд
            • +2
              На самом деле тут еще играет естественный отбор. Хороший судья, который как в данном случае умеет программировать: 1) будет тянуться к делам из IT; 2) скорее всего будет допускать меньше ляпов. Как следствие скорее всего вырастет по карьерной лестнице и будет судить серьезные компании вроде тех, что здесь.

              Мне кажется, что судья действительно не должен разбираться в предмете, но так само может получиться.
              • +1
                Должен, перечитайте пост с начала. В противном случае (ну как у нас) судья просто не понимает, что происходит в зале суда. Это как японсое порно, что-то происходит, все куда-то едут и почему-то визжат, но нихрена не понятно!
            • 0
              В такой ситуации может сложиться ситуация, когда эксперт важнее судьи. Как сейчас в России с практикой применения антиэкстремистского законодательства. Что «эксперты» напишут, то суд и принимает как истину в последней инстанции, ничуть не анализируя критически содержимое экспертизы.

              Итого: судья не нужен.

              Нет, всё же судья должен быть способным понять суть спора. Особенно, если всё заходит в области, где нет прежней судебной практики, нет прецедентов, этакая серая зона.
          • +5
            Как мне кажется, такая специализация в юридических кругах более связана с законами (точнее с их обилием) — невозможно вменяемо хорошо разбираться во всем. Другое дело, что знание юридических законов в области не гарантирует понимания процессов, в этой области происходящих. Слишком быстро развивается, слишком далеко от «житейской логики».
      • +10
        когда разбирается дело о коде лучше чтоб программировал, а когда о вылове рыбы, то лучше чтоб рыбачил. Судьи разные нужны, судьи разные важны.
      • –3
        У многих в школе то и нормальных компьютеров не было, а то и вообще не было, а родители не имели возможности купить… Как программировать или вы в уме интерпретатор держите? А Sauron, скорее имел ввиду что хорошо бы было чтобы наши судьи в предмете разбирались, потому что зачастую наоборот.
        • +3
          зачастую наоборот

          Предмет разбирается в судьях? Ж)
        • +5
          или вы в уме интерпретатор держите?

          Вы будете смеяться, но в Энциклопедии профессора Фортрана это и предлагается делать, и из бумаги слепить ленту команд и ползать руками по ней указателем. Я именно так и «программировал» комп при этом один раз видел у мамы на работе.
          • НЛО прилетело и опубликовало эту надпись здесь
            • +4
              +1, но мне повезло больше, у меня был старый спекртум с бэйсиком на борту =)
              • 0
                А я начинал уже с «Электртоники» с DOS'ом на борту ) и QuickBasic )
                Славные были времена )
            • +5
              Да супер, до дыр ее зачитывал. Была и «А я был в Компьютерном Городе», а еще читал советскую книжку по Лого, там еще в конце таблица была, соответствие команд на русском английском и болгарском.
        • +6
          Я программировал на листочке долгое время. Потом на уроках информатики быстро вводил и отлаживал.

          Еще на калькуляторе писал, что мог;) выход есть, если очень хотеть.
          • +3
            Ностальгия.
            У меня правда не было ни компьютера, ни информатики в школе вплоть до 10 класса.
            Я был записан на удалённые курсы.
            Писал программы на листочке и отправлял их письмом в другой город, там их тестировали и потом высылали результат.
            Тогда же я полюбил С++, т.к. писать на нём было короче и потому было меньше ошибок, в отличие от Паскаля.
            • +1
              Прямо деревянные игрушки, прибитые к полу) Уважаю, у меня терпения на такое занятие не хватило бы.
            • 0
              Написание и тестирование кода в уме без ошибок — одно из самых важных умений для разработчика :-) Так что можно заочно поставить Вам достаточно высокий уровень компетенции :-)
        • +4
          Да, полезно иногда держать в уме интерпретатор, когда программируешь. У нас были как лекции и лабораторные, так и семинары, где мы решали типовые задачи на бумаге (один препод даже каждый урок давал индивидуальные пятиминутки). Так что, как одно из составляющих обучения, программировать на бумаге полезно, не исключая компьютер, конечно.
          • +1
            Написание кода любого нетривиального участка начинается в голове, продолжается на бумаге, и заканчивается в редакторе исходного кода :-)
            • 0
              Эх, не понимаю, как вообще возможно программировать не выполняя код в уме? Когда записываешь программу — уже знаешь, что будет в итоге…
              Однако же, не поверил бы, если бы своими глазами не видел людей, пишущих код и ожидающих от него невозможного и не понимающих, почему же оно не может работать. Стиль программирования «знаю, что нужно написать примерно так, а дальше поперебираем значки». Жуть, в общем.
        • +2
          Я под барсик писал в тетради. Помню игра была интелектуальная. Все по книге «Basic это просто»
      • +3
        Мне кажется программирование как-то больше развивает формальную логику, чем рыбалка. Роль формальной логики в юриспруденции, думаю, понятна интуитивно.

        Но я не к тому чтоб все поголовно судьи. Хотя-бы некоторые!..
      • +2
        У меня в школе не было информатики(выпуск после 9 класса.) В 10-11, вроде как, по рассказам бывалых, она была. Но я ходил на доп занятия. там мы учили бейсики разные. В техникуме у нас началась информатика. Там мы учили word. Как же меня она бесила. Редкий случай преподавателя, к которому ни капли уважения.
        • +2
          Я такой же училке набирал 3 странички текста за 15 минут и был свободен с пятёркой до конца четверти.
          • +1
            Я с нашей постоянно препирался, ибо она порола откровенную чушь. Она боялась компьютеров, что тут говорить
            • +3
              «Где сменка? В компьютерный класс можно входить только в белом халате и сменке!»
    • +1
      когда у нас начнут рассматривать подобные иски, то может предже чем стать судьей — будут проходить тесты на знание ЯП
      • 0
        > когда у нас начнут…

        Не начнут :-) У нас все решается, увы, проще.
  • +5
    Воровство функций? То был недавно пост про «воровство классов» про штук 5 файлов, где подробно описывались какие-то лицензии, теперь уже отдельные функции пошли. С нетерпением жду новость про воровство названий переменных.
  • +1
    >Компания Oracle требует за них $150 тыс. компенсации.
    Я-то думал, они требуют как минимум 150 миллионов долларов, если не пару миллиардов, но 150 тысяч?
    Думаю, адвокаты на этот процесс обошлись дороже что Гуглу, что Ораклу.
    • +2
      думаю вопрос больше принципиальный чем в деньгах, прецедент такой никому не нужен.
    • +1
      Вопрос тут в другом, они хотят создать прецедент, дабы в дальнейшем на его основе могли рассматриваться аналогичные дела. И тут уже дело принципа, позволят Google этого добиться или нет.
  • +2
    Почему речь о 9 строках кода? Раньше были претензии к значительно большему кол-ву + тысячам строк явадок. Тут присутствует желтизна или я что-то пропустил?
    • +3
    • +5
      Все очень просто, это confirmation bias. Хабр имеет обычай коллективно закатывать глаза и кричать «Это же Ализа-а-а-а-а-ар». Кроме случаев когда «новость» подтверждает их внутренние убеждения.

      В данном отрывке речь действительно идет о rangeCheck, но вообще Google был признан виновным по всем пунктам обвинения (включая все примеры нарушения копирайта которые рассматривались, а не только те, которые были отмечены присяжными):
      The evidence at trial showed that Google decompiled eight Java files and copied them each in their entirety. No reasonable jury could find that the copying of entire computer files was de minimis. The trial record contains the source code for the Java code files (TX 623.2–623.8), decompiled versions of Java code files (TX 896.1–896.8), and corresponding Android code files (TX 1031–40). Professor John Mitchell testified about the decompilation process, how he determined that the eight files were decompiled and how, in a side-by-side comparison he found «that the actual code matches completely» (Tr. at 1259–1260).

      In its opposition brief, Google argues that the jury may have found that Google's use of the copied files was de minimis because these copied files were only «test files» that were not shipped on Android phones. This is unpersuasive. Professor Mitchell testified that using the copied files even as test files would have been significant use. There was no testimony to the contrary. Moreover, our court of appeals has held that it is the amount of copying as compared to plaintiff's work that matters for the de minimis inquiry, not how the accused infringer used the copied work. Newton v. Diamond, 388 F.3d 1189, 1195 (9th Cir. 2004). Here, Google has admitted to copying the entire files. No reasonable jury could find that this copying was de minimis.

      For the reasons stated, Oracle's motion for judgment as a matter of law of infringement of the decompiled files is GRANTED. The answer to Question 3B on the Special Verdict Form from phase one will be deemed 'Yes.'

      IT IS SO ORDERED.


      Dated: May 11, 2012.

      WILLIAM ALSUP
      UNITED STATES DISTRICT JUDGE


      Кроме того, Google был признан виновным в копировании API из 37 пакетов. Два вопроса, которые еще предстоит решить: можно ли копирайтить API (скорее всего да — как и любой другой нетривиальный продукт творчества) и можно ли отнести действия Google к fair use (неизвестно и вроде бы для этого намечается отдельное разбирательство).
      • +4
        > вообще Google был признан виновным по всем пунктам обвинения

        не. был установлен факт копирования метода rangeCheck и 8ми тест-файлов.
        всего пунктов обвинения было немножко больше: )
      • +1
        В этом смысле очень интересно, является ли Mono (частичной) копией API под названием .NET Framework. Да и вообще, правомерен ли любой reverse engineering, приносящий (финансовую) выгоду.
        • +1
          Он является реализацией стандарта ECMA-335.
      • +1
        Далеко не любой нетривиальный продукт творчества можно копирайтить. В частности языки программирования. API мне видится ближе к ЯП, чем к коду — описывает синтаксис и семантику, но не реализацию.
  • +87
    Ой, не могу. Oracle завернул всех присяжных инженеров, а судью-программиста проморгал.
    • +4
      Как бы теперь оракл не завернул слишком умного судью как заинтересованное лицо или с какой-нить подобной формальной формулировкой :)
      • +18
        Думаю, если Оракл отведёт судью, после того, как он так раскритиковал позицию адвоката, то в глазах присяжных это будет окончательное фиаско и признание своей неправоты. Присяжные же простые люди, а не юристы, они не думают законами :)

        И где Гугл такой подарок откопал? Это случайно получилось или специально было подготовлено?
        • +9
          Потом Оракл скажет, что судья завербованный сотрудник гугла :)).
  • +7
    Я не пойму, чего адвокат Гугла щелкает клювом и не достает дело SCO vs IBM. Там аналогичная ситуация с кодом была. Только там были заголовочные файлы. Но по объему и сложности сравнимо.
  • +3
    Я писал фрагменты кода вроде rangeCheck сотни раз раньше. Я мог это сделать, вы могли это сделать.

    Ужасающий перевод.
  • +36
    >> Судья Алсуп: Я вам не говорил кое-что насчёт Java до настоящего момента.

    Какой поворот. По этому процессу книгу писать можно )
  • +7
    Процесс всё интереснее и интереснее.
    Серьёзно представить диалог:
    "-Oracle: Я хочу вернуться к функции rangeCheck.
    -Судья: rangeCheck! Да она только проверяет, что числа на входе принадлежат диапазону, и генерирует нечто вроде исключения" крайне сложно…
    • +2
      Если вспомнить какую чушь с серьёзным лицом говорят герои фильма «2012», то это покажется вполне нормальным диалогом
  • НЛО прилетело и опубликовало эту надпись здесь
  • +49
    Для разовой работы требуется судья:
    Опыт работы с Java не менее трех лет, ООП, Spring, Hibernate, Multithreading.
    • +16
      Отдел кадров:
      Google Inc.
      Phone: +1 650-253-0000
  • +7
    хочу футболку с текстом rangeCheck
    • +9
      private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
              if (fromIndex > toIndex)
                  throw new IllegalArgumentException("fromIndex(" + fromIndex +
                             ") > toIndex(" + toIndex+")");
      
              if (fromIndex < 0)
                  throw new ArrayIndexOutOfBoundsException(fromIndex);
      
              if (toIndex > arrayLen)
                  throw new ArrayIndexOutOfBoundsException(toIndex);
      
          }
      }
      
      • +1
        Ой еще забыл заказ около руб 500, в гугле
        • +8
          По такому случаю гугл их может раздавать бесплатно:)
      • –1
        Не знаю, обратил ли кто-то внимание, что функция — из серии «как не надо писать проверки».
        Я о том, что arrayLen — параметр функции, который совсем нигде не проверяется, а исключение по выходу за диапазон задается одним и тем же классом ArrayIndexOutOfBoundsException. Фактически, получив исключение придется снова провести проверку значений (в блоке обработки исключений).
        • 0
          И вот еще кстати, одно исключение «выводит» текстовый комментарий «fromIndex(» + fromIndex + ") > toIndex(" + toIndex+")", а два других — нет.
          Поэтому создается ощущение, что первое исключение — для дебага, а последующие — для продакшина.
          Бредятина какая-то…
          • +3
            И вот еще кстати, одно исключение «выводит» текстовый комментарий «fromIndex(» + fromIndex + ") > toIndex(" + toIndex+")", а два других — нет.
            С чего вы взяли?
            Сообщением у «двух других» будет «Array index out of range: X» где X — переданное в конструктор число.
            • 0
              Из текста функции не ясно, будет ли именно так обрабатываться исключение ArrayIndexOutOfBoundsException, как Вы написали. Для этого нужно просматривать остальные исходники.
              Кроме того, при желании, я могу ведь и заменить действия конструктора исключения (например, чтобы он вызывал функцию изменения размера массива используя X) — в этом ведь и есть основная сила ООП, а вот аргумент IllegalArgumentException придется парсить.
              • 0
                Текст сообщения никак не зависит от обработчика исключительной ситуации, он явно задаётся в конструкторе:

                    public ArrayIndexOutOfBoundsException(int index) {
                	super("Array index out of range: " + index);
                    }
                

                Кроме того, при желании, я могу ведь и заменить действия конструктора исключения (например, чтобы он вызывал функцию изменения размера массива используя X)

                Если у вас в конструкторе исключения будет код, манипулирующий над данными метода/класса, вызвавшего исключительную ситуацию, то это будет примером того, как не надо писать конструкторы исключительных ситуаций. Обработка исключительной ситуации должна быть в соответствующем catch блоке.

                аргумент IllegalArgumentException придется парсить.

                Гораздо правильнее будет просто не допустить ситуации, в которой fromIndex > toIndex, чем лепить костыли с парсингом сообщения исключительной ситуации.

                А если понадобятся дополнительные данные о состоянии программы на момент возникновения исключительной ситуации — создайте специализированный класс исключения с нужными полями.
      • +1
        Я даже проверила оригинал, но там тоже «All it does is make sure the numbers you're inputting are within a range». Это ведь действительно переводится как «внутри диапазона», а не «корректно определяют диапазон»?
        • +1
          Да, это действительно так переводится. А почему это вас смутило?
          • 0
            Просто всё-таки судья точно не помнит, что именно делает эта функция :) Странно если за всё это время он даже ни разу не видел код главного яблока раздора.
      • +1
        Выводы по коду:
        — Oracle подает в суд на хабр за плагиат года
        — Oracle не подает в суд на хабр т.к. строк всего 8
  • +24
    Несколько слов болдом чтобы привлечь внимание!

    ура, получилось.
     

    Я читал groklaw ежедневно последние 3 недели и хотел бы прокомментировать:

    1. 150 тысяч долларов — это не сумма претензий оракла, это установленный законом верхний предел для statutory damages (что-то вроде штрафных санкций) при осознанном нарушении копирайта (см. c.2).

    2. Oracle может требовать либо statutory damages, либо actual damages, которые включают в себя как упущенную выгоду, так и прибыль, полученную нарушителем в результате нарушения копирайта.

    3. Первые, по-моему, 15 дней суда речь шла о statutory damages. Потом присяжные вынесли вердикт, что Google скопировала rangeCheck. Oracle не смог доказать, что Гугл скопировал что-либо ещё, таким образом сумма иска мгновенно сократилась со 150000*x, где x — количество заимствований (скажем, функций. или файлов. или как повернуть дело) до 150000*1.

    4. После вердикта присяжных Boies, адвокат Оракла, сообщил судье, что они выбирают actual damages (до этого процесс шёл так, как будто бы Oracle выбрала statutory damages). Судья на это ответил, что всё ок, но оракл делает большую ошибку.

    5. В целом, процесс довольно интереснен с точки зрения простого разработчика-наблюдателя. Довольно забавный в целом эпизод
    www.groklaw.net/articlebasic.php?story=20120511165908331 со слов «Mr. McFadden is totally a programmer. He speaks precisely, and doesn't tolerate any incorrect terminology or vagueness», когда присяжные, суд и адвокаты слушали лекции и беседовали с выдающимися computer scientists.

    вот отрывок:

    Oracle: Верно или нет: инструкция iget в Dalvik не содержит настоящий адрес в памяти того поля, которое она предполагает получить?

    Mr. McFadden: Верно.

    Oracle: Верно или нет: операнд «va» — не является адресом настоящего поля в памяти?

    Mr. McFadden: Верно.

    Oracle: vb и field@CCCC не являются адресами настоящего поля в памяти?

    Mr. McFadden: Верно.

    [Здесь юрист Оракла выглядит так победоносно, как будто бы он внезапно нашёл орудие убийства. Понятия не имею, что его вопросы должны были означать, и могу сказать, что свидетель тоже этого не понял. Реакции присяжных я, к сожалению, не видел]
    • +1
      извините, а кто такой Mr. McFadden? консультант суда?
      • +1
        Andrew McFadden, свидетель защиты (от гугла, то есть)
        разработчик dexopt, которая оптимизирует dex-файлы
  • +9
    Если все судебные процессы США будут вести судьи, знающие программирование, патентные войны а-ля они скопировали наш прямоугольный телефон сойдут на нет :)
    • +8
      Давно уже надо ввести в школах предмет «Логика». При чем с первого класса.
      • +26
        При чем

        Ну, у нас в школах русский язык с первого класса, и толку?
        • 0
          Пять тысяч баллов за коммент )))
      • +2
        Вместо него ввели «Основы религиозных культур и светской этики» и «этим» спокойнее, и «тем» сытнее.
  • +4
    Судья-программист, какой ужас для адвокатов. Интересно, в школах права уже есть специальность — «адвокат-ИТшник»?

    Представляю вопрос на экзамене: «Если иконка отличается на 3 пикселя от оригинала, можно ли считать ее скопированной?»
    Ответ: «Подсчитаем манхэттенское расстояние между ними в цветовом пространстве sRGB...»
  • +5
    Следующий шаг Оракла — заявить отвод судьи в связи с тем, что он умеет программировать.
    • 0
      А потом и следующего, он ведь наверняка пользовался (или даже продолжает!) продуктами Google. Уже почти что поклонник, какой от него непредвзятости можно ожидать? :)
  • 0
    Судья молодец. Если бы еще в нашей стране судьи были компетентны в IT вопросах, было бы гораздо лучше и проще доказывать и отстаивать свои права.
  • 0
    Нам бы таких судей. Недавно нашей российской судье объясняли, что такое лицензия на программу. Наш юрист упарился десять раз…

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.