Всё это вовсе не секрет. Но постоянный поток тем и сообщений в интернете с заголовками вроде «А как мне стать программистом» с множеством вопросительных знаков или точек, создают чёткое ощущение какой-то немыслимой тайны. Хотя, в последнее время мне начинает казаться, что разговоры об этом как-то поутихли. То ли перестали уже люди хотеть становиться программистами, то ли бесчисленные книги вроде «Осваиваем PHP, Visual Basic .NET, Haskell, проектирование БД и нейронные сети за 12 минут в день» сделали своё дело, и теперь всё это трансформировалось в «я знаком C, Java, C#, частично знаю Scala, а как мне сделать….?», но при этом «Да, я пытался найти ответ. 3 минуты. В интернете нигде нет! Тебе что, сложно ответить? Помогите!». Продолжить чтение »
Опубликовано в Articles | Помечено Programming, thoughts | Комментарии (7) »
Ура! Сегодня ровно один год со дня открытия этого блога. За это время было не так уж много статей, зато много посетителей, интересных людей, комментариев и спама :).
В последнее время не удавалось писать, так как был совcем занят работой, но думаю, в новом году займусь статьями снова.
Спасибо всем, желаю счастливого Нового Года, с наступающими праздниками!
Опубликовано в News | 1 комментарий »
Есть множество вещей в программировании, которые мы интуитивно понимаем и используем. Так, понятия, о которых пойдёт речь часто касаются нас во время программирования. Мы поговорим о типах и о их преобразованиях. Страшные слова в следующих абзацах пришли из теории категорий, однако мы — программисты, а не математики, поэтому будем рассматривать всё это в контексте реальных языков программирования. Продолжить чтение »
Опубликовано в Articles | Помечено .NET, CSharp, Java, Object-oriented programming, Programming | 1 комментарий »
Эту статью я написал года четыре назад. А сейчас внезапно нашёл её, и решил выложить в блог. Довольно забавно :) Предупреждаю, я не несу ответственности за то, что может произойти с вашей техникой в результате применения данной информации.
В последнее время довольно долгое время меня мучила мысль о том, что неплохо бы как-нибудь своими силами связать компьютер с внешним миром. Плюс ко всему впустую простаивающий параллельный порт принтера меня угнетал, ибо у меня принтер подключён через USB. Я просмотрел несколько статей, описаний и прочей литературы, и то что у меня вышло в результате экспериментов назвать оригинальным язык не поворачивается, но, тем не менее, это может показаться кому-то интересным.
Задача стоит весьма тривиальная: научиться управлять мерцанием светодиода, подключённого к ПК через LPT-порт. Почему именно LPT? Потому что он довольно прост и в меру интересен.
Поехали!
Опубликовано в Articles | Помечено cc, Hardware, Programming | Комментарии (7) »
Допустим, у нас имеется некоторое количество эталонных образов – изображений, либо ещё чего-нибудь. Нам дают некий искажённый образ, и наша задача состоит в том, чтобы «распознать» в нём один из эталонных. Каким образом человек это сделает – вопрос сложный. А вот каким образом с данной задачей справится искусственная нейронная сеть – мы вполне можем себе представить. Тем более, если это нейронная сеть Хопфилда.
Опубликовано в Articles | Помечено Neural network, Programming, Python | Комментарии (4) »
Среди всех структур данных, имеющихся в распоряжении у замечательной науки информатики, есть одна, которой многие люди восхищаются больше, чем другими. Это – хеш-таблица (Hash Table), несомненное достижение в области компьютерных наук. Практически все современные языки программирования имеют реализации хеш-таблиц в своих библиотеках. Чаще всего мы работаем с ними в виде словарей (или ассоциативных массивов), представляющих собой контейнеры множества пар ключ-значение.
Так как же устроены хеш-таблицы, почему они удобны, эффективны, и зачем нам или пользоваться? Здесь я привожу краткое введение в хеш-таблицы для тех, кто не знает и по каким-то причинам не хочет или не может изучить классические труды (они приведены в конце статьи). Одна из причин, побудивших меня написать этот текст, так это то, как показал мой опыт, что тема хеш-таблиц достаточно часто встречается в вопросах на собеседованиях ;).
Опубликовано в Articles | Помечено Data structure, Programming | Комментарии (4) »
Ruby – это замечательный язык программирования, приобретающий всю большую популярность в последнее время. Наверное, вы знакомы с Ruby, раз принялись читать эту статью. В противном случае вам сначала лучше познакомиться с информацией, представленной на официальном сайте www.ruby-lang.org, прежде чем приступать к чтению. Продолжить чтение »
Опубликовано в Articles | Помечено cc, Programming, Ruby | 1 комментарий »
Если что-то ходит как утка, и крякает как утка, то будем относиться к этому как к утке. Так неформально описывается принцип утиной типизации (Duck Typing). Утиная типизация «развязывает нам руки», позволяя полиморфно работать с объектами, которые не связаны в иерархии наследования, но имеют необходимый набор методов. Здесь мы подходим к извечному спору о том, что лучше – динамическая или статическая типизация. Обойдём его стороной, сославшись на известную статью Мейера и Дрейтона под названием «The End of the Cold War Between Static and Dynamic Languages», и лучше посмотрим, как реализовать «утиное» поведение на Java.
Опубликовано в Articles | Помечено Java, Programming | Комментарии (2) »
Компьютеры – в общей массе своей, штуки дискретные. Поэтому мы не можем сказать – дайте мне последовательность чисел Фибоначчи, и работать с ней, не указав необходимую её длину. Ну, на самом деле мы можем вычислять эту последовательность динамически, при каждой потребности в следующем элементе (пока у нас хватает памяти), создавая иллюзию бесконечности. В языках программирования такие вещи наиболее элегантно проделываются с помощью ленивых вычислений. Ленивые вычисления означают такие вычисления, которые производятся только тогда, когда в них действительно возникает необходимость, а до этого времени они откладываются, как могут.
Опубликовано в Articles | Помечено CSharp, Functional Programming, Programming | 1 комментарий »
a="a=%c%s%c;printf a,34,a,34";printf a,34,a,34
;)
Опубликовано в News | Помечено Programming, quine, Ruby | Комментарии (2) »
