Здравствуйте.
До недавнего времени, я не понимал в полной мере как работают сервисные центры. Не знал по какому принципу они обслуживают те или иные бренды. Почему иногда купленный девайс в одном магазине, могут отослать в сервисный центр (дальше СЦ) совершенно другого. Теперь же, имея немало опыта в этой сфере, спешу поделиться с Вами.

Авторизация.

Что такое авторизация? Авторизация сервисного центра — это право на гарантийное обслуживание техники определенного бренда.

Гарантийное обслуживание.

Тут ничего сложного. Сломался ноутбук, например, Acer. Принесли в авторизованный СЦ фирмы Acer. Признают гарантийным — бесплатно ремонтируют.

Негарантийное обслуживание.

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

У одного СЦ может быть с десяток авторизаций, а то и больше. По всем этим брендам они обязаны Вас обслужить в рамках гарантийного обслуживания и на свое усмотрение в рамках негарантийного.

Представим ситуацию. У Вас сломался ноутбук. Купили неделю назад. Допустим, у Вас подозрения на жесткий диск. Не знаю как происходит в больших городах, но, например, у нас, приходя к продавцу, он скорее всего отошлет Вас в авторизованный сервисный центр (АСЦ) или в СЦ при магазине (они, кстати, тоже зачастую имеют различные авторизации). Вы пришли в АСЦ. Начинаете сдавать свой ноутбук. И вот тут наступает важный момент. Вы можете пойти по двум пути: по пути гарантийного ремонта и по пути замены ноутбука (возврата денег). Рассмотрим Ваши права при первом варианте:

Гарантийный ремонт. Сдаете ноутбук. Вам его ремонтируют. Максимальный срок гарантийного ремонта составляет 45 суток. Он включает в себя диагностику, которая может длиться максимум 20 дней. То есть, сначала девайс диагностируют, а только потом начинают ремонт. АСЦ не имеет права держать его более 45 суток с момента сдачи.

Второй вариант:
Вы хотите замены или денег. В законе указано, что менять можно при существенном недостатке изделия, а что недостатком существенным или несущественным является, не указано. То есть, этим моментом Вы можете воспользоваться, приняв за существенный недостаток практически любую поломку электроники. При сдаче обязательно обратите внимание на акт приема. В нем должна бть указан именно диагностика, а не гарантийный ремонт. Продавец вправе взять технику на диагностику для выявления гарантийности и только потом менять или возвращать деньги. Опять же, диагностика длится максимум 20 дней. Можно сократить срок замены или возврата. Для этого Вам необходимо в этом же СЦ написать заявление на замены или возврат, тогда Вашу проблему должны решить в более короткий период (установлено 14 дней на рассмотрение заявления, но многие организации делают это в десятидневный срок). Акт приема нужно изучить «от» и «до». Внимательно прочтите все сноски, вычеркните предложения, в которых Вы даете разрешение на ремонт. Вам нужна только диагностика с дальнейшей заменой!

Бывает такой случай: ноутбук куплен в торгующей организации, например, ООО «Техника», а Вас отсылают в СЦ не при магазине, так как авторизация по данному бренду только там. Вы имеете право сдать технику именно там где покупали. Вы не обязаны ходить по СЦ. Это проблемы торгующей организации. Если же Вы все-таки пошли в АСЦ, то сдаете ее в обычном порядке. Бывает, что изготовитель списывает технику, так как ремонт является нерентабельным. Тогда в АСЦ Вам обязаны выдать акт о списании, и с этим актом Вы идете в торгующую организацию для замены устройства или возврата денег. Важно уточнить, остается ли техника на ответственное хранение у АСЦ, если нет, то технику вы должны доставить сами в торгующую организацию. Так же, товар весом свыше 5 кг торгующая организация обязана сама вывозить из вашей квартиры.

