Tuesday, February 12, 2013

iPhone 5 и сеть и батарейка

Недавно, я все таки решил выкинуть свой VDSL/WiFi modem/router (модель говорить пока не хочется, многие ее могут использовать до сих пор, 
это была первая модель на рынке с поддержкой VDSL/50+Mbit/s)

И если оригинальный, прежний роутер поддерживал WiFi 2.4GHz и 5GHz то фактически, у него была одна антенна и поэтому приходилось выбирать что то из предложенного, но не оба диапазона сразу.
Что не могло особо нравиться в силу живого "зоопарка" разных устройств, которые выкидывать пока что не планируеться.

Вообщем, новое приобретение поддерживает и VDSL (отлично) плюс WiFi стандарты, НО у него две антенны ( можно сделать и два WiFi SSIDs ) - поэтому 2.4GHz и 5GHz поддерживаем одновременно.

Что характерно, мой iPhone5 теперь уверенно сидит на 5GHz и более того, его батарейка (iOS6.1 на данный момент) несколько "пришла в себя" и начала показывать вменяемые расходы.

А теперь о главном, IMHO Apple подсознательно ориентировала iPhone5 для использования в новых WiFi сетях и стандартах,
если у пользователя существующее WiFi оборудование и может быть старое - имеется шанс получить проблемы, когда iPhone5 будет активно "восстанавливать" сеть, дабы она была, но этим же - активно садить батарейку.

В итоге - такая большая путаница в вопросах/ответах/пуллах голосованиях вроде:
- ест ли ваш телефон батарейку больше?
(ибо часть людей уже на новых WiFi routers, 3G/LTE etc )

Вывод: решение будет только индивидуальным.

Disclamer:
- я не знаю, стоит ли говорить пользователям всегда и открыто что то вроде: для нашего апарата, лучше всего избавиться от старого железа в виде роутеров, которые новые протоколы не поддерживают. Или : Ваш провайдер использует "некоторые ньюансы 3G/LTE стандартов" и поэтому....

- я не особо хочу включать reversing mode и смотреть все тех. логи роутера, systemlogs of iOS etc. Reversing mode is OFF

- Apple это просто то, куда и меня сейчас дотянулись руки, но глаза уже видят похожее с другими именами...

Tuesday, January 8, 2013

processor cooling, fun in office ...

As we have to know , processors and CPUs these days during its normal work inclined to get hot, sometime very hot, therefore and to do not overburn itself,
processor die is cooled by some kind of heat sink.
If heat sink does help for some reason , CPU will throttle itself by decreasing working frequency, 
this normally takes some time.

So, recently, we've got a bulk of brand new HW, very brand new. 
Starting of the first system was a bit disappointing - show some weird BIOS issue and nothing more, even initial BIOS doesnt not come up.
Second system - the same, just shown issue is different.
Third....Fourth ....
Fifth - was starting just fine ! But only twice, thirds time and any after - nothing.

After checking on "this and that", decided to replace used thermal paste 
(used one was so bad and was looking more like a used chewing gum from the quality)

and .... it helped !
Story is not about us being smart enough thought...

Using of the proper paste and initially - would save not only my time but others, 
besides and pricewise - it might be like 1 USD on top for 100 systems.

Second story I was told - there is a guy (now - seriously) who is not sure if we are officially allowed to replace this paste and it might change benchmark results.
(We are using very good thermal paste, have no doubts )

So, now, in the office, we are looking for the person, who would officially allow such paste replacement...


Sunday, January 6, 2013

safe platform for banking?

These days banking and mobile banking is a default service of most banks, very convenient service.
However, if you would like to do it safe and secure what platform or PC would you take?

That is the question where for now - there is a simple answer: non-jailbreaked(iOS) OR non-rooted(Android) mobile device.

Think: if on PC or Mac or jailbreaked/rooted mobile device - you can have some form of malware or spyware which you even is not aware of, 
original iOS or (maybe) Android platform is an exception, up to now, nothing can log your keyboard typing, make remote screenshots etc.

Well,it is so good that for jailbreaking you need to do some and particular dedicated steps and only - if you need to.

Sunday, September 2, 2012

Android and boot animation

Just wanted to check how such fancy view been created for Android 4x , Ice Cream Sandwich or ICS:


Quick investigations shown that general boot process for Android-based devices looks like this : linux:boot:android

Just notice such step as:
bootanimationShows the animation during boot-up
ok, after short lookup in the source, I could find one important file, like BootAnimation.cpp

You can see all details inside but in fact - not much OpenGL ES been used, beside showing textures over time as animation frames, see bool BootAnimation::threadLoop()
from the link above.

OpenGL ES usage is mostly all about following calls:
with doing animation sequence itself inside bool BootAnimation::movie()
with even more simple calls.

Sad story, I was under impression that boot animation is dynamic in the full sense and rendered by OpenGL ES 

... well, just was a hope ...


Besides, you can see where animation located and now it will be easy to replace for the own one, if you would wish..

example of the bootanimation.zip is here: http://www.mediafire.com/?663k1abf2d1wy2m
or just google for such raw sample for your best look...


( you can replace default with yours with adb command like:
adb push ./bootanimation.zip /data/local/bootanimation.zip 

see in sources - User's boot animation has higher priority vs system's one,
unless encrypted system is used AND present )


Is my mobile emailing secure?

Just wanted to really check if my emails from my iphone usage can be sniffed meaning be visible to someone if I would use some WiFi hotspot, 
like when traveling...

In order to check this, had to establish my small test environment, like very good described here: Capturing iPhone traffic with Wireshark

Now different techniques possible but I wanted to do it fast, lazy me...

So I opened captured with Wireshark packages and searched for "yahoo" and "google" as email services I am using:


Now about findings:
- For yahoo , I see certificate exchange and more:









- For gmail, also:









and sadly ( joking ) - nothing unencrypted/unsecured about my email text, email contacts etc

Well, feel myself safe , 
or ?


PS: nothing especially been made for default email settings,

However, for gmail account: "Using of SSL" set to ON,
Yahoo mail on iphone currently has no such setting.

Sunday, June 3, 2012

Video decode on CPU vs HW / iOS and battery

Just had a fun to look deep at some video stream app on iOS devices, it is a nice app as it allows to play variety of video stream and not only "supported by Apple" ones (meaning hardware/HW/GPU way of video decode and playback)

Under the hood: it uses VLC parts and bits together with the trick as:
- decode on CPU (arm) / via standard VLC code
- video output via OpenGL stack / iOS SDK


This approach allows to use AirPlay also and quite handy
even thought with some setup limitations:
like you cannot establish a proper connection (called "Mirroring") from withing the app but on the system level (yet restricted by Apple down to the Private API, where such usage will make the app not acceptable for AppStore-based distribution )

where in general: You can add an AirPlay picker to your media playback controls by using MPVolumeView...

And the last note: I have a strong feeling that such approach drain my battery like 2-4x times faster, if I would compare it to iOS default or presumably HW based video playback.

Not sure if I really like it.



Thursday, May 31, 2012

OpenCL 1.2 and OpenCL binaries

it looks that I was a bit sleepy ( or busy? ) and overlooked may be first OpenCL 1.2 implementation been released, from AMD , 
practically many expected changes and described at many places, 

just may be to add from my side, a diff view:
note claimed AVX support.

My kernels work.

Now about interoperability of binary kernels: right nobody was promising much, especially in between vendors, like for now:
- AMD: uses binary and kind of ELF format 

