Как стать автором
Обновить
97
0
Аркадий Чумаченко @ilvar

Разработчик

Отправить сообщение

Разработчик с мозгом груга

Время на прочтение14 мин
Количество просмотров86K

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

разработчик с мозгом груга не очень умный, но разработчик с мозгом груга программирует много лет и научился кое чему, хоть всё равно часто запутывается

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

(груг раньше думал груг с большим мозгом, но потом всё понял)

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Всего голосов 261: ↑235 и ↓26+209
Комментарии81

История ядерного разоружения

Время на прочтение34 мин
Количество просмотров26K

22 января вступил в силу международный договор о запрете ядерного оружия. Вступивший в должность за пару дней до этого 46-й президент США Джо Байден первым же вопросом внешней политики сделал продление договора СНВ-3 о ядерном разоружении с Россией, который был стремительно согласован, подписан и вступил в действие за несколько дней.

В этой статье я попытался рассказать основные этапы 70-летней истории ядерного разоружения, ее ключевые события и их значимость для всего мира, включая два описанных выше. У кого и сколько этого оружия, кто от него отказался, а кто получил его, и что им за это было. Кто из деятелей ядерного разоружения получил Нобелевские премии мира (их много!), а кому пришлось заплатить высокую цену за вхождение в атомный клуб избранных. Как на нас сегодня сказываются испытания ядерного оружия в 1960-е и где в Европе размещено американское ядерное оружие. В конце концов стал мир опаснее или нет, вооружаемся мы или разоружаемся и насколько вероятна ядерная война? Вот с этим всем я и попытался разобраться.

Картинка на заставке: Brian Stauffer, The New Yorker

Читать далее
Всего голосов 73: ↑69 и ↓4+65
Комментарии38

Генерация и решение лабиринта с помощью метода поиска в глубину по графу

Время на прочтение6 мин
Количество просмотров114K
image

В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.

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

Заинтересовавшихся — прошу под кат.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии26

Реактивный мессенджер, или CQRS и ES вместе с Akka и Scala

Время на прочтение21 мин
Количество просмотров23K
В последнее время мы часто слышим о реактивном программировании и видим различные баззворды: message-driven архитектура, event-sourcing, CQRS. К сожалению, на Хабре об этом пишут довольно мало, поэтому я решил исправить ситуацию и поделиться своими знаниями со всеми желающими.

В этой статье мы узнаем об основных особенностях реактивных приложений, рассмотрим, как паттерны CQRS и EventSourcing помогут нам в их создании, а чтобы не было скучно, мы с вами шаг за шагом сделаем свой мессенджер с вебсокетом и акторами, соответствующий всем канонам реактивного программирования. Для реализации всего этого добра, мы будем использовать замечательный язык Scala вместе с не менее превосходной библиотекой Akkа, реализующей модель акторов. Еще, мы будем использовать Play Framework для написания веб-составляющей нашего приложения. Итак, приступим.

Статья предназначена для тех, кто уже знаком со Scala и слышал о модели акторов. Все остальные тоже приглашаются к прочтению, принципы реактивного программирования можно применять вне зависимости от языка и фреймворка.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии33

Кому сейчас на Хабре хорошо.

Время на прочтение1 мин
Количество просмотров532
Отец говорил мне, что раньше, в его время, люди ходили на футбол поболеть за свою команду, посмотреть на зрелище, на спорт. Не было фанатов, не было злости и ненависти. Потому что футбол — это игра и спорт, а не война.

Своей дочери я тоже буду рассказывать, что раньше IT были свободны от ненависти и предрассудков. Потому что IT — это технологии, это инструменты, а не оружие. Сейчас очень грустно бывает смотреть, как люди устраивают холивары и с пеной у рта доказывают таким же как они, что Макось/Убунту/Винда/Редхэт/Генту/Бздя — это самая лучшая ОС на свете. И что те, кто используют IE/Оперу/Лису/Сафари — просто неудачники.

Не нравится вам, что на Хабре висит реклама Майкрософта? Так а в каких правилах написано, что на Хабре надо ненавидеть MS? Не нравится вам, что на хабре много пишут про Фаерфокс? Ну так не нудите об этом в комментах! Людям он нравится, мне лично нет. Но пускай обсуждают.