Всегда обращайте на правильность заполнения гарантийного талона производителя. На нем должны быть печати торгующей организации, иначе в АСЦ в ремонте могут отказать.

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

Надеюсь, кого-то просветил.
Случилась как-то необходимость подключить несколько виджетов JQuery на сайт, казалось бы всё просто, но не тут-то было. Тупое подключение отключает стандартные скрипты и, как выяснилось из интернетов, дает проблемы с Ligthbox2. Спустя пару дней получилось заставить заработать всё без проблем совместимости, чем и хочу с вами поделиться.
Итак, устанавливаем виджет Tabs на примере темы UI-Lightness на Drupal 6.20.

Понадобится

jQuery Update 6.x-2.x-dev
Проводит обновление библиотеки JQuery друпала до версии 1.3.2, что видно в /jquery_update/replase/jquery.js: " * jQuery javascript Library v1.3.2";
Всё дело в том, что версия 6.x-2.0-alpha1 проводит обновление до версии 1.4.4, нас же интересует именно библиотека 1.3.2 т.к. виджеты работают стабильно именно с ней, что видно на http://jqueryui.com/download: "(Stable, for jQuery 1.3.2+)"

Виджет Tabs

Модуль Query UI 6.x-1.4 мне не понадобился. Данная версия включает в себя версию библиотеки Jquery UI 1.6. На момент реализации была актуальна библиотека 1.8.9

Порядок действий

Устанавливаем скаченный модуль jQuery Update 6.x-2.x-dev
Создаем в каталоге с нашей темой папки js и css
Кладем в папку js следующие файлы:
Общие скрипты для выбранных виджетов
\js\jquery-ui-1.8.9.custom.min.js
ЛИБО
Скачать библиотеку полностью
code.google.com/p/jquery-ui/downloads/list версия 1.8.9
\ui\jquery-ui.js
development-bundle\ui\jquery.ui.tabs.js
скрипт виджета Tabs

Кладем в папку css следующие файлы:
\css\ui-lightness\jquery-ui-1.8.9.custom.css + папка images
Общие стили вашей темы
\development-bundle\themes\ui-lightness\jquery.ui.tabs.css
Стили для используемых виджетов (для виджета Tabs):

Открываем mytheme.info и дописываем
stylesheets[all][] = css/jquery-ui-1.8.9.custom.css
stylesheets[all][] = css/jquery.ui.tabs.css
scripts[] = js/ui/jquery-ui-1.8.9.custom.min.js
scripts[] = js/ui/jquery.ui.tabs.js
Либо, если нет желания подключать это для всей темы, то:
drupal_add_css(path_to_theme(). '/css/jquery.ui.tabs.css');
drupal_add_css(path_to_theme(). '/css/jquery-ui-1.8.9.custom.css');
drupal_add_js(path_to_theme(). '/js/ui/jquery-ui-1.8.9.custom.min.js');
drupal_add_js(path_to_theme(). '/js/ui/jquery.ui.tabs.js');
Создаем ноду типа страница.
Вставляем туда следующие (пример с jqueryui.com/demos/tabs/ — View Source)

//подключение виджета Tabs
$(function() {
$( "#tabs" ).tabs();
});


<!--Пример виджета Tabs-->



Proin elit arcu, risus.




Morbi tincidunt, ut pharetra massa metus id nunc.




Mauris eleifend est et turpis. Duis id erat.




Не забываем после всего этого (а точнее изменения .info файла) очистить кеш. Сделать это можно несколькими способами:
Быстрый:
— Модуль Devel — Очистить Кеш.
Другой:
— /admin/build/themes — Сохранить конфигурацию.

Вот в общем то и всё.
P.S.
Автор не гарантирует 100% работы при использовании метода copy-paste
Автор советует использовать кастомную тему.
Я хочу поделиться с вами своими приемами при первичном общении с заказчиком и своими мыслями на тему «Чего ждет заказчик от разработчиков?»

Постановка целей и задач при создании сайтов

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

Нужно копать глубже, понимать какую именно бизнес задачу должен решить сайт и, что важнее всего, как измерять эффективность того, что получилось.

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

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

По сути она отвечает на вопросы:

Где сейчас находится бизнес клиента?
Куда ему нужно прийти?
Как это сделать?

Именно в части «как» и лежит ответ на то, каким сайт должен быть.
Но, прежде чем ответить на него, нужно понимать, что эта компания из себя представляет, куда она идет и чем является в данный момент.

Создавая сайты по такой метологеме, все стороны очень четко понимают чего ждать от этого сайта, а самое главное отвечают сами себе на вопрос: «Зачем этот сайт вообще, и как он поможет бизнесу клиенту?».

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

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

Для начала определим объекты работы. Это будут два приложения, одно из которых будет являться, условно, Хостингом, а второе, соответственно, Клиентом. Основная трудность состоит в том, чтобы реализовать и правильно «активировать» Хостинг-приложение.

Клиент

Реализация Клиент-приложения требует следующих действий:
— в первую очередь добавление сборки System.Management.
— далее определим что конкретно будет осуществлять Клиент.

public class Client
{
public Client()
{
//создание подписчика на сообщения типа EventCallback
//root\Application – см. System.Management.Instrumentation.InstrumentedAttribute(объявлен
//в сборке Хостинга)
ManagementEventWatcher watcher = ManagementEventWatcher(@”root\Application”,
“Select * from EventCallback”);

//реализация подписки
watcher.EventArrived += new EventArrivedEventHandler(Watcher_EventArrived);
//начало прослушивания канала WMI
watcher.Start();
}

void Watcher_EventArrived(object sender, EventArrivedEventArgs e)
{
//Show e.NewEvent[“Value”];
//при получении сообщения – вызвать метод Хостинга
SendMessage();
}

void SendMessage()
{
// root/assoc — см. System.Management.Instrumentation.WmiConfigurationAttribute
//Host – класс на стороне Хостинга
managementClass processClass = new ManagementClass(“root/assoc”, “Host”, null);

//получение представления для данного типа
foreach(ManagementObject instance in processClass.GetInstances())
{
//обращение к методу типа
ManagementBaseObject inParams = instance.GetMethodParameters(“Func”);
inParams[“value”] = “Is trancend”;

//вызов метода на стороне Хостинга
instance.InvokeMethod(“Func”, inParams, new InvokeMethodOptions());
}

}
}

Можно сделать выводы что клиент не представляет собой сложно структурированного объекта и опирается на реализацию Хостинга. Тем не менее, необходимо отметить, что для работы с хостингом нужно владеть информацией о пространстве имен в котором зарегистрирован Хостинг («root/assoc»). Используя данный «идентификатор» можно получить полную информацию о реализации Хостинга (его методах, типе работы, свойствах). В свою очередь «root\Application» указывает на инструментарий, доступный для обращения к сборке Хостинга.

Хостинг

Перейдем к реализации Хостинга. Здесь процесс более трудоемкий и не столь однозначный. Во-первых, необходимо добавить сборки для работы с WMI и сконфигурировать сборку Хостинга:

using System:
Componentmodel;
Management;
Management.Instrumentation;
Configuration.Install;

[assembly: Instrumented (@”root\Application”)]
[assembly: WmiConfiguration (“root/assoc”, HostingModel = ManagementHostingModel.Decoupled)]
[System.ComponentModel.RunInstaller (true)]
Public class TheInstaller: DefaultManagementInstaller {}

namespace MyApp
{
class Program
{
static void Main(string[] args)
{
//регистрация сборки
System.Configuration.Install.ManagedInstallerClass.InstallHelper(new String[]{ typeof (EventCallback).Assembly.Location});
//регистрация типа
InstrumentationManager.RegisterType(typeof(EventCallback));
EventCallback(“Sending msg”).Publish();
//waiting callback event

InstrumentationManager.UnregisterType(typeof(EventCallback));
System.Configuration.Install.ManagedInstallerClass.InstallHelper(new String[]{“/u”, typeof (EventCallback).Assembly.Location});
}

}
}

