pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Разбил экран на телефоне как вытащить контакты?

Лучший ответ: Поменять экран и сенсор на исправный.

Худший ответ: В статье есть описание подключения к телефону без экрана habrahabr.ru/post/220869
Вопрос: Каким путем пойти в плане изучения js фреймворков?

Лучший ответ: Продолжайте в том же духе. Вы должны научиться видеть решение до того, как возьмётесь за реализацию. Фреймворки значения не имеют. Только грамотное структурирование данных поможет написать грамотное приложение.
По моим наблюдениям общего вида - необходимо достаточно свободное манипулирование данными как на клиенте так и на сервере. И как правило достаточно трудно подобрать такую архитектуру, чтобы придуманная вами "конструкция" из связей и данных могла без сильных напрягов обрабатываться  и на клиенте и на сервере. Всегда будут проблемы.
Фрейморк ничто, грамотная структура - всё.

Худший ответ: Юзал angular много время положил на него... Он мне показался каким-то тяжелым что-ль, много всего.. хотелось что-то попроще. Angular Light попроще.
Вопрос: Что за черт творится с Ubuntu?

Лучший ответ: Нельзя так просто взять и заменить второй питон третьим. Они не совместимы.

Худший ответ: Может быть дело в этом?insiki@D-1307:~$ which python
/usr/bin/python
insiki@D-1307:~$ which python3
/usr/bin/python3
Вопрос: А расскажeте про promise и $resource?

Лучший ответ: Первое — чтобы преобразовать ангуларовский объект (в котором есть всякие одно- и двудолларовые параметры, все эти $xxx и $$xxx) в нормальный (т.н. raw json) нужно использовать стандартные ангуларовские методы из коробки:angular.fromJson(response)
и
angular.toJson(response)
Просто поковыряйте эти функции и посмотрите, что они вернут.
По поводу промисов. Когда вы вызываете какой-либо $resource-метод, например, .query(), то вам сразу же, моментально, возвращается объект с двумя параметрами — $promise и $resolved: false. После того, как ресурс получил данные, в ваш объект с двумя параметрами добавляется ещё куча данных (ну, json-данные, что вам вернул сервер), а параметр $resolved становится true.
Так вот $promise нужен тогда, когда после загрузки данных вам нужно что-то сделать :) Ведь когда вы послали запрос, вы не знаете, когда придет ответ, а $promise знает и позволяет вам что-нибудь сделать именно после загрузки. Обращаться к промису нужно так:vm.data = dataService.getData().$promise.then(success, error);

function success(resource) {
    // тут не данные в resource, а объект $resource с данными, тут можно почистить его через angular.fromJson и т.п.
}
Тут, после получения данных, ваш vm.data сразу же пополняется данными ответа (и вы там что-то выводите через ng-repeat — Ангулар там сам понимает, что выводить нужно только ваши данные, и не выводит еще два параметра $promise и $resolved, хотя они в объекте присутствуют, как вы уже в console.log вывели и убедились), а в функции success можно еще что-нибудь сделать.
Можно так же сразу и не присваивать vm.data ничего, а сначала сделать какие-то действия в success и только потом присвоить, вот так:dataService.getData().$promise.then(success, error);

function success(resource) {
    // тут не данные в resource, а объект $resource с данными, тут можно почистить его через angular.fromJson и т.п.
    // сначала что-нибудь делаем с полученными данными, а потом присваиваем их в скоуп
    vm.data = transformMyData(resource);
}

Худший ответ: прочитайте нормальную стратью про промисы
Вопрос: Аватар отправителя email?

Лучший ответ: Магией =) 
Если внимательно присмотреться - то не все почтовики показывают аватары всех других почтовиков (грубо говоря для примера, если мейл.ру показывает аватары с яндекса, то нифига не факт, что рамблер их тоже показывает). 
У каждого почтового хостинга есть некая http-ручка (стандарта на эту тему нет), в которую можно придти с ящиком и получить его аватар. Обычно, ручки закрытые для публичного доступа. Часть компаний открывает эти ручки публично и упоминает их в документации, часть компаний открывает их только по специальному запросу. 
Соответственно, поиском и показом аватарок занимается веб-морда почтового сервиса. Получить аватарки в почтовом клиенте можно только аналогичным образом - пойти в какую-то http ручку (в зависимости от домена пришедшего письма) и попробовать выдернуть оттуда аватарку. А перед этим придется разработчикам такого почтового клиента придется долго и нудно ходить по всем почтовым хостингам и просить у них доступ или адрес ручки.

