четверг, 6 октября 2011 г.

Пидарасы из микрософта

Нет, ну я знал конечно что в микрософте трудятся пидарасы и выходцы из СССР - благословенные создатели автоваза. Но блять как же тяжко и неприятно в этом каждый раз заново убеждаться. Вчера решил распечатать отсканированный пару дней назад документ. Нажимаю правой кнопкой - печатать. Сказал, чтоб напечатал черно-бело и быстро. Этот блять ебаный гандон растянул скан на всю страницу вместо оригинального размера. Пришлось открыть gimp-ом и напечатать из него. Нет, ну я понимаю - долбоебы, кривые руки, не знаем что такое DPI и разрешение, но нахуя тогда делать. Блять, как это напоминает совок-автоваз. Вот линукс - сразу честно признался - я не в курсах. Сканера нет и модель принтера я не знаю - иди в жопу.

четверг, 29 сентября 2011 г.

Эволюция

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

Ну и пошло-поехало. Ну дохера на счетах считать. Тяжело. Один не видел в этом проблемы, другой придумал первый калькулятор.

На калькуляторе тоже цифры каждый раз надо вбивать. Один не видел в этом проблемы, другой придумал ЭВМ.

Один не видел проблем, чтобы набить перфокарты, другой придумал терминал.

Один не видел проблем с коммандной строкой - другой придумал гуй.

Один не видел проблем с виндой - другой придумал айпадики.

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

вторник, 9 августа 2011 г.

Embedding Jetty

Почему то примеры на embedding, которые есть на сайте jetty не работают:
Embedding Jetty. Кроме того не показано из какого именно пакета импортируются классы.
Может у меня версия jetty не та (у меня версия jetty 7), но при копипасте кода из примера все классы inner и непонятно что именно импортировать.

К большому счастью я обнаружил пример в самом jetty:
jetty-blazeds/src/test/java/org/mortbay/jetty/asyncblazeds/Main.java

На всякий случай приведу исходник

package org.mortbay.jetty.asyncblazeds;

import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;

public class Main
{
public static void main(String[] args)
throws Exception........
{...............
Server server = new Server();
Connector connector=new SelectChannelConnector();
connector.setPort(8080);
server.setConnectors(new Connector[]{connector});
........
HandlerCollection contexts = new HandlerCollection();
ServletContextHandler messageBroker = new ServletContextHandler(contexts, "/samples", WebAppContext.SESSIONS );
ServletHolder holder = messageBroker.addServlet("flex.messaging.MessageBrokerServlet", "/messagebroker/*");
holder.setInitParameter("services.configuration.file",System.getProperty("user.dir") + "/src/test/resources/services-config.xml");

ContextHandler polling=new ContextHandler("/polling");
ResourceHandler pollingClient = new ResourceHandler();
pollingClient.setWelcomeFiles(new String[]{"index.html"});
pollingClient.setResourceBase("src/test/resources/polling-chat");
........
polling.setHandler(pollingClient);

ContextHandler async=new ContextHandler("/async");
ResourceHandler asyncClient = new ResourceHandler();
asyncClient.setWelcomeFiles(new String[]{"index.html"});
asyncClient.setResourceBase("src/test/resources/async-chat");
async.setHandler(asyncClient);

contexts.setHandlers(new Handler[]{messageBroker,polling, async});
........
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[]{contexts,new DefaultHandler()});
........
server.setHandler(handlers);

server.start();
server.join();
}
}


Есть пример создания сервлета (ServletContextHandler) и файлосервера. Вот пример создания веб приложения:

import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;

...
Server server = new Server(8080);
HandlerCollection contexts = new HandlerCollection();

WebAppContext webapp = new WebAppContext(contexts, "colt-vaadin", "/colt-vaadin");
webapp.setWar("jnetx/application/colt/web-ui/src/web");
webapp.setDefaultsDescriptor("jnetx/application/colt/web-ui/src/web/WEB-INF/web.xml");

contexts.setHandlers(new Handler[]{webapp});
server.setHandler(contexts);
server.start();



четверг, 4 августа 2011 г.

Ахтунг блять вокруг пидарасы

Сука мудаки ебаные чтоб вам всем сдохнуть блять. Нахуевертили говна, мозгов блять нету.

