• Если я скомпилирую приложение на java под windows, то оно запустится на линукс?

    pi314
    @pi314
    Приложение на Java компилируется (компилятором, входящим в состав JDK) не под платформу, а в байткод, который потом загружается и выполняется виртуальной машиной Java (JRE) на любой платформе, где она, эта машина, есть. Соответственно, в общем случае, нет никакой разницы, где компилировать, а где потом выполнять, и у самой Java никаких проблем кроссплатформенности нет и никогда не было. Но такие проблемы, конечно, бывают сплошь и рядом у криворуких программистов, использующих в коде какие-то специфические для конкретной платформы вещи - от жестко зашитых делимитеров в путях файлов и до конкретных системных API, dll и пр.
  • Postgres - несколько union с почти одинаковым запросом, как упростить?

    pi314
    @pi314
    un1t: И что в нем, только z, или еще что-то? И, вообще, опишите подробнее проблему, цель запроса и примерную структуру распределения данных в таблице... Если это все вдруг супер-пупер коммерческая тайна, придумайте иносказательную аналогию, но объясните ЦЕЛЬ!
    Bыполните, в конце концов, EXPLAIN и засветите результаты.
    Иначе непонятно, нужно ли, и можно ли это оптимизировать. Ибо избавиться от большого некрасивого куска текста в стейтменте, это, как бы, одно, а реально оптимизировать запрос - как бы, совсем другое ))
  • Postgres - несколько union с почти одинаковым запросом, как упростить?

    pi314
    @pi314
    Или Вы что-то важное недоговариваете, или это похоже на невероятно ядреный генератор случайных чисел )) "DISTINCT ON ( expression [, ...] ) keeps only the first row of each set of rows[...] Note that the "first row" of each set is unpredictable unless ORDER BY is used"
  • Как изменить значение поля интерфейса в Java?

    pi314
    @pi314
    thatmaniscool: К сожалению, код в вопросе начисто лишен смысла с точки зрения ООП, и тот факт, что в нем использованы конструкции из примера из книги (кстати, хорошего и наглядного примера), говорит о том, что Вы вообще не поняли, что такое интерфейс. У Экеля приведен совершенно понятный и осмысленный пример: есть абстракция "робот, умеющий выполнять некие операции" - соответственно, сначала определены интерфейсы Робот и Операция, а потом класс СнегоуборочныйРобот, который имплементирует интерфейс Робот и подсовывает специфические для СнегоуборочногоРобота операции, имплементирующие интерфейс Операция. У объектного дизайна в примере есть совершенно конкретные цели: слабая связанность, следование принципам SOLID и т.д.
    А вот причем тут эти все Лог, ДатаЛог и почему Персона вдруг имплементирует интерфейс ДатаЛог понять совершенно невозможно. Налицо неправильное использование абстракций и, как следствие, неправильный дизайн отдельных мест... в конструкторе планируется получать данные из MySQL? В реализации метода Log доступаться к нефинальному полю str? Наконец, почему это все инициализируется через вызов статических методов? Словом, это все похоже на очень тяжелый бред... который было бы проще выкинуть и написать заново... если бы Вы только смогли объяснить, ЧТО ЭТО ДОЛЖНО ДЕЛАТЬ )) Из кода в вопросе это понять не представляется возможным. Так что, нет... сорри: единственный ответ на вопрос, "как изменить значение поля в интерфейсе" состоит в том, что в интерфейсах нет полей... в них есть методы и константы.
  • Как изменить значение поля интерфейса в Java?

    pi314
    @pi314
    thatmaniscool: Тогда не поленитесь, как минимум, добавить эту информацию к вопросу - из какой книги, какой пример, страницы... и ссылку на книгу неплохо бы, например, вот эту:
    people.inf.elte.hu/delsaai/java/6Eckel%20-%20Think...
    Чтоб тому, у кого дойдут руки с этим разобраться, не пришлось искать и гадать )) Если у меня дойдут раньше других (а что-то говорит мне, что так оно и будет), напишу ответ.
  • Как изменить значение поля интерфейса в Java?

    pi314
    @pi314
    thatmaniscool: Вы серьезно полагаете, что кто-то станет рыть носом интернет и пытаться читать мысли, чтоб удостоиться чести ответить на беспонтовый вопрос, который Вы даже не можете потрудиться внятно сформулировать? Знаете, сколько разных изданий Экеля существует, нет? Я, например, навскидку открыл восьмое... и там на 460 странице вообще про многопоточность. Угадайте, сколько я еще сделаю попыток найти "пример про робота" в фиг его знает котором издании и телепатически догадаться, как из Экеля (который раньше не был замечен в написании бессмысленного кода в качестве примеров в книге) получилось то, что в вопросе, и в чем была высшая цель этих "доработок"? ))) Правильно: ни одной!
  • Как изменить значение поля интерфейса в Java?

    pi314
    @pi314
    thatmaniscool: Не очень похоже, что научились, т.к. код редкостно бессмыссленный (( Я, конечно, не помню наизусть все книги про Java, но если это действительно код из книги (а не доработанная методом научного тыка отсебятина), то выбросьте ее и не читайте! Лучше расскажите своими словами, чего хотели добиться в этом примере, и Вам наверняка быстро предложат правильное решение.
  • Как изменить значение поля интерфейса в Java?

    pi314
    @pi314
    Невероятно загадочные манипуляции с интерфейсами... просто жесть))
    Есть простые правила, сильно облегчающие жизнь:
    - если у интерфейса менее двух разных имплементаций
    и
    - если к полю приходится доступаться через рефлексию
    то самое время задуматься над тем, зачем это все было нужно.
    Попробуйте внятно объяснить, какую цель преследует этa загадочная конструкция - тогда наверняка можно будет сказать, как то же самое сделать проще и правильнее ))
  • Не резолвятся домены, по запросу, хотя интернет есть?

    pi314
    @pi314
    Денис Сечин: На Тостер попал ваш браузер... как именно - ему виднее )) А вот как и куда попадает dig, Вы узнаете только, если сами спросите его об этом ))
  • Не резолвятся домены, по запросу, хотя интернет есть?

    pi314
    @pi314
    "connection timed out" означает, что нет доступа к DNS-серверу по умолчанию.
    Попробуйте:
    #dig @8.8.8.8
    #dig @8.8.8.8 google.com
    #dig google.com @a.root-servers.net
    ....
    com.			172800	IN	NS	a.gtld-servers.net.
    ...
    #dig google.com @a.gtld-servers.net

    Это должно ответить на все вопросы ))

    P.S. если что, то 8.8.8.8 это:
    8.8.8.8.in-addr.arpa name = google-public-dns-a.google.com
  • Чем отличается nat от proxy? чем отличается proxy от vpn?

    pi314
    @pi314
    dummyman: Ну, так и я же - именно об этом! О том, что никакого смысла в вопросе "чем отличается отвертка от плоскогубцев, а плоскогубцы от напильника" нет и быть не может, если не уточнять, для чего именно )) Если не уточнять, то единственное, что можно сказать наверняка, это то, что это разные инструменты, и, как любые инструменты, могут быть использованы для самых разных целей... а уж хорошо это или плохо, будет зависeть только от кривизны рук мастера ))
  • Какие бывают алгоритмы по нахождению оптимального пути?

    pi314
    @pi314
    Владимир Олохтонов: Зато, наверное, можно бы было отнимать ;) Если мусоровозки "резиновые", то сводится к: найти путь из А в Б, на котором соберется максимум мусора за минимум расстояния. Если тупо (ну, или, умно - с каким-нибудь коэффициентом) отнимать вес узлов от веса ребер, то решается одним поиском, без рюкзака. Если не "резиновые", то, конечно, рюкзак... А еще интереснее станет, если "чем больше загружена мусоровозка, тем больше она тратит бензина" )))
  • Чем отличается nat от proxy? чем отличается proxy от vpn?

    pi314
    @pi314
    dummyman:
    Спасибо, именно эти мысли я и пытался донести до автора вопроса, так что, ничего обидного в вашем комментарии не вижу.

    Только вот, если рассуждать последовательно, "гнать трафик", это не задача, и даже не цель, а только средство (одно из!) достижения цели "объединить узлы в сеть". И на пути ее достижения возникают отдельные подзадачи, для решения которых и предназначены эти штуки:

    nat - изоляция сетей, маршрутизация трафика, масштабирование подсетей.
    proxy - снижение нагрузки на отдельные сегменты сети путем кэширования части трафика.
    vpn - защита трафика в незащищенной сети, путем создания в ней виртуальной сети.

    Кстати, большинство из этого напрямую следует из названий, если понимать смысл отдельных слов:

    nat - Network Address Translation (трансляция сетевого адреса)
    proxy - (уполномоченный [чей? разумеется, шлюза])
    vpn - Virtual Private Network (виртуальная приватная сеть)

    А дальше, если, конечно, еще и хоть немного представлять, в чем конкретно заключается суть этих абстракций, уже можно разбираться с частными вопросами, типа, а если proxy не будет кэшировать (ведь можно же отключить!), будет ли он, и если да, то чем, отличаться от шлюза vpn? Да, будет, в основном тем, что канал до него зашифрован... ну, и еще вагоном и маленькой тележкой других "мелочей"... например, тем, что, в отличие от vpn, будет выполнять роль шлюза без всякого дополнительного софта на клиенте. Опять же, если это вообще важно. А если неважно, то ответ будет: "нет, ничем не будет отличаться" ))

    Так что, мы, по сути, говорим об одном и том же: ключ к правильному ответу в руках самого автора и состоит в том, чтоб сначала разобраться, что есть что, и тогда уже задавать вопросы, на которые можно будет точно ответить ))
  • Есть ли английское слово к слову верстка?

    pi314
    @pi314
    Typesetting, если в оригинальном, полиграфическом смысле... ибо, изначально верстались печатные страницы.
    Если в контексте веб, и, вообще, дигитальных медиа, то layout (если больше в смысле дизайна/компоновки) или web frontend development (если больше в том смысле, как это слово сейчас употребляется в русском).
  • Чем отличается junior от middle? а Senior?

    pi314
    @pi314
    Lexxtor:
    "Как только аналитики зафиксируют точное ТЗ, я смогу дать реалистичную оценку", перевод: "иди в пень".
    "До релиза наверняка успею! В крайнем случае, ужаться в других местах или немножко сверхурочных", перевод: "тебе реально нужна губозакатывательная машинка".
    "Да там фигня делов, нужно только запланировать", перевод: "крутая фича... но если что-то пойдет не так, я не виноват".
  • Насколько быстрее денормализованная форма бд от нормализованной?

    pi314
    @pi314
    Пример денормализации https://habrahabr.ru/company/latera/blog/281262/
    В данном ответе приведен пример агрегации... что не совсем одно и тоже.
    Прирост производительности, который МОЖНО получить (как от одного, так и от другого), зависит от кучи факторов: от конкретной используемой БД, ее фич (например, materialized view), настроек сервера, объема доступной памяти RAM, производительности I/O и до конкретного набора данных / выполняемых на нем запросов и иногда даже расположения звезд. Так что никаких, даже самых общих цифр нет и быть не может. Но грубо прирост всегда можно оценить, выполнив команду EXPLAIN для запросов к одной и другой конкретным структурам.
    И, кстати, для дипломного проекта можно не полениться и самому поднять какой-нибудь сервер БД, заполнить таблицы данными и произвести замеры, ибо, сомневаюсь, что тема этой дипломной работы "поиск в интернете" ))
  • Как канонично организовать структуру таблиц в базе данных MySQL?

    pi314
    @pi314
    Антон Дышкант: Да, конечно... если нужна еще и типизация свойств на уровне типов данных, обычно заводятся отдельные таблицы под каждый тип данных, и далее, если совсем "нормализовано", то связь с каждой таблицей для типа данных делается через отдельную таблицу связей, а если чуть менее, то ключ типа можно поместить прямо в таблицу свойств. Оба способа имеют, как обычно, свои преимущества и недостатки. Впервом случае любой запрос можно будет сформулировать только средствами SQL (ценой его сложности!), во втором потребуется дополнительная логика в коде.
  • Как я могу перемещать мышку?

    pi314
    @pi314
    основной вопрос философии: как Вы собираетесь Java-кодом на сервере перемещать курсор (даже не знаю, который)... там ведь нет ни монитора, ни мышки. Именно об этом и извещает Вас первое исключение: код выполняется в headless environment ))
  • Почему возникает ошибка "переменная уже определена"?

    pi314
    @pi314
    Потому, что «переменная уже определена» )) Как говорится, найди семь отличий на этой картине:
    int a; // определение (или, иначе, "объявление") переменной
    a = 5; // присвоение (ранее определенной) переменной какого-то значения
    int b = 7; //одновременное определение переменной и присвоение ей значения
  • Стали бы вы учитывать рейтинг пользователя на Тостере, если бы приглашали его на работу в свою компанию?

    pi314
    @pi314
    Конкретный рейтинг, (даже самый гениальный, сбалансированный именно по тем характеристикам, которые интересуют меня в данном конкретном случае), я бы, лично, учитывать не стал. Но вот ответы почитал бы обязательно, ибо по ним можно понять, как человек мыслит, как излагает свои мысли, насколько он, вообще, в теме по каким-то вопросам и т.д., и, благодаря этому, если повезет, гораздо лучше подготовиться к собеседованию.