Popular Tags:

Способы организации хранения данных в распределенных системах

11.10.2014 at 11:15

В книге Семь баз данных за семь недель обратил внимание на то, как отличается подход к распределенному хранению данных в различных БД.

MongoDB

Данные реплицируются на несколько серверов. Читать и писать можно только на главном сервере. Если главный сервер недоступен – происходят выборы нового главного. Им становится тот сервер, на котором более актуальные данные. read more

Генерация текста с помощью цепи Маркова на F#

16.09.2014 at 17:59

Продолжаю изучать F#. В прошлый раз я написал парсер хабра, теперь на основе него буду писать генератор текста.

Алгоритм генерации

На входе в алгоритм – текст, в нашем случае – спарсенные с хабра статьи. Весь текст разбивается на последовательности из трех слов. Каждое новое слово в генерируемом тексте подбирается на основе двух предыдущих следующим образом: берутся все тройки, которые начинаются с этих слов и из них выбирается случайная. read more

Рецензия. MATLAB Succinctly

08.09.2014 at 04:00

Matlab
Очередная книга из серии Succinctly.
MATLAB – это сокращение от Matrix Laboratory. Эта программа предназначена для математических вычислений. Заточена именно для работы с матрицами.
Основные темы книги:

  • Пользовательский интерфейс
  • Типы данных
  • Основы синтаксиса
  • Массивы и матрицы
  • Скрипты
  • Построение графиков
  • ООП

Все эти темы раскрыты достаточно подробно для того, чтобы приступать к работе. read more

AttachedProperty

03.09.2014 at 05:17

Это подвид DependencyProperty, которые объявляются в одном классе, а значения устанавливаются для экземпляров другого класса. Один из самых распространенных примеров – Grid.Row и Grid.Column, которые устанавливаются для контролей, вложенных в грид.

Особенности

  • Класс, в котором объявлено AttachedProperty не обязательно должен наследоваться от DependencyObject.
  • Классы, для экземпляров которых устанавливается значение AttachedProperty, должны быть унаследованы от DependencyObject.
read more

DependencyProperty

02.09.2014 at 19:41

DependencyProperty – механизм WPF, позволяющий означить свойства визуальных контролей через XAML. Многие свойства, используемые в XAML разметке – на самом деле DependencyProperty.

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

DependencyProperty нужны для:

  • Data Binding. Биндинг возможен только для DependencyProperty.
  • Анимаций.
  • Стилей и триггеров.
  • Они появляются в окне свойств контрола в Visual Studio

Создание DependencyProperty

Класс, содержащий DependencyProperty, должен быть унаследован от DependencyObject. read more

Парсер хабрахабра на F#

25.08.2014 at 16:53

Tachikoma
Продолжаю изучать F#. Сегодня расскажу о первой программе – парсере хабра.
Для парсинга я выбрал один хаб – “Информационная безопасность”.
Страницы этого хаба имеют вид http://habrahabr.ru/hub/infosecurity/pageN/ где N – номер страницы.
Парсить HTML я буду с помощью библиотеки HtmlAgilityPack.

Сначала подготовим несколько служебных функций:

let validPath (path : string) =
  Array.fold (fun (acc:string) item -> acc.Replace(item, '_')) path (Path.GetInvalidFileNameChars())

Эта функция преобразует строку в корректное имя файла, заменяя невалидные символы. read more

Рецензия. F# Succintly

15.08.2014 at 05:13

fsharp
Одна из книг серии Succintly от компании Syncfusion. Это серия коротких (около 100 страниц) книг по различным технологиям. Предназначены для ознакомления с технологией. Книги бесплатны и доступны в форматах pdf и mobi.
F# Succintly описывает базовый синтаксис языка:

  • Функции
  • Операторы
  • Рекурсию
  • Списки
  • Сопоставление с образцом (pattern matching)
  • Типы
  • Интерфейсы
  • Классы
  • Приведение типов

Все эти вещи раскрыты достаточно подробно, чтобы приступать к программированию. read more

Шпаргалка по F#

08.08.2014 at 07:13

Начал изучать F# и решил набросать шпаргалку. Буду дополнять по мере изучения.

Базовый синтаксис

Отступы значимы. Причем отступы должны быть пробельными – табуляция не подойдет.
Определить переменную:

let sampleInteger = 176

Определить функцию:

let func1 x = x*x + 3  

Функции могут быть вложенными.
Функция всегда возвращает результат последнего вычисления.

let add3ints x y z = 
let add2ints x y = 
    x + y
  add2ints x (add2ints y z)

System.Console.WriteLine(add3ints 1 2 3)
System.Console.ReadLine()

Операции со списками

Создание списка:

let mylist = [1; 2; 3; 4; 5]

Получение нового списка путем преобразования старого:

let multipliedList = List.map (fun x -> x * 3) mylist

Фильтрация списка:

let biglist = List.filter (fun x -> x > 7) multipliedList

Оператор |позволяет использовать функции в Linq стиле. read more

Рецензия. Идеальная IT-компания. Как из гиков собрать команду программистов.

31.07.2014 at 03:33

teamgeek
Книга предназначена не столько для менеджеров, сколько для рядовых программистов. Основная тема книги – внутреннее и внешнее взаимодействие команды разработчиков.
Описываются проблемы в общении между участниками команды, их причины и пути решения. Этому посвящены 2 главы – одна с точки зрения участника команды, другая – с точки зрения тимлида. Глава для тимлида ориентирована на программистов, которым из-за опыта пришлось взять на себя руководство командой. read more

Использование Steam API на C#

22.07.2014 at 03:51

Получения ключа

Ключ для использования API получаем здесь.

Документация

Справка по апи доступна на странице для разработчиков. У нее есть один недостаток – она глючная и описаны не все методы. Вместо этого лучше использовать стороннюю справку.

JSON

Стим умеет отдавать данные как в XML, так и в JSON. read more