March 4th, 2011

humster

наружная отделка дома

строительство и отделка деревянных домов!


Недавно в интернете нашел очень интересное предложение по теме наружная отделка дома которая на данный момент очень актуальна для меня! Я время от времени провожу курсирование в интернете и замечаю интересные предложения по данной тематике.Если вам интересно то вы свободно можете тоже воспользоватся данным предложением.
Современные технологии обладают несколькими способами отделки фасадов: от облицовки различными материалами до окраски, защищающей поверхности стен от разрушения под воздействием атмосферного влияния.
Облицовка фасадов - может быть двух типов: так называемая "мокрая" облицовка, с приклеиванием облицовочного материала при помощи различных клеев и растворов, и пространственно-объемные фасады, когда облицовочные материалы устанавливают на относе от стены, зачастую с применением дополнительных стоек-Каждый из этих методов обладает определенными декоративными возможностями, позволяя получить либо гладкую поверхность стен, либо объемную, состоящую из отдельных навесных элементов-Первый тип облицовки для деревянных домов практически не пригоден, так как в процессе выполнения работ древесина набирает влагу, изменяя свои геометрические размеры. Поэтому облицовку деревянных стен чаще выполняют с вентиляционными промежутками, усиливая теплотехнические характеристики ограждающих конструкций.Традиционная кирпичная кладка раскрывает при облицовке фасадов практически неограниченные возможности. На одном фасаде можно варьировать оттенками, типами поверхностей, формой и габаритами кирпича. Благо, для этого выбор достаточно широк, так как к услугам российского потребителя предоставлены десятки видов продукции. Кирпич невелик по размерам, что открывает большие возможности в плане комбинаций и форм. Даже стандартный кирпич позволяет выполнить фасонную кладку, достигая индивидуальности фасадов. Но современная промышленность выпускает обожженные кирпичи нестандартной формы, позволяющие достигать действительно неповторимых результатов. Округленные кирпичи и кирпичи со скошенными формами используют в карнизах, закруглениях углов, обрамлениях оконных и дверных проемов, что позволяет добиться смягчения общего облика фасада.

humster

горячие туры

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


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



Ответ

Возможно, ответить на этот вопрос проще, если вместо слова «логика» использовать слово «знание». Логика — это любое знание о коде, или о том, как должен вести себя код. Можно ещё сформулировать так: «логика» — это всё, что вам хотелось хоть раз откомментировать.

Пример

Возьмём для примера класс Account, который я недавно откопал в своём проекте.

Было это так. В один прекрасный день у нас в офисе отрубился интернет на пару часов. Работать я фактически не мог — ну там, svn, jira, база знаний и прочее не были доступны. И решил я в качестве упражнения написать юнит-тест для какого-нибудь класса. И наткнулся на Account:

public class Account
{
// Negative amount means that account is prepaid
private BigDecimal amount;
public BigDecimal getAmount() {
return amount;
}

// И ещё два десятка геттеров и сеттеров
}


Казалось бы, что тут тестировать? Где IF'ы? Где тут логика? Казалось бы, нет её, и тестировать нечего. Я уже хотел было бросить этот класс и найти что-нибудь посложнее, как вдруг заметил комментарий около переменной amount:
Negative amount means that account is prepaid




Горящие туры в Египет, Горящие туры в Болгарию, Горящие Туры в Турцию. Бюро Активного отдыха «SamaLёt» горящие туры
Недавно мне попалось предложение горящие туры и мне оно очень понравилось!
humster

горящие туры красноярск

Это что ещё такое?
Получается, что «amount» — это суммарная задолженность данного клиента, а если клиент внёс предоплату, то эта «задолженность» со знаком минус. Ну вот, это уже какое-то знание о коде. Попробуем-ка превратить этот комментарий в юнит-тест:

public class AccountTest
{
@Test
public void negativeAmountMeansThatAccountIsPrepaid() {
Account prepaidAccount = new Account(-123);
assertTrue(prepaidAccount.isPrepaid());
}
}


Раз мы проверяем случай негативного «amount», хорошо бы проверить и случай позитивного:
@Test
public void positiveAmountMeansThatAccountIsInDebt() {
Account indebtAccount = new Account(456);
assertFalse(indebtAccount.isPrepaid());
assertTrue(indebtAccount.isInDebt());
}


Вот так ненароком у нас возникло два новых метода isPrepaid и isInDebt, реализация которых, конечно, очевидна:
public class Account
{
private BigDecimal amount;
public boolean isInDebt() {
return amount > 0;
}
public boolean isPrepaid() {
return amount < 0;
}
}


Вот видите, уже и IF'ы появились в коде!
Следующая мысль, которая должна при этом прийти в голову: наверное, эти IF'ы уже были где-то раньше?

Пришлось немножко поискать, но это того стоило. Оказалось, что эти IF'ы действительно были в коде, причём не где-нибудь, а в JSP-файле, то есть в слое «view», в котором по определению никакой логики быть не должно:

<%-- Positive amount means that account is in debt %-->

Оплатите задолженность!


Предоплата



Опаньки, как интересно! Вот и мой второй тест-кейс всплыл. Как замечательно. Теперь, поскольку у нас есть методы isInDebt и isPrepaid, мы можем убрать логику из JSP:


Оплатите задолженность!


Предоплата