пользовался wsdl2java. Так эти пидоры используют хуй пойми какой логгинг. Соответственно гандоны пишут
Axis uses the Jakarta Projects's commons-logging API... Ни примеров конфигурации, нихуя.
Ну и сука блять понеслась. В антовской таске wsdl2java системные проперти установить блять нельзя. В документации по commons-logging тоже гандонство сплошное - нихуя ни примеров нормальных работающих, какие то блять параметры непонятные. Вот сука мудаки. Теперь блять для того чтоб логгинг в этой уебанской wsdl2java заработал нужно целый день сука биться. Блять пидарасы, чтоб вас палками.

Все, вылил говно.

PS. Вот блять кровь-кишки-распидарасило. Наши уебаны добавили log4j в classpath анта. Кроме этого антовский класслоадер из анта 1.7 имеет ошибку - он видит классы, но не видит ресурсы из дочерних класслоадеров (например из класслоадера, которым делаешь taskdef). В результате получается полная поебень. Сука - ну почему кругом одни пидарасы?!!!!

среда, 20 июля 2011 г.

Подключение ICEPush в Vaadin

Я не специалист в ICEPush и Vaadin. Но вот недавно возникла необходимость наговнять веб-приложение, которое будет динамически отображать изменение состояния сервера. Server push. Для веб-приложения я выбрал Vaadin ибо не понимаю html и css. Возник вопрос как реализовать Server push. Поиск сказал, что в Vaadin есть add-on icepush. Вроде бы все просто.

Я не буду писать как использовать IcePush - это все есть в примере.

Но возникли трудности. При запуске приложение выводило следующую белиберду:

Widgetset does not contain implementation for org.vaadin.artur.icepush.ICEPush. Check its @ClientWidget mapping, widgetsets GWT module description file and re-compile your widgetset. In case you have downloaded a vaadin add-on package, you might want to refer to add-on instructions. Unrendered UIDL:

org.vaadin.artur.icepush.ICEPush(NO CLIENT IMPLEMENTATION FOUND)


Оказалось, что в icepush используется клиентский код (код на GWT, работающий на стороне браузера) и для работы нуна создать свой widgetset и откомпилировать его. И почему то как это делается не описано в инструкции к icepush (правда описано в инструкции к vaadin)

Тут я и хочу описать шаги, необходимые для выполнения вышеописанного.

1) создаем файл с widgetset нашего приложения. Создается он в директории где лежат java исходники приложения, примерно в том же пакете, где лежит само приложение.

<module>
<!-- WS Compiler: manually edited -->

<!-- Inherit DefaultWidgetSet -->
<!--<inherits name="com.vaadin.terminal.gwt.DefaultWidgetSet">-->

<inherits name="org.vaadin.artur.icepush.IcepushaddonWidgetset">
<!--<inherits name="org.icepush.gwt.ICEpush">-->

<!-- adding support for icepush -->
<!--<script src="icepush.js"></script>-->

</module>



В изначальном руководстве строчки <inherits name="com.vaadin.terminal.gwt.DefaultWidgetSet" />, <inherits name="org.icepush.gwt.ICEpush" /> присутствовали, но поскольку этим модули наследуются в org.vaadin.artur.icepush.IcepushaddonWidgetset, то их можно не указывать.

Строчка <script src="icepush.js"> тоже присутствовала, но при этом выводилась сообщение, что этот файл (icepush.js) не был найден в директории widgetset-а, приходилось копировать его туда руками. Я ее удалил - без нее все работает.

2) Надо откомпилировать widgetset. Если вы используете maven, то надо добавить зависимости в pom.xml, и запустить соответствующий таргет. Я этого не делал и поэтому писать не буду - опишу если понадобится попробовать.
Я компилировал widgetset через ant.

Берем дистрибутив vaadin, достаем оттуда файл WebContent/docs/example-source/build-widgetset.xml, копируем этот файл себе в проект. Изменяем таргеты, которые отвечают за установку разных property (например путь к файлу widgetset). Этот скрипт занимается еще и компиляцией проекта. Поскольку мой проект имеет немного более сложную систему зависимостей, а копировать все в WEB-INF/lib мне неохота, то я тупо выкинул таргет compile-server-side из ant скрипта build-widgetset.xml и указал переменную server-side-destination на уже откомпилированные классы.

Запускаем ант.
ant -f build-widgetset.xml


