All streams
Search
Write a publication
Pull to refresh
86
0
Влад @lorc

Embedded разработчик

Send message
Я так вижу, что формат ip адреса никак не проверяется? То есть можно ввести любой бред и он попадет в командною строку к iptables?
Всё в этом мире симметрично:
Лучше одна понятная строка, чем 10 строчек говнокода.

Из говнокода в этих примерах — разве что решето Эратосфена, да ещё фильтрация списка в некоторых примерах. И то, большей частью из-за желания написать в одну строку код, которых всё-таки по хорошему занимает несколько строк.
Да ладно, там вроде бы нигде нет грязных хаков. И уж всяко лучше писать
doubles = [x*2 for x in range(1,5)]
чем
doubles = []
i = 1
while i<5:
  l.append(i*2)
  i+=1


Да, во втором как бы более понятен метод работы. Правда, только для тех, кто на питоне не программирует. А если знаешь язык, и не пользуешься его легитимными функциями — это как-то странно.
Меньше кода — меньше ошибок.
Про «русское» — это была шутка :)
Но всё-таки у нас в математике используется именно «кортеж», а не «тьюпл». Да и выговорить его куда проще.
Первую задачу на питоне можно решить через list comprehension:
print [x*2 for x in range(1,11)]

Легче читается, чем через лямбды
Да, но с другой стороны до сих пор нет технических средств, которые позволили бы на 100% контролировать сеть. Белые списки, разве что… Но это явный бред.

Вон Китай хоть и пытается как-то контролировать Сеть у себя, но желающие всегда могут найти обходные пути.

Но государства и дальше будут пытаться наложить лапу на Интернет, это понятно. Мне скорее интересно, как-то повлияет на другие корпорации: Гугл, Майкрософт, Фейсбук, Эппл, и т.д. Ведь очевидно, что (в том или ином виде) дыры есть у всех. Не станут ли такие взломы ещё одним средством конкурентной борьбы? Или средством шантажа?
Всё-таки провал стоимости акций на 30% из-за кучки хакеров — это как-то… пугающе.

Интересное время нас ждет.
Хм, а ведь мы сейчас наблюдаем очень интересный прецедент: несколько человек очень сильно пошатнули позиции огромной транснациональной корпорации.

Интересно, какие это будет иметь последствия в глобальном масштабе?
1. Рейтинги и статистика должны обнулиться сами. Ровно в тот самый момент, когда игра будет помечена как недействительная.
2. Нет, игру удалять конечно же не нужно. Нужно пометить её как недействительную.
3. Да, если приходиться делать запросы вида «update pref_player set games=games-1, rating=rating-%s where player_id=%s», (rating, player_id)" — значит дизайн базы неправильный. У игрока вообще не должно быть полей rating и games. Ибо эти поля легко вычисляются из истории сыгранных им игр. Если это вдруг очень тяжелые расчеты — можно всегда хранить их в materialized view. Но никак не в виде атрибутов игрока. Ибо это может приводить к потере целостности базы. Что мы и наблюдаем, кстати.
Черт, не туда ткнул.
Меняем статус игры, откатываем денормализационные данные со статистикой игроков, инвалидируем оперативные кеши, затрагивающие эти данные, и дело в шляпе.

Есть мнение, что если таким образом отменяются результаты игры — значит что-то в корне неправильно с дизайном базы.
Ибо, например, статистика игрока — всегда должна быть функцией от сыгранных игр. Так же, как и рейтинг игрока. И, соотвественно, должна вычисляться на ходу (через функцию, либо view, либо materialized view, если рассчеты сложные). Тогда никогда не будет нарушена нормализация базы, и не нужно будет делать такие шаманства, как описывал автор. Нужно будет всего-лишь изменить статус игры.
Меняем статус игры, откатываем денормализационные данные со статистикой игроков, инвалидируем оперативные кеши, затрагивающие эти данные, и дело в шляпе.
В том то и дело, что атака появилась в 70, просто ну публиковалась. В той цитате, что я привел — так и написано.
Вот выдержка из русской Википедии:

Дифференциальный криптоанализ применим для взлома алгоритмов с постоянными S-блоками, таких как DES. При этом его эффективность сильно зависит от структуры S-блоков. Оказалось, что S-блоки DES оптимизированы против дифференциального криптоанализа. Предполагается, что создатели DES знали об этом методе. По словам Дона Копперсмита из IBM:
«При проектировании использовались преимущества определенных криптоаналитических методов, особенно метода «дифференциального криптоанализа», который не был опубликован в открытой литературе. После дискуссий с NSA было решено, что раскрытие процесса проектирования раскроет и метод дифференциального криптоанализа, мощь которого может быть использована против многих шифров. Это, в свою очередь, сократило бы преимущество США перед другими странами в области криптографии.»
Не совсем понятно с DESL. Насколько я знаю, S-boxes были подобраны таким образом, что эффективно противостоять дифференциальному криптоанализу:
Some of the suspicions about hidden weaknesses in the S-boxes were allayed in 1990, with the independent discovery and open publication by Eli Biham and Adi Shamir of differential cryptanalysis, a general method for breaking block ciphers. The S-boxes of DES were much more resistant to the attack than if they had been chosen at random, strongly suggesting that IBM knew about the technique in the 1970s.

Соотвественно, использование одного и того же S-box вместо восьми разных должно сделать DESL очень восприимчивым к такой атаке.
Такой www.youtube.com/watch?v=eNvvSWEbuTs&feature=relmfu
устроит? :)
Я та понял, у них там есть разные размеры, от маленьких, до вот таких огромных.
Переменную не инициализировали, а на стеке, где она была размещена был мусор.
Скажите, а пинг вы чем мерили? Обычная утилита ping выводит время с точностью до миллисекунд.
Ну так написать dll на C, которая реализует весь нужный функционал, дергать её из программы на C#. Будет всяко проще и быстрее.

Хм, или, как вариант, хранить всё в memcached :)
Может не стоит решать ресурсоёмкие задачи на C#? Всё-таки старичок C для этого подходит лучше. Особенно, учитывая тот факт, что из C# легко и просто дергать dll-ки написанные на C.
А то вначале создаем себе трудности, а потом героически их решаем.
Кстати да. Большое преимущество текстовых файлов в том, что они легко и удобно хранятся в системах контроля версий.
Это тот же goto, только ещё и нарушающий семантику.
do {} while() — это цикл, у него семантика цикла. Когда я вижу do while я ожидаю увидеть цикл. А вы его используете как goto.
Это намного хуже, чем просто поставить одну несчастную метку «error:».

Information

Rating
5,376-th
Location
Украина
Date of birth
Registered
Activity