pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Стоит ли изучать TypeScript?

Лучший ответ: Если вам лично нравится, то используйте для своих проектов. Для работы стоит учить, только если вы вливаетесь или организовываете команду где уже во всю пишут или планируют на нем писать. В остальном я тоже склоняюсь в сторону ES2015. Если уж что-то учить в первую очередь, то будущее языка JavaScript, а уж потом всё прочее.

Худший ответ: TypeScript хорош тем, что является надстройкой над ES2015 (и поддерживает здоровую часть нужных фич оттуда, и эта совместимость будет только увеличиваться). Вполне возможно, что в ES2016/17/18 введут необязательные type hint'ы, и взяты они будут из TS.
Вопрос: Почему не срабатывает reject?

Лучший ответ: resolve/reject нужно возвращать, а так у вас все проваливается вниз до ризолва

Худший ответ: resolve/reject нужно возвращать, а так у вас все проваливается вниз до ризолва
Вопрос: Отношение разработчиков к именованию директорий с точкой и передачи ЧПУ переменных?

Лучший ответ: 1) Директории, начинающиеся с точки (или заканчивающиеся тильдой) я обычно запрещаю в конфиге сервера, на всякий пожарный.

2) лучше сделать так, чтобы легко воспринималось человеком, например /abouts-us или /offers?sort=-date&page=120 или /offers/by-date/120. Нет смысла, в том числе с т з SEO, присваивать разным вариантам одной и той же страницы уникальные УРЛы без параметров. Этим вы только замусориваете индекс и снижаете эффективность поиска.

Худший ответ: .ru/value1_var1/value2_var2/

а зачем такое? ведь и так:

/product/phone/siemens/2000/

это

/value1/value2/value3/value4/
Вопрос: Как найти программистов, которые заинтересованы в практике разговорного английского?

Лучший ответ: Вещай на LiveEdu.tv.

Худший ответ: Ну на upwork'овском форуме и искать. Там же есть сообщество.
Я бы тоже поучаствовал, да не общительный я по жизни и не сильно программирование знаю :)
Вопрос: Терминал в mac os x el capitan не хочет менять права у файла?

Лучший ответ: отключите sip:
через recovery boot - blog.binaryage.com/el-capitan-update внизу страницы
добавлением rootless=0 в boot args - kb.parallels.com/en/123072

Худший ответ: Копать в сторону lsattr/chattr
Вопрос: Что важнее: SSD или ОП?

Лучший ответ: Добавь памяти, она дешевле. Как будет больше денег - добавь ССД.

Худший ответ: Как минимум память, если она сильно загружена, тем более, что в нее кешируются и дисковые операции.
Есть еще вариант, купить памяти +2Гб и еще один жесткий диск. Сделать из двух дисков raid1. И если у вас операций чтения сильно больше, чем записи, то получите неплохую прибавку по скорости.
Вопрос: Как написать LINQ запрос?

Лучший ответ: Если имена через запятую, то разбивать нужно по запятой:movies.Where(x => x.Actors.Split(',').Contains(movieActors));
С проверкой на пустоту:movies.Where(x => !String.IsNullOrEmpty(x.Actors) && x.Actors.Split(',').Contains(movieActors));
Альтернативный вариант:movies.Where
(
  x => 
  !String.IsNullOrEmpty(x.Actors) &&
  x.Actors.Split(',').Any((actor) => actor.Equals(movieActors))
);
Еще один:movies.Where(x => !String.IsNullOrEmpty(x.Actors) && x.Actors.Split(',').IndexOf(movieActors) != -1);
Если имена содержат пробелы, еще более ресурсоемкий запрос с удалением пробелов будет примерно таким:movies.Where
(
  x => 
  !String.IsNullOrEmpty(x.Actors) && 
  x.Actors.Split(',').Select(a => a.Trim()).Any((actor) => actor.Equals(movieActors))
);
При ошибке: does not recognize the method 'System.String[] Split(Char[])'
вероятно придется получить данные (в массив):movies.ToList().Where
(
  x => 
  !String.IsNullOrEmpty(x.Actors) && 
  x.Actors.Split(',').Select(a => a.Trim()).Any((actor) => actor.Equals(movieActors))
);
Плохое решение, лучше структуру данных поменять, хранить актеров в нормальном виде, чтобы не приходилось их разбивать на массивы. Вариант поиска подстроки наиболее хорош в плане производительности: movies = movies.Where(x => x.Actors.Contains(movieActors));

