Училище свърши, започна работата! english

21.07.2008Категория: Животът ми, Работа1 Коментар

Официално днес ми се води първия ден на новата ми работа. Започнах работа в UBS A.G. - Инвестиционна Банка в отдел Информационни технологии за ценни книжа (equity). Прекарахме целия ден в слушане на презентации и лекции. Казвам официално, защото аз започнах миналия понеделник, защото трябваше да мина през предварителната седмица, в която ни обучаваха на основите на финанси, счетоводство и подобни.
Също така се преместих да живея в Стамфорд, Конектикът и местенцето не е зле, само дето няма климатик, но не за дълго.
Тъй като работя в банка, ще трябва да внимавам какво пиша и да добавя някое друго пояснение, че писането ми тук си е лично мнение и че няма нищо общо с работодателя ми, но това ще стане след някой друг ден, че утре трябва да ставам в 7.

Взехме си ролери english

19.06.2008Категория: Животът миНяма коментари

Skates
И Дарето и аз обичаме много да караме кънки, но тези в България доста се потрошени, поне моите, пък и само тях не сме домъкнали тук, та решихме да си купим едни нови. Нейните са Rollerblade Spiritblade III - 2008 (ляво на снимката), а моите са K2 Moto - 2007 (дясно на снимката). Аз моите ги тествах вече в парковете наоколо и по улиците. Тя също покара нейните, но по-малко от мен.

Perl скрипт за пращане на писма през Gmail english

19.06.2008Категория: Животът миНяма коментари

Не е нищо особено просто няколко prompt-а и ползване на Net::SMTP::SSL и Authen-SASL

  1. #!/usr/bin/perl -w
  2. # Send email from Gmail
  3. # Will not work on windows, because of the echo
  4. # for the password. Just uncomment the two
  5. # system lines and should be fine.
  6. # Will wait for EOF (Ctrl+D) for the msg body.
  7. # by GT
  8.  
  9. use Net::SMTP::SSL;
  10.  
  11. my $smtp;
  12. my $username = 'youremail@gmail.com';
  13. my $password;
  14. my @lines;
  15. my $msg = "";
  16. my $to;
  17. my $subject;
  18.  
  19. $smtp = Net::SMTP::SSL->new('smtp.gmail.com', Port => 465, Debug=>1) || die "Cannot connect to server" ;
  20.  
  21. system('stty -echo');
  22. print "Enter password:";
  23. $password = <STDIN>;
  24. chomp $password;
  25. system('stty echo');
  26.  
  27. $smtp->auth($username, $password) || die "Authentication failed";
  28.  
  29. print "\nTo:";
  30. $to = <STDIN>;
  31. chomp $to;
  32. print "Enter subject:";
  33. $subject = <STDIN>;
  34. chomp $subject;
  35. print "Enter message:\n";
  36. @lines = <>;
  37. foreach $line (@lines){
  38. $msg = $msg.$line;
  39. }
  40.  
  41. $smtp->mail($username."\n");
  42. $smtp->to($to."\n");
  43. $smtp->data();
  44. $smtp->datasend("From: ". $username."\n");
  45. $smtp->datasend("To: ".$to."\n");
  46. $smtp->datasend("Subject: ".$subject."\n");
  47. $smtp->datasend("\n");
  48. $smtp->datasend($msg."\n");
  49. $smtp->dataend();
  50. $smtp->quit;
  51.  

Архивиране на видео подкаст english

18.06.2008Категория: Животът миНяма коментари