Стало лучше? Я думаю, что стало. Это уже чуть больше похоже на инкапсуляцию — скрытие реализации от посторонних глаз. Только класс Amount знает, в каком случае клиент должен или не должен денег. Никто больше в целом мире не знает, как это происходит — клиент получает уже готовое решение с помощью методов isInDebt и isPrepaid. Теоретически значения «долг» и «предоплата» вообще могут храниться в разных колонках базы данных, или даже вообще в разных таблицах и вообще в разных базах. Теперь благодаря наличию двух методов эта логика спрятана (инкапсулирована) в классе Account.


Для вас у меня есть Горящие туры из Красноярска по низким ценам.Обращайтесь буду рад помочь!
humster

аза отдыха красноярск

В php есть интересная особенность тернарного оператора — специфический и уникальный порядок выполнения.

$ python -c "print 1 if true else 2 if true else 3 if true else 4 if true else 5"
1

$ node -e " true ? 1 : true ? 2 : true ? 3 : true ? 4 : 5"
1

$ perl -e "print true ? 1 : true ? 2 : true ? 3 : true ? 4 : 5"
1

$ ruby -e "print true ? 1 : true ? 2 : true ? 3 : true ? 4 : 5"
1

$ php -r "print true ? 1 : true ? 2 : true ? 3 : true ? 4 : 5;"
4
Java и C++ тоже вернут 1


А какая вообще разница?

Я знаю об этом интересном нюансе довольно давно, но буквально вчера обнаружил ошибку в одном из открытых исходников: автор явно не знал об этом нюансе и попался. Потому, данная статья служит всего-лишь предупреждением. Ведь, если программист ожидает от php такого же поведения, как от других языков — может попасть в халепу.

Такой приём очень удобный для задания значений, зависимо от условий. Изящная замена if-else. Например:
value = isCondFirst() ? valueFirst() :
isCondSecond() ? valueSecond() :
isCondThird() ? valueThird() :
valueDefault();

/********** Вместо **********/

if (isCondFirst()) {
value = valueFirst();
} else if (isCondSecond()) {
value = valueSecond();
} else if (isCondThird()) {
value = valueThird();
} else {
value = valueDefault();
}


Как избежать ошибки?

Первый способ — не использовать тернарный оператор в php.
Второй — прямо указывать порядок выполнения с помощью скобок:

$ php -r "print true ? 1 : (true ? 2 : (true ? 3 : (true ? 4 : 5)));"
1

Чем-то напоминает Лисп, не так ли?

Почему оно вообще так происходит?

Давайте разберемся в порядке выполнения тернарного оператора на примере JavaScript vs PHP
Напишем два тестовых скрипта, чтобы понять, как работает каждый из языков.

На всякий случай поясню, что при $foo = $lambda('fooMsg', 'fooReturn'), $foo содержит в себе функцию, которая при вызове выведет в консоль сообщение 'fooMsg' и вернет значение 'fooReturn'

$ cat ternary.js
var lambda = function (logMsg, returnValue) {
return function () {
console.log(logMsg);
return returnValue;
};
};

var cond = {
first : lambda('cond.first' , true),
second: lambda('cond.second', true),
third : lambda('cond.third' , true)
};


var value = {
first : lambda('value.first' , 'first'),
second : lambda('value.second' , 'second'),
third : lambda('value.third' , 'third'),
default: lambda('value.default', 'default')
};

console.log( 'result: ',
cond.first() ? value.first() :
cond.second() ? value.second() :
cond.third() ? value.third() : value.default()
);


$ node ternary.js
cond.first
value.first
result: first

$ cat ternary.php
$lambda('cond.first' , true),
'second'=> $lambda('cond.second', true),
'third' => $lambda('cond.third' , true),
);

$value = array(
'first' => $lambda('value.first' , 'first'),
'second' => $lambda('value.second' , 'second'),
'third' => $lambda('value.third' , 'third'),
'default'=> $lambda('value.default', 'default'),
);

echo 'result: ' . (
$cond['first']() ? $value['first']() :
$cond['second']() ? $value['second']() :
$cond['third']() ? $value['third']() : $value['default']()
) . PHP_EOL;

?>

$ php ternary.php
cond.first
value.first
value.second
value.third
result: third


Какой из этого результата можно сделать вывод. Javascript разбирает тернарный оператор вполне логично. Сначала проверяет самое левое условие. Если оно верно, то выполняет и возвращает левую часть после первого двоеточия, если не верно, то правую.
(cond.first() ? value.first() :
(cond.second() ? value.second() :
(cond.third() ? value.third() :
(value.default()))));

/********
* ===>
*/

true ? 'value.first' : /* ignored */;




Бюро активного отдыха «SamaLёt» предоставляет размещение в базах отдыха Красноярска. Базы отдыха Красноярска, описание, Цены, Условия.

Для вас базы отдыха красноярска недорого!
humster

dvd player LG

Воодушевленные ростом стартапов Силиконовой Долины и собственным опытом работы в сети мы решили собрать все свои идеи воедино и сделать очень крутой стартап, который затмит Google и Facebook. Сказано — сделано. Зачем мелочиться? Замахнемся по максимуму, а там глядишь что-нибудь да выйдет.

Помимо самой идеи были быстро проштудированы найденные в сети рассказы об общении с инвесторами, на основе чего сделан elevator-pitch, нарисована презентация и написан примитивный бизнес-план. Здорово. Пора искать того, кто даст деньги на идею.


Seed-стадия — Не венчурные инвесторы.