Худший ответ: Пользуюсь почтовой программой Em Client, она подтягивает аватар с домена следующим образом:
/favicon.ico
/apple-touch-icon-precomposed.png
/apple-touch-icon.png
далее стучится в корень сайта и оттуда вытягивает инфу, прописанную в  и достает оттуда иконку.

По поводу остального по ссылке Как поставить фото на почту Яндекс, Gmail, Mail.ru
Вопрос: Как правильно сделать дизайн на 3 разные устройствах?

Лучший ответ: ИМХО адаптивный и быстрее и практичней. Отдельно пилить на каждый чих нет смысла.

Худший ответ: По-моему, проблема надуманная.  Рисовать для разных разрешений суть следующее:
1) берем энное количество контента
2) пытаемся красиво и в едином стиле запихнуть этот контент в три разных разрешения
Как именно это сделать - зависит от тебя, дизайнера. Можно просто по-ленивому сделать - пропорционально отмасштабить. Можно пожонглировать интерфейсом, переместить его элементы. Можно поменять интерфейс (на десктопе видим навигацию - на мобильнике видим гамбургер).
Вопрос: Pascal и PHP одновременно?

Лучший ответ: Хочешь понять логику программирования и зачем нужны функции, циклы, условия и т.д. - учи Pascal. Если поймешь эти базовые вещи то потом будет легко выучить другой ЯП. 
Если ты уже это знаешь - учи PHP или любой другой язык который ещё захочешь :)

Худший ответ: Учи Python
Вопрос: Панель управления сервером?

Лучший ответ: Webmin как ни смешно
Модули PHP во FreeBSD реализованы в виде портов/пэкэджей, ставьте хоть по одному
Статистику по трафику с графиками вам не нарисует, ибо это не система мониторинга, но сделать это можно хоть путем засовывания в крон rrdtool'а. Да, тут без вебморды для настройки этого придется обойтись, но приобретете ценный опыт ;)

Худший ответ: Посмотрите DirectAdmin: www.directadmin.com/
Вопрос: HTML5 Canvas:  почему при setTransform изображение оставляет след?

Лучший ответ: надо холст очищать вроде

Худший ответ: Все, разобрался. Обнулять setTransform надо так:ctx.setTransform(0,1,1,0,0,0);
А я обнулял как ctx.setTransform(0,0,0,0,0,0);
Забыл, как выглядит единичная матрица)
Всем спасибо, и извините за беспокойство)
Вопрос: PHP класс, система аналитики?

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

Худший ответ: Piwik как раз-таки хостится у вас
piwik.org/docs/installation-maintenance
Вопрос: Как реализовать проект PHP+NodeJS+MySQL?

Лучший ответ: Посоветую начать делать.
В вопросе каша, ничего непонятно. Что хотите узнать то?

Худший ответ: Я бы посоветовал Node.js с socket.io (для websockets) и MongoDB + Redis/Memcached (для кэша). Кэш нужен для записей к которым часто обращаются (скорее всего, это просто недавние записи), а также для вещей вроде статуса online. Вебсокеты - чтобы не мучить сервер и канал аяксом. Можно Yii, можно чистый Node.js - не так важно, потому что лучше передавать пользователю статические страницы с js, им соединяться с socket.io, и отдавать сообщения JSON-ом через свой же API.
Вопрос: Как проверить наличие строки в файле в bash скрипте?

Лучший ответ: $ grep "\## \[1\.0\.3\]" t.md 
## [1.0.3]
$ grep "\## \[1\.0\.5\]" t.md
Почему нельзя грепунть-то?

Худший ответ: У вас ошибка с использованием пайплайнов. При таком перенаправлении, у вас весь цикл while запускается в дочернем процессе, и естественно когда он завершается, переменная isString, которая была задана в дочернем процессе, в родительский не будет передана.
Можно сделать вот так:

