anton_nazarov: (Default)
В качестве развлечения делаю веб-проект для облегчения жизни студентов-психологов
psy-research.ru

Как вам идея и дизайн? :)

Update:
Посмотреть пример исследования можно тут
anton_nazarov: (Default)
В выходные я участвовал в Хакдее. Тема Хакдея была "Новые медиа". (Я не знаю, что это значит, честно).

Хакдей начался в субботу утром с презентаций проектов проектов. Хотя некоторые презентации проектов были довольно смешные (особенно порадовал рассказ про Диогена и греческие форумы), сами идеи мне показались довольно обычными, поэтому я не захотел присоединиться к какому-либо проекту. Кроме того, я был не очень уверен в своих силах, так как больше года не писал (веб-)приложений.

Поэтому я решил поиграться с Google App Engine и попробовать сделать что-нибудь с картами.

Тем временем начались мастер-классы, которые мне показались не убедительными, возможно из-за того, что я сидел с ноутбуком и читал документацию по разработке приложений для AppEngine на Django.

В итоге локальный appserver запустился, я слегка проголодался и решил делать карту столовых с интеграцией с twitter-ом, чтобы было удобно ходить с коллегами обедать. Вероятно, принять решение мне помог кулинарный проект Солянка 2.0, который делала хорошо подготовившаяся команда из ArkSoft. (У них даже были футболки с названием проекта!). Просто обычно мне лень готовить :)

Мой проект начал работать к вечеру субботы, как вы, наверное, успели заметить из Twitter-а.

Это меня сильно вдохновило, так как в воскресенье вечером я собирался ехать в гости. В 10 утра следующего дня я пришел к бывшему зданию ГОИ, в котором и проводился Хакдей, с надеждой побыстрее закончить. Однако в это время ещё никого не было. Пришлось идти в главное здание университета, куда я сумел просочиться с заднего входа. Внутри работал wifi и шла церковная служба с громким пением и орущими детьми. Так что я работал прямо в центре шабаша высокодуховного события. Естественно, меня вскоре выгнала какая-то религиозно выглядящая тётенька. И правильно: университет - не место для работы.

В итоге я пришел в "Ингрию", исправил пару багов, показал проект Кате, попросил её сделать за меня презентацию и уехал в Колтуши смотреть на людей, прыгающих в пруд.

Говорят, что во время презентации Twitter глючил, но это не важно, так как на Хакдее были гораздо более достойные проекты, чем мой. Например, замечательный Citymurmur, Звери в городе, уже упоминавшаяся Солянка 2.0 или сайт аудио-экскурсий По маршруту.

Надо заметить, что почти все проекты, которые в итоге были запущены, использовали Twitter. Это как бы намекает нам: хочешь завершить проект - используй Twitter.

Follow anton_nazarov on Twitter

Съесть комплексный обед
anton_nazarov: (Default)
Сейчас в нашем проекте мы используем фреймворк Django.

Django - это фреймворк для быстрой разработки веб-приложений на языке Python.
Он следует паттерну MVC. Типичное приложение, использующее Django состоит из следующих частей.


  • Модель - набор классов, содержащих данные, и хранящихся в СУБД посредством ORM, предоставляемого фреймворком.

    Выглядит примерно так:
          class Blog(Model):
             author = ForeignKey(User)
             title = CharField(max_length=200)
    
          class Entry(Model):
             blog = ForeignKey(Blog)
             text = TextField()
             date = DateField()
        



  • View - функции, реализующие логику обработки данных и навигации между страницами. Например:
          def show_entries(request):
             entries = Entry.objects.all()
             return render_to_response("entries.html",{"list":entries})
    
          def post_entry(request):
             if request.user.is_authenticated():
                form = PostEntryForm(request)
                if form.is_valid():
                   form.save()
                   return HttpResponseRedirect("/")
                
                return render_to_response("post.html",{"form":form})
    
             return HttpResponseRedirect("/login")
        


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


  • Шаблоны страниц - шаблоны страниц или других документов, используемых для представления информации пользователям. Django содержит довольно простой и удобный язык шаблонов, странички могут выглядеть так:
          <html><body>
    	  {% for entry in list %}
    	  <div>
    	    {{ entry.text }}
    	  </div>
    	  {{ entry.date }}
    	  {% end for %}
          </body></html>
        




Использование тех или иных возможностей Django не является обязательным. Вместе с тем в Django очень много различных помогающих вещей.

Тем не менее, нельзя сказать, что сейчас разработка идет у нас легко и быстро. Причина состоит в том, что использование мощного фреймворка приводит к желанию реализовывать сложную функциональность сразу. Так, я пару дней потратил на регистрацию/авторизацию по OpenID и автоматическую генерацию паролей с их отправкой по электронной почте.
Создание дизайна страничек по-прежнему требует значительных усилий и умения, а кроме того, с Django не работает любимый java-разработчиков по изучению новых технологий - написать любую букву и нажать Ctrl-Space. Приходится читать документацию.
Документация у Django отличная, почти про все написаны исчерпывающие тексты, в которых описаны различные сценарии использования компонентов. В открытом доступе есть так же и книга, которая во многом повторяет документацию, однако содержит дополнительные разъяснения и комментарии по многим практическим вопросам.

Я думаю, что на следующей неделе наша производительность увеличится, так как участники проекта привыкнут к используемой технологии и к совместной работе :)
anton_nazarov: (Default)
Сегодня у меня был настоящий рабочий день в офисе, впервые за очень долгое время.
Даже немного код пописал :)

Вообще-то обустраивать офис мы начали еще в пятницу, а закончили в субботу.
Я никогда не думал, что снять офис и начать работать можно так легко и быстро.

Наш проект пока довольно расплывчатый и сомнительный, но потихоньку он начинает обретать ресльные черты.

В связи с этим вопрос: не знаете ли вы, возможно ли поддерживать два svn-репозитория (локальный и в интернет) и время от времени их автоматически мержить? Если да, то как?

В принципе одним из решений было бы использовать bazaar, darcs, mercurial или git. Но может быть достаточно subversion?

Profile

anton_nazarov: (Default)
anton_nazarov

September 2014

S M T W T F S
 123456
78910111213
14 151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 02:47 am
Powered by Dreamwidth Studios