Еще один полезный, но малоизвестный ресурс

Последнее время я частенько нахожу интересные Whitepapers с tradepub.com. Ресурс в Рунете малоизвестный, хотя зря – на нем можо найти много чего полезного и есть функционал подписки на интересующие Whitepapers.

Mill CPU

К регистровой и стековой машине мы привыкли давно… А это – интереснеейшее видео о Mill CPU архитектуре. Очень рекомендую к просмотру всем, кому интересна организация процессоров и виртуальных машин.

Оптимизация кода Python

Решил прояснить для себя возможности оптимизации приложений написанных на Python. В интернете существует довольно много рекомендаций на этот счет, так что я просто пытаюсь свести всю информацию вместе и выяснить чем вызваны те или иные отличия.

Хотя, на первый взгляд кажется, что Python и быстрый код не совместимые понятия, это не совсем правда.

Все тесты проводились на Python 3.3.3 и, само собой, не обошлось без IPython, который ну просто killer-feature этого языка. Continue reading

Pip, update all

Хотелось бы, да? А нету. Нашлось вот такое решение:

import pip
import sys
from subprocess import call

def pip_ver():
    if sys.version_info.major == 3:
        return "pip3"
    else:
        return "pip"

cmd_line = pip_ver() + " install --upgrade "

for dist in pip.get_installed_distributions():
    call(cmd_line + dist.project_name, shell=True)

Использовать просто:

python script_name.py

Делать файл исполнимым не стал, т.к. при явном вызове Python можно указать нужную версию 2.X или 3.X

Явное удаление функций в C++11

Думаю что все помнят что в C++03 для того, что бы сделать какой-либо класс защищенным от копирования было необходимо объявить его конструктор копирования и защищенными.

class Foo {
public:
    Foo(){}
    ~Foo(){}
private:
    Foo(const Foo&);
    Foo& operator=(const Foo&);
};

Continue reading

Make && 10.9

В 10.9 подложили неожиданную пакость. Make внезапно стал запускаться с дополнительной выставленной переменной окружения следующего вида: SDKROOT=/. А так как у нас есть своя, довольно развесистая логика определения используемой SDK, она, конечно же, развалилась.
Микро Makefile:

$(info $(shell env))

И если напустить на него make в консоли получим приблизительно следующее:

... _=/usr/bin/make SDKROOT=/

WTF?!