Результати пошуку за запитом: обучение c*
Створення підпису в Outlook 2013
Автор: Олександр Марченко
Введение
Довольно редко мы можем себе позволить говорить все то, о чем можем подумать, не только по причине конфликта интересов, но и по причине ценности информации, которую порой лучше накапливать, нежели распространять. Порой бывает, что не хватает даже времени о чем-либо говорить. Но в современном мире, стоит добавить, что обладать временем – это уже большое достижение. Сегодня вся наша жизнь, а особенно в бизнесе – это постоянная динамика. Темп нашей жизни постоянно ускоряется, рабочий день становиться интенсивнее и насыщеннее, а это означает, что стоит расходовать свое время более эффективно.
Многим из вас знакома программа Microsoft Outlook 2013. Но многие ли используют ее возможности правильно и полностью? К примеру, как часто вы пишите письма своим коллегам и заказчикам? По несколько раз на день, и каждый раз вам стоит потратить несколько минут на составление корпоративной или личной подписи. Но почему не стандартизировать этот процесс и не положиться на автоматизацию?
Для этого вам стоит создать шаблон подписи в письмах, а сделать это можно следующим образом.
Перейдите к созданию нового письма путем нажатия на вкладке Главная кнопки Создать сообщение. (в англоязычной версии Home -> New Email)
В открывшемся окне откройте вкладку Сообщение, в группе Включить выберите Подпись и в выпадающем меню выберите Подписи (Message -> Include -> Signature -> Signatures…)
В открывшемся окне вы сможете настроить подписи для ваших учетных записей. Так, в поле Выберите подпись, используемую по умолчанию (Choose default signature), из списка Учетная запись электронной почты (E-mail Account) выберите ту учетную запись, к которой будет привязана текущая подпись.
В списке Новые сообщения (New mesages) вы сможете выбрать подпись, добавляемую в сообщения.
Разумеется, каждый раз, отправляя очередное письмо вашему партнеру, вы не будете добавлять подпись вручную, именно поэтому вы можете настроить отправление новых писем и ответов с предустановленной подписью. Для этого в списке Ответ и пересылка (Replies/forwards) выберите требуемый шаблон подписи.
Для создания новой подписи нажмите на кнопку Создать (New), затем в открывшемся окне укажите название создаваемой подписи.
Затем введите текст новой подписи.
Нажав кнопку ОК, вы сохраните новую подпись в ваших шаблонах и сможете ее использовать в будущем.
В последующих статьях мы познакомимся с другим функционалом Microsoft Outlook 2013 и постараемся упростить ежедневную работу и оптимизировать ваше время.
Основи AngularJS на практиці
Автор: Редакция ITVDN
Введение
AngularJS – фреймворк-библиотека Javascript, разработанная для создания одностраничных приложений на основе MVC (Model-View-Controller) шаблона.
Будем осваивать данную технологию на практике.
Создадим HTML страничку со стандартной структурой. Далее нам нужно преобразовать ее в одностраничное приложение. Для этого подключим AngularJS к своей странице, добавив в
тег с данным кодом:
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
script>
Следующим шагом мы явно укажем на то, что наша страница является AngularJS приложением. Нужно добавить ng-app директиву, которой мы обозначим корневой элемент приложения. Зачастую таким элементом выступает тег или же тег . Добавим эту директиву к :
<!DOCTYPE html>
<html ng-app="">
<head>
<title>title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
script>
head>
<body>
body>
html>
Проверим, все ли работает, добавив небольшое выражение для подсчета произведения чисел 123 и 45. В AngularJs все выражения записываются в двойных скобках. Добавим в параграф со следующим содержимым:
<p>Результат произведение чисел 123 и 45 равен : {{ 123 * 45 }}p>
Запустим в браузере:
Теперь у нас есть готовый шаблон приложения, который мы будем использовать во всех последующих примерах.
AngularJS позволяет разработчику легко взаимодействовать с пользовательским вводом. Для этого есть соответствующая директива ng-model, которая связывает значения HTML элементов контроля (teaxtarea, input etc.) с приложением. Использовать эти данные поможет директива ng-bind, добавив эти данные во View (элемент MVC) и отобразив их на странице.
Применим полученные знания на практике. В созданный ранее шаблон добавим поле для ввода <input> с директивой ng-model и параграф для вывода данных c директивой ng-bind.
Код странички:
<!DOCTYPE html>
<html ng-app="">
<head>
<title>title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
script>
head>
<body>
<p>Ввведте свое имя:p>
<input type="text" ng-model="yourName">
<p>Здравствуй, <span ng-bind="yourName">span>p>
body>
html>
Откроем в браузере:
Теперь попробуйте ввести свое имя в поле для ввода.
Давайте добавим в данный пример дефолтное значение имени, к примеру Анна. Сделаем это, конечно же, с помощью директивы ng-init, которая позволяет инициализировать любую переменную AngularJS приложения.
В строку добавим директиву ng-init.
<input type="text" ng-model="yourName" ng-init="yourName='Aнна'">
Посмотрим изменения в браузере:
Теперь мы имеем значение по дефолту – Анна, но все так же можем изменять его:
Вывод данных в этом примере можно сделать еще одним способом, а именно, использовав выражение. Заменим на {{yourName}}.
<p>Здравствуй, {{ yourName }}p>
Открыв страницу, мы не увидим абсолютно никаких изменений, а все потому, что выражения в AngularJS связывают данные со страничкой точно так же, как и ng-bind директива.
Как упоминалось в статье ранее, AngularJS строит приложения на основе MVC. Часть модель – представление (Model - View) определяется с помощью директивы ng-app. Контроллер в свою очередь определяется директивой ng-controller.
Рассмотрим пример с использованием контроллера страницы.
Создадим страничку со списком гостей, которых Вы пригласите на свой день рождения.
К созданному ранее шаблону добавим контроллер, а так же установим имя для приложения. В тег внесем следующие изменения:
<html ng-app="firstApp" ng-controller="firstController">
Далее добавим с типом text для введения имени гостя и еще один с типом submit для добавления гостя в список. Также добавим
с полем для вывода списка и чекбоксом с типом checkbox для того, чтобы можно было удалять тех, кто не придет на ваш праздник. В данный
добавим директиву ng-repeat, отвечающую за повторение данных в обозначенном контейнере.
<!DOCTYPE html>
<html>
<head>
<title>title>
<meta type="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">script>
head>
<body ng-app="firsApp" ng-controller="firstController">
<h2>Мои гости:h2>
<form ng-submit="addGuest()">
<input type="text" ng-model="guestsInput" size="50" placeholder="Введите имя гостя">
<input type="submit" value="Добавить гостя">
form>
br>
<div ng-repeat="guest in listOfGests">
<input type="checkbox" ng-model="guest.come"> <span ng-bind="guest.guestName">span>
div>
<p><button ng-click="remove()">Удалить гостя button>p>
body>
html>
Осталось добавить скрипт, который будет содержать функции для работы с элементами нашего приложения. Замечу, что все функции будут расположены в контроллере приложения.
Скопируйте и добавьте после закрывающегося тега параграфа с кнопкой
<p><button ng-click="remove()">Удалить гостя button>p>
следующий код:
<script>
var app = angular.module('firsApp', []);
app.controller('firstController', function($scope) {
$scope.listOfGests = [{guestName:'Я любимый', come:false}];
var countOfGuests = 1;
$scope.addGuest = function() {
$scope.listOfGests.push({guestName:$scope.guestsInput, come:false});
$scope.guestsInput = "";
countOfGuests++;
checkNumberOfGuests();
};
$scope.remove = function() {
var oldGuests = $scope.listOfGests;
$scope.listOfGests = [];
angular.forEach(oldGuests, function(guest) {
if (!guest.come) $scope.listOfGests.push(guest);
countOfGuests--;
});
checkNumberOfGuests()
};
function checkNumberOfGuests(){
if(countOfGuests <= 2){
alert("Маленькая вечеринка тоже не плохо! Не печалься! Лучших друзей не бывает много!");
}else if(countOfGuests >= 9){
alert("Праздник?! ВЕЧЕРИНИЩЕ!");
}else{
alert("Узкий круг самых близких, это всегда хорошо!");
}
} script>
В данном коде у нас есть три функции: добавление и удаление гостя и проверка количества гостей.
В функции добавления мы берем введенные данные guestsInput и добавляем их в лист listOfGests. Устанавливаем значение чекбокса в false (в нашем случае, это значит, что человек придет / если значение true, то есть галочка стоит - значит не придет), после чего очищаем поле ввода. Далее увеличиваем счетчик гостей и вызываем функцию проверки их количества.
В функции удаления мы берем список гостей listOfGests и проверяем значение чекбокса каждого гостя, определяя, кто придет, а кто нет. Удаляем тех, кто отмечен галочкой (не пойдет) и уменьшаем счетчик элементов.
Функция проверки количества гостей очень проста, поэтому подробнее мы ее разбирать не будем.
Давайте откроем пример в браузере и поработаем с ним:
Добавим несколько гостей:
С изменением количества гостей содержимое оповещений будет меняться.
Когда вы добавите больше 9 друзей, тогда увидите такое оповещение:
Поздравляем, вот Вы и создали свое первое одностраничное приложение с помощью AngularJS!
ТОП помилок S'ales-менеджерів
Автор: Андрій Афанасьєв
Введение
Приходилось ли Вам, работая в интернет-агенстве или веб-студии, сталкиваться с ситуациями, когда у Вас возникали разногласия с S’ales-менеджерами (менеджерами по продажам услуг компании)? Лично у меня они возникают чуть ли не ежедневно. Вроде бы и цели у нас общие – выстраивать мощный бизнес и зарабатывать хорошие деньги. Но технари и менеджеры по продажам , оказывается, настолько разные по своему мышлению, и идем мы к этим глобальным целям разными дорогами. В данной статье я хочу разобрать психотип технического специалиста и продажника. Исходя из этого мы сможем понять:
Почему возникают спорные ситуации между отделом продаж и отделами по производству;
Какие стандартные “косяки” допускают менеджеры по продажам, которые в дальнейшем существенно вредят производственникам;
Как попытаться избавиться от этих ошибок раз и навсегда.
Основные особенности психотипа технаря
Техническими специалистами в такой структуре, как веб-студия, являются SEO-специалисты, PPC-специалисты, программисты, маркетологи, аккаунт-менеджеры, менеджеры проектов, руководители отделов и другие позиции, которые в этом перечне я случайно мог пропустить. Основная цель технаря – максимально качественно закрывать вопросы разработки стратегии и реализации работ для достижения максимального результата, будь то контекстная реклама, поисковое продвижение или разработка сайтов.
Мышление и построение работы данных категорий сотрудников построено преимущественно на:
Систематичности;
Педантичности;
Четкой последовательности действий, которые формируются на составлении четких дедлайнов (сроков) по каждой задаче и процессу;
Тайм-менеджменте (детальном планировании всего рабочего времени);
Отсутствии какого-либо хаоса и утверждение всех нюансов с заказчиком.
По моему мнению, это идеальная схема построения рабочего процесса технического специалиста, который сможет четко и слаженно, как часовой механизм, решать свои задачи в рамках той компании, в которой работаю сейчас я. С большой вероятностью, у других компаний и фирм данный секрет успеха отличается от того, что приведен выше. Рассмотрим теперь особенность настроев S’ales-менеджеров.
Настрои сейлзов
Как бы гениально это не прозвучало, но основная задача продажника – много продавать. Продавец должен быть стрессоустойчивым, уметь подать продукты компании в такой упаковке, чтобы покупатель, не раздумывая, хотел стать клиентом компании. Исходя из этого, менеджеры по продажам пользуются следующими векторами в своей работе:
Нагенерировать как можно больше лидов (людей, которые проявили хотя бы минимальный интерес к продукту) путем обработки, например, входящих обращений или холодных звонков;
Постоянно контактировать с лидами до момента, пока клиент все-таки не подпишет договор и не заплатит деньги;
Назначить как можно больше встреч, где убедить клиента в целесообразности и необходимости услуг проще, чем по телефону;
Выполнить план продаж путем заключения как можно большего количества договоров.
Такие настроения оправданы, потому что зачастую мотивация S’ales-менеджера состоит из небольшой ставки + хорошего процента от суммы бюджетов подписанных договоров. Поэтому основной кусок пирога заложен именно в этой процентной части.
А теперь про типичные «косяки» продажников
Настоящий менеджер по продажам – это охотник за процентами. На этом я уже поставил акцент в предыдущем пункте. Когда я наблюдаю за своими коллегами-сейлзами, порой у меня возникает ощущение, что они готовы на все ради продажи. Извините, я без критики и осуждения. Просто такое рвение доставляет нам неприятности и проблемы следующего характера:
Продажа ради продажи. Иногда к нам на стол попадает такой проект, с которым ты просто не знаешь, что делать, либо который со старта обречен на провал. Проходит месяц-два, и клиент отказывается от услуги, потому что, к примеру, SEO на первых порах не тот тип рекламы, который нужен проекту.
Несогласованный или весьма заниженный бюджет на проект. Бывают такие ситуации, что ко мне подходят и говорят что-то типа: “Клиент очень «горячий». Можем подписать прямо сейчас, если ты дашь добро. У него бюджет 3500 грн., из которых на ссылки 1000 грн.”. И это при среднем чеке компании, например, в 6000 грн. и очень конкурентной тематике проекта типа котлов или окон. Увы, с таким бюджетом нет смысла заходить на рынок. Да и коммерческий интерес компании-исполнителя невелик.
Не доходит ключевая информация. Для лучшего понимания проблематики смоделирую ситуацию. Например, у нового клиента компании есть два сайта A и B одной тематики. Сайт A клиент хочет продвигать, а сайт B – старый, который он трогать не хочет. Сайт B имеет уже какую-то видимость и позиции, но является аффилиатом по отношению к A, поэтому отдел SEO предлагает клиенту склеить 301 редиректом непродвигаемый сайт с продвигаемым. Когда поступает такое предложение, клиент возмущенно говорит, что сайт B уже продвигался ранее другой компанией и попал под текстовый фильтр Panda, и основная идея появления нового сайта A и его дальнейшей раскрутки связана именно с этим. И немаловажно то, что заказчик утверждает, что вся эта информация была донесена до менеджера, который подписывал договор. Чья недоработка и в чем она заключается, я думаю, понятно…
Обещание золотых гор. Ради подписанного договора сейлз на эмоциях может пообещать клиенту четкие сроки и даже гарантии на вывод в ТОП. Это большая ошибка, которую потом придется разгребать аккаунт-менеджерам. Клиента нужно обязательно ориентировать на какие-то примерные сроки, но давать 100% гарантии на вывод в ТОП никак нельзя. Гарантировать можно только максимально внимательный и профессиональный подход и перечень работ, прописанных в договоре.
Включение в общий бюджет дополнительных доработок. Иногда те лиды, которые являются «горячими» или «теплыми» манипулируют до безумия заинтересованным в продаже менеджером. Это может заключаться в том, что заказчик обещает долгосрочное сотрудничество по SEO-оптимизации или продвижению, если в общий бюджет будут включены некоторые доработки по сайту. И очень часто заказчики почему-то считают, что все они весьма простые типа CTRL+C и CTRL+V и все готово. То ли от незнания специфики правок, то ли от желания докрутить клиента до продажи как можно быстрее, менеджеры часто обещают: ”Все просто. Все будет. Все сделаем!” И в 80% случаев эти доработки оказываются такого масштаба, что в рамках лояльности их не сделаешь и нужно оценивать отдельными сроками и бюджетами. На эти грабли менеджеры наступают регулярно и до тех пор, пока их не заставляют самостоятельно выруливать такие ситуации. Такое нужно мгновенно искоренять!
Это далеко не весь список казусов, которые происходят с менеджерам по продажам. Это золотая классика, которая, я уверен, повторяется у многих компаний и фирм данного сегмента бизнеса.
Как искоренить весь этот бардак?
Это намного проще, чем может показаться на первый взгляд. Для этого всего лишь нужно:
Ввести обязательную систему брифования со стандартным списком вопросов, которые еще на этапе переговоров помогут получить важную информацию для составления более-менее прозрачой картины о проекте будь-то SEO, контекст или веб;
Внедрить многоуровневое утверждение проектов через руководителей отдела продаж, отдела по производстенной части и аккаунтинга. Пока каждый руководитель детально не изучит условия договора и особенности заказа, ничего подписано быть не должно!
Использовать систему передачи проекта в письменном виде руководителям отделов со стоимостями по проектам. (Как, сколько, за что клиент заплатил и что должен в итоге получить);
Проведение периодических ликбезов и занятий, на которых менеджеры по продажам могут задавать вопросы техническим специалистам, тем самым повышать свой уровень до уверенной компетенции в продукции.
Ну, и как резюме…
Подытожить данный материал, над которым я работал не один вечер, хочется следующим обращением:
Уважаемые менеджеры по продажам.
Мы Вас очень ценим и уважаем. Вы - локомотив нашего бизнеса и от Вас зависит многое. Но, пожалуйста, согласовывайте с нами каждый нюанс и мелочи и прислушивайтесь к производственникам Вашей компании. Давайте жить дружно ;)
Правила комунікації у компанії – Частина 2
Автор: Infopulse
Введение
В предыдущей статье мы начали знакомиться с основными правила ведения корпоративной переписки. В данной статье вы познакомитесь с правилами, которые во многом избавят вас от досадных недоразумений и лишних беспокойств на рабочем месте.
Важно помнить, что не стоит отвечать на письма, не входящие в вашу сферу компетенций и присланные для ознакомления, если вам пришлось ответить на подобное письмо, обязательно поставьте в копию вашего руководителя и специалистов компании, которые обладают должным уровнем квалификаций для принятия подобных решений, в случае эскалации вопроса из письма – вас всегда поддержат советом или вы сможете легко передать дела ответственному лицу.
Когда вы ведете переписку по делам коллеги, который находится в отпуске или в командировке, т.е. принимаете решения из его зоны ответственности – Вам стоит ставить его в копию всей исходящей корреспонденции.
Пересылая письмо адресату или включая его в переписку, которая велась без его участия, стоит убедиться, что отсутствует информация, не подлежащая разглашению третьим лицам.
Не следует отправлять электронные адреса участников рассылки третьим лицам без особой необходимости. Если вы решили отправить контакты вашего коллеги Заказчику, обязательно согласуйте это с ним и руководством, при отправке письма поставьте его в копию.
Если в переписке по рабочим вопросам участвует несколько человек (на этапах общего обсуждения), то, отвечая на такое письмо, стоит использовать Reply to all, чтобы все участники были осведомлены о последних изменениях и принятых решениях.
Если у вас есть несколько не связанных между собой вопросов к одному адресату (или группе адресатов), следует создать несколько разных писем с разными темами – таким образом Вы сможете получать актуальную информацию по каждому вопросу отдельно и не будете затруднять адресата избыточными письмами.
Перед отправкой писем следует всегда применять Spelling and Grammar check, в не зависимости от того, на каком языке написано письмо – мы все делаем ошибки, даже в написании хорошо известных слов, особенно когда приближаются дедлайны.
Для переписки с внешними Заказчиками обязательно используйте корпоративный стандарт подписи в письмах.
Рекомендуемый размер вложенных файлов не должен превышать 10 Мб
Всегда внимательно перечитывайте письмо перед его отправкой, проверяйте написание адресатов отправляемого письма и аккаунт, с которого отправляете письмо (в случае, если пользуетесь несколькими учетными записями на одном почтовом клиенте).
На этом список основных правил и рекомендаций можно считать завершенным. Но стоит помнить о том, что в каждой компании подобный список будет дополнен и расширен. С полным перечнем можно ознакомиться в пособии по адаптации новых сотрудников или в Кодексе корпоративной политики компании.
В следующей статье Вы познакомитесь с шаблонами оформления корпоративных подписей и стандартными письмами для повседневного использования.
Запуск ASP.NET 5 на Linux
Автор: Редакция ITVDN
Введение
Данная статья содержит подсказки и советы, как правильно запустить ASP.NET vNext на Linux.
Если Вы используете метод чистой установки, вам следует установить Mono 3.4.1 или более позднюю версию. Вы можете сделать это путем составления источников. Также установка Mono возможна с помощью менеджера пакетов.
1. Доступ к Ubuntu с помощью удаленного рабочего стола
Если Ubuntu работает на облаке Windows Azure, а показать его нужно на Surface RТ, необходимо получить доступ к Ubuntu с помощью удалённого рабочего стола. Вот замечательное руководство по работе с удалённым рабочим столом с Ubuntu:
Как установить xrdp в Ubuntu 14.04
Если Вам не нужно запускать браузер, то удалённый рабочий стол Вам не понадобится. Чтобы увидеть веб-приложения, работающие на Linux, Вам нужно открыть некоторые порты или использовать туннель для Linux.
2. Установка K Runtime
Выполните следующие команды в терминале:
curl https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh
Это позволит установить K Runtime Manager (KVM), K Runtime (Kre) и K Package Manager (KPM), также следует запустить приложения ASP.NET vNext.
3. Установите последнею версию KRE
Теперь давайте установим последнею версию KRE. Выполните такую команду в терминале:
kvm upgrade
Эта команда вызывает KVM для загрузки и установки последней версии KRE.
4. Натройка NuGet.config
Вполне возможно, что NuGet не имеет никакого представления об источнике пакета ASP.NET vNext. Вы можете найти NuGet.config в:
/home//.config/NuGet
Если он имеет только пустые и закрытые теги конфигурации, то для изменения содержимого выполняйте:
xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="AspNetVNext" value=https://www.myget.org/F/aspnetmaster/ />
<add key="NuGet.org" value="https://nuget.org/api/v2/" />
packageSources>
configuration>
5. Получите Ваше приложение из Git
Затем нужно получить источник ASP.NET vNext приложения для Вашей машины. Возможно, Вы используете Git. Чтобы скачать примеры приложений ASP.NET vNext, Вам нужно выполнить команду:
git clone https://github.com/aspnet/Home.git
6. Восстановление пакетов
Отправляйтесь к корневой папке вашего приложения ASP.NET vNext и, чтобы восстановить пакеты, используйте для запуска:
kpm restore
Теперь KPM восстанавливает все пакеты, необходимые для запуска приложения. Эта информация считывается из project.json файлов в приложениях корневых папок.
7. Запустите приложение
Пришло время для запуска приложения:
k kestrel
Эта команда вызывает KRE и использует Kestrel как веб-сервер.
Источник: http://gunnarpeipman.com/2014/10/running-asp-net-5-on-linux/
Угода при розробці AngularJS програми
Автор: Антон Гончаров
Введение
Давайте рассмотрим практику написания AngularJS приложения. Приведенные ниже примеры помогут вам писать приложение правильно, чисто и более обдуманно. С помощью применения данной практики вы разработаете приложение, которое будет разделено на блоки, что в конечном итоге поможет строить правильную архитектуру приложения.
Итак, начнем.
1) Создавая новое приложение, старайтесь разделять модуль, контроллер, фабрику, вынося их в отдельные файлы. Этот прием имеет ряд приимуществ:
улучшается читаемость приложения
улучшается рефакторинг приложения
легче производить дебаггинг приложения
//плохая практика
angular
.module('app', ['ngRoute'])
.controller('myController', myController)
.factory('myFactory', myFactory);
function myController() { };
function myFactory() { };
//рекомендуется
//myapp.module.js – файл модуля
angular
.module('app', ['ngRoute']);
//mycontroller.js – файл контроллера
angular
.module('app')
.controller('myController', myController);
function myController() { };
//myfactory.js – файл фабрики
angular
.module('app')
.factory('myFactory', myFactory);
function myFactory() { };
2) Старайтесь оборачивать код в самовызывающиеся функции.
Это позволяет :
сохранить переменные от глобального объекта scope
предотвратить перетирание глобальных переменных (т.к. они локальны)
при минификации кода помогает избежать путаницы переменных
//плохая практика
angular
.module('app')
.factory('myfactory', myfactory);
function myfactory() { };
//рекомендуется
(function () {
'use strict';
angular
.module('app')
.factory('myfactory', myfactory);
function myfactory() { };
})();
3) Старайтесь придерживаться иерархии именования. Это поможет правильно структурировать приложение, что в итоге приведет к правильной архитектуре программы.
Избегайте создания модуля через переменную и используйте цепочный синтаксис (в виде цепочки)
//плохая практика
var app = angular.module('app', [
'ngAnimate',
'ngCookies',
'firebase'
]);
//рекомендуется
angular
.module('app', [
'ngAnimate',
'ngCookies',
'firebase'
]);
4) Используйте именованные функции. Код становится более читабельным и куда лучше тестируется.
//плохая практика
angular
.module('app')
.controller('mycontroller', function () { });
//рекомендуется (обратите внимание на контроллер он вынесен в отдельный файл
//от модуля)
//myapp.module.js – файл модуля
angular
.module('app', ['ngRoute']);
//mycontroller.js – файл контроллера
angular
.module('app')
.controller('myController', myController);
function myController() { };
5) Используйте controller as нотацию вместо просто controller. Она более читабельна, помогает не запутаться в коде
//плохая практика
<div ng-controller=”myController”>{{title}}div>
//используем
<div ng-controller=”myController as mycontroller”>{{mycontroller.name}}div>
6) Используйте слово vm(ViewModel) внутри контроллера вместо ключевого слова this. Это поможет избежать подмены контекста внутри функции.
//антипаттерн
function mycontroller () {
this.name = {};
this.deleteSome = function () {};
};
//паттерн
function mycontroller () {
var vm = this;
vm.name = {};
vm.deleteSome = function () {};
};
Это лишь базовые приемы, которые вы можете использовать в своей практике. Они помогут вам избежать некоторых проблем в вашей роботе и сделать код вашего приложения чище и понятнее. Желаю вам хорошего кода и светлых идей.
Огляд елементів у HTML5
Автор: Редакция ITVDN
Введение
HTML5 – последняя версия языка разметки. У HTML5 есть семантическая структура. В пятой версии языка ввели определенные средства для управления – они дают возможность сэкономить Ваше время при разработке веб-сайтов. В этой статье мы рассмотрим упомянутые средства управления, а также функции в HTML5.
Прежде чем начать, необходимо установить Visual Studio.
Мы можем включить опцию HTML в целевом разделе:
Tools -> Options -> Text Editor -> HTML.
Разметка HTML5
Объявление DOCTYPE:
<!DOCTYPE html>
Объявление кодировки символов:
<meta charset="utf-8" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Sibeesh Passion wish you a happy new yeartitle>
head>
<body>
Welcome to Sibeesh Passion
body>
html>
Структура HTML5
Как уже говорилось, у HTML5 есть семантическая структура. Это уменьшает усилия UI-разработчика. На изображении объясняется эта структура.
До применения HTML5:
После:
Исходя из рисунка, понятно, что в HTML5 доступны такие элементы:
Header
Nav
Section
Aside
Article
Footer
Добавление собственных элементов
Вы можете создать собственный элемент, используя стили. Разметка должна выглядеть таким образом:
<!DOCTYPE html>
<html>
<head>
<title>Your own element title>
<script>document.createElement("yourelement")script>
<style>
yourelement {
display: block;
}
style>
head>
<body>
<div>
Normal element
div>
<yourelement>My elementyourelement>
body>
html>
Вы создали новый элемент «yourelement».
Новый синтаксис Атрибута
В HTML5 введен новый синтаксис атрибута:
Empty
Unquoted
Double Quoted
Single Quoted
Можно присвоить текстовое значение тега input type таким образом:
<input type="text" value="Sibeesh" disabled>
<input type="text" value=Sibeesh>
<input type="text" value="Sibeesh">
<input type="text" value=’Sibeesh’>
Примените CSS
Так же, как к обычным элементам HTML, так и к новым семантическим элементам можно применять стили.
footer{border:1px solid;}
Предыдущий стиль будет применен ко всем footer, доступным на странице. Не рекомендуется использовать верхний регистр (Footer, FOOTER) в названии элементов.
Обзор элемента Canvas
Если Вы хотите создать определённый графический контент, элемент Canvas, то Вам нужно:
Объявление Canvas
<canvas id="canvasExample" width="200" height="100"
style="border:1px solid #ccc;">
Bad Luck, It seems your browser won't support :(
canvas>
Реализация Canvas
var c = document.getElementById("canvasExample"); //Get the element
var ctx = c.getContext("2d"); // Get the context for the element
var grd = ctx.createLinearGradient(0, 0, 200, 0); //Create the line
grd.addColorStop(0, "blue"); // Apply the colors
grd.addColorStop(1, "white"); // Apply the colors
ctx.fillStyle = grd; //apply the style
ctx.fillRect(10, 10, 150, 80); // Fill
Здесь мы применили градиент к canvasExample.
Введение в SVG
Масштабируемая векторная графика (Scalable Vector Graphics) – графика для web типа canvas. Одно из различий между canvas и SVG то, что SVG поддерживает обработчик событий, а элементы canvas – нет.
Объявление SVG
<canvas id="canvasExample" width="200" height="100"
style="border:1px solid #ccc;">
Bad Luck, It seems your browser won't support :(
canvas>
Полный вариант HTML-документа:
<!DOCTYPE html>
<html>
<body>
<table style="border:1px solid #ccc;">
<tr style="border:1px solid #ccc;">
<td style="border:1px solid #ccc;">
<h2 style="text-align:center;">Canvash2>
<canvas id="canvasExample" width="200" height="100"
style="border:1px solid #ccc;">
Bad Luck, It seems your browser won't support :(
canvas>
td>
<td style="border:1px solid #ccc;">
<h2 style="text-align:center;">SVGh2>
<svg width="200" height="200">
<circle cx="100" cy="100" r="50"
stroke="green" stroke-width="4" fill="yellow" />
Bad Luck, It seems your browser won't support :(
svg>
td>
tr>
table>
<script>
var c = document.getElementById("canvasExample"); //Get the element
var cctx = c.getContext("2d"); // Get the context for the element
var grd = ctx.createLinearGradient(0, 0, 200, 0); //Create the line
grd.addColorStop(0, "blue"); // Apply the colors
grd.addColorStop(1, "white"); // Apply the colors
ctx.fillStyle = grd; //apply the style
ctx.fillRect(10, 10, 150, 80); // Fill
script>
body>
html>
Источник: http://www.c-sharpcorner.com/UploadFile/65794e/html-5-elements-in-a-look-part-1/
http://www.c-sharpcorner.com/UploadFile/65794e/html-5-elements-in-a-look-part-2/
Правила комунікацій у компанії
Автор: Infopulse
Введение
Когда сотрудник становится частью нового коллектива, стоит внимательно отнестись к правилам коммуникаций и субординации, принятым в компании. Так, все коммуникации, как внутри компании, так и с заказчиками, должны происходить в соответствии с нормами делового поведения и общепринятыми стандартами общения.
Корпоративным стандартом являются такие качества, как приветливость, вежливость и безоговорочная готовность помочь в решении тех вопросов, по которым к вам обратились как внешние заказчики, так и внутренние, т.е. ваши коллеги. При этом, каждый специалист компании должен действовать в пределах своей компетентности в вопросе, послужившем поводом для коммуникации, и принимать решения он имеет право лишь в рамках своих полномочий, при необходимости согласовав их со своим непосредственным руководством.
Важно помнить, что при необходимости незамедлительно принять решение, выходящее за рамки ваших полномочий или компетентности, вам необходимо узнать решение вашего непосредственного руководителя. Получив такое подтверждение, можете смело продолжать рабочие процессы, как и собственно процесс коммуникации. В случае, когда вы должны сообщить решение заказчику в отсутствие непосредственного руководителя, стоит уведомить руководителя более высокого уровня.
В данной статье мы познакомимся с наиболее распространенными правилами деловой переписки, которые общеприняты в большинстве компаний.
Средствами электронной коммуникации с клиентом являются: электронная почта, разные мессенджеры, скайп, телефон.
Ответ на любой запрос, поступивший от Заказчика, переданный по какому-либо каналу электронной коммуникации, по возможности, должен быть дан в кратчайшие сроки. Если такой возможности не представляется по объективным причинам, необходимо сообщить об этом Заказчику, указав дату, когда требуемая информация будет предоставлена.
Для всех случаев отсутствия специалиста на рабочем месте (болезнь, непредвиденные семейные обстоятельства, внешний тренинг, заранее запланированная командировка или плановый отпуск) стоит уведомить Заказчика. Ответственность за своевременное уведомление несет руководитель соответствующего отдела или проекта.
В случае внезапного отсутствия сотрудника на рабочем месте, ответственность за уведомление Заказчика несет непосредственный руководитель специалиста. В уведомлении должна быть указана предположительная дата возвращения специалиста на работу, а также контакты другого специалиста, уполномоченного работать с Заказчиком в рамках текущего проекта.
Все коммуникации с Заказчиком должны происходить в соответствии с нормами делового общения, далее приведены основные из них:
Точность формулировок письма, исключающая возможность двойного истолкования, прозрачность изложения.
Лаконичность – изложение только необходимой адресату информации.
В то же время, необходимо отвечать на все поставленные вопросы, если они были заданы, либо уведомить о невозможности предоставления ответа по каким-либо пунктам. Строго запрещается оставлять вопросы заказчиков без ответов, даже если на первый взгляд они кажутся несущественными.
Достоверность информации – ссылки должны вести только на проверенные факты, заботьтесь о логичности и грамотности, обеспечивайте четкую структурированность вашего сообщения.
Соблюдайте элементарные нормы вежливости и выдвигайте только конструктивные пожелания во всех письмах.
Избегайте большого количества шрифтов и стилей, запутанной манеры изложения, не используйте несвойственные деловой переписке лирические вставки, неформальности. По возможности, используйте одну гарнитуру и размер шрифта, для выделения используйте не больше двух цветов.
Поле обязательно к заполнению, сформулировав тему письма кратко и емко, вы позволите адресату структурировать переписку и ,в случае необходимости, воспользоваться быстрым поиском.
Отметку высокого приоритета для письма () стоит использовать в исключительных случаях, когда письма требует особенного внимания.
Не следует злоупотреблять запросом на подтверждение адресатом того, что ваше письмо было прочитано (Delivery request).
Отвечая на письма, всегда сохраняйте предыдущую историю переписки, не изменяйте текущее – это позволит адресату при первой необходимости узнать все детали переписки.
Отдельное внимание стоит уделить тому, в каком поле находитесь вы как адресат в переписке. Так, многие компании приняли за правило следующие условия:
если вы указаны в качестве одного из адресатов письма (ваш email находится в поле To: ), то вы должны предпринять действия, которые подразумеваются по сути письма и сообщить об этом;
если вы указаны в копии письма (в поле Cc: ), то вам следует ознакомиться с телом письма, принять во внимание полученную информацию на случай того, что описанные действия или условия могут прямо или косвенно повлиять на ваши повседневные обязанности и рабочие процессы. Настоятельно рекомендуется сохранять такие письма и ,по возможности, сообщить в коротком ответе, что информация, изложенная в письме, была вами получена и принята к сведению (подобный ответ не является обязательным).
В следующих статьях вы узнаете о других правилах ведения корпоративной переписки и построения деловых отношений с коллегами и стороной Заказчика. Также будут опубликованы шаблоны корпоративных подписей для писем и стандартные заготовки для служебных писем, которые вам придется составлять в вашей повседневной работе.
Як використовувати Git у Microsoft Visual Studio Enterprise 2015 RC
Автор: Костянтин Чорний
Введение
На заре компьютерной эры, когда программисты были подобно волшебникам, которые заставляли компьютеры творить чудеса, производить вычисления и выдавать какие-то незамысловатые изображения на экран, их было мало и, зачастую, они писали свои программы в одиночку. Но создавать крупные проекты так, практически, невозможно, потому что это занимает слишком много времени. Тогда стало понятно, что один программист не сможет сделать ничего крупномасштабного, и возникла потребность как-то объединить их усилия и превратить процедуру создания программ в промышленный процесс.
Для этого нужно было создать систему, которая бы синхронизировала работу нескольких десятков, а то и сотен программистов над одним исходным кодом. С этой же проблемой столкнулся известный на данное время программист Линус Торвальдс, который создал наиболее популярную сегодня систему управления версиями Git.
Итак, давайте рассмотрим, как можно создавать любимые приложения на платформе .NET, используя Visual Studio, вместе со своими друзьями.
Хочу заметить, что Visual Studio поддерживает Git с коробки, а в версии Visual Studio 2015 можно выбрать установку расширения для работы с GitHub. Мы рассмотрим оба варианта.
Для начала запустим Visual Studio и в меню View выберем пункт Team Explorer.
Получим вот такое окошко:
Сначала попробуем добавить существующий репозиторий. Чтобы это сделать, нужно взять ссылочку на него из GitHub, например, и скопировать ее в поле, когда выберем пункт Clone:
Нажимаем на кнопку Clone и готово.
Двойной клик по проекту, и получаем окно управления:
Теперь давайте посмотрим, как добавить новый проект. Сначала создаем новое решение. Необходимо отметить галочкой пункт Add To Source Control, чтобы заставить Visual Studio создать необходимые файлы для работы с системой контроля версий.
Выбираем нужную нам систему:
Готово! Проект появился в списке. Теперь надо его опубликовать.
Выбираем проект и заходим в пункт Sync:
Для того, чтобы поместить на сервер наши исходники, необходимо сначала создать новый репозиторий.
Берем ссылку на пустой репозиторий и вставляем ее в Visual Studio. Потом кликаем на кнопку Publish.
Вводим логин и пароль для GitHub, если понадобится
Дальше выполняем Commit проекта и синхронизируемся
Готово:
Теперь давайте воспользуемся расширением для работы с GitHub, которое поставляется в комплекте Visual Studio Enterprise 2015. Для этого в Team Explorer логинимся на GitHub.
Клонируем репозиторий.
Готово. Теперь попробуем создать новый.
Вот теперь мы окончательно разобрались, как подключить Git к Visual Studio. Сама процедура использования этой технологии несложна и позволяет объединить усилия в разработке крупных приложений.
Наслаждайтесь командной разработкой. Спасибо за внимание.
Оновлення Git-клієнта для усунення вразливості
Автор: Редакция ITVDN
Введение
Уязвимость очень тривиальна – злоумышленник создает Git-дерево, что приводит к тому, что Git перезаписывает свой собственный .git/config файл при клонировании или проверке репозитория. Затем вызывается config файл, чтобы выполнить любой вредоносный код.
Конфигурационный файл может содержать измененные названия кода для команд Git и, следовательно, вредоносный файл конфигурации может повторно активировать команды Git для любых функций. Злоумышленник может выполнить, практически, любой код, который он хочет.
Причина проблемы заключается в том, что считается нормальным использовать вид записи .Git/config или любой другой, отличный от стандартного. Он рассматривается как стандартная папка, которая отличается от .git/config, находящейся за пределами репозитория. Однако, OSX и Windows используют «case insensitive file systems» и, в результате, .Git/config приравнивается к .git/config и, скопировав его, перезаписывается исходный .git/config. Если вы работаете с Linux или Unix, то Git работает корректно без вмешательства.
В целом, риск не так уж велик, потому что любой, кто хочет воспользоваться дефектом, должен иметь права для создания репозиториев и уязвимость появляется при работе в публичном репрозитории.
Решением проблемы является установка последних версий Git-клиента. Существует также проблема с остальными производителями программного обеспечения, которые используют библиотеки libgit2 и JGit.
GitHub также советуют устанавливать последнюю версию клиента.
Источник: http://www.i-programmer.info/news/149-security/8101-upgrade-git-client-to-avoid-vulnerability.html