Мітки: розробки

Дві най­більш дикі речі, які я поба­чив під час рефа­кто­рін­гу чужо­го коду на Сі, — це замі­на include header через extern'и і при­му­со­ва інде­кса­ція маси­вів з оди­ни­чки з пере­да­чею вка­зів­ни­ка на чужу область пам’яті. Най­го­лов­ні­ше, що це два випад­ки коре­ктно­го коду, але чому таке комусь при­хо­дить у голо­ву, я не знаю.

Зро­бив анонс dnsbalancer'а на ЛОРі, спро­во­ку­вав­ши хей­те­рів на весе­лий тред. Хоча, насправ­ді, там кіль­ка сві­тлих ідей для роз­роб­ки є, над чим я зараз поти­хень­ку думаю.

Також опу­блі­ку­вав від­ре­фа­кто­ре­ний плю­со­вий код ретре­ке­ра XBTT, ми його вико­ри­сто­ву­є­мо, щоб нада­ва­ти кори­сту­ва­чам retracker.local (тро­хи еко­но­мить зов­ні­шній тра­фік). Насправ­ді, я його хотів про­сто опа­ке­ти­ти, але код там настіль­ки гиде­зно був зібра­ний доку­пи (хоча сам по собі дово­лі стро­го писа­ний по стан­дар­ту), що я вирі­шив витра­ти­ти кіль­ка годин сво­го робо­чо­го часу, щоб при­ве­сти його до ладу хоча б з виду.

Ну і про більш при­єм­не. Сьо­го­дні був один із тих над­зви­чай­но рід­кі­сних днів, коли я читав свої вір­ші на публі­ку. Це була 141-ша «Пер­ша кава від Кав’ярні Куль­чи­цько­го» в Купі­до­ні на Пушкін­ській, і насту­пної субо­ти я, мабуть, піду ще. Чита­ти мені є що.

А ще отри­мав авто­граф у при­мір­ни­ку дете­ктив­них новел «Мані­як на замов­ле­н­ня» (поси­ла­н­ня даю тіль­ки щоб було видно, як вигля­дає ця книж­ка) від само­го Опо­від­а­ча. Там опу­блі­ко­ва­на одна її нове­ла.

Мітки: , ,

Сьо­го­дні ста­ли­ся дві дрі­бно­мас­шта­бні, але дуже при­єм­ні для мене події.

По-пер­ше, мій ігра­шко­вий про­ект по напи­сан­ню аль­тер­на­тив­но­го FUSE-клі­єн­та для кла­стер­ної фай­ло­вої систе­ми GlusterFS тепло сприйня­ли й узя­ли під своє кри­ло роз­ро­бни­ки GlusterFS, і тепер сам про­ект хости­ться в їхній орга­ні­за­ції на GitHub'і. При­йма­ю­ться pull-request'и, я типу голов­на люди­на по цьо­му про­е­кту. Є шан­си, що колись у май­бу­тньо­му ця шту­ка замі­нить добрий шмат коду GlusterFS більш про­стим ріше­н­ням.

По-дру­ге, мій ком­міт упер­ше потра­пив у апстрім ядра, і нова вер­сія 4.6, яка зараз ще пере­бу­ває тіль­ки на ста­дії тре­тьо­го реліз-кан­ди­да­та, мати­ме трі­шки, але без­по­се­ре­дньо моєї пра­ці.

Мітки: , ,

Сьо­го­дні я пока­жу дещо з того, чим займав­ся в інсти­ту­ті, і чого зно­ву тор­кнув­ся впро­довж остан­ньо­го тижня. Пода­на інфор­ма­ція поді­ле­на на дві части­ни, пер­ша при­зна­че­на для тих, хто поня­т­тя не має, про що вза­га­лі може йти мова, дру­га буде по суті.
Read More »

Мітки: , ,

Yet another тест від мене.

Тесту­вав­ся час, який затра­чу­є­ться на обчи­сле­н­ня пер­ших 30 тисяч чле­нів послі­дов­но­сті A000005 моєю бага­то­по­то­чною про­грам­кою. Тест напи­са­но так, щоб він ство­рю­вав послі­дов­но від 1 до 20 пото­ків, на кожній іте­ра­ції обчи­слю­вав оті 30 тисяч п’ять разів, а потім усе­ре­дню­вав час на пото­чну іте­ра­цію.

Як бачи­мо, з BFS рахує наба­га­то швид­ше. А ще ціка­во, що з BFS вар­то вико­ри­сто­ву­ва­ти пар­ну кіль­кість пото­ків, бо непар­ний потік (у мене два ядра на про­ці без гіпер­трей­дин­га) він постій­но ганяє з ядра на ядро, і так, мабуть, вно­сить затрим­ку в обчи­сле­н­ня. У CFS із балан­су­ва­н­ням наван­та­же­н­ня все наба­га­то гір­ше, тому гра­фік не зав­жди йде «пил­кою».

Мітки: , , , ,

При­ду­мую скрипт для авто­ма­ти­чної оброб­ки фоток: змі­не­н­ня роз­мі­ру й зафі­га­чу­ва­н­ня копі­рай­та. Поки наду­мав ота­ке:

#!/usr/bin/env bash
 
for i in *.JPG
do
	# resize image
	convert -resize 1280 $i _$i
 
	# get image dimensions
	dimensions=`identify "_$i" | awk '{print($3)}'`
	dim_x=`echo $dimensions | cut -d x -f 1`
	dim_y=`echo $dimensions | cut -d x -f 2`
 
	# get rectangle position
	top_x=`echo "$dim_x-315" | bc -l`
	top_y=`echo "$dim_y-22" | bc -l`
 
	# put copyright
	convert -pointsize 14 -font Liberation-Sans-Regular -draw "fill rgb(220,220,220) stroke rgb(220,220,220) rectangle $top_x,$top_y $dim_x,$dim_y" -draw 'gravity SouthEast fill black text 5,2 "© Oleksandr Natalenko :: http://natalenko.name/"' _$i __$i
 
	# remove garbage
	rm _$i
done

Це ще не фіналь­ний варі­ант, буду доробляти/переробляти.

Мітки: , , ,