Skype inspired by me?
Sorry, this entry is only available in Czech.
Sorry, this entry is only available in Czech.
I have written some Python script using Trac API for handling tickets in this bug system. Unfortunately after some time running, it failed with error: IOError: [Errno 24] Too many open files.
I was checking my code and everything was OK. So I downloaded excellent tool called “Process Explorer“. In this program, you can watch any process.
In menu: View -> Lowe pane view -> Handles you can view all open handles by your program. There I found out, that there is bug in Trac, which is not closing the file handle of log file even when shutdown() function is called.
To fix it, it is necessary next to calling env.shutdown() also call this code:
if hasattr(env.log, '_trac_handler'): hdlr = env.log._trac_handler env.log.removeHandler(hdlr) hdlr.close()
Sorry, this entry is only available in Czech.
Sorry, this entry is only available in Czech.
Paradox is one of widely used manufacturer of home and company security systems. This company makes several security tools like sirens, IR detectors, etc. Here in Czech republic is Paradox even certified to secure military areas.
Do you trust this system? You should not. I have found very simple way how to unlock any area remotely, without knowing any password. The security bug is in Paradox’es IP100 module, which is absolutely unsafe.
IP100 is internet module which allows you to control (check zones status, lock, unlock) your house. Official description of this module about security says:
This is whopper. MD5 and RC4 is used only to encrypt the password, not to encrypt the communication. It means that man-in-the middle attacks can be performed, but it it’s pretty small bug compared to following :-).
I have discussed this bug by phone with Mr. Stephane Racicot (Vice-President Customer Relations of Paradox company). He let engineers from Paradox and local distributor (Mr. Mračna from Eurosat) to check this bug and they drew conclusion not beeing a big bug and maybe they will fix it in some future version.
Make your own decission, whether is it big or small one. I’d not like the feeling, that anyone can unlock my house and I’d strongly recommend potential customers to avoid Paradox company (not because making some mistake, but due their attitude to security and the will to solve problems).
I have found several commercial plugins for Outlook 2007 allowing sending bcc copy to all outgoing emails. Who would like to spend $30 for this stuff … in case when in Thunderbird it was pretty common feature.
After couple minutes, I have found free solution using VBA script.
Just put this code into VBAProject.OTM:
Private Sub Application_ItemSend(ByVal Item As Object, _ Cancel As Boolean) Dim objRecip As Recipient Dim strMsg As String Dim res As Integer Dim strBcc As String On Error Resume Next ' #### USER OPTIONS #### ' address for Bcc -- must be SMTP address or resolvable ' to a name in the address book strBcc = "someone@somewhere.dom" Set objRecip = Item.Recipients.Add(strBcc) objRecip.Type = olBCC If Not objRecip.Resolve Then strMsg = "Could not resolve the Bcc recipient. " & _ "Do you want still to send the message?" res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _ "Could Not Resolve Bcc Recipient") If res = vbNo Then Cancel = True End If End If Set objRecip = Nothing End Sub
Editor can be opened using Alt+F11 in Outlook 2007, exploring Project tree on the right side and adding Application - ItemSend handler using top comboboxes.
Also it’s neccessary to change security settings:
URLs:
class MyFormatter(logging.Formatter): def __init__(self, fmt=None, datefmt=None, encoding='windows-1250'): logging.Formatter.__init__(self, fmt, datefmt) self.encoding = encoding def formatException(self, ei): r = logging.Formatter.formatException(self, ei) if type(r) in [types.StringType]: r = r.decode('windows-1250', 'replace') # Convert to unicode return r def format(self, record): t = logging.Formatter.format(self, record) if type(t) in [types.UnicodeType]: t = t.encode(self.encoding, 'replace') return t def prepareFileAndConsoleLogging(soubor, urovenSoubor=None, urovenKonzole=None): # http://docs.python.org/library/logging.html global logging, libLogger if urovenSoubor == None: urovenSoubor = logging.DEBUG if urovenKonzole == None: urovenKonzole = logging.INFO #logging.basicConfig(level=urovenSoubor) # Soubor fileH = logging.FileHandler(soubor, 'a') fileH.setLevel(urovenSoubor) formatterF = MyFormatter( fmt='%(asctime)s|%(levelname)-8s|%(name)s|%(message)s|%(filename)s|%(funcName)s|%(lineno)d', encoding='windows-1250') fileH.setFormatter(formatterF) logging.getLogger('').addHandler(fileH) logging.getLogger('').setLevel(urovenSoubor) # Konzole console = logging.StreamHandler() console.setLevel(urovenKonzole) formatter = MyFormatter( fmt='%(name)s: %(message)s', encoding='cp852') console.setFormatter(formatter) logging.getLogger('').addHandler(console) libLogger.info(u'UNICODE: Logování inicializováno (diakritika: ščřžýáíé)') libLogger.info('STRING: Logování inicializováno (diakritika: ščřžýáíé)') libLogger.debug(u'Debug')