Веб-приложение: запрет многократных голосований пользователем
Первый раз занимаюсь написанием веб-приложения и возникают вопросы как правильнее было-бы поступить.
Вот например на хабре за топик можно проглосовать только один раз. Как это правильнее реализовать? Хранить с каждым топиком список проголосовавших пользователей? А если же объектов очень много, например комментарии?
Мышление программирования веб-фреймворка
Я только начинаю играть с Django/Python и пытаюсь перейти в режим программирования MTV, который просит Django (настаивает). Решение о том, какие функции должны быть методами модели, а не просто быть функцией в представлении, до сих пор было запутанным. Кто-нибудь знает о книге, веб-сайте, блоге, слайд-шоу, все, что обсуждает программирование веб-фреймворка в более общих, абстрактных терминах? Я думаю, что просто книга по объектно-ориентированному программированию сделала бы это, но я чувствую, что это было бы излишним - я искал что-то конкретное для веб-фреймворка.
Проблема С Кнопкой Safari Назад
Я занимаюсь небольшим программированием и веб-работой для местного общественного колледжа. Работа, которая включает в себя поддержание очень большого и душераздирающего веб-сайта, который состоит из Ходж-поджа VBScript, javascript, Dreamweaver, сгенерированного cruft и коллекции дополнений, которые различные мошенники убедили их купить на протяжении многих лет.
Несколько дней назад мне позвонили "The website is locking up for people using Safari!" хорошо, Шаг первый скачать Safari (v3.1.2), Шаг второй серфинг на сайт. Кажется, все работает нормально.
Короче говоря, я наконец-то вычленил проблему, и она относится к кнопке возврата Safari. На сайте используется меню fancy-pants javascript, которое работает в каждом браузере, который я пробовал, включая Safari, в первый раз. Но в Safari, если вы перейдете по ссылке со страницы, а затем нажмете кнопку Назад, Меню больше не работает.
Я сделал сокращенную веб-страницу, чтобы проиллюстрировать этот принцип.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Safari Back Button Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body onload="alert('Hello');">
<a href="http://www.codinghorror.com">Coding Horror</a>
</body>
</html>
Загрузите страницу, и вы увидите окно оповещения. Затем перейдите по ссылке со страницы и нажмите кнопку Назад. В IE и Firefox вы снова видите окно оповещения, в Safari-нет.
После энергичного поиска в гугле я обнаружил других людей с похожими проблемами, но без действительно удовлетворительных ответов. Таким образом, мой вопрос заключается в том, как я могу заставить мои страницы работать так же, как в Safari после того, как пользователь нажимает кнопку назад, как и в других браузерах?
Если это глупый вопрос, пожалуйста, будьте нежны, javascript несколько ново для меня.
Отправить сообщение в твиттер через PHP
Не подскажите есть ли готовый пример отправки сообщения в твиттер через API на PHP.
Ранее все работало через curl, но с вводом oAuth все накрылось и работающих примеров что-то не нашел(
К любителям Java?
Никогда толком не любил выносить код в static методы, делал это обычно, если ну никак без этого. А тут задумался и никак не могу найти правильный ответ на, кажется мне, достаточно легкий вопрос.
Есть ли смысл (по ресурсам, быстродействию или ?) в преобразовании:
public class A
{
private final int a;
private final Map<Integer, Integer> map;
public A(int a)
{
this.a = a;
this.map = new HashMap<Integer, Integer>();
}
public int calcSomthing()
{
int b = 0;
for (int i : map.values())
if (i == a)
b++;
return b;
}
}
в
public class A
{
// ...
public int getA()
{
return a;
}
public Collection<Integer> getValues()
{
return map.values();
}
public static int calcSomthing(A obj)
{
int b = 0;
for (int i : obj.getValues())
if (i == obj.getA())
b++;
return b;
}
}
Если учитывать, что объектов много, скажем тысяч 50.
Или смыл будет только, если, выносить в static те методы, которые изначально не обращается напрямую к переменным класса, а используют только другие методы класса?
public class A
{
private final int a;
private final Map<Integer, Integer> map;
public A(int a)
{
this.a = a;
this.map = new HashMap<Integer, Integer>();
}
public int calcSomthing()
{
int b = 0;
for (int i : map.values())
if (i == a)
b++;
return b;
}
}public class A
{
// ...
public int getA()
{
return a;
}
public Collection<Integer> getValues()
{
return map.values();
}
public static int calcSomthing(A obj)
{
int b = 0;
for (int i : obj.getValues())
if (i == obj.getA())
b++;
return b;
}
}
составить SQL запрос
База данных mysql.
таблица, с такими данными (упрощено):
id____ project_id_____year
1________1____________2010
2________1____________2008
3________1____________2009
4________2____________2007
5________2____________2009
Хотелось бы получить вот такой результат:
(данные сгруппированы по project_id и взята строка где year — минимальный)
id________project_id_____year
2____________1___________2008
4____________2___________2007
1________1____________2010
2________1____________2008
3________1____________2009
4________2____________2007
5________2____________2009
2____________1___________2008
4____________2___________2007
Проблема с дисплеем MacBook Pro. Кто пробовал лечить?
У меня MacBook Pro 15" модель A1226
Проблема такаяже как и на видео:
Если сдавить рамку пальцами справа в месте где начинается серая область, то проблема исчезает и в процессе работы не появляется (где-то отходит контакт видими). Появляется снова после того как закроешь/откроешь ноут, но не всегда.
PRAM сбрасывал не помогло…
Оч хочется услышать мнение людей, а то наш сервис сразу начнет менять все начиная с материнки, видюхи, экрана и заканчивая всем буком.
Сталкивался ли кто с такой проблемой и знает ли как лечить?
Каков предпочтительный стиль для отдельных заявлений о принятии решений и действиях?
В случае языков, поддерживающих одно решение и действие без скобок, например, в следующем примере:
if (var == true)
doSomething();
Каков предпочтительный способ написания этого текста? Следует ли всегда использовать скобки, или их использование должно быть оставлено в качестве предпочтения отдельного разработчика? Кроме того, зависит ли эта практика от размера блока кода, например, в следующем примере:
if (var == 1)
doSomething(1);
else if (var > 1 && var < 10)
doSomething(2);
else
{
validate(var);
doSomething(var);
}
Математическое ожидание, дисперсия, стандартное отклонение?
Подскажите. Ситуация следующая.
Есть массив A целых чисел. Размер массива 10. Числа рандомны в диапазоне от [0 до 100].
Верны ли утверждения:
1. Математическое ожидание + стандартное отклонение <= 100
2. Математическое ожидание + дисперсия <= 100
Есть ли какие-то теоремы и доказательсва для подтверждения или опровержения?
Лучшая файловая система для доступа из всех операционок
Хочу установить на iMac одновременно MacOS X, Ubuntu 10.10 и Windows 7 (давайте обойдемся без холиворов о причинах и целесообразности). Думаю сделать не только по разделу диска для каждой системы, но и отдельный большой раздел с рабочими и личными файлами, доступ к которым будет из-под всех операционок. Вопрос: какую файловую систему стоит использовать для этого большого раздела, какая лучше всего поддерживается всеми системами сразу?
- «
- 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
- »