У кого в России много денег? Конечно же государственные компании, заводы и прочие народные ресурсы. После недолгого обзвона знакомых были выявлены некоторые направления движения, начиная от ЛенЭнерго и заканчивая директорами крупных заводов. (Кстати примите во внимание тот факт, что на самом деле у вас тоже есть куча нужных знакомых. Ищете инвестора, не поленитесь поднять трубку телефона и обзвонить всех старых друзей, наверняка нужные выхода есть6 вы просто не в курсе) Модный тренд в направлении Интернета уже сложился в умах наших людей, но как и что там происходит пока до конца не осознал никто.

Первые несколько встреч — обкатка презентации, отлов собственных ошибок и полное разочарование в плане инвесторов, что-то явно идет не так.

Наконец удача. Встреча века, мы готовимся к презентации, которая может решить судьбу нашего проекта. Речи заучены, мандраж, идея раскрыта и мы ожидаем реакции.

— Что ж идея очень интересная, что вы хотите?
— 2,000,000 USD на разработку.
— Что я получу взамен?
— 30% проекта.
— Я должен подумать.

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

Seed-стадия — Бизнес-ангелы, конкурсы стартаперов и венчурные фонды


Удивительно, но всегда находишь нужную информацию уже после того, как она была нужна. Так мы прочли книгу Гая Кавасаки сразу после презентации и обнаружили целый ряд ошибок как в расчетах, так и в подаче материала, но дергаться уже не имело смысла.

Презентация была изменена, доработана концепция проекта, пересчитаны цифры, они наконец перестали походить на фантастическую сагу о виртуальных мирах и баснословных прибылях.

Но наши связи закончились и мы перешли к следующей стадии поиска.

Мы написали во все бизнес-анегельские и венчурные фонды, до которых дотянулись и начали ходить на всякие сборища стартаперов и следить за конкурсами. Удивительно, количество всяких инкубаторов, конкурсов и сборищ для стартаперов растет как грибы после дождя, но почему-то они очень странно выглядят.

Начнем с того, что большинство выступающих на сборищах стартапов далеки от харизмы Стива Джобса и явно поленились изучить простейшие правила составления презентаций и выступлений. Экспертный совет зачастую состоит из людей, которые имеют отношение хорошо если к 1-2 выступающим, а потенциальных инвесторов там днем с огнем не сыщешь, потому что им нужны проекты в стадии роста, а на этих выступлениях в большинстве своем или seed-проекты или прототипы. Конкурсы тоже выигрываются уже рабочими и развивающимися проектами, даже в seed категориях. Так что если вы хотите засветить ваш проект, вам как минимум нужен уже прототип.

Бутстрэппинг


О это сладкое слово бутстрэппинг. Вода, рис, черствый хлеб и сутки работы перед монитором, тысячи строк кода… Никогда не думал, что смогу себе это позволить с женой и маленьким ребенком, ан нет, если загорелся идеей, то сможешь все. Какие-то пара месяцев работы, окончательно сформированная концепция, первые наметки на прототип и выход фильма «Социальная сеть».

Удивительно, как кинематограф может изменить мировоззрение. Звонок от одних из потенциальных инвесторов, с которыми общались еще летом.

— Как там ваш проект?
— Работаем над ним.
— Может встретимся, поговорим?

Уже на первых минутах встречи становится понятно, лавры Фейсбука не дают этим людям заснуть. Готовы инвестировать небольшую сумму денег, хотят меньше 50% проекта, готовы привлекать новых инвесторов и уже есть наметки. Что ж, это шанс как минимум начать развиваться быстрее. «По рукам!» — и вот он офис, новые сторудники, брейнштормы, глобальная переработка интерфейса, приличный дизайн, запущенный прототип, обкатка на живых людях и новые встречи с более крупными инвесторами.

А при чем тут название статьи?


Все очень просто.

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

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

Если смотреть с точки зрения венчурных инвесторов, фондов и бизнес-ангелов (если таковые вообще есть):
— Хммм, у вас идея? Отлично, приходите, когда начнете зарабатывать на ней деньги…
— О вы собрали увлеченную команду и даже написали прототип? Здорово, а есть аналоги в мире? Нет? Так эта идея не пойдет.
— Вы зарабатываете большие деньги на своем проекте? Ну тогда мы идем к вам.

Подводя итоги


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

Да я не в розовых очках и понимаю, что любой человек на Западе не будет инвестировать миллионы в небольшой процент проекта, который оформлен только на бумаге. Но бутстрэппинг здесь в России и там — это разные вещи. Где наши Питеры Тили и Энди Бехтольшаймы? Те, кто поверят в новую команду в ее проект и рискнут дать на это денег, понимая, что могут потерять их?

Давайте взглянем правде в лицо и посмотрим к чему нас склоняют сами инвесторы. Они готовы инвестировать деньги в уже обкатанную на мировом рынке идею. Какие российские стартапы реально засветились в последнее время? KupiVIP? Darberry/Groupon? Vkontakte? Нас толкают делать клоны, доводить их до стадии роста и тогда получать какие-то деньги, а дальше в идеале продаваться тем, кто крупнее и сильнее.

Те несколько российских IT компаний, которые действительно монстры мирового рынка — Яндекс, Касперский, ну еще Parallels, есть кто-то еще? Они были построены тогда, когда вообще не шел разговор о венчурных инвестициях в России. Эти проекты вымучивали годами.

Удивительно, но я бы выделил отдельно разве что Терновского с его Чатрулетом, несмотря на мертворожденное дитя он умудрился поднять такую шумиху вокруг проекта, что я было даже поверил в то, что и у нас может родиться что-то свое, но проект был не того уровня, к сожалению и надо было его продавать поскорее, пока за него предлагали ощутимые деньги. Но тут не мне судить.

Таким образом хотим мы или нет, но в ближайшие несколько лет проблема Российских стартапов — совсем не нехватка хороших идей, а нехватка ангелов. Тех, кто готов будет выделить 10-50 тысяч, которых вполне хватит практически любому проекту, чтобы пройти стадии seed/прототип/стартап. И пока не будет сформирован именно этот пласт, мы будем продолжать плодить клонов западных успешных компаний, потому что на это деньги дадут.



Мне здесь недавно на глаза попалось очень интересное предложение dvd плееры LG недорого к тому же.Это заинтересовало меня и я решил приобрести.Для ознакомления рошу проследовать по вышеприведенное ссылке.Это очень интересное и заманчивое предложение.Не проходите мимо обращайтесь и вам всегда будут рады!
humster

купить картину в москве

Недавно решил купить картину в москве недорого! И для этого залез в интернет и к моему удивлению нашел очень интересную составляющую а именно этот сайт вышеприведенный.Мне понравилось это предложение и я подумал а почему бы не воспользоваться им.Купить картину в москве можно свободно для этого ни надо ничего сверхестественного и выдающегося.
Как порадовать близкого человека, партнера, друга, подарив ему подарок незабываемый и оригинальный? Можно купить картину, соответствующую вкусу получателя презента. вышеназванный интернет магазин предлагает полотна, которые сделают акцент на Вашем чувстве тонком стиля. Продажа картин для любого офиса или дома – это gallerygd.ru! Для стильного завершения композиции gallerygd.ru багет подобрать поможет – от элитного до недорогого.

Если вас заинтересовало предложение , То вы свободно в любое рабочее время можете обращаться к по ссылке.Вам всегда будут рады помочь и оказать помощь .Помогут выбрать картину качественную и не дорого , а так же доставят ее вам по вашему желанию в любой район москвы.Ждем вас у gallerygd.ru .
humster

хозяйка

В интернете все больше и больше появляется реально интересных сайтов.недавно я набрел на интересный ресурс хозяйка , где рассказывалось о том как быть хорошей хозяйкой.Для этого надо почаще ознакамливаться данной тематикой на интернет ресурсах.Там много всего нового можно подчерпнуть для себя.Если вы реально хотите быть интересной и продвигающейся хозяйкой то заходите обязатеьно на сайт и читайте и узнавайте много всего в свое удовольствие.Он для вас впринципе и был создан.Вконце хотелось бы заметить что вы могли бы заведомо посоветовать его своим друзьям и знакомым которым тоже интересна эта тематика.Будьте хорошими хозяйками и развивайтесь в этом направлении!



Для улучшения Отношения с любимым вам обязательно стоит сходить по заданой ссылочке.вы приобретете много всего интересного для себя и ваших близких так что не боитесь заходите в гости рады будем!
humster

круиз карибское море

Началось все с того, что я откопал в полке с железками USB модем huaweiE1550, купленный мной прошлым летом для организации резервного канала Интернет. Проработал он тогда недолго и за ненадобностью был убран в «закрома» до лучших времен. Первое что сделал, разлочил его для работы с МТС (так уж сложилось исторически, что я предпочитаю именно этого оператора). Изначально в голову пришла идея отправки смс с предупреждениями от Nagios, вместо почты. Бегло пробежавшись по Интернетам, наткнулся на smsd демона для отправки/приемки смс-ок из пакета smstools. После прочтения документации по этому зверю, в голову пришла идея о том, что можно принимать сообщения с нужных телефонов, с командами для сервера. Так и родилась идея «Управлять сервером посредством СМС», которая может применяться для чего угодно: перезагрузить сервер, выключить его, перезапустить демона, сбросить кеш, открыть порт на фаерволе для удаленного подключения по ssh.

Настраиваем модем

Для начала необходимо подружить наш модем и Linux (кстати, я использую Centos 5.5). Втыкаем модем в один из свободных usb-портов. Первое, с чем приходится столкнуться, это то что модем определяется как CD-ROM, а с CD-ROM-а как известно смс-ки не отправишь и тем более не получишь. Для того чтоб это дело нам поправить, необходимо всего лишь скормить модему эту команду: AT^U2DIAG=0 (0 – только modem, 1 – modem + cd-rom, 255 – modem + cd-rom + cardreader, 256 – modem + cardreader). Если у вас есть под рукой компьютер, с установленной Windows, то открывайте HyperTerminal, подключайтесь к модему, вводите команду: AT^U2DIAG=0 и пропускайте следующий шаг.

Итак, заставляем модем быть модемом, а не каким-то CD-ROM-ом под Linux. Для начала необходимо поставить пакеты usb_modeswitch и minicom yum --enablerepo=rpmforge install usb_modeswitch minicom, затем создаем/правим /etc/usb-modeswitch.conf:
DefaultVendor = 0x12d1
DefaultProduct = 0x1446
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"

И перетыкаем модем в другой порт, необходимо подождать 5-10 секунд (необходимо чтоб модем определился как CD-ROM) и от root-а запускаем usb_modeswitch и видим примерно следующие:
Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 004 on bus 007 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("usb-storage")
OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
Vendor String: HUAWEI
Model String: Mass Storage
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Device is gone, skipping any further commands
-> Run lsusb to note any changes. Bye.