При этом у меня возникли проблемы. Таска java из таргета compile-widgetset ругалась на то, что кончилась память и предлагала установить параметр -Xmx128M. На самом деле кончалась память в Perm Gen:
    [java]    Compiling 6 permutations
[java] Compiling permutation 0...
[java] Compiling permutation 1...
[java] [ERROR] OutOfMemoryError: Increase heap size or lower gwt.jjs.maxThreads
[java] java.lang.OutOfMemoryError: PermGen space
[java] at sun.misc.Unsafe.defineClass(Native Method)


и необходимо было установить -XX:MaxPermSize=128M. Вот как стало выглядеть
 <java classname="com.google.gwt.dev.Compiler"
failonerror="yes" fork="yes" >
<arg value="-war" />
<arg value="${client-side-destination}" />
<arg value="${widgetset}" />
<jvmarg value="-Xms256M"/>
<jvmarg value="-Xmx256M"/>
<jvmarg value="-XX:PermSize=128M"/>
<jvmarg value="-XX:MaxPermSize=128M"/>
<jvmarg value="-Xss1024k"/>
<jvmarg value="-Djava.awt.headless=true"/>
<classpath>
<path refid="compile.classpath"/>
</classpath>
</java>


Я ставлю сразу ms и mx и PermSize и MaxPermSize потому что так быстрее, а память есть.

В результате компиляции widgetset появилась директория с кучей файлов в директории ${client-side-destination}. Название директории совпадает с названием нашего widgetset. В веб приложении это должно лежать в /VAADIN/widgetsets.

3) Добавляем параметр в сервлет. Теперь наш web.xml выглядит так
<servlet>
<servlet-name>ICEPush for Portlets</servlet-name>
<servlet-class>org.vaadin.artur.icepush.ICEPushServlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>com.jnetx.app.colt.ui.ColtUi</param-value>
</init-param>
<init-param>
<description>ColtUi widgetset</description>
<param-name>widgetset</param-name>
<param-value>com.jnetx.app.colt.ui.ColtUiWidgetSet</param-value>
</init-param>
<!--<param-value>org.vaadin.artur.icepush.IcepushaddonWidgetset</param-value>-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ICEPush for Portlets</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>


После этого работают обновления, инициированные сервером.

PS: Не забудьте добавить pusher в mainWindow.

вторник, 10 мая 2011 г.

Ubuntu 11.04 Natty Narwhal

Уже первый день с новой Убунтой и все чаще на ум приходит слово epic fail.

Идея мне очень понравилась - минимизация места с рутинными барами. Объединение меню, title бар, task bar (вернее top/bottom panel). Это конечно рулез. Но исполнение ...

Во первых Unity. Конечно он модный и все такое, но нельзя же так сразу - как обухом по голове. ИМХО главное преимущество линукса в том, что он дает пользователю контроль над компьютером. Под виндой вечно непонятно что делает эта коробочка и как ее заставить делать то, что нужно тебе. В Линуксе это конечно еще больше непонятно, зато есть теоретическая возможность понять, прочитав горы манов, перелопатив полинета и спросив знающих людей и даже подправить - исходнички то вот они. Конечно никто этого не делает, но греет сама мысль. А тут бац. "Мы тут, в убунте решили что интерфейс должен выглядеть вот так. И все". Как то это непривычно-недемократично для линукса. Потому что как end-user система он объективно проигрывает и маку и винде. А тут получается ни панельку убрать, ни аплетик добавить. Вообще для линукса нормально было бы иметь 3 уровня настройки: для идиотов, графичскую и текстовую. В одном месте держать user level и в зависимости от этого давать разные возможности. Причем текстовую настройку как то интегрировать.

Ну ладно, Unity, снес - не нравится мне отсутствие возможности добавлять свои апплеты. Да и левая панелька не понравилась - поставил Gnome Session - у меня и раньше работал window-picker-applet и maximus. Так что top bar и window title у меня и раньше были вместе. Правда объединить window title с меню не удалось, зато поменял Window Picker на Namebar. Он не создает отдельную иконку для каждого запущенного приложения и в top bar показывает title только максимизированного окна (а не текущего) и еще имеет кнопки свернуть/развернуть. Еще вариант поставить DockbarX и Indicator Applet Appmenu - чтобы все-таки интегрировать меню в панель, но я остановился на Window Selector Applet. Indicator Applet Appmenu не стал ставить потому что он не умеет перекрываться с window title, как в Unity. Да и к тому же я посмотрел - у меня все приложения на java, а у них меню по определению с системным не интегрируется. В общем выглядит это вот так

