Как стать автором
Обновить
27
0
Maksim @MuLLtiQ

Software engineer

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

Учимся писать многопоточные и многопроцессные приложения на Python

Время на прочтение6 мин
Количество просмотров410K
Эта статья не для матёрых укротителей Python’а, для которых распутать этот клубок змей — детская забава, а скорее поверхностный обзор многопоточных возможностей для недавно подсевших на питон.

К сожалению по теме многопоточности в Python не так уж много материала на русском языке, а питонеры, которые ничего не слышали, например, про GIL, мне стали попадаться с завидной регулярностью. В этой статье я постараюсь описать самые основные возможности многопоточного питона, расскажу что же такое GIL и как с ним (или без него) жить и многое другое.
Читать дальше →
Всего голосов 94: ↑88 и ↓6+82
Комментарии93

Web2py фреймворк

Время на прочтение4 мин
Количество просмотров26K
Я не изобретатель очередного велосипеда марсохода, а просто хочу рассказать про python фреймворк WEB2PY. На Хабре почему-то нет каких-либо статей про этот чудесный инструмент. Если интересно, под хабракатом небольшая история использования web2py и его описание.

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

Читать дальше →
Всего голосов 54: ↑44 и ↓10+34
Комментарии27

Старые карты и GoogleMaps

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


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

Карты датированы от 1680 до 1930 годов. Там можно заценить Аляску ещё до продажи Америке.

И много чего интересного.
Читать дальше →
Всего голосов 62: ↑59 и ↓3+56
Комментарии8

Наполовину пустой стакан

Время на прочтение4 мин
Количество просмотров8.1K
На Хабре уже упоминалась новая рубрика What if Рендела Манро (xkcd). Каждый вторник он отвечает на разные дурацкие вопросы читателей с точки зрения законов физики. Ниже перевод одного из выпусков.

Что, если внезапно стакан станет буквально наполовину пустым?
—Витторио Иаковелла


Как выяснится далее, пессимист в данном случае окажется прав. Когда говорят «стакан наполовину пуст» обычно имеют ввиду, что стакан содержит поровну воды и воздуха.

Считается, что оптимисту стакан кажется наполовину полным, тогда как пессимист находит его наполовину пустым. Эта притча породила целую кучу шутливых вариаций (инженер видит стакан, который спроектирован с двукратным запасом емкости; сюрреалист видит жирафа, жующего галстук и т.п.)
Читать дальше →
Всего голосов 173: ↑162 и ↓11+151
Комментарии59

Чистые и детерминированные функции

Время на прочтение3 мин
Количество просмотров19K
Перевод статьи Джастина Этеридж (Justin Etheredge), в которой автор объясняет тонкую разницу между детерминированными и чистыми функциями.

Вчера я читал блог Мэтта Подвизоки (Matt Podwysocki) (этот блог, кстати, потрясающий, идите и подпишитесь), и у него есть пост «Recursing into Recursion – Memoization». Отличный пост, если вы хотите познакомиться с мемоизацией. У меня уже был пост об обобщенной функции мемоизации некоторое время назад, поэтому мы будем говорить не о мемоизации. То, что возбудило во мне интерес, было в конце статьи Мэтта:

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


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

Читать дальше →
Всего голосов 43: ↑35 и ↓8+27
Комментарии16

AngularJS — фреймворк для динамических веб-приложений от Google

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

Дзен Angular


  • Хорошо отделять манипуляцию DOM-ом от логики работы приложения. Это существенно улучшает тестируемость кода.
  • Хорошо считать, что автоматизированное тестирование приложения настолько же важно, насколько и написание самого приложения. Тестируемость очень сильно зависит от того, как структурирован код.
  • Хорошо отделять разработку клиентской части от серверной. Это позволяет вести разработку параллельно и улучшает повторное использование на обеих сторонах.
  • Хорошо, когда фреймворк ведет разработчика по всему циклу разработки приложения: от проектирования UI через написание бизнес-логики к тестированию.
  • Хорошо, когда распространенные задачи становятся тривиальными, а сложные — упрощаются.


AngularJS представляет собой комплексный фреймворк. В стандартной поставке он предоставляет следующие возможности:
  • Все, что вам нужно для создания CRUD-приложений: data-binding, базовые директивы для шаблонов, валидация форм, роутинг, deep linking, повторное использование компонентов, dependency injection, инструменты для взаимодействия с серверными (RESTful) источниками данных.
  • Все, что вам нужно для тестирования: средства для модульного тестирование, end-to-end тестирования, mock-и.
  • Шаблон типового приложения, включающего в себя структуру каталогов и тестовые скрипты.


AngularJS разрабатывается сотрудниками Google и используется, как минимум, в одном сервисе Google — DoubleClick.

Читать дальше →
Всего голосов 60: ↑55 и ↓5+50
Комментарии36

8 самых ужасных сайтов мира

