Задачи

Материал из Deeptown Manual
Перейти к: навигация, поиск

В данном разделе мы публикуем текущий список задач 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 — список) выводит в терминал содержимое некоторой директории. Формат списка, а так же исследуемая директория, задются с помощью соответствующих ключей.

  • Сложность: · низкая · Приоритет: · высокий ·

cat

Команда cat выводит в терминал содержимое некоторого файла.

  • Сложность: · низкая · Приоритет: · высокий ·


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. Основная задача — выборка интересующих строк из входного потока.

  • Сложность: · низкая · Приоритет: · выше среднего ·


sed

Команда sed (от англ. stream editor — редактор потоков) производит фильтрацию своего входного потока и выдает результат в выходной поток. Следует иметь в виду, что реализация PCRE (используемая в К++) синтаксически отличается от канонической UNIX. Основная задача — преобразование данных по шаблону.

  • Сложность: · низкая · Приоритет: · низкий ·


wc

Команда wc (от англ. word counter — счетчик слов) производит подсчет количества структурных элементов в своем входном потоке и выдает результат в выходной поток. В качестве таких элементов могут выступать символы (ключ -c), строки (ключ -l) и др. Таким образом, простейший способ подсчета количества строк в файле может выглядеть так:

deep$ cat myfile | wc -l


  • Сложность: · низкая · Приоритет: · низкий ·


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 аналога команды можно найти здесь.
  • Исполнитель: не назначен (вакансия)
  • Срок: не установлен

Стандартный интерфейс SQL

Универсальный HTTP клиент

Универсальный HTTP сервер

Репозиторий медиаданных

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты