А японский там был сбоку прикручен, отдельными захардкоженными кодировками Shift-JIS и EUC. Юникод тоже был, но таким омерзительным костылем, что им иначе как в регулярках пользоваться было нельзя.
К счастью, в 1.9 о проблемах с кодировками по большому счету можно забыть. 1.8.7, последний стабильный релиз ветки 1.8, вышел больше трех лет назад и окончательно умрет этим летом.
К сожалению, структура модели очень редко будет точно соответствовать структуре параметров SOAP-запроса — хотя бы пара полей да будут другими. А большая часть энтерпрайзных клиентов (вроде 1С и иже с ними) очень ревностно относится к неточностям в WSDL, выбрасывая ошибку при малейшем несоответствии.
Такое автоматическое извлечение структуры из модели слишком подвержено ошибкам при изменениях в модели. На мой взгляд, лучше все это описывать явно.
Насколько мне известно, Skype при помощи UDP-мультикаста находит суперноды в вашей локальной сети, после чего работает через них как через прокси-сервера. (Скайп утверждает, что суперноды сами не проксируют трафик, но аналитики из гугла утверждают обратное.
Прежде чем переходить на личности, неплохо было бы, ну, для разнообразия, показать примеры неработающего кода и экстеншнов. Просто чтобы не выглядеть аггрессивным троллем, который не осилил 1.9.
Основной источник экономии памяти — патч, позволяющий ОС использовать copy-on-write при fork()-е — уже давно внедрен в 1.9.
В REE есть кое-какие крутилочки, отсутствующие в 1.9, но если вы не Твиттер, то вряд ли они вам нужны. А если и нужны, то они подключаются обратно одной строкой в консоли через rvm.
В веб-приложениях язык почти никогда не лимитирует производительность. На неграмотно составленном запросе теряешь гораздо больше. Если где-то получаются тормоза из-за самого Ruby, значит вы делаете это неправильно (или, как вариант, уже есть C-шное расширение для этой цели).
Кхм. Я имел в виду именно то, что написано — перечитайте, пожалуйста, мой комментарий и предыдущий — но устоявшееся выражение почему-то именно такое, как написали вы. (Плохо понимаю, кстати, почему.)
Возьмите любой процессор — на нем выполняется либо код на Си, либо код, скомпилированный чем-то, написанном на Си.
Возьмите любой материальный предмет, разработанный и произведенный за последние, ну, 20 лет. Все они были сделаны при помощи CAD-систем, которые в конечном итоге сводятся к Си, ведь любой рантайм/компилятор либо написан на Си, либо собирается сам собой — после того, как кто-то написал bootstrap на Си.
Есть ли хоть кто-нибудь, кто оказал большее влияние на наш мир в последние века?
Первый и последний раз, когда я пишу что-то подобное. У меня нет ни малейшего желания получать рейтинг на подобных топиках, даже если это и побочный эффект.
К счастью, в 1.9 о проблемах с кодировками по большому счету можно забыть. 1.8.7, последний стабильный релиз ветки 1.8, вышел больше трех лет назад и окончательно умрет этим летом.
Такое автоматическое извлечение структуры из модели слишком подвержено ошибкам при изменениях в модели. На мой взгляд, лучше все это описывать явно.
Идете на rollernet.us, платите $0 (или $5 за кнопку «перезагрузить сейчас») и получаете отличный secondary NS. У них даже ipv6 нативный есть.
Экстеншны «портируются» на 1.9 путем однокнопочной замены RString(value)->x на RSTRING_x(value). Не вижу в этом проблемы.
В REE есть кое-какие крутилочки, отсутствующие в 1.9, но если вы не Твиттер, то вряд ли они вам нужны. А если и нужны, то они подключаются обратно одной строкой в консоли через rvm.
Возьмите любой процессор — на нем выполняется либо код на Си, либо код, скомпилированный чем-то, написанном на Си.
Возьмите любой материальный предмет, разработанный и произведенный за последние, ну, 20 лет. Все они были сделаны при помощи CAD-систем, которые в конечном итоге сводятся к Си, ведь любой рантайм/компилятор либо написан на Си, либо собирается сам собой — после того, как кто-то написал bootstrap на Си.
Есть ли хоть кто-нибудь, кто оказал большее влияние на наш мир в последние века?