Hastache 0.6.0. Новый мейнтейнер

Апрель 01, 2014, 15:30

Вы­шла но­вая вер­сия has­tache 0.6.0. Са­мое за­мет­ное из­ме­не­ние — пе­ре­ход от ис­поль­зо­ва­ния ByteString к ис­поль­зо­ва­нию Text.

А са­мое за­мет­ное из­ме­не­ние для меня са­мо­го в том, что те­перь у has­tache но­вый мейн­тей­нер, ко­то­рый вот эту но­вую вер­сию и вы­пу­стил. Это Dani­il Fru­min. Я ото­шел от раз­ра­бот­ки has­tache про­сто по при­чине от­сут­ствия у меня ак­тив­ных про­ек­тов с его ис­поль­зо­ва­ни­ем, а лю­дям надо, кто-то поль­зу­ет­ся, вот Dani­il и по­про­сил­ся на эту роль. Те­перь у меня та­кое стран­ное чув­ство по это­му по­во­ду. С од­ной сто­ро­ны при­ят­но, что там что-то та­кое на­пи­сал, а вот те­перь оно со­всем сво­ей жиз­нью за­жи­ло. С дру­гой сто­ро­ны, эх вре­ме­ни бы мне немно­го сво­бод­но­го, сесть и пе­ре­пи­сать все со­всем по дру­го­му, по пра­виль­но­му, API мож­но еще немно­го обоб­щить, пар­сер пе­ре­пи­сать...

Большие данные

Март 23, 2014, 17:00

Недав­но ко мне об­ра­ти­лась пред­ста­ви­тель­ни­ца из­да­тель­ства «Манн, Ива­нов и Фер­бер» с пред­ло­же­ни­ем про­чи­тать и на­пи­сать от­зыв об од­ной из их но­вых книг. Тема пред­ло­жен­ной кни­ги мне была не ин­те­рес­на и в от­вет на мой от­каз, она пред­ло­жи­ла вы­брать для об­зо­ра лю­бую из из­дан­ных этим из­да­тель­ством книг. Я вы­брал кни­гу «Боль­шие дан­ные». Тут надо сде­лать неболь­шое от­ступ­ле­ние: из рус­ско­языч­ных из­да­тельств «МИФ» мне нра­вить­ся, по­жа­луй, боль­ше всех, так что силь­но упра­ши­вать меня не при­ш­лось. (Бро­сить все это про­грам­ми­ро­ва­ние? Стать из­вест­ным ли­те­ра­тур­ным кри­ти­ком?)

Сле­ду­ет сра­зу сде­лать неболь­шое за­ме­ча­ние ка­са­е­мо са­мо­го это­го тер­ми­на «боль­шие дан­ные». Лич­но для меня это было но­во­стью. Ав­то­ры кни­ги пи­шут что под сло­вом «боль­шие» сле­ду­ет по­ни­мать не столь­ко объ­ем дан­ных, сколь­ко пол­но­ту вы­бор­ки («N = все»). В до­ком­пью­тер­ную эпо­ху для ана­ли­за ка­ких-то дан­ных необ­хо­ди­мо было для на­ча­ла вы­пол­нить из них слу­чай­ную вы­бор­ку та­ко­го объ­е­ма, ко­то­рый еще под­да­ет­ся руч­но­му ана­ли­зу. На ос­но­ве ана­ли­за это­го неболь­шо­го объ­е­ма де­ла­лось пред­по­ло­же­ние о всех дан­ных це­ли­ком (это и сей­час ак­ту­аль­но, на­при­мер, для со­цио­ло­ги­че­ских ис­сле­до­ва­ний, толь­ко тут слож­ность в са­мом сбо­ре дан­ных). Ко­гда мы вхо­дим в мир боль­ших дан­ных, то уже нет необ­хо­ди­мо­сти де­лать пред­ва­ри­тель­ный от­бор из все­го их объ­е­ма, мы ана­ли­зи­ру­ем все це­ли­ком. В кни­ге при­во­дить­ся при­мер вы­яв­ле­ния до­го­вор­ных боев в япон­ской борь­бе сумо с по­мо­щью ста­ти­сти­че­ско­го ана­ли­за. Весь вход­ной объ­ем дан­ных, это все­го чуть боль­ше 64000 по­един­ков — со­вер­шен­но смеш­ной объ­ем для того что мы при­вык­ли под­ра­зу­ме­вать под тер­ми­ном «боль­шие дан­ные». Од­на­ко, с точ­ки зре­ния ав­то­ров кни­ги, это боль­шие дан­ные и есть, ведь для ана­ли­за были ис­поль­зо­ва­ны ре­зуль­та­ты всех боев (N = все) за мно­го лет.