Должны появится новые устройства ttyUSB
ls /dev | grep ttyUSB:
ttyUSB0
ttyUSB1
ttyUSB2


Вам знакомо путшествие или круиз карибское море ?Что может быть лучше для вас чем это умопомрачительное предложение!
humster

головное устройство ford

Запускаем minicom –s настраиваем последовательный порт на работу с /dev/ttyUSB0,
Выходим из настроек, запускается терминал, затем необходимо отдать команду AT^U2DIAG=0 и получить в ответ ok

Процедура превращения модема в модем закончена, преступаем к установке/настройке smstools.

Smstools

Как ни странно, в огромных репозитариях rpmforge не нашлось места такому наиполезнейшему пакету как smstools. Но не беда, на просторах Интернета и на сайте производителя её достаточно. Я нашел пакет: smstools-3.0.10-4.el5.i386.rpm и «воспользовался» им rpm –i smstools-3.0.10-4.el5.i386.rpm. Настраиваем smstools, файл /etc/sms.conf:
devices = huaweiE1550
logfile = /var/log/smsd.log
loglevel = 2

[huaweiE1550]
device = /dev/ttyUSB0
baudrate = 115200
rtscts = no
init = at+cpms="sm","sm",""
incoming = yes
incoming = high

настройки примерно понятные, запускаем демона, service smsd start и проверяем сие чудо: smssend 9128141111 ‘test message’ (не понимает кириллицу, необходимо конвертировать в UCS-2BE, в рамках этой статьи рассматривать не буду) и ждать смс-ки на мобильник. Если заветное сообщение не пришло, ставим в конфиге loglevel = 7 и идем за бубном. У меня поднялось все с первого раза.

smsctrl daemon

Итак разговаривать мы умеем, необходимо научиться слушать!
Если отправить смс-ку на номер симки в модеме, через некоторое время smsd создаст файл в /var/spool/sms/incoming/huaweiE1550.* примерно следующего содержания:
From: 79128141111
From_TOA: 91 international, ISDN/telephone
From_SMSC: 79126313431
Sent: 11-03-02 08:05:46
Received: 11-03-02 08:08:09
Subject: huaweiE1550
IMSI: 2500XXXXXXXXXXX
Report: no
Alphabet: ISO
UDH: false

Test message
Соответственно эти файлики мы и будем проверять на наличие команд для управления сервером. Для этого два способа 1-й небольшой демон на bash-е, 2-й встроеный обработчик событий в smsd.

1-й способ

#!/bin/sh
# SMSCtrl
# chkconfig: - 55 45
# description: Sms control, Egor N. Zuskin, 2011, http://www.it2k.ru/projects/smsctrl

. /etc/rc.d/init.d/functions

DAEMON=smsctrl
REFRESH_TIME=15

COMMAND_CHAR="#"
INCOMING_DIR=/var/spool/sms/incoming
ALLOW_PHONES="79128141111 79128141112"
SEND_BACK_REPORT=YES

to_log(){
text=$1
export LANG=en_EN
log_date=`date "+%b %d %H:%M:%S "`
log_host=`hostname -s`
echo "$log_date $log_host $DAEMON: $text" >> /var/log/$DAEMON.log
}

start() {
echo -n "Starting $DAEMON: "
$0 --daemon && success || failure
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/$DAEMON
to_log "Starting ..."
return $RETVAL
}

stop() {
# Stop daemon.
echo -n "Shutting down $DAEMON: "
killproc $0
RETVAL=$?
to_log "Stopping ..."
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$DAEMON
}

run() {
for File in $(ls $INCOMING_DIR); do
Allow=0
for Phone in $ALLOW_PHONES; do
cat $INCOMING_DIR/$File | grep "From: $Phone" > /dev/null 2>&1
[ $? -eq 0 ] && Allow=1
done;
[ $Allow -eq 0 ] && continue

cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR"
[ $? -ne 0 ] && continue

FromPhone=`cat $INCOMING_DIR/$File | grep "From:" | cut -d " " -f2`

command=`cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR" | cut -d "$COMMAND_CHAR" -f2`
to_log "Incoming command: $command from $FromPhone"
out=`$command`

if [ "$SEND_BACK_REPORT" = "YES" ]; then
smssend $FromPhone "$out"
to_log "Send sms to $FromPhone: $out"
fi
rm -f $INCOMING_DIR/$File
to_log "Deleting file $INCOMING_DIR/$File"
done
}

daemon() {
exec >/dev/null
exec 2>/dev/null
(
trap "" TERM
while [ true ]; do
run
sleep $REFRESH_TIME;
done;
)&
}


case "$1" in
--daemon)
daemon
;;
run)
run
;;
start)
start
;;
stop)
stop
;;
restart)
$0 stop
$0 start
exit $?
;;
status)
status $DAEMON
echo
;;
*)
echo "Usage: $DAEMON {start|stop|restart|status|run}"
exit 1
esac

exit 0


COMMAND_CHAR="#" – Признак команды
INCOMING_DIR=/var/spool/sms/incoming – Директория для входящих смс-ок
ALLOW_PHONES="79128141111 79128141112" – Номера с которых разрешены команды
SEND_BACK_REPORT=YES – Отправлять вывод смс-ой обратно

Чтобы не заморачиваться всякими пас фразами и т.д. было принято решение принимать команды только от определенных номеров (не проверял как будут выглядеть смс-ки от подменных номеров) и делать проверку на наличие спец символа перед командой, дабы отгородить от случайной смс-ки.