Время на прочтение3 мин
Количество просмотров292K
В блоге Name.com был опубликован рейтинг самых ужасных сайтов мира. Среди этих сайтов есть просто безобразные, есть почти неюзабельные, а некоторые могут служить эталоном банальности и неинтересности.

По мнению автора блога, эти сайты настолько отвратительны, что их авторы, должно быть, создавали их под влиянием тяжелых наркотиков. Поэтому, если вы считаете, что дизайн вашего сайта недостаточно профессионален, или же ему не хватает оригинальности и разнообразия, вы можете поднять свою самооценку, взглянув на восемь самых ужасных сайтов в Интернете.
Читать дальше →
Всего голосов 31: ↑21 и ↓10+11
Комментарии81

Koding.com — localhost в облаке

Время на прочтение2 мин
Количество просмотров21K
С удивлением не обнаружил на хабре ни одной статьи о проекте Koding.com. Сразу скажу, что не имею никакого отношения к администрации сайта, но порекламировать его всё равно хочу, потому что, на мой взгляд, он этого заслуживает.

Koding.com — полноценная бесплатная среда разработки в браузере и социальная сеть для разработчиков в одном флаконе. В данный момент проект находится в стадии public beta и многие функции ещё недоступны, но уже сейчас понятно, что будет интересно.

image
Читать дальше →
Всего голосов 98: ↑93 и ↓5+88
Комментарии255

Warsow 1.0

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

Спустя 7 лет разработки увидела свет первая мажорная версия Warsow. Warsow — это атипичный для OpenSource проект с рядом особенностей, и вот почему:
Читать дальше →
Всего голосов 134: ↑126 и ↓8+118
Комментарии135

Централизованная обработка исключений в Node.JS

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


Преамбула от переводчика: пару месяцев назад я искал решение для возможности использовать исключения в сервере игры, написанном на node.js. К сожалению, исключения в чистом виде не совсем совместимы со средой, работающей на event loop'е. Легче всего это объяснить на примере:
try {
    process.nextTick(function() {
        throw new Error('Catch Me If You Can');
    });
} catch (e) {
    console.log('Exception caught:', e);
}

Это исключение, разумеется, не будет поймано, и оно уронит весь процесс. Месяц назад увидел свет node.js версии 0.8.0 со свеженьким (экспериментальным) модулем domain, который как раз призван решать подобные проблемы. Тем не менее, я бы хотел отдать дань классу, которым я пользуюсь до сих пор. Поехали:
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии11

JavaScript-фреймворк Meteor получил 11 миллионов долларов инвестиций

Время на прочтение2 мин
Количество просмотров12K
Необычный и амбициозный фреймворк Meteor, пребывая в статусе preview (текущая версия — 0.3.8) уже получил 4500 подписчиков на Гитхабе и восторженные отзывы сооснователя Facebook Дастина Московица. Теперь на него обратили внимание акулы венчурного капитализма. Основным инвестором стал фонд Andreessen Horowitz. По словам Джефа Шмидта — CEO Meteor Development Group, одиннадцать с лишним миллионов гарантируют активную разработку проекта на протяжении ближайших нескольких лет.


Читать дальше →
Всего голосов 88: ↑77 и ↓11+66
Комментарии67

PyBrain работаем с нейронными сетями на Python

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

В рамках одного проекта столкнулся необходимостью работать с нейронными сетями, рассмотрел несколько вариантов, больше всего понравилась PyBrain. Надеюсь её описание будет многим интересно почитать.

PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

Предназначен для:

  • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
  • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
  • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
  • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.

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

Grunt, инструмент для сборки javascript проектов

Время на прочтение4 мин
Количество просмотров132K
Grunt — это инструмент для сборки javascript проектов из командной строки с использованием задач. Релиз вышел совсем недавно, автор Ben «Cowboy» Alman, проект есть на github. В этой статье я рассмотрю основы Grunt, его установку и использование.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Нотч о патентах

Время на прочтение2 мин
Количество просмотров5.7K
От переводчика: этот пост в блоге Нотча — продолжение пятничной истории с патентным иском. В субботу в Твиттере Нотч уже высказал резко отрицательное отношение к софтверным патентам, а сегодня более подробно изложил свою позицию в блоге.


Представьте, что вы Нео, и вы — первый человек на Земле, которому пришла в голову идея написать роман. То есть что-то вроде рассказа, но подлиннее. И вы очень гордитесь своим изобретением.

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

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

Тринити в слезах уходит и садится писать свой собственный роман. Вам это не нравится, ведь это вам первому в голову пришла идея написать рассказ подлиннее, и вы хотите получать доход со всех романов, которые кто-либо когда-либо напишет, и вы снова возмущаетесь. Тринити нарушила ваш патент.
Читать дальше →
Всего голосов 174: ↑163 и ↓11+152
Комментарии155
12 ...
63

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность