пятница, 26 октября 2012 г.

Kyiv PyCon 2012


На прошлых выходных прошла одна из самых мной любимых конференций. Kyiv PyCon 2012. Двухдневная конференция, хоть и привлекает довольно молодую аудиторию обычно, тем не менее интересна для меня очень, потому что во первых она о Python и местами о Computer Science. Обе темы мне интересны, плюс - пайтон комьюнити мне всегда нравилось ) Я не думаю, что был единственным C# разработчиком там, но думаю таких немного, особенно учитывая накладку событий.

четверг, 25 октября 2012 г.

Управление временем и сознанием.


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



Основные сложности с которыми сталкиваешься следующие:

  • как не разрушить режим дня? 
  • как научиться сосредотачиваться на проблемме длительный промежуток времени не давая мысли блуждать хаотично? 
  • как не переставать мечтать, но двигаться к реальным целям? 
  • как сохранить порядок в вещах и мыслях при том что ты постоянно решаешь задачи, ходишь к репетитору, программируешь, гуляешь с детьми, читаешь несколько книг параллельно и вообще сталкиваешься с большим количеством дел которые нужно сделать на фоне того, что твой мозг занят обучением? 
  • как натренировать смелость и выносливость необходимые для борьбы со сложными задачами, которые неочевидно как решать? 
  • как в течении дляительно времени сохранять режим тренировок/занятий иностранным языком/дисциплинированно читать запланированное/поставить нужные эксперементы и отчитаться о них?
  • и прочие родственные сложности

пятница, 19 октября 2012 г.

AForge.NET & Accord.NET

Сегодня обнаружил, что AForge.net и Accord.net доступны даже в nuget (aforge, accord).
Для тех, уто вдруг забредет случайно в мой блог на всякий случай поясню:

NuGet is a Visual Studio extension that makes it easy to install and update third-party libraries and tools in Visual Studio

среда, 17 октября 2012 г.

Обучение для меня стало работой на этот месяц.


Я нахожусь в творческом и оздоровительном отпуске. И использую его по зазначению - программирую, учусь и улучшаю здоровье.

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

Dart is celebrating bithday

Нашел ролик в Гугл Блоге посвященный дню рождения языка Dart. Раньше я слышал о нем только как о лабоработоном эксперементе гугл. Год назад был первью, потом относительная тишина, и вот:


вторник, 9 октября 2012 г.

Хорошая книга оказалась Effective Java (2nd Edition)...

Я конечно не Джавист, как принято у нас называть фанатов или, скорее, знатоков Java. Однако это очень широко распространенный язык, часто попадающийся в гетерогенных системах, и в реальной жизни на нем нужно писать. Потому что в реальной жизни проекты гетерогенные. Да и вообще, нельзя быть дотнетозомби или питонозомби (не говоря про С/C++зомби). Нужно быть развитым и не зацикливаться. И если писать на чем то, то делать это с любовью.

понедельник, 8 октября 2012 г.

GNU-GPL and Free инструменты для ученых и студентов. Python, Maxima, Octave и не только...

Статья пока еще не закончена, и она не нова конено, но выкладываю ее, так как мне нравится популяризировать замечательные GNU и просто свободные иструменты очень удобные и общепринятые в науке но несколько находящиеся в тени для тех, кто развивался как ученый в постсоветской научной вертикали, и был изолирован в некотором смысле от многих западных наработок. Буду давать ссылку на нее своим знакомым, тем, кто в состоянии оценить величие рекомендуемых инструментов и постепенно дорабатывать её.

Сначала немного о питоне

Питон местами слабоват в плане производительности, многопоточности, и конечно не идеален как язык, как не идеален любой другой. И тем не менее я люблю его, хотя и пока еще знаю хуже чем C# например. Причин, почему я  использую Python, будучи разработчиком на C# и немного на Java и C, много.

воскресенье, 30 сентября 2012 г.

Переворот сознания.

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

Изменился.

Я не могу точно сказать для чего я это сделал. Потому что вернее будет сказать почему. Но обо всем по порядку.

Я мечтал работать с кодом и идеями, воплощенными в коде. Через терни студенческой нехватки денег и отсутствия минимальной материальной базы я смог добиться этого. И идея захватила меня. Мечта росла и крепла и мне хотелось быть сильнее как разработчик и инженер, быть эффективным в продакшине.

пятница, 21 сентября 2012 г.

Наивная классификация. Naive Bayes multiclass classifier.

Предпосылки.

Проходя курсы и изучая материалы по машинному обучению и обработке натуральных языков я конечно же неоднократно сталкивался с задачами в которых нужно было применять классификаторы. Самым простым случаем классификатора, который мне попался, был пример из лекции про Sentiment Analysis с помощью которого решалась задача бинарной классификации текса (позитивный или негатиыный). Я выполнил это задание, чему-то научился, но мне этого было мало, и я набросал прототип и поставил пару эксперементов с использованием мультиклассового Naive Bayes классификатора. В этой статье я хочу описать то, что и как получилось.

среда, 19 сентября 2012 г.

Знания и опыт. Или ценность "ползанья на пузе"