Сохраняем демона в /etc/init.d/smsctrl, chkconfig --add smsctrl, service smsctrl start

2-й способ

Дописываем в /etc/smsd.conf:
eventhandler = /root/bin/sms_event.sh
создаем /root/bin/sms_events.sh
#!/bin/bash

COMMAND_CHAR="#"
ALLOW_PHONES="79128141111 79128141112"
SEND_BACK_REPORT=YES

[ "$1" = "RECEIVED" ] || exit 0

to_log(){
text=$1
export LANG=en_EN
log_date=`date "+%b %d %H:%M:%S "`
log_host=`hostname -s`
echo "$log_date $log_host $text" >> /var/log/smsctrl.log
}

File=$2

Allow=0
for Phone in $ALLOW_PHONES; do
cat $File | grep "From: $Phone" > /dev/null 2>&1
[ $? -eq 0 ] && Allow=1
done;

[ $Allow -eq 0 ] && exit 0

cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR"
[ $? -ne 0 ] && exit 0

FromPhone=`cat $File | grep "From:" | cut -d " " -f2`

command=`cat $File | grep "$COMMAND_CHAR" | cut -d "$COMMAND_CHAR" -f2`
to_log "Incoming command: $command from $FromPhone"
out=`$command`

if [ "$SEND_BACK_REPORT" = "YES" ]; then
smssend $FromPhone "$out"
to_log "Send sms to $FromPhone: $out"
fi
rm -f $File
to_log "Deleting file $File"


Проверка

Создаем файлик /root/bin/test.sh следующего содержания:
#!/bin/bash

ls –la /etc | grep $1

Затем берем в руки телефон и посылаем смс с текстом #/root/bin/test.sh sms на заветный номер и смотрим в лог tail –f /var/log/smsctrl.log, если все хорошо — в ответ прилетит смс-ка вида: smsd.conf

Заключение

У меня данное решение, по смс-ке открывает ssh порт для входящих подключений. Я думаю, это не единственное применение, достаточно включить немного воображения.

Полезные ссылки для настройки huaweiE1550 и smsd
1: SMSTools 3 — шлюз для отправки SMS
2: Нужна статья про смс-центр с модемом Huawei E1550?
3: Как «приручить» МТС-модем Huawei E1550

Спасибо за внимание, с нетерпением жду Ваших комментариев.


Вы пробовали уже головное устройство ford с его новыми возможностями!ЕСли нет то вам стоит обязательно попробывать.
humster

Страна заходящего солнца?

Originally posted by katoga at Страна заходящего солнца?
23 февраля, День Защитника Отечества. Казалось бы, от кого защищаться в современном мире высоких технологий, Интернета и глобальных инноваций?

Но вот буквально накануне сообщают, что Госдерпатамент США считает справедливыми требования Японии о признании японского суверенитета над четырьмя островами Южно-Курильской гряды. Что это? – Пересмотр итогов Второй мировой войны? Начало нового цикла по территориальному переделу мира? Желание унизить Россию, которую перестали воспринимать как великую державу?

Можно сколько угодно сожалеть по этому поводу, но очевидно одно: никто в мире конкурентной экономики и политики не заинтересован в коренной модернизации России. И рассчитывать на то, что Запад (или Восток) будут нам помогать в Сколково создавать российскую Силиконовую долину как территорию технологического, а затем и цивилизационного прорыва, не приходится.

России может помочь только она сама. Интеллект народа. Воля народа. Стремление к лучшей жизни. Не надо копировать чужие образцы, необходимо создавать свои, национальные. Лучшую в мире систему образования. Лучшую в мире систему академической науки. Самую глубокую культуру, литературу и гуманитарную традицию.

Следующий День Защитника Отечества не должен быть праздником в стране «Заходящего Солнца».


humster

заходящего солнца страна

23 февраля, День Защитника Отечества. Казалось бы, от кого защищаться в современном мире высоких технологий, Интернета и глобальных инноваций?

Но вот буквально накануне сообщают, что Госдерпатамент США считает справедливыми требования Японии о признании японского суверенитета над четырьмя островами Южно-Курильской гряды. Что это? – Пересмотр итогов Второй мировой войны? Начало нового цикла по территориальному переделу мира? Желание унизить Россию, которую перестали воспринимать как великую державу?

Можно сколько угодно сожалеть по этому поводу, но очевидно одно: никто в мире конкурентной экономики и политики не заинтересован в коренной модернизации России. И рассчитывать на то, что Запад (или Восток) будут нам помогать в Сколково создавать российскую Силиконовую долину как территорию технологического, а затем и цивилизационного прорыва, не приходится.

России может помочь только она сама. Интеллект народа. Воля народа. Стремление к лучшей жизни. Не надо копировать чужие образцы, необходимо создавать свои, национальные. Лучшую в мире систему образования. Лучшую в мире систему академической науки. Самую глубокую культуру, литературу и гуманитарную традицию.

Следующий День Защитника Отечества не должен быть праздником в стране «Заходящего Солнца».
humster

scorpions билеты

