Задать вопрос
  • Какая из книг лучшая для изучения java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    подскажите одну книгу,которую буду читать и не жалеть о том что теряю время в пустую

    Просьба очень странная. Даже невозможно нормального ответить.
    Авторов обычно трое. Шилдт. Эккель. И Хорстман. Все пишут про Java. Примерно
    одно и тоже. Но поскольку ты очень занятой и тебе времени не хватает - то я тебе
    не советую читать ничего. Работай и задавай вопросы здесь. Когда появится желание
    читать - выбери жестко одну тему. Например рефлексия. И читай только про нее.
    Вот так.
    Ответ написан
    1 комментарий
  • Как реализовать удалённую БД с подключением через C#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Держать удалённую БД имеет смысл только если ей пользуется много людей одновременно. Если для себя - ну поставь SQLite или Express на ноутбук и живи себе припевающи.

    Раз в недельку делай backup на свой удаленный диск чтоб не потерять.
    Ответ написан
    Комментировать
  • Теория графов и нейронные сети в распознавании объектов - в чем преимущество графов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я попробую рассказать своё видение проблемы. Я не уверен что я прав но напишу как мне кажется.

    Есть две модели представления нейронных сетей.

    1) Матрицы (иногда называют тензоры). Имеют аппаратную реализацию в новых TPU (Tensor processor unit). Кажется Гугл сейчас продает услугу аренды таких сетей для задач обучения. Подходят для плотного заполнения нейронных слоём когда нейроны связаны каждый-с-каждым. При этом даже если связи нет (коэффициентик равен 0.0) тем не менее пространство все равно используется и этот ноль участвует в расчете.
    Расчет обучения (как я его себе понимаю) должен сводится к перемножению входного векртора на всю полседовательность матриц. И также к применению функции активации между слоями. Имеено за счет функции активации и идет обучение (там есть своя доказательная база) и идет декомпозиция на слои. Если бы функции не было - тогда можно было-бы все слои (константы) схлопнуть в 1 большую матрицу. Вот так и бегает умножение туда-сюда. Обучение - проверка ошибок. Коррекция. И снова обучение.

    2) Графы. Это вырожденный вариант матриц когда нулей оооочень много то чтоб зря не меремножать нули можно модель вычислений представить в виде графов. Математически это дает экономию в виде пропуска ненужных вычислений. И должна быть экономия в виде памяти для коэффициентов каждого слоя. На практике представить граф компактно очень сложно. Если кто из вас делал свои графы - то вы знаете что жрут они память как в не в себя, и никогда не угадаешь сколько надо выделить под вершину или под ребро чтоб не было пере-аллокаций и потерь.

    Если вы хоть раз открывали учебники по НС типа Каллана или Хайкина то там с первых страниц идет описание
    персептрона или 1-слойного нейрона в виде рисунка со стрелочками. Это и есть граф. Таки рисунки любят преподаватели в универах и всякие теоретики.

    В старых математических пакетах (еще в 80х годах) есть целые мат-библиотеки которые работают с разреженными матрицами (sparsed matrices). Это - тоже наивные попытки создать экономию. Такая дырявая матрица как раз отражает граф где вершины - это столбцы и строки а рёбра - это ненулевые коэффициенты.
    Реализаций их - целая куча. Математики любят решать системы дифуров в таких структурах. Там своя специфика. Тоже есть много нулей. Тоесть между графом и дырявой матрицей есть полиморфизм.

    Есть поддержка таких дырявых структур (Vector.sparse) и в биг-дате (Spark). Тоже для нужд ML.

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

    Все что я написал это просто моё чортово ИМХО. И не стоит это воспринимать за правду.
    Ответ написан
    2 комментария
  • Как считывать текст с .dat файла и выводить в консоль? Как это можно провернуть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри в этот dat-файл через любой hex редактор. Шапка должна быть похожа на это.

    00000000  53 51 4c 69 74 65 20 66  6f 72 6d 61 74 20 33 00  |SQLite format 3.|
    00000010  10 00 01 01 00 40 20 20  00 00 00 01 00 00 02 3d  |.....@  .......=|
    00000020  00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 04  |................|


    Если да - то делай
    $ sqlite3 file.dat
    Потом можно посмотреть список таблиц и делать запросы
    sqlite> .tables
    employees
    Ответ написан
    Комментировать
  • Как должна выглядеть UML диаграмма компонентов для функционального подхода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Во первых. Функциональное программирование не запрещает дата-объекты. Вот к примеру если у вас есть таблица Employee из стандартного учебного набора Oracle то она может быть отражена таким образом в Haskell:

    data Employee = Employee {
     empno :: Integer,
     ename :: [Char],
     job :: [Char],
     mgr :: Maybe[Integer],
     hiredate :: Day,
     sal :: Integer,
     comm :: Maybe[Integer],
     deptno :: Integer
    }


    В том что Haskell это достаточно строгий язык который лежит в категории ФП я надеюсь никто не сомневается.

    А в мультипарадигменных языках типа Scala с объектами
    вообще нет проблем. Берите - делайте объекты сколько надо.

    Во вторых, UML проектирование - это такой-себе уровень абстракций, который удобно
    обсуждать с бизнесом и показывать на слайдах. Но он вовсе не обязан следовать буква-в-букву коду.
    Архитектура - это вообще не про код. Это про намерения, про взаимодействие, про стандарты и смыслы.

    Методы UML объектов вы можете сделать функциями. Я не вижу в этом чего-то нерешаемого.
    Рассматривайте метод как функцию где первый аргумент - это сам объект. Это такой легкий
    троллинг ООП. Типа ООП - это функции где первый аргумент == this.
    Ответ написан
    Комментировать
  • Это Объектно-Ориентированный код?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Да это ООП код.
    Ответ написан
    Комментировать
  • Как остановить контейнер Docker и записать его state при внешнем вторжении?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У тебя какое-то противоречие в задании. Сначала нам сообщается что есть "некая логика"
    которая прогнозирует вторжение.

    И тут-же ты спрашиваешь что пойти и куда посмотреть. Ну во первых твоя логика уже знает о триггерах безопасности.
    А во вторых нужно просто логгировать сетевые события. В идеале - писать трафик. Если это веб-сервер
    - то писать тело request-responce. И логи потом уже смотреть после смерти. Post-mortem.
    Ответ написан
  • Можно ли сделать дамп MySQL БД из консоли Linux, исключив из него определенные поля определенных таблиц?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего такого готового функционала нет. Но любой думающий девопс или dba сможет
    сделать семейство скриптов которые делают полный экспорт во временную базу и потом
    в этой временной БД делают drop column ... или лучше update set = null. И еще раз полный
    экспорт в файлы.

    Эти скрипты вобщем делаются быстрее чем мы здесь сидим и обсуждаем. Поэтому
    не ждите. Начинайте делать.

    UPD:
    Ответ написан
    2 комментария
  • Почему все прекращают поддержку 32-битных систем?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Во первых - никто не прекращает. Есть огромный сегмент микропроцессоров малого энергопотребления которые так и останутся 32х битными. Микроконтроллеры и прочее. И операционки и прошивки и код вообще для них как писался так и пишется. И я думаю что такой класс оборудования будет существовать всегда. Нет смысла его каким-то образом хоронить.

    По поводу адресации 64х бит. Насколько я помню адресные линии современных процессоров материнских плат так и не достигли этого размера. Что такое вообще - полный объем памяти с 64х битами - это больше чем во всех датацентрах вместе взятых. Посчитайте сами. Простая арифметика. Каждый бит - удваивает количество железа на борту. Сколько щас Intel Core способен адресовать? Я не помню. Пускай знающие подскажут.

    Тоесть когда мы говорим 64 бит - то надо уточнять какие на самом деле биты имееются в виду. Доступная память для процесса? Ну да. Может быть.

    IBM в 20м веке выпускала железки с 128 битной адресацией но там смысл указателя был немного более сложный. Что-то вроде бесконечной виртуальной ленточной памяти.

    А 64х разрядные регистры были еще у первых Pentium MMX в 90х. Но это не имело отношения к адресации памяти.
    Ответ написан
    Комментировать
  • Как сделать из своего компьютера прокси-сервер (на Windows)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне надо шоб всё по-настоящему

    Поставь себе Linux. Потому что конфиги под Windows - это разочарование. Как с резиновой бабой.
    Вроде и было. Но в то-же время ощущения не те.
    Ответ написан
    1 комментарий
  • Когда в hashtable нужно хранить и ключ и значение?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Но если у нас вдруг совпадут хэши то возникнет коллизия, и тогда у нас есть 2 метода её обхода, 1 - открытая адресация 2 - связанный список.


    Да. В связном списке всегда хранятся и ключи и значения. В противном случае вы не докажете что нашли верно.

    UPD: Обновление. Поскольку я был неверно понят комментаторами - я обновляю цитату. Мой комментарий относится ко второму алгоритму. А точнее к структуре данных. В данном случае к связному списку который реализован в 99% хеш-таблиц в Java/DotNet.
    Ответ написан
    8 комментариев
  • Можно ли сжать файлы игры оставив игру работспособной?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В 2000-е на прилавках рынков мне как-то попался в руки CD диск (700Мб) где пираты вкатали аж 4 игры
    (кажется был Quake Ground Zero, KingPin, Blood ,,, и еще какаято).
    Веселое время было. И студии были такие как "Фаргус" и 1С и прочее. Переозвучкой игр занимались.
    Позже другие странные личности (паблишеры) делали такие вот релизы. Но интересно другое.
    В оригинале каждая игра занимала по сидюку. Вопрос- Как? Ответ простой - сжали аудио.
    Тогда игра занимала 100-150 Мб. А остальное - аудиотрек. Вот они взяли аудио (wav обычно или чистый трек)
    сжали в mp3. А при инсталляции - тупо запукалась утилита наподобие bladeencoder и прямо распаковывала
    музло на диск. Прям в логах было видно чем она занята. Вот такой трюк.

    С игрой в 13Гигов надо просто понять из чего эти гигабайты складываются. Если cinematics или музло - то
    иногда его можно удалить и игра себе идет нормально. А иногда и падает с ошибкой. В общем успех зависит
    на 99% как разработчик защитил игру. Бесплатные и indy-games обычно никак не защищаются. А дорогие
    имеют по 5 степеней защит.
    Ответ написан
    3 комментария
  • Какой жесткий диск выбрать для бэкапов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Два диска это хорошо. Пиши на них по очереди. Четные бекапы - на один. Нечетные на другой.

    Данные нужно разделить на классы надежности хранения. Например видеофайл спокойно переживает
    повреждение 1 битика внутри внутри видеопотока. На воспроизведении будет небольшой артифакт для одного кадра либо вообще ты ничего не заметишь. Тоесть видеопоток - восстанавливается.

    Хуже с архивами бинарей. Многие форматы (наподобие zip, gzip) полностью повреждаются начиная со сбойного
    участка. Тоесть могут оказаться полностью негодные. Я обычно такие файлы (бэкапы данных) оборачиваю кодами
    восстановления. Для linux это утилита par2 а для Windows - я не знаю. Надо искать. Но возможно какая-то комбинация ключей в WinRAR даст такой-же эффект надо поискать. Что на Маке я тоже невкурсе.
    Ответ написан
  • Как именно передаються данные по интернету? Более детальное объяснение нужно. Каков весь путь от моего устройства к другому?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) Отправляю https запрос (GET) сайту
    2) Это сообщение сначала с помощью волн ( 2,4 ГГц ) передаётся моему роутеру. С помощью сетевой карты? Или сокета? Или с помощью чего передаются данные? | Это, насколько я понимаю, у нас канальный уровень (в OSI это и физический и канальный)

    Ты молодец, что ты решил так детально изучать физику процессов. Но по моему слишком глубоко копнул. WIFI тоже имеет свои протоколы связи и ты еще с пол-года на них застрянешь. Вообще науки лучше изучать в "ширину" а не в глубину. Остановись на каком-то уровне.

    А то дойдешь до физики суб-атомного уровня а там еще конь не валялся...
    Ответ написан
    9 комментариев
  • Существует такое понятие, как "Ассоциативный список"?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как всегда непонятен контекст. На каком языке автор пишет? Единого ООП не существует.
    Тебе по смыслу подходит много вариантов. Вернуть коллекцию пар. Вернуть мапу.

    Вот бери что по душе.
    public Iterable<Pair<String,String>> takeListOfPairs();
    
    public Map<String,String> takeMap();
    Ответ написан
    Комментировать
  • Как вывести латинский алфавит?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Функция chr() умеет преобразовывать код символа в символ. Знаете ASCII код буквы 'A' ? Дальше - дело техники.
    Ответ написан
    Комментировать
  • Как мне загрузить больше 24000 документов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Возможно у UI есть ограничения. Посмотри вот другая утилита есть https://www.mongodb.com/docs/database-tools/mongoi...
    Ответ написан
    Комментировать
  • Как писать код на android?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужна нормальная клавиатура. Купи себе недорогое устройство класса "нетбук".
    На телефоне писать не надо. Это просто неэффективно. Зря портить себе зрение и пальцы.
    Ответ написан
    Комментировать
  • Как заменить LIKE на SUBSTRING?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не помню синтаксис MSSQL но может быть как-то так

    delete 
      dbo.Корреспонденция 
    from 
      dbo.Корреспонденция INNER JOIN dbo.Отправители ON dbo.Корреспонденция.код_отправителя = Отправители.код_отправителя
    where 
      контактный_телефон like '8%' and 
      substring(контактный_телефон,2,1) = substring(контактный_телефон,4,1);


    UPD: подожди лайкать. Единичку забыл в функции.
    Ответ написан
    Комментировать
  • Как проверить ноутбук на совместимость с linux?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я в таких случаях просто подмигиваю продавцу.... дескыть. Договоримся. И он позволяет поставить на ноут что угодно в магазине или в сервисном центре и мы далее вместе смотрим как Linux стартует. Расчитываемся и продавец на кармашек получает свои несколько долларов.
    Ответ написан
    1 комментарий