GAE

Apr. 10th, 2008 05:06 pm
dimrub: (Default)
[personal profile] dimrub
Все-таки получил доступ в Google App Engine (спасибо доброму инсайдеру :)).

Забавная штука. В теории это работает так:
  1. Скачиваешь SDK
  2. Быстренько перегоняешь под него свою аппликацию (SDK включает в себя тестовый сервер)
  3. Загоняешь на сервер
  4. Наслаждаешься следами трудов своих
На деле, увы, все не так просто. GAE поддерживает два уеб-фреймворка: некий свой, называется WebApp - и Django (речь пока что идет исключительно о питоне, но планируют добавлять и другие среды выполнения). Но это только на словах Django поддерживается. На деле же, чтобы готовая аппликация заработала в GAE, ее надо подвергнуть довольно значительной переработке. В частности, некоторые APIs не работают, вместо них, зачем-то, гугль дает свои, с несколько урезанной функциональностью (например, urllib2 не работает, вместо него есть некий странный fetchurl, в котором, например, нет authentication, и редайректы он тоже, например, не отрабатывает). Ну и кроме того пункт №4 не совсем работает: моя аппликация, работавшая с тестовым сервером, после загрузки на настоящий не сработала, а почему - я еще не понял. В общем, сыровато как-то, но потенцияль есть. По условиям беты, можно создать три аппликации, чем я с удовольствием и займусь - идей хватает :).

В заключение не могу не пропеарить еще раз конкурс в [livejournal.com profile] coding4fun_ru (сорри, [livejournal.com profile] asbb :)). Народ там прямо-таки жжот, и борьба идет за десятые доли секунды (под конец и до сотых дойдет, чую). Я там уже плетусь в хвосте, и подумываю о сходе с дистанции со своими несчастными 3.3s on 2GHz.

on 2008-04-10 02:12 pm (UTC)
Posted by [identity profile] ex-ex-zhuzh.livejournal.com
не надо сходить с дистанции!

on 2008-04-10 02:13 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Не, ну есть еще пара идеек, но это уже начинает быть смешно :). Скажем, сколько процессоров (кОров) на тестовой машине?

on 2008-04-10 02:30 pm (UTC)
Posted by [identity profile] ex-ex-zhuzh.livejournal.com
два кора. ширпотреб, дешевка. кстати, в первой инкарнации этого конкурса тестовой машиной было что-то вроде 400мгц селерона. и ничего, никто не жаловался.

on 2008-04-10 02:31 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
То есть, можно закладываться на то, что два кора?

on 2008-04-10 02:36 pm (UTC)
Posted by [identity profile] avva.livejournal.com
Увы, не люблю я эти топкодеровские соревнования. Не нахожу прелести в гонке за секунды любой ценой; то, что делают в Project Euler, например, привлекает куда больше.

on 2008-04-10 02:38 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Меня эйлер как-то, наоборот, не вдохновил. То есть, решаю оттуда иногда, но без фанатизма. А тут - азарт :)

on 2008-04-10 02:49 pm (UTC)
Posted by [identity profile] cmm.livejournal.com
борьба идет за десятые доли секунды (под конец и до сотых дойдет, чую).

это нездорово, да.
всё равно всех победю (кроме, разве что, крестового эталона). :)

on 2008-04-10 02:57 pm (UTC)
Posted by [identity profile] ex-ex-zhuzh.livejournal.com
у меня нет в распоряжении машин с одним ядром (во временяа настали), так что, думаю, можно.

on 2008-04-10 03:00 pm (UTC)
Posted by [identity profile] ex-ex-zhuzh.livejournal.com
вообще-то оно не задумывалось как топкодеровское ни разу. я не виноват, что народ погнался за миллисекундами. красота оценивается тем же количеством баллов, что и скорость.

on 2008-04-10 03:31 pm (UTC)
Posted by [identity profile] ex-ex-zhuzh.livejournal.com
кстати, в следующем конкурсе, который я задумал, гонок за секундами быть не должно (хотя это все равно будет не Project Euler). следите за рекламой!

on 2008-04-10 08:44 pm (UTC)
Posted by [identity profile] avva.livejournal.com
Спасибо, буду :)