#!/bin/bash
isString=false
while read line
do
 if [[ $line == *"## [1.0.3]"* ]]; then
    isString=true
    break
 fi
done<CHANGELOG.md
echo $isString
Ну и можно просто сократить
grep '## \[1\.0\.3\]' CHANGELOG.md
Вопрос: Где скачать Базу данных марок и моделей автомобилей?

Лучший ответ: https://github.com/X1ting/auto_parser
я тут парсер запилил, наговнокодил за 20 минут, камнями не кидайте, со своей работой справляется.

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

Лучший ответ: Вы спрашиваете или Вы советуете?
Это зависит от того кем Вы хотите работать.
Хотите заниматься фронтендом - учите javascript и верстку.
Хотите заниматься backend в веб студиях / стартапах - php/ruby/python/node.js + sql + nosql
На php работу найти быстро и просто, на всем остальном как повезет
Хотите делать веб в enterprise компаниях - java

Худший ответ: Если на веб - то фронтенд тулбокс изучать будет более логично - JS и все в этом духе.
Вопрос: Почему не работает на гигабите?

Лучший ответ: Попробуйте проверить скорость между узлами как описано в этой статье.

Худший ответ: обычное это:
 — проблемы с определением режима работы приёмопередачи (duplex и speed)
 — плохой/ не по категории патч-корд
 — слабая производимость рутера/свитча

пробуйте проверить скорость между машинами напрямую, меняйте кабель 

support.microsoft.com/kb/325487
Common causes of connectivity problems are as follows:
 * Network adapters and switch ports have mismatching duplex levels or transfer speed settings.
 * Network adapters or switches with transmission rates of 10/100 megabits per second (Mbps) do not switch over correctly. 
 * Some autosense settings may not correctly detect the speed of some network adapters.
 * The network adapter is incompatible with the motherboard or other hardware or software components and drivers.
Вопрос: Редирект для скрипткидди?

Лучший ответ: Можно выдавать страницу похожую на админку.

Худший ответ: Ничего. А зачем? Для прикола?
Вопрос: Как наиболее корректно перезапустить Linux из своей программы?

Лучший ответ: а может запускать стандартную команду ?reboot

Худший ответ: Вы можете послать сигнал init и система автоматически перезагрузится. Однако стандартными средствами (shutdown, reboot) это проще сделать.
Вопрос: Кто хочет написать скрипт для сбора статистики с первого Хабракампа?

Лучший ответ: Дешево Быстро и сердито:

 $ ./parse.sh http://habrahabr.ru/post/148795/ | column -t
Now_is:                Wed_Aug_1_00:28:55_MSK_2012
The_url_is:            http://habrahabr.ru/post/148795/
Max_"+"_is:            13                                RxB
Max_"-"_is:            30                                Gangsta
Total_comments:        721
Top_commentor_is:      49                                opium
Total_questions:       342
Total_links:           57
Most_popular_site_is:  4                                 http://twower.livejournal.com
Total_commentators:    189
Total_"+":             495
Total_"-":             101
Total_Sign:            394

Собственно сам код:
#!/bin/sh
v_temp=`mktemp`
echo -n "Now_is: "
        date | sed 's/\s\+/_/g'
echo "The_url_is: $1"
wget -q --referer="http://www.google.com" --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" -O $v_temp "$1"
sed -i '/comments_list/,/for_users_only_msg/!d' $v_temp
echo -n 'Max_"+"_is: '
        sed -n "/class=\"\(score\|username\)\"/p" $v_temp | sed 'N;s/<[^>]*>//g;s/\n//;s/^\s\++//;/^\s\+–/d' | sort -n | tail -1
echo -n 'Max_"-"_is: '
        sed -n "/class=\"\(score\|username\)\"/p" $v_temp | sed 'N;s/<[^>]*>//g;s/\n//;s/^\s\+–//;/^\s\++/d' | sort -n | tail -1
echo -n 'Total_comments: '
        sed -n '/class="score"/p' $v_temp | wc -l
echo -n 'Top_commentor_is: '
        grep username $v_temp | sort | uniq -c | sort -n | tail -1 | sed 's/<[^>]*>//g;'
echo -n 'Total_questions: '
        sed -n 's)<[^>]*>))g;/\?/p' $v_temp | wc -l
