All streams
Search
Write a publication
Pull to refresh
12
0
Алексей Павлов @lexxpavlov

Программист

Send message
Вы неправильно смеётесь. Правильно смеяться нужно так: «Муа-ха-ха!»
Имхо, в большинстве случаев, когда говорят о тестировании кода, говорят о юнит-тестировании. Например, в той статье habrahabr.ru/company/infopulse/blog/177581/, откуда вы, похоже, взяли первый пример про helloWorld.
Есть юнит-тесты, а есть функциональные тесты. Не надо их путать. Юнит-тест тестирует не ситуацию, которую можно обработать внутри функции (bmp внутри jpg), юнит-тесты тестируют сами функции — передаём параметр и сравниваем результат с ожидаемым. Если у вас такие функции, которые нужно проверять десятками тестов, то, возможно, эти функции перегружены, и стоит разбить такие функции на несколько отдельных попроще, с 1-2 параметрами. Их и тестировать будет проще.
Юнит-тесты предназначены для тестирования конкретного участка программы — не взаимодействия нескольких юнитов, а одного юнита — функции/метода, как мельчайшего элемента программы, не путать с модулями (например, в Паскале unit — модуль программы, отдельный файл со множеством классов/функций).
Тестируют взаимодействие разных подсистем программы друг с другом функциональные тесты, а они пишутся совсем по другому, чем юнит-тесты.
Отдельно если говорить про TDD — там у тестов появляются ещё несколько важнейших назначений, помимо собственно проверки работоспособности кода.
Имею домен angular.ru. Могу пожертвовать на дело перевода. Как-то взял по случаю, когда начал изучать ng, думал тоже сделать перевод офсайта. А потом сменил вид деятельности, и теперь не сильно нужен — на него времени нет теперь…
Может, глупый вопрос, но что значит 3-битный чип? каждая ячейка памяти может хранить не только бинарные значения 0/1, но ещё и значение 2?
Подождите-ка. Эти «космические скорости» — это не скорость, которую должен развить космический корабль. Это скорость, с которой минимально достаточно запустить с земли предмет, чтобы вывести на орбиту (1 — вокруг Земли, 2 — вокруг Солнца, 3 — в межзвёздное пространство). Например, катапультой выкидывать объект на орбиту (представьте себе, какое ускорение будет!). По указанной ссылке же и написано: «Предполагается, что после приобретения телом этой скорости оно более не получает негравитационного ускорения (двигатель выключен, атмосфера отсутствует).»
Что запретит покоящемуся на земле телу с ускорением в 1,05 «же» покинуть Землю? Ничего. Потихоньку вылетит на орбиту, на 100 км поднимется за 24 минуты, на тысячу км за 1 час 15 минут (h = (a-g) * t ^ 2).
Единственно что — даст ли сабжевый двигатель такое ускорение (больше 10 м/с^2) для корабля массой 150 тонн.
Потому что очень классный мастер-класс. Превосходный. Не все же посещают все возможные конфы, так смогут послушать хоть на каком-нибудь
но недоступно, что он планирует сделать через секунду…
поправочка:
var enemyCode = ev.scannedRobot.prototype.onIdle;
Интересно, изнутри робота есть ограничения на доступный код? Можно ли получить код робота противника и проанализировать его (например, для расчёта упреждения)?
По событию onScannedRobot(e) можно получить ссылку на обнаруженного робота e.robot, и у него уже получить код:
Robot.prototype.onScannedRobot = function(ev) {
var r = ev.robot;
var enemyCode = ev.scannedRobot.onIdle;
r.rotateCannon( analyzeEnemyMovement(enemyCode) );
r.fire();
//…
};

Понятно, что функция analyzeEnemyMovement получится непростой, но всё же…
Получается, самые главные лентяи — авторы современных продвинутых IDE.
Да, я понял уже. Нам это практически ничем не может повредить.

Но интересен сам факт, упомянутый в той передаче, что современная наука не может пересадить ОДИН ген, а пересаживается сразу довольно большой участок ДНК. Утверждается, что кроме требуемого гена переносится ещё несколько с неизвестным эффектом.
Я хотел уточнить, не встречались ли вы с такими фактами. Может, там в передаче вообще нагнали (любят телевизионщики это дело) и уже умеют точечно перемещать конкретные гены (о чём вы в статье и говорите).
А, да, я понял, вы правы. Я что-то забыл, что у нас всё «в котёл» попадает…
Там в программе говорилось, что проблема может быть в самой ДНК с обрывком, торчащим в середине, что они будут химически активны и смогут разрушать окружающие молекулы. Что приведёт к болезням того ГМ-организма.
Вот, то что надо! Спасибо! Тоже думал про события…
Интересный плагин, спасибо, попробую попользоваться.

Если в форме регистрации есть второе поле с паролем для проверки — можно ли сделать так, чтобы при генерации пароля второе поле автоматически тоже заполнялось?

Кстати, тот плагин simplePassMeter (который с «more»), зря вы сразу его отсеяли, очень даже неплохой. У него есть пару интересных фишек — проверки matchField (указываем поле с pass2, чтобы оба введённых пароля совпадали) и noMatchField (указываем поле с логином, чтобы не совпадали). Самый большой недостаток — плохая модульность, сложно переводить и ещё сложнее сделать его мультиязычным.
Спасибо за статью, отлично!
Я примерно так всё и представлял, аргументация и методичность рассмотрения темы понравились.
Не знал такие подробности про селекцию.

Я вообще считаю, что без ГМ невозможно решить проблему голода на земле, особенно с учётом продолжения увеличения населения нашей планеты. Исследования генной инжинетрии не просто хорошо бы продолжать, их необходимо продолжать.

В одной передаче про ГМО (не помню, какая именно, вроде «Среда обитания», но там не было «ужас-ужас») была интересная инфа. Какой-то профессор говорил, что современные методы перемещения генов несовершенны, невозможно взять именно один ген и пересадить только его. При перемещении у донора вырезается целый кусок ДНК и пересаживается реципиенту. Причём кусок отрезается не ровно «по границе генов», а как придётся, от чего в итоговой ДНК могут появиться оборванные цепочки — свободные радикалы, имеющие ненулевой электрический потенциал и химическую активность.
Именно это я вижу как наибольшую опасность. Не сами ГМО, не гипотетическое «свиное рыло от ГМ-свниниы», а повышенную аллергичность (особенно для аллергиков).
Хотя, в случае «жёсткой» селекции должны появляться такие же «хвосты» из радикалов…
Интересно было бы услышать мнение топикстартера по этому поводу.
Классная статья, спасибо! Есть один вопрос.
В файле /etc/nginx/templates/php параметр
fastcgi_pass unix:/tmp/wwwpool.sock;
этот конфиг подходит, если nginx стоит на той же машине, где и php-fpm. Если php-fpm на другой машине, то нужно писать
fastcgi_pass 10.0.0.1:9000;

А что делать, если используется несколько машин с php через upstream? Можно ли написать так:
upstream backend-php {
server 10.0.0.1:9000;
server 10.0.0.2:9000;
}

fastcgi_pass backend-php;
Есть интересный сервис xeround.com/lp/free-cloud-database/ — бесплатный облачный хостинг MySQL, как они говорят. Я не нашёл у них, за что деньги брать собираются и какие ограничения. Может, уже после регистрации скажут?
К сожалению, не могу проверить.
Я себе поставил на сервер систему виртуализации Proxmox (была на хабре пара статей о ней. Коротко — класс!), которая поддерживает OpenVZ- и kvm-виртуализацию. Но у меня только одна машина, поэтому миграцию не могу попробовать… А хотелось бы.
Но по прикидкам — нужно записать память в файл, передать по сети на соседнюю машину и там распаковать обратно в память. Пару секунд сохранять память, чуть дольше передавать и там ещё пару секунд запускать.
В общем, несколько секунд, вряд ли больше 2-3 минут. Но зависит от объёма памяти.
По крайней мере в технологии OpenVZ возможен перенос процессов на другую физическую машину без потери сетевых соединений.
ru.wikipedia.org/wiki/OpenVZ#Чекпоинтинг_и_миграция_на_лету
>Так как все детали состояния VE, включая открытые сетевые соединения, сохраняются, то с точки зрения пользователя VE процесс миграции выглядит как задержка в ответе: скажем, одна из транзакций базы данных заняла больше времени, чем обычно, и далее работа продолжается как обычно; таким образом, пользователь не замечает, что его сервер баз данных работает уже на другом физическом сервере.

Information

Rating
Does not participate
Location
Саратов, Саратовская обл., Россия
Date of birth
Registered
Activity