В аду я видел эти всплывающие чаты поддержи. Ужасно бесили, до тех пор пока не занёс их в блоклист. Ни разу не встречалось какое-то адекватное, не раздражающее внедрение, которое помогло бы в работе с сайтом. Обычно они перекрывают контент или как-то моргают, отвлекая и мешая просмотру сайта.
Отличный цикл статей! Афтар пиши ещё!!! Очень жалко, что не было такого, когда я только начинал разбираться с QML. Хотя, даже сейчас, полезно было почитать и разложить все знания по полочкам. QML на сколько прост снаружи, на сколько же сложен внутри.
По моему, именно из-за уборщиц эта идея провальная. Во-первых в эти лючки постоянно будет затекать вода. Во-вторых по краям и при их открытии в них будет скапливаться мусор. Делать в полу какие-либо отверстия — бредовая идея, имхо.
Итоги эксперемента: из 100 сообщений ответило только 5 человек. Первый ответил где-то на 55-м сообщении. Один раз удалось самому с собой пообщаться, в соседних вкладках :) Демаю как хаброэффект утихнет, так это будет единственный способ общения.
Это будет зоопарк. Зашел на сайт с Flash постать плагин для Flash, зашел на сайт с Silverlight, тоже поставь плагин, и для JavaFX поставь плагин, кто еще что придумает?
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import uno
from os.path import abspath, isfile, splitext
PORT = 8100
if len(sys.argv) < 4:
print 'Usage: oreplace SEARCH REPLACE PATH'
sys.exit(0)
inputFile = sys.argv[3]
searchString = sys.argv[1]
replaceString = sys.argv[2]
localCtx = uno.getComponentContext()
localSmgr = localCtx.ServiceManager
uresolver = localSmgr.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", localCtx)
ctx = uresolver.resolve( \
"uno:socket,host=localhost,port=%d;urp;StarOffice.ComponentContext" % PORT)
smgr = ctx.ServiceManager
desktop = smgr.createInstanceWithContext(
"com.sun.star.frame.Desktop", ctx)
document = desktop.loadComponentFromURL( \
uno.systemPathToFileUrl(abspath(inputFile)), "_blank", 0, tuple([]))
doc = document
if hasattr(document, 'getSheets'):
sheets = document.getSheets()
doc = sheets.getCellRangesByName(u'A1:AMJ1048576')[0]
if not hasattr(doc, 'createReplaceDescriptor'):
print 'Unknown document type'
sys.exit(1)
try:
replaceDesc = doc.createReplaceDescriptor()
replaceDesc.SearchString = searchString
replaceDesc.ReplaceString = replaceString
found = doc.replaceAll(replaceDesc)
document.store()
finally:
document.close(True)
(И не только в нем)
В конце должен остать только один…
1 мByte = 1.0