Thu, 31 Jan 2008, 19:55 by Toshe
Като на шега се изтърколи целият Януари. Годината започна много динамично на работата и почти приключихме един голям проект когато шефа ни издебна в засада и натовари с с втори такъв, който май ще се окаже по-костелив орех от първия. Нищо де, ние от работа и сложни проекти не се плашим ако ще и да са такива дето никой в компанията още не е правил.
Иначе в личен план повечето от свободното време (хм, какво беше това?!) си прекарваме с Жорката. Хлапето вече навързва думички в изречения и ни пее песничките които ги учат в градината. От смесицата на английски от градината и българския вкъщи се получават бисери като този: “Тати, come here. Гого и’ка painting.” Има и още ала не мога да се сетя сега за друго. Трябва вече да започна да си ги записвам.
Та това е де. Повече – по-нататък.
Mon, 31 Dec 2007, 09:19 by Toshe
За край на годината, нещо geeky и свежо (според мен):
toshe@masha~$ python
…
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!
>>>
Моя скромен опит за превод на горния текст:
Дзен по Питонски, от Тим Питърс
Красивото е за предпочитане пред грозното.
Изричното е за предпочитане пред подразбиращото се.
Простото е за предпочитане пред сложното.
Сложното е за предпочитане пред усложненото.
Плоското е за предпочитане пред вложеното.
Разпиляното е за предпочитане пред претъпканото.
Четливостта има значение.
Специалните случаи не са достатъчно специални, че да нарушават правилата.
Въпреки че практичността бие стриктното спазване на правилата.
Грешките никога не трябва да се пускат незабелязани.
Освен ако изрично не са направени да минават незабелязано.
В случай на двусмислие, отказвай изкушението да предполагаш.
Трябва да има един, и само един очевиден начин да се правят нещата.
Въпреки че това може да не е очевидно на пръв поглед, освен ако не сте Холандец (1).
“Сега” е по-добре от “никога”.
Въпреки че “никога” е често за предпочитане пред “веднага на момента”.
Ако реализацията е трудна за обяснение, то значи е лоша идея.
Ако реализацията е лесна за обяснение, то има вероятност да се окаже добра идея.
Групирането на имена е една отлична идея – нека да правим повече от тях.
(1) – намек за Guido Van Rossum, създателя на Python, който е Холандец по произход.
Надявам се програмистите сред четящите да оценят хумора и мъдростта на горното. А може би и не само програмистите
Tue, 13 Nov 2007, 19:47 by Toshe
Спомените ми от първите години в Техническия университет (освен разбиващите купони и хроничното студентско безпаричие) са свързани с писането на огромно количество протоколи от измервания и сума ти свързани с това изчисления. Понякога се изкушавах да си напиша кратка програма за да си сметна и начертая графиките от измерените резултати вместо налагания от някои преподаватели методи с калкулатор и милиметрова хартия. Проблемът беше, че сметките често не бяха елементарни, а Паскал (и по-късно Java) не са от най-лесните за ползване езици за бързи сметки от мързеливи студенти като мен. По-късно се налагаше да правим преобрзувания на уравнения и да ги опростяваме, а единствения софтуер който донякъде помагаше беше MathLab. Въоръжени с него и с теоремите на Нагласаяев и Натъмъняев успявахме да открием нови клонове в инженерната математика. Наистина се изискваше много усилия от предварително дадения ни за сравнение резултат да приложим реверсивен инженериг и да скалъпим обратно оригиналното задание на проекта, но историята познава и по-големи героични постъпки (като например свързването на амперметър като волтметър или паралелното свързванео на електролитни кондензатори към променливотокови трансформаторни вериги).
От тези времена ми остана един респект към многостъпковите изчисления (и към електролитните кондензатори) и често след това съм се чудил дали няма наистина удобен инструмент точно за такива уморителни, но необходими математически гимнастики. Изискванията ми за подобен софтуер са скромни – да е софтуер с отворен код, преносим (Linux/Windows), да е простичък за инсталация и употреба и по възможност да се разширява лесно. По едно време се бях отказал да търся (а и не ми трябваше, честно казано) докато преди месец попаднах на SymPy и mpmath. Първата е библиотека занимаваща се със символна алгебра (от типа колко е (ax2 + by3)2 * (x + y2)2 в разгъната форма) изчисляваща също интеграли и диференциали от символни уравнения (такива с неизвестни като x, y и z например). Втората библиотека и за смятане на реални и комплексни числа с произволна точност. Точно така – с произволна. И двете библиотеки са писани на Python които освен че е страшно лесен за учене и експериментиране е също и много мощен скриптов език. И двете библиотеки са с отворен код и понеже са на Python са достъпни на всички софтуерни платформи поддържани от езика. Ала един пример говори повече от сто реклами, така че ето един пример:
>>>from sympy import *
>>>x = Symbol('x')
>>>y = Symbol('y')
>>>a = ((x**2 + y**3)**2 * (x+y**2)**2)
>>>b.expand()
x**6 + y**10 + x**2*y**6 + x**4*y**4 + 2*x*y**8 + 2*x**2*y**7 + 2*x**4*y**3 + 2*x**5*y**2 + 4*x**3*y**5
>>>
Трите символа “>” са от промпт-а на Python интепретатора. Последния ред е всъщност разгънатата форма на по-горното уравнение. Звздичката е знак за умножение а двойната звезда – повдигане на степен. За домашно – сметнете уравнението на степен 3 
Това далеч не е всичко. Ето друг пример (взет от ръководствотото на SymPy):
>>> from sympy import *
>>> x=Symbol("x")
>>> limit(sin(x)/x, x, 0)
1
>>> limit(x, x, oo)
oo # това е знака за безкрайност
>>> limit((5**x+3**x)**(1/x), x, oo)
5
Някой спомня ли си как се смятаха границите (лимеси) от училище? Е, с няколко реда код няма да ви се налага да ги смятате.
Впечатлих ли ви? А ето какво може да прави mpmath:
>>> from mpmath import *
>>> pi
mpf('3.1415926535897932384626433832793')
Хм, дотук – нищо впечатляващо. Ала нека да променим прецизността след десетичната точка (която по подразбиране е 30 знака):
>>> from mpmath import *
>>> mpf.dps = 100 # задаваме броя на знаците след десетичната точка
>>> pi
mpf('3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798')
Това е числото Пи със сто знака след десетичната точка (или запетая – кое е по-правилното?). А ето го със 1000 знака:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862
089986280348253421170679821480865132823066470938446095505822317253594081284811
174502841027019385211055596446229489549303819644288109756659334461284756482337
867831652712019091456485669234603486104543266482133936072602491412737245870066
063155881748815209209628292540917153643678925903600113305305488204665213841469
519415116094330572703657595919530921861173819326117931051185480744623799627495
673518857527248912279381830119491298336733624406566430860213949463952247371907
021798609437027705392171762931767523846748184676694051320005681271452635608277
857713427577896091736371787214684409012249534301465495853710507922796892589235
420199561121290219608640344181598136297747713099605187072113499999983729780499
510597317328160963185950244594553469083026425223082533446850352619311881710100
031378387528865875332083814206171776691473035982534904287554687311595628638823
53787593751957781857780532171226806613001927876611195909216420199
За домашна – пробвайте със 10000 знака
Повече примери и идеи за ползване на mpmath вижте нейната документация.
Забележка: За момента двете библиотеки дефинират числото Пи по свой начин, който не е съвместим, затова рестартирайте комания интерпретатор на Python между тестовете за да получите смислени резултати.
Стана ли ви интересно? Аз със сигурност съм заинтригуван! Сега се надявам по-малко ученици и студенти да четат това, че иначе много домашни ще станат безумно лесни за решаване с няколко редова програмка
Sun, 11 Nov 2007, 18:18 by Toshe
Ако не сте забелязали, то блога има леко променен вид. Освен новата версия на софтуера сложих и нова тема, която (би трябвало да) е по-гъвкава и разширяема от старата. Ако някои забележи проблеми с рендирането на страницата, моля оставете ми коментар.


Wed, 24 Oct 2007, 19:01 by Toshe
Тия дни Таня ме помоли да потърся английски детски песнички за Жорето. Попаднах на този сайт където има страхотни изпълнения на традиционни английски детски песни. Песните са СВОБОДНИ за сваляне в MP3 формат и са придружени от пълния си текст. Чудесните изпълнения са на Ноел Шиърър с нейния ангелски глас под акомпанимента на акустичната китара на Джон Морган. Песничките са много забавни и са изпети с леки кънтри ритми. Бих ги препоръчал на всеки родител чийто дете учи английски или расте в англо-говоряща среда. Освен всичко са и много “зарибяващи” и след няколко слушания човек се улавя да си тананика “Old MacDonald had a farm… Ee i ee i oh!…
Ee i ee i oh!
Wed, 17 Oct 2007, 17:12 by Toshe
Спомням си като дете как всяко лято ваканцията на море беше непременно съпроводена от някакво произшествие. Обичайното беше да ни се спука гума на 10 километра след Пловдив, а резервната да е останала в гаража докато сме слагали куфарите в багажника. Или пък да падне гърнето на Фиата някъде около Варна. Разни такива неща. Явно традицията ми е завещана та и Жорковия рожден ден не мина съвсем без премеждия. Самия рожден ден го отпразнувахме в събота – на 13-ти (!) и мина повече от гладко. Софрата беше приготвена на време и макар че гостите закъсняха малко мисля че си изкараха добре. Побъбрихме си доста, децата си поиграха, а един лаптоп беше оправен съвсем между другото. “Интересното” започна на другия ден сутринта. След великанска закуска нещо започна да ми се гади и повръща. След няколко часа вече бях тотално извън релси с болки в корема и чести прибежки до тоалетната. После Таня започна да се оплаква и следобед беше в същото състояние. А вечерта и съквартиранта Вальо се присъедини към нас. Отначало си мислех че е някакво хранително натравяне, ала когато и Жорко започна да повръща се разтревожих сериозно и се обадих на личния лекар. След описване на симптомите и на развитието на заболяването лекаря ни каза че най-вероятно сме прихванали някакво чревно разстройство (тук го наричат “tummy bug” – стомашна бактерия), което си минавало само и нямало нужда от лекарства. Само трябвало да се остави организма да се изчисти (разбирай да се освободи от всичката храна) и да се гладува 24 часа. Някакси това обяснение не ми вдъхна много доверие, но след една кошмарна нощ на другия ден наистина се почувствахме добре и започнхме да се възстановяваме бързо както лекаря ни увери. За да разсея все пак съмненията за хранително отравяне позвънихме на приятелите който бяха на партито за рождения ден и научихме, че повече или по-малко и те имат същите оплаквания. Оказа се наистина някаква лесно прихващаща се зараза и дори успяхме да разберем откъде е започнало всичко – едно от приятелските семейства е било по-рано през седмицата в болница точно заради същото заболяване. За съжаление там не са ги предупредили, че заразата може да се пренася толкова лесно на други хора и резултатът беше … безплатни уроци по шофиране на порцелановия волан за всички гости.
Поуката от историата е очевидна – следващия път гостите ще идват с медицинското досие за последните три месеца и клетвена декларация за добро здраве и настроение. И чифт медицински маски и ръкавици. И най-вече, с по една медицинска сестра. За предпочитане 18-20 годишна
П.П. Снимките от рождения ден на Жорко са тук. А тук съм сложил и някои други скорошни снимки.
Wed, 10 Oct 2007, 12:09 by Toshe
Честит Рожден Ден, Жорко. Да си ни жив и здрав, да слушкаш повече, да плачкаш по-малко и да продължаваш все така да ни радваш всички.
много прегръдки и целувки от:
Мама и татко
Чичо, леля и братовчедката Габи
Вуйчо
Бабите и дядовците (с пожелания да си те виждат по-често в България)
Твоите каки-фенки (казаха да им звъннеш след още 15-16 рожденни дни)
Wed, 05 Sep 2007, 11:51 by Toshe
Ако някой има нещастието да поддържа Windows-базирани системи, няма начин да не е сблъсквал с прословутия Windows Update – системата за обновяване на операционната състема. Докато никой не отрича ползата от подобна система, то ако имате да обновявате голям брой компютри или пък ако мрежовата ви конфигурация не позволява достъп до интернет, то със сигурност ще се има споменаване на роднини до девето коляно в нецензурен контекст. Да не говорим какво ще стане с Интернет връзката ви ако всичките машини започнат да се обновяват по едно и също време. Майкрософт естествено си имат решение на проблема за техните корпоративни клиенти с техния Windows Server Update Services (WSUS), но за по-малки фирми с ограничени ресурси или мрежи без нарочен системен администратор и съответната софтуерна инфраструктура (разбирай похарчени пари за поддръжка и лицензи) по-подходящо е едно друго решение – Направи си сам Service Pack. Програмката (сваля се от тази страница) представлява няколко програми с отворен код, които се свързват със сайта на Майкрософт и свалят последните обновени пакети за няколко версии на Windows (към момента Windows 2000, Windows XP и Windows Server 2003) като дава избор за локализиран език (английски, немски, руски и още няколко) на софтуера. Фактът че програмата е съставена от компоненти с отворен код, както и че сваля само софтуер от сайта на Майкрософт гарантира че няма да се инсталира spyware и други гадинки по инсталацията, но за истинските параноици сигурно това няма да е достатъчна гаранция
. Доколкото ми е известно използването на програмата е напълно законно и вземайки пред че работи само под Windows (предполага се закупен легално) не би трябвало да причини проблеми в правно отношение. Все пак не съм адвокат така че ако смятате да го използвате във вашата фирма, консултирайте се с правно лице.
След стартиране на програмката и настройване на прокси сървър (ако ползвате такъв) тя инсталира малка програма от Майкрософт която се оторизира пред Windows Update и сваля необходимите update пакети. След това създава ISO файл съдържащ свалените пакети, които може да се “изпече” на диск и той да се използва за обновяване на Windows инсталации. Инсталацията е напълно автоматизирана – при слагането на диска в компютъра се стартира инсталатора, регистрира администраторски акаунт и след това инсталира всички ъпдейти. След това премахва добавения акаунт и се рестартира компютъра. Процедурата отнема между 5 минути до повече от час в зависимост от конфигурацията на компютъра и времето на последното обновяване на операционната система. Една малка забележка – програмката сваля само обновления свързани със сигурността (security updates), но не и такива свързани с драйвери за хардуера.
Програмката на няколко пъти ми е спестявала доста време и нерви и бих я препоръчал на всеки който изпаднал дотам че да се бори с капризната прозоречна състема (хм, чудно тогава АЗ докъде съм изпаднал!).
Fri, 31 Aug 2007, 20:55 by Toshe
Жената показва снимка на съпруга си: “Виждаш ли го този на снимката? Третия отляво на втория ред? В пет часа отиваш и го взимаш от градината, че днес съм до късно на работа.”
Доста работа падна този месец. А уж е отпускарски. Е за такива като нас с Таня, които си изкараха отпуската през Май това сигурно не важи. Пък и аз явно се престарах да свърша повече неща на работното място докато колегите ги няма. Та хич не е за учудване че получих напомняне като в цитата по-горе. За сметка на това имах “удоволствието” да обучавам нов колега, да преживея кошмара на дефектна RAM на служебния компютър (“онзи ден всичко си работеше, вчера забиваше, днес – пак работи… чудно нещо”), плюс купчина проблеми с техника, която отдавна е надживяла производителя си. Да се занимаваш с всякакъв хардуер и софтуер отпреди двайсет години та до неща дето ще се видят в каталога догодина определено си има своите очарования, ала понякога ме оставя да се почесвам по главата дори когато не ме сърби. Случи ми се дори да изпадна до положението “абе така и така не работи, я да видя какво ще стане ако натисна ей това копче тука.” Интересното е че след неколкодневни експерименти току някой от колегите ме набеди за “експерт” и после ха иди да доказваш че нямаш сестра.
Жорката малко ни изтормози покрай неговите последни покарващи зъби – то не беше мрънкане, събуждане през два часа, отказ да се храни и висока температура… Бях чувал че периода е тежък, ала не подозирах че това важи и за родителите. Да си призная честно повечето зор през нощта го отнесе Таня, че аз добера ли се веднъж до възглавницата трябва с топ да ме събуждат.
Та общо взето докато се озърнем с моят половинка покрай работата и заниманията с детето … и месеца се изтърколил. Тази година лятна отпуска за нас няма да има. Живот и здраве ще наваксваме догодина. Дотогава ще ни греят снимките от предишното лято.
Mon, 30 Jul 2007, 20:09 by Toshe
Веднъж питали шеговито един англичанин кога всъщност е лятото в Англия. С присъщата си невъзмутимост той им отговорил “Ако не се лъжа, миналата година беше в сряда”. Шеговито или не, тази година лятото в Лондон е наистина предимно … отсъстващо. То бива дъжд всеки ден, ама и температури към десет-петнадесет градуса… В същото време в българско се пържат в собствен сос. Няма ли начин да трампим малко дъжд за поне седмица слънце?