неділя, 29 грудня 2013 р.

Представлено Pythonium 0.4.7, компілятор з Python в JavaScript

Став доступний новий випуск проекту Pythonium 0.4.7, в рамках якого розвивається компілятор , здатний перетворювати написані з використанням мови Python 3 скрипти на мову JavaScript, для виконання в web-браузерах. Pythonium доступний у двох варіантах: Pythonium Compliant, повністю сумісний з CPython 3 і відповідний для трансляція проектів для роботи в Web, і Pythonium Veloce, що надає засоби для написання web-додатків на мові Python. Код Pythonium написаний на мові Python і розповсюджується під ліцензією LGPLv2.1.

Pythonium Veloce повністю сумісний з існуючими JavaScript-бібліотеками і дозволяє домогтися продуктивності звичайних JavaScript-додатків. Для маніпулювання html-об'єктами і доступу до браузерних технологій в первісному скрипті на мові Python можна використовувати можливості бібліотеки jQuery або безпосередньо викликати JavaScript-блоки, для чого пропонується використовувати спеціальну функцію-враперів JS().

Оновлення Python 3.3.3. Випуск Wing IDE 5.0.

Став доступний коригувальний випуск мови програмування Python 3.3.3, в якому представлено близько трьохсот виправлень. У тому числі усунуто одинадцять вразливостей, серед яких вичерпання пам'яті через обробку дуже довгих рядків у функції readline та проблема в SSL-модулі з обробкою символів з ​​нульовим кодом в полі subjectAltName. Також усунутий крах інтерактивного інтерфейсу інтерпретатора при його запуску в OS X 10.9.


Одночасно представлено випуск інтегрованого середовища Wing IDE 5.0, призначеного для розробки додатків мовою Python. IDE надає професійний редактор коду, в якому можливо використовувати клавіатурні комбінації vi і emacs, працює автодоповнення коду, рефакторінг, відстеження викликів, контекстні підказки. Доступний графічний відладчик коду, інтерфейс для контролю версій, система unit-тестування, гнучкий механізм пошуку. Збірки Wing підготовлені для Linux, Windows і OS X. Вихідні тексти Wing надаються, але тільки після підписання спеціальної угоди про нерозголошення.

Оновлення Python 2.7.6

Став доступний коригувальний випуск Python 2.7.6, в якому проведена робота щодо виправлення помилок. З найбільш істотних виправлень відзначається вирішення проблеми, що приводила до краху інтерактивного інтерфейсу інтерпретатора при його запуску в OS X 10.9. Вирішено проблему з безпекою в реалізації CGIHttpRequestHandler, що дозволяє здійснити вихід за межі базової директорії. Також усунено кілька DoS-вразливостей, викликаних вичерпанням пам'яті при обробці дуже довгих рядків у функції readline. Гілка 2.7 залишається останньою в серії 2.x і буде підтримуватися до липня 2015 року.

субота, 28 грудня 2013 р.

Реліз web-фреймворка Django 1.6

Представлена стабільна версія популярного фреймворка Django 1.6, написаного мовою Python і призначеного для розробки веб-додатків. Випуск Django 1.6 примітний переведенням підтримки Python 3 в категорію готового для промислової експлуатації. Крім того, підтримка Python 3 додана в додаток з реалізацією панелі Debug Toolbar. В якості підтримуваних гілок Python заявлені 2.6.X, 2.7.X, 3.2.X і 3.3.X. У наступному випуску підтримка Python 2.6 буде припинена.

З поліпшень Django 1.6 зазначається:

  • Включення за замовчуванням захисту від clickjacking-атак в проектах, шаблонах і інтерфейсі адміністратора;
  • Спрощення використовуваних за замовчуванням файлів з шаблонами програми та описами проекту. За замовчуванням пропонується SQLite;
  • Переробка коду обробки транзакцій і включення за замовчуванням підтримки автоматичних комітів на рівні СУБД.
  • Підтримка постійних з'єднань з СУБД. На відміну від раніше підтримуваного пулінгу з'єднань, новий метод зберігає з'єднання відкритим при виконанні різних запитів одним обробником;

Оновлення Python 2.6.9