Особенностью линии «вниз» сети E-UTRAN является использование технологии множественного доступа SC-FDMA (Single Carrier – Frequency Division Multiple Access) c одной несущей частотой и средней мощностью передачи PAPR (Peak-to-Average Power Ratio). Исключение взаимного влияния пользователей достигается введением циклических префиксов и использованием эффективных эквалайзеров в приемных устройствах. Интервал времени передачи TTI в линии «вверх» сети E-UTRAN соответствует TTI в линии «вниз» и равен 0.5 мс. Возможно использование увеличенного TTI для специальных типов соединений (услуг). Основная конфигурация антенн линии «вверх» при использовании MIMO предполагает использование двух передающих антенн на мобильном терминале и двух приемных антенн на базовой станции.
SC-FDMA представляет собой гибридную схему передачи, которая сочетает низкие значения PAR, присущие системам с одной несущей, таким как GSM и CDMA, с большой длительностью символа и гибким распределением частот OFDM. Принципы генерации сигнала SC-FDMA показаны на рисунке 1, который является фрагментом одного из рисунков отчета 3GPP TR 25.814 об исследовании физического уровня LTE.

Если вам нужны Билеты в театры на концерты, билеты в музеи, спорт площадки, билеты в ленком, билеты в ГКД, Государственный Кремлевский дворец, билеты на лигу чемпионов то вы как раз по адрессу.
Для вас есть scorpions билетыбез посредников и по низким ценам.Просто обращайтесь и мы вам поможем!
humster

printhouse.by

Недавно на глаза попалось интересное предложение от www.printhouse.by и меня оно очень заинтересовало.Я советую каждому это попробывать и посмотреть !Для этого делов то просто проходите по ссылочке и смотрите все то что представленно на сайте !Я думаю это не так тяжело .Если есть желание оставить можете даже коменты в личку.И вам приятно и овцы сыты.Мне так же хотелось бы поблагодарить создателя этого ресурса за уникальный контент который представлен на сайте.Спасибо большое!
C удовольствием для вас Печатный дом работает!
humster

фотография свадебная

У меня есть для вас уникальное предложение свадебная фотография недорого.


Love Story – фото история Вашей любви. Фотосъемка Love Story стала очень популярна в последние несколько лет, и количество желающих все растет. Это очень чувственные фотографии двух влюбленных людей. В процессе съемки Love Story я делаю фотографии с различных ракурсов, крупные, средние и общие планы, что помогает с одной стороны выгодно показать внешние данные, обаяние и индивидуальность, а с другой раскрыть Ваши чувства и передать их с помощью фотографии. Love Story – первые фотографии, которые станут украшать Ваш семейный альбом.
На данном ресурсе просто уникальные фотографии заходите и сами убедитесь в этом!
humster

ящик для инструментов

Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,
— Шворцинегира? Нет такого!
В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

Такие алгоритмы очень удобно использовать при поиске в базах по спискам людей, в программах проверки орфографии. Зачастую они используются совместно с алгоритмами нечеткого поиска (которые, несомненно, заслуживают отдельной статьи), предоставляя пользователям удобный поиск по именам и фамилиям в различных базах данных, списках сотрудников и так далее.

В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.

Soundex

Одним из первых был алгоритм Soundex, изобретенный еще в 10-x годах прошлого века Робертом Расселом. Этот алгоритм (а точнее, его американская версия) сопоставляет словам численный индекс вида A126. Принцип его работы основан на разбиении согласных букв на группы с порядковыми номерами, из которых затем и составляется результирующее значение. Позднее также был предложен ряд улучшений.

Недавно в интернете попалось интересное предложение на тему ящик для инструментов не дорого!Мне понравилось это предложение так как я давно уже пытаюсь приобрести себе ящик для инструментов специализированный!
humster

Из Москвы ежедневно вывозят более 15000 кг мусора!

Примеры

Оригинальный Soundex:
D341 → Дедловский, Дедловских, Дидилев, Дителев, Дудалев, Дудолев, Дутлов, Дыдалев, Дятлов, Дятлович.
N251 → Нагимов, Нагмбетов, Назимов, Насимов, Нассонов, Нежнов, Незнаев, Несмеев, Нижневский, Никонов, Никонович, Нисенблат, Нисенбаум, Ниссенбаум, Ногинов, Ножнов.

Улучшенный Soundex:
N8030802 → Насимов, Нассонов, Никонов.
N80308108 → Нисенбаум, Ниссенбаум.
N8040802 → Нагимов, Нагонов, Неганов, Ногинов.
N804810602 → Нагмбетов.
N8050802 → Назимов, Нежнов, Ножнов.

В среднем, на одно значение кода Soundex приходится 21 фамилия. В случае же улучшенной версии Soundex, к одному и тому же коду преобразуются всего 2-3 фамилии.

NYSIIS

Разработанный в 1970 году как часть системы «New York State Identification and Intelligence System», этот алгоритм дает несколько лучшие результаты относительно оригинального Soundex, используя более сложные правила преобразования исходного слова в результирующий код. Этот алгоритм разработан для работы именно с американскими фамилиями.

Алгоритм вычисления кода NYSIIS
Преобразовать начало слова по следующим правилам:
MAC → MCC
KN → N
K → C
PH, PF → FF
SCH → SSS
Преобразовать конец слова по следующим правилам:
EE → Y
IE → Y
DT, RT, RD, NT, ND → D
Затем все буквы, кроме первой, преобразуются по следующим правилам:
EV → AF
A, E, I, O, U → A
Q → G
Z → S
M → N
KN → N
K → C
SCH → SSS
PH → FF
После гласных: удалить H, преобразовать W → A
Удалить S на конце
Преобразуем AY на конце → Y
Удалить A на конце
Обрезать до 6 символов (необязательный шаг).

Примеры

