Pull to refresh
15
0
Дмитрий Урсегов @fdmitry

User

Send message

Десять вещей, которые я терпеть не могу в ООП

Reading time8 min
Views110K
Боже, временами я просто ненавижу объектно-ориентированное программирование.

Наверное, я не один такой. Бессмертные слова Эдсгера Дейкстры гласят:
«Объектно-ориентрованное программирование — это исключительно плохая идея, которую могли придумать только в Калифорнии.”

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

Основы теории вычислительных систем: машина с конечным числом состояний

Reading time8 min
Views35K
Теория вычислительных систем — это то, что позволяет нам программировать. Однако, можно писать программы и без представления о концепциях, скрывающихся за вычислительными процессами. Не то, чтобы это было плохо — когда мы программируем, то работаем на намного более высоком уровне абстракции. В конце концов, когда мы ведём машину, то концентрируемся только на двух или трёх педалях, переключателе передач и руле. Для повседневной неспешной езды этого более чем достаточно. Однако, если мы хотим управлять автомобилем на пределе его возможностей, то тут нужно знать гораздо больше, чем просто три педали, КПП и руль.

Такой подход справедлив и в программировании. Большая часть повседневной мирской работы может быть выполнена при минимальном знании теории вычислительных систем или даже вообще без него. Не нужно понимать теорию категорий, чтобы накидать форму «Контакты» в PHP. Тем не менее, если вы планируете писать код, требующий серьёзных вычислений, то тут уж придётся разобраться с тем, что у этих самых вычислений под капотом.

Цель этой статьи — представить некоторые фундаментальные основы вычислений. Если это окажется интересным, то в дальнейшем я могу написать более продвинутый топик на эту тему, но прямо сейчас я хочу просто рассмотреть логику простейшего абстрактного вычислительного устройства — машины с конечным числом состояний (finite state machine).
Читать дальше →

Чем плох свой Open Source проект

Reading time3 min
Views73K
Все мы знаем как хорошо и похвально принимать участие в разработке открытых проектов.
К тому же потом можно мерятся количеством коммитов в rails и зарплату попросить побольше.

А что если вы решили написать свой open source проект?

Читать дальше →

mini-PCIe LTE для ноутбука

Reading time4 min
Views87K

Это логическое продолжение топика о miniPCIe контроллере WiMax.
Некоторое время назад WiMax сети стали историей, и на их место победоносно ступил LTE. Однако идея использовать интегрированный модуль, вместо торчащего свистка беспроводной связи, не стала казаться мне менее привлекательной.
Выбор таких устройств совсем небогатый, и я останавился на Sierra MC7710, так как на форумах были сообщения об успехе его использования с Российскими LTE операторами. Процесс настройки оказался совсем не тривиальным делом и в добавок он нигде не описан от начала до конца. Поэтому я уверен, что этот топик должен занять место в кэше поисковых систем.
Читать дальше →

Суждения, умозаключения, силлогизмы… или достижения античной логики в одном посте

Reading time5 min
Views63K
Когда я учился в школе, мы изучали логику, но сейчас даже в моём любимом лицее её почему-то не преподают. Более того, я узнал, что большинство моих знакомых (даже успешно закончивших вузы) не знают, ни о логическом квадрате, ни о различных модусах. В этом небольшом топике, я постараюсь вкратце рассказать обо всём. Сразу скажу, что гуру дискретной математики вряд ли узнают что-то новое, но остальным должно быть как минимум интересно, а как максимум полезно.
Читать дальше →

Шумиха вокруг скорейшего краха Nokia не обоснована или о чем же недоговаривают аналитики?

Reading time6 min
Views102K



И сразу начнем с типичных восклицаний многих аналитиков/читателей/пользователей:


  • Стивен Элоп — засланец Microsoft, пришёл развалить Nokia!
  • Nokia глупцы! Надо было переходить на Android!
  • Не надо было переходить на Винду, развивали бы Symbian!
  • У финнов была такая прекрасная ОС Meego! Элоп, подонок, убил её!


Узнаёте себя?


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


«В наши дни битва между устройствами сменилась войной экосистем»


Стивен Элоп не раз говорил, что уже через пару лет будет идти борьба не телефонов-железок, а будет борьба сервисов и экосистем. Жёлтая пресса и большинство журналистов с аналитиками продолжают упорно пропускать эти слова мимо ушей. Итак, о чем же говорит господин Элоп?
Читать дальше →

О долгой жизни и неминуемой смерти карт с магнитной полосой

Reading time11 min
Views122K
Этот плод любви авиационной и банковской отрасли пережил вот уже более полувека. Однако его конец близок.

В 1967 году авиакомпании пользовались самолетами Боинг 727 и Дуглас DC-8, авиаперелеты были ещё чем-то особенным, а авиаперевозчики зарабатывали на этом большие деньги. Однако на горизонте появилась проблема. Авиакомпании собирались закупить первые широкофюзеляжные самолеты Боинг 747 и Дуглас DC-10, которые значительно увеличили бы пассажиропоток, а, следовательно, и число пассажиров, приходящих одновременно к стойкам регистрации. Для того чтобы предотвратить тот бардак, который мог бы из-за этого возникнуть, авиакомпании были вынуждены искать способ, который позволил бы ускорить процесс продажи билетов и регистрации пассажиров.

Фото: Леви Браун; Стилист-реквизитор: Ариана Салвато
Читать дальше →

Управление рисками интернет-стартапа. Часть первая

Reading time17 min
Views56K
Написано по личному опыту и впечатлениям. Это не полный материал, скорее небольшая выжимка.
Пожалуйста, отметьте, что понравилось, напишите в личку замечания и вопросы.
Читать дальше →

Вейвлет-сжатие «на пальцах»

Reading time10 min
Views180K


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

Попробуем на простых примерах разобраться, откуда же вообще берутся вейвлеты и как их можно использовать при сжатии. Предполагается, что читатель знаком с основами линейной алгебры, не боится слов вектор и матрица, а также умеет их перемножать. (А во второй части даже попробуем что-то запрограммировать.)

Читать дальше →

Немного о клеточных автоматах

Reading time5 min
Views56K

На хабре уже много-много-много раз писали про игру «Жизнь». Совсем недавно была удивительная статья Жизнь на плоскости Лобачевского. Но игра «Жизнь» является частным случаем т. н. клеточных автоматов. Существует много других клеточных автоматов совсем не похожих на игру «Жизнь», но тем не менее очень интересных. Про некоторые из них и хочется рассказать здесь.

Начнём с того, что рассмотрим ряд клеток, в которых, кроме одной, находятся нули:

... 0  1  0  0  0  0  0  0 ...

Рассмотри следующее правило, заменяем число в клетке на сумму этого числа и соседа слева. Получим следующую серию состояний:

... 0  1  0  0  0  0  0  0 ...
... 0  1  1  0  0  0  0  0 ...
... 0  1  2  1  0  0  0  0 ...
... 0  1  3  3  1  0  0  0 ...
... 0  1  4  6  4  1  0  0 ...
... 0  1  5 10 10  5  1  0 ...
... 0  1  6 15 20 15  6  1 ...

Не сложно увидеть, что это — треугольник Паскаля. А теперь вместо обычного сложения будем использовать сложение по модулю два. Известно (и даже недавно рассказывалось в хабрастатье Треугольник Серпинского и треугольник Паскаля), что получится дискретный аналог треугольника Серпинского:

... 0  1  0  0  0  0  0  0 ...
... 0  1  1  0  0  0  0  0 ...
... 0  1  0  1  0  0  0  0 ...
... 0  1  1  1  1  0  0  0 ...
... 0  1  0  0  0  1  0  0 ...
... 0  1  1  0  0  1  1  0 ...
... 0  1  0  1  0  1  0  1 ...

Интересно? Читаем дальше!
Читать дальше →

Надёжность SSD накопителей и средства мониторинга

Reading time8 min
Views60K
На повестке дня, уже не первый год, стоит вопрос о надёжности SSD накопителей. Кто-то отзывается негативно, мотивируя далеко не одним вышедшим из строя накопителем, а кто-то наоборот ратует за то, что накопители прекрасно чувствуют себя даже под нагрузкой и работают не один год. Я, пожалуй, отношусь ко второму лагерю и сейчас расскажу почему.
Читать дальше →

Сколько английских слов вы знаете?

Reading time5 min
Views352K
Оценка количества выученных и запомненных слов иностранного языка прежде всего интересна для понимания того, насколько далеко человек продвинулся в «пассивном» восприятии информации: тексты, речь, фильмы, и т.д. Предлагаю ознакомиться с несколькими способами, которые я применял, найденные в сети и «самопальные». Внизу — парочка тестов для оценки vocabulary, методика для поиска важных слов, которые пока не зацепились в мозгу, несколько рассуждений и немного ссылок.

Читать дальше →

Google Code-In 2012 — как это было?

Reading time4 min
Views33K

Привет, хабрик!

Так уж сталось что в этом году я стал призером Google Code-In. Это конкурс для школьников со всего мира, в котором они соревнуются в разработке опенсорсного программного обеспечения. Мне удалось попасть в список Grand Prize Winners, так что думаю что стоит написать этот отчет.