Худший ответ: Спасибо за помощь, но во всех случаях выходит ошибка при поиске. Ошибка такая же как и моём третьем варианте. 
LINQ to Entities does not recognize the method 'System.String[] Split(Char[])' method, and this method cannot be translated into a store expression.
Возникает при возврате значения
return View(movies.ToList().ToPagedList(pageNumber, pageSize));
Вот сам методpublic ActionResult Index(string movieTitle, string movieGenre, string movieActors, int? page)
        {
            int pageSize = 10; int pageNumber = (page ?? 1); //Настройки постраничной навигации (кол-во страниц/страница по умолчанию)

            var movies = from m in db.FilmsTables
                         select m;

            if (!string.IsNullOrEmpty(movieActors))
            {
                //movies = movies.Where(x => x.Actors.Contains(movieActors));
                //movies = movies.Where(x => arr.Contains(movieActors));
                //movies = movies.Where(x => x.Actors.Split(' ').Contains(movieActors));    

                movies = movies.Where
                (
                  x =>
                  !String.IsNullOrEmpty(x.Actors) &&
                  x.Actors.Split(',').Select(a => a.Trim()).Any((actor) => actor.Equals(movieActors))
                );
            }

            return View(movies.ToList().ToPagedList(pageNumber, pageSize));
        }
Вопрос: Как восстановить данные после git reset --hard?

Лучший ответ: Очень наврядли, если бы вы просто удалили много файлов, тогда ещё ладно, а вы изменили кучу рядом лежащих файлов, что, скорее всего, перетёрло прошлые изменения на харде.
У меня на такие случаи вся рабочая папка с репозиториями ещё и в дропбоксе лежит, а некоторые папку .git тоже отедбльным репозиторием делают :)

Худший ответ: указание флага --hard делает команду reset опасной, гит на самом деле удалил данные. 
Думаю есть несколько вариантов:
1)найти компьютер где ещё остались данные до ресета и сделать с этими данные что вам надо
2)попробовать востановить данные с помощью ПО
Вопрос: Как ведет себя iOS5 на iPad 1?

Лучший ответ: отлично работает, у меня нареканий нет.

Худший ответ: По ощущениям немного медленнее, но не критично. Плюсов больше.
Вопрос: Насколько нужно знать java для Spring Framework? И зачем нужна java EE?

Лучший ответ: Нужно знать Java SE + Servlet API (это уже из Java EE).
Spring дает все те же возможности (IoC и DI, транзакции и.д.) что и Java ЕЕ, только проще в использовании и не нужен сервер приложение (jboss, glassfish), достаточно tomcat или jetty.
Java EE это набор спецификаций и интерфейсов, который реализуют производители серверов приложений (jboss, glassfish). Spring - как простая альтернатива.

Худший ответ: На сколько нужно знать английский язык, что бы читать Шекспира в оригинале?
Вопрос: Чем WooCommerce хуже Prestashop?

Лучший ответ: Начнем с того, что WooCommerce - это WP плагин. А WP - блоговая CMS. Да, я знаю, на WP можно построить любой сложности сайт, но эта система базируется как блоговая. И давайте будем честны с этим.
Отсюда вопрос: "Вы сравниваете блоговую CMS с плагином интернет-магазина с изначально заточенной под интернет магазин PrestaShop, которая, к тому же, полностью заряжена из коробки?"
И чуть не забыл... WP + WC (а там по-любому еще плагинов повесите) будет жрать еще больше, чем PS. Поэтому нужен будет более мощный сервер.

Худший ответ: Добавлю к ответу Sanes  - часто нужно не только магазин, но и что-то еще.
Причем это может быть, как блог, так и какой-то внутренний функционал в системе.
Так что лучше идти от задачи и смотреть что лучше подходит к решению.
Вопрос: Как писать тесты?

Лучший ответ: Ну тесты бываю разными: и зелеными и красными. ))
Все зависит от уровня абстракции, который хочется протестировать. Поэтому тесты и делятся на всяческие классификации. Например: юнит (модульные) тесты, интеграционные тесты и т.д. и т.п.
Я как ярый сторонник BDD использую два типа тестов feature (читай интеграционные тесты) и spec (читай юнит тесты)
Итак, features. Берем Behat и херачем кучу тестов по типу:
 Зашел на  главную,
 Потыкал чего-то в форме регистрации
 Зашел в профиль и увидел свое имя и фотку на странице
 Profit!
