Задачи — различия между версиями
(qITKWuGQspKFK) |
Raw mat (обсуждение | вклад) |
||
(не показаны 68 промежуточных версий 55 участников) | |||
Строка 1: | Строка 1: | ||
− | + | В данном разделе мы публикуем текущий список задач Deeptown SDK. Большая часть задач — это разработка тех или иных модулей/программ на языке [[K++]]. Некоторые задачи предполагают реализацию на C++. | |
+ | |||
+ | Данный раздел будет пополняться со временем. Особо важные изменения будут отмечаться в [[Рассылка|рассылке]]. | ||
+ | |||
+ | == Информация == | ||
+ | |||
+ | === Для кого этот раздел === | ||
+ | |||
+ | Браться за выполнение задач может абсолютно любой желающий. В том числе и Вы, дорогой читатель ;) | ||
+ | |||
+ | Для простых задач потребуются только базовые навыки программирования и знание [[K++]], который [[K++|подробно описан]] на этом сайте. Категории сложности задач обозначены в их описаниях. | ||
+ | |||
+ | Однако будьте готовы к тому, что мы не примем некачественный код. Мы следим за качеством нашей системы. Перед тем, как приступать, пожалуйста, ознакомьтесь с [[Правила оформления кода|правилами оформления кода]]. | ||
+ | |||
+ | === Оформление данного раздела === | ||
+ | |||
+ | В данном разделе задачи разбиты на несколько категорий. Каждая задача — это подраздел в своей категории. Простые задачи описываются прямо в тексте; для более сложных даются ссылки на отдельные страницы описаний. Новые задачи всегда добавляются наверх своего раздела. | ||
+ | |||
+ | Для каждой задачи приводится следующая служебная информация: | ||
+ | * '''сложность''' — уровень сложности задачи: простая, средняя, сложная | ||
+ | * '''технологии''' — список технологий (языков, библиотек, etc), которые потребуются для выполнения задачи | ||
+ | * '''приоритет''' — степень важности задачи: низкий, средний, высокий | ||
+ | * '''автор''' — подпись автора задачи | ||
+ | * '''примечания''' — технические примечания автора | ||
+ | * '''исполнитель''' — контактная информация исполнителя | ||
+ | * '''срок''' — срок завершения, обозначенный исполнителем | ||
+ | |||
+ | === Порядок выполнения задач === | ||
+ | |||
+ | Прежде всего, выберите задачу, за которую Вы хотели бы взяться. Выбирать следует только из тех задач, для которых не указан исполнитель. Предпочтительнее брать задачи с более высоким приоритетом, но это не обязательно: прежде всего выбирайте то, что Вам будет интересно делать. | ||
+ | |||
+ | После того как выбор сделан, вставьте информацию об исполнителе и о сроке. | ||
+ | |||
+ | В информации об исполнителе должно указываться какое-нибудь средство связи с Вами: e-mail, ICQ или jabber. Вы можете написать свои контактные данные в "мою страницу" вики, а в графу "исполнитель" просто поставить подпись. | ||
+ | |||
+ | Срок введен для того, чтобы отсекать "призраков". Представьте что кто-то взял задачу и пропал на долгое время. С одной стороны передавать эту задачу кому-то другому нельзя, потому что она уже занята; с другой — работа стоит. | ||
+ | |||
+ | Срок — это не строгое поле. Если Вы активно работаете над задачей, но не успеваете в срок — Вы всегда можете его отодвинуть. Главное для нас то, что процесс идет. | ||
+ | |||
+ | В поле "срок" следует вписать предполагаемую дату завершения. Максимальный срок, который Вы можете установить — это текущая дата плюс 2 недели, если иное не указано в примечаниях к задаче. | ||
+ | |||
+ | Процедура обнаружения "призраков" такова. Когда срок исполнения выходит, мы связываемся с Вами по указанным контактным данным, и узнаем статус задачи/договариваемся о дальнейшем. Если связаться не удается в течение недели — мы убираем информацию об исполнителе, открывая таким образом задачу для других. | ||
+ | |||
+ | === Порядок приема задач === | ||
+ | |||
+ | На данный момент у нас нет (публичного) централизованного обменника исходными кодами. Поэтому, высылайте свои труды в архиве на адрес developers (гав) deeptown.org. Либо Вы можете выложить их куда-нибудь в интернет, и выслать ссылку по этому адресу. | ||
+ | |||
+ | === Условия лицензирования === | ||
+ | |||
+ | Мы можем принять Ваш код только в том случае, если Вы передаете его нам на условиях свободной лицензии. Пожалуйста, вложите текст лицензии в архив с кодом. Мы не будем принимать архивы без текстов лицензии, поскольку это может грозить нам судебными исками (исключение — только для наших разработчиков, которые подписали с нами договор). | ||
+ | |||
+ | Предпочтительной является [http://www.opensource.org/licenses/mit-license.php лицензия MIT], но Вы можете взять другую свободную лицензию или даже написать свою. Однако имейте ввиду: мы ответственно подходим к лицензированию кода, поэтому без внимания мы это не оставим. | ||
+ | |||
+ | Со своей стороны обещаем соблюдать условия лицензии, либо не принимать Ваш код, если нас она не устроит. | ||
+ | |||
+ | === Графические обозначения === | ||
+ | |||
+ | Для облегчения навигации по заданиям применено цветовое кодирование сложности поставленной задачи и ее востребованности: | ||
+ | |||
+ | Категории сложности: | ||
+ | : <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> | ||
+ | : <span style="color: white; background-color: #008000;">· низкая ·</span> | ||
+ | : <span style="color: white; background-color: #FFCC00;">· средняя ·</span> | ||
+ | : <span style="color: white; background-color: #FF8000;">· выше среднего ·</span> | ||
+ | : <span style="color: white; background-color: #DD0000;">· высокая ·</span> | ||
+ | |||
+ | |||
+ | Категории востребованности (приоритет): | ||
+ | : <span style="color: white; background-color: #A0A0A0;">· может подождать ·</span> | ||
+ | : <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | : <span style="color: white; background-color: #FFCC00;">· средний ·</span> | ||
+ | : <span style="color: white; background-color: #FF8000;">· выше среднего ·</span> | ||
+ | : <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | |||
+ | == Операторы DSH == | ||
+ | |||
+ | По сути это команды, но играют роль структурных элементов шеллового языка программирования. Необходимо реализовать команды: true, false, test, if, switch, for, foreach. | ||
+ | |||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 07:38, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | == Базовые команды оболочки DSH == | ||
+ | |||
+ | Ниже приведены команды, которые требуется реализовать для нормального функционирования командной оболочки Диптауна (DSH). Дабы не изобретать велосипед, было решено делать команды максимально похожими на их UNIX аналоги. Однако, следует помнить, что при реализации команд, надо учитывать специфику диптауна и ориентироваться на максимальное юзабилити а не стопроцентное соответствие UNIX. Короче говоря, не надо стараться реализовать полный клон команды, со всеми "наворотами" — достаточно только базовых возможностей, которые гарантированно понадобятся и будут полезны. | ||
+ | |||
+ | '''Примечание''': Все без исключения команды должны поддерживать следующие ключи: | ||
+ | ;'''--version''': Вывод информации о версии программы и ее авторе. | ||
+ | ;'''--help''': Вывод краткой справки по использованию команды. Может выводиться так же при отсутствии какого либо ввода со стороны пользователя (вызов команды без параметров), если это не противоречит логике работы команды. | ||
+ | ;'''--''': Индикатор окончания списка параметров. Если в строке параметров встречается данный символ, это означает что дальнейшая информация уже не является параметрами. Например, команды | ||
+ | ::<tt>deep$ ls -l</tt> | ||
+ | и | ||
+ | ::<tt>deep$ ls -- -l</tt> | ||
+ | :имеют различный смысл. В первом случае вызывается расширенный список файлов текущей директории, тогда как во втором делается попытка отобразить содержимое директории с именем "-l". | ||
+ | ;'''-''': Отдельный дефиз может использоваться всесто имени файла для указания того, что данные требуется получать из стандартного устройства ввода. А вывод — соответственно направлять в устройство вывода. Конкретное поведение зависит от используемой команды. Таким образом, следующие команды являются эквивалентами: | ||
+ | ::<tt>deep$ cat </tt> | ||
+ | ::<tt>deep$ cat - </tt> | ||
+ | |||
+ | |||
+ | === <s>ls</s> === | ||
+ | |||
+ | Команда ls (от англ. ''list'' — список) выводит в терминал содержимое некоторой директории. Формат списка, а так же исследуемая директория, задются с помощью соответствующих ключей. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]], [[регулярные выражения]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 07:38, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=ls здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': Реализовано | ||
+ | |||
+ | === <s>cat</s> === | ||
+ | |||
+ | Команда cat выводит в терминал содержимое некоторого файла. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]], [[регулярные выражения]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 07:38, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=ls здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': Реализовано | ||
+ | |||
+ | |||
+ | === <s>cp</s> === | ||
+ | |||
+ | Команда cp (от англ. ''copy'' — копировать) производит копирование содержимого указанного каталога в новый каталог. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=cp здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': реализовано | ||
+ | |||
+ | |||
+ | === mv === | ||
+ | |||
+ | Команда mv (от англ. ''move'' — переместить) производит перемещение содержимого указанного каталога в новый каталог, либо переименовывает файлы (каталоги). | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=mv здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === <s>rm</s> === | ||
+ | |||
+ | Команда rm (от англ. ''remove'' — удалить) удаляет файл, либо каталог. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=rm здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': реализовано | ||
+ | |||
+ | |||
+ | === <s>touch</s> === | ||
+ | |||
+ | Команда touch (от англ. ''touch'' — потрогать) создает пустой файл с указанным именем, либо изменяет время доступа существующего файла. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=touch здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': реализовано | ||
+ | |||
+ | |||
+ | === mkdir === | ||
+ | |||
+ | Команда mkdir (от англ. ''make directory'') создает директорию с указанным именем. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=mkdir здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === grep === | ||
+ | |||
+ | Команда grep производит фильтрацию своего входного потока и выдает результат в выходной поток. Следует иметь в виду, что реализация PCRE (используемая в К++) синтаксически отличается от канонической UNIX. Основная задача — выборка интересующих строк из входного потока. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #FF8000;">· выше среднего ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]], [[регулярные выражения]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=grep здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === sed === | ||
+ | |||
+ | Команда sed (от англ. ''stream editor'' — редактор потоков) производит фильтрацию своего входного потока и выдает результат в выходной поток. Следует иметь в виду, что реализация PCRE (используемая в К++) синтаксически отличается от канонической UNIX. Основная задача — преобразование данных по шаблону. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]], [[регулярные выражения]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=sed здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === wc === | ||
+ | |||
+ | Команда wc (от англ. ''word counter'' — счетчик слов) производит подсчет количества структурных элементов в своем входном потоке и выдает результат в выходной поток. В качестве таких элементов могут выступать символы (ключ <tt>-c</tt>), строки (ключ <tt>-l</tt>) и др. Таким образом, простейший способ подсчета количества строк в файле может выглядеть так: | ||
+ | :<tt>deep$ cat myfile | wc -l</tt> | ||
+ | |||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]], [[регулярные выражения]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=wc здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === nl === | ||
+ | |||
+ | Команда nl (от англ. ''numbered lines'' — пронумерованные строки) записывает в стандартный поток вывода данные из своего стандартного потока ввода, предворяя их номерами строк. Может использоваться для формирования листингов программ, составления отчетов и др. | ||
+ | |||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=nl здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === sort === | ||
+ | |||
+ | Команда sort производит сортировку данных из своего входного потока и выдает результат в выходной поток. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=sort здесь]. | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === head === | ||
+ | |||
+ | Команда head возвращает первые N строк из своего входного потока. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=head здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === tail === | ||
+ | |||
+ | Команда head возвращает последние N строк из своего входного потока. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=tail здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === <s>more</s> === | ||
+ | |||
+ | Команда more выводит данные из своего входного потока порциями по N строк. Используется для постепенного отображения содержимого буфера в консоль (так, чтобы пользователь успел все прочитать). | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #00FF00;">· раз плюнуть ·</span> '''Приоритет''': <span style="color: white; background-color: #DD0000;">· высокий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=more здесь]. | ||
+ | * '''Исполнитель''': [http://ding.deeptown.org Deeptown DING project] | ||
+ | * '''Срок''': Реализовано | ||
+ | |||
+ | |||
+ | === mount === | ||
+ | |||
+ | Команда mount используется для привязки носителей данных к файловой системе Диптауна. Принципы ее работы несколько отличаются от UNIX аналога, поэтому документация не дается. Для получения информации, необходимо [[Обратная связь|связаться с разработчиками]]. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #FF8000;">· выше среднего ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === chmod === | ||
+ | |||
+ | Команда chmod используется для изменения прав доступа к файлам в файловой системе Диптауна. Принципы ее работы несколько отличаются от UNIX аналога, поэтому документация не дается. Для получения информации, необходимо [[Обратная связь|связаться с разработчиками]]. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #FF8000;">· выше среднего ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === chown === | ||
+ | |||
+ | Команда chown используется для изменения владельца и группы файлов в файловой системе Диптауна. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #FFCC00;">· средний ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=chown здесь]. | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === chattr === | ||
+ | |||
+ | Команда chattr используется для изменения атрибутов файлов (в основном метаинформации) в файловой системе Диптауна. Принципы ее работы несколько отличаются от UNIX аналога, поэтому документация не дается. Для получения информации, необходимо [[Обратная связь|связаться с разработчиками]]. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #FFCC00;">· средний ·</span> | ||
+ | |||
+ | * '''Технологии''': [[DISS]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === su === | ||
+ | |||
+ | Команда su (от англ. ''switch user'' — переключить пользователя) используется для запуска подоболочки от имени другого пользователя. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[UserDB]], [[DSH]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=su здесь]. | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === sudo === | ||
+ | |||
+ | Команда sudo позволяет выполнить команду от имени другого пользователя. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #808080;">· низкий ·</span> | ||
+ | |||
+ | * '''Технологии''': [[UserDB]], [[DSH]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=sudo здесь]. | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | |||
+ | === passwd === | ||
+ | |||
+ | Команда passwd позволяет сменить пароль пользователя. | ||
+ | |||
+ | * '''Сложность''': <span style="color: white; background-color: #008000;">· низкая ·</span> '''Приоритет''': <span style="color: white; background-color: #FFCC00;">· средний ·</span> | ||
+ | |||
+ | * '''Технологии''': [[UserDB]], [[DSH]] | ||
+ | * '''Автор''': --[[Участник:Korvin|Korvin]] 08:24, 18 июня 2008 (EDT) | ||
+ | * '''Примечания''': Описание UNIX аналога команды можно найти [http://www.opennet.ru/man.shtml?topic=passwd здесь]. | ||
+ | * '''Исполнитель''': <span style="color: #808080;">не назначен (вакансия)</span> | ||
+ | * '''Срок''': <span style="color: #808080;">не установлен</span> | ||
+ | |||
+ | == Стандартный интерфейс SQL == | ||
+ | == Универсальный HTTP клиент == | ||
+ | == Универсальный HTTP сервер == | ||
+ | == Репозиторий медиаданных == |
Текущая версия на 13:46, 13 июля 2013
В данном разделе мы публикуем текущий список задач Deeptown SDK. Большая часть задач — это разработка тех или иных модулей/программ на языке K++. Некоторые задачи предполагают реализацию на C++.
Данный раздел будет пополняться со временем. Особо важные изменения будут отмечаться в рассылке.
Содержание |
[править] Информация
[править] Для кого этот раздел
Браться за выполнение задач может абсолютно любой желающий. В том числе и Вы, дорогой читатель ;)
Для простых задач потребуются только базовые навыки программирования и знание K++, который подробно описан на этом сайте. Категории сложности задач обозначены в их описаниях.
Однако будьте готовы к тому, что мы не примем некачественный код. Мы следим за качеством нашей системы. Перед тем, как приступать, пожалуйста, ознакомьтесь с правилами оформления кода.
[править] Оформление данного раздела
В данном разделе задачи разбиты на несколько категорий. Каждая задача — это подраздел в своей категории. Простые задачи описываются прямо в тексте; для более сложных даются ссылки на отдельные страницы описаний. Новые задачи всегда добавляются наверх своего раздела.
Для каждой задачи приводится следующая служебная информация:
- сложность — уровень сложности задачи: простая, средняя, сложная
- технологии — список технологий (языков, библиотек, etc), которые потребуются для выполнения задачи
- приоритет — степень важности задачи: низкий, средний, высокий
- автор — подпись автора задачи
- примечания — технические примечания автора
- исполнитель — контактная информация исполнителя
- срок — срок завершения, обозначенный исполнителем
[править] Порядок выполнения задач
Прежде всего, выберите задачу, за которую Вы хотели бы взяться. Выбирать следует только из тех задач, для которых не указан исполнитель. Предпочтительнее брать задачи с более высоким приоритетом, но это не обязательно: прежде всего выбирайте то, что Вам будет интересно делать.
После того как выбор сделан, вставьте информацию об исполнителе и о сроке.
В информации об исполнителе должно указываться какое-нибудь средство связи с Вами: e-mail, ICQ или jabber. Вы можете написать свои контактные данные в "мою страницу" вики, а в графу "исполнитель" просто поставить подпись.
Срок введен для того, чтобы отсекать "призраков". Представьте что кто-то взял задачу и пропал на долгое время. С одной стороны передавать эту задачу кому-то другому нельзя, потому что она уже занята; с другой — работа стоит.
Срок — это не строгое поле. Если Вы активно работаете над задачей, но не успеваете в срок — Вы всегда можете его отодвинуть. Главное для нас то, что процесс идет.
В поле "срок" следует вписать предполагаемую дату завершения. Максимальный срок, который Вы можете установить — это текущая дата плюс 2 недели, если иное не указано в примечаниях к задаче.
Процедура обнаружения "призраков" такова. Когда срок исполнения выходит, мы связываемся с Вами по указанным контактным данным, и узнаем статус задачи/договариваемся о дальнейшем. Если связаться не удается в течение недели — мы убираем информацию об исполнителе, открывая таким образом задачу для других.
[править] Порядок приема задач
На данный момент у нас нет (публичного) централизованного обменника исходными кодами. Поэтому, высылайте свои труды в архиве на адрес developers (гав) deeptown.org. Либо Вы можете выложить их куда-нибудь в интернет, и выслать ссылку по этому адресу.
[править] Условия лицензирования
Мы можем принять Ваш код только в том случае, если Вы передаете его нам на условиях свободной лицензии. Пожалуйста, вложите текст лицензии в архив с кодом. Мы не будем принимать архивы без текстов лицензии, поскольку это может грозить нам судебными исками (исключение — только для наших разработчиков, которые подписали с нами договор).
Предпочтительной является лицензия MIT, но Вы можете взять другую свободную лицензию или даже написать свою. Однако имейте ввиду: мы ответственно подходим к лицензированию кода, поэтому без внимания мы это не оставим.
Со своей стороны обещаем соблюдать условия лицензии, либо не принимать Ваш код, если нас она не устроит.
[править] Графические обозначения
Для облегчения навигации по заданиям применено цветовое кодирование сложности поставленной задачи и ее востребованности:
Категории сложности:
- · раз плюнуть ·
- · низкая ·
- · средняя ·
- · выше среднего ·
- · высокая ·
Категории востребованности (приоритет):
- · может подождать ·
- · низкий ·
- · средний ·
- · выше среднего ·
- · высокий ·
[править] Операторы DSH
По сути это команды, но играют роль структурных элементов шеллового языка программирования. Необходимо реализовать команды: true, false, test, if, switch, for, foreach.
- Сложность: · низкая · Приоритет: · высокий ·
- Технологии:
- Автор: --Korvin 07:38, 18 июня 2008 (EDT)
- Примечания:
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] Базовые команды оболочки DSH
Ниже приведены команды, которые требуется реализовать для нормального функционирования командной оболочки Диптауна (DSH). Дабы не изобретать велосипед, было решено делать команды максимально похожими на их UNIX аналоги. Однако, следует помнить, что при реализации команд, надо учитывать специфику диптауна и ориентироваться на максимальное юзабилити а не стопроцентное соответствие UNIX. Короче говоря, не надо стараться реализовать полный клон команды, со всеми "наворотами" — достаточно только базовых возможностей, которые гарантированно понадобятся и будут полезны.
Примечание: Все без исключения команды должны поддерживать следующие ключи:
- --version
- Вывод информации о версии программы и ее авторе.
- --help
- Вывод краткой справки по использованию команды. Может выводиться так же при отсутствии какого либо ввода со стороны пользователя (вызов команды без параметров), если это не противоречит логике работы команды.
- --
- Индикатор окончания списка параметров. Если в строке параметров встречается данный символ, это означает что дальнейшая информация уже не является параметрами. Например, команды
- deep$ ls -l
и
- deep$ ls -- -l
- имеют различный смысл. В первом случае вызывается расширенный список файлов текущей директории, тогда как во втором делается попытка отобразить содержимое директории с именем "-l".
- -
- Отдельный дефиз может использоваться всесто имени файла для указания того, что данные требуется получать из стандартного устройства ввода. А вывод — соответственно направлять в устройство вывода. Конкретное поведение зависит от используемой команды. Таким образом, следующие команды являются эквивалентами:
- deep$ cat
- deep$ cat -
[править] ls
Команда ls (от англ. list — список) выводит в терминал содержимое некоторой директории. Формат списка, а так же исследуемая директория, задются с помощью соответствующих ключей.
- Сложность: · низкая · Приоритет: · высокий ·
- Технологии: DISS, регулярные выражения
- Автор: --Korvin 07:38, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: Реализовано
[править] cat
Команда cat выводит в терминал содержимое некоторого файла.
- Сложность: · низкая · Приоритет: · высокий ·
- Технологии: DISS, регулярные выражения
- Автор: --Korvin 07:38, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: Реализовано
[править] cp
Команда cp (от англ. copy — копировать) производит копирование содержимого указанного каталога в новый каталог.
- Сложность: · низкая · Приоритет: · высокий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: реализовано
[править] mv
Команда mv (от англ. move — переместить) производит перемещение содержимого указанного каталога в новый каталог, либо переименовывает файлы (каталоги).
- Сложность: · низкая · Приоритет: · высокий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] rm
Команда rm (от англ. remove — удалить) удаляет файл, либо каталог.
- Сложность: · низкая · Приоритет: · высокий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: реализовано
[править] touch
Команда touch (от англ. touch — потрогать) создает пустой файл с указанным именем, либо изменяет время доступа существующего файла.
- Сложность: · раз плюнуть · Приоритет: · высокий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: реализовано
[править] mkdir
Команда mkdir (от англ. make directory) создает директорию с указанным именем.
- Сложность: · раз плюнуть · Приоритет: · высокий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] grep
Команда grep производит фильтрацию своего входного потока и выдает результат в выходной поток. Следует иметь в виду, что реализация PCRE (используемая в К++) синтаксически отличается от канонической UNIX. Основная задача — выборка интересующих строк из входного потока.
- Сложность: · низкая · Приоритет: · выше среднего ·
- Технологии: DISS, регулярные выражения
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] sed
Команда sed (от англ. stream editor — редактор потоков) производит фильтрацию своего входного потока и выдает результат в выходной поток. Следует иметь в виду, что реализация PCRE (используемая в К++) синтаксически отличается от канонической UNIX. Основная задача — преобразование данных по шаблону.
- Сложность: · низкая · Приоритет: · низкий ·
- Технологии: DISS, регулярные выражения
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] wc
Команда wc (от англ. word counter — счетчик слов) производит подсчет количества структурных элементов в своем входном потоке и выдает результат в выходной поток. В качестве таких элементов могут выступать символы (ключ -c), строки (ключ -l) и др. Таким образом, простейший способ подсчета количества строк в файле может выглядеть так:
- deep$ cat myfile | wc -l
- Сложность: · низкая · Приоритет: · низкий ·
- Технологии: DISS, регулярные выражения
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] nl
Команда nl (от англ. numbered lines — пронумерованные строки) записывает в стандартный поток вывода данные из своего стандартного потока ввода, предворяя их номерами строк. Может использоваться для формирования листингов программ, составления отчетов и др.
- Сложность: · раз плюнуть · Приоритет: · низкий ·
- Технологии:
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] sort
Команда sort производит сортировку данных из своего входного потока и выдает результат в выходной поток.
- Сложность: · низкая · Приоритет: · низкий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] head
Команда head возвращает первые N строк из своего входного потока.
- Сложность: · раз плюнуть · Приоритет: · низкий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] tail
Команда head возвращает последние N строк из своего входного потока.
- Сложность: · раз плюнуть · Приоритет: · низкий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: не установлен
[править] more
Команда more выводит данные из своего входного потока порциями по N строк. Используется для постепенного отображения содержимого буфера в консоль (так, чтобы пользователь успел все прочитать).
- Сложность: · раз плюнуть · Приоритет: · высокий ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: Deeptown DING project
- Срок: Реализовано
[править] mount
Команда mount используется для привязки носителей данных к файловой системе Диптауна. Принципы ее работы несколько отличаются от UNIX аналога, поэтому документация не дается. Для получения информации, необходимо связаться с разработчиками.
- Сложность: · низкая · Приоритет: · выше среднего ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания:
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] chmod
Команда chmod используется для изменения прав доступа к файлам в файловой системе Диптауна. Принципы ее работы несколько отличаются от UNIX аналога, поэтому документация не дается. Для получения информации, необходимо связаться с разработчиками.
- Сложность: · низкая · Приоритет: · выше среднего ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания:
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] chown
Команда chown используется для изменения владельца и группы файлов в файловой системе Диптауна.
- Сложность: · низкая · Приоритет: · средний ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] chattr
Команда chattr используется для изменения атрибутов файлов (в основном метаинформации) в файловой системе Диптауна. Принципы ее работы несколько отличаются от UNIX аналога, поэтому документация не дается. Для получения информации, необходимо связаться с разработчиками.
- Сложность: · низкая · Приоритет: · средний ·
- Технологии: DISS
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания:
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] su
Команда su (от англ. switch user — переключить пользователя) используется для запуска подоболочки от имени другого пользователя.
- Сложность: · низкая · Приоритет: · низкий ·
- Технологии: UserDB, DSH
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] sudo
Команда sudo позволяет выполнить команду от имени другого пользователя.
- Сложность: · низкая · Приоритет: · низкий ·
- Технологии: UserDB, DSH
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: не назначен (вакансия)
- Срок: не установлен
[править] passwd
Команда passwd позволяет сменить пароль пользователя.
- Сложность: · низкая · Приоритет: · средний ·
- Технологии: UserDB, DSH
- Автор: --Korvin 08:24, 18 июня 2008 (EDT)
- Примечания: Описание UNIX аналога команды можно найти здесь.
- Исполнитель: не назначен (вакансия)
- Срок: не установлен