• Почему Linux показывает только полэкрана?

    LenovoId
    @LenovoId
    svg, css,js
    я тоже купил моноблок acer и вообще не ставится ни чего кроме винды на него , в общем моноблоки шляпа
    Ответ написан
    Комментировать
  • Есть ли смысл использовать абстрактный класс в Java?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Это же классический вопрос с собеседования - чем абстрактный класс от интерфейса отличается. Правильный ответ- абстрактный класс позволяет наследовать поведение, или реализацию. Всё остальное - следствия.
    Отличный пример - реализации стандартного интерфейса List. Они, чаще всего, наследуются от абстрактного класса AbsList, в котором реализованы некие базовые методы.
    Т.е., когда у реализаций мнтерфейса возникает одинаковое поведение, стоит задуматься об абстрактном предке.
    Ответ написан
    4 комментария
  • Актуальны ли еще JSP в Spring MVC проектах?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Каждому своё, никто не запрещает использовать JSP/JSPX, но разработчики Spring рекомендуют использовать что-нибудь более современное, вроде Apache FreeMarker или Thymeleaf.
    Ответ написан
    3 комментария
  • Кеш резервирует почти всю память, как ограничить?

    @Erelecano
    Админю сервера, починяю примуса.
    Ответ написан
    Комментировать
  • Как настроить Wi-Fi на ubuntu 14.04?

    Если Ваша WiFi-сетевая видит сеть, то значит, что драйвер установлен как надо и проблема в другом. Если не подключается, то, скорее всего, проблема в том, что Вы неправильно указали пароль к точке доступа или на точке настроена аутентификация по MAC, которая Вас не пропускает!
    Ответ написан
    Комментировать
  • Столкнулся с проблемой. Как и чем сжать 15 миллионов файлов по 10-100 килобайт?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Но через час получил - tar: Error exit delayed from previous errors.

    Убери бесполезную v и запусти снова -- получишь список тех самых previous errors. О них и поговорим дальше.
    Ответ написан
    5 комментариев
  • Много потоков: лучше в одном процессе или в нескольких?

    400 одновременно занятых потоков без 400 ядер ни к чему хорошему не приведет,
    а только сильно деградирует систему. Что за задача?
    Я бы подумал в сторону 4-12 работающих воркеров и очереди задач.
    Ответ написан
    2 комментария
  • В чем писать код то?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    искал IDE, толкового ничего не нашел

    И не найдете. Стоит подойти к решению проблемы с другой стороны, стоит тогда задуматься о покупке нового железа, или рук.
    Ответ написан
    Комментировать
  • Из-за чего может зависать работа с сетью в приложении на java?

    conn.getInputStream()
    блокирующий вызов и будет висеть пока от сервера не придут какие-либо данные. Если сервер не отвечает, то и поток висит. Можно разрулить установкой таймаутов на чтение/коннект, а лучше освоить наконец NIO
    Ответ написан
    Комментировать
  • Что за двойные фигурные скобки в коде?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    Судя по всему - блок инициализации - https://habrahabr.ru/post/133237/ первый раздел.
    P.S. ниразу не спец по java
    Ответ написан
    1 комментарий
  • Как правильно сконфигурировать List в spring.xml?

    По спецификации JavaBeans Spring берет имя, которое ему дается, приводит первую букву к верхнему регистру и добавляет префикс set, чтобы использовать метод setAdresses(), которого в твоем случае нет - setter назван неправильно. Нужно либо поменять get-, setAddress() на get-,setAdresses(), либо в XML написать adress вместо adresses
    Ответ написан
    Комментировать
  • Как реализовать кроссплатформенное ПО с библиотеками для Windows/Linux?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Я с 2011 года занимаюсь совершенствованием игрового фреймворка. Весь его код написан на C++. Целевых платформ раньше было 5 (Win, MacOs, iOs, Android, Bada), теперь 4 (Bada закрылась же) с приглядом за Tizen, WinMo и, когда-нибудь, консолями.
    В общем, уровень требований к кроссплатформенности должен быть понятен. И вот как я этого добился.

    Большая часть кода написана на платформонезависимом C++. Весь платформозависимый код расщеплен на три слоя:
    - Нижний слой, общий интерфейс для всех платформ, общие поля всех платформ.
    - Средний слой, platform-specific решения и поля. Наследуется от нижнего.
    - Верхний слой, ввод platform-spcific кода во фреймворк. Наследуется от среднего слоя.

    Условная компиляция применяется только для включения заголовка платформозависимого кода. Никаких макросов, никакой условной компиляции больше не допускается. В платформозависимом коде все пишется открытым кодом так, как будто пишется под одну платформу.

    На уровне файлов этот подход работает так.
    Есть в заголовках проекта папка "platform", где собраны нижние уровни расщепления, мастер-заголовок с условным подключением среднего уровня расщепления и все общие типы для платформ.
    Так же в проекте есть папки "platform.windows", "platform.macos", "platform.###", в которых реализован средний уровень расщепления и мастер-заголовки для условного подключения.
    Верхний уровень или реализуется в своей папке, если он представляет собой целую подсистему, или описывается во все той же папке "platform".
    Исходный код сгруппирован так же, но включает в себя только мастер-заголовок .

    Сценарии сборки на каждую из платформ включают в себя платформозависимый код только своей платформы.
    Все собирается в статические библиотеки и линкуется в один исполняемый файл. Хотя есть возможность вытеснения библиотек в динамические модули (сделано на случай передачи фреймворка аутсорсерам).

    Это все дает полную прозрачность исполнения кода для любой платформы. Так же этот подход делает очень легкой экспансию всего фреймворка на новую платформу.

    UPD:
    Пример с файлом очень хорошо подходит благодаря своей простоте, его я даже по памяти могу выписать из своего фреймворка, но я кое-что все таки упрощу, чтобы никого не смущать и не пугать.
    spoiler
    // PlatformSpecificFile.Windows.h
    class PlatformSpecificFile
    {
    // Platform-specific interface.
    public:
    	inline ::HANDLE GetHandle() const	{ return m_handle; };
    	
    // Platform-independent interface, but platform-dependent implementation.
    public:
    	// RAII.
    	PlatformSpecificFile() = delete;
    	PlatformSpecificFile(
    		const std::string& path,
    		const OpeningMode desired_mode,
    		const AccessOptions& desired_access,
    		const SharingOptions& desired_sharing
    	);
    	
    	virtual ~PlatformSpecificFile();
    	
    	void Close();
    	void Flush();
    	
    	const size64_t GetSize() const;
    	const bool Resize( const size64_t new_size );
    	
    	const size32_t Read( NotNull<uint8_t> buffer, const size32_t buffer_size ) const;
    	const size32_t Write( NotNull<const uint8_t> buffer, const size32_t buffer_size );
    	
    	const size64_t Seek( const size64_t offset, const SeekOrientation orientation );
    	
    	inline const bool IsValid() const	{ return IsHandleValid( m_handle ); };
    	
    private:
    	::HANDLE	m_handle = INVALID_HANDLE_VALUE;
    };
    
    // PlatformSpecificFile.Android.h
    class PlatformSpecificFile
    {
    // Platform-specific interface.
    public:
    	inline int GetHandle() const	{ return m_handle; };
    	
    // Platform-independent interface, but platform-dependent implementation.
    public:
    	// RAII.
    	PlatformSpecificFile() = delete;
    	PlatformSpecificFile(
    		const std::string& path,
    		const OpeningMode desired_mode,
    		const AccessOptions& desired_access,
    		const SharingOptions& desired_sharing
    	);
    	
    	virtual ~PlatformSpecificFile();
    	
    	void Close();
    	void Flush();
    	
    	const size64_t GetSize() const;
    	const bool Resize( const size64_t new_size );
    	
    	const size32_t Read( NotNull<uint8_t> buffer, const size32_t buffer_size ) const;
    	const size32_t Write( NotNull<const uint8_t> buffer, const size32_t buffer_size );
    	
    	const size64_t Seek( const size64_t offset, const SeekOrientation orientation );
    	
    	inline const bool IsValid() const	{ return m_handle >= 0; };
    	
    private:
    	int		m_handle = -1;
    };
    
    // File.h
    class File final : public PlatformSpecificFile
    {
    public:
    	using PlatformSpecificFile::PlatformSpecificFile;
    	
    	const size64_t GetPosition() const; // Seek( 0, SeekOrientation::FromPosition );
    	
    	const bool SetPosition( const size64_t position ); // Seek( position, SeekOrientation::FromBeginning );
    	
    	const bool IsFileEnded() const; // GetPosition() == getSize();
    };


    Мастер-заголовок платформенного кода "platform.h" в зависимости от сценария сборки включает в себя один из мастер-заголовков платформозависимого кода "platform.###.h". Платформозависимый код уже включает в себя соответствующий заголовок файла "PlatformSpecificFile.###.h"
    Ответ написан
  • Когда переходить к Spring'u?

    Vestail
    @Vestail
    Software Engineer
    После изучения сервлетов.
    Ответ написан
    Комментировать
  • Как остановить вывод команды через BASH?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Что за команда?
    Вариант 1: посмотреть справку к этой команде - очень много команд предоставляют варианты выхода после вывода n результатов, например ping, который по дефолту пишет пока не прервешь.

    Вариант 2: запустить ее в фоне, сделать паузу в несколько секунд и убить,например

    mycommand &; sleep 5; killall mycommand

    Вариант 3: mycommand | head -<строк>
    Ответ написан
    Комментировать
  • Unity или RPGMaker MV для не программиста?

    amux
    @amux
    alp.ac
    Unreal engine 4 ?
    Системой блюпринтов в некторых случаях можно обойтись, Unity тоже не сложный, но для дизайна, протипирования, идеально подходит UE4.
    Порог вхождения очень низкий, и к тому же движок бесплатный ( до прибыли в 3000$, дальше 5% ) .
    Ответ написан
    Комментировать
  • По какому принципу выбирать технологию для бэкэнда?

    @GeraldIstar
    Frontend
    Кмк никакого алгоритма в большинстве случаев нет. Берешь либо то, что лучше всего знаешь, либо то, с чем хочешь поработать и более-менее уверен в этом.
    Ответ написан
    4 комментария
  • Как расчитать вес основания торшера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для расчёта можно взять только одну ось, по второй торшер зеркально-симметричен и устойчив. За 0 примем центр основания.
    1. Основание - радиус Rосн, масса Mосн
    2. Вертикальная труба - расстояние от центра основания Xвт, масса Mвт
    3. Дуга, самая сложная часть, примем за сектор в 90°, радиус Rд, масса Mд
    4. Вынос - длина Lв, масса Mв
    5. Светильник - масса Mсвacbb3f86d8c64ba1ae8c2edd104d77be.png

    Для начала посчитаем расположение всех центров масс.
    Rцмд = Rд*sin(π/4)/(π/4) = 0.9*Rд
    Xцмд = Rд - Rцмд*cos(π/4) - Xвт
    Xцмв = Rд - Xвт + Lв / 2
    Xсв = Rд - Xвт + Lв

    Теперь возьмём формулу центра масс сложного объекта
    Xцм = SUM(Xi * Mi) / SUM(Mi)
    Наложим ограничение Xцм < Rосн
    (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / (Mосн + Mвт + Mд + Mв + Mсв) < Rосн
    (Mосн + Mвт + Mд + Mв + Mсв) > (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / Rосн
    Mосн > (-Xвт*Mвт + Xцмд*Mд + Xцмв*Mв + Xсв*Mсв) / Rосн - Mвт - Mд - Mв - Mсв
    Ответ написан
    1 комментарий
  • "Большой Брат" в офисе, за интернет-трафиком следят. Как можно обойти эту систему?

    @kgbplus
    Если вы смогли принести свой ноутбук из дома, воткнуть его в произвольную розетку и получить доступ к ресурсам сети и выйти в интернет, то можете не бояться такого "админа" - это не админ.
    Ответ написан
    4 комментария
  • Как найти программиста, чтобы он не украл идею?

    vicodin
    @vicodin
    Имею некоторый опыт
    Комментировать