Обсуждают в коллекции

Фильм «Фонтан» 81


Тёрка в тагах


Друзья

Его(2) Общие(0) Хотят дружить(0)


  • Atrinax

  • Blackoff

  • login

  • login

  • login

  • login

Враги

Его(0) Общие(0) Обиженные(1)

На странице: 24 48 96

Большая Тёрка / Мысли /

Личная лента

фото

olegchir

ыыыть!
Портрет жителя
буду счастлив, если этих ссылок никогда не понадобится:
пример как смешивать Swift и C++: https://github.com/foundry/OpenCVSwiftStitch
туториал по C++: http://www.youtube.com/playlist?list=PLAE85DE8440AA6B83
кодекс Qt5: http://qmlbook.org/
Зачетная картинка из февраля, когда мы делали игрушки в ITTOP.
Нафигачил дома, когда думал над прототипами. Вполне рабочий тамагочи.
Playframework, Scala, заточка под webview.
Надо бы доделать, что ли?

506 страниц «The Swift Programming Language» асилены за сегодя.

Начинал делать заметки, но по скорости не успел.

Вот какие‑то ошметки:

operator precedence отличается от C

Extensions — звериный оскал закрытых исходников

Заебись, а когда инициализируешь stored properties с помощью closure, нужно это свойство объявлять как lazy, чтобы внутри closure был доинициализированный self. (потому что @lazy доступны только после полной инициализации)

Интересный трюк с пропусканием «не до конца инициализированного» self. Сначала инициализируем все что можно, а остальное определяем как optionals, после чего отправляем self в плавание. А на стороне приемника можно зафигачить unowned reference, например.
Наверное, имеет смысл вот так и записывать stored properties: вначале идут все обязательные, а потом пустая строка и implicitly unwrapped optionals. Это будет таким толстенным намеком, что второй блок properties используется после утекания «недоинициализированного» self.

Непонятно, почему именно пользователь должен расставлять ключевые слова convenience для initializers. Следуя их же правилу, designated initializers всегда делегирует вверх, а convenience — across. Так что если initializer звет designated initializer, то он обязан быть convenience. Это и компилятор может определить, не? Зачем писать руками?

Arrays в свифте ваще какие‑то укуренные. Если длина не меняется (но меняются элементы), все ссылки на массив указывают на одну и ту же последовательность. Если длина меняется, реф на Array к которому было сделано изменение, начинает указывать на копию. Ну то есть это понятно с точки зрения внутренней механики, но нахуя пользователю‑то давать видеть весь этот писец. Сделали бы два типа, Array и ХитровыебанныйArrayУКоторогоВидныПотроха.

Забавная у них иммутабельность.Dictionary иммутабелен в нормальном смысле, а вот Array — нельзя менять длину, а содержимое — можно. Короче, они явно не держали в голове immutability‑first. Тут постоянно оперируют с состоянием.
На сайте openssl.org опубликована информация о новых проблемах безопасности в OpenSSL, некоторые из них могут использоваться для получения передаваемых данных.

SSL/TLS уязвимость MITM (man in the middle) (CVE-2014-0224)

Используя специально сформированный пакет handshake (отправляемый при установке соединения), злоумышленник может вынудить клиент и сервер создать слабые ключи. Данная уязвимость позволяет расшифровывать и подменять данные, реализуя атаку man-in-the-middle. Данная атака осуществима только в случае работы с уязвимыми клиентом и сервером.

Уязвимы серверные реализации OpenSSL 1.0.1 и 1.0.2-beta1, клиентские 0.9.8, 1.0.0, 1.0.1. Рекомендуется обновить ПО.

DTLS уязвимость, связанная с рекурсией (CVE-2014-0221)

Узвимость в реализации протокола датаграмм безопасности транспортного уровня, работающего поверх UDP, позволяет вызвать падение OpenSSL клиента в результате ухода в рекурсию. Может использоваться для выполнения DoS атаки.

Пользователям OpenSSL 0.9.8 DTLS необходимо обновиться до версии 0.9.8za
Пользователям OpenSSL 1.0.0 DTLS необходимо обновиться до версии 1.0.0m.
Пользователям OpenSSL 1.0.1 DTLS необходимо обновиться до версии 1.0.1h.

DTLS проблема с ошибочными фрагментами (CVE-2014-0195)

Отправка неверных фрагментов DTLS может привести к ошибке переполнения буфера. Потенциально может привести к исполнению произвольного кода.

Уязвимость касается как клиента, так и сервера, рекомендации по обновлению такие же, как и в предыдущем пункте.

SSL_MODE_RELEASE_BUFFERS разыменование нулевого указателя (CVE-2014-0198)

Удаленный злоумышленник может вызвать отказ в обслуживании, за счет разыменования нулевого указателя в функции do_ssl3_write_function. Уязвимость затрагивает OpenSSL 1.0.0 и 1.0.1, в которых включена опция SSL_MODE_RELEASE_BUFFERS, что бывает редко.

Также в этом случае из-за ошибки в функции ssl3_read_bytes, злоумышленник может вставить свои данные в иные сессии или вызвать отказ в обслуживании. (CVE-2010-5298)

Пользователям OpenSSL 1.0.0 необходимо обновиться до версии 1.0.0m.
Пользователям OpenSSL 1.0.1 необходимо обновиться до версии 1.0.1h.

DoS в анонимном ECDH (CVE-2014-3470) OpenSSL TLS в режиме анонимного ECDH подвержен уязвимости типа отказ в обслуживании.

Пользователям OpenSSL 0.9.8 DTLS необходимо обновиться до версии 0.9.8za
Пользователям OpenSSL 1.0.0 DTLS необходимо обновиться до версии 1.0.0m.
Пользователям OpenSSL 1.0.1 DTLS необходимо обновиться до версии 1.0.1h.

OpenSSL это свободная реализация протоколов TLS и SSL, повсеместно используемая в открытом ПО. Недавние сообщения об уязвимости heartbleed вызвали волну обсуждения надежности данной библиотеки.

Баян

ВНЕЗАПНО, это сайт про Java: http://соснули.рф/
Уже несколько дней пользуюсь Linux. Полет нормальный.

Удивительно, работает почти все — видеокарта определилась, артефактов на экране нет, тиринг ненавязчивый, пульсаудио почти никогда не хрипит (иногда все же хрипит — потому что Скайп при запуске перенстраивает пульсу под себя, и иногда неудачно), музыка играется, и даже фильмы показываются (приходилось запускать VLC всего 1 раз). В важном софте видел всего пару критических багов — например, Скайп внезапно перестал отображать новые сообщения в конференции, решилось удалением ~/.Skype. При этом удобный интерфейс, нормальная консоль, все летает со скоростью света. Выглядит все так же угребищно — но учитывая дизайнерские тренды в Windows, нормальный лук теперь привилегия только OSX.

Правда, в гостиной стоит «общественный» Mac Mini, на котором можно запускать некоторую проприетарщину. Например, сегодня пришлось по работе установить триалку Wirecast, клиент использует ее для трансляции видео в наш флюссоник, и что‑то там у него не работает. Если бы не было мака, пришлось бы реанимировать винду (не уверен что это возможно, на линукс я ее менял в очень плохом состоянии, со временем загрузки в 15 минут). В частности, пишу этот комментарий с Мака.
Доходчиво о лямбдах в жабе
http://habrahabr.ru/post/224593/

Java

Расстановкп файналов не влияет на производительность.
http://habrahabr.ru/company/maxifier/blog/223875/

jdk 

Разбираюсь в JDK
Куча интересного, но детально описывать просто не хватит времени
Нужно пересмотреть так много всего

Например, в Integer Цифры определены от 0 до z.

Минимальная и максимальная система счисления берутся из класса Character
Если этот радикс не входит в диапазон, то выбирается десятичная система
Кое‑где на непопадание есть NumberFormatException

Для десятичной системы есть ускоренный механизм toString
«invariant division by multiplication» trick
Есть две матрицы, в одной цифры идут вертикально, в другой — горизонтально

Для поддержки идентичности в автобоксинге, есть кэш для -128;127,
который потом используется в valueOf

Right Ways to Climb the OpenJDK Source Tree

jdk 

jdk 

Асилил запустить тесты через ant (и в перспективе — через нетбинс)

Проект пытается билдиться в свою собственный каталог 9dev/jdk/build/linux‑i586

А мэйк собирает в корневой 9dev/build/linux‑x86_64-normal‑server‑release/jdk (установил это за $PRODUCT_HOME)

Из консоли напрямую через jtreg работает, а через ant jtreg — натыкается на этот конфликт.

Долго разбирался, как разрешить этот конфликт по‑нормальному, забил.

Вот так заработало:

ln -s $PRODUCT_HOME /home/olegchir/git/9dev/jdk/build/linux‑i586


Еще, когда тестишь из консоли, прописывается полный путь, например:
/home/olegchir/git/9dev/jdk/test/java/io/BufferedInputStream/CloseStream.java

А вот в ~/.openjdk/build.properties пишется уже относительный путь:
jtreg.tests=java/io/BufferedInputStream/CloseStream.java
Скрорость полной загрузки (до того, как жесткий диск успокоится):

Windows: 10 минут
Linux: 20 секунд

Не знаю, что там делает при старте венда, но вызов Дьявола туда наверняка входит
Хочу чтобы за такие‑то ресурсы и мучения у меня был хотя бы Дьявол
В Django из‑за толерастии master/slave переименовывают в leader/follower, а возможно в prima/replica.
Интересно, как они извернутся, когда людей начнут массово клонировать.

