Ответы пользователя по тегу Программирование
  • Как читать книгу Вирт, Алгоритмы и Структуры данных школьнику?

    Посмотри как работают алгоритмы сортировки:
    https://www.toptal.com/developers/sorting-algorithms

    Если тебе интересно узнать как оно устроено под капотом, то бери книгу по-проще и читай. А если не особо интересно, то возьмись за написание какой-то логической или аркадной игры. Сухую теорию неинтересно учить, поэтому найди себе что-то интересное, где могут найти применения разные алгоритмы.
    Ответ написан
    Комментировать
  • Что эффективней, чтение из файла или массив?

    что будет эффективней, держать постоянно в памяти 5 больших массивов, чтобы искать по ним нужную информацию, или каждый раз искать по .txt файлу.
    Эффективнее использовать язык запросов SQL к СУБД (например, SQLite).
    Преимущество в централизованном хранении данных и стандарте доступа к ним.
    Один-два запроса к СУБД могут заменять порой довольно приличное количество кода (порой даже нетривиального).

    Исходим из предположения, что типичный студент навряд ли будет писать что-то высокотехнологичное и поэтому, скорее всего, СУБД и будет самым оптимальным доступом к данным.

    Если нужно что-то специализированное для данных, то нужно уточнять какова структура данных. Тогда могут понадобиться NoSQL.
    Ответ написан
    4 комментария
  • Как построить грамотную архитектуру проектов и организовать код?

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

    Гугл родился в стенках университета Стэнфорда в рамках научного проекта. История.

    Раньше сайты представляли из себя в основном каталоги исходников программ по различным рубрикам, своего рода файло-помойки. Вместо GitHub были просто тысячи всяких FTP свалок, куда скидывали различные материалы и файлы ZIP/RAR и других ранее популярных тогда форматов архивов. Порой были разные варианты одних и тех же программ, с модификациями (патчами), улучшающими или изменяющими функциональность.

    Когда-то были такие сайты, как programmersheaven.com с рубриками по языкам программирования и другим.
    Взять, скажем, сайт https://pascal.sources.ru/rswag.htm - практически сохранен в первозданном виде. Живой музей. Уникальный случай!
    Вот, на таком сайте были собраны исходники с других источников SWAG, который был назван RSWAG (Russian SourceWare Archive Group). Обратите внимание на ссылку в меню слева: https://pascal.sources.ru/upload.htm (сейчас нерабочая). А когда-то она выглядела вот так. И люди сам пополняли материалами. Много вирусов всяких распространяли так же, конечно же.
    Спрашивали на форумах (на таких, как на том сайте). Так и учились, перенимая опыт друг у друга (и не факт, что лучший).

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

    Для получения текстового вывода любого файла можно сконвертировать в Base64 и разбить на куски нужного размера. Затем на получателе склеить и раскодировать из Base64.
    Правда, стоит учесть, что при кодировании последним размер относительно исходного увеличивается на 33%.
    Добавлено
    Есть другие методы кодирования: UUE и не только.
    Ответ написан
    Комментировать
  • Принцип работы Mercure?

    В общих чертах описано в
    https://mercure.rocks/docs/getting-started
    схема
    subscriptions.png

    Используется Server-Sent Events (SSE) для Push уведомлений для различных устройств, pub/sub.
    https://github.com/dunglas/mercure
    Ответ написан
  • Кроссплатформенная разработка desktop приложения. Что посоветуете?

    Avalonia UI (C#)
    Delphi, Lazarus
    Ответ написан
    Комментировать
  • Как система понимает какие глифы шрифта нужно вывести на экран для представления двоичного числа?

    Каждый глиф имеет определенный код (code point/position) - номер ASCII (упрощенно), по которому можно получить его графическое представление в шрифте. Когда какой-то программе нужно отобразить текст на экране (text rendering), представляющий из себя последовательность из кодов глифов, она обращается к шрифту и просит у него выдать по очереди графическое представление каждого из них (превращение векторных контуров в растр). Затем выполняется отрисовка на некоторой области экрана системными средствам (glyph rendering API).

    Wikipedia:
    ASCII, Unicode, Font rasterization, FreeType

    Добавлено в комментариях.
    Ответ написан
  • Какой язык программирования учить для работы с железом?

    C, Oberon, VHDL, Verilog или Lola-2, если нужно попроще.
    Digital design programming.
    Ответ написан
    Комментировать
  • Как налету перепаковать TAR с файлами ZIP внутри?

    2ord
    @2ord Автор вопроса
    За это время не нашел способа. Будем считать, что задача нерешаема стандартными средствами Linux.
    Ответ написан
    Комментировать
  • Есть ли какой-то стандарт, где хранить файлы(временные файлы, данные, графику,плагины и т.д) в windows?

    Если плагины dll для всех пользователей, то тогда в директории, где установлена программа (program files), а если только для текущего пользователя, то как указал res2001 .
    Создаваемые пользователем данные принято размещать в папке пользователя.
    Ответ написан
    Комментировать
  • Удобно ли вести разработку на WLS или установить рядом Linux OS?

    WLS, прежде всего, способ запуска различных служб Линукса в терминале, но никак не полноценное окружение для работы.
    Смысл использования WLS состоит в запуске необходимых служб, а разработку продолжать вести, не покидая графическое окружение Windows. Но если хочется разрабатывать в терминале vim/emacs, то так вполне можно.
    Ответ написан
    Комментировать
  • Какой язык выбрать инженеру за 40?

    Стоит проверить какие вакансии доступны в регионе проживания и отталкиваться исходя от них и своих возможностей обучения. За попсовыми технологиями гнаться не следует. Стоит методично изучать основы.
    Если по-профессии инженер, то можно выбрать что-то ближе к темам:
    • САПР
    • Embedded: Arduino, Raspberry Pi, Микроконтроллеры, Verilog, FPGA
    • Устройства для умного дома
    • Обработка цифровых сигналов от (медицинских и пр.) устройств (в том числе изображения, звука, видео)


    HTML CSS JS - это совсем далеко от инженерии. Тут попса вся в изобилии.
    Ответ написан
    Комментировать
  • Как я могу превратить код в изображение?

    Base64 всегда кодирует исходное сообщение в сообщение длиной, кратной 4, дополняя знаками "=".
    Пример на языке Ruby, в режиме интерпретатора в командной строке:
    irb(main):020:0> Base64.strict_encode64 'a'
    => "YQ=="
    irb(main):021:0> Base64.strict_encode64 'ab'
    => "YWI="
    irb(main):022:0> Base64.strict_encode64 'abc'
    => "YWJj"
    irb(main):023:0> Base64.strict_encode64 'abcd'
    => "YWJjZA=="
    irb(main):024:0> Base64.strict_encode64 'abcde'
    => "YWJjZGU="
    irb(main):025:0> Base64.strict_encode64 'abcdef'
    => "YWJjZGVm"

    Изображение, закодированное с Base64, раскодируется при помощи буфера, скажем, 16КБ.
    В этот буфер нужно поместить данные размером, кратным 4 (при этом, храня истинный размер в отдельной переменной). Декодировал буфер - записывай результат куда нужно (будет содержать бинарные данные изображения) - приступай к чтению следующего куска, и так до конца "простыни".
    Так код не будет пожирать много памяти и будет обрабатывать данные поочередно.
    Ответ написан
    Комментировать
  • Есть несложный алгоритм сглаживания изображений?

    Поищи на тему анти-алиасинга изображения.
    Поиск: image anti-aliasing
    Ответ написан
    Комментировать
  • Опытные разработчики укажите путь или в какую сторону идти?

    Если тянет к математике, то есть направления где эти знания востребованы:
    • анализ данных (data science), машинное обучение (Machine Learning) - сегодня в тренде
    • машинное зрение (computer vision)
    • обработка сигналов (dsp) и, в частности, звука
    • наукоёмкие приложения
    • добыча криптовалюты
    • биоинформатика
    Ответ написан
    Комментировать
  • Где искать информацию по интеллектуальному поиску?

    1) Во первых, мне не очень понятно в каком виде хранить информацию.
    На данный момент вижу это таким образом:
    каждому набору фильтров для поиска будет соответствовать набор URL:
    search_set_id => {URL1, URL2, ..., URLn}
    Поскольку одни и те же URL будут повторяться неоднократно среди результатов для разных фильтров, то чтобы не раздувать БД, лучше создать таблицу urls:
    id | url
    1 | http: //gugu.ru?p=1
    2 | http: //gugu.ru?p=2
    3 | http: //kuku.ru
    4 | http: //mumu.ru
    Таким образом, каждому search_set_id будет соответствовать набор id из таблицы urls.

    url_results
    url_id | search_set_id
    1 | 1
    2 | 1
    3 | 1
    2 | 2
    3 | 2

    Набор характеристик для search_set_id можно хранить как набор id из разных пар ключ-значение (паттерн EAV) или как единый JSON (hstore в СУБД PostgreSQL).
    Получив search_set_id можно найти соответствующий ему набор URL.

    2) Тут собственно стоит вопрос получения семантики предложения или отдельных слов. Есть ли готовые библиотеки, которые упростят мне жизнь и предоставят что-то уже написанное? Чтобы я только обучил нейросеть и выпустил в работу?

    Компьютерная лингвистика - нелёгкая наука. Копай сайт aot.ru , материалы Яндекс ШАД а также почитай про их Томита парсер и пр. Чуда ждать не стоит, лучше проконсультироваться с лингвистом.

    3) Что выбрать для серверного языка?

    Питон хорош тем что легко найти всякие библиотеки и в парсинге также популярен. Лучше бери то что лучше знаешь и на чём легче найти специалистов.

    4) Может кто знает какие нибудь книги, статьи - любые источники, где я могу посмотреть что-то на данную тему?
    Как вообще гуглить по таким запросам? :)
    Перед гуглением полезно чётко сформулировать свою задачу и не ставить слишком общие задачи. Про нейронные сети лучше забыть до лучшего понимания задачи.
    Ответ написан
    1 комментарий
  • Scrapy как сохранять большие объемы данных?

    Данные, конечно же, сохранять в реляционную СУБД, хоть SQLite, хоть MySQL.
    400 тыс. строк это фигня. даже для SQLite.
    С СУБД просто работать: чтение записей с лимитом по 1000 штук или всех сразу, делать всякие выборки по условиям и т.д.
    Ответ написан
    Комментировать
  • Как переписать PHP openssl_decrypt на Ruby?

    2ord
    @2ord Автор вопроса
    В моём случае помимо
    cipher = OpenSSL::Cipher::AES256.new(:CBC)
    cipher.decrypt
    cipher.key = "..."
    cipher.iv  = "..."

    требовалось добавить cipher.reset сразу после обработки очередного блока с cipher.update .
    Ответ написан
    Комментировать