Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 29139 сообщений
Cообщения с меткой

apple - Самое интересное в блогах

Следующие 30  »
rss_rss_boingboing

NYU grad student goes undercover in Chinese iPhone factory and it ain't pretty

Пятница, 21 Апреля 2017 г. 22:45 (ссылка)


NYU grad student Dejian Zeng worked undercover at an iPhone factory in Shanghai, China for six weeks, and "grim" is a nice way to describe it.

Zeng was in charge of one screw per phone, fastening the speaker to the back of the iPhone case. He had to show up at the factory at 7:30 and work 12 hours per day, but was only paid for 10 1/2 hours per day since breaks are unpaid. And his work week consisted of 6 days per week, for which he only gets paid $450/month, including overtime.

The workers live in prison cells, er, I mean dorm rooms that are as bleak as hell. They have only one uniform to wear all week, as well as a pair of slippers. But they do not receive an iPhone as a perk – it's rare to see anyone with a personal iPhone at the iPhone factory. Most workers have a phone that is cheaper.

The thing that shocked Zeng the most was the managers' attitudes - "yelling at the workers is kind of routine in the factories." But the good thing is that the company has installed nets around the stairs to prevent people from committing suicide. Oh, and the windows have cages around them so no one can jump out and kill themselves.

There are more fascinating details in this video. Good undercover work, Zeng!

http://feeds.boingboing.net/~r/boingboing/iBag/~3/UIXBzfkMqRs/nyu-grad-student-goes-undercov.html

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Kazlanova

Люди и огрызки

Понедельник, 17 Апреля 2017 г. 13:53 (ссылка)

