Еще один мотиватор

Итак, прошло полгода с моего однострочного поста о своем блоге. За это время практически ничего не изменилось, в моем к нему отношении: оффлайн потреблял большую часть внимания, работа забирала огромное количество сил. Поэтому, в ответ на декабрьский мотиватор, сгенерирую еще один пост о том, что же планируется сделать.

* определиться с нишей в которой будет находиться тематика моих статей – тут я уже понял и со сменой дизайна скорее всего смогу вас порадовать новым названием. Поскольку битва за высшее образование уже подошла к концу, то отныне я буду меньше фокусироваться на вопросах обучения, а уделю больше внимание гиковско-программерским фишкам. В частности, планируется ряд постов, о том как сделать элементарные вещи с помощью ruby.
* привлечь постоянных посетителей – насколько я знаю, мой блог попал в аггрегатор Димка и Дмитрия Кибина, постоянно меня читает Kukish и Hairgel_Addict_A. Если еще у кого-то моя писанина вызывает какие-то эмоции, просьба не ленится, а отметиться в комментариях. На основании этого чтива будет сформирован новый blogroll.
* выработать оригинальный стиль – не мне судить, пусть общественность скажет
* выйти на режим 3 статьи в неделю – это главный TODO на данный момент, но здесь мало что зависит от меня – есть поле для экспериментов и творчества, но зачастую просто не хватает времени для того, чтобы большую часть этого красиво изложить на страницах. Да и вечный вопрос, “надо ли?” терзает сознание. Если вам хочется о чем-то прочитать, моя почта ждет ваших посланий.
* нарисовать оригинальный дизайн – с постоянной сменой концепций, тот редизайн, который я готовил к майскому ребуту уже вряд ли можно назвать подходящим на 100%. Планирую кое что новое, даже есть идеи, но как известно, красиво и функционально у меня не всегда идут рука об руку.

И еще дорогие читатели вопрос к вам: стоит ли оставлять на блоге Adsense? За полгода висения, он “пережил” около 20 кликов и принес едва больше 3ех долларов. Имеет ли смысл тратить под него место? Конечно, хочется монетизировать свой труд, но возможно это лучше делать иным путем, например, размещая в конце каждого поста ссылку – “Понравился пост, купи мне пиво” с номерами кошельков WebMoney и прочих электронных денег? Часто ли вы нажимаете на adsense рекламу, если статья на блоге оказалась вам полезной?

Борьба за образование: KnockOut

Здравствуйте, мои дорогие читатели!

Битва за образование закончена: сдана бакалаврская, выиграно первое сражение.

Хотелось бы выразить свое огромное спасибо: жене, родителям, тестю и теще, Ахилу, Джуджо, сотрудникам фирмы Спаркс и научному руководителю.

За подготовкой работы совсем выпал из ритма жизни и почти неделю входил в колею. Было желание творить, а пришлось работать. Благо начальник – не тот который новый занудный педант, а тот который сообразительный дал интересное задание по связке двух баз: магазина на кривущем псевдодвижке и поставщика на огромном ХМЛе. Структура базы поработила мой мозг и осознание ее сожрало почти день.

По ходу работы был обнаружен жестокий баг SimpleXML: если вы считываете из базы поле float или decimals и не проводите дополнительный его cast через floatval, то рискуете потерять знаки после запятой. Обнаружилось на php5.2.1 пащущего под freeBSD6.0.

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

WordPress Update

В ответ на лытдыбр Ахила, хочется сказать, что последний апдейт WordPress меня совсем не порадовал. Я привык, что я обычно в Fantastico жму кнопку и все живущие у мну блоги апдейтятся, а тут нет. Никакой автоматизации, из-за введения двух новых параметров в конфиг-файл, для того чтобы все заработало “из коробки” нужно зайти ручками в текущую рабочую базу блога и там поменять для каждого поля имеющего collation c latin1_swedish_ci на utf8_general_ci.
Вообщем, мне на 2 часа хватило, чердак Ахила я оживил, с остальными как-нибудь уж потом разберемся.

Еще раз для популяризации Руби

Пополняя свою коллекцию полезных скриптов, в добавок к Javascript-у, YAML-скрипту и Listing-cкрипту сегодня написал еще один Watermark-скрипт.
Как понятно из названия, он берет все jpg файлы из текущей папки и добавляет к ним одно изображение. Очень удобно для пакетной обработки файлов: можно поставить на все изображения URL вашего сайта, чтобы люди знали откуда сие добро взято.
Код простой, работает консольно без всякого вывода, однако для его запуска потребуется RMagick, а следовательно и ImageMagick тоже. Если вы используете нормальный сервер или одну из правильных OS, то проблем возникнуть не должно.


require 'RMagick'
wtm_file = 'watermark.png'
wtm = Magick::Image.read(wtm_file).first
Dir.open('./').each do |file|
    next if file[-4..-1] != '.jpg'
    next if file =~ /^..?$/
    
    image = Magick::Image.read(file).first
    image.composite!(wtm, Magick::CenterGravity, 
                                Magick::HardLightCompositeOp)

    out = file.sub(/./, "-wm.")
    image.write(out)
end 

Буду благодарен любым комментариям.

Битва за образование: Final Round

Итак, я пришел к финишной прямой высшего образования. Но кроме длинной дистанции позади, впереди еще маячит заключительное сражение этого триатлона: бакалаврская работа.
В чем проблема? Нужна идея по изменению размера изображения. То есть какая-то модификация стандартного метода, чтобы работало лучше чем оригинал.
Объясняю на пальцах.

Есть картинка и ее увеличение.
Resize

Нужна идея алгоритма, как находить те самые 1ый, 2ой и 3ий пиксель, которых не хватает. Механизм должен быть итерационным (то есть, несколько шагов) и базироваться на сплайн-интерполяции.
Уже испытано 2 метода:

– Сплайн-функцией горизонтальных, вертикальных и диагональных пикселей находятся 1, 2, 3. После чего значение пикселя 0 корректируется в сторону среднего арифметического при помощи некоего коэффициента k. Постулируется то, что среднее арифметическое 0, 1, 2 и 3 должно быть равно исходному значению 0. Результат: после незначительного количества итераций приходим к красивой шумной стабильной картинке, где нифига не понять.

– Сплайн-функцией горизонтальных, вертикальных и диагональных пикселей находятся 1, 2, 3. Значение пикселя 0 корректируется на основании того же постулата “среднее арифметическое 0, 1, 2 и 3 должно быть равно исходному значению 0”. Результат: при переходе от темной границы к светлой, цвет нулевого пикселя уходит в область отритцательных величин и утаскивает туда остальные.

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

Насколько тебе подходит твоя работа?

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

  1. Знаю ли я, что от меня ожидается на работе?

  2. Располагаю ли я материалами и оборудованием, необходимыми для правильного выполнения моей работы?

  3. Есть ли у меня возможность ежедневно заниматься на работе тем, что я умею делать лучше всего?

  4. Хвалили ли меня за хорошо сделанную работу в последние 7 дней?

  5. Проявляет ли непосредственный руководитель или кто-либо другой на работе заботу обо мне как о личности?

  6. Есть ли на работе человек, который поощряет мой личностный или профессиональный рост?

  7. Считаются ли на работе с моим мнением?

  8. Позволяет ли миссия компании чувствовать важность моей работы?

  9. Считают ли мои коллеги своим долгом выполнять работу качественно?

  10. Работает ли вместе со мной хотя бы один из моих лучших друзей?

  11. Беседовал ли кто-нибудь со мной за последние 6 месяцев о моем прогрессе?

  12. Были ли у меня за последний год возможности для учебы и развития?

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