- Intel: uses binary and kind of LLVM bitcode format with minor additions ( to prevent fast disassemble or just an old LLVM (2.8, 2.9 ... )
 ( note: pattern of 0x42 0x43 0xC0 0xDE  starting from offset 0x18, property of bc format, magic number aka BC 0xC0DE )


- Nvidia: uses plain text NVVM IR/PTX format

Monday, April 30, 2012

Ламповый усилитель для наушников

Вроде и пробывал, потом перепробывал много наушников, однако вот эти: Sony-MDR-V700DJ-DJ и служат долго ( первые купил лет 8-10 назад и еще "служат") и привык очень давно. Нравится не только то что закрытые - и народ/семья вокруг не ругается, но и просто качество, хотя фирменный штекер уже перепаял, но это сам дурак...
Кстати - вполне раскачиваются и мелкими устройствами типа iphone.
Так что стали "друзьями в поездках" ибо очень помогает при перелетах отключиться от внешнего мира и ... просто поспать :)

Но соль этого поста в другом - сбывается мечта идиота и скоро ко мне добереться усилитель вот такого содержания - Усилитель на 6ж51п
Все просто, но лампово. Надо конечно насчет DACа правильного подумать, что бы и как бы все красиво - но "города не сразу строятся".
Вообщем - ту би континюед.

Thursday, April 26, 2012

Compressed Video Stream Analyzers

It happens that for any check and analysis of video stream for its very low details and compliance as for h.264/AVC and more standards - not many tools available.

Let me count (without any priority):
and not sure if missed any other one. 

Are they any useful? 

To the good extend - they are unique in the functionality!
How you going to prove that your implementation is good and stable enough without such tools?

I've been getting very good experience with  StreamEye as it helped to solve several very tricky bugs related to NAL's, SEI's, where some players were able to decode and show encoded streams properly but not the others, Windows Media Player was refusing to play but QuickTime...



It will be interesting what will happen with the next standard - "H.265"





Monday, April 23, 2012

Неизвестный Синклер

не знаю: верить или нет, это уже на плечах каждого прочитавшего.

Мне лично, в силу каких то причин, больше довелось "возиться"  с "Специалистом", даже программы были написаны , но потеряны...


Вообщем, цитирую:
"Сэр Клайв Синклер после выпуска ZX-80 и ZX-81 изобретает замечательный компьютер ZX-82, который позднее назвали ZX-Spectrum. В апреле 1982 года он выходит в свет. Компьютер пользуется большой популярностью, и Синклер выпускает в 1983 году Микродрайв и Интерфейс 1. Эти устройства позволяют работать с данными быстрее, чем на кассетах. Кроме того, там есть последовательный порт (RS232) и возможность объединять компьютеры в сеть. В 1984 году появляется вариант с улучшенной клавиатурой и радиатором в блоке питания, который называется ZX Spectrum +. И, наконец, в 1986 году выходит Sinclair Spectrum 128, в котором 128 килобайт памяти, но можно переключиться и в режим с 48 килобайтами. У него также новая операционная система со встроенным калькулятором и расширенным Бейсиком. Но в 1986 году Sinclair Research LTD обанкротился. Права на производство спектрумов приобретает «Амстрад». С 1986 до 1988 года «Амстрад» выпускает три модели: Amstrad Spectrum +2, +2A и +3 с дисководом."

Маловато информации для более чем шестилетнего периода в развитии одного из самых массовых и легендарных компьютеров. К тому же история получилась, мягко говоря, неточной: в момент выпуска ZX80 (именно так выглядит его точное название) Клайв Синклер не был «сэром», то есть не имел рыцарского звания. Как не имел его и двумя годами позднее на момент выпуска ZX Spectrum. К тому же Синклер ничего не изобретает, он лишь возглавляет фирму с ограниченной ответственностью, занимающуюся разработкой (по множеству направлений) с привлечением других компаний.


и дальше в деталях, по годам

Sunday, April 22, 2012

Лжец — социальный навык (с) Dwarf Fortress wiki

"Лжец — социальный навык, используемый дварфами чтобы заводить друзей. Дварфам с развитым навыком проще завести друга и выше шансы стать мэром." 
Взято отсюда: http://www.dfwk.ru/Liar

