понедельник, 26 мая 2014 г.

Web 4.0 - личный взгляд.

Web 4.0 - личный взгляд.

Подобное в мире есть, и тут мало что нового, но реализация - большая редкость.

Вполне возможно, что это полный бред или где-то уже развивается.
По размышлению о современных веб сервисах, API и необходимых, но недоступных пользователю индивидуалыных  возможностях, появилась показавшаяся интересной мысль. Сейчас пользователям приходится пользоваться API, сторонними сервисами вроде <a href="https://ifttt.com/" target=_blank>IFTTT</a> или навешивать на браузер дополнение (типа GreaseMonkey), которое позволяет выполнять пользовательский скрипт на странице браузера. В итоге получаем трату времени на клики, затраты оперативной памяти и полная непереносимость: на другой ОС или другом компе приходится повторять всё с начала.
Удобно? Нет.
Поэтому, возможно, подобное может быть реализовано на уровне основного сервиса "(почти) всё в одном". В виде подгружаемых юзером в свой аккаунт:
~ плагинов (модулей, расширений - как в WordPress для админов),
~ что-то типа <a href="http://api.yandex.ru/wdgt/doc/dg/concepts/widget-definition.xml" target=_blank>Яндекс Виджетов</a> или <a href="https://developers.google.com/gadgets/docs/gs?hl=ru" target=_blank>Google Gadgets</a>
~ Javasсript кода, который загружается в браузер пользователя по аналогии с кастомизированными стилями и запускается уже на клиенте.

Плюсы:
~ Работает всегда, когда пользователь зашёл в свой аккаунт (хотя версия браузера может иметь значение:D)

Минусы:
~ кроме случая с JS кодом для клиента, нагрузка на сервер (впрочем, API запросы тоже не бесплатны)
~ потенциальные проблемы с безопасностью сервиса. (теоретически решаемые)

UPD. Часть API используется действительно для взаимодействия сервисов. Часть же просто работа с внутренним контентом: удалить все письма от %username%, обработать... и т.п.
“Ощущение, будто время зверски торопит, обычно является сигналом тревоги, обязывающим попридержать темп, действовать помалу и с соответствующей обдуманностью...” © Сапковский, "Башня Ласточки"


Звонили из некоторой конторы и навязчиво предлагали сменить счётчик воды, ссылаясь то ли на просроченную поверку, то ли прошедший срок годности. (Что показал поиск в интернет - очевидно.)
Важно:! Хорошая и универсальная идея (сказать знакомым, распечатать и положить к телефону): У звонивших спрашивать:
— кому звонят (-ваше имя - если у них действительно есть ваши документы, ваше имя они знают:) ), и/или адрес
— имя-фамилию того, кто звонит
— Телефон и адрес конторы для обратной связи
Номер гос. аккредитации
Обязательные слова: «Спасибо, мы вам перезвоним, когда нам будет удобно.»

Вообще в такие минуты ("левых" звонков) меня последнее время пробирает лихорадочный (что не очень хорошо отражается на голосе:( ) охотничий азарт: "Не скажете информацию о себе? Никакого тогда разговора!". Впрочем, номер аккредитации и фамилию (как звонившего, так и ответственного квартиросъёмщика) спросить всё-таки забыл:(.

Будущее за городскими телефонами, если они не вымрут, конечно, за аппаратами, которые могут слазить в интернет и проверить номер вызывающего абонента на мошенничество (хоть примитивным filter или grep)

четверг, 27 марта 2014 г.

Подсказка для работы с консолью:
По умолчанию консоль Windows работает с папкой текущего пользователя системы. Чтобы при каждом запуске консоли не производить смену этой директории, следует для необходимой папки вызвать контекстное меню (предварительно зажав Shift) и выбрать команду "Open command window here".

среда, 26 марта 2014 г.

Parallel keynotes.

Нет блокировкам. Да - future (Py, Java), очередям (Quenue) и, в случае Python-а yield from.

Reactor - конкурентное программирование, цикл, для ОС - один поток. В Stackless и Python 3.4 интегрирован. И такой путь - лучший.

http://www.youtube.com/watch?v=2mfQJaddkNs

Библиотеки:

Gevent
asyncio (бывший tultip)

Работа с потоками и GIL распространённая проблема, отсутствующая в Си, С++ и, может быть, Java.

Так же цитаты хорошего человека:
http://alenacpp.blogspot.ru/2013/11/blog-post.html
Итак, Рихтер рекомендует. (Никаких откровений, впрочем)
Не надо плодить потоки, потому что переключение контекстов - вещь дорогая. Разумно делать столько потоков, сколько в машине есть ядер.
Если уж поток создали, постарайтесь его не блокировать без крайней необходимости. Речь идет не только о мьютексах, но и о Join, Sleep.
 
Не надо играть с thread pool. "Leave the thread pool alone".

Ну а также volatile в C# и в C++ разные. В C# volatile "cannot cache and fence", а в C++ только "cannot cache".