Харесал съм си няколко видео подкаста, които гледам да следя редовно. Понеже има доста информация там, преди бая време, реших да си ги архивирам по някакъв начин и да ги направя достъпни от всякъде, където имам интернет - тоест да им направя една уеб страничка и да им направя и флаш варианти, за да не трябва да се занимавам с кодеци. Хубавото е, че повечето подкасти имат някакъв вид rss абонамент, чрез който по-лесно мога да взимам адреса на последния епизод, кратко описание и дата. Седнах аз преди известно време и си написах следното скриптче:

  1. #!/usr/bin/perl -w
  2. # This script gets the latest Systm Podcast feed.
  3. # It will check if the episode is downloaded and if not,
  4. # it will download it, generate a .flv video, look for the
  5. # $flag entry in index.html and will insert html code for
  6. # the downloaded episode.
  7. #
  8. # Requires: ffmpeg, flvtool2, mencode and convert (IM)
  9. #
  10. #
  11. # by Georgi Todorov
  12. #
  13. #
  14. use strict;
  15. use XML::RSS;
  16. use LWP::Simple;
  17. use Date::Format;
  18. use Date::Parse;
  19.  
  20. my $duration;
  21. my $image;
  22. my $url2parse;
  23. my $title;
  24. my $url;
  25. my $desc;
  26. my $ep=0;
  27. my $fname;
  28. my $class;
  29. my $line;
  30. my $i=0;
  31. my $date;
  32. my @asdf;
  33. my @splitted;
  34. my $extension;
  35. my $enc;
  36. # Create new instance of XML::RSS
  37. my $rss = new XML::RSS;
  38. # Get the URL, assign it to url2parse, and then parse the RSS content
  39. $url2parse = get("http://revision3.com/systm/feed/quicktime-high-definition");
  40. #print $url2parse;
  41. $rss->parse($url2parse);
  42. # Print the channel items
  43. #print $rss->as_string;
  44. open OLDINDEX, "<index.html";
  45. open NEWINDEX, ">newindex.html";
  46. my $flag = "<!--start-->";
  47. while ( $line = <OLDINDEX>){
  48. chomp($line);
  49. if ($line eq $flag){
  50. print NEWINDEX $line."\n";
  51. $i = 1;
  52. }
  53. if ($i == 0){
  54. print NEWINDEX $line."\n";
  55. }else{
  56. foreach my $item (@{$rss->{'items'}}) {
  57. next unless defined($item->{'title'}) && defined($item->{'enclosure'});
  58. $date = time2str("%A, %B %o, %Y", str2time($item->{'pubDate'}));
  59. $date =~s/ +/ /gi;
  60. $url = $item->{'enclosure'}->{'url'};
  61. @asdf = split(/\//, $url);
  62. $ep = $asdf[$#asdf-1];
  63. $ep =~s/^0*//;
  64. $title = "Episode ". $ep;
  65. @splitted = split(/\./, $url);
  66. $extension = $splitted[$#splitted];
  67. if ( $ep%2 == 0 ){
  68. $class = "left";
  69. }else{
  70. $class = "right";
  71. }
  72. $fname = "Systm Episode ".$ep." (".$date.")";
  73. $desc = $item->{'description'};
  74.  
  75. print "-------- Working on $title --------\n";
  76. print "Looking for $fname.$extension ...";
  77. if (-e "$fname.m4v")
  78. {
  79. print "found. Skipping.\n";
  80. }elsif (-e "$fname.flv")
  81. {
  82. print "found. Skipping.\n";
  83. }else{
  84. print "not found. Downloading:\n";
  85. system ("wget $url -O \"$fname.$extension\"");
  86. print "Generating a Thumbnail and Encoding:\n";
  87. system ("ffmpeg -y -i \"$fname.$extension\" -f image2 -ss 100 -vframes 1 -an out.jpg");
  88. system ("convert out.jpg -resize x100 -quality 95 \"images/$fname.jpg\"");
  89. system ("rm out.jpg");
  90. system ("./encode2 \"$fname.$extension\" \"$fname.flv\"");
  91. system ("flvtool2 -UP \"$fname.flv\"");
  92. $duration = `/usr/bin/ffmpeg -i \"$fname.flv\" 2>&1|grep Duration|cut -d \":\" -f 3,4|cut -d \",\" -f 1`;
  93. print NEWINDEX "<div class=\"$class\">\n";
  94. print NEWINDEX "\t<div class=\"imglt\">\n";
  95. print NEWINDEX "\t\t<img src=\"images/$fname.jpg\" alt=\"$fname\" /><br />\n";
  96. print NEWINDEX "\t\t<a href='javascript:flowPlayerOpenFullScreen(\"$fname.flv\")' class=\"download_button\" >Play</a>\n";
  97. print NEWINDEX "\t\t<a href=\"$fname.mov\" class=\"download_button\" >Download</a>\n";
  98. print NEWINDEX "\t</div>\n";
  99. print NEWINDEX "\t<b>$title ($date)</b<br />\n";
  100. print NEWINDEX "\t<b>Length:</b> $duration\n";
  101. print NEWINDEX "\t<p>$desc</p>\n";
  102. print NEWINDEX "</div>\n";
  103. if ($class eq "right"){
  104. print NEWINDEX "<div class=\"clear\">\n";
  105. print NEWINDEX "\t&nbsp;<br />\n\t&nbsp;\n";
  106. print NEWINDEX"</div>\n";
  107. }
  108. }
  109. print "-------- DONE --------\n";
  110.  
  111. }
  112. $i = 0;
  113. }
  114. }
  115. close OLDINDEX;
  116. close NEWINDEX;
  117. system("mv index.html oldindex.html&&mv newindex.html index.html");
  118.  

Работи доста добре, за сега. encode2 скриптчето съдържа дългата mencoder команда за конвертиране към flv:

  1. mencoder "$1" -o "$2" -of lavf -ovc lavc -oac lavc \
  2. -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames \
  3. -lavcopts vcodec=flv:vbitrate=800:autoaspect:mbd=2:\
  4. mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:precmp=2:\
  5. cmp=2:subcmp=2:preme=2:turbo:acodec=mp3:abitrate=56 \
  6. -srate 22050 -af lavcresample=22050

Наредихме си пъзела english

16.06.2008Категория: Животът миНяма коментари

В началото на годината, докато бяхме в един магазин попаднахме до щанда за пъзели и решихме да си вземем един пъзел. Разбира се, типично за нас, решихме да си вземем най-сложния, който имаше там. За 10 долара, си взехме The Chase на John Hyde в размер около 50см на 70см разглобен на 1000 парченца. Започнахме да го редим и преди да започне семестъра наредихме доста. След това нямахме време за него и го прибрахме. Преди два дни, обаче, се сетихме за него и решихме че е време да го довършим. Извадихме го на масата и около 3-4 часа по-късно пъзелът беше завършен. Бяха ни останали само черните зони, в които можехме да редим само по формичка, защото всички елементи бяха чисто черни. Ето как изглежда:
Пъзелче

Още видео материал english

15.06.2008Категория: Животът миНяма коментари

Готови са видеотата от церемонията по завършването (няма звук в началото) и от останалото време, когато сме снимали:
Завършване
Гости през май

Завърших english

09.06.2008Категория: Животът ми2 Коментари

B.S. in Computer Science
Не е много, но е начало. Преди няколко седмици беше церемонията. Да си призная, все още не се чувствам все едно имам някаква по висша степен на образование. Определено ще трябва да се продължава нагоре. Якото е, че цялото ми семейство дойде да ме види и си прекарахме много готино. Ето и снимки. Даже ходихме на риба и хванахме 18 големи Бас-а и 3 сини риби. Имаме и снимки и видео.

Първа публикация english

08.05.2008Категория: Животът ми1 Коментар

Вече мога да се похваля с първата си публикация в научно списание. Става дума за Journal of Applied Crystallography на International Union of Crystallography. Заглавието е VCIF2: Extended CIF Validation Software и коавтор е професор Herbert J. Bernstein.

Разни english

08.05.2008Категория: Животът миНяма коментари

Точно след една седмица е последния ден от последния ми семестър в Даулинг. Води се, че завършвам след това. Положението не е много напреднато. Нямам кой-знае колко неща да правя преди да завърша. Остава ми да си напиша изпитната тема по Психология и последния изпит, който е за вкъщи. По POCS-а сме готови с работеща програма - iDiet, имам изпит и по VBA, но той ще е елементарен, дори не го броя. За Дизайн с Компютър 2, имам още един проект за правене, но и той няма да е труден. Целта ми е да приключа с всичко до края на седмицата. Така другата седмица ще съм свободен.

Wordpress 2.5 може би има дупки english

10.04.2008Категория: Животът ми2 Коментари

Обнових си wordpress-а на 2.5 преди няколко седмици. Вчера бях приятно изненадан от десетки iframe тагове инжектирани във ВСИЧКИ файлове на wordpress. Направо си е мизерия. Мисля, че още няма публикуван патч и си сложих една малка добавка да записвам POST променливата във файлче, за да мога, ако пак стане така, да имам повече информация за инцидента. До тогава мога само да си пусна следната команда в директориите на wordpress:
клик
добавка: може и да е то coppermine-a. Ще видим. Интересното е, че намеирх това:клик

Следващи »

Georgi’s Blog is proudly powered by WordPress
Постове (RSS) and Коментари (RSS).
Get Firefox! Creative Commons License
22 queries. 1,153 seconds.