У меня есть много информации, советов и всего интересного.
Читать дальше →

Jumpstart: как 1 января для IT-сферы началась новая экономика

Reading time4 min
Views34K

5 апреля 2012 года Барак Обама (это текущий американский президент) подписал JOBS Act (the Jumpstart Our Business Startups Act). Он вступил в силу с 1 января 2013 года.

Сейчас я расскажу пару общих вещей про то, что это означает, и почему для стартапов много чего изменится. Смотреть надо в комплексе вместе с документами СЭК (комиссии по ценным бумагам). СЭК тут важна потому что сам по себе закон (как и многие другие) является, скорее, рамочным, а конкретные детали его исполнения определяет именно эта организация.

Одним простым предложением: что это всё значит? — Взрыв роста IT-проектов в США. И, возможно, начало новой экономики.
Читать дальше →

Многорукие бандиты: введение и алгоритм UCB1

Reading time5 min
Views55K
Это первый пост из блога Surfingbird, который я выношу в общие хабы алгоритмов и искусственного интеллекта; честно говоря, раньше просто не догадался. Если интересно, заходите к нам, чтобы прочесть предыдущие тексты, – я не знаю, что произойдёт, если просто добавить новые хабы к постам несколькомесячной давности.

Краткое содержание предыдущих серий о рекомендательных системах:

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


Читать дальше →

Жизнь без тестировщиков: миф или реальность?

Reading time5 min
Views31K
Бытует противоречивое мнение, что на проекте обязательно должен быть тестировщик. Но многие известные зарубежные проекты не имеют выделенных тестировщиков, особенно для привычных нашему миру задач. Как же так? Кто в этом случае будет отвечать за качество продукта? Кто будет искать и находить дефекты? Да и вообще, возможно ли такое? Если вас заинтересовали ответы на эти вопросы, то добро пожаловать под кат.

Читать дальше →

Сходство и различие между Mercurial и Git

Reading time6 min
Views119K
По роду своей деятельности я нередко становлюсь свидетелем «священных войн» между коллегами-программистами на тему, какую же систему контроля версий выбрать для того или иного проекта. Роль системы контроля версий особо остро ощущается в случаях разработки и поддержки проектов с длинной историей. Вариантов инструментов много, но я хочу сконцентрироваться на двух, на мой взгляд, наиболее перспективных: Mercurial и Git. Далее попробуем рассмотреть возможности обеих систем с позиции их внутреннего устройства.
Читать дальше →

TCP Congestion Control или Почему скорость прыгает

Reading time4 min
Views125K
Всем привет!

Бывало ли у вас такое, что ставите файл на закачку, и скорость медленно, но верно возрастает, затем, в какой-то момент, резко снижается, затем опять возрастает? Закачка файла в один поток не обеспечивает полную скорость канала? Запускаете торрент-клиент, и пинг в игре сильно прыгает? Используете 3G-модем (или другую линию с относительно большой потерей пакетов) и не можете это терпеть?
Наверняка вы винили во всем ваш роутер, либо обвиняли своего провайдера в кривой настройке шейпера? Это влияет, но виноваты не они.
Итак, встречайте:

TCP Congestion Control, или TCP Congestion Avoidance Algorithm.

Читать дальше →

Найдено 48-е простое число Мерсенна

Reading time5 min
Views72K
Математики из распределённого проекта по поиску простых чисел GIMPS объявили об обнаружении нового простого числа Мерсенна. Это важное событие для математического сообщества, потому что до сих пор было известно только 47 таких чисел, последнее было найдено в июне 2009 года.

48-е простое число Мерсенна — 257.885.161-1, с 17.425.170 десятичными разрядами. См. полную запись числа в текстовом формате.

Числа Мерсенна имеют вид 2n-1, где n — натуральное число. Простые числа Мерсенна являются самыми большими простыми числами, известными науке. Предыдущий мировой рекорд принадлежал числу 243.112.609-1, имеющему 12.978.189 десятичных разрядов.
Читать дальше →

Переход с Java на Scala (Clojure, Haskell, Erlang ..) как повышение абстракции программирования

Reading time3 min
Views33K
А что такого можно написать на Scala, чего нельзя на Java?
(из разговора с одним моим знакомым другом, человеком и программистом)
The best reason to learn a new programming language is to learn to think differently.
Chad Fowler

Хочу рассказать не о простоте конструкций Scala по сравнению с Java и не о том, что в 1 строчку Scala я могу уместить 20 строк Java. А наоборот, копнуть поглубже, уронить устои ООП и посмотреть на реакцию благородной публики.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity