Насколько Я вижу, у вас схема данных фиксирована и хранится как на отправляющей стороне, так и на принимающей. В UDP пакетах передаются только значения (без имён полей и структу). Вы не пробовали в качестве эксперимента использовать google.protobuf вместо cpickle? По-моему, protobuf как раз придуман как формат передачи данных фиксированной структуры. Я тут набросал небольшой пример:
Описание структуры данных:
Указанный в статье алгоритм предполагает, что у одного сайта может быть только один пароль, так как пароль генерируется из имени домена. А что, если сайт подвергся взлому, и вам приходит официальное письмо от администрации: «пожалуйста, поменяйте пароль». И что делать?
В первом докладе Дмитрий Сошников делает очень странное заявление, будто F# — самый популярный функциональный язык программирования. И в качестве доказательства приводит индекс TIOBE, где F# занимает 16-е место. Я открыл этот индекс и увидел следующее:
Scala — 30-е место
Lisp — 32-e место
F# — 39-е место
Где правда? Может быть один месяц, когда F# вырвался в первую двадцатку? Откуда Дмитрий взял такие цифры?
Насколько Я знаю, скалярное произведение в произвольном конечномерном пространстве задаётся матрицей.
(ei — базисный вектор)
Для декартовой системы координат — это единичная матрица. Для косоугольной — эта матрица будет другой. Но свойства у неё прямо как у тензора. Или Я что-то путаю?
Если вы хотите окунуться поглубже в Тензорный анализ, то могу посоветовать учебник Б. Е. Победря «Лекции по тензорному анализу» 1986г.
Книга требует знаний в линейной алгебре, мат. анализе и аналитической геометрии. Из неё Я узнал про ковариантные и контрвариантные координаты, запись тензоров в Эйнштейновском виде, узнал, что скалярное произведение — это тоже тензор, и лично познакомился с тензором кривизны.
Вопрос 1: как Opera Software планирует взаимодействовать с Open Source сообществом? Сейчас браузер Opera полностью закрытый. Будут ли открыты исходники браузера, или сервера синхронизаций Opera Link, или сервера Opera Turbo, или почтовика M2, или других ваших продуктов? Вопрос 2: Какова дальнейшая судьба почтового клиента M2? На него все забили?
Вопрос: Я думал, где бы завести англоязычный блог. Он мне нужен для анонсов и обсуждений. Я подумал, что Vivaldi.net — это хорошая идея. Но сейчас уже сомневаюсь. Текущий блог требует регистрации, чтобы смотреть посты. UI у Vivaldi.net не очень понятный. Коллеги, посоветуйте платформу для технического англоязычного блога, чтобы не поднимать свой сервер?
IntelliJ IDEA написана на Java. Весь API, доступный плагинам, это Java. Сама IDEA запускается под мультиплатформенной Java Virtual Machine, создаёт Java классы, описанные в plugin.xml, и вызывает их Java методы. В каком месте вы предлагаете написать код на D? И как вы предлагаете скомпилировать его под все платформы?
На чистом D есть IDE Poseidon, основанная на графической библиотеке DWT. Эту IDE пишут русские ребята.
Возвращаясь к «Disclaimer 2», это мой первый опыт разработки под платформу IntelliJ IDEA. Я следовал туториалу. Про stubIndex не слышал. Спасибо за наводку!
Visual Studio — это Windows Only решение. Про D-IDE не слышал. По-моему, IntelliJ IDEA одна из самых популярных IDE. Да к тому же, мультиплатформенная. Это моя основная среда разработки. И было странно, что под неё есть плагины для Go, Haxe и Erlang, но отсутсвует поддержка D.
Я тоже в своё время влюбился в этот язык программирования. Удивительно, что с 80-х годов синтаксис и основные принципы работы языка практически не изменились. То есть, изначально Алан Кей достал бритву Окама и сделал простой и одновременно мощный язык, который легко расширять (добавление Try-Catch конструкций можно сделать средствами самого языка, не вводя новых ключевых слов и не меняя виртуальную машину), и который объектно-ориентированный до мозга костей (в отличие от той же Java, где есть int, boolean и float, выпадающие из общей идеи «всё есть объект»). Плюс всё динамическое: можно добавлять/удалять классы и менять методы прямо в процессе работы приложения. Рекомендую пройти какой-нибудь туториал по этому языку. Он заставляет мозг работать немного по другому и прививает «чистый» ООП стиль программирования.
Конечно у Smalltalk есть недостатки. В частности меня смущает образ системы, внутри которого «живёт» виртуальная машина и управляет объектами. totuin, подскажите, как происходит deployment приложения на сервер? Вы закачиваете готовый образ системы и запускаете VM с этим образом? Или рабочий сервер выкачивает исходный код из базы и компилирует его на лету?
А вы планируете использовать расширения как в Chrome и новой Opera? Мне удалось через страницу chrome://extensions установить Lastpass, но он всё равно не работает (нет иконки на панели инструментов, поля ввода логинов и паролей не подсвечиваются).
А вас не смущает, что точно такой ответ будет в Java, JavaScipt, C# и остальных языках, в которых присваивание копирует ссылку а не значения? Для вас это непривычное поведение, но для Python — это совершенно логично, это описано в документации и это поведение сохраняется при вызове функций и методов (аргументы передаются по ссылке, а не по значению).
А что будет если открыть другой редактор, который случайно вставит вместо пробелов Tab? Правильно, ошибка будет. Придётся искать где это произошло.
Теоретически — такое возможно. Но Я ни разу с таким не сталкивался. В крайнем случае Python, как воспитанный интерпретатор, выкинет Indentation Error и покажет номер «плохой» строки.
Что будет? Правильно, опять ошибка. Сначала нужно определить a['test1'], а потом что-то туда записывать.
Опять же, в JavaScript, в Ruby, и в других современных языках это нормальное поведение. Если очень хочется, то можете использовать класс defaultdict из стандартной библиотеки.
Не скажите. В PHP мы привыкли, что порядок уже изначально есть. Мы можем без проблем туда засунуть некий набор пунктов меню и потом также по порядку его вывести. А вот в Python как-то приходится мозг ломать. И делать список отдельный для сохранения порядка. Но список тоже не так прост, так как в него элемент абы как не воткнешь. Если понадобится вдруг воткнуть элемент в середину списка, то придется делать новый список.
Если есть нужда в словаре, который сохраняет порядок, то возьмите OrderedDict. Списки в Python изменяемые. Используйте срезы (slice):
data = [3, 1, 4, 8, 2]
data[3:3] = [1, 5] #Вставить два элемента после третьего элемента
data[-2:-1] = [9] #Заменить предпоследний элемент на девятку
Как Я советовал в своём комментарии выше, не пытайтесь перенести свои привычки из других языков. Python это не PHP и не Java. И если что-то работает не так, как вы привыкли, это не значит, что язык плохой. Просто он другой, он построен на немного других принципах. Но если вы попробуете проникнуться идеями, заложенными в Python, то, думаю, сможете увидеть его изящество, простоту и мощь.
Описание структуры данных:
Серриализация одного объекта:
В результате объект серриализуется в строку размером 67 байт.
(ei — базисный вектор)
Для декартовой системы координат — это единичная матрица. Для косоугольной — эта матрица будет другой. Но свойства у неё прямо как у тензора. Или Я что-то путаю?
Книга требует знаний в линейной алгебре, мат. анализе и аналитической геометрии. Из неё Я узнал про ковариантные и контрвариантные координаты, запись тензоров в Эйнштейновском виде, узнал, что скалярное произведение — это тоже тензор, и лично познакомился с тензором кривизны.
Вопрос 2: Какова дальнейшая судьба почтового клиента M2? На него все забили?
plugin.xml
, и вызывает их Java методы. В каком месте вы предлагаете написать код на D? И как вы предлагаете скомпилировать его под все платформы?На чистом D есть IDE Poseidon, основанная на графической библиотеке DWT. Эту IDE пишут русские ребята.
stubIndex
не слышал. Спасибо за наводку!Конечно у Smalltalk есть недостатки. В частности меня смущает образ системы, внутри которого «живёт» виртуальная машина и управляет объектами.
totuin, подскажите, как происходит deployment приложения на сервер? Вы закачиваете готовый образ системы и запускаете VM с этим образом? Или рабочий сервер выкачивает исходный код из базы и компилирует его на лету?
То есть, в макросе не хватает скобочек вокруг
size
.Вот вам ещё один способ выстрелить в ногу ;)
Теоретически — такое возможно. Но Я ни разу с таким не сталкивался. В крайнем случае Python, как воспитанный интерпретатор, выкинет Indentation Error и покажет номер «плохой» строки.
Опять же, в JavaScript, в Ruby, и в других современных языках это нормальное поведение. Если очень хочется, то можете использовать класс defaultdict из стандартной библиотеки.
Если есть нужда в словаре, который сохраняет порядок, то возьмите OrderedDict. Списки в Python изменяемые. Используйте срезы (slice):
Как Я советовал в своём комментарии выше, не пытайтесь перенести свои привычки из других языков. Python это не PHP и не Java. И если что-то работает не так, как вы привыкли, это не значит, что язык плохой. Просто он другой, он построен на немного других принципах. Но если вы попробуете проникнуться идеями, заложенными в Python, то, думаю, сможете увидеть его изящество, простоту и мощь.