Нет смыс­ла пе­ре­ска­зы­вать об­ла­сти при­ме­не­ния боль­ших дан­ных, ко­то­рые упо­мя­ну­ты в кни­ге — луч­ше ее про­сто про­чи­тать. Там мно­го при­ме­ров. А для ин­те­ре­су­ю­щих­ся те­мой сей­час во­об­ще вре­мя хо­ро­шее: боль­шие дан­ные в моде, в но­во­стях по­сто­ян­но опи­сы­ва­ют все но­вые их при­ме­не­ния.

Эпо­ха боль­ших дан­ных — это не что-то та­кое, к чему надо го­то­вить­ся, это уже наша объ­ек­тив­ная ре­аль­ность, став­шая воз­мож­ной бла­го­да­ря по­все­мест­ной да­ти­фи­ка­ции (пе­ре­во­да ин­фор­ма­ции в при­год­ный для ана­ли­за циф­ро­вой вид). И как у лю­бой мощ­ной тех­но­ло­гии у нее есть две сто­ро­ны.

С од­ной сто­ро­ны, боль­шие дан­ные бук­валь­но спа­са­ют жиз­ни. На­при­мер непре­рыв­ный мо­ни­то­ринг ме­ди­цин­ских по­ка­за­ний недо­но­шен­ных мла­ден­цев, с уче­том ра­нее про­ана­ли­зи­ро­ван­ных за­ме­ров, поз­во­ля­ет рас­по­знать на­ча­ло раз­ви­тия ин­фек­ции, ко­гда ни­ка­ких внеш­них при­зна­ков еще нет. В дан­ных ин­фек­ция уже за­мет­на, и ле­че­ние мож­но на­чать сра­зу.

С дру­гой сто­ро­ны, боль­шие дан­ные бро­са­ют вы­зов со­хра­не­нию кон­фи­ден­ци­аль­но­сти и при­ват­но­сти. Ана­ли­зи­руя по­треб­ле­ния элек­тро­энер­гии че­ло­ве­ком мож­но мно­гое узнать о его при­выч­ках. Или срав­ни­вая по­ве­де­ние лю­дей на сай­тах скры­ва­ю­щих ре­аль­ные име­на и сай­тах где ре­аль­ные име­на из­вест­ны, мож­но с до­ста­точ­но вы­со­кой точ­но­стью иден­ти­фи­ци­ро­вать кон­крет­но­го че­ло­ве­ка (в кни­ге есть при­мер рас­кры­тия ре­аль­ных имен поль­зо­ва­те­лей на ос­но­ве ано­ни­ми­зи­ро­ван­ных дан­ных с сер­ви­са про­ка­та филь­мов Net­flix при срав­не­нии их с ре­аль­ны­ми име­на­ми поль­зо­ва­те­лей сай­та IMDb).

Та­к­же есть риск за­хо­да со­всем уже на тем­ную сто­ро­ну. Ска­жем мо­жет по­явить­ся ис­ку­ше­ние про­гно­зи­ро­ва­ния бу­ду­ще­го по­ве­де­ния че­ло­ве­ка, для пре­се­че­ния воз­мож­ных пра­во­на­ру­ше­ний, до их непо­сред­ствен­но­го со­вер­ше­ния. Про­сто по­то­му, что ана­лиз дан­ных по­ка­зал вы­со­кую ве­ро­ят­ность та­ких со­бы­тий. Ан­ти­уто­пия в чи­стом виде — че­ло­век еще ни­че­го не сде­лал, но про­бле­мы у него уже есть.

