An open API service indexing awesome lists of open source software.

https://github.com/vitkarpov/shri-2013

Homework for SHRI-2013
https://github.com/vitkarpov/shri-2013

Last synced: about 2 months ago
JSON representation

Homework for SHRI-2013

Awesome Lists containing this project

README

        

## ШРИ 2013

В этом репозитории будут домашние задания со ШРИ 2013, а также, возможно, некоторые «заметки на полях». Может получится что-то вроде дневника лекций как у Винера по теории информации. Для личного использования (приятно будет потом открыть и вспомнить чем занимался).

### Работа в терминале

Лекция Виктора Ашика о терминале, основных командах, конвейерах, философии юникс, переменных окружения и тому подобном.

*Домашнее задание*:

> Написать программу на `perl`, которая найдет все html-файлы и в заголовках страниц (внутри ``) заменит ШРИ на КИТ

В качестве входных данных программы — пути до файлов. Интерфейс выглядит примерно таким образом:

```bash
perl replace-title path/to/files/*html
```

Тогда будут обработаны все файлы html в указанной папке.

Исходный код программы лежит в папке **perl-regexp** данного репозитория

На проверке домашнего задания Виктор показал как решается эта задача буквально в строку, используя потоковый редактор `sed` (однако, все-таки даже ее стоит оформить в отдельный файл, который потом выполнять из-под bash).

```bash
find . -type f -iname '*.html' -print0 | xargs -0 sed -i .bak 's/\(.*\)ШРИ\(.*<\/title>\)/\1КИТ\2/'
```

### Текстовые редакторы

Был очень клевый рассказ об основных вещах, которые нужно уметь делать быстро при работе с кодом. Для этого нужно научить свой текстовый редактор (никто не агитировал к использованию конкретного редактора или среды — главное, понять что нужно уметь делать) и приучить себя делать определенные вещи.

* десятипальцевый слепой набор
* быстрое перемещение по тексту
* поиск и замена
* быстрое перемещение по файлам
* дифы из редактора
* работа с гитом из редактора

Игорь Новак показывал как он работает в Vim.

[Интересная ссылка](http://vim-adventures.com/) для изучения Vim в игровой форме (реально интересная игрушка)

### Системы менеджмента кода

[Сергей Сергеев](https://github.com/gurugray/) показывал [отличную презентацию](http://gurugray.ru/0912/shri/) по работе с системами контроля версий. Точнее Сергей разделяет понятие «системы контроля версий» и «системы менеджмента кода».

В презентации была [клевая интерактивная демка](https://github.com/gurugray/git-trainer): вводишь гитовые команды и получаешь граф коммитов с разделением на ветки.

С помощью этой демки можно легко «увидеть» разницу между `git merge` и `git rebase`

Много было рассказано про Git Flow — что это такое.