Вот в целом и получили: "Непосредственно регистрация с занесением в БД", только в этой ситуации нам абсолютно не важно что там в БД. Нам важно чтобы пользователь зарегистрировался и попал в закрытый раздел сайта.
Для таких тестов  хорошо иметь поддержку окружения (prodaction, development, test) в коде, чтобы например можно было капчу отключить или еще какую сложную лабуду не делать.
Если система замудрена до ужаса придется здесь для тестов все окружение поднимать. А лучще вообще отдать CI такое делать пусть друг трудится.
Плюс таких тестов например когда пишем сложный фронт - сложный бек  и еще более сложнейший бек-бек, то можно одним чохом протестировать работу всего сервиса.
Следующий уровень абстракции spec:
Если нам в интеграционных тестах было немного пофиг на БД. Она как бы пишет, но что так за структура абсолютно пофиг. То в случае со спекими нам ВАЩЕ ПОФИГ.
Мы берем наш класс (функцию) и проверяем что за результаты она отдает.  Вместо объектов, с которыми подопытный (объект тестируемого класса), даем ему резиновую бабу (моки и т.п), и смотрим на результаты нашего труда.
Главное при том и другом подходе нам без разницы, что у нас в кишках мы всегда тестируем публичные свойства системы. В первом случае это реакция на пользователя, во втором публичное API класса.
Вот как то так!
P.S  тесты надо бы писать до кода.

Худший ответ: Ну вообще под тесты часто заводится отдельная бд, которая заполнена либо тестовыми данными, либо является клоном данных с рабочего сервера, либо заполняется данными перед выполнением теста и очищается после. 
Ну а с остальными случаями возможны разные варианты решения. Кого-то устроит просто true, которое вернули из PHPmailer::send(), но можно и получать по POP3 новые письма с ящика, на который отправляли, и ждать прихода нужного, с отвалом с непройденным тестом по таймауту. Зависит от вашего конкретного случая
Ну и разумеется у тестов проекта (не отдельной библиотеки, которая с данными не работает) будет сильная завязка на структуре бд, и при сильном изменении ее структуры/кода связанного с ней тесты упадут, и нужно будет их переписать, ровно как и связанный с ними код, для того они и нужны )
Вопрос: Каких приложений вам нехватает на андроид?

Лучший ответ: «Как заработать деньги?»

Худший ответ: Лично мне иногда не хватает каталога продуктов, который я бы заполнял.
Use case: приходишь в магазин, видишь полку с апельсинами, а какой сорт лучше не помнишь, открываешь приложение, а там твои же заметки, а-ля: «Морокко не очень», «Турция — ок!», ну и так далее. С фотками, раскраска по оценке (банально 3хбальная шкала — вкусно, средне, покупать не стоит), опционально — штрихкод.
Держать в голове 20-25 (средненедельная корзина) x 5 вариантов трудновато.
Уже подумываю сам написать такое :)
Вопрос: Как подключать классы?

Лучший ответ: третий вариант, потому что первые 2 уже были в проекте на ранних этапах разработки и плохо себя зарекомендовали.

Худший ответ: Дополню Дмитрий Энтелис 
Автолоадер не обязательно должен на неймспейсы ориентироваться. Создайте список 'ClassName' => 'FilePath' и используйте его в автолоадере.
Вопрос: Порекомендуйте интернет маркетологов, которые могу качественно поднять конверсию?

Лучший ответ: идете в это топик
searchengines.guru/showthread.php?t=916600
каждая вторая морда с регистрацией до 2010 года  - ваш кандидат
изучайте его посты/темы и связывайтесь
за многими там тоже стоят фирмы, но, по крайней мере, пообщавшись, сложите впечателние непосредственно, а не через менеджера

Худший ответ: любая из компаний, кто занимается маркетингом это предоставляет. Вопрос - качества.
Расписали бы подробнее, глядишь и посоветовали бы что.
Вопрос: Удаленно отключить верстку через javaScript?

Лучший ответ: Демонстрируйте работу только на своем сервере до полной передачи оплаты.внедрить JS код с помощью которого можно будет отключать версту на сайте. 
И как вы его после оплаты удалять собираетесь? 
Скажете - Извините я вам бекдор поставил, сейчас уберу?

