• Фундаментальная информатика и информационные технологии, что с ними можно делать?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    На каком направлении нужно учиться, чтобы работать на уровне микроархитектуры, работать с физическими устройствами

    "Вычислительные машины, комплексы, системы и сети". Это как раз про проектирование оных машин.
    Где изучаются сетевые технологии в качестве основного направления?

    Что значит в качестве основного направления? Пять лет никто их учить не будет - год будут.
    Можно ли переучиться с одного на другое, как при этом подтверждать свои знания?

    Можно но накуа? Подтверждать - обычным для студентов документом

    Идти учиться, не зная нахрена это надо - так себе идея. Не, выучиться можно - на терпении, но накуа?
    Ответ написан
    Комментировать
  • Фундаментальная информатика и информационные технологии, что с ними можно делать?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    По сетям либо Ланит либо Циско. По архитектуре вот прямо не встречал. Специализация больше по кафедрам. В общем смотрите учебный план. Ещё прошустрите направления военной связи там и сети и схемотехника и низкий уровень.
    Ответ написан
    Комментировать
  • Фундаментальная информатика и информационные технологии, что с ними можно делать?

    @mkone112
    Начинающий питонист.
    Что стоит за названием того или иного направления - зависит исключительно от вуза. Одинаковая на бумаге программа, может в корне отличаться даже в пределах одного вуза.
    Какие перспективы?

    Зависит на 99% от тебя. Можно поступить в мфти и пролюбить 4 года. А можно закончить местный техникум и быть востребованным разработчиком. Но если фигачить - то лучше в топовом вузе чем в шараге.
    На каком направлении нужно учиться, чтобы работать на уровне микроархитектуры, работать с физическими устройствами?

    Первое что приходит в голову - это вычислительная техника. Из
    "Фундаментальная информатика и информационные технологии".

    по идее тоже можно вынести много хорошего.
    а вот
    "Программной инженерии" и "Прикладной информатики"

    маловероятно что будут иметь отношение к железу.
    Можно ли переучиться с одного на другое

    Можно, но время/энергозатратно. Проще сразу учить то что хочется.
    работать только с прикладным уровнем (вэб, мобильная разработка)?

    работать на уровне микроархитектуры, работать с физическими устройствами

    Ты уж определись. Поступать в вуз, незная чего хочешь - максимально хреновая идея.
    Где изучаются сетевые технологии в качестве основного направления?

    Большую часть времени за книгой. Желательно в тишине и с кружкой любимого напитка.
    как при этом подтверждать свои знания

    Непонятно что ты имеешь в виду. Выполненными задачами например.
    Ответ написан
    2 комментария
  • Какую книгу выбрать для начала?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Читайте обе потом ищите еще книг.
    Ответ написан
    Комментировать
  • Почему растет используемая память при каждом повороте?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Просто виртуальная машина жрёт память, а в какой-то момент решает её освободить, и случается сборка мусора. Так что по описанию всё нормально. Если только после каждой сборки мусора не остаётся больше невысвобожденной памяти, чем в прошлый раз.
    Ответ написан
    Комментировать
  • Вредно ли для компьютера оставлять его включенным на ночь?

    NeiroNx
    @NeiroNx
    Программист
    конечно вредно, есть шанс вообще не лечь спать. А железу пофиг.
    Ответ написан
    8 комментариев
  • Где найти список проверенных архитектур нейросетей?

    @dmshar
    Архитектура нейросети ну никак не зависит от количества входных и выходных параметров. Как и наоборот. Архитектура нейросети подбирается под задачу, а не под количество входов, выходов, промежуточных слоев и элементов в них.
    И да, "все уже придумано до нас" - надо с этим только ознакомиться. Рекомендую, прежде, чем заниматься решением задачи, потратить время и разобраться, что-же такое нейросети и как их использовать. И делать это не по научно-популярным статейкам в интернет, а по книгам.
    Ответ написан
    3 комментария
  • @Volatile, кэшировние?

    Erik_Mironov
    @Erik_Mironov
    Старые вопросы: *Dies from cringe*
    CPU имеют кэши разного уровня L1, L2, L3. Каждый поток(а также ядро процессора) имеет собственный кэш. Эти кэши хранят минимальный набор оперативной памяти для обеспечения производительности. Если переменная определена как volatile, то все операции записи над ней сразу же отражаются в памяти и не кэшируются. У потоков нет локальной копии памяти и часть данных которую поток читает / записывает может быть из кэша, а не из основной памяти, а поэтому когда один поток изменяет какую-либо переменную, то другой поток не может увидеть изменения над ней. Грубо говоря, для таких случаев и нужен volatile. Фух, объяснил как мог, возможно кто-то объяснит более подробно.

    5fec4c344c127654024248.png

    Можете почитать про модель памяти в Java
    https://docs.oracle.com/javase/specs/jls/se7/html/...
    Ответ написан
    Комментировать
  • На каком этапе лучше преобразовывать данные?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    У нас обычно есть моделька для логики, что-то типа
    data class Human(val age: Int, val sex: Boolean, val height: Float): AutoParcelable
    , где-то есть State, в котором хранится список таких моделек:
    data class State(val humans: List<Human>): AutoParcelable

    Есть стрим состояний Observable<State>. Для того, чтобы отобразить стейт на экране, есть ViewState:
    data class HumanViewState(val formattedAge: String, val sex: Boolean, val formattedHeight: String)
    data class ViewState(humans: List<HumanViewState>, diff: DiffUtil.DiffResult?)
    есть маппер, который в бекграунде маппит стейты во вьюстейты, что-то типа:
    class ViewStateMapper @Inject constructor(stateProvider: StateProvider<State>>) {
      fun viewStates(): Observable<ViewState> = stateProvider.states // эмиттит на бекграунд треде
            .distinctUntilChanged()
            .map { 
                  // State -> ViewState
            }.scan {
               // вычислить дифф между текущим и предыдущим вьюстейтами
            }
    }


    и, в конце концов, есть вьюха, которая подписывается на маппер и рендерит стейты:
    fragment/controller/etc
    
    fun onViewCreated(....) {
      ....
       mapper.viewStates
           .observeOn(mainThreadScheduler)
           .subscribe(::render)
           .disposeWithView() 
    }
    
    private fun render(viewState: ViewState) {
         recyclerAdapter.items = viewState.humans
         viewState.diff?.dispatchUpdatesTo(recyclerAdapter) ?: recyclerAdapter.notifyDatasetChanged()
    }
    Ответ написан
    3 комментария
  • Как работает Hamachi?

    msHack
    @msHack
    hamachi это программа с закрытым исходным кодом соответственно доверии к ней нет его сервер играет роль STUN сервера для обхода НАТ
    Ответ написан
    Комментировать
  • Почему у RecyclerView сохраняется позиция скрола при повороте экрана?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Потому что ресайклер, как любая нормальная вьюха, умеет сохранять своё состояние. В лэйаут менеджере есть специальные методы для этого даже.
    Ответ написан
    Комментировать
  • Что такое backlog у сокета?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    This is the maximum number of queued incoming connections to allow on the listening socket. Queued TCP connections exceeding this limit may be rejected by the TCP implementation.
    Ответ написан
    3 комментария
  • Правильно ли я создал Flowable в RxJava3?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    В твоём случае вообще лучше использовать Flowable.fromIterable.

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

    Насчёт подписчиков. Ты выбрал самый сложный путь. Смотри отсюда и вниз. Обычно используется subscribe c одним или двумя консьюмерами(onNext и onError соответственно). Тогда всю эту кучу кода тебе писать будет не надо.

    Как совет - всё-таки затащи лямбды, либо взяв джаву поновее (8+) либо используй RetroLambda.
    Честно, с анонимными классами Rx выглядит как полная жесть, врагу не пожелаешь.
    Ответ написан
    1 комментарий
  • Как определить, что вектор не направлен в сторону центра координат?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Во-первых, берите две соседние стороны многоугольника. Если они коллинеарны, то берите другие 2 соседние. Но по хорошему, у вас коллинеарных соседних строн быть не должно и их можно объеденить при вводе полигона.

    Но все-равно остается вопрос, а вдруг нормаль смотрит в сторону отчки (0,0,0).
    Постройте уравнение плоскости ax+by+cz+d=0. (a,b,c) - это ваш найденный вектор нормали. d высчитывается, если подставить одну любую точку полигона.

    Теперь, если d положительно, то точка (0,0,0) лежит в том полупространстве, куда смотрит вектор и вам надо развернуть нормаль.

    Тут используется свойство знакового расстояния. Можно в уравнение плоскости подставить любую точку. Вы получите 0 для плоскости, положительные числа для одного полупространства и отрицательные для другого. Положительные в той части, куда торчит вектор нормали (ведь если отложить от точки на плоскости эту нормаль, и подсчитать знаковое расстояние, то получите тупо длину вектора нормали).
    Ответ написан
    1 комментарий
  • Как определить, что вектор не направлен в сторону центра координат?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Нужно брать два соседних вектора, а не случайных. И тогда проблема пропадёт
    Ответ написан
    3 комментария
  • Как правильно реализовать Comparable в данном случае?

    @YuryBorodkin
    Android dev
    Как вам указали выше - нужна переопределить equals и hashcode, т.к именно с помощью этих методов множества проверяют элемент на вхождение в джава. Например -
    public class Vector3 {
        private final int x;
        private final int y;
        private final int z;
    
        public Vector3(int x, int y, int z) {
            this.x = x;
            this.y = y;
            this.z = z;
        }
    
        public int getX() {
            return x;
        }
    
        public int getY() {
            return y;
        }
    
        public int getZ() {
            return z;
        }
    
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Vector3 vector3 = (Vector3) o;
            return x == vector3.getX() &&
                    y == vector3.getY() &&
                    z == vector3.getZ();
        }
    
        @Override
        public int hashCode() {
            return Objects.hash(x, y, z);
        }
    }
    Ответ написан
    4 комментария
  • Как правильно реализовать Comparable в данном случае?

    BorLaze
    @BorLaze
    Java developer
    В множестве - это в Set? Тогда надо переопределять equals и hashCode.
    Comparable нужен для сортировки.

    ЗЫ: compareTo, кстати, тоже неправильно написан. Данная реализация возвращает либо "равно" (0), либо "меньше" (-1). А должна возвращать -1 / 0 / 1
    Ответ написан
    1 комментарий
  • Почему на питоне работает, а на Java - нет?

    @dmshar
    Вы в чудеса верите? Если нет - то ответ тривиален - потому, что скрипте на Java ошибка. Вы же оба кода сами писали? И отлаживали при написании. Вот аккуратненько, пошагово и проходимся по обеим программулькам и ищем, где возникает отличие.
    P.S. Кстати, а почему вы тестируете скрипты на разных входных данных? Причем абсолютно разных - даже по количеству элементов (координат???) в объекте. Для начала посмотрите, как они сработают на одинаковых. А уже потом принимайте решение.
    И еще - а что неправильного в результатах, выданных Java-скриптом? По-моему, вполне адекватный результат сортировки по отношению к первому элементу.
    Ответ написан
    1 комментарий
  • Зачем нужен этот метод декоратора?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    getDescription это один из методов класса, который декларируется в этом примере. Декоратор это обёртка над декорируемым классом, соответственно, он должен вызывать все методы этого класса.
    В общем случае, конечно, getDescription не нужен. Нужны другие методы, в каждой ситуации свои.
    Ответ написан
    Комментировать
  • Как восстановить окружность по массиву точек?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А как они распределены? Если равномерно, или хотя бы симметрично, то сначала ищем центр масс (среднее арифметическое всех координат по X и Y отдельно, ибо "массы" равны), а затем считаем среднее удаление точек от этого центра - это будет радиус. Центром и радиусом задаётся окружность.

    Но если не равномерно и не симметрично, то сложно сказать. Например, такой случай:
    spoiler
    5f59dc800df79221516740.png
    Ответ написан
    6 комментариев