Article-X е проста система за писане на статии от гост-потребители. Системата я написах така, че да наподобява малко CMS. Може да се настройва.

Подробности и видео урок как се ползва могат да се намерят тук:
Aricle-X – Guest Blogging System
Фронт-демо на системата тук.
Category Archives: Мои програмки
Simple BG TV Player – прост rtmpdump плеар за гледане на BG-телевизии
Програмата я написах една вечер, когато се прецака кабелната в къщи. Използвал съм rtmpdump за прихващане на стриймовете. Плеъра, който излъчва стрийма е Mplayer за Windows – беше най-малкия плеър, който намерих и който може да излъчва поточно rtmp видео. Писал съм го на AutoIt 3, че за такива нужди е възможно най-лекия и бърз вариант.
Към момента може да плейва следните телевизии:
- BTV
- NovaTV
- TV Europa
- БНТ
- БНТ HD
- БНТ 2
- Kanal 3
- Sportal
Не, че това са ми любимите телевизии, но тия ми се мернаха, като търсих с какво да попълня списъка.
При стартиране на някоя от телевизиите се отваря допълнителен прозорец, който показва буферирането на стрийма и разни други интересни неща. Прозореца лесно може да се скрие.
Програмата работи под 64bit Win. Тествана е под WinXP. изглежда така:

Нова версия v.0.9 (22.01.2017) – променена е концепцията на гепене на стрийма, като вече не ползвам rmpt-дъмп. В тази версия ползвам ffmpeg, затова и архива е по-голям (около 20mb).
Simple BG TV Player – v.0.9.beta-x64.zip
Simple BG TV Player – v.0.9.beta-x86.zip
—–
Стари версии:
Изтегляне v.0.8 64bit (в архива е и сорскода): Simple BG TV Player – v.0.8.beta.rar
Изтегляне на v.0.8 32bit версия: Simple BG TV Player – v.0.8.beta-x86.rar
Старата версия все още е достъпна от тук: v.0.7.rar
Нямам време за постоянни ъпдейти на стриймовете, така че се извинявам на всички, които ми писаха да оправя кода. Току що във v.0.4 от (13.03.2016) оправих всички стриймове. Добавих някои канали – БНТ, БНТ HD, БНТ2, SPortal. Махнах City TV и Алфа. Във v.0.5 оправих объркването на БНТ с БНТ HD. От v.0.5 трябва да са добавени и двете. Във версия 0.6 е променен сървара за BTV.
Важно! 03.01.2017 Във v.0.8.beta е променен напълно кода. Адресите на стриймовете, както и някои настройки на програмата са изнесени във външен ini-файл: settings.ini. Това позволява всеки потребител сам да добавя или премахва телевизии от списъка, без да се налага прекомпилиране от сорс-код. Пък и хората имат различни интереси по отношение на телевизиите, плюс това не всички са програмисти. Кода е лек и кратък, на принципа – “направи го елементарно, но да върши работа”. Beta – това го сложих, защото ini-файла се зарежда релативно и все още нямам отзиви, дали програмата се плейва нормално при потребителите. Ето изглед от ini-файла:

INI-файла позволява да се замени плеъра (примерно с VLC), както и дъмпера (примерн с ffmpeg). Редактира се с най-обикновен текстов редактор.
Ето една статия, която показва възможностите за редакция на settings.ini:
Simple TV Player – трикове с ini-файла
А това е ini-файл с добавена телевизия BNT World: settings_v.8+BNT_Wolrd.ini.zip
ПС: Програмата е публикувана с образователна цел. Можете да я теглите, променяте, публикувате и използвате целия код или части от него. Основната ми цел, беше да се запозная по-добре със онлайн-стриймването и начините на защитата му.
ПС2: Ако искате да гледате български телевизии под Android устройство, погледнете статията ми: Гледане на български телевизии (БНТ, bTV, Nova…) под Android с XMTV Player
За любителите на rtmpdump-инга имам Новогодишен подарък – серия от кратки урочета, които се надявам да доразвия, като запазя простотата и достъпността:
rtmpdump tutorial – урок за начинаещи
———-
Nota bene:
Можете да погледнете и статията Гледане на български ТВ канали с Kodi. Добавил съм кратко видео, което показва стъпките от инсталацията под Windows до гледането на най-гледаните български ТВ-канали. Програмата може да се инсталира на всички популярни устройства и операционни системи, включително Android и Apple.
Windows AutoIt Gestures – управление с жестикулации с мишката
Написах простичка програмка за управление на Windows с мишката. Писана е на AutoIt. Може да се напасне лесно за всякакви команди, като съм оставил възможност за редакция на един ini-файл, който контролира цялата хава.
В момента са добавени 8 базови функции, които се изпълняват от десния бутон на мишката.

