LINUX.ORG.RU
ФорумTalks

[соревнование]LOR Code Contest

 


0

0

И снова здравствуйте!

Возникла идея организовать интеллектуальное развлечение для ЛОРовцев. Например, это будет конкурс по написанию несложных приложений среди посетителей и анонимусов. Цель всего этого - развлекательная, надо уже самим себе доказать, что мы можем не только болтать языком, но и можем делать реальные вещи.

Правила

Соревнование проводится раз в месяц, длится неделю, результаты проверяются тоже неделю, потом две недели проводится сбор новых тем.

По результатам будут представлен обзор самых интересных проектов, награждение скором. Помните, что главное - это участие.

Первое задание

Написать будильник. Конечно, можно просто прописать в crontab вызыв mpg123, но такое решение имеет ряд недостатков: например, не получится сразу заглушить будильник 1й кнопкой, да и звук сразу будет громким, а так просыпаться неприятно. С другой стороны, наша unix-way ориентация может не принимать утилит вроде Awaken, которые делают все что надо от будильника сразу, но за то стоят денег и делают много лишнего.

ТЗ

Базовые функции:

  • проигрывать музыкальный файл из набора изначально заданных музыкальных файлов (как задается список - дело каждого, можно просто директорией с файлами, можно импортировать из какого-нибудь Amarok'а.
  • если музыка по какой-то причине не обнаружена, проигрывать какой-то другой звук
  • плавно увеличивать громкость
  • переставать играть через несколько минут

Дополнительные функции:

  • будить компьютер из suspend2ram
  • выводить на монитор приветствие и большую кнопку «я проснулся»
  • выводить на монитор приветствие и большую кнопку «хочу спать еще 5 минут», по которой звонок должен повториться через 5 минут
  • поддерживать выключение через lirc

Все остальное - на ваше усмотрение. Язык программирования может быть любым, но особенно приветствуется lisp и haskell. Работы принимаются до следующей Пятницы включительно (просто для удобства), через 2 недели - обзор всего, что вышло.

★★★★★

Организационное:

1 - Кто хочет участвовать с организационной стороны, например, тестировать работы, пишите в L-O-R, первый желающий создает темы.

2 - Примеры будильника пишите прямо в пост, если он маленький по коду или давайте ссылку на удобный для вас ресурс, где этот код можно посмотреть.

Shaman007 ★★★★★
() автор топика

> среди посетителей и анонимусов

Хотелось бы так же добавить "среди троллей". Где ещё они смогут доказать преимущества закрытых исходников над открытыми, всяких дотнетов над жавой и т.п.?

anonymous
()

Организационное:

1 - Кто хочет участвовать с организационной стороны, например, тестировать работы, пишите в L-O-R, первый желающий создает темы.

2 - Примеры будильника пишите прямо в пост, если он маленький по коду или давайте ссылку на удобный для вас ресурс, где этот код можно посмотреть.

Shaman007 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Можно!

Нельзя для iPhone, потому, что сложно будет проверить.

Shaman007 ★★★★★
() автор топика

А чо, хорошая идея. Мне нравится. Анонимуса будут скором награждать и со временем он глядишь и до модератора сможет дослужиться :)

anonymous
()

> наша unix-way ориентация

Ваша UNIX-way ориентация допускает ситуацию, когда чел в глаза не видел как выглядит сервер на котором он работает, не говоря уж о физическом доступе к его консоли и кнопкам и отсутствии такой фичи как суспенд, которая всё равно выносила бы подключенные сессии по таймауту?

anonymous
()

А вообще, для перечисленного функционала (кроме кнопки. ибо это вантузятничество) достаточно нескольких строчек на шелле.

ЗЫ: кнопка на мониторе, придумают же.

soomrack ★★★★
()

Ладно, попробую наваять, если время будет (а то сча уже сессия вот вот). А если хардварь специфический будет требовать на самопай катит?

AiFiLTr0 ★★★★★
()

Хотел было уже начать кодить под свою нокию, но вспомнил, что в ней уже есть такой функционал, причем бесплатно и "из каропки"