Худший ответ: причем тут GET и POST, это запросы клиент-серверные, если у вас нет доступа к серверу заказчика то верстку вы ему никак не поломаете.
Вопрос: Выбор языка программирования для решения задачи?

Лучший ответ: Всё что связано с математикой -  Python.

Худший ответ: Пишите на том что лучше знаете, такое можно сделать почти на любом языке
Вопрос: Как создать скрытое мобильное приложение только для сотрудников?

Лучший ответ: На iOS - TestFlight  или b2b, на Android - Google Play Beta.

Худший ответ: Про iOS: Посмотрите здесь, если владеете английским: Private iOS app
Я в свое время использовал вариант Ad Hoc c over-the-air (файл с приложением лежал по ссылке).
Кстати, изучите поподробнее возможность фоновой работы iOS приложений.
Вопрос: Теори вероятности через игральные кости?

Лучший ответ: Эм. Вообще интересно было бы, конечно. Но каждый хорошо разбирающийся в этом предмете человек знает, что предмет называется не «теория вероятности», а «теория вероятностей». Из-за этого возникает вопрос достаточно ли хорошо вы знаете этот предмет, чтобы писать свой курс о нём.

Худший ответ: Может быть сразу подскажите упрощённый способ вставки формул в посты?
Вопрос: Чем открыть файл tvs?

Лучший ответ: тимвьюером

Худший ответ: Нашел инструкцию
Чтобы записать сеанс, выполните следующие действия:
1. Во время сеанса, который необходимо записать, в окне «Удаленное управление»
выберите Дополнительно | Запись | Начать.
2. Для завершения записи в окне «Удаленное управление» выберите Дополнительно |
Запись | Стоп. Или же завершите сеанс TeamViewer.
→ Если папка назначения не выбрана, появится диалоговое окно с предложением
выбрать место сохранения файла.
Для воспроизведения записанного сеанса выполните следующие действия:
1. На панели меню в главном окне TeamViewer выберите Дополнительно |
Воспроизвести или конвертировать записанный сеанс... .
→ Откроется диалоговое окно Windows Открыть.
2. Выберите нужный файл.
3. Нажмите кнопку Открыть.
→ Выбранный клип будет воспроизведен в TeamViewer. Вам будет доступен обычный
набор опций для воспроизведения видеофайла
Вопрос: Jquery якорь, как сделать правильно?

Лучший ответ: дай ссылке класс, например page-scroll + ссылкам добавляешь аттрибут data-scrollid="a2" (к какому блоку будет прокручиваться)
не проверял, но должно работатьQuery(".page-scroll").click(function() {
    pagcenter();
    jQuery('html, body').animate({
      scrollTop: jQuery( '#' + $(this).data("scrollid") ).offset().top
    }, 1000, 'swing');
  });

Худший ответ: <a href="#test" class="page-scroll" data-scrollid="a1">test</a>
<h3 id="test" data-scrollid="a1">test</h3>
Я правильно сделал? Что-то не заводится.
Вопрос: Как правильно масштабировать nodejs-приложение с помощью cluster?

Лучший ответ: Здесь проблема в том, что для всех процессов свои глобальные переменные, а нужно их как-то обобщить, если один процесс что-то изменяет в глобальных переменных - то это изменение должно продублироваться для всех процессов.
Горизонтальное масштабирование в первую очередь предполагает возможность развернуть приложение на N количестве физически удаленных компьютеров. Соответственно вы не можете изменить что-то локально таким образом чтобы при этом оно продублировалось для всех процессов на всех удаленных машинах. Увы, но магии не существует. Чтобы это было возможным, требуется реализовать какой-нибудь механизм межпроцессного взаимодействия. Один из них вы уже назвали - использовать для этих целей redis.
Но ваша проблема в другом. В архитектуре. Её нет. Код выше - это спагетти-код. Поэтому вы думаете, что вам нужно это если один процесс что-то изменяет в глобальных переменных - то это изменение должно продублироваться В действительности если заняться рефакторингом кода, очень скоро может выясниться, что вам это было не так уж и нужно да и вроде как глобальные переменные были не особо нужны.
Вообще наличие большого количества глобальных переменных - это один из показателей плохого кода.
Вы можете продолжать городить костыли и накапливать технический долг сохраняя глобальное состояние в redis или прокидывать данные из дочерних процессов в мастер-процесс и наоборот (благо в node.js есть для этого инструменты), но все же лучше начать что-то изучать из области архитектурных решений в вебе (и в javascript в частности) и смотреть код других крупных проектов и желательно не только в javascript.
Думайте над архитектурой. Начните с того, как сделать так, чтобы отпала нужда в этих диких манипуляциях с глобальными переменными.