В общем, давайте быть взрослее.
Всего голосов 91: ↑66 и ↓25+41
Комментарии81

Тестируем MeteorJS-приложение с помощью Laika

Время на прочтение3 мин
Количество просмотров3.3K
Всем привет! Этот небольшой пост посвящен системе тестирования MeteorJS-приложений Laika от Arunoda Susiripala. Ее особенности довольно интересны:
  • Laika запускает свои тесты так же, как запускается реальное приложение (используется PhantomJS)
  • Каждый тест изолирован, т.е. заново запускается ваше MeteorJS-приложение с чистой базой данных
  • Вы можете использовать для разработки и meteor, и meteorite, laika прекрасно работает с ними обоими
  • Вы можете запускать проверку на сервере и клиенте в одном тесте. Это поможет протестировать такие моменты, как права доступа (permission), подписки (subscriptions) и вызовы методов (method calls)
  • Так как MeteorJS работает в реальном времени, то вам потребуется тестировать приложение при работе нескольких клиентов одновременно. Laika это может.
  • Возможность использования событий для более точного тестирования, т.е., фактически, эмуляция работы пользователя
  • Передача значений в код во время выполнения теста через аргументы
  • Ожидание окончания генерации шаблонов (templates)


Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Классификация русского текста с помощью библиотеки Natural на NodeJS

Время на прочтение3 мин
Количество просмотров17K
Преамбула


Я никого не удивлю, если скажу, что современный человек, а, в особенности, программист, каждый день получает огромное информации. К примеру, мой RSS-клиент выдает мне в неделю около 500 статей. И, конечно же, это далеко не единственный источник информации.

Я задумался над тем, чтобы сделать для себя RSS-клиент с обучаемым фильтром статей на NodeJS. В принципе, под ноду есть готовые RSS ридеры, есть готовые нейронные сети с классификаторами, так что написать какой-то прототип мне показалось не особенно сложной задачей.

Я решил начать с тестирования подвернувшихся под руку нейронных сетей. Я взял небольшое количество входных данных. Позитивные данные я скопировал из статей по nodejs с хабра. Негативные данные я нашел на «ленте.ру». Задача классификатора заключалась в том, чтобы отсортировать статьи о программировании и nodejs от обычных, безынтересных для моего развития, новостей.

Результаты работы с Brain и Fann я показывать не хочу — я не считаю, что я обладаю достаточной экспертизой для того, чтобы судить о них. Скажу только что из коробки они меня не устроили совершенно — на моих входных данных они не давали адекватного количества правильных ответов. А вот библиотека Natural меня очень впечатлила.

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

Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии7

Тексты, которые загубят самый красивый дизайн

Время на прочтение4 мин
Количество просмотров47K


Хорошо, когда к тексту относятся так же внимательно, как и к тенюшечкам в кнопочках, градиентикам на плашечках и иконочкам-в-плоском-стиле, но для многих это — слишком тяжкий труд. Дизайнер продает картинку клиенту и ему все равно, что там написано будет. Клиент обращается к копирайтерам, за недорого штампующим «продающую» бредятину, иногда поручает работу с текстами маркетологам, иногда заголовки сочиняет целый отдел девушек-менеджеров по персоналу, и у всех них неумение писать по-русски, похоже, обязательная составляющая профессии. В итоге на сайт нам смотреть приятно, но читать невозможно. Дизайн — это в первую очередь содержимое, а потом уже декорации. Это обзор самых явных ошибок, за которыми должен следовать удар словарем по щам. Не переключайте.
Читать дальше →
Всего голосов 104: ↑83 и ↓21+62
Комментарии112

15 вещей, которые мы хотели бы знать перед разработкой стартапа

Время на прочтение7 мин
Количество просмотров30K
image
За четыре года работы над онлайн консультантом WebConsult мы накопили достаточно большой опыт, и оказалось, что изначально мы не учли многих вещей, которые потом приходилось переделывать – в итоге это стоило нам массы времени, средств и нервов. Эта статья, а возможно и цикл статей, будут посвящены аспектам, которые необходимо продумать еще до начала разработки, дабы будущие стартаперы изначально закладывали грамотную основу в свои веб-приложения. Этой статьи нам очень не хватало четыре года назад, когда создание системы только начиналось, и мы надеемся, что она поможет вам не повторить наших основных ошибок. Многие приведенные советы кому-то покажутся очевидными, однако часто разработчики их упускают, поэтому мы считаем необходимым еще раз напомнить о простых вещах.
Читать дальше →
Всего голосов 82: ↑67 и ↓15+52
Комментарии26