Когда я был на 2-м курсе у меня небыло ни компьютера ни удобных условий для обучения, и тем не менее, я был захвачен идеей научиться программировать. А информации как учитья небыло никакой. Ну прочел несколько умных книжек, на которые хватило студенческих коепеек. Иногда даже купленных невпопад. Ну поэксперементировал с различными моделями донести какой-то отпрограммированный функционал конечному пользователю. С теми моделями, которые были доступны для меня в компьютерном классе.. NT 4.0, Visual Basic, Delphi, DHTML+JavaScript, WSH ... В общем не лучший и не самый передовой зоопарк технологий. И тем не менее, мне нравилось...

воскресенье, 26 августа 2012 г.

Нехватка computer-science tools для .net платформы.

Современная реализация .net очень хороша. Конечно нет предела красоте узора. Но .net действиетельно мощная и крутая платформа, плюс для нее очень много всего реализованно как самим Майкософтом так и 3-rd part сторонами. И мэйнстримовый для .net язык C# очень радует. Сделан действительно хорошо. Будучи так же знакомым с Java, Python и С я бы сказал, что C# наиболее зрелый и развитый инструмент для создания целых семейств бизнес решений. Однако есть свои "но". Для меня, например, очень важно что .net не реализован для unix.

воскресенье, 5 августа 2012 г.

Bogosort algorithm.

Сегодня я узнал что в computer science наряду с нормальными и практически применимыми подходами к упорядочиванию (sorting) элементов есть еще один алгоритм сортировки (bogosort) который всерьез применяют, по крайней мере для оценки сложности и при обсуждении вопросов в глубоком CS а так же для сравнения с другими алгоритмами...  Но то детали.

четверг, 2 августа 2012 г.

К слову о незрелости NLP библиотек на C#

Работая в grammarly нередко сталкиваешься с задачами natural language processing. Как разработчик, посвятивший несколько лет разработке на C# и осзнавая его мощность я конечно был заинтересован в том чтобы разобраться, а какие решения есть для C# или вообще .net.

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

четверг, 19 июля 2012 г.

Книги... По следам прошедшего года.

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

среда, 7 июля 2010 г.

New exam passed (edited)

Итак, я сдал ещё один экзамен.

Почему именно этот? Потому что именно он стоял на пути к более высокому левелу тестирования (70-563), но не смотря на то, что я заработал всё, что необходимо для сдачи 70-563, в мои планы входит уделить внимание сертификации 70-502, посвященной WPF, ибо нынче эта область в которой я работаю, и мне интересно, приятно и полезно получить сертификат. Итак, в планах - получение сертификатов 70-502,70-563. И надеюсь эту программу реализовать в течение лета. На текущий момент у меня есть сертификаты 70-536 и70-505.

среда, 12 мая 2010 г.

Разбор полётов

Итак, подготовка позади, теперь аналитика. Во первых, скажу, что я очень рад, что сдал, так как давно хотел это сделать. Во вторых,скажу, что из 1000 возможных при 700 минимальных баллах я набрал не особенно много - 815 баллов. Причем,среди моих знакомых есть множество, у кого балл более 900, и один, у кого 1000. И набрать эти баллы ВПОЛНЕ РЕАЛЬНО! Суть в том, что подготовка к этому экзамену может быть прстроена по разному + как повезёт с вопросами. Итак, как сдать этот экзамен и набрать как можно больше баллов? Подготовка должна включать:

70-536 Позади

В общем, Таск Комплит.

Тест пройден успешно, балл меня устраивает. Я очень рад, спасибо за внимание.

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

четверг, 29 апреля 2010 г.

Сертификация Microsoft 70-536

На носу прохождение сертификации... Читаю книжку в PDF - официальное пособие от Microsoft ( Microsoft.Press.MCTS.Self-Paced.Training.Kit.Exam.70-536.pdf ) Конечно, много чего пока не знаю, прохожу тестовый вариант экзамена (к книге прилагается программа). Изначально экзамен запланирован был на 30 - е апреля, но в связи с неувязкой в сертификационном центре пришлось перенести аж на 11 - е мая.

среда, 28 апреля 2010 г.

Linux Network Server Daemon

Нужна маленькая разработка на C++ (себе в коллекцию и немного для работы) небольшая серверная часть на С++. Короче нужен демон, который слушает входящие подключения, и менеджит пул потоков - обработчиков. Если клиент подключается в момент, когда в пуле потоков нет вакансий, он, опционально, (в зависимости от конфига) должен либо рубить соединение, с соответствующим сообщением клиенту, либо переводить клиентский сокет в режим ожидания появления вакантного потока для обслуживания соединений.
Управление пулом потоков нужно сделать гибким, чтобы спокойно менять их число в рантайме.
Требуется, чтобы это было универсальное С++ решение, причем уровень обеспечения многопоточности нужно абстрагировать так, чтобы независимо реализовать для Linux и Windows.

Вот такая задачулька на июнь.

пятница, 9 апреля 2010 г.

Трудимсо в комманде :)

Трудимсо в комманде :)

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

Во первых - о комманде. В Украине над проектом работет 11 человек, и около 10 в США. Команда распределенная и мультиязычная, следовательно делопроизводство по проекту проходит на интернациональном английском.

понедельник, 15 марта 2010 г.

Список методов и Extension методов

Список методов и Extension методов

Однажды обсуждая возможности рефлексии в C# обнаружил некоторую проблему, с получением списка методов, которыми располагает класс. На первый взгляд все очень просто. В пространстве имен System.Reflection есть функционал, доступный разработчику, для получения списка методов класса или списка членов, их применение проиллюстрировано ниже: