Сегодня 22 апреля, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
coding4.net
coding4.net
Голосов: 1
Адрес блога: http://www.coding4.net/
Добавлен: 2012-06-11 20:16:46
 

Список покупок для каждого владельца интернет планшета iPad

2015-05-16 20:35:00 (читать в оригинале)


планшет iPad

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

Самое главное, на что мы обращает внимание так это на наличие/отсутствие защитного чехла для iPad Air 2. В чем его преимущество и зачем он нужен. По мере эксплуатации вашего интернет планшета, на него так или иначе будут действовать всевозможные факторы. Это физическое воздействие в виде ударов, грязь, пыль и многое другое. Если вы будете постоянно носить ваш интернет планшет в специальном защитном чехле, то никаких существенных неприятностей с ним не произойдет. В случае того же падения гаджет не пострадает или если и пострадает, то последствия будут не такими значительными. Не самым лучшим вариантом в этом случае будет использование бампера. Особенность бампера - защита исключительно боковых граней устройства. Поэтому если основной удар придется на дисплей или на заднюю часть вашего интернет планшета, то бампер перед таким ударом будет просто бессильным. С другой стороны многие отдают предпочтение использованию бампера исключительно для того, что бы не скрывать наличие яблочка на задней панели их интернет планшета.

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

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

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



Тестовое задание после собеседования: ASP.NET MVC и сохранение в Doc файл

2015-05-15 01:44:00 (читать в оригинале)


Задание:

Вполнить и прислать проект Visual Studio 2013, обладающий следующим функционалом:

1. В проекте должна быть web-форма для пользовательского ввода, позволяющая вести
данные о клиенте:
- фамилия, имя отчество;
- номер телефона для связи;
- номер паспорта;
- кем выдан;
- адрес прописки.

2. По копке «сформировать документ» данные из формы должны быть переданы в документ MS Word примерного вида:


Соглашение

Я, Иванов И.И., подтверждаю, что паспортные дынные, указвнные мною в анкете , а именнно:
паспорт № ХХХХ ХХХХХХ, выдан ОВД по району Камышинский города Ухты 12.12.1950 года сответствуют действительности.
Прошу связываться со мной посредством почты по адресу 100001, г. Ухта, ул Ленина, дом 1, квартира 100.
Номер контактного телефона (456) 123 45-67.

Дата, Подпись.

3. Должен вестись лог формирования документов вида:
- Дата формирования документа
- Время формирования документа
- Фамилия клиента

По заданию приветствуется использование валидации пользовательского ввода, XML и Dataset.
Предположительное время реализация – два дня.


Небольшие пояснения - как делал:

Остальное тривиально, немного про формирование документа напишу. Оно происходит так:
1) Данные из формы попадают в класс модели
2) Формируется шаблон HTML с razor разметкой для данных модели.
3) Вызывая razor парсер из библиотеки RazorEngine (ставится из Nuget) формируем окончательный html
4) Пишем html в temp каталог
5) Конвертим с помощью HTMLConverter.exe HTML в DOC
6) Грузим данные данные DOC файла в байтовый массив
7) Возвращаем данные doc файла как результат веб запроса указав MIME тип.

Для того чтобы заработало нужно разместить в C:/temp файл HTMLConverter.exe из папки Html2DocConverter.
Инсталятор конвертера лежит в папке Html2DocConverterDistributive.
Возможно его потребуется поставить. Конвертер используется для преобразования
из html в doc вызовом консольного приложения.
В той же папке будут созданны промежуточные файлы, которые при каждом запуске будут удаляться.
Там же будет лежать файл addclientlog.xml с xml логом добавления клиентов.
Xml не совсем коррестный без заголовков, но такие нормально
программно парсятся, а писать в его не в пример проще.
Если хочется поменять каталог с временными файлами и логом, то смените константу _TempCatalogPath
в классе BusinessLogic.