[ManagementEntity]
public class EventCallback: BaseEvent
{
[ManagementTask]
public void Func(string str)
{
//show message from Client-App
}

//ключ класса – наличие обязательно
[ManagementKey]
public String Value;

//наличие у класс параметра полностью идентичного одному ключу ОБЯЗАТЕЛЬНО
[ManagementBind]
private EventCallback(String Value)
{
this.Value = Value;
}

public static Publish(String str)
{
//push-уведомление
new EventCallback(str).Fire();
}

[ManagementEnumerator]
Static public IEnumerable EnumerateInstances()
{
return new EventCallback(“”);
}

}

Выводы

Таким образом реализуется Хостинг. Необходимо обратить внимание на следующие особенности. Наличие обязательного атрибута [ManagementKey] без которого не произойдет установка сборки в пространство WMI. Данное поле или свойство должно обязательно инициализироваться и быть эквивалентным параметру, который принимает конструктор данного класса (эквивалентным значит: number=Number; т.е. совпадать по написанию и может быть регистронезависимым).

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

Я, как настоящий приверженец Google начал поиск именно с него. Искал песню по первой строке «Я родился среди лета, когда пели соловьи», это песня Уральских Пельменей. Вначале вбил просто, по-обычному, Google нашел около 33 тыс. страниц, и сразу же на первой ссылке интересующая меня песня, да и к тому еще видео в придачу с концерта. Но злополучных аккордов, я так и не нашел. Ладно, кликнул на вторую ссылку, попал на какой-то форум, слова песни есть, а аккордов опять нет. Следующие ссылки вели совсем не туда. Решил воспользоваться расширенным поиском, с точной фразой, теперь при поиске добавились кавычки, добродушный Google выдавал только 4 ссылки с песней, но опять все без аккордов. Моя задача не выполнена, но Google справился со своей работой на отлично.
После этого решил воспользоваться Яндексом, не зря же он доминирует на российском рынке, чего я искренне не понимаю. Сначала как с Google искал просто, но когда на первой ссылке увидел «Когда поют соловьи|Домашние животные и птицы», а на второй «Пение соловья – на Яндекс.Видео», а на третьей был фильм «Когда поют соловьи», решил сразу же уточнить запрос, добавив слово песня. Это не помогло, первая ссылка осталась такой же. Тогда я решил заглянуть в расширенный поиск, поставил галочку в пункте «Употребление в тексте» – «Точно также как в запросе», запустил поиск, Яндекс нашел полный бред. Некоторые ссылки находилась только по одному слову из запроса. Тогда решил воспользоваться памяткой по использованию языка запросов. Оказывается, что «точно также как в запросе», совсем не одно и то же, что и пункт «слова идут подряд в точной форме». Чтобы сформулировать этот запрос, понадобились опять знаки кавычек, что не удивительно. К моему сожалению, Яндекс не нашел ни чего. Я был расстроен. Ведь где мне не помогал Google, помогал мне Яндекс.
Но потом наткнулся внизу, что можно поискать в других поисковых системах, продолжил с Mail.ru, дальше будет приводиться статистика только по пункту «Точная фраза», Mail.ru нашел много сайтов, но в первой 30-ке, не было ни одного сайта с данной песней, а тем более и с аккордами.
Потом продолжил свое путешествие на Rambler, так как он использует алгоритмы Яндекса, то меня совсем не удивило, что он тоже ничего не нашел. Также Яндек советовал и Bing, и Yahoo, они, как и Mail.ru, с запросом в кавычках, нашли много всего, но ни одного нужно мне сайта.
Расстроившись, решил воспользоваться поиском Нигма, обычный запрос я отбросил сразу, но и с пунктом «точная фраза», тоже ничего не вышло.
Каждый поисковик предназначен для определённых поисковых запросов, но в итоге заморский Google оказался в данном случае лучшим, по поиску совершенно неизвестных русских песен.
Говорят первый мобильный телефон появился в 1983 г и это была Motorola DynaTAC 8000X весом 1,5 кг. Я этого не помню, но пусть так и будет ) Стандарты менялись и так привычный нам GSM появился лишь в 1992г в Германии. Этого я тоже не помню, конечно. Нам было очень далеко до продвинутых Западных стран. А вот помню были в моде рации году так 1996. Так называемые «славные 90-е». Каждый уважающий себя «мафиози» имел рацию, хотя в России еще с 1994 года уже был запущен первый оператор «Северо-Западный GSM».

