OpenGL вращение
Я пытаюсь сделать простое вращение в OpenGL, но, должно быть, упускаю суть. Я ищу не столько конкретное исправление, сколько быстрое объяснение или ссылку, которая объясняет вращение OpenGL более широко.
На данный момент у меня есть такой код:
glPushMatrix();
glRotatef(90.0, 0.0, 1.0, 0.0);
glBegin(GL_TRIANGLES);
glVertex3f( 1.0, 1.0, 0.0 );
glVertex3f( 3.0, 2.0, 0.0 );
glVertex3f( 3.0, 1.0, 0.0 );
glEnd();
glPopMatrix();
Но в результате получается не треугольник, повернутый на 90 градусов.
Edit Hmm спасибо майку Хабустаку-оказалось, что мой код вызывал функцию SetCamera, которая использует glOrtho. Я слишком новичок в OpenGL, чтобы иметь какое-либо представление о том, что это означало, но отключение этого и вращение по оси Z дали желаемый результат.
Как HttpOnly cookies работают с AJAX запросами?
JavaScript необходим доступ к файлам cookie, если AJAX используется на сайте с ограничениями доступа на основе файлов cookie. Будут ли файлы cookie HttpOnly работать на сайте AJAX?
Изменить: Microsoft создала способ предотвращения атак XSS, запретив JavaScript доступ к файлам cookie, если указано HttpOnly. FireFox позже принял это. Итак, мой вопрос: если вы используете AJAX на сайте, как StackOverflow, являются ли Http-только файлы cookie опцией?
Правка 2: Вопрос 2. Если целью HttpOnly является предотвращение доступа JavaScript к cookies, и вы все еще можете получить cookies через JavaScript через объект XmlHttpRequest, то в чем смысл HttpOnly ?
Правка 3: Вот цитата из Википедии:
Когда браузер получает такой файл cookie, он должен использовать его как обычно в следующих обменах HTTP, но не делать его видимым для клиентской стороны scripts.[32] флаг
HttpOnlyне является частью какого-либо стандарта и не реализован во всех браузерах. Обратите внимание, что в настоящее время нет никакой возможности предотвратить чтение или запись сессионного куки через XMLHTTPRequest. [33].
Я понимаю, что document.cookie блокируется, когда вы используете HttpOnly. Но похоже, что вы все еще можете прочитать значения cookie в объекте XMLHttpRequest, допуская XSS. Как HttpOnly делает вас более безопасным, чем? Делая файлы cookie по существу только для чтения?
В вашем примере я не могу написать на ваш document.cookie, но я все еще могу украсть ваш файл cookie и отправить его в свой домен, используя объект XMLHttpRequest.
<script type="text/javascript">
var req = null;
try { req = new XMLHttpRequest(); } catch(e) {}
if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
if (!req) try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
req.open('GET', 'http://stackoverflow.com/', false);
req.send(null);
alert(req.getAllResponseHeaders());
</script>
Правка 4: Извините, я имел в виду, что вы можете отправить XMLHttpRequest в домен StackOverflow, а затем сохранить результат getAllResponseHeaders() в строку, regex из файла cookie, а затем отправить его во внешний домен. Похоже, что Википедия и ha.ckers согласны со мной в этом, но я хотел бы быть перевоспитанным...
Окончательное редактирование: Ах, очевидно, оба сайта ошибочны, на самом деле это ошибка в FireFox . IE6 & 7 на самом деле являются единственными браузерами, которые в настоящее время полностью поддерживают HttpOnly.
Чтобы повторить все, что я узнал:
- HttpOnly ограничивает весь доступ к document.cookie в IE7 & и FireFox (не уверен в других браузерах)
- HttpOnly удаляет информацию о файлах cookie из заголовков ответов в XMLHttpObject.getAllResponseHeaders() в IE7.
- XMLHttpObjects могут быть отправлены только в домен, из которого они исходят, поэтому нет никакой междоменной публикации файлов cookie.
правка: эта информация, скорее всего, больше не актуальна.
XML => HTML с Hpricot и Rails
Я никогда не работал с веб-сервисами и rails, и, очевидно, это то, что мне нужно узнать. Я решил использовать hpricot, потому что он выглядит великолепно. В любом случае, _why был достаточно хорош, чтобы предоставить следующий пример на веб -сайте hpricot :
#!ruby
require 'hpricot'
require 'open-uri'
# load the RedHanded home page
doc = Hpricot(open("http://redhanded.hobix.com/index.html"))
# change the CSS class on links
(doc/"span.entryPermalink").set("class", "newLinks")
# remove the sidebar
(doc/"#sidebar").remove
# print the altered HTML
puts doc
Которая выглядит простой, элегантный, и удобной для тебя такого. Отлично работает в Ruby, но мой вопрос: Как я могу разбить это в rails?
Я экспериментировал с добавлением всего этого к одному контроллеру, но не мог придумать лучший способ назвать его в представлении.
Итак, если бы вы разбирали файл XML из web API и печатали его в nice clean HTML с помощью Hpricot, как бы вы разбили активность по моделям, представлениям и контроллерам, и что бы вы поместили туда?
Как создать короткие сниппеты в Vim?
Я недавно начал использовать Vim в качестве текстового редактора и в настоящее время работаю над своими собственными настройками.
Я предполагаю, что сопоставления клавиатуры могут делать практически все, но в настоящее время я использую их как своего рода средство для фрагментов почти исключительно.
Так, например, если я наберу def{TAB} ( :imap def{TAB} def ():<ESC>3ha ), он расширится до:
def |(): # '|' represents the caret
Это работает, как и ожидалось, но меня раздражает, когда Vim ждет полной команды, пока я набираю слово, содержащее "def", и не заинтересован в его расширении.
- Есть ли способ избежать этого или использовать эту функцию более эффективно с этой целью?
- Есть ли какая-либо другая функция Vim, которая лучше подходит для этого?
После быстрого просмотра SnippetsEmu, похоже, что это лучший вариант и гораздо проще настроить, чем я сначала думал.
Чтобы продолжить предыдущий пример:
:Snippet def <{}>():
После определения вы можете расширить свой фрагмент кода, введя def{TAB} .
“rusage” статистика
Я пытаюсь использовать статистику “rusage” в своей программе, чтобы получить данные, аналогичные данным инструмента time . Однако я почти уверен, что делаю что-то не так. Значения кажутся правильными, но иногда могут быть немного странными. Я не нашел хороших ресурсов в интернете. Кто-нибудь знает, как сделать это лучше?
Извините за длинный код.
class StopWatch {
public:
void start() {
getrusage(RUSAGE_SELF, &m_begin);
gettimeofday(&m_tmbegin, 0);
}
void stop() {
getrusage(RUSAGE_SELF, &m_end);
gettimeofday(&m_tmend, 0);
timeval_sub(m_end.ru_utime, m_begin.ru_utime, m_diff.ru_utime);
timeval_sub(m_end.ru_stime, m_begin.ru_stime, m_diff.ru_stime);
timeval_sub(m_tmend, m_tmbegin, m_tmdiff);
}
void printf(std::ostream& out) const {
using namespace std;
timeval const& utime = m_diff.ru_utime;
timeval const& stime = m_diff.ru_stime;
format_time(out, utime);
out << "u ";
format_time(out, stime);
out << "s ";
format_time(out, m_tmdiff);
}
private:
rusage m_begin;
rusage m_end;
rusage m_diff;
timeval m_tmbegin;
timeval m_tmend;
timeval m_tmdiff;
static void timeval_add(timeval const& a, timeval const& b, timeval& ret) {
ret.tv_usec = a.tv_usec + b.tv_usec;
ret.tv_sec = a.tv_sec + b.tv_sec;
if (ret.tv_usec > 999999) {
ret.tv_usec -= 1000000;
++ret.tv_sec;
}
}
static void timeval_sub(timeval const& a, timeval const& b, timeval& ret) {
ret.tv_usec = a.tv_usec - b.tv_usec;
ret.tv_sec = a.tv_sec - b.tv_sec;
if (a.tv_usec < b.tv_usec) {
ret.tv_usec += 1000000;
--ret.tv_sec;
}
}
static void format_time(std::ostream& out, timeval const& tv) {
using namespace std;
long usec = tv.tv_usec;
while (usec >= 1000)
usec /= 10;
out << tv.tv_sec << '.' << setw(3) << setfill('0') << usec;
}
}; // class StopWatch
Почему вы не можете привязать размер формы windows к ApplicationSettings?
Обновление: решено, с кодом
Я получил это работает, см. Мой ответ ниже для кода...
оригинальный пост
Как указал Тунди в своем ответе на мой последний вопрос, вы можете связать почти все о windows forms control с ApplicationSettings довольно легко. Так неужели нет никакого способа сделать это с размером формы? В этом руководстве говорится, что вам нужно явно обрабатывать размер, чтобы вы могли сохранить RestoreBounds вместо размера, если окно развернуто или свернуто. Тем не менее, я надеялся, что смогу просто использовать такое свойство, как:
public Size RestoreSize
{
get
{
if (this.WindowState == FormWindowState.Normal)
{
return this.Size;
}
else
{
return this.RestoreBounds.Size;
}
}
set
{
...
}
}
Но я не вижу способа связать это в конструкторе (размер заметно отсутствует в списке PropertyBinding).
Что такое хорошая библиотека естественного языка, чтобы использовать для перефразирования?
Я ищу существующую библиотеку для обобщения или перефразирования контента (я нацелен на сообщения в блоге) - есть ли опыт работы с существующими библиотеками обработки естественного языка?
Я открыт для различных языков, поэтому меня больше интересуют способности & точность.
Массивы массивов в Java
Это очень неприятно для меня... Я парень PHP, работающий в Java над проектом JSP. Я знаю, как сделать то, что я пытаюсь через слишком много кода и полное отсутствие изящества.
Я бы предпочел сделать все правильно. Вот такая ситуация:
Я пишу небольшой дисплей, чтобы показать клиентам, в какие дни они могут поливать свои газоны на основе их группы полива (ABCDE) и в какое время года это происходит. Наши сезоны выглядят так: Лето (от 5-1 до 8-31) Spring (от 3-1 до 4-30) Падение (от 9-1 до 10-31) Зима (от 11-1 до 2-28)
Примером может быть:
Если бы я был в группе А, здесь были бы мои разрешенные времена: Зима: только по понедельникам Spring: Вт, Чт, Сб Лето: В Любой День Осень: Вт, Чт, Сб
Если бы я писал это в PHP, я бы использовал такие массивы:
//M=Monday,t=Tuesday,T=Thursday.... etc
$schedule["A"]["Winter"]='M';
$schedule["A"]["Spring"]='tTS';
$schedule["A"]["Summer"]='Any';
$schedule["A"]["Fall"]='tTS';
$schedule["B"]["Winter"]='t';
Я мог бы сделать массивы дней (array ("Tuesday","Thursday","Saturday")) и т. д., Но это не обязательно для того, что я действительно пытаюсь выполнить.
Мне также нужно будет настроить массивы, чтобы определить, в каком сезоне я нахожусь:
$seasons["Summer"]["start"]=0501;
$seasons["Summer"]["end"]=0801;
Может ли кто-нибудь предложить действительно классный способ сделать это? У меня будет сегодняшняя дата и письмо группы. Мне нужно будет выйти из моей функции в день (M) или в ряд дней (tTS), (любой).
Как заставить работать box-shadow для select в webkit браузерах?
Вот такой код не отрабатывает:
pastie.org/1146505
Как вы преобразуете число, полученное от datepart, в название дня?
Есть ли быстрый однострочный вызов datepart в Sql Server и получить обратно название дня вместо просто номера?
select datepart(dw, getdate());
Это вернет 1-7, а в воскресенье будет 1. Я бы хотел 'Sunday' вместо 1.
- «
- 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
- »