Исходник ClientsData.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; namespace MielTestTask.Models { public class ClientsData { [Required(ErrorMessage = "Поле ввода ФИО должно быть заполнено")] [DisplayFormat(ConvertEmptyStringToNull = false)] [RegularExpression(@"([А-ЯЁ][а-яё]+[\-\s]?){3,}", ErrorMessage = "Формат ввода ФИО должен быть таким: Фамилия Имя Отчество")] [Display(Name = "Фамилия Имя Отчество")] public String FIO { get; set; } [Required(ErrorMessage = "Поле ввода телефона должно быть заполнено")] [DisplayFormat(ConvertEmptyStringToNull = false)] [RegularExpression(@"\+?\d+([\(\s\-]?\d+[\)\s\-]?[\d\s\-]+)?", ErrorMessage = "Формат ввода ФИО должен быть таким: Фамилия Имя Отчество")] [Display(Name = "Телефон")] public String Phone { get; set; } [Required(ErrorMessage = "Поле ввода номера паспорта должно быть заполнено")] [DisplayFormat(ConvertEmptyStringToNull = false)] [RegularExpression(@"\d{4}\s\d{6}", ErrorMessage = "Формат ввода номера пасспорта должен быть таким: dddd dddddd")] [Display(Name = "Номер паспорта")] public String Passport { get; set; } [Required(ErrorMessage = "Поле ввода кем выдан должно быть заполнено")] [DisplayFormat(ConvertEmptyStringToNull = false)] [StringLength(200, ErrorMessage = "Длина текста поля кем выдан не должна превышать 200 символов")] [Display(Name = "Кем выдан")] public String WhomIssued { get; set; } [Required(ErrorMessage = "Поле ввода адрес должно быть заполнено")] [DisplayFormat(ConvertEmptyStringToNull = false)] [StringLength(200, ErrorMessage = "Длина текста поля адрес не должна превышать 200 символов")] [Display(Name = "Адрес")] public String Address { get; set; } } }


Исходник Index.cshtml

@model MielTestTask.Models.ClientsData

@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}

@using (Html.BeginForm("ProduceDocument", "Page"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset style="width:170px;" >
<legend>Данные клиента</legend>

<div class="editor-label">
@Html.LabelFor(model => model.FIO)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FIO)
@Html.ValidationMessageFor(model => model.FIO)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Phone)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Phone)
@Html.ValidationMessageFor(model => model.Phone)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Passport)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Passport)
@Html.ValidationMessageFor(model => model.Passport)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.WhomIssued)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.WhomIssued)
@Html.ValidationMessageFor(model => model.WhomIssued)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Address)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address)
@Html.ValidationMessageFor(model => model.Address)
</div>

<p>
<input type="submit" value="Сформировать документ" />
</p>
</fieldset>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}


Исходник PageController.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.IO; using MielTestTask.Models; using MielTestTask.App_Code; namespace MielTestTask.Controllers { public class PageController : Controller { public ActionResult Index() { ClientsData data = new ClientsData(); return View(data); } [HttpPost] public ActionResult ProduceDocument(ClientsData cData) { BusinessLogic.DeleteTempFiles(); BusinessLogic.ClientsDataSave2Html(cData); BusinessLogic.Html2MSWordDocFile(); Byte[] docFileData = BusinessLogic.GetDocFileData(); BusinessLogic.SaveLogItem(cData); FileContentResult currResult = File(docFileData, MimeMapping.GetMimeMapping(BusinessLogic.TempDocFileName), BusinessLogic.TempDocFileName ); return currResult; } } }