Нужно в каком‑нибудь новом проекте назвать бранчи: Барин, Dev‑Холоп, Test‑Холоп, итп. Ящетаю, русские наследники крепостных крестьян ущемляются в привилегии почувствовать себя ущемленными.

Генератор сексистских оскорблений: http://feminist‑software‑foundation.github.io/tumblr‑argument‑generator/
Нужен план хотя бы на год‑два.
Очень печально так жить, как сейчас.

[видео]
Сдохла видеокарта.
Пользуюсь каким‑то говном, которое может выводить картинку на экран.
Хостеры картинок, разрешенные на Рутрекере:

http://fastpic.ru
http://www.radikal.ru
http://imageban.ru/
http://www.imagebam.com/

Наверное, картинки там хранятся достаточно долго.
В Донецкой Народной Республике объявили о начале национализации.

http://www.gazeta.ru/politics/news/2014/05/20/n_6165853.shtml
http://lenta.ru/news/2014/05/20/dnr/

Double facepalm: for when one facepalm doesn't cut it 
@mtreskin срочно переходи на nodejs!

http://phoboslab.org/log/2013/09/html5-live‑video‑streaming‑via‑websockets

они кодируют видео в MPEG‑1
льют его по вебсокету на клиент
и декодируют MPEG‑1 яваскриптом!!!

видишь что йаваскрипт животворящий делает!
Лытдыбр

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

Первая же попытка прошивки привела к окирпичиванию. Дело было так.
Пошел скачать последнюю прошивку, нашел вот эту: http://acer-a500.ru/proshivki/7376-jelly-bean-android-43-dlya-acer-a500-a501-ot-thor2002ro-v4.html
Прошивка требует SBK, SBK в свою очередь требует CPUID, а где его взять?
Взял вот по этой инструкции: http://acer-a500.ru/faq/4425-kak-poluchit-uid-pri-polnostyu-slomannoy-proshivke.html
Дальше, поставил загрузчик вот по этой инструкции: http://acer-a500.ru/faq/141-ustanovka-clockworkmod-recovery-134.html
Только вот тот руткит, который там советуют, не работает, виснет.
Нашел вот этот, он работает: http://forum.xda-developers.com/showthread.php?t=1138228
Поставил по инструкции, и при первой же загрузке планшет показал черный экран.

Конечно, нерабочий планшет всё же лучше, чем кирпич, стал чинить.
Нагуглил, что у планшета есть APX mode, типа для восстановления.
(жмем кнопку резет и включение одновременно секунды четыре).
Для работы с ним есть утилита nvflash.
Для начала пришлось поставить Windows 7, потому что под 8.1 у nvflash всё тормозит адово.
Для этого пришлось собрать отдельный компьютер из хлама.
Хлам тормозит адово, но работает, семерка встала.

Дальше, пошел за официальной прошивкой андроида 3.
А вот хуй, Асеры не очень заботятся о своих пользователей.
Вот тут нашел фанатский анбрик: http://acer-a500.ru/faq/7105-new-unbrick-fastslow-or-reformat.html

Но при его загрузке вылезла ошибка:
Formatting partition 2 BCT please wait.. FAILED!
command failure: create failed (bad data)
bootloader status: partition table is required for this command (code: 8) messag
e: nverror:0x5 (0x1000005) flags: 0

Короче понятно, пиздец файловой системе.
Долго придумывал как починить, в конце концов наткнулся на вот этот тред на хде:
http://forum.tegraowners.com/viewtopic.php?f=8&t=517
Они советуют некий файлик BabSector.rar, ссылки на который давно протухли.
Но в гугле он еще остался, например, здесь: http://rghost.ru/50567951

Дальше запускаю "a501 A.bat", и он наконец-то устанавливается.
Устанавливается загрузчик и Clockwork Recovery.
По совету с форума иду туда, делаю mount /system, format /system. (отформатировал раза три подряд на всякий случай).

После этого поставил анбрик до 3.0.1 - всё зарабтало.
Теперь обновляюсь до официальной прошивки андроида 4.0.3.

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

http://activity.alfabank.ru/Activity/

«Копите с каждым шагом
Свяжите учётную запись вашего фитнес‑трекера с интернет‑банком «Альфа‑Клик» и сохраняйте свои деньги на специальном накопительном счёте «Активити» c повышенной процентной ставкой.»

4:3 -> 16:9

ffmpeg -i ConvertMe.avi -acodec copy -strict -2 -vf crop=in_w:in_h‑144:0:72 -s 720x576 -aspect 16:9 PlayMe.avi

либо

ffmpeg -i ConvertMe.avi -acodec copy -strict -2 -croptop 72 -cropbottom 72 -s 720x576 -aspect 16:9 PlayMe.avi

(объяснения по поводу in_h есть тут: https://bbs.archlinux.org/viewtopic.php?pid=1147161)