• JavaFX умер или нет?

    @vangod
    Живее всех живых. Шикарнейший gui фреймворк. Это awt/swt со свингом больше не нужны никому - есть же FX, который в разу симпатичней и функциональней. Просто gui'шные приложения на java исторически считаются моветоном.
    Ответ написан
    Комментировать
  • Должен ли объект в Java сериализовать сам себя?

    Vityarik
    @Vityarik
    1 класс должен решать 1 задачу сериализация это уже вторая задача, и она должна быть в отдельном классе. Как вариант в декораторе исходного класса.
    Ответ написан
    Комментировать
  • Где читать все нововведения php7?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Как вариант, habrahabr.ru/users/pronskiy/topics
    А так на офф сайте и на wiki.php
    Ответ написан
    Комментировать
  • Как передать изображения на клиент?

    timych
    @timych
    Ход мыслей у вас правильный - в DTO кладете весь дескрипшн и линк на сервис выдающий изображения. Например myservice.myimageresource?imgId=12345.
    Ресурс может быть либо сервлетом либо рест ресурсом. Картинку берете из базы и сразу отдаете байтовым потоком клиенту по GET запросу. Писать во временную папку не надо.

    В ответ на ваш коммент отредактировал тут -так как тут есть теги для кода.
    Вот сильно упрощенный пример сервлета, отдающего картинку.
    public class PreviewServlet extends HttpServlet {
    	
    	private static final long serialVersionUID = 1L;
    	
    	//  это ваше DAO
    	private PreviewService previewService = Fascade.getPreviewService();
    
    @Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("image/jpeg");
    		//парсим id картинки из запроса
    		int imageId = Integer.parseInt(request.getParameter("id"));
    		//Тут вы получаете  Entity вашей картинки, одно из полей у которого является массивом байт
    		Preview preview = previewService.getByImageId(imageId);
    		byte[] bytes  = preview.getBytes();
    		response.setContentLength((int) bytes.length);		
    		// получаете поток для своих нужд
    		ServletOutputStream outStream = response.getOutputStream();
    		// отсылаете картинку на клиента
    		outStream.write(bytes);
    		// закрываете поток
    		outStream.close();
    	}
    }

    Почти подобным образом можно и через рест ресурс отдать.
    Ответ написан
    2 комментария
  • По какому критерию искать географическое месторасположение объекта инфраструктуры?

    Разберитесь с принципом учёта. Всё что к ним приходи например попадает в 1С а 1С выгружает это на центральный сервер через XML вот вам и актуальная БД на центральном сервере :) Ну это теории для диплома подойдёт, на практике могут быть некоторые сложности ))
    Ответ написан
    Комментировать
  • Как полю класса А обратится к приватной функции класса А?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Можно сделать так:
    Elevator реализует приватный интерфейс ButtonControlled с одним публичным методом -- decide. Приватность интерфейса гарантирует, что только Elevator сможет дать его кому захочет. Button получает от Elevator не ссылку на Elevator а ссылку на ButtonControlled, в котором счастливо вызывает decide.
    Типа того:
    class ButtonControlled
    {
    public:
      virtual void decide() = 0;  
    };
    
    class Elevator : ButtonControlled
    {
    private:
      Button* button;
      virtual void decide();
    };
    
    class Button
    {
    private:
      ButtonControlled* controlled;
    public:
      Button(ButtonControlled &controlled);
      void push()
      {
        controlled->decide();
      }
    };
    
    Elevator::Elevator()
    {
      button = new Button(*this);
    }
    Ответ написан
    2 комментария
  • Как более грамотно сформулировать тему диплома "Интернет-магазин"?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Не в обиду, однако задайте вопрос, а станет ли мир лучше, если будет создан ещё один бесполезный интернет-магазин. Дипломная работа в первую очередь должна быть актуальной, а значит как минимум привносить что-то новое. Подойдите к этому вопросу.

    А по делу, попробуйте что-то вроде "Использование современных инструментов, фреймворков и методов при разработке %my_project_name". Во-первых, внезапно переместился акцент с "новейшая вакцина от британских учёных", на процесс, где воды можно налить намного больше, взять то же экстремальное программирование. Во-вторых, внезапно появляется слово современный, а так как все эти js-библиотеки, php-фреймворки, CMS-движки имеют свойство меняться с незавидной частотой, это слово скорее всего окажется верным. Ну а методы... Экстремальное программирование уже было упомянуто, придумайте уж хоть что-то своё.

    Однако, лично я бы не брал такую тему. Она... Как бы сказать, не очень хорошая для диплома. Возьмите тот же apache, протестируйте его вдоль и поперёк, покажите, какие настройки будут оптимальны для того же интернет магазина. По сложности примерно то же, по актуальности в разы лучше. Или сделайте нагрузочное тестирование VPSок и дедиков на сравнимых заявленных характеристиках. Попытайтесь посчитать потери "на виртуализацию". Ещё можно попробовать посчитать всевозможные метрики пользователей, то как среднее время препровождения на интернет странице, однако здесь потребуется что-либо хоть сколько-то раскрученное. В общем, тем тысячи. Да возьмите один компонент той же бесполезной CMS и выкопайте от туда всё что можно и нельзя. В дипломе нужен анализ, а не вода. Намного приятнее диплом, в котором 20 страниц чистого анализа, того диплома, в котором 120 страниц воды. Не надо делать ещё один интернет магазин. Придумайте что-нибудь хоть сколько-нибудь оригинальное.
    Ответ написан
    Комментировать
  • Изучаю java, какие знаний БД хватит?

    xSkyFoXx
    @xSkyFoXx
    Не соглашусь с IceJOKER.
    Вам необходимо знать как минимум SQL на приличном уровне и уметь ставить ту БД, с которой, скорее всего, планируете работать. Например MySQL ставится очень просто и быстро и не требует особо знаний.
    Но даже если вы планируете пользоваться только ORM и не лезть ручками в БД, вы всё равно ОБЯЗАНЫ хорошо понимать, что такое INNER JOIN, OUTER JOIN (LEFT, RIGHT), ORDER BY, HAVING и т.п.
    Иначе станете очередным разработчиком, который будет делать по 2-3 запроса а потом в циклах собирать результаты выборки (hint.: ORMы умеют JOIN'ы. Почти все. Просто большинство людей игнорируют такую возможность. А потом приходится скейлить вертикально-неприлично серваки с БД)
    Ответ написан
    7 комментариев
  • На каких языках можно писать под Android?

    deadbyelpy
    @deadbyelpy
    веб-шмеб
    С++, Java, Python, Ruby, Js и так далее.
    Разработка под Android не ограничивается одной Jav'ой
    Ответ написан
    5 комментариев
  • Как протестировать java-классы из-под ant?

    Для запуска тестов вам необходимо передать junit две path-структуры: classpath и скомпилированные тесты. В classpath (в примере это переменная ${test.classpath}) передаются все необходимые для выполнения тестов библиотеки и тестируемые классы.
    В параметр dir нужно передать скомпилированные тесты. Следите за тем, чтобы туда не попадали вспомогательные классы из /test, так как junit попытается их выполнить.

    Пример:
    <target name="init-test" depends="prepare">
                    <path id="test.classpath">
    			<fileset dir="${lib}">
    				<include name="*.jar" />
    			</fileset>
    			<pathelement location="${project.classes.build}" />
    			<pathelement path="${test.build}" />
    			<pathelement path="${test.build}/etc" />
    			<pathelement path="${test.build}/etc/test" />
    			<pathelement path="${test.build}/etc/mappings" />
    		</path>
    		<fileset id="test.fileset" dir="${test}">
    			<include name="**/${test.class.pattern}.java"/>
    			<exclude name="**/Abstract${test.class.pattern}.java"/>
    			<exclude name="**/Base${test.class.pattern}.java"/>
    			<exclude name="**/TestUtils.java"/>
    		</fileset>
    		<copy todir="${test.build}/etc/test">
    			<fileset dir="${etc}/test"/>
    		</copy>
    		<copy todir="${test.build}/etc/test">
    			<fileset dir="${etc}/mappings"/>
    		</copy>
    		<copy file="${etc}/hibernate.cfg.xml" todir="${test.build}/etc"/>
    	</target>
    
    	<target name="compile-test" depends="compile, run-checks">
    		<javac srcdir="${test}"
    			destdir="${test.build}"
    			classpathref="run.classpath"
    			source="${minimum.javaversion}"
    			target="${minimum.javaversion}"
    			debug="${debug.mode}"
    			encoding="UTF-8"
    			includeantruntime="no" />
    		<copy todir="${test.build}">
    			<fileset dir="${test}">
    				<exclude name="**/*.java" />
    			</fileset>
    		</copy>
    	</target>
    
    	<target name="run-test" depends="init-test, compile-test">
    		<mkdir dir="${test.xml}" />
    
    		<junit 
    			haltonfailure="off"
    			haltonerror="off"
    			errorproperty="test.failed"
    			failureproperty="test.failed"
    			showoutput="no"
    			printsummary="yes"
    			includeantruntime="yes"
    			dir="${test.build}"
    			fork="true">
    			<jvmarg value="-Dfile.encoding=UTF8"/>
    			<classpath>
    				<path refid="test.classpath" />
    			</classpath>
    			<formatter type="xml"/>
    			<batchtest todir="${test.xml}">
    				<fileset refid="test.fileset" />
    			</batchtest>
    		</junit>
    	</target>
    
    	<target name="test" depends="run-test" description="Run unit tests">
    		<fail if="test.failed"
    			message="At least one test has failed. See logs (in ${test.xml}) for details (use the target test-report to run the test with a report)" />
    	</target>
    Ответ написан
    Комментировать
  • Как при помощи jQuery поменять контент у псевдоэлемента ::before?

    @alvik48
    Frontend & Node.js developer
    А не проще ли попробовать такой подход:

    в css прописать
    #icon:before {
        ...
    }
    #icon.second:before {
        .....
    }


    и менять у #icon класс на js?
    Ответ написан
    1 комментарий
  • Подкиньте идею мобильного приложения

    @arkadyy
    Всегда хотел, но пока не встречал.
    Сканер баркодов, но только в реальном времени. Сканер расширенной реальности.
    Я так себе это представляю.
    1. Печатаю на принтере метку.
    2. Показываю её программе.
    3. Ассоциирую с меткой картинку или текст.
    4. При наведении камеры на метку, поверх неё на фоне всего остального в реальном времени отображается привязанный к ней текст.
    Ответ написан
    4 комментария
  • Подкиньте идею мобильного приложения

    Shultc
    @Shultc
    RnD Developer
    Сделайте наконец сканер, который будет показывать, как выглядит человек без одежды. Все ждут. Все будут рады. ;)
    Ответ написан
    1 комментарий
  • Почему замки со смарт-картами (RFID) не используют для дверей в квартиру?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    Есть, кстати, комби системы електронный замок плюс ключ — если эл замок сдох, открыть можно ключом
    Ответ написан
    1 комментарий