А можно ли в своих работах допускать зависимости от KDE? amaroK хорошо скриптуется...

EmStudio
()
Ответ на: комментарий от EmStudio

Не, для нокии функционал из коробки убогий! Нет плаавного увеличения громкости например.

Shaman007 ★★★★★
() автор топика

"Всё уже украдено до нас!" (с) Операция "Ы"

Простейший KAlarm умеет процентов 90 из перечисленного точно, вот его и допилите

MadCAD ★★
()
Ответ на: комментарий от Shaman007

4.2

>Не, для нокии функционал из коробки убогий! Нет плаавного увеличения громкости например.

Моя Nokia 3110C умеет плавное увеличение громнокости будильника. Но всё равно, искаропки не-Ъ, так что поддерживаю идею соревнований.

Camel ★★★★★
()

Доп. функция - аларм не выключается, пока человек не сложит N (конфигурируемо) рядов в тетрисе. Ну или аналогичное задание, гарантирующее пробуждение сознания;)

svu ★★★★★
()
Ответ на: комментарий от svu

Это противоречит духу ТЗ: "поддерживать выключение через lirc" :)

anonymous
()

+с гуем на qt4 и опционально - gtk :]
иначе - неЪ.

SplindeR
()

А какой приз-то? Звезда? Неделя неограниченного тролления?

gods-little-toy ★★★
()
Ответ на: комментарий от svu

> Ну или аналогичное задание, гарантирующее пробуждение сознания;)

Фигня. Я вот периодически просыпаю на работу потому-что, при звоне будильника на телефоне не просыпаясь, выключаю его, перевожу на час позже и сплю дальше :)

Deleted
()

ты не назвал главного: чтоб работало под макозью :)

Pi ★★★★★
()
Ответ на: комментарий от svu

> аларм не выключается, пока человек не сложит N (конфигурируемо) рядов в тетрисе

Аларм выключается раздалбыванием источника звука.. Два телефона и одни колонки у меня уже так ушли :)

boombick ★★★★★
()
Ответ на: комментарий от boombick

Спешиал фор йу: берется трансформатор с Ш образными пластинами, раздалбывается в меру, дабы все начало дребезжать, засовывается в цинковое ведро выводится два провода, транс крепится на дно ведра, а ведро на стену, мурется цементом, кабель в штробу — отакой будильник, хватает на два года трезвой жизни или месяц пьянки.

wfrr ★★☆
()
Ответ на: комментарий от Deleted

> Я вот периодически просыпаю на работу потому-что, при звоне будильника на телефоне не просыпаясь, выключаю его, перевожу на час позже и сплю дальше :)

Отлично. С управлением будильника lirc'ом ты не то что на работу, ты даже на ЛОР просыпать будешь. Осталось как-то нейтрализовать оставшихся двух модераторов, склонных к злоупотреблениям.

anonymous
()

у меня mplayer в кронтабе + хоткеи на громкость => просыпаясь я просто убавляю громкость. (при новом включении будильника она опять выставляется на ту, при которой ещё не просыпаются соседи, но но просыпаюсь я). проапгрейдить его до постепенного увеличения громкости - дело двух минут, но мне это не нужно. набор файлов - для mplayer-а это раз плюнуть. переставать играть через несколько минут - аналогично.

maloi ★★★★★
()

# set time here
WAKE="05:11"

# wait
while [ "`date +%R`" != "$WAKE" ]; do sleep 10; done;

