Sixty Symbols | Backstage Science

Всеки е имал любими предмети в училище. Един от моите бе физика. И до ден днешен имам един проблем, не съм добре със запомнянето на теория, мога да запомня много други безмислени факти, но да трябва да зауча нещо задължително никога не ми се е отдавало. Но пък бях доста добър със задачите. Обикновено когато се проваляш в нещо, особено като ученик, то те отблъсква. Но дори и на моменти лошите оценки, не успяха да ме откажат от интереса към физиката и астрономията. Все пак винаги успявах да компенсирам със задачи, дори на моменти имах идеята да кандидаствам с физика, вместо математика. Задачите бяха и единствената причина да си взема изпита по физика в първи курс в университета всъщност. Но това е друга тема и не това е нещото, което искам да кажа.

Идеята и възможността да можеш да погледнеш и да разбереш как работи нещо, винаги ме е очаровала. За това и интереса ми към физика и астрономия е запазен и до днес. Преди вече доста време (отдавна се каня да пиша за това), вече дори не си спомням как (мисля че беше покрай LHC) попаднах на линк за един youtube канал наречен Sixty SymolsSixty Symbols е проект на  University of Nottingham съвместно с журналиста Brady Haran имащ за цел да обясни някои основни закони и физични константи в поредица от кратки видеофилми, в които участват преподаватели от университета. Някои на високо ниво, други обяснени като за лаици, но и в двата случая поднесени по доста забавен и приятен начин. Първоначалната идея е била да бъдат представени 60 видеа свързани с даден символ, използван във физиката, но покрай успехът на проекта ще бъдат направени още толкова.

Някои от най-интересните видеа (всички си струват гледането), са тези в които се отговаря на „зрителски“ въпроси. Те всъщност са и първите, които лично аз гледах (и още по-точно първите три):

Същите хора правят и още няколко поредици (няма да изреждам всички):

Backstage Science – We’re taking you „backstage“ at some of the UK’s most amazing science facilities.

The Periodic Table of Videos (youtube канал) – по едно видео за всеки елемент от Менделеевата таблица.

Test Tube (youtube канал) – What is a scientist’s life really like? See behind-the-scenes footage and other material from scientists working across a range of interesting subjects, including physics, chemistry, biology and engineering.

Playing for Change

Няма да се опитвам да оригиналнича и да описвам, това което всеки може да прочете за този страхотен проект, на който попаднах вчера в една от социалните мрежи.
Просто ще оставя музиката да говори сама за себе си:

Domains Expiration Script

Понеже ми се събраха доста домейни под моя юрисдикция, някои от които регистрирани преди доста време се огледах за shell script, който проверява за изтичането на даден домейн. Можеше да си играя да пиша и сам, но след като има готови, които вършат работа нямаше нужда. Единственото, което трябваше да се направи е проверка и за .bg домейни. Скриптът, който ползвах за основа може да бъде намерен тук /като цяло cyberciti.biz е чуден блог за unix/linux tips & tricks/

Кодът, който съм добавил е съобразен с output-а, който връща към момента whois.register.bg:

DOMAIN NAME: digsys.bg
requested on: 08/09/1991 00:00:00 EEST
processed from: 08/09/1991 00:00:00 EEST
activated on: 08/09/1991 00:00:00 EEST
expires at: 01/01/2012 00:00:00 EET
registration status: Registered
REGISTRANT:
Digital Systems Ltd.
VARNA, 9000
BULGARIA

И в частност полетата „REGISTRANT“ и „expires at“.

Като към скрипта, аз съм добавил следното:

diff -c check.domain.expired_orig.sh check.domain.expired.sh
*** check.domain.expired_orig.sh        2011-02-22 17:02:27.000000000 +0200
--- check.domain.expired.sh     2011-02-22 20:02:27.000000000 +0200
***************
*** 235,240 ****
--- 235,243 ----
      elif [ "${TLDTYPE}"  == "in" ]; # India
      then
          ${WHOIS} -h "whois.registry.in" "${1}" > ${WHOIS_TMP}
+     elif [ "${TLDTYPE}"  == "bg" ]; # Bulgaria
+     then
+         ${WHOIS} -h "whois.register.bg" "${1}" > ${WHOIS_TMP}
      elif [ "${TLDTYPE}"  == "uk" ]; # United Kingdom
      then
          ${WHOIS} -h "whois.nic.uk" "${1}" > ${WHOIS_TMP}
***************
*** 265,270 ****
--- 268,276 ----
      elif [ "${TLDTYPE}" == "jp" ];
      then
          REGISTRAR=`cat ${WHOIS_TMP} | ${AWK} '/Registrant/ && $2 != ""  { REGISTRAR=substr($2,1,17) } END { print REGISTRAR }'`
+     elif [ "${TLDTYPE}" == "bg" ];
+     then
+         REGISTRAR=`cat ${WHOIS_TMP} | ${AWK} '/REGISTRANT:/ && $0 != ""  { getline; REGISTRAR=substr($0,1,17) } END { print REGISTRAR }'`
      fi
 
      # If the Registrar is NULL, then we didn't get any data
***************
*** 308,313 ****
--- 314,341 ----
                esac
              tday=`echo ${tdomdate} | cut -d'/' -f3`
            DOMAINDATE=`echo $tday-$tmonth-$tyear`
+     elif [ "${TLDTYPE}" == "bg" ]; # for .bg dd/mm/yyyy 05/03/2011
+     then
+             tdomdate=`cat ${WHOIS_TMP} | awk '/expires at/ { print $3 }'`
+             tyear=`echo ${tdomdate} | cut -d'/' -f3`
+             tmon=`echo ${tdomdate} | cut -d'/' -f2`
+                case ${tmon} in
+                      1|01) tmonth=jan ;;
+                      2|02) tmonth=feb ;;
+                      3|03) tmonth=mar ;;
+                      4|04) tmonth=apr ;;
+                      5|05) tmonth=may ;;
+                      6|06) tmonth=jun ;;
+                      7|07) tmonth=jul ;;
+                      8|08) tmonth=aug ;;
+                      9|09) tmonth=sep ;;
+                      10)tmonth=oct ;;
+                      11) tmonth=nov ;;
+                      12) tmonth=dec ;;
+                       *) tmonth=0 ;;
+                 esac
+             tday=`echo ${tdomdate} | cut -d'/' -f1`
+             DOMAINDATE=`echo $tday-$tmonth-$tyear`
      else # .com, .edu, .net and may work with others
            DOMAINDATE=`cat ${WHOIS_TMP} | ${AWK} '/Expiration/ { print $NF }'`
      fi

Готовият скрипт с поддръжка на .bg домейни, може да бъде намерен тук.

Примерен output:

./check.domain.expired.sh -d digsys.bg
Domain                              Registrar         Status   Expires     Days Left
----------------------------------- ----------------- -------- ----------- ---------
digsys.bg                           Digital Systems L Valid    01-jan-2012   313

Може да го ползваме в cronjob, и ако домейна изтича в рамките на месец да получим известяване по email.

./check.domain.expired.sh -a -d example.org  -q -x 30 -e mail@example.net

Има възможност и за подаване на повече от един домейн чрез текстов файл (всеки домейн на нов ред).
Въобще всички възможни опции:

Usage: ./check.domain.expired.sh [ -e email ] [ -x expir_days ] [ -q ] [ -a ] [ -h ]
          {[ -d domain_namee ]} || { -f domainfile}
 
  -a               : Send a warning message through email 
  -d domain        : Domain to analyze (interactive mode)
  -e email address : Email address to send expiration notices
  -f domain file   : File with a list of domains
  -h               : Print this screen
  -s whois server  : Whois sever to query for information
  -q               : Don't print anything on the console
  -x days          : Domain expiration interval (eg. if domain_date < days)

Вероятно по-натам на базата на това, ще направя и скрипт за директна проверка в nagios.

Автентичен български коментарен спам

Тези дни Пейо зададе няколко въпроса към „НЕУважаемите ботове“, относно публикуването на спам в коментари. Честно казано бях изненадан, като изключим феномена lilia и традиционните глупави коментари по новинарски и спортни сайтове, може да се каже че не бях попадал на български спам коментар в нечий блог. Донякъде е нормално, все пак повечето хора проверяват ръчно коментарите си, или пък ползват някакво софтуерно решение. Е днес лично аз получих 10-на коментара рекламиращи парктроник / ксенони. Малко парадоксално е, защото в момента нямам личен автомобил, но все пак лично аз бях учуден, че някой явно си е платил за т.нар. CEO услуга (при Пейо има повече информация по въпроса). Аз си направих труда да разгледам нещата на малко по-ниско ниво. Ето и част от самите коментари:

Рекламираният сайт (ksenoni.com) е регистриран чрез hostbulgaria.com от Perchemliev OOD. Използваните IP-та са предимно от руски мрежи. Повечето (предполагам всички, но не ми се проверява) са активни проксита. Различният User Agent предполага, използването примерно на User Agent Switcher.

IP | User Agent

47.230.0.43 | ca | "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
178.74.69.6 | ru | "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
64.22.120.93 | us | "Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8"
195.133.54.34| ru | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"
184.82.34.66 | us | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
213.228.1.129 - fr | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"
85.223.163.158 - ua | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
87.224.199.115 - ru | "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1"
72.0.44.213 - us | "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1"
78.24.177.42 - ru | "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.14) Gecko/2009082707 Firefox/3.0.14 (.NET CLR 3.5.30729)"
92.240.201.107 - ru | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"
82.143.193.185 - dk | "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1"
82.140.68.76 - ru | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"

Част от използваните gmail имейли са активни, останалите са random генерирани за дадения домейн (gmail/ymail).

Коментираните постове са преглеждани преди това от следното IP – 82.137.117.200 на БТК:

82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/71 HTTP/1.0" 200 51927 "http://just4nick.net/blog/archives/71" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/511 HTTP/1.0" 200 62097 "http://just4nick.net/blog/archives/511" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"
82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/440 HTTP/1.0" 200 43812 "http://just4nick.net/blog/archives/440" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"
82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/831 HTTP/1.0" 200 57925 "http://just4nick.net/blog/archives/831" "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1"
82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/658 HTTP/1.0" 200 47675 "http://just4nick.net/blog/archives/658" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8)"
82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/923 HTTP/1.0" 200 52275 "http://just4nick.net/blog/archives/923" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50"
82.137.117.200 - - [15/Feb/2011:14:36:28 +0200] "GET /blog/archives/69 HTTP/1.0" 200 52919 "http://just4nick.net/blog/archives/69" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.14) Gecko/2009082707 Firefox/3.0.14 (.NET CLR 3.5.30729)"

Та колкото и да ми е странно на мен, явно вече си имаме професионални BG спамери.

Micronokia a.k.a. Elopocalypse

Миналата година някъде по същото време, в седмиците покрай MWC се случиха някои наистина изненадващи неща в света на мобилните технологии. Първо Nokia „освободиха“ Symbian:

This is a major breakthrough for the Foundation that shows our commitment to open source and the wider community while enabling the symbian ecosystem to make business as usual. We have tried to lower the adoption barrier to a bare minimum, fostering HW innovation and empowering developers to port the platform to all kind of devices, beyond that of pure personal communication devices… netbooks, perhaps?…

След това обявиха създаването на MeeGo:

MeeGo is an open source, Linux project which brings together the Moblin project, headed up by Intel, and Maemo, by Nokia, into a single open source activity. MeeGo integrates the experience and skills of two significant development ecosystems, versed in communications and computing technologies. The MeeGo project believes these two pillars form the technical foundations for next generation platforms and usages in the mobile and device platforms space.

Бъдещето изглеждаше толкова ясно. Но какво се случи за една година, за да се стигне до новината от петък. Отговорът е  Stephen Elop, първият нефинландец оглавяващ Nokia. Промяна направена с идеята да се застигне изоставането на Nokia от Apple и Google в областта на смартфоните, продукт, който донякъде всъщност е отроче именно на Nokia. Да, по това време Nokia все още бе производител номер 1, но на устройства от доста по-ниския клас, залагаха основно на  количество. Но появата на iPhone и на по-късен етап на Android сериозно застраши позициите на финландците. Цените падат, а от другите получаваш много повече в един телефон, отколкото получаваш от Nokia. Нещо, което Стивън казва на служителите си чрез email в прав текст (цялото писмо може да се прочете тук):

In 2008, Apple’s market share in the $300+ price range was 25 percent; by 2010 it escalated to 61 percent. They are enjoying a tremendous growth trajectory with a 78 percent earnings growth year over year in Q4 2010. Apple demonstrated that if designed well, consumers would buy a high-priced phone with a great experience and developers would build applications. They changed the game, and today, Apple owns the high-end range.