on 2008-04-12 07:43 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Давай устроим соцсоревнование. У меня остались нерешёнными 66,78,122,142,168. Кто потратит меньше милисекунд на решение этих пяти, тот и выиграл. Скорее всего это будешь ты, так как хоть задачи и не особо гробовые, я ни малейшего понятия не имею, как они решаются. НО ЧУР РЕШЕНИЯ НЕ РАССКАЗЫВАТЬ :-)

on 2008-04-12 07:57 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Под миллисекундами ты подразумеваешь машинное время - или думательное? Потому что некоторые задачи (например, 78, кажется) тут вообще на бумажке решаются. А что с №168, ты ее дорешал в итоге?

on 2008-04-12 08:02 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Думательное конечно, но и плюс машинное: если написал за полчаса программу, работающую неделю, то это ничуть не лучше чем написанная за неделю программа, работающая полчаса. Но и не хуже :-)

Про 78 очень даже может быть, так что вперёд :-)

on 2008-04-12 08:04 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
168 не дорешал, но и не понимаю, как может твоё решение не работать, в общем оставил до лучших времён.

on 2008-04-13 03:31 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Про 78 очень даже может быть, так что вперёд :-)

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

В общем, морока :)

on 2008-04-13 04:25 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Ты до скольки перебрал?

on 2008-04-14 07:21 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Где-то до 700,000 с чем-то.

on 2008-04-14 08:17 am (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Забавно. Кратные 100000 появляются существенно раньше и в больших количествах. Видимо пора применить психоаналитический метод, которым я победил №66. Он таков: подумать на тему как так могло получиться, что 800 человек задачу решили, а у меня ну совсем ничего не получается. Через пять минут после того, как я понял почему, решение задачи было найдено :-)

on 2008-04-14 08:25 am (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Давай кстати сверим часы: на какие 6 цифр кончаются у тебя значения Ф(9660) и Ф(11224)?

on 2008-04-14 07:27 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Да ладно уж, зачем 6 цифр?

441599744471074888026
2113217941649943539750

on 2008-04-14 07:44 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
У меня Ф(9660)=...232397, а Ф(11224)=...300000
Как говорит Живущий на Крыше, продолжаем разговор.
Как у тебя с Ф(и) для и=1,2,3,...,10? У мнея это 1,2,3,5,7,11,15,22,30,42.

on 2008-04-14 07:46 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
На 10-м начинается расхождение, у меня - 41.

on 2008-04-14 07:54 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Ты не прав, я на всякий параноический случай вставил в цикл по А такой кусочек. Класс с длинным названием перебирает все убывающие последовательности с заданной в конструкторе суммой. Веришь на слово или прислать код?
if(A<20)
{
descending_sequence s = A ;
int c = 1 ;
while(s.next())
++ c ;
cout << "descending_sequence("<<A<<")="<<c<<"\n" ; }

on 2008-04-14 07:56 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Давай я расскажу, как я рассуждал, а ты объяснишь, где я ошибаюсь.

on 2008-04-14 07:57 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
давай. микрофон не купил?

on 2008-04-14 08:01 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Не-а :(

Логика такая: для любого n есть ровно p(n-1) комбинаций, в которых есть одинокий нолик. Дальше, есть p(n/2) - 1 комбинаций, в который минимальная группа состоит из двух, p(n/3) - 1 - из трех, и так далее, вплоть до n/2. И плюс еще одна комбинация, где все нолики в одной группе. Итого:

p(n) = p(n-1) + (p(n/2) - 1) + (p(n/3) - 1) + ... + (p(2) - 1) + 1

on 2008-04-14 08:26 pm (UTC)
Posted by [identity profile] ilya-dogolazky.livejournal.com
Ой, долго думал, почему ты называешь единичку ноликом. Потом понял, что ты имеешь в виду монетку. Утверждение «есть p(n/2) - 1 комбинаций, в который минимальная группа состоит из двух» во-первых непонятно как доказать, а во-вторых оно неверно для п=10. р(10/2)-1=р(5)-1=7-1=6, но я знаю аж семь таких комбинаций: 22222, 2224, 2233, 226, 235, 244, 28.

Profile

dimrub: (Default)
Adventures of a somewhat curious character

September 2013

S M T W T F S
12 345 67
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 05:35 pm
Powered by Dreamwidth Studios