Не могу не исследовать. Такая уж я есть. Все мне интересно, и постоянно співставляю какие-то факты, события, прочее.
Сейчас интересно записать следующее наблюдение.
Это такая себе попытка ответить на распространенный вопрос "почему много козлов" (или "почему все они такие козлы" и "все бабы дуры" и тому подобное.
Заметила, что очень многие люди существуют в таком состоянии, хочу условно обозвать "огрызок".
Почему так грубо? Почему "огрызок"? Все очень метко, надо только попытаться понять, что имею в виду. Это ни в коем случае не попытка унизить или обозвать каких-то людей, нет. Просто много кого из нас кто-то или что-то "недогризло". Грызло-грызло, и оставило только то, что осталось, и оно ходит себе по миру. Вводя в заблуждение других людей. Потому что физически, внешне, обычно все выглядит "яблочко", эти изменения обычно не физические. Часто и сердцем в этих людях мы чувствуем тех, которыми они уже не являются, а тех, кем они были. Обманюємся, и получаем не того человека, которого відчуваєм сердцем, а огрызок, который уже мало на что пригоден.
Но.
Ситуация очень сложная. И хочу записать почему.
Лично я постоянно ищу интересных, умных, таких нужных мне людей. И что же я вижу. Все, кого я встречала с развитым интеллектом и хорошей физической формой. Из, скажем условно, "качественными" данными поточені как яблоко теми червями, чем-то или кем-то. И находятся в состоянии недогризка. Так, будто что-то или кто-то их уничтожало, но они выжили, только не полностью, а вот в таком состоянии.

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


Вывод такой: кто-то или что-то давит некоторую разновидность людей, которые едва выживают и если выживают, то продолжают свое существование в невідновлюваному состоянии недогризка, который уже никогда не может вернуться к своему первоначальному данного природой состояния.








showFlash("http://i3.i.ua/sounds/mpm.swf?4", "repeat=1&autostart=0&songData=1166339.587d8433-b5270343.193&r=3601250&sName=%D0%9C%D0%BE%D0%B2%D1%87%D0%B0%D1%82%D0%B8+%28%D0%BA%D0%B0%D0%B2%D0%B5%D1%80-%D0%B2%D0%B5%D1%80%D1%81%D1%96%D1%8F+%D0%9F%D0%B0%D0%BC%27%D1%8F%D1%82%D1%96+%D0%9A%D1%83%D0%B7%D1%8C%D0%BC%D0%B8+%D0%A1%D0%BA%D1%80%D1%8F%D0%B1%D1%96%D0%BD%D0%B0%29", "100%", 40, "#FFF7DF", false)
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
SkaynetService

Ремонт MacBook Москва.

Среда, 12 Апреля 2017 г. 20:43 (ссылка)

Ремонт MacBook Москва.
Гарантия качества запчастей и работы.
Вызов курьера.
☎+7 800 234-39-83, ☎+7 915 440-10-90
www.remontmobil.com

Service center Apple in Moscow. Repair Apple MacBook.

#Apple #Macbook #MacBookpro #MacBookair #repairmacbook #macbookwhite #macbookretina #macbookgold #ремонтmacbook #сервисmacbook #чисткаmacbook #зарядкаmacbook #remontmobil #SkynetService #Moscow #Belorusskaya #Tverskaya #Москва #Ленинградскийпроспект #Белорусская #Маяковская #Новослободская #Белаяплощадь

1.
Macbook (700x453, 348Kb)

2.
Macbook1 (700x393, 306Kb)

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
hangar15

Apple Park

Среда, 12 Апреля 2017 г. 19:43 (ссылка)


Крупный инфраструктурный проект фирмы Apple



3936605_Apple_Park (700x350, 468Kb)


Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
ssmmua

Основные причины, из-за которых требуется ремонт iPhone-6s

Вторник, 11 Апреля 2017 г. 08:29 (ссылка)
ssmm.org.ua/?p=9524

Любая модель iPhone ожидается пользователями с нетерпением. Появление шестой версии исключением не стал, он произвел недюжинный фурор, особенно IPhone 6s


1.
apple_iphone_6s (652x400, 138Kb)
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
vzglyad

Предзаказ на iPhone 8 стартует в сентябре — Ru24.Top

Воскресенье, 09 Апреля 2017 г. 09:39 (ссылка)
https://www.ru24.top/hi-tec...tyabre.htm


5766557_5ce064ab88190a290d108557b5308f5359216018 (700x468, 135Kb)



Компания Apple представит и откроет предзаказ на три ожидаемых смартфона в сентябре, но самая топовая из них, с 5,8-дюймовым OLED-дисплеем, начнет поставляться не сразу, а только через несколько недель.



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



Более подробно читайте и смотрите на сайте : https://www.ru24.top/hi-tech/predzakaz-na-iphone-8-startuet-v-sentyabre.htm

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

WebRTC, Safari

Суббота, 08 Апреля 2017 г. 18:49 (ссылка)



В апреле прошлого года по сети прокатился пресс-релиз о том, что Apple выкатывает поддержку WebRTC в браузерах Safari для Mac OS и iOS. С момента выхода пресс-релиза скоро пройдет ровно 1 год как Apple продолжает выкатывать WebRTC для Safari. Ждем.





Однако ждут не все. Кому-то требуется реал-тайм видео в Safari прямо сейчас и в этой статье мы расскажем как обходиться без WebRTC в браузере iOS Safari и Mac OS Safari и чем можно его заменить.



На сегодняшний день нам известны следующие варианты:




  • HLS

  • Flash

  • Websockets

  • WebRTC Plugin

  • iOS native app



Так как мы ищем альтернативу RTC (Real Time Communication), то сравним эти варианты не только по платформам iOS / Mac OS, но и по средней задержке (Latency) в секундах.








































iOS Mac OS Latency
HLS, DASH Да Да 15
Flash RTMP Нет Да 3
Flash RTMFP Нет Да 1
Websockets Да Да 3
WebRTC Plugin Нет Да 0.5


HLS



Как видно из этой таблицы, HLS совсем выпадает из реалтайма со своими 15 и более секундами задержки, хотя и прекрасно работает на обоих платформах.



Flash RTMP



Несмотря на то, что «Flash умер», он продолжает работать на Mac OS и даёт годную для реалтайма задержку. Но дела у флэша на Safari действительно обстоят не очень. Бывает так, что Flash оказывается попросту отключен.



Flash RTMFP



Тоже самое что и Flash RTMP, с той лишь разницей, что работает по UDP и умеет сбрасывать пакеты, что несомненно лучше для реалтайма. Хорошая задержка. Не работает на iOS.



Websockets



Некоторая альтернатива для HLS, если нужна сравнительно низкая задержка. Работает в iOS и Mac OS.



В этом случае видеопоток приходит через Websockets (RFC6455), декодируется на уровне JavaScript и отрисовывается на HTML5 canvas с помощью WebGL. Этот способ работает гораздо быстрее HLS, но имеет свои недостатки:




  1. Односторонняя доставка.Поток можно только проиграть в реалтайме, но нельзя захватить с камеры устройства и отправить на сервер.

  2. Ограничения по разрешению. При разрешении 800x400 и выше, нужен уже мощный CPU на последних iPhone или iPad для ровного декодирования такого потока на JavaScript. С iPhone5 и iPhone6 разрешение скорее всего не удастся поднять выше 640x480 и оставить плавным.



WebRTC Plugin



В Mac OS можно установить WebRTC плагин, который реализует WebRTC. Это несомненно дает самую лучшую задержку, но требует скачивания и установки пользователем стороннего программного обеспечения. Можно справедливо заметить, что Adobe Flash Player тоже плагин и тоже может требовать ручной установки, но «мертвый флэш» плагин от Adobe, очевидно, обгоняет Noname WebRTC плагины по распространенности. Кроме этого, WebRTC плагины не работают в iOS Safari.



Другие альтернативы WebRTC для iOS



Если не ограничиваться браузером Safari, можно рассмотреть следующие варианты:



iOS native app



Имплементим iOS приложение с поддержкой WebRTC и получаем низкую задержку и всю мощь WebRTC-технологии. Не браузер. Требует установки из App Store.



Browser



Браузер с поддержкой WebRTC под iOS. Говорят, что поддерживает WebRTC, но мы не тестировали. Не очень популярный браузер. Но если есть возможность заставить пользователей им пользоваться, можно попробовать это сделать.



Ericsson



Тоже что и Bowser. Непонятно, насколько хорошо работает с WebRTC. Не популярен на iOS.



Ждун



Можно подождать внедрение WebRTC от Apple. Прошел уже год. Возможно осталось ждать не так уж и долго. Может у кого-то есть инсайд?



Websockets как замена WebRTC на iOS



Из таблицы выше видно, что на iOS Safari остается только два варианта: HLS и Websockets. Первый имеет задержку более 15 секунд. Второй имеет свои ограничения и задержку около 3 секунд. Есть еще MPEG DASH, но это тот же HLS / HTTP в плане реалтайма.



В силу перечисленных выше ограничений:




  • Декодинг на JavaScript и поддержка низких разрешений

  • Односторонний стриминг (только воспроизведение)



Вебсокеты, конечно же, не могут претендовать на полноценную замену WebRTC в браузере iOS Safari, но позволяют играть реалтайм-потоки прямо сейчас.



В этом случае, схема реалтаймовой трансляции выглядит так:




  1. Отправляем WebRTC видеопоток, например с Mac OS или Win, браузера Chrome на WebRTC-сервер с поддержкой конвертации в вебсокеты.

  2. WebRTC-сервер конвертирует поток в MPEG + G.711 и заворачивает в транспортный протокол Websockets.

  3. 3iOS Safari устанавливает соединение с сервером по протоколу Websockets и забирает видеопоток. Далее распаковывает видеопоток и декодирует аудио и видео. Аудио проигрывает через Web Audio API, а видео рендерит в Canvas с использованием WebGL.







Тестирование воспроизведения по Websockets в iOS Safari



В качестве сервера используется Web Call Server 5, который поддерживает такую конвертацию и отдает поток на iOS Safari по Websockets. Источником реалтаймового видеопотока может быть вебкамера, которая отправляет видео на сервер или же IP камера, работающая по RTSP.



Так выглядит отправка реалтаймового WebRTC видеопотока на сервер в браузере Google Chrome с десктопа:





А так выглядит воспроизведение этого же видеопотока в реалтайме, в браузере iOS Safari:





Здесь мы в качестве имени видеопотока указали d3c6, т.е. Тот видеопоток, который был отправлен с браузера Chrome по WebRTC.



В случае, если видеопоток забирается с IP-камеры, в iOS Safari это будет выглядеть так:





Как видно из скриншота, в качестве имени видеопотока мы использовали RTSP адрес. Сервер забрал RTSP поток и сконвертировал его в Websockets для iOS Safari.



Интеграция плеера для iOS Safari в веб страницу



Исходный код плеера доступен здесь. Однако плеер по ссылке работает не только для iOS Safari. Он может переключаться между тремя технологиями: WebRTC, Flash, Websockets в порядке приоритета и содержит немного больше кода, чем требуется для воспроизведения в iOS Safari.



Попробуем минимизировать код плеера чтобы продемонстрировать минимальную конфигурацию, которая будет играть в iOS Safari



Минимальный код HTML-страницы будет выглядеть так: player-ios-safari.html









The player








Из этого кода видно, что главный элемент на странице — это div-блок





Именно этот блок будет отвечать за воспроизведении видео, после того как скрипты API вставят туда HTML5 Canvas.



Далее идет скрипт плеера. Объем скрипта: 80 строк: player-ios-safari.js



var SESSION_STATUS = Flashphoner.constants.SESSION_STATUS;
var STREAM_STATUS = Flashphoner.constants.STREAM_STATUS;
var remoteVideo;
var stream;

function init_page() {

//init api
try {
Flashphoner.init({
receiverLocation: '../../dependencies/websocket-player/WSReceiver2.js',
decoderLocation: '../../dependencies/websocket-player/video-worker2.js'
});
} catch(e) {
return;
}

//video display
remoteVideo = document.getElementById("remoteVideo");
onStopped();
}

function onStarted(stream) {
//on playback start
}


function onStopped() {
//on playback stop
}

function start() {

Flashphoner.playFirstSound();

var url = "wss://wcs5-eu.flashphoner.com:8443";

//create session
console.log("Create new session with url " + url);
Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.ESTABLISHED, function(session){
setStatus(session.status());
//session connected, start playback
playStream(session);
}).on(SESSION_STATUS.DISCONNECTED, function(){
setStatus(SESSION_STATUS.DISCONNECTED);
onStopped();
}).on(SESSION_STATUS.FAILED, function(){
setStatus(SESSION_STATUS.FAILED);
onStopped();
});

}

