1. Power Loss Chatter Relay Circuit


    It is a DC circuit launches the relay when the power comes off using a capacitor charged when the power was on, so it is not needed any extra power for the relay.
    You can increase the size of this C1 to increase the delay time, the power is 6v.

    R1 and R2 must change to config it to be stable if you changed the DC power voltage.

    I have a server computer connected to a UPS that give me 10 minutes backup time when the main power goes off, at this time i must shutdown the computer.
    The problem my UPS doesn’t have any feature to send that signal to my computer, and any new UPS will be expensive.
    Also my computer has no any COM port to accept the old type of UPS.

    The circuit powered by a transformer connected directly to main power not to the UPS.

    I will take two wires from the Power Button (on the mother board) and link it to this relay. When the main power off, my computer still on, and gets a signal to shutdown from that relay, as like if we press the Power button, we need to config our system (Windows 2003) to take this action.

    Open RegEdit and add these keys

    The  key will not ask there is users still using your server, it is shutdown immediately.

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]

    [HKEY_USERS.DEFAULT\Control Panel\Desktop]

    Also you must change in group policy in security options

    “Shutdown: Allow system to be shut down without having to log on”

    change it to Enabled
    Also, I configured my bios to turn on when the AC comes back, so when the main power come, my computer will turn again.

    This is my first circuit at my age, so do not trust with it 😀 , but it is worked fine for a week for me.

    I discussed about this circuit in AllAboutCiruites forum and thanks to wayneh for help.

  2. Messages MsgBox in MiniLib

    We finished adding MsgBox.pp and GUIMsgBox.pp in minilib

    Both units for Pascal language, FreePascal and Lazaurs, but not worked for Delphi (sorry 😛 ).

    Only you need to add MsgBox to your uses in the unit to use it, but you need to add GUIMsgBox once in the whale project, or it will work as console application.

    Useing by call Msg.Yes or Msg.OK for example, there is many other calls, like Msg.Input or Msg.Password to ask for password.

    If you not use GUIMsgBox for Lazarus, it will work as console or you can switch to console even if GUIMsgBox is used, by calling Msg.Switch(‘CONSOLE’);

    Msg.Yes(‘Do you want to save?’)
    Mean Yes/No but the default button is Yes

    Msg.No(‘Do you want to save?’)
    Mean Yes/No but the default button is No

  3. Windows users, do not use AutoCrlf in git

    If you are using git to fetch or modify your codes on Windows, do not enable this feature.
    If it is enabled, the source code fetched as CRLF and commited as LF, that was good, but most of editors handle (Unix EOL) LF, so you not need to fetch it as (Window EOL) CRLF.

    If you are like to use LF in your PHP code in windows and keep it as it in the original code repo, do not enable it.

    If you already enabled it, do not change before commit your work and push it, after that, change it to false, then revert all your code, git now fetch the files as LF.

    EOL = End of Line.

  4. We started new project MiniEdit

    We started the new project MiniEdit based on old one LightPHPEdit but on Lazarus/FreePascal to make it work on Linux.
    MiniEdit is open source editor, simple and fast one work as portable application.
    It is editor with code highlighter made for PHP but i work on it to use Pascal projects, so it need time to make it.
    Now i am working on addons for it (internal addons) to integrate Debug and SCM(SVN and GIT) tools.

    Download the source from github.com

  5. ANN: minibidi.c was ported to minibidi.pp

    We have ported the minibidi.c to FreePascal minibidi.pp with some modifications to be workable with Pascal, in minilib project.

    This file process the Unicode Arabic characters to make Joining/Shaping and make it Right To Left readable, in another hand it is prepare the string variable (widestring) to be printed in Right To Left, it is like FriBidi but more simple and in Pascal.

    The original file written by Ahmad Khalifa from arabeyes.org, i published it with same license.

    Also we port cp864 CodePage and added to unicodes directory, it is useful to convert a Unicode string (widestring) to that old code page cp864.

    cp864 used by most POS printers (thermal) and Customer Display, now with minibidi.pp you can proceess the string to be printed in Right To Left order and then convert it to cp864 codepage then print it to ESCPOS printers.

    This an example how to print to ESCPOS printer

    Used it with Terminal Display


    The code still need more work, but until now it is usable for me 🙂


  6. How to set up NAT Routing on Windows XP

    Good article and worked for me




    pushd routing ip nat
    set global tcptimeoutmins=1440 udptimeoutmins=1 loglevel=ERROR
    add interface name="NIC2" mode=FULL
    add interface name="NIC1" mode=PRIVATE