Важ­но по­ни­мать, боль­шие дан­ные по­ка­зы­ва­ют нам что-то на ос­но­ве того что уже было. Пред­ска­зать нечто прин­ци­пи­аль­но но­вое они не в со­сто­я­нии. Так что мир че­ло­ве­че­ско­го ин­тел­лек­та, твор­че­ства, про­зре­ний, изоб­ре­та­тель­но­сти оста­ют­ся, к сча­стью, за нами, несмот­ря на весь про­гресс в ги­га­гер­цах, те­ра­бай­тах и ал­го­рит­мах.

Про удаленную работу

Декабрь 06, 2013, 12:15

Про­чи­тал книж­ку RE­MOTE от 37sig­nals. Книж­ка по­свя­ще­на во­про­сам ор­га­ни­за­ции уда­лен­ной ра­бо­ты. На­пи­са­на на их соб­ствен­ном опы­те су­ще­ство­ва­ния в усло­ви­ях ко­гда боль­шая часть шта­та ком­па­нии гео­гра­фи­че­ски на­хо­дит­ся да­ле­ко друг от дру­га. Книж­ку ре­ко­мен­дую, мне очень по­нра­ви­лась.

В этом де­каб­ре ис­пол­ни­лось 6 лет как я сам ра­бо­таю из дома, и чем даль­ше тем боль­ше мне это нра­вит­ся. Опы­та ру­ко­вод­ства гео­гра­фи­че­ски рас­пре­де­лен­ных ко­манд у меня нет, но опыт ра­бо­ты в та­ких ко­ман­дах есть, и вот в честь юби­лея моей до­маш­ней ра­бо­ты (10 в ше­сти­рич­ной си­сте­ме счис­ле­ния, в сле­ду­ю­щем году бу­дет 10 в се­ми­рич­ной, очень удоб­но) я бы хо­тел по­де­лит­ся сво­им опы­том.

Про сто­я­ние с кну­том

По мо­е­му опы­ту, боль­шин­ство по­тен­ци­аль­ных ме­не­дже­ров за­ду­мы­ва­ю­щих­ся об ор­га­ни­за­ции уда­лен­ной ра­бо­ты, боль­ше все­го пе­ре­жи­ва­ют что без сто­я­ще­го над ду­шой на­чаль­ни­ка с кну­том ра­бо­та во­об­ще сде­ла­на не бу­дет. Гос­по­да, ну это пол­ная ерун­да, как буд­то в офи­се мало воз­мож­но­сти ни­че­го не де­лать. Даже по­пыт­ки за­кры­вать до­ступ к раз­ным там од­но­класс­ни­кам и вкон­так­там при­во­дит про­сто к ро­сту до­сту­па к ним с мо­биль­ных. Сей­час, я так по­ни­маю, доля та­ких поль­зо­ва­те­лей соц­се­тей из­ме­ря­ет­ся де­сят­ка­ми про­цен­тов. И там очень мно­го вот как раз та­ких, ра­бо­та­ю­щих в ком­па­ни­ях с огра­ни­чен­ным ин­тер­не­том. До­ду­ма­лись ли где-то уже от­би­рать со­то­вые в на­ча­ле ра­бо­че­го дня я не знаю. Но ра­бов к га­ле­ре луч­ше все­го сра­зу це­пью при­ко­вы­вать.

Вы­пол­не­ние со­вре­мен­ной ра­бо­ты, осо­бен­но в IT, осо­бен­но у про­грам­ми­стов, со­вер­шен­но три­ви­аль­но от­сле­жи­ва­ет­ся про­сто по фак­ту вы­пол­не­ния нуж­ной ра­бо­ты. За эти 6 лет ни разу ни­ко­го не за­ин­те­ре­со­ва­ло в ка­кое вре­мя я ра­бо­таю или сколь­ко ча­сов про­во­жу за мо­ни­то­ром или как ча­сто за­хо­жу в соц­се­ти. Во­прос был толь­ко один — как дви­жет­ся ра­бо­та.

Про са­мо­мо­ти­ва­цию

Об­рат­ная сто­ро­на преды­ду­щей ме­да­ли. «Если меня не пи­нать по­сто­ян­но, я и де­лать ни­че­го не буду», — рас­про­стра­нен­ная мысль мно­гих на­ем­ных ра­бот­ни­ков. Это, на са­мом деле, до­воль­но се­рьез­ная про­бле­ма. Раз­би­рай­тесь за­чем вам нуж­на ра­бо­та и ка­кая она долж­на быть, мо­жет удаст­ся най­ти хоть ка­кую-то по­ло­жи­тель­ную мо­ти­ва­цию чтоб ее вы­пол­нять, или сме­нить ра­бо­ту на ту что боль­ше по душе. С мо­ти­ва­ци­ей ос­но­ван­ной на стра­хе жить не очень при­ят­но. Как кра­е­вед го­во­рю.

Про на­сто­я­щие труд­но­сти

Един­ствен­ная боль­шая про­бле­ма с ко­то­рой лич­но я столк­нул­ся за эти годы — это де­фи­цит об­ще­ния. Если из дома вы­хо­дишь толь­ко в ма­га­зин, да еще и до­маш­ние куда-ни­будь разъ­е­ха­лись, на­чи­на­ешь на­ту­раль­но ди­чать. В офи­се хоть кол­ле­ги есть, и по пути на ра­бо­ту и с ра­бо­ту ка­кое-ни­ка­кое об­ще­ние, жи­вых лю­дей ви­дишь. А тут надо се­рьез­но ду­мать что де­лать. По­мо­га­ют раз­ные там хоб­би, я, на­при­мер, два­жды в неде­лю со­би­раю неболь­шую груп­пу за­ни­ма­ю­щих­ся ци­гун у себя дома, вме­сте за­ни­ма­ем­ся, по­том чай пьем. И поль­за от ци­гу­на и поль­за от об­ще­ния.

Про фи­зи­че­скую на­груз­ку

Это тоже про­бле­ма. Ко­гда рас­сто­я­ние кро­вать-кух­ня-ком­пью­тер в сум­ме мет­ров 20, фи­зи­че­ская фор­ма сами по­ни­ма­е­те ка­кая ста­но­вит­ся. 37sig­nals пи­шут, что они даже ком­пен­си­ру­ют рас­хо­ду на фит­нес клу­бы для сво­их ра­бот­ни­ков — за­ме­ча­тель­ная идея.

Тут мне, надо ска­зать, нечем по­хва­стать­ся, я что-то де­лаю в смыс­ле спор­та, но это­го явно мне недо­ста­точ­но. Про­дол­жаю ра­бо­тать над этим во­про­сом.

Про ор­га­ни­за­цию ра­бо­че­го ме­ста

Тут мне на­ту­раль­но по­вез­ло, у меня есть воз­мож­ность дома одну ком­на­ту за­нять под ка­би­нет где я и ра­бо­таю. В RE­MOTE пе­ре­чис­ля­ют­ся раз­ные ва­ри­ан­ты где мож­но еще ра­бо­тать: кафе, ко­вор­кинг цен­тры и т.п. Я пока не про­бо­вал, мне дома нор­маль­но.

С ин­тер­не­том сей­час тоже все за­ме­ча­тель­но. Пе­ри­о­ди­че­ски я в де­рев­ню уез­жаю, там нет воды в кране (как и са­мо­го кра­на), нет ка­на­ли­за­ции, до­рог тоже мож­но ска­зать что нет, но быст­рый ин­тер­нет в те­ле­фоне там есть, та­кой вот из­гиб тех­ни­че­ско­го про­грес­са.

Про плю­сы

Мно­го вре­ме­ни вы­сво­бож­да­ет­ся. Ни­ка­ко­го пе­ре­пол­нен­но­го об­ще­ствен­но­го транс­пор­та (или сто­я­ния в проб­ках), где и те­ря­ют­ся эти 1-2-3-… часа в день у офис­ных ра­бот­ни­ков.

Ра­бо­чее ме­сто ор­га­ни­зо­ва­на как угод­но по соб­ствен­но­му вку­су. Хо­ро­ший мо­ни­тор, кла­ви­а­ту­ра, крес­ло.

