Рубрика «Песочница» - 168

Каждый раз, когда читаешь рекомендации по созданию загрузочных флэх (в частности для Linux live USB flash), автор предлагает начисто отформатировать съемное устройство, а при наличии извращенной фантазии — отформатировать под ext2/3/4, а при особо извращенной — он создает 2 раздела, а то и вовсе лезет в прошивку контроллера флэшки, дабы создать там эмуляцию cdrom. Или в рекомендации используется софт, который делает то же самое — но автоматически.

Извольте, но у меня уже есть загрузочная, боевая флэшка, с которой загружает с помощью Grub4dos и пары прямых рук целый арсенал софта — от windows XP PE до установки гипервизора VMWare ESXi… Итак, я захотел портировать туда еще и Live CD для новой Cent OS 6.
Читать полностью »

Здравствуйте, уважаемые коллеги.

Часто доводилось наблюдать (на Хабре в том числе) обсуждения безопасности веб-серфинга через публичные незащищенные WiFi сети и рекомендации по защите.

Читать полностью »

Проблема

Для работы с базой данных MSSQL Server 2005 в кодировке UTF-16(UCS2) я использую скрипт, написанный на python. Этот скрипт использует для работы с базой данных следующий набор инструментов:

  • unixODBC
  • FreeTDS
  • pyodbc
  • sqlachemy

И тут появилась трудность: при получении строковых данных из базы (поля nvarchar, ntext) неправильно обрабатывается юникод.
Как выяснилось, установленный у меня питон был собран с UCS4 юникодом. Методы получения типа юникода в сборка python хорошо описаны в данном вопросе на stackoverflow. Т.е, если выполнить следующую строчку в терминале:

python -c "import sys;print 'UCS4' if sys.maxunicode > 65536 else 'UCS2'"

то мы получаем версию сборки юникода для python.В моем случае это было UCS4. Что это за собой тянет:

  1. unixODBC вызывая соответствующие функции работы с базой данных с аппендиксом W (например, SQLExecDirectW()), получает результаты. в которых один символ текста занимает 2 байта(UCS2)
  2. pyodbc получает результаты от ODBC-драйвера, и в свою очередь сохраняет результаты в переменную с типом unicode
  3. Таким образом 1 символ результата, по мнению pyodbc, составляет 4 байта(UCS4). Именно так и сохраняется результат. полученный из ODBC-драйвера.

Драйвер возвращает данные, в которых символ занимает 2 байта, а pyodbc переделывает эти данные так, что символ занимает 4 байта. Все бы хорошо, если бы было какое-либо преобразование, но данные просто сохраняются как массив байтов в переменную с типом unicode, что несет неприятные последствия: символ результата по-сути содержит 2 символа того результата, который вернул ODBC-драйвер.
Читать полностью »

Доброго времени суток, уважаемые читатели!

Мне бы хотелось поделиться с вами простым, и на мой взгляд, удобным способом управления виртуальными коммутаторами в инфраструктуре VMWare vSphere, не используя vDS (vSphere Distributed Switch).
Кто-то не использует vDS потому, что не видит в них надобности. Кто-то потому, что ему неудобно. Кто-то потому, что нет лицензии — ведь vDS требует Enterprise Plus лицензию vSphere.

Мы тоже пока используем обычные vSwitch, не смотря на наличие более 70 ESXi гипервизоров в инфраструктуре. И так получилось, что за время работы с ними, у меня скопилось множество PowerCLI скриптов для автоматической настройки тех или иных функций. И захотелось их объединить в нечто большее, сделав удобный инструмент для других администраторов. Через некоторое время я наткнулся на пакет Primal Forms (сейчас он называется PowerShell studio, есть урезанный Community Edition) и понял, что следующим шагом будет GUI. Primal Forms позволяет создавать GUI средствами самого PowerShell, однако существенно упрощая этот процесс — достаточно нарисовать GUI в редакторе, а потом простым щелчком по кнопке или другим управляющим элементам дописать код.

В итоге получилась скрипт-утилита позволяющая:

  • Добавить портовую группу на все ESXi хосты в конкретный vSwitch
  • Удалить портовую группу со всех хостов с конкретного vSwitch
  • Добавить новый vSwitch с указанным MTU на все хосты
  • Удалить vSwitch со всех хостов
  • Проверить целостность: на всех ли хостах портовые группы одинаковы?

Плюс некоторые дополнительные плюшки:

  • Включить/выключить SSH на каждом хосте
  • Включить/выключить предупреждение о запущенном SSH на каждом хосте

Делать все это вручную на каждом хосте не только утомительно, но и довольно бестолково. Конечно, можно использовать host profiles, но для этого нужно переводить каждый хост в maintance mode. Да и те кто работали с host profiles могут подтвердить, что процесс применения профиля совсем не быстрый.
Примеры кода, и сама утилита под катом.
Читать полностью »

Многие менеджеры в приватных беседах жалуются на сотрудников. Вроде бы и знающие специалисты, а работу не работают. Более того — часто отнимают время у тех, кто таки работает. Хоть увольняй.
Многие родители жалуются на что-то подобное в отношении детей. И тут уволить уже нельзя.
И сотрудники, и дети, часто действуют похожими способами. Реализация разная, а виды действий — схожие:

  • Привлечение внимания
  • Борьба за власть
  • Месть и личные нападки
  • Беспомощность

image
У каждого из этих видов есть свои формальные признаки и стандартные лекарства.
Читать полностью »

Данная статья посвящена опытным верстальщикам и неопытным дизайнерам. Первым она понадобится, чтобы тыкать в неё носом вторых, вместо того, чтобы долго объяснять, что такое жизнь в черном квартале как правильно подготовить макет под верстку.

Зачастую верстальщики, громко матерясь, рвут на голове волосы, после того, как увидят присланный на верстку макет. А все потому, что дизайнеры забывают о том, что макет нужно не только дизайнить а в дальнейшем еще и верстать. В итоге на выходе получается в лучшем случае «немножко не то», в худшем — «никому не говорите, что это сделал я». Как избежать подобных инцидентов, читайте под катом.
Читать полностью »

Данная статья посвящена опытным верстальщикам и неопытным дизайнерам. Первым она понадобится, чтобы тыкать в неё носом вторых, вместо того, чтобы долго объяснять, что такое жизнь в черном квартале как правильно подготовить макет под верстку.

Зачастую верстальщики, громко матерясь, рвут на голове волосы, после того, как увидят присланный на верстку макет. А все потому, что дизайнеры забывают о том, что макет нужно не только дизайнить а в дальнейшем еще и верстать. В итоге на выходе получается в лучшем случае «немножко не то», в худшем — «никому не говорите, что это сделал я». Как избежать подобных инцидентов, читайте под катом.
Читать полностью »

Как я с компьютера на Androide потоковое торрент видео смотрел

Здравствуйте уважаемые Хабрачане!
Небольшая предыстория:
Меня давно интересовала возможность стриминга видео с домашнего компьютера на мой андроид планшет.
Не долго лазя по маркету нашел такое приложение как VLC Direct Pro Free, которое прекрасно справлялось с поставленой задачей (хоть и были косяки, но не смертельные), теперь я мог находясь даже далеко от дома, с относительно быстрым WI-FI соединением просматривать свою домашнюю медиатеку. (Компьютер включал благодаря WOL и управлял им с помощью PhoneMyPC) Пересмотря все что у меня было на жестком диске начал задумываться, а можно ли передавать torrent-поток на планшет? Разумеется, можно было просто удаленно поставить фильм на загрузку и подождать, но такой вариант меня совершенно не устраивал. Не найдя в интернете ничего по этой теме начал самостоятельно искать такой способ, и нашел, возможно, не совсем элегантный, но тем не менее рабочий, быть может кому-то еще пригодиться.
Читать полностью »

Как я с компьютера на Android планшете потоковое торрент видео смотрел

Здравствуйте уважаемые Хабрачане!
Небольшая предыстория:
Меня давно интересовала возможность стриминга видео с домашнего компьютера на мой андроид планшет.
Не долго лазя по маркету нашел такое приложение как VLC Direct Pro Free, которое прекрасно справлялось с поставленой задачей (хоть и были косяки, но не смертельные), теперь я мог находясь даже далеко от дома, с относительно быстрым WI-FI соединением просматривать свою домашнюю медиатеку. (Компьютер включал благодаря WOL и управлял им с помощью PhoneMyPC) Пересмотря все что у меня было на жестком диске начал задумываться, а можно ли передавать torrent-поток на планшет? Разумеется, можно было просто удаленно поставить фильм на загрузку и подождать, но такой вариант меня совершенно не устраивал. Не найдя в интернете ничего по этой теме начал самостоятельно искать такой способ, и нашел, возможно, не совсем элегантный, но тем не менее рабочий, быть может кому-то еще пригодиться.
Читать полностью »

О софистике (софизмах) в дискуссиях и об ООП

Поскольку писать комментарии в режиме «read-only» не положено, снова рискну написать в песочницу.

Вступление

Читая хабр, споткнулся об один из комментариев. Вернее сказать, споткнулся о цитату в этом комментарии:

«Я уверен, что ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой.
Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле».
(с) Александр Степанов, со-автор C++, автор STL

Перед тем, как перейти к сути этой заметки (а точнее — к анализу приведенной цитаты Степанова), также хочу вспомнить небольшую статью с провокационным анонсом («софистика — это математика для жуликов»), которая как-то попалась мне на глаза в глянцевом журнале (что само по себе уже странно; нечасто удается в таких журналах на что-то обратить внимание). Электронная версия здесь. Далее я буду ссылаться на термины из этой статьи, поэтому рекомендую ознакомиться.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js