echo -n 'Total_links: '
        sed -n '/message html_format/,/^\s\+<\/div>/{s><a href>\n&>;/a href/p}' $v_temp | grep "a href" | wc -l
echo -n 'Most_popular_site_is: '
    sed -n '/message html_format/,/^\s\+<\/div>/{s><a href>\n&>;/a href/p}' mktemp | egrep -o 'https?://[^/"]*' | sort | uniq -c | sort -n | grep -v habr | tail -1
echo -n 'Total_commentators: '
        sed -n '/class="username"/p' $v_temp | sort -u | wc -l
echo -n 'Total_"+": '
        sed -n '/class="score"/{s/.*uarr;\([0-9]\+\).*/\1/;p}' $v_temp | awk '{sum+=$1}END{print sum}'
echo -n 'Total_"-": '
        sed -n '/class="score"/{s/.*darr;\([0-9]\+\).*/\1/;p}' $v_temp | awk '{sum+=$1}END{print sum}'
echo -n 'Total_Sign: '
        sed -n '/class="score"/{s/.*uarr;\([0-9]\+\).*darr;\([0-9]\+\)/\1 \2/;p}' $v_temp | awk '{plus+=$1;minus+=$2}END{print plus-minus}'
rm $v_temp
Можно применять не только к вышеназванному топику. (:

Худший ответ: А вообще по текушему html сложно определить, где вопрос, а где ответ. Это понятно только на первых двух уровнях, а потом уже кто-то может спрашивать, а кто-то отвечать. Мне кажется для Хабракампа нужна новая структура сообщений, чтоб когда пишешь сообщение, то явно указывать вопрос это или ответ.
Вопрос: VM Windows azure сколько платить придется

Лучший ответ: 1. простой уже не оплачивается.
2. Виртуалка в азуре для сайта Вам НЕ нужна, пользуйтесь готовой платформой.
3. есть калькулятор на сайте, www.windowsazure.com/ru-ru/pricing/calculator/
до 10 сайтов вроде бесплатно — в глаза бросилось, но надо вчитываться.

Худший ответ: 1. Простой это выключение ВМ? или варианты есть?
2.3. Если учесть стоимость СКЛ и трафика — то получается дороже инстанса ВМ
Вопрос: Утилита для бекапов под linux

Лучший ответ: rsync
Руководство в man rsync
Шедулер — cron

Бэкапится таким образом большой сайт ежедневно без проблем в течении почти 4-х лет (база PostgreSQL и генерируемый пользователями контент, в сумме чуть-чуть не дотягивает до 150Гб).

Худший ответ: Насколько я понял из тегов, нужно бекапить базу (ведь код в репозитории наверняка), так чем не устраивает cron + ssh + mysqldump + scp?
Вопрос: Во что переименовать хабрафуршет?

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

Худший ответ: Специалист-тред
Вопрос: Настройка nginx + php-fpm: существут папка и существует index.php

Лучший ответ: все давно делает через try files
плохой пример
 location ~ \.php$ {
<------> try_files $uri =404;
 fastcgi_pass unix:/opt/pifpm/fpmsockets/fashions.sock;
 fastcgi_index index.php;
 include fastcgi_params;

Худший ответ: Сам по себе Drupal не образец, но эта статья может Вам помочь:
wiki.nginx.org/Drupal
Вопрос: SELECT в MySQL и PostgreSQL

Лучший ответ: SELECT *
FROM table
WHERE lower(column) = 'testtest';
 или использовать ILIKE.

Худший ответ: Postgres по умолчанию сводит названия полей и таблиц к нижнему регистру. Например, если есть поле testTest в таблице my_table, то запрос SELECT testTest FROM my_table вернет ошибку, что поля testtest нет. Чтобы получить значение этого поля нужно заключать название в кавычки. Запрос SELECT "testTest" FROM my_table отработает нормально.
Вопрос: Как посмотреть вложения в Gmail?

Лучший ответ: Я себе специально для таких случаев Thunderbird установил…

Худший ответ: Я себе специально для таких случаев Thunderbird установил…
Вопрос: Как реализовать очередь объектов класса на C++?

Лучший ответ: Класс player у вас не содержит явно объявленного деструктора. В то время, как в методе void player::enqueue(int value) вы выделяете динамическую память. Скорее всего, вы поимеете утечку памяти.
Используйте умные указатели, либо напишите деструктор, который все подчистит.
Сам прототип метода void player::enqueue(int value) архитектурно не верный. Аргументом должен быть не int. В в зависимости от того, что вы в конечном итоге хотите, вам нужно реализовать либо void player::enqueue(const card&), либо void player::enqueue(card&&), либо оба сразу.
Вообще работа с сырыми указателями в C++ не самая лучшая идея. Опять таки не зная окончательную задачу сложно говорить, но вам нужно возвращать в player::dequeue()  либо умный указатель либо ссылку на объект либо сам объект. Но не указатель.
Класс card у вас хранит информацию о следующей карте. Это опять таки не верное архитектурное решение. Этот класс должен быть максимально простым. А очередь должна быть реализована отдельно. Сейчас у вас какое-то странное размазывание логики класса player по двум классам.
Почему бы вам не использовать стандартный контейнер queue из STL?

Худший ответ: В колоде максимум 54 карты, для хранения выбытия карт хватит битов в int64.
Класс Card лишний.
Вопрос: Как сделать адаптивные круги и растянуть по ширине бокса?

Лучший ответ: HTML:<div class="wrapper">
  <div class="circle">
      <i></i>
  </div>
  <div class="circle">
      <i></i>
  </div>
  <div class="circle">
      <i></i>
  </div>
</div>
CSS:body, html {
  width: 100%;
  height: 100%;
}

.wrapper {
  width: 100%;
  text-align: justify;
  background-color: #000;
  
  &:after {
    content: "";
    display: inline-block;
    width: 100%;
  }
  
  .circle {
    display: inline-block;
    vertical-align: top;
    width: 23%;
    height: 100%;
    
    i {
      display: block;
      background-color: yellow;
      width: 100%;
      padding-bottom: 100%;
      border-radius: 50%;
    }
  }
}Пример

Худший ответ: HTML:<div class="wrapper">
  <div class="circle">
      <i></i>
  </div>
  <div class="circle">
      <i></i>
  </div>
  <div class="circle">
      <i></i>
  </div>
</div>
CSS:body, html {
  width: 100%;
  height: 100%;
}

.wrapper {
  width: 100%;
  text-align: justify;
  background-color: #000;
  
  &:after {
    content: "";
    display: inline-block;
    width: 100%;
  }
  
  .circle {
    display: inline-block;
    vertical-align: top;
    width: 23%;
    height: 100%;
    
    i {
      display: block;
      background-color: yellow;
      width: 100%;
      padding-bottom: 100%;
      border-radius: 50%;
    }
  }
}Пример
Вопрос: Как стилизовать карты Google?

Лучший ответ: гугл говорит, что есть такая статья habrahabr.ru/post/197448
а в статье говорится, что есть такой конструктор gmaps-samples-v3.googlecode.com/svn/trunk/styledma...

Худший ответ: Есть несколько способов. Самый надежный Goole API для карт. Но сложно.
Вопрос: Почему в Safari не работает overflow: hidden?

Лучший ответ: Как вы проверили что не работает в Safari, если вы в нем не тестировали? 
Ведь вы пишите что у вас нет OS X и Safari соответственно.
И 2ой вопрос, есть ли какая нибудь штука эмулирующая браузер сафари, что бы было удобнее тестировать?
P.S. не владею macos
В сафари все работает. 
ну а если вы тестировали, то надеюсь у вас выглядит "О safari" так:

Худший ответ: если хочешь проверять на кроссбраузерность - то имей либо реальное устройство - либо виртуалку
никакие эмуляторы не ведут себя так, как реальный браузер в реальной среде
Вопрос: На сколько безопасен WordPress(без плагинов)?

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

Худший ответ: Такой же, как и все остальные. Вспомните про неуловимого Джо, может полегчает.
Вопрос: Где лучше всего купить Lenovo Thinkpad t430? (в Украине /из Украины)?

Лучший ответ: Насчет «в Украине» не знаю… но «из» могу предложить покупку на официальном сайте lenovo в США, сами соберете конфигуратором нужную комплектацию (имхо память купите у себя на месте или на Amazon, так же как и ssd — думаю нужная вещь для такой мощной машины).
Доставите любым посредником (shipito, shopfans,polar) на выбор.
Из минусов — отсутствие национальных символов. Ну, и вилка американского образца.

Худший ответ: проблема такого варианта в том, что желаемая конфигурация значительно превышает необлагаемый налогами максимум (~300$ насколько я помню). А занижать декларируемую цену до этих пределов — как-то стремно (особенно учитывая что таможня может сделать «переоцеку» по своим прайсам). А налог, насколько я помню, составляет около 30% при таких раскладах. В общем как-то уныло получается…
Вопрос: Стоит ли начинать новый проект на новом стеке технологий?

Лучший ответ: Disclaimer:  у меня нет опыта командной работы именно в Python / Django. Но есть опыт одиночной работы в этом стеке, и опыт командной работы в других технологиях (J2EE).
При следующих условиях: Есть опыт в веб - разработке Команда маленькая (2-3 человека) и уже слаженная Приличный английский (чтобы не было сложностей с чтением документации)  Знание Python (хотя бы на промежуточном уровне)  Понимание принципов ООП и базовых структур данных Имеется достаточное время на разработку, включая время требуемое на обучение технологии и приобретение начального опыта И главное, большое желание осваивать новое, и понимание, что это может потребовать работы сверхурочно, по крайней мере вначале
я бы попробовал. Для сколько-нибудь сложного проекта, Django в долговременной перспективе даст большие преимущества. Вашей компании в итоге проект весьма вероятно обойдется дешевле по ряду причин: Легче найти компетентных разработчиков - пусть их меньше в Python, но средний уровень у них будет выше, чем в Php. Весьма вероятно также, что потребуется меньше разработчиков в команду. Код гораздо лучше масштабируется, за счет средств как Python, так и Django При правильной работе и развитии проекта, меньше шансов что он превратится в неподдерживаемую кашу. С кодом легче будет работать, отлаживать, добавлять новый функционал Весьма вероятно, что багов и прочих косяков будет существенно меньше
Вы тоже получите немало - сможете в рабочие часы вырасти как разработчик, и освоить современный язык / фреймворк / стек. 
Бояться разных проблем и граблей я бы не стал. Сейчас на Stack Overflow можно найти ответ практически на любой вопрос или возникшую проблему. Опыт быстро наберете в процессе, если работать на совесть. Есть прекрасные книги, где обсуждаются лучшие практики, тонкие места, и др. По личному опыту могу сказать - когда "наберете скорость", даже в одиночку можно работать в Python / Django очень быстро. У меня, правда, был уже большой опыт в других языках (в том числе функциональных), это сильно помогало с архитектурой. Я не сомневаюсь, что в Python при желании можно писать такой же код, как и в Php. Поэтому одним из самых больших препятствий  может стать необходимость менять стиль мышления и отказываться от шаблонов, привычных по Php. 
Именно поэтому, в частности, требуется достаточное время, по крайней мере для начальной фазы проекта. Если у начальства есть понимание, что переход на новую технологию сопряжен с дополнительными затратами времени, и вначале могут быть сбои и ошибки, то я бы особо не раздумывал. Если же проект должен быть сделан в кратчайшие сроки и сразу начисто (т.е. у него не будет фазы "бета" или прототипа), то тогда да, нужно подумать. В общем, все сводится к тому,  будет ли проект достаточно сложным по функционалу, настроено ли начальство на стратегию или на тактику, и настроены ли Вы и Ваша команда на весьма серьезные усилия, или нет.

Худший ответ: Стоит начать делать на двух технологиях и сравнивать в процессе
Вопрос: Как сделать такую окантовку?

Лучший ответ: css:after :beforeborder-image css3border-radiusbackground: linear-gradient css3
Как пример: jsfiddle.net/f36r2dtw

Худший ответ: Захотелось сделать блок на фоне, чтобы между картинкой и описание тоже был просвет.
И, если бы не было старых IE, то можно было бы применять только градиенты.
Из-за них пришлось строить чуть более сложную схему, но и в IE8, пусть и с квадратными краями, но не страшно.