вообщем даже не знаю, что можно добавить, забавно...

Хотя, Dwarf Fortress это конечно еще одно доказательство что ли, что программирование для игры - дело второе, третье, 
главное же - идея.

Сложность игры поражает:
взято тут

Как продолжение доказательста идеи: "идеи и только потом программирования" - можно посмотреть на второго ( первый - Dwarf Fortress, да , именно так,IMHO ) вдохновителя Minecraft'a - Infiniminer'a и его исходники.
вообщем то и смотреть то мало есть на что, со стороны исходников (может быть только CaveGenerator и в частности: использование градиента и экстраполяций в создании пещеры, все остальное - использование XNA )
но эффект от реализации проэктов - впечатляет,
Minecraft: 
"Несмотря на то, что игра находилась в стадии бета-версии и у неё не было никакой рекламной кампании, по состоянию на 30 марта 2012 года число зарегистрированных пользователей превысило 25 миллионов, из которых более 5 миллионов игроков купили игру"

Wednesday, March 28, 2012

Big bosses coming? Вам не сказали того что вы ожидали?

Тогда не отчаивайтесь, это случается часто и повсеместно,

Случайно я даже нашел сходство с текстом одной и всем известной песни, какой?

Слушайте:

смотреть не обязательно :)

Friday, March 16, 2012

Resolving of true method via objc_msgSend and within IDA for arm binaries

As you know Objective-C is full (80%+) of calls which are made through the help of  the internal objc_msgSend method.
This is not a problem unless you would like to make some reversing for a good reasons :)
and at this point, knowing what method is actually called - kind of a key.

Not a problem any more, just have a look on helper IDC script for IDA which makes situation more transparent and works directly over arm binaries, so it makes from kind of unknown:
__text:000036B8 02 F0 92 EC                       BLX             _objc_msgSend

something more obvious for the method call name:
__text:000036B8 02 F0 92 EC                       BLX             _objc_msgSend ; @selector(getVertexSize)

Just note method name where app will land at.

IDC script in sources available at: https://github.com/x264msna/dearm_msgSend

Sunday, March 11, 2012

Selling copy of ... sample, ripple HD (?) effect

Ripple effect looks quite interesting and there are some questions how to do such.
Apple has released the own sample, available from GLCameraRipple and this is not the end of the story: some guys have decided to sell the sample and more - it has been accepted by Apple and App Store, just here - Ripple HD
(verified by shaders :) - 100% the same, including "Copyright (C) 2011 Apple Inc. All Rights Reserved." )

PS if you are interested in "how to implement?" - just look for the full sources at the sample page from Apple, YUV -> RGB is there and more, like simulation of UVs via
runSimulation and rippleTexCoords

Nothing to say more from the technical side of the Ripple Effect implementation question.

Monday, February 27, 2012

философия,корпорация или корпорация,философия

Наверное тяжело связать два термина однако смотрим и не обманываемся:

смотреть со 2й минуты, все политкоректно и дружелюбно...

интересно, если ли еще подобные рассуждения вслух?

Saturday, February 11, 2012

Understanding Verilog Blocking and Non-blocking Assignments

One of the best and detailed explanation of such important and to the good extend, complex topic - so far, been found here: Understanding Verilog Blocking and Non-blocking Assignments

quite old from the date but so useful in many aspects, must read.

Tuesday, January 24, 2012

Bash'ing in Parallel

When you need to process many items (like I had to process for my video from the previous post - 4817 initial pictures) you would better think about how much time it might take. In my example, even knowing that 4817 pictures with such perfect but not yet well threaded to use all CPU cores tool as imagemagick takes about 2 second per picture , total time is kind of nightmare to wait for.
So, as I am processing on Linux and with script - here is the trick to utilize all local and remote CPU cores even from BASH script and(!) minimum changes required:
Instead of traditional for many years:

for i in `find . -type f -name "file*.png"`;
do 
do_view_port.sh `echo $i | sed -e 's/\.png//' -e 's/^.*_//'`
done 

Where I process all .png files in the folder and one by one with my do_view_port.sh, "magic" script with needed actions, just get GNU Parallel (which is IMHO best by now) and do very minor changes:


find . -type f -name "file*.png"  | sed -e 's/\.png//' -e 's/^.*_//' |
parallel -j+0 --eta do_view_port.sh {.}

where it start to be cleaner for the look and faster ( in my case: 7.65x ).
Just note {.} which represents a "current" arguments...

So and in total - this, kind of one change, allowed me to finish needed changes within as much as 23min (instead of 175min or close to 3 hours ) 

PS: I personally liked this free ETA, as always, meaning time yet to go/Estimated Time to Achieve :)

Sunday, January 22, 2012

breaking picture down

Всегда радовали глаз японские игры, а особенно их эффекты, я бы даже сказал спец-эффекты...
Как то было даже интересно посмотреть как именно они реализовывают эти свои цвета радуги, но не доходили руки...
Однако дошли и до очень IMHO неплохой вещи - Devil May Cry, ее 4й части. 
Оказалось particle машина у них, японцев работает во всю и даже чуть больше,шире и с большим набором красок, включая ядовито-какие-то...
Много конечно реализовывается с помощью "правильно продуманых" mesh-ей и дальше уже шейдеры - например полет мечя вверх лихо повторяется подготовлеными mesh-ами, причем в несколько проходов...
Использование ессно alpha и немного другого зелья...

Как то все это и организовалось в небольшое видео: 


Как именно все подготавливалось, прорисовывалось и пост-обрабатывалось скорее всего выльется в отдельных пост, там и просто и по-разному...


Надо будет еще что то поразбирать "в винтики"...

Update: последний в видео пост-эффект, по-сути, это ессно довольно простой pixel/fragment shader:

// Buffer Definitions: 
//
// cbuffer FilterBlur
// {
//
//   float gXfBlurStart;                // Offset:    0 Size:     4
//   float gXfBlurWidth;                // Offset:    4 Size:     4 [unused]
//   float2 gXfScreenCenter;            // Offset:    8 Size:     8
//   float gXfAlpha;                    // Offset:   16 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                   Type  Format         Dim Slot Elements
// ---------------- ---------- ------- ----------- ---- --------
// PointSampler0       sampler      NA          NA    0        1
// LinearSampler1      sampler      NA          NA    1        1
// PointSampler0TEXTURE    texture   float          2d    0        1
// LinearSampler1TEXTURE    texture   float          2d    1        1
// FilterBlur          cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name             Index   Mask Register SysValue Format   Used
// ---------------- ----- ------ -------- -------- ------ ------
// SV_POSITION          0   xyzw        0      POS  float       
// TEXCOORD             0   xy          1     NONE  float   xy  
// TEXCOORD             1     zw        1     NONE  float       
//
//
// Output signature:
//
// Name             Index   Mask Register SysValue Format   Used
// ---------------- ----- ------ -------- -------- ------ ------
// SV_TARGET            0   xyzw        0   TARGET  float   xyzw
//
ps_4_0
dcl_input linear v1.xy
dcl_output o0.xyzw
dcl_constantbuffer  cb0[2], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d ( float , float , float , float ) t0
dcl_resource_texture2d ( float , float , float , float ) t1
dcl_temps 2
add r0.xy, v1.xyxx, -cb0[0].zwzz
mad r0.xy, r0.xyxx, cb0[0].xxxx, cb0[0].zwzz
sample r0.xyzw, r0.xyxx, t1.xyzw, s1
sample r1.xyzw, v1.xyxx, t0.xyzw, s0
add r0.xyzw, r0.xyzw, -r1.xyzw
mad o0.xyzw, cb0[1].xxxx, r0.xyzw, r1.xyzw
ret