• Too many open files - что за зверь такой?

    @private_tm
    JAVA dev
    Too many open files = слишком много файлов открыто
    Файл вы открыли
    записали данные

    Нужно закрыть после этого

    FileOutputStream fos = new FileOutputStream("t.tmp");
          ObjectOutputStream oos = new ObjectOutputStream(fos);
    
          oos.writeObject("Today");
    
          oos.close();

    https://docs.oracle.com/javase/7/docs/api/java/io/...
    Ответ написан
    8 комментариев
  • Скрипты в Java. Как можно выполнить скрипт в ограниченном окружении?

    Rou1997
    @Rou1997
    А какие скриптовые языки, которые можно встроить в приложение на Java, поддерживают произвольное окружение (в теле скрипта доступен только тот набор объектов функций и т.д., который ты определяешь сам)?

    В первую очередь, конечно, JavaScript - есть "движок" Mozilla Rhino, именно на Java, я с ним лично работаю на Android, там именно ограниченное, произвольное окружение, также Python, тот же Lua, да наверно любой открытый можно как-то "прикрутить", включая саму Java, но для ее компиляции потребуется JDK, не знаю как с таким быть на Android.

    И какой из этого списка работает быстрей?

    На производительность Rhino жалоб не поступало, в нем нет таких общих проблем, типа скрипт всего лишь выводит "hello world" и это уже занимает пять секунд, а насчет больших вычислений и т.п., это уже специфика.
    Ответ написан
    Комментировать
  • Что такое потоки в node.js?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Это такая штука, которая выдает (или принимает, или и то и другое) данные кусочками (chunk). Чтобы объяснить, зачем они нужны, нужно немного отвлечься и вспомнить, как работает nodejs.

    Преимущество nodejs состоит в том, что пока БД или ФС реагирует на команду, мы можем запустить другой коллбэк. За счет этого мы можем обработать много запросов какбэ параллельно, но с точки зрения программиста параллельности нет, потоков нету, race condition не возникает и башка у него об этом не болит. И у нас все быстро работает, пока ни одна функция не занимает процессор слишком надолго, пока она не работает слишком долго. А если она займет, то, в силу однопоточности, у нас все остальные запросы зависнут.

    Но иногда нам все-таки сделать большую работу — прочитать или записать большой файл, например. С помощью потоков мы дробим эту работу на кусочки, которые не занимают проц надолго. Это не всегда возможно, но в большом количестве случаев вполне себе работает.

    P.S. В данном ответе речь идет о stream (не путать с thread).
    Ответ написан
    5 комментариев
  • Где можно проверить свои знания английского языка?

    @moozooh
    Chief Technical Grammar Nazi
    Полноценный тест, какие используются для получения сертификатов CEFR, TOEFL, CAE и IELTS, можно найти только у аттестационных комиссий этих тестов. Есть некоторые подготовительные материалы разной степени полезности:

    Успехов.

    EDIT: Небольшое дополнение. Сейчас наиболее ходовым сертификатом считается CEFR, так как он не привязан к одному языку, в отличие от остальных. С уровнем B2 могут взять на учёбу в зарубежный вуз или на работу в зарубежную контору, где не требуются частые контакты с людьми и предельная точность коммуникации (как в медицине, например); с C1 и выше уже можно претендовать почти на любую работу, если остальные знания/навыки подходят. С2 — это не уровень родного языка, но достаточно близкий к нему, чтобы закосить под своего.
    Ответ написан
    1 комментарий
  • Какой графический редактор использовать для пиксель арт?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    Ответ написан
    Комментировать
  • Почему не все серверы пишутся на Node js?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Принципиальных качественных преимуществ у node.js перед остальными языками нет, как впрочем и недостатков. Просто yet another язык со своими особенностями. Соответственно если в вопросе заменить node.js на php/ruby/python итд - ничего не изменится.
    Вопрос по сути абстрактный "почему все не перешли на язык %%%%%"

    2. Ответ на абстрактный вопрос:
    а) Потому что существует огромное количество legacy кода который нужно поддерживать. Работы по поддержке и развитию существующего кода на порядок больше чем написания с нуля нового
    б) Потому что у разработчиков есть свой стек любимых технологий, изменять который без явных экономических причин основная масса не готова
    в) Потому что умные технические менеджеры выбирают стек технологий проекта исходя из имеющихся под рукой разработчиков и легкости поиска и заменимости оных.

    UPD
    hbrmdc
    У NodeJS есть уникальные и очень весомые преимущества, которых нет ни у одного другого языка. Например то, что это JS, и, следовательно, нет необходимости разучивать лишние языки - можно весь webapp писать на js.
    Личные предпочтения обоснованные привычками - это не имеющий значения аргумент в данном вопросе.

    1) Есть отличия, да. Только не те о которых Вы пишите. То что это "JS" вообще ни на что не влияет.
    JS хорошо знают фронтендщики - а кто пустит фронтэндщика к внутренней архитектуре? Там подход совершенно другой нужен, другие навыки, другое понимание как это все работает. Просто пересадить человека с фронта на бек - нельзя.

    На самом деле основные отличия другие:
    Постоянно живущий процесс, фактическая однопоточность. В зависимости от задачи - это может быть и плюсом и минусом. Условно для какого нибудь сокет-сервера - плюс (активно используем на живых проектах). Для middleware - я бы подумал. Для нагруженного сервиса с расчетами - точно нет.

    2) Личные предпочтения обоснованные привычками это основной аргумент.
    Я вот умею в php, умею в ноду, умею в еще десяток умных слов.
    Мне нужна новая команда на новый проект.
    Я открываю hh и что я вижу: node.js 279 резюме из которых половина фронтэндщики.
    PHP - 9613 резюме. Даже если 90% разработчиков PHP на hh - уроды которых к коду нельзя подпускать на пушечный выстрел - останется все равно в 3 раза больше чем есть node.js.
    Собственно на этом выбор и закончен.

    На малопопулярных языках пишут в случаях:
    a) это мелкий сервис с неявными перспективами который можно переписать за неделю
    б) это проект "для души" разработчика.

    Получается замкнутый круг на самом деле.
    Менеджер смотрит резюме, резюме на node.js нет =>
    Менеджер не начнет проект на node.js =>
    Не возникнет вакансия на node.js =>
    Разработчик анализируя вакансии не увидит вакансий на node.js =>
    Разработчик будет учить что то другое =>
    Менеджер смотрит резюме, резюме на node.js нет...

    Переломить ситуацию могут только очень крупные игроки обладающие возможностями формирования рынка (например Apple и Swift), и то не со 100% гарантией (samsung&c и Tizen)
    Ответ написан
    13 комментариев
  • Как найти общий язык с сотрудниками военных предприятий, чтобы они дали описание своих процессов для составления ТЗ?

    sim3x
    @sim3x
    0. Без бумажки ты никто - получи корочку фсб
    1. Без бумажки ты ничто - любой опрос "спеца" заканчивается его подписью на бумаге с его тезисами
    2. Без бумажки ты никак - требуй, чтоб посыл в библиотеку содержал номер документа, номер стелажа, полку и имена всех родственников библиотекарши. Под роспись

    Ну и наконец, если ты уволишься с данной работы ASAP ты окажешь большую услугу себе и своим близким
    Ответ написан
    Комментировать
  • Как эффективно взаимодействовать между классами?

    gadfi
    @gadfi
    https://gamega.org
    класс кнопки который что то сортирует, другой класс кнопки что то выводит .....если эффективно то переписать этот ужас.
    Кнопка это кнопка, она не должна все это делать, вы можете навесить на нее слушателя и отловить событие, а вот по этому событию что то делать.
    Логика и ui должны быть максимально слабо связаны.
    Ответ написан
    Комментировать
  • Что лучше 1С или C#(ASP.NET)?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    конечно 1С, все стартапы перспективные только на нём создаются.
    Ответ написан
    1 комментарий
  • Есть ли книга (гайд) по введению в разработку 3D игр для бывалых в других сферах программистов?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Книг вроде «Разработка игр для нечайников» нету, подразумевается, что продвинутые программисты будут либо читать мануалы к технологиям, которые они собираются использовать, либо исходники того проекта, к которому их подключили. Для начала, я бы посоветовал пробежаться по статьям в википедии, чтобы узнать некоторые термины и поднять эрудицию. Потом можете почитать Game Programming Patterns, в ней описаны некоторые частые проблемы и их каноничные решения. Кроме того, есть более хардкорные книжки, с узкоспециализированными темами, но их тоже может быть полезно полистать:
    Graphics Gems
    GPU Gems от nvidia
    Game Programming Gems
    А когда надоест читать, попробуйте сделать пару-тройку простых примитивных игр: платформер, стрелялку, гоночки. На практике учиться проще.
    Ответ написан
    Комментировать
  • Как переквалифицироваться из эникейщика в программиста?

    MegaMufa
    @MegaMufa
    Я так понимаю, вы из Краснодара. Я сам из этого города и знаю о трудоустройстве в нем довольно много ибо на одной работе больше года не задерживался.

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

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

    Мне тоже 23 года. Без профильного образования. Первую работу (три года назад) нашел без проблем. Начал с 25к, через 5 мес получал почти 40к, на том же месте. Сейчас получаю 80к, но уже в другой фирме.

    Я вас понимаю, у меня тоже был психологический барьер чтобы начать. Думал, что я дурак и ничего не знаю. Потом жизнь приперла, срочно понадобились деньги - за 4 дня устроился программистом. А как потом оказалось, я знал больше своих коллег. Это я к тому, что разработчиками работает куча балбесов без вменяемых навыков и не парятся. Если у вас есть желание учиться и развиваться, скажите об этом потенциальному работодателю. Этот вариант будет выгоден и вам и ему.

    Понятно, что первые полгода о зп в 50к говорить не приходится. Но стоит ужать свои расходы и пойти на этот шаг. Потому что в будушем (не таком далеком) это даст большой профит. За полгода усердной работы вы наберетесь достаточно опыта, чтобы нормально развивать дальше свою карьеру. Сможете работать удаленно на другой горов или страну и получать много больше, чем могли бы в Краснодаре.
    Ответ написан
    10 комментариев