CASPARAVAS → Каспаравичус, Касперович, Каспирович.
CATNACAV → Катников, Цитников, Цотников.
LANSANC → Ленченко, Леонченко, Линченко, Лунченко, Лямзенко.
PRADSC → Приходский, Проходский, Прудский, Прудских, Прудской.
STADNACAV → Стадников.

NYSIIS преобразует к одному и тому же коду немногим более двух фамилий.

Daitch-Mokotoff Soundex

Этот алгоритм в 1985 году разработали два генеалога — Гарри Мокотофф и Рэнди Дэйч, стремясь достичь лучших, относительно оригинального Soundex, результатов при работе со восточно-европейскими (в том числе русскими) фамилиями.
Этот алгоритм имеет мало общего с оригинальным Soundex, разве что результатом всё так же остается последовательность цифр, однако теперь первая буква также кодируется.

Он имеет значительно более сложные правила конверсии — теперь в формировании результирующего кода участвуют не только одиночные символы, но и последовательности из нескольких символов. Кроме того, результат вида 023689 обеспечивает около 600 тысяч различных вариаций кода, что вкупе с усложненными правилами уменьшает количество «лишних», т.е. «ложноположительных» слов в результирующем множестве.

А вы знаете что Из Москвы ежедневно вывозят более 15000 кг мусора! ? Это информация шокировала меня я даже не знал что сказать по этому поводу!Просто замолк и все!Вы только подумайте и представьте сколько это денег!
humster

валютный рынок,

Ключевые изменения:
Обновление версии ядра (у зена это всегда очень специфичный топик)
Поддержка blktap2
Поддержка Bexar (точнее, наоборот, Bexar поддерживает XCP)
Поддержка RDAC mulipath на уровне XAPI
Локальное кеширование данных сетевых хранилищ
Управляемые автобэкапы машин
Загрузка хостов с сетевых хранилищ (требуется соответствующий HBA)

От себя добавлю (что заметил нового при ковырянии с RC-версиями):
Thin provision на LVM (включая iscsiolvm)
Поддержка pure virtual networks между хостами (маршрутизация трафика через GRE-инкапсуляцию)
xapi наконец-таки стало устанавливаться как RPM-пакеты, а не как помойка blob-кода в /opt.
Существенная переработка документации
Близится восьмое марта, предусмотрительные граждане уже закупают тюльпаны вагонами, а мы тем временем занимаемся любимым делом — изучаем интересные факты про пользователей поиска.

В течение года пользователи лишь изредка ищут диваны или улицы с названием «8 марта», зато за неделю перед праздником поиску Яндекса задают около 10 миллионов таких запросов. Это очень много – даже на предновогодней неделе задают ненамного больше запросов про новый год – около 13 миллионов. Чаще всего пользователи ищут поздравления и открытки – им посвящены две трети запросов. Подарки ищут намного реже. Это неудивительно — подарки дарятся лишь небольшому кругу близких, а поздравлениями можно порадовать всех прекрасных знакомых.

А вам знакомы лучшие брокеры форексгде вообще находятся ?Или что вы вообще знаете о форекс брокерах? Я думаю всю инфу вы получите пройдя по ссылочке!
humster

камера honda

Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,
— Шворцинегира? Нет такого!
В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

Такие алгоритмы очень удобно использовать при поиске в базах по спискам людей, в программах проверки орфографии. Зачастую они используются совместно с алгоритмами нечеткого поиска (которые, несомненно, заслуживают отдельной статьи), предоставляя пользователям удобный поиск по именам и фамилиям в различных базах данных, списках сотрудников и так далее.

В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.

Soundex

Одним из первых был алгоритм Soundex, изобретенный еще в 10-x годах прошлого века Робертом Расселом. Этот алгоритм (а точнее, его американская версия) сопоставляет словам численный индекс вида A126. Принцип его работы основан на разбиении согласных букв на группы с порядковыми номерами, из которых затем и составляется результирующее значение. Позднее также был предложен ряд улучшений.

Недавно на глаза попалось очень интересное предложение про
камера honda и я сразу заинтересовался! Я много всего интересного там узнал и познавательного если вам интересно то вы свободно тоже можете заходить и обращатться по ссылочке.Спасибо!
humster

кухни эконом кухни эконом класса

Недавно в интернете нашел интересное предложение по запроссу кухни и самое главное что мне понравилось.Если вам интересно то вы можете присоеденятся к этой тематике это интересное занятие .Вам нужна кухня эконом класса? Если это так то высвободно можете присоединятся к нашему сообществу любителей кухни эконом класса.

Бесспорно, кухня – одна из самых важных комнат в любом доме и заменить ее просто невозможно! Кухня – это сердце любого дома, его уют. Кухня – это комната, которая призвана объединять всю семью за столом и дарить только положительные эмоции. Поэтому так важно подобрать для кухни красивый, надежный и качественный кухонный гарнитур.
Стильные, но недорогие готовые кухни эконом класса – это вовсе не несбыточная мечта, просто подобное предложение сложно найти в каталогах современных производителей, но компания «Мос Кухня» - приятное исключение из этого правила.
Среди хозяек распространено мнение, что готовые кухни эконом класса в Москве если и представлены, то они обладают низким качеством, быстро выходят из строя или теряют свой презентабельный внешний вид через некоторое время после использования. Но на самом деле это не так.
Низкая стоимость кухни эконом на заказ объясняется вовсе не простым или немодным дизайном, а использованием более экономичных материалов, которые ничуть не уступают в прочности, надежности и долговечности настоящему шпону (массиву дерева).