Excel VBA add row – добавяне на ред с Vba в Excel

Днес ми се наложи да добавям доста редове в Excel таблица, която беше предварително форматирана. Добавянето и форматирането на редовете един по един е хамалска работа, затова реших да напиша простичък макрос на VBA, който да свърши работата. Кода на макроса е:

Private Sub CommandButton1_Click()
    ActiveCell.Offset(1).EntireRow.Insert
    ActiveCell.EntireRow.Copy
    ActiveCell.Offset(1).EntireRow.PasteSpecial Paste:=xlPasteFormats, _
        Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

Кода го вкарвам в Shee-та:
Excel VBA add code to Sheet1
За да го стартирам се вижда, че съм използвал бутон, вкаран в Shee-та:
Excel VBA - добавяне на ред
Екселския файл може да се изтегли от тук: Excel VBA add row
Ето и едно видео, което показва цялата операция:
Excel VBA add row
[flv:https://blog.nediko.info/examples/excel_VBA_add_row/Add_row.flv https://blog.nediko.info/wp-content/uploads/2012/06/excel_addrow_03.jpg 472 388]

Share and Enjoy !

Shares

Анализ за търсене на грешки

Напоследък ми се наложи да се запозная с няколко системи за търсене грешки. За да съм полезен на себе си ще постна екстрактнато и опростено инфо, което да ме подсети. В общи линии има 2 популярни системи:

1. Матричен анализ за търсене на грешки
Матричен анализ за търсене на грешки
При този анализ се прави простатаблица с частите на определен обект. Важно е да се отбележи всяка част каква функция изпълнява, както и кои функции с кои части са свързани. Там където липсват хиксчета “x”, значи нещо е е наред.

2. Стъпков анализ за търсене на грешки
Стъпков анализ за търсене на грешки
При този анализ се обръща внимание на отделните стъпки от един процес. Целта е да се проследи ако в крайната, най-малка стъпка се получи проблем, какво “нагоре” би произтекло от този проблем. Какви щети ще доведе проблем в определена стъпка от процеса.

На базата на тези системи са създадени методики за търсене и анализ на грешки. Една интересна методика е “5-те ЗАЩО?“, в която се наблюдават поотделно 5-те основни фактора, които могат да доведат до грешка:

  • човек
  • машина
  • метод
  • материал
  • околна среда

При този метод се чертае диаграма тип “рибена кост” с много разклонения.

Share and Enjoy !

Shares

Ченге скочи от рейса и обезвреди крадец – холивудски екшън по български

Тази новина ме разби! Мислех си, че такива неща могат да се видят вече само по филмите. Подобни истории ме карат да вярвам, че все още има останали човеци в тая България.

ЙОРДАН ЙОЧЕВ
16.03.2012
Полицай, работещ в МВР едва от 3 месеца, скочи от рейс и хукна да преследва въоръжен бандит, пребил и ограбил жена посред бял ден в София. След кратък спринт служителят на реда успял да настигне извършителя и да избие пистолета от ръцете му. Секунди след това дошли още 2 патрула подкрепление и задържали бандита. Задигнатата чанта с последните 20 лв. на жената є била върната.

Случката се разиграла вчера сутринта около 6,10 часа. Както обикновено, оперативният полицай Христо от Четвърто РПУ се качил на автобус номер 604 и тръгнал от квартал „Драгалевци” към управлението. Младият полицай от Русе завършил преди няколко месеца Академията на МВР и решил, че ще работи в София, но още търсел квартира. Тъй като временно живеел в „Драгалевци”, му се налагало да става доста рано, за да стигне навреме в районното. Именно този факт се оказал

решаващ за разкриването на престъплението

Малко след 6 часа рейсът спрял на спирката на бул. „България” в района на Търговската гимназия. Веднага след като се затворили вратите, полицаят видял как бандит нападнал жена, ударил я и отмъкнал чантата є.

„Спри, ограбиха жена”, викнал полицаят на шофьора, който отворил вратата на автобуса и Христо хукнал по петите на извършителя. „Стой, полиция”, извикал служителят на реда, но бандитът продължавал на тича. Викнал втори път, но в този момент грабителят се обърнал и насочил пистолет срещу полицая. Без да се изплаши, Христо се хвърлил върху заподозрения и след кратко боричкане успял да избил пистолета. През това време шофьорът на рейса, който станал свидетел на случката, се обадил на телефон 112, за да повика помощ и за броени секунди 2 патрула се озовали на мястото и задържали извършителя. Оказало се, че той е 21-годишният Христо Вълчев, който бил регистриран и осъждан за хулиганство. Младежът лъхал на алкохол. На въпроса защо го направил отговорил най-невъзмутимо:

Исках да направя нещо яко

След нападението жертвата Антоанета била откарана във Военномедицинска академия. От удара жената паднала по очи и си разбила носа в плочките. Тя имала в чантата си едва 20 лева, които били и всичките є пари до заплата. Обикновено при подобни случаи парите също се вземали от разследващите като доказателство по случая, но жената написала молба до прокурора да є ги върнат, защото в противен случай трябвала да взема назаем.

„Нашият служител е действал повече като гражданин, а не като полицай. Той не е имал белезници в себе си, бил е цивилен и дори си е оставил раницата с лаптопа в автобуса, преди да тръгне да гони заподозрения”, коментираха вчера от столичното Четвърто районно.

Новината е публикувана тук:
Ченге скочи от рейса и обезвреди крадец

Share and Enjoy !

Shares

wxRuby + RubyScript2exe – мания

От известно време се забавлявам с Ruby. Този език е абсолютна мания за обектно-ориентирано програмиране. Липсваше ми само едно нещо – правенето на екзета, за да не инсталирам навсякъде интерпретатора. Намерих му колая, разбира се не без известни мъки :).
Използвам следните инструменти:

  • ruby-1.8.7-p72-i386-mswin32
  • wxRuby – инсталира се само един файл wxruby.so тук: ruby\lib\ruby\site_ruby\1.8\i386-msvcrt\wxruby.so. Инсталационния файл е wxruby-0.6.0-mswin.exe
  • rubyscript2exe – 0.5.3 (29.05.2007)

