-Поиск по дневнику

Поиск сообщений в lj_habrahabr_full

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 17.03.2011
Записей:
Комментариев:
Написано: 0




Хабрахабр без ката - LiveJournal.com


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://community.livejournal.com/habrahabr_full/.
Данный дневник сформирован из открытого RSS-источника по адресу http://habrahabr-full.livejournal.com/data/rss, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Информационная безопасность / Защита и взлом БД на примере программы «Каталог запчастей»

Суббота, 27 Августа 2011 г. 01:45 + в цитатник

Информационная безопасность / Защита и взлом БД на примере программы «Каталог запчастей» by lastochkoff

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

Итак. Есть программа с папкой DATA, данные из которой очень хочется получить.

Есть несколько вариантов.
  • Превый вариант. Можно пойти сложным путем, снимая скриншоты и экспортируя заявки по одной в excel. Но это долгий способ и не интересный.
  • Второй вариант. Подумать и раскодировать данные.

Для начала нужно узнать в каком формате хранятся данные в программе. Можно воспользоваться бесплатной программой TrID. Пробуем ...

image

Печаль. Что то не известное. Похоже на какой то собственный формат на основе ole datastore. Если это действительно так и разработчики решили заморачиваться и писать собсвенную СУБД то извлечь данные будет очень сложно и долго. Проще будет воспользоваться вариантом 1.

Но, все программисты ленивые и скорее всего это какой то известный формат. Например Access или Firebird. Я бы так сделал. Поискал в каталоге с программой, нет никаких библиотек.

Исследуем дальше. Скачиваем очень полезную бесплатную утилиту с Process explorer, которая показывает все обращения программы к реестру, файлам и всему что возможно.
Запускаем, настраиваем, чтобы моиторила только один процесс catalog.exe — главный исполняемый файл программы.

image

Запускаем программу и смотрим, куда она обращается.

image

О! Она использует ODBC источник данных. Скорее всего используемая бд это access! Ставим себе плюсик. Смотрим дальше. Есть интересный ключ в реестре TraceSQLMode. Погуглив выясняется, что все запросы можно писать в файл. Меняем ключик и ищем файл. Нашли:

image

Смотрим запросы:
SELECT

FROM spare LEFT JOIN photo ON photo.serial = spare.serial


Табличка называется spare, что в переводе означает запасная часть. Значит это не вспомогательня БД и там действительно хранятся наименования деталей. Отлично. Смотрим дальше.

image

Идет обращение к файлу БД не в каталоге с программой. Значит он временно туда копируется. Пробуем открыть в access — без результата, не понимает.

Делаем действие в программе, переключаемся ну другую позицию в каталоге, смотрим более внимательно на лог:

image

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

Значит нужно как то приостановить выполнение программы до запроса, пока файл рабочий. Правильно, трассировкой в дебаггере. Скачиваем дебаггер, например, бесплатный OllyDbg весом 1.3МБ.

Запускаем в режиме администратора, если у вас windows vista и выше.
Присоединяемся к запущенному процессу (attach)

image

Выбираем наш процесс:

image

Возвращаемся в Process Explorer и смотрим стек вызова функции (в контекстном меню события):

image

Точку останова можно поставить на вызове закрытия файла CloseHandle в системном модуле kernel32.dll.

Переходим в этот модуль в дебаггере:

image

Находим нужную функцию:

image

Ставим точку остановки (Breakpoint) — F2.

image

Дальше запускаем выполнение программы, нажав F9. И делаем какое либо действие в подопытной программе. Программа остановится на брекпоинте.

Трассируем (F8) в дебаггрере, пока не появятся записи обращения к реестру перед выполнением запроса. Это будет означать, что файл БД модифицирован для подключения к нему и он пригоден для чтения.

После этого переходим к файлу и копируем его в другое место:

image

Смотрим, что за файл теперь:

image

100% mdb! Это файл MS Access. Переименовываем, открываем, убеждаемся, что все хорошо.

image

Мы успешно получили БД, пригодную для дальнейших модификаций или конвертирования в другой формат.

Раз уж начал писать, то выложу скрипт на groovy для конвертирования данных из MS Access в PostgreSQL БД.

вот он:
import groovy.sql.Sql
java.util.Properties prop = new java.util.Properties();
prop.put(“charSet”, “cp1251”);
sourceSql = Sql.newInstance(‘jdbc:odbc:catalog2’,prop)
targetSql = Sql.newInstance(“jdbc:postgresql://localhost:5432/catalog”,”catalog”,”catalog”, “org.postgresql.Driver”)
def images = targetSql.dataSet(“image”);
sourceSql.eachRow(‘select * from image’) {
def id = it.id
images.add(id:id,block:it.block);
def image=it.getProperty(“image”)
if (image) {
File f = new File(“D:/trid_w32/images/” + id + “.png”);
f.append(image);
}
}
def coords = targetSql.dataSet(“coord”);
sourceSql.eachRow(‘select * from coord’) {
coords.add(id:it.id,block:it.block,x:it.x,y:it.y,r:it.r);
}
def spares = targetSql.dataSet(“spare”);
sourceSql.eachRow(‘select * from spare’) {
spares.add(id:it.id,parent:it.parent,num:it.num,serial:it.serial,count:it.count,spec:it.spec,apply:it.apply,ru:it.ru,cn:it.cn);
}


Запускается интерпретатором:

groovy имя_скрипта.groovy

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

P.S. Автор этой статьи — Александр Суровцев. Если материал вам понравился, помогите ему пожалуйста получить инвайт на Хабр. Свои инвайты я, к сожалению, все раздал. Адрес его электронной почты — surovtsev.alex на gmail.com, твиттер — mobal1 Большое спасибо!
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2391781.html


*nix / Стреляем себе в ногу

Суббота, 27 Августа 2011 г. 01:45 + в цитатник

*nix / Стреляем себе в ногу by RankoR

Доброго времени суток, уважаемые хабраюзеры!
Пришла в голову идея создать список способов «стрельбы в ногу» в *NIX.
  1. chmod -x chmod
  2. rm * .o
  3. rm -rf /* # Работает не везде
  4. perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
  5. Русская рулетка:
    [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo «You're live»
  6. cat /dev/urandom > /dev/sda1
  7. rm /var/lib/btmp # После этого в openSUSE 11.4 не работает авторизация
  8. Fork Bomb:
    :(){ :|:& };:
  9. Замена шелла на невалидный (в современных версиях Linux не работает)
    chsh -s /usr/blin/sh; logout
  10. echo logout >> ~/.bashrc
  11. ssh server ifdown eth0
  12. Случайно нажимаем r вместо e:
    crontab -r
  13. sed -i -e 's#id:.:initdefault:#id:6:initdefault:#' /etc/inittab
  14. nohup '/etc/init.d/networking restart' & при interface 'auto'.


Многопользовательская игра. Игроки по очереди выполняют:
kill -SIGKILL $[$RANDOM % `cat /proc/sys/kernel/pid_max`]
Кто убьет какой-нибудь жизненно важный процесс — проиграл. Убившему init — приз за меткость.


Пишите в комментариях свои варианты, буду добавлять в топик :)
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2391345.html


Метки:  

Информационная безопасность / Защита и взлом БД на примере программы «Каталог запчастей»

Суббота, 27 Августа 2011 г. 01:44 + в цитатник

Информационная безопасность / Защита и взлом БД на примере программы «Каталог запчастей» by lastochkoff

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

Итак. Есть программа с папкой DATA, данные из которой очень хочется получить.

Есть несколько вариантов.
  • Превый вариант. Можно пойти сложным путем, снимая скриншоты и экспортируя заявки по одной в excel. Но это долгий способ и не интересный.
  • Второй вариант. Подумать и раскодировать данные.

Для начала нужно узнать в каком формате хранятся данные в программе. Можно воспользоваться бесплатной программой TrID. Пробуем ...

image

Печаль. Что то не известное. Похоже на какой то собственный формат на основе ole datastore. Если это действительно так и разработчики решили заморачиваться и писать собсвенную СУБД то извлечь данные будет очень сложно и долго. Проще будет воспользоваться вариантом 1.

Но, все программисты ленивые и скорее всего это какой то известный формат. Например Access или Firebird. Я бы так сделал. Поискал в каталоге с программой, нет никаких библиотек.

Исследуем дальше. Скачиваем очень полезную бесплатную утилиту с Process explorer, которая показывает все обращения программы к реестру, файлам и всему что возможно.
Запускаем, настраиваем, чтобы моиторила только один процесс catalog.exe — главный исполняемый файл программы.

image

Запускаем программу и смотрим, куда она обращается.

image

О! Она использует ODBC источник данных. Скорее всего используемая бд это access! Ставим себе плюсик. Смотрим дальше. Есть интересный ключ в реестре TraceSQLMode. Погуглив выясняется, что все запросы можно писать в файл. Меняем ключик и ищем файл. Нашли:

image

Смотрим запросы:
SELECT

FROM spare LEFT JOIN photo ON photo.serial = spare.serial


Табличка называется spare, что в переводе означает запасная часть. Значит это не вспомогательня БД и там действительно хранятся наименования деталей. Отлично. Смотрим дальше.

image

Идет обращение к файлу БД не в каталоге с программой. Значит он временно туда копируется. Пробуем открыть в access — без результата, не понимает.

Делаем действие в программе, переключаемся ну другую позицию в каталоге, смотрим более внимательно на лог:

image

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

Значит нужно как то приостановить выполнение программы до запроса, пока файл рабочий. Правильно, трассировкой в дебаггере. Скачиваем дебаггер, например, бесплатный OllyDbg весом 1.3МБ.

Запускаем в режиме администратора, если у вас windows vista и выше.
Присоединяемся к запущенному процессу (attach)

image

Выбираем наш процесс:

image

Возвращаемся в Process Explorer и смотрим стек вызова функции (в контекстном меню события):

image

Точку останова можно поставить на вызове закрытия файла CloseHandle в системном модуле kernel32.dll.

Переходим в этот модуль в дебаггере:

image

Находим нужную функцию:

image

Ставим точку остановки (Breakpoint) — F2.

image

Дальше запускаем выполнение программы, нажав F9. И делаем какое либо действие в подопытной программе. Программа остановится на брекпоинте.

Трассируем (F8) в дебаггрере, пока не появятся записи обращения к реестру перед выполнением запроса. Это будет означать, что файл БД модифицирован для подключения к нему и он пригоден для чтения.

После этого переходим к файлу и копируем его в другое место:

image

Смотрим, что за файл теперь:

image

100% mdb! Это файл MS Access. Переименовываем, открываем, убеждаемся, что все хорошо.

image

Мы успешно получили БД, пригодную для дальнейших модификаций или конвертирования в другой формат.

Раз уж начал писать, то выложу скрипт на groovy для конвертирования данных из MS Access в PostgreSQL БД.

вот он:
import groovy.sql.Sql
java.util.Properties prop = new java.util.Properties();
prop.put(“charSet”, “cp1251”);
sourceSql = Sql.newInstance(‘jdbc:odbc:catalog2’,prop)
targetSql = Sql.newInstance(“jdbc:postgresql://localhost:5432/catalog”,”catalog”,”catalog”, “org.postgresql.Driver”)
def images = targetSql.dataSet(“image”);
sourceSql.eachRow(‘select * from image’) {
def id = it.id
images.add(id:id,block:it.block);
def image=it.getProperty(“image”)
if (image) {
File f = new File(“D:/trid_w32/images/” + id + “.png”);
f.append(image);
}
}
def coords = targetSql.dataSet(“coord”);
sourceSql.eachRow(‘select * from coord’) {
coords.add(id:it.id,block:it.block,x:it.x,y:it.y,r:it.r);
}
def spares = targetSql.dataSet(“spare”);
sourceSql.eachRow(‘select * from spare’) {
spares.add(id:it.id,parent:it.parent,num:it.num,serial:it.serial,count:it.count,spec:it.spec,apply:it.apply,ru:it.ru,cn:it.cn);
}


Запускается интерпретатором:

groovy имя_скрипта.groovy

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

P.S. Автор этой статьи — Александр Суровцев. Если материал вам понравился, помогите ему пожалуйста получить инвайт на Хабр. Свои инвайты я, к сожалению, все раздал. Адрес его электронной почты — surovtsev.alex на gmail.com, твиттер — mobal1 Большое спасибо!
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2391207.html


*nix / Стреляем себе в ногу

Суббота, 27 Августа 2011 г. 01:44 + в цитатник

*nix / Стреляем себе в ногу by RankoR

Доброго времени суток, уважаемые хабраюзеры!
Пришла в голову идея создать список способов «стрельбы в ногу» в *NIX.
  1. chmod -x chmod
  2. rm * .o
  3. rm -rf /* # Работает не везде
  4. perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
  5. Русская рулетка:
    [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo «You're live»
  6. cat /dev/urandom > /dev/sda1
  7. rm /var/lib/btmp # После этого в openSUSE 11.4 не работает авторизация
  8. Fork Bomb:
    :(){ :|:& };:
  9. Замена шелла на невалидный (в современных версиях Linux не работает)
    chsh -s /usr/blin/sh; logout
  10. echo logout >> ~/.bashrc
  11. ssh server ifdown eth0
  12. Случайно нажимаем r вместо e:
    crontab -r
  13. sed -i -e 's#id:.:initdefault:#id:6:initdefault:#' /etc/inittab
  14. nohup '/etc/init.d/networking restart' & при interface 'auto'.


Многопользовательская игра. Игроки по очереди выполняют:
kill -SIGKILL $[$RANDOM % `cat /proc/sys/kernel/pid_max`]
Кто убьет какой-нибудь жизненно важный процесс — проиграл. Убившему init — приз за меткость.


Пишите в комментариях свои варианты, буду добавлять в топик :)
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2390978.html


Метки:  

Разработка под Apple iOS / Лови волну: мы раздаём деньги

Пятница, 26 Августа 2011 г. 20:53 + в цитатник

Разработка под Apple iOS / Лови волну: мы раздаём деньги by golubeff

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

1. Это может быть железо, сервера.
2. Это могут быть деньги на разработку.
3. Это могут быть деньги на развитие.
4. Это может быть покупка вашего продукта.
5. Это может быть продвижение вашего продукта в App Store.

Прежде всего нам интересны:

1. Аркадные паззлы с элементами физики для iOS.
2. Экономические стратегии для iOS.
3. Другие игры и приложения для соц. сетей.

Если вам показалось, что этот топик написан для вас, прошу написать мне на почту: golubev.pavel@gmail.com.

Update: Убрал из топика упоминание о нашей компании, чтобы не было похоже на рекламу.
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2390681.html


Метки:  

Apple / Автор JailbreakMe приглашён на стажировку в Apple

Пятница, 26 Августа 2011 г. 18:53 + в цитатник

Apple / Автор JailbreakMe приглашён на стажировку в Apple by alizar

Известный хакер Comex, автор утилиты для взлома iOS-устройств и сайта JailbreakMe.com, приглашён на стажировку в компанию Apple. Стажировка начинается со следующей недели, сообщил Comex в твиттере.

19-летний студент Николас Аллегра уже не скрывает свою личность, с недавнего времени ищет место для стажировки. Компания Apple для него — вполне естественный выбор.

Как известно, год назад Управление по защите интеллектуальных прав собственности в США (U.S. Copyright Office) сделало исключение в законе DMCA для джейлбрейка, после чего тот признан законным средством модификации телефона, несмотря на сопротивление компании Apple, которая уверяла, что джейлбрейкнутые телефоны угрожают инфраструктуре сотовой связи, то есть критически важной инфраструктуре США. По такой логике, с автором джейлбрейка могли бороться как с террористом, но, слава богу, здравый смысл победил (в аналогичной ситуации с GeoHot и джейлбрейком PS3 всё вышло иначе).

Николас опубликовал первый джейлбрейк для iPhone два года назад. С тех пор он выпустил несколько новых версий, которые эксплуатируют всё новые дыры в безопасности iOS. По мнению некоторых специалистов по безопасности, Николас «на пять лет опережает своих коллег», а его квалификацию можно сравнить с авторами Stuxnet и лучшими хакерами мира, которые работают на правительственные спецслужбы, взламывая корпорации и правительства других стран.

Николас Аллегра научился программировать самостоятельно в возрасте девяти лет, первым языком программирования был Visual Basic. Хакерские способности проявились когда он обнаружил, что не может сохранить скриншот с игры Super Smash Brothers на приставке Nintendo Wii — юноша потратил несколько часов на дешифровку файла, а потом выступил автором и других хаков для операционной системы Wii.
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2390336.html


Метки:  

Железо / Обзор Samsung GalaxyTab 10.1

Пятница, 26 Августа 2011 г. 18:26 + в цитатник

Железо / Обзор Samsung GalaxyTab 10.1 by Flagman

Будущее планшетов мне представляется довольно светлым – что ни говори, а для многих это наиболее удачный форм-фактор. Сейчас за их производство взялись все, кому не лень — жаль только то, что вот уже больше года количество никак не перерастало в качество.



Но у компании Samsung получилось.

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

Технические характеристики


ОС: Android 3.1 с оболочкой TouchWiz
Процессор: nVidia Tegra 2, 1,1 ГГц, 2 ядра
Память: 16/32/64 Гб (без слота для карты памяти)
Оперативная память: 1 Гб DDR-II
Дисплей: 10,1", 1280x800 (16:10), TFT PLS
Разъемы: microSIM, фирменный USB, 3,5-мм minijack
Связь: 3G, EDGE, HSCSD, HSDPA, HSUPA, GPRS, GSM900/1800/1900, Wi-Fi 802.11b/g/n, Bluetooth 3.0
Навигация: GPS (A-GPS), акселерометр, гироскоп, электронный компас
Камеры: 3 Мп (задняя) + 2 Мп (фронтальная); вспышка, автофокус
Аккумулятор: 7000 мАч (до 10 часов работы)
Размеры: 257 x 175 x 8,6 мм
Вес: 565 грамм
Цена: от 23990 рублей

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

— Сам планшет
— Зарядное устройство + сменный штекер
— USB-провод (для синхронизации и зарядки)
— Стереогарнитура

Инструкции не оказалось, но её (на русском языке) я нашел в сети – там на 128 страницах все довольно подробно изложено.

Не удивляйтесь, если внешний вид USB-провода и разъема на планшете вам что-то напомнит – до боли знакомый интерфейс позволяет не только заряжать устройство и подключать его к компьютеру, но и выводить изображение через HDMI (данный переходник придется докупить отдельно). Эх, а ведь можно было всё то же самое уместить в microUSB.

Внешний вид


В руках разница между айпадом и новым планшетом от Samsung невелика – размеры и вес примерно одинаковы, хотя два заметных различия все же есть: разные соотношения сторон экранов (4:3 против 16:10 у новинки) и материалы корпуса. Корпус Galaxy Tab 10.1 целиком и полностью выполнен из пластика, в нем ни малейшего намека на металл (а жаль) – видимо, именно за счет этого удалось «уложиться» в 565 грамм веса. Устройство получилось рекордно тонким – всего 8,6 мм, что на крохи тоньше второго айпада.



С лицевой стороны планшета один лишь экран и спрятанная фронтальная камера (2 мегапикселя) над ним. Привычка – страшная сила, так что первое время я невольно пытался нащупать кнопку Home, которой тут нет. Первое время это несколько напрягало – вместо нее приходится использовать сенсорную кнопку на дисплее, которая никак не выделена тактильно и всегда занимает часть экрана.



Основой ёмкостного экрана является собственная разработка компании Samsung, матрица PLS (Plane to Line Switching), якобы обеспечивающая на 10% большую яркость в сравнении с IPS-матрицами. Никаких замеров не производил, но, забегая вперед, экран прекрасен. Как несложно догадаться из названия устройства, его диагональ составляет 10,1 дюймов, а разрешение — 1280x800.



Как в большинстве устройств от Samsung, тут используется отлично зарекомендовавшее себя стекло Gorilla Glass. Но оно, к сожалению, не имеет олеофобного (отталкивающего жир) покрытия, из-за чего дисплей довольно быстро покрывается отпечатками пальцев.

Края не острые, «порезаться» об них нельзя. Все углы закруглены. На верхнем торце планшета находится слот для microSIM-карты, миниджек для наушников, качельки громкости и кнопка питания. Снизу – dock-разъем и «точка» микрофона.

А на боковых торцах расположились два небольших стереодинамика с защитной сеткой.

Кто следил за историей развития планшета, тот заметил перемены на обратной стороне устройства – она значительно изменилась внешне. Сейчас на ней нет ничего лишнего, кроме 3.2-мегапиксельной камеры и вспышки. Там, как я уже говорил, сплошной пластик – сейчас он продается в почти непачкающемся белом цвете, но вот-вот должен появиться и черный цвет корпуса.



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



В целом все хорошо, хотя, конечно, металлический корпус айпада несколько избаловал – пластик после этого воспринимается несколько иначе, пусть даже он монолитный и не сдается перед деформациями. Аксессуаров пока не так много – клавиатура, док-станция и пара чехлов — не густо, но все еще впереди.

Софт


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



Что ж, довольно ярко для начала — Самсунг не первый раз применяет подобный трюк, демонстрируя все прелести своих экранов на сочных картинках. Тут главное, чтобы было чем потом удивлять — ведь в том же айпаде изначально стоит нейтрально блеклое изображение, а все прелести IPS-матрицы осознаются только со временем. Но в Galaxy Tab очень яркий экран, прям очень — в темноте от его максимальной яркости есть даже некоторый дискомфорт. На солнце же экран ощутимо блекнет, но информация остается читаемой.



Интересно выполнен экран разблокировки, в котором нужно потянуть за кольцо с “замочком” по периметру большого кольца — все это чем-то напоминает экран разблокировки в HTC Sense, хотя на этом все сходства заканчиваются.



В устройстве используется ОС Android 3.1 c последней версией фирменного графического интерфейса TouchWiz. Изначально на экране находится пять “рабочих столов”, на некоторых из которых удобно расположились всевозможные иконки и сторонние виджеты — Ap Mobile (новостной виджет), почта, время, погода, фотоальбом, Social Hub и Readers Hub (своего рода агрегаторы контента), календарь, Yahoo! Finance и другие. Есть и своего рода док – по умолчанию он автоматически скрывается, но его можно вызывать в любой момент и запустить из него какое-нибудь приложение. Все это сделано довольно красиво и, как мне кажется, слёту “выигрывает” у iPad. В дальнейшем это впечатление только подтверждается — гибкость интерфейса несравненно больше, нежели в iOS. По крайней мере для среднестатистического гика места для полёта фантазии — напаханное поле.





Сейчас самое время выразить благодарность компании Samsung за возможность «по-человечески» делать скриншоты экрана – отдельная кнопка вынесена аж на панель задач!

Но интерфейс интерфейсом, а лишнее лучше сразу убрать — к сожалению, даже “из коробки” оболочка ощутимо подтормаживает. При переключении между экранами это почти не ощущается, но вот при смене ориентации изображения с портретной на альбомную — более чем. Соответственно, непонятно, что будет в дальнейшем, когда пользователь установит хотя бы десятка два приложений… сомневаюсь, что работать будет быстрее.

Тем не менее, производительность достаточно неплохая — все быстро переключается, перемещается и масштабируется — будь то большие фотографии, открытый сайт или какие-нибудь карты. Двухъядерный процессор NVIDIA Tegra 2 дает о себе знать… причем в сети уже есть варианты насчет того, как «раскочегарить» его до 1.4 ГГц.



В отличие от iOS, тут можно почти как угодно перемещать иконки (сетка под них гораздо больше) и виджеты (многие можно трансформировать) – все это позволяет удобно организовать рабочее место. Красот как в HTC Sense нет, но в целом тоже смотрится очень неплохо:



Долгий тап в пустом месте (или нажатие на «+» в верхнем правом углу) вызывает окно настроек, откуда на выбранный экран можно разместить что угодно из предустановленного арсенала (приложения, виджеты, обои или что-то более необычное – закладку, контакт, маршрут, ярлык Gmail и т.д).









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







Изначально предустановлено несколько приложений, например Polaris Office (офисный пакет), Pulse News (приложение для чтения новостных каналов), Pen memo (рукописные заметки), uTalk (мессенджер) и Samsung Apps (собственный магазин приложений Samsung). Все остальное – самостоятельно.





Установка приложений стандартна – заходим на маркет и качаем. Установка немногим сложнее установки в iOS, но проблем не возникнет. Хотя нет, некоторые проблемы все же есть – под планшет на данный момент заточено не так много приложений, как хотелось бы. Остается надеяться, что ситуация изменится к лучшему со временем.









Кстати, небезызвестный ресурс 4pda.ru в этом плане очень удобен – там есть отличный рубрикатор приложений, из которого сразу понятно, что подойдет для планшета, а что нет.

Некоторые стандартные приложения:









Youtube:





Ввод текста, как это не удивительно, осуществляется посредством экранной клавиатуры – она достаточно удобная (их, вообще-то, несколько), но когда я увидел, что там предустановлен Swype, я без малейших раздумий переключился на него. Этот способ ввода данных настолько удобен (если приловчиться), что набирать тексты на сенсорном экране можно не медленней чем на обычной клавиатуре!





На качество камеры не пожалуешься – оно лучше, чем у конкурентов. В этом вопросе Самсунги в последнее время очень преуспевают, как мне кажется. Примеры фотографий:





Настройки системы:









Планшет определяется в системе (Win) как переносное устройство GT-P7500 – можно закачать что-нибудь или слить фотографии. При подключении к USB-разъему компьютера планшет не заряжается.

Со временем автономной работы на удивление все хорошо – андроид запросто работает (на автоматической яркости экрана) порядка 9 часов, причем кто-то умудряется выжимать и больше! Весьма достойный результат – для «рабочего дня» и на дорогу этого хватит.

Более подробный обзор внутренностей смотрите на этих видео:





Плюсы и минусы


http://habrahabr-full.livejournal.com/2390134.html


Метки:  

Open source / А как ты помог какому-нибудь сообществу хабрачеловек?

Пятница, 26 Августа 2011 г. 18:26 + в цитатник

Open source / А как ты помог какому-нибудь сообществу хабрачеловек? by gnomeby

Представьте ситуацию… Решили вы значит прикрутить какую-нибудь новую технологию к вашему проекту. Поставили всё необходимое, подключили библиотеку, и опа… не работает. И вот вы мучаетесь, ковыряете, а оно всё не работает и не работает. И просидев некоторое время над этой библиотекой, вы решаете просто бросить это дело, скачать аналогичную библиотеку от другой команды и попробовать её.

А может быть всё было не так. Может быть вы очень упорный и целеустремлённый человек и решаете во что бы то ни стало довести дело до конца и помочь в развитии продукта.

Продолжение истории для тех, кому не всё-равно…

Ситуация


Хотим научится работать с RabbitMQ через Zend Framework, используя STOMP протокол. И так, подключаем нужные классы и сразу встаёт вопрос: а как работать? Гуглим — нету ничего. Ну да ладно, лезем в википедию и находим ссылку на официальный сайт, где есть описание протокола с примерами. По примерам, примерно понимаем в каком порядке и что вызывать, чтобы заработало.

Написали — запрос посылается, но при получении ответа зависает. Ну да ладно, дампим запросы — данные приходят. Смотрим в HEX редакторе что приходит, а потом смотрим в коде, что ожидается. Находим ошибку в парсинге запроса в Zend классе.

Правим, запускаем — неверный логин. Снова дампим запросы, но всё верно и соответствует примеру. Пробуем эмулировать протокол через telnet — те же ошибки. Пробуем убрать пробел после двоеточия в заголовках, то есть:
CONNECT
login:
passcode:


Заработало! Ага! Радостно потираем руки и решаем поставить ActiveMQ и проверить самый первый вариант на нём. И, он работает. Ну всё, сейчас-то мы сообщим балбесам из RabbitMQ как надо код писать.

Пишем письмо, получаем ответ:
  • Regarding newlines after the \x00 — that is not part of the spec. It is *permitted* in 1.1, but not even mentioned in 1.0. Since this isn't something the spec requires, I think the Zend client is in error here expecting servers to send a newline that isn't required by the spec.
  • Regarding trimming of header values, this is explicitly banned in 1.1, so we don't support it all. Technically, we could support it for 1.0, but we don't know the version the client is using until *after* the CONNECT frame has been processed. Ideally though, the Zend client would update to 1.1.

То есть: код у вас зависает, потому что Zend класс ожидает последовательность символов, которая не определена спецификацией, и мы их не обязаны посылать. А концевые пробелы в заголовках могут быть полезной информацией, поэтому мы их не обрезаем. И, вообще, мы пишем сервер совместимый со спецификацией 1.1, а ваш Zend поддерживает только 1.0.

Но позвольте, спрашиваю я, а где на официальном сайте написано про протокол 1.1?
Ответ: А это старый сайт, вот тебе ссылка на новый. А также вот тебе два патча, которые подстраивают RabbitMQ под баги Zend`а.

Мы немного ещё попереписывались, чтобы уточнить некоторые детали, и вот, что мы сделали на выходе.

Итоги

  • Мне сделали два патча, которые подстраивают RabbitMQ под баги Zend`а, хотя я даже не просил.
  • Команда RabbitMQ попросила хозяев старого сайта поставить ссылки на новый.
  • В английскую Википедию добавлена ссылка на новый сайт в статью о протоколе STOMP.
  • На Zend было добавлено 3 новых тикета и ещё один проапдейчен.

Послесловие


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

Так давайте же по случаю пятницы поделимся с друг другом подобными историями.

P.S. Подскажите в личке в какой топик лучше опубликовать.
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2389851.html


Железо / Обзор Samsung GalaxyTab 10.1

Пятница, 26 Августа 2011 г. 18:18 + в цитатник

Железо / Обзор Samsung GalaxyTab 10.1 by Flagman

Будущее планшетов мне представляется довольно светлым – что ни говори, а для многих это наиболее удачный форм-фактор. Сейчас за их производство взялись все, кому не лень — жаль только то, что вот уже больше года количество никак не перерастало в качество.



Но у компании Samsung получилось.

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

Технические характеристики


ОС: Android 3.1 с оболочкой TouchWiz
Процессор: nVidia Tegra 2, 1,1 ГГц, 2 ядра
Память: 16/32/64 Гб (без слота для карты памяти)
Оперативная память: 1 Гб DDR-II
Дисплей: 10,1", 1280x800 (16:10), TFT PLS
Разъемы: microSIM, фирменный USB, 3,5-мм minijack
Связь: 3G, EDGE, HSCSD, HSDPA, HSUPA, GPRS, GSM900/1800/1900, Wi-Fi 802.11b/g/n, Bluetooth 3.0
Навигация: GPS (A-GPS), акселерометр, гироскоп, электронный компас
Камеры: 3 Мп (задняя) + 2 Мп (фронтальная); вспышка, автофокус
Аккумулятор: 7000 мАч (до 10 часов работы)
Размеры: 257 x 175 x 8,6 мм
Вес: 565 грамм
Цена: от 23990 рублей

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

— Сам планшет
— Зарядное устройство + сменный штекер
— USB-провод (для синхронизации и зарядки)
— Стереогарнитура

Инструкции не оказалось, но её (на русском языке) я нашел в сети – там на 128 страницах все довольно подробно изложено.

Не удивляйтесь, если внешний вид USB-провода и разъема на планшете вам что-то напомнит – до боли знакомый интерфейс позволяет не только заряжать устройство и подключать его к компьютеру, но и выводить изображение через HDMI (данный переходник придется докупить отдельно). Эх, а ведь можно было всё то же самое уместить в microUSB.

Внешний вид


В руках разница между айпадом и новым планшетом от Samsung невелика – размеры и вес примерно одинаковы, хотя два заметных различия все же есть: разные соотношения сторон экранов (4:3 против 16:10 у новинки) и материалы корпуса. Корпус Galaxy Tab 10.1 целиком и полностью выполнен из пластика, в нем ни малейшего намека на металл (а жаль) – видимо, именно за счет этого удалось «уложиться» в 565 грамм веса. Устройство получилось рекордно тонким – всего 8,6 мм, что на крохи тоньше второго айпада.



С лицевой стороны планшета один лишь экран и спрятанная фронтальная камера (2 мегапикселя) над ним. Привычка – страшная сила, так что первое время я невольно пытался нащупать кнопку Home, которой тут нет. Первое время это несколько напрягало – вместо нее приходится использовать сенсорную кнопку на дисплее, которая никак не выделена тактильно и всегда занимает часть экрана.



Основой ёмкостного экрана является собственная разработка компании Samsung, матрица PLS (Plane to Line Switching), якобы обеспечивающая на 10% большую яркость в сравнении с IPS-матрицами. Никаких замеров не производил, но, забегая вперед, экран прекрасен. Как несложно догадаться из названия устройства, его диагональ составляет 10,1 дюймов, а разрешение — 1280x800.



Как в большинстве устройств от Samsung, тут используется отлично зарекомендовавшее себя стекло Gorilla Glass. Но оно, к сожалению, не имеет олеофобного (отталкивающего жир) покрытия, из-за чего дисплей довольно быстро покрывается отпечатками пальцев.

Края не острые, «порезаться» об них нельзя. Все углы закруглены. На верхнем торце планшета находится слот для microSIM-карты, миниджек для наушников, качельки громкости и кнопка питания. Снизу – dock-разъем и «точка» микрофона.

А на боковых торцах расположились два небольших стереодинамика с защитной сеткой.

Кто следил за историей развития планшета, тот заметил перемены на обратной стороне устройства – она значительно изменилась внешне. Сейчас на ней нет ничего лишнего, кроме 3.2-мегапиксельной камеры и вспышки. Там, как я уже говорил, сплошной пластик – сейчас он продается в почти непачкающемся белом цвете, но вот-вот должен появиться и черный цвет корпуса.



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



В целом все хорошо, хотя, конечно, металлический корпус айпада несколько избаловал – пластик после этого воспринимается несколько иначе, пусть даже он монолитный и не сдается перед деформациями. Аксессуаров пока не так много – клавиатура, док-станция и пара чехлов — не густо, но все еще впереди.

Софт


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



Что ж, довольно ярко для начала — Самсунг не первый раз применяет подобный трюк, демонстрируя все прелести своих экранов на сочных картинках. Тут главное, чтобы было чем потом удивлять — ведь в том же айпаде изначально стоит нейтрально блеклое изображение, а все прелести IPS-матрицы осознаются только со временем. Но в Galaxy Tab очень яркий экран, прям очень — в темноте от его максимальной яркости есть даже некоторый дискомфорт. На солнце же экран ощутимо блекнет, но информация остается читаемой.



Интересно выполнен экран разблокировки, в котором нужно потянуть за кольцо с “замочком” по периметру большого кольца — все это чем-то напоминает экран разблокировки в HTC Sense, хотя на этом все сходства заканчиваются.



В устройстве используется ОС Android 3.1 c последней версией фирменного графического интерфейса TouchWiz. Изначально на экране находится пять “рабочих столов”, на некоторых из которых удобно расположились всевозможные иконки и сторонние виджеты — Ap Mobile (новостной виджет), почта, время, погода, фотоальбом, Social Hub и Readers Hub (своего рода агрегаторы контента), календарь, Yahoo! Finance и другие. Есть и своего рода док – по умолчанию он автоматически скрывается, но его можно вызывать в любой момент и запустить из него какое-нибудь приложение. Все это сделано довольно красиво и, как мне кажется, слёту “выигрывает” у iPad. В дальнейшем это впечатление только подтверждается — гибкость интерфейса несравненно больше, нежели в iOS. По крайней мере для среднестатистического гика места для полёта фантазии — напаханное поле.





Сейчас самое время выразить благодарность компании Samsung за возможность «по-человечески» делать скриншоты экрана – отдельная кнопка вынесена аж на панель задач!

Но интерфейс интерфейсом, а лишнее лучше сразу убрать — к сожалению, даже “из коробки” оболочка ощутимо подтормаживает. При переключении между экранами это почти не ощущается, но вот при смене ориентации изображения с портретной на альбомную — более чем. Соответственно, непонятно, что будет в дальнейшем, когда пользователь установит хотя бы десятка два приложений… сомневаюсь, что работать будет быстрее.

Тем не менее, производительность достаточно неплохая — все быстро переключается, перемещается и масштабируется — будь то большие фотографии, открытый сайт или какие-нибудь карты. Двухъядерный процессор NVIDIA Tegra 2 дает о себе знать… причем в сети уже есть варианты насчет того, как «раскочегарить» его до 1.4 ГГц.



В отличие от iOS, тут можно почти как угодно перемещать иконки (сетка под них гораздо больше) и виджеты (многие можно трансформировать) – все это позволяет удобно организовать рабочее место. Красот как в HTC Sense нет, но в целом тоже смотрится очень неплохо:



Долгий тап в пустом месте (или нажатие на «+» в верхнем правом углу) вызывает окно настроек, откуда на выбранный экран можно разместить что угодно из предустановленного арсенала (приложения, виджеты, обои или что-то более необычное – закладку, контакт, маршрут, ярлык Gmail и т.д).









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







Изначально предустановлено несколько приложений, например Polaris Office (офисный пакет), Pulse News (приложение для чтения новостных каналов), Pen memo (рукописные заметки), uTalk (мессенджер) и Samsung Apps (собственный магазин приложений Samsung). Все остальное – самостоятельно.





Установка приложений стандартна – заходим на маркет и качаем. Установка немногим сложнее установки в iOS, но проблем не возникнет. Хотя нет, некоторые проблемы все же есть – под планшет на данный момент заточено не так много приложений, как хотелось бы. Остается надеяться, что ситуация изменится к лучшему со временем.









Кстати, небезызвестный ресурс 4pda.ru в этом плане очень удобен – там есть отличный рубрикатор приложений, из которого сразу понятно, что подойдет для планшета, а что нет.

Некоторые стандартные приложения:









Youtube:





Ввод текста, как это не удивительно, осуществляется посредством экранной клавиатуры – она достаточно удобная (их, вообще-то, несколько), но когда я увидел, что там предустановлен Swype, я без малейших раздумий переключился на него. Этот способ ввода данных настолько удобен (если приловчиться), что набирать тексты на сенсорном экране можно не медленней чем на обычной клавиатуре!





На качество камеры не пожалуешься – оно лучше, чем у конкурентов. В этом вопросе Самсунги в последнее время очень преуспевают, как мне кажется. Примеры фотографий:





Настройки системы:









Планшет определяется в системе (Win) как переносное устройство GT-P7500 – можно закачать что-нибудь или слить фотографии. При подключении к USB-разъему компьютера планшет не заряжается.

Со временем автономной работы на удивление все хорошо – андроид запросто работает (на автоматической яркости экрана) порядка 9 часов, причем кто-то умудряется выжимать и больше! Весьма достойный результат – для «рабочего дня» и на дорогу этого хватит.

Более подробный обзор внутренностей смотрите на этих видео:





Плюсы и минусы


http://habrahabr-full.livejournal.com/2389666.html


Метки:  

Open source / А как ты помог какому-нибудь сообществу хабрачеловек?

Пятница, 26 Августа 2011 г. 18:18 + в цитатник

Open source / А как ты помог какому-нибудь сообществу хабрачеловек? by gnomeby

Представьте ситуацию… Решили вы значит прикрутить какую-нибудь новую технологию к вашему проекту. Поставили всё необходимое, подключили библиотеку, и опа… не работает. И вот вы мучаетесь, ковыряете, а оно всё не работает и не работает. И просидев некоторое время над этой библиотекой, вы решаете просто бросить это дело, скачать аналогичную библиотеку от другой команды и попробовать её.

А может быть всё было не так. Может быть вы очень упорный и целеустремлённый человек и решаете во что бы то ни стало довести дело до конца и помочь в развитии продукта.

Продолжение истории для тех, кому не всё-равно…

Ситуация


Хотим научится работать с RabbitMQ через Zend Framework, используя STOMP протокол. И так, подключаем нужные классы и сразу встаёт вопрос: а как работать? Гуглим — нету ничего. Ну да ладно, лезем в википедию и находим ссылку на официальный сайт, где есть описание протокола с примерами. По примерам, примерно понимаем в каком порядке и что вызывать, чтобы заработало.

Написали — запрос посылается, но при получении ответа зависает. Ну да ладно, дампим запросы — данные приходят. Смотрим в HEX редакторе что приходит, а потом смотрим в коде, что ожидается. Находим ошибку в парсинге запроса в Zend классе.

Правим, запускаем — неверный логин. Снова дампим запросы, но всё верно и соответствует примеру. Пробуем эмулировать протокол через telnet — те же ошибки. Пробуем убрать пробел после двоеточия в заголовках, то есть:
CONNECT
login:
passcode:


Заработало! Ага! Радостно потираем руки и решаем поставить ActiveMQ и проверить самый первый вариант на нём. И, он работает. Ну всё, сейчас-то мы сообщим балбесам из RabbitMQ как надо код писать.

Пишем письмо, получаем ответ:
  • Regarding newlines after the \x00 — that is not part of the spec. It is *permitted* in 1.1, but not even mentioned in 1.0. Since this isn't something the spec requires, I think the Zend client is in error here expecting servers to send a newline that isn't required by the spec.
  • Regarding trimming of header values, this is explicitly banned in 1.1, so we don't support it all. Technically, we could support it for 1.0, but we don't know the version the client is using until *after* the CONNECT frame has been processed. Ideally though, the Zend client would update to 1.1.

То есть: код у вас зависает, потому что Zend класс ожидает последовательность символов, которая не определена спецификацией, и мы их не обязаны посылать. А концевые пробелы в заголовках могут быть полезной информацией, поэтому мы их не обрезаем. И, вообще, мы пишем сервер совместимый со спецификацией 1.1, а ваш Zend поддерживает только 1.0.

Но позвольте, спрашиваю я, а где на официальном сайте написано про протокол 1.1?
Ответ: А это старый сайт, вот тебе ссылка на новый. А также вот тебе два патча, которые подстраивают RabbitMQ под баги Zend`а.

Мы немного ещё попереписывались, чтобы уточнить некоторые детали, и вот, что мы сделали на выходе.

Итоги

  • Мне сделали два патча, которые подстраивают RabbitMQ под баги Zend`а, хотя я даже не просил.
  • Команда RabbitMQ попросила хозяев старого сайта поставить ссылки на новый.
  • В английскую Википедию добавлена ссылка на новый сайт в статью о протоколе STOMP.
  • На Zend было добавлено 3 новых тикета и ещё один проапдейчен.

Послесловие


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

Так давайте же по случаю пятницы поделимся с друг другом подобными историями.

P.S. Подскажите в личке в какой топик лучше опубликовать.
Original source: habrahabr.ru (comments).

http://habrahabr-full.livejournal.com/2389385.html



Поиск сообщений в lj_habrahabr_full
Страницы: [1] Календарь