@Linda-chan

Тег программизм в блоге Linda-chan

Linda-chan

Решила ещё раз попробовать Private Desktops в Windows 7 и узнать, чего она там не работает. Ну, то что Win+1 и прочие цифры забиндены Проводником на прибитые на таскбар программы, при чём скопом со всеми модификаторами (Win+Ctrl+1, Win+Alt+1 etc), я выяснила в прошлый раз. Поставила более конвенционные Win+Q для первого рабочего стола (дефолтного), Win+W для второго, перезапустила программу. Жму Win+W – переключилось. Жму Win+Q – не реагирует. Не работает переключение? Запустила екзешник программы с параметром «/Switch 0» – переключилось. Вернулась на второй рабочий стол, снова жму Win+Q. Там запущена консоль, и я вдруг заметила, что эта самая Q в ней набирается. Тоесть, хоткей не работает в принципе. Короче, если в XP глобальные хоткеи работали на всех рабочих столах в пределах текущей оконной станции (кроме рабочего стола блокировки системы), то, похоже, дальше они стали заизолированы на конкретных рабочих столах. Тоесть если на рабочем столе X программа создала окно и следом зарегистрировала хоткей с его манипулятором, то сообщения WM_HOTKEY будут прилетать только если клавиши были нажаты, пока рабочий стол X был активен. А если система переключится на рабочий стол Y, то сообщения прилетать не будут. Пичалька, придётся думать, как программу обновить. Есть вариант с хуками, но я хуки зависят от разрядности процесса, в который библиотека будет внедряться, а я пока в этом не разбиралась =_=

Linda-chan

Не следует путать последний и совсем последний элементы массива.

Linda-chan

Я всегда говорила: зачем в доме вообще нужны все эти древние кирпичи, панели, блоки, если есть обои, плитка, ламинат и прочие современные вещи, и они прекрасно работают!

Linda-chan

Говорят, WinAPI скоро из Windows выпилят!
https://sohabr.net/habr/pos...57/#comment_18923351

Linda-chan

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

https://habr.com/post/246347/
OAuth никого ничему не научил. API Key наружу! Модно, стильно, молодёжно!

Linda-chan

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

Linda-chan

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

https://github.com/samgozman/YoptaScript
Пипец макакам.

Linda-chan

Обязанности: разработка программных изделий на языках С++ или PHP
Подходит людям с инвалидностью

Прямо территория смыслов какая-то.

Linda-chan

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

https://habrahabr.ru/post/352096/
Казалось бы, колесо уходит в прошлое: давно уже существует огромное количество автомобилей!

Linda-chan

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

Linda-chan

Пойнт на VB6 – это тема!

Linda-chan

Вечный вопрос: нужно ли удалять ненужные гемы, если вопрос места на диске не стоит на повестке дня?

Linda-chan

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

Linda-chan

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

Linda-chan

Терпеть не могу блоки в Руби. Тут пиши «then/end», там - «do/end», сям - «begin/end». Всё время путаюсь. Есть фигурные скобки, но смотрятся они некрасиво и как-то чужеродно =_=

Linda-chan

Взяла код на VBScript, взяла свой модуль vb.rb и начала построчно переводить код на Руби. Этим язык меня и привлекает.

Linda-chan

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

Linda-chan

Если у нас сокеты, скажем, в каком-нибудь 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 и доки не читаю».

Linda-chan

Я, конечно, ещё только начинаю осваивать Руби, но из всех языков с которыми я за последнее время познакомилась, именно Руби оставляет какое-то чувство комфорта при написании кода. Словно пишешь на VB7.

Linda-chan

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

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.