Pull to refresh
  • by relevance
  • by date
  • by rating

SkypeTab — вкладки для линуксового скайпа. Теперь под любые оконный менеджер и панель

Configuring Linux *
Устарело, см. свежую версию тут.

  • Если Вы не пользуетесь Linux или Skype, то этот пост не для Вас.
  • Если Вы настроили себе мост в Pidgin и теперь все 3.5 скайпоконтакта у Вас в этом списке, то этот пост не для Вас.
  • Если Вас устраивает то, как скайпоокна группирует KWin, и не смущает тот факт, что они как в таскбаре место все дружно занимали, так и занимают, то этот пост тоже не для Вас.
А вот если Вы активно пользуетесь скайпом, активно переключаетесь между несколькими конфами и хотите удобного нативного интерфейса, то рекомендую всё же ознакомиться.



Когда я разрабатывал предыдущую версию, я упёрся лбом в стену. Все попытки поправить косяки упирались в «умные» оконные менеджеры, лучше меня знающие, где должны находиться окна, и в кривые утилиты таскбара (да-да, gnome-panel в их числе), игнорирующие SKIP_TASKBAR_HINT, если он не был установлен до появления окна на экране. Знаете, я тогда сдался.

Но на прошлой неделе на переходе в метро меня кто-то толкнул и я полетел вниз с лестницы. В нижней точке полёта, в момент удара лбом в стену, в тот чудесный миг, я осознал, что никакой стены на самом деле нет. Нет, мне потом в больнице рассказали, что стена на самом деле была, причём даже бетонная. Но я сейчас про ту метафорическую стену из предыдущего абзаца.
Читать дальше →
Total votes 119: ↑111 and ↓8 +103
Views 1.2K
Comments 88

Watchdog для репликации в PostgreSQL 9

PostgreSQL *
Приветствую. Хочу поделиться одним самописным костылём, авось кому-нибудь будет полезен.

Коротко о главном


Моделируем ситуацию: есть кластер PostgreSQL-серверов — мастер и n-реплик. Наступает черный день и одна(или несколько) реплик падает. Причины неважны — сдохла железка, уборщица перебила шваброй провод или НЛО временно зохавало серверную. Итог один — если реплика долго лежала, то сама она уже никогда не нагонится.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views 3.4K
Comments 8

Много текста про практику работы с PHPUnit/DbUnit

PHP *
Доброго времени суток, друзья!
Хочу поделиться опытом по борьбе с PHPUnit/DbUnit в связке с MySQL. Далее небольшая предыстория.

Краткая предыстория


В процессе написания одного веб-приложения возникла необходимость тестировать код на PHP, интенсивно взаимодействующий с БД MySQL. В проекте в качестве фреймворка модульного тестирования использовался порт xUnit — PHPUnit. В результате было принято решение писать тесты для модулей, непосредственно взаимодействующих с базой, подцепив плагин PHPUnit/DbUnit. Дальше я расскажу о тех трудностях, которые возникли при написании тестов и о том, каким способом я их преодолел. В ответ же хотелось бы получить комментарии знающих людей относительно корректности моих решений.
Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Views 22K
Comments 31

Необычный баг WebKit с CSS селектором