Исходник BusinessLogic.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Diagnostics; using System.ComponentModel.DataAnnotations; using System.Xml.Linq; using RazorEngine; using MielTestTask.Models; namespace MielTestTask.App_Code { public static class BusinessLogic { private const String _TempCatalogPath = "C:/temp/"; private const String _TempHTMLFileName = _TempCatalogPath + "temp.html"; public const String TempDocFileName = _TempCatalogPath + "temp.doc"; private const String _LogFileName = _TempCatalogPath + "addclientlog.xml"; private const String _ConverterPathName = _TempCatalogPath + "HTMLConverter.exe"; public static String GenerateShortName(String fio) { String[] arrStr = fio.Split( new Char[] { ' ' } ); String Surname = arrStr[0]; String Name = arrStr[1]; String Patronomic = arrStr[2]; String Result = Surname + " " + Name[0] + ". " + Patronomic[0] + "."; return Result; } public static void DeleteTempFiles() { try { File.Delete(_TempHTMLFileName); File.Delete(TempDocFileName); } catch { ; // гасим возможные исключения } } public static void ClientsDataSave2Html(ClientsData cData) { String shortName = GenerateShortName(cData.FIO); String currHtml = " <html> " + " <head> " + " <style type=\"text/css\"> " + " .lbl { color:blue; } " + " </style> " + " <meta charset=\"utf-8\" /> " + " </head> " + " <body> " + " <P style=\"text-align:center;\" >" + " Соглашение <BR>" + " </P>" + " <BR>" + " Я, <span class=\"lbl\">" + shortName + "</span>, подтверждаю, что паспортные дынные, указвнные мною в анкете , а именнно: " + " паспорт <span class=\"lbl\">№@Model.Passport</span> , выдан <span class=\"lbl\">@Model.WhomIssued</span> сответствуют действительности. <BR>" + " Прошу связываться со мной посредством почты по адресу <span class=\"lbl\">@Model.Address</span>. <BR>" + " Номер контактного телефона <span class=\"lbl\"> @Model.Phone</span>. <BR>" + " <P style=\"text-align:right;\" >" + " " + DateTime.Now.ToString() + ",_____________ " + " </P>" + " </body> " + " </html> "; String resultHtml = Razor.Parse(currHtml, cData); File.WriteAllText(_TempHTMLFileName, resultHtml); } public static void Html2MSWordDocFile() { var process = new Process { StartInfo = { FileName = _ConverterPathName, Arguments = _TempHTMLFileName + " " + TempDocFileName } }; process.Start(); } public static Byte[] GetDocFileData() { Byte[] result = File.ReadAllBytes(_TempHTMLFileName ); return result; } public static void SaveLogItem(ClientsData cData) { String surname = cData.FIO.Split(new Char[] { ' ' })[0]; DateTime currDt = DateTime.Now; XElement currEl = new XElement ( "LogItem", new XAttribute("Date", currDt.ToString("dd/mm/yyyy")), new XAttribute("Time", currDt.ToString("HH:mm")), new XAttribute("ClientSurname", surname) ); String logItemStr = currEl.ToString() + "\n"; File.AppendAllText(_LogFileName, logItemStr); } } }
Солюшн в архиве (без Html2DocConverter):   TestTask.zip (12,42 mb)


IP-телефония или SIP-связь - какой способ более эффективен ?

2015-04-25 00:41:00 (читать в оригинале)


IP телефония

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

IP-телефония или SIP-связь?

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

IP-телефония и SIP-связь объединяет способ передачи информационных данных — посредством интернета. Сродным моментом еще является и стоимость подобного удовольствия. Цена здесь действительно доступная. Более того, внедрение в рабочие будни такого средства коммуникации позволит все расходы сузить до оплаты за пользование интернетом и убережет от длинных счетов за пользование мобильной или же стационарной  связью.

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

В чем заключается различие между IP-телефонией и SIP-связью? По одной линии одновременно может передаваться большое количество разнородных информационных пакетов. При этом качество и скорость передачи подчиняется состоянию канала. В случае, если он является чрезвычайно загруженным, могут возникнуть некоторые проблемы, что чаще всего имеют вид некоторых искажений или же даже случайной потери информации. SIP-связь предоставляет аналогичные возможности, однако, не имеет такой тесной взаимосвязи с загруженностью канала, за счет чего, все передаваемые данные будут доставлены в неизменном состоянии. Разница заключается также и в предназначении, для внутри корпоративного использования этот вариант станет идеальным, если же у Вас есть необходимость общаться с клиентами по телефону, принимать входящие звонки, то отдавайте предпочтение первому.

SIP связь



Обзор вакуумных наушников Monster iBeats

2015-04-22 22:45:00 (читать в оригинале)


monster ibeats

Компания Beats выпустила в свет свое новое творение ‒ наушники Monster iBeats. Несмотря на свои компактные размеры, они выдают просто потрясающий по качеству звук. Они специально разработаны для продукции компании Apple ‒ айфонов, айпадов, айподов. Линейка наушников monsterbeats.ru/ibeats/ вышла в свет после того, как компания Эппл полностью купила контрольный пакет акций Beats. C тех пор два бренда существуют неразлучно.

Разработчики рекомендуют эти наушники использовать в паре с iPhone или iPod. Так, закачав любимые альбомы с помощью Apple Store, можно наслаждаться прекрасным звуком.

Внешний вид и эргономика

Хотя это не массивные наушники Monster Beats Wireless, эта модель довольно увесиста как для своего типа. Объясняется это тем, что корпус её выполнен из прочного металла, который препятствует проникновению посторонних шумов и помех извне.

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

Фирма Monster Beats выпустила несколько расцветок наушников этой модели. В каталоге monsterbeats.ru/ibeats/ представлены черные, фиолетовые и белые.

Функция Control Talk

Модель имеет интересную технологическую особенность под названием Control Talk. Её также имеют наушники Monster Beats Wireless. Она заключается в небольшом модуле, размещенном на проводе. Состоит он из пульта ДУ, а также микрофона. Технология позволяет принимать звонки даже в том случае, если телефон лежит в кармане. Это очень удобно во время передвижения в общественном транспорте. Кроме того, с помощью этого пульта можно регулировать громкость, а также управлять треками.Что касается звука, то он характеризуется встроенной технологией усиления басов. Кристально чистый звук в комбинации с пассивной системой шумоподавления позволяет добиваться превосходного звучания музыки.

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

monster beats wireless



Компьютерные столы - привычный комфорт

2015-03-31 22:32:00 (читать в оригинале)


Компьютерный стол

Необходимость купить компьютерный стол возникает почти у каждого. И это не какой-то анахронизм в десятилетку мобильных устройств, а жизненная необходимость. Популярность стационарных персональных компьютеров хоть и стала снижаться, но тем людям, которые не просто хотят развлекаться в интернете, а еще и зарабатывать с помощью своего домашнего компьютера, удобный компьютерный стол просто необходим. Согласитесь, даже простой набор текста на ноутбуке, нетбуке или смартфоне задачка нетривиальная. Скорость такого набора минимальна, руки всегда навесу, спина устает, тело скрюченное – при такой позе работать долгое время просто невозможно. А вот если положить стандартную клавиатуру на широком столе и найти опору для локтей, то можно с комфортном разместиться и набирать текст быстро и с минимумом ошибок.

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

Не стоит забывать и о том, что только на персональном столе для компьютера появляется возможность расположить сразу несколько широкоугольных мониторов. Причем сделать это так, чтобы общий «цифровой экран» был эргономичен и удобен для пользователя. Такие системы из нескольких мониторов часто используют дизайнеры, конструкторы, инженеры и 3D-моделисты. При такой профессии важна каждая мелочь, любая упущенная деталь большого чертежа детали может стать причиной дефекта, поэтом удобство расположения за рабочим компьютером с течение долгого времени выходит на первый план. Дополнив мощный ПК с несколькими мониторами хорошей аудиосистемой, получим рабочее место для обработки видео и монтажа фильмов и роликов.

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

Компьютерный стол


Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «Стихи»
Взлеты Топ 5
+223
233
CAPTAIN
+196
256
Yurenzo
+185
193
Simple_Blogger
+171
263
Annelle
+166
246
Similis_Deo
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.