@ProCxx

Страница 1645 из 2477
Nik
12.01.2018
09:44:11
анализ cors, безопасность... работа с бд... не ну если просто файлики по get отдавать или hello world в ответ кидать, то такое можно на плюсах за 10 минут)
Все чуть сложнее и проще одновременно. Сам сервис простой как бревно, но в него нужно втянуть адовую плюсовую инфру со своими сериализаторами, блэкджеком и куртизанками. Писать микросервис на го и тащить плюсы обвязкой через swig - меня не поймет ни начальство, ни CI платформа

Aidar
12.01.2018
09:44:11
Мы про си++ говорим а не про портабельный код

Berkus
12.01.2018
09:44:31
Но по факту компиляторы это воспринимают пофигистично
если бы они так делали в линуксовом ядре не работал бы никакой MMIO вообще

Google
Berkus
12.01.2018
09:44:48
Aidar
12.01.2018
09:44:58
с++ непортабельный по твоему?
Ну вон стандарты не соблюдаются

А это типа и есть си++

Berkus
12.01.2018
09:45:11
Ну вон стандарты не соблюдаются
баги есть везде, такие же люди как ты это писали

Olesya
12.01.2018
09:47:47
привет, народ. кто-то может подсказать лемматизаторы на плюсах? нужно что-то по типу pymorphy.

Nik
12.01.2018
09:47:56
если что специфическое на сях, то да, в го лучше не тянуть... я обычно переписываю, благо в go все для этого есть из коробки
Гигабайты кода, в котором до конца не разбирается ни один человек на планете - да в топку такое удовольствие :)

Almaz
12.01.2018
09:48:12
Где вы выучили с++?

Alexander
12.01.2018
09:48:20
микросервис на c++ стоит писать, но как по мне так не просто rest, а если специфик то проще поднять отдельный микросервис и завязать с рест микросервисом через теже очереди или rpc

Berkus
12.01.2018
09:48:40
Где вы выучили с++?
11 дискет, Borland C++ 3.1, TurboVision

BlackAndOrange
12.01.2018
09:48:58
Есть яндексовская томита

Она в паблике

Google
Almaz
12.01.2018
09:49:30
Спасибо

Berkus
12.01.2018
09:50:48
Спасибо
в коробочку номинально влезало только 10, но немного прижав пальцем можно было затолкать и одиннадцатую, поэтому это был достаточно portable solution

Olesya
12.01.2018
09:53:23
BlackAndOrange
12.01.2018
09:53:40
https://tech.yandex.ru/tomita/

Vsevolod
12.01.2018
09:57:33
Я пользуюсь snowball - не совсем плюсы, и для русского работает неважно, но лучше, чем ничего

Almaz
12.01.2018
10:04:27
Если зайти через дедик и соседский вай фай то найти будет не легко?

Olesya
12.01.2018
10:06:21
про него я тоже знаю

Egor
12.01.2018
10:08:00
Если зайти через дедик и соседский вай фай то найти будет не легко?
Ну, если вы зарегистрируетесь на email, содержащий имя-фамилию - то упс. Или если случайно что-то сделаете через другой интернет. Или если у вашего соседа логируются MAC-адреса, а вы не поменяли. Куча способов: https://habrahabr.ru/post/196464/

Aleksey
12.01.2018
10:09:40
настоящий анонимус едет с одноразовым wifi в другой конец страны(не беря с собой любые gsm устройства) стараясь максимально избегать людей и там уже делает своё грязное дело через анонимную wifi точку ;)

Egor
12.01.2018
10:16:40
И его вылавливают по мобильному телефону, который почему-то вошёл в сеть одновременно с анонимусом: https://pikabu.ru/story/ot_quotbolshogo_brataquot_ne_skryitsya_3929978

Хотя да, если не брать любые GSM устройства, то интереснее

Maxim
12.01.2018
10:20:53
39170
12.01.2018
10:57:35
The C standard states that accesses to volatile objects are part of the unalterable observable behaviour — but it says nothing about accesses via lvalue expressions with volatile types.
Я вот кстати не уверен насчёт этого утверждения. cppreference например говорит: Every access (both read and write) made through an lvalue expression of volatile-qualified type is considered an observable side effect for the purpose of optimization and is evaluated strictly according to the rules of the abstract machine. Надо конечно в стандарт более внимательно глянуть, но сейчас в дороге. Также возможно что в Си есть эта проблема, а в C++ нет

Antony
12.01.2018
11:04:14
Там есть ещё хитрый момент - хитрое железо умеет не писать нули в память, откладывая/забивая на эту операцию Как потом достать старое (незанулённое) значение мне не ведомо, но подозреваю что есть методы

Vsevolod
12.01.2018
11:10:04
А зачем это хитрому железу?

Berkus
12.01.2018
11:21:28
А зачем это хитрому железу?
не видел новости про meltdown/spectre?

вот для этого

Google
Vsevolod
12.01.2018
11:21:51
это вообще как связано с записью в память?