Худший ответ: Всё можно гораздо проще сделать, посмотрите в сторону PM2
pm2.keymetrics.io/docs/usage/cluster-mode
Вопрос: Как сделан эффект при наведении на данном сайт?

Лучший ответ: Очень сложно сделан

Худший ответ: Я не web-программист, но на DirectX такое сделать можно. Видна сетка треугольников (mesh), на неё натянута текстура. Видел два подхода: первый - распространение волн (книга Франка Луны DirectX) и связь узлов пружинами (Джим Адамс, DirectX: продвинутая анимация).
Вопрос: Как вы живете с большим количеством открытых вкладок браузера?

Лучший ответ: Никогда не любил обилие вкладок. Пользуюсь плагином в Мозилле "Speed Dial":
1. Создаю много тематических групп
2. По мере надобности накидываю в группы ссылки
3. Как ссылка не нужна - очищаю.Мой метод избавит Вас полностью от всех Ваших проблем:
- не жрет память
- не забывается - список перед глазами всегда
- при необходимости будет открыто то, что будет применено в ближайшее время
- всё всегда под рукой и перед глазами, а следовательно не потеряете и не отложите в совсем долгий ящик

Худший ответ: Если вкладок много, раскидываю их по разным окнам браузера (drag & drop).
Если выхожу, запускаю скрипт, сохраняющий ссылки с заголовками в текстовый файл.
А потом эти ссылки уже открываю через C-c C-o, прицепленное через init-key-bindings.el(global-set-key (kbd "C-c C-o") 'browse-url-at-point)
:))
Вопрос: Как выводить ответ systemctl в терминал?

Лучший ответ: Показать с каким кодом завершилась предыдущая командаecho $?
0 - OK
1 - ERROR
Показать что вообще творится с сервисом, кусок логовsystemctl status <servicename>

Худший ответ: Хо-хо. Тоже очень недостает нормального вывода в systemd при рестарте.
Гуглил в свое время, вывода аналогичного старому инету нигде не увидел для systemd
Использую systemctl status для того, что бы посмотреть по итогам. Костыль, но иного решения не нашел, когда искал, может кто подскажет сейчас нам обоим, а если нет, то делайте, как я.
Вопрос: Как выполнить действие через промежуток времени, который может измениться?

Лучший ответ: Можно использовать функцию time. AfterFunc для запуска функции после определенного промежутка. Она возвращает таймер. Если произошел еще один запрос, то текущий таймер останавливать с помощью Stop и создавать такой же новый.

Худший ответ: Было решено сделать сессию полноправным объектом (до этого было просто поле с временем последнего действия) с методом Close:func (s *Session) Close(timeout time.Duration) {

	d := s.LastActionTime.Add(timeout).Sub(time.Now())
	for d > 0 {
		time.Sleep(d)
		d = s.LastActionTime.Add(timeout).Sub(time.Now())
	}
	// Closing the Session
}
Вопрос: Как сделать таймер чтобы при перезагрузки страницы он не сбивался, без cookie?

Лучший ответ: Очевидно возвращать время с сервера.

Худший ответ: а можно код, как это локально организовать?)
Вопрос: Как сделать интерактавную имитацию биржевого графика?

Лучший ответ: Может подойдет:
www.highcharts.com/stock/demo/dynamic-update
www.highcharts.com/demo/dynamic-update

Худший ответ: Делали подобные SVG + CSS + JS
Вопрос: Как лучше брать оплату за работу (фикс за объем / фикс за время / почасовая)?