Ра­бо­чее вре­мя вы­би­ра­ет­ся по вку­су. Мож­но хоть в 6 утра на­чать ра­бо­тать и к обе­ду все пе­ре­де­лать, мож­но рано утром часть ра­бо­ты, по­том еще немно­го ве­че­ром. В се­ре­дине дня мож­но в ма­га­зин схо­дить, а не тол­кать­ся там в 19 ча­сов ко­гда туда все по­сле офис­но­го ра­бо­че­го дня при­хо­дят.

С се­мьей боль­ше вре­ме­ни про­во­дишь. Папа ко­неч­но днем за­нят и ра­бо­та­ет, но ино­гда от­влечь мож­но.

Пи­тать­ся мож­но вкус­ной до­маш­ней толь­ко что при­го­тов­лен­ной едой, а не в непо­нят­ных ка­феш­ках и сто­ло­вых.

Про хо­ро­шо

Я, как и ав­то­ры книж­ки RE­MOTE, счи­таю что чем даль­ше тем боль­ше лю­дей бу­дет уда­лен­но ра­бо­тать. Плю­сов мно­го, ми­ну­сов мало.

Если вы ра­бо­то­да­тель, про­чи­тай­те RE­MOTE и по­ду­май­те об ор­га­ни­за­ции уда­лен­ной ра­бо­ты у себя.

Если вы ра­бот­ник, про­чи­тай­те RE­MOTE и аги­ти­руй­те сво­е­го ра­бо­то­да­те­ля на­чать ор­га­ни­за­цию уда­лен­ной ра­бо­ты. Мож­но вот как раз с вас.

UPD: В из­да­тель­стве «Манн, Ива­нов и Фер­бер» вы­шел рус­ский пе­ре­вод кни­ги.

Резервное копирование с BitTorrent Sync

Ноябрь 19, 2013, 20:15

Что за зверь?

Bit­Tor­rent Sync — со­вер­шен­но за­ме­ча­тель­ный сер­вис, за­пу­щен­ный ав­то­ра­ми все­ми нами лю­би­мо­го про­то­ко­ла Bit­Tor­rent в ап­ре­ле 2013. Это сер­вис син­хро­ни­за­ции фай­лов, при этом син­хро­ни­за­ция по воз­мож­но­сти про­ис­хо­дит на­пря­мую меж­ду устрой­ства­ми, без ис­поль­зо­ва­ния цен­траль­но­го сер­ве­ра для пе­ре­да­чи (т. е. по тех­но­ло­гии peer-to-peer). P2P при­ро­да дает одно се­рьез­ное пре­иму­ще­ство пе­ред сер­ви­са­ми об­лач­но­го хра­не­ния фай­лов (Drop­box, Ян­декс.Диск, Google Drive) ко­то­рые мно­гие ис­поль­зу­ют для син­хро­ни­за­ции сво­их устройств: в P2P мы ни­как не огра­ни­че­ны объ­е­ма­ми син­хро­ни­зи­ру­е­мых дан­ных, нуж­но пе­ре­дать те­ра­байт дан­ных, на здо­ро­вье, хва­ти­ло бы про­пуск­ной спо­соб­но­сти сети и объ­е­ма дис­ков на син­хро­ни­зи­ру­е­мых ма­ши­нах. В об­лач­ных сер­ви­сах все­гда есть ка­кое-то не очень боль­шое огра­ни­че­ние объ­е­ма, и за его уве­ли­че­ние нуж­но до­пла­чи­вать. Ми­ну­сом же P2P син­хро­ни­за­ции мож­но на­звать необ­хо­ди­мость од­но­вре­мен­но­го при­сут­ствия в сети син­хро­ни­зи­ру­е­мых устройств.

Уви­дев анонс Bit­Tor­rent Sync я сра­зу его по­про­бо­вал в деле и остал­ся очень до­во­лен: под­дер­жи­ва­ет все нуж­ные мне плат­фор­мы, син­хро­ни­зи­ру­ет быст­ро. Я даже уда­лил за даль­ней­шей нена­доб­но­стью свой ак­ка­унт в Drop­Box.