function playStream(session) {
var streamName = "12345";
var options = {
name: streamName,
display: remoteVideo
};

options.playWidth = 640;
options.playHeight = 480;

stream = session.createStream(options).on(STREAM_STATUS.PLAYING, function(stream) {
setStatus(stream.status());
onStarted(stream);
}).on(STREAM_STATUS.STOPPED, function() {
setStatus(STREAM_STATUS.STOPPED);
onStopped();
}).on(STREAM_STATUS.FAILED, function() {
setStatus(STREAM_STATUS.FAILED);
onStopped();
});
stream.play();
}

//show connection or remote stream status
function setStatus(status) {
//display stream status
}


К наиболее важным частям этого скрипта можно отнести инициализацию API




Flashphoner.init({
receiverLocation: '../../dependencies/websocket-player/WSReceiver2.js',
decoderLocation: '../../dependencies/websocket-player/video-worker2.js'
});




При инициализации подгружается еще два скрипта:




  • WSReceiver2.js

  • video-worker2.js



Эти скрипты являются ядром вебсокет плеера. Первый отвечает за доставку видеопотока, а второй за его обработку. Скрипты flashphoner.js, WSReceiver2.js и video-worker2.js доступны для скачивания в сборке Web SDK для Web Call Server и обязательно должны быть подключены для воспроизведения потока в iOS Safari.