Кратко видео с функционалността може да се види тук:
[flv:https://blog.nediko.info/examples/AutoIt/windows_gestures/Windows_Gestures.flv examples/AutoIt/windows_gestures/win_gestures.png 480 397]
Целия сорс код на програмата:
#include <Misc.au3>
AutoItSetOption("WinTitleMatchMode", 4)
$dll = DllOpen("user32.dll")
$ini = "functions.ini"
$func1 = IniRead($ini,"HotKey","Function1",@WindowsDir&"\system32\calc.exe")
$func2 = IniRead($ini,"HotKey","Function2",@WindowsDir&"\system32\calc.exe")
$func3 = IniRead($ini,"HotKey","Function3",@WindowsDir&"\system32\calc.exe")
$func4 = IniRead($ini,"HotKey","Function4",@WindowsDir&"\system32\calc.exe")
$func5 = IniRead($ini,"Gestures","Function5",@WindowsDir&"\system32\calc.exe")
$func6 = IniRead($ini,"Gestures","Function6",@WindowsDir&"\system32\calc.exe")
$func7 = IniRead($ini,"Gestures","Function7",@WindowsDir&"\system32\calc.exe")
$func8 = IniRead($ini,"Gestures","Function8",@WindowsDir&"\system32\calc.exe")
$funcl1 = IniRead($ini,"Label","Function1",@WindowsDir&"\system32\calc.exe")
$funcl2 = IniRead($ini,"Label","Function2",@WindowsDir&"\system32\calc.exe")
$funcl3 = IniRead($ini,"Label","Function3",@WindowsDir&"\system32\calc.exe")
$funcl4 = IniRead($ini,"Label","Function4",@WindowsDir&"\system32\calc.exe")
$funcl5 = IniRead($ini,"Label","Function5",@WindowsDir&"\system32\calc.exe")
$funcl6 = IniRead($ini,"Label","Function6",@WindowsDir&"\system32\calc.exe")
$funcl7 = IniRead($ini,"Label","Function7",@WindowsDir&"\system32\calc.exe")
$funcl8 = IniRead($ini,"Label","Function8",@WindowsDir&"\system32\calc.exe")
While 1
Sleep ( 500 )
ToolTip("")
If _IsPressed("04", $dll) Then ; Moje da se smeni s drug buton na mishkata
$ori = MouseGetPos()
SplashImageOn("","gdot.bmp","30","30",$ori[0]-15,$ori[1]-15,1)
Do
Sleep(100)
$cur = MouseGetPos()
If $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] > 100 Then
ToolTip($funcl1)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] > 100 Then
ToolTip($funcl2)
ElseIf $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] < -100 Then
ToolTip($funcl3)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] < -100 Then
ToolTip($funcl4)
ElseIf $ori[0] - $cur[0] > 50 Then
ToolTip($funcl5)
ElseIf $ori[0] - $cur[0] < -50 Then
ToolTip($funcl6)
ElseIf $ori[1] - $cur[1] > 50 Then
ToolTip($funcl7)
ElseIf $ori[1] - $cur[1] < -50 Then
ToolTip($funcl8)
Else
ToolTip("")
EndIf
Until Not(_IsPressed("04", $dll));Moje da se smeni s drug buton na mishkata
$cur = MouseGetPos()
If WinActive("classname=ExploreWClass") Or WinActive("classname=CabinetWClass") Then
If $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] > 100 Then ; Nagore i naliavo - Back
Send($func1)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] > 100 Then ; Nagore i nadiasno - Forward
Send($func2)
ElseIf $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] < -100 Then ; Nadolu i nalqwo - Minimize
Send($func3)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] < -100 Then ; Nadolu i nadiasno - Close
Send($func4)
ElseIf $ori[0] - $cur[0] > 50 Then ; Naliavo - My Docu
ShellExecute($func5)
ElseIf $ori[0] - $cur[0] < -50 Then ; Nadiasno - Disc D:\
ShellExecute($func6)
ElseIf $ori[1] - $cur[1] > 50 Then ; NAGORE - Calculator
ShellExecute($func7)
ElseIf $ori[1] - $cur[1] < -50 Then ; NADOLU - Notepad
RShellExecute($func8)
EndIf
Else
If $ori[0] - $cur[0] > 50 Then ; Naliavo - My Docu
Run($func5)
ElseIf $ori[0] - $cur[0] < -50 Then ; Nadiasno - Disc D:\
Run($func6)
ElseIf $ori[1] - $cur[1] > 50 Then ; NAGORE - Calculator
Run($func7)
ElseIf $ori[1] - $cur[1] < -50 Then ; NADOLU - Notepad
Run($func8)
Else
SplashTextOn("Gestures","No action","250","20","-1","-1",2,"","","")
Sleep(500)
SplashOff()
EndIf
EndIf
SplashOff()
EndIf
WEnd
DllClose($dll) |
За да се промени функционалността на жестикулациите, трябва да се редактира секцията “Gestures” във файла functions.ini:
[HotKey] Function1 = !{LEFT} Function2 = !{RIGHT} Function3 = !{SPACE}N Function4 = !{F4} [Gestures] Function5 = explorer.exe C:\ Function6 = explorer.exe D:\ Function7 = calc.exe Function8 = Notepad.exe [Label] Function1 = Back Function2 = Forward Function3 = Minimize Function4 = Close Explorer Function5 = Disk C Function6 = Disk D Function7 = Calculator Function8 = Notepad |
Секцията “Hot Key” също може да се редактира. Информация за командите в AutoIt тук:
Затварянето или временната пауза на програмата става от тук: HotKey-help.html

