Обновить
59

Пользователь

2
Рейтинг
16
Подписчики
Отправить сообщение
я рассуждаю так. учитывая в), фича может быть полезна для авторизации с чужого компа — в командировке, например. но как раз в роуминге входящие блокируются при отрицательном балансе.
звонок на городской:
м: але, это кто?
г: «гугл»
с: «мама, это мне, проверка авториз..»
м: «сиди, уроки делай»
Раз сделали резервные коды и приложения для генерации кодов, то телефон с sms'ками в этой схеме, кажется, лишние (а если баланс ушел в минус, то и почту уже не посмотреть?).
Как узнали, что я увидел? ;) Я увидел знакомую метафору:
Интерфейс операционной системы «вращается» вокруг метафоры названной «карточками». Нажатие на физическую кнопку «Home» открывает экран, на котором все запущенные приложения выглядят как небольшие карточки. Вы можете переключаться между «карточками», проводя пальцем по экрану вправо или влево. Когда вы найдете на экране карточек нужное приложение, простое нажатие на карточку переводит приложение в полноэкранный режим.

в презентации hypercard Аткинсон рассказывал о том же самом. С той лишь разницей, что управлялось оно не пальцами, а мышью.
Интерфейс операционной системы «вращается» вокруг метафоры названной «карточками».

Ответ эппловскому iPad компания Hewlett-Packard списала у эппла — Hypercard (Apple, 1987).
Я очень горд что приложил руку к этой статье. Она очень крутая получилась!: )

Парни, вы молодцы. Но зачем этот детективный креатифф в каждой статье? — читать противно. Тут хабр, а не «НТВ». :)
вложенность это единственный способ на свете, чтобы отразить декомпозицию и делегирование задачи?
а если мне потребуется составить алфавитный рубрикатор?
скажите ещё «ООП не жизнеспособно в реальных проектах — постоянно вижу лапшу в коде.» :)
3NF нежизнеспособна в реальных проектах.
Несколько раз сталкивался с задачами денормализации БД.

ага, no school наше фсё. ;)

нормализация это один из методов анализа предметной области. денормализация — прием, используемый в процессе синтеза решения.

>>> [ 0 for ( i in 100 ) ];
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

в firebug работает только эта конструкция. я понимаю, что примеры нужно запускать из внешнего файла. вопрос в другом: почему эта конструкция вообще работает в дефолтном js, возвращая список из 23-х нулей?
Поиглася в gimp. Достаточно уменьшить масштаб изображения на 1px, в любом измерении, и надпись VOID при сжатии не проявляется, при любом коэффициенте. Но появляются темные и светлые пятна, интенсивность которых зависит от выбранного алгоритма интерполяции.
похоже эффект ещё зависит от коэффициентам масштабирования в браузере. в ff ничего не замечал, пока не жамнул ctrl-0.
Запрос вида

SELECT Kids FROM Family WHERE kids LIKE 'С%'

не отработает в данной ситуации как нужно и не найдет Сашу, поскольку LIKE не умеет парсить списки, извлекать значения и трактовать их как аргументы для сравнения с шаблоном. ’Ваня, Саша’ в данном случае неатомарное значение типа список строк. Чтобы научить SQL работать с такими данными, нужно либо расширить язык, либо упростить модель до 1NF. Декомпозиция до 1NF достигается разбиением составного значения на атомарные

Кажется здесь критерием отбора служит часть слова — буква. Не значит-ли это, что атомарными значениями в данном являются буквы алфавита, а не имена?
Или по другому задам вопрос: как, с точки зрения 1NF, понимать «атомарность»?
Правильно понимаю, что «детали» такого контракта нужно прописывать возле каждого метода, где упоминаются часы — принимаются аргументами или возвращаются в результате? Если так, то тип кажется выгоднее — здесь реализация будет инкапсулирована внутри единтсвенного класса.
а если поместить в него репозитарий (.git или .hg)?
из примера:
  @Ensures({
    "result >= 0",
    "result <= 23"
  })
  int getHour();

Кажется, проблема этого кода в том, что getHour() возрващает абстактный int, вместо собственно «часов». Если завести специальный тип Hour (у нас ведь ООП в конце-концов), то вся эта атрибутика будет не особенно нужна:
class Hour {...}
Hour getHour();

В чем смысл?
Тесты — суть выражение функциональных спецификаций. Если в тесте не отражены (явно или же очевидным образом) какие-то условия, считайте что на них нет постановки. В самом деле, постановка может быть не полной. Но в этом виновата лишь ваша лень — при чем тут TDD? :) Кстати, тут могут быть полезны вот такие феньки, которые выводят лейаут теста на «человеческом» языке — обратно, в виде спецификации.

Если вы делаете одно простое изменение в коде, и вам нужно перелопатить десяток тестов, это означает что вы поменяли шаги местами. сначала меняется один тест — затем вносится изменение в код.

В процессе выполнения теста создаются идеальные условия для дебага.

Если одно и то же изменение в коде вызывает каскадное изменение других тестов, это является сигналом о сильной связанности — т.е. ваша система тестов попросту плохо спроектирована. (сюрприз, чтобы тесты было легко поддерживать, их тоже необходимо вдумчиво проектировать — так же тщательно как и любой другой код. поэтому как раз-таки для «быдлокодеров» от ни нет ни какой пользы).
В принципе, я согласен. Но есть вырожденные ситуации, где, как мне кажется, это может быть полезно.

Например, если ваше приложение и есть инсталлятор — где инициализация virtualenv лишь первый шаг, а дальше накладываются пачти, создаются конфиги и т.п.

Я использую такую возможность в скрипте, запускающем тесты для проекта. Это создает единую точку входа, упрощая интеграцию с CI-сервером. А «интегрированный» деплоймент позволяет лишний раз убедиться, что все зависимости прописаны.

У pip есть замечательная фича — он умеет создавать бандлы (bundle) для установки всех зависимостей «оффлайн». Единственная проблема — для распаковки бандла на целевом хосте должен быть установлен сам pip, желательно не самый старый. Путем такого трюка с virtualenv это ограничение достаточно легко обходится.
согласен. в принципе, тем хуже для примера. здесь я хотел показать, что virtualenv'у, устанавливаемому таким способом, можно передавать знакомые параметры.

Информация

В рейтинге
1 885-й
Зарегистрирован
Активность