Таким образом имеем следующие обязательные скрипты:




  • flashphoner.js

  • WSReceiver2.js

  • video-worker2.js

  • player-ios-safari.js



Установка соединения с сервером происходит с помощью следующего кода:



Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.ESTABLISHED, function(session){
setStatus(session.status());
//session connected, start playback
playStream(session);
}).on(SESSION_STATUS.DISCONNECTED, function(){
setStatus(SESSION_STATUS.DISCONNECTED);
onStopped();
}).on(SESSION_STATUS.FAILED, function(){
setStatus(SESSION_STATUS.FAILED);
onStopped();
});

}


Непосредственно воспроизведение видеопотока осуществляется с помощью метода API createStream().play(). При воспроизведении видеопотока в div-элемент remoteVideo будет встроен HTML-элемент Canvas, в котором будет происходить рендеринг видеопотока.



function playStream(session) {
var streamName = "12345";
var options = {
name: streamName,
display: remoteVideo
};

options.playWidth = 640;
options.playHeight = 480;

stream = session.createStream(options).on(STREAM_STATUS.PLAYING, function(stream) {
setStatus(stream.status());
onStarted(stream);
}).on(STREAM_STATUS.STOPPED, function() {
setStatus(STREAM_STATUS.STOPPED);
onStopped();
}).on(STREAM_STATUS.FAILED, function() {
setStatus(STREAM_STATUS.FAILED);
onStopped();
});
stream.play();
}


