← All posts tagged программизм

Другими словами, вы используете API для отправки писем со своей html-странички, не используя никакой код на сервере.
[...]
Для того, чтоб данный пример заработал — необходимо получить свой API Key.
[...]
Квота составляет 12,000 сообщений в месяц (295 в час) на один аккаут.
habr.com
OAuth никого ничему не научил. API Key наружу! Модно, стильно, молодёжно!

Странные нынче девелоперы пошли. То они внятное сообщение об ошибке выдать не могут, потому что «не станешь же перед каждым open_file переменную file_name вписывать!» То без прямой трансляции с устройства пользователя у них ну вообще никакие баги не отлавливаются...
habr.com

YoptaScript это первый в мире скриптовый язык программирования для гопников и реальных пацанов, транслируемый в чистый JavaScript. YoptaScript позволит "чётким пацанам" быстро влиться в ряды программистов и процесс разработки.github.com
Пипец макакам.

Казалось бы, что WinAPI уходит в прошлое. Давно уже существует огромное количество кросс-платформенных фреймфорков, Windows не только на десктопах, да и сами Microsoft в свой магазин не жалуют приложения, которые используют этого монстра.habrahabr.ru
Казалось бы, колесо уходит в прошлое: давно уже существует огромное количество автомобилей!

Дошли руки наконец доделать HTTPS в своём классе, использующем WinInet для получения данных из Инета. Разобралась почему у меня не работали флаги по игнорированию ошибок сертификатов (не туда пихала их). Вроде бы всё заработало. И тут... Делается запрос на HTTP, устанавливаются флаги для игнорирования ошибок, сервер возвращает 302 на HTTPS, но WinInet достаточно умный чтобы самостоятельно делать редирект. Он делает и возвращает ошибку сертификата. Как так? Вот же флаги! Поковырялась. Судя по всему, флаги сбрасываются при отправке нового запроса, и как их установить – не понятно, ведь всё происходит внутрях WinInet. И это что ли ручками обрабатывать?

Кстати, прикол от Nanoc. Там есть возможность писать свои фильтры и вообще внедрять свой код в процесс компиляции сайта, достаточно закинуть модули в папку lib. Ну я и закинула. А у меня один главный файл, к которому через require_relative прицеплены другие. В standalone режиме всё прекрасно работало, а тут компиляция начала валиться с сообщением, что дескать unicode normalization не применима к US-ASCII. С этого момента началось перелопачивание исходников в поисках, где он нашёл US-ASCII. Думала, что из-за включения гема unicode, пихала всё в module, чтобы не светилось наружу – нифига. Потом от отчаяния догадалась убрать require_relative, раз уж оно грузит все модули, что есть в папке без дополнительных пинков, и ошибка пропала. Короче, мистика.

Собственно, чего это я? Сегодня вместо работы сидела портировала код, конвертирующий текст в HTML с сохранением внешнего вида (в том числе и табов), с VBScript на Руби. Тоесть код нужен был для обновления программы на VB6, но на работе VB6 нет поэтому сначала писала на VBScript, а потом в VBA приводила в чувства. Собственно, на Руби я это дело перевести тоже хотела, а всё для чего? Для того чтобы у меня был свой собственный фильтр для Nanoc, чтобы обычный текст выводился нормально без всех Markdown премудростей. И фильтр я таки сделала, теперь нужно допилить его для нормального состояния, чтобы параметры были и всё такое. А там уже можно будет придумать, как мелкие рассказики пачкой публиковать, конвертируя из CherryTree XML ^^'

Попыталась выяснить, чем использование Руби в Японии отличается от использования Руби в Штатах.
engineering.appfolio.com
Бросила это занятие на середине, ибо вся статья – поток одинаковых блоков, в которых автор сначала задаёт вопрос «Так как же Руби используют в Японии?», а потом начинает рассказывать об особенностях использования Руби на западе. Между блоками идут куцие склейки в виде перечисления названий конференций руби девелоперов, перечисления имён центровых разработчиков Руби (и времени, в котором они живут друг от друга) и рассказами о том, что японское правительство спонсирует Руби. Где-то там мелькнуло что-то про IoT и память, но буквально в двух предложениях.
Ну нельзя же так =_=

Оказалось, что даже при использовании WSF файлов модульность получается условной. На деле во время выполнения весь код как бы сливается в один большой скрипт, и для простых функций Private и Public теряют смысл. То же самое касается переменных и констант на верхнем уровне. Похоже, единственный способ заизолировать код – пихать всё в классы. Тоесть один файл – один класс. Плюс там же в файле «модуля» объявлять переменную и тут же присваивать ей объект этого класса. Объекты все создадутся при старте скрипта нормально, но, разумеется, придётся указывать переменную при вызове функций. Пичалька.

Если у нас сокеты, скажем, в каком-нибудь Net::HTTP, и случается ошибка, то вот вот это:
$stderr.puts "Ошибка: #{ e.message }"может кончиться этим:
incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)Поэтому нужно делать так:
$stderr.puts "Ошибка: #{ e.message.force_encoding("windows-1251").encode("UTF-8") }"Собственно, это результат мышления в стиле «двух кодировок» и «какой-такой UTF-16 я в линупсах привык к UTF-8 и доки не читаю».
pics.lindachan.net

И вообще, раз уж зашла речь, предлагать пользователю сходить на сайт и зарегистрировать приложение (тоесть самому ввести название, описание, callback-url) чтобы получить ключи (как это делает тот же Discogs тэггер в foobar2000) – это такой лихой костыль или типичный нормальный воркфлоу в мире OAuth?

Поубивала бы авторов OAuth. Вот я зарегистрировала на том же Тумблере свою программу. Мне дали Consumer Key и Consumer Secret. При чём первый выводится в интерфейсе, а второй стыдливо прячется за ссылкой «Show Key». Название намекает, что это значение – штука секретная и не для посторонних глаз. А потом я пишу программку на Руби, которая должна выполняться на машине пользователя. Есть гем, который инкапсулирует API. В настройках кроме всего прочего нужно указать оба значения. Тоесть как ни шифруй этот самый секрет, для находчивого пользователя никаких секретов нет. В чём тогда смысл всех этих плясок с ключами? Как быть в итоге?