• 10K Apart. Мой ответ

      Вместе с остальными расскажу свою историю о том как я писал 10кБ приложения и послал на конкурс две работы. Начнем по-порядку…
      Пожалуй самое сложное это придумать интересную идею.
      Изначально я хотел создать именно приложение, а не игру. Изначально я хотел сделать, то, чем потом смогу воспользоваться (по крайней мере в качестве программных наработок, если не приложения).
      Читать дальше →
    • 2 пути единой идентификации, и оба Jabber

        Хотим ли мы единой регистрации – да, конечно.

        Что у нас есть


        openID


        «Давайте, централизуем регистрацию» — что может быть проще и… ограниченней.
        Во-первых, я должен регистрироваться (всеравно регистрироваться!) на сайте провайдера.
        Во-вторых, запомнить еще один логин и пароль.
        В-третьих вводить этот логин и пароль.
        — древнее унылое поиск и сопоставление 2-х ключей в базе данных. Просто базы теперь пересекаются (кстати, полагаю с этим есть проблемы).
        В-четвертых openID может выглядеть вот так «красиво»: technorati.com/people/technorati/username

        E-mail


        Забавно, большинство вариантов получения openID сами требуют идентификации – по E-mail.
        E-mail давно является основной любой идентификации, как правильно заметил автор статьи Мгновенная почта и жизнь без паролей.
        И опять же правильно заметил что, почтовый интерфейс неудобен для авторизации на сайте. Значит нужно нечто другое, и это Jabber.
        Читать дальше →
      • Ruby знакомство с Thread

          Лирическое отступление


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

          Реалии


          В руби есть бесконечный цикл loop.
          Copy Source | Copy HTML
          1. loop{
          2.   puts "Ничто меня не остановит."
          3. }
          4. #Собственно отсюда и начинаются проблемы.
          5. puts "дело в том, что этот код никогда не выполнится."

          Т.е. надо все выполнить до того как мы начали зацикливание.
          Кроме того данная операция весьма чувствительна для процессора. Если нам не нужно очень частого повторения, то цикл можно на время и усыплять.
          Copy Source | Copy HTML
          1. loop{
          2.   puts "Ничто меня не остановит."
          3.   sleep(1) #одна секунда сна
          4. }

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

          Thread


          Для решения этих проблем существую потоки.
          Читать дальше →