Мы захардкодили в коде две вещи:

1) Урл сервера



var url = "wss://wcs5-eu.flashphoner.com:8443";


Это публичный демо-сервер Web Call Server 5. Если с ним что-то не так, вам нужно установить свой для тестирования.



2) Название потока для воспроизведения



 var streamName = "12345";


Это название видеопотока, который мы воспроизводим.

В случае, если это поток с RTSP IP-камеры, его можно прописать так



var streamName = "rtsp://host:554/stream.sdp";


Самая неприметная, но очень важная функция



Flashphoner.playFirstSound();




На мобильных платформах, в частности на iOS Safari есть ограничение Web Audio API, которое не дает проигрывать звук из динамиков до тех пор, пока пользователь не щелкнет пальцем по какому-либо элементу web-страницы. Поэтому при нажатии кнопки Start мы вызываем метод playFirstSound(), который играет короткий кусок сгенерированного аудио, чтобы видео в итоге могло играть с аудио.



В конечном итоге наш кастомный минимальный плеер, состоящий из четырех скриптов и одного HTML файла player-ios-safari.html выглядит так:




  • flashphoner.js

  • WSReceiver2.js

  • video-worker2.js

  • player-ios-safari.js

  • player-ios-safari.html





Скачать исходный код плеера можно здесь.



Таким образом, мы рассказали о текущих альтернативах WebRTC для iOS Safari и разобрали пример с реалтайм-плеером с передачей видео по технологии Websockets. Возможно он поможет кому-то дождаться прихода WebRTC на Safari.



Ссылки



Пресс-релиз — Apple выкатывает WebRTC для Safari

Websockets — RFC6455

WebGL — спецификация

Web Call Server — WebRTC-сервер, который может конвертировать поток в Websockets для воспроизведения на iOS Safari

Установка WCS — скачать и установить

Запуск на Amazon EC2 — запуск готового образа сервера на Amazon AWS

Исходный код — пример плеера: player-ios-safari.js и player-ios-safari.html

Web SDK — web API для сервера WCS, содержащее скрипты flashphoner.js, WSReceiver2.js, video-worker2.js
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/325978/

Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<apple - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda