Как вы справляетесь со светлой и темной стороной распределенных систем управления версиями?
Недавно у меня были некоторые дискуссии на работе о переходе от Subversion к DVCS, как bazaar, и я хотел бы получить мнение других людей.
Мне удалось выкристаллизовать свое нежелание делать это в простую параллель.
Контроль версий может использоваться хорошо или плохо.
'light side' контроля версий-это когда вы используете его для отслеживания ваших изменений, можете вернуться к старым версиям, когда вы нарушаете материал, и когда вы публикуете свои изменения, чтобы ваши коллеги могли видеть ваш work-in-progress.
'dark side' контроля версий, когда вы не используете его должным образом, так что вы не 'checkpoint' ваша работа, совершая регулярно, вы держите кучу изменений в вашей локальной проверки, и вы не делитесь своими изменениями с другими, как вы делаете их.
Подрывная деятельность делает как светлую, так и темную сторону относительно жесткой. Все основы работают, но мало кто действительно использует ветвление в Subversion (помимо тегов и освобождения), потому что слияние не является простым вообще. Поддержка его в самой Subversion ужасна, и есть сценарии, такие как svnmerge, которые делают его лучше, но это все еще не очень хорошо. Итак, в наши дни, с хорошей поддержкой ветвления и слияния, которая все больше и больше похожа на необходимость совместной разработки, Subversion не соответствует.
С другой стороны, 'dark side' довольно трудно следовать тоже. Вам нужно только один раз укусить, не имея ваших локальных изменений, совершаемых время от времени в онлайн-хранилище, и сломать ваш код с помощью простого редактирования, которое вы даже не помните. Таким образом, вы в конечном итоге делаете регулярные коммиты, и люди могут видеть работу, которую вы делаете.
Таким образом, в конце концов Subversion становится хорошим middle-of-the-road VCS, который, хотя и немного громоздкий для реализации лучших практик, все же затрудняет получение очень неправильных вещей.
В отличие от этого, с DVCS стоимость либо полностью светлой стороны, либо темной стороны намного ниже. Ветвление и слияние намного проще с этими современными системами VCS. Но распределенный аспект позволяет легко работать в наборе локальных ветвей на вашем собственном компьютере, предоставляя вам гранулированные фиксации, необходимые для проверки вашей работы, возможно, без публикации ваших изменений, чтобы другие могли видеть, просматривать и сотрудничать. Сложность сохранения изменений в локальных ветвях и их публикации обычно ниже, чем их публикация в какой-либо ветви на общедоступном сервере.
Итак, в двух словах, вот вопрос: если я дам нашим разработчикам на работе DVCS, как я могу убедиться, что они используют его, чтобы перейти к 'light side', по-прежнему регулярно публиковать свои изменения в Центральном местоположении и заставить их понять, что их недельный локальный хак, который они не хотели делиться, может быть просто тем, что какой-то другой разработчик может использовать для завершения функции, пока первый находится в отпуске?
Если и светлая сторона, и темная сторона DVCS так легко добраться, как я могу держать их подальше от темной стороны?
Что я здесь сделал не так? [Javascript Regex]
Поэтому я пишу регистрационную форму, и мне нужно, чтобы отображаемое имя было только цифрами, буквами и подчеркиваниями.
Посмотрите на мой код и скажите мне, что я делаю неправильно.
<form method="post" action="/" onsubmit="return check_form()">
<input type="text" id="display-name" name="display-name" maxlength="255" />
<input type="submit" />
</form>
<script type="text/javascript">
<!--
var name_regex = /^([a-zA-Z0-9_])+/
function check_form()
{
if (!name_regex.test(document.forms[0].elements[0].value))
{
document.forms[0].elements[0].focus()
alert("Your display name may only contain letters, numbers and underscores")
return false
}
}
-->
</script>
Очевидно, что он был обрезан, чтобы не включать ничего, не связанного с проблемой, но даже этот фрагмент не работает.
Вопросы поставщику услуг виртуализации
На следующей неделе еду на презентацию стенда Hyper-V в MS. Какие вопросы задать, что вас давно интересовали, и о которых я не догадываюсь, что бы обезопасить себя в будущем в случае не предвиденной ситуации?
Меня на пример вопрос с переносом виртуальных машин интересует, у которых есть снепшоты, с хоста на хост (вне кластера). Все ли там так же просто как в ESX, или есть какие то проблемы, как на пример в VirtualBox?
Есть какие то моменты, которые сразу надо прогнать на стенде, и решить — готовы мы мириться с особенностями продукта или нет?
Какие технологии виртуализации востребованы в работе среднестатистической компании?
Nvidia Geforce GT420?
Всем привет. Я бы хотел купить видеокарту Nvidia Geforce GT420, но как назло её ставят только в собранные компьютеры, а по отдельности в розницу не продают. Во всяком случае, так пишут на сайте Nvidia, а Яндекс.Маркет утвёрждает, что готовых компьютеров с этой картой продают целое море.
Может, кто-нибудь знает, где такую купить?
//Предвидя вопросы и советы в духе «зачем она нужна» и «можно купить за те же деньги более мощную карту», отвечаю заранее. Мне нужна отладочная карта для CUDA с двумя гигабайтами памяти на борту и с чипом не младше GF106 (здесь GF108), производительность при этом совершенно не важна.
mysqli или PDO - каковы плюсы и минусы?
В нашем случае мы разделены между использованием mysqli и PDO для таких вещей, как подготовленные заявления и поддержка транзакций. Некоторые проекты используют одно, некоторые другое. Существует очень мало реальной вероятности того, что мы когда-нибудь переедем в другой RDBMS.
Я предпочитаю PDO только по той причине, что он допускает именованные параметры для подготовленных операторов, а насколько мне известно, mysqli этого не делает.
Есть ли еще какие-то плюсы и минусы в выборе одного из них в качестве стандарта, когда мы объединяем наши проекты, чтобы использовать только один подход?
Как лучше всего сообщать об ошибках из рабочего процесса SharePoint?
У меня есть пользовательское действие в рабочем процессе, и я хотел бы сообщить об ошибке пользователю, когда что-то пойдет не так. Как лучше всего это сделать?
UPD: в идеале я хотел бы поместить рабочий процесс в состояние ошибки и записать сообщение в журнал рабочего процесса. Это кажется невозможным. Как можно ближе подобраться к нему? Я хочу, чтобы повторно используемый раствор,то, что легко для пользователей, чтобы настроить, когда через мои пользовательские действия в SharePoint дизайнер.
Добавил больше деталей к вопросу.
@mauro это заботится о сохранении ошибки, но как я могу отобразить ошибку пользователю таким образом, чтобы это имело смысл?
@AdamSane это кажется довольно хрупким решением. Это не вопрос настройки этого один раз на одном сайте. Мне нужно что-то, что другие могут добавить, используя SPD.
Как я должен протестировать метод, который заполняет список из DataReader?
Поэтому я работаю над некоторым устаревшим кодом, который тяжело переносится на ручные операции с базой данных. Я стараюсь поддерживать здесь некое подобие качества,поэтому стараюсь делать все возможное.
Код, над которым я работаю, должен быть заполнен, скажем, a List<Foo> из A DataReader, который возвращает все поля, необходимые для функционирования Foo. Однако если я хочу проверить, что код фактически возвращает один элемент списка на одну строку базы данных, я пишу тестовый код, который выглядит примерно так:
Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 1);
// ....
Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 2);
// ....
Expect.Call(reader.Read()).Return(false);
Что тоже довольно утомительно и довольно легко нарушается.
Как я должен подходить к этому вопросу, чтобы результат не был огромным беспорядком хрупких тестов?
Кстати, в настоящее время я использую Rhino.Mocks для этого, но я могу изменить его, если результат будет достаточно убедительным. Просто пока альтернативой не является TypeMock, потому что их EULA было немного слишком страшно на мой вкус, когда я последний раз проверял.
Edit: я также в настоящее время ограничен C# 2.
Как сделать так чтобы CTRL+C/CTRL+V в Mac OS X работали аналогично cmd+v/cmd+с?
При переключении постоянно путаюсь, хочется сделать так чтобы работали обе комбинации, как можно настроить mac os на это?
C помощью сторонних программ если они бесплатны тоже можно.
Видеокарты. Что лучше взять Palit GTX460 Sonic Platinum или Gainward GTX460GLH?
Цены почти одинаковые, но что лучше?
Помогите найти запись на хабре, посвящённую IM интерфейсу
Некоторое время назад (может и больше) на хабре была опубликована запись, в которой описывался интерфейс IM клиента. Прототип так сказать…
Краткое описание:
- Белый цвет интерфейса
- 2 режима работы (полный и минималистичный)
- Сам интефейс «работал» в однооконном режиме (список контактов в одном окне с чатом)
Может у кого в закладках сохранилась ссылка или копия в других местах.
Сегодня перерыл половину хабра по тегам, которые по-моему мнению должны соответствовать данной записи, но безрезультата… :(
- «
- 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
- »