Pull to refresh
97
0
Аркадий Чумаченко @ilvar

Разработчик

Send message

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

Reading time14 min
Views85K

Введение


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

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

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

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

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

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

это ладно!

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

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

Reading time34 min
Views26K

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

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

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

Читать далее
Total votes 73: ↑69 and ↓4+65
Comments38

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

Reading time6 min
Views114K
image

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

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

Заинтересовавшихся — прошу под кат.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments26

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

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

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

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

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

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

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

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

В общем, давайте быть взрослее.
Total votes 91: ↑66 and ↓25+41
Comments81

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

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


Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments3

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

Reading time3 min
Views17K
Преамбула


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

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

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

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

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

Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments7

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

Reading time4 min
Views47K


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

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

Reading time7 min
Views30K
image
За четыре года работы над онлайн консультантом WebConsult мы накопили достаточно большой опыт, и оказалось, что изначально мы не учли многих вещей, которые потом приходилось переделывать – в итоге это стоило нам массы времени, средств и нервов. Эта статья, а возможно и цикл статей, будут посвящены аспектам, которые необходимо продумать еще до начала разработки, дабы будущие стартаперы изначально закладывали грамотную основу в свои веб-приложения. Этой статьи нам очень не хватало четыре года назад, когда создание системы только начиналось, и мы надеемся, что она поможет вам не повторить наших основных ошибок. Многие приведенные советы кому-то покажутся очевидными, однако часто разработчики их упускают, поэтому мы считаем необходимым еще раз напомнить о простых вещах.
Читать дальше →
Total votes 82: ↑67 and ↓15+52
Comments26

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

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

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


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

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

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

Reading time6 min
Views16K
Очень многие выбирают Django за его простоту. Код на Django прост и лаконичен, мы меньше думаем о костылях и больше о бизнес-логике.

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

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

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

Reading time5 min
Views91K


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

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


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

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

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

Читать дальше →
Total votes 458: ↑423 and ↓35+388
Comments134

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

Reading time2 min
Views8.1K

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


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

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

Cacheops

Reading time3 min
Views8K
Некоторое время назад я писал о системе кеширования. Помнится, я обещал продолжение, но сейчас решил, что строка кода лучше сотни комментариев, теорию оставим на потом. Поэтому сегодня у нас своего рода анонс с парой советов по использованию в одном флаконе. Встречайте, cacheops — система кеширования и автоматической инвалидации кеша для Django ORM.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments32

Information

Rating
Does not participate
Location
Celbridge, Kildare, Ирландия
Registered
Activity