Blog

Main posts for this site
#hardware #mac

Macbook без батареи и управление кулером

Category: howto

Умерла очередная батарея Macbook Pro, а замена еще не пришла. Батарея умерал полностью, то есть она тепреь неопределяется и ссистема пишет что она не подключена, при этом она перодически активируется что приводит систему в ступор, так как она пытается брать оттуда питание, а там его нет, - система выключавется или впадает в sleep mode.

В Macbook Pro все устроено так если вынуть батарею и использовать только A/C питание то EFI уменьшает частоту считая что система работает в некоем “Безопасном режиме” Таким образом пользоваться с полной нагрузкой комьютером нельзя, он просто начинает торомозить из за недостатка производительсности. Смотреть ютуб и писать тексты конечно можно, но запускать более производительный софт неполучится.

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

В процессе “гугления” я в очередной раз нашел smcFanControl Внутри которого есть утилита smc который позволяет выставлять различные флаги SMC (System Management Controller) там ~380 ключей или правильнее сказать регистров в которые могут быть записны разные параметры. Несколько параметров управляют частотой вращений кулера.

1
2
3
4
5
6
7
8
9
To read data from each fan:

F0Ac - Fan actual speed
F0Mn - Fan minimum speed
F0Mx - Fan maximum speed
F0Sf - Fan safe speed
F0Tg - Fan target speed
FS!  - See if fans are in automatic or forced mode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
To set a fan to a specific speed:

FS!  - Sets "force mode" to fan.  Bit 0 (right to left) is fan 0, bit 1
       is fan 1, etc
F0Tg - Sets target speed, make sure you fp78 encode it (left shift by 2)

For example, to force both fans to 3500 RPM:
# python -c "print hex(3500 << 2)"
0x36b0
# smc -k "FS! " -w 0003
# smc -k F0Tg -w 36b0
# smc -k F1Tg -w 36b0

..to force fan 0 to 4000 RPM and leave fan 1 in automatic mode:
# smc -k "FS! " -w 0001
# smc -k F0Tg -w 3e80

..to return both fans to automatic mode:
# smc -k "FS! " -w 0000


Полный список флагов и описание найти для долго не искал, но за то нашел хороший guide по Apple SMC и как с ним работаьт на Objective C https://jrw01.github.io/Articles/smc.html С помошью утилиты smc можно получать много интересных показателей и использовать их например для построения виджета с этой информацией внутри.

Под катом список всех регистров SMC.

#sec, #mac

Darkside of the Spotlight (English version)

Category: security

One of the new features you can get with new OSX Yosemite is enhanced spotlight. What exactly Spotlight doing ? Indexing all of your content, except you’re not excluded something in settings. Also Apple tell us “Safety. Built right in.” So does it true ?

Spotlight always knows everything about your old and new files, it indexing not only files, but calendar records, bookmarks, browser history, contacts and emails. Spotlight knows everything about your files and you.

What it does when you’re typing something in a search field Spotlight search everywhere and everything and even loading webpages from your bookmarks and history, questions ?, follow next:

I am take Wireshark sniffer, turn off all other programs and start to watch what exactly Spotlight did when i am type something.

#mac, #sec

Darkside of the Spotlight

Category: security

Одно из новшеств которое вы получили вместе со своей новой OSX это улучшеный Spotlight, - универсальный поисквый движок и поисквая строка с дополнительным функционалом.

Что делает Spotlight ? Индескирует ваш контент, - весь если вы не указали исключения в настройках. А еще Apple говорит “Safety. Built right in.” Так ли это на самом деле ?

Также spotlight Периодически переиндексирует контент. Spotlight всегда знает о ваших новых файлах в системе, и spotlight всегда знает о всех файлах в вашей системе, если вы не указали исключения в настройках.

Он индексирует не только файлы, но и записи в календаре, закладки, историю и ваши поисковы фразы, контакты и письма из почты. Таким образом Spotlight пожалуй самая информированная о вас программа.

Что происходит когда вы что-то набираете в строке поиска, spotlight ищет везде и всё и даже заходит на ваши закладки или записи из хистори браузера, не верите ? смотрите сами:

Я взял wireshark, выключил все что может слать трафик и начал смотреть что происходит при вводе различных поисковых фраз, читайте далее что из этого вышло.

#hardware, #mac

Замена батареи для macbook pro

Category: howto

Пришло время менять батарею, так как она неожиданно быстро и очевидно неправильно отработала свое время, не знаю чем это связано, возможно с моим агрессивыми использованием лэптопа, а возможно и браком батареи, что скорее всего. Не знаю что именно произошло, но параметры стали вот такими:

Charge Remaining (mAh): 148
Fully Charged: Yes
Charging: No
Full Charge Capacity (mAh): 148
Cycle Count: 237
Condition: Service Battery

При этом нормальное количество Cycle Count не новой, но еще не умершей, хорошо работающей батареи колеблится от 500 до 1000.

Я решил заказть новую батарейку, начал искать где ее можно купить. Оказалось не все так просто, но после недолго гугления было выяснено что так или иначе приедтся купить китайскую батарейку примерно за 3000 RUR (70 $ USD).

###Параметры и внешний вид оригинальной батареи:

original-a1322-battery

Model: A1322. 10.9 Volts & 6 Cell 63.5Wh / 5911 mAh

Для каких моделей подходит: Apple MacBook Pro 13” Series MacBook Pro 13” A1278 (2009 Version), MacBook Pro 13” MB990-A, MacBook Pro 13” MB990CH-A, MacBook Pro 13” MB990J-A, MacBook Pro 13” MB990LL-A, MacBook Pro 13” MB990TA-A, MacBook Pro 13” MB990ZP-A, MacBook Pro 13” MB991-A, MacBook Pro 13” MB991CH-A, MacBook Pro 13” MB991J-A, MacBook Pro 13” MB991LL-A, MacBook Pro 13” MB991TA-A, MacBook Pro 13” Precision Aluminum Unibody (2009 Version), MacBook Pro 13” MB991ZP-A

###Параметры и внешний вид китайского заменителя:

change-for-a1322-battery

Посмотреть в полном размере

Model: CL5322, производитель: PS. 4200mAh / 47Wh, 11.1 Volts

Обратие внимание на вншений вид корпуса, у заменной батареи он матовый. По параметрам можно сказать что батарея мягко говорят не совсем является заменой оригиналу, но тем не менее работает, и ее ее даже продают. Работает она менее дольше чем оригинал, - 4 часа против 6 у оригинальной...

#privacy, #sec

Your router may be already hacked

Category: security

if you get the same like on the screenshot below

you should know, you are powned, at least router which throw you to internet, was hacked, and works for person who hacked it. See explanation and cure below. On this screen you can see banners with ADs over the page opened in Mobile Safari on iPhone 5, it can happen when all your http traffic goes through enemy router, and can be modified in anyway.

Read next for more explanations

First of all, it’s all about default passwords, never ever leave default setings and passwords. So let’s go to router network settings:

hacked router screenshot

The 188.93.211.116 is the enemy dns server address which route your connections to special proxy server which modified your http traffic.

After that your must check startup commands that execute when your router switches on:

hacked router startup command screenshot

As you see here, this is same IP address in this textarea with linux commands, this commands are dynamically setup dns servers on the router, and if you’re not clean it up from this place, your router will change addreses after reboot. Delete all comands, or better is change IP address on your trusted DNS server IP. If you don’t remember anything suitable address you always can set 8.8.8.8 it is The Google dns servers, and also you can use this opensource dns.

#dev, #ruby

Capistrano 3 & Rails 4

Category: howto

Hello, today i am tell you about Capistrano 3 and Rails 4 setup. For those who never heard about Capistrano, this is deployment library which can be scripted on ruby, in any ways.

First of all Gemfile:

gem 'unicorn'

gem 'capistrano'
gem 'capistrano-rvm'
gem 'capistrano-bundler'
gem 'capistrano-rails'

After that add into Capfile some require string to previous install gems:

require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails'

Next to deploy.rb:

set :application "your_app_name"
set :repo_url "your repository url"
set :branch 

Also you need to edit deploy/production.rb to setup production server hostname . Read full article to understain the key problem and solution for it …

#dev #javascript

2048 game bot

Category: howto

Есть такая игра 2048, суть ее в том чтобы собрать квадрат 2048 из других меньших квадратов, складываются квадраты только с одинаковой цифрой 2+2, 4+4, 8+8 и т.д

Игра написана на Javascript и HTML, а это значит можно попробовать написать бота. Открыв инспектор я сразу посмотрел на структуру этих квадратов, все оказалось очень просто об этом ниже под катом.

#productivity, #osx

Продуктивное использование Mail.app

Category: howto

Привет хочу рассказать как я эффективно использую стандартный почтовый клиент Mail.app в OSX.

Когда появляется много почтовых ящиков им нужно как то эффективно управлять, желательно в одном месте. С недавних пор я перешел на довольно удобную парадигму “Unread inbox” директории в которую попадают все не прочитанные письма со всех ящиков, подробнее далее.

#admin, #linux

Apache 2.2 to 2.4 migration и remoteip модуль

Category: howto

Основное на что надо обратить внимание это директивы доступа и новый модуль remoteip который выполняет теже функции и что и знакомый всем rpaf

2.2 configuration:

Order deny,allow
Deny from all

2.4 configuration:

Require all denied

2.2 configuration:

Order Deny,Allow
Deny from all
Allow from example.org

2.4 configuration:

Require host example.org

Подробнее читайте далее

#dev, #hardware

Arduino music - проигрывание музыки на платформе Ардиуно

Category: howto

Долго лежала в тумбочке моя Arduino, преждем чем я достал ее и решил хоть что нибудь попробовать, ну и попробовал издавать с помощью нее какие нибудь звуки. Для этого я нашел какуюто старую пьезо пищалку и срочно прикрепил ее на breadboard, подключил ее к arduino написал немного кода, и вот что получилось:

В планах наверное подключить туда клавиатуру, чтобы сделать синтезатор, чтобы можно было делать chiptune

Исходники под катом и на гитхабе https://github.com/noroot/arduinostuff, код не мой, взял с гугла источник уже непомню, но код немного исправил.

Для тех кто не знает что такое Arduino, - это такая opensource hardware платформа для программирования микроконтроллеров, выглядит она так:

Файл pitches.h можно взять здесь https://github.com/noroot/arduinostuff/blob/master/lib/pitches.h