Году так в 1999 у нас уже вовсю начали продавать мобилки. Подключение стоило нереально дорого, минута разговора и того дороже. Поэтому практиковалась покупка мобильника без подключения. Просто ходили с трубой в руках, дабы показать свое крутое положение в обществе. Да и девушкам нравились парни с мобилой, это же круто. Чтобы поговорить (это тем, у кого хватало денег на разговоры) приходилось еще и найти место, где есть прием. Даже посреди дороги останавливались.

В 2000 и я приобрел себе первый свой мобильник. И понеслось. Первый быстро надоел, да и в новых моделях были функции, ранее не доступные. Например WAP. Благодаря которому я потерял за буквально пару минут около 15 долларов, так как телефон был настроен на немецкого провайдера ) 4х тональная полифония, цветной (если можно так выразится) дисплей, раскладушки. Мобильники стали развиваться не по годам, а прямо по месяцам. Первый смарт оставался недостижимой мечтой. Великолепный сименс SX1, как же я мечтал о нем…

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

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

Собственно что нас ждет дальше? Вопрос без ответа.

Продал смарт, купил звонилку, ушел с некогда любимого сайта и пока забил на все эти технологии, пытаясь дозвониться до абонента хотя бы с третьего раза… Хотя иногда подмывает взять какой-нибудь Galaxy и вновь начать его прошивать, взламывать (что будет трудно в связи со сложившейся ситуации с сертификатами), апгрейдить, модернизировать и так далее. Что скажете, стоит ли?
Иногда возникает необходимость получать свежие новости в формате RSS или Atom.

Неважно для каких целей — важно, что для этого уже есть готовое решение.
И решение простое и удобное — а именно, PHP-библиотека SimplePie.

Скачать её можно на GitHub. Там лежит полный архив со всеми необходимыми файлами.

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

Подключение

Раньше SimplePie выглядел в виде одного PHP-файла simplepie.inc, который почему-то до сих пор упоминается в официальной документации.

Теперь же ситуация изменилась — необходимо закачать на сервер директорию SimplePie и в нужном PHP-скрипте подключить модуль автозагрузки класса:
include_once('SimplePieAutoloader.php');

Также Вам может понадобиться подключить модуль конвертирования интернациональных имён доменов IDNA_Convert:
include_once('idn/idna_convert.class.php');

После подключения модулей необходимо создать экземпляр класса SimplePie, сообщить ему информацию о загружаемом RSS/Atom-документе и научить куда складывать кэшированные документы и на какой срок (в секундах):
$feed=new SimplePie();
$feed->set_feed_url('http://news.mail.ru/rss/');
$feed->set_cache_location('./rss_cache');
$feed->set_cache_duration(1800);
$feed->enable_cache(true);

Для правильного добавления дат/времени например в базу данных требуется установить временную зону:
date_default_timezone_set('Europe/Moscow');

Ну и наконец, инициализируем экземпляр класса SimplePie:
$success=$feed->init();

Использование