PhoneGap: как сделать приложение отзывчивым

Время на прочтение11 мин
Количество просмотров56K
На сегодняшний день существует немалое количество обзорных статей о PhoneGap, но к сожалению, написаны они или front-end разработчиками, которые решили заняться мобильными платформами, или нативными программистами, которые решили попробовать себя в кроссплатформенной разработке. И именно с этих позиций рассматриваются достоинства и недостатки PhoneGap'а, возникают статьи о том, «насколько крута кроссплатформа», или об «ущербности кроссплатформенных решений».

В качестве затравки — видео демо-приложения, написанного за 6 часов; готовым был взят UI-бутстрап, наверстанный за 3,5 часа; использовались библиотеки iScroll, backbone, underscore, Jquery, и небольшая обертка на backbone (RAD.js — rapid application development, архитектурный фреймворк, берущий на себя часть оптимизации, связанной с мобильной средой выполнения).


Еще 2 часа было потрачено на фикс движка. Но сегодня речь не о том, что что-то тормозит, дергается, или самописный свайп не всегда вовремя отрабатывает на 14000 объектах данных; речь о том, что на PhoneGap можно и нужно писать.

Выносим на Ваше рассмотрение мнение людей, которые занимаются кроссплатформеной разработкой на PhoneGap, дабы рассказать о том, какие тонкости мы находим нужными и важными при разработке на PhoneGap, и почему они так важны.
Читать дальше →
Всего голосов 93: ↑87 и ↓6+81
Комментарии31

Django ORM, gevent и грабли в зелени

Время на прочтение6 мин
Количество просмотров16K
Очень многие выбирают Django за его простоту. Код на Django прост и лаконичен, мы меньше думаем о костылях и больше о бизнес-логике.

Gevent тоже выбирают из-за того, что он простой, очень шустрый и не несёт за собой callback hell.

В голове возникает великолепная идея совместить две простые и удобные вещи вместе. Мы патчим Django и радуемся простоте, лаконичности и производительности, делаем множество запросов на другие сайты, создаём подпроцессы, в общем используем наш новый асинхронный Django по максимуму.
Но совместив их, мы незаметно для себя поставили несколько граблей на нашем пути.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии76

Как правильно сортировать контент на основе оценок пользователей

Время на прочтение5 мин
Количество просмотров91K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →
Всего голосов 458: ↑423 и ↓35+388
Комментарии134

Sisyphus.js — защищаем данные форм пользователя от случайных потерь

Время на прочтение2 мин
Количество просмотров8.1K

В чём проблема?


Бывали ли у вас случаи, когда во время долгого заполнения нудной формы или написания красноречивого и пылкого комментария *внезапно* крашился браузер? Или вы закрывали вкладку, в которой работаете, или отключалось электропитание (а ИБП, по известному закону, нет)? Если нет — то вам повезло, но страховки от подобных происшествий ни у кого нет.

Представьте себе бурю эмоций, испытываемых пользователем, только что потерявшим все вводимые данные — а ведь оставалось немного допечатать и отправить форму. Вот если бы только был способ восстановить эти данные, а не заниматься сизифовым трудом…
Читать дальше →
Всего голосов 139: ↑136 и ↓3+133
Комментарии74

Cacheops

Время на прочтение3 мин
Количество просмотров8K
Некоторое время назад я писал о системе кеширования. Помнится, я обещал продолжение, но сейчас решил, что строка кода лучше сотни комментариев, теорию оставим на потом. Поэтому сегодня у нас своего рода анонс с парой советов по использованию в одном флаконе. Встречайте, cacheops — система кеширования и автоматической инвалидации кеша для Django ORM.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии32

Информация

В рейтинге
Не участвует
Откуда
Celbridge, Kildare, Ирландия
Зарегистрирован
Активность