16:51

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5479-02-54
#original-date: 27.07.2015 Mon
#original-time: 2:54 AM
#original-day:  5479
#original-host: WinXP Prof SP3 (Build 2600)

Ответственное отношение к животным — не от ума и не от убеждений. С ним рождаются. Или оно есть, или его нет. Если его нет — ничего объяснить невозможно. Даже не надо пытаться. Лучше, наоборот, помалкивать.

Люди, которые выбрасывают котят, считают трепетное отношение к живому психическим отклонением. Поэтому люди, которые подбирают котят, скрывают его, как свою слабость. Но есть фраза, по которой их легко опознать. Если человек говорит: “Мне совсем не жалко людей” — значит, он из того лагеря, где спасают котят.

Людей не жалко, потому что они сами виноваты в своих несчастьях и сами могут помочь себе. У людей есть руки, мозги, инструменты. У них есть права и рычаги. Они могут требовать и добиваться. А животные и растения не могут добиваться. Они беспомощны. Они даже таблетку не смогут проглотить самостоятельно, если заболеют.

Если человек говорит, что ему не жалко людей, — скорее всего у него четыре кошки и три собаки, все подобраны больными и несчастными.

Но если он скажет, что ему жалко людей, — вы вряд ли найдете у него дома больных старух, которых он приютил из жалости.

В этом и есть вся разница.


https://vk.com/wall15928540_9341

16:51

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5479-02-51
#original-date: 27.07.2015 Mon
#original-time: 2:51 AM
#original-day:  5479
#original-host: WinXP Home SP3 (Build 2600)

Today is let's-hate-me day! ©

16:50

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5478-08-11
#original-date: 26.07.2015 Sun
#original-time: 8:11 AM
#original-day:  5478
#original-host: WinXP Home SP3 (Build 2600)



http://twitter.com/LolliDiMe/status/624530488095457280
http://vk.com/wall-29534144_1772751

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5478-03-32
#original-date: 26.07.2015 Sun
#original-time: 3:32 AM
#original-day:  5478
#original-host: WinXP Prof SP3 (Build 2600)

Меня часто спрашивают, почему я так не люблю загружаемые шрифты.



16:47

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5478-01-50
#original-date: 26.07.2015 Sun
#original-time: 1:50 AM
#original-day:  5478
#original-host: WinXP Prof SP3 (Build 2600)

14.07.2015 в 09:24
Пишет  Shizuku:



URL записи

16:47

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5477-21-19
#original-date: 25.07.2015 Sat
#original-time: 9:19 PM
#original-day:  5477
#original-host: WinXP Prof SP3 (Build 2600)

25.07.2015 в 13:16
Пишет  Линда Кайе:

Вроде как Frozen

Suggestive content.





URL записи

Не, гомофобы всех стран видят "эротический подтекст" во всём подряд, а нам нельзя что ли?

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5477-20-41
#original-date: 25.07.2015 Sat
#original-time: 8:41 PM
#original-day:  5477
#original-host: WinXP Home SP3 (Build 2600)

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

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5477-04-59
#original-date: 25.07.2015 Sat
#original-time: 4:59 AM
#original-day:  5477
#original-host: WinXP Home SP3 (Build 2600)

В новой версии Руби под Windows выяснилось, почему кириллица в командной строке больше не проблема. Для начала программа получает юникодную командную строку при помощи функции GetCommandLineW(). Здесь использована W функция для получения командной строки в UTF-16 вместо ANSI.

Потом она пуляет её в функцию, которая занимается парсингом.

https://github.com/ruby/ruby/blob/613d97c5253e8baa7998702c26c0ffdbf56dd3c7/win32/win32.c#L774

Обратите внимание на флаг CP_UTF8 - он означает, что после парсинга командная строка из UTF-16 будет перегнана в UTF-8 и дальше будет использована в таком виде.

После дробления на составляющие, программа командует конвертировать UTF-16 строки параметров в указанную кодировку, тоесть, в UTF-8.

https://github.com/ruby/ruby/blob/613d97c5253e8baa7998702c26c0ffdbf56dd3c7/win32/win32.c#L1747

В функции перекодирования находится простой WideCharToMultibyte(), который и делает указанную работу.

https://github.com/ruby/ruby/blob/613d97c5253e8baa7998702c26c0ffdbf56dd3c7/win32/win32.c#L1968

