Автор, вы вопрошаете не у тех людей. Как только правительство будет выделять на здравоохранение больше денег, и в частности, на IT-продукты в нем, так туда сразу наберут лучшие программисты на хорошие зарплаты. Аналогично и по всем другим пунктам.
А если хочется сделать что-то доброе вечное самому и прямо сейчас, идите работать хотя бы грузчиком на овощную базу (кушать людям позарез надо!).
Наука это замечательно, но сначала хотя бы догнать и научиться делать то, что уже есть. Опять же, какому-нибудь Газпрому с большими зарплатами учёные не нужны, а работать в захудалом НИИ на 40-50 тыс. будут только редкие фанаты.
в силу слабости отечественной индустрии микроэлектроники, у нас нет своих Стивов Джобсов или Моррисов Чанов
Не в силу слабости нашей индустрии, а в силу огромных рисков при любых частных инвестициях (отберут и профукают бизнес в лучшем случае или посадят в худшем) или огромном воровстве и коррупции, и бездарном управлении в случае государственных инвестиций. И никакое министерство или РАН тут не помогут - невозможно сушить на себе одежду, находясь по горло в воде.
Разница такая, что размещение объекта на стеке существенно быстрее, чем в куче, и не надо помнить вызвать delete, так как деструктор вызовется автоматически при достижении конца области определения объекта. Это методологически неверно использовать поинтеры там, где прекрасно работают локальные объекты. Большой минус в глазах любого проверяющего.
Зачем создаётся поинтер на Connection?? И уже если используете new, то заканчивать надо через delete, а не прямым вызовом деструктора. Но поинтера вообще не надо, а надо создать локальный объект на стеке. И в деструкторе проверять и закрывать соединение, если не закрыто.
Еще одно заблуждение - некоторые карты мира искажают размеры материков гораздо больше, чем многие думают. В том числе и самая распространённая в РФ карта мира увеличивает размеры РФ буквально в разы относительно, скажем, Африки.
Насчёт 0 или 1 - именно, что любое число, а не только 0, как написано (было написано) в статье.
Насчёт LoadStrore и StoreLoad, ваши же определения выше противоречат им. Или поменяйте определения, или поменяйте тут. То есть, вы смешиваете memory reordering и memory barrier.
Проанализируем программу: если в первом треде мы видим 0 при чтении y, то запись в x точно произошла
Не 0, а 1. И далее во всем абзаце.
Writes are not reordered with older reads [запрещает LoadStore reordering]
Не LoadStore, а StoreLoad.
Reads may be reordered with older writes to different locations but not with older writes to the same location [разрешает StoreLoad reordering]
Не StoreLoad, а LoadStore.
В разделе "volatile", код с volatile неверный, так так если поток reader читает в r1, потом поток writer выполняет "initialized = true; /* W2 */", по проверка в reader "if (r1)" не пройдёт, хотя x уже гарантировано имеет значение 5. Уберите ненужное присваивание "boolean r1 = initialized; /* R1 */" и сразу пишите "if (initialized)".
Сейчас многие банки переводят вычисления в облако. В нашем подразделении только за тест-окружения мы платили Амазону по 200+ тыс баксов в месяц, и стоимость росла и росла по мере перевода тестов в облако. Плюс, своя команда из шести CloudOps-ов. И никто никогда не сравнивал стоимость аренды физических серверов со стоимостью облака. Но переход на облако даже не обсуждался - так решили большие боссы.
Автор, вы вопрошаете не у тех людей. Как только правительство будет выделять на здравоохранение больше денег, и в частности, на IT-продукты в нем, так туда сразу наберут лучшие программисты на хорошие зарплаты. Аналогично и по всем другим пунктам.
А если хочется сделать что-то доброе вечное самому и прямо сейчас, идите работать хотя бы грузчиком на овощную базу (кушать людям позарез надо!).
Наука это замечательно, но сначала хотя бы догнать и научиться делать то, что уже есть. Опять же, какому-нибудь Газпрому с большими зарплатами учёные не нужны, а работать в захудалом НИИ на 40-50 тыс. будут только редкие фанаты.
Не в силу слабости нашей индустрии, а в силу огромных рисков при любых частных инвестициях (отберут и профукают бизнес в лучшем случае или посадят в худшем) или огромном воровстве и коррупции, и бездарном управлении в случае государственных инвестиций. И никакое министерство или РАН тут не помогут - невозможно сушить на себе одежду, находясь по горло в воде.
Есть ещё современная связка Gauge + Taiko. Gauge - мультиязыковой движок тестов (js, Python, etc). Taiko - средство работы с браузерами.
Очень смешная статья. Порадовал, особенно "не платить дань и выскочить из поезда несущегося в пропасть. Сильное решение.." :-)
Разница такая, что размещение объекта на стеке существенно быстрее, чем в куче, и не надо помнить вызвать delete, так как деструктор вызовется автоматически при достижении конца области определения объекта. Это методологически неверно использовать поинтеры там, где прекрасно работают локальные объекты. Большой минус в глазах любого проверяющего.
Если между этим чтением и if переменная initialized сменит значение, то if пойдёт по уже неправильной ветке. Ну очевидно же.
Блин)
То что older, пишется вторым.
И таки признайте, что с volatile код неправильный.
Зачем создаётся поинтер на Connection?? И уже если используете new, то заканчивать надо через delete, а не прямым вызовом деструктора. Но поинтера вообще не надо, а надо создать локальный объект на стеке. И в деструкторе проверять и закрывать соединение, если не закрыто.
Кто-то проводил исследования? Откуда такая цель номер 1?
А насчёт цели самого такого приложения, как и любого другого - просто генерировать бабло.
Еще одно заблуждение - некоторые карты мира искажают размеры материков гораздо больше, чем многие думают. В том числе и самая распространённая в РФ карта мира увеличивает размеры РФ буквально в разы относительно, скажем, Африки.
Насчёт 0 или 1 - именно, что любое число, а не только 0, как написано (было написано) в статье.
Насчёт LoadStrore и StoreLoad, ваши же определения выше противоречат им. Или поменяйте определения, или поменяйте тут. То есть, вы смешиваете memory reordering и memory barrier.
Не 0, а 1. И далее во всем абзаце.
Не LoadStore, а StoreLoad.
Не StoreLoad, а LoadStore.
В разделе "volatile", код с volatile неверный, так так если поток reader читает в r1, потом поток writer выполняет "initialized = true; /* W2 */", по проверка в reader "if (r1)" не пройдёт, хотя x уже гарантировано имеет значение 5. Уберите ненужное присваивание "boolean r1 = initialized; /* R1 */" и сразу пишите "if (initialized)".
Дальше не читал ещё :)
Заметил несколько фактических ошибок, некоторые существенные, например, при синхронизации через volatile.
С последней познакомишь?)
Вопоос в размере конечной аудитории, после всех пессимизмов и прочего. Мне кажется, Телеграм всё же выиграет и во много раз.
Как много слов, два коммента и ни одного ответа на простой вопрос.
И о чем там можно писать, о чем нельзя, например, в Телеграме или Фейсбуке?
Сейчас многие банки переводят вычисления в облако. В нашем подразделении только за тест-окружения мы платили Амазону по 200+ тыс баксов в месяц, и стоимость росла и росла по мере перевода тестов в облако. Плюс, своя команда из шести CloudOps-ов. И никто никогда не сравнивал стоимость аренды физических серверов со стоимостью облака. Но переход на облако даже не обсуждался - так решили большие боссы.
Насколько много человек в экосистеме, чтобы открывать сайты и порталы? Там уже большое сообщество?