Ис­поль­зо­ва­ние для ре­зерв­но­го ко­пи­ро­ва­ния.

Со­зда­ние ре­зерв­ных ко­пий Важ­ных Дан­ных это все­гда ин­те­рес­но. Для себя я с по­мо­щью BT­Sync со­ору­дил та­кую шту­ку: за­вел сер­вер на Ama­zon Web Ser­vices и по­ста­вил на него BT­Sync. Дан­ные хра­нят­ся в Elas­tic Block Store. Этот са­мый EBS име­ет функ­цию со­зда­ния ин­кре­мен­таль­ных сним­ков фай­ло­вой си­сте­мы. «Ин­кре­мен­таль­ные» зна­чит что со­хра­ня­ют­ся толь­ко из­ме­не­ния, а не все дан­ные це­ли­ком, т. е. если от преды­ду­ще­го сним­ка те­пе­реш­ний от­ли­ча­ет­ся толь­ко до­бав­ле­ни­ем пары ме­га­байт то и за­ни­мать этот но­вый сни­мок бу­дет тоже толь­ко эти два ме­га­бай­та, неза­ви­си­мо от объ­е­ма все­го хра­ни­ли­ща.

И те­перь по кро­ну раз в час на этом уда­лен­ном сер­ве­ре у меня за­пус­ка­ет­ся со­зда­ние но­во­го сним­ка EBS. Сей­час я хра­ню сним­ки с ча­со­вым раз­ре­ше­ни­ем за трое су­ток, и су­точ­ные в те­че­нии 15 дней, для меня это со­вер­шен­но до­ста­точ­но, даже с из­быт­ком чест­но го­во­ря.

В ка­че­стве бо­ну­са у меня есть ко­пия дан­ных не при­вя­зан­ная к моим устрой­ствам, эда­кий ана­лог об­лач­но­го хра­ни­ли­ща по силь­но бо­лее низ­ким це­нам чем у об­лач­ных про­вай­де­ров.

Ни­че­го из на­пи­сан­но­го и на­стро­ен­но­го вы­кла­ды­вать не буду, пока по край­ней мере, там все та­кое, мммм... на­деж­но скле­ен­ное изо­лен­той и на за­би­тых мо­лот­ком шу­ру­пах, нель­зя та­кое лю­дям по­ка­зы­вать. Од­на­ко если кто же­ла­ет по­вто­рить для себя та­кую кон­струк­цию и упрет­ся в ка­кую-то непо­нят­ность, ми­ло­сти про­шу в ком­мен­та­рии.

Математические формулы ТеX в SVG

Июнь 26, 2013, 18:30

Ока­зы­ва­ет­ся во­все не обя­за­тель­но встав­лять -ов­скую ма­те­ма­ти­ку в вебе та­к­же как это де­ла­лось в 1999 году — в виде ги­фов с про­зрач­ным фо­ном. Бу­ду­щее уже дав­но на­сту­пи­ло, те­перь мож­но ис­поль­зо­вать век­тор­ный SVG.

Это я вот к чему. Недав­но, об­за­ве­дясь Мак­бу­ком с Reti­na-дис­пле­ем про­бле­ма раст­ро­вой гра­фи­ки в вебе у меня всплы­ла в пол­ный рост: если рань­ше, ко­гда часть ка­кой-ни­будь стра­нич­ки была от­ри­со­ва­на, ска­жем, фо­то­шо­пом, а часть сред­ства­ми CSS, то про­сто глаз слег­ка спо­ты­кал­ся на этой раз­ни­це, но тер­пи­мо было. А на ре­тине раз­ни­ца ста­но­вит­ся уже жут­кой — раст­ро­вые ча­сти сай­тов вы­гля­дят как на­бор боль­ших пик­се­лей.

И если на дру­гих сай­тах это про­бле­мы их со­зда­те­лей, то на моем соб­ствен­ном бло­ге (да, да, пишу я в него реже чем ко­вы­ряю его дви­жок и ди­зайн) меня та­кая раз­ни­ца не устра­и­ва­ла со­вер­шен­но, и боль­ше все­го у меня она вид­на как раз на встав­лен­ных ма­те­ма­ти­че­ских фор­му­лах.