Дальше не интересно.

О чём это говорит? Авторы Windows билда Руби теперь в курсе, что юникод в Win32 API существует в UTF-16, и командная строка приложения прилетает в программу именно в этом формате. Кроме того, авторы правильно проводят парсинг и конвертируют текст в кодировку, которая уже дальше используется тем самым кроссплатформенным кодом. Заодно авторы отвечают на вопрос: «А чё, винда не умеет UTF-8?»

Но всёже можно было заюзать CommandLineToArgW() и не мучиться.

16:46

Ruby

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5477-01-04
#original-date: 25.07.2015 Sat
#original-time: 1:04 AM
#original-day:  5477
#original-host: WinXP Home SP3 (Build 2600)

Бугага. Похоже, проблему с командной строкой, о которой я писала ранее, уже исправили. Но я не могу обновиться потому что собирается рубиинсталлер через одно место и последняя версия в XP не работает при отсутствии объективных причин для этого =_=

16:46

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5476-23-24
#original-date: 24.07.2015 Fri
#original-time: 11:24 PM
#original-day:  5476
#original-host: WinXP Home SP3 (Build 2600)

Пришёл спам по почте. HTML страницы с внешней картинкой, а в довесок - тридцатиметровый кусок из склеенных страниц с vesti.ru.

В деле борьбы со спамерами, я поддерживаю методы Влада Цепеша.

16:46

IT Happens

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5476-22-33
#original-date: 24.07.2015 Fri
#original-time: 10:33 PM
#original-day:  5476
#original-host: WinXP Home SP3 (Build 2600)

У меня тоже был когда-то AMD K6 OO

http://ithappens.me/story/13414

16:46

Ruby

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5476-22-31
#original-date: 24.07.2015 Fri
#original-time: 10:31 PM
#original-day:  5476
#original-host: WinXP Home SP3 (Build 2600)

Постигаю парсинг XML рубями. Постигать пока что нечего - примерно как у меня в XML Helper, только ещё проще. Вау!

16:45

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5476-22-29
#original-date: 24.07.2015 Fri
#original-time: 10:29 PM
#original-day:  5476
#original-host: WinXP Home SP3 (Build 2600)

Lazy == Efficient, so no judgements. :)

http://www.nokogiri.org/tutorials/searching_a_xml_html_document.html

16:45

IT Happens

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5476-22-28
#original-date: 24.07.2015 Fri
#original-time: 10:28 PM
#original-day:  5476
#original-host: WinXP Home SP3 (Build 2600)

Странно, что в этой истории не ломаются литеры, как в большинстве других.

http://ithappens.me/story/13412

Да, проблема совместимости с дятлами из прошлого есть, но. Раньше вот все данные исключительно капсом набирали, так может всё и писать капсом, а то вдруг снова будет проблема, что в одном случае А = а, а в другом А <> а?

И ВСЁ - ИЗ-ЗА СУЩЕЙ ЕРУНДЫ!

16:45

Игры

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5476-22-18
#original-date: 24.07.2015 Fri
#original-time: 10:18 PM
#original-day:  5476
#original-host: WinXP Home SP3 (Build 2600)

Вдохновлённая открытием Земли 2.0 решила поиграть в «Into Space 2».

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5475-22-27
#original-date: 23.07.2015 Thu
#original-time: 10:27 PM
#original-day:  5475
#original-host: WinXP Home SP3 (Build 2600)

Ruby хочет аргументы командной строки в UTF-8. Они там охренели что ли?

#upd: Всвязи с тем, что данный пост в пойнтожуйках стал детектором идиотов, стоит дать пояснения для толстолобиков.

http://juick.com/Linda-chan/2795604
http://linda-chan.point.im/vyqmf

Сработали триггеры. Увидел человек "UTF-8", вспомнил, что UTF-8 вроде как где-то там "стандарт" и вообще все текстовые файлы в нём, и ринулся нести свет истины. Увидел другой человек "Ruby" и начал доказывать, что это кроссплатформенный софт, а значит не должен работать на всех поддерживаемых платформах правильно. Вспомнил третий человек, что Руби - это что-то про консоль, и тут же безапеляционно заявил, что CMD "не поддерживает" Юникод, и PoSH обязательно поможет. Кому-то даже примерещились "потоки байтов из интернета". А кто-то, вспомнив предыдущий пост про сайт на Руби с Хамлом, подумал, что тэг "Windows" - это всё равно "Linux", поскольку сайт же.

О чём всё это говорит? Это говорит о том, что люди - идиоты, не способные прочитать пост, прочитать тэги и осознать то, о чём в нём говорится. Зато горазды броситься в спор, обосраться и потом писать посты про то, как их оскорбляли, унижали и вообще ранили душу. Ну или типа успешно троллить.

Так вот, суть проблемы.

В Windows для запуска процесса используется функция CreateProcess() (которая на самом деле вызывает CreateProcessAsUser()), в которую передаются всякие нужные сведения в том числе и командная строка программы. Поскольку у NT юникодное ядро, и используется UTF-16, то командная строка передаётся именно в этой кодировке. Как вариант - ANSI версия функции, которая всё равно конвертирует ANSI строку в UTF-16 и вызывает юникодную версию функции.

Когда новый процесс стартует, он может посмотреть собственную командную строку функцией GetCommandLine(), которая возвращает командную строку, переданную при запуске в виде строки UTF-16. ANSI версия берёт эту строку, конвертирует в ANSI, и возвращает программе.

Легко заметить, что здесь, несмотря на использование юникода, нигде не всплывает UTF-8 ни в каком виде.

Тем не менее, программа Ruby.exe (которая и есть исполняемый модуль всего этого дела), принимая параметры при запуске, почему-то считает, что это UTF-8. Не знаю, какую версию функции GetCommandLine() она использует (ANSI или Unicode), но без всякой конвертации полученное значение отправляется во внутренние структуры, разбирается как UTF-8. Если в командной строке оказываются имена файлов с русскими буквами, то первая же попытка их найти приводит к закономерному провалу.

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

Самое идиотское решение - городить целую виртуальную машину в линупсом на борту только для того чтобы выполнить скрипт на пару строк. Рациональное решенние, да.

Звучала мысль, что де это норма для кроссплатформенного софта, он весь ждёт только UTF-8 из командной строки etc. При этом вокруг себя я наблюдаю кучу такого софта, который прекрасно понимает русский язык в командной строке, а значит не ждёт никакого UTF-8 на входе, там где его быть не может.

Звучала мысль, что CMD не поддерживает Юникод. К сожалению телепаты провалились, поскольку запуск происходил из юникодного FAR.

Ну а "потоки байтов из интернета" при локальном запуске екзешника с локальным файлом я комментировать даже не буду.

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5475-22-26
#original-date: 23.07.2015 Thu
#original-time: 10:26 PM
#original-day:  5475
#original-host: WinXP Home SP3 (Build 2600)

Пишу маленький сайтик на Хамле и Руби. До того генерацию хотела доверить собственной программе, переделанной из генератора цитатника. Вроде бы всё красиво работает, жаль только и в том, и в том языках нет include =_=

17:07

Ruby

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5475-22-25
#original-date: 23.07.2015 Thu
#original-time: 10:25 PM
#original-day:  5475
#original-host: WinXP Home SP3 (Build 2600)

Какие же вы японцы непостижимые.
– Американский японец японскому японцу в фильме "Брат якудзы"


17:07

Ruby

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5475-22-23
#original-date: 23.07.2015 Thu
#original-time: 10:23 PM
#original-day:  5475
#original-host: WinXP Home SP3 (Build 2600)

Читаю про строковые операции - мозг взрывает покруче, чем в Javasсript.

str[start, length] > new_str or nil

For the start and range cases the starting index is just before a character and an index matching the string’s size.


http://ruby-doc.org/core-2.2.2/String.html

Иными словами, первый символ в строке, он даже не нулевой, а минус первый. Хотя, помня, что автор - японец...

#upd: Оказалось, что это - какие-то загадочные глюки на одной из машин, которые не повторились на другой OO Надо пробовать ©

17:06

Тотальная неудачница и убийца жёстких дисков.
#post-id: 5475-22-22
#original-date: 23.07.2015 Thu
#original-time: 10:22 PM
#original-day:  5475
#original-host: WinXP Home SP3 (Build 2600)

Почему древние не видели синего цвета.

http://mtrpl.ru/no-blue

Странно, что про Японию ни слова, где народ до сизх пор затрудняется с обозначением зелёного.