Для получения информации из выбранного фида нам нужно попробовать определить Content-type загруженного документа. Он может быть как и заявленным в документации RSS/Atom-документом, так и блогом, да и вообще видимо любым документом, где есть заголовок, дата со временем и содержание.
$feed->handle_content_type();

При необходимости можно указать Content-type если мы его заранее знаем:
$feed->handle_content_type('text/html');

Данные о загруженном фиде можно вытащить с помощью нескольких полезных методов:
$feed->get_title(); // получаем заголовок RSS-ленты, например "Новости@Mail.Ru"
$feed->get_permalink(); // постоянная ссылка новостной ленты, например "http://news.mail.ru/"
$feed->get_favicon(); // ссылка на favicon новостной ленты в формате .ico
$feed->get_image_url(); // ссылка на картинку, которую использует фид для самоидентификации в формате .jpg, .gif или ином
$feed->get_description(); // забираем краткое описание ленты
$feed->get_encoding(); // получаем кодировку документа
$feed->get_language(); // узнаём на каком языке выводится данный фид, например "en-us", "ru-ru"

Основная информация о фиде у нас есть, наконец-то можно почитать и сами новости:
$items=$feed->get_items();

Теперь в массиве $items хранится вся информация о новостях и доставать её можно следующим способом:
foreach($items as$item){
$item_date=$item->get_date('Y-m-d H:i:s'); // получаем дату/время в нужном формате
$item_title=$item->get_title(); // краткий заголовок новости
$item_content=$item->get_content(); // содержание новости
$item_link=$item->get_link(); // постоянная ссылка на новость на сайте-источнике
$enclosures=$item->get_enclosures(); // картинки и всякие прикреплённые к новости файлы
if(count($enclosures)){ // если у нас есть какие-нибудь картинки в новости
foreach($enclosures as$enclosure){
$enclosure_mime=$enclosure->get_real_type(); // получаем MIME-тип вложенного файла
$enclosure_url=$enclosure->get_link(); // вытягиваем ссылку на картинку
}
}
}

Ну вот, теперь у нас есть основная информация об RSS-канале и его новостях, и мы можем её использовать в своих целях — например добавить в Cron вывод в файл и читать на работе новости из консоли без палева :)
Я начинающий предприниматель, занимаюсь торговлей электротоварами. В ходе своей деятельности возникла задача автоматизации учета товаров. Выбор сразу пал на систему 1С поскольку я с ней был немного знаком. Но тут возникли проблемы с установкой на Linux, в Virtual Box из-за использования эмулятора ключа появлялся синий экран смерти, через wine вообще не рискнул ставить.

Далее начались поиски «свободных» программ. Выбор был не большим, в основном они работали на виртуальной Java машине, запомнилась программа с смешным названием Ананас. Достойного решения я не нашел и решил написать собственную программу.

Поставив перед собой следующую цель, функционал программы:
Номенклатура-возможность создавать категории, товары с определенными свойствами.
Учет по контрагентам
Поступление товаров на склад.
Установка цен на товары (закупочная, продажная, оптовая)
Реализация продукции. Печать накладной. Остатки на складах.


Для реализации данного проекта, я выбрал веб-технологии (LAMP, ajax). Опыт в веб-программировании у меня маленький, приходилось все писать с «нуля» переделывая по несколько раз, с ajax вообще не работал. Используя jquery все оказалось очень просто.
В итоге все поставленные цели были реализованы, а именно:
Справочники: единицы измерения, склад, товары, контрагенты, банковские счета, организации.
Документы: поступление товаров, ценообразование и продажа товаров.
Минимальные настройки пользователя.

Приложение работает на облочном хостинге , на мой взгляд очень удобный сервис.

Я не останавливаюсь на достигнутом, и ставлю перед собой новые цели:
Разработать систему скидок.
Документ счет-фактура
Отчеты
Интеграция с интернет магазином
Создание дистрибутива Linux. Серверный и десктопный вариант или все в одном с предустановленной системой NADABS.

