• Правильно ли я расставляю приоритеты в развитии?

    @redakoc
    ihorgorobets: им можно дать сложную задачу и быть уверенным в качестве и сроках.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:

    То есть нуль-терминированные строки легко передавать, потому что одна строка заканчивается тогда, когда встречается ноль. А ты свои как будешь передавать. Сначала ты будешь должен сообщить, чему равна длина размера, а на той стороне надо будет это помнить.


    Я тут буквально вчера написал, что терминированные строки (0, CR, LF) потому и используются в межпрограммных взаимодействиях, что это удобно.
    Ты мои слова повторяешь - не более, сам не способен.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00: ты не разрезал строку. ты разрезал и ОБРЕЗАЛ. ты потерял символы. твоим методом невозможно быстро (без сдвигов, оставляя неизменным ссылки на подстроки) разрезать строку.
  • Правильно ли я расставляю приоритеты в развитии?

    @redakoc
    ihorgorobets: Полно школьников и начинающих программеров.
    Когда пытаешься найти нормального специалиста - все заняты.
    Нет конкуренции серьезной если ты профи.
  • Какова скорость интернета в Сибири (Иркутск)?

    @redakoc
    Эдуард: Нет, спасибо, у меня доход около 300 000 рублей в Сибири.
  • Как организовать работу удаленных программистов?

    @redakoc
    Антон Мудренок:
    мне наплевать на то чем занимается человек в свободное от работы время.

    я точно знаю, что есть огромное число людей в ИТ, которые балду пинают целыми днями, а начальству говорят, что "думают". например. сегодня заказчик меня спросил, а когда вообще закончиться задача. честно говоря, я 2 недели просто воздух пинал. теперь дня за 3 наверстывать буду )))

    нужно быть сосредоточенным на задаче - и работаешь гораздо лучше.

    а вот эти все отмазки - "я думаю, моё подсознание работает, задача слишком сложная, тупик который не знаешь как обойти целыми днями" - это оставьте для тех, кто ничего не смыслит в ИТ.
  • Какую сумму указываете в Upwork Confirmation of Services?

    @redakoc
    andrew8712: Ты не знал, что нужно консультироваться по вопросам налогов с бухгалтерами? Я знал. По вопросам здоровья - с медиками, кстати. И т.д.
  • Какую фриланс-биржу выбрать для получения денег от заказчика?

    @redakoc
    Пума Тайланд: Эскроу без квалифицированного вершителя судеб?
    На Upwork есть надежда, что там хоть модератор в теме разбирается хоть немного.
  • Почему D не популярен?

    @redakoc
    Go тоже трудно. Но с Go все хорошо по распространенности на практическом использовании.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:
    Ну да, я понял, что ты пропёрся из-за своего тупого паскалевского мышления. Не в том смысле, что ты тупой, а в том, что Паскаль притупляет мышление и у паскалистов всё сводится к одному способу всегда, потому что язык большего не позволяет. В C же гибкость - обычное дело. Ты можешь и хранить длину, и не хранить длину.


    На Паскале сейчас никто не пишет почти.
    Паскалевские строки давно вошли в других языки.

    Будь добр, гений.
    Приведи здесь пример своего кода, реализующего твой "эффективный простой безсдвиговый" алгоритм:

    1. Есть 1 строка длины 10, завершающаяся 0. "abcdefghij".
    2. Разрежь ее на 2 части методом вставки нуля в середину. получишь "abcde" "fghij" и 0 между ними.
    3. Запомни положение (адреса) второй части строки в указателе IDIOT. Он будет указывать на строку "fghij"
    4. А затем разрежь своим "эффективным" методом получившуюся ранее первую часть. Например, на "abc" "de"
    5. И после этого, используя, ранее сохраненный указатель IDIOT, попытайся вывести строку.
    Если все просто круто и фиксировано, ты просто разрезал и нет никаких лишних телодвижений - то у тебя должно получиться.
    ))))
    То есть все три строки "abc", "de", "fghij" никуда не денутся.

    P.S.:
    Моя версия:
    IDIOT будет указывать на строку длинной 0, то есть просто так разрезать строку и не потерять её по старому указателю не получится.
    Если же указатель останется тем же и строка останется той же, то ты потеряешь что-то из символов "abcde".
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:

    В C делаешь структуру (указатель, длина), если нужно исходную строку сохранить. Если же это нафиг не надо, то просто нарезаешь её без всяких структур и заморочек с ними. А сдвиги, ну это ты сам придумал себе и героически победил у себя в голове.


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

    Ведь даже программисты на сравнительно низкоуровневом С, оказывается, просто пользуются готовыми функциями и не понимают как это все на самом деле работает.

    То есть ты даже НЕ ПОНИМАЕШЬ, что твой алгоритм нарезания строк вставкой 0 в середину подразумевает 2 операции, существенно снижающих производительность:

    - сдвиг второй половины разрезанной строки вправо, чтобы освободить место для концевого нуля первой половины
    и
    - добавление памяти в конце второй половины (откуда ты будешь брать память под сдвигаемой конец строки, если изначально не позаботился кстати интересно)
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:
    Позволяет, конечно, но нахрен нужны эти размеры в памяти? При нарезке на подстроки нужно просто расставить маркеры, а длина всего массива известна заранее. Потом эти подстроки ещё можно нарезать, никаких длин не надо знать.


    Для того нужен, для чего ты называешь подходящим разрезание строк посередке нулем.
    Это полный дебилизм.
    Кроме времени на двиг строки тебе нужно еще и про распределение памяти на хвосте позаботиться.
    Твой "простой" алгоритм - просто добавь 0 в середину - на практике неэффективен.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:

    Там же маркер в конце, забыл? Дурилка ты картонная.
    Что ты хочешь сказать, что я не могу для строки правильно выделить память до сохранения?


    Не тупи.
    Оба вида строки - и типа С и типа Паскаль - существуют уже очень давно.
    И на них прекрасно реализуются все виды применения.


    Епать, а strtok() что делает? Значит, ты просто не знаешь, как работает strtok(), раз такую ахинею пронёс.
    Строка меняется, цель - получить подстроку


    Ты привел пример этой функции как пример для использования в крутячем алгоритме разрезания строки.
    Признай - никакой он не крутячий, так как требует сдвига второй части.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    redakoc:
    А кто тебе сказал, что на любой файловой системе должен быть каталог?
    Узлы должны быть, каталоги - если нужно только.


    И аналог FAT - место то как распределять.
    Обойтись без этого можно разве что в append-only файловых системах.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:
    Какие вещи? Определение длины строки?


    Все типовые операции со строками давным давно делаются элементарно и обслуживаются компиляторами и библиотеками.

    Реализовывать такие вещи вручную и экономить каждый байт имеет смысли или:

    на встраиваемых системах (причем не тех, что на ARM, а на микроконтроллерах попроще)
    или когда пишешь специализированный софт, именно для работы со строками.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:
    Да, походу, так и есть, ты предлагаешь индексировать на пустом месте. То есть жрать память попусту.


    А это как хочешь считай.

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

    Если хочешь экономить место, то есть работа без индексов, есть динамическое построение индексов.... Все это есть.

    Но СУБД, в которых данные никакими дополнительными полями не обслуживаются - таких не существует в природе.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:
    Речь про хранение идёт. Ты предлагаешь хранить длину рядом с каждой строкой, потому что другого варианта нет.
    То есть к индексами добавляется и длина эта.
    Или ты ещё пуще пошёл и длину сохранил в индекс, чтобы ещё веселее было.


    Если речь идет о настоящей базе данных или настоящей файловой системе - я предлагаю не глупить и вообще не хранить 0 в конце строки. Этот 0 и вреден для данных (нельзя без перекодировки хранить символ с кодом 0 в самих данных) и зря тратит место.

    А для работы с БД и файлами все равно используются специализированные структуры: индексы и каталоги. Для простого обращения к произвольному элементу этих служебных структур очень многое построено на таблицах элементов фиксированной длины.

    То, что ты предлагаешь - использовать 0 для разделения данных в БД - это годится только для древних ленточных устройств хранения. И, да, ты прав. Именно так это в БД и было. Лет 30 назад и более.
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    abcd0x00:

    То есть, по-твоему, кто сделал такие строки, - это просто дебилы. Один ты умник.
    Да, оно подразумевает линейный перебор, и все это знают и всегда знали.


    Такие строки имеют один-единственный плюс - очень простое описание.

    И именно поэтому строки, заканчивающиеся нулем, и их близкие родственники - строки, заканчивающиеся переводом строки (в двух вариациях Win и nix - там разные символы в конце), используются в межпрограммных взаимодействиях:

    API, JSON, XML, HTTP и т.п.

    Строки стиля Паскаль не удобны для этого. Попробуй запиши в файл 100 строк типа Паскаль и 100 строк заканчивающихся 0/CR/LF - и убедись что Паскалевские строки неудобны для чтения человеком, с границы строки С-стиля прекрасно видны невооруженным глазом.

    Для работы со строками же внутри самой программы это смысла особого не имеет. Сейчас, когда в компиляторы и стандартные библиотеки встроены строки типа Паскаль и работа с ними проста и удобна. С С-строками приходится лишний раз думать а не забыл ли ты 0, а не вставил ли случайно 0 в середину строки. Работа со строками заканчивающимися 0 - это все больше старые библиотеки или те, что предусматривают взаимодействие с другими системами - например Windows API.
  • Какую сумму указываете в Upwork Confirmation of Services?

    @redakoc
    Алексей Егоров:
    опирайтесь на ту сумму, которая на документе, что вы предъявляете валютному контролю/налоговой и т.п.