По­лез раз­би­рать­ся как бы ма­те­ма­ти­ку в SVG рен­де­рить, ока­за­лось что че­ло­ве­че­ство эту про­бле­му дав­но ре­ши­ло, и есть ути­лит­ка dvisvgm ров­но для это­го и пред­на­зна­чен­ная. Я вы­зы­ваю ее так:

latex some.tex
dvisvgm --no-fonts some.dvi

Все, на вы­хо­де some.svg за­ме­ча­тель­но вы­гля­дя­щий на ре­тине.

На­гляд­ная раз­ни­ца меж­ду рас­тром и век­то­ром для ма­те­ма­ти­ки (при­вет всем вла­дель­цам ре­ти­на-дис­пле­ев). Растр:

Век­тор:

Кста­ти, чтоб два раза не вста­вать, сэко­ном­лю кому-ни­будь пару ча­сов на раз­би­ра­тель­ство. У всей ма­те­ма­ти­ки у меня в бло­ге вот та­кой шаб­лон:

1
2
3
4
5
6
7
8
9
\documentclass[12pt]{article}
\pagestyle{empty}
\usepackage{amsmath}
\usepackage{sfmath}
\begin{document}

$E=mc^2$

\end{document}

Конвертация репозитория Bazaar в Git

Май 30, 2013, 13:30

Мо­жет кому-то по­на­до­бит­ся. Кон­вер­ти­ру­ем ре­по­зи­то­рий Bazaar в Git:

1. Де­ла­ем ре­зерв­ную ко­пию ис­ход­но­го ре­по­зи­то­рия.

2. Уста­нав­ли­ва­ем bzr-fastim­port:

sudo apt-get install bzr-fastimport

3. Кон­вер­ти­ру­ем:

git init
bzr fast-export `pwd` | git fast-import
rm -r .bzr
git reset HEAD

Аттрактор Лоренца

Ноябрь 29, 2012, 12:00

Раз­вле­ка­юсь с ани­ма­ци­ей на HTML5 can­vas. На­пи­сал вот та­кую чу­дес­ную ви­зу­а­ли­за­цию ат­трак­то­ра Ло­рен­ца:

От­крыть в но­вом окне

При от­кры­ва­нии в но­вом окне, не за­будь­те что бра­у­зер мож­но пе­ре­ве­сти в пол­но­экран­ный ре­жим, на­жав F11. Так смот­рит­ся ещё луч­ше.

То что вы тут ви­ди­те, пред­став­ля­ет со­бой ани­ма­цию ре­ше­ния си­сте­мы сле­ду­ю­щих диф­фе­рен­ци­аль­ных урав­не­ний:

Где , , — те­ку­щее со­сто­я­ние си­сте­мы, — вре­мя, , , — па­ра­мет­ры си­сте­мы.

В моём при­ме­ре:

Для каж­дой ли­нии (пред­став­ля­ю­щей со­бой от­дель­ное ре­ше­ния урав­не­ния) я вы­би­раю на­чаль­ное зна­че­ние с до­бав­ле­ни­ем неболь­шо­го слу­чай­но­го чис­ла. Та­ким об­ра­зом очень хо­ро­шо за­ме­тен «эф­фект ба­боч­ки»: незна­чи­тель­ное воз­му­ще­ние си­сте­мы («взмах кры­ла ба­боч­ки») при­во­дят к очень боль­шим из­ме­не­ни­ям в даль­ней­шем, ли­нии «вы­ле­та­ю­щие» из очень близ­ких то­чек вско­ре на­чи­на­ют де­мон­стри­ро­вать со­вер­шен­но раз­ное по­ве­де­ние.

Новый движок моего блога

Ноябрь 26, 2012, 19:00

В оче­ред­ной раз пе­ре­де­лал дви­жок сво­е­го бло­га. Те­перь у меня чи­сто ста­ти­че­ский блог, ле­жа­щий в Ama­zon S3. Преды­ду­щая вер­сия бла­го­по­луч­но и без еди­но­го на­ре­ка­ния от­ра­бо­та­ла свои год и 9 ме­ся­цев. Те­перь на­ста­ло вре­мя пе­ре­мен.