Представлено коригувальний випуск Python 2.6.9, останній в гілці 2.6.x. У випуску 2.6.9 усунуто сім вразливостей, серед яких вичерпання пам'яті через обробку дуже довгих рядків у функції readline, можливість організації виконання коду через tkinter і проблема в SSL-модулі з обробкою символів з ​​нульовим кодом в полі subjectAltName.

Вся активність з підтримання випусків 2.6.x повністю припинена, поновлення, в тому числі для критичних проблем безпеки, для даної гілки випускатися більше не будуть. Користувачам Python 2, які з тих чи інших причин не можуть перейти на Python 3, рекомендується спланувати перехід на Python 2.7. Припинення підтримки гілки 2.7.x, останньою в серії 2.x, очікується в 2015 році.

Fedora переходить на Python 3 і пакетний менеджер DNF за замовчуванням

На проведеному засіданні комітету FESCo (Fedora Engineering Steering Committee), що відповідає за технічну частину розробки дистрибутива Fedora Linux, було затверджено рішення щодо переходу дистрибутива на використання Python 3 за замовчуванням, починаючи з випуску Fedora 22. Серед ключових наслідків переходу на Python 3 зазначається задіяння за замовчуванням пакетного менеджера DNF, який замінить собою Yum, що підтримує виконання тільки з використанням Python 2.


Пакетний менеджер DNF є відгалуженням від Yum 3.4, в якому розвивалися деякі нові ідеї. Для дозволу залежностей в DNF задіяно SAT solver, реалізований в бібліотеці libsolv (hawkey виступає в ролі надбудови над libsolv), створеної в рамках проекту openSUSE. Для звичайного користувача головними перевагами DNF є помітно більш висока швидкість роботи і низьке споживання пам'яті. Для розширення функціональності DNF надає фіксований API для додатків і інтеграції з іншими додатками, такими як інсталятор Anaconda.

Тестування Coverity показало, що проект Python лідирує за рівнем якості коду

Компанія Coverity, що розвиває інструментарій для автоматичного аналізу коду на предмет наявності проблем безпеки і помилок, опублікувала результати оцінки якості інтерпретатора мови Python (CPython 3.3.2). Дослідження показало, що реалізація Python демонструє найменший рівень дефектів у порівнянні з іншими пропрієтарними і відкритими проектами, що дозволяє розглядати Python як новий еталон якості.


Якщо для раніше проаналізованих відкритих проектів зафіксовано середній рівень дефектів у 0.69 помилок на 1000 рядків коду, то для коду Python рівень дефектів склав всього 0.005. Якщо врахувати, що вимоги промислових стандартів якості допускають наявність 1 помилки на 1000 рядків коду, то якість коду Python в 200 разів вище даних вимог.

У процесі проведення дослідження було проаналізовано близько 396 тисяч рядків коду CPython 3.3.2. У підсумку було виявлено 278 нових дефектів, з яких 181 вже виправлені розробниками Python (у сумі, з 2006 року в Python виявлено 996 помилок, виправлено — 860). При розгляді інших проектів розміром від 100 до 500 тисяч рядків коду, середній показник дефектів для відкритих розробок становить 0.60, а для пропрієтарних — 0.66.

Система Coverity Scan була створена в 2006 році з ініціативи Міністерства національної безпеки США для забезпечення та посилення безпеки інформаційної інфраструктури Сполучених Штатів, в якій використовуються різні Open Source проекти. В даний час програма тестування Coverity Scan охоплює близько чотирьохсот відкритих проектів, сумарний розмір коду яких перевищує 68 млн рядків. При автоматичному аналізі даного коду було виявлено 47 тисяч дефектів з яких вже виправлена ​​21 тисяча помилок.

Випуск PyPy 2.1

Представлено реліз PyPy 2.1, реалізації мови Python, що написана мовою Python (використовується статично типізована підмножина RPython, Restricted Python). Одночасно доступна для тестування бета-версія PyPy3 2.1 з підтримкою Python 3. Версія PyPy 2.1 примітна забезпеченням офіційної підтримки процесорів ARM в JIT-компіляторі. Крім того, до коду внесено чергові оптимізації — новий випуск в середньому на 10% швидше минулої версії PyPy і в 6.12 разів швидше класичного CPython 2.7.3.

