Comments 58
После скольких успешно закрытых багов берут на работу в Гугл? :)
Полная сборка заняла около 6 часов
xkcd.com/303/
i7, SSD, 12 Gb RAM, incredubuild — и полная пересборка зпанимает около 40 мин, при небольших правках и вовсе достаточно шустро.
«Достаточно шустро» в моём понимании — это секунд пять между нажатием хоткея для Build/Run и запуском программы в отладчике :)
У сотрудников Гугла примерно так и есть :)
https://plus.google.com/108706994620819334985/posts/9yvfSRdrVz9
https://plus.google.com/108706994620819334985/posts/9yvfSRdrVz9
Не могу сказать, после скольки закрытых багов берут в Гугл. По моим ощущениям, компании-гиганты вроде Амазона, Гугла и Микрософта ищут программистов, умеющих быстро решать алгоритмические задачи и просто сообразительных. Участие в реальных проектах менее важно, чем умение быстро выяснить, например, что двоичное дерево является деревом поиска, впервые встретившись с этой задачей. И это, на мой взгляд, логично — такие программисты будут на порядок производительнее своих коллег.
Это впечатление основано на личном опыте (в двух из этих трех компаний я доходил до «онсайт» интервью, к сожалению, неудачно). Зато в этих организациях работают по-настоящему умные ребята.
Это впечатление основано на личном опыте (в двух из этих трех компаний я доходил до «онсайт» интервью, к сожалению, неудачно). Зато в этих организациях работают по-настоящему умные ребята.
Интересно, а какой баг Вы исправили?
Может я ошибаюсь, но, помойму, Хромиум слишком тяжеловесный проект для новичка в мире Opensource. И я говорю не так про объем кода, как количество всех деталей в процесе сотрудничества, работы над кодом, документирования, отчета о проделаной работе и тд.
Я бы все таки рекоммендовал найти проект среднего размера на Github или, к примеру, у Apache есть проекты любого калибра от монстров до мелких библиотек на многих языках.
Я бы все таки рекоммендовал найти проект среднего размера на Github или, к примеру, у Apache есть проекты любого калибра от монстров до мелких библиотек на многих языках.
Это как раз тот случай, когда не стоит бояться трудностей и начать именно с такого большого проекта, как Chromium. У него большое сообщество разработчиков, куча инструкций, все продумано для новичков — отличный опыт в командной разработке в промышленных масштабах. Помучившись со всем, что вы перечислили здесь, вы сможете применять лучшие практики организации разработки в своих и чужих кампаниях в будущем.
Возможно, вы правы.
Из личного опыта я много раз пытался вникнуть в процесс разработки крупных проектов (Ubuntu и Debian если быть точнее), которые так само имели множество инструкций для новичков, однако по причине отсутствия опыта я не понимал для чего нужны все эти правила, сложности, ограничения и тд, из-за чего я не смог доконца понять всю систему разработки.
Сейчас у меня за плечами проект среднего размера на Github, где я понял основы source version control, bug tracking, планирования технических задач, схемы версирования пакетов, peer reviewing. Я понял эти понятия на простых примерах и теперь разобратся в процессе разработки того же Chromium для меня проще простого, чего, я считаю, нильзя сказать про начинающих разработчиков.
Из личного опыта я много раз пытался вникнуть в процесс разработки крупных проектов (Ubuntu и Debian если быть точнее), которые так само имели множество инструкций для новичков, однако по причине отсутствия опыта я не понимал для чего нужны все эти правила, сложности, ограничения и тд, из-за чего я не смог доконца понять всю систему разработки.
Сейчас у меня за плечами проект среднего размера на Github, где я понял основы source version control, bug tracking, планирования технических задач, схемы версирования пакетов, peer reviewing. Я понял эти понятия на простых примерах и теперь разобратся в процессе разработки того же Chromium для меня проще простого, чего, я считаю, нильзя сказать про начинающих разработчиков.
Про серьезную машину это вы правду сказали — когда собирал хромиум из исходников на моем mac book pro, поставил где-то в 6 часов вечера, в результате не дождался — уснул. Утром проснулся и удостоверился, что все собралось. Наверное больше доставит если собрать хромиум под генту :)
Ничего доставляющего. Сплошная рутина. Шестиядерный i7, HT, вся сборка (/var/tmp) в tmpfs в оперативе, этот ваш попсовый ccache и…
genlop -t chromium | tail
Thu Nov 29 21:35:09 2012 >>> www-client/chromium-23.0.1271.91
merge time: 19 minutes and 24 seconds.
Mon Dec 3 18:59:23 2012 >>> www-client/chromium-23.0.1271.95
merge time: 17 minutes and 50 seconds.
Sat Dec 15 23:21:33 2012 >>> www-client/chromium-23.0.1271.97
merge time: 6 minutes and 24 seconds.
genlop -t chromium | tail
Thu Nov 29 21:35:09 2012 >>> www-client/chromium-23.0.1271.91
merge time: 19 minutes and 24 seconds.
Mon Dec 3 18:59:23 2012 >>> www-client/chromium-23.0.1271.95
merge time: 17 minutes and 50 seconds.
Sat Dec 15 23:21:33 2012 >>> www-client/chromium-23.0.1271.97
merge time: 6 minutes and 24 seconds.
По поводу качества кода — приятно читатать комментарии-объяснения, например, взять ту же реализацию синглтона — ( %src%/base/memory ) — что-то новое, интересное да и почерпнул. Или, совсем не сложное, — хранение путей FilePath ( %src%/base/file_path.h ) — объяснение к заголовочному файлу — чего стоит. Или реализацию действительно надёжного сохранения файла. Иногда дух захватывает.
Что заинтересовало меня «в стиле» так это — огромное количество глобальных переменных ( да, в большинстве случаев, это некие константы, что вполне логично и все они разбросаны по пространствам имён ), но всё же…
+ наверное, присутствие вперемешку определения полноценного класса… а потом — куча глобальных функций для работы с данным класом, которые вполне логично могли бы переместиться в сам клас в некоторых случаях. Или вообще, например, чисто сишный код ( я имею ввиду структуры + ф-и для работы с ними, но структуры с конструкторами и деструкторами )…
Не знаю как вы, но посмотреть это стоит 100 % — очень интересно!
Что заинтересовало меня «в стиле» так это — огромное количество глобальных переменных ( да, в большинстве случаев, это некие константы, что вполне логично и все они разбросаны по пространствам имён ), но всё же…
+ наверное, присутствие вперемешку определения полноценного класса… а потом — куча глобальных функций для работы с данным класом, которые вполне логично могли бы переместиться в сам клас в некоторых случаях. Или вообще, например, чисто сишный код ( я имею ввиду структуры + ф-и для работы с ними, но структуры с конструкторами и деструкторами )…
Не знаю как вы, но посмотреть это стоит 100 % — очень интересно!
Думаю, что нужно вставить ещё пункт после п.2: Проверить наличие бага
многоядерный процессор и не менее 8 Гб памяти. Кроме того, потребуется около 60 Гб свободного пространства на жёстком диске, в качестве которого рекомендуют использовать отдельный SSD.В общем, это удовольствие не для всех.
Расскажу свою историю. Порой в хроме меня раздражало отсутствие раскладко-независимого поиска по истории. Например, если написать в адресной строке «рфик», то хотелось бы на первом месте видеть ссылки на «habr», (при условии наличия ссылок в history). Гугление ничего похожего не нашло, поэтому решил прикрутить эту фичу самостоятельно. Скачал исходники, настроил среду разработки, запустил компиляцию… и пришел в ужас от медлительности этого процесса. Мой ноутбук грелся и гудел всю ночь. В конце концов, не выдержав такого насилия над собой, он просто вырубился от перегрева. Такие дела.
А как же игры ?? они же больше процессорного времени тратят…
Сгрустнуло время компиляции.
Хотя на втором Пентиуеме (единсственный мой комп тогда еще) Я собирал Dragon Fly BSD порядка 2 дней. Так и не собрал (Ctrl +break), в итоге запустил startx и радовался ))
Господа приводите пожалуйста конфигурации компа, а то не понятно сколько времени Хром у вас собирается…
Сгрустнуло время компиляции.
Хотя на втором Пентиуеме (единсственный мой комп тогда еще) Я собирал Dragon Fly BSD порядка 2 дней. Так и не собрал (Ctrl +break), в итоге запустил startx и радовался ))
Господа приводите пожалуйста конфигурации компа, а то не понятно сколько времени Хром у вас собирается…
А как же игры ?? они же больше процессорного времени тратят…
От игр слабые/дешёвые ноутбуки тоже вырубаются. И от перекодирования видео.
Я так в UFO под DosBox-ом играл с пылесосом — раз в 15 минут продувал радиаторы у ноутбука, потому что DosBox загружал проц на 100% :)
Всем кто испытывает проблемы с самопроизвольным выключением при загруженной системе, в обязательном порядке необходимо почистить свой ноутбук. Скорее всего при вскрытии пациента вы увидите подобную картину:
Радиатор превратился в валенок.жпг
>билд с нуля обошелся, кажется, в 35 рублей
Блин, умом вроде бы всё понимаю, но мерять билды в рублях — это как-то против природы. Эдак будешь бояться лишний раз код скомпилировать, чтобы на бабло не попасть.
Блин, умом вроде бы всё понимаю, но мерять билды в рублях — это как-то против природы. Эдак будешь бояться лишний раз код скомпилировать, чтобы на бабло не попасть.
У меня контрибтютинг в Chromium закончился на его сборке. Развернулся, пошел контрибьютить в Qt/KDE
FireFox заметно быстрее собирается. У меня было 1900 секунд в один поток. В прошлом году, что ли. Я тогда тестировал ssd/ram drive и их действие на время компиляции.
Сборку можно сделать с включенными shared library (http://www.chromium.org/developers/how-tos/component-build), компиляция будет выполняться быстрее. На этапе линковки это поможет, но не сильно.
Второй момент — есть official и dev сборка. Первая собирается с кучей оптимизаций, её не стоит использовать при разработке. Правда по дефолту включен режим dev, можно не заморачиваться.
Второй момент — есть official и dev сборка. Первая собирается с кучей оптимизаций, её не стоит использовать при разработке. Правда по дефолту включен режим dev, можно не заморачиваться.
А какой язык используется в Хромиуме для разработки?
На сколько мне известно, для коммита в хром не нужно никого просить: достаточно поставить галочку возле метки «Commit:» у чейнджлиста. У ревьюеров нужно просить только запустить боты — это внешним разработчикам не доступно.
Возможно, это работает только если у вас есть права на коммит в репозиторий. По умолчанию такого права нет и процедура его получения довольно длительна:
www.chromium.org/getting-involved/become-a-committer
www.chromium.org/getting-involved/become-a-committer
Немного юмора
(на всякий случай: я в курсе что сборка в 6 часов была на машине 5-летней давности без SSD — я всё внимательно прочёл, это просто шутка, не придирайтесь (-; )
(на всякий случай: я в курсе что сборка в 6 часов была на машине 5-летней давности без SSD — я всё внимательно прочёл, это просто шутка, не придирайтесь (-; )
Помню я как-то раз (может пару лет назад) с дуру поставил такой Aur-пакет с Chromium, что стягивает исходники и компилит. Заняло вроде пару часов от силы на одноядерном Pentium-M (Dothan).
> Я пользовался Microsoft Visual C++ 2008 Express Edition (в данный момент они рекомендуют использовать версию 2010).
VS 2008 более не поддерживаеется. Для сборки требуется VS 2010.
VS 2008 более не поддерживаеется. Для сборки требуется VS 2010.
Кто воодушевился статьёй, исправьте, пожалуйста, баг code.google.com/p/chromium/issues/detail?id=68105
(Невозможность выполнить синхронный XMLHttpRequest, при котором происходите редирект на другой домен или протокол). А?
(Невозможность выполнить синхронный XMLHttpRequest, при котором происходите редирект на другой домен или протокол). А?
Пишу сюда из этого самого Chromium'a.
Собрал свежий порт chromium 24.0.1312.52 из коллекции портов FreeBSD: www.freshports.org/www/chromium/
с помощью системного LLVM/Clang 3.1 (отметил опцию: CLANG=on: Build Chromium with Clang instead of GCC 4.6+ в меню сборки)
Потребовалось заметно меньше 9 ГБ свободного пространства на жёстком диске. Процессор четырёхъядерный AMD Phenom II X4 810 и RAM около 8 ГБ.
Время сборки пакета составило 25 минут (сборка началась в 16:23, закончилась в 16:58).
Собрал свежий порт chromium 24.0.1312.52 из коллекции портов FreeBSD: www.freshports.org/www/chromium/
с помощью системного LLVM/Clang 3.1 (отметил опцию: CLANG=on: Build Chromium with Clang instead of GCC 4.6+ в меню сборки)
Потребовалось заметно меньше 9 ГБ свободного пространства на жёстком диске. Процессор четырёхъядерный AMD Phenom II X4 810 и RAM около 8 ГБ.
Время сборки пакета составило 25 минут (сборка началась в 16:23, закончилась в 16:58).
А какую IDE вы использовали и как её настраивали? Я, к сожалению, не могу воспользоваться Xcode или VisualStudio — я Linux-пользователь и в моём распоряжении несколько иной зоопарк.
Под Linux я не пользовался IDE, так что, боюсь, не смогу вам помочь. Можно попробовать Eclipse, но практического опыта использования этой среды у меня нет.
Eclipse индексирова-индексировал, да не выиндексировал: проработав более 10 часов (на машине, на которой собственно сборка заняла 4), завис на 98%. Пробовать еще раз — то еще удовольствие. QtCreator просто молча упал примерно на середине индекса, хотя и добрался до этой середины минут за 40, а не за 5 часов, как Eclipse.
У меня в Eclipse индексация завершается (часа за 2-4) и потом неплохо работает. Возможно Eclipse'у не хватает памяти. Ее можно увеличить опциями -Xms и -Xmx в стартовых скриптах. Вообще индексация такая долгая из-за того, что она до сих пор не распараллелена.
Sign up to leave a comment.
Как принять участие в open source проекте Chromium