And then, there is Android. In about two years, Android created a platform that attracts application developers, service providers and hardware manufacturers. Android came in at the high-end, they are now winning the mid-range, and quickly they are going downstream to phones under €100. Google has become a gravitational force, drawing much of the industry’s innovation to its core.

Let’s not forget about the low-end price range. In 2008, MediaTek supplied complete reference designs for phone chipsets, which enabled manufacturers in the Shenzhen region of China to produce phones at an unbelievable pace. By some accounts, this ecosystem now produces more than one third of the phones sold globally – taking share from us in emerging markets.

While competitors poured flames on our market share, what happened at Nokia? We fell behind, we missed big trends, and we lost time. At that time, we thought we were making the right decisions; but, with the benefit of hindsight, we now find ourselves years behind.

The first iPhone shipped in 2007, and we still don’t have a product that is close to their experience. Android came on the scene just over 2 years ago, and this week they took our leadership position in smartphone volumes. Unbelievable.

We have some brilliant sources of innovation inside Nokia, but we are not bringing it to market fast enough. We thought MeeGo would be a platform for winning high-end smartphones. However, at this rate, by the end of 2011, we might have only one MeeGo product in the market.

At the midrange, we have Symbian. It has proven to be non-competitive in leading markets like North America. Additionally, Symbian is proving to be an increasingly difficult environment in which to develop to meet the continuously expanding consumer requirements, leading to slowness in product development and also creating a disadvantage when we seek to take advantage of new hardware platforms. As a result, if we continue like before, we will get further and further behind, while our competitors advance further and further ahead.

За всички е ясно, че Nokia са 4 години зад тренда и конкуренцията, така че Elop решава, че имат нужда от бързи резултати. В писмото се говори за успехите на iPhone и Android, и се очаква MeeGo като с магическа пръчка да е готов за една година. Elop дали се е поинтересувал, колко време е замислян и разработван iPhone. Дори и първият телефон с Android не може да се нарече кой знае какъв успех, докато не излязоха моделите на HTC и Samsung да го подкрепят. MeeGo имаше бъдеще (и все още го има), но Nokia решиха да заложат на WP7, толкова по-зле за тях. Предполагам, някой ще си помисли, че хейтът по Nokia е нормална реакция за феновете на open source. Но изглежда, че не само те мислят така. Доста анализатори отчитат прилягането на Nokia на M$ като грешка. Бизнеса изглежда също е на това мнение, 16% спад на акциите само за ден, не може да значи нещо друго. Какви всъщност бяха опциите пред Nokia:

  • да следва предварително обявения план от миналата година – Symbian за low-end устройствата, и MeeGo за смартфони
  • да заложи на Android (може би дори на WebOS)
  • да заложи на Microsoft – въпреки слуховете в последната седмица, едва ли някой всъщност го е очаквал

Безспорно от „сватбата“ не печели Nokia. С един удар да затриеш два проекта, в които е вложен толкова много труд и да заложиш на операционна система, която никак не е на почит сред мобилните у-ва е меко казано странно. От тази сделка, Nokia може само да загуби (както са губили и други преди това), а Microsoft може само да спечели. Ако стане добре дошло, ако не…какво им пука. И в този ред на мисли, CEO-то на Nokia все още държи доста солиден дял акции на Microsoft.

Защо всъщност пиша всичко това. Отговорът е прост, защото съм разочарован – наистина очаквах много от MeeGo и възможността за телефон с Qt. Защото има нужда от конкуренция за Android. А и защото съчувствам на хората, които са вложили доста работа и в двата проекта, а на края получават нож в гърба. За съжаление в бизнеса, няма място за принципи и романтика.

Това, все пак вдъхва някакви надежди:

“The Linux Foundation is disappointed in Nokia’s decision today to choose Microsoft as the primary platform for its mobile phones. Tough times give birth to difficult decisions that we don’t always agree with, but open source is — at its core — about choice. We believe that open source software is more than a sum of its parts, and the market is currently bearing that out. The Linux Foundation is here to enable collaboration among its members and the Linux community, and we invite participation in MeeGo and any of our other many projects and programs. In its 20th anniversary year, Linux is a significant underpinning in every computing segment. Full steam ahead.”

Stop ACTA