# play music
cat ~/* > /dev/dsp &

# ajust sound
amixer set "Master" 10
amixer set "Master Mono" 30
amixer set "PCM" 10
amixer set "Center" 30
amixer set "Center/LFE Down Mix" 30
amixer set "Mix" 30
amixer set "Mix Mono" 30

louder(){
local VOLUME
for VOLUME in {0..32}; do
amixer set "PCM" $VOLUME
sleep 1
done
}

`louder` & disown -a

# block screen
xclock -geometry 10000x10000 -update 1 &
showkeys -s > /dev/null 2> /dev/null
killall kwin

# check user
brainDetector(){
killall xeyes > /dev/null 2> /dev/null
for q in {1..20}; do xeyes -geometry "`getScreenPos`"  > /dev/null 2> /dev/null& disown -a;done;
xeyes -geometry "`getScreenPos`" -center "#FFCCCC"  > /dev/null 2> /dev/null& disown -a
xkill > /dev/null 2> /dev/null
echo `ps ax | grep xeyes | grep FFCCCC | wc -l`
}

getSign(){
([ $(($RANDOM%10)) -le 5 ] && echo "-") || echo "+"
}

getScreenPos(){
local XPOS YPOS
XPOS=$(($RANDOM%300))
YPOS=$(($RANDOM%300))
echo `getSign`$XPOS`getSign`$YPOS
}

while [ "`brainDetector`" != "0" ]; do echo "`date`: Промазал" >> logs;done;

# restore screen
sleep 1
killall -9 showkeys
killall xeyes
killall xclock
killall cat
kwin > /dev/null 2> /dev/null &
kill `ps --no-heading ax | grep $0 | grep -v $$ | cut -b 1-5 | tr "\n" " "`
echo "С добрым утром!"



ЗЫ: некоторые части я запускал, некоторые запускать ссыкатно...

EmStudio
()

> По результатам будут представлен обзор самых интересных проектов, награждение скором.

> Язык программирования может быть любым, но особенно приветствуется lisp и haskell.

Давай так, регистратов можешь награждать скором, а вот в качестве приза ананимусам -- возможность отстранить от занимаемой должности на неделю любого модератора. Идет?

anonymous
()

Вот мой будильник:
 * с вечера составляется плейлист в сонате
 * плавно нарастает громкость
 * играет пока я не скажу заткнуться (я люблю поваляться в постели лишний часок слушая музыку)
 * идея с кнопкой на мониторе лажова - рулят горячие клавиши через xbindkeys и не надо с утра включать монитор

mpc seek 0
mpc volume 0
mpc play
for i in `seq 30 100`; do
	mpc volume $i
	sleep 3
done

anonymous
()
Ответ на: комментарий от Deleted

>Фигня. Я вот периодически просыпаю на работу потому-что, при звоне будильника на телефоне не просыпаясь, выключаю его, перевожу на час позже и сплю дальше :)

+1, только я его не перевожу а просто отключаю. Сейчас уже иногда не помогает даже установка 2-х - 3-х будильников подряд.

Ramen ★★★★
()
Ответ на: комментарий от EmStudio

мой будильник проще:

d=`expr 8*60*60`
sleep $d
mpg321 /mnt/mp3/itisagoodday.mp3

soomrack ★★★★
()
Ответ на: комментарий от svu

>Доп. функция - аларм не выключается, пока человек не сложит N (конфигурируемо) рядов в тетрисе. Ну или аналогичное задание, гарантирующее пробуждение сознания;)

Присоединяюсь. Сонное сознание часто путает кнопки выключения и продления сна (Ещё я часто проснувшись перевожу будильник вручную на более раннее время)

Можно заставить складывать и умножать трёх-четырёхзначные числа, решать квадратные уравнения (задания простые, но требуют несонного мозга хотя бы для запуска калькулятора)

gagarin
()
Ответ на: комментарий от boombick

> Аларм выключается раздалбыванием источника звука.. Два телефона и одни колонки у меня уже так ушли :)

Сонное сознание здорового человека, ИМХО, не способно на такое.

gagarin
()
Ответ на: комментарий от wyldrodney

> мы всем ЛОРом решили проблему гибернейта в Линуксе.

а с этим есть проблемы? у меня все работает )

isden ★★★★★
()

Симптоматичненькая такая тишина.

anonymous
()
Ответ на: комментарий от EmStudio

На ЛОР вообще стремно запускать любой чужой код без полного исследования и четкого понимания где именно выполняется rm -rf /

А на это время надо...

VIM
()
Ответ на: комментарий от VIM

>На ЛОР вообще стремно запускать любой чужой код без полного исследования и четкого понимания где именно выполняется rm -rf /

ЛОР - тусовка хацкеров, которые пишут трояны под линукс :) Можно на главную вешать!

k0l0b0k ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.