Лучший ответ: Разумеется, это личное дело каждого, и каждый делает выбор для себя исходя из своего характера, индивидуальных черт и (немного) из стремления обхитрить работодателя (для работодателя естественно стремление сократить расходы, т.е. обхитрить работника).
Но лично я заметил в людях одну особенность:Сдельный вариант оплаты (в качестве работника и в качестве работодателя) выбирает люди, которые являются капиталистами в душе, потому что склоны мерить ценность человеческого труда в стоимости продуктов этого труда (в т.ч. услуг).Повременный вариант оплаты (в качестве работника и в качестве работодателя) выбирает люди, которые являются социалистами в душе, потому что склоны мерить ценность человеческого труда в объемах затраченного работником времени.
Все это, разумеется, не больше чем мои личные выводы, их истинность обсуждаема.

Худший ответ: Вы сами ответили на свой вопрос, берите фикс за объем по факту выполненной работы, хотя мне комфортнее почасовая.
Вопрос: Нужна ли статья о прозрачной миграции с Courier на Dovecot?

Лучший ответ: да. Пишите — с удовольствием почитаем!

Худший ответ: ДА! Причем нужно сейчас!
Вопрос: Есть ли готовые решения для сжатия изображений без потерь?

Лучший ответ: Начнем с того что сжатия изображений без потерь не работает для уже сжатых файлов, например jpg, png, gif, за редким исключением, когда например гиф или пнг имеют меньшее реальное количество цветов чем задано в палитре. Речь идет о сжатии с потерями, которое хотя и не портит изображение до неузнаваемости, все же вносит серьезные искажения в картинку, как в цветовом плане, так и в плане "зернистости" и "артефактов". Приемлемый уровень сжатия индивидуален для каждого отдельно взятого изображения, и чаще всего отображается в условной шкале "качества" от 1 до 10 (иногда от 1 до 100, просто шаг искажений делают меньше), где 10 - очень малая степень сжатия и высокое качество, а 1 - полный фуфел, в котором не всегда можно угадать о чем вообще картинка. Соответственно, сжать все в папке не лучший вариант, с каждым проходом и пережатием качество падает, даже не смотря на то что мы выставим максимальное качество, через N итераций мы получим фуфло в чистом виде. По этому гугл определяет отношение размера картинки в пикселях к размеру в байтах и выдает рекомендации на основе статистики, сколько примерно должна весить такая картинка, +/- , пережимать или нет. Так что я бы не стал прям вот все картинки в папке так наивно под одну гребенку.

Худший ответ: Как вариант туц
Вопрос: Что сделать, что бы macbook увидел внешний моник?

Лучший ответ: для fullhd хватит и hdmi.
пошарьтесь по квартире или соседям, возьмите hdmi-кабель и проверьте.

Худший ответ: Может что-то с кабелем не так?
Лично у меня всё заработало сразу, учитывая что я купил самый дешёвый минидисплей порт.
Вопрос: Как в С вывести несколько раз значение одной переменной?

Лучший ответ: Это делается двойным циклом. for(int i=0;i<height;i++) {

  for(int j=2;j<=height-i;j++) {
   cout<<" ";
}

  for(int j=2;j<=i+3;j++) {
   cout<<"#";
}cout<<"\n";
}

Худший ответ: Посмотрите тут - вариант с одним циклом - ru.stackoverflow.com/questions/397417/%D0%9A%D0%B0...
Вопрос: Продолжение статей про постройку квадрокоптера. Надо ли?

Лучший ответ: Лично я люблю все тому подобное, так что я за.

Худший ответ: Надо писать, сам горю желанием заняться моделированием, сейчас ману курю, весной буду детальки заказывать.
Вопрос: Надежны ли ноутбуки от HP?

Лучший ответ: Скажу так. Ноутбуки ремонтирую давно. В HP появилась тенденция экономить на системах охлаждения, в следствии чего отваливается или северный мост или видио. Вот так вот…

Худший ответ: Да, все в порядке, но охлаждение сломалось на сторам HP. Может сейчас уже учли они это.
Вопрос: Как установить бордер в 1.5 пикселя?

Лучший ответ: В фотошопе полтора пикселя отобразились бы в увеличении как 1 пиксель со 100% прозрачностью и один пиксель с 50% прозрачностью. поэтому можете сделать так:input[type="text"],textarea{
border:1px dashed #000;
outline:1px dashed rgba(0,0,0,0.5);
}
ну или что-то подобное.

Худший ответ: согласен с предыдущим оратором. еще можно заблерить или альфу изменить.
но вот работать с субпикселями не стоит совсем. это касаецо и позиционирования. не с проста pixel perfect так ценицо