Blog

Main posts for this site
#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

#dev, #php

how to render template into variable in ZF2

Category: howto

Следующий пример показывает как можно просто отрендерить шаблон в переменную в Zend Framework 2

<?php 
 
public function coolAction()
{
	$d = array();
	$r = new PhpRenderer();
	$resolver = new \Zend\View\Resolver\TemplateMapResolver();
 
	$resolver->setMap(array(
		'confirmation_template' => __DIR__ . '/../../../view/user/mail/confirmation.phtml' // full path to template
	));
	$r->setResolver($resolver);
	$model = new ViewModel($d);
	$model->setTemplate('confirmation_template');
	$x = $r->render($model);
}
?>
#dev, #javascript

How to define console object

Category: howto

Ситуация такая, допустим вы везде испоьзовали для отладки console.log, но потом на тестировании в разных браузерах обнаружили что console object is undefined например в IE нет никакого console object.

Этот код определяет обьект console и может быть использован для эмуляции или просто заглушки(чтобы небыло алертов об ошибках).

if (typeof(console) == 'undefined') {
    var console = {
        log: function(message) {},
        info: function(message) {},
        warn: function(message) {},
        error: function(message) {
            alert(message);
        }
    }
}