На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Станислав Гордиенко @stagor
Пользователь
Создание оригинальной каптчи, используя нейронные сети. Часть 1
9 мин
2.8KКак и у всех программистов, недавно у меня возникло желание изобрести собственный “велосипед”. Так как изобретать свою CMS, Framework, и т.д. уже не актуально, то мой взор обратился на каптчу. Казалось бы, что тут можно придумать оригинального, каких только каптч не существует: 2D-картинка, 3D-картинка, звуковая каптча, выбор “правильной” картинки. Но мне пришла в голову мысль, что создатели каптч думают как-то однобоко, то есть все хотят получить однозначно правильный ответ от пользователя (и обычно в тестовом поле), причем в простом виде, серверу лишь остается сравнить ответ с исходными данными! Вот я и решил исправить это дело и создать собственную “умную” каптчу.
+18
Работа с Java в командной строке
11 мин
649KТуториал
Сейчас уже никто не создает программы в консоли. Используя любимую IDE, разработчик чувствует себя неуютно за чужим компьютером, где её нет.
Решив разобраться в работе Ant и Maven, я поймал себя на том, что не смогу собрать приложение без них в консоли.
В данной статье я постарался уместить все этапы проектирования демонстрационного приложения, чтобы не искать справку по каждой команде на просторах Интернета.
Решив разобраться в работе Ant и Maven, я поймал себя на том, что не смогу собрать приложение без них в консоли.
В данной статье я постарался уместить все этапы проектирования демонстрационного приложения, чтобы не искать справку по каждой команде на просторах Интернета.
+67
3 причины того, почему неудача является ключом к успеху
3 мин
52KПеревод
В поиске информации по саморазвитию нашел интересную статью с необычным названием. Прочитал и подумал, почему бы не поделиться с коллегами-хабровчанами, возможно информация их заинтересует. Итак, мой вольный перевод, поехали.
Если вы похожи на большинство людей, то скорее всего не любите неудачи. Вы видите в них крах, доказательство того, что ваш план не был удачным или ваши идеи недостаточно хороши. Но правда вся в том, что неудачи случаются с каждым. Одна из вещей, которая отличает успешных людей, это правильное понимание всей силы неудачи. Чтобы достичь успеха, ты должен учиться на ошибках и оплошностях на протяжении всего пути, а не сдаваться и впадать в отчаяние.
Обратите внимание на эту информацию, особенно если вы в таком положении, когда неудача ваш противник, и в каждом поражении вы найдете новую возможность. Вот три причины, почему неудача является ключом к успеху.
Если вы похожи на большинство людей, то скорее всего не любите неудачи. Вы видите в них крах, доказательство того, что ваш план не был удачным или ваши идеи недостаточно хороши. Но правда вся в том, что неудачи случаются с каждым. Одна из вещей, которая отличает успешных людей, это правильное понимание всей силы неудачи. Чтобы достичь успеха, ты должен учиться на ошибках и оплошностях на протяжении всего пути, а не сдаваться и впадать в отчаяние.
Обратите внимание на эту информацию, особенно если вы в таком положении, когда неудача ваш противник, и в каждом поражении вы найдете новую возможность. Вот три причины, почему неудача является ключом к успеху.
+37
Избегаем распространенных ошибок в HTML5 разметке
8 мин
120KПеревод
Уважаемые хабровчане, представляю вам вольный перевод статьи Avoiding common HTML5 mistakes. Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.
+119
Objective-C с нуля
23 мин
437KУ любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
+147
Objective-C: взгляд рубиста
4 мин
5.7KIntro
До начала изучения Objective-C я программировал сначала на PHP, потом на Python и Ruby. Ruby мне понравился больше всего. Понравился своей простотой, лаконичностью, но в тоже время и мощностью. А около недели назад у меня наконец-таки получилось завести хакинтош на своем компьютере (сейчас у меня Macbook Early 2008 Black). Это оказался OS X Lion Golden Master. Я знал, что приложения для маков и айфонов пишут на Objective-C, даже пытался его выучить, но без OS X это было неприятно, что ли. Поставив Xcode 4.2 (я уже зарегистрированный iOS разработчик), написал несколько очень простых консольных приложений. И каждый раз когда я следовал какому-то туториалу, или просто пытался сам писать код, мне приходило в голову то, что, оказывается, Ruby и Objective-C имеют много общего (хотя это логично, так как оба языка были сделаны под влиянием Smalltalk), несмотря на то, что у этих двух языков совсем разные предназначения.
Итак, здесь я опишу некоторые вещи, которые помогут программистам на Ruby понять Objective-C, по большей части теоретические, без кода. Так же прошу прощения, если некоторые вещи будут объяснены не совсем по-сишному, я же пришел из мира Ruby.
+43
Эксперименты над людьми? Почему бы и нет
1 мин
33KПредставьте себе, что вы ищете порно (тут даже фантазии я бы сказал иметь не надо). Но порно не простое, а особенное – зоо, гей, карлики и т.д. И тут БАЦ! Вместо попапа с порнушкой выскакивает вот такой вот сайт:
http://www.this-dude-is-watching-porn.com/
http://www.this-dude-is-watching-porn.com/
+39
Оценка сложности задач
2 мин
13KОценка задач
При оценке сложности задач очень часто сложно выдать абсолютную оценку. Гораздо легче оценить относительный размер двух задач, т.е., например, сказать, что задача А в два раза больше задачи Б.
При agile-процессе разработки приходится оценивать много пользовательских историй.
Используя попарное сравнение снижается погрешность в определении оценок, и более того, эту погрешность можно вычислить.
+19
TameJS — приручаем асинхронное программирование
3 мин
2.5KЧто такое TameJS ?
TameJS — это расширение Javascript, которое делает событийное/асинхронное программирование более простым и элегантным. Его очень просто использовать с nodejs или другими v8-проектами.
+74
Настраиваем окружение на Mac OS и собираем автономное приложение с PySide/PyQt
5 мин
27KСейчас все удобнее становится использовать HTML и JavaScript в интерфейсах приложений. И именно такая задача недавно появилась передо мной, с одним важным условием — на выходе должно быть полностью standalone приложение, не требующее установки дополнительных библиотек и способное запуститься в обычном пользовательском окружения.
В силу своего природного обаяния в качестве основного языка был выбран Python + PySide c WebKit на борту, для сборки app-бандла использовался py2app.
Проблемы появились, при первой же попытке запустить приложение на чистой системе — обнаружилось большое количество внешних зависимостей, которые py2app не смог самостоятельно разрешить. Под катом пошаговая инструкция как эта проблема была решена.
+38
Прозрачное кэширование в nginx для всех и каждого
2 мин
115KПредставим, что у нас есть сайт, на который регулярно дают ссылки с хабра.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?
С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.
Для работы этой схемы от сайта требуется очень мало: достаточно лишь не начинать сессию, то есть не отправлять сессионную куку, без явной на то необходимости. Редкий сайт нельзя довести до такого состояния, а значит большинство сайтов можно защитить от резких всплесков посещаемости с помощью nginx с минимальными затратами сил и времени.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?
С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.
Для работы этой схемы от сайта требуется очень мало: достаточно лишь не начинать сессию, то есть не отправлять сессионную куку, без явной на то необходимости. Редкий сайт нельзя довести до такого состояния, а значит большинство сайтов можно защитить от резких всплесков посещаемости с помощью nginx с минимальными затратами сил и времени.
+94
+74
Домашняя автоматизация
6 мин
32KНакопил немного информации с инета по схемотехнике, контроллерам, различным примерам. Как подтверждение моему небольшому развивающемуся проекту, решил написать сею статью…
Итак имеем:
Роутер dir-320( с dd-wrt, процесс установки описан на нашем личном блоге, если нужно статью дополню ссылками на блог), контроллер ATmega8535, небольшая схема управления на оптодрайвере, обьект управления ( настольная лампа, усилитель звуковой, домашний водонагреватель ), немного проводов, паяльник, свободное время.
Что хотелось бы получить: программное управление питанием обьектов, питающихся от сети ~220 В.
На Хабре был целый цикл статей про «как включать настольную лампу от LPT» и прочее… НО! Здесь предлагается более-менее продвинутая, безопасная и автономная система по управлению.
Для небезлимитов — под катом картинки.
Итак имеем:
Роутер dir-320( с dd-wrt, процесс установки описан на нашем личном блоге, если нужно статью дополню ссылками на блог), контроллер ATmega8535, небольшая схема управления на оптодрайвере, обьект управления ( настольная лампа, усилитель звуковой, домашний водонагреватель ), немного проводов, паяльник, свободное время.
Что хотелось бы получить: программное управление питанием обьектов, питающихся от сети ~220 В.
На Хабре был целый цикл статей про «как включать настольную лампу от LPT» и прочее… НО! Здесь предлагается более-менее продвинутая, безопасная и автономная система по управлению.
Для небезлимитов — под катом картинки.
+74
Асинхронные задания в Django c помощью Celery
5 мин
65KПриветствую!
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.
Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.
Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.
Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.
Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
+46
Обзор свежих материалов, апрель-май 2011
9 мин
1.1KЭтот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-март 2011.
+49
WaterSpout — веб сервер для асинхронной передачи данных
1 мин
1.8KСегодня речь пойдёт об WaterSpout — веб сервере, способном обрабатывать websockets запросы, позволяя общаться в реальном времени между сервером и браузером используя websockets или long polling. Написан он на PHP.
В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
+47
Еще немного о дескрипторах в Python
3 мин
19KНе так давно на Хабре уже был перевод статьи Раймонда Хеттингера Руководство к дескрипторам. В этой статье я постараюсь рассмотреть вопросы, которые возникли у меня после прочтения. Будет немного примеров кода, собственно вопросов и ответов к ним. Для понимания того, о чем речь, вам нужно знать, что такое дескрипторы и зачем они.
+43
Видеоуроки по Python от Khan Academy
1 мин
14KНекоммерческая организация Khan Academy начала публиковать микролекции по языку программирования Python для начинающих. Первый урок посвящён написанию простой программки вычисления факториала с использованием цикла.
P.S. Khan Academy специализируется на массовом образовании. С 2006 года её основатель Салман Хан записал более 2300 микролекций в области науки и математики. По данным на июнь 2011 года, у канала Khan Academy на YouTube зафиксировано около 64 млн просмотров.
Khan Academy на YouTube
P.S. Khan Academy специализируется на массовом образовании. С 2006 года её основатель Салман Хан записал более 2300 микролекций в области науки и математики. По данным на июнь 2011 года, у канала Khan Academy на YouTube зафиксировано около 64 млн просмотров.
Khan Academy на YouTube
+59
Что должен знать о времени каждый программист
3 мин
97KПеревод
Некоторые замечания о времени
- UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
- GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
- Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
+224
Информация
- В рейтинге
- Не участвует
- Откуда
- Sydney, New South Wales, Австралия
- Дата рождения
- Зарегистрирован
- Активность