22.03.2014
kaa.python
Думаю, ни для кого не секрет то, что основная реализация языка программирования Python фактически не поддерживает многопоточности. Есть модули которые позволяют эмулировать потоки посредствам процессов, но подобный путь крайне требователен к ресурсам и поэтому его применимость крайне ограниченна, особенно для большого количества операций ввода/вывода. При этом, в подавляющем большинстве случаев, распараллеливание задач не несет какого-то серьезного практического смысла и просто является одним из возможных архитектурных решений. В качестве альтернативы потокам могут выступать асинхронные операции, а с учетом ограничений интерпретатора, подобный подход должен бы был быть родным подходом в Python уже много лет как. Тем не менее, появился долгожданный модуль asyncio только в Python 3.4, но это в любом случае лучше чем никогда.
http://sysdev.me/python-asyncio/
16.02.2014
kaa.python
На днях компания Apple представила новый документы: Secure Coding Guide. Вышло у них немного "водянисто", но в целом стоит отметить хорошую структурированность и продуманность документа.
31.01.2014
kaa.python
Да, на сайте не так давно появилась поддержка раскраски Objective-C. Тэга нет в в панеле редактирования, так что вставлять вручную [ objc ], само собой без пробелов, и будет вам счастье


@interface Rect : NSObject
{
    float     width;
    float     height;
}
- (float) width;
- (float) height;
@end
03.02.2014
kaa.python
Реализуемая Rust модель памяти оставляет свой отпечаток на всем, включая такие вещи как замыкания и функции обратного вызова. Привычные по другим языкам концепции в случае с Rust начинают вести себя иначе и далеко не с первого взгляда очевидно почему такое происходит.

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

http://sysdev.me/callbacks-closures-and-rust-memry-model/
01.02.2014
kaa.python
В Rust используется разрушающее сопоставление с образцом, что в купе с моделью памяти Rust, иногда, дает очень занятные эффекты. Для примера возьмем структуру MyStruct и создадим две переменные типа Option в которых будет лежать наша структура, в одном случае в виде стекового объекта, а во втором в виде уникального указателя.
struct MyStruct {
    val: int
}
let stack_data = Some(MyStruct{val:42});
let own_data = Some(~MyStruct{val:42});


http://sysdev.me/destructive-pattern-matching
01.02.2014
kaa.python
Теперь RSDN поддерживат и Rust!
extern mod std;

use std::{task, io, uint, libc};
use std::comm::{SharedChan};

struct TestInfo {
    mode: task::SchedMode,
    tasks_count: i32,
    timeout: i64
}


Как несложно догадаться, нобходимо использовать тег rust в квадратных скобочках.
07.01.2014
kaa.python
Приятная новость: в Clang сделали полную поддержку C++1Y. Вообще, в компиляторе довольно много интересных изменений, начиная с поддержки дополнительных диагностических сообщений, заканчивая режимом совместимости с компилятором из Visual Studio. Подробности тут.
<  1  2   rss