Является ли этот код злоупотреблением find_if STL?
Допустим, у меня есть список имен серверов, хранящихся в векторе, и я хотел бы связаться с ними по одному, пока один не ответит успешно. Я думал об использовании алгоритма find_if STL следующим образом:
find_if(serverNames.begin(), serverNames.end(), ContactServer());
Где ContactServer-объект функции предиката.
С одной стороны, существует проблема, поскольку предикат не всегда возвращает один и тот же результат для одного и того же имени сервера (из-за простоя сервера, сетевых проблем и т. д...). Однако один и тот же результат будет возвращен независимо от того, какая копия предиката используется ( т. е. предикат не имеет реального состояния), поэтому исходная проблема с предикатами сохранения состояния в этом случае не актуальна.
Что скажешь?
Какие фреймворки внедрения зависимостей .NET стоит изучить?
Какие фреймворки внедрения зависимостей C#/.NET стоит изучить? А что уж говорить об их сложности и скорости.
Репликация базы данных. 2 сервера, главная база данных и 2 - й доступен только для чтения
Допустим, у вас есть 2 сервера баз данных, одна база данных-это база данных 'master', где выполняются все операции записи, она обрабатывается как база данных 'real/original'. База данных другого сервера должна быть зеркальной копией главной базы данных (ведомого?), который будет использоваться только для операций чтения для определенной части приложения.
Как вы собираетесь настроить подчиненную базу данных, которая отражает данные в главной базе данных? Насколько я понимаю, база данных slave/readonly должна использовать файл журнала транзакций master db для правильного отражения данных?
Какие варианты у меня есть с точки зрения того, как часто ведомая база данных отражает данные? (в реальном времени / каждые x минут?).
Не могу избавиться от exception'а в реализации rijndael (AES) на C#?
Видимо глаз уже настолько замылился что не вижу очевидного или тут все совсем не очевидно?
Ключи везде одинаковые. Padding тоже.
Прошу помощи в определении причины и хотя бы указания вектора, в направлении которого искать решение. Спасибо.
// BinaryFormatter binFormat = new BinaryFormatter();
// List<DataTable> tables;
// [...]
using (Rijndael AES = Rijndael.Create())
{
AES.Padding = PaddingMode.PKCS7;
PasswordDeriveBytes pdb = new PasswordDeriveBytes(TablesController._baseKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
using (FileStream fStream = File.Open(TablesController._baseFileName, FileMode.OpenOrCreate, FileAccess.Write))
{
using (CryptoStream cStream = new CryptoStream(
fStream,
AES.CreateEncryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Write))
{
binFormat.Serialize(cStream, tables);
}
}
}
using (Rijndael AES = Rijndael.Create())
{
AES.Padding = PaddingMode.PKCS7;
PasswordDeriveBytes pdb = new PasswordDeriveBytes(TablesController._baseKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
using (FileStream fStream = File.OpenRead(TablesController._baseFileName))
{
using (CryptoStream cStream = new CryptoStream(fStream, AES.CreateDecryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Read))
{
object deserialized = binFormat.Deserialize(cStream);
tables = deserialized as List<DataTable>;
} // System.Security.Cryptography.CryptographicException не обработано
// Message= Padding is invalid and cannot be removed (Заполнение неверно и не может быть удалено.)
}
}
// BinaryFormatter binFormat = new BinaryFormatter();
// List<DataTable> tables;
// [...]
using (Rijndael AES = Rijndael.Create())
{
AES.Padding = PaddingMode.PKCS7;
PasswordDeriveBytes pdb = new PasswordDeriveBytes(TablesController._baseKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
using (FileStream fStream = File.Open(TablesController._baseFileName, FileMode.OpenOrCreate, FileAccess.Write))
{
using (CryptoStream cStream = new CryptoStream(
fStream,
AES.CreateEncryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Write))
{
binFormat.Serialize(cStream, tables);
}
}
}
using (Rijndael AES = Rijndael.Create())
{
AES.Padding = PaddingMode.PKCS7;
PasswordDeriveBytes pdb = new PasswordDeriveBytes(TablesController._baseKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
using (FileStream fStream = File.OpenRead(TablesController._baseFileName))
{
using (CryptoStream cStream = new CryptoStream(fStream, AES.CreateDecryptor(pdb.GetBytes(32), pdb.GetBytes(16)), CryptoStreamMode.Read))
{
object deserialized = binFormat.Deserialize(cStream);
tables = deserialized as List<DataTable>;
} // System.Security.Cryptography.CryptographicException не обработано
// Message= Padding is invalid and cannot be removed (Заполнение неверно и не может быть удалено.)
}
}
Qwerty -> dvorak?
Как лучше переучиться набирать вслепую код разных программ, используя раскладку дворак, если до этого уже угораздило научиться печатать на qwerty?
Насколько я понял, programmer dvorak подходит для набора кода на С++ гораздо лучше нежели qwerty. Вы только посмотрите на эту прелесть:

Разного рода скобочки, кавычки и прочие символы расположены намного удобнее, и это не говоря уже о том, что многие из них набираются в нижнем регистре.
Для того, чтобы знать куда тыкать пальцем и не травмировать хрупкую психику домашних, клавиши на клавиатуре решил не перевыковыривать, а установил приложение «Claviola» которая служит виртуальной клавиатурой. Стандартную в комплекте с windows использовать не так удобно, потому что она не показывает в какую кнопку ты только что промазал :)
Собственно говоря метод переучивания номер 1:
Пройти заново курс обучения в специализированной программе (Stamina, например. Сдружить VerseQ и Claviola у меня не получается, то версек вылетит, то клавиолу не видно. А дворак в VerseQ обычный, который немного отличается от programmer-версии), выучивая за урок положения нескольких клавиш. Метод плох тем, что требует много времени. Один урок требует минут 6-8. Это долго. Потому что виртуальная клавиатура не имеет никакого отношения к программе-обучалке, и LibAstral.h автор в нее тоже не включил. Следовательно она не знает какой символ нужно нажать следующим и не подсвечивает его. Приходится долго и нудно всматриваться в виртуальную клавиатуру и искать нужный символ (меня аж ностальгия пробрала). Привычные рефлекторные взгляды на настоящую на пару секунд вводят в ступор :)
Метод номер 2:
Запускать любимую IDE и программировать. Меедленно, посимвольно, но писать код «в полевых условиях». Когда пытаюсь так, с позволения сказать, программировать, то возникают мысли, что лучше вернуться к способу 1, а когда сижу в обучалке, то думаю что это занимает слишком много времени и что не менее эффективен будет «метод номер 2». В общем, я в замешательстве.
Буду благодарен Вашим советам и соображениям на этот счет.
Есть ли способ заставить Firefox игнорировать недействительные ssl-сертификаты?
Я поддерживаю несколько веб-приложений. Среды разработки и контроля качества используют недопустимые/устаревшие ssl-сертификаты.
Хотя в целом это хорошо, что Firefox заставляет меня нажимать десятки раз, чтобы принять сертификат, это довольно раздражает.
Есть ли конфигурационный параметр, чтобы заставить Firefox (и, возможно, IE тоже) принять любой ssl-сертификат?
EDIT: я принял решение, которое сработало. Но спасибо всем людям, которые посоветовали использовать самозаверяющие сертификаты. Я полностью осознаю, что принятое решение оставляет меня с зияющей дырой безопасности . Тем не менее мне лень менять сертификат для всех приложений и всех сред...
Но я также советую всем решительно оставить проверку включенной!
Каким алгоритмом/библиотекой конвертировать слово, введённое в неправильной раскладке?
По сути, сделать то, что делают Punto Switcher. Нужно постоянно конвертировать подобные ошибки, сделанные в разных языках, не использующих латиницу. Желательно — на Python, можно на PHP.
439   11   05:17, 27th August, 2020
Переменные привязки в WPF
Я создаю UserControl для богатого TreeView (тот, который имеет контекстные меню для переименования узлов, добавления дочерних узлов и т. д.). Я хочу иметь возможность использовать этот элемент управления для управления или навигации по любым иерархическим структурам данных, которые я создам. В настоящее время он работает для любой структуры данных, которая реализует следующий интерфейс (интерфейс на самом деле не должен быть реализован, однако требуется только присутствие этих членов):
interface ITreeItem
{
string Header { get; set; }
IEnumerable Children { get; }
}
Затем в моем UserControl я использую шаблоны для привязки моего дерева к структуре данных, например:
<TextBlock x:Name="HeaderTextBlock" Text="{Binding Path=Header}" />
То, что я хотел бы сделать, это определить имя каждого из этих членов в моем RichTreeView, позволяя ему адаптироваться к ряду различных структур данных, например:
class MyItem
{
string Name { get; set; }
ObservableCollection<MyItem> Items;
}
<uc:RichTreeView ItemSource={Binding Source={StaticResource MyItemsProvider}}
HeaderProperty="Name" ChildrenProperty="Items" />
Есть ли способ выставить путь привязки внутри UserControl как публичное свойство этого UserControl? Есть ли какой-то другой способ решить эту проблему?
Разница между петлями
Речь идет о PHP, но я не сомневаюсь, что многие из тех же комментариев будут применяться и к другим языкам.
Проще говоря, каковы различия в различных типах цикла для PHP? Является ли один быстрее/лучше, чем другие, или я должен просто поместить его в самый читаемый цикл?
for ($i = 0; $i < 10; $i++)
{
# code...
}
foreach ($array as $index => $value)
{
# code...
}
do
{
# code...
}
while ($flag == false);
Отладка веб-службы с помощью пакета SOAP
У меня есть веб-служба, которую я создал в C#, и тестовый жгут, предоставленный моим клиентом. К сожалению, мой веб-сервис, похоже,не анализирует объекты, созданные тестовым жгутом. Я считаю, что проблема заключается в сериализации пакета soap.
Используя TCPTrace, я смог получить пакет soap, переданный веб-службе, но только на удаленной машине, поэтому я не могу отладить его там. Есть ли способ вызвать мой локальный веб-сервис с генерируемым пакетом soap, а не мой текущий тестовый жгут, где я вручную создаю объекты и вызываю веб-сервис через веб-ссылку?
машина, на которой я получил пакет soap, была на виртуальной машине, поэтому я не могу связать ее с моей машиной. Я полагаю, что ищу инструмент, в который можно вставить пакет soap, и он, в свою очередь, вызовет мой веб-сервис
- «
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- »