вівторок, 17 травня 2011 р.

Что такое социальная сеть, которую мы хотим создать и насколько сложно и дорого это будет сделать?

Что такое вообще социальная сеть?
- Самая первая и самая известная сеть - это Facebook.com. Эта сеть обросла множественными локальными клонами типа Одноклассники.ру. С технической точки зрения такая сеть - это всего лишь база данных + оболочка к ней. С помощью оболочки пользователи могут извлекать информацию из базы, вносить, изменять её согласно разных сложных алгоритмов. Сказанное подходит не только к социальным сетям, но и вообще ко всем веб-приложениям.
Что такое государство? Есть много разных взглядов. Это аппарат принуждения, это высшая форма саморганизации людей,  это бюрократическая пирамида из чиновников. Я скажу свою крамольную версию - государство это аппарат для администрирования отношений между людьми. Это та полезная функция, которую мы ждём от государства, все остальные - побочные. Мы не можем обойтись без того, чтобы кто-то администрировал наши взаимоотношения - поскольку нас миллионы, мы не можем сами обо всём каждый с каждым договориться. Например, активная часть общества - работники, предприниматели, самозанятые могли бы платить пенсии напрямую тем старикам, что в ней нуждаются, но мы так не делаем - потому что не можем организовать этот процесс без государства. Какова цена этой услуги? Мы все наслышаны про вертолёты и дорогие резиденции наших администраторов, на прокорм армии госслужащих уходят баснословные средства, а ещё эти служащие одалживают деньги у других стран на наше имя. У меня есть знакомый, он мелкий чиновник в фонде госимущества в маленьком областном центре. Однако у него есть две машины - дорогие иномарки, и живёт он в престижной двухуровневой квартире. Короче, мы платим невероятные бабки за простую некачественно предоставляемую услугу. Задача администрирования не есть какой-то уникальной задачей, наоборот, это один из самых популярных видов человеческой деятельности. Управление атомной электростанцией, работа администратора в гостиннице, библиотекаря, начальника цеха на заводе, логиста - это всё примеры администрирования. Задача по снижению затрат на администрирование это тоже очень тривиальная задача. В последние пару десятков лет её решают типичным методом - автоматизацией (компьютеризацией). Собственно, это и есть причина бурного развития компьютерных технологий в последние 40 лет. Вот вам и лежащая на поверхности идея - раз уж мы не можем совсем избавиться от государства, а давайте заменим его компьютером? Нет, мы не предлагаем создать Матрицу и поставить её царствовать над человечеством :) Идею про то, что государство должно править людми по своей прихоти - внушили нам сами чиновники. Администрирование это немного другое.
Какие функции будет включать в себя веб-государство?
- Этот вопрос мы и будем жарко обсуждать на этом блоге, пока что перечислю очевидное:
в базе должны быть все граждане государства - его пользователи. Регистрация в государстве дело добровольное, выход из него - тоже. Граждане любых других государств классического типа могут свободно регистрироваться в веб-государстве, при этом они не обязаны отказываться от гражданства своего текущего государства.
Какие сведения про гражданина будут содержаться в базе данных?
- Имя, фамилия, отчество, дата и место рождения, ссылки на родителей, братьев/сестёр и детей. Сведения про брак. Сведения про то, где проживает (может указывать любой адрес по своему желанию), сведения про то, к какой общине принадлежит, если принадлежит (эти сведения вносит сама община - село, многоквартирный дом, община застройщиков и т.д.). Участие в общине - дело добровольное, но община может ставить условием принятия нового члена выполнение каких-либо условий (полный список условий должен быть доступен онлайн) - условия могут быть любые - долевое участие в содержании многоквартирного дома, содержании дорожного покрытия улиц в селе, соблюдение мармонских обрядов и традиций - что угодно, короче :) Этот вопрос дискуссионный, так что жду комментариев по нему.
Также в базе должна храниться история человека - к каким общинам принадлежал, сколько денег давал на нужды общины, на проекты, на содержание пенсионеров/инвалидов, неспособных себя содержать и т.д. Объявлял ли банкротство, судили ли его за что-то, кто и каков был приговор, есть ли к этому человеку имущественные, денежные претензии, неурегулированный долг - в настоящем и прошлом. Числятся ли за ним кредиты, есть ли погашенные кредиты. Что ещё, предлагайте.
Какие гарантии, что хакеры не будут хозяйничать в этой базе? Ведь известно, что техника несовершенна, программное обеспечение часто имеет дыры в безопасности да и администраторов базы данных можно подкупить.
- Вот тут мы и подходим к самому спорному и неоднозначному моменту. Я предлагаю сделать информацию в этой базе данных ОТКРЫТОЙ. То есть, любой энтузиаст сможет скачать себе на компьютер копию базы. Также будут специальные механизмы, позволяющие сверять разные базы за разные даты. Поэтому никакое несанкционированное вмешательство, кража или порча базы не будут иметь смысла - всё равно где-то останутся правильные копии и можно будет всё восстановить. Также надо будет предусмотреть механизмы, чтоб можно было выгрузить себе копию той части базы, что относится к какой-то одной общине, городу, области. Это всё технически реализуемо. Если одна из копий базы испорчена или скомпрометирована, всегда есть очень много других копий, частичных и полных, из них всегда можно восстановить обратно полную базу. Публичность всех данных в базе - это очень спорный вопрос, но я не вижу другого пути обеспечения её надёжного и гарантированного функционирования.
Кто будет  регистрировать новых пользователей-граждан государства?
- Чтобы избежать фальшивых записей и не давать поле для деятельности компьютерным хулиганам, регистрацию новых граждан можно доверить частным юристам-судьям. Про них я планирую написать отдельный пост :) Они же, частные юристы, будут оормлять и выбытие/смерть человека. Они не будут заинтересованы в мошенничестве - ибо вся деятельность такого юриста будет храниться в базе, доступная всем желающим. Клиенты будут изучать "биографию" юриста-судьи перед тем, как обратиться к нему, и любой намёк на его нечестность поставит крест на карьере.
Сервера и труд программистов и системных администраторов стоит дорого, за чей счёт будет банкет?
- На этом блоге уже есть моя заметка - предложение про то, как может быть организована денежная система. Каждое физлицо будет иметь один или несколько счетов/онлайн аккаунтов в банке. Информация по движениям средств по этим счетам будет доступна только владельцу и людям, которым он сам захочет дать доступ - жене/мужу, например. Для разных проектов, общин, добровольных организаций и благотворительных программ можно будет создавать в банках счета другого рода - публичные. Любой желающий сможет зайти на сайт банка и в режиме онлайн наблюдать за историей платежей - какие суммы от кого приходят и какие суммы кому уходят. Такой счёт может быть открыт и для финансирования деятельности нашей "матрицы" - люди смогут добровольно перечислять туда деньги.
Почему люди будут добровольно платить туда деньги?
- В аккаунте каждого гражданина будет отдельно указано, сколько денег за всё время он пожертвовал на нужды администрирования веб-государства. Эта информация будет доступна всем. Это будет почётно и это будет лучшим способом показать другим свою финансовую обеспеченность и активную гражданскую позицию. Да и нужны-то будут сущие копейки по сравнению с нынешними расходами на власть.
Смогут ли люди получать паспорта в бумажном виде, техпаспорта на автомобили, заграничные паспорта, кто их будет выдавать?
- Данные, что обычно содержатся в документах такого рода, будут содержаться в базе данных. По желанию человек сможет заказать бумажный документ у частных фирм и предпринимателей, вносить в него неверные данные будет невыгодно - проверить правильность всегда можно, просто зайдя в интернет, а все претензии и иски к фирме будут храниться в базе данных вечно. Напортачил - никто с тобой больше не свяжется. Да и эти бумаги не будут иметь силы, нужны будут лишь для поездок за границу.
- Какие ещё данные будут содержаться в базе государства 2.0?
Вместо разрешения на владение оружием и вместо водительского удостоверения будут договора на страхование гражданской ответственности - при владении оружием и при вождении автомобиля. Кстати, я считаю автомобиль намного более опасным, чем пистолет. Выдав Вам страховой полис, страховая компания обязуется выплатить компенсации АБСОЛЮТНО всем пострадавшим при неправомерном использовании потенциального источника опасности, без какого-либо верхнего лимита, независимо от того, выполнял ли владелец полиса какие-либо условия договора, был ли он пьян в момент нанесения ущерба, и даже если оружие было украдено или автомобиль был угнан и ущерб был нанесён угонщиком/вором. Естественно, если застрахованный нарушил условия договора, страховая компания может подавать регрессный иск к застрахованному после выплат пострадавшим. Поэтому, само собой, страховая компания будет очень сильно заинтересована в том, чтобы желающие получить полис были тщательно проверены на предмет психического здоровья, были хорошо обучены обращению с предметом повышенной опасности и соблюдали правила обращения с ним. Например, страховым компаниям будет выгодно вскладчину устанавливать камеры наблюдения на автобанах и перекрёстках и смотреть, кто нарушает скоростной режим и создаёт аварийные ситуации. Нарушил по мелочи - получил штрафную санкцию согласно договору, нарушил по крупному - ты в чёрном списке, договор с тобой разорван и ты никогда уже не получишь возможности сесть за руль. Страховые компании даже смогут продавать договора с разной ценой и с разными условиями, например, можешь купить дешёвый договор и ездить не быстрее чем 90 км/ч, а можешь дорогой - и тебе позволено разгоняться до 150 на автобанах. Можешь купить дешёвый договор и иметь право в мирное время хранить пистолет дома и не выходить за пределы квартиры с ним или заплатить дороже и носить его с собой.
- Данные про неурегулированные долги. Например, причинил кому-то ущерб, а нет ни денег ни имущества, а суд присудил компенсацию пострадавшему. Человек с неурегулированными долгами теряет часть прав, связанных с денежными отношениями, однако же, он может договориться с банком или ещё с кем-то, кто выдаст ему кредит на эту сумму и долг станет урегулированным, с оговоренным процентом и сроком возврата.
- Отдельный большой раздел - частные юристы-судьи, прецеденты-законы, судебные процессы. Они тоже будут храниться в базе, я планирую расписать своё видение в отдельном посте.