Завдяки JIT-компілятору, на льоту транслюються деякі елементи в машинний код, PyPy при виконанні деяких операцій в кілька разів обганяє по продуктивності класичну реалізацію Python на мові Сі (CPython). Ціною високої продуктивності та використання JIT-компіляції є більш високе споживання пам'яті-загальне споживання пам'яті в складних і довгостроково працюючих процесах (наприклад, при трансляції PyPy силами самого PyPy) перевищує споживання CPython в півтора-два рази.

Нововведення, додані в PyPy 2.1:

  • Повноцінна підтримка генерації коду для архітектури ARM в JIT-компіляторі. Підтримуються системи на базі ARMv6 (Raspberry Pi) і ARMv7 (Beagleboard, Chromebook, Cubieboard тощо) в режимах ABI hard-float (armhf/gnueabihf) і soft-float (armel/gnueabi);
  • Підтримка Stacklet для ARM;
  • Реалізація бібліотек os.statvfs і os.fstatvfs для Unix-систем;
  • Збільшення продуктивності ведення логу;
  • Прискорення виконання операцій з множинами в об'єктах;
  • При формуванні пакета забезпечена збірка розширення TK з використанням інтерфейсу CFFI;
  • Для Numpy покращена підтримка масивів і dtype, додана підтримка субмасивів, проведена робота над помилками;
  • Експериментальна підтримка сумісності з Python 3 (CPython 3.2.3), реалізована в окремій гілці PyPy3;

Основні особливості PyPy:

  • Підтримка безстекового (Stackless) режиму роботи, що дозволяє використовувати модель actor (erlang-подібне програмування з масою мікропотоків і відсилання сигналів один одному, але при цьому (на відміну від erlang) все відбувається в одному фізичному потоці операційної системи);
  • Реалізація режиму ізольованого виконання коду, до якого немає довіри. Від sandbox в CPython даний режим відрізняється повною підтримкою всіх можливостей мови без виділення unsafe-функцій.
  • Автоматична генерація і повна прозорість вбудованого JIT-компілятора;
  • PyPy успішно проходить стандартний тестовий пакет Python і підтримує більшість із стандартних Python-модулів і фреймворків, таких як ctypes, django (з sqlite), twisted (без підтримки ssl), pylons, pyglet. PyPy може бути використаний для безшовної заміни CPython 2.7;
  • Підтримка роботи на архітектурах x86 (IA-32), x86_64 та ARM. Ведеться робота з адаптації для архітектури PowerPC (PPC64), але вона ще не завершена;
  • На базі технологій PyPy створені бекенди для генерації в PyPy байткода для LLVM і віртуальних машин .NET/CLI і Java.
  • На базі PyPy ведеться розробка реалізацій на мові Python інтерпретаторів Prolog, Smalltalk, Ruby, JavaScript, Io і Scheme.

Новий випуск Nuitka 0.4.3, компілятора для мови Python