Това са стари версии, но само с тях разполагах под ръка.

При компилиране ми излизаше една грешка в rubyscript2exe:
rubyscript2exe.rb:621:in `replace’: can’t modify frozen string (TypeError)
Пачнах го като замених ред 621:

$0.replace(File.expand_path("./init.rb"))

с

$_0 = File.expand_path("./init.rb")
alias $__0 $0
alias $0 $_0

=============================================================================

Някои полезни трикове.
Има още една яка библиотека, с която могат да се компилират exe-та с Ruby – ocra.
Компилиране на TK-GUI:

ocra tk.rb --windows D:\ruby-1.9.3\lib\tcltk --no-autoload --add-all-core

Share and Enjoy !

Shares

ffmpeg commands

Напоследък съм тотален фен на OpenSource видео конвертора ffmpeg.
Ето примери с някои прости команди, които вършат страхотна работа:

ffmpeg.exe -i all.vob -sameq -ss 75 -t 75 -vcodec libx264 test.mpg

-i all.vob – файла, който ще обработваме
-sameq – запази качеството на видеото
-ss 75 – почни да режеш от 75-та секунда
-t 85 – продължителност на рязането 85 секунди
-vcodec libx264 – видео кодек в който да се конвертира. Ако искаме да сме сигурни, че файла ще върви на всяка Windows машина, можем да ползваме -vcodec msmpeg4v2.

В по-новите версии на ffmpeg при рязане на видео има възможност да се зададе край на рязането спрямо началото и да се използва времеви формат – часове:минути:секунди.стотни:

ffmpeg.exe -i input.mp4 -ss 00:00:06.356 -to 00:00:11.560 test.avi

Някои допълнителни екстри:
Video:
-s – размер на картината
-b – видео битрейд
-r – скорост на кадрите
-croptop, -cropbottom, -cropleft, -cropright – рязане на картината в пиксели
-padtop, -padbottom, -padleft, -padright – поставя кантове до картината (padding), в този случай е добре да се зададе и -padcolor 000000 – цвят на кантовете в HEX-формат, в случая 000000 – черно.
-vn – не конвертирай никакво видео. Използва се за да се екстрактне аудиото.

Audio:
-acodec libmp3lame – задаване на кодек за аудиото
-acodec copy – използвай същия кодек за аудиото
-ab 128k – битрейд за аудиото
-ac 6 – задаване на аудио каналите
-an – без аудио

Обединяването на видео и аудио става просто като добави и двата файла в началото;

ffmpeg -i audio.wav -i video.m2v ...

Конвертиране на MPG видео до FLV с високо качество за качване по видео-порталите:

ffmpeg -i input.mpg -sameq -f flv -vcodec libx264 output.flv

—————————-
UPDATE: 05.09.2016
—————————-
Някои интересни команди за кепчъринг на онлайн видео стрийм

ffmpeg архива за Windows върви с някои интересни инструменти. Един от тях е ffplay, който е наистина необикновен видео-плеър.
Един пример, който показва възможностите за плейване на онлайн стрийм (телевизията е City TV) с ffplay:

ffplay -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"

Можем да настроим ffplay да показва времето от началото на видеото:

ffplay -vf "drawtext=text='%{pts\:hms}':box=1:x=(w-tw)/2:y=h-(2*lh)" input.mp4

Ако съхраните в една директория mplayer и ffmpeg екзетата, ще можете да гледате отново същата телевизия, но през пайп с mplayer:

mplayer -cache 2000 -cache-min 99 "ffmpeg://http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"

Същото, но прекарано през ffplay:

ffmpeg -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" -f matroska - | ffplay -i -

Понякога ffplay не може да закачи драйвера за саунда. Тогава можем предварително да включим този драйвер през променливите на обкръжението. При мен става и двата directsound или winmm. Примерно за Windows 7 можем в промпта да зададем следното:

set SDL_AUDIODRIVER=directsound
ffplay http://...

Записване на Desktop capture с ffmpeg под Windows:

ffmpeg -f gdigrab -i desktop -framerate 24 -vcodec libx264 -crf 23 out.mp4

За приключване на записа се натиска бутона q.

Ffmpeg е направо велик инструмент, който се ползва лесно и бързо, заради интуитивните му команди.

Генериране на малък по размер GIF от видео файл

ffmpeg -i StickAround.mp4 -filter_complex "[0:v] fps=12,scale=480:-1,split [a][b];[a] palettegen [p];[b][p] paletteuse" SmallerStickAround.gif

Конвертиране на m3u8 стрийм до mp4:

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i url_to.m3u8 -c copy out.mp4

Share and Enjoy !

Shares

Join VOB files

За да се конвертира DVD до по-нормален формат, често се налага преди това VOB-файловете да се свържат в един общ (Join VOB files). Много хора не знаят, че MPEG и VOB файловете позволяват конкатенация, т.е. последователно свързване.
Свързване на VOB файлове под Windows:

copy /b 01.vob+02.vob+03.vob all.vob

Свързване на VOB файлове под Linux/UNIX/Mac:

cat 1.vob 2.vob 3.vob > all.vob

Ако е спазен стандарта при създаването на VOB-файловете не би трябвало да има проблеми.

Share and Enjoy !

Shares




Стар компресор от хладилник за сгъстяване на въздух

Ако ви се намира под ръка стар компресор от хладилник, може да си направите система за сгъстяване на въздух до 8-10 атмосфери. За целта е необходим и ресивер или балона за сгъстения въздух. Подобно съоръжение ще работи вероятно временно, но би свършило работа за по-малки нужди, като боядисване на няколко стени или почистване със сгъстен въздух и изобщо там където е необходима струя въздух.
Хладилните компресори за да стартират изискват изравняване на налягането от двете страни – нагнетателна и смукателна. Не могат да се използват директно за сгъстен въздух, иска се да има ресивер за съхранение на нагнетения въздух. За това в подобна схема трябва да се предвиди изравняващ вентил. Това означава и, че трябва да имаме еднопосочен клапан (вентил), поставен между компресора и балона със сгъстен въздух, който да не позволява връщане на налягането към компресора, докато не работи.
Ето простичка схема на подобна система:
Схема на система с хладилен компресор за сгъстяване на въздух
Трябва да се има в предвид, че хладилните компресори за домашни хладилници и фризери не разполага със сегменти, така че маслото от компресора да се издуха за нула време. За това може да се помисли за маслен филтър преди тетката (трипътника). Би било добре да има начин маслото да се връща в компресора, но ако компресора работи по няколко минути (примерно 3-4 мин.), колкото да компенсира пад на налягането в балона, няма да е особено фатално, ако работи и с по-малко масло.

Ако балона трябва да поддържа по-високо налягане (над 10 атмосфери) може да се сложи буфер, който да намали първоначалния напън на компресора. Подобен буфер може да е и по-широка тръба след нагнетателния щуцер.
Може да се използва следящ вентил, който да включва компресора всеки път когато налягането падне на 4 атмосфери. Ползвам подобна система, без балон, за тестване за утечки на тръбни спойки, така че работи. Без балон, просто защото разполагам с каруци стари компресори от хладилници :).

Share and Enjoy !

Shares




Етажерка за книги окачена на стена – направи си сам

В темата за шкаф окачен на стена, бях поместил разкрой на повърхностите, който включваше елементи, които не са от шкафа. Тези плоскости ги бях предвидил да се нарежат и кантират за да ги използвам за направата на етажерка за книги или други натурийки. Схема на проекта си надрасках на бързо с nanoCad, за да имам поне някакво чертежче:
Чертеж на етажерка за книги
За проекта ми трябваха няколко винта, ъгълчета (тесни и широки), ъглови скоби за окачване на стена, 2 броя обикновени дюбели.
Заредих батерията на винтоверта и го почнах.
Първо си продупчих дупките за поддържащите ъгълчета:
Дупчене на плоскостта за закрепване на ъгълчетата

Монтиране на ъгълчетата
Фиксиране на тесните подсигуряващи ъгълчета
Изключително важно е да си продучите предварително дупките за завиване на винтовете с пирон, особено когато се работи с ПДЧ-плоскости! Това ми го каза един стар дърводелец.
Пирон с отрязана глава, за дупчене на ПДЧ плоскости
Преди завиване на фрезенковите винтове е важно да направите фрезенковите отвори на ръка. Ако работите с машина, може да се изтървете и да стане по-голяма дупка от необходимото:
Фрезенките за фрезенковите винтове се правят на ръка
Закрепване на ъгловите скоби, за които се окачва етажерката за стефната:
Закрепване на ъгловите скоби, за които се окачва етажерката за стефната
Монтиране на ъглите за окачване на шкафа за стената
Завиване на няколко подсигуряващи винта, защото ПДЧ-то, особено по-евтиното е несигурен материал:
Завиване на няколко подсигуряващи винта
Фиксиране с допълнителни винтове
И сега вече не ни остава нищо друго, освен да окачим етажерката на стената. В случая аз подложих едни картончета, преди да натегна дюбелите, защото ъглите опираха в стената. Друго важно при монтажа е да използвате нивелир, за да сте сигурни, че няма да седи накриво. Първо се закрепва едната страна. После придържате другата страна и нивелирате. Бележи се с моливче другата дупка. Етажерката се накланя и се дупчи и другата дупка в стената. Следва забиване на дюбела и монтиране:
Окачена етажерка на стена
При тези манипулации трябва да се внимава, да не се надраска стената, за това винта на първия дюбел трябва да не е напълно натегнат.
Следва натоварване с книги или там за каквото ще си я ползвате:
Етажерка за книги, окачена на стена
Сега му удряме няколко бирички или отиваме да поснимаме някъде, доволни от живота :)!

Share and Enjoy !

Shares




Тигър! Тигър! – Алфред Бестър. Роман, който те оставя без дъх!

Тигър! Тигър! - Алфред Бестър

Тигър! Тигър! - Алфред Бестър


Когато разбрах, че романа е писан 1956г. ахнах! Преди близо 60 години, а идеите са толкова съвременни и живи!

Алфред Бестър те захвърля в един свят на бъдещето. По-точно направо те изстрелва и взривява въображението с задъхан екшън и амброзия от гонитби, отчаяние, любов, отмъщение. Хората са развили възможност за телепортация, наричана “джонтиране”. Това е основен начин за придвижване до познато място. Телепатите спокойно могат да разговарят с теб или просто да четат мислите ти. А семейни мегакорпорации управляват на практика всичко.
В този футуристичен свят странника Гъли Фойл трябва да се бори за оцеляване и не само. Трябва да достигне мечтаното отмъщение.
Книга от много висока класа! Чете се на един дъх и те оставя дълго време задъхан. Динамиката на действието те потапя напълно, така както го правят най-добрите майстори на научната фантастика. Не мога да разбера, защо съм пропуснал това заглавие. А толкова харесвам кибер-пънка и фантастиката.
Книгата е БРИЛЯНТНА и е абсолютно задължителна за всеки любител на жанра.
Може да си я изтеглите от читанката. Задължително си я изтеглете!

Share and Enjoy !

Shares




Perl start from batch file – md5 sum check

Има много хитър начин да си набавим в Windows някои от популярните инструменти в Mac, UNIX, Linux, Android и т.н., като е достатъчно да имаме инсталиран Perl. Ето един пример, как да си набавим md5 sum checker за стрингове от командния ред:

@rem = 'source http://www.dostips.com
@CD/d"%~dp0"&perl -s "%~nx0" %*&Exit/b&:';
 
#perl script starts below here
use strict;
use Digest::MD5  qw(md5_hex);
if($ARGV[0]== ""){
	print "Vyvedi string!!!\n";
	exit;
}
my $md5_data = $ARGV[0];
my $md5_hash = md5_hex( $md5_data );
print "$md5_hash\n";

Запазваме кода в batch-файл, като md5.bat. Добра идея е да го запазим там където имаме достъп, чрез променлива на обвивката, примерно директорията system32. След това си генерираме md5 суми от стрингове директно през промпта:

md5 "proba"

Резултата е: c0a8e1e5e307cc5b33819b387b5f01fd

Share and Enjoy !

Shares