Об языки программирования

Я считаю, если к языку программирования не прилагается из коробки нормальная среда разработки (IDE), с отладчиком хотя бы, а желательно с подсветкой кода, подсказками, проверкой синтаксиса на лету, то это не язык программирования, а говно, разработчики которого плевать хотели на клиентов/пользователей/подставитьнужноеслово. Для них клиенты и пользователи — программисты, которые будут на этом языке писать. Не сделав нормальную IDE, они уже насрали потенциальному клиенту на голову, и еще чего-то хотят. Борланд это понял первым, MS — вторым.
Исключение только для скриптовых языков операционок, например bash, языка bat-файлов или PowerShell, и то только потому что, во-первых, эти языки рассчитаны на работу в минимальном окружении, в космосе без скафандра, куда никакая IDE не влезет, а во-вторых, они вызывают множество внешних, по отношению к интерпретатору, команд. В последнем случае невозможно толком сделать отладчик. Ассемблер и байткод тоже может не иметь IDE, см. «во-первых»
В случае коммерчески- или хотя бы массовоориентированных языков, за такое ебало надо бить. Для перла и php есть костыли, но разработчики все-равно уроды страшные, ИМХО. Хотя в их отношении я погорячился, наверное, но к остальным не относится. С другой стороны — язык стал массовым, появилось бабло, так сделай же IDE!

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/296934.html
Прокомментировать заметку можно по ссылке выше.

Поиск текста с заданным начертанием (жирный, курсив и т.д.), выделенного определенным шрифтом. VBA.

И вставка в текст HTML-тегов.

Преамбула
Да, мне нравится 2003 MS Word, и на мой взгляд, текстового редактора лучше пока еще никто не написал. Я делал все нижеследующее для себя, но возможно, материал будет полезен изучающим VBA. Особенно если у них возникают вопросы, как найти текст, выделенный жирным, курсивом, или там определенным шрифтом.
Так вот. Написал я в Word’е заметку про какой-нибудь скрипт, красиво оформил, код выделен Курьером, заголовки отцентрованы, важные места выделены жирным, пункты меню указаны курсивом, ну и так далее. Теперь нужно текст переложить в уютненький бложег, да так, чтобы сохранить форматирование вставить куда надо нужные теги.
Встроенное сохранение в формате HTML вставляет много лишних тегов, добавлять нужные теги руками – лишняя работа, а я ленивый. Что же делать? У нас есть VBA, который все сам за нас сделает.
Read more…
Макрос целиком на pastebin

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/294478.html
Прокомментировать заметку можно по ссылке выше.

Скрытые и персональные данные в документах MS Office

Настоящие параноики, конечно, не пользуются продукцией Майкрософт совсем, но мало ли что…
MS, собственно, особо и не скрывает наличие нежелательных для распространения в публичном пространстве данных, которые Office может внести в документ:
При распространении в электронном виде документа Office в нем могут содержаться сведения, которые желательно не делать общедоступными, — к примеру, данные, обозначенные пользователем как «скрытые», или информация, позволяющая работать над документом вместе с другими пользователями.
Вот инструмент для их удаления. От MS. Уж не проверял, насколько кошерно он все удаляет, но если публиковать Word’овские документы, то не грех этим инструментом предварительно воспользоваться.
UPD. Фиговина не удаляет некоторые сведения, которые можно принять за персональные, из макросов. Точнее — после обработки ею документа, все равно можно найти сведения типа Макрос записан 32 мартабря в хернадцать часов юзером MeGaUsWer
ЗЫ Тулза для 2003-го офиса.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/294177.html
Прокомментировать заметку можно по ссылке выше.

Переключение шрифтов в Microsoft Word с помощью VBA

Бывает так, что в документе постоянно используются, например, два шрифта, и через некоторое время надоедает переключать их мышью. Это можно исправить с помощью VBA.
Предположим, что постоянно надо переключаться между Courier New и умолчальным Times New Roman, я это часто делаю, когда пишу про что-нибудь околоайтишное (Courier’ом выделяю код), а наши девочки – когда вставляют код в отчеты.
Итак:
1. Включаем запись макроса, называем его, например SetCourier, в окошке записи нажимаем кнопку, и далее назначаем удобное сочетание клавиш, например Alt+C
2. Выполняем любое действие (да хоть любой символ введите) и останавливаем запись.
3. Идем в меню Сервис – Макрос – Макросы, в появившемся окошке находим наш макрос, нажимаем Изменить, откроется редактор VBA, где и будем работать дальше.
4. Удаляем все, что между Sub SetCourier() и End Sub
5. Вставляем туда следующий код:
Selection.Font.Name = "Courier New"