Мне ка­жет­ся, что сум­мар­ное вре­мя, ко­то­рое я тра­чу на про­грам­ми­ро­ва­ние движ­ков сво­е­го бло­га, уже пре­вы­ша­ет вре­мя на то что­бы что-то сюда пи­сать. И уж во вся­ком слу­чае это явно срав­ни­мые ве­ли­чи­ны.

Окон­ча­тель­ным толч­ком к пе­ре­хо­ду на чи­сто ста­ти­че­ский блог по­слу­жи­ло недав­нее по­яв­ле­ние у Ama­zon S3 функ­ции ре­ди­рек­тов, без ре­ди­рек­тов всё-таки слож­но обой­тись. Та­к­же, для та­ко­го про­сто­го сай­та как лич­ный блог, дер­жать це­лый сер­вер, базу дан­ных, как-то всё это ад­ми­ни­стри­ро­вать — яв­ное пе­ре­услож­не­ние. В по­след­нее вре­мя я боль­ше скло­ня­юсь к про­стым ре­ше­ни­ям.

Для ин­те­ре­су­ю­щих­ся неко­то­рые тех­ни­че­ские по­дроб­но­сти:

Ге­не­ра­тор

Тут для меня без ва­ри­ан­тов — Haskell. Са­мый глав­ный дей­ству­ю­щий пер­со­наж тоже по­ня­тен — Has­tache, не зря же я его пи­сал.

Ор­га­ни­за­ция

Тех­ни­че­ски каж­дая за­пись в бло­ге вы­гля­дит так: от­дель­ная ди­рек­то­рия с име­нем типа «2011-02-28 16:03 new en­gine», внут­ри ле­жит файл def.json с за­го­лов­ком и те­га­ми этой за­пи­си, файл text.html с тек­стом, и ка­кие-ни­будь до­пол­ни­тель­ные фай­лы (если они в этой за­пи­си нуж­ны). Та­кие вот ра­кет­ные тех­но­ло­гии бло­го­стро­е­ния. Text.html — это не про­сто чи­стый html, это ещё и кое-ка­кая до­пол­ни­тель­ная раз­мет­ка, на­при­мер для встав­ки ма­те­ма­ти­че­ских фор­мул ( ру­лит) или ис­ход­но­го кода с под­свет­кой син­так­си­са (high­light­ing-kate). До­пол­ни­тель­ная раз­мет­ка боль­шей ча­стью пред­став­ле­на сек­ци­я­ми Has­tache.

Ти­по­гра­фи­ка

Ммм, это пря­мо моя пре­лесть. Не по­ни­маю чего ни­кто пе­ре­но­сов в вебе не де­ла­ет, на­мно­го ведь при­ят­ней вы­гля­дит, осо­бен­но если текст рас­тя­нут по ши­рине. Тех­ни­че­ски сами пе­ре­но­сы уже сто лет как до­ступ­ны во всех бра­у­зе­рах. У меня те­перь всё с пе­ре­но­са­ми, кра­со­та да и толь­ко. Пе­ре­но­сы рас­став­ля­ет са­мо­пи­сан­ная биб­лио­те­ка (ра­бо­та­ет по ал­го­рит­му Ляна-Кну­та), я её на­пи­сал для qr­ma­nia.ru, и вот опять при­го­ди­лась. Надо бы вы­ло­жить в Hack­age, но пока QA-от­дел в моей го­ло­ве это­го не поз­во­ля­ет.

Ра­бо­та с S3

Сна­ча­ла ду­мал обой­дусь s3cmd, но в ито­ге на­пи­сал соб­ствен­ный син­хро­ни­за­тор для S3, бла­го для Haskell есть биб­лио­те­ка aws. Кста­ти, я в неё за­ком­ми­тил ра­бо­ту с ре­ди­рек­та­ми S3, но эта вер­сия в на­сто­я­щий мо­мент ещё не вы­ло­же­на в Hack­age, кому сроч­но надо бе­ри­те пря­мо с GitHub.

Сергей Лымарь © 2005-2014, Все права защищены.