Если кто узнает как еще и интегрировать top bar с application menu так, чтобы меню появлялось вместо window title дайте знать.


Firefox новый тоже порадовал своим минимализмом. И заодно стал похож на Google Chrome. Правда при попытке расставить свои кнопочки он делал что-то ужасное - все куда то пропадало и приходилось настраивать заново. Скорее всего проблема была в Google Toolbar - я его на всякий случай запретил. При попытке переместить кнопку Gmail из Google Toolbar на другую панель Firefox как то наполовину выходил из режима настройки панелей. И опять зайти в этот режим было уже нельзя без перезапуска. Но сейчас зато выглядет так как хотелось бы.

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


А вот потом начались косяки. При перезагрузке все повисло намертво после логина во время запуска иксов. И вроде как оно ругнулось что не может запустить Unity на моем железе. Ладно, запустил классическую Gnome Desktop. Все равно иногда виснет.

Хотел запустил VirtualBox. Оно мне пишет, что драйвер не установлен. И драйвер устанавливаться не хочет - говорит версии кернела и сорцов не совпадают. Я на всякий случай удалил старые сорцы ядра вместе со старыми ядрами - все равно не совпадает. Посмотрел - действительно в make файле версия не такая, как в uname, зато есть какой-то маппинг. Крутил-крутил, потом случайно обнаружил, что вышла новая версия Virtualbox, поставил ее - она поставилась.

Ну в общем впечатление такое, что это какая-то бета. Я и обновляться то стал только из-за того, что у меня проблемы с видеодрайвером были если экран на ночь выключить. Но теперь уж ни за что обновлять релиз больше не буду. По крайней мере не раньше чем через 2-3 месяца после релиза. Тем более, что убунта планирует отказаться от гнома и от xorg. Чет меня это беспкоит.

Еще хочу гном 3.0 поставить.

Ппц. Из-за проблем с видеодрайвером вообще не могу загрузиться.
Проблема в дровах, видяхе и подключенных мониторах
Нотик Lenovo Thinkpad 410
Видео Intel Integrated GMA HD (HD Graphics)
Вот бага https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/745112 Будем ждать когда фикс включат в релиз.

PS. Гном 3 поставил, вроде ничего, но собака не конфигурируемый. Оне пошли в другую сторону от КДЕ. В КДЕ 4 можно настроить все (например когда дернулась рука), в гноме 3 настроить ничего нельзя. Надо писать джаваскрипты чтоб добавить апплетик. Старые апплеты не работают. Ё. Дополнения к новому гному есть, но поскольку он новый, то мало. Например тут gnome-3.ru. Панель управления после установки гнома сильно победнела. Переключателя раскладки почему то не видно.

PS1. Маленькая победа. Вот тут нашел как выключить флаги и стала видна раскладка клавиатуры: linux4me.org

PSS. У меня maximus стоит. Это такая програмка, которая убирает window caption когда окно развернуто в full screen. И иногда (особенно когда я максимизировал окно на не основном мониторе) окно оставалось максимизированным навсегда. Кнопки Unmaximise, Move в меню окна (Alt+Space) дизэйблились и ниче с окном я сделать не мог. А тут выяснил - есть магическая кнопка F11, которая переключает окно в этот режим - достаточно еще раз нажать кнопку и вопрос решен.

PS4. Бляпиздуцсцуконах нецензурная брань. Ну ладно перестал работать виндовый сетевой принтер. Хотя он нужен примерно всем пользователям линукса в корпоративном секторе и должен работать как часики из коробки. Но блять когда периодически отваливается клавиатура это уж извините я ебу и плачу. Так и получается, что к 2020 году в линуксе будут решены практически все проблемы с подключением клавиатуры и добавлена своместимость со всем известному торвальдсу мышами. Upd. Говорят, что можно попробовать отключить irqbalance и клава перестанет отваливаться: пример. Но мне это не помогает. Что характерно если сделать sleep-wakeup, то клава не появляется. Если сделать switch user, то в окне ввода пароля клава начинает работать, а при возврате в залогиненую X сессию клава опять не работает.

пятница, 29 апреля 2011 г.

История одного адреса

Все читали рассказ "История одного байта". Про программера-системщика.
Я предисловие (довольно популярное) увидел:

Во всех источниках, где я встречал его сведения об авторе были просты и незатейливы: [C] Dmitry Galuscenko. Если кто-то может указать сайт или e-mail — напишите в комментариях, я с удовольствием добавлю.

Начал искать.

Итак первая ссылка на архив сообщений от адреса 2:5100/14.4 . Как и ожидалось автор - фидошник. Занимается в том числе разработкой устройств для медицины.
Судя по 2:5100 - из Риги.

Судя по "Учитесь обоpоняться" еще и похоже что доктор с медицинским образованием.
Ссылка
Нодлист дает информацию о сисопе:
2:5100/14: als.tycobka.lv, Riga
+-Unpublished- , Sysop: alexander smishlajev


К сожалению информацию о поинте 2:5100/14.4 я почему-то не нашел, но увидел несколько сообщений от сисопа: "alexander smishlajev, 2:5100/14.4" - так может одно из имен это псевдоним? Можно попробовать подключиться к фидо и написать туда, в Ригу.


ЗЫ: наткнулся в хабре на статью про гипертекстовый фидонет. Я тоже долго плакал по поводу смерти фидо и желал его возрождения (я еще не знал тогда, что фидо родило кащенку). На самом деле фидо возродилось в социальных сетях. Суть - отсутствие анонимизации, отношения, сообщества. Так что надо было не плакать, а думать и делать.

Unix way & ubuntu

А вот не люблю я unix way. (Что такое Unix way - это когда есть большой набор маленьких кубиков. Каждый кубик реализовывает маленький функционал, а потом эти кубики складываем и получаем большое ... систему. Общаться друг с другом кубики очень любят через pipe - труба. То есть просто текстовое такое общение. В результате в серединку между кубиками можно влепить еще любое количество других кубиков и получить мега кубик - ну типа это я так Unix way понимаю).

Почему я не люблю этот way - потому что не дело это - использовать текст там, где должно использоваться нормальное API. Ну вот возьмем например звук. Вместо того, чтобы придумать и реализовать нормальное Sound API в unix сделали /dev/dsp. Мега удобно - чтобы проиграть wav файл нужно сделать cp _file_name_.wav /dev/dsp (wov!). Не знаю когда это придумали, но к 2011 году уже почти все проблемы со звуком в линуксе решены и почти всегда звук работает без проблем. А все почему? Потому что кубики вместо нормального АПИ и вместо того, чтобы нормально сообщить код ошибки при вызове метода АПИ ошибка возникает где-то в логах, которые лежат ... - ну это уже вторая проблема. Вы не можете найти логи? Вы лох. Вы не можете понять что в этих логах написано - да вы просто лох. Не можете настроить звук - да вы просто лошарик какой-то. Вам не место в линукс сообществе - ставьте маздай и гуюшечки.

Ну а то, что никаких стандартов на логи нет, это уже дело десятое. И поэтому в принципе формализировать и автоматизировать устранение неполадок нет возможности никого особо не волнует. Видимо создатели unix way предполагают наличие хакера с дебагером для настройки звука на каждом конкретном экземпляре работающего unix. Почему я об этом говорю - у меня стояла мандрива, в которой почему то звук начинал работать только после того, как я заходил в какой то апплет управления и нажимал кнопку настройки звука. И это евм в 2009 году - когда этих стандартов на оборудование понаделали столько, что только кретинская OS/2 имеет права назвать железку "неопознанным устройством".

Ну или ppp. Вот есть стэк в винде. Ну может он и говно, но по крайней мере выдает код ошибки. По коду ошибки служба поддержки провайдера хотя бы может сказать (с некоторой долей вероятности) в чем проблема - провод, оборудование провайдера, оборудование клиента. Что есть в unix way? Логи. Где лежат - х. знает потому что тут целый зоопарк директорий, особенно на маленьких автоматических устройствах. То, что пишут в эти логи одни прогаммы, другие прочитать скорее всего не смогут потому что никаких стандартов на эти логи нет и понятное дело никакой гарантии что в разных версиях пишут одно и то же нет и не будет никогда. Unix way мать его, кернигана и ричи вместе со всей белой лабораторией.