Как будет выглядеть эта сеть и как она будет создаваться?
- Как я уже писал, база будет открытой.  Конечно же, придётся продумать механизм, чтобы один человек не мог проникнуть в систему под именем другого, такая ситуация не критична, но будет создавать дополнительные сложности и расходы при администрировании.
Вернее, это даже будет не одна база, а некая структура баз разного уровня. Будет одна главная мега-база и множество баз-зеркал и баз уровнем ниже. Дла работы с базой будет некая оболочка, я даже думаю, что надо будет сделать некое открытое API, подобно тому, как оно сделано в Facebook - сторонние разработчики не имеют прямого доступа к базе, но могут с ней работать через API. Поэтому, помимо основной оболочки будут доступны альтернативы, разработанные фирмами или энтузиастами, бесплатные или платные.
Задумка очень сложная, реально ли это реализовать?
- Начнём с малого, создадим систему в самом простом виде, а потом будем наращивать её функции. Не ставится задача сделать всё очень быстро. Рано или поздно система будет готова для практического применения.
Вроде всё, жду вопросов, ответов и предложений :)

41 коментар:

  1. Гадаю, тут мені час сказати слово :)

    Справа в тому, що десь півроку тому ми з ВЗ вже пробували попрацювати над «нульовим» етапом розробки цієї соц.мережі, тобто над прототипом.

    Задача прототипу дуже проста: просто мати можливіть помацати чорновий варіянт зовнішнього скелету системи. Інколи ця можливість змінює думку людини про те, що вона хоче від конкретної частини системи -- це плюс.

    З технічної точки зору прототип настільки простий, що його не шкода викинути в будь-який момент.

    У нас навіть був план простенькй робіт (roadmap), який ми успішно зафакапили. Здебільшого з моєї вини, хоча й ВЗ мене не так щоб дуже підганяв :))

    Але зацікавлення нікуди не зникло, тож ось чим я можу поділитися.

    В мене на сервері крутиться сам сайт-прототип, там є доступ через SVN, навіть свій Trac (це відкрита система для керування проектами http://trac.edgewall.org) прикручений для вікі та квитків-тікетів.

    Сам прототип я відкрив для публічного доступу, нічого там секретного немає, фактично там майже немає нічого взагалі http://citizentools.xantea.net/

    Trac зараз трішки поломаний, як відремонтую, теж планую відкрити -- щоб дати можливість всім бажаючим долучитися.

    SVN в ідеалі треба замінити на Git щоб спростити можливість роботи багатьох людей, можливо навіть опублікувати код на Github -- це частина ідеї з прозорістю, яка мені дуже подобається.

    Загалом, технічних ідей -- море. Зокрема, зробити систему розподіленою (p2p), як торрент. Таким чином вирішаться дві проблеми: (1) резервування даних для надійності; (2) захист від зовнішніх атак (DDoS та інших).

    Гадаю, що все це можна використати з користю... Принаймні, вже якийсь початок.

    Якщо є зацікавлення, я не проти бути доданим до команди блогу і публікувати свої думки щодо технічної сторони розробки.

    Зрештою, я досить багато спілкувався з ВЗ і «витягнув» з нього чимало технічних деталей (це окрема нелегка частина роботи програмістів/менеджерів).

    Звісно, я далеко не гуру веб-програмування, але певний досвід маю. Сама суть проекту дозволяє сподіватися, що більш досвідчені колеги будуть допомагати з порадами та критикою.

    ВідповістиВидалити
  2. 2 - ponedilok - дайте Ваш мейл и я пришлю инвайт (для соавторства в блоге). Могли бы Вы расписать тут в комментариях, в чём Ваше видение такой сети совпадает, а в чём не совпадает с описанным выше? Ещё лучше было бы, если бы Вы прокомментировали по пунктам.

    ВідповістиВидалити
  3. Да, какие соображения насчёт движка БД и насчёт языка программирования? Надо выбрать бесплатные, и такие, что будут поддерживаться и через много лет, + достаточно популярные, чтобы в разработке могло участвовать как можно больше людей. Я предлагаю для начала MySQL и Java, если у кого есть альтернативные варианты - пердлагайте.

    ВідповістиВидалити
  4. Спробуйте надіслати, скриня тут http://www.google.com/recaptcha/mailhide/d?k=01ioAs23u3OYgx1aVHRDpfGg==&c=566NyuIupYmC-P3r2f40fJQLqSIzwYXQICByA9Z49ZE=

    Мабуть я вчора відчув великий ентузіазм, що справа знову оживає, сьогодні вже дещо спокійніше пробую аналізувати що саме я можу запропонувати... Спробую прокоментувати пізніше увечері.

    ВідповістиВидалити
  5. а скажите мне, как неспециалисту - если у вас данные открыты, то как мы будем номера банковских карточек сохранять?))

    ВідповістиВидалити
  6. >а скажите мне, как неспециалисту - если у вас данные открыты, то как мы будем номера банковских карточек сохранять?))

    Приципово правильне зауваження. В будь-якому разі, конфіденційні дані існуватимуть, їх треба буде захищати.

    Так як ми на етапі «фантазування», то я дозволю собі наступну ідею: задача надійності вирішується реплікацією даних по вузлах мережі, а для збереження конфіденційності ця реплікація має бути покроковою.

    Вже була така система, здається для бекапів. Я постараюсь згадати та розібратися як вони це зробили.

    Принцип роботи: мої дані (мають дві частини: публічну та приватну) шифруються та розбиваються на блоки, які знову шифруються. Ці блоки розподіляються по випадкових вузлах мережі. Публічна частина знаходиться в кожному блоці, приватна частина потребує мінімум Х блоків у наявності та ключів для розшифрування.

    Технічна задача тут в розподіленні та наступній збірці приватних даних докупи.

    Десь так, орієнтовно.

    ВідповістиВидалити
  7. 2 VZ - я думаю, нет надобности сохранять номера карточек. Номера карточек будут храниться в закрытых базах частных банков. Но я предлагаю, чтобы карточка была вторичным дополнением к аккаунтам вида vzua@bestbank.ua. То, что кто-то узнает номер Вашего аккаунта, не будет означать ничего плохого для Вас, так как воспользоваться им, зная только сам аккаунт, нельзя, можно лишь перечислить на него деньги или выставить счёт. Но и эти аккаунты далеко не обязательно хранить в главной базе.

    ВідповістиВидалити
  8. карточки необходимы для регистрации в системе. Сейчас это своего рода электронный паспорт. Если человек зарегистрировал карточку, это гарантия того, что он не моб. Кроме того, они необходимы для осуществления платежей. Вообще говоря, возможность одно-двукликовых платежей непосредственно между участниками сети - это главное, что сейчас нужно.

    ВідповістиВидалити
  9. 2ponedilok классно, если бы можно было бы так сделать

    ВідповістиВидалити
  10. 2 - тут дело не в том, защищать данные или нет, вопрос "будет эта база открытой или нет" как бы не решён. если она будет закрытой, то она будет кем-то одним контролироваться, этот один и станет королём, раньше или позже. Если она будет абсолютно открытой, узурпировать её не удастся. Если она будет распределённой по тысячам компьютеров и зашифрованной, то скорость работы будет очень скверной, что поставит крест на всякой возможности её практического использования. Кроме того, что знают двое, знает и свинья, а доступ к данным всё равно надо будет предоставить некоему кругу лиц (иначе зачем их вообще хранить?) - надо будет дать доступ юристам, нотариусам, банкам (кредитная история), страховым компаниям и т.д. То есть, база будет секретная, но за бутылку знакомому нотариусу можно будет узнать всё что надо и про кого надо - как оно сейчас, например, и есть. То есть, надо будет определиться, какие данные про человека могут быть публичными, и хранить только их, и никакие другие.

    ВідповістиВидалити
  11. @Jarizleifr Як мінімум, потрібна буде автентифікація... Навіть якщо це через Twitter/Google/OpenID -- треба буде зберегти якісь унікальні дані, що ідентифікуватимуть учасника. Оприлюднення цих даних неможливе принципово.

    ВідповістиВидалити
  12. 2 VZ - Как я говорил, можно вместо карточек сделать защищённые аккаунты, публикация которых не даст возможности красть с них деньги.

    ВідповістиВидалити
  13. не пойдет. нужна максимальная простота, по крайней мере, на первом этапе

    ВідповістиВидалити
  14. 2 ponedilok - я уже думал про это. Это очень сложная и неоднозначная задача. Можно держать две базы - одну с публичными данными, одну только с паролями/ключами. Можно использовать одностороннее шифрование - то есть, алгоритм, по которому в одну сторону выполняется однозначное преобразование, а в другую - нет. Ну то есть, если у Вас пароль 12345 то таким преобразованием Вы можете получить "fd2sdf3sd4", но не будет алгоритма, чтобы из "fd2sdf3sd4" получить обратно 12345. А можно будет сделать и смс-аунтефикацию, Приватбанк вроде так делает в своей системе PrivatMoney.

    ВідповістиВидалити
  15. Ну современная система платежей по карточкам совсем не "двухкликовая", а уж тем более между гражданами. Приём платежей по карточкам это довольно кровососущее дело даже для крупных продавцов. Потому и возникают всякие PayPal - по сути, надстройка над карточной системой.

    ВідповістиВидалити
  16. Напишите, какая информация, по-вашему, должна храниться в базе, а какая не должна, что может быть публичным, а что не может. Это важно.

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

    Так, це звичайна практика для паролів. Але вона обходиться доволі легко, якщо маєш на руках цей хеш: створюється величезна база хешів випадкових рядків, якщо ваш хеш у ній знайдений -- відповідний рядок спрацює як пароль.

    >А можно будет сделать и смс-аунтефикацию, Приватбанк вроде так делает в своей системе PrivatMoney.

    ПБ всюди її сує. Але у неї є суттєвий баґ: потрібно мати номер місцевого оператора з активним телефоном == закордонні користувачі йдуть лісом. Гадаю, це теж можна якось вирішити, тобто участь телефона як термінала це майже обов’язкова вимога часу (особливо, майбутнього, на який ми орієнтуємося).

    ВідповістиВидалити
  18. >Але вона обходиться доволі легко, якщо маєш на руках цей хеш

    Втім, є способи додаткового захисту. Тобто теоретично відкрита база паролів це можливо.

    ВідповістиВидалити
  19. просто никто не ставил задачу перечисления денег между участниками сети. Пейпел вообще изначально под аукцион создавался. Есть разные системы, в том числе и простые, к примеру, клик-н-бай, практически одним кликом переводит деньги. Вот с этиим со всем и следует разобраться, а если таких готовых систем нет, то сделать самим)).

    ВідповістиВидалити
  20. Jarizleifr> Что такое вообще социальная сеть?

    Звісно, Facebook далеко не перша соц.мережа (перші з’явилися ще в середині 90-х), але в цілому з прив’язкою до функцій держави можна погодитися.

    Jarizleifr> Какие функции будет включать в себя веб-государство?

    Якщо взагалі йдеться про термін «соціальна мережа», то її метою є побудова соціальних графів.

    У нас задача створити інструмент для спільного фінансування публічних проектів та спільнот. Мережа тут буде лише інструментом для формування довіри до учасників, бо відображатиме історію діяльності («А успішно співпрацював з Б, у Б добра репутація, значить А теж можна довіряти»). Інститут репутації варто зробити формальним.

    Скоріше це схоже на біржу проектів а ля odesk.com, тільки робота відбувається поза межами онлайну (можна й онлайн, але це не проблема і зараз), також відрізняє принципова відкритість системи.

    Я пропоную розділити проект на два етапи:

    1. Спрощена система. Веб-сайт монолітної архітектури (його порівняно легко розробити та підтримувати), мінімально необхідний набір функцій для початку діяльності. На цьому етапі необхідно обкатати ідеї системи та виробити методики захисту від проблем (шахрайства та ін.) -- цьому потрібно буде присвятити окреме обговорення.

    2. Розширена система. Колишній єдиний вебсайт виконує інформаційні функції, фактична діяльність розподілена по вузлах системи. Вузлами можуть бути як веб-сайти, так і програми. Це задача іншого порядку складності, але вона має величезні переваги у надійності та захищеності. Очевидно, що якщо/коли система почне рости як Twitter колись, то без величезних інвестицій підтримувати стару архітектуру буде неможливо. Це тонкий момент.

    Втілення другого етапу має бути проектом+спільнотою з першого. Фактично, це буде доказ ефективності системи.

    Програма-максимум, це поступове перетягування системою на себе функцій держави.

    ВідповістиВидалити
  21. З огляду на базовий принцип відкритості, розробку веб-сайту можна проводити як opensource продукт. У нас навіть назва вже була -- CitizenTools. Мені подобається.

    Втім, головні труднощі будуть в іншому.

    Я освіжив у пам’яті спілкування з ВЗ і пропоную спочатку розглянути кілька складних моментів, які ми не можемо оминути вже на першому етапі.

    1. Організація грошової системи.

    Все сказане в постах дуже правильно, але не реалістично в поточних українських реаліях.

    Нам потрібна легальність та безпека транзакцій.

    Але, наші банки (а) технологічно відсталі в плані онлайн-сервісів; (б) «обережні», якщо можна так сказати.

    Я не уявляю як можна переконати якийсь банк впрягтися в усе це, щоб не навантажити користувачів чималими комісіями.

    Найбільш технологічно просунутий банк -- Приват... Репутацію його всі добре знають. Надійності я б тут не очікував.

    Тобто це буде дуже дорого і дуже геморно. Для початку системи перше смертельно, друге якось можна ще розрулити за допомогою зв’язків та вміння вести перемови.

    ВідповістиВидалити
  22. 2. Реєстрація, тобто оцей пункт:

    Jarizleifr> Кто будет регистрировать новых пользователей-граждан государства?

    Знову-таки, потрібно якось стартувати. Ну добре, спочатку зробити період тестування «для своїх», тільки за запрошеннями.

    Але як домовитися з юристами, щоб вони приєдналися? Хто це буде оплачувати, та як це прив’яжеться до «реального» світу? Ця особа мусить мати можливість якось перевірити особу, чи не так? Це можна вже зараз робити легально?

    Можливо, обіцяний тематичний пост пояснить це діло.

    ВідповістиВидалити
  23. Jarizleifr> Да, какие соображения насчёт движка БД и насчёт языка программирования? ... Я предлагаю для начала MySQL и Java, если у кого есть альтернативные варианты - пердлагайте.

    Якщо ми почнемо, то ми почнемо з макета-прототипа. Це можна зробити на чому завгодно, наприклад на PHP, який може редагувати навіть дитина.

    Щодо розробки системи першої фази, то я би запропонував провести опитування серед інших програмістів-добровольців.

    Але це майже напевне не буде Java, особисто я не настільки псих щоб робити на ній соц-мережу... та й будь-який веб-сайт взагалі, якщо замовник не корпорація чи банк з купою бабла. Особисто я працюю з екзотичною для нас технологією ColdFusion, тому ця опція теж мабуть відпадає.

    Оптимальним буде обрати з трійки сучасних та достатньо популярних (щоб найти програмістів) технологій:
    - Python (на Django, наприклад)
    - Ruby (на Rails, мабуть)
    - PHP (Symfony, CakePHP чи ще щось такого типу)

    В дужках це фреймворки, must have для сучасної розробки.

    База хай буде MySQL, це звичний для всих та добрий інструмент.

    ВідповістиВидалити
  24. Обговорення технарів :(

    Головне питання на поточний момент - хто буде користуватись цією системою *зараз*!?

    Що в його повсякденному житті вона спростить, зробить легшим або взагалі можливим?

    Чи набереться таких людей хоч сотня?

    Без відповіді на це питання у нас вийде черговий пустий сайт, який нікому не потрібен.

    ВідповістиВидалити
  25. >> VZ сказав...

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

    - Упаси нас боже связываться с пейпал, я работаю с этой системой, мой сервис принимает платежи через них, они часто отменяют плдатежи просто так, иногда бывает, что ставят платёж на отмену, и сам хозяин аккаунта, заплативший мне, звонит им, и подтверждает, что платёж не мошеннический, и я с ними связываюсь, и всё равно отменяют. Причём отменить могут и через 3 месяца, когда все уже и забыли, что там кому за что платилось. Да и мошенничество через пейпал не редкость. Вам наплатят миллион с ворованных аккаунтов, а потом пейпал заберёт все деньги обратно :)
    Я думаю, такой системы, как нам нужно, ещё не существует в природе, потому как они все создавались не для тех целей. Слишком уж анонимные и неконтролируемые системы типа биткоин плохи тем, что владелец аккаунта неиндентифицируем, да и они не связаны непосредственно с миром реальных денег, в Пейпал наоборот, слишком контролируем + это одна частная фирма-монополист, которая может поступать, как ей вздумается, например, украинцы не могут получать платежи в ней, только платить. Системы типа Вебмани и Либерти резерв - тоже связаны с миром реальных денег только через обменники, и представляют собой по сути, пузыри, ничем не обеспеченные и никак не контролируемые, в один прекрасный день могут сказать "вас нае**ли, расходитесь(С)". То есть, если нам нужна система под наши нужды, её придётся создать или выработать и распространить красивую идею, которую воплотит кто-то другой. Я пока ещё стою на своём мнении насчёт того, что такую систему надо делать с участием банков. И вот почему:
    банки уже связаны с миром реальных денег. У них уже есть механизмы съёма и зачисления денег на карточки, есть кассы по приёму/выдаче налички. Уже есть отделы, что занимаются выявлением мошеннических операций. Как правило, пользователи банка идентифицированы. Вы даже можете не хранить собственно в самой системе какие-либо личные данные пользователя, поручив это банку, а система будет знать лишь банк и айди пользователя в нём. В случае выявления злоупотреблений банк уже будет раскрывать информацию пользователя. Банков много и они конкурируют между собой, то есть, заинтересованы предоставлять услугу качественно. Раз уж мы решили побыть в роли этаких демиургов будущего мира, мы ни в коем случае не должны создавать какие-либо системы, замкнутые на нас, а создавать поле для игры неограниченного числа независимых конкурирующих игроков. Я думаю, вполне реально задумать, создать, а возможно, даже и заинтересовать какие-то банки в такой открытой системе (открытой для вступления игроков-банков, ясно, что все данные будут храниться в закрытых базах банков-участников). На самом деле, тут не будет ничего нового, все эти идеи отработаны частично и в нынешней системе банковских счетов физлиц, и в межбанковской системе СЭП, и в Webmoney, и в PayPal, можно отовсюду взять хорошие идеи, и построить систему без их недостатков.

    ВідповістиВидалити
  26. akhavr> Без відповіді на це питання у нас вийде черговий пустий сайт, який нікому не потрібен.

    Дуже правильні питання, саме цього я чекав від колег. Власне, мої попередні коментарі якраз є намаганням повернути обговорення в практичну площину.

    ВідповістиВидалити
  27. >> Follow us on twitter сказав...
    >> Головне питання на поточний момент - хто буде користуватись цією системою *зараз*!?
    >> Що в його повсякденному житті вона спростить, зробить легшим або взагалі можливим?

    - Ну, мы все понимаем, что легко и быстро ничего не делается. Политики могут обещать людям, что после выборов пенсии быстро вырастут, все станут богатыми, а работать будет не надо. Мы ж понимаем, что нынешняя система зашла в тупик, жизнь общества и экономика постепенно приближаются к полному коллапсу. Какие-либо здравые идеи по улучшению ситуации в обществе и в элите вообще не обсуждаются. "Когда всё рухнет" - это вопрос времени, неблагодарное дело ставить прогнозы, может, рухнет в августе, а может, проскрипит ещё лет 5 каким-то чудом. Создать какие-то идеи и наработки, чтоб предложить обществу в момент, когда никто не будет понимать, что делать и как дальше жить - это уже немало. Возможно, какие-то политики пронюхают тут нишу, конъюнктуру, и возьмут эти идеи на вооружение.
    Ну, допустим, общественный запрос на простую, быструю и надёжную систему платежей уже есть, существующие системы не удовлетворяют его в полной мере.
    Юридическая система - возможно, когда она будет создана, она будет востребована для решения каких-то споров внутри корпораций, общин, сообществ, которые не желают обращаться за этой услугой к государству. Надо попробовать, думаю, рано или поздно это очень понадобится. (статью про своё видение такой системы я пока что "вынашиваю").
    Идеи насчёт замены водительского удостоверения и талона техосмотра страховым полисом, по моему, достаточно хороши, чтоб предложить их лоббистам сраховых компаний и политикам. Система учёта прав собственности (например, на земельные участки и недвижимость, открытый реестр и кадастр) это тоже очень обсуждаемая тема и очень наболевший в украинском обществе вопрос.

    ВідповістиВидалити
  28. 2ponedilok
    Не думаю, что это важный вопрос. "сколько будет человек" - никто этого не знает. Это предпринимательство. Инновация. соответственно, все риски налицо. Для меня этот вопрос не важен))О планируемой пользе я написал в другом посте

    ВідповістиВидалити
  29. VZ> Не думаю, что это важный вопрос.

    На жаль, це стандартна помилка починаючих інтернет-підприємців.

    Знаєте, дуже багато приходять людей з ідеями нових чудових сервісів... Я роблю веб-сайти на замовлення 5 років, так от десь 8-9 з 10 розроблених сайтів просто не «злітають».

    Дуже корисно хоча б уявляти хто потенційно буде користуватися в період після запуску. В ідеалі, знайти потенційних користувачів-тестерів уже зараз.

    ВідповістиВидалити
  30. честно говоря, продолжаю считать, что это абсолютно неважно)) сайт некоммерческий, он может "выстрелить" бог знает когда, так что для меня этой проблемы нет.

    ВідповістиВидалити
  31. Jarizleifr сказав..Возможно, какие-то политики пронюхают тут нишу, конъюнктуру, и возьмут эти идеи на вооружение.

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

    ВідповістиВидалити
  32. Зауваження щодо технічної частини. Про опенсорс вже сказали, але це лише один елемент відкритості. Вважаю за потрібне не прив’язувати систему (принаймі, малу мережу) до якогось одного хостингу чи власника. Іншими словами, спочатку потрібно скласти відкриту специфікацію системи, яка би включала: набір сервісів, які надає система, клієнтський API, засоби взаємодії двох чи більше подібних систем між собою та ін. А вже потім писати свою реалізацію. Звісно, я розумію, що дай Бог, щоб воно хоча б в одному екземплярі більш-менш запрацювало, але це питання, як на мене, політичне.

    ВідповістиВидалити
  33. дещо із критики:
    архітектура:
    - якась каша у вас. не буду критикувати в деталях....варіянт вирішення - entity based
    тобто не існує взагалі мережі, є надмережа мереж (як інтернет сам по собі, складений із мікромереж) , наприклад entity - я, є частиною entity квартири, моя квартира #5 є частиною entity - дома #20 ну і далі. я можу входити в мережу через проміжні entity або напряму (або і так і так). будь яка entity може входити в мережу або ні. будь яка entity може входити в декілька мереж, якщо забажає
    entity\мережі, що воно таке - пропоную три види - entity з землею, entity без землі, вільна entity. кожен визначає сам свій рівень. наприклад, я можу входити у домову entity ( яка є земельною), у айтішну (яка є "угрупованням") та сам по собі, як прихильник VZ :)
    - друга частина entity - наявність атрибутів, тут знов 3 рівня - приватний(ну наприклад мій банківський рахунок\и), заявлений (ну я там кажу що у мене 2-є дітей), підтвердженний (юрістом (з мережі юристів :), що я маю 2-є дітей)
    - і да, кожна людина має право мати будь яку кількість entity нижчого рівня, якщо забажає, в залежності від питань їй усе одне прийдеться підтверджувати той чи інший атрібут
    ну і кожна entity колективного рівня може вимагати підтвержених атрибутів, наприклад, щоб долучитися до мережі дому\району\міста, я маю затвердити, що є квартировласником (мережа аузорізації\юристів тут у нагоді)
    - гроші\гроші\гроші - третя частина entity це грошові відносини, тут два варіянти, обидва рівноцінні - працювати через одну із entity банкірів(які можна створити),
    або платити напряму (картка, банк і все звичайне), але тут є проблема, ніхто у світі не вирішив проблему micropayments, дорого виходить, якщо платиш через мобілку 60%-70% забирає оператор....

    конфігурація виходить наступна:
    1. мінімальна entity, софтина така собі :
    - приєднуватися до іншіх
    - хранити атрібути (та посилання на верифікацію)
    - вести баланс витрат
    2. коллективна entity:
    - під'єднувати інші
    - вести реєстр
    - вести бухгалтєрію
    - приєднуватись до юридичних за верифікацією
    - приєднуватись до фін за грошима
    3. юридична спеціальна:
    - центр авторизації
    4. фінансова спеціальна:
    - центр фін.розрахунків

    еволюція\roadmap :
    1. basic api систем (наприклад на базі http://thrift.apache.org/)
    2. basic minimal\group levels
    3. run its in real
    4. test in live
    5. refactoring
    6. lawers\financial levels
    ...

    ВідповістиВидалити
  34. >> не буду критикувати в деталях...
    если есть желание, можете покритиковать
    >> варіянт вирішення - entity based
    не забывайте, наша главная задача - создать систему, готовую к применению простыми людьми, и нам надо будет объяснить людям, как оно работает, и колхознице, и пенсионеру, и шахтёру - так, чтоб им было понятно и чтобы хотя бы любопытно стало попробовать. Из вашего описания идеи я не совсем понял, где физически будут храниться данные про каждую entity? У кого будет право их изменять, администрировать, модерировать?
    >> я можу входити у домову entity ( яка є земельною), у айтішну (яка є "угрупованням") та сам по собі, як прихильник VZ :)
    - зачем республике 2.0 знать, что вы айтишник и сторонник идей VZ? Мы вроде как бы не конкурента Фейсбуку создаём.
    >> підтвердженний (юрістом (з мережі юристів :), що я маю 2-є дітей)
    Да-да, я так всё и предлагал - правом вносить данные в базу будут обладать юристы.
    >> - гроші\гроші\гроші - третя частина entity це грошові відносини, тут два варіянти, обидва рівноцінні - працювати через одну із entity банкірів(які можна створити),
    або платити напряму (картка, банк і все звичайне), але тут є проблема, ніхто у світі не вирішив проблему micropayments, дорого виходить, якщо платиш через мобілку 60%-70% забирає оператор....
    - Я как бы написал отдельную статью на тему финансовой системы, http://democracy200.blogspot.com/2011/05/blog-post_4305.html, что можете сказать про это? СМС-платежи - тупиковая ветвь, имхо.
    За идею с http://thrift.apache.org/ - огромное спасибо.

    ВідповістиВидалити
  35. схоже я дещо дуже складну систему запропонував,
    дуже важко буде імплементувати.
    пропоную підійти з іншого боку - виберіть одну (одну !) мінімальну але
    важливу функцію, яку можна реалізувати відносно швидко але
    якісно, а потім вже можна йти далі
    так буде простіше і результати будуть швидше.

    ВідповістиВидалити
  36. 2 архітектор
    Ну, сложные вещи иногда просты и популярны в использовании, 99,9% телезрителей не смогут объяснить, как работает их телевизор.
    >> пропоную підійти з іншого боку - виберіть одну (одну !) мінімальну але
    важливу функцію, яку можна реалізувати відносно швидко але
    якісно, а потім вже можна йти далі

    Да так и будет, но некоторые фундаментальные вещи мы ещё для себя не уяснили.
    Главное - где и как будут храниться данные, кто будет их владелец и как можно гарантировать их безопасность? Хакеры бесчинствуют, сервера ломаются, жёсткие диски выходят из строя. + человеческий фактор - если база по факту контролируется группой людей, рано или поздно к ним придёт искушение немного злоупотребить этим. Моя первая идея была сделать базу открытой - чтоб любой мог скачать себе копию, это решает проблему бекапа да и в случае подмены хакерами каких-то данных есть с чем сравнить и из чего восстановить. Но - от этой идеи мы отказались, нам ведь нужно хранить пароли, да и большинство пользователей не хотят выкладывать в общий доступ всю информацию про себя - хотят сами решать, что будет видно, а что нет.

    ВідповістиВидалити
  37. ну тоді назад до складного :)
    хоча, з точки зору розробки, неможливо усе спроектувати наперед, краще дозволити самій задачі вести куди їй потрібно...

    так от, перед даними, дещо з теорії - будь яка подібна система повинна вирішувати декілька задач:
    - аутентифікація - тобто чи є людина саме тою за кого себе видає, тут потрібні центри аутентифікації, які по наявним документам видають людині ключі (цифрові) які людина вже використовує далі (скоріш за все лише там де це потрібно, наприклад у голосуванні), центрів може бути декілька , ключів у людини може бути теж декілька, наприклад, на особу, на володіння майном та інші . логічно що ці центри також ведуть бази з цими даними, але у мінімізованому вигляді, тобто ключ ххх володіє майном таким то і таким-то , або вася пупкін має ключ yyy. крім того ведуть логи доступу до цієї інфи, тобто, хто хто і коли звертався за реверсом (визначити кому належить ключ xxx, та інше) ну і діють згідно правил, наприклад сервер володарів майна дома може запитати чи є ключ ххх володарем майна, а якась стороння особа - ні. скоріше за все центри повинні бути різними, тобто будь який сервер зберігає лише частку інфи, і при компрометації приватність залишається як є.
    - авторизація - ключами підписують будь яку операцію ініційовану людиною, тому завжди можна підтвердити (через центр аутентифікації) що саме ця людина (цей ідентифікатор) ініціював цю операцію
    ну і далі 150 сторінок як мінімум , головне що дані є і їх немає одночасно, кожний сервер зберігає лише частку, яка йому потрібна, і отримує іншу інфу, якщо потрібно з сторонніх серверів, тому будь яка особа з деструктивними намірами майже не має шансів отримати всю інформацію по людині (наприклад), але сервери на базі довіри отримують частки потрібні для роботи

    ну от щось таке виходить у складному варіанті, хоча я дещо невпевнений що у вас є достатньо ресурсів щоб це зробити

    ВідповістиВидалити
  38. >> - аутентифікація - тобто чи є людина саме тою за кого себе видає, тут потрібні центри аутентифікації, які по наявним документам видають людині ключі (цифрові) які людина вже використовує далі (скоріш за все лише там де це потрібно, наприклад у голосуванні),

    - а кто будет выдавать людям документы, по которым они будут получать ключи? Для голосования мы уже решили использовать банковские карты.
    >> центрів може бути декілька
    - кто даст помещения для этих центров, кто снабдит их техникой, кто будет платить зарплату специалистам? Кто даст гарантию, что среди специалистов не будет нехороших дядь и тёть, которые захотят заниматься злоупотреблениями?
    >> тобто ключ ххх володіє майном таким то і таким-то
    - Зачем нужна эта информация?
    >> крім того ведуть логи доступу до цієї інфи, тобто, хто хто і коли звертався за реверсом (визначити кому належить ключ xxx, та інше)
    - зачем нам следить за этим?
    >> скоріше за все центри повинні бути різними, тобто будь який сервер зберігає лише частку інфи, і при компрометації приватність залишається як є.
    - а какая скорость при этом будет? Если кому-то надо "вытащить" некую информацию, которая разбросана по 10 датацентрам, как быстро это произойдёт? А если нам надо сделать запрос по 10 млн. записей? И как это можно технически реализовать?
    >> головне що дані є і їх немає одночасно, кожний сервер зберігає лише частку, яка йому потрібна, і отримує іншу інфу, якщо потрібно з сторонніх серверів, тому будь яка особа з деструктивними намірами майже не має шансів отримати всю інформацію по людині (наприклад), але сервери на базі довіри отримують частки потрібні для роботи
    - есть технические идеи, как можно организовать подобную распределённую базу данных? С гарантиями безопасности и с гарантиями того, что при уничтожении одного из серверов системы данные не будут потеряны?
    >> я дещо невпевнений що у вас є достатньо ресурсів щоб це зробити
    - Дорогостоящие решения в любом случае не подходят. Мы хотим уйти от дорогого и затратного нынешнего государства, альтернатива должна быть недорогой, но эффективной, иначе нам придётся снова вводить налоги для оплаты администрирования и всё вернётся на круги своя. Система должна быть максимально открыта для помощи и участия энтузиастов.

    ВідповістиВидалити
  39. мне это видится так - в целом база будет открытой, но некоторые поля будут зашифрованы с помощью спец. ключей. Ключи будут у владельцев (контролёров) информации, разная информация будет у разных контролёров. Это, в общем-то, перекликается с тем, что предложил уважаемый архітектор. Владельцы информации - не совсем верное слово. Например, я являюсь владельцем своего имени и фамилии, но не я буду их контролёром. Каждый контролёр будет иметь свой некий API в интернете, к нему можно будет обратиться, авторизироваться и попросить расшифровать некое поле из базы. Некоторые данные не будут храниться в базе вообще, вместо них будет храниться ID, по которому их можно получить у контроллёра. Итак, навскидку, собержимое базы в первом приближении:
    Таблицы административных единиц Украины (с возможностью расширения на другие страны). Это таблицы областей, районов, городов и сёл, соединённые иерархическими связями. Само собой, эта информация шифроваться не будет. Таблица пользователей - по умолчанию в открытом доступе будет только псевдоним и ссылка на нас. пункт проживания. Имя, фамилия, адрес могут быть как зашифрованными, так и отрытыми - по желанию пользователя. если пользователь хочет получить статус выше, чем обычный пользователь - судья, глава кондоминиума, и т.д. и т.п., то быть анонимом он уже не может. Пароль пользователя в этой базе храниться не будет, можно будет отправить контролёру запрос, содержащий логин пользователя и введённый пароль, и в ответ получить результат - правильная пара или нет. Само собой, такие запросы сможет делать не каждый желающий, и кол-во неверных попыток подряд будет ограничено. Поначалу будет один или несколько основных серверов-"контролёров", но в будущем любой желающий, кто сможет выполнить некие требования, сможет скачать и установить у себя (и даже разработать) програмное обеспечение и открыть у себя сервер-контролёр, например, для себя и своих близких, или для своего села, например. Пользователи смогут свободно менять одного контролёра на другого. Финансовая информация - номера карточек, например - не будет храниться в базе ни в каком виде. Для Малой Сети можно будет временно создать неких "финансовых контролёров" по тому же принципу, что и контролёры паролей, а в БС я предлагаю эту функцию переложить на банки - см. статью про финансовую систему 2.0.

    ВідповістиВидалити
  40. >>а кто будет выдавать людям документы, по которым они будут получать ключи?
    --
    ну у світі не так багато документів, із того що використовується у світі:
    - паспорт (id)
    - reference letter від банка або нотаріуса
    - utility bills (рахунки)
    - стаціонарний телефон

    >>Для голосования мы уже решили использовать банковские карты.
    --
    будь ласка не робіть цього, зберігати номери карток хоч і не є (або вже є) кримінальним злочином, але крім того дуже сильно карається візою та мастеркардом

    >>- кто даст помещения для этих центров, кто снабдит их техникой, кто будет платить зарплату специалистам?
    --
    це могли би бути волонтери, або піде у собівартість веб республики

    >>
    Кто даст гарантию, что среди специалистов не будет нехороших дядь и тёть, которые захотят заниматься злоупотреблениями?
    --
    ніхто. і ніколи, єдине, у випадку махінацій усі ключі цього центру визнаються помилковими і центру - ганьба

    >>- а какая скорость при этом будет? Если кому-то надо "вытащить" некую информацию, которая разбросана по 10 датацентрам, как быстро это произойдёт? А если нам надо сделать запрос по 10 млн. записей? И как это можно технически реализовать?
    --
    а як працює днс ? як працюють ssl сертифікати ? все вже зроблене багато років тому.

    >>- есть технические идеи, как можно организовать подобную распределённую базу данных? С гарантиями безопасности и с гарантиями того, что при уничтожении одного из серверов системы данные не будут потеряны?
    --
    http://en.wikipedia.org/wiki/Domain_Name_System
    http://en.wikipedia.org/wiki/Certificate_authority

    >>- Дорогостоящие решения в любом случае не подходят. Мы хотим уйти от дорогого и затратного нынешнего государства, альтернатива должна быть недорогой, но эффективной, иначе нам придётся снова вводить налоги для оплаты администрирования и всё вернётся на круги своя. Система должна быть максимально открыта для помощи и участия энтузиастов.
    --
    ну от я і кажу - виберіть одну просту але важливу функцію і розробляйте її (із думкою що вона стане частиною більшого) . так легше ніж на колінах збудувати те, що люди тисячі років розробляли

    ВідповістиВидалити