Изтегляне за 32bit Windows: Windows AutoIt Gestures – 32bit
Изтегляне за 64bit Windows: Windows AutoIt Gestures – 64bit
MS Word search strings – търсене на думи в Word файлове
Проста програмка за търсене на думи в MS Word файлове. Програмата е само за 32-bit Windows. Тествана е само под WinXP, но може би ще работи и под други OS.
Писана само за трнировка. Разполага само с базови възможности. Би могло да и се добавят доста повече опции, като рекурсивно преравяне на директории, търсене на кирилица, търсене с регулярни изрази, запазване на резултата в текстов файл и т.н. Към момента ги няма тия дивотии, но ако ми текне музата някой ден може и да я пооправя. Използвал съм 2 езика за програмиране – AutoIt и Perl. Използвах компилатор-пакетера pp, за да компилирам Perl-файла.
Програмата е с отворен код и ако на някой му се занимава, може да си я пипне. Изглежда така:

Сорс кода:
AutoIt-файла
#include #include #include #include #include #include Local $line $Form1 = GUICreate("Search in word files", 621, 473, 192, 124) $Label2 = GUICtrlCreateLabel("Text to Find", 8, 13, 60, 23) $Rezult = GUICtrlCreateEdit("", 8, 64, 609, 369) ; GUICtrlSetData(-1, "Edit1") $String = GUICtrlCreateInput("", 80, 8, 393, 21) $SelectDir = GUICtrlCreateButton("Select Dir", 8, 32, 65, 25) $Directory = GUICtrlCreateInput("", 80, 32, 393, 21) $Search = GUICtrlCreateButton("SEARCH", 480, 8, 137, 49) $Help = GUICtrlCreateButton("?", 584, 440, 25, 25) $Label1 = GUICtrlCreateLabel("--==[ Programming by Nedialko Voinigovski ]==--", 8, 448, 444, 17) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $SelectDir _seldir() Case $Search _search() Case $Help _help() EndSwitch WEnd func _seldir() $outfolder = FileSelectFolder("Choose a folder.", "") GUICtrlSetData($Directory, $outfolder) EndFunc func _search() $command = @comspec & ' /c ws.exe' & ' "' & GUICtrlRead($String) & '"' & ' "' & GUICtrlRead($Directory) & '"' $cmd = Run($command, @WorkingDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) $line = "Wait ..." & @CRLF While 1 $line &= StdoutRead($cmd) If @error <> 0 Then ExitLoop Sleep(1000) GUICtrlSetData($Rezult, $line) WEnd $line &= "--------------------------" & @CRLF & "All done!" GUICtrlSetData($Rezult, $line) EndFunc func _help() MsgBox(0,"HELP","Програмата е комбинация от езиците за програмиране" &@CRLF& "AutoIt (за графичната част) и Perl (за ровичкането в Word-файловете)." &@CRLF&"Има възможност да се използват PCRE (perl регулярни изрази) за търсене в файловете, но " &@CRLF&"все още липсва добра поддръжка на кирилица."&@CRLF&@CRLF&"За да работи всичко нормално трябва и двете exe-та да са в една директория.") EndFunc |
Perl-файла, който върши съществената работа:
use Win32::OLE; use Win32::OLE::Enum; use Cwd 'abs_path'; $dir = $ARGV[1]; chdir $dir; @files = <*.doc *.docx>; $find = $ARGV[0]; foreach $file (@files) { $doc = Win32::OLE -> GetObject(abs_path($file)); open (FH,">jgfd75w43589azwq210"); $paragraphs = $doc->Paragraphs(); $enumerate = new Win32::OLE::Enum($paragraphs); while(defined($paragraph = $enumerate->Next())){ $text = $paragraph->{Range}->{Text}; print FH "$text\n"; } $doc->Close; close FH; open (FH,"<jgfd75w43589azwq210"); while ($line = ) { if($line =~ m/$find/i){ print "$find\t-->\t$ARGV[1]\\$file\n"; last; } } close FH; unlink("jgfd75w43589azwq210"); } |
Пакетите за Perl, които ми бяха необходими за компилирането:
gcc environment - 3.4.5 (mingw-vista special r3) PAR Packager, version 1.009 (PAR version 1.002)
Компилирането на Perl стана елементарно. Просто написах в промпта:
pp search_in_word.pl |
Програмата може да се изтегли от тук: MS Word Search
Ohm Calculator за реотани на електронни цигари на Excel
Проста програмка на Excel за изчисляване на съпротивлението на coil-а за изпарител на електронна цигара.
Най-интересното във файла е, че съм използвал именувани полета, за да създам нещо като база данни от която се извличат данните.

Файла може да се изтегли от тук: Ohm Calculator – e-cigarette