Ну или вот вчерашний пример - наши дни, ubuntu. Дистрибутив линукс для людей. Настраиваем VPN по PPTP. Заходим куда надо, прописываем все, запускаем, не работает. В лог выдается малопонятная ошибка. Ищем в инете - оказывается надо включить режим отладки и тогда (!) перед нужно будет прочитать сообщение, которое вываливается в лог перед этой ошибкой. Ну понятное дело через UI линукса для людей включить debug нельзя. Запускаем руками и оно ... работает. Это уж совсем подлость. Я уж не говорю, что в апплете настройки VPN нет возможности установить новые доступные из репозитория типы VPN соединений.

Ну или тот же самый CVS клиент, логи которого надо парсить если хочешь сделать интерфейс для него.

Короче засада полная. Не для людей это. Ну оно и понятно. Если протокол TCP/IP создается для проверки работоспособности сети с коммутацией пакетов во время атомной войны, то наверно уж он не будет идеален для мирной жизни. И таки да, не идеален нихера. Только вот сцуко такой пробрался в топ рейтинга популярности и теперь из-за него мы имеем непонятные проблемы. А ля массовая рассылка видео, передача трафика по каналам с разной пропускной способностью. Также и Unix был разработан для решения своих задач, а не для людей. Так он и останется ядром.

Не зря. Не зря называют линуксоидов красноглазыми. Но мы продолжим ждать виндекАпец.

Лично я думаю, что все должно просто работать. Из коробки, без бубнов, сразу и как надо. Учитывая, что мир полон дерьма жизни надо иметь это ввиду и во все настройки добавлять кнопоку "для бородатых одминов" в которой можно сделать все.

Чем плохо мало линукса

Появился очередной стандарт карточек памяти SD. Давно появился :). SDXC. Практически без ограничений на объем данных (в ближайшие 3-7 лет). В качестве файловой системы выбрана exFAT. Все хорошо, но только система эта проприетарная и в линуксе появиться не  сможет. Памятуя качество драйверов NTFS в линуксе и время их разработки можно предположить, что нормальные драйвера появятся в следующем веке. Так что придется линукс фотографам задвигать. Если конечно были такие фотографы-любители, которые предпочитали GIMP фотошопу.

Но дело то не только в этом. Дело в том, что еслиб количество пользователей линукс было хотя бы более 10% (а не около 1), то можно было б рассчитывать на какое то нормальное отношение от производителей железа.

Да и убунта та же самая (хотя и описанная, как продавшася микрософту в троне) при таком количестве пользователей может погибнуть - превратится в УГ - клон MS Windows на ядре 2.6. Кому это интересно? Свободный софт должен являться двигателем прогресса если прогресс остановился. Свободный софт должен быть результатом кооперации с целью получения преимуществ.

Как добраться в компанию jNetX

Открыл удивительный сервис от Яндекса Конструктор схем проезда . Очень понравилась идея. В 90% случаев карты используются именно для этого. Программировать не надо. Молодцы яндекс. Жалко редактирования нет.




Карта


Отмечено на карте:







  • Выход из метро Авиамоторная, поворачиваем во второй выход направо





  • Идем вдоль дороги. Переходим через дорогу на светофоре, идем дальше.Справа через дорогу рынок.





  • Слева длинное желтое 7-этажное здание. На первом этаже МТС, парикмахерская эконом класса





  • Слева светло желтое здание - Сбербанк, СитиБанк, бар Хмель и Солод, фитнес клуб Планета Фитнес.





  • После длинного желтого семиэтажного здания поворачиваем налево, обходим его, проходим мимо шлагбаума и заходим на территорию института





  • Заходим во двор, проходим мимо двухэтажного здания и видим высокое одноподъездное одиннадцатиэтажное здание. Заходим внутрь, говорим охранницам, что идем в компанию jNetX и поднимаемся на 11 этаж. Звоним в домофон и проходим.



  • Как добраться








м. Авиамоторная, ул.Авиамоторная 8а, корпус 12, 11 этаж, компания jNetX

При выходе из метро повернуть в второй выход направо. Идти вдоль дороги, через 230 метров будет перекресток со светофором - пройти прямо. После перекрестка слева через дорогу будет 7-этажное желтое длинное здание (офис МТС, вычислительный центр, парикмахерская эконом класса). За зданием МТС будет одноподъездный 11-этажный корпус (МТУСИ). Поднимайтесь на 11 этаж. Если упретесь в 8-этажный библиотечный корпус (тоже адрес авиамоторная 8а), обойдите его слева.