Аналогично делаем и для Times New Roman, только называем макрос по-другому (например, SetTimes) назначаем другое сочетание клавиш, и вставляем следующий код:
Selection.Font.Name = "Times New Roman"
Теперь нажав соответствующие комбинации клавиш, можно переключить шрифт, а если предварительно выделить текст, то он также изменит свой шрифт.
Макросы на pastebin

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/294002.html
Прокомментировать заметку можно по ссылке выше.

Определение момента, когда поднялся VPN тоннель

Определение момента, когда поднялся VPN тоннель
Здесь была первая версия скрипта
Она была с недочетом
Описание исправленной здесь

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/293021.html
Прокомментировать заметку можно по ссылке выше.

Проверка валидности введенного IP-адреса (V4)

Без использования регулярных выражений.
Пишет мне один старый товарищ, ныне студент, и просит регулярку для проверки валидности IP. Как выяснилось, регулярка оказалась не нужна совсем, т.к. задача поиска IP в тексте неизвестной структуры не стояла. А что такое IP? Да это же просто 4 байта, разделенных точкой. Посему достаточно просто разложить строку на составляющие функцией split(), проверить, сколько строк получилось в результате, и если строк 4 — попытаться каждую сконвертировать в байт. Если все сконвертировались — IP правильный.
bool isValidIP(string IPAddress)
{
     char[] ch = new char[1]; //Разделители для функции split
     ch[0] = '.'; //у нас 1 - точка
     string[] IPArr = IPAddress.Split(ch); //разделяем строку на составляющие и записываем в массив
     if (IPArr.Length != 4) return false; //если длина не 4 ровно, значит точно не IP
          byte b = 0; //временная переменная для результата конверсии
          bool res = false;//временная переменная флага, прошла ли конверсия удачно
          for (int i = 0; i < 4; i++) //прогоняем все элементы массива через конверсию           {                res = byte.TryParse(IPArr[i], out b); //пытаемся сконвертировать                if (!res) return false; //если функция вернула false, значит элемент массива не байт. Возвращаем false           }      return true; //если до этого нигде не вывалились, это IP, возвращаем true }

Вариант проверки с использованием класса Convert и обработкой исключений:
Read more...
Вариант 1 на pastebin
Вариант 2 на pastebin
демо
static class с функциями отдельно

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/291094.html
Прокомментировать заметку можно по ссылке выше.

Информация о выделенном IP и шлюзе, еще вариант

Анон дельно подсказал еще один способ узнать выделенный IP и адрес шлюза VPN-тоннеля и настроить маршрутизацию. Создать скрипт /etc/ppp/ip-up (также есть варианты ip-pre-up и ip-down для соответствующих случаев), которому pppd в параметрах передает всю нужную информацию.
В некоторых дистрибьютивах исполняются не скрипты с указанными названиями, а скрипты из каталогов /etc/ppp/ip-up /etc/ppp/ip-pre-up /etc/ppp/ip-down. Мне сей способ не сильно удобен, т.к. скрипты запускаются при поднятии каждого тоннеля, соответственно, придется городить большой скрипт, определяющий какой именно тоннель поднялся, и какой маршрут прописать (и нет ли этого маршрута уже). Посему у себя я оставлю как было, но информация все-равно полезная, пусть лежит тут. Мало ли когда надо будет.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/291063.html
Прокомментировать заметку можно по ссылке выше.

Скрипт, для получения информации о выделенных ip и шлюзе и установки маршрутизации.

Преамбула.
Дело в том, что у меня на рабочем компьютере поднимаются сразу несколько VPN-тоннелей. Для работы, сразу с двумя офисами, здесь, в Италии, и до основного, два бесплатных VPN для разных Интернет-сервисов, один из которых должен предоставлять маршрут по умолчанию, местный тоннель (пофлудить на скрытом форуме). Для всего этого зоопарка заведены соответствующие таблицы маршрутизации в файле /etc/iproute2/rt_tables. Понятно, что после того, как тоннели поднялись, в соответствующие таблицы надо прописать соответствующие маршруты по умолчанию. DHCP в данном случае применим с огромным геморроем, маршруты надо прописывать вручную, но это тоже не менее геморройная задача, т.к. провайдеры иногда меняют шлюзы, я меняю провайдеров VPN, админы тоже могут изменить шлюз и/или выделенный IP. В общем, задолбало меня все руками перенастравивать и я решил написать скрипт, который это будет делать за меня. Заодно вспомнить bash, где знал, и узнать что-то новое, где не знал.
Будем исходить из того, что имеется уже поднятый VPN-тоннель и нам необходимо прописать в нужную таблицу нужный маршрут по-умолчанию.
Откуда взять нужные ip.
Из вывода команды ifconfig. В моей системе вывод ifconfig pppX, где X, номер соответствующего интерфейса ppp выглядит так:
ppp1: flags=4305 <UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1396
     inet x.x.x.x netmask 255.255.255.255 destination y.y.y.y
     ppp txqueuelen 3 (Point-to-Point Protocol)
     RX packets 2055 bytes 1502924 (1.4 MiB)
     RX errors 0 dropped 0 overruns 0 frame 0
     TX packets 1747 bytes 179542 (175.3 KiB)
     TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Где x.x.x.x – IP, присвоенный машине провайдером VPN, а y.y.y.y – IP шлюза провайдера, через который и должен пролегать маршрут.
Команды для установки маршрутизации
Команда добавления маршрута в соответствующую таблицу выглядит примерно так:
ip route add default dev имя_тоннеля via адрес_шлюза src адрес_машины table таблица
Например:
ip route add default dev ppp1 via 10.1.15.1 src 10.1.22.12 table suomi_office
Если таблица не указана (параметр table отсутствует), то маршрут будет установлен, как маршрут по умолчанию.
Обязательными параметрами в данном случае является указание на соответствующий шлюз (dev), остальные – дополнительные.
Для удаления маршрута по умолчанию используется команда:
ip route del default table таблица
или
ip route del default для удаления основного маршрута по-умолчанию.
Что должен делать скрипт
Основное:
1. Проверить, действительно ли поднят указанный интерфейс
2. Есть ли в файле /etc/iproute2/rt_tables соответствующая таблица маршрутизации, если таблица не указана – установить основной маршрут по умолчанию
3. Получить нужные IP
4. Вывести на экран summary – полученные IP и параметры.
5. Установить маршрутизацию, сообщив об успехе, либо ошибке
Дополнительно:
1. Проверить корректность заданных параметров
2. Вывести справку по собственным параметрам при наличии запроса, либо при запуске без параметров.
3. Иметь возможность указать или не указать необязательные параметры для команды маршрутизации.
Read more…
Приложение. Используемая литература и скрипт целиком.
1. Краткое описание команды if. Копия
2. Краткое описание команды awk Копия
3. Скрипт. Копия на pastebin.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/290649.html
Прокомментировать заметку можно по ссылке выше.

Удаление EXIF-данных из изображений.

Мини-совет для Windows, но поскольку средство для работы (в т.ч. и удаления) метаданных кросс-платформенное, то инструкция будет не сильно и отличаться.
1. Качаем утилиту ExifTool отсюда. Она бесплатная, может обрабатывать файлы пакетом, для начинающих пользователей есть один минус — это утилита командной строки.
2. Распаковываем архив, переименовываем файл exiftool(-k).exe в exiftool.exe и копируем/переносим его в C:Windows или любой другой каталог, который указан в переменной окружения PATH. Кому лень — качаем отсюда самораспаковывающийся архив, в котором уже все переименовано, и распакуется он в директорию, куда установлена Windows. Для этого потребуются права администратора.
3. Команда для удаления всех EXIF-данных такая:
exiftool -all= -overwrite_original *.jpg
где:
exiftool — имя нашей программы
-all= — удаляем все данные
-overwrite_original — перезаписать оригинальные файлы
*.jpg — обработаны будут все файлы JPG из данного каталога (т.е. если надо обработать PNG, то вместо *.jpg надо написать *.png)
Команду выполняем из Far’а или командной строки в каталоге с изображениями.
Вот более подробная инструкция по использованию ExifTool.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/282661.html
Прокомментировать заметку можно по ссылке выше.

Об санкции

Пишет Панкарь, тащемта:
***: Встретил вчера нашего бывшего клиента, он говорит, сгорел блок питания. [ATX самый обыкновенный, прим. мое] Пошел в магазин, ему продали новый за 2500, а в прошлом он такие же видел за 800. Спрашивает, не наебали ли меня. Я ответил, не не наебали. Новости смотришь? Курс доллара видишь? Блоки питания где производятся знаешь? И под чьими брендами? Вот. Зато Крым ваш. Утритесь.
Плюнул и пошел дальше. Чел остался щелкать ебалом на улице.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/281898.html
Прокомментировать заметку можно по ссылке выше.

Полюбила программиста


Прослушать или скачать The Dartz Полюбила программиста бесплатно на Простоплеер

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/281080.html
Прокомментировать заметку можно по ссылке выше.

орфографическо-техническое

за не с глаголом просьба неругать
пробелсукаглючитблять!

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/278488.html
Прокомментировать заметку можно по ссылке выше.

Как не надо делать сайты

Вот хипста-дизайнеры wos’а мудаки то.
Есть хорошая статья, но читать ее невозможно совершенно из-за мельтешащего на краю зрительного поля изображения, а еще блять сайт, на котором кроме текста вообще нихуя толком нет, который блять информационный ресурс, и текст там, епта, основное, не работает без JS.
Медицинские дебилы. Хуже, блять, просвиньина.
Если вы когда-нибудь будете делать сайт — не делайте его так, пусть говна в мире будет поменьше.
UPD: оно все-таки потом съебало с экрана, но осадок остался.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/275518.html
Прокомментировать заметку можно по ссылке выше.

Sony Vegas 9. Как быстро получить небольшой видеофайл хорошего качества.

Проблема при использовании Vegas, с которой ко мне обращалось несколько пользователей, была в том, что выходной видеофайл, даже при небольшой продолжительности, получался довольно солидных размеров. Например, даже двухминутный ролик занимал около 400 Мб.
Vegas имеет довольно много возможностей для регулирования параметров сжатия видео, а соответственно для настройки размера и качества. Однако, начинающему пользователю довольно сложно разобраться во всем зоопарке кодеков, форматов и их настроек. Поэтому ниже я представлю быстрый, буквально в два клика, метод получения качественного, и в то же время небольшого видеофайла. Может быть способ не совсем «академичен» и «профессионален», но очень прост. В меню Файл выбираем пункт меню Создать как
В появившемся окне достаточно выбрать при создании ролика формат MainConcept AVC/AAC (mp4) со встроенным шаблоном.


Если вы делаете видео без звука, то есть возможность еще уменьшить размер. Надо при создании отключить аудио. Дело в том, что если этого не сделать, то Vegas вставит в выходной файл аудиодорожку, даже если в самом файле проекта аудиодорожек нет вообще. Она будет пустая (без звука), но, тем не менее, место в выходном файле все равно будет занимать.
Чтобы отключить аудио, нужно нажать в окне сохранения видео (рисунок выше) на кнопку Custom, в появившемся окне перейти на вкладку Аудио, и там снять галочку Включить аудио, после чего нажать OK. Окно закроется, а по нажатию кнопки Сохранить видео будет создано без аудиодорожки.

Для примера было пересоздано без звука видео, в котором рассказывалось о создании переходника PS/2 to DIN5. Его размер в формате MP4 с включенным звуком составил 42 802 Кб, с удаленной звуковой дорожкой, но включенным в настройках звуком 42 801 Кб, а с отключенным звуком 37 430 Кб
Скачать PDF

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/273342.html
Прокомментировать заметку можно по ссылке выше.

Супер Ленин

Кавер на Супер Марио, выкладываю специально для прекрасного [info]negandtiv@ljr, бо в тему его .
Я так думаю, оно или опенсорсное, или за давностью лет из интернетов про… терялось, потому против никто не будет.
Скачать (EXE Installer) [3 Mb]

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/272046.html
Прокомментировать заметку можно по ссылке выше.

Интерфейс Sony Vegas 9. Особенности интерфейса, перемещение окон и панелей. Видеоинструкция.


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

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/271548.html
Прокомментировать заметку можно по ссылке выше.

Как записать Audio CD с помощью Nero

Специально для Тихого Лехи который забыл пароль
Скачать [PDF, 355 Kb]

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/271317.html
Прокомментировать заметку можно по ссылке выше.