Задать вопрос
  • Что означает void *?

    mayton2019
    @mayton2019
    Bigdata Engineer
    void * означает указатель на область памяти неизвестного типа. При разыменовании тебе надо будет
    заранее знать что за зверь скрывается под этой памяти чтобы правильно интерпретировать результат.

    В современном программировании безтиповые указатели - считается угрозой безопасности и большинство компилляторов выдают WARNING. При прочих равных условиях лучше void * не использовать а использовать ... ну например указатель на массив байт или на такую-же структуру s_list к примеру.
    Ответ написан
    Комментировать
  • Какой язык программирование yчить новичкy?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть два взгляда и два фунтаментальных подхода к вопросу.

    1) Если вы хотите учить язык чтобы заработать деньги - откройте местные сайты типа work, job, rabota, linkedin e.t.c.
    и просто посмотрите какие специалисты требуются на рынке и сколько им платят. Смотрите в разрезе вашего региона или края. Мой личный опыт (опыт ent. разработчика для бизнеса) подсказывает что основные трендовые языки разработки это Java/C#). Это языки - долгоиграющиее. Первому уже более 20 лет. И есть огромный пласт ПО который уже написан на них и требует поддержки и внесения изменений. Этот пласт ПО - вечен. Ему нет замены и вы будете всегда обеспечены работой. Чисто ради смеха отмечу что есть язык COBOL на котормо в своё время был написан пенсионный фонд США и этот язык до сих пор востребован несмотря на то что его синьоры уже отрастили бороды и вышли на пенсию а то и померли.

    2) Если вы хотите учить язык для души или ради забавного мозгового эксперимента - учите Haskell, Lisp. Эти языки интересны как вещь в себе и вы можете бесконечно много времени медитировать над их исходниками и ваше восхищение или нирвана не будет иметь пределов. Не спрашивайте меня по практическому их приминению. Это языки - концепты. Смысл которых - генерация идей. А не решений. Решения же потом переходят в Java/C#/C++ уже как конкретные подходы. Но сначала эти идеи проходят вызревание в инкубаторе языков функциональной разработки таких как Хаскель и ЛИсп.
    Ответ написан
    2 комментария
  • В чём главное отличие информации от ключей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если взять фильтр Блума - то в нем принципиально нет информации. Есть только ключи. Более того. Стохастичные. Более того любая попытка расширить структуру заканчивается неудачей.

    Так может быть не стоит ставить вопрос деления вселенной на ключи и неключи?

    Иначе часть структур данных придется выбросить.
    Ответ написан
    Комментировать
  • Как определить функцию по значениям пар y;x?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего ответов будет много.

    Если скопление точек - похоже на "рога" на плоскости то под функцию одинаково подходит и косинус, и парабола и гиперболический косинус.

    И здесь очень важно понять что четкого ответа не будет.
    Ответ написан
    Комментировать
  • Как на OpenCl работать с изображением?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Данный пример с чтением png - неудачный.
    Дело в том что декодирование png не параллелится. Оно будет выполнено на 1 ядре процессора. И это займет 80% времени. Я так думаю. А уже декорированную матрицу RGB - да можно процессить на Opencl разбивая картинку на строки или на фреймы. Но преимущества opencl будут потеряны. Ведь мы уже львиную часть времени простояли ожидая декодирования.
    Ответ написан
    Комментировать
  • Доступ к приватным полям через арифметику указателей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Формально, с точки зрения ООП так делать нельзя. Я не знаю продуктовых задач где такой злостный хак имел бы место.

    А преподавателю который это придумал - надо оторвать яйца.
    Ответ написан
    6 комментариев
  • Какие бы вы задавали вопросы начинающему Linux-администратору на собеседовании?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я сам не админ. Но причастен к сектору эксплуатации инфо-технологий на предпрятиях. Разрабатывал и внедрял.

    Мне кажется вопрос не так звучит. В наше время ценится не эникейщик а автоматизатор. Поэтом Линукс админ должен уметь автоматизировать рутину. Тоесть не "стучать по клавишам" а уметь взяв bash/python сделать рутинное действие на множестве файлов или конфигураций.

    По командам - не скажу. Но мне кажется тут вопрос не в командах (nslookup/dig) а в понимании сетей и протоколов. В понимании верхнего уровня архитектуры. И если этот уровень понятен - то неважно какая команда. Это тоже самое что строителя спрашивать знает ли он "уровень" или "отвес."
    Ответ написан
  • Как соединить турникет с компьютером через интернет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Технически... не ставте цели реал-тайм управления. Турникет должен работать как узел DNS. Даже в случае отсутсвия связи - быть автономным настолько - насколько это можно.
    Ответ написан
    Комментировать
  • Как избавиться от подвисания ресурсо затратных программ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На вопрос автора нет ответа. По крайней мере в том виде как он описал. Надо смотреть конкретные графические приложения и багтрекер по ним. В Windows - единый API графики - Win32GDI и под него пишут всё оконное. Direct* - для игровой графики. Это упрощает техподдержку. А в Linux есть целый зоопарк графических сред (Gnome, Kde, XFCE) и эти графические среды тоже несут свой багтрекер и их тоже надо рассматривать как источник возможной проблемы. +Состояние драйверов NVidia оставляет желать лучшего под Linux. Они не всегда актуальны.
    Ответ написан
    Комментировать
  • Резкий скачёк пинга в играх на Wi-Fi 5GHz. Как решить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насчёт того что эфир пуст - автор ошибается. Он же не на луне живёт. Wifi - это радиоприемник который постоянно подвержен влиянию среды. Поэтому - только кабель. И логгировать задержки и говорить с провайдером о качестве канала.
    Ответ написан
  • Java - Полное руководство, Герберт Шилд 10 издание, годится для новичков в программировании?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Шилдт это одна из самых плохих книг по Java.

    Лучше берите Эккеля. Хорстмана. По мультипоточке есть Брайн Гоетс. Она слегка старована - но актуальна.
    Ответ написан
    Комментировать
  • Как написать видео редактор?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор ты взялся за самое безнадежное и неблагодарное дело. Во первых - поддержка видео-форматов или видео-кодеков. С нуля с этим ты просидишь до седой бороды. Никому не нужна будет разработка через 70 лет.

    Посмотри исходники из опенсорцных
    - VirtualDub (там оконное приложение и фильтры)
    - ffmpeg кодекеи
    - VLC (плеер и кодеки)

    По поводу математики и моделей. Видеоредактор должен уметь склеивать видосы разных разрешений и разных fps. Тебе нужна единая внутреняя модель представления видео и звука во времени. И ты должен написать API для работы с этим всем.

    Не спеши кодить. Просто нарисуй на бумажке диаграмму или модель компонент твоего приложения. Я думаю что уже на этом этапе ты должен сильно охладать к разработке или думать как нанять бригаду кодеров и платить им всем сразу и долго.
    Ответ написан
    2 комментария
  • Как найти в строке 16-ричные числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут могут быть подводные камни.

    В произвольном английском тексте есть одельные независимые слова которые покрывают
    диапазон 0x0..0xF и будут ложные срабатывания на артиклях: "a" и вообще коротких
    словах таких как "cafe" которые технически воспринимаются как хекс-число.

    Поищите все слова что покрывают abcdef.
    Ответ написан
  • Как совместить python и С++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы делал наоборот. Высокоуровневые вещи. Формочки. Мышко-клики. Действия пользователя я-бы делал на Питоне. А тайм-критичные вещи (работа с файлами и сетью и бизнес-логикой) - на С++.

    Тот факт что у С++ есть Qt с формочками ни о чем не говорит. Это - как редкое исключение из правил. Всё равно что на примере падения метеорита доказать что в небе есть железо и надо срочно добывать его в космосе.
    Ответ написан
    Комментировать
  • Как разработчики игр и софта оптимизируют свои игры и программы под определённое железо?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я полагаю так. Нужно оринтироваться на массовое железо. Если ты купил себе топовое - на нем затестил. То не факт что игра будет хорошо принята игровым сообществом. В своё время создатели Doom-3 не могли сделать релиз. Они ждали пока железо достигнет какого-то уровня

    Тоесть - разработчик должен сначала представить себе целевую аудиторию. Кто это? Детишки со смартфонами. У них - на 80% будет один набор фич. Бюджетнички такие себе. Насколько мама с папой им купили телефон - настолько они и поиграют. Это один сегмент.

    Другое. Олд-геймеры. Мусчины. Которые прилично зарабатывают. И сидят вечерами спокойно в Steam и покупают то что хотят. У них будет железо топовое плюс минус 1-3 года оставания.

    Третье. Офисные клерки. Они сидят на типовых HP/Intel железках. Тоже сегмент.

    Вобщем игра должна быть шпионом который собирает профиль конфигурации и рапортует девелоперу на сайт чтоб собрать сведенья по рынку железа и далее - сегментировать его.
    Ответ написан
    Комментировать
  • Android Studio "Заблокировано Play Защитой.." Как обойти?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это правильная формальная защита от программного обеспечения новичков. Не все из них - обладают благими намерениями и в данном случае предупреждение - правильное. Превентивное. Это лучше чем антивирус. Об этом кстати еще говорил Евгений Касперский в одном из своих интервью. Он считает что будущее - за тотальной цифровой подписью и сертификацией любых бинарников.
    Ответ написан
    Комментировать
  • Логирование ввода с клавиатуры Linux?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько соображений.

    1) Человек должен быть предупрежден о том что вы собираете эту информацию.
    2) Что-то у вас не то с безопасностью. Ваша учетная запись должна быть выше по привилегиям. Вы должны иметь возможность сделать ему RESET пароля в любом случае независимо от того что он там менял.
    3) Team Viewer это - несеръезное средство. Ни одна корпорация не берет его как инструмент ведения бизнеса и решения проблем.
    Ответ написан
    Комментировать
  • Нужен сервер раздающий видео таким образом, чтобы на клиентской стороне его можно было проиграть html5-плеером, но нельзя было получить прямую ссылку?

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

    DRM не поможет если плеер уже транслирует драгоценное видео с релизом вашего сериала - то вы можете купить HDMI-recorder и спокойно писать цифровое видео прямо с выхода видеокарточки.

    Вывод - контент будет украдет полюбому. Поэтому лучше не парьтесь ерундой. А если у вас что-то реально хорошее - продавайте его как Megogo продает сериалы за небольшую плату.
    Ответ написан
    Комментировать
  • Как действительно поможет ООП в реальной программе?

    mayton2019
    @mayton2019
    Bigdata Engineer
    ООП - это более аккуратная разработка с использованием приципов SOLID, KILL, YAGNI (это аббревиатуры) и если вы - 1 разработчик то вам будет очень сложно дисциплинировать себя чтобы следовать ООП. По смыслу это выглядит - как очень сильная формализация логики чтобы не было 1 длинной простыни кода а были небольшие сущности по 5-7 строк и каждая из них обладала бы 1 единственной зоной ответственности.

    По большему счету польза от ООП проявляется на очень крупных проектах (больше десятков тыщ строк кода) и где много разрабов одновременно кодят и вносят изменениея.

    Если у автора - мелкий pet-проект то возможно ООП ему и не нужно.
    Ответ написан
    6 комментариев
  • Как найти часто встречающиеся тексте последовательности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    120 гигабайт - это размер еще не Биг-дата но уже близкий к выходу за рамки оперативной памяти. Если исходный материал побит на файлы (небольшого размера) то я-бы предложил решать эту задачу через map-reduce.

    Если удасться это сделать то реализация написанная на Python может работать быстрее во много раз за счет параллелизма. Я не говорю что на С++ не надо делать. Я просто акцентирую внимание что задача имеет специфику распаралелливания. Грубо говоря задача тяготеет к big-data и шаблонам паралельного процессинга для которых язык не особо важен а важна имеено эта опция.

    По алгоритму. Ну я +1 к Антону.
    Ответ написан
    Комментировать