Обновление макбук про

В этой статье я расскажу про свой опыт “железного” и софтверного апгрейда MacBook Pro 13″ Unibody Mid 2012  и установкой “с нуля” новой ОС от Apple — Yosemite. Как оказалось, заменить память и “хард” можно самому — это очень просто. Для этого понадобится две отвертки Phillips #00 и T6 Torx, необходимые комплектующие и хорошее настроение.

Continue reading

Трансляция видео с компьютера на iphone

В последнее время задался вопросом: “А можно ли смотреть на iphone видео с домашнего компьютера?”. Оказывается, это возможно и даже бесплатно. В этой статье я расскажу как это сделать.

Continue reading

Использование screen в Linux

Что такое screen?

screen – это консольный оконный менеджер с поддержкой вкладок (или окон). Он имеет замечательную возможность продолжать работу с того места, где остановились в прошлый раз. В этой статье я расскажу как быстро приступить к работе.

Continue reading

SSH аутентификация через PuTTY с использованием ключей

Если нужно постоянно “ходить” по ssh и до сих пор не используется пара ключей для авторизации, то эта статья для вас.

Во-первых, использование ключей является удобной практикой, а во-вторых, это еще и безопасный способ подключения. В этой статье я расскажу как создать приватный и публичный ключи. Будем использовать инструменты PuTTY, PuTTYgen и Pageant.

Continue reading

Сортировка каналов на ТВ-тюнере KAON K-E2270CO

В этой статье я расскажу как можно настроить сортировку каналов на ТВ-тюнере KAON K-E2270CO. Статья длинная с множеством картинок. Надеюсь она поможет сохранить время и нервы некоторым из вас.

Continue reading

Как изменить язык интерфейса в NetBeans 8.0 на английский?

В NetBeans очень не нравится тот факт, что для русской винды он показывает русский интерфейс, в котором едут буквы. Это некрасиво как минимум. Статья продолжает быть актуальной для версий NetBeans 7.4 и 8.0.

Задача.

В NetBeans отображается русский интерфейс. Нужно переключить на английский.

Решение.

Открываем конфигурационный файл netbeans.conf для редактирования, который находится по адресу Х:\Program Files\NetBeans 8.0\etc для Windows или по адресу ./netbeans-8.0/etc/netbeans.conf для Linux.

Находим опцию netbeans_default_options и дописываем в конец до символа закрывающих кавычек:
-J-Duser.language=en -J-Duser.region=US

Спасибо источнику:
http://tigor.com.ua/blog/2011/08/10/set-netbeans-user-interface-language/

Английский вариант:
https://blogs.oracle.com/tao/entry/set_netbeans_user_interface_language

 

 

Превратить столбец в строку в MySQL

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

В этом мне помогла функция GROUP_CONCAT:

1
2
3
4
5
6
SELECT 1, GROUP_CONCAT(id SEPARATOR ', ')
    FROM (
        SELECT 1, id
        FROM my_table_name
    ) AS t
GROUP BY 1

1
2
3

Результат

1, 2, 3

UPD:
Более простой вариант

1
2
3
4
SELECT
    GROUP_CONCAT (id SEPARATOR ', ')
FROM
    mytable

Дополнительная информация:
Нагайченко Максим пишет в своем блоге про GROUP_CONCAT()

Тестирование статических методов в PHPUnit

С введением позднего статического связывания в PHP 5.3 появилась возможность красиво протестировать статические методы тестируемого класса.

Допустим у нас есть класс Foo, с двумя методами doSomething() и prefix(). Последний статический и вызывается внутри doSomething().

1
2
3
4
5
6
7
8
9
10
11
12
class Foo {
    public function doSomething($var)
    {
        $prefix = static::prefix();
        return $prefix . $var;
    }
    public static function prefix()
    {
        return 'foo';
    }
}

Хочу обратить внимание на строчку #4. Здесь используется static:: вместо self::

Задача:
Подменить выполнение статического метода prefix() внутри doSomething().

Решение:
Создаем мок на тестируемый класс. Для него генерируется уникальное имя, которое мы извлекаем с помощью getMockClass(). Используем staticExpects() для подмены результата вызова статического метода.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class FooTest extends PHPUnit_Framework_TestCase {
    public function testDoSomething()
    {
        $foo = $this->getMock('Foo', array('prefix'));
        $class = $this->getMockClass('Foo', array('prefix'));
        $class::staticExpects($this->any())
            ->method('prefix')
            ->will($this->returnValue('bar'));
        $this->assertEquals('bar9', $foo->doSomething('9'));
    }
}

По сути staticExpects()  является аналогом expects() только для статических классов. Единственное (и одно из самых главных) ограничений заключается в том, что мокнуть статический метод можно только внутри тестируемого класса. Это еще один минус в пользу использования статических методов.

Еще одно похожее решение:
Можно еще воспользоваться строителем мока

1
2
3
4
5
6
7
8
9
10
11
12
    public function testDoSomething3()
    {
        $foo = $this->getMockBuilder('Foo')
            ->setMethods(array('prefix'))
            ->getMock();
        
        $foo::staticExpects($this->any())
            ->method('prefix')
            ->will($this->returnValue('bar'));
        
        $this->assertEquals('bar9', $foo->doSomething('9'));
    }

Источник: http://sebastian-bergmann.de/archives/883-Stubbing-and-Mocking-Static-Methods.html

Объединение ЖЖ и blogpost

Сегодня можно считать официальной датой старта моего блога на новом адресе. Удалось объеденить посты из блога и ЖЖ за все время существования оных.

Для чего это нужно? Хочу сделать единственную точку входа без головной боли в поддержке разных блогов, ЖЖ и подобных.

Нужно будет провести еще много работы в области марафета сообщений и, возможно, шаблона.

Благодарен платформе Вордпрес за удобный инструмент для блоггинга.

Для чего нужен ЖЖ?

На данный момент существует куча разных социальных возможностей высказаться: твиттер, вк, фб. Но иногда бывает появляется желание сказать что-то бОльшее, нежели можно поместить в 170 символов. Вот для этого существует ЖЖ.

Почему не завести личный блог?
Да просто потому, что часто бывает лень это сделать, а здесь уже все готово, пусть не с самым лучшим оформлением и удобством.

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

Спасибо за внимание.