Все только впереди…
Процессор ничего не знает ни о потоках, ни о процессах. Он просто последовательно выполняет инструкции, пока не случится прерывание. Обработка прерывания сводится к вызову процедуры, не заданному в исполняемом коде. Эта процедура (являющаяся частью операционной системы) производит при необходимости переключение процессов и потоков. Чаще всего процедура прерывания просто делает выход и прерванный поток продолжает свою работу, ничего не заметив.

Шаги этого процесса элегантны и поучительны.

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

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

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

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

Множество деталей в этом изложении опущено (например, приоритет прерываний), их можно найти в соответствующей литературе.

Советская терминология отличалась от американской. Поток назывался процессом, а процесс — задачей, в соответствии с работой Дейкстры Взаимодействие последовательных процессов.
На сегодняшний день уже доступна для тестирования вторая alpha-версия дистрибутива Ubuntu 11.10. Красивый, видимо так считают в Canonical, Unity, практически win-подобная система получается. Установить систему не составит труда и домохозяйке, для которой, как повелось в народе, разрабатывалась ОС Windows 7, а здесь ещё проще и быстрее. Все бросились в разработку «красивостей», «удобностей» и так далее, но все потихоньку перестают ценить то, что действительно было рабочим, удобным и красивым.

Я не являюсь бородатым линуксоидом, который помнит с чего всё начиналось и до Ubuntu перепробовал десяток других дистрибутивов. Мое знакомство с Unix-like ОС началось с Ubuntu 9.04. Я не устанавливал другие дистрибутивы и, в настоящее время, мне интересна судьба Ubuntu. На «правильное» развитие Ubuntu я просто не могу не обратить свое внимание.

Первое, что мне хотелось бы отметить, так это то, что Unix-like ОС, коей является Ubuntu, не должна быть такой, какую нам предлагают разработчики Ubuntu. Где изюминка, где то, что «досталось от предков»?! Популяризация, замещение приоретарных ОС, всё это понятно, но будет ли это вскоре интересно тем, кто всю свою жизнь работает с Unix-like ОС?! Среди них немалое количество разработчиков, благодаря труду которых мы получаем качественные программные средства. А что будет, если они отвернуться от всего этого безобразия?!

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

Сегодня из первых приложений, которые ставят (просят бывалых поставить) начинающие пользователи Ubuntu, так это Compiz и различные bar'ы (их уже заменили — Unity bar). Конвертиком окна, аквариум на рабочем столе, огоньки и другие плюшки интерфейса. К чему всё это? Чего только стоит Ubuntu Software Center! Удалили Synaptic, а что же будет дальше со сборкой из source'в?! Людей отучивают думать, искать пути решения возникших трудностей, пытаются дать понять то, что трудности — это скучно.

Да, Gnome 2.х не идеален, но, без использования лаунчеров, запуск приложений осуществлялся мгновенно. Приложения сворачивались аккуратненько в панель, доступ из которой к необходимому приложению был быстр и лёгок, даже если не использовать Alt+Tab. А что в случае с Unity, выезжающая, причем не всегда ровно, панель с запущенными приложениями отвлекает как внимание, так и отнимает больше времени.

Я не за то, чтобы все сидели в Terminal'e и использовали команды для работы с ОС. Но теперешние тенденции развития Ubuntu отучивают людей мыслить, искать решения, любить простое, рабочее, удобное, безо всяких «жирных», тяжелых излишеств. Обновившись до 11.04, затем опробовав 11.10 Alpha 2, я снес всё и с чистого листа поставил Ubuntu 10.04 LTS.

Да на текущий момент в типах загрузки доступен пункт Classic, но как долго это будет возможным?! Опробовав Gnome 3 Shell я убедился в том, что разработчики пошли по стопам Unity. Это не особо радужная картина для меня, и уверен, для многих, поэтому не исключается факт поиска альтернативного Ubuntu дистрибутива.