Побачив світ компілятор для мови Python — Nuitka 0.4.3, який дозволяє транслювати скрипт на мові Python в подання на C++, яке можна скомпілювати у виконуваний файл, що використовує libpython для забезпечення максимальної сумісності з CPython (використовуються штатні засоби CPython для керування об'єктами). Можлива компіляція як бібліотек так і безпосередньо виконавчих файлів, у тому числі і рекурсивна.

У поточному випуску підтримуються версії мови Python 2.6, 2.7, 3.2 і 3.3. Компіляція виконується шляхом трансляції коду в С++ і подальшої передачі компілятору С++, таким як g++, MinGW g++, clang. Підтримуються операційні системи Linux, Mac OS X, Windows, FreeBSD, NetBSD.

У новій версії Nuitka 0.4.3:

  • Додана підтримка компілятора Microsoft Visual C++.
  • Додана підтримка NetBSD.
  • Численні покращення в підтримці Python 3.3.
  • Компілятор видає попередження, якщо компільований файл може бути використаний як модуль і як основна програма, наприклад з конструкціями виду:
    if __ name__ == " __main__ ":
       main ( )
    
  • Додана опція «nuitka --execute module», аналогічна python — з «import module»;
  • Внесено нові оптимізації продуктивності.

Випуск PyPy 2.0, реалізації Python, яка написана мовою Python

Після одинадцяти місяців розробки побачив світ випуск PyPy 2.0. В рамках проекту розробляється реалізація мови Python, яка написана мовою Python (використовується статично типізована підмножина RPython, Restricted Python).

Завдяки залученню JIT-компілятора, на льоту транслюються деякі елементи в машинний код, PyPy при виконанні деяких операцій в кілька разів обганяє по продуктивності класичну реалізацію Python 2.7 на мові Сі (CPython). У середньому PyPy 2.0 на 4% швидша за PyPy 1.9 і в 5.7 разів швидше класичного CPython 2.7.3. Ціною високої продуктивності та використання JIT-компіляції є більш високе споживання пам'яті — загальне споживання пам'яті в складних та процесах, що довго працюють (наприклад, при трансляції PyPy силами самого PyPy) перевищує споживання CPython в півтора-два рази.


Стабільний випуск підтримує x86-системи, включаючи Linux (32/64 біт), Mac OS X (64 біт) і Windows (32 біт). Одночасно проходить альфа-тестування варіант PyPy 2.0 для платформи ARM. Випуск для ARM позиціонується як ознайомлювальний, так як версія для даної платформи ще не зовсім стабільна і не підтримує деякі можливості. Зокрема, ще не реалізована підтримка безстекового режиму і JIT не завжди коректно генерує асемблерний код. Тим не менш, незважаючи на ще до кінця не налагоджений і оптимізований JIT, версія для ARM показує досить непогані результати продуктивності лише трохи поступаючись варіанту для платформи x86 за співвідношенням продуктивності з CPython. PyPy для ARM доступний для ARMv6 (Raspberry Pi) і ARMv7 (Beagleboard, Chromebook, Cubieboard) і може працювати в режимах hard-float і soft-float.

Нововведення, додані в PyPy 2.0:

  • Безстековий режим доведений до працездатного стану. У тому числі забезпечена підтримка елементів системи багатопотокового програмування «greenlet», а також можливість використання eventlet і gevent;
  • До складу PyPy включений новий вбудований модуль cffi з реалізацією інтерфейсу для виклику функцій, написаних на мові Сі. Даний інтерфейс позиціонується як рекомендований метод звернення до функцій на мові Сі;
  • Для зворотних викликів Python-функцій з Сі-коду тепер застосовується JIT-компіляція, що, наприклад, дозволило значно прискорити виконання модуля парсинга XML;
  • Проведено рефакторінг JIT-компілятора для генерації машинного коду, що оперує областями в купі, замість стека. Подібна зміна дозволила забезпечити роботу безстекового режиму і відкрила нові шляхи подальшої оптимізації;
  • Перероблена велика частина класів для роботи з масивами зі складу бібліотеки numpypy, що дозволило позбутися зайвих обчислень. Підготовлена ​​більш повна реалізація dtype і забезпечена підтримка додаткових атрибутів масивів;
  • Внесено безліч оптимізацій продуктивності.


Основні особливості PyPy:

  • Підтримка безстекового (Stackless) режиму роботи, що дозволяє використовувати модель actor (erlang-подібне програмування з масою мікропотоків і відсилання сигналів один одному, але при цьому (на відміну від erlang) все відбувається в одному фізичному потоці операційної системи);
  • Реалізація режиму ізольованого виконання коду, до якого немає довіри. Від sandbox в CPython даний режим відрізняється повною підтримкою всіх можливостей мови без виділення unsafe-функцій.
  • Автоматична генерація і повна прозорість вбудованого JIT-компілятора;
  • PyPy успішно проходить стандартний тестовий пакет Python і підтримує більшість із стандартних Python-модулів і фреймворків, таких як ctypes, django (з sqlite), twisted (без підтримки ssl), pylons, pyglet. PyPy може бути використаний для безшовної заміни CPython 2.7;
  • Підтримка роботи на архітектурах x86 (IA-32), x86_64 та ARM. Ведеться робота з адаптації для архітектури PowerPC (PPC64), але вона ще не завершена;
  • На базі технологій PyPy створено бекенд для генерації в PyPy байткода для LLVM і віртуальних машин .NET/CLI і Java.
  • На базі PyPy ведеться розробка реалізацій на мові Python інтерпретаторів Prolog, Smalltalk, JavaScript, Io і Scheme.

четвер, 11 квітня 2013 р.

Оновлення Python 2.7.4, 3.2.4 та 3.3.1

Випущені коригувальні релізи Python 2.7.4, 3.2.4 та 3.3.1, в яких проведена робота по виправленню помилок. В тому числі у всіх випусках усунена уразливість (CVE-2011-4944), пов'язана з небезпечним створенням файлу ~/.Pypirc, а також вирішена специфічна для гілки 3.2 проблема (CVE-2012-2135) з обробкою помилок при декодуванні рядків utf-16 . Також явно не марковано як вразливість, але обговорюється можливість здійснення DoS-атаки через споживання XML-парсером гігабайт ОЗУ і надмірного навантаження на CPU в процесі обробки спеціально оформлених XML-файлів.

Окремо оголошено про розгляд питання про продовження підтримки гілки Python 2.7. Відзначається, що незважаючи на досить інтенсивний перехід відомих проектів до підтримки Python 3, гілка Python 2 ще досить широко використовується в практиці. Деякі користувачі пропонують продовжити випуск оновлень аж до 2025 року, але розробники вважають, що п'ятирічного терміну випуску оновлень цілком достатньо (реліз Python 2.7 випущений в 2010 році, підтримуватиметься до 2015 року). Крім того, відтепер оновлення для гілки Python 2.7 планується випускатися раз на 6 місяців (з моменту виходу 2.7.3 пройшов рік). Таким чином, до завершення життєвого циклу гілки 2.7 буде випущено ще як мінімум 4 релізи.

понеділок, 18 березня 2013 р.

Конфлікт, про права на торгову марку Python, врегульовано мирним шляхом

Організація Python Software Foundation (PSF) повідомила про мирне врегулювання конфлікту з компанією Veber, що зареєструвала ексклюзивні права на використання в Євросоюзі торгової марки Python в прив'язці до будь-який комп'ютерних технологій, включаючи програмні продукти і сервіси.

Компанія Veber погодилася відкликати свою заявку на торговельну марку Python і поміняти назву для своїх хмарних сервісів і продуктів. Таким чином спільнота розробників Python збереже усі права на ім'я Python на території Євросоюзу, а компанія Veber уникне можливої ​​плутанини між мовою програмування і сервісами, які розвиває компанія.

четвер, 7 березня 2013 р.

Python Foundation переходить на електронну форму угоди з розробниками

Організація Python Foundation оголосила про перехід до використання сервісу Adobe EchoSign для підписання угод з розробниками про передачу фонду майнових прав на код, інтегрований до складу CPython. Нова схема істотно спростить процес укладання угоди і дозволить залишити в минулому всю тяганину, пов'язану з відправленням оригіналів підписаних угод поштою, передачею копій паперових документів по факсу або відсканованої версії електронною поштою. Відтепер розробнику буде достатньо заповнити просту форму на сайті.

Однією з умов прийняття коду до проекту Python є передача майнових прав на даний код Фонду Python, який виступає гарантом його подальшої свободи і від особи розробників може брати участь у вирішенні судових конфліктів або приймати рішення про зміну умов ліцензування.

четвер, 28 лютого 2013 р.

Реліз web-фреймворка Django 1.5 з підтримкою Python 3

Після року розробки вийшла стабільна версія популярного фреймворку Django 1.5, написаного на мові Python і призначеного для розробки веб-додатків. Випуск Django 1.5 примітний забезпеченням підтримки Python 3.


Незважаючи на те, що робота під управлінням Python 3 поки має експериментальний статус, в цілому код відзначений як стабільний, але вимагає розширеного тестування в реальних проектах. При підготовці наступних випусків помилки, пов'язані із сумісністю з Python 3, будуть розглядатися як такі, що блокують випуск нових релізів і вимагають оперативного виправлення. В якості побічного ефекту адаптації для Python 3 є припинення підтримки гілки Python 2.5. В якості мінімальної версії, що підтримується заявлений випуск Python 2.6.5, а в якості рекомендованої — Python 2.7.3.

З інших змін наголошується на забезпеченні засобів для використання власних моделей для організації зберігання параметрів користувачів та задіяння даних моделей в системі аутентифікації Django. Створення власних моделей зберігання даних може знадобитися наприклад при необхідності роботи з логінами, що перевищують 30 символів або при бажанні додати нові поля, такі як ідентифікатори користувача в Twitter або Facebook, або зберегти імена користувачів у форматі відмінному від «Ім'я/Прізвище».

В новому випуску забезпечена можливість роботи GeoDjango з PostGIS 2.0. Доданий новий клас StreamingHttpResponse з реалізацією поліпшеної підтримки обробки потокових запитів. Для блокування екранування елементів JavaScript-коду в шаблонах Django доданий новий тег «{%verbatim%}».

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

via

Агентство DARPA виділило 3 млн доларів на розвиток засобів обробки великих масивів даних на мові Python

Агентство по перспективним оборонним науково-дослідним розробкам США (DARPA) виділило 3 млн доларів компанії Continuum Analytics на розробку засобів обробки і візуалізації великого обсягу даних на мові Python. Гроші будуть витрачені на розробку нових технологій аналізу даних і візуального відображення великих багатовимірних наборів даних. Грошовий ґрант виділений в рамках чотирирічної програми XData, загальний розмір фінансування якої складе 100 млн доларів.



Розробка розширить поточні можливості Python-бібліотек NumPy і SciPy, які активно використовуються в науковому співтоваристві, адаптувавши їх можливості для роботи в розподілених системах. Зокрема, планується продовжити розробку Blaze, варіанти NumPy для розподілених систем, Python-компілятора Numba і бібліотеки візуалізації Bokeh.

Компанія Veber заявила свої права на торгову марку Python

Організація Python Software Foundation (PSF) оголосила про виникнення проблем з використанням торгової марки Python на території Євросоюзу. Англійська компанія Veber, власник сайту python.co.uk, зареєструвала ексклюзивні права на використання торгової марки Python в прив'язці до комп'ютерних технологій, включаючи програмні продукти і сервіси. Ситуація посилилася після заяви Veber про намір поширення своїх серверних продуктів під брендом Python. Використання назви Python на території Євросоюзу може бути інтерпретоване як незаконне використання інтелектуальної власності Veber.

В даний час учасники проекту Python шукають шляхи для відправки протесту в Європейський комітет по торговим маркам з вимогою анулювання заявки Veber, так як мова Python існує вже більше 20 років, в той час як домен python.co.uk був зареєстрований 13 років тому і використовувався тільки для перекидання відвідувачів на інші сайти. За порадою юристів, помітного ефекту можна досягти якщо листи з протестом будуть відправлені від імені відомих компаній, які використовують у своїй діяльності додатки на мові Python. Таким чином, вказавши на великі сервіси та продукти, побудовані на основі мови Python, вдасться показати значущість вже утворених зв'язків імені Python з існуючими сервісами і продуктами.

Гвідо ван Россум перейшов з Google до Dropbox

Автор мови програмування Python Гвідо ван Россум (Guido van Rossum) сьомого грудня 2012 року відпрацював останній день в Google, а з січня буде зарахований до штату компанії Dropbox. Керівники Dropbox з радістю вітають Гвідо. Вони називають його старим другом, який допомагав створювати Dropbox «з перших рядків коду» (dropbox.py).



«З самого початку було зрозуміло, що Dropbox повинен підтримувати всі основні операційні системи. Історично, така підтримка вимагала серйозних зусиль від розробників: оскільки для кожної платформи потрібні різні засоби розробки і мови програмування, доводилося переписувати код кілька разів, — пише засновник Dropbox Дрю Х'юстон в офіційному блозі. — У нас не було на це часу. На щастя, нашим порятунком стала мова програмування Python».

«За кілька років до створення Dropbox, — продовжує Дрю Х'юстон, — Python стала моєю улюбленою мовою програмування, завдяки поєднанню простоти, гнучкості та елегантності. Ці якості Python, а також зусилля спільноти з підтримки кожної платформи, дозволили нам один раз написати код, який потім працював скрізь. Вони також вплинули на більш широку філософію дизайну Dropbox як простого продукту, який робить ваше життя простіше.

Минуло п'ять років з того моменту, коли перша версія нашого прототипу була збережена на диск як dropbox.py, з тих пір сам Гвідо і спільнота Python дуже сильно допомогли нам вирішити деякі проблеми у створенні веб-додатків для 100 мільйонів користувачів.

Так що ми вітаємо Гвідо в компанії Dropbox із захопленням і вдячністю».