воскресенье, 24 января 2016 г.

Книга "Путь разработчика" Джона Сонмеза

В данный момент читаю книгу "Путь разработчика" Джона Сонмеза
(она же "Soft Skills: The software developer's life manual").

Книга о, так называемых, "мягких навыках" программиста: социальном взаимодействии, воспитании силы духа, воли, укреплении тела, умении правильно распоряжаться деньгами и т.д.

Книга не содержит какой бы то ни было технической начинки и читается достаточно легко.

Вещи, о которых говорит автор, во многом очевидны, а сама книга выступает неким сводом полезных советов. При этом она ненавязчиво фокусирует взгляд читателя на таких вещах, о которых разработчики редко задумываются.

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

четверг, 14 января 2016 г.

Первый опыт с PHP 7

Как уже, наверное, всем (ну или почти всем) известно, недавно вышла 7-ая версия PHP.
Установил себе ее на локальную машину для тестирования. Кое-что было добавлено нового (возможность явного указания типа данных, строгий режим, кое-какие изменения в приоритетах операций, новые операторы). Для себя пока отметил, что в генераторах стало возможным, используя конструкцию yield from <..>, выполнять рекурсивные вызовы генераторной функции, что, в общем, весьма удобно, если нужно, например, выполнять обход какой-либо древовидной структуры с генерацией промежуточных значений.
Обращаюсь к немногочисленным читателям.  Пробовал ли кто-либо из вас уже полноценно использовать PHP 7 на каких-либо проектах, и если да, то какие ее новые особенности вам наиболее запали в душу и почему ?

понедельник, 8 июня 2015 г.

Access Violation в mSysGit под Windows 7 x64 во время выполнения rebase

Буквально сегодня столкнулся с одной неприятностью при использовании mSysGit под Windows 7 x64. При выполнении "git rebase master" при наличии конфликтов в коде консольное окно закрывается с access violation.
Для воспроизведения ситуации делаем, например:
==
git init myProject
cd myProject
type NUL > file.txt
git add .
git commit -m "Initial commit"
git branch feature
echo '123' > file.txt
git commit -am "master changed"
git checkout feature
echo '222' > file.txt
git commit -am "feature changed"
git rebase master
===
То есть, создаем пустой файл file.txt, затем создаем ветку feature. В ветку master добавляем один коммит, в feature - другой. После чего пытаемся выполнить rebase ветки feature относительно master. И тут же получаем Access Violation консольного окна.
Вылетает процесс conhost.exe с кодом исключения c0000005.

Загуглив по этой теме, нашел старый топик 2011 года в google groups:

https://groups.google.com/forum/#!topic/msysgit/z1PfBWW66Jo

но решения так и не обнаружил. Что интересно, в обсуждении упоминается mSysGit версии
1.7.6, но у меня уже как бы последняя версия на сегодня 1.9.5. Непонятно.

Попытался заменить стандартную виндовую консоль на ConsoleZ, но проблема сохраняется
(вероятно, ConsoleZ использует тот же низкоуровневый процесс, который и сбоит в обоих случаях). В общем, вопрос к аудитории. Кто как борется с вышеуказанным ? Есть ли решение под Windows ?


среда, 21 января 2015 г.

Эвристический алгоритм решения задачи о минимальном количестве линий для размещения отрезков

Всем привет.  Мягко говоря, давно ничего не писал. Попробуем нарушить эту традицию )
Сегодня рассмотрим следующую интересную задачу.
Имеется некий список отрезков в одномерном пространстве. Каждый отрезок задан парой координат его левой и правой точек. Задача - найти минимальное количество линий, на которых можно разместить все эти отрезки таким образом, чтобы они не пересекались друг с другом.
В общем случае задача сводится к умному перебору.  Для разнообразия рассмотрим такую
категорию алгоритмов, как эвристические. Эти алгоритмы не гарантируют нахождение самого лучшего решения (хотя это и не исключено), но почти всегда дают вполне приемлемые результаты при сравнительно небольших временных затратах (этот показатель можно регулировать).

Давайте рассмотрим такой алгоритм. Будем действовать максимально просто.

вторник, 31 декабря 2013 г.

C наступающим 2014 новым годом )

Вот и заканчивается очередной, теперь уже 2013 год. Было в нем и хорошее, и, наверное, не очень. Как, впрочем, и всегда бывает ) На смену приходит 2014-ый год - год Лошади. Будем надеяться, что в новом году это животное поможет нам легче преодолеть все трудности.
Но, конечно, нельзя рассчитывать только на помощь лошадки. Человек сам должен также прикладывать усилия, чтобы его жизнь и жизнь окружающих его людей стала лучше. Нужно самосовершенствоваться, повышать свой уровень знаний и умений. Развиваться, одним словом. Желаю всем вам, друзья, в наступающем году выполнения всех ваших планов.  Чтобы все хорошее, что вы задумали, сбылось. С новым 2014 годом. Ура )


суббота, 14 декабря 2013 г.

Тест Amplitube

Решил проверить, как моя балалайка звучит через Amplitube. С учетом того, что на чистом звуке она меня не особо радует, получается вполне себе сносное звучание. То есть, я безо всякого специального оборудования и подготовки (просто тупо воткнул гитару в линейный вход встроенной звуковой и запустил Amplitube) смог получить вот такое, например (просто некий абстрактный музыкальный фрагмент, на косяки внимания не обращайте - слушайте саунд =))).



Так что все в автодор  Amplitube ! )))

Один у него минус пока на данный момент - для его (нормальной) работы нужен ASIO, а ASIO4All под Win7 монопольно блокирует аудиодевайс, то есть, или играть, или слушать ) Возможно, это как-то и решается (переходом на Linux или XP =), но пока не нашел решения.

суббота, 30 ноября 2013 г.

Очередной веселый казус )

Хочу рассказать еще об одной занятной ситуации, которая произошла буквально на днях.

В общем, имеется группа статических html-файлов, из которых нужно повыносить все общее в отдельные файлики и уже их подключить в каждый первоначальный файл. Переименовал все в *.html.php, настроил редирект в .htaccess через mod_rewrite. Работа, вроде бы. движется. И тут в какой-то момент замечаю, что верстка рушится немного. То есть, положение div-блоков, которое получается у меня, слегка отличается от того, что было раньше. Появляются какие-то необъяснимые отступы и все такое. Давай сличать итоговый html. Вроде бы, все один к одному. То есть, внешне отличий не нахожу. Вошел в ступор от непонимания ситуации )

Итог всего: верстка была в utf-8. Когда я выносил блоки в отдельные файлы, то тоже создавал их в кодировке utf-8. Но не обратил внимание, что AkelPad в этом случае по дефолту выставляет utf-8 with BOM (Byte Order Mark), то есть, в самом начале файла прописывается специальная последовательность символов. Причем в самом редакторе она никак не отображается. Перекодировал все свои файлы в utf-8 без BOM, и все стало как и должно быть ) Теперь самое главное не наступить на эти же грабли в следующий раз )