Судоку

Категории: Разработка JFF

Мне тут попалось судоку, которое я не мог решить без полного перебора вариантов. Когда было сделано несколько итераций, то стало понятно, что решения можно найти лишь перебирая все варианты. Нельзя было найти ни одной подсказки.

Вот оно:

|   | 7 |   |   |   |   | 4 |   | 5 |
|   |   |   | 6 | 8 | 9 |   |   |   |
|   |   |   |   |   | 4 |   |   |   |
| 9 |   | 5 |   | 6 |   |   |   | 7 |
|   | 2 |   |   |   | 7 |   | 3 |   |
| 6 | 3 |   |   |   |   |   |   |   |
| 3 |   | 1 |   |   |   |   |   |   |
|   |   |   | 3 |   |   | 8 |   |   |
| 4 |   |   | 8 |   |   | 6 |   |   |

Стало интересно: может быть где-то ошибка в поиске решения? Все же человек не машина, а следовательно ошибается чаще.

Что мы знаем про простейшие решения судоку?

Исходники

Chrome: события focus и blur

Категории: Разработка

У движка webkit есть особенность по-умолчанию инпуты и якоря не получают события focus и blur если у них не установлено свойство tabindex.

Для того, чтобы элементы получали событие focus/blur им нужно присвоить tabindex.

html; gutter: true; first-line: 1; highlight: [] <a tabindex="1" href="#">Жмякни</a>

Это не баг. Это особенность движка webkit.

Практический криптоанализ: дилетант и афинные шифры

Категории: Обработка текста

Дело было вечером. Но делать было чего.

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

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

Исходный текст:
abcdefghijklmnopqrstuvwxyz

Зашифрованный текст:
ZYXWVUTSRQPONMLKJIHGFEDCBA

И константы a и b равны соотвестенно 25. Почему так - хорошо показано в вики.

Но сейчас не об этом. Шифровать мы будем Стругацких: “Полдень XXII Век” на английском. Шифроваться ьудет только текст. Без html-разметки.

А после шифрования мы потеряем ключ и попробуем раскодировать.

RxJS: oneInTime

Категории: Разработка HowTo

```javascript; gutter: true; first-line: 1; highlight: [] Rx.Observable.prototype.oneInTime = function (delay) { return this .take(1) .merge(Rx.Observable.empty().delay(delay)) .repeat(); };


необходимые модули:

rx.js rx.binding.js rx.time.js ```

Сгенерировать латинский алфавит

Категории: HowTo
$ echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z
$ printf "%sn" {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z
$ for i in $(echo {a..z});do echo $i;done a b c d e f g h i j k l m n o p q r s t u v w x y z