CSS *
Многие веб-мастера для придания оформления ссылкам, используют css селекторы вида [href^=”http://somedomain”], чтобы ссылки на определенный адрес по разному оформлялись не используя классы.
В одной админке использовал такой селектор, для придания иконки ссылке в зависимости от url. Однако у себя на Google Chrome 17 столкнулся с багом, что иконки у всех ссылок одинаковые. Во всех остальных браузерах(В том числе и в IE8 и Safari 5.1), все нормально. Ниже скриншот с простейшим примером.


Читать дальше →
Total votes 56: ↑46 and ↓10 +36
Views 2.3K
Comments 19

Изменение размера виджета в Android 4.1 Jelly Bean

Development for Android *
Как стало известно — в новой версии Android Jelly Bean (API v16) появилась возможность изменения размера виджета, да не просто изменения, а автоматического, который теперь подстраивается под свободное место на экране.
Функция удобная и полезная, но в официальной документации про это почти ничего нету, что довольно странно.

Так как я разрабатываю несколько виджетов, то решил добавить данный функционал.
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Views 15K
Comments 10

Тонзиллэктомия ректально: работаем с AD в Powershell без AD cmdlets

PowerShell *
В Windows Server 2008 впервые появились замечательные командлеты PowerShell для работы с ActiveDirectory. Эти прекрасные, логичные, интуитивно понятные и чрезвычайно мощные инструменты вызывали у меня чувство грусти, если не сказать — «досады»: они были недоступны мне, эникейщику непрофильной конторы. Все одиннадцать сетей, которые я обслуживал были построены на базе Windows 2003 R2.

Одиннадцать несвязанных доменов в одиннадцати несвязанных сетях в разных городах, разбросанных по Дальнему востоку. И ни в одной из них — ни то, что «Семёрки», даже «Висты» нет, что ставит крест на попытках использования AD cmdlets в связке с две тысячи третьей.


Задача была сформулирована следующим образом — «создать код, способный выполнять основные операции по управлению AD из сценариев PowerShell, исполняемый в Windows XP / 2003». О том, как она была решена, читайте под хабракатом (осторожно, костыли; много текста и кода).
Из спичек и желудей соберем код для управления AD
Total votes 38: ↑27 and ↓11 +16
Views 18K
Comments 13

Библиотека для обмена событиями, данными и задачами между вкладками браузера

JavaScript *
Приветствую, уважаемое Хабрасообщество!

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

Сейчас библиотека выложена с парой примеров на GitHub, а под хабракатом хотелось бы осветить некоторые тонкости её применения и часть внутренней логики. Буду рад, если моя библиотека поможет кому-то сэкономить n-ое количество времени и позволит избежать изобретения собственного велосипеда.

Кому интересно — добро пожаловать под кат.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views 19K
Comments 16

Анекдот о том, как я GRUB2.0 в BURG превращал или Самогон можно гнать даже из табурета

Configuring Linux **nix *
Это маленькая ерунда, которая в студенческое время помогла мне избежать сборки и подтягивания зависимостей BURG для хомячковой бубунты, получив горизонтальное графическое меню выбора системы.
Никаких крутых тем тогда не было и меню выбора даже в графическом варианте было только вертикальное.

Введение какое-то, что ли

Какое-то время назад я долго заглядывался на BURG. В меню загрузки у меня стоял православный «консольный» GRUB 1.99 с рсх-ным (если не вру) самолетиком на фоне. Но как только я увидел гладкое, многопиксельное графическое меню BURG, я сразу его захотел. На том все и кончилось: для того конкретного дистрибутива Linux, которым я тогда пользовался, сборки не было, а попытка собрать из исходников несколько раз упала из-за все новых и новых неразрешенных зависимостей. Мне стало грустно и лень.

Но вот совсем скоро вышел GRUB 2.0. Радости были полные штаны, ведь там тоже уже было красивое меню «скартинками», без всяких насадок в виде BURG. Как горный козел, я поскакал ставить обновку и «вышивать в ней перед зеркалом», предав идеи брутальных консольных мачо, смотрящих фильмы прямо из нее родимой (рисуя оверлей через fbdev). Но тут внезапно меня ждало огорчение. Почему-то я с самого начала прикипел душой к горизонтальным меню. Как на тех пошлых картинках из интернетов, где в рядок стояли какие-то убунты, макось и виндось. А новый блестящий граб предлагал только вертикальные, хоть и всех цветов и оттенков.
Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Views 8.6K
Comments 7

Обходим ошибки утилит из пакета GNU Core Utilities

Configuring Linux *System administration **nix *
Sandbox
TerminalПакет coreutils предустановлен во многих дистрибутивах Linux. Он содержит в себе стандартные и такие привычные утилиты, как cat, chmod, date, echo, ls и многие другие. Но даже в таком каноническом пакете встречаются ошибки, которые могут помешать работе пользователя. С одной из них я столкнулся на собственном опыте и хочу рассказать о том, как смог её обойти.
Читать дальше →
Total votes 34: ↑14 and ↓20 -6
Views 6.4K
Comments 40

Динамическое добавление свойств в языке Java

Java *
Disclaimer

Инструмент родился как способ побороть недочеты проектирования малой кровью. Я с трудом могу представить ситуацию, где использование инструмента могло бы быть продиктовано иными причинами.
Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Views 9.2K
Comments 4

Tor Browser без Tor

Information Security *
Tutorial


Tor Browser — сборка из Tor, Firefox и других полезных утилит, заточенная под анонимный серфинг. Трафик пользователя проходит через анонимную сеть Tor, а браузер настроен так, чтобы оставлять на сайтах как можно меньше следов (куки, время, разрешение экрана и ещё длинный список).

Так уж получилось, что не всегда есть возможность и необходимость пропускать трафик браузера через Tor, но хочется сохранить защиту от слежки, которую не предоставляет обычный браузер. Такая ситуация может возникать по разным причинам: сайты, блокирующие подключения из Tor (редиски!), плохое подключение к сети, из-за которого жизнь за Tor становится совсем медленной.
Кастрировать Tor Browser
Total votes 23: ↑18 and ↓5 +13
Views 28K
Comments 10

Локализация своих скриптов на BASH

Delirium coding System Programming *Development for Linux *Lifehacks for geeks

Создание меню на BASH — задача сама по себе не сложная: "case тебе в руки и echo в спину". Решая её в очередной раз, мне захотелось добавить возможность отображать текст на других языках. Осталось решить, как сделать сам процесс локализации меню более удобным. Если оно большое, то решение "в лоб" превратит его в громоздкую копипасту. Здесь я хотел бы поделиться тем, как решил эту проблему для себя. Надеюсь, для кого то это будет небезынтересным.



Чтобы статья не вылилась в скучную простыню с излишком кода, решил разбить её на две части. В первой рассмотрим создание и добавление дополнительных языков. Во второй — создание многоуровнего меню и сохранение настроек


Примечание:

Я вполне понимаю и принимаю, что существуют и другие языки программирования. Как когда-то кто-то сказал здесь на Хабре — если при написании скрипта на BASH возникает необходимость хоть в одной функции, то лучше взять нормальный язык. Я с этим согласен, но иногда, как говорится, хочется, потому что хочется.


Мне не хотелось бы разбивать скрипт на несколько частей и хранить локализацию в отдельных файлах. Скрипт тем и удобен, что его проще использовать одним файлом. Поэтому тексты будем хранить в массивах.


Реализация будет состоять из:


  • буквенного кода языка
  • массива слов
  • преобразователя косвенных ссылок для обращения к массиву
  • обращения к элементам массива
  • создания меню

Теперь рассмотрим подробнее

Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Views 3.3K
Comments 9

Локализация своих скриптов на BASH, часть 2

Delirium coding System Programming *Development for Linux *Lifehacks for geeks
Tutorial

Это продолжение статьи Локализация своих скриптов на BASH. В ней мы используя массивы и косвенные ссылки, научились добавлять в свои скрипты дополнительные языки и переключаться между ними.

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

Читать далее
Total votes 17: ↑15 and ↓2 +13
Views 2.9K
Comments 0