side channel attack на кеш (meltdown) или branch predictor (spectre)

Berkus
12.01.2018
11:22:49
это вообще как связано с записью в память?
ты не ту часть прочитал "Fix is expected to bring 5% to 30% slowdown"

как и всё в железе - ради скорости

Vsevolod
12.01.2018
11:23:53
проверить, что пишутся нули, и отложить именно это - это, имхо, гораздо сложнее, чем тупо записать все (или отложить все)

ну и 5 to 30% slowdown - это, опять же, без pcid

странно, что появились они аж в westmere, а использовать их стали только в 4.xx ведре

Berkus
12.01.2018
11:27:19
проверить, что пишутся нули, и отложить именно это - это, имхо, гораздо сложнее, чем тупо записать все (или отложить все)
почему ты думаешь что оно не откладывает запись всего, включая те нули, которые те "секьюрно" записал в "память"?

Vsevolod
12.01.2018
11:29:45
Pcid - теги процесса в tlb

Ну да, откладывать все - это реальный кейс

Поэтому надо писать из prng криптографического несколько раз в таком случае

Berkus
12.01.2018
11:31:51
ну по хорошему оно вообще должно быть в trustedzone securememory так то

и оттуда никогда не вылазить

Vsevolod
12.01.2018
11:42:05
у меня тут периодически возникает определенное желание переделать свой основной проект с plain c на c++, есть где-то success story для каких-то более-менее крупных проектов (200k LoC)?

Vsevolod
12.01.2018
11:48:12
он был когда-то на plain c?

еще ищутся какие-то блог посты на эту тему, да

потому что пока задача меня ужасает, конечно

Google
Berkus
12.01.2018
11:49:59
там правда выборочно, но они тоже решили переехать

между с и с++ интерфейсы совместимые, поэтому просто внутренности модуля конвертируешь по чутьчуть в с++, внешний интерфейс оставляешь как обычно

потом следующий

когда между двумя с++ модулями остается с интерфейс, выкидываешь его

ну и так до полного удовлетворения

Vsevolod
12.01.2018
11:54:27
а если весь текущий c код собирать компилятором c++?

чтобы без extern "C" и вот этого всего

Anatoly
12.01.2018
11:57:45
Berkus
12.01.2018
11:58:24
и ничего не соберется

Anatoly
12.01.2018
11:58:39
а если весь текущий c код собирать компилятором c++?
не надо так поступать, выдели черные ящики, оттопырь интерфейсы, обложи тестами и постепенно переводи черные ящики

olologin
12.01.2018
12:03:27
Господа, можно ли как-то под виндой узнать какие длл-ки загружаются моей программой, рекурсивно, с путями вместе. У меня при загрузке foo.dll начинают резолвиться её зависимости, и одна из них не резолвится, хотелось бы узнать в какой длл-ке поиск происходит, потому как там несколько длл-ок с одним именем.

в разных подпапках

Vsevolod
12.01.2018
12:06:59
проблема в том, что эти интерфейсы так и будут на raw pointers и на всяких кишках от glib (hash table, ptr array итп). А вот от последнего и хочется избавиться путем миграции на c++

классы - это вообще вторичное

Anatoly
12.01.2018
12:08:13
Спс
в runtime Process32First/Process32Next, Module32First/Module32Next, детальную инфу посмотри в MSDN

Google
Berkus
12.01.2018
12:11:26
потом переписывать модули, выкидывая трансляцию между с и с++

Vsevolod
12.01.2018
12:15:30
да, надо посмотреть, насколько будет сложно сделать этот первый шаг

Anatoly
12.01.2018
12:16:12
да, надо посмотреть, насколько будет сложно сделать этот первый шаг
а тесты есть? без них вообще нельзя начитать, поскольку нужен инструмент валидации переноса.

Berkus
12.01.2018
12:16:46
ну да, если тестов нет - надо начинать на модули тесты клепать, а по тестам будет видно какие надо сделать АПИ

потом по тестам заимплементишь АПИ, подклеишь его к сишному модулю и вот можно начинать рефактор )

Vsevolod
12.01.2018
12:18:01
там довольно сложно выделить отдельные модули

Berkus
12.01.2018
12:19:28
там довольно сложно выделить отдельные модули
надо начинать с этого, потом модульные тесты, потом можно думать про переписывание (или заняться более полезными делами)

Vsevolod
12.01.2018
12:25:10
да, вот в этом тоже вопрос :)

возможно, имеет смысл просто выкинуть неэффективные структуры данных от glib и написать нормальные

Anatoly
12.01.2018
12:26:11
возможно, имеет смысл просто выкинуть неэффективные структуры данных от glib и написать нормальные
наверняка у вас там свой хеш мап, три мап, связанные список, вектор, а это как раз можно не переписывать

Vsevolod
12.01.2018
12:31:22
к сожалению, это от glib

а значит, никакое lto не заинлайнт cmp/hash функции

и это жопа

Страница 1645 из 2477